高 仰,劉 淵+
1.江南大學人工智能與計算機學院,江蘇無錫214122
2.江蘇省媒體設計與軟件技術重點實驗室(江南大學),江蘇無錫214122
在這個信息技術和互聯網高速發展的信息爆炸時代,可供選擇的商品和服務也隨之急劇增多,然而人的興趣偏好各不相同,并且有些用戶對自己的隱性需求并不明確,為了更好地幫助用戶快速發現自己喜歡的商品,為了更精準地幫助商家推送自己的商品,推薦系統應運而生。推薦系統是一種信息過濾系統,用于預測用戶對物品的評分或喜好程度,通過構建用戶模型,推薦對象模型,推薦算法模型,把用戶模型中興趣需求信息和推薦對象模型中的特征信息匹配,同時使用相應的推薦算法進行計算篩選,找到用戶可能感興趣的推薦對象推給用戶。傳統的推薦方法可分為:基于內容的推薦方法,為用戶推薦跟他的歷史興趣偏好相似的物品;基于協同過濾推薦方法,通過對用戶歷史行為數據的挖掘,發現用戶的偏好,基于不同的偏好對用戶進行群組劃分并推薦品味相似的物品;混合推薦方法則是將前面的方法結合起來推薦,從而起到取長補短的推薦效果。
近年來,深度學習已經成為互聯網大數據和人工智能的一個熱潮。深度學習通過組合底層特征形成更加稠密的高層語義抽象,從而自動發現數據的分布式特征表示,很好地解決了傳統機器學習中需要人工設計特征的問題[1]。由于深度學習的天然優勢,使得其成為了推薦系統領域的主流研究方向,但發展時間較短,仍然存在可改進和提升的地方。深度學習技術應用于推薦系統不僅能學習用戶或物品的潛在特征表示,而且可以學習用戶與物品之間的復雜的線性交互特征,進而深入地分析用戶偏好[2]。隨著信息技術的高速發展,互聯網中有越來越多的數據能夠被感知獲取,其中包括用戶的社交關系、物品的文本和標簽等屬性信息以及用戶和物品的交互信息等,這些多源異構數據蘊含著豐富的用戶個性化需求信息,充分分析利用這些輔助信息可以有效緩解冷啟動與數據稀疏問題,從而為用戶提供更加良好的推薦服務。因此,如何高效利用這些輔助信息來增強推薦性能越來越受到研究者的重視。
基于以上背景及現狀,本文通過分析社交關系數據、物品屬性數據這些輔助信息來豐富用戶和物品的特征表示,從而緩解推薦系統所面臨的冷啟動和數據稀疏問題。人是社會性動物,人們更愿意接納熟人和所信任人的推薦,更愿意嘗試熟人所嘗試的物品,在推薦系統中,用戶的社交關系數據反映了其熟人和信任人連接狀態,分析社交關系數據可以豐富用戶的特征表示,挖掘用戶的潛在偏好。另外,海量的被推薦物品包含許多標簽、文本,這些輔助信息反映了物品的內容、類別甚至在一定程度上反映了相似程度,將這些輔助信息采用知識圖譜的形式構建成圖,可以輔助分析物品的潛在聯系,有利于推薦結果的發散。本文擬通過引入并高效合理應用大量輔助信息,來緩解推薦的冷啟動和數據稀疏問題,提升推薦效果。
社交關系數據屬于圖數據,它包含著豐富的關系型信息,反映了用戶的信任關系,圖神經網絡是圖數據中相鄰節點間信息傳播和聚合的重要技術,可以有效地將深度學習的理念應用于非歐幾里德空間的數據上[3]。采用圖卷積神經網絡分析提取社交網絡數據,是從社交關系的角度計算用戶的相似度,分析得到的用戶信任關系和用戶相似度可以豐富用戶的表示向量,從而提升推薦效果。知識圖譜是一種用圖模型來描述知識和建模世界萬物之間的關聯關系的技術方法。知識圖譜可以用于表示推薦系統中繁雜的物品和屬性之間的語義關系,通過知識圖譜表示學習分析物品屬性知識圖譜,是從物品屬性的角度計算物品的相似度,分析得到的蘊含物品屬性的物品表示向量,可以緩解冷啟動與數據稀疏問題并增強推薦系統的性能。
該文采用深度學習的方法,使用圖卷積神經網絡來提取用戶社交網絡數據,得到用戶的特征向量,使用基于語義的匹配模型來提取由物品屬性構建的知識圖譜,從而得到物品的向量表示,最后使用得到的用戶和物品表示向量計算得到推薦列表。本文主要貢獻如下:
(1)提出了一種改良的圖卷積神經網絡方法,用以挖掘用戶的社交關系數據,該方法采用圖中心性作為概率對節點鄰居進行采樣,使用word2vec 模型思想生成虛擬鄰居以緩解社交數據的稀疏性,采用注意力機制對節點鄰居進行聚合。
(2)為了豐富物品的語義表示,采用基于語義的匹配模型來提取物品屬性構建的知識圖譜,采用多任務學習技術訓練推薦模塊和知識圖譜表示學習模塊。
(3)結合上述方法,提出了一種融合社交關系和知識圖譜的混合推薦框架,在多個數據集上進行了大量的實驗,驗證了其性能優勢。
隨著計算機的出現和機器計算時代的到來,圖作為一種能夠有效且抽象地表達信息和數據中的實體以及實體之間關系的重要數據結構被廣泛應用[3]。圖神經網絡(graph neural network,GNN)的研究主要是集中在相鄰節點信息的傳播與聚合上。其中,圖卷積神經網絡是研究時間最長、研究成果最多的,按照特征空間的不同,圖卷積神經網絡主要分為頻域和空間域兩個類型。頻域的圖卷積神經網絡[4]基于圖信號處理問題,將卷積層定義為一個濾波器,通過濾波器去除噪聲信號從而得到輸入信號的分類結果。基于空間的圖卷積神經網絡[5]通過計算中心單一節點與鄰節點之間的卷積,來表示鄰節點間信息的傳遞和聚合,并作為特征域的新的節點表示。文獻[6]提出的基于圖結構的傳播卷積神經網絡(diffusionconvolutional neural networks,DCNN)通過傳播卷積的方式,擴散性地掃描圖結構中的每一個頂點,替代了一般圖卷積神經網絡基于矩陣特征的卷積形式;針對大型圖數據,文獻[7]引入聚合函數的概念定義圖卷積,提出了一種批量訓練算法GraphSAGE(graph sample and aggregate);為了進一步提升圖神經網絡的性能,文獻[8]提出的圖注意力網絡(graph attention networks,GAT)聚合節點鄰居信息的時候使用注意力機制來確定每個鄰居節點對中心節點的重要性,從而更準確地聚合鄰居。文獻[9]提出了一個多通道超圖卷積網絡(multi-channel hypergraph convolutional network,MHCN),利用高階用戶關系來增強社交推薦。圖卷積神經網絡在社交網絡這類圖數據上具有強大的嵌入表示能力,能夠挖掘用戶之間的信任關系,從而能夠幫助推薦系統分析用戶潛在偏好。
隨著人工智能技術的發展和應用,知識圖譜現已被廣泛應用于智能搜索、個性化推薦等領域。知識圖譜通常以三元組的形式存儲實體及其關系,每一個三元組都由一個頭實體、關系和尾實體構成,三元組不僅可以幫助理解知識實體之間的關系,也可以存儲知識實體的屬性[10]。將知識圖譜引入到推薦系統不僅有利于信息的挖掘和推薦結果的發散,還可以增強推薦的可解釋性。現有的基于知識圖譜的推薦方法可以被分為兩類:基于嵌入的方法和基于路經的方法。基于嵌入的方法主要通過圖嵌入的方法對實體和關系進行表征,進而擴充原有用戶和物品的表征的語義信息[10]。具體可分為基于距離的翻譯模型[11]、基于語義的匹配模型[12]。Wang 等[13]提出了一種KGCN(knowledge graph convolutional networks)模型,它利用圖神經網絡分析知識圖譜得到物品實體的表示向量,輔助推薦;文獻[14]采用TransE(translating embedding)技術提取知識圖譜得到實體和關系的表示向量,從而豐富物品的語義表示;另外,基于路徑的方法[15]主要是挖掘基于圖譜用戶、物品之間多種連接關系作為樣本,訓練得到可以預測連接關系的模型。本文采用基于嵌入的知識圖譜表示學習方法挖掘物品屬性數據輔助推薦。
隨著推薦技術的發展和對推薦算法的研究,現如今已有許多研究成果,其中,基于內容的推薦方法[16]是推薦引擎出現之初,應用最為廣泛的方法,根據推薦物品或內容的元數據,發現物品或者內容的相關性,然后基于用戶以往的喜好記錄,向用戶推薦相似的物品;協同過濾推薦方法[17]是根據用戶對物品或者信息的偏好,發現物品或者內容本身的相關性,或者是發現用戶的相關性,然后基于這些關聯性進行推薦;此外,混合推薦技術[18]將現有的推薦方法組合,取長補短,從而獲得更好的推薦效果。
隨著深度學習技術的發展,神經網絡已經應用到各種推薦場景,由于深度學習具有很強的特征提取能力,并且越來越多可用于增強推薦性能的輔助信息可被采集,因此越來越多的研究者使用深度學習技術提取文本、標簽、社交關系等輔助信息來產生更加有效特征表示,以提高推薦性能[19]。文獻[20]和文獻[21]分別將經典的卷積神經網絡和循環神經網絡引入到推薦算法中,用于分析物品的標簽、描述文本等輔助信息,從而提升推薦的準確性,這類模型通過重點分析物品的輔助信息來豐富物品的特征表示,在一定程度上緩解數據稀疏問題,但是往往忽略了輔助信息和物品之間的關聯關系,且可擴展性差。針對這一問題,文獻[13]和文獻[22]引入知識圖譜技術分析物品的輔助信息。文獻[13]提出的KGCN 模型使用用戶和物品的輔助信息構建知識圖譜,清晰地表征了用戶和物品與這些輔助信息之間的語義關系,采用基于嵌入的圖卷積神經網絡分析知識圖譜得到用戶和物品向量表示生成推薦。文獻[22]采用物品的輔助信息構建知識圖譜,并使用多任務學習的方式將知識圖譜學習任務學習到的蘊含物品屬性的物品表示向量融入到推薦任務中,從而增強推薦性能。為了構建更加精準的用戶畫像,緩解推薦系統的稀疏性和冷啟動問題,研究者們提出將社交關系數據引入推薦算法。文獻[23]提出的SocialMF(social matrix factorization)模型利用矩陣分解技術分析社交網絡的信任傳播,從而提高推薦的準確性。文獻[24]提出的深度影響力傳播模型(influence diffusion neural network,DiffNet),模擬用戶受社交網絡中鄰居影響遞歸擴散的過程,從而得到更加精準的用戶表示向量以提升推薦的準確度。文獻[25]提出的GraphRec(graph neural network framework for social recommendations)模型使用圖神經網絡挖掘用戶的社交網絡得到用戶的一個特征表示,同樣使用圖神經網絡分析用戶-物品交互網絡得到用戶和物品的特征表示,將兩個用戶特征表示進行拼接得到最終用戶特征表示,最后使用用戶和物品的特征表示生成推薦;上述融合社交關系的模型以及SoRec[26]、TrustSVD[27]、DICER[28]、DGRec[29]、EATNN[30]等模型大多忽略了社交關系數據的稀疏特性,并且大多只考慮了社交關系數據,沒有同時融合物品相關的輔助數據。
從上述分析可以得出,知識圖譜技術可以在清晰表征大量物品輔助信息的同時,也可以表示物品和對應輔助信息的語義關系,因此采用知識圖譜技術分析物品的輔助信息可以有效幫助推薦算法利用物品輔助信息提升推薦性能。另外現有的融合社交關系的推薦算法大多忽略了社交數據的稀疏性且少有推薦算法同時也融合物品輔助信息。針對上述現有方法的不足,本文采用圖卷積神經網絡來提取社交關系這種圖結構的輔助信息,創新地使用圖中心性作為概率對節點鄰居采樣來過濾鄰居,采用word2vec思想生成虛擬鄰居來緩解社交數據的稀疏性,通過分析用戶之間的社交記錄,挖掘用戶之間的信任關系,得到用戶的表示向量。由于物品屬性等輔助信息反映了物品的內容、類別等語義信息,本文采用基于語義的匹配模型來提取物品屬性等輔助信息構建的知識圖譜,得到物品的表示向量,最后通過得到的蘊含社交關系的用戶表示向量和蘊含物品屬性信息的物品表示向量生成推薦。
在推薦系統中,假設有用戶集合U={u1,u2,…}和物品集合V={v1,v2,…}。用戶通過平臺與物品交互,包括點擊行為、瀏覽行為或評分行為,系統會生成一個交互矩陣Y={yuv|u∈U,v∈V},其中yuv的值為1 代表用戶u和物品v之間存在交互,反之,yuv的值為0則表示用戶u和物品v之間沒有交互過。采用(ui,uj)這樣的關系對表示用戶社交關系S中用戶ui關注用戶uj。采用(h,r,t)三元組表示知識圖譜G中大量的實體-關系-實體三元組,其中,h∈ε,r∈R,t∈ε分別代表三元組中的頭、關系、尾,且ε、R分別代表知識圖譜的實體和關系集合。給定交互矩陣Y,社交關系S和知識圖譜G,模型旨在預測用戶u對他未有過交互的物品v的興趣。模型旨在構建一個預測函數=F(u,v;Θ),其中代表用戶u將會訪問物品v的概率,Θ代表函數F的相關參數。
在實際生活中,人們選擇物品時習慣傾聽朋友的意見,這一現象表明,挖掘蘊含豐富用戶關聯信息的社交數據可以更好地構建用戶畫像,從而更精準地向用戶生成推薦,對于社交關系數據的分析應該更注重影響力的傳播,故本文采用圖卷積神經網絡來挖掘用戶之間的潛在聯系,分析用戶之間的信任關系;另外,物品的輔助數據包含豐富的語義信息,知識圖譜可以將這些輔助數據高效地組織表示起來,挖掘物品輔助信息構建的知識圖譜可以構建更加豐富精準的物品特征表示,對于物品的屬性數據的分析應該更注重物品與物品、物品和屬性之間的語義關系,故采用知識圖譜表示學習的方式來挖掘物品之間的潛在聯系。挖掘社交關系數據和物品的屬性數據這些輔助信息可以較好地緩解推薦系統所面臨的數據稀疏、冷啟動問題。基于以上思路,本文提出了MSAKR(multi-task feature learning approach for social relationship and knowledge graph enhanced recommendation)模型。該模型通過圖卷積神經網絡提取用戶之間的社交關系,采用中心性鄰居提取器篩選鄰居,利用虛擬鄰居提取器生成虛擬鄰居,采用注意力機制聚集鄰居,最終得到用戶的特征向量;其次,采用多任務學習和基于語義匹配的模型來提取由物品屬性構建的知識圖譜,得到物品的向量表示;最后,根據得到的用戶和物品特征向量計算生成推薦。MSAKR 模型結構如圖1 所示。左側推薦模塊的輸入為評分矩陣Y和社交關系S,物品表示向量經過交叉壓縮單元(CCv)、多層神經網絡(multilayer perceptron,MLP)得到vout,用戶表示向量經過中心性鄰居提取器(central neighbor extractor,CNE)得到按照中心性作為概率采樣的鄰居,經過虛擬鄰居提取器得到虛擬鄰居,用戶和得到的鄰居作為圖卷積神經網絡模塊(graph convolutional network,GCN)的輸入得到新的用戶表示向量ugcn,再經過多層神經網絡(MLP)得到uout,最終通過預測函數(prediction function,PF)得到用戶u對物品v的預測評分;右側知識圖譜表示學習模塊的輸入為物品屬性知識圖譜,圖譜中的頭實體、關系表示向量經過交叉壓縮單元(CCv)、多層神經網絡(MLP)得到預測的尾實體,通過相似度度量函數對比和經過多層神經網絡(MLP)得到的尾實體tv,從而擬合知識圖譜中實體-關系-實體這樣的三元組;推薦模塊和知識圖譜表示學習模塊通過交叉壓縮單元相互聯系,多任務學習,最終得到一個能夠預測評分的函數=F(u,v;Θ)。

