李 想,楊興耀,于 炯,錢育蓉,鄭 捷
新疆大學 軟件學院,烏魯木齊830008
隨著互聯網的快速發展,數據量呈爆炸式增長,導致信息過載,用戶很難在數據的海洋中挑選出自己感興趣的內容。為了提高用戶體驗,推薦系統已經應用于音樂、電影、廣告等推薦場景。推薦系統主要分為基于協同過濾(collaborative filtering,CF)的推薦系統、基于內容的推薦系統和混合推薦系統。基于CF 的推薦系統由于能夠有效地捕捉用戶偏好,并且易于在多種場景下實現,而無需在基于內容的推薦系統中進行特征提取,因此得到廣泛的應用。然而,基于CF 的推薦存在數據稀疏性和冷啟動問題。為解決這些問題,混合推薦系統被提出來,其利用多種推薦技術來克服單一推薦方法的局限性,在此過程中會探索多種類型的輔助信息,比如物品屬性、物品評論和用戶的社交網絡。
近年來,在推薦系統中引入知識圖譜(knowledge graph,KG)作為輔助信息受到關注。KG 是一個有向異構圖,其中節點作為實體,邊表示實體之間的關系。可以將物品及其屬性映射到KG 中,以理解物品之間的相互關系。此外,還可以將用戶信息集成到KG 中,從而更準確地捕捉用戶和物品之間的關系以及用戶的偏好。最近提出多種KG,如Freebase、DBpedia、YAGO、谷歌的Knowledge Graph、微軟的Satori,方便了構建用于推薦的知識圖譜。可以發現知識圖譜在多種推薦場景中都作為輔助信息,包括書籍、新聞、音樂、社交平臺。
在以往的研究中,對知識圖譜中用戶屬性信息的考慮少于對物品屬性的考慮,這可能導致推薦結果存在一定的局限性。不同的人有不同的興趣,這可能會受到用戶的性別、年齡、職業等的影響。以電影推薦為例,不同性別和年齡的人可能會喜歡不同類型的電影。屬于同一類別的人可能有相似的興趣,而如果他們有不同的屬性,他們可能有不同的興趣。如圖1 所示,大部分男性青年喜歡看科幻和動漫類型的電影,大部分中年男性喜歡看戰爭、犯罪和紀錄片類型的電影,大部分女性青年喜歡看偶像和情感類型的電影,大部分中年女性喜歡看喜劇和情感類型的電影。

