专栏首页AI科技时讯Factorization Machine模型的各种变式

Factorization Machine模型的各种变式

设为星标,第一时间获取更多干货

FM模型最早由Steffen Rendle在2010年提出,解决了稀疏数据场景下的特征组合问题,在广告、推荐等领域被广泛使用。FM模型简单而且效果好,可以作为业务初期快速取得收益,为后续持续迭代提供一个较强的baseline。FM模型从首次提出到现在已经过去七八年时间,这期间的研究进展如何呢?比如:

  • FM类模型有哪些改进?
  • 哪些模型或者应用引入了FM思想?
  • 近期的顶会针对FM有哪些改进工作?
  • 工业界大规模数据场景下如何分布式训练FM模型?

这一连串的问题代表了学术界和工业界对FM模型关于如何优化和实际应用的深入思考。带着这些问题,下文中笔者根据自己的理解将从不同方面对FM模型的演进进行介绍。文中涉及到的公式进行统一表示来方便读者理解,并为读者提供了参考文献的链接。

一、区别特征交互作用

这部分模型的演进思路就是根据假设来增加参数量(即模型复杂度)来提高模型表达能力。FFM模型参数量太大,一则容易过拟合,二则不利于线上大规模部署(内存压力)。笔者更倾向于Field-weighted FM,简单有效,在效果和实际应用上做了很好的tradeoff。

  • FM

文章链接:csie.ntu.edu.tw/~b97053

  • Field-aware FM

文章链接:csie.ntu.edu.tw/~r01922

FM中一个特征只对应一个向量,而在实际场景中特征和不同field的特征交互时应该使用不同的向量,这就是Field-aware FM(FFM)的提出动机。FFM最早由阮毓钦提出,最早在kaggle上大放异彩,现在在业界也有一定使用。

  • Attentional FM

文章链接:Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks

这篇文章发表在IJCAI 2017。区分不同特征相互作用的方式不再像ffm那么笨重,而且用一个神经网络学习得到参数

,总体参数量增加不明显。

  • Field-weighted FM

文章链接:[1806.03514] Field-weighted Factorization Machines for Click-Through Rate Prediction in Display Advertising

这篇文章发表在WWW 2018。区分不同特征相互作用非常简单直接。具体方法是针对每两个特征增加一个参数,这样相对FM模型只增加

个参数(k是field数目)。

二、和深度学习结合

这部分模型的思路,特别是DeepFM,已经被工业界快速跟进和借鉴到推荐、搜索等业务场景。

  • DeepFM

文章链接:DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

这篇发表在IJCAI 2017。DeepFM主要是基于Wide&Deep框架改进,将其中wide部分换成fm进行二阶交叉。

  • NFM

文章链接:Neural Factorization Machines for Sparse Predictive Analytics

这篇发表在SIGIR 2017。FM最终二阶交叉相加后得到k维的向量,NFM是将该k维的向量输入给全连接,而不是像FM直接加起来作为最终结果。可以认为FM模型是NFM的一个子集。

三、和Learning to Rank结合

这部分和工业界中的排序场景联系紧密,可做参考。

  • Pairwise FM

文章链接:Exploiting ranking factorization machines for microblog retrieval

这篇文章发表在CIKM 2013。LTR中的pairwise是挑选一个正负样本对作为一个新的样本,具体就是

。如果

,则就是PairWise FM。那如果

则就是很有名的RANKSVM。

  • Lambda FM

文章链接:LambdaFM

这篇文章发表在CIKM 2016。主要贡献是将LambdaRank的思想加入到Pairwise FM中。github上有个开源实现CastellanZhang/lambdaFM,支持FTRL优化,支持单机多线程。

四、分布式训练

在实际应用中,一旦训练数据量上升到大几百G或者1T以上的级别,即使采用单机多线程训练,也会严重阻碍模型调研的速度。所以说在工业界做模型的分布式训练是有真实的业务需求驱动,相信大厂都有成熟的基于ps的FM轮子。对于大规模分布式机器学习感兴趣的读者建议细读下面两篇文章。

  • DiFacto

