×
支持199IT發展可加入知識交流群(10K+用戶),最有價值數據分享!
點擊即可加入!
關閉

一文了解推薦系統中的圖神經網絡

近年來,GNN技術由于其在圖數據學習方面的出色表現,在許多領域得到了廣泛的應用。在推薦系統中,大部分信息本質上具有圖結構,而由于GNN對于表示學習具有一定的優勢,所以GNN在推薦系統相關領域的應用迅速發展。本文盡可能用通俗的語言代替算法公式來進行講述,希望可以讓讀者對推薦系統中的圖神經網絡有一個基本的了解。

一、什么是圖神經網絡?

Graph Neural NetworkGNN),顧名思義,圖上的神經網絡,為了理解GNN,需要弄清楚以下兩個問題:

1. 首先,什么是圖(Graph)?簡單來講,圖是定義了節點(node)和連接方式(edge)的一種結構,節點和邊都分別具有其性質,比如化學分子(原子/鍵)、城市地鐵(站臺/鐵路)、社交網絡(人/關系)。

2. 其次,怎么把圖塞到神經網絡里?

直觀上想,近朱者赤近墨者黑,一個節點跟他所連接的節點應該有一些相似的關系,那么就可以利用這些特定的關系來幫助我們的模型學到好的節點表示,那么怎么做到這件事呢?

回想一下卷積神經網絡(CNN),做卷積的過程中,放一個卷積核,然后相乘相加,做完了之后就可以得到下一層的 feature map,同樣的,可以將類似的操作推廣到圖結構上。

圖結構中,每個節點有一個表示,就像CNN中每個點有個值,可以很自然的去想去通過看他的鄰居的值來進行特征聚集,比如說下圖中3號節點有三個鄰居,分別是0/2/4號節點,通過對鄰居節點的表示進行計算來得到其下一層的 feature map

最后,可以利用傳播過程所得到的各層表示來進一步完成后續任務(例如節點分類/邊預測/節點內積預測匹配度等等)。

以上介紹的是一種比較簡單容易理解的結構,希望讀者可以以此為基礎理解圖神經網絡的基本思想。而根據結構設計不同,GNN模型可以劃分為以下幾種,RecGNNConvGNNSTGNNGAE [8],此處不再詳細介紹,感興趣的讀者可以自行查閱相關資料。而在推薦系統中,常見的GNN框架主要有以下幾種:GCN [2]GraphSage [3]GAT [4]GCNN [5]等。

二、為什么要在推薦系統中使用圖神經網絡?

其實最通俗的原因就是GNN表現好,并且推薦系統中的大部分數據(本質上可以看作圖結構數據)適合使用GNN。接下來分類進行詳細介紹:

首先將推薦系統大致分為兩類:一般的推薦(general recommendation)和序列化推薦(sequential recommendation),簡單來講,就是根據需不需要考慮時間順序來進行劃分,前者將用戶偏好視為靜態的,學習用戶和物品的靜態表示,后者認為用戶偏好隨時間動態變化,根據交互序列來預測用戶下一個可能喜歡的物品。

推薦系統中用到的數據,主要包括以下幾種(見下圖):

  • 對于 general recommendation交互數據,可以看作二部圖(bipartite graph
  • 對于 sequential recommendation物品序列,可以抽象成序列圖(sequence graph
  • 其他輔助信息:社會關系social relationship)和知識圖譜knowledge graph)均可以看作圖結構數據

除了數據方面,對于具體的學習過程而言,GNN具有以下優點 [6]

  • 對于 general recommendationGNN可以通過節點聚合顯式地編碼協同信號來增強用戶和物品的表示學習能力,相比與其他模型,GNN對多跳信息的建模更加靈活方便。
  • 對于 sequential recommendation:將序列數據轉換為序列圖可以更靈活地進行項目選擇的原始轉換,并且,GNN可以通過環的結構捕獲隱含在順序行為中的復雜用戶偏好。

簡而言之,推薦系統數據結構非常適合轉化為圖結構,并且GNN在圖數據的表示學習上具有非常強大的學習能力。

三、推薦系統中的圖神經網絡分類

對兩類推薦系統 General Recommendation Sequential Recommendation,以下根據其所用數據信息類型進行分類:

1. General Recommendation

目標為建模用戶的靜態偏好,所利用的基本數據為用戶物品交互數據,根據其用到的數據信息將其分為以下三類:

