微软的一篇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。
作者假设样本分布符合高斯分布,分布函数为:
, (1)
其中
(2)
即密度函数为标准正态分布:![]()
假设W的先验分布为:
, (3)
其中f为正态分布函数
。
的精确后验公式为:
,
因为
,
所以:
, (4)
由(1) ,(3)可知(4)为:
![]()
![]()
是对分子
关于w的积分,所以:
![]()
(5)
由公式(2)可知
(6)
公式(6)就是关于w的精确后验的公式,从公式中可以看到由于积分区间和积分式中都出现了w,所以没有关于w的解析解。因此,论文使用message passing方法近似求解w的后验概率。
由w的精确求解公式(4)可知,近似求解公式为:
(7)
其中,
是先验概率,
是似然函数,也就是在对w的假设
的情况下,实际结果y取值0或者1的概率。为了能够对似然函数进行分解,引入了两个隐变量s,t,将似然函数
分解为![]()
所以公式(7)成为这种形式:![]()
可以理解为一个如下的生成过程:
![]()
<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:
![]()
微软的一篇ctr预估的论文:Web-Scale Bayesian Click-Through Rate Prediction for Sponsored Search Advertising in Microsoft’s Bing Search Engine。的更多相关文章
- 某篇ctr预估ppt的链接
csdn上面有一篇ppt,但是下载分太贵了.里面东西看起来讲的还可以.看看能不能嵌入. http://download.csdn.net/detail/u012289698/9371461 <i ...
- 广告点击率 CTR预估中GBDT与LR融合方案
http://www.cbdio.com/BigData/2015-08/27/content_3750170.htm 1.背景 CTR预估,广告点击率(Click-Through Rate Pred ...
- CTR预估中GBDT与LR融合方案(转载)
1.背景 CTR预估,广告点击率(Click-Through Rate Prediction)是互联网计算广告中的关键环节,预估准确性直接影响公司广告收入.CTR预估中用的最多的模型是LR(Logis ...
- CTR预估之LR与GBDT融合
转载自:http://www.cbdio.com/BigData/2015-08/27/content_3750170.htm 1.背景 CTR预估,广告点击率(Click-Through Rate ...
- (读论文)推荐系统之ctr预估-DeepFM模型解析
今天第二篇(最近更新的都是Deep模型,传统的线性模型会后面找个时间更新的哈).本篇介绍华为的DeepFM模型 (2017年),此模型在 Wide&Deep 的基础上进行改进,成功解决了一些问 ...
- (读论文)推荐系统之ctr预估-NFM模型解析
本系列的第六篇,一起读论文~ 本人才疏学浅,不足之处欢迎大家指出和交流. 今天要分享的是另一个Deep模型NFM(串行结构).NFM也是用FM+DNN来对问题建模的,相比于之前提到的Wide& ...
- ctr预估论文梳理和个人理解
问题描述 ctr的全称是click through rate,就是预估用户的点击率,可以用于推荐系统的ranking阶段.ctr预估可以理解为给用户的特征.item的特征以及context的特征(比如 ...
- 闲聊DNN CTR预估模型
原文:http://www.52cs.org/?p=1046 闲聊DNN CTR预估模型 Written by b manongb 作者:Kintocai, 北京大学硕士, 现就职于腾讯. 伦敦大学张 ...
- 深度CTR预估模型中的特征自动组合机制演化简史 zz
众所周知,深度学习在计算机视觉.语音识别.自然语言处理等领域最先取得突破并成为主流方法.但是,深度学习为什么是在这些领域而不是其他领域最先成功呢?我想一个原因就是图像.语音.文本数据在空间和时间上具有 ...
随机推荐
- JavaSE(八)之集合概述
前几天其实一直在学习关于linux的内容和kvm虚拟化的知识.今天有时间来回顾一下集合相关的知识,接下来我将带大家一起来回顾一起集合关联的知识. 不要辜负自己花费时间做的事情,只有用心才能得到真心的回 ...
- 通过ssh协议实现用户key认证登录
author:JevonWei 版权声明:原创作品 用户实现key认证登录 主机A 192.168.198,134 主机B 192.168.198,131 主机C 192.168.198,136 创建 ...
- Python Requests: Invalid Header Name 解决方法
这几天在练习python,并且用到了Requests,不得不说真的比urllib 方便了很多啊,简直有点事半功倍的感觉 言归正传,(好像上面的话也没多歪啦~~~~~) 简单叙述下我的script 流程 ...
- CGLIB 动态代理的实现
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp92 JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类 ...
- window.requestAnimationFrame() ,做逐帧动画,你值得拥有
window.requestAnimationFrame() 方法告诉浏览器您希望执行动画,并请求浏览器调用指定的函数在下一次重绘之前更新动画.该方法使用一个回调函数作为参数,这个回调函数会在浏览器重 ...
- java 多线程(0) Java线程
线程 线程是系统调度的基本单元,每当创建一个进程时,会有许多的线程,也叫轻量级进程,在一个进程中拥有多个线程,各自都有自己的计数器,堆和局部变量属性,并且能够分享内存变量. 为什么要使用多线程 1. ...
- Ubuntu 14.02 cmake升级 失败解决
错误的提示: CMake Error: Could not find CMAKE_ROOT !!! CMake has most likely not been installed correctly ...
- 避免subList/subString陷阱
避免subList/subString陷阱 java.util.List 接口提供了一个实例方法 List<E> subList(int fromIndex, int toIndex), ...
- 【2017集美大学1412软工实践_助教博客】团队作业7——Alpha冲刺之事后诸葛亮
题目 团队作业7: http://www.cnblogs.com/happyzm/p/6827853.html 团队成绩 评分项目 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 全组 ...
- Swing-布局管理器之GridLayout(网格布局)-入门
注:本文内容源自于三十一.Java图形化界面设计——布局管理器之GridLayout(网格布局),笔者在学习过程中根据自身理解修改了部分代码. 网格布局特点: l 使容器中的各组件呈M行×N列的网格 ...