朱金俠,孟祥福,邢長征,孫德偉,薛琪,關鈞渤
(遼寧工程技術大學 電子與信息工程學院,遼寧 葫蘆島 125105)
移動網絡的普遍應用,為人們帶來選擇麻痹 的困擾,推薦系統是解決信息過載問題的關鍵技術。推薦的重點在于推測用戶偏好和拓展用戶視野。推薦的核心在于預測用戶是否會與某個項目進行交互,例如點擊、評級、購買以及其他形式的交互。現有的推薦方法[1-2]大多單一利用可以直接反映用戶偏好的顯式反饋信息(如用戶評分或評價)進行推薦。顯式反饋的推薦模型,一般無法考慮用戶對打分機制的寬容度差異,在一定程度上會造成數據誤差,從而影響推薦結果。隱式反饋[3](如用戶點擊或瀏覽)也是影響推薦結果的重要因素。研究者在利用隱式反饋時,經常忽略那些用戶不點擊或不瀏覽的項目,這類數據被稱為隱式負反饋數據。通常,這類數據信息更稠密,可以間接挖掘用戶的隱藏偏好,缺點是不易獲取,也更容易包含噪聲數據。本文利用用戶社交圖的拓撲結構,通過分析用戶行為和朋友親密度間接捕獲這類隱式負反饋,稱為中間反饋。中間反饋相比于顯/隱式反饋被視為弱偏好,而相比于隱式負反饋被視為強偏好。并且,本文利用注意力機制[4]對輸入數據的噪聲進行過濾,減少噪聲數據對結果的消極影響,有助于選擇最相關的信息,而不是所有可用的信息。
此外,數據稀疏性也影響著協同過濾推薦技術的準確性。最近,將信息網絡嵌入到低維向量空間的圖嵌入方法已被廣泛應用于推薦領域[5-7],這類低維表示比用戶-項目交互矩陣更加稠密,有效緩解了數據稀疏性的消極影響。因此,本文模型的嵌入層利用圖嵌入技術將用戶、項目和朋友信息映射到低維稠密的向量的空間。圖卷積網絡因其強大的建模能力得到了快速發展,NGCF[8]、LightGCN[9]等均為典型的圖卷積協同過濾技術。圖卷積網絡[10](graph convolution network,GCN)最初是為圖分類任務設計的,“圖像”每個節點都包含豐富的語義信息作為輸入。然而,在協同過濾中,每個用戶/項目只有一個ID 作為輸入,沒有具體的語義。在這種情況下,進行特征變換和非線性激活可能對推薦效果的提升沒有任何好處。換句話說,模型包含太多無用的操作,可能會增加模型的訓練難度,降低模型性能。基于此猜想,提出的模型摒棄了圖卷積網絡中特征變換和非線性激活的設計。
本文利用用戶-朋友社交圖和用戶-項目-朋友高階連接圖從隱式負反饋中產生一系列的中間反饋。從圖1(a)可知目標用戶u1有4 個朋友,分別為朋友f1、f2、f3、f4。從圖1(b) 可知路徑長度L>1 表示目標用戶u1的高階連接性,此類高階連接性承載著u1的顯/隱式反饋以及中間反饋的偏好信息。路徑L=1 表示目標用戶u1直接交互的項目,路徑L=2 表示目標用戶與其朋友的行為相似度(即親密度)。例如,f2、f3與u1直接交互的項目有兩次交互,而f1、f4與u1直接交互的項目僅一次交互,由此可以推斷f2、f3與目標用戶u1的行為相似度更高,對u1決策的影響更大。路徑L=3 預測更能引起目標用戶u1感興趣的項目。由路徑L=2 可知,f2、f3與目標用戶u1有著更高的行為相似度,因此推斷f2、f3共同交互的i5比i4、i6更能引起u1的興趣。

