5分钟解析Facebook最新推荐算法

 

最近看了Facebook关于推荐场景下的CTR的文章-Deep Learning Recommendaton Model for Personalization and Recommendation System,来给大家分享下

一些背景知识

首先呢,推荐场景的CTR预估指的是进来一个客户,我们要给客户推荐内容,比如微博的Feed流推荐,这个时候对于算法来说,能否通过模型预测出客户对于推荐的内容是否会点击就是CTR需要解决的问题,CTR这里面C就代指Click。

讲完CTR是什么之后,我们回到论文本身。这个论文讲了很多做推荐领域比较common的方法,比如基于协同过滤的embedding的方法、Maxtrix Factorization矩阵分解方法、最近很流行的FM方法以及MLP方法等的。

我的理解的Facebook的DLRM是基于以上方法的一个综合应用,并没有特别多创新的地方,也可以说推荐做到今天为止其实主体方法已经比较固化了。

DLRM究竟怎么做的呢

先来看这张图:

屏幕快照 2019-07-16 下午7.30.39.png

首先推荐系统,最关键的是特征工程的构建,这也是为什么像FM这样的自动特征工程在推荐领域如此之火的原因。DLRM算法中的特征分为两个部分,一部分是dense feature,也就是说一些我们可以提炼出的业务特征,这部分在N年前我曾经写过相关文章,有兴趣的同学可以看下。另一部分特征是sparse特征,这部分特征是通过深度学习的方法也就是MLP去挖掘出来的,是非常稀疏的。sparse特征从空间的角度理解就是把原始特征通过神经网络映射到更多维度空间中,具体怎么实现其实是最核心的部分,论文没写,不过大家可以看下源码(博主我是没这个能力解析源码了,留给感兴趣的同学)。

这样有了dense和sparse两种特征,接下来要用一些Op做特征交叉。DLRM论文中提到他的特征交叉很高效,究竟高效在哪里呢?

屏幕快照 2019-07-16 下午7.35.15.png

以上是论文中提到的交叉方法,都比较简单,有sum一下向量的方法,还有求转秩积的方法,第三种是求转秩矩阵。有了以上的特征抽取和特征交叉方法后,就可以通过一个分类算法配合sigmoid函数求出每一次CTR的概率。

总结

总体看,DLRM跟Facebook之前提的Deep&Wide真没特别大的区别,就是一些局部优化,当然也可能是因为我段位低,没看出来的原因。总之,从我的视角来看,DLRM的整体思路是不错的,通过深度学习挖掘潜在特征,把这些特征跟业务特征融合交叉,最后训练模型。

你可能感兴趣的:(机器学习)