前言
- CIKM2020长文,美团点评团队工作
- 面向序列推荐任务,利用自监督学习的方法构建推荐模型
- 序列推荐与前面所读的session-based rec有一定相似性,本质上都是挖掘用户一段时间内的动态短期兴趣。学术界目前并没有一个特别严格的定义和区分。
- 现有的神经网络模型利用预测损失来学习模型参数或者嵌入表征;训练有这种损失的模型很容易受数据稀疏性影响,因为它过分强调了最终性能,因此上下文数据和序列数据之间的关联或融合一直不太好捕捉并用于序列推荐。
- 为了解决这个问题,文章提出了S3-Rec,表示针对基于自注意力机制的序列推荐的使用自监督学习。主要思想是利用原有数据的相关性来构建自监督信号,并通过预训练方法来增强数据表示,以改善序列推荐。
- 设计了四个辅助的自监督目标,以利用互信息最大化(MIM)原理来学习属性,物品,子序列和序列之间的相关性。MIM提供了一种统一的方法来表征不同类型的数据之间的相关性,这在本文中特别适用。
引言
经典的序列推荐算法包括CNN-based/RNN-based从用户历史行为序列中挖掘序列模式。这些方法存在着两个主要缺点:
-
主要依靠物品预测损失来学习整个模型。利用上下文数据后,还可以通过唯一的优化目标来学习所涉及的参数。 这种优化方式容易遭受诸如数据稀疏性之类的问题的困扰。
-
其次,过分强调最终性能,而上下文数据和序列数据之间的关联或融合尚未在数据表示中很好地捕获。越来越多的证据所示,有效的数据表示(例如,预训练的上下文嵌入)已成为提高现有模型或体系结构性能的关键因素。
因此,有必要重新考虑学习范式,来实现更有效的序列推荐系统。
Preliminaries
问题定义
时序交互序列:
Mutual Information Maximization 互信息最大化
具体定义如下: 直接最大化互信息比较麻烦,可以通过计算I(X,Y)的下限来实现,常见的做法是InfoNCE,基于噪声对比估计(NCE)来实现: 对于每对正样例通过分布来采样生成负样本,当时,InfoNCE可以转换成标准的交叉损失熵形式: 该方程式表明,InfoNCE与最大化pθ(y | x)有关,并且它通过负采样来近似计算Y中元素的总和。基于此公式,我们可以使用特定的X,Y来最大化原始数据的不同视图之间的互信息,例如,一个物品及其属性,一个序列及其所包含的物品。模型方法
1. 基础模型 Base Model
嵌入层 包含物品嵌入和属性嵌入:
对于一个序列,可以得到其物品表征矩阵和的属性编码表征,考虑输入序列的位置
自注意力模块 通过多头自注意力机制对上面得到的特征矩阵进行处理:
是基本的自注意力机制计算方式,初始化输入为此后通过前馈网络来引入非线性处理: 在序列推荐中,只能利用当前时间步之前的信息,因此我们对多头自注意函数的输出应用掩码操作,以删除Qi和Ki之间的所有连接。 受BERT的启发,在预训练阶段,我们删除了掩码机制,以获取物品序列中每个物品的双向上下文感知表示。即没有加mask的自注意力,从两个方向合并上下文对于序列表示学习是有益的预测 得分计算方式如下
取当前序列的最后一个物品的表征作为序列表征2. Self-supervised Learning with MIM
Modeling Item-Attribute Correlation. 最大化物品和属性间的互信息,对于每个物品,属性都提供其细粒度信息。 因此通过对物品-属性相关性进行建模来融合物品和属性级别的信息。以这种方式,期望将有用的属性信息融入到物品表示中。
根据前面的InfoNCE公式,构建针对物品-属性相关性损失:对于物品及其属性
通过简单的双线性网络来计算相关性:Modeling Sequence-Item Correlation
Modeling Sequence-Attribute Correlation
进一步融合序列上下文和物品属性信息,同样通过掩码的方式来实现:
Modeling Sequence-Segment Correlation.
完形填空策略在预训练方法中将序列上下文与目标信息融合在一起。但是,物品序列与单词序列之间的主要区别在于单个物品项目可能与周围环境没有高度关联。例如,用户仅仅因为某些产品就在购买中而购买了它们。 基于此考虑,我们将Cloze策略从单个物品扩展到物品子序列。显然,这样比单个物品反映出更清晰,更稳定的用户偏好。
具体loss形式与上面相近:
表示打乱的负子序列3. 模型训练
模型训练包括预训练和微调两个阶段,预训练过程中利用上面的4个Loss即4个子任务通过无掩码的自注意力机制进行训练,得到高质量的物品表征和属性表征。
微调阶段,则利用单向Transformer来构建表征,通过pairwise loss来训练模型:4. Discussion
这篇工作提供了一种新颖的自监督方法,可以通过预训练模型从输入中捕获固有数据相关性,并将其作为附加信号。这种方法非常通用,因此许多现有方法都可以包含在此框架中。
基于特征的方法(例如,分解机和AutoInt)主要通过上下文特征的交互来学习数据表示。根据用户和商品特征之间的实际交互结果做出最终预测。在S3-Rec中,没有明确建模属性之间的交互。相反,我们专注于捕获属性信息与项目/顺序上下文之间的关联。我们工作的主要区别在于将特征交互作为附加的监督信号来增强数据表示,而不是进行预测。
诸如GRU4Rec和SASRec之类的序列模型主要集中于对上下文物品和目标物品之间的顺序依赖性进行从左到右的建模。 S3-Rec还包含一个预训练阶段,该阶段利用四种不同类型的自我监督学习信号来增强数据表示。特别地,上面通过掩码物品来预测损失与捕获顺序依存关系具有相似的效果,除了它还可以利用双向顺序信息。
实验情况
总体对比R3-Rec提升显著: 消融实验:小结
本文提出了利用自监督学习来提升序列推荐的R3-Rec,设计了四种自监督任务,通过MIM最大化互信息的方式来进行自监督训练,辅助构建高质量的物品/属性嵌入。在模型训练上为后续研究提供了新思路,MIM的使用也值得借鉴,总体是一篇值得多读的好论文。
END
本人简书所有文章均为原创,欢迎转载,请注明文章出处 。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问本人简书主页查看最新信息https://www.jianshu.com/u/40d14973d97c
网友评论