标题 * 表示未完成

论文原文

本文使用基于神经网络的模型来分析 user 和 item 的潜在特征,最终设计出了一个基于神经网络的协同过滤通用框架(NCF)。此框架融合了线性MF和非线性MLP模型。

  1. 研究目的
  • 在如今,推荐系统在缓解信息过载方面起到了很大的作用,具有大量的商业应用价值,如电子商务、在线新闻和社交媒体网站。本文希望提出一种基于当前大热的神经网络而建立的模型,此模型比传统的model-based协同过滤性能要强。
  1. 现有方法(研究现状)
  • model-based推荐系统一般使用MF(因式分解)方法来建立,截止到本文撰写之前已经有大量的研究人员专注于研究如何增强MF,比如将MF与neighbor-based models整合、将MF与item的主题模型相结合、使用因式分解机来建立特征模型等方法。
  • 虽然截止到本文撰写之前的一些工作使用深度学习进行推荐,但他们主要使用它来建模辅助信息,如项目的文本描述、音乐的音频特征和图像的视觉内容,而不是对本身的协同过滤算法进行针对性优化。
  • 使用传统的内积计算形式的MF不足以很好的处理用户用户数据的复杂关系。
  1. 本文模型及方法
  • 一般的MF方法都使用了向量内积的计算方式,而本文提出了一个名为NCF(Neural Collaborative Filtering)的框架,将传统的内积计算方式转化为基于神经网络的计算方式。
  • 本文所提出的方法更关注于隐性反馈,如观看视频、购买商品、点击商品等行为。此种方式与关注显示反馈(如评分和评论)相比,隐性反馈可以自动跟踪,更容易收集需要的信息,但也有其局限性,如很难知道用户对于服务的满意度,负面反馈很难获得。
  • 当前的MF方法可以理解为本文提出的NCF的特化。
  • 使用Jaccard系数评价不同用户的相似程度。
  • 本文中提出的NCF使用多层感知器(MLP)来学习 user - item 的关联,并提出了一种新的基于神经网络的MF模型,它结合了MF的线性和MLP的非线性的优点。
  • 神经网络所预测的 y ^ u i \hat{y}_{ui} y^ui 被定义为 user 喜爱某个 item 的可能概率,所以在输出层使用了逻辑回归函数



看了半天发现其实这模型很简单,就是先将 u s e r user user以及 i t e m item item进行独热编码后建立embedding向量,但是左右两个子模型GMF与MLP各有自己的一套embedding,左边GMF的输入记为 p u G p_u^G puGq i G q_i^G qiG,右边的MLP输入记为 p u M p_u^M puMq i M q_i^M qiM,MLP的激活函数考虑到模型性能使用ReLU。最后通过NeuMF层将两个子模型结合起来,具体算法可见上图公式。

(1) 估计模型参数
为了估计参数Θ,现有的通常方法为使用机器学习来进行预测。一般常用的两种损失函数为 pointwise loss and pairwise loss。其中 pointwise 是普通的机器学习套路,即最小化 y ^ u i \hat{y}_{ui} y^ui 与其目标值 y u i y_{ui} yui 之间的平方损失。而 pairwise 认为已被观察到的数据要远重要于未被观察到的数据,所以它的目标则是最大化已被观察的 y ^ u i \hat{y}_{ui} y^ui 和未被观察的 y ^ u j \hat{y}_{uj} y^uj 之间的差异,即尽可能提高 y ^ u i \hat{y}_{ui} y^ui 的权重同时尽可能减小 y ^ u j \hat{y}_{uj} y^uj 的权重。而本文提出的NCF框架使用神经网络来估计 y ^ u i \hat{y}_{ui} y^ui,它同时支持点pointwise and pairwise learning。

(2) 传统MF的限制

