微软的一篇ctr预估的论文:Web-Scale Bayesian Click-Through Rate Prediction for Sponsored Search Advertising in Microsoft’s Bing Search Engine。
周末看了一下这篇论文,觉得挺难的,后来想想是ICML的论文,也就明白为什么了。
先简单记录下来,以后会继续添加内容。
主要参考了论文Web-Scale Bayesian Click-Through Rate Prediction for Sponsored Search Advertising in Microsoft’s Bing Search Engine(下载链接:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.165.5644&rep=rep1&type=pdf)以及百度网盟CTR预估技术负责人夏粉老师分享的资料(下载链接:http://pan.baidu.com/share/link?shareid=484272&uk=4010619712)。
有不对的地方,希望能指出:(2012wxs@gmail.com)。
前面部分就不说了。从第3节Online Bayesian Probit Regression开始
第三节 Online Bayesian Probit Regression
X是要输入的N维特征X->(),特征的每一个维度有M个取值,即: ->(),其中的取值只能是0或者1,且中所有元素的和等于1,也就是说中的元素只能有一个取值为1,其余的必须取值为0。
作者假设样本分布符合高斯分布,分布函数为:
假设W的先验分布为:
由公式(2)可知
公式(6)就是关于w的精确后验的公式,从公式中可以看到由于积分区间和积分式中都出现了w,所以没有关于w的解析解。因此,论文使用message passing方法近似求解w的后验概率。
由w的精确求解公式(4)可知,近似求解公式为:
其中,是先验概率,是似然函数,也就是在对w的假设的情况下,实际结果y取值0或者1的概率。为了能够对似然函数进行分解,引入了两个隐变量s,t,将似然函数分解为
可以理解为一个如下的生成过程:
<1>w的值是从高斯分布中得到的,因为假设其先验符合高斯分布。
<2>得到w的值之后,可以得到一个分数s,分数s的值为,取得这个值的概率为,即。
<3>得到分数s之后,对这个分数加上一个均值为0,方差为的标准正态高斯噪声。最终得到变量t的分布为均值为s,方差为的正态分布
<4>得到t之后,需要根据t计算y值,是由符号函数sign计算得到的,即y的取值为y = sign(t),只有两种值即y = 0,y = 1,其取值概率为:
由<1>步得到的p(w)等价于w的近似后验公式(7)中的先验p(w);由<2><3><4>步得到的,等价于w的近似后验公式(7)中的似然函数。
<1><2><3><4>的各个公式的乘积等价于w的近似后验公式(7),另外,由因子图中因子节点的乘积为变量的联合概率分布可知,<1><2><3><4>中各个公式的乘积为变量w,s,t,y的联合分布,所以在论文中有讲是等价的:。
另外,根据论文中所讲,等价式是变量w,s,t,y的联合分布,因此,我认为那个factor graph 1应该这么画:
至此,模型已经建立:由于无法精确求解w的后验,将求解w后验的问题转化为一个因子图中的生成过程,并且将求解问题分解为计算一个个的local message,最后将这些local message相乘就行了。
下面是推理部分
也就是如何训练模型的过程,
首先,根据历史数据,比如历史平均点击率,给出W的先验,另外,有训练数据(x,y)。根据w的先验和训练数据(x,y),推理出w的后验概率(在factor graphmodel中等价于),这个过程叫upward message:
其次,根据第一步得到的w的后验概率(此时的w的先验概率是第一步得到的后验概率),以及特征x,可以计算出对于输入的一个特征向量x,得到的预测值y的分布,这个过程叫downward message: