目录

  • 2 PRELIMINARIES
  • 3. NEURAL COLLABORATIVE FILTERING
    • 3.1 通用框架
    • 3.2 广义矩阵分解(GMF)
    • 3.3 MLP
    • 3.4 GMF和MLP的聚合—NeuMF
  • 4 EXPERIMENTS
    • Q1 NCF的效果比其他SOTA的隐式CF好吗?
    • Q2 带有负采样的log loss(这个优化框架)是否适用于RS?
    • Q3 更深的网络对于从交互数据中学习 有帮助吗?

核心: 内积的局限性,用神经结构代替内积。实验表明,使用更深层次的神经网络提供了更好的推荐性能。

2 PRELIMINARIES

隐反馈交互


目标函数分为ponit-wise和pair-wise loss:

  • ponit-wise,最小化预测值和实际值之间的差距,预测rmse,二分类Logloss
  • pair-wise,最大化正样本和负样本之间的差距,bpr, margin-based loss等

矩阵分解可以看作隐表示的加和,每个维度的贡献相同

内积的局限性例子,p4和p1最接近,然后是p3,最后是p2;但是p4和p1靠近之后,会改变p2、p3对于p4的相似性,距离与真正相似性不符合。解决这个问题的一个方法就是增大隐表示的维度,但是会破坏模型的泛化性(个人认为就是造成过拟合),本文通过使用DNN来学习交互函数来解决这个限制。

3. NEURAL COLLABORATIVE FILTERING

3.1 通用框架


输入都只含用户和物品的id,通过嵌入来得到对应的表示,还可以用content来获取用户或者物品的表示,以此解决冷启动问题。NCF层的每一层都可以定制,用以发现用户-项目交互的某些潜在结构。最后一个隐藏层X的维数决定了模型的能力。
NCF的形式化表示为:

前面两项表示 用户表示和物品表示;后面三项表示用户嵌入表、物品嵌入表、参数

使用ponitwise的损失函数:

3.2 广义矩阵分解(GMF)


让 aout=1a_{out}=1aout​=1,hhh 为各维度为1的向量,就相当于矩阵分解MF。如果我们允许h在没有统一约束的情况下从数据中学习,它将导致MF的变体,允许潜在维度的不同重要性。

本文所说的GMF就是输出为sigmoid,学习h,允许每一维度贡献不同。

3.3 MLP

将用户表示和物品表示concat,没有考虑用户和项潜在特征之间的任何交互,这不足以模拟协作过滤效果。为了解决这个问题,本文在concat向量上添加隐藏层,使用标准MLP来学习用户和项潜在特征之间的交互。
concat+MLP

采用relu激活函数,因为它使用稀疏的激活,一定程度上缓解了过拟合问题,(sigmoid,tanh遭受饱和的问题,当sigmoid输出为0,1附近时,神经元不再学习)。采用塔形结构( tower pattern),(比如200-100-10这种),对于较高的层使用少量的隐藏单元,它们可以学习更抽象的数据特征。(可以关注一下塔形结构为什么有这种优点)

3.4 GMF和MLP的聚合—NeuMF

到目前为止,提出了了两个NCF的实例化:

  • GMF应用线性内核来建模潜在特征交互
  • MLP使用非线性内核从数据中学习交互函数。

一个方法就是两者共享嵌入层,和Neural Tensor Network (NTN)的思想一致:
这里自己的疑问:就只有一层MLP吗?没有多层?

共享GMF和MLP的嵌入可能会限制融合模型的性能。我们允许GMF和MLP学习单独的嵌入,并通过concat它们的最后一个隐藏层来组合这两个模型。


使用GMF和MLP的预训练模型初始化NeuMF, 把GMF和MLP先单独学习,得到稳定的参数之后,作为NeuMF的初始化参数。唯一的调整是在输出层:(问题,concat还要用 α\alphaα ??)

预训练的时候用Adam;NeuMF中用原始的SGD。这是因为Adam需要保存动量信息来正确更新参数。

4 EXPERIMENTS

