学习总结
文章目录
论文简介
论文题目:MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems
论文链接:http://keg.cs.tsinghua.edu.cn/jietang/publications/KDD21-Huang-et-al-MixGCF.pdf
论文代码:https://github.com/huangtinglin/MixGCF
论文作者:Tinglin Huang,唐杰老师等人
一、Introduction
GNN被广泛应用于embedding的生成场景,对user和item分别进行embedding化,使用双塔模型;类似像Graphsage、PinSage、LightGCN等算法也有被应用在工业界的推荐系统上,但是GNN的负采样技术还有待研究,过去大多数算法是从真实的数据中选取负样本,而忽略了embedding的信息,而MixGCF是经过数据增强、聚合的方法获取负样本及其表示。NGCF和LightGCN在使用MixGCF后,在NDCG指标上分别提高了26%和22%。
1.1 聚合 Aggregation
聚合获得邻居节点信息,以LightGCN的聚合过程为栗子: e u ( l + 1 ) = ∑ i ∈ N u 1 ∣ N u ∣ ∣ N i ∣ e i ( l ) , e v ( l + 1 ) = ∑ j ∈ N v 1 ∣ N v ∥ N j ∣ e j ( l ) \mathbf{e}_{u}^{(l+1)}=\sum_{i \in N_{u}} \frac{1}{\sqrt{\left|N_{u}\right|\left|N_{i}\right|}} \mathbf{e}_{i}^{(l)}, \mathbf{e}_{v}^{(l+1)}=\sum_{j \in N_{v}} \frac{1}{\sqrt{\left|N_{v} \| N_{j}\right|}} \mathbf{e}_{j}^{(l)} eu(l+1)=i∈Nu∑∣Nu∣∣Ni∣1ei(l),ev(l+1)=j∈Nv∑∣Nv∥Nj∣1ej(l)
1.2 池化 Pooling
池化过程,以LightGCN为栗的池化如下,将每一层的嵌入加权求和: e u ∗ = ∑ l = 0 L λ l e u ( l ) , e v ∗ = ∑ l = 0 L λ l e v ( l ) \mathbf{e}_{u}^{*}=\sum_{l=0}^{L} \lambda_{l} \mathbf{e}_{u}^{(l)}, \mathbf{e}_{v}^{*}=\sum_{l=0}^{L} \lambda_{l} \mathbf{e}_{v}^{(l)} eu∗=l=0∑Lλleu(l),ev∗=l=0∑Lλlev(l)
而NGCF是对多层的结果做拼接操作: e u ∗ = e u ( 0 ) ∥ ⋯ ∥ e u ( L ) , e v ∗ = e v ( 0 ) ∥ ⋯ ∥ e v ( L ) \mathbf{e}_{u}^{*}=\mathbf{e}_{u}^{(0)}\|\cdots\| \mathbf{e}_{u}^{(L)}, \mathbf{e}_{v}^{*}=\mathbf{e}_{v}^{(0)}\|\cdots\| \mathbf{e}_{v}^{(L)} eu∗=eu(0)∥⋯∥eu(L),ev∗=ev(0)∥⋯∥ev(L)
1.3 负采样优化
一般LTR任务的损失函数常用BPR loss,最大化正负样本之间的评分差,在不断优化的过程中差值越大: max ∏ v + , v − ∼ f S ( u ) P u ( v + > v − ∣ Θ ) \max \prod_{v^{+}, v^{-} \sim f_{S}(u)} P_{u}\left(v^{+}>v^{-} \mid \Theta\right) maxv+,v−∼fS(u)∏Pu(v+>v−∣Θ)
其中参数:
- v + v^{+} v+和 v − v^{}- v−分别表示positive items和negative items
- P u ( a > b ) P_{u}(a>b) Pu(a>b)表示用户u,相比于item b来说,更加偏爱于item a
- f S ( u ) f_{S}(u) fS(u)是negative sampling的分布,很多推荐算法(如LightGCN、NCF、BPR、NGCF等算法)都是将negative sample服从于uniform均匀分布( f S ( u ) = f uniform ( u ) f_{S}(u)=f_{\text {uniform }}(u) fS(u)=funiform (u))
1.4 负采样问题
- 负采样一般使用uniform distribution,为了改进GNN的负采样:
- PinSage根据PageRank的得分进行负采样;
- MCN考虑正负样本之间的结构相关性,重新设计了正负样本的分布;
- 但是这些算法只是主要在discrete graph space中负采样,而忽略了GNN在embedding空间中独特的邻居聚合过程。
- MixGCF受数据增强和metric learning的思想而提出,进行hard负样本的生成。
一般我们在数据集中,所有交互过的行为统一视为正样本,没有发生过交互的物品(往往很多)可以采样出一部分作为负样本,和正样本相似的负样本称为hard负样本。研究认为采样出难负样本会对模型帮助更大,因为模型能更好的学习到正负样本的边界。
二、MixGCF算法
2.1 positive mixing
positive mixing,混合来自不同局部图的信息成负样本: e v m ′ ( l ) = α ( l ) e v + ( l ) + ( 1 − α ( l ) ) e v m ( l ) , α ( l ) ∈ ( 0 , 1 ) \mathbf{e}_{v_{m}}^{\prime(l)}=\alpha^{(l)} \mathbf{e}_{v^{+}}^{(l)}+\left(1-\alpha^{(l)}\right) \mathbf{e}_{v_{m}}^{(l)}, \alpha^{(l)} \in(0,1) evm′(l)=α(l)ev+(l)+(1−α(l))evm(l),α(l)∈(0,1)
其中:
- α ( l ) \alpha^{(l)} α(l)是每一个hop的均匀采样的mixing因子;
- mixup的mixing因子是从beta分布 Beta ( β , β ) \operatorname{Beta}(\beta, \beta) Beta(β,β)中采样而来的,对模型的泛化能力有很大影响;
- 为了缓解上面提到的这个影响,positive mixing中的mixing因子 α ( l ) \alpha^{(l)} α(l)统一从(0, 1)中进行采样;
- E ′ \mathcal{E}^{\prime} E′是候选negatives M增强后的embedding集合(远小于总items)。
positive mixing增强negatives通过以下两种方式:
- 把positive information加入到negative samples,这样有助于让模型专注于决策边界。
- mixing因子引入随机不确定性。
2.2 Hop Mixing
在positive mixing得到的新负样本中,对每一层随机选择一个负样本,再通过pool操作得到新负样本: e v − = f pool ( e v x ′ ( 0 ) , ⋯ , e v y ′ ( L ) ) \mathbf{e}_{v^{-}}=f_{\text {pool }}\left(\mathbf{e}_{v_{x}}^{\prime(0)}, \cdots, \mathbf{e}_{v_{y}}^{\prime(L)}\right) ev−=fpool (evx′(0),⋯,evy′(L))
其中具体方法: e v x ′ ( l ) = arg max e ′ v m ( l ) ∈ E ( l ) f Q ( u , l ) ⋅ e v m ′ ( l ) \mathbf{e}_{v_{x}}^{\prime(l)}=\underset{\mathbf{e}^{\prime}{ }_{v_{m}}^{(l)} \in \mathcal{E}^{(l)}}{\arg \max } f_{\mathrm{Q}}(u, l) \cdot \mathbf{e}_{v_{m}}^{\prime(l)} evx′(l)=e′vm(l)∈E(l)argmaxfQ(u,l)⋅evm′(l)
刚才的pool在GNN模型中常用的两种有:
- Sum-based pooling: e u ⋅ e v − = ∑ l = 0 L λ l e u ⋅ e v − ( l ) \mathbf{e}_{u} \cdot \mathbf{e}_{v^{-}}=\sum_{l=0}^{L} \lambda_{l} \mathbf{e}_{u} \cdot \mathbf{e}_{v^{-}}^{(l)} eu⋅ev−=∑l=0Lλleu⋅ev−(l)
- Concat-based pooling: e u ⋅ e v − = ∑ l = 0 L e u ( l ) ⋅ e v − ( l ) \mathbf{e}_{u} \cdot \mathbf{e}_{v^{-}}=\sum_{l=0}^{L} \mathbf{e}_{u}^{(l)} \cdot \mathbf{e}_{v^{-}}^{(l)} eu⋅ev−=∑l=0Leu(l)⋅ev−(l).
2.3 optimization with MixGCF
L B P R = ∑ ( u , v + ) ∈ O + e v − ∼ f M i x G C F ( u , v + ) ln σ ( e u ⋅ e v − − e u ⋅ e v + ) \mathcal{L}_{\mathrm{BPR}}=\sum_{\substack{\left(u, v^{+}\right) \in O^{+} \\ \mathbf{e}_{v^{-}} \sim f_{\mathrm{MixGCF}}\left(u, v^{+}\right)}} \ln \sigma\left(\mathbf{e}_{u} \cdot \mathbf{e}_{v^{-}}-\mathbf{e}_{u} \cdot \mathbf{e}_{v^{+}}\right) LBPR=(u,v+)∈O+ev−∼fMixGCF(u,v+)∑lnσ(eu⋅ev−−eu⋅ev+)
2.4 关于MixGCF的相关讨论
- 通用插件:即插即用
- 数据增强:可以看作增强,因为负样本是基于现有实例生成的
- 多个负样本近似:度量学习中指出在每次更新的损失函数中使用多个负实例,可以加快底层模型的收敛速度,并提供更好的性能;MixGCF通过hop-mixing提供多个负样本的近似
三、实验环节
3.1 experimental settings
- 数据集:Alibaba, Yelp2018 和 Amazon
- 评估指标:Recall 和 NDCG
- Recommender:LightGCN、NGCF、PinSage
- 负采样的Baselines:RNS、DNS、IRGAN、AdvIR、MCNS
- 超参数设置
3.2 Performance comparison
四、相关工作
4.1 基于GNN的推荐算法
- PinSage、GC-MC、NGCF、LightGCN
- 利用side info:社交网络、知识图谱 …
4.2 推荐系统中的负采样
- Static Sampler 从一个固定的分布中进行负采样
- 均匀分布、流行度 指数 3/4
- GAN-based Sampler 基于生成对抗网络进行负采样
- IRGAN、KBGAN、AdvIR
- Hard Negative Sampler 为当前的用户自适应地选择 hardest 负样本
- DNS
- Graph-based Sampler 根据图信息进行负采样
- MCNS、KGPolicy、PinSage(基于Personalized PageRank)
Reference
[1] http://keg.cs.tsinghua.edu.cn/jietang/publications/KDD21-Huang-et-al-MixGCF.pdf
[2] https://huangtinglin.github.io/experience/
[3] 贝叶斯个性化排序算法BPR
[4] 上百篇论文概览『负采样方法』的前世今生