范鈺,范洪博
(昆明理工大學 信息工程與自動化學院,云南 昆明 650500)
隨著數字化信息技術和互聯網技術的不斷演進和發展,用戶獲得和瀏覽信息的方式產生了翻天覆地的變化,信息量呈爆炸式增長,帶來了信息過載問題,這種問題使人們對有效信息的篩選變得十分困難。為解決以上難題,推薦技術的應用逐步進入了人們的生活,通過利用用戶與項目的歷史交互數據,對用戶未觀測到項目的感興趣度進行預測,并對預測結果進行排序,推薦給相關用戶。
基于商品的協調過濾算法首次由文獻[1]提出,該算法原理簡單、效果顯著,是目前在推薦系統領域應用最廣泛的技術。傳統的協同過濾算法主要分析用戶和項目的交互數據,根據用戶或項目之間的相似度來判斷用戶偏好并進行推薦,盡管協調過濾算法取得了巨大的成功,但該算法對于解決數據冷啟動和數據稀疏性問題仍然面臨著巨大的挑戰。
隨著知識圖譜、分子結構等圖形數據的大量涌現,業內刮起了一股基于圖神經網絡(GNN)的研究熱潮。GNN 結合了卷積神經網絡(CNN)和圖表示學習(GRL)兩大技術[2-3],CNN 能從歐幾里德數據中高效提取局部特征,但是當CNN 的處理對象為知識圖譜這種非歐幾里德數據時,由于傳統的離散卷積在非歐幾里德數據上無法保持平移不變性,存在一定的局限性;GRL 是用于實現將圖的節點、邊或者子圖生成低維向量的新興技術。基于GNN 的推薦方法結合協同過濾以及傳播思想,采用嵌入傳播迭代地聚合鄰域嵌入,通過堆疊傳播層,使得每個節點都能訪問到高階鄰居信息,這彌補了傳統推薦方法只能訪問一階信息的不足,有助于解決協調過濾推薦系統的冷啟動問題。因此圖神經網絡的發展帶給許多學者啟發。文獻[4]提出了GraphSAGE,GraphSAGE 執行鄰域采樣,在每個訓練過程中只更新相關的子圖,顯著降低了GNN 的計算復雜度,提高了模型的可擴展性。文獻[5]成功將GraphSAGE 落地到大規模網絡的推薦系統中,并能高效處理數十億條內容嵌入。除此之外,一些靈活的開源工具也得到發展,如Pyg[6]、DGL[7]以及AliGraph[8]等。在后續工作中,文獻[9]提出NGCF,優化了高階信息中子圖結構的使用,取得了不錯的推薦性能。文獻[10]提出了LightGCN,去掉了NGCF中特征變換和非線性激活部分,經過消融實驗對比,該模型在大大降低模型訓練量的同時也相對提升了性能。文獻[11]在LightGCN 基礎上提出了UltraGCN,該模型通過對損失進行約束從而直接逼近無線層圖卷積的極限,并嘗試不同的邊緣權重分配,訓練效率相比LightGCN提高了10 倍以上。文獻[12]提出了KGCN,引入知識圖從實體的鄰居中抽取樣本作為其接受域,然后將鄰域信息與偏差相結合計算實體的表示。接受域可以擴展到多次跳離,以模擬高階接近性信息,并捕獲用戶潛在的長距離興趣。文獻[13]提出了KGIN,該模型引入輔助項目知識來探索用戶項目交互的背后意圖,在推薦準確性上有了較大提升,一定程度上提升了模型的可解釋性。總的來說,基于知識圖的圖卷積神經網絡推薦越來越成為推薦技術的主流研究方向。
為了有效提高推薦系統的性能,本文提出了一種基于注意力機制的最終節點表示方法的KGIN-W 模型作為KGIN 的改進模型。KGIN 模型是一種新的基于知識圖譜的意圖網絡推薦模型,在設計上嘗試利用知識圖譜中多樣的關系進行意圖建模,將每一個意圖建模為知識圖譜的注意力組合,為了獲得更好的解釋性和建模能力,模型設計了獨立性建模方案來確保不同意圖之間的獨立性,相較于之前GNN 單純聚合鄰居節點的方式,提出關系路徑聚合的方案,遞歸整合高階連通關系形成關系序列。經過用戶意圖建模和關系路徑聚合,有力地幫助模型提取用戶意圖信息,并編碼成用戶和項目的集成表示。
下面將從用戶意圖建模、關系路徑聚合以及模型預測三個方面來介紹該模型。
現實生活中用戶選擇某一個項目是基于多種因素綜合考量的結果,這種綜合的考量因素可以表征為特定的意圖,也可以理解為用戶選擇該項目的原因,在一定程度上能夠反映同一個環境下所有用戶行為的共性。以圖書推薦為例,意圖可能是對于圖書不同屬性的考慮,如作者和圖書類型的組合,亦或者評分和圖書類型的組合。針對不同的用戶行為模式,可以抽象出不同的意圖,以此更細粒度的增強協同過濾的效果,即擁有相似意圖的用戶對于項日有著相似的偏好。下面將介紹具體的建模過程。
1.1.1 意圖嵌入
KGIN 為每一個意圖分配一個知識圖譜的關系分布,假定P是所有用戶共享的意圖集合,據此將每一個用戶和項目交互(u,i)分解成{(u,p,i)|p∈P},根據形成的用戶-意圖-項目三元組形成一個新的異構圖,稱之為意圖圖,并使用注意力策略來創建意圖嵌入。
式中:α(r,p)是注意力得分;ep為意圖嵌入;er為關系嵌入。每一個關系r的嵌入都會分配一個注意力得分,以此來幫助量化每一個意圖中特定關系r的重要性。注意力得分實現如式(2)所示:
式中wrp是特定關系r和特定意圖之間的可訓練權重。
1.1.2 意圖獨立性建模
意圖建模的目的是通過具有特定含義的意圖來描述用戶的個性化偏好,不同的意圖應該盡可能包含不同的用戶偏好信息,如果一個意圖能夠被其他意圖表示或者推斷出來,那么這個意圖很有可能就是一個冗余的,信息量少的意圖應當被摒棄。為了獲得更好的模型性能和可解釋性,意圖應盡量彼此獨立,KGIN 模型考慮從統計學角度來實現意圖獨立,比如余弦相似度以及距離系數。
在KGIN 模型前,基于GNN 的推薦模型都通過優異的性能證明了鄰居節點聚集機制的優勢,但是單純的節點聚集會限制知識圖譜信息帶來的收益。這是因為聚合器在聚合鄰域信息時沒有區分信息的來源,無法判斷信息路徑,另外,通過注意力機制對知識圖譜關系建模來控制鄰域傳播的方式,會限制知識圖譜中關系對于節點的貢獻,無法顯式地捕捉到關系路徑。KGIN 由此提出了關系路徑聚合的方式,以下為關系路徑聚合的詳細說明。
1.2.1 意圖圖上的聚合
對于用戶-項目交互二部圖拓展而成的意圖圖,從中間提取協同過濾信息作為用戶偏好特征。在意圖圖中,根據具有相似意圖的用戶對項目具有相似偏好這一假設進行細粒度的意圖捕獲,對于用戶u,可以使用Au={(p,i)|(u,p,i)∈C}來表示圍繞u的一階連通信息。如式(3)所示,通過一階連通信息集成用戶歷史交互項目的意圖信息。
用戶的一階嵌入是由零階嵌入聚合而成,其中Agg()是GCN 聚合函數,公式如下:
式中:是項目i的ID 嵌入“;⊙”是元素點積(相同位置的元素逐個元素相乘),相較于其他模型采用衰減因子或者正則化思想,元素點積更有利于突出意圖關系在聚集中的作用;β(u,p)是注意力權重,引入β(u,p)來幫助評判不同的意圖p對于用戶的重要性。
1.2.2 知識圖譜上的聚合
一個實體可以涉及多個知識圖譜三元組,因此可以將其他連接的實體作為其屬性,這些屬性體現了項目之間的內容相似度。利用Ai={(r,v)|(i,r,v)∈G}表示項目i的屬性和一階連通性,其中r代表關系,i代表項目,v代表知識圖譜中的實體,G為知識圖譜。由知識圖譜中實體連接帶來的關系感知信息可以生成項目i的表示:
式中:是一階連通性聚合信息的嵌入表示;Agg()是從每個連接(i,r,v)中提取聚合信息的GCN 聚焦函數。每一個知識圖譜的實體在不同的關系上下文中應該具有不同的語義,比如某人可能是某項目的負責人,也有可能是另一個項目的成員。以往的模型只通過注意力機制模擬衰變因素中的知識圖譜關系。
式中是知識圖譜實體的ID 嵌入。對于每一個三元組(i,r,v),在KGIN 中通過關系r建模為旋轉因子,從而使得關系消息能夠在三元組具有相同實體的情形下幫助揭示三元組攜帶的不同信息。對于高階的實體ID 嵌入也可以通過類似的方法獲得。
1.2.3 關系路徑的捕獲
在對用戶和項目進行一階連通性建模后,模型需要堆疊更多聚合層,收集來自高階鄰居有影響力的信息,對于用戶和項目的高階信息建模如下:
式中是所有以項目i為根節點的l跳路徑的集合。由公式(10)可以看出,該表示方式能夠反映關系之間的相互作用,從而保留路徑的整體語義。
模型通過對不同層的用戶項目信息分別聚合,經過L層的運算之后,可以獲得用戶u和項目i在不同層上的表示,最后對各層進行組合得到最終的表示:
得到最終的用戶和項目表示后,以二者的內乘即余弦相似度來預測用戶采用該項目的可能性:
在圖嵌入部分對意圖獨立性建模進行調研,選擇了最佳的互信息方案;引入注意力機制對各聚合層嵌入加權組合生成用戶和項目最終表示。模型結構如圖1 所示。其中:打框部分為模型改進部分;eu、ei、ep、ev、er分別為用戶嵌入、項目嵌入、意圖嵌入、知識圖譜實體嵌入與知識圖譜關系嵌入;eu_fin和ei_fin分別為用戶和項目最終表示。

