近年来,许多在线平台(如亚马逊和淘宝网)的推荐都取得了巨大成功,但是他们主要依靠“下一个物品推荐”(Next Item Prediction)损失函数来学习整个模型。在使用上下文信息时,也仍然只使用这一个优化目标。
已有研究表明,这种优化方法很容易受到数据稀疏性等问题的影响。此外,它们过分强调最终的推荐性能,而上下文数据和序列数据之间的关联或融合却没有在数据表示中被很好地捕获。
对于以上问题,本文提出了一种基于自监督学习方法的序列推荐模型,并在六个数据集上都取得了很好的效果。
论文标题:
《S3-Rec: Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization》
论文来源:ACM CIKM 2020
论文链接:https://arxiv.org/abs/2008.07873
代码链接:https://github.com/RUCAIBox/CIKM2020-S3Rec

1
引言

近年来,许多在线平台(如亚马逊和淘宝网)都取得了巨大成功。在线平台上的用户行为是动态变化的,且会随着时间而发展。序列推荐的主要目标就是从用户历史行为中捕捉关键的信息,并基于此准确表征用户兴趣进而提供高质量的推荐[1,2,3]。
已有研究人员基于深度学习提出很多序列推荐的模型,此外还有研究人员结合丰富的上下文信息(如商品属性)一起进行用户兴趣建模,实验表明,上下文信息对于提高推荐效果很重要。
尽管现有方法在一定程度上已被证明有效,但它们有两个可能会影响推荐效果的缺陷。
首先,他们主要依靠“下一个物品推荐”(Next Item Prediction)损失函数来学习整个模型。在使用上下文信息时,也仍然只使用这一个优化目标。已有研究表明,这种优化方法很容易受到数据稀疏性等问题的影响。
此外,它们过分强调最终的推荐性能,而上下文数据和序列数据之间的关联或融合却没有在数据表示中被很好地捕获。
多个领域的实验结果表明[4,5,6],更有效的数据表示方法(例如,预先训练的上下文信息嵌入)已成为改善现有模型或体系结构性能的关键因素。因此,有必要重新考虑学习范式并开发更有效的序列推荐系统。
为了解决上述问题,我们借鉴了自监督学习的思想来改进序列推荐的方法。自监督学习是一个新兴的学习范式,旨在让模型从原始数据的内在结构中学习。自监督学习的一般框架是首先从原始数据中构建新的监督信号,然后通过这些额外设计的优化目标来对模型进行预训练。如之前讨论的,有限的监督信号和低效的数据表示是现有的神经序列推荐方法的两个主要问题。
幸运的是,自监督学习似乎为解决这两个问题提供了解决方案:它通过内在数据相关性来设计辅助训练目标以提供丰富的自监督信号,并通过预训练的方法增强数据表示。对于序列推荐,上下文信息以不同的形式存在,包括物品,属性,子序列和序列。开发统一表征这种数据相关性的方法并不容易。
对于这个问题,我们借鉴最近提出的互信息最大化(Mutual Information Maximization, MIM)方法,其已被证明可以有效捕获原始输入的不同视图(或部分)之间的相关性。
基于以上,我们提出了一种基于自监督学习方法的序列推荐模型(Self-Supervised Learning Sequential Recommendation, S3-Rec)
基于自注意力机制的体系结构[3],我们首先使用设计的自监督训练目标对模型进行预训练,然后根据推荐任务对模型进行微调。此工作的主要新颖之处在预训练阶段,我们基于MIM的统一形式精心设计了四个自监督的优化目标,分别用于捕获物品-属性间,序列-物品间,序列-属性间和序列-子序列间的相关性。因此,S3-Rec能够以统一的方式来表征不同粒度级别或不同形式数据之间的相关性,并且也可以灵活地适应新的数据类型或关联模式。通过这样的预训练方法,我们可以有效地融合各种上下文数据,并学习属性感知的上下文化的数据表示。最后,将学习到的表示输入推荐模型,并根据推荐任务对其进行优化。
为了验证S3-Rec的有效性,我们在6个不同领域的真实数据集上进行了充分的实验。实验结果表明,S3-Rec超过了目前的SOTA,并且在训练数据非常有限的情况表现得尤为明显。另外S3-Rec还可以有效得适应其他类别的神经体系结构,例如GRU[1]和CNN[2]。
我们的主要贡献概括如下:
1、据我们所知,这是首次采用MIM进行自监督学习来改善序列推荐任务的工作;
2、我们提出了4个自监督优化目标来最大化不同形式或粒度的上下文信息的互信息;
3、在6个数据集上的充分实验证明了我们方法的有效性。

