WWW'22 用户意图发掘:序列推荐中的意图对比学习

2022-09-19 10:54:30 浏览数 (1)

关注我们,一起学习

title:Intent Contrastive Learning for Sequential Recommendation link:https://arxiv.53yu.com/pdf/2202.02519.pdf code:https://github.com/salesforce/ICLRec from:WWW 2022

1. 导读

用户与物品的互动是由各种意图驱动的(例如,准备节日礼物、购买捕鱼设备等)。然而,用户的潜在意图往往是不被观察到/潜在的,因此很难利用这些潜在意图进行序列推荐(SR)。本文提出了意图对比学习(ICL),通过聚类将潜在意图变量引入SR。其核心思想是从未标记的用户行为序列中学习用户的意图分布函数,并通过考虑学习的意图来优化SR模型,从而改进推荐模型。

本文主要是针对用户的兴趣表征进行聚类,然后以簇中心代表用户意图,根据用户意图和用户兴趣表征构建损失函数,并且结合原有的序列损失函数和对比学习损失函数构建多任务损失函数。

2. 基础

2.1 问题定义

用户集合U,商品集合V,每个用户有一个交互序列

S^u={s_1^u,...,s_{|S^u|}^u}

,

s_t^u

表示在时间步t时,用户u交互的商品。令

mathbf{S}^u

表示序列的embedding,即对序列中的每个商品进行编码,得到对应的embedding的集合。在实践中,固定长度T,序列长了就裁剪,短了就补全。模型目标是预测第

|S^u| 1

个交互的商品。

2.2 序列模型

深度序列推荐模型,通常是将交互序列embedding集合

mathbf{S}^u

进行编码,发掘用户的兴趣表征

mathbf{H}^u=f_{theta}(mathbf{S}^u)

,H中的每个元素表达用户在位置t时的兴趣。序列模型建模时,通常是对一个序列中,每次前t个构成的子序列来预测第t 1个商品,因此可以建模如下,其中负样本

s_{neg}

为随机采样得到。

theta^{*}=underset{theta}{arg max } sum_{u=1}^{N} sum_{t=2}^{T} ln P_{theta}left(s_{t}^{u}right)
mathcal{L}_{text {NextItem }}=sum_{u=1}^{N} sum_{t=2}^{T} mathcal{L}_{text {NextItem }}(u, t)
mathcal{L}_{text {NextItem }}(u, t)=-log left(sigmaleft(mathbf{h}_{t-1}^{u} cdot mathbf{s}_{t}^{u}right)right)-sum_{n e g} log left(1-sigmaleft(mathbf{h}_{t-1}^{u} cdot mathbf{s}_{n e g}^{u}right)right)

2.3 推荐中的对比自监督学习

本文利用的对比学习自监督相关方法是,按照互信息最大化(MIM)原则,融合一个序列不同视图之间的相关性。给定一个序列

S^u

和预先定义的函数集合

mathcal{G}

,构建两个正样本的视角(positive view),公式如下,其中g是从

mathcal{G}

中采样得到的转换函数(转换方式包括对序列加掩码,裁剪和重排序等),通常,从同一序列创建的视图被视为正对任何不同序列的视图都被视为负对

tilde{S}_{1}^{u}=g_{1}^{u}left(S^{u}right), tilde{S}_{2}^{u}=g_{2}^{u}left(S^{u}right), text { s.t. } g_{1}^{u}, g_{2}^{u} sim mathcal{G}

构建的新序列,经过编码器得到对应的序列兴趣表征集合

tilde{mathbf{H}}_1^u

,

tilde{mathbf{H}}_2^u

,将其聚合后得到兴趣向量表示当前整个序列的表征

tilde{h}_1^u

tilde{h}_2^u

,文中采用的聚合方式是拼接。然后根据infoNCE来构建损失函数,sim()表示内积,

h_{neg}

表示负视角构建的兴趣表征。

mathcal{L}_{text {SeqCL }}=mathcal{L}_{text {SeqCL }}left(tilde{mathbf{h}}_{1}^{u}, tilde{mathbf{h}}_{2}^{u}right) mathcal{L}_{text {SeqCL }}left(tilde{mathbf{h}}_{2}^{u}, tilde{mathbf{h}}_{1}^{u}right),
mathcal{L}_{mathrm{SeqCL}}left(tilde{mathbf{h}}_{1}^{u}, tilde{mathbf{h}}_{2}^{u}right)=-log frac{exp left(operatorname{sim}left(tilde{mathbf{h}}_{1}^{u}, tilde{mathbf{h}}_{2}^{u}right)right)}{sum_{n e g} exp left(operatorname{sim}left(tilde{mathbf{h}}_{1}^{u}, tilde{mathbf{h}}_{n e g}right)right)}

3. 方法

图2为总体框架图。通过EM算法交替执行E步和M步来估计意图变量c的分布函数

0 人点赞