博主以往已经整理过图神经网络用于推荐系统,整理过对比学习用于推荐系统。

  • 图神经网络用于推荐系统问题(PinSage,EGES,SR-GNN)
  • 图神经网络用于推荐系统问题(NGCF,LightGCN)
  • 图神经网络用于推荐系统问题(IMP-GCN,LR-GCN)
  • 图神经网络用于推荐系统问题(SURGE,GMCF,TASRec,MixGCF)
  • 对比学习用于推荐系统问题(SSL,S^3-Rec,SGL,DHCN,SEMI,MMCLR)
  • 自监督学习用于推荐系统问题综述

而图+对比学习结合的趋势也算较为明显。本期先整理几篇WWW22的文章,SIGIR22的文章预计等文章陆续放出后补。


Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning
对比学习可以缓解推荐系统中数据稀疏问题,图方法可以考虑邻域节点之间的关系,两者都对协同过滤有提升效果。因此,图+对比学习是很合适的建模思路。这篇文章提出NCL(Neighborhood-enriched Contrastive Learning)方法,主要从两方面考虑对比关系,

  • 考虑图结构上的用户-用户邻居,商品-商品邻居的对比关系。—>结构邻居
  • 考虑节点表征聚类,节点与聚类中心构成对比关系。—>语义邻居

模型图如上图所示,即同时考虑Structural Neighbors和Semantic Neighbors。

  • 结构邻居的对比学习。可以显式挖掘由交互图定义的邻居。具体做法是将用户自己的embedding和偶数层 GNN 的相应输出的embedding视为正例对来进行对比。但由于结构对比损失平等地对待用户/商品的同质邻居,这不可避免地将噪声信息引入对比对。因此作者提出结合语义邻居来扩展对比对。
  • 语义邻居的对比学习。这里的语义邻居是指图上无法到达但具有相似特征(商品节点)或偏好(用户节点)的节点。具体的做法是,先通过聚类,将相似embedding对应的节点划分的相同的簇,用簇中心代表这个簇,即原型簇。然后和结构邻居的做法类似,构建语义邻域level上的对比损失。
def ProtoNCE_loss(self, node_embedding, user, item): #原型NCE loss的计算user_embeddings_all, item_embeddings_all = torch.split(node_embedding, [self.n_users, self.n_items]) #user和item的embeddinguser_embeddings = user_embeddings_all[user]     # [B, e]norm_user_embeddings = F.normalize(user_embeddings)user2cluster = self.user_2cluster[user]     # [B,],user聚类,如kmeansuser2centroids = self.user_centroids[user2cluster]   # [B, e],聚类中心pos_score_user = torch.mul(norm_user_embeddings, user2centroids).sum(dim=1) #正例分数,和聚类中心的相似度pos_score_user = torch.exp(pos_score_user / self.ssl_temp)ttl_score_user = torch.matmul(norm_user_embeddings, self.user_centroids.transpose(0, 1)) #所有的分数ttl_score_user = torch.exp(ttl_score_user / self.ssl_temp).sum(dim=1)proto_nce_loss_user = -torch.log(pos_score_user / ttl_score_user).sum()item_embeddings = item_embeddings_all[item]norm_item_embeddings = F.normalize(item_embeddings)item2cluster = self.item_2cluster[item]  # [B, ],item聚类,如kmeansitem2centroids = self.item_centroids[item2cluster]  # [B, e],聚类中心pos_score_item = torch.mul(norm_item_embeddings, item2centroids).sum(dim=1) #和user的操作类似pos_score_item = torch.exp(pos_score_item / self.ssl_temp)ttl_score_item = torch.matmul(norm_item_embeddings, self.item_centroids.transpose(0, 1))ttl_score_item = torch.exp(ttl_score_item / self.ssl_temp).sum(dim=1)proto_nce_loss_item = -torch.log(pos_score_item / ttl_score_item).sum()proto_nce_loss = self.proto_reg * (proto_nce_loss_user + proto_nce_loss_item)return proto_nce_loss

