近年來,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介紹文章,希望大家多多支援!

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