浅谈推荐,从FM到深度学习

承志
承志
承志
23
文章
0
评论
2021-04-0215:58:22 评论 1,203 1365字
摘要

之前文章当中我们介绍了Embedding对于推荐系统模型的作用,介绍了FFM和AFM的基本原理。本文继续来介绍FM,介绍一下FM之后的几个重要的迭代版本,以及它的发展方向。

一、FNN

首先我们来介绍一下FNN,FNN的全称是Factorisation-machi supported Neural Network,即FM支撑的神经网络。其实这个名字当中信息量很大,我们来做个简单的词法分析,这个短语的主语是神经网络,FM支撑的是一个修饰的定语。也就是说这个模型的本质是神经网络,FM只是这个神经网络的一个特性。

而如果回顾一下FFM以及AFM,你会发现这两个模型的主体还是FM,神经网络是FM的修饰。这里的一个潜在的主语的变化其实是有隐藏信息的,隐藏信息就是学界对于模型的认知正在逐渐变化,正从FM为主体悄然转化成神经网络为主体。这个悄然的变化说明了一个关键信息,以后推荐系统的相关模型,神经网络才是大头。

了解完了这个潜在台词之后,我们再来看看FNN的网络结构。其实FNN的网络结构非常简单,就是FM与神经网络的一个串联。通过FM部分将特征转化成Embedding,之后全部拼接到一起之后,放入MLP(多层感知机)当中做训练。大家参考一下下图很容易就能搞明白。

浅谈推荐,从FM到深度学习

二、PNN

PNN和FNN类似它唯一的区别就是MLP的输入不仅仅是特征的Embedding,还加上了Embedding product的结果。

它的模型结构是这样的:

浅谈推荐,从FM到深度学习

我们关注一下中间的Product Layer,这一层分成了左右两个部分,左边的部分就是特征Embedding,右边的部分是Embedding的两两product的结果,也就是特征之间两两内积的结果。而向量之间product的操作也有好几种,既可以内积也可以外积。但不管是内积还是外积都有一个问题,就是它的数量太多了。对于N维特征的模型来说,它的两两交叉一共有种,这是一个非常庞大的数字。

三、DeepFM

下一个登场的是DeepFM。DeepFM和FNN非常接近,唯一的不同点是FNN的FM部分和MLP是串联,而在DeepFM当中则改成了并联。

大家对照一下下图,就可以发现FM模块输出的Embedding除了直接进入MLP之外,也会在FM层进行FM的两两交叉操作,之后会和MLP的结果一起作为最后一层的输入。

浅谈推荐,从FM到深度学习

四、总结

在这个三个模型当中,前两个基本上都是摆设,真正效果比较不错,在工业界得到广泛使用的还是第三个。因为它既保留了FM原汁原味的两两特征交叉项,也容纳了多层神经网络强大的泛化拟合能力,因此它在FM的基础上得到了进一步的极大提升。

除了模型效果之外,还有一点非常有意思,就是以现在的眼光来看,FNN和PNN其实和FM没有半毛钱关系。因为他们所谓的FM支撑的部分不过是用来进行了Embedding而已,也就是把单个的特征转化成了向量的形式。这个在如今的推荐领域已经成了常规操作、家常便饭,但是在当时还是会被视为是FM的特性,这其实是很鲜明的时代特征。这里也能看得出一个转变,我们推荐领域的模型正在逐渐摆脱FM的束缚,全面迎接神经网络。

那么在摆脱FM迎接神经网络的过程当中又有哪些精彩的模型呢?同样,我先卖个关子,让我们下期揭晓。

End.

爱数据网专栏作者:承志

作者介绍:前阿里人,推荐算法专家,一年更新400篇博文的勤奋作者

个人微信公众号:TechFlow(ID:techflow2019)

本文为挖数网专栏作者原创文章,未经允许禁止转载,需要转载请微信联系授权(微信号:lovedata0520)

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: