龐健嬋,閉應(yīng)洲,楊 輝,武文霖,王志遠(yuǎn),鄧超文
(南寧師范大學(xué) 計算機與信息工程學(xué)院,廣西 南寧 530199)
隨著互聯(lián)網(wǎng)時代的到來,網(wǎng)絡(luò)上各個服務(wù)平臺的信息呈現(xiàn)爆炸式的增長。用戶在網(wǎng)上選購商品時需要花費大量的時間來尋找自己喜歡的物品,這往往會導(dǎo)致用戶的體驗較差。為了解決這個問題,科技人員們不斷研究更有效的推薦算法,在用戶需求不明確的情況下,推薦算法可以為用戶挑選他可能喜歡的物品,相當(dāng)于模擬一個銷售幫助客人完成購買的過程。判斷一個推薦算法好壞的關(guān)鍵,就是看它能否為用戶提供個性化的推薦,為用戶推薦感興趣的物品,提升用戶體驗。
協(xié)同過濾推薦算法是目前應(yīng)用廣泛,也是最經(jīng)典的推薦算法,這種算法又分為基于用戶的協(xié)同過濾[2]、基于物品的協(xié)同過濾和基于模型的協(xié)同過濾?;谟脩舻膮f(xié)同過濾推薦算法是找到有相似喜好的用戶來做推薦,基于物品的協(xié)同過濾推薦算法是找到相似的物品進(jìn)行推薦;基于模型的協(xié)同過濾是用機器學(xué)習(xí)的方法來建模,根據(jù)用戶的歷史記錄來做出預(yù)測和推薦。矩陣分解算法[3](Matrix Factorization)基于矩陣補全的方法來做評分預(yù)測,它在2007年的Netflix發(fā)起的Netflix Prize百萬美金競賽中取得很好的表現(xiàn),自此受到人們的關(guān)注,但是矩陣分解仍然存在數(shù)據(jù)稀疏和冷啟動問題[2]。為此,多源異構(gòu)數(shù)據(jù)隨之被[1]被引入到推薦系統(tǒng)中,比如相關(guān)的標(biāo)簽、文本、圖片等數(shù)據(jù);另外,將多源異構(gòu)數(shù)據(jù)進(jìn)行混合引入也引起了科研人員的關(guān)注。在多源異構(gòu)信息難以融合的時候,又引入了知識圖譜(Knowledge Graph,KG)[4],它以圖的形式將人類知識進(jìn)行了表示。在推薦算法中引入知識圖譜,可以獲得更多的語義關(guān)系和結(jié)構(gòu)關(guān)系,從而可以深層次地挖掘用戶潛在的喜好,還可以獲取更多種類的關(guān)聯(lián),這有助于避免推薦結(jié)果的單一性;同時可以將用戶的歷史記錄和推薦結(jié)果聯(lián)系起來,為推薦提供可解釋性,提高用戶的使用體驗。
KGCN是Hongwei Wang[5]在2019年提出的推薦系統(tǒng)模型,該模型通過知識圖譜來捕獲鄰居實體,將鄰居實體與項目本身實體結(jié)合起來,這樣獲得的向量可以捕獲物品端的高階結(jié)構(gòu)信息和語義信息,這些豐富的物品信息可以有效表示用戶潛在的興趣。KGCN在預(yù)測點擊率方面獲得了很好的效果,但它僅使用了物品端的信息,忽略了用戶端信息。本研究將用戶的相關(guān)信息添加到模型當(dāng)中,將特征組合后作為用戶信息的高階接受域,最后用這些信息與用戶實體結(jié)合起來作為用戶的向量表示,以此來提升推薦系統(tǒng)的性能。
將用戶的額外信息引入并進(jìn)行組合,如“中年(年齡)男性(性別)”“銷售(職業(yè))中國(地址)”等這樣組合特征來表示用戶,建立起來用戶和物品之間的非線性聯(lián)系。性別為男性的中年人喜歡看科幻類型的電影,還有性別為女性的青年喜歡看戀愛題材的電影。通過觀察大量的樣本數(shù)據(jù)可以發(fā)現(xiàn),某些特征經(jīng)過關(guān)聯(lián)之后,與推薦結(jié)果之間的相關(guān)性就會提高。
圖1 用戶屬性和用戶偏好電影圖
近年來,在推薦系統(tǒng)中引入知識圖譜作為輔助的信息取得了很好的成效。在電影推薦中,如將電影的導(dǎo)演、類型、演員、產(chǎn)地等物品的屬性添加到模型中豐富物品的表示,可以更加準(zhǔn)確地反應(yīng)出物品的本質(zhì)特征,因此模型可以更加準(zhǔn)確地為用戶做推薦。知識圖譜是一個有向的異構(gòu)圖,在知識圖譜中物品作為實體,實體之間用邊來連接,邊表示的是物品之間的關(guān)系,這樣物品與物品之間的關(guān)系就能在知識圖譜中得到表示。在推薦算法中引入知識圖譜后豐富了物品信息和表示,可以更好捕捉用戶的偏好,提高推薦的效率?;谥R圖譜的推薦系統(tǒng)[8]包括基于路徑的方法、基于Embeddig的方法[9-11]和混合的方法3種。
Yu X,Ren X等[12]在2014年提出的HeteRec模型和Zhao H,Yao Q等[13]在2017年提出的FMG模型都是基于路徑的方法。隨著信息技術(shù)的發(fā)展更多信息被挖掘和使用,因算法數(shù)據(jù)的稀疏和推薦算法效果受限等原因,研究人員將多源異構(gòu)信息引入到推薦系統(tǒng)中。Fuzheng Zhang等2016年提出了CKE模型,該模型將文本信息、圖片信息和知識圖譜等多種異構(gòu)信息融合到知識表示當(dāng)中來豐富物品的表示,學(xué)習(xí)出用戶表示和物品表示以此計算出用戶點擊物品的概率。CKE模型是一個基于Embeddig的知識圖譜推薦方法,類似的還有Hongwei Wang在2018年提出的DKN推薦模型等。
混合的推薦方法有Hongwei Wang等[14-16]在2018年提出的RippleNet模型,該模型是Wang提出的基于知識圖譜的神經(jīng)網(wǎng)絡(luò)模型,類似的模型還有Hongwei Wang在2019年提出的KGCN模型等。
在早期的CTR算法是使用廣義線性模型來計算用戶的點擊率,但沒有將特征進(jìn)行交叉組合和篩選,這樣有可能造成信息丟失。POLY2模型將所有的特征進(jìn)行兩兩交叉組合,且給特征組合賦予了相應(yīng)的權(quán)重,POLY2模型特征組合的方式考慮了特征和特征之間相互作用的問題。POLY2模型的本質(zhì)還是邏輯回歸模型,也就是線性模型,針對POLY2模型存在的問題,又推出了FM(因子分解機)模型。FM模型使用的梯度下降學(xué)習(xí)方法,它對特征進(jìn)行交叉組合后的特征賦予單一的權(quán)重,這就解決了POLY2模型直接交叉帶來的數(shù)據(jù)稀疏的問題,使每個特征更容易被學(xué)習(xí)。FM模型具有較高的泛化能力,在處理較小數(shù)據(jù)和稀疏數(shù)據(jù)時會較高的利用價值。在特征交叉模型中的兩個特征交叉組合如矩陣所示,這樣的特征組合起來建立與推薦結(jié)果的聯(lián)系就是特征交叉模型的重要思想。
屬性性別職業(yè)年齡地址性別性別×性別性別×職業(yè) 性別×年齡 性別×地址職業(yè)職業(yè)×性別職業(yè)×職業(yè) 職業(yè)×年齡 職業(yè)×地址年齡年齡×性別年齡×職業(yè) 年齡×年齡 年齡×地址地址地址×性別地址×職業(yè) 地址×年齡 地址×地址
2.1 FMKGCN問題定義
為了方便描述,給出如下定義,在推薦系統(tǒng)中存在著用戶u和項目v,用戶集用U={u1,u2,…,un}來表示,項目集用V={v1,v2,…vn}來表示。用戶和項目的交互矩陣定義為Y∈RM×N,如果用戶u對項目v有點擊、購買或者評分行為等隱性反饋行為則yuv=1,反之那么yuv=0。
除了有用戶和項目的交互矩陣,在這個模型中還包括了知識圖譜G,知識圖譜是為了描述實體與實體之間的關(guān)系,一般實體通過這樣
模型的最終目標(biāo)是預(yù)測一個用戶u對沒有過交互的物品v是否有興趣。設(shè)置了一個函數(shù)yuv來預(yù)測用戶u點擊物品v的概率,函數(shù)定義為yuv=F(u,v|Θ,Y,G),其中Y表示的是用戶和項目的交互矩陣,G表示的是知識圖譜,Θ表示模型參數(shù)。
FMKGCN模型結(jié)構(gòu)如圖2所示,右邊的物品端模塊輸入的是知識圖譜和物品的實體,經(jīng)過KGCN卷積層來捕獲物品相近的鄰居實體將這些實體作為高階接收域,計算出物品和鄰居實體之間關(guān)系的分?jǐn)?shù),最終把這些信息結(jié)合起來并作為物品端的屬性顯示出來。
圖2 FMKGCN模型框架
在圖2的左側(cè)是用戶端模塊,該模塊輸入的是用戶和用戶額外的信息,將這些特征交叉組合學(xué)習(xí)出這些信息之間隱藏的關(guān)系,將信息組合起來作為用戶的向量表示(圖2的中間模塊)。輸入用戶向量、物品向量和評分矩陣,最終從預(yù)測評分的函數(shù)Y=F(u,v)中得到模型的預(yù)測結(jié)果。
2.2.1 KGCN層聚合物品向量
通過自動捕獲知識圖譜中的高階結(jié)構(gòu)和語義信息來挖掘用戶潛在的興趣愛好。在知識圖譜中找到項目v對應(yīng)的實體,捕獲并存儲每個實體的局部鄰接結(jié)構(gòu),根據(jù)用戶u對關(guān)系r的得分對鄰居進(jìn)行加權(quán)。為了方便描述,對一些符號進(jìn)行定義,N(v)表示的是和v連接的實體集合,rei,ej表示的實體ei和ej的關(guān)系,函數(shù)g∈Rd×Rd→R用來計算用戶u對關(guān)系v的分?jǐn)?shù),表示為:
(1)
得到用戶u對關(guān)系r的評分后,計算近鄰e對項目v的重要性的算式為:
(2)
將用戶u-項目v的近鄰評分進(jìn)行歸一化:
(3)
根據(jù)每個用戶對關(guān)系的評分不同,計算出項目v的近鄰e對特定用戶的分?jǐn)?shù)。
(4)
式(4)中,w表示的是權(quán)重,b表示的是偏置項,σ表示的非線性函數(shù),如ReLU。
2.2.2 特征交叉方法學(xué)習(xí)用戶向量
用戶的向量表示用特征交叉的方法來學(xué)習(xí),借鑒FM(因子分解機)算法的思想,將特征兩兩組合進(jìn)行學(xué)習(xí),與FM算法不同的是將式(4)進(jìn)行變形,去除了特征的權(quán)重得到新的算式為:
(5)
aggFM(e)表示在節(jié)點e處的向量聚合,n就代表節(jié)點e的鄰居數(shù)量,xi與xj分別代表節(jié)點e的第i與第j個鄰居節(jié)點向量,假設(shè)該向量的向量維度為dim。本研究采取的是兩兩鄰居向量全元素相乘計算方法,而不是點乘。因為要讓輸出的向量維度限定在dim,這樣直接可與節(jié)點向量同維度。
將用戶u向量聚合以后,還有通過一個線性變換才能獲得最終的向量表示,算式如下:
(6)
算法 FMKGCN算法
輸入:交互矩陣Y,知識圖譜G
輸出:預(yù)測函數(shù)F(u,v,Θ,Y,G)
1.初始化所有參數(shù)
2.For 訓(xùn)練迭代次數(shù) do
4.eu[0]←e,?e∈W[0]
5.for h=1,...,H do
6.for e∈W[h] do
9.vu←eu[H]
12.梯度下降更新參數(shù)
13.return F
14.捕獲項目v的鄰域?qū)嶓w
15.W[H]←v
16.for h=H-1,…,0 do
17.W[h]←W[h+1]
18.for e∈W[h+1] do
19.W[h]←W[h]∪S(e)
為了驗證FMKGCN模型的推薦效果,實驗所需平臺搭建的硬件條件如下,CPU型號 i5-5200U 2.20GHz,內(nèi)存12.0GB,顯卡使用的是AMD R5M230。軟件環(huán)境如下,操作系統(tǒng)使用的是Win10 64位操作系統(tǒng),實驗平臺使用的是TensorFlow,Python 3.6版本。
為了評估模型的推薦效果,在MovieLens-1M的數(shù)據(jù)集上進(jìn)行實驗,這個數(shù)據(jù)集包含有6036個用戶對2347部電影的75多萬條評分,也包含有電影元數(shù)信息和用戶的屬性信息,用戶的屬性信息有用戶的性別、年齡、職業(yè)和郵編。這個數(shù)據(jù)集真實存在且已被用于推薦系統(tǒng)。
本研究的知識圖譜采用了MKR模型論文[16]所構(gòu)建的知識圖譜。圖譜中的每個實體對應(yīng)代表的是MovieLens-1M數(shù)據(jù)集中每部電影。KG的三元組數(shù)為20195組,KG實體數(shù)是7008個,KG關(guān)系數(shù)是7種。
在MovieLens-1M數(shù)據(jù)集中,每個用戶都會有超過20條評分,評分為1~5分。由于模型的目的是探索用戶潛在的偏好,所以,當(dāng)設(shè)置用戶給電影的評分≥4分時,視為用戶對該電影喜愛;反之,評分<4分則視為用戶對該電影沒有興趣。為了更好地運算和記錄,創(chuàng)建一個用戶-物品的評分矩陣。矩陣把用戶對一部電影感興趣標(biāo)記為1,不感興趣標(biāo)記為0。
為了驗證FMKGCN模型的推薦效果,模型進(jìn)行如下對比:
KGCN:一種由wang提出的基于知識圖譜的圖卷積網(wǎng)絡(luò)模型,將物品的鄰居作為高階接受域,聚合和物品和物品的高階信息,探索用戶潛在的偏好,從而為用戶做出推薦。實驗中模型的參數(shù)設(shè)置與模型設(shè)置相同。
KGNN-LS:這是一個基于KGCN模型的增加正則項的模型,模型在學(xué)習(xí)的過程中對邊緣進(jìn)行正則化,實現(xiàn)了更好的優(yōu)化效果。Ls_weight的值等于1,其他值與本模型設(shè)置的值相同。
CKE:一種融合了知識庫的結(jié)構(gòu)化內(nèi)容、文本內(nèi)容和圖片內(nèi)容的模型,使用了embedding來提取語義特征的推薦算法。實驗參數(shù)設(shè)置與原論文參數(shù)一致,本研究的實驗數(shù)據(jù)引用MKR論文的CKE模型實驗結(jié)果。
FMKGCN:在物品端使用特征交叉方法來進(jìn)行特征組合并聚合信息得到物品端向量表示,在用戶端用KGCN圖卷積層來聚合信息得到用戶端向量表示的推薦算法。
實驗將數(shù)據(jù)以6∶2∶2的比例分為訓(xùn)練集、驗證集和測試集。實驗的所有結(jié)果經(jīng)過每個實驗運行5次取平均值。用來評估模型點擊率(CTR)使用的指標(biāo)是AUC和F1,用來評估模型模型在Top-K中的推薦性能使用的是Precision@K和Recall@K兩個指標(biāo),其中K的取值分別有2,5,10,20,50。
在實驗中,CKE取值與原論文取值相同,其他模型的參數(shù)設(shè)置為:維度dim設(shè)置為32維,迭代次數(shù)n_epochs設(shè)置為10次,集合層數(shù)n_iter設(shè)置為2層,數(shù)據(jù)集batch_size設(shè)置為1024,正則化系數(shù)l2_weight設(shè)置為0.000001,學(xué)習(xí)率lr設(shè)置為0.02,近鄰數(shù)neighbor_sample_size設(shè)置為4。
3.4.1 CTR預(yù)測對比
為了驗證模型,將模型與其他模型在相同的實驗環(huán)境下運算,CKE使用了原來的參數(shù),運算結(jié)果見表1。FMKGCN模型較KGCN模型在AUC指標(biāo)有了1.3%的提升,在F1指標(biāo)上提升1.7%。FMKGCN算法在AUC和F1的結(jié)果都優(yōu)于其他基準(zhǔn)算法,由此可見,F(xiàn)MKGCN算法推薦性能的優(yōu)越性。
表1 CTR預(yù)測實驗結(jié)果
3.4.2 Top-K推薦對比
FMKGCN模型與各基準(zhǔn)算法的Precision和Recall指標(biāo)對比,K分別取2,5,10,50時各個模型的實驗結(jié)果,如圖3、圖4所示。
圖3 TOP@K推薦的精確率 圖4 TOP@K推薦的召回率
從圖3、圖4可以看出,F(xiàn)MKGCN在MovieLens-1M數(shù)據(jù)上的表現(xiàn)是最優(yōu)的;在Precision的指標(biāo)里,當(dāng)K=5時本模型較KGCN算法提升了2.36%,較KGNN_LS算法提升了2.1%。在Recall指標(biāo)中,當(dāng)K=5時,F(xiàn)MKGCN模型較KGCN算法提升了1.76%,較KGNN_LS算法提升了1.8%。實驗結(jié)果表明,F(xiàn)MKGCN模型相較于其他模型有更優(yōu)的結(jié)果。
實驗表明,F(xiàn)MKGCN模型在MovieLen-1M數(shù)據(jù)集上取得了良好的推薦效果,這說明模型的優(yōu)越性。本研究的貢獻(xiàn)主要有:(1)引入用戶的額外的輔助信息,將這些信息進(jìn)行特征的交叉組合并結(jié)合用戶自身信息來獲得用戶向量的表示,用KGCN卷積層來學(xué)習(xí)物品向量的表示;(2)提出了一個新的混合模型框架;(3)在真實數(shù)據(jù)集MovieLens-1M上應(yīng)用,推薦效果有所提升。
本研究利用知識圖譜的中物品端的異構(gòu)信息進(jìn)行聚合,豐富物品端的表示,用特征交叉的方法聚合用戶端信息,通過模型的訓(xùn)練和學(xué)習(xí),將物品表示和用戶表示帶入得分函數(shù)來計算用戶對物品評分,預(yù)測出用戶的點擊率。在未來的研究中,推薦系統(tǒng)可以使用特征交叉模型來做更多的信息聚合,還可以加入知識圖譜等異構(gòu)信息來豐富用戶或者物品的向量表示,構(gòu)建更加準(zhǔn)確和有效的推薦系統(tǒng)。
南寧師范大學(xué)學(xué)報(自然科學(xué)版)2022年1期