王帥,孫福振,王紹卿,常萬(wàn)里,徐上上
(1.山東理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255049;2.約克大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,英國(guó) 約克 YO10 5GH)
網(wǎng)絡(luò)空間中蘊(yùn)含的信息爆炸式增長(zhǎng)制約了搜索引擎提供有效信息服務(wù)的能力,推薦系統(tǒng)作為一種主動(dòng)式信息服務(wù)的新方式,通過(guò)構(gòu)建用戶與項(xiàng)目關(guān)系模型實(shí)現(xiàn)對(duì)用戶需求的挖掘與匹配,為傳統(tǒng)搜索引擎提供可行的替代和補(bǔ)充方案以解決信息過(guò)載問(wèn)題。
協(xié)同過(guò)濾作為個(gè)性化推薦算法中最經(jīng)典的類型,用戶數(shù)據(jù)可以整理為用戶-項(xiàng)目評(píng)分矩陣[1]。對(duì)評(píng)分矩陣進(jìn)行矩陣分解可以完成對(duì)未知值的預(yù)測(cè)[2-3],同時(shí)減少計(jì)算時(shí)間與存儲(chǔ)空間。因此改進(jìn)奇異值分解最早由Koren應(yīng)用于隱語(yǔ)義模型LFM[4](latent factor model),將用戶-項(xiàng)目評(píng)分矩陣(m*n維)分解為用戶特征矩陣(m*k維)和項(xiàng)目特征矩陣(k*n維)。該模型存在的問(wèn)題是難以對(duì)推薦結(jié)果進(jìn)行合理的解釋,同時(shí)矩陣分解會(huì)造成評(píng)分矩陣的信息損失與預(yù)測(cè)失效[5]。
為充分利用輔助信息提升推薦效果,學(xué)術(shù)界提出了多種基于特征重構(gòu)的反饋模型,如SVD++[6],能夠有效利用隱信息預(yù)測(cè)評(píng)分,同時(shí)也存在算法復(fù)雜度高和信息損失問(wèn)題。Wang等提出了矩陣分解的非負(fù)模型NMF[7](non-negative matrix factorization),在理論上存在可行性,但由于特征非負(fù)的限定導(dǎo)致預(yù)測(cè)誤差較大,需要收斂效率極強(qiáng)的優(yōu)化模型才可得到較好效果。Yu等提出了圖信息模型[8](GraphInfo),通過(guò)構(gòu)建用戶與項(xiàng)目的拉普拉斯矩陣,利用拓?fù)鋱D關(guān)系挖掘同類間的相似性信息,并通過(guò)GRALS優(yōu)化[9]將拉普拉斯矩陣融入正則項(xiàng)。該模型提供了一種可擴(kuò)展的模型,但對(duì)圖信息內(nèi)部的優(yōu)化極其復(fù)雜且對(duì)結(jié)果不可解釋。上述模型難以將輔助信息數(shù)據(jù)通過(guò)建模轉(zhuǎn)為評(píng)分矩陣需要的邏輯回歸類型[10-13],對(duì)評(píng)分預(yù)測(cè)提高不明顯,輔助信息對(duì)推薦結(jié)果的解釋是單薄且不可靠的。
本文針對(duì)推薦過(guò)程中的信息損失和輔助信息建模問(wèn)題,提出一種重構(gòu)特征的代反饋推薦模型。通過(guò)向量相似性計(jì)算重構(gòu)特征,獲得代反饋信息,增強(qiáng)訓(xùn)練過(guò)程中的特征挖掘能力,并完成對(duì)輔助信息的交替反饋。運(yùn)用代反饋信息融入矩陣分解模型對(duì)評(píng)分預(yù)測(cè)進(jìn)行補(bǔ)充,以提高推薦的準(zhǔn)確性。
特征重構(gòu)首先將評(píng)分矩陣?yán)枚诸惙纸鉃橛^測(cè)矩陣與未觀測(cè)矩陣。利用k最近鄰模型(kNN)排序?qū)τ^測(cè)矩陣中用戶與項(xiàng)目的相似性進(jìn)行排序,排序結(jié)果利用jaccard系數(shù)對(duì)每個(gè)相似單元進(jìn)行權(quán)值化特征表示,將每個(gè)相似單元的評(píng)分與權(quán)值特征結(jié)合,形成用戶與項(xiàng)目的顯性特征分量。對(duì)顯性特征分量進(jìn)行高斯標(biāo)準(zhǔn)化,求和獲得用戶與項(xiàng)目的顯性特征,將未觀測(cè)矩陣進(jìn)行矩陣分解得到隱性特征,將顯性特征與隱性特征結(jié)合得到重構(gòu)特征。
提取評(píng)分矩陣的已觀測(cè)數(shù)據(jù),對(duì)未觀測(cè)數(shù)據(jù)進(jìn)行矩陣分解以緩解特征信息損失問(wèn)題。如圖1所示,將原評(píng)分矩陣分為觀測(cè)矩陣與未觀測(cè)矩陣:
(1)
圖1 User-item矩陣的二分類Fig.1 User-item matrix binary classification
對(duì)顯性特征提取需要得到用戶與項(xiàng)目的相似實(shí)體,對(duì)具有相似性的同類實(shí)體進(jìn)行排序。用戶與項(xiàng)目的相似性使用kNN計(jì)算得到,kNN使用歐式距離表示,其定義為
(2)
用kNN得到的前k個(gè)相似性數(shù)據(jù)組成用戶與項(xiàng)目的相似排序,排序定義為:
(3)
(4)
式中Θ(ui)和Θ(vi)分別表示用戶ui與項(xiàng)目vi經(jīng)過(guò)kNN排序之后的相似實(shí)體組合。
為了提取用戶與項(xiàng)目的每個(gè)已觀測(cè)數(shù)據(jù)的特征,需要對(duì)排序集合中每個(gè)相似實(shí)體與集合的總體實(shí)體對(duì)比計(jì)算權(quán)值,即顯性特征分量的權(quán)值化特征。權(quán)值運(yùn)用jaccard系數(shù)計(jì)算,權(quán)值特征的計(jì)算過(guò)程如下:
(5)
(6)
式中:Γui與Γvi分別代表用戶ui或項(xiàng)目vi的權(quán)值化特征,由指示函數(shù)Y與jaccard函數(shù)J的乘積得到;指示函數(shù)Y指示用戶ui與uk在同一項(xiàng)目上有評(píng)分或項(xiàng)目vi與vk在同一用戶上有評(píng)分。
每個(gè)用戶和項(xiàng)目的顯性特征分量由權(quán)值與每個(gè)已觀測(cè)評(píng)分的積構(gòu)成。定義為
(7)
每個(gè)用戶的顯性特征分量是行向量,而每個(gè)項(xiàng)目的顯性特征分量是列向量。由于觀測(cè)評(píng)分矩陣是稀疏矩陣,因此顯性特征分量也是稀疏的。由圖2的示例可知,用戶u1的顯性特征分量存在4個(gè),項(xiàng)目v1的顯性特征分量存在2個(gè)。
圖2 權(quán)值特征計(jì)算過(guò)程Fig.2 Weight characteristic calculation process
顯性特征由每個(gè)特征分量的高斯標(biāo)準(zhǔn)化向量之和表示。定義為:
(8)
(9)
式中:μ(φui)與μ(φvi)代表用戶ui與項(xiàng)目vi顯性特征分量的均值;σ(φui)與σ(φvi)代表用戶ui與項(xiàng)目vi顯性特征分量的高斯標(biāo)準(zhǔn)差。利用式(8)和式(9)計(jì)算所得到的顯性特征Δui,Δvi是將觀測(cè)矩陣中每個(gè)用戶與項(xiàng)目的特征降維后的單向量形式,在減少信息損失的同時(shí)亦降低重構(gòu)特征模型的復(fù)雜度。
未觀測(cè)矩陣分解之后得到用戶與項(xiàng)目的隱性特征。分解公式為
(10)
將用戶與項(xiàng)目的顯性特征與隱性特征組合為用戶特征向量與項(xiàng)目特征向量,重構(gòu)表達(dá)式為
(11)
顯性特征將已觀測(cè)數(shù)據(jù)中相關(guān)信息高度提取并將輔助信息一并融入,能夠充分表達(dá)用戶與項(xiàng)目在已觀測(cè)數(shù)據(jù)中表現(xiàn)的顯性信息。隱性特征來(lái)源于未觀測(cè)數(shù)據(jù)的矩陣分解模型,由于未觀測(cè)矩陣中有效信息含量較少,因此隱性特征需要從顯性特征中挖掘輔助信息。顯性特征與隱性特征的重構(gòu)能夠相互影響,使得模型擁有表達(dá)復(fù)雜特征的基礎(chǔ)能力,也為輔助信息融入評(píng)分預(yù)測(cè)提供了矩陣化的處理模式。
完成顯性特征和隱性特征的重構(gòu)后,對(duì)矩陣分解的特征乘積交互過(guò)程做補(bǔ)充預(yù)測(cè),提高預(yù)測(cè)結(jié)果的準(zhǔn)確性與可解釋性。預(yù)測(cè)過(guò)程是將顯性特征與隱性特征組合,采用向量間相互投影的運(yùn)算規(guī)則,定義為代反饋模型,公式為
(12)
圖3所示是利用向量相似性將用戶與項(xiàng)目特征向量相互投影,在交互過(guò)程中將用戶顯性特征信息投影至項(xiàng)目隱性特征,以及項(xiàng)目顯性特征信息投影至用戶隱性特征。通過(guò)交互過(guò)程完成對(duì)用戶信息與項(xiàng)目信息的交替反饋,構(gòu)成完整的特征信息。
圖3 代反饋模型示例Fig.3 Generation feedback model example
利用向量投影將輔助信息進(jìn)行補(bǔ)充反饋,反饋過(guò)程如圖4所示。在用戶對(duì)項(xiàng)目進(jìn)行評(píng)分的過(guò)程中,利用用戶輔助信息解釋項(xiàng)目的隱含特征,反之亦可用項(xiàng)目輔助信息解釋用戶的隱含特征。例如該項(xiàng)目可能適合某年齡段,某性別,某職業(yè)的用戶;該用戶喜歡某類別,某作者,某名稱的項(xiàng)目。
代反饋模型利用交替反饋過(guò)程提供特征的全信息能力,實(shí)現(xiàn)特征的可解釋化與顯隱性復(fù)雜特征表達(dá)能力。
圖4 輔助信息的代反饋Fig.4 Generational feedback of auxiliary information
表1的初始化參數(shù)是觀測(cè)矩陣,對(duì)觀測(cè)矩陣中所有的用戶與項(xiàng)目分別計(jì)算相似性。計(jì)算過(guò)程遍歷觀測(cè)矩陣中所有的用戶與項(xiàng)目,在遍歷過(guò)程中分別對(duì)用戶和項(xiàng)目利用kNN排序模型中的歐幾里得距離作為相似性的判別標(biāo)準(zhǔn),將計(jì)算結(jié)果加入相似性集合Θ中,取集合中前k個(gè)相似實(shí)體作為最終結(jié)果。k的取值由特征維度決定。
表1 顯性特征kNN排序偽代碼Tab.1 Dominant feature kNN ranking pseudo code
表2的初始化是每個(gè)用戶與項(xiàng)目實(shí)體的相似性集合。計(jì)算過(guò)程是對(duì)每個(gè)實(shí)體與其相似性集合中的其他實(shí)體遍歷計(jì)算對(duì)應(yīng)元素特征,利用jaccard計(jì)算本體與實(shí)體在對(duì)應(yīng)元素上的權(quán)值特征。當(dāng)實(shí)體之間在同一行或同一列的對(duì)應(yīng)元素同時(shí)存在評(píng)分時(shí),則Y(0,1)函數(shù)結(jié)果為1,否則為0。經(jīng)過(guò)Y(0,1)函數(shù)的判別后,將權(quán)值特征寫入實(shí)體的對(duì)應(yīng)矩陣。
對(duì)每個(gè)權(quán)值特征標(biāo)準(zhǔn)化,其計(jì)算過(guò)程為:首先對(duì)每個(gè)實(shí)體的所有權(quán)值特征計(jì)算其均值,再由實(shí)體的每個(gè)權(quán)值特征減去均值的平方之后再除以權(quán)值特征的維度值,最后對(duì)此結(jié)果取平方根得到每個(gè)權(quán)值特征的高斯標(biāo)準(zhǔn)化分量。
表2 顯性特征權(quán)重偽代碼Tab.2 Explicit feature weight pseudo code
表3的輸入是權(quán)重特征與其高斯標(biāo)準(zhǔn)化分量,目標(biāo)是計(jì)算用戶與項(xiàng)目的顯性特征向量與重構(gòu)特征向量。首先通過(guò)權(quán)值特征減去其均值再除以對(duì)應(yīng)的高斯標(biāo)準(zhǔn)化分量得到每個(gè)顯性特征分量,將顯性特征分量累加得到每個(gè)用戶或項(xiàng)目實(shí)體的線性特征向量。然后對(duì)未觀測(cè)矩陣進(jìn)行矩陣分解,將顯性特征與隱性特征進(jìn)行重構(gòu)得到新的用戶與項(xiàng)目特征向量。
表3 顯性特征與隱性特征重構(gòu)偽代碼Tab.3 Features reconstruction pseudo code
表4是代反饋預(yù)測(cè)模型的算法流程,目標(biāo)是通過(guò)對(duì)參數(shù)的不斷迭代更新得到最優(yōu)模型,從而進(jìn)行預(yù)測(cè)。首先計(jì)算當(dāng)前預(yù)測(cè)評(píng)分與實(shí)際評(píng)分的誤差求解Λ矩陣,然后根據(jù)誤差函數(shù)對(duì)代反饋矩陣E和隱性特征矩陣W、H求解梯度,利用隨機(jī)梯度下降法對(duì)代反饋矩陣與隱性特征矩陣進(jìn)行參數(shù)更新構(gòu)建預(yù)測(cè)模型。
表4 代反饋預(yù)測(cè)算法偽代碼Tab.4 Generation feedback prediction algorithm pseudo code
實(shí)驗(yàn)數(shù)據(jù)來(lái)自美國(guó)Minnesota大學(xué)的MovieLens站點(diǎn)提供的數(shù)據(jù)集(https://grouplens.org/datasets/movielens)與Yahoo提供的R4-Yahoo數(shù)據(jù)集(https://webscope.sandbox.yahoo.com)。兩個(gè)數(shù)據(jù)集的特征見(jiàn)表5。
表5 數(shù)據(jù)集特征Tab.5 Dataset features
評(píng)價(jià)標(biāo)準(zhǔn)選用平均絕對(duì)誤差MAE(mean absolute error)與均方根誤差RMSE(root mean squared error)。
實(shí)驗(yàn)環(huán)境為Windows系統(tǒng)平臺(tái),Intel(R) Xeon(R) CPU E3 1230 V2 @3.30 GHz,32 GB內(nèi)存。開(kāi)發(fā)平臺(tái)為Windows Visio Studio,編程語(yǔ)言為Qt,數(shù)據(jù)對(duì)比工具為Matlab。
對(duì)比模型采用SVD++[6],非負(fù)矩陣分解模型NMF[7],圖信息模型GraphInfo[8]。結(jié)果分別從MAE與RMSE,訓(xùn)練時(shí)間方面進(jìn)行比較,如圖5—圖7所示。
圖5 MovieLens中的RMSE與MAEFig.5 RMSE and MAE in MovieLens
圖6 R4-Yahoo中的RMSE與MAEFig.6 RMSE and MAE in R4-Yahoo
從圖5與圖6的對(duì)比結(jié)果可以發(fā)現(xiàn),本文重構(gòu)特征的代反饋模型RFGF利用用戶特征與項(xiàng)目特征交替反饋充分挖掘了潛在信息,因而在4種模型中的效果最好。而且隨著數(shù)據(jù)集的擴(kuò)大,RFGF模型在R4-Yahoo上的效果更加明顯。由此證明RFGF模型在獲取更深層次的特征能力上強(qiáng)于其他3種模型,在深層次特征轉(zhuǎn)化為預(yù)測(cè)結(jié)果的過(guò)程中也具有優(yōu)勢(shì)。
由圖7可知,RFGF模型不僅在RMSE指標(biāo)上優(yōu)于其他3種基線模型,且特征迭代更新首次便將RMSE的結(jié)果收斂在1左右,表明RFGF模型不僅擁有深層次特征挖掘能力與特征準(zhǔn)確結(jié)合的能力,同時(shí)也擁有較高的模型迭代效率。
圖7 MovieLens中的RMSE迭代效率Fig.7 RMSE iteration efficiency in MovieLens
重構(gòu)特征豐富了特征的表達(dá)能力并且完善了特征信息,代反饋推薦模型通過(guò)向量投影思想解釋用戶與項(xiàng)目的交互過(guò)程,提高了模型對(duì)隱含信息的挖掘能力。特征重構(gòu)的代反饋模型緩解了矩陣分解帶來(lái)的信息丟失與預(yù)測(cè)失效的問(wèn)題,實(shí)驗(yàn)結(jié)果表明推薦質(zhì)量明顯提升。將代反饋模型中描述顯隱性特征的相似度度量方法與圖信息模型結(jié)合,融合跨類別的異構(gòu)信息,有待進(jìn)一步提升推薦準(zhǔn)確率。