神经协同过滤

论文链接:Neural Collaborative Filtering, WWW’17
原理:融合 GMF 和 MLP

1. 摘要

虽然最近的一些研究使用深度学习作为推荐,但他们主要是用深度学习来建模辅助信息,例如 item 的文本描述。在表示协同过滤的关键因素——用户和项目特征之间的交互时,仍然使用矩阵分解等用内积来建模。
通过用一种能从数据中学习任意函数的神经结构代替内积,提出了一种通用的神经网络协同过滤框架 NCF。为了使非线性的 NCF 模型更加完善,我们提出利用 MLP 来学习用户-项目交互函数

关于Matrix Factorization
将用户和项映射到同一潜在空间,用用户向量和项向量的内积来评估他们之间的交互。
但当潜在空间的维度 K 小的时候会存在一些限制,而扩大 K 的话会有损模型的泛化能力。

2. 模型

2.1 GMF(Generalized Matrix Factorization )

我们称之为GMF(Generalized Matrix Factorization,广义矩阵分解)
PTVUu 表示用户的潜在向量 pu ,QTVIi表示项目的潜在向量 qi,定义第一层神经CF层的映射函数为:

然后,将向量映射到输出层:

2.2 MLP (Multi-Layer Perceptron)

用MLP(多层感知机)来学习用户和项目潜在特征之间的相互作用。MLP模型定义为:

采用塔层结构,每一层比上一层的单元数减少一半。

2.3 Fusion of GMF and MLP

GMF:应用了一个线性内核来模拟潜在的特征交互
MLP:使用非线性内核从数据中学习交互函数

为了使得融合模型具有更大的灵活性,允许GMF和MLP学习独立的嵌入,并结合两种模型通过连接他们最后的隐层输出。图中展示了方案,公式如下:

该模型结合MF的线性度和DNNs的非线性度,用以建模用户-项目之间的潜在结构。我们将这一模式称为“NeuMF”,简称神经矩阵分解(Neural Matrix Factorization)。

2.4 Pre-training

由于NeuMF的目标函数的非凸性,基于梯度的优化方法只能找到局部最优解。由于 NeuMF 是 GMF 和 MLP 的组合,我们建议使用 GMF 和 MLP 的预训练模型来初始化NeuMF。
我们首先训练随机初始化的 GMF 和 MLP 直到模型收敛。然后,我们用它们的模型参数初始化 NeuMF 相应部分的参数。唯一的调整是在输出层,在那里我们将两者用权重连接起来:

对于从头开始训练的 GMF 和 MLP ,我们采用自适应矩估计(Adam,Adaptive Moment Estimation),它通过对不频繁的参数进行频繁和更大幅度的更新来适应每个参数的学习速率。Adam方法在两种模型上的收敛速度都比普通SGD快,并缓解了调整学习率的痛苦。在将预先训练的参数输入NeuMF之后,我们用普通SGD而不是Adam进行优化。 这是因为Adam需要保存更新参数的动量信息(momentum information)。因为我们用预先训练的模型参数初始化NeuMF,并且放弃保存动量信息,不适合用基于动量的方法进一步优化NeuMF。

论文笔记(Neural Collaborative Filtering)相关推荐

  1. 论文笔记:Collaborative Filtering Recommender Systems

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

  2. 论文笔记【Neural Collaborative Filtering】

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

  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. 没有了SA密码,无法Windows集成身份登录,DBA怎么办?
  2. 多线程之:用户态和内核态的区别
  3. FragmentTabHost的应用
  4. 车险赔付率分析报告_车险改革究竟是涨价还是降价了?9月19号后买会便宜吗?...
  5. java java se_Java 8 SE可选,严格的方法
  6. 关于C语言野指针的问题
  7. 二进制转换 html,javascript 处理回传的二进制图像并显示在html上
  8. Android开发笔记(一百五十二)H5通过WebView上传图片
  9. 【实习】T100开发学习笔记
  10. Linux进程地址空间和虚拟内存
  11. 游戏服务器的架构设计(一点参考,实际价值似乎不大……)
  12. 【爱你 祖国】细看我国智能无人机如何从无到有?都是被逼出来的!
  13. 博文视点大讲堂第18期:从草根到巨人——互联网时代的LAMP开源架构
  14. VS2010 快捷键设置,快速编码1
  15. mysql建库图解_MySQL数据库安装图解
  16. element上传图片至最大限制数量时,隐藏上传按钮
  17. 小程序体积优化(1)--优化大文本
  18. 图片公式提取至文档word
  19. TiDB HTAP 深度解读
  20. [Android踩坑]解决百度定位无法自动定位的问题

热门文章

  1. android系统开发(六)-HAL层开发基础
  2. GetDlgItem
  3. C++ 解析Json
  4. mysql set语句_mysql--乱码解决(6)
  5. 【Pytorch神经网络实战案例】25 (带数据增强)基于迁移学习识别多种鸟类(CUB-200数据集)
  6. 七、MySQL DDL数据定义语言 学习笔记(库和表的创建、修改、删除详解 + 强化复习)
  7. LeetCode 2071. 你可以安排的最多任务数目(二分查找)
  8. 05.序列模型 W2.自然语言处理与词嵌入(作业:词向量+Emoji表情生成)
  9. LeetCode 823. 带因子的二叉树(动态规划)
  10. LeetCode MySQL 1364. 顾客的可信联系人数量