陳平華,朱 禹
(廣東工業(yè)大學 計算機學院,廣東 廣州 510006)
針對推薦系統(tǒng)面臨的數(shù)據(jù)稀疏性問題,基于矩陣分解的推薦算法應(yīng)運而生。傳統(tǒng)的基于矩陣分解的推薦算法只考慮了對用戶項目評分矩陣進行分解,沒有充分利用數(shù)據(jù)信息,沒有考慮項目之間的相似性問題,導致推薦效果不佳。針對這些問題,學者們提出了一系列的解決方法。文獻[1]通過用戶之間的信任關(guān)系來提高推薦系統(tǒng)的準確性,提出了一種基于信任傳播的矩陣分解模型,但信任關(guān)系數(shù)據(jù)通常較難獲取。文獻[2]提出了一種基于項目屬性耦合性的矩陣分解模型,這種方法利用項目屬性之間的耦合關(guān)系作為隱含信息,結(jié)合矩陣分解模型對用戶評分數(shù)據(jù)約束求解。文獻[3]提出了一種基于非對稱的用戶相似性方法應(yīng)用于矩陣分解模型,利用用戶的相似性信息提高了推薦系統(tǒng)的準確性。如果在矩陣分解技術(shù)的基礎(chǔ)上融合項目本身潛在的知識信息,將會進一步提高推薦算法的準確率。
近年來,隨著知識圖譜技術(shù)的不斷取得進展,包含豐富實體和關(guān)系信息的知識庫數(shù)據(jù)大量涌現(xiàn),例如Freebase[4],YOGA[5],Wikidata[6],DBpedia[7]等,這些知識庫提供了豐富的知識信息,知識圖譜也引起了學術(shù)界廣泛的關(guān)注和研究。文獻[8]使用異構(gòu)信息網(wǎng)絡(luò)表示知識圖譜中的項目和項目屬性關(guān)系,并采用基于貝葉斯的協(xié)同過濾解決實體推薦問題。文獻[9]采用擴散激活技術(shù),將知識圖譜中的網(wǎng)絡(luò)結(jié)構(gòu)特性融入推薦系統(tǒng)中。文獻[10]提出了協(xié)同知識庫嵌入框架,將知識圖譜中的語義信息作為隱性反饋融入?yún)f(xié)同過濾中,加強了協(xié)同過濾算法的性能。文獻[11]利用知識圖譜表示學習計算物品之間的語義相似性,將物品的語義信息融入?yún)f(xié)同過濾。現(xiàn)有的研究表明,知識圖譜表示學習可以將知識圖譜中的實體和關(guān)系嵌入在低維的向量空間中,從而在向量空間中進行計算實體和關(guān)系的語義聯(lián)系,有效解決冷啟動和數(shù)據(jù)稀疏問題。與上述工作相比,本文提出了一種融合知識圖譜表示學習和矩陣分解的推薦方法,將矩陣分解模型與知識圖譜表示學習后的項目潛在知識信息相結(jié)合。該模型首先通過知識圖譜表示學習算法獲取項目的潛在知識信息,再將項目的潛在知識信息融入到矩陣分解模型中,從而產(chǎn)生更為準確的推薦結(jié)果。
矩陣分解方法的基本思想是認為每個用戶和每個項目都有自己的特征,用戶的興趣只受少數(shù)因素影響,利用矩陣分解的方法可以從用戶項目交互矩陣中分解出用戶特征矩陣和項目特征矩陣。可以將矩陣分解模型抽象為如下公式
R=UVT
(1)
式中:U∈Rm×d和V∈Rn×d分別代表用戶項目交互矩陣分解后的d維用戶特征矩陣和d維項目特征矩陣。通過分解后低維度的用戶特征矩陣和項目特征矩陣的乘積UVT來近似擬合已有的項目真實評分矩陣。模型的學習主要通過最小化如下目標函數(shù)進行訓練

(2)


(3)


圖1 TransE模型
TransE在處理一對一的關(guān)系上得到很好的應(yīng)用,但在處理復雜關(guān)系(一對多,多對一,多對多)時存在不足。為了解決TransE在處理復雜關(guān)系時的不足,文獻[14]提出了TransR模型,TranR的基本思想是每個實體都有多種屬性,不同的關(guān)系所側(cè)重的實體屬性不同。兩個實體在同一實體空間可能比較相似,但是在特定的關(guān)系空間可能會有所差別。所以TransR模型定義了一個映射矩陣,將實體從實體空間投影到特定的關(guān)系空間后,再建立兩個實體之間的翻譯關(guān)系,如圖2所示。

圖2 TransR模型
其中Mr是關(guān)系r的映射矩陣,hr和tr分別是頭實體h和尾實體t在關(guān)系空間r中的向量表示。它們之間的關(guān)系可以用下式表示
hr=hMr
(4)
tr=tMr
(5)
TransR模型的目標函數(shù)可以定義為下式

