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

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签