推荐系统中不得不学的对比学习(Contrastive Learning)方法(一)

简介: 推荐系统中不得不学的对比学习(Contrastive Learning)方法(一)

大家好,我是对白。


今天我们来聊一聊推荐系统中不得不学的Contrastive Learning方法,近年来Contrastive Learning在CV和NLP领域的应用越来越广泛,在推荐系统中当然也不例外。我想大家将对比学习与推荐系统结合主要有以下四个原因:


一、是因为数据的稀疏性。众所周知,在推荐系统中有点击的数据是非常少的,可能系统推荐了十篇文章,用户只点击了一篇文章,因此我们可以通过自监督学习对点击数据进行增强;


二、是因为item的长尾分布。主流商品往往代表了绝大多数用户的需求,而长尾商品往往代表了一小部分用户的个性化需求,若要对用户行为很少的长尾商品进行推荐,也可以通过自监督进行增强;


三、是因为在跨域推荐中若有多个不同的view,可以通过自监督学习融合多个view的信息,而非动态的线性加权,增强网络的表达能力;


四、是因为增加模型的鲁棒性或对抗噪音,可以通过一些例如Mask和Droupout的方法。


那我们今天就一起讨论一下Contrastive Learning在推荐系统中的主流做法和前沿应用。


1.DHCN


1.png


论文标题:Self-Supervised Hypergraph Convolutional Networks for Session-based Recommendation


论文方向:会话推荐


论文来源:AAAI2021


论文链接:https://arxiv.org/abs/2012.06852


论文代码:https://github.com/xiaxin1998/DHCN


2.png


Session-based recommendation (SBR) 也就是会话推荐主要的任务就是基于目前已有的多个用户物品交互序列,完成 next-item 预测。在这种情况下,用户配置文件不可用,因此从多个用户物品交互序列中提取用户意图嵌入就格外重要。


基于此本文将会话数据建模为超图,提出了一种双通道超图卷积网络DHCN。同时本文为了增强超图建模,创新性地将自监督学习融入到网络训练中,最大化通过 DHCN 中两个通道学习的会话表示之间的互信息,作为改进推荐任务的辅助任务。


超图定义


超图的定义:一条超边 可以连接多个不同的顶点,且对应一个权值 。定义一个包含 个节点和 条超边的超图为 ,可以理解为某个节点涉及哪几条超边,由此可以定义节点的度对角矩阵 (每个节点涉及的超边数)和超边的度对角矩阵 (每条超边连接的节点数)分别为


线图定义


将超图中的每个边(即每个用户的session)看作是一个节点,而任意两个节点之间的边权重看作是这两个用户session的相似度,计算为


3.png


构建超图


因为超图定义为超边可以包含多个节点,因此这些节点可以被看作是通过共同的边而互相连接,因此每个用户的session或者超边将构成一个完全子图,且该子图中的边权重都相等(因为共享同一条超边)。而对应的线图则是一个完全图,任意两个节点(session)的边权重说明了这两个用户session的相似程度。


超图卷积


包含多个超图卷积层,用于items-embedding的传播和更新,描述为:涉及同一条超边的两个节点进行消息传递,因此在构建好的超图上就是相邻的两个节点进行传播(因为它们涉及共同的超边,或者共同出现在某个用户的session中):


4.png


矩阵表达形式为:


5.png


注意上述操作没有涉及序列特征,为此作者引入一个可训练的位置编码矩阵


来体现用户session中items的序列性,将其与item-embedding进行拼接和一个Dense层操作后得到带有序列特征的item-embedding:


6.png


其中 为session-embedding,即对每个item-embedding求平均,相当于从用户的浏览记录中获取平均兴趣, 为session中的第 个item的embedding,前半部分是根据平均session和每个item来计算相应item的重要性,进行加权求和后得到能体现出用户兴趣的session-embedding 。相比于直接求平均,加权后得到的能够起到一定程度上的降噪。