圖1 MSAKR 模型結構Fig.1 Framework of MSAKR
本文采用基于空間的圖卷積神經網絡來挖掘社交關系數據中用戶之間的潛在聯系,采用節點中心性對節點的鄰居進行采樣,采用word2vec 思想生成虛擬鄰居來緩解社交數據的稀疏性問題,其中中心性采樣得到的鄰居和生成的虛擬鄰居共同視為節點采樣所得的鄰居參與圖卷積神經網絡的訓練,使用注意力機制來對鄰居進行聚集,最終得到用戶的表示向量。
2.3.1 中心性鄰居提取器
中心性是圖分析中一個常用的概念,用以表達圖中一個頂點在整個網絡中所在中心的程度,也稱之為中心度。在現實生活中,人們往往更容易聽取有影響力人的意見,其中影響力在圖數據結構中可通過中心度來體現。根據測定中心性方法的不同,可分為度中心性、接近中心性、中介中心性等。本文采用度中心性(degree centrality,DEG)對圖節點的鄰居進行采樣,度量度中心性的公式為:

其中,CDEG(vi)表示節點vi的度中心性,deg(vi)表示節點vi的度,n表示圖的節點數。得到各個節點的中心性后,對節點鄰居的中心性進行歸一化,以歸一化后的數值為概率對鄰居進行采樣。如圖2,對鄰居節點的采樣數為2,其中深色節點為按照中心性進行歸一化概率采樣被選中節點。