A-僅交互信息(User-item interaction information

這類模型基本思想本質上是利用用戶交互過的物品記錄增強用戶表示,以及利用交互過的用戶記錄來增強物品表示,多層的GNN可以模擬信息傳遞過程并且高效的建立高階連接,這里最關鍵的挑戰是如何進行信息聚合,這類模型的研究主要集中在以下幾個方面:

  • 圖結構建模。是在異構二部圖上應用GNN,還是基于兩跳近鄰重構齊次圖?考慮到計算效率,如何對有代表性的鄰域進行圖傳播,而不是對整個圖進行操作?
  • 鄰居聚合。如何聚合來自鄰居節點的信息?具體來說,是否要區分鄰居的重要性?還是要區分鄰居之間的相互作用?
  • 信息更新。如何將中心節點表示與其相鄰節點的聚合表示相結合?
  • 最終節點表示。是否使用最后一層中的節點表示,還是使用所有層中的節點表示的組合作為最終的節點表示?

這類模型比較具有代表性的工作有 NGCF [9] / LIghtGCN [10]

B-社交網絡增強(Social network enhanced

這類模型的思想本質上為,根據社會影響理論,人們會互相影響,所以有著社會關系的用戶應該具有更加相似的表示。這里需要利用GNN將用戶之間的關系整合到交互行為中,此類研究主要需要處理兩個問題:

  • 社會關系的影響。社會關系中朋友有同等的影響力嗎?如果沒有,如何區分不同朋友的影響?
  • 偏好集成。如何整合社會影響角度和交互行為這兩方面的用戶表示?

這類模型比較具有代表性的工作有 DiffNet [11] / GraphRec [12]

C-知識圖譜增強(Knowledge graph enhanced

社交網絡反映了用戶之間的關系,知識圖譜則表達了物品之間的關系,以此來增強物品的表示,將知識圖譜融入推薦系統可以帶來兩方面的好處:1.物品間豐富的語義關聯可以提高物品表示的效果,2.增強了推薦結果的可解釋性。由于知識圖譜具有復雜的圖結構(多類型的實體和多類型的關系),所以,在推薦系統中應用知識圖譜是非常具有挑戰性的。知識圖譜增強的推薦系統追求信息的充分利用,通過建模物品的關系來估計用戶的偏好,研究主要針對以下兩個問題:

  • 圖結構建模。怎樣平衡信息豐富度和圖網絡復雜度?怎樣把用戶融合進知識圖譜
  • 關系感知聚合。如何設計關系感知的聚合函數來聚合鏈接實體的信息?

這類模型比較具有代表性的工作有 KGCN [13] / KGAT [14]

2. Sequential Recommendation

目標為根據用戶近期的行為預測用戶接下來的愛好,這類模型建模序列信息,將序列行為轉化為序列圖,從而獲取用戶的序列行為轉化模式,同樣的,根據其用到的數據信息,將其分為以下三類:

A-僅序列信息(Sequence information

從物品之間鄰接的角度來看,物品序列可以被建模為圖結構數據。GNN基于序列圖,通過迭代傳播捕獲物品的遷移,學習具有代表性的物品表示。下圖展示了序列推薦中GNN的總體框架。

為了在序列推薦中充分利用GNN,此類模型研究主要針對以下三個問題:

  • 圖結構建模。為每個序列單獨構造一個子圖是否足夠?在幾個連續項之間添加邊是否比只在兩個連續項之間添加邊更好?
  • 信息傳遞。要捕獲轉換模式,哪種傳播機制更合適?是否有必要區分鏈接項的順序?
  • 序列偏好。為了獲得用戶的實時偏好,應該集成序列中的表示。是簡單地應用注意力池還是利用RNN結構來增強連續時間模式?

這類模型比較具有代表性的工作有 SR-GNN [15] / GC-SAN [16]

B-社交網絡增強(Social network enhanced

與前文類似,一個直觀的想法是,用戶從連續行為推斷出的動態偏好也可以被他們的朋友所影響。然而,在序列推薦中較少注意利用社會關系信息,可能的原因是,在順序推薦中,用戶的表示主要是從用戶的序列行為(即商品的序列)中學習到的。序列中的動態偏好要比基于用戶id的靜態偏好重要得多。

這類模型比較具有代表性的工作有 DGRec [17]

C-知識圖譜增強(Knowledge graph enhanced

與前文類似,序列推薦也可以受益于知識圖中包含的豐富信息,特別是在序列數據不足的情況下,可以通過語義連接增強物品的表示,目前這類模型的研究也較少。

?

3. 其他推薦任務

除了以上介紹的兩類推薦系統之外,也有一些其他的推薦子任務的相關研究,這里不再展開,就簡單列舉一下這些任務中與GNN相關的研究工作:

A-點擊率預測 —— CTR predictionFi-GNN [18]

點擊率預測在大規模工業應用中是一個非常重要的任務,在基于多種類型特征來預測點擊率的過程中,GNN可以用來刻畫高階的特征交互,將其轉變為圖上的節點信息傳播。

B-興趣點推薦 —— POI recommendationGPR [19]

興趣點推薦在基于位置的服務中起著關鍵作用,在這個任務中,基于空間和時間特征,模擬POI之間的地理影響以及用戶序列行為的轉換模式,存在的圖結構有 user-POI 二部圖、基于簽到的序列圖和地理圖等,可以利用GNN來刻畫用戶偏好以及地理信息等。

C-群組推薦 —— Group recommendationGAME [20]

群組推薦為向一組用戶而不是單個用戶進行物品推薦,可以看作用戶之間存在的關系(邊),也可以將看作圖中一個特殊的節點,將用戶的表示集中在組里。

D-捆綁推薦 —— Bundle recommendationBGCN [21]

捆綁推薦主要目的為為用戶一次推薦一系列物品,此時的概念為一組物品,與群組推薦同理,可以利用GNN構造層次結構,進一步捕獲物品之間的關系。

四、結語

本文主要圍繞推薦系統中的圖神經網絡這個主題,從圖神經網絡到其在推薦系統中的分類的進行了概述,希望可以通過這篇文章讓讀者對該領域有一個簡單認識。同時歡迎對文章內容有疑問或想法的同學在評論區積極留言討論!

最后,仍然向大家推薦非常好用的推薦算法工具包伯樂RecBolegithub鏈接在這里:https://github.com/RUCAIBox/RecBole),包含并實現了上述提到的多種GNN相關模型(NGCF / LightGCN / KGCN / KGAT / SRGNN / GCSAN 等),非常適合剛剛入門推薦系統的朋友,下面是RecBole介紹文章,希望大家多多支持!

來自:機器學習研究組訂閱

感謝支持199IT
我們致力為中國互聯網研究和咨詢及IT行業數據專業人員和決策者提供一個數據共享平臺。

要繼續訪問我們的網站,只需關閉您的廣告攔截器并刷新頁面。
滾動到頂部
蝌蚪app旧版本下载地址-蝌蚪app软件-蝌蚪app旧版本2018下载地址