唐 宏,范 森,唐 帆
1.重慶郵電大學 通信與信息工程學院,重慶 400065
2.重慶郵電大學 移動通信技術重慶市重點實驗室,重慶 400065
隨著網絡時代的高速發展,用戶面臨著嚴重的“信息過載”問題,為了緩解此問題,推薦系統發揮著不可替代的作用。
在傳統的推薦算法中,主要包含基于內容的推薦算法(content-based recommendations,CB)[1]、基于協同過濾的推薦算法(collaborative filtering,CF)[2]和混合推薦算法[3]。
然而傳統推薦算法存在嚴重的數據稀疏及冷啟動問題,導致推薦結果性能不佳,給用戶帶來不好的體驗。因此,為了緩解以上兩個問題,通過往推薦模型中添加相關的輔助信息可以取得較好的效果,其中常見的輔助信息主要包括用戶/項目屬性信息、社交網絡、知識圖譜、上下文信息等。其中知識圖譜作為一種網絡信息,將節點與節點進行連接構建成一個三元組KG=(h,r,t)形式,通過節點之間的連接關系可以很好的捕捉節點之間的潛在信息和關聯信息。文獻[4]使用多任務學習框架,將知識圖譜與推薦系統使用交替學習的方式進行訓練,構成了MKR模型,使得最終的推薦結果性能有一定提升。文獻[5]的GraphRec模型,將用戶-用戶知識圖譜與用戶-項目知識圖譜結合輔助整個模型,從而捕獲用戶-項目的交互和意見。文獻[6]的DEKGCN 模型,通過增加對用戶屬性信息的考慮,可以更好地緩解數據稀疏問題。文獻[7]的KG-BGAT 模型將知識圖譜與雙線性采集網絡進行結合捕捉用戶的高階關系。
同時,為了捕獲用戶的高階興趣和輸入數據更強的表征能力,將深度學習融入到推薦系統中也逐漸成為研究熱點。使用效果最好的就是圖卷積網絡與推薦系統相結合的方式,再搭配注意力機制使用,能很好地捕捉用戶-項目高階線性關系和潛在興趣。
文獻[8]將協同知識圖譜嵌入到推薦模型中構成NGCF 模型,該模型不僅緩解了數據稀疏問題,也更好地捕捉了用戶的潛在興趣;文獻[9]提出了LightGCN模型,該模型在傳統GCN的基礎上,通過實驗驗證去除特征轉換與非線性激活模塊可以在不影響推薦性能的基礎上極大地降低模型復雜度;文獻[10]的KGCN 模型,將知識圖譜作為嵌入到圖卷積網絡推薦模型中,從而給最終的推薦性能帶來明顯的提升;文獻[11]的KGAT 模型,相比于KGCN模型,該模型添加了注意力機制模塊,可以生成用戶-項目自適應表征,提升了整體推薦效率以及性能。文獻[12]的LGCA 模型,是在LightGCN 模型上加入一個注意力機制,通過對不同領域信息進行區分,從而提升推薦性能。文獻[13]為了降低推薦模型復雜度,使用簡單GCN模型,并取得了較好的效果。
因此,為了更好地緩解推薦系統的數據稀疏和冷啟動問題,本文將協同知識圖譜作為輔助信息嵌入到推薦模型中;與此同時,為了更好地捕捉用戶的潛在興趣以及用戶-項目之間的高階關系和降低模型復雜度,采用優化的圖卷積網絡可以適當解決這兩個問題。本文的主要貢獻如下:
(1)將用戶-項目交互圖與用戶/項目知識圖譜結合,構成協同知識圖譜(CKG)進行嵌入,因此可以更好地挖掘節點之間的高階關系和潛在興趣,同時也能更好地緩解數據稀疏問題。
(2)為了降低模型復雜度和更好地獲取用戶-項目之間的高階關系,采用優化的圖卷積網絡,去除特征轉化和非線性激活模塊,經過實驗證明,該模塊可以在不影響推薦性能的基礎上極大地降低模型復雜度。
(3)使用基于偏差的三元組注意力機制,該機制可以及時捕獲推薦項目與用戶真實感興趣項目之間的偏差,并且根據不同的偏差分配不同的關注度,來輔助模型更好建模和提升模型訓練效率。
本文將用戶-項目交互圖與用戶/項目知識圖譜構建成協同知識圖譜嵌入到推薦模型中,再結合優化的圖卷積網絡,加上基于偏差的三元組注意力機制,便成了本文的CKG-OGAT模型,如圖1所示。