圖1 不同屬性的用戶偏好不同類別的電影Fig.1 Users with different attributes prefer different categories of movies
KGCN(knowledge graph convolutional networks)在推薦方面具有優越的性能,其利用知識圖譜的異構信息在物品端聚合物品的屬性和其他額外的輔助信息,豐富了物品端的表示;但其在用戶端沒有考慮用戶的屬性信息,導致推薦模型存在一定的缺陷。為此本文對KGCN 模型進行改進,在用戶端添加輔助信息,提出DEKGCN(double end knowledge graph convolutional networks),這是一個在知識圖譜上探索用戶偏好的端到端的推薦系統。它采用KGCN 作為項目推薦任務的基礎模型,使得用戶端和物品端都含有豐富的語義表示。
本文的主要貢獻如下:(1)推薦模型利用知識圖譜豐富的異構信息,以圖卷積網絡的方式在物品端聚合來自外部知識圖譜豐富的物品信息和在用戶端聚合來自數據集中用戶的屬性信息來學習各自的表示,提高了推薦系統的可解釋性。(2)推薦系統數據集中的用戶信息被提取出來構建三元組,拓寬了信息來源,豐富了知識圖譜。(3)在公共電影數據集進行了大量的實驗來評估DEKGCN 的有效性,與其他新近的模型相比,在共同的評價指標(例如、、和Top-)上,結果顯示推薦性能有顯著提升。
用戶屬性相當于用戶身上的標簽,如年齡、性別、職業、收入等,把用戶屬性添加到推薦系統中可以極大地反映用戶的本質特征,因而可以很大程度上促進更精準的個性化推薦。基于混合模型推薦算法的優化在修正余弦相似性和物品屬性相似性結合的基礎上,用SVDFeature 計算用戶屬性權重因子來獲取用戶相似度。基于用戶屬性和評分的協同過濾推薦算法以用戶間屬性相同個數來衡量用戶的相似性,實現了與用戶評分相似度融合的平滑過渡。基于用戶聚類與項目劃分的優化推薦算法使用means 算法對用戶屬性進行聚類,再通過增加物品類別相似度和評分相似度得到最近鄰。文獻[14]用優化的-means 算法對具有高活躍度的用戶屬性進行聚類來獲得用戶屬性相似度,并綜合考慮了用戶偏好相似性。然而,現有的考慮用戶屬性的推薦算法只是把用戶屬性作為一種計算相似度的因素,并未把它用來豐富用戶的表示,也沒有學習高層次的抽象特征。
為了解決稀疏性和冷啟動問題,把知識圖譜應用到推薦系統越來越受到人們的關注。按照利用知識圖譜的方式,將基于知識圖譜的推薦系統劃分為三種:基于嵌入的方法、基于路徑的方法和統一的方法。基于嵌入的方法通常直接使用來自知識圖譜的信息來豐富物品或用戶的表示,將實體和關系嵌入到低維的向量空間。例如,在CKE(collaborative knowledge base embedding for recommender systems)
中,從知識圖譜學習到的項目結構嵌入、項目文本嵌入和可視化嵌入集中在一個統一的貝葉斯框架中結合起來,共同表示物品。基于路徑的方法利用知識圖譜中用戶或項目的連通性相似度來進行推薦。例如,PER(personalized entity recommendation)通過手動設計元路徑,提取基于元路徑的潛在特征來表示用戶和物品之間沿著不同類型的關系路徑的連通性。統一的方法結合基于嵌入的方法和基于路徑的方法的優點,利用嵌入傳播的思想來細化在知識圖譜中具有多跳鄰居的項目或用戶的表示。例如在RippleNet中,通過沿著知識圖譜中的關系,傳播用戶歷史上交互過的項目來挖掘用戶潛在興趣,從而豐富用戶的表示,提高推薦性能。本文提出的DEKGCN 是基于統一的方法,同時還考慮了用戶屬性對推薦的影響。
知識圖譜嵌入(knowledge graph embedding,KGE)將實體和關系嵌入到連續向量空間中,同時保持其固有結構。KGE 算法可以分為兩類:基于翻譯的模型,如TransE、TransH、TransR、TransD等;語義匹配模型,如RESCAL、DistMult、ComplEx等。基于翻譯的模型利用基于距離的評分函數,把衡量一個元組的可信性作為兩個實體之間的距離,通常經過翻譯關系進行。TransE 是最具代表性的基于翻譯的方法,它將實體和關系以向量的形式表示在同一空間中,當三元組(,,)成立時,即+≈,則得分函數f(,)=||+-||2 的得分低,否則高。語義匹配模型利用基于相似性的評分函數,通過匹配在向量空間中實體和關系表示的潛在語義來衡量事實的可信性。例如,RESCAL將每個關系表示為矩陣,以捕獲實體之間的組合語義,并使用雙線性函數作為相似性度量。然而這些方法只適合在知識圖譜內部完成特定任務,例如連接預測和三元組分類,而不適合應用在推薦領域。
本章將介紹所提出的DEKGCN 模型:首先描述知識圖譜感知的推薦問題,然后展示一個單層的物品端和用戶端的卷積表示學習過程以及兩端的聚合方式,最后介紹完整的DEKGCN 學習算法。
知識圖譜感知推薦問題的表述如下:在一個典型的推薦場景中,通常有一組個用戶={,,…,u}集合和一組個物品={,,…,v}集合。根據用戶隱式反饋,定義用戶-項目交互矩陣∈R:

其中,y=1 表示用戶和物品之間存在隱式交互,如點擊、觀看、瀏覽、購買等行為;否則,y=0。
2.1.1 知識圖譜
除了交互矩陣,物品還有一些附加信息,即物品的屬性和額外擴展信息。例如,一部電影可以通過導演、演員和類別等來描述。這些輔助信息可以通過外部知識圖譜獲取,它由{(,,)|∈,∈,∈}三元組組成,即(頭,關系,尾),和分別表示知識圖譜中的實體集和關系集。例如,三元組(流浪地球2,電影導演,郭帆)表示,郭帆是電影《流浪地球2》的導演。在許多推薦場景中,物品∈可以與中的一個或多個實體關聯。例如,在電影推薦中,電影《無間道》也作為實體出現在知識圖譜中。在本文中,只考慮一個物品恰好對應知識圖譜中一個實體的情況,即{(,)|∈,∈}。在本文的后面,可以互換使用符號和來表示某一項。此外,用()表示實體直接連接到的實體集,即()={|(,,)∈}。
2.1.2 用戶屬性圖G
除了與物品相關的實體,還必須獲取和用戶相關的實體,即用戶的人口統計學信息。由于這部分信息不包含在知識圖譜中,只能從數據集中提取,來構造用戶屬性三元組,形成用戶屬性圖G。對于用戶屬性三元組,把用戶作為頭實體,用戶屬性名作為關系,用戶屬性值作為尾實體,即{(,,)|∈,∈,∈},這里、分別表示用戶屬性圖G中的關系集(屬性名集)和實體集(屬性值集)。例如,在圖1 中,用戶屬性三元組(王華,性別,男)表示用戶王華的性別為男。此外,用()表示用戶的屬性集,即()={|(,,)∈G},比如王華屬性集合{性別:男,年齡:20 歲,職業:學生}。
在外部的知識圖譜中,()的大小在所有實體上都有顯著差異,在最壞的情況下可能會非常大(尤其是當跳數很大的時候)。為了保持每批的計算模式固定且更高效,對每個實體統一采樣一個固定大小的近鄰集,而不是使用它的完整近鄰()。也就是說,將實體的采樣近鄰集定義為(),其中()={|~()},|()|=,其中是一個可配置常數。在本文中,把()稱為實體的(一階)接受域,的最終表示受到接受域中不同實體的影響。在真實用戶屬性圖G中,()有固定大小,即()=,且一般都很小,不需要對其采樣,的接受域就是()且只有一階。