圖1 用戶社交圖Fig.1 User social graph
隨著深度學習的發展,研究者將其與推薦算法[11-13]結合,有效提高了推薦結果的準確性。圖卷積網絡使用卷積算子學習圖結構的方法逐漸成為推薦新技術,通過平滑圖上的特征來學習節點的表示。文獻[14]提出了一種基于二分圖的信息傳遞自動編碼框架GC-MC,通過在用戶-項目交互圖上進行信息傳遞并產生用戶/項目節點的潛在特征,但模型僅考慮了用戶的一階鄰居,降低了訓練數據的豐富性。文獻[15]提出了一種聯合矩陣分解和圖卷積神經網絡的推薦模型Hop-Rec,利用矩陣分解將用戶-項目的交互信息因子化以獲取用戶偏好,顯式的建模用戶和項目之間的高階偏好。此類高階偏好尚未編碼到消息傳遞機制中,僅僅豐富了訓練數據。
注意力機制可以為不同的用戶和項目分配權重,動態捕獲更具代表性的用戶/項目影響。文獻[16] 提出了一種引入雙層注意力機制的DAML模型,聯合卷積神經網絡的局部注意力和相互注意力學習用戶和評論之間所存在的潛在特征的相關性。模型僅利用了用戶的顯式反饋,忽略了隱式反饋的重要影響。文獻[17]提出了一種聯合反向傳播與注意力機制的推薦模型,利用反向傳播學習目標用戶與鄰居節點之間的信息傳播,設計注意力機制捕獲每個用戶對所有最近鄰居節點的總體影響。但模型尚未有效解決數據稀疏性對推薦結果產生的消極影響。
需指出的是,以往的推薦技術在不同程度上提高了推薦結果的有效性,但是在緩解數據稀疏性以及隱式負反饋的低利用率等方面尚有不足。本文提出的模型通過圖嵌入技術將用戶、項目以及朋友信息嵌入到低維向量空間中,利用高階圖卷積層學習用戶、項目、朋友之間的高階連接信息,從隱式負反饋中產生一系列的中間反饋,以統一的方式緩解了數據稀疏性和隱式負反饋利用率低下的局限。
定義1(用戶與項目集合) 用戶集U={u1,u2,···,um} 包含M個用戶,項目集I={i1,i2,···,iN}包含N個項目。
定義2(用戶-朋友社交圖) 用戶與朋友之間的交互構成了用戶-朋友社交圖,記為Guf={U∪F,Euf},是一個社會關系圖。其中F={f1,f2,…,fL}為朋友集包含了L個朋友,Euf是用戶和朋友之間邊的集合。
定義3(交互矩陣) 用戶與項目之間的交互構成了交互矩陣,記為Rm×n,其中m和n分別為用戶和項目的數量。R中的每個元素記為rmn,表示用戶u與項目i是否交互;若用戶u與項目i之間有過交互,則rmn記為1,否則rmn為0。
定義4(中間反饋) 通過分析用戶行為和朋友親密度而間接捕獲的用戶對項目的隱式偏好,稱為中間反饋。中間反饋相比于顯/隱式反饋被視為弱偏好,而相比于隱式負反饋被視為強偏好。
本文設計了一種融合社交關系的輕量級圖卷積協同過濾模型,框架如圖2,主要由3 個模塊組成。①嵌入層:初始化用戶和項目的嵌入向量。②圖卷積層:通過學習用戶-朋友社交圖和用戶-項目-朋友高階連接圖的用戶和項目嵌入,從隱式負反饋中產生一系列中間反饋,并利用高階連接信息來細化嵌入向量。③預測層:采用內積交互函數,得到用戶與項目之間的關聯分數。

圖2 F-LightGCCF 模型框架圖Fig.2 Framework of F-LightGCCF model
2.2.1 嵌入層
根據圖嵌入模型[5-7],一個用戶u(朋友f或項目i)的嵌入向量表示為cu∈Rd(cf∈Rd或ci∈Rd),其中d表示嵌入向量的維度,用戶、用戶朋友以及項目等嵌入向量構成的初始嵌入向量查找表為

其中,嵌入查找表作為用戶嵌入、用戶朋友嵌入以及項目嵌入的初始狀態,以端到端的方式進行傳遞和優化。
2.2.2 圖卷積層
受GAT[4]、NGCF[8]、LightGCN[9]等模型的啟發,在GCN[10]消息傳遞機制的基礎上,從圖結構中捕獲協同過濾 (collaborative filtering,CF)信號,并細化嵌入向量。本文設計了由消息構建和消息聚合兩部分構成的圖卷積層。
1)消息構建
從圖1(b)可知,當L=1 時存在連接用戶-項目對(u,i),從項目i到用戶u的消息傳遞定義為

其中,u←i表示從項目到用戶的方向傳遞交互信息,m為表示傳遞消息的嵌入向量,f()是一個消息編碼函數,輸入為該用戶-項目節點對中用戶u和項目i的嵌入向量eu和ei,以及相關系數pui,相關系數p用來控制(u,i)邊上每次傳播時的衰減因子。
本文中,消息編碼函數f()的具體定義為

