Intent Contrastive Learning for Sequential Recommendation阅读笔记
动机
本文是2022年WWW的一篇论文。用户与物品的交互通常由多种意图驱使,但是这些意图通常是潜在的,为了研究意图对序列推荐的作用,作者提出了一个通用范式ICL,它的核心思想是学习到用户的意图并通过对比学习优化序列推荐模型。
算法
用户与物品集合分别用\(\mathcal U\)和\(\mathcal V\)表示,用户u的交互序列为\(S^u=[s_1^u,...,s_t^u,...s^u_{|s^u|}]\),K个意图的序列为\(\{c_i\}^K_{i=1}\)。
意图对比学习
我们的目标是
但因为意图c是未知的,该式子很难优化,因此我们使用EM算法。
在E步,我们假设c的分布为Q(c), ,然后可以得出
由Jensen不等式得(ln(x)是上凹的函数,即\(ln(E(x))>=E(ln(x))\))
当且仅当时等号成立。
为了简化计算,我们只关注最后一个位置,因此,在时
我们对序列表示\(\{h^u\}^{|\mathcal U|}_{u=1}\)进行k-means聚类,得到\(Q(c_i)\)为
\(c_i\)是第i个簇的中心。
假设意图先验分布是均匀分布,序列在给定意图的情况下分布服从各向同性的高斯分布(各个方向方差一样),则
综上可以得到意图对比学习
\(\tilde{h}\)是经过增强后的序列表示。
下图是意图对比学习结构图。总结来说就是在E步编码每个序列,获得序列表示,然后聚类并得到意图(每个类的中心),在M步,通过对序列进行数据增强获得增强后的序列表示,然后与E步得到的意图进行对比学习。
序列对比学习
多任务学习
下一个点击物品损失函数为
综上,总的损失函数为
结果
作者在四个数据集上进行实验,本文提出的ICL取得最好效果,实验中的编码器是2头自注意力模块。
总结
本文的主要工作就是在序列推荐中引入意图,并通过意图对比学习来增强模型效果。本文提出的是一个通用的框架,如果选择效果更好的骨干模型,或是有更好的数据增强、数据采样方法,会有取得更好的结果。