论文笔记(Neural Graph Collaborative Filtering)
神經圖協同過濾
論文鏈接:Neural Graph Collaborative Filtering, SIGIR’19
原理:在 user-item interaction graph 上使用 GNN 來學習 user 向量和item 向量,用戶向量和項向量的內積來預測評分。
區別:
1. 摘要
學習 users 和 items 的向量表示是現代推薦系統的核心。
從早期的矩陣分解到最近出現的基于深度學習的方法,現有的工作通常通過從描述用戶(或項目)的現有特性(如ID和屬性)映射來獲得用戶(或項目)的嵌入。
我們認為,這種方法的一個固有缺點是,隱藏在用戶-項目交互中的協作信號沒有在嵌入過程中編碼。因此,由此產生的嵌入可能不足以捕獲協作過濾效果。
在這項工作中,我們建議將用戶-項目交互更具體地集成到嵌入過程中二部圖結構。提出了一種新的推薦框架神經圖協同過濾算法(NGCF),該算法利用用戶項圖的結構,在用戶項圖上傳播嵌入。這就導致了用戶項圖中高階連通性的表達建模,有效地將協作信號顯式地注入到嵌入過程中。
2. 模型架構
(1)嵌入層:提供用戶嵌入和項嵌入初始化;
(2)多嵌入傳播層:通過注入高階連通性關系來細化嵌入;
(3)預測層:整合來自不同傳播層的細化嵌入,輸出用戶-項目對的親和度得分。
2.1 Embedding Layer
用嵌入向量 eu∈Rd (ei∈Rd) 來描述用戶 u (項目 i ),其中 d 表示嵌入大小。(ID嵌入)
E = [eu1,···,euN, ei1,···,eiM]
2.2 Embedding Propagation Layers
構建GNNs的消息傳遞體系結構,以便沿著圖結構捕獲CF信號并細化用戶和項的嵌入。
2.2.1 First-order Propagation
直觀上,與用戶交互過的項目可以體現用戶的偏好,類似的,與項交互過的用戶也可以看作是項的特性,并且可以用于度量兩個項目之間的協作相似性。
Message Construction
對于一個連接的 user-item 對,我們定義從 i 到 u 的信息嵌入 mu←i為:
W1,W2∈Rd’×d為可訓練權矩陣,提取有用信息進行傳播,d '為轉換大小。
Nu,Ni 表示用戶 u 和項目 i 的第一跳鄰居,
括號前面的是系數是拉普拉斯標準化,從表示學習的角度,反映了歷史項目對用戶偏好的貢獻程度。從消息傳遞的角度來看,可以解釋為折扣因子,因為所傳播的消息應該隨著路徑長度而衰減。
在考慮信息嵌入時,不是只考慮了項目的影響,而且將 ei 和 eu 之間的相互作用額外編碼到通過 ei⊙eu 傳遞的消息中。這使得消息依賴于 ei 和 eu 之間的親和力,例如,從相似的項傳遞更多的消息。
Message Aggregation
在此階段,我們整合從 u 的鄰域傳播的消息,以改進 u 的表示:
e(1)u 是用戶 u 在一階嵌入傳播層獲得的表示
除了從鄰居 Nu 傳播的消息外,還考慮了 u 的自連接:mu←u = W1eu,保留了原始特征的信息。
類似地,我們可以通過從其連接的用戶傳播信息來獲得項目 i 的表示形式 e(1)i。
2.2.2 High-order Propagation
通過堆疊 l 嵌入傳播層,用戶(和項)能夠接收從其 l-hop 鄰居傳播的消息。在第 l 步中,用戶 u 的表示遞歸式為:
Propagation Rule in Matrix Form
為了提供嵌入傳播的整體視圖,方便批量實現,提供了分層傳播規則的矩陣形式:
E(l) ∈ R(N+M)×dl 是用戶和項經過 l 步嵌入傳播后得到的表示
I 表示一個單位矩陣
L 表示用戶-項目圖的拉普拉斯矩陣:
R ∈ RN×M 為用戶-項目交互矩陣
0 為全 0 矩陣;
A 為鄰接矩陣,D 為對角度矩陣,其中第 t 個對角元素 Dtt = |Nt |,這樣 Lui 就等于之前的系數 pui
2.3 Model Prediction
由于在不同層中獲得的表示強調通過不同連接傳遞的消息,所以它們在反映用戶偏好方面有不同的貢獻。
因此,將它們串聯起來,構成用戶的最終嵌入;對 item 也做同樣的操作。
其中||為串聯操作。除了連接,其他聚合器也可以應用,如加權平均、最大池、LSTM。使用串聯在于它的簡單性,不需要學習額外的參數,而且已經被非常有效地證明了。
最后,我們進行內積來估計用戶對目標物品的偏好:
2.4 Optimization
optimize the pairwise BPR loss
它考慮觀察到的和未觀察到的用戶-項目交互之間的相對順序。具體地說,BPR 假設用戶引用的已觀察到的交互作用應該比未觀察到的交互作用具有更高的預測值。目標函數如下:
總結
以上是生活随笔為你收集整理的论文笔记(Neural Graph Collaborative Filtering)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Java】文件操作
- 下一篇: 【Python自然语言处理】中文分词技术