摘 要:SVD++算法由于其能夠融入評分信息和隱式信息得到了廣泛的應(yīng)用。SVD++算法中的模型參數(shù)可以通過隨機梯度下降或者最小二乘法得到最佳參數(shù)。但是SVD++中的超參數(shù)需要手動選取,而超參數(shù)會極大影響SVD++模型的準(zhǔn)確度。本文使用兩個常見的數(shù)據(jù)集,并且選取了不同的訓(xùn)練集-測試集切割比,使用隨機梯度下降算法,對SVD++中的兩個超參數(shù)學(xué)習(xí)步長和規(guī)則化參數(shù)進行研究,選用評分指標(biāo)中應(yīng)用最廣的三個評測指標(biāo)RMSE、MAE、MSE,分別得到了效果最好的超參數(shù)值。同時通過實驗,本文得到了超參數(shù)對SVD++算法影響規(guī)律和一系列結(jié)論,對SVD++算法在其他數(shù)據(jù)上如何選取最好超參數(shù)值有參考意義。
關(guān)鍵詞:SVD++算法;推薦算法;規(guī)則化參數(shù);學(xué)習(xí)步長
中圖分類號:TP301
文獻標(biāo)識碼: A
信息過載是互聯(lián)網(wǎng)面臨的主要挑戰(zhàn)[1]。如何從過載的信息中主動為用戶定位和推送其感興趣的內(nèi)容是推薦系統(tǒng)的主要任務(wù)。隨著電子商務(wù)的發(fā)展,商家提供的商品種類和數(shù)量急劇增長,具有明確需求的用戶可通過搜索查找想購買的商品。然而,用戶需求通常具有不確定性和模糊性。據(jù)亞馬遜統(tǒng)計,在其網(wǎng)站購物的客戶中,有明確購買意向的僅占16%[2]。如果商家能夠從海量商品中把滿足用戶模糊需求的商品主動推薦給用戶,則有望將潛在需求轉(zhuǎn)化為實際需求,不僅能提高電子商務(wù)網(wǎng)站的銷售量,還有助于提高用戶對網(wǎng)站的忠誠度。在此背景下,能夠根據(jù)用戶特征有針對性推薦商品的個性化推薦系統(tǒng)應(yīng)運而生,并被廣泛應(yīng)用[3]。包括Amazon、eBay、YouTube和Google在內(nèi)的諸多網(wǎng)站都部署了不同形式的推薦系統(tǒng),并產(chǎn)生了巨大的商業(yè)利潤[4]。
推薦算法包括兩類數(shù)據(jù),第一類是用戶項目交互數(shù)據(jù),比如評分和購買行為;第二類是用戶和項目的屬性信息。使用第一類數(shù)據(jù)的方法是協(xié)同過濾算法(collaborative filtering,簡稱CF)[4]。使用第二類數(shù)據(jù)的算法叫做基于內(nèi)容的推薦算法(content-based)[5]。SVD算法(因式分解算法)將用戶項目矩陣轉(zhuǎn)換成潛在因子空間。潛在因子空間通過潛在因子描述用戶和項目來解釋評分。SVD(Singular value decomposition)算法成為協(xié)同過濾算法的第一選擇[6]。SVD++[7]算法將用戶的點擊行為矩陣(忽略用戶具體評分)加入到SVD模型中,提高了算法的準(zhǔn)確度。在SVD++算法中,它的模型因子通過隨機梯度下降算法在訓(xùn)練集上訓(xùn)練更新,而更新之前需要手動設(shè)置超參數(shù)步長和規(guī)則化參數(shù)的值。超參數(shù)的選取會大大影響SVD++算法的準(zhǔn)確度。
在超參數(shù)選取時,最簡單的方法是網(wǎng)格式選取超參數(shù)值并求得對應(yīng)指標(biāo)值,然后從中選取指標(biāo)最好的超參數(shù)值[5]。每一次選取超參數(shù)都要使用整個數(shù)據(jù)集,SVD++算法有兩個超參數(shù),如果這兩個參數(shù)都選取100個值,那需要遍歷數(shù)據(jù)集10,000次,然后從中選取最好的超參數(shù)的值,但是如果數(shù)據(jù)集很大的話,這樣選取值是不可能實現(xiàn)的[6]。同時在SVD++算法中需要選擇不同的訓(xùn)練集-測試集切割比,每次切割后都需要重新選取超參數(shù)。本文研究了SVD++算法的兩個超參數(shù),步長γ和規(guī)則化參數(shù)λ,在兩個常用數(shù)據(jù)集上使用不同的訓(xùn)練集-測試集切割比,通過實驗分別求得最好的超參數(shù)值,并發(fā)現(xiàn)了超參數(shù)的變化規(guī)律。
1 基礎(chǔ)知識
1.1 SVD算法
SVD算法將用戶和項目同時映射到維度為f潛在因子空間,每一個評分建模為用戶和項目的內(nèi)積形式[8]。每個項目i關(guān)聯(lián)一個向量,qi∈Rf每個用戶u關(guān)聯(lián)一個向量pu∈Rf。對一個給定的項目i,qi中每個因子的值為擁有這個因子的程度。對給定的用戶u,pu中每個因子表示用戶對這個因子的喜好程度。預(yù)測評分可以表示為
1.3 超參數(shù)的選取
SVD++算法有兩個需要初始化的參數(shù):γ、λ,它們對SVD++模型影響非常大,當(dāng)這兩個參數(shù)選取合適時,才能發(fā)揮出這個算法最好的性能,使得該算法在數(shù)據(jù)集上求得最好的結(jié)果[11]。在實際應(yīng)用SVD++算法時,需要手動調(diào)節(jié)超參數(shù),而這個過程非常耗費時間。所以研究超參數(shù)對模型準(zhǔn)確率的影響很有必要。
2 推薦算法評價指標(biāo)
3 數(shù)據(jù)準(zhǔn)備
MovieLens 是美國 Minnesota 大學(xué)計算機科學(xué)與工程學(xué)院的 GroupLens 項目組創(chuàng)辦的一個非商業(yè)性質(zhì)的、以研究為目的推薦系統(tǒng)公開數(shù)據(jù)集。是測評推薦系統(tǒng)的典型代表。主要包括100 k和1 m兩個數(shù)據(jù)集,數(shù)據(jù)內(nèi)容是用戶對于電影的評分;每個用戶至少評級20部電影,包含用戶的人口統(tǒng)計信息(年齡,性別,職業(yè),郵編)。
(1)movielens-100k
數(shù)據(jù)集movielens-100k,包括100000個評分(1-5),943個用戶和1682個項目。每個用戶至少評分了20部電影。數(shù)據(jù)是1997年9月19日到1998年4月22日的電影。
(2)movielens-1m
數(shù)據(jù)集movielens-1m,包括1000209個評分(1-5),6490個用戶和3952個項目。每個用戶至少評分了20部電影。數(shù)據(jù)為2000年以后的電影。
4 實驗評價
將數(shù)據(jù)集movielens-1m切分為訓(xùn)練集和測試集(訓(xùn)練集/測試集=0.5),步長γ值選取0.002,0.004,0.006,…,0.100共50個值,規(guī)則化參數(shù)λ
選取方式和γ相同,評測指標(biāo)為RMSE,得到了2500個實驗結(jié)果,圖1為實驗結(jié)果。RMSE的值越低,表示模型準(zhǔn)確率越高。
圖1可以看出RMSE同時受γ和λ的影響。在γ逐漸增大,λ逐漸減小時,RMSE呈波浪形的下降,如果手動調(diào)節(jié)參數(shù),只會得到局部最優(yōu)解,而不會得到全局最優(yōu)解。
使用movielens-100k和movielens-1m數(shù)據(jù)集,在訓(xùn)練集/測試集切割比為0.5,0.6,0.7,0.8,0.9時按照按同樣的方式選取規(guī)則化參數(shù)λ和步長γ,得到了RMSE、MAE、MSE的最優(yōu)值和對應(yīng)的規(guī)則化參數(shù)λ和步長γ,結(jié)果如表1、表2所示。以表1第一行為例,切割比為0.5,RMSE求得的最好值為0.9290576,對應(yīng)的步長γ為0.09,對應(yīng)的規(guī)則化參數(shù)λ為0.006。
從表1和表2得到了下面兩個結(jié)論:
(1)評價性能指標(biāo)和切割比的關(guān)系
隨著訓(xùn)練集-測試集切割比逐漸增加,RMSE指標(biāo)、MAE指標(biāo)、MSE指標(biāo)逐漸降低,即推薦效果越來越好,說明隨著切割比逐漸增加,各種指標(biāo)的準(zhǔn)確率都逐漸提高。這是因為隨著訓(xùn)練集的數(shù)量越來越多,SVD++模型所訓(xùn)練的數(shù)據(jù)越來越大,推薦結(jié)果準(zhǔn)確性逐漸提高。但是在movielens-1m中,當(dāng)切割比為0.8和0.9時,RMSE和MSE最好值均比切割值為0.7的值高,這表明,在切割比為0.7時可以得到比切割比0.8和0.9更好的結(jié)果,這說明切割比并不是越高模型越準(zhǔn)確。因為即使切割比高時的數(shù)據(jù)集足夠大,但是可能因為對訓(xùn)練集過擬合導(dǎo)致不能在訓(xùn)練集上得到好的結(jié)果,從而準(zhǔn)確度降低。
(2)評價性能指標(biāo)和超參數(shù)γ、λ的關(guān)系
在求得的最好RMSE指標(biāo)中,步長γ在切割比變化時比較穩(wěn)定,除了切割比為0.5時γ的值是0.026,其他的γ大概都在0.04左右。這表明如果一個數(shù)據(jù)集在一個切割比上已經(jīng)求得了最優(yōu)解對應(yīng)的超參數(shù)的值,當(dāng)切割比發(fā)生改變時,可以選用相同的步長γ,然后在γ附近搜索可以快速求得最好的γ值。
5 結(jié)論
本文對SVD++算法的超參數(shù)選取問題進行了研究和實驗。通過選取兩個數(shù)據(jù)集movielens-100k和movielens-1m,分別求得RMSE,MAE,MSE獲得最好指標(biāo)的超參數(shù)γ和λ,并對實驗結(jié)果進行分析并得到了兩個重要的結(jié)論。在SVD++算法中選取超參數(shù)時,只需要先選取使得SVD++算法性能最好的超參數(shù),然后選取另一個超參數(shù),這樣計算復(fù)雜度從O(m減少為O(m+n)。同時,在使用SVD++算法時,當(dāng)超參數(shù)值通過確定后,如果訓(xùn)練集-測試集切割比變化時,只需要使用當(dāng)前的超參數(shù)值而不需要重新計算,從而使得SVD++算法計算時間大大減少。在SVD++的實際應(yīng)用中有參考意義。
參考文獻:
[1]王強. 基于協(xié)同過濾的個性化推薦算法研究及系統(tǒng)實現(xiàn)[D].成都:西南交通大學(xué),2017.
[2]Aggarwal C. Recommender systems[M]. New York: Springer International Publishing, 2016.
[3]楊博, 趙鵬飛. 推薦算法綜述[J]. 山西大學(xué)學(xué)報(自然科學(xué)版), 2011,34(3): 337-350.
[4]KOREN Y. Factorization meets the neighborhood: a multifaceted collaborative filtering model[C]//Proceedings of the 14th ACM SIGKDD international conference on Knowledge discovery and data mining. Nevada: ACM, 2008: 426-434.
[5]楊家慧. 基于用戶興趣的協(xié)同過濾推薦算法研究[D]. 濟南:山東師范大學(xué),2017.
[6]云祥富. 面向稀疏性數(shù)據(jù)的協(xié)同過濾推薦算法的研究[D].長春:吉林大學(xué),2017.
[7]BELL R, KOREN Y, VOLINSKY C. Modeling relationships at multiple scales to improve accuracy of large recommender systems[C]//Proceedings of the 13th ACM SIGKDD international conference on Knowledge discovery and data mining. California: ACM, 2007: 95-104.
[8]王鵬. 基于矩陣分解的推薦系統(tǒng)算法研究[D]. 北京: 北京交通大學(xué), 2015.
[9]RICCI F, ROKACH L, SHAPIRA B. Introduction to recommender systems handbook[M]//Recommender systems handbook. New York: springer US, 2011.
[10]AGGARWAL C C, SUN Z, YU P S. Online Generation of Profile Association Rules[C]// International Conference on Knowledge Discovery Data Mining. New York: KDD, 1998:129-133.
[11]RICH E. User modeling via stereotypes[J]. Cognitive science, 1979, 3(4): 329-354.
(責(zé)任編輯:周曉南)