圖1 CKG-OGAT模型框架Fig.1 KG-NAMR model framework
在CKG-OGAT 模型中,首先將用戶-項目交互圖與用戶/項目知識圖譜構建成協同知識圖譜,嵌入到優化的含有基于偏差的三元組注意力機制的圖卷積網絡推薦模型中,最后在進行TOP-K推薦。
在整個推薦模型中,將用戶定義為U={u1,u2,…,um},將項目定義為I={i1,i2,…,im},將用戶-項目交互矩陣定義為Y∈Rm×n,當用戶與項目有交互(比如用戶點擊、用戶購買、用戶分享等),則Y=1;當用戶與項目之間沒有交互,Y=0,但是并不表示用戶對該項目不感興趣,只是用戶與該項目之間沒有交互關系而已。
另外,本文使用的協同知識圖譜定義為CKG,它主要是以三元組的形式呈現,包含頭實體、關系、尾實體,用CKG={h,r,t}表示。
本模型主要就是通過給定相關的用戶-項目交互矩陣I與用戶/項目知識圖譜KG,通過推薦模型預測候選用戶u對相關項目i興趣程度并進行推薦的過程。
為了更好地獲取數據之間的信息和緩解數據稀疏問題,將用戶-項目交互圖與用戶/項目知識圖譜進行結合構建成協同知識圖譜,具體結構如圖2所示。

圖2 電影領域協同知識圖譜示例Fig.2 Example of collaborative knowledge graphs in film domain
由于CKG-OGAT算法使用的輔助信息是協同知識圖譜,因此為了更好地處理協同知識圖譜中的信息,使用TransD 嵌入方法,該方法可以很好地識別出協同知識圖譜中三元組CKG={h,r,t}之間不同三元組中實體之間對應的不同屬性關系或者類型。
比如在一個電影知識圖譜三元組(你好李煥英,主演,賈玲)和三元組(你好李煥英,導演,賈玲)中,第一個三元組表示了賈玲是這部電影的主演,另一個三元組則表示了賈玲是這部電影的導演,通過使用TransD 嵌入方法就可以很好地捕捉不同知識圖譜三元組之間的關系,它不僅考慮了知識圖譜三元組中實體的多樣性,還考慮了實體之間關系的多樣性,因此對于整個推薦模型挖掘用戶潛在興趣和用戶-項目之間的高階關系具有很大的幫助。具體的結構圖如圖3所示。

圖3 TransD結構Fig.3 TransD structure
如圖3所示,使用TransD對協同知識圖譜進行嵌入處理,可以很好地識別CKG 中不同三元組中實體與實體之間的多層關系,并且通過兩個映射矩陣Mrh、Mrt對原始協同知識圖譜進行處理,具體的公式見式(1)和(2)所示:

式中,h⊥和t⊥表示的是CKG三元組中的頭實體和尾實體經過TransD嵌入后在向量空間里面的表示,h和t表示CKG三元組中的頭實體和尾實體。
同時,TransD 嵌入方法對應的評分函數便如式(4)所示:

其中L表示的是損失函數,當損失函數趨近于0 時,整個知識圖譜嵌入模塊處理性能最優,γ是知識圖譜中正實例與負實例之間的最小間隔,正實例表示的是與用戶有過真實交互關系的實體,負實例表示的是一些沒有歷史交互記錄的實例。
通過以上分析,使用TransD 對協同知識圖譜進行處理,可以很好地捕捉CKG 不同三元組之間實體之間的潛在關系和用戶-項目高階關系,還能考慮到實體之間的多樣性,整體模型復雜度也不高。
為了更好地處理嵌入的協同知識圖譜,采用圖卷積作為推薦模型的核心,同時借鑒LightGCN模型[8]的處理思想,在傳統圖卷積的基礎上去除了特征轉換以及非線性激活模塊,因此可以在不影響整體推薦性能的基礎上極大地降低模型復雜度。
傳統的GCN主要是通過嵌入知識圖譜上的特征來學習節點的表示[13-14],同時需要多次進行卷積操作,將嵌入數據的鄰居信息進行聚合操作來作為目標節點的表示,具體見式(6)、(7)所示:

