《recommended system attentive neural collaborative filtering》
注意力机制的协同过滤模型原文连接
1.背景
近年来,神经网络在语音识别、计算机视觉和自然语言处理等领域取得了巨大的成功。然而,神经网络在推荐系统上的探索受到的关注相对较少。在这项工作中,我们努力开发基于神经网络的技术,以解决推荐中的关键问题- -基于隐式反馈的协同过滤。尽管最近的一些工作已经将深度学习用于推荐,但它们主要用于建模辅助信息,例如物品的文本描述和音乐的声学特征。文章提出使用一种新的方法将深度学习的技术带入到推荐领域中。
2.创新点和解决的问题
在对协同过滤中的关键因素- -用户和项目特征之间的交互关系进行建模时,仍然采用矩阵分解的方法,对用户和项目的潜在特征进行内积。并且隐藏在用户-物品交互中的协作信号在嵌入过程中没有被编码。
通过将内积替换为可以从数据中学习任意函数的神经结构,文章提出了一种通用的方法ANCF。ANCF捕获协同过滤信号,并根据图的结构细化用户和项目的嵌入。通过引入注意力机制,在用户-项目交互图上学习用户向量和项目向量,聚合邻居交互信息进行编码,并在用户-项目交互图上传播嵌入。
3.模型设计
3.1the embedding layer
通过一个消息编码函数来进行嵌入工作,在嵌入之后用户和项目的表征维度被限制在d维;
3.2the attention propagation layer
消息建立
文中提及的无论是关于用户的向量还是关于项目的向量,都是使用这个公式来建立的,其中的⊗表示对应的元素相乘,W1和W2都是可以训练的参数,最后构建出消息;
注意力机制的运用
公式如下:其中eij表示两者i和j的相似程度,在经过第一步的计算之后得出的向量会和用户U或者是项目I周围邻居进行计算注意力机制,然后得出每一个注意力系数;
之后根据这个注意力系数然后和用户U和他所连接的周围项目的特征相似度向量相乘,最后相加,加上用户自身的特征向量之后聚合为用户新的特征向量;项目I的更新方式也是这样的;最后所有用户和项目的特征向量都会得到更新;
消息聚合和传递
在经过上述的注意力机制计算之后,每一个节点的特征都已经被更新完毕,然后执行向前出传播的方程,公式如下所示:这里的物品和用户是有区分的,其中用户到用户向前传播的时候,也就是在计算(从l-1层到l层的时候)计算的公式就是如(9)所示物品到用户的时候执行公式(8),在计算完毕之后进行聚合操作。
聚合方程如下所示,最后得出新的经过l层之后用户的特征表示。
3.3 the prediction layer
将从第1层到第l层更新的向量组合到一块,用户组成的矩阵乘以项目组成的矩阵然后得出该用户对于项目的偏好评分矩阵。
个人理解文章中提出的模型存在的不足之处
- 在计算的过程中是否对于用户与用户的边、用户和项目的边可以统一进行计算;
- 在使用注意力机制的时候会将项目和用户混为一谈,一起计算注意力系数,但是对于项目来说并不需要关心哪一个用户对于他的注意力分数,而这里只需要关心用户对于哪一个项目比较偏好注意力系数比较高,这一点来说可能在后续更新聚合计算的时候可能会有影响;
- 在公式四中进行的计算相似性,这里不单单会计算项目和项目,也会计算项目和用户,也会计算用户和用户;
关键词
- IMPLICIT FEEDBACK:隐式反馈,是一种用户行为数据,它不需要用户明确地表达他们的喜好或需求,而是通过观察用户的行为来推断他们的兴趣。