CLSR:Contrastive Learning Based Graph Convolution Network forSocial Recommendation_cross-view temporal graph contrastive learning for-程序员宅基地

技术标签: 机器学习  深度学习  人工智能  神经网络  推荐算法  

一、概述

《Contrastive Learning Based Graph Convolution Network for Social Recommendation》该论文主要介绍了一种用于社交推荐的对比学习方法。当前的社交推荐模型通常关注建模多图结构,并从这些多图中汇集信息以学习用户的偏好。然而,这些方法往往使用复杂的模型和冗余的参数来获得轻微的性能改进。因此,本文提出了一种集成社交图和交互图信息的对比学习方法,通过对用户嵌入进行融合来获取更精细的用户表示。同时,引入了对比学习框架,通过数据增强构建对比学习的正负样本。实验证明了该方法的优越性。

该论文的关键词包括对比学习、图卷积网络、社交推荐和嵌入增强。论文通过实验证明了所提出方法的有效性,并与其他图增强模型进行了比较。该论文的研究对于改进社交推荐系统的性能具有重要意义。

总体而言,这篇论文介绍了一种基于对比学习的图卷积网络方法,用于改进社交推荐系统的性能。通过融合社交图和交互图信息,并利用对比学习框架进行数据增强,该方法能够更好地学习用户的偏好。实验证明了该方法在社交推荐任务上的优越性能。

二、引言

2.1 基于GCN的推荐系统

这段文本总结了基于GCN的推荐系统存在的问题以及针对这些问题的改进方法。首先,GCN-based推荐系统面临着监督数据稀疏、长尾分布和交互噪声等问题。为了解决这些问题,最近的研究开始利用社交网络和对比学习进行改进。

社交网络中的用户通常基于兴趣关注其他用户,因此社交网络可以提供稀疏信号来辅助推荐系统。然而,现有的方法在利用社交网络时效果有限,因此需要更加方便和有效的方式来利用社交网络。

另一个问题是如何有效地整合来自不同图的用户嵌入。最初的实验中,分别在社交图和交互图中传播用户嵌入,但发现嵌入之间存在较大差异,进一步的组合效果有限。为了解决这个问题,改进方法将用户嵌入先在交互图中传播,然后在社交图中传播,以减小嵌入之间的语义差距。

综上所述,改进方法采用融合简化的方式处理社交网络和交互图,利用社交影响来辅助挖掘用户兴趣。实验证明了这种方法的有效性,并为进一步研究提供了新的思路和理论基础。

2.2 SSL

自监督学习(SSL)在推荐系统中的应用,并重点讨论了图对比学习。它指出SSL可以改善推荐质量,并介绍了社交推荐模型中的图对比学习任务的两个主要组成部分:图增强和对比学习。然而,对于图增强对推荐性能的影响尚不确定。因此,研究者提出了嵌入增强的方法作为对比学习的替代方案。他们通过引入随机屏蔽和随机噪声的嵌入增强方法,扩大了节点嵌入的变化范围。在此基础上,提出了一种基于对比学习的图卷积网络(CLSR),它简化了复杂的图结构建模,并通过嵌入增强改善了对比学习性能。实验证明,CLSR在推荐任务中的表现优于其他图增强模型。嵌入增强相比图增强具有更低的计算消耗和更好的稳定性。该研究的主要贡献是提出了一个简化的基于GCN的社交推荐表示学习框架,并探索了嵌入增强方法在对比学习中的应用。他们通过实验证明了CLSR的优越性,并验证了其每个组成部分的有效性。

三、本文所提出的框架

在这部分中介绍了CLSR模型的两个部分:对比学习框架和融合简化GCN模型。

对比学习框架旨在改善推荐系统中的数据稀疏性问题,并通过构建不同的图扩充结构来挖掘信号。融合简化GCN模型用于学习表示,它通过图卷积网络将高阶邻居信息和社交图与交互图相结合。对比学习被应用于该模型,以提高推荐结果。整体而言,CLSR模型提供了一种综合的方法来解决社交推荐问题。

3.1 Fusion-Simplified GCN-Based Representation Learning 基于融合简化GCN的表示学习

首先,详细说明了提出的基于融合简化GCN的表示学习模型中的消息传递过程。该过程通过利用全局交互和社交网络来改进e(0)u和e(0)i。它以一种简单而合理的方式融合了两个图,并且可以通过灵活控制社交网络的影响来减轻数据稀疏性问题,如图2所示。