(6)
式中:max(0,f(x))是最大間隔函數(shù),用于加強表示學習后的區(qū)分能力。fr(x)是損失函數(shù),定義如下
(7)
γ是一個邊際參數(shù)。S是正例三元組,S′是負例三元組。負例三元組S′采用頭實體或者尾實體隨機替換為其它任意實體的方式來得到,可以表示為
(8)
式中:h′和t′分別表示被替換的頭實體和尾實體。
矩陣分解求解過程中,通過梯度下降算法最優(yōu)化目標函數(shù)式(3)求出用戶特征矩陣和項目特征矩陣,進而求出用戶對項目評分的近似值。在此求解過程中,可能會丟失項目潛在的信息。其中,項目的相似性就是很重要的潛在信息。考慮項目之間的潛在因子特征,我們提出了融合知識圖譜表示學習和矩陣分解的推薦算法(記為TransR-MF)。
TransR-MF的基本思想是高度相似的項目它們矩陣分解后的向量表示也是高度相似的。比如,項目v1和項目v2相似,則代表他們的向量也是相似的。知識圖譜表示學習將項目實體嵌入低維的向量空間,通過相似度函數(shù)計算低維向量空間中項目之間的相似性,將相似性潛在因子融入矩陣分解模型中,以此融入項目間的隱含信息。
融合知識圖譜表示學習和矩陣分解的推薦算法的流程步驟如下:
步驟1 首先通過知識圖譜表示學習TransR算法訓練得到實體的向量表達;
步驟2 將用戶項目交互矩陣中的項目實體與知識圖譜中的實體進行匹配;
步驟3 選取知識圖譜中與待預(yù)測項目最相似的k個近鄰融入矩陣分解模型;
步驟4 通過模型學習求解矩陣分解后的低維用戶和項目矩陣,并計算得出項目的預(yù)測評分。
TransR-MF算法如圖3所示。
融合后的算法目標函數(shù)如下
(9)

圖3 TransR-MF算法
上述公式中第一項來自矩陣分解模型;第二項和第三項分別是防止用戶特征矩陣和項目特征矩陣過擬合的正則項;第三項是通過知識圖譜表示學習計算出的項目相似性潛在信息,這里NVj表示項目Vj的最相似的k個近鄰集合。其中sim(Vj,Vk)是相似度函數(shù),本文使用余弦相似性函數(shù)。余弦相似性函數(shù)是一種計算兩個向量之間相似度的方法,其值的范圍介于[-1,1]區(qū)間,如式(10)所示,其中d是TransR模型訓練出來的實體向量的維度。這里為了取正數(shù),通過式(11)進行標準化處理
(10)
f(x)=(1+x)/2
(11)
本文采用梯度下降算法最小化目標函數(shù)來求解用戶特征矩陣U和物品特征矩陣V,利用式(12)和式(13)求解
(12)

(13)
本節(jié)主要對上述提出的TransR-MF算法進行驗證與評估,實驗數(shù)據(jù)集采用MovieLens-1M,該數(shù)據(jù)集主要包括6040個MovieLens用戶對3900部電影的1 000 209條評分紀錄數(shù)據(jù)[15]。
知識圖譜數(shù)據(jù)集采用抓取IMDB電影資料庫[16]的方式建立。IMDB是一個包含電影類型、電影演員、電影導演、電視節(jié)目、和電影制作等信息的在線電影數(shù)據(jù)庫。截止2016統(tǒng)計,IMDB共收錄了4 007 049部作品以及7 593 030個人物的數(shù)據(jù)[17]。電影知識圖譜的構(gòu)建,本文參考了文獻[18]的構(gòu)建流程。抓取IMDB電影資料庫的電影數(shù)據(jù),在對數(shù)據(jù)結(jié)構(gòu)化之后進行知識抽取,抽取的數(shù)據(jù)以三元組的形式存儲,電影知識圖譜構(gòu)建過程如圖4所示。

圖4 知識圖譜構(gòu)建流程
經(jīng)過處理后最終得到27 424個實體、12種關(guān)系屬性和218 115條三元組數(shù)據(jù)。關(guān)系屬性中保留了導演、主演、影片類別、影片發(fā)行國家、影片語言等12種關(guān)系。基本數(shù)據(jù)統(tǒng)計見表1。

