Collaborative Memory Network for Recommendation Systems解读
本文为对该论文的简单解读和记录,方便理解
摘要
本文提出协同记忆网络这一深层结构:它是一种将基于潜在因素模型的全局结构和基于邻域的局部结构,用非线性方法进行统一实现的深度结构模型。在Memory Networks的成功推动下,我们将记忆组件和神经注意机制融合为邻域组件,记忆模块中用户和物品记忆的关联寻址方案将复杂的用户-物品关系与神经注意机制结合起来编码,以学习用户-物品特定的邻域。最终,输出模块联合利用了存有用户-物品记忆的邻域来生成排序分数。集成多个记忆模块作为一个深度结构可以捕捉更加复杂的用户-物品关系。
文中展示了(协同记忆网络)CMN组件、记忆网络、和三种CF模型之间的强联系。综合实验结果证明了CMN在公开数据集的表现优于竞争基线。作者还可视化的展示了注意力权重,能够直观的看出CMN的推荐过程。
介绍
在信息过载的时代,推荐系统显得十分重要。而在推荐系统中,协同过滤是一种非常受欢迎且有效的方法。协同过滤基于用户和物品的过去交互行为,同时认为相似的用户会消费相似的物品,从而进行推荐。
协同过滤推荐系统可以分为三类:基于内存或者邻域的方法、潜在因子模型和混合模型
- 基于邻域的方法:这也是我们常说的基于物品的协同过滤和基于用户的协同过滤方法。需要先计算用户之间、物品之间的相似度,随后基于计算的相似度进行推荐。(忽略了全局信息)
- 潜在因子模型:常用的就是矩阵分解及其变体。将用户与物品表示成一个大小为nm的评分矩阵,由于评分矩阵是稀疏的,可以将其转换成nk的用户矩阵与k*m的物品矩阵相乘。(忽略了局部联系)
- 混合模型:结合基于邻域的方法和隐含因子模型来强化预测能力。例如因子分解机和SVD++方法
协同记忆网络(CMN)
User Embedding
对于预测用户u对于物品i的评分。我们首先会得到历史上所有跟物品i有隐式反馈的用户(邻域)集合,称为N(i)。本文提出联合寻址方案(the associative addressing scheme)作为相似度计算方法:
第一项表示目标用户和评价过物品i的用户之间的兼容性,第二项表示用户v对于向用户u推荐物品i的支持度。
Neighborhood Attention
本文在CMN框架中融合了注意力机制以给不同的邻居不同的权重。在论文中,注意力的量化是通过以下softmax公式进行实现的:
然后通过注意力机制和用户的external memory(外部记忆),通过下式构造了一个统一的vector用于表示用户u的邻居对于向用户u推荐物品i的偏好:
C矩阵是user的另一个Embdeding矩阵,用作记忆模块,O的物理意义是user u 在item i 上和对i有行为的其他user 的近似度加权的其他用户表征,Oui 是d唯向量Cv 向量的加权和,是d维向量。
Output Module
根据用户u,item i 以及评价过item i的所有用户对于向用户u推荐item i的偏好,来预测了用户u对item i的评分排名如下公式:
**函数为ReLU(线性整流**函数),通过矩阵U, 对user向量和item向量的点乘结果进行一个线性映射,这相当于矩阵分解的思想,考虑了全局的信息;并且使用矩阵W将Oui映射到一个隐含的特征空间中,考虑了局部的相关用户的信息。上述流程论文用如图a所示框图进行了整体展示。
图a中仅展示包含单个内存层的CMN框架。
Multiple Hops
图(b)展示的多层堆叠框架是通过不断堆叠图a中的左边的虚线框内容实现的。该模型有机会回顾并重新考虑最相似的用户,从而推断出更精确的邻居。通过将第h层hop的输出作为第(h+1)层hop的输入,将多个内存模块堆叠在一起。
每一个Hop层的输出如公式5:
z0ui= mu+ ei.
Parameter Estimation
损失函数
利用贝叶斯个性化排序(BPR)优化准则损失函数:训练时每次输入一个正样本得到一个评分,输入一个负样本得到一个评分,希望正样本的得分远大于负样本的得分。
σ(x) = 1/(1 + exp(−x
时间复杂度
实验
数据集
- Epinions: 在线用户产品反馈数据集,作者根据用户是否对某一个商品评价来确定rating,如果评价了,则对应的rating为1,否则为0。
- citeulike-a:用户保存和共享学术论文数据集,如果用户保存或者共享了某篇论文,则对应的rating为1,否则为0。
- Pinterest:用户面板图片数据集,如果用户将某一张图片保存或者固定在其面板上,则将对应的rating设置为1,否则为0。
对于每个用户,随机拿出一个与用户交互过的项目,并抽取100个未观察到的或否定的项目组成测试集。剩下的正面例子构成了训练集。
评估方法
使用leave-one-out方法进行实验评估,模型性能的评价指标选用的是Hit Ratio (HR) and Normalized Discounted Cumulative Gain (NDCG)。作者认为,HR主要用于正样本在在前N名中的存在性,而NDCG则会测量item在排名列表中的位置,并对在列表中排名较低的item进行惩罚。
实验对比
与七个竞争性基线(代表基于邻域的、传统的潜在因素模型、混合模型和基于深度学习的模型)进行比较。
Table2列出了在Epinions、citeulike-a和Pinterest数据集上,具有一层、二层和三层的CMN结果,以及截止值为5和10的HR和NDCG基线。
hop数和embedding size对CMN模型的影响
图a总体趋势显示,随着embedding size的增加,稳步改善(单层除外)。对于hop=1对情况,当embedding size为40时,HR性能达到峰值,然后由于过度拟合而导致性能下降,这说明单层限制了模型的表达能力。embedding size为20小时,层数增加带来的好处可忽略不计,但是随着embedding size的增加,多层显示出比单层明显的改善。
图b描绘了embedding size为20时单层的最佳性能,随后随着模型容量的增加而退化,这与图a结论有些相似。在三层处,embedding size为40时,由于神经网络的非凸性,可能会由于发现较差的局部最小值而导致性能异常下降。在HR和NDCG上,两层和四层表现出几乎相同的性能,彼此之间最多相差0.3%。
图c显示了随着embedding size的增加而逐渐出现的性能提升趋势,但单层显示的能力不足,无法为复杂的用户项交互建模。与先前数据集的结果不同,单层的性能不会随着嵌入大小的增加而降低。这可能是由于较大的数据集可以提供某种形式的隐式正则化,以防止过度拟合。两层,三层和四层表现出相似的性能,并具有更大的embedding size。
为了验证注意力机制和非线性特性对CMN模型的影响,论文设计了如Table3的实验。从实验结果中可以看出,CMN需要将注意力机制和非线性变换结合起来以产生最佳性能。
负采样对结果的影响
图a说明了CMN在Epinions数据集上使负样本从2-10变化的性能。单跳前期显示波动,但当负样本数5-10个时,浮动很低。在图b所示的citeulike-a数据集中,单层均匀地表现出比两层和三层差。在图c,Pinterest数据集上单层的结果描述了总体上升趋势,其中性能随着负样本数量的增加而提高。在citeulike-a和Pinterest数据集中,我们观察到两层和三层显示出可比的结果,并且对负样本数量的稳定性更高,同时表现优于单层。
实验结论
- 单个hop中Embedding size 长度为20时最优,过长容易过拟合; 多个hop中Embeding size 越长效果越好(不同数据集可能不一定)。hop数为2 在实验的三个数据集上整体效果最优,多hop相对于2个hop无明显提升。
- 线性**函数性能差于非线性**函数;注意力机制在三个实验数据[email protected]平均提升3个百分点,效果明显。
- 负采样比例在不同数据集上表现不一致,部分数据集负采样比例于效果呈正比; hop为2时, 对超参数不敏感。
本文主要贡献
- 提出了一种基于记忆网络成功的协作记忆网络(CMN)来解决隐式协作过滤问题。CMN增强了外部记忆和神经注意机制。记忆模块的关联寻址方案充当识别相似用户的最近邻模型。注意机制根据特定的用户和物品学习用户邻域的自适应非线性加权。输出模块利用自适应邻域状态与用户、物品记忆之间的非线性相互作用来推导出推荐值;
- 揭示了CMN与两类重要的协同过滤模型之间的联系;
- 在三个公共数据集上的综合实验证明了CMN在七个对比基线上的有效性;
- 注意力权重的定性可视化提供了对记忆组件的深入了解。