在该模型中,消息传递的过程如下:
1. 首先,通过将用户嵌入和物品嵌入与社交网络图和交互图相连接,将初始嵌入e(0)u和e(0)i输入到GCN层。
2. 在GCN层中,每个节点通过聚合其邻居节点的信息来更新其表示。这是通过将每个节点的邻居嵌入进行加权平均来实现的,权重由GCN中的学习参数确定。
3. 然后,经过多个GCN层的迭代,节点的表示逐渐被更新和改进,从而捕捉到更丰富的信息。
4. 最后,经过消息传递过程后,得到经过改进的用户嵌入e(u)和物品嵌入e(i),这些嵌入包含了来自社交网络和交互图的信息。

这种融合简化的GCN模型通过在消息传递过程中整合不同图的信息,提供了一种有效的方式来学习用户和物品的表示,从而改善了社交推荐的性能。同时,通过灵活控制社交网络的影响,它还可以减轻数据稀疏性的问题。

3.1.1 Embedding Initialization 嵌入初始化

在这部分中,介绍了嵌入初始化的步骤。对于每个用户和物品的嵌入,将嵌入大小设置为64,并且这些初始嵌入(e(0)_u、e(0)_i)是CLSR模型中唯一可训练的参数。在优化嵌入时,考虑了对齐性和均匀性。

对齐性指的是希望相似的用户(或物品)之间的嵌入更加相似,并且对应的嵌入在空间上距离更近。

均匀性则追求相似嵌入之间的空间分布尽可能均匀,以便每个实例的嵌入可以保留更多的个性化信息。这些初始嵌入的合理初始化对于后续的表示学习和推荐性能非常重要。

3.1.2 Propagation and Aggregation of Interaction Graph 交互图的传播和聚合

在这部分中,介绍了交互图的传播和聚合步骤。对于每一层,我们使用用户-物品图进行嵌入传播,并从不同级别的邻居中聚合信息。传播过程通过对邻居嵌入进行加权平均来更新用户和物品的嵌入。为了防止受到极端节点的影响,我们使用对称标准化项来调整权重。通过这种方式,我们可以从交互图中提取用户的潜在兴趣,并且在传播过程中考虑到了邻居节点的影响。这个步骤对于捕捉用户和物品之间的关联关系非常重要,并为后续的表示学习和推荐性能提供了基础。

3.1.3  Propagation and Aggregation of Social Graph 社交图的传播和聚合

在这部分中,介绍了社交图的传播和聚合步骤。利用社交图进一步探索用户之间的潜在关联。在用户嵌入已经在交互图上传播的基础上,使用图卷积网络在用户-用户图上进行传播和聚合。

传播过程中,用户从其关注的用户集合中聚合信息,并利用交互图中已经聚合的其他嵌入来更新用户的嵌入。通过这种方式,可以从社交图中找到用户之间的共同兴趣。这个步骤有助于提高模型对用户之间关系的建模能力,并为个性化推荐提供更全面的信息。

3.1.4 Integration of Two Graph  两个图的整合(社交图和交互图)

在这部分中,介绍了将社交图和交互图进行整合的步骤。关键问题是如何将社交影响和互动行为相结合。使用超参数α来控制不同图的贡献,α评估了社交图中用户嵌入在构成最终用户嵌入中的重要性。通过整合两个图,可以得到用户的更新嵌入,这是社交影响和历史行为的组合。

通过迭代图卷积网络,可以结合不同的层来挖掘高阶邻居之间的深层关系。这样的整合步骤可以提高模型对用户的建模能力,综合考虑了用户的社交影响和互动行为,提供了更全面和准确的用户嵌入表示。这对于个性化推荐非常重要,可以更好地理解用户的兴趣和行为,并提供更精确的推荐结果。

3.1.5 Output Layer 输出层

在这部分中,介绍了输出层的操作。通过迭代多个层,可以得到每个用户(物品)的多个嵌入。为了得到最终的用户(物品)嵌入,对这些嵌入进行平均池化操作。具体而言,将所有层的嵌入进行平均,得到每个用户(物品)的最终嵌入表示。

需要注意的是,在进行平均池化之前,通常会忽略初始嵌入层,因为发现将初始嵌入层与后续层结合会降低性能。这可能是因为邻居嵌入蕴含了更多可学习的信息,其中包括图结构的重要信息。

通过输出层的操作,将多个层的嵌入进行整合,得到每个用户(物品)的最终嵌入表示。在CLSR中,我们发现均值池化的效果更好,但也可以尝试其他聚合操作,如拼接和最大池化。

输出层的操作有助于减少噪声和不稳定性,提供更稳定和可靠的用户(物品)表示。这为进一步的推荐和个性化任务提供了更好的基础。

3.2 Enhancing Robustness with Contrastive Learning 用对比学习增强鲁棒性

这节介绍了如何应用对比学习来优化主要的监督推荐任务。具体而言,说明了如何执行嵌入增强,以生成每个节点的配对增强表示。接下来,基于生成的表示,建立对比学习任务。CLSR的对比学习框架如图1所示。它展示了嵌入增强的过程以及多任务损失的计算过程。