基于此,本文在傳統圖卷積的基礎上進行優化的,去除了特征轉換和非線性激活模塊,因此本文的領域聚合公式如式(8)所示:

因此,本文使用的簡單的AGG 加權聚合函數如下式所示,并去除了傳統的圖卷積操作的特征轉換和非線性激活模塊:



其中BA表示的是用戶/項目的第k層嵌入的重要程度,也就是注意力機制,主要介紹在1.4節介紹。
本文使用基于偏差的注意力機制,該機制可以及時捕獲候選項目與用戶真實感興趣的項目之間的偏差,并且根據這個偏差大小為不同候選項目分配不同大小的關注度,從而協助模型取得更好的推薦性能。
其中,基于偏差的注意力機制計算式如式(12)所示:

式中,BA(h,r,t)的得分越大,就表示預測項目與用戶真實感興趣的項目之間偏差越小,因此整個推薦模型就會對此類項目給予更高的關注,協助模型更好捕捉用戶的高階關系和潛在興趣。
經過以上的分析,可以得出本文的預測結果,見式(14)所示:

為了驗證本文算法的有效性,接下來就進行相關的實驗分析。
本文選取了以下數據集,包括較新但數據量較小的Movielens-latest-small 數據集、用戶數據量較大的Movielens-1M 數據集和項目數據量較大的Douban(豆瓣)數據集。
從表1可以看出,在這3個數據集中,Movielens-latest-samll數據集數據量最小,包含686位用戶和9 878部電影,評分記錄42 694 條,并且該數據集科研根據獲取的links.csv文件去IMDB網站爬取更多相關電影的信息,包括電影主要、電影導演、電影類型、電影上映年份等。

表1 數據集基本統計Table 1 Basic statistics of datasets
豆瓣數據集相比于Movielens-latest-samll數據集來說,其數據量就較大,包含4 132 位用戶、32 185 部電影和998 972個交互評分記錄,在該數據集中,也是包含電影的屬性信息,比如電影類型、電影導演、電影主演等。
最后就是Movielens-1M 數據集,該數據集相比于前兩個數據集,它更新年代比較久遠,包含6 040 位用戶,3 952部電影和1 000 209個評分記錄,并且它的數據稀疏度最低,同時它也是一個包含用戶屬性信息的,比如用戶年齡、用戶職業等。
以上3個數據集中,均保證了每個用戶至少與20部電影有過交互記錄,并且:數據密集度=評分數/(用戶數×項目數),數據稀疏度=1-數據密集度[17]。
使用最近較新及效果較好的算法,并且根據是否包含圖卷積操作、知識圖譜嵌入以及注意力機制3個方面考慮,因此選擇以下幾個算法作為對比算法:
NGCF 模型[8],該算法將完整的圖卷積操作與基于協同過濾的算法進行結合,通過顯式建模用戶-項目之間的高階關系從而提升整體的推薦性能。
LightGCN模型[9],該算法是在NGCF模型的基礎山進行的改進,摒棄了完整的圖卷積操作,去除了特征轉換和非線性激活模塊,從而在不影響推薦性能的基礎上極大地降低推薦模型復雜度。
KGCN模型[10],該模型將知識圖譜作為輔助信息嵌入到含有圖卷積操作的推薦模型中,因此可以豐富數據集中的語義信息,更好挖掘用戶的潛在興趣和高階關系。
KGAT 模型[11]不僅訓練了項目嵌入,同時也對用戶嵌入進行了訓練,并且使用了KG 與圖注意網絡的思想,因此在整個模型訓練時得到了更優的處理。
本文選取了3種電影數據集進行算法驗證,并且將數據集隨機按照80%用于模型訓練,20%用于模型測試,經過10 次實驗取得平均值。所選取的評價指標主要是對用戶進行TOP-K推薦領域比較常用的指標:包括準確率Precision、召回率Recall 和歸一化累計折損增益NDCG[17]。其中R(u)表示的是給用戶u進行TOP-K推薦的項目集合,T(u)表示的是用戶u在交互記錄中原本感興趣的項目集合。
首先是準確率Precision指標,主要是指模型給用戶進行推薦的項目中用戶感興趣的項目占給用戶進行推薦的項目總和數的比例,見式(15)所示:

