深度学习推荐模型-NFM

本文参考链接,仅供个人学习:

https://github.com/datawhalechina/team-learning-rs/tree/master/DeepRecommendationModel

知乎-推荐NFM

相关学习书籍推荐:《深度学习推荐系统》王喆

推荐算法-NFM

FM对于特征的组合仅限于二阶,缺少对特征之间深层次关系的抽取。因此,NFM提出来就是在FM的基础上引入神经网络,实现对特征的深层次抽取。

NFM Model

与FM(因式分解机)相似,NFM使用实值特征向量。给定一个稀疏向量x∈Rn作为输入,其中特征值为xi=0表示第i个特征不存在,NFM预估的目标为:

其中第一项和第二项是线性回归部分,与FM相似,FM模拟数据的全局偏差和特征权重。第三项f(x)是NFM的核心组成部分,用于建模特征交互。它是一个多层前馈神经网络。

NFM的模型结构图:

首先输入就是离散化的特征,然后再进行embedding操作,获得每一个特征的向量表示。接着就到了Bi-interaction Pooling层,这里其实就是FM部分。FM的公式如下图所示:

去掉最外层的累加号,我们得到的是一个长度为K的向量,也就是embedding部分的长度。然后再对这个向量送入几层全连接层即可,最后输出ctr预估值。这就是NFM的整体思路。

1.Embedding Layer

和其他的DNN模型处理稀疏输入一样,Embedding将输入转换到低维度的稠密的嵌入空间中进行处理。这里做稍微不同的处理是,使用原始的特征值乘以Embedding vector,使得模型也可以处理real valued feature。

2.B-Interaction Layer

Bi是Bi-linear的缩写,这一层其实是一个pooling层操作,它把很多个向量转换成一个向量,形式化如下:

fbi的输入是整个的嵌入向量,xi ,xj是特征取值,vi, vj是特征对应的嵌入向量。中间的操作表示对应位置相乘。所以原始的嵌入向量任意两个都进行组合,对应位置相乘结果得到一个新向量;然后把这些新向量相加,就得到了Bi-Interaction的输出。这个输出只有一个向量。

3.Hidden Layer

这个跟其他的模型基本一样,堆积隐藏层以期来学习高阶组合特征。一般选用constant的效果要好一些。

4.Prediction Layer

最后一层隐藏层Zl到输出层最后预测结果形式化如下:

其中h是中间的网络参数。考虑到前面的各层隐藏层权重矩阵,f(x)形式化如下:

这里相比于FM其实多出的参数其实就是隐藏层的参数,所以说FM也可以看做是一个神经网络架构,就是去掉隐藏层的NFM。

NFM主要的特点:

1. NFM核心就是在NN中引入了Bilinear Interaction(Bi-Interaction) pooling操作。基于此,NN可以在low level就学习到包含更多信息的组合特征。

2. 通过deepen FM来学习高阶的非线性的组合特征。

3. NFM相比于上面提到的DNN模型,模型结构更浅、更简单(shallower structure),但是性能更好,训练和调整参数更加容易。

所以,依旧是FM+DNN的组合套路,不同之处在于如何处理Embedding向量,这也是各个模型重点关注的地方。现在来看业界就如何用DNN来处理高维稀疏的数据并没有一个统一普适的方法,依旧在摸索中。

深度学习推荐模型-NFM相关推荐

  1. NVIDIA GPUs上深度学习推荐模型的优化

    NVIDIA GPUs上深度学习推荐模型的优化 Optimizing the Deep Learning Recommendation Model on NVIDIA GPUs 推荐系统帮助人在成倍增 ...

  2. 深度学习推荐模型-DIN

    深度学习推荐模型-DIN 本文参考链接,仅供个人学习: https://github.com/datawhalechina/team-learning-rs/tree/master/DeepRecom ...

  3. 深度学习推荐模型-DeepFM

    深度学习推荐模型-DeepFM 本文参考链接,仅供个人学习: https://github.com/datawhalechina/team-learning-rs/tree/master/DeepRe ...

  4. 深度学习推荐模型-DeepCrossing

    深度学习推荐模型-DeepCrossing 本文参考链接,仅供个人学习:https://github.com/datawhalechina/team-learning-rs/tree/master/D ...

  5. Facebook 面向个性化推荐系统的深度学习推荐模型

    作者:王鸣辉 整理:Hoh Xil 来源:http://wd1900.github.io/#blog https://www.zhihu.com/people/wang-ming-hui-38/pos ...

  6. 深度学习推荐模型-WideDeep

    本文参考链接,仅供个人学习: https://github.com/datawhalechina/team-learning-rs/tree/master/DeepRecommendationMode ...

  7. 保存模型后无法训练_如何解决推荐系统工程难题——深度学习推荐模型线上serving?...

    这里是「王喆的机器学习笔记」的第二十三篇文章,这篇文章希望讨论的问题是深度推荐模型的线上serving问题. 对于推荐模型的离线训练,很多同学已经非常熟悉,无论是TensorFlow,PyTorch, ...

  8. 【推荐算法】深度学习推荐算法综述 Deep Learning based Recommender System: A Survey and New Perspectives

    一.MLP based Recommender System 1. Deep Crossing模型 Deep Crossing模型完整的解决了从特征工程.稀疏向量稠密化.多层神经网络进行优化目标拟合等 ...

  9. 「DLP-KDD 2021征文」及上届论文全集,包含深度学习推荐/广告系统、多目标、模型服务等

    「DLP-KDD 2021征文」及上届论文全集,包含深度学习推荐/广告系统.多目标.模型服务等 在DLP-KDD 2021征稿之际,为大家准备了DLP-KDD2020的全部文章和资源列表,内容涵盖了几 ...

最新文章

  1. nodejs报错解决:Error: Can only perform operation while paused. - undefined
  2. Java assert
  3. 【CentOS 7】 yum源安装mysql5.6
  4. CentOS7Selinux设置
  5. 【docker】第二节:安装nginx、mysql、php
  6. python 之 string() 模块
  7. 基于 vue + zhengAdmin 的一套后台模板
  8. 实验10.  Hadoop环境搭建
  9. 关于IE6 双倍间距的真正原因
  10. 设计模式-工厂模式的3中不同实现[JAVA]
  11. File.createTempFile创建临时文件
  12. 夜光带你走进python开发 (十七)传奇语言
  13. 魔百盒CM211-2系列(ZG/CH/YS)海思MV300H/310芯片-刷机固件及教程
  14. [面经整理] 机器/深度学习补充篇
  15. Allegro Shape菜单详解
  16. 「机器学习速成」嵌套:高维度数据映射到低维度空间
  17. Cocos2d-x + Android + Eclipse + Windows 8
  18. 华为大数据平台FusionInsight HD部署中遇到的问题汇总
  19. springboot项目通过gradle制作webjars
  20. air playit在安卓4.0下崩溃

热门文章

  1. Google Chrome 源码下载地址 (Google Chrome Source Code Download)
  2. 【数据结构】广义表的默认成员函数、深度、大小、打印
  3. CentOS7 安装管理KVM虚拟机
  4. 程序员面试金典——2.4链表分割
  5. LeetCode 144. 树的前序遍历迭代写法
  6. 【机器学习】Pima数据探索--七种武器
  7. 运用提示原则证明线性无关
  8. Windows设置共享文件夹,ubuntu访问
  9. 内存:DDR2与DDR
  10. 详解Python的装饰器