其中,本文模型不僅考慮了ei的影響,還利用哈達瑪積(ei⊙eu)將用戶與項目之間的交互信息編碼到消息傳遞機制中,使得消息傳遞取決于ei與eu之間的親密度值。相關性系數采用圖卷積神經網絡中常用的拉普拉斯范數,其中Nu和Ni表示用戶u與項目i的一階鄰居。
傳統的聚合函數不能區分鄰域的重要性,在更新節點時,所有鄰域被賦予一個靜態權重。因此,本文利用圖注意力網絡衡量鄰域的貢獻值,還使得模型更新鄰域節點權重時僅依賴于節點之間的特征表達,獨立于具體的圖結構(圖2 展示了圖注意力網絡更新特征節點的方式),提高了模型的泛化能力。
依據圖注意力網絡原理,鄰居節點i對目標節點u的影響,可由注意力相關分數表示:

最后,使用softmax 函數對輸出結果進行歸一化,得到目標用戶u的所有鄰居節點i的注意力權重,計算方法為

其中,β1為一個平滑系數,防止softmax 函數對活躍用戶權重的過度懲罰,取值范圍為[0,1]。
同理,當L=2 時存在連接項目-用戶朋友對(i,f),從用戶朋友f到用戶直接交互項i的消息傳遞可定義為捕獲了用戶與朋友之間的親密度。當L=3 時存在連接用戶朋友-項目對(f,i),從用戶未交互項i到用戶朋友f的消息傳遞可定義為從隱式負反饋中產生一系列的中間反饋。L=2 與L=3 消息構建原理與L=1 相同。圖3 展示了目標用戶u1的三階圖卷積傳播過程,如i5→f2→i2→u1這條傳播鏈上的交互信息被模型捕獲,使得i5上的信息被編碼到由此,通過堆疊3 層圖卷積層,利用社交關系捕獲隱式負反饋信息(即,中間反饋)。

圖3 三階圖卷積傳播層Fig.3 Third-order graph convolution propagation layers
2)消息聚合
經過3 層圖卷積傳播后,相應的得到了用戶u的3 個不同的嵌入向量表達,它們對用戶偏好有不同的影響。通過聚合目標用戶u的所有鄰居節點特征來更新用戶u的嵌入表達eu,聚合函數可定義為

式中:∥表示拼接運算。
2.2.3 預測層
同理,對經過3 層圖卷積傳播后得到的3 個不同的項目嵌入表達,最終的用戶和項目的嵌入表達分別如式(1)、(2)所示:

式中:γl≥0 表示第l層嵌入的重要程度,該參數采用注意力機制自動優化。
本文采用一個多層感知機來實現注意力機制:

式中:pi通過圖嵌入技術將one-hot 稀疏向量轉換為低維稠密向量表示,pi∈Rd×1;d為嵌入向量維度;qj為每個與用戶交互過的項目嵌入表達,為與用戶交互過的項目集合;分別表示從輸入層到隱藏層的權重矩陣和防止過擬合的偏置項;hT表示從隱藏層到輸入層的權重向量。最后使用softmax 函數對輸出結果進行歸一化處理:

式中:β2為一個平滑系數,防止過度平滑,取值范圍為[0,1]。
最后,在模型預測部分,采用內積交互函數,通過內積運算得到用戶對目標項目的偏好為

2.2.4 模型優化
本文使用貝葉斯(Bayesian personalized ranking,BPR)損失函數[18]對模型進行優化,主要原因是貝葉斯損失函數考慮了觀察到的交互和未觀察到的交互之間的成對偏好比較。本文還利用用戶的社交關系產生了一系列中間反饋,與BPR 的基本假設相比,本文假設可以從用戶的社交網絡中,在未觀察到的交互中挖掘出更多的用戶偏好,優化目標為

Dropout 策略可以在模型訓練時有效防止模型的過擬合,本文采用節點丟棄的Dropout 策略。隨機凍結一些特定節點,使其消息不向外傳播,對于3 層高階傳播,隨機丟棄拉普拉斯矩陣中的(M+N)p個節點,其中p為Dropout 率。
實驗采用Gowalla 和Yelp2018 兩個公開的數據集來評估提出的模型,表1 給出了兩個數據集的統計信息。

