论文笔记 : NCF( Neural Collaborative Filtering)
ABSTRACT
主要点为用MLP来替换传统CF算法中的内积操作来表示用户和物品之间的交互关系.
INTRODUCTION
NeuCF设计了一个基于神经网络结构的CF模型.文章使用的数据为隐式数据,想较于显性数据,implicit feedback更容易获取但比较难处理.文章的主要贡献有以下三点:
(1) 使用神经网络结构对用户以及物品的latent features进行建模,设计了一个通用的NCF框架.
(2) 文章证明了MF是NCF的一个特例,使用MLP赋予NCF获取高阶非线性交互的能力.
(3) 文章对两个真实数据集进行了大量实验,以证明我们的NCF方法的有效性以及深度学习协同过滤的前景。
PRELIMINARIES
隐式数据的描述参照DeepCF中implicit feedback的描述.目标函数的选择有以下两类:
(1) pointwise learning.使用回归框架来计算预测值$\hat{y}_{ui}$以及真实值$y_{ui}$之间的误差.对于隐性反馈的处理,有两种方案:把所有未观测数据当作负样本;从未观测数据中进行负采样获取负样本.
(2) pairwise learning. pairwise核心思想是有用户对有观测的数据(产生过行为的数据)偏好度高与未观测数据.因此pariwise loss是最大化用户产生过行为的物品预测值$\hat{y}_{ui}$以及用户没有产生过行为的物品的预测值$\hat{y}_{uj}$.
使用神经网络来预测的NCF具备pointwise and pairwise learning的特性.
MF的详细介绍点这里,MF的主要局限性在于其使用线性的方法结合用户和物品的latent factor,下图举例论证了该观点:

有学者尝试增加MF隐因的个数来提高其表达能力,这么做会影响MF的泛化能力.
NEURAL COLLABORATIVE FILTERING
流程图如下所示:

文章仅考虑不考虑辅助信息的情况,对于后续可能产生的冷启动问题,可以通过添加辅助信息来解决. hidden layerX的维度决定了模型的容量,模型的预测公式如下:

其中$P\in\Re^{M{\times}K},Q\in\Re^{N{\times}K}$表示的是users以及items的latent factor,$\theta_f$为函数f的参数.
NCF学习问题 文章使用pointwise的方案来计算损失,对应的损失函数如下:

平方损失可以假设观测值是从高斯分布采样出来的,但这假设在implicit data不太行的通. 这里用一个概率的方式来描述这个implicit feedback,$y_{ui}$为用户u与物品i有关系的概率,在上述假设的前提下,模型的似然函数如下:

对应的损失函数如下所示:

这部分的记号和DeepCF中的类似,处理的一个大致的思想也类似,不多说了.(这里负样本的获取是从未观测数据集合从采样而来,采样的比例是一个超参数)
GMF(Generalized Matrix Factorization)是MF在NCF的一个扩展,定义user latent vector $P_u$为${P^T}{V_{u}^{U}}$, item latent vector$q_i$为$Q^T{V_{i}^l}$
定义第一个neural CF layer为:

这里$\odot$表示向量的追元素乘积(不是内积),输出层如下:

文章中设定$a_{out}$为sigmoid函数learns h from data with the log loss.当$a_{out},{h}$分别为激活函数以及输出层边的权重,当$a_out$为实体函数,$h$为值全为1的向量的时候,GMF就退化成朴素的MF.
MLP 结构的描述和DeepCF中类似,文章MLP的激活函数选择的是RELU主要考虑的是函数的饱和性问题,以及RELU激活函数比较适合稀疏的数据.(留个坑)在网络结构的设计上,文章遵循通用的塔形结构(输入层有较多神经元,从输入层到输出层神经元个数逐渐减少).这么做的前提是高层次的较少数的神经元能够从数据中学到较为抽象的数据.
GMF以及MLP的融合
GMF如果和MLP共享embedding layer的话会限制embedding layer的表达能力(两者对embedding layer起码size要求不一样).论文中GMF以及MLP有着独有的embedding layer.通过对两个模型最后的隐层级联来对两个模型进行融合,公式如下所示:

p,q对应user,item的latent factor.通过融合使得NeuCF即有GMF的线性表达能力也有MLP的非线性表达能力.模型的概念图如下所示:

论文笔记 : NCF( Neural Collaborative Filtering)的更多相关文章
- 论文笔记系列-Neural Network Search :A Survey
论文笔记系列-Neural Network Search :A Survey 论文 笔记 NAS automl survey review reinforcement learning Bayesia ...
- 【RS】:论文《Neural Collaborative Filtering》的思路及模型框架
[论文的思路] NCF 框架如上: 1.输入层:首先将输入的user.item表示为二值化的稀疏向量(用one-hot encoding) 2.嵌入层(embedding):将稀疏表示映射为稠密向量( ...
- 论文笔记系列-Neural Architecture Search With Reinforcement Learning
摘要 神经网络在多个领域都取得了不错的成绩,但是神经网络的合理设计却是比较困难的.在本篇论文中,作者使用 递归网络去省城神经网络的模型描述,并且使用 增强学习训练RNN,以使得生成得到的模型在验证集上 ...
- 阅读笔记:Item-based Collaborative Filtering Recommendation Algorithms
概要: 推荐系统通过信息获取技术解决在线的个人的消息.产品或者服务的推荐问题.这些系统,特别是基于k临近协同过滤算法,在网络上取得了广泛的成功.可用信息和访问人数的巨大增加成了推荐系统一个难题.基于商 ...
- 论文笔记: Deep Learning based Recommender System: A Survey and New Perspectives
(聊两句,突然记起来以前一个学长说的看论文要能够把论文的亮点挖掘出来,合理的进行概括23333) 传统的推荐系统方法获取的user-item关系并不能获取其中非线性以及非平凡的信息,获取非线性以及非平 ...
- 【翻译】Neural Collaborative Filtering--神经协同过滤
[说明] 本文翻译自新加坡国立大学何向南博士 et al.发布在<World Wide Web>(2017)上的一篇论文<Neural Collaborative Filtering ...
- 【论文笔记】SamWalker: Social Recommendation with Informative Sampling Strategy
SamWalker: Social Recommendation with Informative Sampling Strategy Authors: Jiawei Chen, Can Wang, ...
- 【论文笔记】 Denoising Implicit Feedback for Recommendation
Denoising Implicit Feedback for Recommendation Authors: 王文杰,冯福利,何向南,聂礼强,蔡达成 WSDM'21 新加坡国立大学,中国科学技术大学 ...
- 【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior
[论文笔记]Malware Detection with Deep Neural Network Using Process Behavior 论文基本信息 会议: IEEE(2016 IEEE 40 ...
随机推荐
- 欧拉法求解常微分方程(c++)
#include<iostream> #include<iomanip> using namespace std; int main() { double x, y, h; ...
- Git 自救指南:这些坑你都跳得出吗?
阅读本文大概需要 2 分钟. 菜单栏中添加我微信,私聊[加群]拉你入微信学习交流群 Git 虽然因其分布式管理方式,不完全依赖网络,良好的分支策略,容易部署等优点,已经成为最受欢迎的源代码管理方式. ...
- 表格样式、表格css、
.mytab{ border-collapse: collapse;}.mytab tr,.mytab td,.mytab th{ text-align: center; border: 1px so ...
- leetcode 877. 石子游戏
题目描述: 亚历克斯和李用几堆石子在做游戏.偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] . 游戏以谁手中的石子最多来决出胜负.石子的总数是奇数,所以没有平局. 亚历克斯和李轮流进行,亚 ...
- 讨厌的linux----vsftpd 匿名上传配置
核心一句话: vsftpd: refusing to run with writable anonymous root 匿名账号的根目录,不允许写入,否则匿名登录 验证失败 只有再 ftp 命令操作, ...
- Kibana启动后外网访问不了
问题 Kibana启动后,使用外网访问 http://ip地址:5601 访问不了日志中最后显示 "statusCode":302 ,在控制台 curl http://localh ...
- Vue 与 动态组件 import 的尝试
<template> <component :is='fuck' :data='data'></component> </template> <s ...
- ios 报错 Invalid row height provided by table delegate. Value must be at least 0.0, or UITableViewAutomaticDi......
Invalid row height provided by table delegate. Value must be at least 0.0, or UITableViewAutomaticDi ...
- 消息中间件 RabbitMQ 入门篇
消息中间件 RabbitMQ 入门篇 五月君 K8S中文社区 今天 作者:五月君,来源:Nodejs技术栈 从不浪费时间的人,没有工夫抱怨时间不够.—— 杰弗逊 RabbitMQ 是一套开源(MP ...
- ES技巧
2, 统计字段b的不同值的数量 {"size":0,"aggs":{"distinct_colors":{"cardinality ...