谈谈工业界落地能力最强的机器学习算法



尽管BERT为代表的预训练模型大肆流行,但是身处工业界才会知道它落地有多难,尤其是QPS动辄几百的在线推荐、搜索系统,哪怕在大厂也很难在线上系统见到它们。

今天就想反其道而行之,谈谈工业界搜索、推荐、广告这类核心场景中落地能力最强的算法(之一):因子分解机(FM)。我不敢说它是最简单的(FM的确很简单),但是作为一个推荐算法调参工程师,掌握FM一定是性价比最高的。我推崇FM算法的原因,有以下三点:

功能齐全

众所周知,推荐算法有三个应用领域:召回、粗排、精排。推荐算法千千万,但是有的算法只能用于召回,有的算法只能用于排序。像FM这样实现三个领域全覆盖的多面手,目前为止,孤陋寡闻的我尚不知道有第二个。但是需要强调的是,我们不能只训练一个FM排序模型 ,然后直接拿这个排序模型用于召回。尽管都是基于FM算法,但是FM召回与排序,有以下不同:

使用的特征不同

  • FM召回,由于未来要依赖Faiss进行线上检索,所以不能使用user与doc的交叉特征。只有如此,我们才能独立计算user embedding与doc embedding

  • FM排序,则没有这方面的限制,可以使用user与doc的交叉特征。是的,你没看错。因为FM所实现自动二阶交叉,仅能代表“共现”。但是user与doc之间还有其他形式的交叉,比如user tag与doc tag之间的重合度,喂入这样的交叉,对于排序性能提升,仍然有很大帮助。

使用的样本不同

  • 训练FM做排序时,必须使用“曝光未点击”这样的“真负”样本。

  • 训练FM做召回时,起码不能只使用“曝光未点击”做负样本。大部分的负样本必须通过随机采样得到。个中原因见我的文章《负样本为王:评Facebook的向量化召回算法》。

使用的Loss不同

  • FM排序时,由于负样本是真实的,可以采用CTR预估那样的point-wise loss

  • FM召回时,由于负样本是随机采样得到的,存在一定的噪声,最好采用BPR, hinge这样的pair-wise loss。

性能优异

推荐系统的两大永恒主题,“记忆”与“扩展”,FM也能实现全覆盖。

  • FM存在一阶项,实际就是LR,能够“记忆”高频、常见模式

  • FM存在feature embedding。如我在《无中生有:论推荐算法中的Embedding思想》据说,Embedding是提升推荐算法“扩展性”的法宝。FM通过feature embedding,能够自动挖掘低频、长尾模式。在这一点上,基于embedding的二阶交叉,并不比DNN的高阶交叉,逊色多少。

便于上线

现在深度学习是推荐领域的宠儿,LR/FM/GBDT这样的传统机器学习算法,不招人待见。

DNN虽然性能优异,但是它有一个致命缺点,就是上线困难。训练的时候,各位调参侠,把各种酷炫的结构,什么attention, transformer, capsule,能加上的都给它加上,看着离线指标一路上涨,心里和脸上都乐开了花,却全然无视旁边的后端工程师恨得咬紧了牙根。模型越复杂,离线和线上指标未必就更好,但是线上的时间开销肯定会增加,轻则影响算法与后端的同事关系(打工人何苦为难打工人),重则你那离线指标完美的模型压根没有上线的机会。虽说,目前已经有TF Serving这样的线上serving框架,但是它也不是开箱即用的,也需要一系列的性能调优,才能满足线上的实时性要求。

所以,如果你身处一个小团队,后端工程人员的技术能力不强,DNN的线上实时预测,就会成为一个难题,这个时候,FM这样的传统机器学习算法,就凸显出其优势。

FM排序,虽然理论上需要所有特征进行二阶交叉,但是通过公式化简,可以在 O(n)的时间复杂度下完成。n是样本中非零的特征数目,由于推荐系统中的特征非常稀疏,所以预测速度是非常快的。

召回,由于候选集巨大,对于实时性的要求更高。很多基于DNN的召回算法,由于无法满足线上实时生成user  embedding的需求,只能退而离线生成user embedding ,对于用户实时兴趣的捕捉大打折扣。FM召回,这时就显现其巨大的优势。事先把doc embedding计算好,存入Faiss建立索引,user embedding只需要把一系列的feature embedding相加就可以得到,再去faiss中进行top-k近邻搜索。FM召回,可以实现基于用户最新的实时兴趣,从千万量级候选doc中完成实时召回。

总结与参考

由于以上优点,我心目中,将FM视为推荐、搜索领域的'瑞士军刀'。风头上虽然不及DNN那么抢眼,但是论在推荐系统中发挥的作用,丝毫不比DNN逊色,有时还能更胜一筹。FM有如此众多的优点,优秀的调参侠+打工人,还等什么,还不赶快学起来。想迅速掌握FM,我推荐如下参考文献:

  • 掌握FM原理,推荐读美团的博客《深入FFM原理与实践》。FFM的部分可以忽略,在我看来,FFM更像是为了Kaggle专门训练的比赛型选手,损失了FM的很多优点。这就好比,奥运会上的射击冠军,未必能够胜任当狙击手一样。

  • FM用于召回,推荐读《推荐系统召回四模型之:全能的FM模型》。注意,如我所述,FM虽然万能,但是FM排序与FM召回,在特征、样本、Loss都存在不同,不可能训练一个FM排序就能直接拿来做召回。这一点,《全能FM》一文没有提到,需要读者特别注意。

  • 如果想亲手实践,可以尝试alphaFM。该项目只不过是作者八小时之外的课外作品,却被很多公司拿来投入线上实际生产环境,足见该项目性能之优异和作者功力之深厚,令人佩服。强烈建议不满足只当“调参侠”的同学,通读一遍alphaFM的源代码,一定收获满满。

[1] https://zhuanlan.zhihu.com/p/165064102

[2] https://zhuanlan.zhihu.com/p/320196402

[3] https://link.zhihu.com/?target=https%3A//tech.meituan.com/2016/03/03/deep-understanding-of-ffm-principles-and-practices.html

[4] https://zhuanlan.zhihu.com/p/58160982

[5] https://link.zhihu.com/?target=https%3A//github.com/CastellanZhang/alphaFM

(0)

相关推荐

  • 解读|阿里、腾讯和百度发表于KDD2018上的论文(含附录)

    本文对阿里巴巴.腾讯及百度在2018KDD上发表的论文进行了解读,涵盖了几个方面的内容. 阿里巴巴(4篇):搜索结果排序.视觉搜索.推荐算法和图嵌入. 腾讯(2篇):文本匹配和智能医疗领域. 百度(2 ...

  • LLE降维算法

    流形分析作为非线性降维的一个分支,拥有多种算法,常见的算法列表如下 流形分析的要点在于降维之后,仍然保留流形中的某些几何属性.之前介绍的isomap保留了测地距离这一几何属性,由于考虑的是全局关系,对 ...

  • 经典重温:卡尔曼滤波器介绍与理论分析

    最近业余在研究物体追踪,看到传统的方法用到了卡尔曼滤波(Kalman Filter)+匈牙利算法做轨迹匹配,因而开始研究这两种算法是如何实现的.这里简单总结一下卡尔曼滤波算法探索的过程. ▊ 卡尔曼滤 ...

  • 算法工程师的自我修养

    前言 本文落笔于2021年的1月1日,是我2021年的第一篇文章.本文将根据我的实践经验,讨论一个算法工程师,如何提升自我修养,由菜鸟小白进化为高手. 本文同样不关注某个具体算法那样的"术& ...

  • 深度学习尝鲜-DeepFM模型原理

    一.背景 精排模型是推荐系统中效果产出最重要的模块,深度排序模型是推荐领域应用最广迭代最快的技术领域.近年来各大公司纷纷抛弃了原有的传统机器学习模型转向深度排序模型的研究和应用,提出了非常多结合工业应 ...

  • 青年高端人才抗打击能力不强

    青年高端人才生活现状调查[青年高端人才抗打击能力不强]对外经济贸易大学教授廉思课题组:青年高端人才事业发展相对平稳,职业流动多为行业内流动,属于"稳健型"群体.该群体重视学科知识的 ...

  • 不得不承认,哈登掌控比赛的能力真是强

    不知不觉,篮网已经4连败了. 很多球迷开始慢慢意识到哈登对于篮网有多重要,篮球不是1+1=2的运动,篮球也不是单挑运动,篮球是一项团队运动. 哈登有着全联盟最顶级的阅读比赛能力,他的无解单打+传球能力 ...

  • 蜀汉后期的两位栋梁名将姜维和魏延,哪一个能力更强

    三国永远有聊不尽的话题,因为三国当中的英雄好汉数不胜数.让你说上很多天都说不完.因此,三国才会成为人们最喜爱的一个朝代之一.因为品评英雄这种事情,不只曹操爱做,我们普通人也爱.而今天我们要讲的,是三国 ...

  • 京东方、TCL科技、深天马、合力泰、视源股份……谁是成长能力最强的显示器件企业?

    企业成长能力是指企业未来发展趋势与发展速度,包括企业规模的扩大,利润和所有者权益的增加.企业成长能力是随着市场环境的变化,企业资产规模.盈利能力.市场占有率持续增长的能力,反映了企业未来的发展前景.本 ...

  • 三安光电、欧普照明、木林森、利亚德、洲明科技……谁是成长能力最强的LED企业?

    企业成长能力是指企业未来发展趋势与发展速度,包括企业规模的扩大,利润和所有者权益的增加.企业成长能力是随着市场环境的变化,企业资产规模.盈利能力.市场占有率持续增长的能力,反映了企业未来的发展前景.本 ...

  • 职场人如果没有这2点品质,工作能力再强也得不到领导重用

    公司来了两位新人,他们所接受的任务相同,培训的内容也相同,现在到了年底,领导宣布新人小陈转正,而小星年后却要再次寻找工作. 对此事,我们大家都感到非常惋惜:其实两人的表现都是非常优秀的,身为同事,大家 ...

  • 谁是成长能力最强的元件企业?

    企业成长能力是指企业未来发展趋势与发展速度,包括企业规模的扩大,利润和所有者权益的增加.企业成长能力是随着市场环境的变化,企业资产规模.盈利能力.市场占有率持续增长的能力,反映了企业未来的发展前景.本 ...

  • 怎样才能看出来一个人的工作能力到底强不强?

    怎么才能看出来一个人的工作能力强不强? 主要有以下几个特征,供参考. 1.语言沟通 阐述工作内容时,逻辑思维强,一语中的,论证有理有据,思考逻辑正确,不以偏概全,不强加自我观点给别人,而是通过事实数据 ...

  • 解放战争五大野战军哪支攻坚能力最强?时间段不同,排名也不相同

    辽沈战役发起前的1948年8月,林彪之所以对大军南下北宁线顾虑重重,其实就是有四平攻坚战失利的阴影,担心东北野战军久攻不克,会遭到华北和沈阳之敌的东西夹击,从而使全军陷于被动.要知道,东野炮兵纵队可是 ...