如图a,我们可以发现 u 4 u_4 u4u 1 u_1 u1 最为相似, u 3 u_3 u3 相较于 u 2 u_2 u2 更相似于 u 4 u_4 u4,而在图b中的潜在空间 K 中,我们可以发现 p 1 p_1 p1 虽然最相近与 p 4 p_4 p4,但更相似于 p 4 p_4 p4p 3 p_3 p3p 2 p_2 p2 相比离 p 4 p_4 p4 更远,这就造成了排位误差损失。在本文中通过DNN来学习交互函数以解决这一问题。

(3) GMF ( Generalized Matrix Factorization )

上图为NCF输出层表达式,如果使用一个非线性函数作为激活函数 a o u t a_{out} aout,它可以将MF推广到一个非线性的环境。同时也可以注意到如果调整激活函数 a o u t a_{out} aout以及点乘权重 h T h^T hT可以将上述表达式转化为传统的内积MF计算方式。所以将其称为广义MF。

(4) MLP (Multi-Layer Perceptron)
在本文的NCF中MLP被定义为:

(5) 预训练
由于NeuMF的代价函数不是凸函数,所以使用梯度下降法无法获得全局最优解,为了进一步提升模型性能本文使用了对两个子模型GMF与MLP预训练的方式,使用Adaptive Moment Estimation (Adam) 分别对子模型随机预训练,再使用传统的 SGD 方式对整合的NeuMF层进行总体训练。一般来说经过预训练后唯一需要调整的是输出层。本文提出如下方法来调整输出层。 a a a代表权重

  1. 实验结果
  • 没啥特别的,就随便记一些吧。
  • NeuMF大大超过了最先进的方法eALS和BPR(平均而言,相对于eALS和BPR的提升分别为4.5%和4.9%)
  • 做过预训练的模型与未经过预训练的模型相比的性能提升分别为2.2%和1.1%
  1. 其它
  • pointwise loss 与 pairwise loss

假设我们现在有一个需要补全的用户-商品矩阵 Y Y Y ,记用户为 u u u,物品为 i i i,有交互的样本为正样本 y u i + y_{ui}^+ yui+, 负样本为 y u i − y_{ui}^- yui,负样本可以是除了正样本的所有用户-商品对,也可以从其中进行采样,采样时一种较好的做法是根据物品热度来采样(用户很可能已经见过热门的物品,没有交互说明不感兴趣)

pointwise loss 的思路是最小化模型的预测 y ^ u i \hat{y}_{ui} y^ui与样本对的真实值 y u i y_{ui} yui的误差,一般使用平方误差损失或负对数似然损失。本文认为对于0/1型的交互数据,平方误差损失不是很合理,因为其假设标签服从高斯分布,因此本文采用的是负对数似然损失。

pairwise loss 认为已被观察到的数据要远重要于未被观察到的数据,所以它的的思路是最大化模型对于正样本的预测 y u i + y_{ui}^+ yui+和对负样本的预测 y u i − y_{ui}^- yui的权重差别,一般使用基于margin的loss函数。

  • ⊙表示逐元素乘法,σ 表示sigmoid激活
  • hyperbolic tangent (tanh) 可以被视为sigmoid的缩放版本 t a n h ( x / 2 ) = 2 σ ( x ) − 1 tanh(x/2) = 2σ(x)−1 tanh(x/2)=2σ(x)1
  • sig和tanh会受到饱和的影响,ReLU非常适合稀疏数据,使模型不太可能过拟合
  • embedding层介绍:正在打通传送门!