2
方法

2.1 基础模型
我们的基础模型由嵌入层,自注意力层和推荐层构成。
(1)嵌入层包括item embedding,attribute embedding和position embedding。基础模型的输入由序列的item embedding和position embedding求和得到:
(2)自注意力层由一个多头自注意力子层和前馈全连接子层构成。
多头自注意力子层为:
前馈全连接子层为:
(3)推荐层根据自注意力层在 t 时刻的输出预测 t+1 时刻可能交互的物品。
2.2 任务定义
给定一个用户的历史交互序列 
,和每一个物品的属性 
,其中n是交互个数,序列推荐的目标是基于这些信息推荐用户下一个可能交互的物品。此外,我们使用 
 来表示一个子序列。
2.3 自监督学习
我们设计了4种不同的自监督学习目标来建模不同粒度的信息联系。
1)建模物品-属性间的联系。对于每一个物品,属性提供了其更小粒度的信息,我们希望融合物品和属性的表示,通过这种方式,我们希望把有用的属性信息注入物品表示中。给定一个物品 i 和其属性集合
,我们设计了Associated Attribute Prediction (AAP) 损失函数来最大化二者之间的互信息:
我们通过负采样来增强物品与真实属性间的联系。给出的AAP定义是针对一个物品的,很显然我们可以扩展到所有物品上。
2)建模序列-物品间的联系。传统的序列推荐方法通常从左至右的建模交互序列,并通过预测下一个时间步的物品来进行训练。受BERT的掩码语言模型(Masked Language Model, MLM)的启发,我们使用Cloze任务来建模物品序列的双向信息,提出了Masked Item Prediction (MIP)。在训练时,我们随机mask原序列中一定比例的物品,然后我们根据其双向上下文的信息来预测被mask的物品。假设我们mask序列
,我们认为序列剩下的部分
为被mask物品的上下文信息, 记作
我们通过负采样来进行训练。

3)建模序列-属性间的联系。已有的使用属性信息的方法少有直接建模序列与属性联系的。我们认为这种联系可以提供多粒度的信息并增强表示。与MIP类似,我们希望恢复被mask的物品的属性,提出了Masked Attribute Prediction (MAP)。
我们依然通过采样不相关的属性来进行训练。
4)建模序列-子序列间的联系。与自然语言序列不同,在推荐序列中,单个物品可能与上下文信息并不是有很强的联系,多个物品才能更好地反应用户的购物喜好,如一个用户可能因为促销连续购买了多个物品。基于此,我们扩展了Cloze,提出了Segment Prediction(SP)。将mask单个物品扩展到mask连续的多个物品,并希望模型可以恢复出这个被mask的子序列, 记作
,其上下文信息表示为
我们依然通过负采样来训练。
2.4 微调
在微调阶段,我们使用从左至右的序列推荐监督信号来训练模型,在每一个时间步负采样一个物品。
2.5 讨论
(1)基于特征的模型如FM [7] 和AutoInt [8],主要通过建模特征信息间的交互来学习数据表示。类似地,S3-Rec通过AAP,MAP两个目标函数来建模特征交互,不同的是,我们没有直接地进行特征间地信息交互,而是建模了属性与物品/序列间的联系,并且这是为推荐任务额外设计的监督信号。
(2)序列推荐的模型如GRU4Rec和SASRec,主要依靠从左至右单向的上下文信息来建模与目标物品间的联系,S3-Rec则通过四个不同的预训练目标函数来增强序列信息的表示,其中MIP可以类似地实现捕捉双向地上下文序列依赖信息。
(3)属性感知的模型如TransFM[9]和FDSA[10],依靠属性信息来提高推荐的效果,这些属性被认为是附属信息来增强物品或序列的表示。S3-Rec则通过AAP和MAP来融合属性和物品及序列的表示实现类似的效果。