预测部分就是常规的训练,计算session-embedding 与每个候选item的相似度,利用 转化为概率,利用交叉熵损失函数进行预测:



7.png8.png9.png


自监督学习增强DHCN


超图建模使模型能够实现良好性能。作者认为会话数据的稀疏性可能会阻碍超图建模,这将导致次优推荐性能。受自监督学习在简单图上的成功实践的启发,作者将自监督学习集成到网络中以增强超图建模。利用自监督信号进行学习被视为有利于推荐任务的辅助任务,它分为两个步骤:


创建自监督信号


在DHCN中,通过这两个通道学习两组特定于通道的会话Embedding。由于每个通道编码一个超图,该图只描述由会话诱导的超图的物品级(插入)或会话级(会话间)结构信息,所以两组Embedding对象彼此了解很少,但可以互补。在训练中,两组会话Embedding之间有一个客观映射。简单地说,这两组映射可以成为彼此的基础用于自监督学习,这种一对一的映射被视为标签的增广。如果两个会话Embedding在两个视图中都表示同一个会话,就将这一对标记为 ground-truth,否则将其标记为 negative。


对比学习


通过创建自监督信号,利用互信息最大化原则对两个图得到的表示进行对比,以及对线图卷积得到的embedding使用row-wise and column-wise shuffling后得到负样本,即增大两个角度session-embedding之间的一致性:


10.png


最后的损失函数为两部分之和:


11.png


总结文本的创新点如下:


为 SBR 任务提出了一种双通道超图卷积网络 DHCN,通过超图建模,可以捕获项目之间的超配对关系和交叉会话信息。


首次将自监督学习学习的概念放入到推荐任务的网络训练中,自监督学习可以加强模型的表达能力和推荐任务的完成效果。


2.MHCN


12.png


论文标题:Self-Supervised Multi-Channel Hypergraph Convolutional Network for Social Recommendation


论文方向:社交推荐


论文来源:WWW2021


论文链接:https://arxiv.org/abs/2101.06448


论文代码:https://github.com/Coder-Yu/QRec


在推荐系统中,当用户-物品交互数据比较稀疏时,通常使用社交关系来提高推荐质量。大多数现有的社交推荐模型利用成对关系来挖掘潜在的用户偏好。然而,现实生活中用户之间的互动非常复杂,用户关系可能是高阶的。超图提供了一种自然的方法来建模复杂的高阶关系,而它在改善社交推荐方面的潜力还有待开发。


在本文中,作者提出了一个多通道超图卷积网络(MHCN),利用高阶用户关系来增强社交推荐。从技术上讲,网络中的每个通道都通过超图卷积来编码一个超图,该超图描绘了一个常见的高阶用户关系模式。通过聚合多个通道学习到的Embedding,可以得到全面的用户表示,从而生成推荐结果。


然而,聚合操作也可能掩盖不同类型的高阶连接信息的固有特征。为了弥补聚合损失,作者将自监督学习融入超图卷积网络的训练中,以获得层次互信息最大化的连通性信息。


现有的自监督学习(SSL)方法主要用于训练来自人工平衡数据集(如ImageNet)的表示模型。目前还不清楚它们在实际情况下的表现如何,在实际情况下,数据集经常是不平衡的。基于这个问题,作者在训练实例分布从均匀分布到长尾分布的多个数据集上,对自监督对比学习和监督学习方法的性能进行了一系列的研究。作者发现与具有较大性能下降的监督学习方法不同的是,自监督对比学习方法即使在数据集严重不平衡的情况下也能保持稳定的学习性能。


社交推荐系统中常见的高阶用户关系类型(引自MHCN论文)


