Neural Collaborative Filtering
阿新 • • 發佈:2022-05-10
目錄
, 否則 \(y_{ui} = 0\). 需要注意的是, \(y_{ui} = 0\) 並不能代表使用者 \(u\) 對於物品 \(i\) 不感興趣, 有可能只是單純沒有機會遇到而已. 本文就是希望預測這些'缺失'的部分:
\[\hat{y}_{ui}.
\]
(b) 方式排列, 此時我們再考慮 \(u_4\) 的隱變數. 我們可以發現, 找不到合適的 \(\bm{p}_4\) 服從
\[s_{41}(0.6) > s_{43}(0.4) > s_{42}(0.2).
\]
概
對使用者和物品隱變數分別建模, 然後協同過濾.
主要內容
令 \(Y \in \mathbb{R}^{M \times N}\)表示 user-item 的互動矩陣, 其中若二者存在互動則 \(y_{ui} = 1\)
出發點
傳統的基於矩陣分解的協同過濾可以理解為
\[\hat{y}_{ui} = f(u, i | \bm{p}_u, \bm{q}_i) = \bm{p}_u^T \bm{q}_i. \]其中\(\bm{p}_u, \bm{q}_i \in \mathbb{R}^K\)分別表述使用者 \(u\) 和物品 \(i\) 的隱變數.
倘若我們以 Jaccard coeffcient 來表述使用者 \(i\), \(j\) 間的相似度
\[s_{ij} = \frac{|R_i \cap R_j |}{|R_i \cup R_j|}, \]其中 \(R_u = \{j: y_{uj} = 1\}\).
那麼自然的, 我會希望 \(\bm{p}_i, \bm{p}_j\)的內積儘可能滿足這一相似度, 即
\[\bm{p}_i^T \bm{p}_j = s_{ij}. \]現在, 讓我們以上圖為例來說明這一方法的侷限性. 此時有
\[s_{23}(0.66) > s_{12}(0.5) > s_{13}(0.4), \]故隱變數\(\bm{p}_1, \bm{p}_2, \bm{p}_3 \in \mathbb{R}^2\)
這說明了基於矩陣分解這種簡單的模式過於簡單了.
Neural CF
如上圖所示, Neural CF 流程如下:
- 對於使用者 \(u\) 和物品 \(i\), 分別獲取各自 embedding \(\bm{p}_u, \bm{q}_i\);
- 連線二者:
- 通過MLP提取特徵
- 邏輯斯蒂迴歸:
GMF and MLP
為了進一步用上隱變數的交叉資訊, 作者融合了左端的 GMF:
- 對於使用者 \(u\) 和物品 \(i\), 分別獲取各自 embedding \(\bm{p}_u, \bm{q}_i\) (注意, 該embedding 和 MLP的是獨立的);
- 交叉二者:
其中\(\odot\)表逐元素相乘;
再結合右端 MLP 所提取的特徵 \(\bm{z}^{MLP}\), 最後預測模型為
\[\hat{y}_{ui} = \sigma(\bm{h}^T \left [ \begin{array}{c} \bm{z}^{GMF} \\ \bm{z}^{MLP} \end{array} \right] ). \]其它細節
- 損失採用的是BCE:
其中 \(\mathcal{Y}^{-}\)表示未觀測到的互動 \(y_{ui} = 0\), 每次迭代取樣部分得到.
可見, 充分的負樣本是必要的.
-
先對 GMF 和 MLP 部分獨立預訓練, 然後再融合.
-
MLP 中啟用函式選用 ReLU 而非 Sigmoid, Tanh.
-
預訓練採用 Adam, 然後正式訓練採用不帶momentum的SGD.