论文

0 摘要

推荐系统在使用户在现代在线平台中使用个性化内容方面发挥着至关重要的作用。深度学习已经彻底改变了许多研究领域,并且最近对将其应用于协同过滤(CF)的兴趣激增。然而,现有方法与潜在因子模型构成了深度学习架构,忽略了一大类CF模型,邻域或基于记忆的方法。

我们提出了协同存储网络(CMN),这是一种深层架构,用于统一两类CF模型,以非线性方式利用潜在因子模型的全局结构和和邻域模型局部结构的优势。在Memory Networks的成功推动下,我们将记忆组件和神经注意机制融合为邻域组件。关联寻址用户和物品存储器在记忆模块中编码复杂的用户 - 物品关系与神经注意机制相结合,以学习用户物品特定的邻域。最后,输出模块利用用户和物品记忆开发邻域来产生排名分数。

堆叠多个记忆模块产生更深层次的架构捕获日益复杂的用户 - 物品关系。而且,我们表明CMN组件,记忆网络和三类CF模型之间的紧密联系。综合实验结果证明了CMN对三个公开的有效数据集的表现优于竞争基准。注意力量的定性可视化提供了对模型的洞察力推荐过程并建议存在更高阶互动。

1 引言

CF模型可以分为3类。

基于邻域的方法:包含基于物品的和基于用户的,该方法根据用户的历史行为,计算物品与用户之间的相似度来进行top-k推荐,只使用了局部的结构,而忽略了很多全局的信息。
基于隐向量的方法:常用的就是矩阵分解及其变体。将用户与物品表示成一个大小为nm的评分评分矩阵,由于评分矩阵是稀疏的,可以将其转换成nk的用户矩阵与k*m的物品矩阵相乘。这种做法虽然考虑了全局的信息,但是忽略了一些比较强的局部联系。
混合模型:对上述两个模型的改进,常用的有因子分解机和SVD++方法。

在使用CF模型推荐时,我们通常需要关注两点:

  1. 需要考虑全局的信息,充分利用整个评分矩阵。
  2. 需要考虑局部的信息,考虑用户或者物品之间的相似性。相似性高的用户或者物品给予更高的权重。

作者提出了一种混合模型,该模型利用记忆网络和注意力机制用于具有隐式反馈的协同过滤。

记忆组件允许读写操作来编码内部存储中复杂的用户和物品关系。 关联寻址方案充当最近邻域模型,基于自适应用户物品状态来发现语义上类似的用户。

神经注意机制对具有相似偏好的用户的特定子集施加更高权重。

最后,根据局部信息与全局信息之间的非线性变换计算排名分数

2 COLLABORATIVE MEMORY NETWORK

2.1 User Embedding

对于预测用户uuu对于物品i的评分。我们首先会得到历史上所有跟物品i有反馈的用户集合,我们称作N(i)N(i)N(i)。接下来,我们要计算目标用户uuuN(i)N(i)N(i)中每个用户的相关性,基于公式(1):

2.2 Neighborhood Attention

通过一个softmax操作转换为和为1的权重向量,参考公式(2)

根据(2)得到的权重向量,通过公式(3)可以得到输出向量:

2.3 Output Module

根据公式(4)计算用户uuu对物品iii的评分

括号中的第一项是用户的记忆mum_umu和物品的记忆eie_iei进行的 element-wise 相乘操作,这相当于矩阵分解的思想,即考虑了全局的信息。第二项相当于是按照基于邻域的思路得到的一个输出向量,即考虑了局部的相关用户的信息。最终经过激活函数φφφ和输出层得到最终的预测评分。

2.4 Multiple Hops

CMN模型可以扩展为多层结构。在每一层,记忆是不变的,变化的主要是权重向量。每一层的权重向量计算公式如(6)


其中,zui0=mu+eiz^0_{ui}=m_u + e_izui0=mu+ei

2.5 Parameter Estimation

采取pair-wise的方式,训练时每次输入一个正样本得到一个评分,输入一个负样本得到一个评分,我们希望正样本的得分远大于负样本的得分。这种形式我们称为Bayesian Personalized Ranking (BPR) optimization criterion,见公式(7)

其中,σ(x)=1/(1+exp(−x))\sigma(x) = 1 / (1 + exp(-x))σ(x)=1/(1+exp(x))

贡献

1) 基于记忆网络的成功经验,提出了一种解决隐式协同过滤问题的协同记忆网络(CMN)。CMN增强了外部记忆和神经注意力机制。记忆模块的关联寻址方案作为识别相似用户的最近邻模型。该注意力机制根据特定的用户和物品学习用户邻域的自适应非线性加权。输出模块利用自适应邻域状态与用户、物品记忆之间的非线性相互作用,推导出推荐值。

2)揭示了CMN与两类重要的协同过滤模型之间的联系:隐含因子模型和基于邻域的相似度模型。进一步,我们揭示了非线性积分融合两种模型的优点,得到了一个混合模型。

3)在三个公共数据集上的综合实验证明了CMN在七个对比基线上的有效性。多个实验配置证实了记忆模块的额外好处。

4)注意力权重的定性可视化提供了对记忆组件的深入了解,为更深层次的体系结构捕获更高阶的复杂交互提供了支持证据。

