推荐系统(八)FNN模型(FM+MLP=FNN)

news/2024/5/19 22:15:32 标签: 深度学习, 推荐算法, FNN, 计算广告, CTR预估

FNNFMMLPFNNcenter_0">
推荐系统(八)FNN模型(FM+MLP=FNN

推荐系统系列博客:

  1. 推荐系统(一)推荐系统整体概览
  2. 推荐系统(二)GBDT+LR模型
  3. 推荐系统(三)Factorization Machines(FM)
  4. 推荐系统(四)Field-aware Factorization Machines(FFM)
  5. 推荐系统(五)wide&deep
  6. 推荐系统(六)Deep & Cross Network(DCN)
  7. 推荐系统(七)xDeepFM模型

原来是想把FNN和PNN放到一篇博客里一起写了,主要原因有两个:1. 是这两个模型都是交大张伟楠老师及合作者的成果;2. PNN也是对FNN的改进,两者之间存在一定关联。但最终还是决定分开写,因为放到一起会略显杂乱。因此,这篇博客的篇幅应该会相对较短,看起来会很舒服。
言归正传,FNN全称Factorisation Machine supported Neural Network,如果用一句简短的话概括FNN那就是:FM+MLP,如果再用一句稍显复杂的话概括FNN那就是:FNN是一个两阶段训练的模型,阶段一先训练一个FM模型得到每个field的embedding向量,阶段二,基于阶段一的embedding向量初始化MLP的embedding层,然后训练一个MLP(DNN)。

FNN_15">一、FNN模型结构

FNN的整体网络结构如下图所示(图片摘自原论文):
<a class=FNN" width="600" height="491" />
FNN的训练方式带有传统机器学习浓厚的烙印,并不想深度学习模型那样是end-to-end的,而是两阶段训练方式。
阶段一:使用FM模型训练得到每个field的embedding向量。
阶段二:基于阶段一的embedding向量初始化MLP里的embedding向量,也就是上图中的Dense Real Layer。然后训练MLP网络得到最终的模型。

至于FM训练得到的embedding向量如何初始化MLP中的embedding向量,借用一张图能够清晰的看到(图片来自王喆《深度学习推荐系统》):
<a class=FNN_FM_embedding" width="600" height="589" />

FNN_25">二、FNN优缺点

2.1 优点

  1. 一般在end-to-end训练DNN(MLP)的embedding层向量时,都是随机初始化的。而FNN把FM训练好的embedding向量用于初始化DNN的embedding向量,相当于在初始化DNN的embedding向量时引入了先验知识,因此能够更好更快的收敛DNN。

2.2 缺点

正如张伟楠老师在PNN那篇论文中所提到的那样,FNN主要有两个比较大的局限性:

  1. DNN的embedding层质量受限于FM的训练质量。
  2. 在FM中进行特征交叉时使用的是隐向量点积,把FM预训练得到的embedding向量送入到MLP中的全链接层,MLP的全链接层本质上做的是特征间的线性加权求和,即做的是『add』的操作,这与FM有点不太统一。另外,MLP中忽略了不同的field之间的区别,全部采用线性加权求和。

PNN论文中原话如下:

  1. the quality of embedding initialization is largely limited by the factorization machine.
  2. More importantly, the “add” operations of the perceptron layer might not be useful to explore the interactions of categorical data in multiple fields.

关于PNN将在下一篇博客中介绍。


http://www.niftyadmin.cn/n/966995.html

相关文章

ld.so.conf.d/ 不是一_双十一光棍节文案朋友圈说说2020

每年的11月11日&#xff0c;是一年一度的光棍节。光棍节是一种流传于年轻人的娱乐性节日&#xff0c;庆祝自己仍是单身一族。以下是小编为大家准备的双十一光棍节文案朋友圈说说&#xff0c;欢迎大家前来参阅。双十一光棍节文案朋友圈说说1. 过不过光棍节无所谓&#xff0c;只要…

让老版本浏览器支持JSON

2019独角兽企业重金招聘Python工程师标准>>> 一些老旧的浏览器是不支持JSON对象的。可以用下面这个JSON-js库来实现&#xff1a; https://github.com/douglascrockford/JSON-js 转载于:https://my.oschina.net/letiantian/blog/282735

如何编译和安装libevent

&#xfeff;如何编译和安装libevent编译和安装步骤&#xff1a;$ apt-get install git $ git clone https://github.com/libevent/libevent.git $ cd libevent $ apt-get install cmake $ apt-get install libssl-dev $ mkdir build && cd build $ cmake .. # Default…

推荐系统(九)PNN模型(Product-based Neural Networks)

推荐系统&#xff08;九&#xff09;PNN模型&#xff08;Product-based Neural Networks&#xff09;推荐系统系列博客&#xff1a; 推荐系统&#xff08;一&#xff09;推荐系统整体概览推荐系统&#xff08;二&#xff09;GBDTLR模型推荐系统&#xff08;三&#xff09;Fact…

System center 2012 R2 实战六、SCOM2012R2介绍及安装

~~ 诸位&#xff0c;周末好&#xff0c;答应了要写SCOM2012R2&#xff0c;结果这几天一直没写&#xff0c;因为项目那面确实每天都很忙。这会周末&#xff0c;总算是可以轻松下来了&#xff0c;于是我决定今天多写几篇博客。OK&#xff0c;开始正题&#xff0c;说起来&#xff…

brave浏览器_微软、火狐浏览器、Opera浏览器等主流平台纷纷布局IPFS:大势所趋

如今中心化网络出现了非常多的弊端,所以去中心化IPFS顺势而生.微软、Brave、Opera、火狐等主流平台纷纷布局IPFS.2020年2月10日&#xff0c;协议实验室发布了《IPFS 2020年项目重点》&#xff0c;回顾了IPFS在2019年的发展&#xff1a;*IPFS公共网络在2019年增长了30倍&#xf…

系列2:部署刚才的hello servlet到bluemix云

2019独角兽企业重金招聘Python工程师标准>>> 参考:https://www.ng.bluemix.net/docs/#starters/liberty/index.html#liberty 1)打包刚才的servlet3 打包后的大小为4KB C:\IBM\was855nalp\bin> server package simpleServer --archivehellotest.zip --includeus…

推荐系统(十)DeepFM模型(A Factorization-Machine based Neural Network)

推荐系统&#xff08;十&#xff09;DeepFM模型&#xff08;A Factorization-Machine based Neural Network&#xff09;推荐系统系列博客&#xff1a; 推荐系统&#xff08;一&#xff09;推荐系统整体概览推荐系统&#xff08;二&#xff09;GBDTLR模型推荐系统&#xff08;…