顧軍華,佘士耀,樊 帥,張素琪
(1.河北工業大學人工智能與數據科學學院,天津 300401;2.河北省大數據計算重點實驗室,天津 300401;3天津商業大學信息工程學院,天津 300134)
隨著互聯網的發展,信息量呈爆發式的增長,人們面臨的信息量過大,推薦系統應運而生,可幫助用戶有效地從紛繁復雜的數據中獲取有價值的信息,推薦潛在的興趣項目。
推薦系統是利用用戶與項目之間的二元關系,基于用戶歷史行為記錄或相似性關系幫助用戶發現可能感興趣的項目。傳統的推薦系統主要基于協同過濾[1,2],該類推薦系統會面臨稀疏性問題和冷啟動問題。因此,人們提出了將知識圖譜KG(Knowledge Graph)[3]作為輔助信息的基于知識圖譜的推薦系統。在知識圖譜中,項目之間豐富的語義關聯有助于探索項目與項目之間的潛在聯系,提高結果的準確性。知識圖譜中各種類型的關系有助于擴展用戶的興趣偏好,并增加推薦項目的多樣性。知識圖譜連接用戶的歷史喜好和待推薦項目,從而增強了推薦系統的可解釋性。因此,基于知識圖譜的推薦系統成為現階段研究的熱點。
基于知識圖譜的推薦方法一般利用TransE[4]、TransR[5]等知識圖譜嵌入[6]方法將知識圖譜中的實體和關系映射到低維向量中[7,8]。這種方法一般嚴格地進行語義關系建模,更適合知識圖譜的補全等圖內應用。為了更有效地利用圖內結構信息,Yu等[9]提出了PER(PERsonalized entity recommendation: a heterogeneous information network approach)方法,將知識圖譜視為異構信息網絡進行推薦。Shi等[10]在此基礎上設計了多條元路徑(meta-path)并在PathSim的基礎上融入邊信息,獲得基于元路徑的用戶相似度。Zhao等[11]改進了傳統的元路徑,引入元圖(meta-graph)的概念,根據元路徑挖掘圖中的潛在特征,以此表示用戶和項目之間的不同關系特征,但是該方法很大程度上依賴于人工設定的元路徑。為了解決這個問題,人們提出了利用圖神經網絡表示知識圖譜的方法,Wang等[12]提出了KGAT(Knowledge Graph Attention neTwork)方法,Wang等[13,14]提出了RippleNet[13]和KGCN(Knowledge Graph Convolutional Networks for recommender systems)[14]方法。RippleNet以已交互的項目為中心構建知識圖譜,用戶興趣在知識圖譜上逐層向外擴散且逐層衰減。KGCN利用圖卷積網絡GCN(Graph Convolutional Network)[15],以一個項目為起點在知識圖譜中傳播得到該項目的鄰居節點,并通過該項目的鄰居節點與項目節點的聚合得到項目特征,實現了高階結構和項目特征的自動捕獲。但是,該類方法對用戶的興趣表示并不精確。為了更好地進行推薦,本文對用戶的興趣表示進行進一步研究,提出了基于知識圖卷積網絡與用戶長短期興趣的推薦方法。
本文提出了基于用戶長短期興趣與知識圖卷積網絡的推薦模型LSKGCN(recommendation based on users’ Long- and Short-term preference and Knowledge Graph Convolutional Network)。利用圖卷積網絡表示知識圖譜,通過注意力機制[16]挖掘用戶感興趣的實體,從知識圖譜的中心出發,迭代地向外擴張,再通過鄰域聚合的操作,將高階特征向量聚合在項目向量中,得到中心實體的向量表示。在此基礎上本文提出通過結合用戶長期興趣表示與短期興趣表示得到用戶興趣向量表示。這是因為用戶的興趣愛好也會隨著時間而產生變化,用戶會有長期形成的興趣愛好也會有短期內感興趣的項目,用戶短期內點擊過的項目會對用戶的下一次選擇產生比較大的影響。所以,考慮用戶的興趣愛好時既要考慮用戶長久以來的興趣也要考慮到用戶短期內的興趣偏好。為了更好地挖掘用戶特征,得到用戶興趣向量表示,可從用戶的長期興趣特征與短期興趣特征兩方面來分析。
知識圖卷積網絡模型以每個項目v為中心實體構建知識圖譜,利用圖卷積網絡得到項目的向量表示。知識圖譜G可用三元組(h,r,t)表示,其中h∈ε、r∈R和t∈ε分別表示頭實體、關系和尾實體,ε和R分別為知識圖譜中實體的集合和關系的集合。模型可以分為多層,如圖1所示。