圖2 DEKGCN 模型框架圖Fig.2 Overall framework of DEKGCN
DEKGCN 被提出來捕獲知識圖譜中實體之間的高階結構接近性,在該節中,只對實體的一階卷積進行描述。對于一對候選用戶和物品,先在知識圖譜上用圖卷積的方法計算物品(實體)的一階向量表示,再在用戶屬性圖G上用圖卷積的方法計算用戶的最終向量表示。
2.2.1 物品(實體) 的一階向量表示
在知識圖譜上,r表示實體e和實體e之間的關系。用一個函數:R×R→R(例如內積)來計算用戶和關系之間的分數:


為刻畫物品的拓撲接近結構,需要計算物品鄰域的線性組合,即的一階鄰域表示:



∈R是實體的向量表示。當計算一個實體的鄰域表示時,用戶關系評分作為個性化的過濾器,根據特定用戶關系的評分帶有權重地聚合近鄰。


其中,和分別為變換的權值和偏置,為非線性函數,例如ReLU。
2.2.2 用戶 的最終向量表示
用戶的最終向量計算過程和物品的一階向量表示計算過程一樣,在這里只簡單敘述。



用戶屬性的線性組合,即的鄰域表示:



∈R是屬性的向量表示。


通過單一的DEKGCN 層,實體的最終表示依賴于它自己以及它的近鄰,稱之為一階實體表示。將KGCN 從一層擴展到多層,以更廣更深的方式合理挖掘用戶的潛在興趣。該技術可以直觀地描述為:將每個實體的初始表示(0 階表示)傳播給它的鄰居,得到一階實體表示,然后可以重復這個過程,即進一步傳播和聚合一階表示,以獲得二階表示。一般來說,一個實體的階表示是它自身及其相鄰實體的-1表示的混合。最終DEKGCN模型形式化描述在算法1中給出。
DEKGCN 的算法
輸入:交互矩陣,知識圖譜。
輸出:預測函數F(,;,,)。
初始化所有參數



注意,算法1 遍歷所有可能的用戶-項目對(第2行)。為提高計算效率,在訓練過程中采用負采樣策略。損失函數如下:

其中,T 為交叉熵損失函數;T為用戶的負樣本數,并且T=|{:y=1}|;為負抽樣分布且服從均勻分布;最后一項是L2 正則化。
為更好地評估本文提出的模型,一個包含交互信息和用戶輔助信息的數據集是必要的。本文提出的模型是在MovieLens-1M 上評估的,這是一個廣泛用于評估電影推薦系統的數據集,它包括由6 040 個用戶對大約3 900 部電影產生的1 000 209 條匿名評分(值范圍從1 到5),其用戶屬性信息包含年齡層次、性別、郵政編碼和職業。

對于MovieLens-1M 數據集中的每個電影,都需要在知識圖譜中有對應的實體。本實驗使用MKR中在Microsoft Satori 上為數據集MovieLens-1M 構建好的知識圖譜sub-KG 作為,其中數據集中的電影已經映射到相應的Microsoft Satori 實體。此外,利用MovieLens-1M 中用戶的ID、性別、年齡,郵政編碼和職業信息以三元組的形式來構建關于用戶屬性的知識圖譜G。例如,ID 為3 的用戶屬性三元組為(3,性別,男性)。數據集和知識圖譜的基本統計數據如表1所示。注意,用戶、項目和交互的數量比原始數據集要小,因為過濾掉了知識圖譜中沒有對應實體的項。