圖2 圖卷積示意圖Fig.2 Schematic diagram of GCN
2.3.2 虛擬鄰居提取器
社交關系數據普遍非常稀疏,有些節點可能沒有直接相連的鄰居,社交關系數據的稀疏性問題是將社交數據應用到推薦系統的重大挑戰,本文采用word2vec 的思想為節點生成虛擬鄰居以緩解社交關系數據的稀疏性,word2vec是從大量文本語料中以無監督的方式學習語義知識的一種模型,它被大量地用在自然語言處理中,隨后Embedding 的思想被廣泛應用到機器學習領域。在自然語言處理中word2vec 是針對句子,對句子中的詞生成Embedding,本文將訪問過同一個物品的所有用戶視為一個“句子”,對“句子”中的“詞”也就是單個用戶生成Embedding,即通過word2vec 思想從用戶物品的交互數據中得到用戶的Embedding,把原來高維稀疏的數據映射到低維稠密的向量空間中,這樣就可以用低維向量來表示用戶,進而通過計算兩個低維向量之間的相似度來衡量兩個用戶之間的相似性,本文采用標準化內積的方式來計算用戶的相似度。

其中,σ代表Sigmoid函數,最后按照相似度排序,取出和用戶向量相似度高的用戶作為該用戶的虛擬鄰居。
該計算相似度的過程類似于協同過濾的思想,把user 看作word2vec 中的word,將訪問過同一物品的用戶集合視為句子,這樣可以將沒有直接關聯,但是行為相似度很高的用戶也采樣為虛擬鄰居關系,以緩解社交關系數據非常稀疏這一問題。如圖3 所示,用戶a 與用戶b 購買了多個相同的物品,他們應該具有很高的相似度,同時用戶a 關注了多個其他用戶,而用戶b 卻沒有關注任何用戶,不利于從社交關系的角度為用戶b 生成推薦,因此采用word2vec 的思想分析用戶的行為記錄,將和用戶b 相似度高的用戶(例如用戶a)提取出來作為用戶b 的虛擬鄰居,一方面緩解了社交數據稀疏性這一問題,另一方面從用戶行為的角度豐富了用戶的鄰居。

圖3 社交關系示例Fig.3 Example of social relationships
2.3.3 注意力機制聚集層
常用的圖節點鄰居進行聚合的方式有Mean、LSTM(long short-term memory)、Pooling,本文采用self-attention 的方式來對圖節點的鄰居進行聚合。self-attention 可以在充分考慮各鄰居對中心節點影響的同時,也能區分哪些鄰居更為重要。該層的輸入為鄰居節點的特征向量集合h={h1,h2,…,hN},hi∈Rd與中心節點特征向量hC,其中N為節點鄰居數,d為節點特征向量的維度,經聚集得到新的中心節點特征向量hC′,如圖2。
該層先對鄰居節點的特征向量進行非線性變換:

其中,aT∈R2d為權重向量,||為拼接操作。再采用Softmax 函數進行標準化:

中心節點hC的N個鄰居節點經過self-attention聚集之后得到特征向量hagg,如下:

最終聚集得到新的中心節點特征向量hC′為:

其中,W、b分別為參數矩陣和偏置。
本文采用基于語義匹配的知識圖譜學習模型來挖掘物品屬性數據,從而找出物品之間的潛在聯系,知識圖譜模塊和推薦模塊采用交叉壓縮單元進行連接,采用多任務學習的方式訓練得到物品的表示向量。如圖4 所示,電影數據集包括導演、體裁、演員等關系信息,此處以導演、演員兩種關系為例,其中電影a 與電影b 由同一導演a 執導,電影c 由導演b 執導,在只考慮導演這一類關系時,電影a 與電影b 的相似度應該大于電影a 與電影c 的相似度;同理,電影a的主演是演員a,電影b 與電影c 的主演是同一演員b,在只考慮主演這一類關系時,電影a 與電影b 的相似度應該小于電影b 與電影c 的相似度。知識圖譜學習模塊可以綜合考慮多類關系,生成精準全面的物品表示向量。

圖4 知識圖譜關系示例Fig.4 Example of knowledge graph relations
2.4.1 交叉壓縮單元
多任務學習中的交叉壓縮單元的處理思想來源于MKR[22]模型,可多層疊加使用,其結構如圖5 所示。MKR 模型里的多任務學習思路可以很好地將知識圖譜學習任務和推薦任務融合訓練,能夠更加充分地利用知識圖譜來提升推薦性能。這一思路的核心思想在于推薦物品和知識圖譜的實體有交叉,通過交叉壓縮單元將知識圖譜學習到的實體表示向量反饋到推薦模塊中輔助推薦。

圖5 交叉壓縮單元示意圖Fig.5 Schematic diagram of cross&compress unit
交叉壓縮單元用于連接推薦模塊和知識圖譜表示學習模塊,該單元的輸入為推薦模塊的物品特征向量vin和知識圖譜特征學習模塊的實體特征向量hin,輸出為交叉融合后的vout和hout。
對于一個物品v和知識圖譜里對應的實體h,首先構建交叉矩陣C∈Rd×d,其中d為物品和實體對應向量v和h的維度。

物品v和實體h經過交叉壓縮單元的輸出為:

2.4.2 基于神經網絡的語義匹配模型
本文采用基于神經網絡的語義匹配模型中的神經關聯模型(neural association model,NAM)分析提取物品屬性知識圖譜。對于一個知識圖譜三元組,該模型首先將頭實體的表示向量和關系表示向量作為神經網絡輸入,經過多層神經網絡得到一個隱藏層的輸出,最后通過匹配這個隱藏層的輸出和尾實體的表示向量來給出分數。頭實體表示向量hin先經過交叉壓縮單元得到hout,與關系表示向量r拼接,再經過MLP 得到隱藏層輸出t^,最后采用相似度度量函數匹配輸出的隱藏層和尾實體表示向量,并給出分數。

其中,CCv代表交叉壓縮單元,MLP 為多層感知機,相似度度量函數為:

其中,σ為Sigmoid 函數,采用標準化內積的方法來計算相似度。
2.5.1 推薦模型
MSAKR 模型的推薦模塊輸入為描述用戶和物品的特征向量u和v。給定用戶的特征向量u,經過GCN 和MLP 處理后的uout為:

給定物品的特征向量v,經過交叉壓縮單元和MLP 處理后為vout:

通過以上得到的uout和vout,計算用戶u對物品v的興趣概率公式為:

2.5.2 優化算法
損失函數為:

其中,?為交叉熵損失函數;λ為正則化項系數;LRS是衡量推薦模型的損失值;LKG為衡量知識圖譜表示學習模塊中物品-關系-實體擬合程度的損失值。
MSAKR 模型的參數優化過程如算法1 所示。算法1 中,第1 到3 行是數據準備階段,先構建用戶社交關系的有向圖,計算各節點的中心性,并按中心性對節點鄰居進行采樣,使用word2vec 思想生成用戶表示向量,提取和用戶相似度高的節點作為該用戶的虛擬鄰居,得到用戶關系的鄰接矩陣。第5 到9 行是推薦階段,該階段的輸入為評分矩陣和用戶關系的鄰接矩陣。第10 到14 行是物品-關系-實體三元組擬合階段,該階段的輸入為知識圖譜數據G。在各個階段把輸入數據輸入模型按照公式正向傳播,隨后對推薦模塊使用Adam(adaptive moment estimation)優化算法,對知識圖譜學習模塊使用隨機梯度下降(stochastic gradient descent,SGD)優化算法,反向傳播更新模型參數Θ,多次迭代最終輸出推薦預測函數=F(u,v;Θ)。
算法1MSAKR
輸入:交互矩陣Y,知識圖譜G,社交關系S。
輸出:預測函數=F(u,v;Θ)。
1.初始化模型參數
2.構建物品屬性知識圖譜,構建社交關系有向圖
3.按中心性提取鄰居節點,生成虛擬鄰居,得到最終的用戶關系鄰接矩陣
4.for 訓練迭代次數do
5.//推薦任務
6.whilei+batchSize<len(Y) do
7.將Y、S中的miniBatch 傳入推薦模塊
8.使用Adam 算法,通過式(2)~(6)、(13)、(14)、(17)更新F的參數
9.i+=batchSize
10.end while
11.//知識圖譜表示學習任務
12.whilei+batchSize<len(G) do
13.將G中的miniBatch 傳入知識圖譜模塊
14.使用SGD 算法,通過式(7)~(12),(15)、(16)、(17)更新F的參數
15.i+=batchSize
16.end while
17.end for
為了驗證提出的MSAKR 模型的推薦性能,在相同的實驗環境下,進行以下對比分析實驗。
豆瓣電影評分數據集:豆瓣網是國內著名的社區網站,提供關于書籍、電影、電視、音樂、游戲、舞臺劇等作品的信息,集品味系統、表達系統和交流系統于一體,其海量的用戶和點評記錄為本文提供了可靠的數據支撐,具有較強的工程應用意義。本文爬取了100 多萬條評分記錄,評分范圍1~5 分,60 多萬條社交用戶相互關注的記錄,7 萬多條電影的屬性信息,包括電影題材、導演、主演等。
Yelp 數據集:Yelp 是美國最大點評網站,囊括各地餐館、購物中心、酒店、旅游等領域的商戶,用戶可以在Yelp 網站中給商戶打分,提交評論,交流購物體驗等。Yelp 公開數據集被廣泛應用于推薦系統中,該數據集包含100 萬條評分記錄,評分范圍1~5,同時也包含大量的商戶的屬性信息和用戶的社交信息。
對于豆瓣電影評分數據集,將評分大于等于3 視為正樣例,并且從豆瓣網爬取各個電影的詳細信息(例如電影體裁、電影主演、電影導演等信息)來構建物品屬性知識圖譜,爬取用戶之間的關注信息來構建用戶社交網絡。對于Yelp 數據集,將評分大于等于3 視為正樣例,該公開數據集同時提供了商戶的詳細信息(例如商鋪所在城市、商鋪種類等)和用戶的社交關系(例如朋友信息等),可用以構建商戶屬性知識圖譜和用戶的社交網絡。各數據集的詳細數據見表1。

表1 數據集詳細數據Table 1 Basic statistics for datasets
采用以下幾個對比模型:
(1)MF[31]:最簡單形式的矩陣分解模型,通過分解評分矩陣學習模型參數。
(2)EATNN[30]:Chen 等提出的一個高效自適應遷移神經網絡,融合了社交信息來改善推薦效果。
(3)KGCN[13]:Wang 等提出的一種使用圖神經網絡分析輔助信息構建的知識圖譜的推薦模型。
(4)MKR[22]:Wang 等提出的一種使用知識圖譜分析輔助信息的多任務學習推薦模型。
(5)MSAKR:本文提出的融合社交關系和知識圖譜的推薦算法。
實驗將數據集過濾并序列化后,按照6∶2∶2 將數據集劃分為訓練集、驗證集和測試集。采用ROC曲線下方面積大小(area under curve,AUC)和準確率(accuracy,ACC)作為CTR(click through rate)預測實驗的評估指標,采用預測率(precision)、召回率(recall)和歸一化折損累計增益(normalized discounted cumulative gain,NDCG)作為Top-K推薦實驗的評估指標。設置用戶和物品表示向量的維度d為32,batch_size 為128,正則化項系數λ為1E-6,圖卷積神經網絡的鄰居聚集層數為2,各節點鄰居采樣總數η為8,虛擬鄰居采樣數占比γ為0.2,個數為小數時向上取整,推薦模塊的優化器采用Adam,學習率為0.000 01,知識圖譜表示學習模塊的優化器采用SGD,學習率為0.001。實驗驗證得出,本文提出的模型在交叉壓縮單元層數為1 時,各項評價指標效果更好,故在MSAKR 模型上交叉壓縮單元層數設置為1,評分指標公式如下:


其中,TP(true positive)表示正樣本被預測為正;TN(true negative)表示負樣本被預測為負;FP(false positive)表示負樣本被預測為正;FN(false negative)表示正樣本被預測為負,P為正樣本數量,N為負樣本數量。AUC 被定義為ROC(receiver operating characteristic curve)曲線下方的面積。ROC 曲線的橫坐標為假陽率(false positive rate,FPR),縱坐標為真陽率(true positive rate,TPR),得到ROC 曲線,然后對ROC 曲線的橫軸做積分便可計算得到AUC 的值。IDCG(ideal discounted cumulative gain)為最理想的推薦排序結果按照DCG(discounted cumulative gain)公式計算的結果。
3.3.1 各參數對算法的影響
首先分析了不同的參數d和參數η在CTR 預測中對AUC 和ACC 的影響。參數d代表用戶物品表示向量的維度,d越大,表示用戶和物品的向量就越復雜。MSAKR 模型在豆瓣數據集上,AUC 和ACC評價指標隨參數d的變化如圖6(a)。從圖中可以看出當d=32,AUC 和ACC 評估指標取得了最好的結果,表示用戶和物品的向量如果太簡單會導致向量無法全面地描述用戶和物品,反之如果太復雜會導致模型很難收斂。MSAKR 模型中的參數η表示節點鄰居采樣總數,η越大,表示可以影響用戶的鄰居節點越多,其中η包含中心性采樣的鄰居節點和生成的虛擬節點。MSAKR 模型在豆瓣數據集上,AUC和ACC 評價指標隨參數η的變化如圖6(b)。從圖中可以看出當η=8,AUC 和ACC 評估指標取得了最好的結果,表示節點鄰居采樣總數的η如果太小會導致模型不能全面地提取鄰居對中心節點的影響,反之如果太大會引入噪聲鄰居節點,導致效果變差。

圖6 參數d、η 對模型的影響Fig.6 Influence of parameter d, η on model
3.3.2 CTR 預測對比
分析了所有模型在CTR 預測上的性能表現,各模型在兩個數據集上的AUC 和ACC 結果如表2。其中在豆瓣數據集上,提出的MSAKR 模型較融合知識圖譜的MKR 模型在AUC 評估指標上提升了0.013 0,在ACC 評估指標上提升了0.023 9,較融合社交關系的EATNN 模型在AUC 評估指標上提升了0.058 6,在ACC 評估指標上提升了0.021 1;在Yelp 數據集上,提出的MSAKR 模型較融合知識圖譜的KGCN 模型在AUC 評估指標上提升了0.017 9,在ACC 評估指標上提升了0.013 6,較融合社交關系的EATNN 模型在AUC 評估指標上提升了0.034 1,在ACC 評估指標上提升了0.009 8。從實驗結果可以看出本文提出的MSAKR,在CTR 預測上優于傳統的推薦算法和單一融合社交關系或物品屬性的算法,可見使用圖卷積神經網絡提取社交關系和使用知識圖譜表示學習提取物品屬性信息可以有效地提升推薦性能;采用圖卷積神經網絡來提取社交關系這種圖結構的輔助信息,可以有效地模擬用戶影響力的傳播,從用戶社交關系角度挖掘用戶的偏好;其次,采用知識圖譜表示學習提取物品屬性信息,有助于構建精準全面的物品特征向量,從而提升推薦性能。另外,對比模型中的MKR 模型和本文提出的MSAKR 模型在結構上的區別僅僅是有無改良的圖卷積神經網絡模型,因此可以構成針對改良的圖卷積神經網絡分析社交關系模塊的消融實驗。從表2 的實驗結果來看,加入改良的圖卷積神經網絡的MSAKR 模型在兩個數據集的CTR預測實驗中,AUC、ACC指標均有所提升,從而驗證了本文提出的改良圖卷積神經網絡模塊的優勢。
3.3.3 Top-K 預測對比
針對豆瓣數據集,取η=8,d=32,各個模型Top-K推薦的預測率和召回率結果如圖7,預測率代表預測的K個物品中預測正確的比例,反映了推薦的查準率。圖7(a)表示K在不同取值時,各模型在豆瓣數據集上的預測率折線圖,從圖中可以看出MSAKR模型在預測率上較其他模型有較大提升,其中在K=5時,提出的模型較EATNN 模型提升6.73%,較KGCN模型提升15.62%,較MKR 模型提升了23.33%,較MF 模型提升了11.39%。圖7(b)表示K在不同取值時,各模型在豆瓣數據集上的召回率折線圖,召回率表示樣本中的正例有多少被預測正確了,反映了推薦的查全率。從圖中可以看出提出的MSAKR模型在召回率上較其他模型有較大的提升,其中在K=5 時,提出的模型較EATNN 模型提升10.13%,較KGCN 模型提升27.94%,較MKR模型提升19.17%,較MF模型提升42.62%,這表明,本文提出的MSAKR 算法在預測率和召回率指標上具有優越性。