Figure 1 Model of knowledge graph convolutional network
當層數p=0時,得到的項目向量表示為項目本身。當層數p=1時,根據以項目為中心的知識圖譜找到中心實體的鄰居實體,并將鄰居實體進行加權求和并與中心實體相加。當層數p=2時,根據知識圖譜找到中心實體的鄰居實體,再找到鄰居實體的鄰居實體,并求得實體間關系相關性進行加權求和,最終得到中心實體項目的向量表示。
對于用戶u和項目v,N(v)表示與v直接相連的鄰居實體,N(e)表示與實體e直接相連的實體集合,rei,ej表示連接實體ei和實體ej的關系。利用函數g計算用戶與關系的相關性,稱為用戶-關系評分:
(1)

(2)

(3)
其中,e0∈Rd為初始的實體表示,即模型層數p=0時中心實體的向量表示。當計算實體鄰域的表示時,歸一化的用戶-關系評分可作為用戶喜好權重,并基于用戶喜好權重對項目的鄰域進行加權求和。


(4)
其中,W∈Rd×d和b∈Rd為權重和偏置;σ為非線性函數。
通過一層的模型,實體的表示則僅依賴于自身及其鄰域,可將其命名為1階實體表示,則vagg為項目v的1階表示,又記為v1。將每個實體的初始表示即0階表示與其鄰域實體的0階表示聚合,則可獲得1階實體表示。將模型從1階擴展到多階,即先獲得項目的1階鄰居,再通過1階鄰居找到項目的2階鄰居,將2階鄰居實體信息聚合到1階鄰居實體中,再將1階的鄰居實體進行聚合得到項目v的2階表示v2,一般來說,一個實體的P階表示是它自己與其P層范圍內的實體的聚合,可將該項目的P階表示作為最終的項目表示vP。
用戶的長短期興趣表示考慮用戶的訪問序列問題。考慮到前面已經訪問過的序列會對后續的項目產生影響,Li等[17]利用注意力機制從隱藏層捕獲用戶主要目的,結合序列行為得到最終的特征向量表示。 Liu等[18]提出了一種短期記憶優先的模型,在建模長時間序列的用戶點擊行為時,著重加強用戶近期行為的影響。但是,Wu等[19]認為之前的工作不能夠得到用戶的精確表示,提出將序列化問題轉換為圖的問題,然后經過圖卷積網絡來學習每個項目的低維表示。在這些方法中短期興趣表示直接由用戶交互過的歷史通過加權求和得到,不能準確地反映用戶的短期興趣偏好。
本文提出了基于用戶長短期興趣與知識圖卷積網絡的推薦模型,該模型以知識圖卷積網絡模型為基礎,利用知識圖卷積網絡模型表示知識圖譜,得到項目的向量表示。在此基礎上將用戶的興趣表示分為2個部分:用戶的長期興趣偏好和用戶的短期興趣偏好。用戶的長期興趣偏好是用戶長期以來形成的興趣愛好,不易隨著時間改變。用戶的短期興趣偏好是用戶近期的興趣愛好,會隨著時間改變。與所有歷史項目歐氏距離最小的向量即為用戶長期興趣表示。用戶短期興趣表示則通過時間序列選出近期的歷史項目并利用知識圖卷積網絡模型得到歷史項目的向量表示,然后通過注意力機制得到歷史項目的加權系數,最后通過加權求和得到用戶短期興趣表示。用戶近期點擊過的歷史項目對用戶的影響比較大,所以本文最終采用加和的拼接方式聚合用戶長期興趣偏好和短期興趣偏好來加強用戶短期興趣偏好的影響。
通過將用戶長期興趣表示與用戶短期興趣表示拼接得到用戶表示,該用戶表示結合了用戶的長期興趣與用戶的短期興趣,既可以得到用戶長期以來的喜好習慣,又可以得到用戶在短期內的喜愛偏好。只用用戶長期興趣會忽略用戶短期內的喜好,用戶短期內的興趣容易隨著時間改變,是用戶最近一段時間的興趣。只用用戶短期興趣會忽略用戶長期興趣,用戶長期興趣反映了用戶長久以來的習慣。當將兩者結合既可以得到用戶長久以來的興趣習慣,又可以強調用戶短期內感興趣的項目,更符合用戶的特征,在推薦系統中更能幫助用戶找到合適的興趣項目。
在模型中有M個用戶和N個項目,分別記為U={u1,u2,u3,…,uM}和V={v1,v2,v3,…,vN},K個用于短期興趣表示的項目。設用戶與項目的交互矩陣為Y,其中yuv=1表示用戶u點擊過項目v,否則yuv=0。最終通過評分函數y=f(u,v|θ,Y,G)判斷用戶u對項目v感興趣的概率,其中θ為模型參數。LSKGCN模型結構如圖2所示。