接著就是召回率Recall指標,該指標主要指最終給用戶進行推薦的項目中用戶感興趣的項目數占用戶歷史交互項目總數的比例,見式(16)所示:

最后就是歸一化累計折損增益NDCG,其主要是表示進行TOP-K推薦項目時對相關項目進行排序時準確性的一個評價指標,反映推薦結果是否與用戶歷史交互記錄相關,具體見式(17)所示:

其中DCG 指的是折損累計增益,IDCG 則是對DCG 進行歸一化處理后的結果,reli表示的用戶真實交互過得項目與推薦系統進行推薦項目之間的相似度大小,取值為[0,1],主要是用來衡量TOP-K推薦排序的一個評價指標[18]。
嵌入維度默認設置為16,默認學習率設置為0.001,批量大小默認設置為256,并且使用Adam 優化器對整個模型進行優化,TOP-K默認設置為15,將epoch 設置為300。
接著就是在基本參數設置時,所獲得的不同算法的性能對比,見表2所示。
根據表2 可以看出,在默認參數設置下,本文算法CKG-OGAT取得了最優性能。并且根據數據集Douban(豆瓣)和數據集Movielens-1M 結果看出,雖然兩者在數據稀疏度上存在5%差距,但是指標結果并沒有存在很大差距,這也從側面反映出了本文算法可以緩解數據稀疏問題。

表2 不同算法的性能對比Table 2 Performance comparison of different algorithms
接著就是通過調整K找出不同算法在不同數據集基礎上的準確率變化趨勢,保證其他參數都是默認設置的情況,具體如圖4所示。

圖4 不同算法在3個數據集上的性能對比Fig.4 Performance comparison of different algorithms on three datasets
根據以上3個圖可以看出,本文所提CKG-OGAT算法在3個數據集上面都呈現了最優性能。
為了讓CKG-OGAT算法在不同數據集上呈現最優性能,因此本章將針對不同數據集進行相關參數調優,以下參數調優都是在其他參數默認設置時進行調整驗證的。
首先是對TOP-K的調整,以便找出不同數據集下K的最優選擇,表3就是在3個數據集上進行K調整獲取的結果:
表3可以看出,對于數據量較小的Movielens-latestsamll數據集來說,在K=15 時達到最優性能,而對于數據量相對更大的其他兩個數據集,均在K=20 時取得了最優性能。

表3 不同數據集TOP-K參數調優結果Table 3 TOP-K parameter tuning results for different datasets
接著就是通過調整epoch,觀察在不同數據集上面的性能變化,具體見圖5所示。

圖5 本文算法在Movielens-latest-small數據集上的epoch參數調優Fig.5 Epoch parameter tuning of proposed algorithm on Movielens-latest-small dataset
如圖5所示,Movielens-latest-small數據集在epoch=300時性能最優。在豆瓣(Douban)數據集上面,當epoch=400 時性能最優,這也不難解釋,Douban(豆瓣)數據集相對于Movielens-latest-small 數據集來說,其數據量較大,并且電影數據較多,因此整個數據就更加具有多樣性。在Movielens-1M數據集中,當epoch=400時性能最優,主要原因也是由于該數據集數據量較大。
最后就是嵌入維度的調整,觀察對不同數據集的影響,具體見表4~6所示。

表4 Movielens-latest-small數據集Table 4 Movielens-latest-small dataset
由表4 看出,在Movielens-latest-samll 數據集上,當嵌入維度為16時性能最優。
由表5 看出,對于Douban 數據集來說,當嵌入維度為32時推薦效果最優。

表5 Douban數據集Table 5 Douban dataset
由表6 看出,在Movielens-1M 數據集下,當嵌入維度為32時性能最優。

表6 Movielens-1M數據集Table 6 Movielens-1M dataset
最后,根據調整TOP-K、epoch數和嵌入維度3個參數,可以分析出對于不同數據集在不同參數下的性能,如表7~9就是參數調優整合。