在对比学习中,通过生成增强的嵌入表示来扩充原始嵌入,以获得更丰富和多样化的表示。这可以通过应用不同的数据增强方法,如噪声添加、剪切、平移等来实现。通过生成配对的增强表示,可以构建对比学习任务,其中目标是将相似的样本靠近,将不相似的样本远离。这样的对比学习框架可以帮助模型学习更具区分性的表示,从而提高推荐任务的性能。

图1展示了CLSR的对比学习框架,其中包括嵌入增强和多任务损失的计算。嵌入增强生成配对的增强表示,而多任务损失则用于优化对比学习任务。通过这个框架,CLSR可以通过对比学习来提高推荐模型的表达能力和性能。

3.2.1 Data Augmentation on Embedding 嵌入时的数据扩充

在这部分中,介绍了两种嵌入增强方法,用于对嵌入进行扰动以进行对比学习。第一种方法是随机掩码(Random Masking),通过随机掩盖嵌入中的部分数值来生成增强表示。第二种方法是随机噪声(Random Noise),通过添加噪声到整个嵌入值来生成增强表示。

随机掩码方法通过在不同维度上随机掩盖节点的嵌入数值,生成配对的不同增强嵌入。这样的操作增加了嵌入的鲁棒性,使其更具区分能力。

随机噪声方法不仅仅关注于对嵌入的部分表示进行掩盖,而是通过在整个嵌入值上添加噪声来生成增强表示。噪声添加在相反的方向上略微拉伸和偏移两个增强的嵌入,以增加投影空间的线性可分性。

这些嵌入增强方法可以生成配对的增强表示,用于对比学习任务。对比学习框架有助于提高模型对相似性和差异性的学习能力,从而提高推荐任务的性能。

3.2.2 Contrastive Learning 对比学习

在对比学习(Contrastive Learning)中,对嵌入进行数据增强,生成配对的增强嵌入。

通过将配对嵌入视为正样本对,将其他节点的嵌入视为负样本对,应用对比损失函数(InfoNCE)来增加正样本对的相似性并减小负样本对的相似性。

具体地,在不同的层次上对嵌入进行数据增强,并计算出两个增强嵌入(1e和2e)。

然后,使用余弦相似度函数来度量嵌入之间的相似性。通过定义一个温度参数(τ),可以控制对比损失函数在关注困难负样本上的程度。

对比学习任务的损失由用户端的对比损失(L_user_cl)和物品端的对比损失(L_item_cl)组成。最终的对比损失函数(L_cl)是两者的和。通过最小化对比损失,可以训练模型,提高正样本对的相似性,降低负样本对的相似性,进而改善推荐任务的性能。

3.2.3 Multi-Task Training 多任务训练

在多任务训练中,将对比学习任务与推荐任务结合起来,形成一个联合损失函数。该联合损失函数由推荐任务的损失函数(L_main)和对比学习任务的损失函数(L_cl)组成,通过调节权重参数 β 控制辅助对比学习任务的影响。

通过最小化联合损失函数,可以同时优化推荐任务和对比学习任务,从而提高推荐系统的性能。对比学习任务的引入可以增强模型对用户和物品之间关系的建模能力,利用嵌入增强和相似性学习的优势。

需要注意的是,权重参数 β 的选择可以根据具体情况进行调整,以平衡推荐任务和对比学习任务之间的权衡关系。

综上所述,多任务训练将推荐任务和对比学习任务结合起来,通过联合损失函数优化两个任务,从而提升推荐系统的性能。

四、总结

本文首先提出了一种融合简化的方法来建模社交图和交互图,以保持轻量级和高效的图卷积网络。我们的实验证明,来自社交网络的少量辅助信息可以提高推荐性能。接下来,、探索了基于嵌入增强的对比学习的可行性。提出了两种对节点嵌入进行数据增强的方法用于对比学习。辅助对比学习任务通过融合简化模型明显提高了推荐性能。大量的实验证明了CLSR优于其他基于图增强的社交推荐模型,全面的消融研究验证了CLSR各个组成部分的合理性。

在结论部分,将对比学习任务与推荐任务进行多任务训练,以增强推荐性能。通过联合损失函数(L_joint = L_main + βL_cl),我们同时优化推荐任务和对比学习任务。实验证明,辅助对比学习任务可显著提高推荐性能,并且CLSR模型在基于图增强的社交推荐模型中表现出色。通过全面的消融研究,我们验证了CLSR各个组成部分的合理性。

这项工作的贡献包括提出了一种融合简化的方法来处理社交图和交互图,探索了对比学习的可行性,并在推荐系统中应用了对比学习任务。实验结果验证了该方法的优越性,并为进一步研究提供了理论基础。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_56321960/article/details/135447030

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法