田海梅
(金陵科技學院計算機工程學院,江蘇 南京 211169)
隨著互聯(lián)網(wǎng)飛速發(fā)展,信息數(shù)量不斷增長,而人收集、鑒別信息的能力有限,于是推薦系統(tǒng)的重要性顯現(xiàn)出來。推薦系統(tǒng)[1-2]分析用戶的歷史行為和愛好需求,使用合適的推薦算法挖掘用戶的潛在興趣,來為用戶提供有價值的推薦。推薦一般有兩個目的,一個是激發(fā)用戶去做某個事情,另一個是解決信息過載問題。按照建模方式的不同,推薦系統(tǒng)分為協(xié)同過濾推薦、基于知識的推薦、基于內(nèi)容的推薦和多種特征混合推薦等。目前推薦系統(tǒng)已經(jīng)運用到很多方面,比如商品平臺和社交平臺等[3]。許多電商通過推薦系統(tǒng)來給用戶進行個性化推薦,幫助用戶快速發(fā)現(xiàn)感興趣的商品從而給企業(yè)帶來可觀的收入[4-6]。
在眾多協(xié)同過濾推薦算法中,矩陣分解算法具有可擴展性并易于實現(xiàn),成為最為普遍和最受歡迎的一種協(xié)同推薦算法。在推薦系統(tǒng)中,矩陣分解算法可以解決數(shù)據(jù)的稀疏性問題,比其他協(xié)同過濾推薦算法更節(jié)省內(nèi)存,更精確。一般情況下矩陣分解將構(gòu)建的用戶與項目對應(yīng)的評分矩陣分解為兩個低維矩陣乘積,因沒有考慮項目與項目之間的非對稱相似性問題,最終推薦結(jié)果不理想。為了解決這一問題,一些學者已經(jīng)提出了解決方法。文獻[7]提出通過信任感知來進行矩陣分解,從而提高推薦系統(tǒng)的準確性。文獻[8]和[9]分別提出利用項目與項目屬性之間的相互關(guān)系來進行矩陣分解,以及通過一種用戶間的非對稱的相似性方法來進行矩陣分解,從而達到推薦的效果。以上方法都沒有考慮項目本身的潛在知識信息。本文在矩陣分解技術(shù)的基礎(chǔ)上融入項目本身潛在的知識信息,加上項目與項目之間的不對稱相似度,從而提高推薦算法的準確率。
對項目與用戶之間的評分矩陣進行傳統(tǒng)的矩陣分解得到的向量,稱為低維向量[10]。在推薦系統(tǒng)中,用戶(User)對物品(Item)的推薦評分,用物品和用戶對應(yīng)的隱向量的內(nèi)積來表示[11-12]。
矩陣分解算法的主要思想是:首先構(gòu)造一個由用戶ID、項目ID、評分組成的評分矩陣。然后將構(gòu)建的評分矩陣通過傳統(tǒng)的矩陣分解算法轉(zhuǎn)化成兩個低維特征矩陣的乘積。最后通過這兩個低維特征矩陣去估算那些沒有做出評價的缺失項目[13-14]。
矩陣分解中用戶的隱藏特征矩陣用P表示,項目的隱藏特征矩陣用Q表示。矩陣分解首先對構(gòu)建的原始評分矩陣R進行分析,然后學習矩陣P和Q,最后缺失項用R來表示,R由P和Q預(yù)測。
設(shè)P∈RK×N和Q∈RK×M,其中向量的維數(shù)用K表示,K?min(N,M),然后用分解的低維矩陣P和Q的乘積來近似表示R,如公式(1)所示:
R≈PTQ
(1)
(2)
傳統(tǒng)的矩陣分解利用損失函數(shù)和誤差平方最小化來不斷學習矩陣P和Q,如公式(3)所示:
(3)
通過傳統(tǒng)的矩陣分解算法得到用戶u與項目i的隱向量,雖然降低了隱向量的維度,但是并沒有該用戶及其評價過的項目特征的許多附件信息,用戶u的隱向量跟真實情況之間有一些差別[15-18]。
定義1給定關(guān)聯(lián)開放數(shù)據(jù)(linked open data,LOD)中兩個資源r,s∈R,Fr和Fs分別表示它們的特征集合,Fr∩Fs是r和s的共同特征,r和s共同的分區(qū)信息內(nèi)容(partitioned information content,PIC)值占r的PIC值的比例由公式(4)定義,占s的PIC值的比例由公式(5)定義:
(4)
(5)
CPIC的取值范圍為[0,1],CPIC是一種非對稱的方式,即CPIC(r,s)≠CPIC(s,r)。
EPIC(r,s)=1-exp(-CPIC(r,s))
(6)
EPIC(s,r)=1-exp(-CPIC(s,r))
(7)
EPIC的取值范圍為[0,1],EPIC是一種非對稱的方式,即EPIC(r,s)≠EPIC(s,r)。
定義2給定LOD中兩個資源r,s∈R,Fr和Fs分別表示它們的特征集合,Fr-Fs表示在r中而不在s中的特征,Fs-Fr表示在s中而不在r中的特征。兩個資源之間差異化的DPIC由公式(8)和公式(9)定義:
(8)
DPIC(r,s)=DPIC(s,r)
(9)
DPIC的取值范圍為(0,1],DPIC是一種對稱的度量方式,分母加1是防止分母為0。本文采用以上兩個概念EPIC和DPIC,提出了一種基于PIC的非對稱的語義相似度計算方法AEPICSS,用來計算LOD中資源之間的相似度,AEPICSS由公式(10)和(11)定義:
AEPICSS(r,s)=EPIC(r,s)·DPIC(r,s)
(10)
AEPICSS(s,r)=EPIC(s,r)·DPIC(s,r)
(11)
AEPICSS的取值范圍為[0,1],因為CPIC是非對稱的,AEPICSS顯然是一種非對稱的基于LOD的項目相似度計算方法,即AEPICSS(r,s)≠AEPICSS(s,r)。
圖1 改進的矩陣分解模型流程
早期的基于矩陣分解的推薦算法是對用戶與項目之間對應(yīng)的評分矩陣進行分解,沒有充分考慮項目屬性附加信息,對項目與項目之間的不對稱相似性問題缺乏考慮,導致推薦的準確率一般。
本文改進的矩陣分解算法的主要思想是:在早期矩陣分解的基礎(chǔ)上融入項目本身潛在的知識信息,加上項目與項目之間的不對稱相似度,從而提高推薦算法的準確率。對早期的矩陣分解方法進行改進后的流程如圖1所示。
融合后的改進算法目標函數(shù)如公式(12)所示。
(12)
設(shè)有M個項目,其中rit是第i個用戶對第t個項目的評分。當rit>0時,μ=1,δ=1,ε=0;當rit=0時,μ=0,δ=0,ε=1。simtj是項目t和j的相似度。其中sim用加權(quán)非對稱(asymmetric)相似度來度量。
(13)
在推薦系統(tǒng)中,一般采用均方差(mean square error,MSE)、均方根誤差(root mean square error,RMSE)和平均絕對值誤差(mean absolute error,MAE)來對比兩個數(shù)值之間的不同。MSE是指估計值與真實值之間的差異值進行平方的期望值。RMSE是指預(yù)測模型對實驗數(shù)據(jù)的精確度的描述,是均方差的算術(shù)平方根,RMSE越高表示精確度越低,RMSE越低表示精確度越高。實際的測值誤差本文用MAE來表示。
(14)
(15)
(16)
本文采用MovieLens 100k、MovieLens 1M和Netflix數(shù)據(jù)集。MovieLens是用戶對電影評分的數(shù)據(jù)集,包括用戶ID、電影ID和用戶對電影的對應(yīng)評分,MovieLens 100k與MovieLens 1M由GroupLens公司提供。Netflix數(shù)據(jù)集由Netflix公司提供,由于該數(shù)據(jù)集十分龐大,本文從中隨機選取990個用戶在1 499個物品上的49 933條評分記錄,且每個用戶至少對20部電影進行評分。這3個數(shù)據(jù)集都被廣泛用于推薦系統(tǒng)研究,相關(guān)信息如表1所示。
表1 數(shù)據(jù)集統(tǒng)計結(jié)果
本文的訓練數(shù)據(jù)為隨機從構(gòu)建好的用戶項目評分矩陣中抽取70%,測試數(shù)據(jù)為評分矩陣中剩余的30%。評價指標用MSE、RMSE和MAE來表示。本文選取傳統(tǒng)的矩陣分解(basic MF)、非負矩陣分解(non-negative MF)和SVD++模型進行了對比實驗,釆用多次實驗的平均值作為結(jié)果。參數(shù)設(shè)定過程中,為了與基準算法進行公平的比較,視迭代次數(shù)達到100或者訓練誤差小于10-6時本文模型的學習過程達到收斂。
學習速率α和正則項參數(shù)β通常設(shè)置為很小的值。用3個數(shù)據(jù)集上的RMSE來選擇這兩個參數(shù),對于MovieLens 100k,α取0.003時RMSE最小,β取0.007時RMSE最小;對于MovieLens 1M,α取0.001時RMSE最小,β取0.008時RMSE最小;對于Netflix,α取0.003時RMSE最小,β取0.007時RMSE最小。特征數(shù)通常代表物品的分類數(shù),在實驗中,當特征數(shù)小于70時RMSE變化很小。在下面的實驗中,選擇20作為特征數(shù)。
參數(shù)設(shè)置為最優(yōu)值、特征個數(shù)設(shè)置為20時的結(jié)果如表2所示。從表2可以看出,本文的改進方法優(yōu)于所有的對比方法,即MSE、RMSE和MAE均低于所有的對比方法,其中在Netflix數(shù)據(jù)集上的MSE比其他方法的MSE最多提升了14.31%。本文方法的準確率,在MovieLens 100k數(shù)據(jù)集上較SVD++提高了0.9%,在MovieLens 1M數(shù)據(jù)集上較SVD++提高了6.24%,在Netflix數(shù)據(jù)集上較SVD++提高了7.81%。
表2 各方法在不同數(shù)據(jù)集上的結(jié)果
本文結(jié)合改進的矩陣分解薦模型和不對稱因子模型的優(yōu)點,在矩陣分解技術(shù)的基礎(chǔ)上融合項目本身潛在的附加信息,并考慮項目之間的不對稱相似度,從而大大提高推薦算法的準確率。同時數(shù)據(jù)的稀疏性也有所降低。改進的矩陣分解算法對整個推薦系統(tǒng)中的一些應(yīng)用起到了很好的優(yōu)化作用。從MovieLens 100k、MovieLens 1M和Netflix數(shù)據(jù)集上的實驗數(shù)據(jù)來看,本文方法的MSE、RMSE、MAE值均小于所有的對比方法。實驗結(jié)果表明,本文方法有效地提高了推薦的性能,可以在推薦系統(tǒng)中得到更好的推薦效果,這說明本文采用的不對稱因子模型已經(jīng)很好地整合到改進的矩陣分解中。本文的方法提升了推薦的準確性,網(wǎng)絡(luò)線上商城、美食團購推薦平臺可根據(jù)用戶的歷史評分和項目的屬性進行推薦,給用戶帶來更好的使用感受;但是在空白數(shù)據(jù)填充和冷啟動方面仍存在一定的問題,這將是下一步的研究方向。