论文笔记【Neural Collaborative Filtering】相关推荐

  1. 论文笔记:Collaborative Filtering Recommender Systems

    学习随笔,仅记录值得留意的点. 协同过滤的适用领域 PS:适用协同过滤的场景并不一定完全符合下述要求,只是如果下述条件符合会更适合使用CF 数据要求 1.item数量足够多 2.每个item有足够多的 ...

  2. 论文笔记(Neural Collaborative Filtering)

    神经协同过滤 论文链接:Neural Collaborative Filtering, WWW'17 原理:融合 GMF 和 MLP 1. 摘要 虽然最近的一些研究使用深度学习作为推荐,但他们主要是用 ...

  3. 论文笔记:Neural Collaborative Filtering(NCF)

    前言 论文链接:https://arxiv.org/abs/1708.05031 github:https://github.com/yihong-chen/neural-collaborative- ...

  4. 论文笔记:Neural Collaborative Filtering

    一.基本信息 论文题目:<Neural Collaborative Filtering> 发表时间:WWW 2017 作者及单位: 二.摘要 In recent years, deep n ...

  5. Neural Collaborative Filtering【论文笔记】

    文章目录 1 文章为了解决什么问题? 2 文章提出了什么方法? 3 模型架构以及原理? 3.1 推荐问题基本描述 3.2 矩阵分解(Matrix Factorization, MF) 3.3 NCF通 ...

  6. 【推荐系统论文精读系列】(五)--Neural Collaborative Filtering

    文章目录 一.摘要 二.介绍 三.准备知识 3.1 从隐式数据中进行学习 3.2 矩阵分解 四.神经协同过滤 4.1 总体框架 4.1.1 学习NCF 4.2 广义矩阵分解(GMF) 4.3 多层感知 ...

  7. 【科研导向】Outer Product-based Neural Collaborative Filtering (ConvNCF)基于外积的神经协同过滤<论文理解代码分析>

    Outer Product-based Neural Collaborative Filtering--IJCAI'18 文章简介 一.摘要解析 二.技术要点 三.实验部分 代码解析 一.模型构建 二 ...

  8. 【科研导向】Neural Collaborative Filtering 神经协同过滤 <论文理解代码分析>

    Neural Collaborative Filtering--WWW'17 文章简介 一.摘要解析 二.技术要点 三.实验部分 代码解析 一.模型构建 二.难点问题 未来展望 文章简介 该文由何向南 ...

  9. FedNCF:Federated Neural Collaborative Filtering | 联邦神经协同过滤

    论文信息 标题:FedNCF: Federated Neural Collaborative Filtering 作者:Vasileios Perifanis ∗ ^* ∗, Pavlos S. Ef ...

最新文章

  1. oracle双机切换 无法挂载,Linux下Oracle RAC一个节点宕机导致共享存储无法挂载的故障排除...
  2. 《Linux高性能服务器编程》——导读
  3. python监控程序编写_05-python进阶-简单监控程序开发
  4. LVS DR模式 负载均衡服务搭建
  5. log4j配置文件中使用变量
  6. 动态规划—完全背包问题
  7. 王立众:学习多媒体开发从编解码开始
  8. 《魔鸟》:上帝可以宽恕,魔鬼却一个都不放过
  9. wx.getBLEDeviceCharacteristics 微信小程序蓝牙 微信小程序热敏打印机
  10. C++函数指针和类成员函数指针
  11. wx:if 与hidden
  12. 如何制作BAT(Windows批处理文件)病毒
  13. 东芝166打印机装驱动出现inf安装服务段落无效
  14. 泡泡代码c语言,重发一次,带注释的泡泡模拟程序!
  15. android 微信分享多张图片大小,Android 关于微信分享图片过大失败的解决方案
  16. shell脚本中实现远程和其他用户的子shell执行
  17. Embeded linux之网卡驱动
  18. linux下ffmpeg库 ARM交叉编译
  19. 热式气体质量流量计检定规程_最佳实践:热式质量流量计实际标定的安全性和准确性...
  20. 流,向量场,和微分方程

热门文章

  1. html如何连接外部样式表,怎么链接外部css文件?
  2. 二叉树的遍历(递归、非递归)
  3. 【贺图】子兮祝您2015年新春快乐!
  4. IPv4和IPv6的相互转换
  5. Nvidia Maxine 精讲(一)AR-SDK安装使用——BodyTrack 【非官方全网首发】
  6. 极简烟雨图床正式版源码V2.1.3/高速外链图床
  7. 一台服务器控制上百个抖音账号,怎么批量管理上百个抖音,抖音mcn一键高效运营软件...
  8. LORA大模型加速微调和训练算法
  9. 分享RTFM和STFW的意思
  10. OSPF的五类LSA概述