天天看點

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

原問題

圖卷積或者圖神經網絡适合做推薦系統嗎?

最近在看相關資料,發現相關論文不是特别多,是以比較疑惑為什麼。是因為這個方向比較新,做的人還比較少呢,還是說相比其他深度學習方法(比如CNN)并沒有優勢,是以本身沒有研究價值呢?

了解這方面的大佬們能否簡單說一下。

精選回答

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

圖神經網絡确實可以用于推薦系統,并且已經有不少論文證明基于圖神經網絡的推薦系統可以比一些基于神經網絡的協同過濾算法有更好的效果。但是,基于圖神經網絡的推薦系統依然處于一個尚待探索的階段,目前工業界一般是将圖神經網絡作為輔助的使用者/商品特征抽取手段。

具體來說的話,這裡我希望通過TKDE 2020的一篇文章,《A Graph Neural Network Framework for Social Recommendations》來闡述一下目前研究者們如何使用圖神經網絡建構推薦系統。

一句話介紹

TKDE 2020這篇論文提出了GraphRec+算法,即使用多個帶注意力機制的圖神經網絡分别提取User-Item,User-User和Item-Item三種關系圖的使用者和商品資訊,通過融合源自上述三種圖的關系資訊,進而實作預測性能更強的推薦系統。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

User-Item關系模組化

GraphRec+算法的第一步是将使用者和商品之間的曆史行為記錄視為一個帶權圖,使用GNN進行模組化。形式化定義如下所示,即對于使用者相關聯的商品,使用聚合函數對商品的Embedding進行聚合,最終得到使用者的特征向量。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

值得一提的是,這裡的使用者關聯商品表征包含了兩部分資訊,即商品表征,以及使用者對商品的評分。需要注意的是,這裡的評分表征與使用者和商品無關,隻與具體評分分數有關,即所有分數相同的使用者和商品共享同一個評分表征。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

在聚合函數選擇上,GraphRec+選擇了基于Attention的GNN聚合函數。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

注意力分數即為使用者特征和包含觀點資訊的商品特征進行拼接後,經過兩層神經網絡得到的值。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

在計算完注意力分數後,需要對\alpha進行一下歸一化處理。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

最終,根據Attention分數,我們就可以得到每個使用者的特征向量。

社交關系模組化

社交關系模組化利用了上一節的User-Item關系模組化得到的User資訊。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

在GNN聚合部分,社交關系模組化和上面的使用者行為模組化是類似的。即通過使用者基礎表征和鄰居使用者表征計算Attention分數,然後将該Attention分數用于鄰居向量聚合,最終計算出社交關系使用者向量。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

最終,在得到了基于社交關系和使用者行為的使用者表征之後,可以通過一個MLP将兩個表征進行融合,形成一個最終的使用者表征。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

商品關系模組化

前兩節介紹了使用者表征模組化,在GraphRec+算法中,該算法還對Item進行了類似的模組化。

首先,對于關聯使用者表征,我們可以融合使用者表征和評分表征,得到包含評分的關聯使用者表征。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

然後,對于商品的行為表征,我們可以将使用者行為圖中的相關使用者表征,通過Attention機制實作融合,進而得到最終的Item行為表征。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

此外,商品的關聯表征也可以通過類似社交關系表征的方式,通過Attention機制,完成對鄰居商品表征的融合。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

最終,聚合商品的行為表征和關聯表征,就可以得到最終的商品表征。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

損失函數

有了User表征和Item表征之後,直接将兩個表征進行拼接,輸入到MLP中完成預測即可。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

最終的預測目标是預測評分MSE最小,即如下所示。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

實驗結果

最終,作者将GraphRec+算法應用在了三個推薦系統測試資料集上,從下面展示的實驗結果來看,融合了多類資訊的GraphRec+算法可以取得最佳的性能。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

當然,這篇文章最有價值的部分還是作者做了充分的消融實驗,證明了融合社交關系(w/o SN),融合使用者評分(w/o Opinion),融合商品關系(GraphRec)的效果。具體消融實驗結果見下圖,從圖中可以看到,社交關系、使用者評分、商品關系均是GraphRec+取得良好預測性能的必要元件。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

總結

GraphRec+算法可以說算是GNN+推薦系統領域一個非常有代表性的算法了。從上文的分析可以看到,GraphRec+算法并沒有非常複雜的算法設計。該算法的核心思想就是基于多種關系圖資訊,利用基于Attention機制的GNN網絡從關系圖中抽取包含更多資訊的使用者表征和商品表征,進而實作預測性能更強的推薦系統。

實際上,這篇文章最大的貢獻是驗證了通過向目前主流的圖神經網絡模型提供更多的推薦系統資料,目前主流的圖神經網絡模型已經能夠學習到這些額外的資訊,并取得有效的預測性能提升。略顯遺憾的是,GraphRec+模型僅僅考慮了商品和使用者的關系特征,而尚未考慮商品和使用者的一些屬性特征。是以在論文最後,作者自己也提到,如何将基于GNN的推薦系統與基于内容的推薦系統進行融合,絕對是未來基于GNN的推薦系統一個非常值得研究的方向。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

這方面論文挺多的啊。

