内容简介:文章作者:杨镒铭 滴滴出行
文章作者:杨镒铭 滴滴出行
内容来源: 记录广告、推荐等方面的模型积累@知乎专栏
出品社区:DataFun
注:欢迎转载,转载请注明出处
FM 模型最早由 Steffen Rendle 在2010年提出,解决了稀疏数据场景下的特征组合问题,在广告、推荐等领域被广泛使用。FM 模型简单而且效果好,可以作为业务初期快速取得收益,为后续持续迭代提供一个较强的 baseline 。FM 模型从首次提出到现在已经过去七八年时间,这期间的研究进展如何呢?比如:
-
FM 类模型有哪些改进?
-
哪些模型或者应用引入了 FM 思想?
-
近期的顶会针对 FM 有哪些改进工作?
-
工业界大规模数据场景下如何分布式训练 FM 模型?
这一连串的问题代表了学术界和工业界对 FM 模型关于如何优化和实际应用的深入思考。带着这些问题,下文中笔者根据自己的理解将从不同方面对 FM 模型的演进进行介绍。文中涉及到的公式进行统一表示来方便读者理解,并为读者提供了参考文献的链接。
一、区别特征交互作用
这部分模型的演进思路就是根据假设来增加参数量 ( 即模型复杂度 ) 来提高模型表达能力。FFM 模型参数量太大,一则容易过拟合,二则不利于线上大规模部署 ( 内存压力 ) 。 笔者更倾向于 Field-weighted FM,简单有效,在效果和实际应用上做了很好的 tradeoff 。
1.1 FM
Factorization Machines
https://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf
1.2 Field-aware FM
Field-aware Factorization Machines
https://www.csie.ntu.edu.tw/~r01922136/slides/ffm.pdf
FM 中一个特征只对应一个向量,而在实际场景中特征和不同 field 的特征交互时应该使用不同的向量,这就是 Field-aware FM ( FFM ) 的提出动机。FFM 最早由阮毓钦提出,最早在 kaggle 上大放异彩,现在在业界也有一定使用。
1.3 Attentional FM
Attentional Factorization Machines : Learning the Weight of Feature Interactions via Attention Networks
https://arxiv.org/abs/1708.04617v1
这篇文章发表在 IJCAI 2017 。区分不同特征相互作用的方式不再像 ffm 那么笨重,而且用一个神经网络学习得到参数 ,总体参数量增加不明显。
1.4 Field-weighted FM
Field-weighted Factorization Machines for Click-Through Rate Prediction in Display Advertising
https://arxiv.org/abs/1806.03514
这篇文章发表在 WWW 2018 。区分不同特征相互作用非常简单直接。具体方法是针对每两个特征增加一个参数,这样相对 FM 模型只增加 个参数 ( k 是 field 数目 ) 。
二、和深度学习结合
这部分模型的思路,特别是 DeepFM,已经被工业界快速跟进和借鉴到推荐、搜索等业务场景。
2.1 DeepFM
DeepFM : A Factorization-Machine based Neural Network for CTR Prediction
https://arxiv.org/abs/1703.04247
这篇发表在 IJCAI 2017 。DeepFM 主要是基于 Wide&Deep 框架改进,将其中 wide 部分换成 fm 进行二阶交叉。
2.2 NFM
Neural Factorization Machines for Sparse Predictive Analytics
https://arxiv.org/abs/1708.05027v1
这篇发表在 SIGIR 2017 。FM 最终二阶交叉相加后得到 k 维的向量,NFM 是将该 k 维的向量输入给全连接,而不是像 FM 直接加起来作为最终结果。可以认为 FM 模型是 NFM 的一个子集。
三、和Learning to Rank结合
这部分和工业界中的 排序 场景联系紧密,可做参考。
3.1 Pairwise FM
Exploiting ranking factorization machines for microblog retrieval
https://dl.acm.org/citation.cfm?id=2505648
这篇文章发表在 CIKM 2013 。LTR 中的 pairwise 是挑选一个正负样本对作为一个新的样本,具体就是 。如果 ,则就是 PairWise FM 。那如果 则就是很有名的 RANKSVM 。
3.2 Lambda FM
https://dl.acm.org/citation.cfm?id=2983758
这篇文章发表在 CIKM 2016 。主要贡献是将 LambdaRank 的思想加入到 Pairwise FM 中。github 上有个开源实现 CastellanZhang/lambdaFM ( https://github.com/CastellanZhang/lambdaFM ),支持 FTRL 优化,支持单机多线程。
四、分布式训练
在实际应用中,一旦训练数据量上升到大几百 G 或者 1T 以上的级别,即使采用单机多线程训练,也会严重阻碍模型调研的速度。所以说在工业界做模型的分布式训练是有真实的业务需求驱动,相信大厂都有成熟的基于 ps 的 FM 轮子。对于大规模分布式机器学习感兴趣的读者建议细读下面两篇文章。
4.1 DiFacto
DiFacto — Distributed Factorization Machines
https://www.cs.cmu.edu/~muli/file/difacto.pdf
这篇发表在 WSDM 2016 。主要针对 FM 算法,基于 Parameter Server 进行梯度的异步更新。在 github 上也有开源,但是后面不怎么维护了。
4.2 F2M
http://net.pku.edu.cn/vc/papers/f2m.pdf
这篇发表在 NIPS 2016 。这篇文章主要是提出了基于 Ps 架构的 FFM 算法。
五、更高阶特征交叉
High-Order FM
Higher-Order Factorization Machines
https://arxiv.org/abs/1607.07195
这篇文章发表在 NIPS 2016 。传统意义上讲 FM 都是二阶交叉,计算复杂度可通过数学变换将时间复杂度改进到线性时间,在实际应用中一般也只用到二阶交叉。这篇文章解决了三阶甚至更高阶的特征交叉问题。
六、其他变种
6.1 Robust FM
Robust Factorization Machines for User Response Prediction
https://dl.acm.org/citation.cfm?id=3186148
这篇发表在 WWW 2018 。文章引入了 robust optimization 的思想,增加 和 分别在一次项和二次项的时候表示噪声。
6.2 Discrete FM
Discrete Factorization Machines for Fast Feature-based Recommendation
https://arxiv.org/abs/1805.02232
这篇发表在 IJCAI 2018 。这篇文章主要解决 FM 在一些特殊场景下模型容量和计算耗时偏大的问题。FM 中隐向量 ,每个元素是实数值,而在 Discrete FM 中,隐向量 。最终模型效果相对 FM 有下降,但是效率大大提升。
6.3 SFTRL FM
Sketched Follow-The-Regularized-Leader for Online Factorization Machine
https://www.kdd.org/kdd2018/accepted-papers/view/sketched-follow-the-regularized-leader-for-online-factorization-machine
这篇发表在 KDD 2018 。针对 FM 算法如何在线学习,提出了 Sketched Follow-The-Regularizer-Leader 的优化算法,并和 OGD、OCG 和 FTRL 算法进行了对比。
作者介绍:
杨镒铭,滴滴出行高级算法工程师,硕士毕业于中国科学技术大学,知乎「 记录广告、推荐等方面的模型积累 」专栏作者。
对作者感兴趣的小伙伴,欢迎点击文末阅读原文,与作者交流。
——END——
文章推荐:
详解Embeddings at Alibaba (KDD 2018)
关于 DataFun:
DataFun 定位于最实用的数据智能平台,主要形式为线下的深度沙龙、线上的内容整理。希望将工业界专家在各自场景下的实践经验,通过 DataFun 的平台传播和扩散,对即将或已经开始相关尝试的同学有启发和借鉴。
DataFun 的愿景是:为大数据、人工智能从业者和爱好者打造一个分享、交流、学习、成长的平台,让数据科学领域的知识和经验更好的传播和落地产生价值。
DataFun 成立至今,已经成功在全国范围内举办数十场线下技术沙龙,有超过三百位的业内专家参与分享,聚集了数万大数据、算法相关领域从业者。
点点「在看」,让更多的人知道。:point_down:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 能量视角下的GAN模型(三):生成模型=能量模型
- 提高模型准确率:组合模型
- JVM内存模型 与 JMM内存模型
- Golang并发模型:轻松入门流水线模型
- C++11 中的内存模型(上):内存模型基础
- 机器学习中的判别式模型和生成式模型
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Automate This
Christopher Steiner / Portfolio / 2013-8-9 / USD 25.95
"The rousing story of the last gasp of human agency and how today's best and brightest minds are endeavoring to put an end to it." It used to be that to diagnose an illness, interpret legal docume......一起来看看 《Automate This》 这本书的介绍吧!