圖7 豆瓣數據集上各模型Top-K 推薦效果Fig.7 Top-K recommendation effect of each model on Douban dataset
各模型在NDCG 指標的結果如表3,NDCG 是一種衡量排序質量的評價指標,反映推薦模型能否將用戶最喜歡的物品優先推薦給用戶的能力。從表3可以看出,提出的MSAKR 模型在K=1,5,10,20 較其他模型均取得了最好的結果,其中在K=5 時,提出的模型較EATNN 模型提升25.70%,較KGCN 模型提升19.19%,較MKR 模型提升5.93%,較MF 模型提升13.76%。另外,對比模型中的MKR 模型和本文提出的MSAKR 模型構成針對改良的圖卷積神經網絡分析社交關系模塊的消融實驗,從實驗結果可以得出,加入改良的圖卷積神經網絡的MSAKR 模型在Top-K預測實驗中,預測率、召回率、NDCG 指標均有較大提升,從而驗證了本文提出的改良圖卷積神經網絡模塊對于幫助提升推薦性能的優勢。從圖7 和表3可以得出,模型MF 忽略了用戶之間的社交關系和物品的屬性信息,由于評分數據稀疏問題導致模型MF在Top-K推薦中表現不佳;模型MKR 和模型KGCN融合了物品屬性知識圖譜,但未考慮用戶受社交網絡中鄰居的影響,導致學習到的用戶特征向量不夠精準全面,從而影響推薦效果;模型EATNN 融合了用戶的社交關系數據,但是社交關系數據比較稀疏,并且未考慮物品的屬性信息,導致學習到的物品表示向量不夠準確,從而影響推薦效果;本文提出的MSAKR 模型采用改良的圖卷積神經網絡來提取社交關系,采用word2vec 的思想為節點生成虛擬鄰居以緩解社交關系數據的稀疏性,采用基于語義的匹配模型來挖掘物品屬性知識圖譜;采用多任務學習的方式,聯合訓練推薦模塊和知識圖譜表示學習模塊。分別從用戶受鄰居影響的角度挖掘用戶的偏好和從物品屬性的角度挖掘物品的潛在聯系,從而得到全面且準確的用戶和物品表示向量,同時社交關系數據和物品屬性信息這些輔助信息可以較好地緩解評分數據的稀疏性,因此提出的MSAKR 模型較其他基準模型在Top-K推薦上有較大的提升;此外,從表3 可以得出,提出的MSAKR 模型比基準模型在NDCG 指標有較大提升,表明提出的模型能夠將用戶最喜歡的物品排在前面推薦給用戶,可以大大提升用戶的體驗。

表3 各模型不同K 取值的NDCG 結果Table 3 Result of NDCG of each model with different K
3.3.4 冷啟動及虛擬鄰居提取器模塊對比實驗
冷啟動是推薦系統面臨的重要挑戰之一,針對豆瓣數據集,設置用戶冷啟動實驗,將數據集分為訓練集和測試集,保證測試集中的用戶不出現在訓練集中,經實驗得到冷啟動各模型的NDCG 結果如表4。從表中可以看出,提出的MSAKR 模型在冷啟動實驗中較其他基準模型有較大提升,其中在K=5 時,提出的模型較EATNN 模型提升65.45%,較KGCN 模型提升68.31%,較MKR 模型提升120.87%,較MF 模型提升29.02%。本文提出的MSAKR 模型可通過用戶社交關系數據,得到新用戶關注人的表示向量,通過圖卷積神經網絡得到新用戶的表示向量,該向量蘊含新用戶鄰居的偏好,實際意義為新用戶的偏好和其關注的人的偏好相似;在得到新用戶的偏好后,模型可以從物品的內容和屬性角度,采用知識圖譜技術深度挖掘物品之間的潛在聯系,向用戶推薦其可能感興趣的物品。可以得出MSAKR 模型在用戶冷啟動實驗上較其他基準模型有較大的提升。為進一步驗證虛擬鄰居提取模塊的優勢,設置如下對比實驗,設置模型MSAKR 的鄰居采樣總數為6,虛擬鄰居占比為0,得到模型MSAKR(-),也就讓虛擬鄰居不參加圖神經網絡的訓練,兩模型的結果對比如表5。從表中可以得出去除虛擬鄰居提取模塊的模型在多個指標略低于原模型,在真實的應用場景中,有的用戶的鄰居很多,有的用戶的鄰居個數極少甚至為0,存在嚴重的“長尾效應”,虛擬鄰居提取器的引入,可以將用戶行為相似度高的用戶視為虛擬鄰居,從而緩解社交數據的稀疏性,同時將用戶行為相似度高的鄰居偏好融合到中心節點用戶中,有助于構建更加精準的用戶特征向量,提升推薦性能。

表4 冷啟動下各模型不同K 取值的NDCG 結果Table 4 Result of NDCG of each model with different K in cold start

表5 MSAKR 模型與MSAKR(-)模型的各項指標對比Table 5 Comparison of result between MSAKRand MSAKR(-)
由于現有的融合了社交關系的推薦算法大多忽略了社交數據的稀疏性,且少有同時融合物品的輔助信息,不能同時充分挖掘社交關系和物品屬性數據來增強推薦性能。本文采用改良的圖卷積神經網絡來提取社交關系這種圖結構的輔助信息;采用word2vec 的思想為節點生成虛擬鄰居以緩解社交關系數據的稀疏性的問題;采用知識圖譜表示學習來挖掘物品屬性知識圖譜;采用多任務學習的方式,聯合訓練推薦模塊和知識圖譜表示學習模塊。此外,對比了一種傳統推薦算法,一種融合社交關系的推薦算法,兩種融合知識圖譜的推薦算法,在豆瓣和Yelp 這兩個真實的數據集上的大量實驗結果驗證了MSAKR 算法的準確性和優越性。但是本文采用的知識圖譜學習算法只是簡單表示學習,沒有利用知識圖譜強大的推理能力,同時采用社交關系輔助推薦,雖然提升了推薦準確性,但是由于采用的圖卷積神經網絡,訓練時間長,由于神經網絡是黑盒的,并沒有利用社交關系數據提升推薦結果的可解釋性。