圖1 KGIN-W 模型部分架構
在KGIN-W 模型中,用戶和項目嵌入能夠訓練的是第0 層的嵌入,后續不同層的嵌入則通過不斷的GCN 聚集與更新操作生成,為進行最終的預測任務,需要對不同層的嵌入進行整合生成最終用戶和項目表示,具體如圖2 所示。

圖2 層嵌入組合圖
在模型中,不同層的嵌入具有不同的語義,以用戶嵌入為例,第一層嵌入包含用戶和項目的交互信息,第二層則捕獲有相同交互項目的用戶信息,更高層則能捕捉更高階的鄰域信息。當前主流的層組合方法是使用GCN 聚集最后一層的節點向量作為最終表示,以用戶最終表示為例,即然而簡單地使用最后一層作為最終表示,一方面無法區分高低階信息的重要性,另一方面,隨著層數增加,嵌入會出現過度平滑的情況。
本文依托科研管理平臺構建科研推薦數據集。科研推薦數據集主要由用戶項目交互數據以及知識圖譜數據兩部分組成。
1)用戶項目交互數據的生成。首先,收集科研管理平臺數據庫科研人員申請、參與以及查看項目所產生的數據記錄,然后過濾,去除掉稀疏的交互信息,最后將用戶以及項目的唯一性ID 映射到科研推薦數據集。
2)知識圖譜數據的生成。首先,從科研領域知識圖譜數據庫中獲取三元組信息,其中包含實體信息以及連接實體的關系信息。在獲取三元組信息后,對關系信息以及實體信息進行ID 編碼輸出,其中需要將交互信息中項目與圖譜實體一一關聯。
獲取的數據都以結構化形式呈現。數據量概況如表1 所示。