表7 Movielens-latest-small數據集參數調優整合Table 7 Movielens-latest-small dataset parameter tuning integration
根據表7可知,Movielens-latest-small數據集在TOPK為15、epoch數為300、嵌入維度為16時,在CKG-OGAT模型下性能最優;由表8 可知,Douban 數據集在TOP-K為20、epoch 數為400、嵌入維度為32 時,在CKG-OGAT模型下性能最優。

表8 Douban數據集參數調優整合Table 8 Douban dataset parameter tuning integration
由表9 可知,Movielens-1M 數據集在TOP-K為20、epoch 數為400、嵌入維度為32 時,在CKG-OGAT 模型下性能最優,并且當兩個數據集都在最優參數時,所獲取的準確率差距并不大,這也反映出CKG-OGAT 模型可以很好地緩解數據稀疏問題。

表9 Movielens-1M數據集參數調優整合Table 9 Movielens-1M dataset parameter tuning integration
為了驗證本文所提算法的有效性,包含協同知識圖譜的有效性、優化的圖卷積網絡的有效性、基于偏差的注意力機制地有效性,其中有效性分析都是在不同數據集參數最優情況下進行驗證的。
這里將移除協同知識圖譜的算法叫作OGAT,具體的準確率指標見表10所示。
根據表10 可以看出,當推薦模型中含有協同知識圖譜時,數據集Douban(豆瓣)和數據集Movielens-1M數據集的性能指標差距不是很大,但是當去除CKG 模塊時,更加稀疏的Douban(豆瓣)數據集就比Movielens-1M 數據集在準確率上面低了2.48%;因此這也從側面反映出CKG模塊可以很好地緩解數據稀疏問題。
這里將使用傳統圖卷積網絡的算法叫做CKG-GAT,為了更加全面地分析優化圖卷積網絡的有效性,還與另外兩個使用傳統圖卷積網絡的推薦算法進行對比分析,具體如表11所示。

表11 優化的圖卷積網絡有效性分析Table 11 Effectiveness analysis of optimized graph convolutional network
由表11 可以看出,本文所提算法CKG-OGAT 使用的優化的圖卷積網絡,在整體推薦性能上面沒有特別大的影響,但是通過出去特征轉換和非線性激活模塊,平均每個epoch的訓練時間減少了一半,從而極大地降低整個模型的復雜度。
這里將去除掉含有基于偏差的注意力機制模塊的算法叫做CKG-OGCN,具體如表12所示。

表12 基于偏差的注意力機制有效性分析Table 12 Effectiveness analysis of bias-based attention mechanism
由表12 可以看出,去除掉基于偏差的注意力機制模塊的算法在3個數據集上面性能都有一定的降低。
為了驗證本文模型使用的TransD 嵌入模塊有效性,將本文模型中的知識圖譜嵌入模塊TransD 替換成TransR 模塊所得的算法叫做CKG-OGAT′,具體如表13所示。

表13 TransD有效性分析Table 13 Effectiveness analysis of TransD
由表13 可見,本文模型所使用的TransD 嵌入模塊相對于TransR模塊,在3個數據集上面所獲取的推薦性能均更優,因此這也能反映出本文模型使用的TransD模塊的有效性。
針對推薦系統的數據稀疏和模型復雜度較高等問題,本文提出了融合協同知識圖譜和優化的圖注意網絡推薦算法CKG-OGAT。
首先將用戶-項目交互圖與用戶/項目知識圖譜結合構建成協同知識圖譜,嵌入到優化的圖卷積網絡中,通過去除特征轉換及非線性激活模塊,因此可以在不影響整體推薦性能的情況下極大地降低模型復雜度;最后再結合基于偏差的注意力機制,及時獲取推薦項目與用戶真實感興趣項目之間的偏差,從而更高效地進行推薦。最后在3個數據集上驗證分析,CKG-OGAT算法可以適當緩解數據稀疏問題,并且極大地降低模型復雜度。
由于本文對用戶的動態興趣沒有考慮,因此下一步的計劃就是結合動態推薦模型捕獲用戶的動態興趣變化,同時在模型可擴展性方面進行更深入的研究。