注意力循环社交推荐
原文链接:Attentive Recurrent Social Recommendation, SIGIR’18
原理:将用户的朋友和历史交互项按时间划分,用注意力机制整合各个时段的朋友影响和交互项影响后输入LSTM来学习动态用户向量,动态用户向量与动态项向量的内积预测动态评分。用注意力机制整合用户所有时期的朋友影响+用户向量=用户静态向量,用户静态向量与项静态向量的内积预测静态评分。动态评分与静态评分之和为最终预测评分。
1. 摘要
协同过滤(CF)是建立推荐系统最受欢迎的方式之一。为了解决协同过滤中数据稀疏性的问题,社交推荐(social recommendation)出现了,他利用用户之间的社交影响来得到更好的推荐效果。在这些系统中,随着时间的推移,用户的偏好取决于他们的时间动态兴趣(temporal dynamic interests )和一般的静态兴趣(general static interests)。同时,用户内在兴趣和社会网络的社交影响之间的相互作用,推动了用户的偏好随时间演变。然而,传统的方法要么忽略了时间推荐(temporal recommendation)的社交网络结构,要么假设静态社交推荐(static social recommendation)具有静态的社会影响力。因此,如何利用社交影响来提高时间社交推荐效果依然是一个问题。为此,本文提出了一种基于注意力循环网络的时间社交推荐方法
。在提出的方法中,我们通过用两个注意力网络融合用户之间的社交影响
,来模拟用户复杂动态的和一般静态的偏好随时间的变化
。特别地,在模拟动态偏好的过程中,我们设计一个动态的社交感知循环神经网络去捕捉用户复杂的随时间变化的潜在兴趣
。其中,提出了一个时间注意力网络去学习随时间变化的时间社交影响
;在模拟一般静态偏好的过程中,我们通过引入静态社交注意力网络刻画每一个用户的静态兴趣
,来模拟用户之间的固定的社交影响
。动态偏好和静态偏好的输出在一个统一的端到端的框架中结合起来,为了时间社交推荐任务。
2. 问题定义
数学符号定义:
定义1【时间社交推荐】给定一个用户集合 U,一个项的集合 V,用户-用户社交网络矩阵 S,从时间1到时间 T 的用户-项偏好序列 R = [R1,R2,…,RT],我们的目标是预测每一个用户在时间 T+1 时的消费行为Rˆ T+1
3. 提出的模型
我们提出的模型Attention Recurrent Social rEcommendation(ARSE)由两部分组成:一个复杂的Dynamic ARSE 部分捕获用户随时间推移变化的动态偏好,一个通用的Static ARSE 部分显示用户固定的不随时间推移变化兴趣。
用户 a 在 t 时刻对项 i 的偏好预测可以如下表示:项 i 的动态嵌入 x 用户 a 在t时刻的动态嵌入 + 项 i 的静态嵌入 x 用户 a 的静态嵌入
整个模型的框架如下所示:
3.1 Dynamic Attentive Social Recurrent Recommendation
Input Pooling Layer
因为 LSMT 要接受一个固定size的输入,而用户喜欢的 items 的集合Lta的size是不一样的(这里应该是指数量),所以这里采用一个平均池化
(average pooling operation)操作,(实际上就是把所有items的潜在向量laent vector变成了一个平均的潜在向量,至于为什么采用平均池化而不是最大池化,作者说因为两种方法在这里没有明显的区别)
下面展示了 Xta 的第 l 个元素的计算方式:
其中 Q 是 items 在动态空间(dynamic space)中的潜在向量矩阵,Q (:,Lta ) 是选择所有在 Lta 中出现的item的潜在向量。
Dynamic Attentive Network
用两层子网络去捕获用户 a 和他在社交网络 S 中信任的用户 b(即sba=1)的动态注意力分数
mt(a,b):
ht-1a 和 ht-1b 分别是用户 a 和用户 b 在 t-1 时刻的潜在向量(latent vector)
ea 和 eb 是用户 a 和用户 b 在社交网络结构中的社交嵌入(social embedding)
【可以用已经提出的各种社交嵌入技术可以从社交网络S中提取出有意义的嵌入,本文采用一个非监督深度学习模型denoising autoEnoder来为用户的社交嵌入建模】
最终的动态注意力分数
αtab 通过标准化上面的注意力分数得到:
Sa 是用户a在社交网络中信任的所有用户,
αtab 展示了在t时刻用户 b 对用户 a 的影响力
则,用户a的社交上下文信息
h~ta 表示来自社交网络邻居的权重动态社交影响:
Social LSTM Layer
Xta 表示了用户 a 在 t 时刻消费的items
h~ta 表示了用户 a 在 t 时刻增强的社交上下文信息
ht-1a 表示了用户 a 在 t-1 时刻的隐藏状态(hiden state)
则预测隐藏状态
hta 可以通过一个 LSTM 层计算得到:
不同于传统的 LSTM 只考虑用户之前的输入 Xta 和之前的隐藏状态 ht-1a,作者在这里加入了用户的动态上下文表征 h~ta 来推断用户动态的偏好。
Dynamic Output Layer
3.2 Static Attentive Social Recurrent Recommendation
除了捕获用户随着时间进化的偏好,我们认为每个用户都有不随时间变化的静态兴趣(static interest)
Static Social Attention
用两层子网络去捕获用户 a 和他在社交网络 S 中信任的用户 b(即sba=1)的静态注意力分数
n(a,b)
pa 和 pb 分别表示用户 a 和用户 b 的静态潜在向量(latent vector)
ea 和 eb 分别是用户 a 和用户 b 在社交网络结构中的社交嵌入(social embedding)
最终的静态注意力分数
βab 通过标准化上面的注意力分数得到:
则,增强的静态社交潜在向量p?~a 可以如下表示:
Static Output
4. 模型学习
4.1 Optimization
用一个统一的损失函数进行学习
4.2 Prediction
学习总结:
1、关于用户的偏好,作者考虑了不随时间改变的静态偏好和随着时间进化的动态偏好,对于随着时间进化的动态偏好用LSTM模型进行学习,用某时刻用户的社交网络信息和交互项信息共同作为LSTM某个单元的输入,经处理后输出当前时刻用户的偏好;对于不随时间改变的静态偏好通过整合用户社交网络信息和用户本身的信息得到。两个部分在整合用户在社交网络中邻居时都采用了注意力机制来区分不同邻居的重要程度。