DSP

CTR预估算法之FM, FFM, DeepFM及实践

2019-07-13 16:52发布

目录

CTR预估综述

点击率(Click through rate)是点击特定链接的用户与查看页面,电子邮件或广告的总用户数量之比。 它通常用于衡量某个网站的在线广告活动是否成功,以及电子邮件活动的有效性。 
点击率是广告点击次数除以总展示次数(广告投放次数)此处输入图片的描述目前,CTR的数值平均接近0.2%0.2%0.3%0.3%,超过2%2%被认为是非常成功的。常用的CTR预估算法有FM, FFM, DeepFM。

Factorization Machines(FM)

FM的paper地址如下:https://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf 
FM主要目标是:解决数据稀疏的情况下,特征怎样组合的问题 
根据paper的描述,FM有一下三个优点: 
1. 可以在非常稀疏的数据中进行合理的参数估计 
2. FM模型的时间复杂度是线性的 
3. FM是一个通用模型,它可以用于任何特征为实值的情况

算法原理

在一般的线性模型中,是各个特征独立考虑的,没有考虑到特征与特征之间的相互关系。但实际上,大量的特征之间是有关联的。 
一般的线性模型为:y=w0+ni=1wixiy=w0+∑i=1nwixi从上面的式子中看出,一般的线性模型没有考虑特征之间的关联。为了表述特征间的相关性,我们采用多项式模型。在多项式模型中,特征xixixjxj的组合用xixjxixj表示。为了简单起见,我们讨论二阶多项式模型。y=w0+ni=1wixi+ni=1nj=i+1wijxixjy=w0+∑i=1nwixi+∑i=1n∑j=i+1nwijxixj该多项是模型与线性模型相比,多了特征组合的部分,特征组合部分的参数有n(n1)2n(n−1)2个。如果特征非常稀疏且维度很高的话,时间复杂度将大大增加。 
为了降低时间复杂度,对每一个特征,引入辅助向量lantent vector Vi=[vi1,vi2,...,vik]TVi=[vi1,vi2,...,vik]T, 模型修改如下:y=w0+ni=1wixi+ni=1nj=i+1<Vi,Vj>xixjy=w0+∑i=1nwixi+∑i=1n∑j=i+1nxixj以上就是FM模型的表达式kk是超参数,即lantent vector的维度,一般取30或40,也可以取其他数 具体情况具体分析。上式如果要计算的话,时间复杂度是O(kn2)O(kn2), 可以通过如下方式化简。对于FM的交叉项ni=1nj=i+1<Vi,Vj>