表1 數據集和知識圖譜的基本統計數據Table 1 Basic statistics for dataset and knowledge graph
將提出的DEKGCN 與以下新近的基于知識圖譜的推薦模型進行比較,對比模型的超參數設置除特別指出的以外,其他的與其原文中的設置相同。
MKR:通過一個交叉壓縮單元學習物品和知識圖譜中實體的共同潛在語義表示來進行推薦,豐富物品端的表示。在實驗中,迭代次數設為10。
KGCN:用圖卷積網絡的方法在知識圖譜中聚合物品的輔助信息,豐富物品端的表示,得到用戶對物品的偏好概率。在實驗中,批處理大小設為4 096。
KGNN-LS:在知識圖譜上用圖神經網絡聚合鄰域信息,并把標簽平滑正則化添加到損失函數中進行推薦學習。在實驗中,批處理大小設為4 096。
DEKGCN:本文提出的在用戶端和物品端同時融合各自輔助信息的推薦模型。
函數設置和基礎模型KGCN 一樣,和設置為內積函數。對于,設置ReLU 函數作為非最后一層的聚合器,tanh 函數作為最后一層的聚合器。超參數是通過優化驗證集的AUC 來確定的,迭代次數為20,實體嵌入向量的維數=16,接受域的深度=2,L2 正則化器權重=e,學習率=0.01,批處理大小為4 096。在知識圖譜中,實體鄰域采樣大小=4;在用戶屬性圖G上,由于MovieLens-1M只提供了4 個用戶屬性,因此=4。通過Adam 對可訓練參數進行優化。DEKGCN 的代碼是在Python 3.6、TensorFlow 1.12.0 和NumPy 1.14.3 下實現的。
訓練集、驗證集和測試集的比例為6∶2∶2,每個實驗重復3 次,取平均性能值。
在兩個實驗場景中評估模型:(1)在點擊率(click through rate,CTR)預測中,使用訓練好的模型來預測測試集中的每個交互,接著用、和1 來評估點擊率預測。(2)在Top@推薦中,使用訓練好的模型為測試集中的每個用戶選擇預測點擊概率最高的個項目,然后選擇@、@和1@對推薦集進行評估,其中=1,2,5,10,20,50,100。
本節將介紹不同模型和DEKGCN 的比較結果。表2 為模型的CTR 的預測結果,圖3、圖4 和圖5 分別為Top@推薦的準確率、召回率和1 折線圖。

圖3 Top@K 推薦的準確率Fig.3 Precision in Top@K recommendation

圖4 Top@K 推薦的召回率Fig.4 Recall in Top@K recommendation

圖5 Top@K 推薦的F1Fig.5 F1 in Top@K recommendation

表2 CTR 預測的AUC、Precision 和F1 結果Table 2 Result of AUC,Precision and F1 in CTR prediction
從表2 中可以看出,模型DEKGCN 在CTR 的各項指標上均取得了較好的性能。與表現最好的基準模型MKR 相比,DEKGCN 在上提升了1.69%,在上提升了2.21%,在1 上提升了2.28%。與原模型KGCN 相比,改進后的模型DEKGCN 在上提升了2.70%,在上提升了3.50%,在1 上提升了3.55%。
從圖3、圖4和圖5中可以看出,DEKGCN 在@、@和1@上也實現了較好的性能。=10 時,基準模型KGNN-LS 在準確率上表現最好,DEKGCN 與其相比提升了7.13%;基準模型MKR在召回率和1上表現最好,DEKGCN 與其相比在召回率上提升了2.67%,在1 上提升了12.89%。與原模型KGCN 相比,DEKGCN 在準確率上提升了18.62%,在召回率上提升了0.68%,在1 上提升了12.51%。
在CTR 預測和Top-推薦中,DEKGCN 在各項指標中均取得了較好的性能。在基準模型中,MKR在CTR 推薦場景中表現優秀,但在Top-的推薦場景中表現得不是很好。而DEKGCN 在這兩個推薦場景中都表現出色。這是由于MKR、KGNN-LS、KGCN和DEKGCN 這幾個推薦模型都結合了知識圖譜中豐富的異構信息,但MKR、KGNN-LS、KGCN 只是融合了物品在知識圖譜中的輔助信息及其關系,只有DEKGCN 同時在用戶端和物品端結合各自的輔助信息及其關系。本文提出的DEKGCN 模型性能提升有兩個潛在原因:第一個原因是使用了更多的信息源;第二個原因是使用結構化知識圖譜來建模異構信息。DEKGCN 表明,在用戶端融合用戶的輔助信息,在物品端融合物品的輔助信息是可行的。推薦系統對異構信息的利用可以顯著提高推薦性能,而用戶屬性信息的額外使用也可以提高推薦性能。
本文提出的DEKGCN 推薦模型,是一種利用用戶和物品屬性及其關系進行推薦的端到端模型,在MovieLens-1M 數據集上進行的大量實驗,證明了該模型在提高推薦質量方面的有效性,且為用戶提供了直觀的推薦解釋。在未來,會進一步地將知識圖譜與其他輔助信息有效地結合到推薦系統中,如社交網絡、用戶評論信息等;也會在其他領域拓展本文提出的模型,比如音樂、電子商務、新聞、視頻等。