表1 推薦數據集信息
對于科研推薦數據集,本文將知識圖譜中具有豐富信息的三元組數據與用戶交互數據作為樣本數據,其中知識圖譜三元組信息作為輔助信息,交互數據作為用戶個性化信息的載體。在本次實驗中,通過相應數據處理模塊對用戶項目交互數據進行隨機切割,其中80%用作訓練集用以幫助模型訓練,剩余的20%作為測試集用以評估模型性能。
通過模型對比實驗驗證本文改進方案的有效性。以下所有的實驗內容都是基于科研推薦數據集,均在訓練集上進行訓練,在測試集上進行評估。
KGCN 模型:KGCN 是知識圖譜和用戶項目交互的GNN 推薦模型,該模型通過有選擇、有偏差地聚合鄰居信息,然而在該模型中僅僅聚合簡單的幾層鄰居信息,沒有深入分析用戶的偏好。
KGAT 模型:KGAT 是基于知識圖譜和用戶項目交互的GNN 推薦模型,該模型基于節點鄰居的嵌入來迭代更新節點嵌入,能捕獲高階連接,另外加入了注意力機制來學習不同鄰居節點的權重。然而在該模型中沒有細粒度地分析用戶的偏好,并且缺乏對于關系語義的保留。
基礎模型KGIN 模型:該模型相較于KGAT 模型而言,在對用戶和項目進行表示的過程中,加入了關系語義嵌入,并且利用圖譜中的關系對意圖進行建模,細粒度地挖掘了用戶的偏好,取得了更優異性能的同時獲得了更好的可解釋性。
KGIN-W 模型:該模型相較于KGIN 模型,在各層的用戶和項目表示融合形成最終用戶項目表示時,加入了權重機制區分各層的重要性。
基于模型質量和訓練成本的考量,為保證測試的效果,對所有測試模型參數設置如下:采用Xavier 初始化方法初始化可訓練參數,優化器固定為Adam 優化器[14],批次處理大小固定為1 024,學習率設置為0.000 1,嵌入維度設置為固定的64,控制獨立性損失權重的相似度正則化參數設置為0.000 1。
模型對比實驗中,除KGCN 模型和KGAT 模型外,KGIN、KGIN-W 模型的獨立性建模方案都設置為互信息建模方案,GCN 聚集層數為3層,用戶意圖粒度為4。對于KGAT 模型,通過矩陣分解預訓練獲得初始嵌入,其余兩種對比模型無需預訓練。
召回率(Recall)與歸一化折損累計增益(NDCG)是反映推薦列表質量的單值指標。
召回率用于Top-N推薦系統,主要的評價方式是通過計算預測前N個項目與用戶實際交互項目的交集大小再除以用戶實際交互項目的集合大小,該指標能反映推薦中有多少正樣本進入了推薦列表,然而召回率是與順序無關的推薦評價指標,無法反映列表排序質量,因而需要結合下文的NDCG 指標進行綜合評價。
NDCG 是排序結果的常用評價指標,用于評判排序的準確性。以本文推薦模型為例,針對某個用戶返回推薦項目列表,假定列表長度為N,此時可使用NDCG@N來評價,以此判斷生成的排序列表與用戶的真實交互列表之間的差距。
通過結合Recall 和NDCG 兩個評估指標,可以更加全面地衡量模型推薦性能,保證推薦的質量。一般而言,用戶面對推薦列表時只會對推薦排名靠前的項目有興趣,因而實驗中不會獲取所有的項目評分,此處將推薦的排名列表長度設置為:(20,40,60,80,100),以此計算相應的Recall 和NDCG,并進行評估。
實驗結果如表2 和表3 所示。由表2 和表3 的數據繪制圖3 以及圖4,并進行分析。