表1 實驗數據信息Table 1 Statistics of the datasets
本文提出的融合社交關系的輕量級圖卷積協同過濾模型(light graph convolutional collaborative filtering recommendation approach incorporating social relationships,F-LightGCCF),分別與以下4 種先進的推薦模型比較:
1)GRMF[19]:該模型通過利用圖拉普拉斯正則化算子來平滑矩陣分解,設計了圖正則化交替最小二乘法對算法進行優化,利用加權核范數結構化矩陣分解框架。
2)Mult-VAE[20]:該模型將可變自動編碼器應用于協同過濾算法,利用非線性概率模型挖掘用戶-項目之間的隱式反饋。
3)NGCF[8]:該模型是基于圖卷積神經網絡的先進推薦模型,通過構建了k層嵌入傳播層對交互信息進行嵌入傳播學習,最終得到用戶-項目之間的關聯分數。
4)LightGCN[9]:該模型基于NGCF 模型,摒棄了NGCF 模型中特征變換和非線性激活2 個復雜的設計,降低了模型的訓練難度。
本文模型和算法使用Python 語言基于Tensor-Flow 框架實現,機器配置為GPU i7-8700K 3.7 GHz,操作系統為Windows 10。在實驗中,對于每一個數據集,隨機選擇每個用戶的80%的交互歷史構成訓練集,剩余的20%作為測試集。隨機選取訓練集中的10%作為驗證集,用于參數的調試。基于以往模型[9]的經驗,正則化系數設置為1×10-4,每次處理的數據量大小為1024,迭代次數為100 次時模型收斂。經驗證集測試后,在Gowalla數據集和Yelp2018 數據,Dropout 率分別設置為0.3 和0.1。學習率設置為0.0006,注意力網絡的平滑系數β1和β2均設置為0.5。參數調整好之后,本文采用Adam[21]作為優化器,使用Xavier 方式初始化模型參數,嵌入大小為64,使用3 個64×64 的圖卷積層。
在本文,每種模型均輸出用戶對所有項目的偏好分數,為了評估top-k推薦和偏好排序的有效性,實驗使用召回率(Recall@k)、精確率(Precision@k)和歸一化折現積累收益(NDCG@k)作為推薦效果方面的評價指標。默認情況下,設置k=20。召回率是所有“被正確推薦的項目”占所有“應該被推薦的正確的項目”的比例,精確率是“被正確推薦的項目”占“所有被正確推薦的項目”的比例,分別如式(3)和(4)所示。


式中:R(u)是為用戶推薦的項目集合;T(u)為測試集上用戶感興趣的項目的集合;F(u)為測試集上用戶不感興趣的項目的集合。
NDCG 是一種基于排名的測試指標,排名靠前的項目得分更高。

式中:reli表示用戶對第i個項目的評分;log2(i+1)是一個位置遞減權重。
3.5.1 模型推薦效果
將本文模型與對比模型分別在2 個相同的數據集上實驗,實驗結果如表2 所示。從模型推薦效果的總體比較來看,本文提出的F-LightGCCF模型在2 個數據集上的3 方面表現優于其他方法,證明了模型的高效性和良好的泛化能力。

表2 總體比較Table 2 Overall performance comparison
實驗對模型的top-k推薦進行了Recall@k、Precision@k和NDCG@k3 方面評估以驗證模型的有效性,其中k分別取值為20、40、60、80、100,結果如圖4 所示。本文模型的top-k推薦效果在全局和局部均有明顯的提升,主要原因是采用圖嵌入技術將用戶、項目、朋友信息映射到低維稠密的向量空間,有效緩解了數據的稀疏性。通過堆疊3 層圖卷積層,利用社交關系捕獲隱式負反饋信息,從而挖掘出能夠間接反映用戶偏好的中間反饋。另外,通過使用圖注意力網絡來衡量并更新鄰居節點的貢獻值。最后,將圖卷積層學習到的多個嵌入向量通過分層聚合機制加權聚合,并引入注意力機制自動學習第l層嵌入向量的重要程度,有效提高了模型推薦效果。

圖4 2 個不同數據集上top-k 推薦效果Fig.4 Top-k recommendation performance on two different data sets
3.5.2 圖卷積層的影響
圖卷積層對F-LightGCCF 模型推薦效果中起決定性作用。本文分別了設計GC-MC 圖卷積層[14]和Hop-Rec 圖卷積層[15],模型的推薦效果如表3所示。本文設計的圖卷積層的推薦效果相比于其他兩種設計均有明顯提高,原因是本文圖卷積層的設計使用哈達瑪積(ei⊙eu),使得消息傳遞取決于ei與eu之間的親密度值。在鄰域聚合時,每個鄰域嵌入采用對稱歸一化。經以往研究[9]證實,對稱歸一化可以使模型表現良好。此外,通過圖注意力網絡來衡量鄰居的貢獻值。而GC-MC 和Hop-Rec 圖卷積層的設計并未對圖卷積層進行簡化操作,僅使用了線性變換,其次,它們的設計并沒有考慮用戶的社交關系,降低了訓練數據的豐富性。此外,Hop-Rec 層總體表現優于GC-MC層,原因是GC-MC 層僅考慮了用戶-項目連接性的一階鄰居影響,而Hop-Rec 層利用高階鄰居來豐富訓練數據,對用戶和項目之間的高階偏好進行建模。
由表2 與表3 比較可知,更換了圖卷積層的F-LightGCCF 模型仍表現出很好的推薦效果,原因是本文模型設計了分層聚合機制,考慮了嵌入向量對最終向量表達的影響,融合注意力機制學習第l層嵌入的重要程度,驗證了模型設計的合理性。