相关文章
|
10月前
|
机器学习/深度学习 人工智能 移动开发
人工智能领域:面试常见问题超全(深度学习基础、卷积模型、对抗神经网络、预训练模型、计算机视觉、自然语言处理、推荐系统、模型压缩、强化学习、元学习)
人工智能领域:面试常见问题超全(深度学习基础、卷积模型、对抗神经网络、预训练模型、计算机视觉、自然语言处理、推荐系统、模型压缩、强化学习、元学习)
|
10月前
|
搜索推荐 安全 关系型数据库
基于知识图谱的个性化学习资源推荐系统的设计与实现(论文+源码)_kaic
最近几年来,伴随着教育信息化、个性化教育和K12之类的新观念提出,一如既往的教育方法向信息化智能化的转变,学生群体都对这种不受时间和地点约束的学习方式有浓厚的兴趣。而现在市面上存在的推荐系统给学生推荐资料时不符合学生个人对知识获取的需求情况,以至于推荐效果差强人意。与此同时,这种信息数字化的新学习方法在给学生群体带来方便的同时,也带来了很多其他的问题,例如信息冗杂、形式让人眼花缭乱的问题,导致系统检索变得难以运行。 解决问题的关键是个性化学习推荐系统,它适合于各式各样的用户产生的各式各样的需求。
|
11月前
|
人工智能 搜索推荐 算法
AAAI 2023杰出论文一作分享:新算法加持的大批量学习加速推荐系统训练
AAAI 2023杰出论文一作分享:新算法加持的大批量学习加速推荐系统训练
225 0
|
机器学习/深度学习 人工智能 搜索推荐
推荐系统:ARL(关联规则学习)
一家公司的产品内容一般都是非常丰富的,但用户的兴趣往往会针对整个内容集进行筛选,挑选出用户感兴趣的产品,筛选的规则因人而异。为了让用户不迷失在丰富的产品集群中,并根据兴趣领域达到所需的个性化服务,一般都会制作各种过滤器。这些过滤器和算法显示就是我们的“推荐系统”。
144 0
|
自然语言处理 搜索推荐 计算机视觉
推荐系统中不得不学的对比学习(Contrastive Learning)方法(三)
推荐系统中不得不学的对比学习(Contrastive Learning)方法(三)
375 0
推荐系统中不得不学的对比学习(Contrastive Learning)方法(三)
|
机器学习/深度学习 自然语言处理 搜索推荐
推荐系统[八]算法实践总结V2:排序学习框架(特征提取标签获取方式)以及京东推荐算法精排技术实战
推荐系统[八]算法实践总结V2:排序学习框架(特征提取标签获取方式)以及京东推荐算法精排技术实战
推荐系统[八]算法实践总结V2:排序学习框架(特征提取标签获取方式)以及京东推荐算法精排技术实战
|
机器学习/深度学习 人工智能 搜索推荐
Google提出用对比学习解决推荐系统长尾问题
Google提出用对比学习解决推荐系统长尾问题
788 0
Google提出用对比学习解决推荐系统长尾问题
|
机器学习/深度学习 搜索推荐 索引
推荐系统中不得不学的对比学习(Contrastive Learning)方法(二)
推荐系统中不得不学的对比学习(Contrastive Learning)方法(二)
653 0
推荐系统中不得不学的对比学习(Contrastive Learning)方法(二)
|
机器学习/深度学习 存储 人工智能
Python之GUI:基于Python的GUI界面设计的一套AI课程学习(机器学习、深度学习、大数据、云计算等)推荐系统(包括语音生成、识别等前沿黑科技)
Python之GUI:基于Python的GUI界面设计的一套AI课程学习(机器学习、深度学习、大数据、云计算等)推荐系统(包括语音生成、识别等前沿黑科技)
Python之GUI:基于Python的GUI界面设计的一套AI课程学习(机器学习、深度学习、大数据、云计算等)推荐系统(包括语音生成、识别等前沿黑科技)
|
5月前
|
搜索推荐 算法 前端开发
旅游管理与推荐系统Python+Django网页平台+协同过滤推荐算法
旅游管理与推荐系统Python+Django网页平台+协同过滤推荐算法
147 0