3
实验

我们在6个不同领域的数据集上进行了充分的实验,S3-Rec均达到了SOTA的效果。
3.1 消融实验
我们在四个数据集上进行了消融实验,结果发现当去除AAP或MAP时,模型效果会有比较大的下降。一个可能的原因是这两个任务增强了属性与物品间,属性与序列间的表示。
3.2 扩展实验
我们把提出的预训练方法扩展到其它模型上:对于支持mask操作的模型,我们直接使用了四种预训练目标进行预训练,对于其它的模型,我们使用预训练的embedding权重来进行模型embedding的初始化,可以看到,均带来了效果的提升。
3.3 数据量影响
我们把提出传统的推荐算法通常需要较大量的训练数据,因此很容易受到数据稀疏性的影响,这个问题可以通过提出的自监督方法来进行缓解,因为其可以更好地利用输入数据间的联系。我们使用不同比例的训练数据模拟了不同的数据稀疏度场景,结果表明,S3-Rec可以在一定程度上缓解数据稀疏带来的问题。
3.4 预训练轮数的影响
我们对比了预训练阶段不同的预训练轮数对于最终结果的影响。可以看到,通过20轮左右的预训练,自监督学习就会给模型带来比较大的效果提升。
3.5 收敛曲线
我们对比了S3-Rec在微调阶段与最好的基线模型的收敛速度,可以看到经过预训练的S3-Rec,收敛速度明显快于其它模型。

4
结语

在本文中,我们基于互信息最大化(MIM)原理提出了一种新的利用自监督学习的序列推荐模型S3-Rec。
在我们的方法中,我们将基于自注意力机制的推荐模型作为基本模型,并设计了4个自监督的学习目标,以学习原始数据间的相关性。这四个目标可以通过学习属性,物品,子序列和序列之间的相关性来增强数据表示,进而提升序列推荐的效果。
实验结果表明,我们的方法优于几个有竞争力的基线模型。将来,我们将研究如何设计其他形式的自监督优化目标。 此外,我们还将考虑如何将这些方法应用于更复杂的推荐任务,例如对话推荐和多媒体推荐。
参考链接:
[1]B. Hidasi, A. Karatzoglou, L. Baltrunas, and D. Tikk. 2016. Session-based Recommendations with Recurrent Neural Networks. In ICLR 2016.

[2]J. Tang and K. Wang. 2018. Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding. In WSDM 2018. 565–573. 

[3]W.-C.Kang and J. J. McAuley. 2018. Self-Attentive Sequential Recommendation.In ICDM 2018. 197–206.

[4]J. Devlin, M.-W. Chang, K. Lee, and K. Toutanova. 2019. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. In NAACL-HLT 2019. 4171-4186.

[5]R. D. Hjelm, A. Fedorov, S. Lavoie-Marchildon, K. Grewal, P. Bachman, A.

Trischler, and Y. Bengio. 2019. Learning deep representations by mutual information estimation and maximization. In ICLR 2019.

[6]L. Kong, C. de Masson d’Autume, L. Yu, W. Ling, Z. Dai, and D. Yogatama. 2020. A Mutual Information Maximization Perspective of Language Representation Learning. In ICLR 2020.

[7]S. Rendle. 2010. Factorization Machines. In ICDM 2010. 995–1000.

[8]W. Song, C. Shi, Z. Xiao, Z. Duan, Y. Xu, M. Zhang, and J. Tang. 2019. AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks. In CIKM 2019. 1161–1170.
[9]R. Pasricha and J. J. McAuley. 2018. Translation-based factorization machines for sequential recommendation. In RecSys 2018. 63–71.

[10]T. Zhang, P. Zhao, Y. Liu, V. S. Sheng, J. Xu, D. Wang, G. Liu, and X. Zhou. 2019. Feature-level Deeper Self-Attention Network for Sequential Recommendation. In IJCAI 2019. 4320–4326.
点击阅读原文,直达“CCF-NLP走进高校之郑州大学”直播页面!
继续阅读
阅读原文