论文笔记【Neural Collaborative Filtering】
标题 * 表示未完成
论文原文
本文使用基于神经网络的模型来分析 user 和 item 的潜在特征,最终设计出了一个基于神经网络的协同过滤通用框架(NCF)。此框架融合了线性MF和非线性MLP模型。
- 研究目的
- 在如今,推荐系统在缓解信息过载方面起到了很大的作用,具有大量的商业应用价值,如电子商务、在线新闻和社交媒体网站。本文希望提出一种基于当前大热的神经网络而建立的模型,此模型比传统的model-based协同过滤性能要强。
- 现有方法(研究现状)
- model-based推荐系统一般使用MF(因式分解)方法来建立,截止到本文撰写之前已经有大量的研究人员专注于研究如何增强MF,比如将MF与neighbor-based models整合、将MF与item的主题模型相结合、使用因式分解机来建立特征模型等方法。
- 虽然截止到本文撰写之前的一些工作使用深度学习进行推荐,但他们主要使用它来建模辅助信息,如项目的文本描述、音乐的音频特征和图像的视觉内容,而不是对本身的协同过滤算法进行针对性优化。
- 使用传统的内积计算形式的MF不足以很好的处理用户用户数据的复杂关系。
- 本文模型及方法
- 一般的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 puG与 q i G q_i^G qiG,右边的MLP输入记为 p u M p_u^M puM与 q 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 u4 与 u 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 p4 的 p 3 p_3 p3 与 p 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代表权重
- 实验结果
- 没啥特别的,就随便记一些吧。
- NeuMF大大超过了最先进的方法eALS和BPR(平均而言,相对于eALS和BPR的提升分别为4.5%和4.9%)
- 做过预训练的模型与未经过预训练的模型相比的性能提升分别为2.2%和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】相关推荐
- 论文笔记:Collaborative Filtering Recommender Systems
学习随笔,仅记录值得留意的点. 协同过滤的适用领域 PS:适用协同过滤的场景并不一定完全符合下述要求,只是如果下述条件符合会更适合使用CF 数据要求 1.item数量足够多 2.每个item有足够多的 ...
- 论文笔记(Neural Collaborative Filtering)
神经协同过滤 论文链接:Neural Collaborative Filtering, WWW'17 原理:融合 GMF 和 MLP 1. 摘要 虽然最近的一些研究使用深度学习作为推荐,但他们主要是用 ...
- 论文笔记:Neural Collaborative Filtering(NCF)
前言 论文链接:https://arxiv.org/abs/1708.05031 github:https://github.com/yihong-chen/neural-collaborative- ...
- 论文笔记:Neural Collaborative Filtering
一.基本信息 论文题目:<Neural Collaborative Filtering> 发表时间:WWW 2017 作者及单位: 二.摘要 In recent years, deep n ...
- Neural Collaborative Filtering【论文笔记】
文章目录 1 文章为了解决什么问题? 2 文章提出了什么方法? 3 模型架构以及原理? 3.1 推荐问题基本描述 3.2 矩阵分解(Matrix Factorization, MF) 3.3 NCF通 ...
- 【推荐系统论文精读系列】(五)--Neural Collaborative Filtering
文章目录 一.摘要 二.介绍 三.准备知识 3.1 从隐式数据中进行学习 3.2 矩阵分解 四.神经协同过滤 4.1 总体框架 4.1.1 学习NCF 4.2 广义矩阵分解(GMF) 4.3 多层感知 ...
- 【科研导向】Outer Product-based Neural Collaborative Filtering (ConvNCF)基于外积的神经协同过滤<论文理解代码分析>
Outer Product-based Neural Collaborative Filtering--IJCAI'18 文章简介 一.摘要解析 二.技术要点 三.实验部分 代码解析 一.模型构建 二 ...
- 【科研导向】Neural Collaborative Filtering 神经协同过滤 <论文理解代码分析>
Neural Collaborative Filtering--WWW'17 文章简介 一.摘要解析 二.技术要点 三.实验部分 代码解析 一.模型构建 二.难点问题 未来展望 文章简介 该文由何向南 ...
- FedNCF:Federated Neural Collaborative Filtering | 联邦神经协同过滤
论文信息 标题:FedNCF: Federated Neural Collaborative Filtering 作者:Vasileios Perifanis ∗ ^* ∗, Pavlos S. Ef ...
最新文章
- oracle双机切换 无法挂载,Linux下Oracle RAC一个节点宕机导致共享存储无法挂载的故障排除...
- 《Linux高性能服务器编程》——导读
- python监控程序编写_05-python进阶-简单监控程序开发
- LVS DR模式 负载均衡服务搭建
- log4j配置文件中使用变量
- 动态规划—完全背包问题
- 王立众:学习多媒体开发从编解码开始
- 《魔鸟》:上帝可以宽恕,魔鬼却一个都不放过
- wx.getBLEDeviceCharacteristics 微信小程序蓝牙 微信小程序热敏打印机
- C++函数指针和类成员函数指针
- wx:if 与hidden
- 如何制作BAT(Windows批处理文件)病毒
- 东芝166打印机装驱动出现inf安装服务段落无效
- 泡泡代码c语言,重发一次,带注释的泡泡模拟程序!
- android 微信分享多张图片大小,Android 关于微信分享图片过大失败的解决方案
- shell脚本中实现远程和其他用户的子shell执行
- Embeded linux之网卡驱动
- linux下ffmpeg库 ARM交叉编译
- 热式气体质量流量计检定规程_最佳实践:热式质量流量计实际标定的安全性和准确性...
- 流,向量场,和微分方程