MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems閱讀筆記
動機
本文是來自2021年KDD上的一篇文章。圖神經網路最近已經成為最先進的協同過濾解決方案,目前協同過濾中的一個挑戰是從隱反饋資料中提取負反饋訊號,但是目前很少有對基於GNN的協同過濾方法的負反饋取樣的研究。好的負反饋訊號可以加速模型收斂,為模型提供更大且更有意義的梯度,因此提取出好的負反饋訊號是非常有必要的。之前的工作大多是通過某種策略在原始資料中尋找優秀的負樣本,本文作者提出了一個通用的GNN負取樣框架——MixGCF,通過融合原始資料中的正樣本及GNN傳播層上的負樣本生成質量較高的負訊號,達到了更好的效果。
演算法
MixGCF主要分為兩步:Positive Mixing和Hop Mixing。整體流程見下圖。下述的正樣本可理解為與使用者有互動的物品,負樣本為與使用者無互動的物品。
Positive Mixing
對於一個有L層的GNN模型,我們可以獲得每個物品節點v的L+1個embedding表示,其中\(e_{v}^{(l)}\)表示v在第l層的表示。首先採集M個負樣本構成候選集\(\varepsilon = \{ e_{v_m}^{(l)} \}\),大小為M×(L+1),對於每個\(e_{v_m}^{(l)}\),使用以下公式進行Positive Mixing
\(e_{v^+}^{(l)}\)是正樣本在第l層的embedding,\(\alpha^{(l)}\)是第l層的混合係數,在本次實驗中由(0,1)之間的均勻取樣獲得。
Hop Mixing
令\(\varepsilon^{'} = \{ e_{v_m}^{'(l)} \}\)
每一層的負embedding通過以下函式篩選出
其中\(f_Q(u,l)\)是查詢函式,返回使用者u在l層的embedding。
池化
池化操作根據原有的模型來決定,比如LightGCN是將每層的embedding相加
NGCF是連線每層的embedding
優化
損失函式採用BPR loss。
整體演算法流程可見下圖。
實驗結果
作者在LightGCN、NGCG和PinSage三個模型上評估了MixGCF,將其與其它負取樣方法進行對比,MixGCF均取得最好的效果。
總結與展望
由於我之前讀過LightGCN和NGCF的論文,對基於GNN的CF有一些瞭解,因此我認為本篇論文還是比較容易讀懂的。本篇論文主要提出了一種GNN上的負取樣方法,首先採集一批負樣本在各個層上的embedding作為候選集,再向其中注入正訊號,之後根據一定策略從候選集每層中抽取一個經過positive mixing的負embedding,再將所有抽取出的embedding經過池化層,就得到了最終的負訊號。而在基礎的LightGCN和NGCF中,負訊號是來自隨機抽取到一個的負樣本,所有的負資訊僅僅來自一個負樣本。未來,可以考慮將MixGCF中的一些技術用於圖與關係資料的預訓練。推薦系統模型的預訓練也許是未來的比較有前景的一個方向。