推荐系统研究专区

序列推荐:S3-Rec: Self-Supervised Lea

2020-12-31  本文已影响0人  阿瑟_TJRS

前言

引言

经典的序列推荐算法包括CNN-based/RNN-based从用户历史行为序列中挖掘序列模式。这些方法存在着两个主要缺点:

因此,有必要重新考虑学习范式,来实现更有效的序列推荐系统。

Preliminaries

问题定义
时序交互序列:

子序列定义为: 物品i的相关属性定义为: 文中给出序列推荐的定义为: 给出用户历史行为\{i_1,...,i_n\}以及物品的属性集合,预测用户下个可能交互的物品。

Mutual Information Maximization 互信息最大化

具体定义如下: 直接最大化互信息比较麻烦,可以通过计算I(X,Y)的下限来实现,常见的做法是InfoNCE,基于噪声对比估计(NCE)来实现: 对于每对正样例通过分布q(\hat{Y})来采样生成负样本,当\hat{Y}=Y时,InfoNCE可以转换成标准的交叉损失熵形式: 该方程式表明,InfoNCE与最大化pθ(y | x)有关,并且它通过负采样来近似计算Y中元素的总和。基于此公式,我们可以使用特定的X,Y来最大化原始数据的不同视图之间的互信息,例如,一个物品及其属性,一个序列及其所包含的物品。

模型方法

1. 基础模型 Base Model

嵌入层 包含物品嵌入M_I \in \mathbb{R}^{|I| \times d}和属性嵌入M_A \in \mathbb{R}^{|A| \times d}

对于一个序列,可以得到其物品表征矩阵E和的属性编码表征E_A,考虑输入序列的位置E_I=E+P

自注意力模块 通过多头自注意力机制对上面得到的特征矩阵进行处理:

是基本的自注意力机制计算方式,初始化输入为F^0=E_I此后通过前馈网络来引入非线性处理: 在序列推荐中,只能利用当前时间步之前的信息,因此我们对多头自注意函数的输出应用掩码操作,以删除Qi和Ki之间的所有连接。 受BERT的启发,在预训练阶段,我们删除了掩码机制,以获取物品序列中每个物品的双向上下文感知表示。即没有加mask的自注意力,从两个方向合并上下文对于序列表示学习是有益的

预测 得分计算方式如下

取当前序列的最后一个物品的表征作为序列表征

2. Self-supervised Learning with MIM

Modeling Item-Attribute Correlation. 最大化物品和属性间的互信息,对于每个物品,属性都提供其细粒度信息。 因此通过对物品-属性相关性进行建模来融合物品和属性级别的信息。以这种方式,期望将有用的属性信息融入到物品表示中。

根据前面的InfoNCE公式,构建针对物品-属性相关性损失:对于物品i及其属性A_i

通过简单的双线性网络来计算相关性:

Modeling Sequence-Item Correlation

受BERT [1]这样的Mask-LM语言模型的启发,文中通过完形填空(Cloze)任务对物品序列中的双向信息进行建模。 在每个训练步骤中,随机掩盖输入序列中的一部分物品(即,将它们替换为特殊标记“ [mask]”)。 然后,基于两个方向上的上下文从原始序列中预测被mask的物品。 将前面的base model作为预训练模型,利用MIM来计算

Modeling Sequence-Attribute Correlation
进一步融合序列上下文和物品属性信息,同样通过掩码的方式来实现:

现有方法很少直接对序列上下文和属性信息之间的相关性进行建模。 同时,我们想通过对相关性进行显式建模,构建出更有价值的监督信号,这对于改善多粒度信息的数据表征很有用。

Modeling Sequence-Segment Correlation.
完形填空策略在预训练方法中将序列上下文与目标信息融合在一起。但是,物品序列与单词序列之间的主要区别在于单个物品项目可能与周围环境没有高度关联。例如,用户仅仅因为某些产品就在购买中而购买了它们。 基于此考虑,我们将Cloze策略从单个物品扩展到物品子序列。显然,这样比单个物品反映出更清晰,更稳定的用户偏好。

具体loss形式与上面相近:

\tilde{i}_{j_1,j_2}表示打乱的负子序列

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

上一篇下一篇

猜你喜欢

热点阅读