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