【论文笔记KDD2021】MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems

学习总结

论文简介

在这里插入图片描述

论文题目: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)=iNuNuNi 1ei(l),ev(l+1)=jNvNvNj 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=0Lλleu(l),ev=l=0Lλ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+,vfS(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算法

在这里插入图片描述

扫描二维码关注公众号,回复: 14439800 查看本文章

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)=evm(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)} euev=l=0Lλleuev(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)} euev=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+evfMixGCF(u,v+)lnσ(eueveuev+)

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] 上百篇论文概览『负采样方法』的前世今生

猜你喜欢

转载自blog.csdn.net/qq_35812205/article/details/126147670