paper:https://arxiv.53yu.com/pdf/2202.06200.pdf
code:https://github.com/RUCAIBox/NCL



SimGRACE: A Simple Framework for Graph Contrastive Learning without Data Augmentation
无需数据增强的图对比学习的框架。文章的motivation源于现有的对比学习方法都在数据增强上下各种功夫,但这些数据增强方法主要存在以下问题:

  • 鉴于图数据的多样性,在增强过程中很难很好地保留语义。
  • 需要手动试错、繁琐的搜索或昂贵的领域知识。

因此作者提出不如直接将原始图作为输入,再加上带有扰动版本的 GNN 模型作为两个编码器,以获得两个相关视图进行对比,如上图所示的GNN Encoder和perturbed GNN Encoder。其中扰动可以按照,h=f(G;θ),h′=f(G;θ′)h=f(G;\theta),h'=f(G;\theta')h=f(G;θ),h=f(G;θ)θl′=θl+η⋅Δθl;ΔθlN(0,σl2)\theta'_l=\theta_l+\eta \cdot \Delta \theta_l;\Delta \theta_l ~ N(0,\sigma^2_l)θl=θl+ηΔθl;ΔθlN(0,σl2)

同时作者给出了大量的理论证明。不过实际上,这篇文章的思路和陈丹器大佬在做句子表征,即SimCSE模型中的做法是很类似的,即认为alignment and uniformity是对比学习中重要的两个方面。

paper:https://dl.acm.org/doi/10.1145/3485447.3512156
code:https://github.com/junxia97/SimGRACE


ClusterSCL: Cluster-Aware Supervised Contrastive Learning on Graphs
这一篇文章也是认为监督性对比学习存在问题,如上图:

  • 难以处理具有较大类内方差的数据集。
  • 难以处理高类间相似性的数据集。

如图a,(u1, u3) 或 (u2, u4) 属于同一类,但位于不同的图社区中。而 (u1, u2) 或 (u3, u4) 属于不同的类别,但具有相似的结构模式。但现有的监督对比学习方法SupCon在学习时会打破固有的集群分布,如图b。而作者提出的ClusterSCL 执行节点对比并保留集群分布,且从图c可以看到作者实现了更简单的决策边界。

具体来说,作者提出了用于图学习任务的集群感知监督对比学习损失,ClusterSCL 。其主要思想是在监督对比学习期间以节点集群分布的形式保留图的结构和属性属性。即ClusterSCL 引入了集群感知数据增强策略,并将其与监督对比SupCon损失相结合。具体过程如下,是三个隐聚类簇的学习过程。
p(si∣vi)=∫p(ci∣vi)p(si∣vi,ci)dcip(s_i|v_i)=\int p(c_i|v_i)p(s_i|v_i,c_i)dc_ip(sivi)=p(civi)p(sivi,ci)dci

paper:https://dl.acm.org/doi/10.1145/3485447.3512207
code:https://github.com/wyl7/ClusterSCL