参考:

论文原文:https://arxiv.org/pdf/1804.10862.pdf
代码:https://github.com/tebesu/CollaborativeMemoryNetwork
博客:https://www.cnblogs.com/shenxiaolin/p/10610997.html

《Collaborative Memory Network for Recommendation Systems》推荐系统之协同记忆网络CMN相关推荐

  1. Deep Feedback Network for Recommendation用于推荐系统的深度反馈网络

    整篇文章与传统的推荐算法模型做了相应的对比, 对传统算法而言, 这篇文章将所有的信息反馈做了细致的划分: 隐式积极反馈/隐式消极反馈      显示积极反馈/显示消极反馈, 隐式反馈与显示反馈的区别在 ...

  2. 「论文笔记」Denoising User-aware Memory Network for Recommendation

    动机:为了推断用户动态偏好的演变,更多的关注到基于序列的推荐系统 最近的研究:注意到可以从显示和隐式反馈序列更好的理解用户偏好 现有方法存在的问题: 没有考虑在隐式反馈中包含的噪声 ⇒ 导致用户兴趣的 ...

  3. 2019_WSDM_Social Attentional Memory Network Modeling Aspect- and Friend-level Differences in Recomme

    [论文阅读笔记]2019_WSDM_Social Attentional Memory Network Modeling Aspect- and Friend-level Differences in ...

  4. memory network

    1. 背景 ​ 记忆网络是一种最早提出于2014年的网络,这个网络与seq2seq有许多相似之处,不过有其特殊之处,该网络经过几年的发展,已经发展出了不少的新技术,本篇文章讲话对该类网络进行个较为详细 ...

  5. 推荐系统遇上深度学习(三) Deep Feedback Network for Recommendation(草稿)

    今天分享一篇微信在IJCAI-20发表的推荐论文<Deep Feedback Network for Recommendation> #摘要 在推荐系统中,用户的显式反馈.隐式反馈.正反馈 ...

  6. 『 DSSM』A Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems

    Abstract MULTI-VIEW-DNN联合了多个域做的丰富特征,使用multi-view DNN模型构建推荐,包括app.新闻.电影和TV,相比于最好的算法,老用户提升49%,新用户提升110 ...

  7. 论文笔记(Social Attentional Memory Network:Modeling Aspect- and Friend-level Differences in Recom-)

    社交注意记忆网络:模拟面级别和朋友级别的区别 原文链接:Social Attentional Memory Network: Modeling Aspect- and Friend-Level Dif ...

  8. 推荐系统:协同过滤collaborative filtering

    http://blog.csdn.net/pipisorry/article/details/51788955 (个性化)推荐系统构建三大方法:基于内容的推荐content-based,协同过滤col ...

  9. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 16—Recommender Systems 推荐系统...

    Lecture 16 Recommender Systems 推荐系统 16.1 问题形式化 Problem Formulation 在机器学习领域,对于一些问题存在一些算法, 能试图自动地替你学习到 ...

最新文章

  1. 发表论文不用愁,十大技巧治秃头
  2. linux ifconfig命令配置ip地址
  3. 从零点五开始用Unity做半个2D战棋小游戏(完)
  4. pycharm设置anaconda并运行helloworld
  5. android 系统源码调试 局部变量值_如何方便快速的整编Android 9.0系统源码?
  6. php中sql格式化字符串,sqli注入-sprintf格式化字符串带来的注入隐患
  7. JAVA中和、||和|的区别?
  8. java arraylist 构造_深入理解java集合框架之---------Arraylist集合 -----构造函数
  9. 运维 xshell 快捷键
  10. 数据结构--(AVL)平衡二叉树
  11. 名词解释:DRAM, SRAM, SDRAM等
  12. VS2013创建Windows服务
  13. PHP-SDK实现支付宝 付款码支付、刷脸支付
  14. 【Unity3D】Unity5打不开VS2017,Unity打开VS2017异常,并且有时候最后打开的是Mono的解决方案
  15. 计算机盘0字节可用,本地磁盘显示0字节可用数据恢复方法教程
  16. 无锁编程与分布式编程那个更适合多核CPU?
  17. 金陵科技学院c语言校内题库,金陵科技学院校内二级复习题
  18. netcat网工必备工具
  19. 【学习笔记】人工智能导论
  20. c语言 dsp面试题,面试华为DSP开发(杭州)

热门文章

  1. 【GAT】图注意力网络 - 简单的源码记录
  2. P2.5室内LED显示屏的技术参数以及优点分析
  3. win 7 我的计算机,从“我的电脑”到“此电脑”,Win7/Win10为啥这么改?
  4. 数理篇 - 高等数学小筑
  5. 全球及中国载药微球经肝动脉化学栓塞术(DEB-TACE)在肿瘤学中的应用行业研究及十四五规划分析报告
  6. python 实战2 斜边上的高
  7. uni 页面加载完毕_uni-app图片未加载完处理
  8. 2022年最新版初级商业数字营销师钻展题库
  9. 雷霆行动(STG飞机游戏)源码分析
  10. 四川大学计算机科学研究生,四川大学计算机学院2018年硕士研究生招生拟录取名单及成绩公示(全日制)...