郭 偉,裴帥華
(西安科技大學(xué) 通信與信息工程學(xué)院,陜西 西安 710600)
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,資源過載[1]問題日益嚴(yán)重。人們需要從海量信息中篩選自己感興趣的內(nèi)容,企業(yè)則希望推送的內(nèi)容能最大程度上匹配用戶需求。推薦系統(tǒng)恰好可以很好處理兩者以實現(xiàn)個性化推薦。協(xié)同過濾[2-4]作為經(jīng)典的個性化推薦算法,面臨著數(shù)據(jù)稀疏和冷啟動問題。緩解這一問題的普遍做法是在推薦系統(tǒng)中引入輔助信息,豐富用戶和項目的內(nèi)容,從而有效地補償稀疏或缺失的用戶興趣。知識圖譜作為一種新興輔助信息,由于存在大量的三元組數(shù)據(jù),受到了研究人員越來越多的關(guān)注。文獻[5]將用戶的歷史數(shù)據(jù)在知識圖譜中進行向外傳播,以探索用戶潛在興趣。文獻[6]則借鑒于GCN[7]信息傳播的思想,用于預(yù)測用戶對項目的偏好程度。文獻[8]將用戶嵌入到知識圖譜中構(gòu)成協(xié)同知識圖,利用注意力機制區(qū)別對待鄰居信息分別得到用戶向量和項目向量,最后通過內(nèi)積得到用戶對項目的評分。上述模型都取得了很好的效果,但也存在著不足,文獻[5,6]都選取均勻采樣器在知識圖譜中隨機選取固定的鄰居大小,使得一些重要的節(jié)點信息丟失。文獻[8]將用戶-項目二質(zhì)圖嵌入到知識圖譜中,將用戶視為知識圖譜中的節(jié)點,一旦有新用戶必須重新訓(xùn)練整個模型,其計算成本過大。為了解決上述模型存在的問題,本文提出了基于協(xié)同信號的知識圖注意力網(wǎng)絡(luò)推薦算法(collaborative signal knowledge graph attention network for recommender algorithm,CKGAN)。該算法利用用戶的歷史交互項目作為用戶的初始表示,將這些項目以及待推薦項目在知識圖譜上進行無采樣傳播,通過設(shè)計新的聚合函數(shù)來豐富用戶/項目表征,最后引入動態(tài)建模思想,在面對不同待推薦項目時得到不同的用戶表征。在多個數(shù)據(jù)集的實驗結(jié)果表明,本文所提方法具有更好的推薦效果。
基于知識圖譜的推薦算法主要有以下幾個方面:
①基于路徑的方法。在知識圖譜中,由于各個實體通過復(fù)雜的關(guān)系連接在一起,可以探索其間的連接方式(元路徑)提供額外的信息,特別是在可解釋方面。例如,文獻[9,10]將KG視為異構(gòu)信息網(wǎng)絡(luò),提取基于元路徑/元圖的潛在特征,表示不同類型的關(guān)系路徑/圖上用戶和項目之間的連接性。然而,文獻[9,10]很大程度上依賴于手動設(shè)計的元路徑或元圖,這在現(xiàn)實中很難是最優(yōu)的。②基于嵌入方法(如TransR[11])?;谇度氲姆椒ú捎肒G的信息來豐富項目的表示。文獻[12]模型首先通過采用TransR對知識圖譜進行預(yù)訓(xùn)練得到項目的嵌入向量,并在貝葉斯的框架下,將項目向量輸入到CF框架中,去獲得用戶的潛在向量,最后通過內(nèi)積得到用戶對項目的偏好分數(shù)。文獻[13]使用TransR對協(xié)同知識圖進行預(yù)處理,設(shè)計了去除偏差的注意力模塊聚合鄰域信息,最后分別得到用戶和項目的向量表示進行推薦。③基于圖的方法。文獻基于圖的方法和基于路徑的方法均采用知識圖譜結(jié)構(gòu)進行建模,不同之處在于,基于圖的方法并不局限于實體之間的特定連接,而是將KG視為一個以特定用戶或物品為中心的異構(gòu)網(wǎng)絡(luò),該方法從中心實體沿著關(guān)系邊進行傳播,最后提取對應(yīng)實體的特征。文獻[14]則是在文獻[6]的基礎(chǔ)上提出改進,將用戶作為一種新的實體嵌入到知識圖譜中,使用新的聚合函數(shù)用來生成用戶向量。文獻[15]則利用協(xié)同信號作為用戶和待推薦項目的向量表示,通過設(shè)計知識感知注意力模塊得到用戶和項目的最終表示。但其都未解決采樣所引起的誤差。
在推薦場景中,存在m個用戶和n個項目分別表示為U={u1,u2,u3,…,um} 和I={i1,i2,i3,…,in},以及用戶與項目的交互矩陣Y∈m×n。若yui=1,則表示用戶u與項目i存在聯(lián)系,比如瀏覽、點擊、喜歡等。盡管交互信息不一定能反映用戶真正喜歡該項目,但在一定程度上他們包含用戶喜歡的信息,yui=0表示用戶對此項目不感興趣。除了交互信息外,還有知識圖譜G,可表示為 {(h,r,t)|h,t∈ε,r∈R},ε,R分別表示實體集合和關(guān)系集合,每個三元組由真實世界的實體和實體之間的關(guān)系構(gòu)成,例如(人在囧途,主演,徐崢)為知識圖譜中一個結(jié)構(gòu)化的三元組,表明了徐崢是電影《人在囧途》的主演。給定用戶與項目交互矩陣Y和知識圖譜G,推薦算法的任務(wù)就是預(yù)測用戶u是否對物品i有潛在的興趣。具體來說,就是學(xué)習(xí)一個預(yù)測函數(shù)表示用戶u喜歡i的概率,Θ為可學(xué)習(xí)參數(shù)。
本文所提CKGAN模型的框架如圖1所示。①協(xié)作傳播層:將用戶-項目二質(zhì)圖與知識圖譜中頭實體關(guān)聯(lián),并將實體在知識圖譜中進行傳播。②圖注意力層:利用圖注意網(wǎng)絡(luò)[16]思想,為不同的節(jié)點分配不同的權(quán)值,通過聚合更新所有節(jié)點的特征。③預(yù)測層:通過待推薦項目和用戶交互過的歷史項目得到最終用戶向量表示,將用戶和待推薦項目通過MLP,最終輸出預(yù)測結(jié)果。
圖1 CKGAN模型框架
協(xié)作傳播層由用戶項目二質(zhì)圖和知識圖譜兩部分構(gòu)成,用戶與項目的交互信息能夠在一定程度上表示用戶的偏好,知識圖譜中又包含了關(guān)于項目的額外事實和聯(lián)系,因此將兩者結(jié)合起來可以更加精準(zhǔn)地描述項目和用戶。
本文使用用戶交互過的項目來表示用戶,這些項目與知識圖譜中實體對齊,作為用戶的初始種子集,并沿著知識圖譜中邊進行傳播,對于特定的用戶u,興趣傳播的起源定義為
(1)
(2)
這些實體可以沿著邊的信息在知識圖譜中進行迭代傳播,可以得到與初始集不同距離的實體集,它們能夠有效地擴展用戶和項目的向量表示,用戶u和項目i的遞歸公式如下
(3)
式中:rk表示實體hk-1與實體tk之間通過關(guān)系rk相連,k代表與初始實體集的距離,下標(biāo)o作為用戶u和項目i的統(tǒng)一占位符。為了討論實體的鄰居對實體的重要程度,根據(jù)實體集的定義,我們得到用戶u和項目i的第k層三元組,公式如下
(4)
πirt=a(wrei,wret)
(5)
式中:ei,et∈d分別表示為頭實體,尾實體的向量表示,wr∈d×d為關(guān)系r的線性變換矩陣。為了描述不同關(guān)系下的尾實體對頭實體的重要程度,本文使用Softmax函數(shù)
(6)
本文所述圖注意力網(wǎng)絡(luò)a是單層前饋神經(jīng)網(wǎng)絡(luò),選擇LeakyReLU作為非線性激活函數(shù),則圖注意力網(wǎng)絡(luò)數(shù)學(xué)描述為
(7)
式中:‖代表拼接操作,在實際工作中,同時也考慮了實體i的自連邊。
(8)
式中:σ(·) 為LeakyReLU函數(shù),可以進一步堆疊更多的傳播層來收集從高跳鄰居傳播過來的信息,對于高階信息遞歸公式如下
(9)
在執(zhí)行H+1層操作以后,項目i的最終表示
(10)
(11)
然而考慮到用戶對項目的興趣是多樣的,當(dāng)考慮用戶是否會點擊項目i時,項目i應(yīng)該對用戶的歷史交互數(shù)據(jù)有不同的影響,本文采用DKN[17]、DIN[18]模型的思想動態(tài)建模用戶的向量表示。公式如下
(12)
式中:ξ(·) 采用的是點乘求和。
得到用戶節(jié)點u最終向量表示
(13)
(14)
MLP為兩層全連接神經(jīng)網(wǎng)絡(luò),激活函數(shù)為PReLU,為確保用戶對于項目的評分在[0,1],設(shè)置σ(·) 為sigmoid函數(shù)。值得注意的是,在訓(xùn)練過程中本文使用了負采樣策略,最終模型的損失函數(shù)公式定義如下
(15)
本節(jié)基于音樂、書籍、電影領(lǐng)域公開的數(shù)據(jù)集來評估模型性能,并與經(jīng)典推薦算法進行性能對比,最后討論參數(shù)對實驗結(jié)果的影響。
實驗選用Last.FM、Book-Crossing以及MovieLens-1M測試模型性能。Last.FM數(shù)據(jù)來源于Last.FM在線音樂平臺。Book-Crossing數(shù)據(jù)集來源于book-crossing社區(qū),由讀者對各種書籍的評分(從0到10)構(gòu)成。MovieLens-1M由GroupLens項目組提供。
由于3個數(shù)據(jù)集都為顯示反饋數(shù)據(jù),本文首先將其轉(zhuǎn)換為隱式反饋數(shù)據(jù)。在MovieLens-1M中用戶對電影的評分從0-5,設(shè)值閾值為4,即大于等于4的為正樣本,本文根據(jù)正樣本數(shù)據(jù)大小,在用戶未交互過的電影和評分小于4的數(shù)據(jù)隨機采樣得到該用戶負樣本。由于Book-Cros-sing和Last.FM數(shù)據(jù)稀疏,未設(shè)置閾值,負樣本數(shù)據(jù)生成與MovieLens-1M相同。表1中給出用戶數(shù)、項目數(shù)以及知識圖譜數(shù)據(jù),此外考慮到復(fù)雜度問題,本文只保留了與用戶有交互的項目以及與其對應(yīng)的不同距離的三元組。
表1 實驗數(shù)據(jù)集統(tǒng)計信息
在CKGAN的實驗中,選取了以下的基準(zhǔn)算法:
BPRMF[19]:一種經(jīng)典的CF模型,采用pairwise的訓(xùn)練方式來改進傳統(tǒng)MF算法。
CKE[12]:將協(xié)同過濾與知識圖譜嵌入、文本嵌入和項目圖像嵌入結(jié)合在一個統(tǒng)一的貝葉斯框架中進行推薦。在本文中,只利用了知識圖譜嵌入來學(xué)習(xí)項目的向量表示。
RippleNet[5]:將用戶的歷史信息作為種子,通過知識圖譜中的實體連接迭代向外擴展用戶的興趣,由此來豐富用戶向量。
KGCN[6]:一種基于GCN方法的模型,將知識圖譜變成向量加權(quán)圖,通過特定用戶對不同實體關(guān)系的興趣不同改變聚合系數(shù),最終得到項目向量。
KGAT[8]:另一種基于GCN方法的模型,將用戶嵌入到知識圖譜中,使用TransR[11]模型改變聚合系數(shù),最終分別得到用戶向量和項目向量,最后采用BPR算法進行推薦。
NACF[14]:基于KGCN的思想,引入雙注意力機制生成用戶向量。
4.3.1 實驗設(shè)置
表2 CKGAN模型的超參數(shù)設(shè)置
4.3.2 評價指標(biāo)
在兩個實驗場景中評估本文算法:①在點擊率(CTR)預(yù)測中,將測試集使用訓(xùn)練好的模型參數(shù)驗證用戶是否會點擊項目,采用AUC和ACC作為推薦結(jié)果的評價指標(biāo)。②在top-k推薦中,對用戶未點擊過的所有項目進行排序,將用戶最有可能點擊的前k個項目進行召回,查看測試集中的用戶的正樣本數(shù)據(jù)被召回的概率,采用Recall@K作為評價指標(biāo)。
ACC:模型預(yù)測正確的概率。其中R(u) 為關(guān)于用戶u的真實標(biāo)簽包括喜歡和不喜歡,F(xiàn)(u) 為模型預(yù)測結(jié)果
(16)
AUC:用于評估模型的性能,簡單說AUC越大,模型正確率越高。M表示用戶喜歡項目的數(shù)目,N表示用戶不喜歡的數(shù)目。模型輸出結(jié)果中有a組用戶喜歡的項目分數(shù)大于不喜歡的項目分數(shù),有b組用戶喜歡項目的分數(shù)等于不喜歡項目的分數(shù)。AUC計算方式如式(17)所示
(17)
4.4.1 與基準(zhǔn)算法的比較
模型按照4.3.1節(jié)的參數(shù)設(shè)置,表3總結(jié)了3個數(shù)據(jù)集的CTR預(yù)測結(jié)果,3個數(shù)據(jù)集的top-k推薦曲線如圖2所示。
表3 基于AUC和ACC評價指標(biāo)的CTR預(yù)測結(jié)果
圖2 top-k推薦的Recall@K實驗結(jié)果
觀察實驗結(jié)果可以發(fā)現(xiàn),CKGAN在兩個實驗場景都優(yōu)于基線算法,從實驗結(jié)果中可以得出以下結(jié)論。
(1)在3個公共數(shù)據(jù)集中,CKGAN在CTR預(yù)測中準(zhǔn)確率上分別提升2.3%、5.8%、1%,在top-k推薦中recall@100分別提升2.1%、2.4%、0.9%。
(2)基于知識圖譜的推薦算法優(yōu)于傳統(tǒng)的BPRMF算法,說明引入KG作為輔助信息對推薦算法性能有很大的提升。但在Last.FM數(shù)據(jù)集上,CKE的表現(xiàn)性能還不如BPRMF模型,表明僅通過建模知識圖譜兩項目之間相似度進行推薦并不能充分發(fā)揮知識圖譜的作用,間接表明了用戶興趣的多樣性。
(3)與其它基線算法相比,CKGAN和NACF總體表現(xiàn)的性能更出色,表明通過待測項目動態(tài)建模用戶表示能夠捕獲到用戶不同的興趣,值得注意的是在交互數(shù)據(jù)更為稠密的MovieLens-1M數(shù)據(jù)集上,RippleNet表現(xiàn)性能優(yōu)于KGAT、KGCN、NACF,我們推測使用GCN模型在進行聚合操作時可能引入過多的噪聲,而CKGAN利用GAT思想只聚合了重要的信息取得了更佳的效果。
(4)在兩個實驗場景下,CKGAN的性能都優(yōu)于現(xiàn)有的最先進的基線,尤其在數(shù)據(jù)稀疏的Last.FM和Book-Crossing數(shù)據(jù)集上,表明無論是側(cè)重對知識圖譜建模的KGAT模型,還是側(cè)重對用戶交互數(shù)據(jù)建模的KGCN、RippleNet模型都無法準(zhǔn)確的獲得用戶和項目的表示,CKGAN通過從用戶歷史數(shù)據(jù)中獲取協(xié)同信號,利用GAT思想結(jié)合知識圖譜屬性信息更好地得到了用戶和項目表示。
4.4.2 模型參數(shù)對比實驗
本節(jié)對CKGAN模型中嵌入向量的維度和傳播層數(shù)進行對比分析。
(1)嵌入向量維度的影響
如表4所示對比實驗,只調(diào)整了嵌入向量的維度,其余參數(shù)設(shè)置參照表2,通過實驗分析可以看出,隨著嵌入向量維度的增加,CKGAN模型的效果越好,但是超過一定的閾值后,由于出現(xiàn)過擬合現(xiàn)象,性能會下降。值得注意的是電影數(shù)據(jù)集受嵌入向量的維度的影響較小,一個可能的原因是數(shù)據(jù)的稀疏度會影響實驗結(jié)果。
表4 基于AUC指標(biāo)的嵌入向量維度實驗
(2)傳播層數(shù)的影響
如表5所示,在傳播層數(shù)的對比實驗中,可以觀察到,音樂、書籍、電影的最佳傳播層數(shù)分別是1、1、2。對于這個合理的解釋是,音樂和書籍?dāng)?shù)據(jù)集中用戶-項目的平均交互數(shù)要遠低于電影數(shù)據(jù)集中的平均交互數(shù),可能導(dǎo)致項目之間的連接距離不一致,如果層數(shù)太高會引入更多噪聲,所以選擇合理傳播層數(shù)才能發(fā)揮模型的最佳性能。
表5 基于AUC指標(biāo)的傳播層數(shù)實驗
本節(jié)驗證了引入KG可以有效緩解冷啟動問題。逐步將Book-Crossing訓(xùn)練集的大小從r=100%減少到r=20%(測試集大小不變),以研究模型在冷啟動問題場景的性能。如圖3所示,當(dāng)r=20%時,按4.2節(jié)中基線順序,6條基線的AUC分別下降34.7%、27.5%、15.2%、18%、10.5%、10.4%,而CKGAN的性能下降了9.2%。這表明,在冷啟動情況下,CKGAN可以比基線取得更好的結(jié)果。
圖3 冷啟動場景下模型的性能對比
為了討論圖注意力層和協(xié)作傳播層對實驗結(jié)果的影響,本文設(shè)計了兩個變體模型CKGANw/o GAT和CKGANw/o CP,CKGANw/o GAT取消了圖注意層將airt設(shè)置1/|εi|,CKGANw/o CP去掉了協(xié)作傳播層以及在預(yù)測層不再使用歷史交互項表示用戶。表6可以說明,刪除協(xié)作傳播層和圖注意力層會降低模型的性能,CKGANw/o GAT低于CKGAN可以說明運用GAT思想能夠捕獲到不同關(guān)系下的鄰居對于中心實體的重要性。CKGANw/o CP低于CKGAN以及CKGANw/o GAT可以表明利用用戶歷史交互數(shù)據(jù)能夠更準(zhǔn)確地表達用戶以及用戶交互過的歷史項目之間的關(guān)系是模糊的。
表6 基于AUC指標(biāo)的消融實驗
本文提出一種融合知識圖譜信息和協(xié)同信息的推薦模型,模型首先通過使用用戶歷史交互項目來表示用戶,這些項目在知識圖譜中進行傳播,通過圖注意力網(wǎng)絡(luò)使這些項目得到豐富的表示,最后根據(jù)候選項目動態(tài)建模出用戶表示。最后在真實數(shù)據(jù)集上驗證了CKGAN模型的有效性。在未來的工作中,模型需要進一步解決的問題:①當(dāng)前的工作將基于KG的推薦視為一個受監(jiān)督的任務(wù),其中監(jiān)督信號僅來自歷史交互數(shù)據(jù),未來考慮引入知識圖譜中實體類別作為監(jiān)督信號來進一步優(yōu)化模型。②僅考慮了項目側(cè)對推薦結(jié)果的影響,未來考慮引入用戶本身信息,以獲得更準(zhǔn)確的推薦結(jié)果。