图对比学习的应用(NCL,SimGRACE,ClusterSCL)相关推荐

  1. ICLR‘23 UnderReview | LightGCL: 简单而有效的图对比学习推荐系统

    上周末梳理了NeurlPS'22中推荐系统相关论文,详见NeurlPS'22 推荐系统论文梳理.本想精读其中某篇,但是并没有公开.最近知乎刷到很多ICLR'23的总结文章,我把他们汇总在ICLR'23 ...

  2. 直播 | 北京邮电大学徐逸辰:图对比学习研究进展

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  3. 技术动态 | 图对比学习的最新进展

    转载公众号 | DataFunSummit 分享嘉宾:朱彦樵 中国科学院自动化研究所 编辑整理:吴祺尧 加州大学圣地亚哥分校 出品平台:DataFunSummit 导读:本文跟大家分享下图自监督学习中 ...

  4. IJCAI 2022 | 鲁棒的Node-Node Level自对齐图对比学习

    ©作者 | Dream 单位 | 浙江大学 研究方向 | 图表示学习 本文介绍一下我们自己的工作,该论文是一篇图自监督学习的工作,被 IJCAI 2022 接收. 论文标题: RoSA: A Robu ...

  5. 顶会论文看图对比学习 (GNN+CL) 研究趋势

    作者 | 侯宇蓬 单位 | 中国人民大学 来源 | RUC AI Box 随着对比学习(Contrastive Learning)在 CV.NLP 等领域大放异彩,其研究热度近年来也逐步走高.在图学习 ...

  6. 图对比学习入门 Contrastive Learning on Graph

    对比学习作为近两年的深度学习界的一大宠儿,受到了广大研究人员的青睐.而图学习因为图可以用于描述生活中广泛出现的非欧式数据,具有广大的应用前景.当图学习遇上了对比学习- 本文从对比学习入手,再介绍图对比 ...

  7. 顶会论文看图对比学习(GNN+CL)研究趋势

    每天给你送来NLP技术干货! © 作者|侯宇蓬 机构|中国人民大学高瓴人工智能学院 研究方向|图机器学习与推荐系统 来自 | RUC AI Box 1. 引言 随着对比学习(Contrastive L ...

  8. NeurIPS 2022|探明图对比学习的“游戏规则”:谱图理论视角

    ©作者 | 刘念, 王啸 单位 | 北邮 GAMMA Lab 研究方向 | 图神经网络 论文标题: Revisiting Graph Contrastive Learning from the Per ...

  9. 【GNN报告】潘世瑞: 图自监督新范式-重新思考图对比学习

    目录 1.简介 2.重新思考图对比学习 大纲 GRL背景 GRL现有问题/挑战 GCL现有问题/挑战 重新思考GCL 组判别-一个新范式 实验结果 小结 讨论 3.参考 1.简介 报告主题 重新思考图 ...

最新文章

  1. Git 学习第二天(一)
  2. java 二维卡尔曼滤波_卡尔曼滤波(Kalman filtering)算法学习小记
  3. C++happy number开心数的实现算法(附完整源码)
  4. hadoop环境搭建笔记
  5. '[linux下tomcat 配置
  6. MySql 实现Row_Number(Partition by)分组函数效果
  7. Fortran入门教程(一)——引入篇
  8. 匈牙利算法解决指派问题(java版)
  9. jsp超市仓库管理系统myeclipse开发sqlserver数据库
  10. CMDN Club每周精选(第2期)
  11. ECCV 2018 论文下载及分析(774篇全)
  12. ROS学习【3】-----ROS通信编程:小乌龟走正方形
  13. 带通滤波器幅频特性曲线图_滤波器知识,你所要的,都在这里
  14. 利用Python GUI写一个简单的绘画板
  15. 微星RTX 4090和RTX 4080 SUPRIM参数对比评测
  16. openstack 中ovs-vlan 转换
  17. python调用usb设备_在Python中查询连接的USB设备信息的简单方法?
  18. 百度云加速提升网站访问速度
  19. 如何在 Linux 系统中配置 firewalld 防火墙策略
  20. 浅谈 SAP ABAP 系统里的 ALV 输出方式实现

热门文章

  1. 有效预防xss_预防XSS攻击的一些方法整理
  2. 就业培训 | 2020第一期重庆高校毕业生大数据职业技能线上特训营开课啦
  3. python pandas处理excel 统计数据_python使用pandas处理excel数据
  4. C#使用iTextSharp给PDF文件添加水印,PDF文件加密,PDF文件旋转
  5. 怎么把分钟转化成秒_一分钟短视频文案范文怎么写?短视频文案必爆公式分享(附文案范文模板)...
  6. javafx 教程_JavaFX,Jigsaw项目和JEP 253
  7. java listener 模式_Java和GUI-根据MVC模式,ActionListener属于哪里?
  8. 全球及中国DIN 2353压缩配件行业研究及十四五规划分析报告
  9. sort函数和sorted函数的异同
  10. Acwing语法基础课第六次课-循环判断练习题,连续整数相加,约数,PUM,余数,六个奇数,乘法表,