Figure 2 Model of LSKGCN
圖2中{vu,1,vu,2,…,vu,K}為用戶u近期最后交互的K個歷史項目,用于獲得短期興趣表示uS,{vu,1,vu,2,…,vu,n}為用戶u點擊過的n個歷史項目,用于獲取長期興趣表示uL。v為待推薦項目,vP為通過知識圖卷積模型得到的項目向量表示。u為用戶向量表示。y為評分函數。
在獲取用戶短期興趣uS時,需要在用戶近期交互歷史中挖掘與待推薦項目較為相似的項目。若待推薦項目與用戶近期歷史項目中某一項非常相似,那么用戶點擊該項目的概率會很大。因此,在進行用戶短期興趣建模時需要利用知識圖卷積網絡模型來得到用戶歷史項目的向量表示。
通過時間序列篩選出用戶點擊過的最近的K個歷史項目,以用戶歷史項目為中心建立知識圖譜,并通過知識圖卷積網絡得到歷史項目的向量表示,同樣地,通過圖卷積網絡得到待推薦項目的向量表示。得到歷史項目與待推薦項目的向量表示后,通過注意力機制得到每個歷史項目加權求和的系數,并根據該系數將歷史項目加權求和得到用戶短期興趣偏好的向量表示。其模型如圖3所示。

Figure 3 Model of users’ short-term preference
圖3中,{vu,1,vu,2,…,vu,K}為用戶u近期點擊過的K個歷史項目,用于獲得短期興趣表示uS,v為待推薦項目,vP為通過知識圖卷積模型得到的項目向量表示。vu為用戶點擊過的歷史項目,為以時間為基準,選出用戶u最近點擊的K個項目{vu,1,vu,2,…,vu,K}。以每個歷史項目為中心建立知識圖譜,并根據式(1)得到歷史項目與用戶的用戶-關系評分:
(5)
在評分函數中用長期興趣表示uL計算用戶與項目vu的相關性。
(6)

(7)
其中,αi為注意力系數,其計算方法為:
gi=tanh(Watt[vu,i;v]+batt)
(8)
(9)
其中,Watt∈R1×2d,batt∈R1×1為注意力機制的權重和偏置。
用戶的長期興趣uL可以通過用戶點擊過的全部歷史項目來體現,與用戶所有歷史項目最相似的向量即為用戶的長期興趣偏好向量。本文采用歐氏距離測量項目v∈V與用戶uL的距離,與所有歷史項目v距離之和最小的向量即為用戶長期興趣偏好表示。
(10)
得到用戶的長期偏好表示與短期偏好表示后,采用加和的方式將2種表示聚合在一起。
u=Wu[uL+uS]+bu
(11)
其中,Wu∈Rd×2d和bu∈Rd為權重和偏置,需要訓練得到。
最后,將用戶表示u和項目表示v通過評分函數f,以獲得用戶u交互項目v的概率,這里評分函數f選取內積的形式。
首先選取不同的K值對本文模型在3組數據集上進行實驗,找到模型效果最佳時的K值。并將本文模型與以下5種模型在相同的3組數據集上進行實驗,通過比較來驗證本文模型的有效性。
LibFM(Factorization Machine Library)[20]是一種基于特征的多類的因子分解模型,它將基于特征的因子分解機的方法應用在點擊率預測任務上。LibFM+TransE將TransE[4]學習到的實體表示附加到用戶項目對中,再將其應用于LibFM中。PER[9]將KG視為異構信息網絡,并提取基于元路徑的特征來表示用戶和項之間的連通性。RippleNet[13]采用了一種類似于內存網絡的方法,該方法將用戶的歷史興趣視為知識圖譜中的種子集,然后沿著KG關系連接迭代地擴展用戶的興趣,以發現用戶的潛在興趣項目。KGCN[14]在GCN用戶項目構建的知識圖譜上,通過圖卷積網絡挖掘項目在知識圖譜上的重要屬性,以有效地捕獲項目間的相關性,進而得到項目的向量表示,通過評分函數找到用戶的潛在興趣項目。
本文選用3個基準數據集進行實驗,MovieLens-20M的數據來自于MovieLens網站,該數據集被廣泛用于推薦系統的實驗中,約包含20 000 000條用戶評分信息;Amazon Music的數據來自亞馬遜數字平臺,包含將近3 000個用戶的聽歌信息;Last.FM的數據來自Last.FM在線音樂系統,數據集中包含大約2 000個用戶的聽歌信息。數據集的具體統計結果如表1所示。

