论文阅读 Are Graph Augmentations Necessary? Simple Graph Contrastive Learning for Recommendation

title:Are Graph Augmentations Necessary? Simple Graph Contrastive Learning for Recommendation

link:https://arxiv.org/pdf/2112.08679.pdf

code:https://github.com/Coder-Yu/QRec

from:SIGIR 2022

1. 导读

本文是针对图对比学习在推荐系统中的应用而提出的相关方法SimGCL。通常做对比学习的时候,需要对数据进行增广,得到相同数据的不同视图(view),然后进行对比学习,对于图结构也是一样,需要对用户-商品二部图进行结构扰动从而获得不同视图,然后进行对比学习最大化不同图扩充之间的节点表征一致性。本文通过实验表明

  • 基于对比学习的推荐模型中,对比学习通过学习更统一的用户,商品表征来隐式的减轻流行度偏差;

  • 图增强只起到了很小的作用

因此,本文提出一种简单的对比学习方法,放弃之前的图增强方法,将均匀噪声添加到embedding空间,从而形成对比视图。虽然本文是针对图对比学习的,但是也许对其他情况的对比学习也有借鉴意义。

2. SimGCL

2.1 总览

本文的总体结构是图+对比学习,基模型采用LightGCN。总体损失函数表示为,其中L_rec为用户和商品embedding经过LightGCN后得到的表征,然后通过BPR损失函数计算损失。L_cl表示对比损失,这里采用流行的infoNCE损失函数,本文的重点在于如何构建节点embedding的不同视图以进行对比学习。因此下文中主要介绍本文的主要创新之处,即如何构建不同视图,而对于其他基础部分如BPR损失,infoNCE损失,LightGCN等不再介绍。

2.2 动机

在SGL[1]上作者进行了如下实验,探究图结构扰动在图对比学习中的作用,ND为节点dropout,ED为边dropout,RW为随机游走,WA不进行数据增广(这里两个视图都用原始embedding)。可以发现,不进行数据增广的情况下,只比增强低一点,说明其作用很小。

以往的做法修改图结构是耗时又麻烦的,作用还小,因此作者考虑是否可以在embedding空间中进行操作。通过添加随机噪声增加一部分扰动,实现快速高效的数据增广。

2.3 方法

给定节点i,他的embedding表示为,则其增广过程表示如下,其中,这个约束用于控制噪声的大小,并且对应的向量在半径为的球上,,sign(x),x<0则输出-1,大于0则输出1,第二个约束要求,和应该在同一个超八分圆中,这样添加噪声不会导致新的有很大的偏差,导致有效正样本较少。均匀分布。由于旋转足够小,增强表示保留了原始表示的大部分信息,同时也保留了一些方差。

,

以LightGCN为图编码器进行消息传播,在每次传播的过程中加入噪声,最后将每一层的输出求均值进行池化。公式如下,其中A表示邻接矩阵。

代码:

def perturbed_LightGCN_encoder(self,emb,adj,n_layers):
        all_embs = []
        for k in range(n_layers):
            emb = tf.sparse_tensor_dense_matmul(adj, emb)
            random_noise = tf.random.uniform(emb.shape)
            emb += tf.multiply(tf.sign(emb),tf.nn.l2_normalize(random_noise, 1)) * self.eps
            all_embs.append(emb)
        all_embs = tf.reduce_mean(all_embs, axis=0)
        return tf.split(all_embs, [self.num_users, self.num_items], 0)

3. 结果

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值