我是靠谱客的博主 贤惠白羊,最近开发中收集的这篇文章主要介绍推荐系统(八)FNN模型(FM+MLP=FNN),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

推荐系统(八)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模型结构

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

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

二、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将在下一篇博客中介绍。

最后

以上就是贤惠白羊为你收集整理的推荐系统(八)FNN模型(FM+MLP=FNN)的全部内容,希望文章能够帮你解决推荐系统(八)FNN模型(FM+MLP=FNN)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部