实验设置说的比较详细,可以参考。并且两个数据集也能参考。
留一法 评估,每位用户选最新的点击作为test,其他作为train。随机抽取100个未由用户交互的项目,将测试项目排序在100个项目中。
指标选用HR,NDCG,计算每个测试用户的这两个指标,并使用平均分数。
对于每位用户,随机选一个已有的交互作为验证集,来调整参数。对于每个正样本,随机选4个负样本。

Q1 NCF的效果比其他SOTA的隐式CF好吗?


还做了p检验

Q2 带有负采样的log loss(这个优化框架)是否适用于RS?

pointwise损失相对于pairwise损失的一个优点是负样本的灵活采样比。pairwise对于一个正样本只能对比一个负样本(pairwise一个正样本不能对比多个负样本吗??),但是point-wise可以对每一个正样本采取多个负样本。

Q3 更深的网络对于从交互数据中学习 有帮助吗?

结果表明使用更深的模型对于协同过滤能更有效。


Neural Collaborative Filtering 1相关推荐

  1. 论文笔记(Neural Collaborative Filtering)

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

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

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

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

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

  4. 论文笔记【Neural Collaborative Filtering】

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

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

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

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

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

  7. NCF(Neural Collaborative Filtering)——协同过滤与神经网络的结合

    Neural Collaborative Filtering paper 关于协同过滤 协同过滤简而言之就是物以类聚人以群分,在真实场景中,通常会获得一张用户物品交互表,其实就是一个矩阵M, M [ ...

  8. 神经协同过滤Neural Collaborative Filtering(NCF)

    Neural Collaborative Filtering 简述 矩阵分解(MF) NCF 1.GMF 广义矩阵分解 2.MLP(多层感知机) 3.NeuMF 实验 简述 这篇论文是何向南博士所写 ...

  9. Neural Collaborative Filtering(NCF)(a improvement to MF)

    这篇文章主要是用深度学习做推荐,发表在WWW上的,NUS的何向南博士 代码地址:https://github.com/hexiangnan/neural_collaborative_filtering ...

最新文章

  1. [转]Linux 微擎系统搭建
  2. windows10 安装docker
  3. 详析数字图像中高斯模糊理论及实现
  4. 【BZOJ 1266】 [AHOI2006]上学路线route
  5. flink編譯hadoop3.1.2(失败,这个问题没有意义,关闭)
  6. 生成指定大小的空文件
  7. 【学习笔记】Xcode常见设置
  8. devc++鼠标变成了光标_游戏鼠标选购避坑指南 教你如何轻松选择适合自己的鼠标...
  9. 在html标签中写css样式,html style样式标签元素教程
  10. 计算机人工智能领域英文文献,人工智能英文文献译文.doc
  11. 软考网络工程师历年知识点总结(结合历年来真题内容总结)
  12. Operator基础:2: Operator SDK安装
  13. torch.nn.Embedding(num_embeddings, embedding_dim)的理解
  14. 高德地图大头针功能_关于高德地图遇到的自定义大头针的坑
  15. WSL2配置docker和PHP
  16. 文档翻译工具有哪些?Word文档翻译方法介绍
  17. 鬼故事之中学异事(01)
  18. 大一计算机基础excel文档,大一计算机应用基础办公自动化软件深入Excel复习用PPT课件.ppt...
  19. 两年老网站IP100 到底错哪儿了?
  20. anaconda使用和入门

热门文章

  1. 刀片计算机学习资料第192篇:6U VPX i7 刀片计算机
  2. 【电路】电容(一)——浅析大小电容的高低频滤波、并联问题
  3. 中国自动化学科发展及控制界名人简介
  4. 移动设备管理(MDM)与OMA(OTA)DM协议向导(一)——从WiMAX讲起
  5. layout_centerVertical=true用法
  6. 性能测试怎么做?性能测试指标,常用性能测试工具
  7. 数据仓库简介、数据仓库的发展、数仓理论简介
  8. 机器学习-线性模型及广义线性模型
  9. 基于stm32f4的按键检测
  10. 在Ubuntu PHP中基于wxsqlite3扩展使用加密的Sqlite数据库