表3 不同圖卷積層模型的推薦效果Table 3 Recommendation effects of different graph convolution layer models
3.5.3 消融分析
以往的工作[22-23]遵循標準的GCN 設計,包括特征變換和非線性激活。受LightGCN 模型啟發,對本文提出的模型進行消融工作。實驗結果如表4 所示,其中NF-GCCF 為未消融的模型,F-LightGCCF 為消融的模型。F-LightGCCF 模型的推薦效果有明顯提高,驗證了之前的猜想。在協同過濾推薦中,對用戶/項目的one-hot 向量進行特征變換和非線性激活無助于特征學習,反而會增加模型的訓練難度,降低模型性能。

表4 消融分析Table 4 Ablation analyses
模型訓練過程中,超參數直接影響模型學習的結果,為了使模型達到最佳的推薦效果,本文對模型的超參數學習如表5。

表5 測試超參數Table 5 Test hyper-parameters
3.6.1 學習率影響
模型的學習率直接影響著神經網絡模型的收斂狀態,進而影響著模型的性能表現,因此選擇一個合適的學習率對于一個神經網絡模型的影響至關重要。在神經網絡模型中,學習率可以被視為一個超參數來手動調整,也可以看作一個學習參數自動學習。在實驗中,將其設置為一個超參數,通過手動調整訓練得到最優的學習率大小,實驗結果如圖5。當學習率lr=0.0006 時,模型推薦的總體效果達到最佳,當學習率lr=0.0001 時,模型推薦的總體效果最差。


圖5 學習率測試Fig.5 Learning rate test
3.6.2 Dropout 率
Dropout 策略在模型訓練時有效防止模型的過擬合,本文提出了一種Dropout 策略為節點丟棄(node_dropout)。圖6 分別顯示了節點丟棄率p取不同值作用于2 個不同的數據集上產生的不同影響。當p=0.3 時,模型在Gowalla 數據集上的推薦效果最佳。當p=0.1 時,模型在Yelp2018 數據集上的推薦效果最佳。原因是Gowalla 數據集的稀疏度低于Yelp2018 數據集的稀疏度,故而Gowalla數據集更需要丟棄一些無用的數據節點。

圖6 Dropout 率測試Fig.6 Dropout test
3.6.3 平滑系數
注意力網絡的平滑系數用于防止過度平滑對推薦結果所產生的消極影響。本文將平滑系數設置為可手動訓練的超參數,圖7 展示了平滑系數β1和β2分別作用于2 個數據集上對召回率的影響。當β1=β2=0.5 時,取得最佳的推薦效果。

圖7 平滑系數的影響Fig.7 Effect of smoothing factor
本文提出了一種融合社交關系的輕量級圖卷積協同過濾模型(F-LightGCCF 模型),首先,模型在嵌入層嵌入用戶、項目和朋友信息,緩解了數據稀疏性的影響;在圖卷積層引入注意力機制衡量鄰居節點的貢獻值,摒棄了圖卷積網絡中特征變換和非線性激活的設計,降低了模型的訓練難度,提升了模型性能;其次,設計了分層聚合機制綜合考慮嵌入學習向量對最終向量表達的影響,再次融合注意力機制學習第l層嵌入的重要程度;最后,模型預測層,利用內積運算預測用戶與項目之間的關聯分數。實驗結果表明,與現有的主流協同過濾推薦模型相比,本文模型取得了更好的推薦效果。本文所構建的輕量級圖卷積神經網絡模型,是一種簡單、線性模型,它更容易實現和訓練,但是模型受線性的影響,可能無法有效地捕捉初始數據中的非線性結構。在未來的工作中,將采用更為豐富的訓練數據,以緩解推薦模型的冷啟動問題。與此同時,考慮影響推薦效果的更多屬性,如用戶興趣的動態變化等,嘗試通過設計更合理的協同過濾推薦模型來緩解推薦系統中數據稀疏性和隱式反饋的低利用率等問題,進一步提升推薦的準確性。