Table 1 Data set statistics
本文采用F1值和AUC來評價模型的性能。F1值可由式(12)得到。
(12)
其中,precision為準確率,recall為召回率。F1值是綜合考慮了準確率和召回率的指標。AUC為ROC曲線下的面積,曲線下的面積越大,則模型越理想。當測試集中的正負樣本分布發生變化時,即正負樣本數量相差較大時,ROC曲線仍能保持不變。實際數據集中經常會出現樣本數量不平衡現象,并且測試數據中的正負樣本的分布也可能隨著時間發生變化,因此AUC可以有效地測評模型效果。
將本文提出的LSKGCN模型選取不同的K值在3組數據集上進行實驗,并通過AUC和F1值來評估模型的性能。其實驗結果如表2所示。

Table 2 Experimental performance of LSKGCN model with different K values
從表2中可以看到,當K=20時模型的效果最佳;當K較小時模型的效果不佳,因為當K值選擇過小時,利用的用戶歷史項目過少,不能有效地挖掘用戶的短期興趣特征;當K值選擇過大時,會導致過擬合,使用戶短期興趣表示不準確。
將本文提出的模型(K=20)與4.1節所述的5種模型在相同的3組數據集上進行實驗比較,結果如表3所示。表3中的5種模型為推薦系統中公認表現較好的模型。

Table 3 Experimental results of LSKGCN and five recommendation systems
從實驗結果中可以看到,本文模型的實驗結果普遍優于基準實驗,在3個數據集上的性能都有所提升。其中PER性能較差,這是因為PER需要基于元路徑挖掘知識圖譜中的信息,過于依賴專家知識,難以達到最佳性能。LibFM+TransE模型性能較好,TransE學習到實體表示后將其附加到用戶項目對中,更加有效地利用了知識圖譜中的信息。因此,更有效地利用知識圖譜將會得到更好的推薦效果。RippleNet通過模擬用戶興趣在知識圖譜上進行傳播得到用戶興趣,但是RippleNet沒有考慮待推薦項目的圖譜信息,導致特征缺失。KGCN通過圖卷積網絡得到項目的向量表示,但是KGCN沒有有效利用用戶的歷史項目挖掘準確的用戶興趣表示。相比于以上模型,LSKGCN有效地利用了待推薦項目的圖譜信息,并根據用戶的歷史項目分析用戶的長期興趣偏好和短期興趣偏好,將用戶長期興趣與用戶短期興趣結合起來,得到準確的用戶興趣表示。實驗結果表明LSKGCN有較好的推薦性能。
本文提出了基于用戶長短期興趣與知識圖卷積網絡的推薦模型。該模型利用所有歷史項目得到長期興趣表示,使得長期興趣表示與歷史項目向量的歐氏距離最小。根據時間篩選近期的歷史項目,利用圖卷積網絡和注意力機制得到短期興趣表示,將長期興趣與短期興趣結合得到準確的用戶興趣表示。該模型提高了推薦系統的性能,可以進行更準確的推薦。