你想,使用者-項目可以構成二部圖(Bipartite Graph),使用者與使用者之間可以構成社交網絡(Social Network),項目與項目之間可以存在知識圖譜(Knowledge Graph),另外把這幾者都考慮進去可以構成異質圖(Heterogeneous Information Network),再把時間因素考慮進來而産生的動态演化而構成動态圖(Dynamic Graph)。

是以推薦系統中許多形式的資料都可以表示成圖,當然許多大佬自然而然的将強大的GNN應用到推薦領域了,以下列舉幾篇文獻,可以看看。

  • Graph Convolutional Matrix Completion. 2017.
  • Graph Convolutional Neural Networks for Web-Scale Recommender Systems. KDD 2018.
  • Graph Contextualized Self-Attention Network for Session-based Recommendation. IJCAI 2019.
  • Session-based Recommendation with Graph Neural Networks. AAAI 2019.
  • Knowledge-aware Graph Neural Networks with Label Smoothness Regularization for Recommender Systems. KDD 2019.
  • KGAT: Knowledge Graph Attention Network for Recommendation. KDD 2019.
  • Knowledge Graph Convolutional Networks for Recommender Systems. WWW 2019.
  • Graph Neural Networks for Social Recommendation. WWW 2019.
  • Memory Augmented Graph Neural Networks for Sequential Recommendation. AAAI 2020.
  • Revisiting Graph based Collaborative Filtering: A Linear Residual Graph Convolutional Network Approach. AAAI 2020.
圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

看場景。

工業界的大資料集下,現在來看,基于u-i二部圖做圖神經網絡還沒有比較好的落地。

work的一般使用i-i同構圖,輔助冷門item獲得更好的表達。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

首先回答:可以用,但是有很多需要優化的地方

隻要是圖/網絡資料,或者可以看作/構成圖/網絡資料,都可以用基于圖的模型來處理。

推薦系統裡面user-item互動關系就可以看作一個圖,即,user和item分别看作節點,有互動就連一條邊。而且還可以融入user社交網絡,item知識圖等,圖神經網絡算法的優點就是可以友善地融入大量的side information。

需要優化的地方,具體如下:

  • 原本的圖卷積網絡是針對同構圖的,而推薦裡面user和item其實是不同類型的節點,是以需要重新設計卷積聚合機制,也可以考慮異構圖神經網絡
  • 在很多實際的場景,user的資料量是遠大于item的,且存在user互動稀疏,item長尾的問題,是以圖中節點的度方差會特别大,可能需要引入鄰居采樣技術
  • 原生的GCN直接輸入整個圖,會存在大規模問題,在實際場景更是要考慮資料量的問題,是以采樣、子圖訓練這些優化都是需要的
  • 不同的推薦場景可能存在不同的side information,業務資料有不同的特點,需要針對性融入和優化
圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

不适合

從計算的角度來講,圖這種結構與計算機體系結構的序列存儲方式天生就是沖突的。圖這種結構存儲起來,從計算機的視角看就是一個非常非常稀疏的矩陣(no matter 你選哪種存儲方式)。這種體系結構難以支撐大量的圖結構的運算。這就導緻了,在推薦系統這種海量配對的系統中,圖結構不能落地。

從特征提取的角度來講,對比使用分子的圖表示和序清單示,發現 transformer 與 graph 算法所得到的結果沒有差别,transformer 會更好一點。在小資料提取特征的實驗中 graph 相關算法也并不能保證比序列算法更加有效。可以認為在初始提取特征到最終壓縮為一個 embedding 的過程中,使用 graph 表示資料得到的特征并沒有被儲存下來。or。。。可能用圖表示了一下對于計算機來說并沒有增加資訊量。。。(這就是脫了__放_ 0 0

(當然,支援灌水,支援跑偏,支援講故事,恰飯嘛,不寒顫。。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

推薦一下,我們組很有誠意開源的Graph4Rec工具包,我們工具的最大的特點:

  • 輸入一張圖(同構、異構、複雜節點特征),給你吐出所有節點的表示
  • 通過配置化,實作不同的DeepWalk、MetaPath2vec、GCN、GAT、R-GCN等各種組合算法
  • 大規模支援,通過Paddle的Parameter Server以及PGL的分布式圖引擎,支援大規模的分布式圖表示學習。

我們把整個工具的設計放到arxiv中,大家可以看看。https://arxiv.org/abs/2112.01035

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

适合,并且也有一些落地的,學術界像韓家炜教授,中科大的何向南教授,北郵的石川教授等,都在做這方面,工業界像阿裡有專門研究異構圖的團隊。

圖神經網絡适合做推薦系統嗎?原問題圖卷積或者圖神經網絡适合做推薦系統嗎?

這方面工作其實挺多的,看了下其他大佬的回答,有位老哥說transformer不比圖神經網絡差,甚至可能更好,個人認為還是得看場景吧,在sequential recommendation這種長序列場景場景下transformer效果确實會好點,畢竟序列中有着較多的序列依賴關系,transformer本來就是用在序列任務上的,可以用位置編碼等方式記錄位置資訊,經典工作有SASRec等,而在一些比較短的序列場景例如session-based recommendation 中,根據本人的一些實驗來看圖神經網絡效果似乎是要好點,初步猜測是短序列中沒有那麼多的序列關系,圖上的一些歸納偏置資訊對推薦更關鍵,session-based 上的一些經典工作有SR-GNN,GCE-GNN等。