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)的更多相关文章

  1. 论文笔记系列-Neural Network Search :A Survey

    论文笔记系列-Neural Network Search :A Survey 论文 笔记 NAS automl survey review reinforcement learning Bayesia ...

  2. 【RS】:论文《Neural Collaborative Filtering》的思路及模型框架

    [论文的思路] NCF 框架如上: 1.输入层:首先将输入的user.item表示为二值化的稀疏向量(用one-hot encoding) 2.嵌入层(embedding):将稀疏表示映射为稠密向量( ...

  3. 论文笔记系列-Neural Architecture Search With Reinforcement Learning

    摘要 神经网络在多个领域都取得了不错的成绩,但是神经网络的合理设计却是比较困难的.在本篇论文中,作者使用 递归网络去省城神经网络的模型描述,并且使用 增强学习训练RNN,以使得生成得到的模型在验证集上 ...

  4. 阅读笔记:Item-based Collaborative Filtering Recommendation Algorithms

    概要: 推荐系统通过信息获取技术解决在线的个人的消息.产品或者服务的推荐问题.这些系统,特别是基于k临近协同过滤算法,在网络上取得了广泛的成功.可用信息和访问人数的巨大增加成了推荐系统一个难题.基于商 ...

  5. 论文笔记: Deep Learning based Recommender System: A Survey and New Perspectives

    (聊两句,突然记起来以前一个学长说的看论文要能够把论文的亮点挖掘出来,合理的进行概括23333) 传统的推荐系统方法获取的user-item关系并不能获取其中非线性以及非平凡的信息,获取非线性以及非平 ...

  6. 【翻译】Neural Collaborative Filtering--神经协同过滤

    [说明] 本文翻译自新加坡国立大学何向南博士 et al.发布在<World Wide Web>(2017)上的一篇论文<Neural Collaborative Filtering ...

  7. 【论文笔记】SamWalker: Social Recommendation with Informative Sampling Strategy

    SamWalker: Social Recommendation with Informative Sampling Strategy Authors: Jiawei Chen, Can Wang, ...

  8. 【论文笔记】 Denoising Implicit Feedback for Recommendation

    Denoising Implicit Feedback for Recommendation Authors: 王文杰,冯福利,何向南,聂礼强,蔡达成 WSDM'21 新加坡国立大学,中国科学技术大学 ...

  9. 【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior

    [论文笔记]Malware Detection with Deep Neural Network Using Process Behavior 论文基本信息 会议: IEEE(2016 IEEE 40 ...

随机推荐

  1. 驱动中遍历模块,以及获取ntoskrnl.exe基址

    方法是基于PsLoadModuleList方式 驱动中遍历模块 一丶简介 简介: 进入内核了.遍历内核中使用的模块该怎么办. 其实在驱动中.我们的DriverEntry入口位置. 提供了两个参数. 一 ...

  2. 花了两个星期,我终于把 WSGI 整明白了

    在 三百六十行,行行转 IT 的现状下,很多来自各行各业的同学,都选择 Python 这门胶水语言做为踏入互联网大门的第一块敲门砖,在这些人里,又有相当大比例的同学选择了 Web 开发这个方向(包括我 ...

  3. TypeError: BlobBuilder is not a constructor

    var BlobBuilder = window.BlobBuilder || window.MozBlobBuilder || window.WebKitBlobBuilder || window. ...

  4. Ubuntu16.04.1上搭建分布式的Redis集群,并使用C#操作

    为什么要集群: 通常为了,提高网站的响应速度,总是把一些经常用到的数据放到内存中,而不是放到数据库中,Redis是一个很好的Cache工具,当然了还有Memcached,这里只讲Redis.在我们的电 ...

  5. Cesium中的几种坐标和相互转换【转】

    几个重要的坐标对象:1.世界坐标 Cartesian3:笛卡尔空间直角坐标系 new Cesium.Cartesian3(x, y, z) 可以看作,以椭球中心为原点的空间直角坐标系中的一个点的坐标. ...

  6. php 对接微信接口 {"errcode":41001,"errmsg":"access_token missing hint

    这里是针对所有token微信都有这种机制 1.token被多次访问无效 访问微信接口->得到token,缓存起来2小时内有效,期间2小时内每次都取缓存即可,不必每次都去微信那边兑换 问题:缓存期 ...

  7. tp的ajaxReturn后, 还要用echo $rt吗?

    首先你要看 ajaxReturn的原型: protected function ajaxReturn ($data, $type='', $json_option=0){ ........ switc ...

  8. [转]TrueType字体结构

    TrueType字体通常包含在单个TrueType字体文件中,其文件后缀为.TTF. OpenType字体是以类似于TrueType字体的格式编码的POSTSCRIPT字体.OPENTYPE字体使用. ...

  9. osg geometry清空vertex

    _vertices->clear(); _vertices->dirty(); _drawArrays->set(sog::PrimitiveSet::POINTS,0,0); _g ...

  10. 转 oracle 正则表达式和查询最大文件号 SQL

    ###sample 1 https://www.cnblogs.com/lxl57610/p/8227599.html Oracle使用正则表达式离不开这4个函数: 1.regexp_like 2.r ...