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

智能推荐

攻防世界_难度8_happy_puzzle_攻防世界困难模式攻略图文-程序员宅基地

文章浏览阅读645次。这个肯定是末尾的IDAT了,因为IDAT必须要满了才会开始一下个IDAT,这个明显就是末尾的IDAT了。,对应下面的create_head()代码。,对应下面的create_tail()代码。不要考虑爆破,我已经试了一下,太多情况了。题目来源:UNCTF。_攻防世界困难模式攻略图文

达梦数据库的导出(备份)、导入_达梦数据库导入导出-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏10次。偶尔会用到,记录、分享。1. 数据库导出1.1 切换到dmdba用户su - dmdba1.2 进入达梦数据库安装路径的bin目录,执行导库操作  导出语句:./dexp cwy_init/[email protected]:5236 file=cwy_init.dmp log=cwy_init_exp.log 注释:   cwy_init/init_123..._达梦数据库导入导出

js引入kindeditor富文本编辑器的使用_kindeditor.js-程序员宅基地

文章浏览阅读1.9k次。1. 在官网上下载KindEditor文件,可以删掉不需要要到的jsp,asp,asp.net和php文件夹。接着把文件夹放到项目文件目录下。2. 修改html文件,在页面引入js文件:<script type="text/javascript" src="./kindeditor/kindeditor-all.js"></script><script type="text/javascript" src="./kindeditor/lang/zh-CN.js"_kindeditor.js

STM32学习过程记录11——基于STM32G431CBU6硬件SPI+DMA的高效WS2812B控制方法-程序员宅基地

文章浏览阅读2.3k次,点赞6次,收藏14次。SPI的详情简介不必赘述。假设我们通过SPI发送0xAA,我们的数据线就会变为10101010,通过修改不同的内容,即可修改SPI中0和1的持续时间。比如0xF0即为前半周期为高电平,后半周期为低电平的状态。在SPI的通信模式中,CPHA配置会影响该实验,下图展示了不同采样位置的SPI时序图[1]。CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。_stm32g431cbu6

计算机网络-数据链路层_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏8次。数据链路层习题自测问题1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?2.数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。3.网络适配器的作用是什么?网络适配器工作在哪一层?4.数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?5.如果在数据链路层不进行帧定界,会发生什么问题?6.PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输

软件测试工程师移民加拿大_无证移民,未受过软件工程师的教育(第1部分)-程序员宅基地

文章浏览阅读587次。软件测试工程师移民加拿大 无证移民,未受过软件工程师的教育(第1部分) (Undocumented Immigrant With No Education to Software Engineer(Part 1))Before I start, I want you to please bear with me on the way I write, I have very little gen...

随便推点

Thinkpad X250 secure boot failed 启动失败问题解决_安装完系统提示secureboot failure-程序员宅基地

文章浏览阅读304次。Thinkpad X250笔记本电脑,装的是FreeBSD,进入BIOS修改虚拟化配置(其后可能是误设置了安全开机),保存退出后系统无法启动,显示:secure boot failed ,把自己惊出一身冷汗,因为这台笔记本刚好还没开始做备份.....根据错误提示,到bios里面去找相关配置,在Security里面找到了Secure Boot选项,发现果然被设置为Enabled,将其修改为Disabled ,再开机,终于正常启动了。_安装完系统提示secureboot failure

C++如何做字符串分割(5种方法)_c++ 字符串分割-程序员宅基地

文章浏览阅读10w+次,点赞93次,收藏352次。1、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例://借助strtok实现split#include <string.h>#include <stdio.h&_c++ 字符串分割

2013第四届蓝桥杯 C/C++本科A组 真题答案解析_2013年第四届c a组蓝桥杯省赛真题解答-程序员宅基地

文章浏览阅读2.3k次。1 .高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记_2013年第四届c a组蓝桥杯省赛真题解答

基于供需算法优化的核极限学习机(KELM)分类算法-程序员宅基地

文章浏览阅读851次,点赞17次,收藏22次。摘要:本文利用供需算法对核极限学习机(KELM)进行优化,并用于分类。

metasploitable2渗透测试_metasploitable2怎么进入-程序员宅基地

文章浏览阅读1.1k次。一、系统弱密码登录1、在kali上执行命令行telnet 192.168.26.1292、Login和password都输入msfadmin3、登录成功,进入系统4、测试如下:二、MySQL弱密码登录:1、在kali上执行mysql –h 192.168.26.129 –u root2、登录成功,进入MySQL系统3、测试效果:三、PostgreSQL弱密码登录1、在Kali上执行psql -h 192.168.26.129 –U post..._metasploitable2怎么进入

Python学习之路:从入门到精通的指南_python人工智能开发从入门到精通pdf-程序员宅基地

文章浏览阅读257次。本文将为初学者提供Python学习的详细指南,从Python的历史、基础语法和数据类型到面向对象编程、模块和库的使用。通过本文,您将能够掌握Python编程的核心概念,为今后的编程学习和实践打下坚实基础。_python人工智能开发从入门到精通pdf

推荐文章

热门文章

相关标签