表2 各個模型召回率統計

表3 各個模型NDCG 統計

圖3 模型推薦結果召回率評估指標

圖4 模型推薦結果NDCG 評估指標
首先KGAT、KGIN 以及KGIN-W 的召回率和NDCG相較KGCN 有著明顯的提升,并且當推薦列表的長度不斷增加時依然具有相對優異的性能。證明融入用戶意圖以及關系路徑聚合方案模型能更加精確地捕獲用戶的偏好,提高嵌入的質量,提升推薦性能。
另外在推薦長度為20時,KGIN-W 召回率及NDCG優于KGIN,KGIN-W 相對KGIN 召回率提升5.88%,代表列表排序質量的NDCG 提升了4.83%。通過分析訓練完成的模型參數,可訓練層權重參數在低層表示權重更高,這表明對模型而言,低階信息相較高階信息更能反映用戶偏好。從數據集分布上考量,不同于用戶選購商品的離散化表現,科研人員更關注與其關系更密切的交互項目,因而更加注重低階信息的權重分布,更能反映科研人員的真實意圖,然而對低階信息的關注意味著在推薦遠距離目標時,推薦性能不可避免的下降。考慮到系統中用戶對于推薦列表一般比較關注排名靠前的部分,對于靠后的推薦很少瀏覽,綜合考量系統需求和模型性能后,選擇以加權層嵌入組合形成最終表示的方案進行訓練與實驗。
最后,KGIN-W 的召回率和NDCG 評估相較KGIN以及KGAT 有著明顯的提升,KGIN-W 具有最佳性能。KGIN-W 的召回率提升主要來源于權重機制的加入讓模型在Top-20 推薦時更加準確,推薦列表質量更高。
本文提出了一個KGIN 的改進模型KGIN-W,分析說明了模型的架構、改進點,并通過實驗評估比較了模型性能。本文在對KGIN 模型進行詳細分析后,為深入探索用戶興趣并更加精準地推薦項目,首先對KGIN 模型中獨立性建模方案做了細致的調研,經過理論分析和實驗論證,選擇了性能最佳的互信息方案;然后對KGIN層嵌入組合方式進行改進,引入了注意力機制,以此更好地區分不同層信息對于最終表示的影響;最后,本文通過模型對比實驗證明了KGIN-W 的訓練效率以及推薦性能的優越性。但實驗也存在不足之處,在對KGIN中的損失函數調研中發現,原有的BPR 損失函數在訓練速度和區分正負樣本的性能上稍顯不理想,應考慮設計一個個性化興趣邊界損失函數,以此幫助模型更快更好地區分正負樣本。所以接下來的工作重點將放在這一方向。
注:本文通訊作者為范洪博。