文章链接:cs.cmu.edu/~muli/file/d

这篇发表在WSDM 2016。主要针对FM算法,基于Parameter Server进行梯度的异步更新。在github上也有开源,但是后面不怎么维护了。

  • F2M

文章链接:net.pku.edu.cn/vc/paper

这篇发表在NIPS 2016。这篇文章主要是提出了基于Ps架构的FFM算法。

五、更高阶特征交叉

  • High-Order FM

文章链接:Higher-Order Factorization Machines

这篇文章发表在NIPS 2016。传统意义上讲FM都是二阶交叉,计算复杂度可通过数学变换将时间复杂度改进到线性时间,在实际应用中一般也只用到二阶交叉。这篇文章解决了三阶甚至更高阶的特征交叉问题。

六、其他变种

  • Robust FM

文章链接:Robust Factorization Machines for User Response Prediction

这篇发表在WWW 2018。文章引入了robust optimization的思想,增加

分别在一次项和二次项的时候表示噪声。

  • Discrete FM

文章链接:[1805.02232] Discrete Factorization Machines for Fast Feature-based Recommendation

这篇发表在IJCAI 2018。这篇文章主要解决FM在一些特殊场景下模型容量和计算耗时偏大的问题。FM中隐向量

,每个元素是实数值,而在Discrete FM中,隐向量

。最终模型效果相对FM有下降,但是效率大大提升。

  • SFTRL FM

文章链接:Sketched Follow-The-Regularized-Leader for Online Factorization Machine

https://zhuanlan.zhihu.com/p/52877868

本文分享自微信公众号 - AI科技时讯(aiblog_research),作者:知乎

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • FM:Factorization Machines

    我们先从Logistic Regression出发,回顾一下LR的Score Function

    用户3578099
  • FNN: Deep Learning over Multi-field Categorical Data

    原论文:Deep learning over multi-field categorical data

    用户3578099
  • 关于CNN图像分类的一份综合设计指南

    对于计算机视觉任务而言,图像分类是其中的主要任务之一,比如图像识别、目标检测等,这些任务都涉及到图像分类。而卷积神经网络(CNN)是计算机视觉任务中应用最为...

    用户3578099
  • 分解机(Factorization Machines)推荐算法原理

        对于分解机(Factorization Machines,FM)推荐算法原理,本来想自己单独写一篇的。但是看到peghoty写的FM不光简单易懂,而且排...

    刘建平Pinard
  • 一文看懂 FM ( Factorization Machine ) 模型的各种变式

    FM 模型最早由 Steffen Rendle 在2010年提出,解决了稀疏数据场景下的特征组合问题,在广告、推荐等领域被广泛使用。FM 模型简单而且效果好,可...

    石晓文
  • FM:Factorization Machines

    我们先从Logistic Regression出发,回顾一下LR的Score Function

    用户3578099
  • 解决eclipse中egit中的cannot open git-upload-pack问题

      今天在使用eclipse的egit插件进行检出远程代码到本地时,出现了cannot open git-upload-pack错误,后经过努力解决该问题,记录...

    阿豪聊干货
  • 5G网络切片及其需求

    5G网络切片能够支持特定连接类型的通信服务,并以特定的方式处理该服务的控制和用户平面。网络切片是在一个网络基础设施上提供了逻辑上独立的网络,以满足多样化的服务需...

    SDNLAB
  • url空格转码的问题

    最开始我使用的是chrome,发现有脚本报错了,以为是服务器维护了,但再一想,不对啊,刚刚明明是好的,再返回首页,正常。再输入搜索信息,又遇到了这个界面。然后我...

    meteoric
  • 【Java入门提高篇】Day32 Java容器类详解(十四)ArrayDeque详解

      今天来介绍一个不太常见也不太常用的类——ArrayDeque,这是一个很不错的容器类,如果对它还不了解的话,那么就好好看看这篇文章吧。

    弗兰克的猫

扫码关注云+社区

领取腾讯云代金券