大家好,我是对白。
今天我们来聊一聊推荐系统中不得不学的Contrastive Learning方法,近年来Contrastive Learning在CV和NLP领域的应用越来越广泛,在推荐系统中当然也不例外。我想大家将对比学习与推荐系统结合主要有以下四个原因:
一、是因为数据的稀疏性。众所周知,在推荐系统中有点击的数据是非常少的,可能系统推荐了十篇文章,用户只点击了一篇文章,因此我们可以通过自监督学习对点击数据进行增强;
二、是因为item的长尾分布。主流商品往往代表了绝大多数用户的需求,而长尾商品往往代表了一小部分用户的个性化需求,若要对用户行为很少的长尾商品进行推荐,也可以通过自监督进行增强;
三、是因为在跨域推荐中若有多个不同的view,可以通过自监督学习融合多个view的信息,而非动态的线性加权,增强网络的表达能力;
四、是因为增加模型的鲁棒性或对抗噪音,可以通过一些例如Mask和Droupout的方法。
那我们今天就一起讨论一下Contrastive Learning在推荐系统中的主流做法和前沿应用。
1.DHCN
论文标题:Self-Supervised Hypergraph Convolutional Networks for Session-based Recommendation
论文方向:会话推荐
论文来源:AAAI2021
论文链接:https://arxiv.org/abs/2012.06852
论文代码:https://github.com/xiaxin1998/DHCN
Session-based recommendation (SBR) 也就是会话推荐主要的任务就是基于目前已有的多个用户物品交互序列,完成 next-item 预测。在这种情况下,用户配置文件不可用,因此从多个用户物品交互序列中提取用户意图嵌入就格外重要。
基于此本文将会话数据建模为超图,提出了一种双通道超图卷积网络DHCN。同时本文为了增强超图建模,创新性地将自监督学习融入到网络训练中,最大化通过 DHCN 中两个通道学习的会话表示之间的互信息,作为改进推荐任务的辅助任务。
超图定义
超图的定义:一条超边 可以连接多个不同的顶点,且对应一个权值 。定义一个包含 个节点和 条超边的超图为 ,可以理解为某个节点涉及哪几条超边,由此可以定义节点的度对角矩阵 (每个节点涉及的超边数)和超边的度对角矩阵 (每条超边连接的节点数)分别为
线图定义
将超图中的每个边(即每个用户的session)看作是一个节点,而任意两个节点之间的边权重看作是这两个用户session的相似度,计算为
构建超图
因为超图定义为超边可以包含多个节点,因此这些节点可以被看作是通过共同的边而互相连接,因此每个用户的session或者超边将构成一个完全子图,且该子图中的边权重都相等(因为共享同一条超边)。而对应的线图则是一个完全图,任意两个节点(session)的边权重说明了这两个用户session的相似程度。
超图卷积
包含多个超图卷积层,用于items-embedding的传播和更新,描述为:涉及同一条超边的两个节点进行消息传递,因此在构建好的超图上就是相邻的两个节点进行传播(因为它们涉及共同的超边,或者共同出现在某个用户的session中):
矩阵表达形式为:
注意上述操作没有涉及序列特征,为此作者引入一个可训练的位置编码矩阵
来体现用户session中items的序列性,将其与item-embedding进行拼接和一个Dense层操作后得到带有序列特征的item-embedding:
其中 为session-embedding,即对每个item-embedding求平均,相当于从用户的浏览记录中获取平均兴趣, 为session中的第 个item的embedding,前半部分是根据平均session和每个item来计算相应item的重要性,进行加权求和后得到能体现出用户兴趣的session-embedding 。相比于直接求平均,加权后得到的能够起到一定程度上的降噪。
预测部分就是常规的训练,计算session-embedding 与每个候选item的相似度,利用 转化为概率,利用交叉熵损失函数进行预测:
自监督学习增强DHCN
超图建模使模型能够实现良好性能。作者认为会话数据的稀疏性可能会阻碍超图建模,这将导致次优推荐性能。受自监督学习在简单图上的成功实践的启发,作者将自监督学习集成到网络中以增强超图建模。利用自监督信号进行学习被视为有利于推荐任务的辅助任务,它分为两个步骤:
创建自监督信号
在DHCN中,通过这两个通道学习两组特定于通道的会话Embedding。由于每个通道编码一个超图,该图只描述由会话诱导的超图的物品级(插入)或会话级(会话间)结构信息,所以两组Embedding对象彼此了解很少,但可以互补。在训练中,两组会话Embedding之间有一个客观映射。简单地说,这两组映射可以成为彼此的基础用于自监督学习,这种一对一的映射被视为标签的增广。如果两个会话Embedding在两个视图中都表示同一个会话,就将这一对标记为 ground-truth,否则将其标记为 negative。
对比学习
通过创建自监督信号,利用互信息最大化原则对两个图得到的表示进行对比,以及对线图卷积得到的embedding使用row-wise and column-wise shuffling后得到负样本,即增大两个角度session-embedding之间的一致性:
最后的损失函数为两部分之和:
总结文本的创新点如下:
为 SBR 任务提出了一种双通道超图卷积网络 DHCN,通过超图建模,可以捕获项目之间的超配对关系和交叉会话信息。
首次将自监督学习学习的概念放入到推荐任务的网络训练中,自监督学习可以加强模型的表达能力和推荐任务的完成效果。
2.MHCN
论文标题: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论文)