推荐系统
链接:https://pan.baidu.com/s/1WmothtKHUqBuXJe7YW-c9g 密码:y2gm
Next Item Recommendation with Self-Attention
介绍
利用历史数据进行未来预测一直是许多基于机器学习的推荐系统的基石。毕竟,从直观和必要性来说,用户过去的交互通常可以预测他们的下一个交互。为此,许多系统都利用了这种结构。
近年来,递归神经网络和卷积神经网络等神经网模型是当前问题的热门选择。然而,在适用于推荐时,这两种模式都有一个缺点。也就是说,他们没有显式地捕捉到在用户历史的item-item的关系。在用户的上下文历史记录中对item-item关系的建模,因为它通常对理解单个item对之间的关系至关重要。
神经注意机制与人类的视觉注意相似。它学会了只注意目标中最重要的部分,并且在许多应用程序中得到了广泛的应用。例如自然语言处理和计算机视觉。标准注意机制可以被整合到CNN和RNN中,以克服它们的缺点。具体来说,注意力机制使得在RNN中容易记忆非常长的依赖关系,并帮助CNN专注于输入的重要部分。
我们的工作是一个新的概念,称为“自注意力”。与标准的注意力不同,自注意力集中在两个序列的协同学习和自我匹配上,其中一个序列的注意力权重取决于另一个序列,反之亦然。在序列学习中可以代替RNN和CNN,以较低的计算复杂度获得更好的精度。在本工作中,我们利用自注意力模型对用户短期行为进行建模。
本文的框架
为此,本文提出了一个新的神经序列推荐系统,该系统可以对连续的item进行建模,还可以对用户所有交互的建模来学习序列表示,因此,我们的模型可以被认为是一种“局部-全局”的方法。总的来说,通过基于注意力的神经模型显式地表示整个用户历史事务序列的交互。这不仅使我们能够学习全局表示,而且还可以学习k个连续item之间的短期信息。在这个自匹配矩阵的基础上,我们学习通过交互序列来选择最相关的item来形成最终的用户表示。
我们的模型采用了一个度量学习框架的形式,在该框架中,用户的自注意力表示与预期item之间的距离在训练过程中被拉近。
本文的贡献
提出了一种新的序列推荐任务框架。我们的模型将自注意力网络和度量嵌入相结合来建模用户临时和持久的意图。
模型介绍
问题定义
$U$ 表示$user$ 集,$user$ 个数为$M$。$I$ 表示$item$ 集, $item$ 个数为$N$ 。
$H^u = (H_1^u,H_2^u,H_3^u,…,H_{|H^u|}^u)$ 表示$user$ $u$ 根据时间序列所交互的$item$ 的序列
推荐系统的目标是,根据之前的交互预测将与用户进行下一次交互的$item$ 。
Short-Term Intents Modelling with Self-Attention
用户最近的交互在短期内反映了用户的需求或意图。因此,为用户的短期交互建模是更好地理解用户的时间偏好的一项重要任务。为此,我们建议利用自注意机制来对用户最近的交互轨迹进行建模。
自注意力机制是注意机制的一个特例,并已成功应用于各种任务。 它通过将单个序列与自身匹配来对自身重新表示。 与基本注意不同,自我注意可以保持上下文顺序信息并捕获序列中元素之间的关系。
在计算注意力时主要分为三步,第一步是将query和每个key进行相似度计算得到权重,常用的相似度函数有点积,拼接,感知机等;然后第二步一般是使用一个softmax函数对这些权重进行归一化;最后将权重和相应的键值value进行加权求和得到最后的注意力。
在我们的上下文中,所有这三个组件(即query,key和value)都是相同的,并由用户最近的交互历史组成。
假设用户的短期意图可以用她最近的L次交互表示。 假设每个$item$可以用d维嵌入向量表示。 设$X \in R^{N×d}$ 表示整个$item$集的嵌入表示。 最新的$L$项按顺序堆叠在一起以得到以下矩阵。
这里,最新的L项是$H^u$的一个子集。 $user$ $u$的 query,key和value在自注意力模型中的时间步t处等于$X_t^u$。
使用一个几何序列的时间尺度来添加不同频率的正弦信号到Query和Key,使序列保持时序性,时间嵌入(TE)由两个正弦信号组成
我们通过使用共享参数的非线性变换将Query和Key投影到同一空间。
$Q^‘ = ReLU(X_t^uW_Q)$
$K^‘ = ReLU(X_t^uW_K)$
输出是$L×L$ 的亲和度矩阵,它表示L个$item$之间的相似性。$s_t^u=softmax(\frac{Q^{‘}K^{’T}}{\sqrt d})$
最后,将亲和度矩阵和value相乘以形成自注意模块的最终加权输出$a_t^u=s_t^uX_t^u$
这里,注意力输出$a_t^u \in R^{L×d}$可以被用来表示用户的短期意图。 为了学习单个关注表示,我们将L个自注意力表示的平均嵌入作为用户时间意图。 $m_t^u=\frac{1}{L} \sum_{l=1}^L a_{tl}^u$
User Long-Term Preference Modelling
在对短期意图进行建模之后,结合用户的长期偏好是有益的。 与潜因子模型相同,我们为每个$user$和每个$item$分配一个潜因子。 设$U \in R^{M×d}$和$V \in R^{N×d}$表示$user$和$item$的潜因子。 我们可以使用点积来模拟潜因子模型中的$user-item$交互。 然而,最近的研究表明,点积违反了度量函数的重要不等性,并将导致次优解。 为了避免这个问题,我们采用欧几里德距离来测量$item$ $i$和 $user$ $u$之间的接近程度。$||U_u-V_i||_2^2$
如果用户喜欢$item$ $i$,则距离预计会很小,否则会很大。
Model Learning
目标函数
我们的任务是预测用户将在$t + 1$时与之交互的$item$。为了保持一致性,我们采用欧几里德距离模拟短期和长期效应,并使用它们的总和作为最终推荐得分。
$y_{t+1}^u= \omega ||U_u-V_{H_{t+1}^u}||_2^2+(1-\omega )||m_t^u-X_{t+1}^u||_2^2 $
第一项表示$user$ $u$和下一$item$ $H^u_{t + 1}$之间的长期推荐得分,而第二项表示$user$ $u$和其下一$item$之间的短期推荐得分。 $VH^u_{t + 1}$和$X^u_{t + 1}$都是下一$item$的嵌入向量,但$V$和$X$是两个不同的参数。 最终得分是它们与控制因子$\omega$的加权和。
我们模型的架构如下图。 它不仅包括用户短期意图,还包括长期的偏好。 两者相加以生成最终推荐列表。 前者是由最近的行为引起的自注意力网络表示出来的,整个系统是在度量学习框架下构建的。