研究目標
學習user和item的向量表示是推薦系統的核心,但在從早期的矩陣分解,到現在的深度學習,都是利用已經存在的特征來進行embedding表示。本文認為,隱藏在user-item之間的編碼信息無法在embedding編碼的過程中表示出來,因此,由此產生的嵌入可能不足以捕獲協作過濾效果。於是,提出了一個新的推薦框架Neural Graph Collaborative Filtering (NGCF) ,它可以在圖結構中學習嵌入表示,讓模型可以表達高維特征,顯示地將協同過濾信號放入到嵌入過程中。
模型簡介
假設用戶為u,項目為i,我們可以畫出user-item的二部圖,同時根據二部圖可以將u1的高維連接表示出來,如下圖所示。
對於整體的模型框架有三個主要的部分:
- embedding layer:提供初始的user embedding 和 item embedding
- multiple embedding propagation layers:通過注入高階連接關系來細化嵌入
- the prediction layer:通過整合多層嵌入來預測(u,i)
下面我們依次講解這三個主要部分。
embedding layer
E是user和item的初始embedding狀態,維度為d。在傳統的推薦系統中,比如矩陣分解,它會直接將embedding輸入到交互層,並最終得到用戶評分。但是在NCCF框架中,這僅僅是為下面的embedding propagation layer做准備。
embedding propagation layer
我們首先考慮單層的embedding propagation layer
first-order propagation
其中,$m_{u<-i}$表示消息從項目i到用戶u,$f$表示編碼函數,它的輸入為embedding $e_i$和embedding $e_u$,以及邊(u,i)的衰減因子$p_{ui}$
其中函數$f$的公式如下:
$W_1$和$W_2$是訓練出來的權重矩陣,維度為d*d',$1/sqrt(|N_u||N_i|)$就是衰減因子$p_{ui}$。
通過上面的式子就可以進行消息傳遞,但是對於一個節點u,它連接着的結點i不僅僅只有一個,其他的節點也要將消息傳遞給節點u,最后節點u要將所有傳遞給它的消息進行合並。
其中$N_u$是節點u連接的其他節點。
high-order propagetion
利用一階連通性可以增強表示,所以作者通過疊加更多的嵌入傳播層來探索高階連通性信息。這種高階連通性對於協同信號來估計用戶和項目之間的關聯評分是至關重要的。
當層數增加后,消息傳遞公式可以如下表示:
消息合並的公式如下表示:
其中右上角的l表示的是第l層。
該圖表示的就是3層的embedding propagation layer,我們可以清楚的看到,在嵌入傳播過程中可以捕捉到$u1 <- i2 <- u2 <- i4$等協同信號。
以上,我們一直對單個節點的傳播嵌入進行分析,一個節點的embedding是一個向量,那么一個圖的embedding就是將所有節點的embedding放到一起形成一個矩陣,也是一個圖的原始特征,我們用$E$來表示,用矩陣表示傳播規則的公式如下所示:
其中,$\cal{L}$是拉普拉斯矩陣,A是這個圖的鄰接矩陣。
prediction layer
經過L層的傳播之后,我們得到了L個關於用戶u的向量表達$e_u^{1},...,e_u^{L}$,由於在不同層中獲得的向量表示,是通過不同連接傳遞的消息,所以它們在反映用戶偏好方面有不同的貢獻,所以我們將這些向量表示串聯起來,得到用戶u的最終表示.
最后,我們進行內積來估計用戶對目標產品的偏好
NGCF框架的整體結構如下所示
NGCF框架應用於SVD++
SVD++可以看作是沒有高階傳播層的NGCF的一個特例,也就是說僅有一層propagation layer,在傳輸層中,我們禁用了轉換矩陣和非線性激活函數,公式最終如下所示
其中$p_{ui'}$等於$1/sqrt(|N_{u}|)$以及$p_{iu'}$等於0
實驗
作者的實驗從以幾個方面來展開
- RQ1:與最先進的CF方法相比,NGCF的性能如何?
- RQ2:不同的超參數設置(如層深度、嵌入傳播層、層聚合機制、dropout)如何影響NGCF?
- RQ3:表示如何從高階連接中獲益?
數據集
作者采用了Gowalla, Yelp2018, Amazon-book 這三個數據集
baseline
- MF
- MeuMF
- CMN
- HOP-Rec
- PinSage
- GC-MC
性能比較(RQ1)
整體比較
- MF的性能在三個數據集上都很差,這表明普通的矩陣相乘不足以捕獲更復雜的關系.而NeuMF在所有的情況下都是優於MF的,這體現了非線性建模的重要性.然而,MF和NeuMF都沒有明確地對嵌入學習過程中的連通性建模,這很容易導致次優表示。
- MF,NeuMF與GC-MC相比,證明了引入一階鄰域可以改善表示學習,但在Yelp 2018不如NeuMF,可能是GC-MC未能充分挖掘用戶與物品之間的非線性特征交互
- 在大多數情況下,CMN通常比GC-MC具有更好的性能。這種改進可能歸功於神經注意機制,它可以為每個相鄰用戶分配不同的注意力權重,而不是像GC-MC中使用的相同的注意力權重
- PinSage在Gowalla和AmazonBook中表現略遜於CMN,而在Yelp2018中表現要好得多,HOP-Rec通常可以實現顯著的改進,因為PinSage在嵌入函數中引入了高階連通性,HOP-Rec利用高階鄰居來豐富訓練數據,而CMN只考慮相似的用戶。因此,它表明了建模高階連通性或鄰域的積極作用。
- NGCF在三個數據集上始終保持着最好的性能,這是因為通過疊加embedding propagation layer NGCF能夠顯示的探索高階連通性,而CMN和GC-MC只利用一階鄰域來指導表示學習。
不同稀疏性下的性能比較
稀疏性問題通常限制了推薦系統性能,作者為了驗證NGCF能否緩解稀疏性問題,選取了4組不同稀疏性的user進行實驗,他們的交互數量分別為<24,<50,<117,<1014
- NGCF和HOP-Rec始終高於其他的方法,這表明利用高階連通性可以有效地捕獲協同信號,極大地促進非活動用戶的表示學習。
NGCF的性能研究(RQ2)
layer的數量
作者改變了embedding propagation layer的數量
- 增加NGCF的深度可以提高推薦性能
- 在NGCF-3上進一步疊加傳播層時,我們發現NGCF-4會導致Yelp2018數據集過度擬合。這可能是由於過深的網絡結構可能會給表示學習帶來噪音。同時說明三層就足以捕獲CF信號
- 即使是最少的層數,也是優於其他方法,表明高階連通性的顯式建模可以極大的提高推薦性能
嵌入傳播層和層聚合機制的影響
為了探究圖卷積的影響,我們考慮了NGCF-1以及它的變種.如下圖所示
- NGCF-1始終優於所有變種。我們將這些改進歸功於表示交互,由於所有的變量只考慮線性變換,從而驗證了嵌入傳播函數的合理性和有效性。
- 在大多數情況下,NGCF-1SVD++表現不如NGCF-1PinSage和NGCF-1GC-MC。它說明了節點本身傳遞消息和非線性轉換的重要性
- 通過對表2和表4的分析,我們發現NGCF-1PinSage和NGCF-1GC-MC在將所有層的輸出連接在一起時,其性能分別優於PinSage和GC-MC。
dropout影響
高階連通性的影響(RQ3)
作者從Gowalla數據集中隨機選擇了6個用戶及其相關條目,觀察它們的表現如何影響NGCF的深度。左右兩個圖分別為MF和NGCF-3
- 我們可以看到NGCF-3表現出了明顯的聚類
- 分析相同的用戶,比如黃色用戶,當疊加三個嵌入傳播層時,它們的歷史項的嵌入更接近,這定性的驗證了NGCF的有效性,