表1 電影圖譜數(shù)據(jù)統(tǒng)計
由于IMDB電影資料庫構(gòu)建的電影實體和Mo-vieLens-1M數(shù)據(jù)集中的電影存在無法全部匹配的情況。例如,電影Toy Story(1995)和電影Toy Story是同一部電影,但因為添加電影發(fā)行年份的原因造成IMDB電影實體和Mo-vieLens電影名無法完全匹配。此外,例如電影Cup,The(Ph?rpa)和電影The Cup實質(zhì)上是同一部電影因為Mo-vieLens添加了外文名導致無法匹配。
為了將IMDB電影資料庫抽取的電影實體與Mo-vieLens-1M電影匹配,本文采用實體鏈接方法將Mo-vieLens-1M數(shù)據(jù)集中的每部電影映射到知識圖譜中。經(jīng)過映射后最終匹配了3627部電影實體數(shù)據(jù),MovieLens-1M中93%的電影能夠準確映射到知識圖譜中,這足以進行后續(xù)的工作。
本文采用5折交叉驗證的方法進行訓練和測試。其中,80%的數(shù)據(jù)用于訓練,20%的數(shù)據(jù)用于驗證。對于接下來的實驗,最終的實驗結(jié)果通過5次實驗求平均值的方式得出。
本文采用平均絕對值誤差(MAE)和均方根誤差(RMSE)兩個指標對實驗結(jié)果進行評估。平均絕對誤差是所有項目實際評分和預(yù)測評分誤差的絕對值之和的平均值,它衡量了真實值和預(yù)測評分之間的平均差異。均方根誤差是所有項目真實評分和預(yù)測評分誤差的平方之和的平均值的根值。
MAE和RMSE是推薦系統(tǒng)評分預(yù)測評價指標中常用的兩種度量方式。MAE和RMSE分別定義如下公式所示
(14)
(15)
平均絕對誤差和均方根誤差中定義的T表示的是需要預(yù)測的項目集合,Rij是用戶ui對項目vj的真實評分值,rij是模型的預(yù)測評分值。MAE和RMSE的值越小,代表推薦的結(jié)果越準確。
實驗硬件環(huán)境采用ThinkCentre M8400t臺式機,處理器為Intel Core i7 4770S,內(nèi)存大小為8 GB,硬盤大小為1 TB,軟件環(huán)境采用Python2.7。
為了驗證本文提出的TransR-MF算法的推薦準確度,我們對比了基于矩陣分解的其它算法:非負矩陣分解算法[19](non-negative matrix factorization,NMF)、概率矩陣分解算法[20](probabilistic matrix factorization,PMF)、融合因子學習的矩陣分解算法[21](factor wise matrix factorization,F(xiàn)WMF)、結(jié)合項目偏置的矩陣分解算法[22](biased matrix factorization,BMF)。
本文的推薦算法TransR-MF的參數(shù)設(shè)置如下:用戶和項目的特征向量維度設(shè)為100維,λ1和λ2設(shè)為0.01,λ3設(shè)為0.4,學習率設(shè)為0.01。知識圖譜表示學習的嵌入維度在選取不同值的時候,所取得的推薦效果也會有所不同,針對項目實體嵌入的維度,分別選取了50-250維進行實驗,實驗結(jié)果如圖5和圖6所示。

圖5 不同嵌入維度下的MAE值

圖6 不同嵌入維度下的RMSE值
從圖5和圖6可以看出,當知識圖譜表示學習的嵌入維度為150維的情況下,在平均絕對值誤差(MAE)和均方根誤差(RMSE)上均有所改善,本文提出的算法能夠獲得較好的推薦效果。
融合知識圖譜表示學習過程中,待預(yù)測項目最相似的近鄰個數(shù)在選取不同值的時候?qū)ν扑]效果也會存在影響。采用控制變量法的思想,在控制知識圖譜嵌入維度為150維的情況下,通過選取項目不同的近鄰個數(shù)來觀察近鄰個數(shù)對推薦效果的影響,這里分別設(shè)置近鄰個位為10-30個的情況下進行實驗,實驗結(jié)果如圖7、圖8所示。

圖7 不同近鄰數(shù)下的MAE值

圖8 不同近鄰數(shù)下的RMSE值
從圖7和圖8可以看出,近鄰個數(shù)的選取對模型的推薦效果有所影響。當近鄰個數(shù)為20時,MAE和RSME的值均為最低。
為了驗證該算法與同類算法的性能比較,這里選取知識圖譜表示學習嵌入維度為150維,近鄰個數(shù)為20個,用戶特征向量和項目的特征向量維度設(shè)為100維。實驗結(jié)果見表2。

表2 實驗結(jié)果對比
通過表2可以看出在MovieLens-1M數(shù)據(jù)集上,融合知識圖譜表示學習和矩陣分解的算法TransR-MF在MAE和RMSE上優(yōu)于其它4種算法。因此融合項目實體潛在信息來預(yù)測用戶評分是有效的,在一定程度上對矩陣分解模型有優(yōu)化作用,提高推薦系統(tǒng)的準確性。
本文提出了一種融合知識圖譜表示學習和矩陣分解的推薦算法,即TransR-MF算法。相對于只利用用戶項目評分信息的傳統(tǒng)推薦算法而言,TransR-MF算法能夠充分利用物品本身潛在的語義信息,彌補了矩陣分解算法沒有考慮物品本身潛在信息的缺點。算法使用知識圖譜表示學習把項目實體嵌入低維向量空間,計算項目之間潛在相似信息,并將其融入矩陣分解模型中,在一定程度上增強了矩陣分解模型的效果。此外,MovieLens數(shù)據(jù)集上的實驗結(jié)果驗證了本文提出的TransR-MF算法有效提高了推薦結(jié)果的準確性。用戶的潛在關(guān)系信息也是推薦系統(tǒng)中的一種重要潛在因素,因此在本文算法的基礎(chǔ)上融合用戶潛在信息將是下一步的研究重點。