CTR问题的贝叶斯平滑转化率

一.  转化率:

推荐领域常见的转化率:ctr(click-through Rate),往往是推荐问题的重要特征之一。ctr的数值等于 点击量 除以 曝光量;

以r表示转化率:

                                                                  

但是在实际过程中往往会碰到两个问题:

1. 新商品的转化率计算:

新出现的商品,曝光量为0 点击量为0 ,这个时候的ctr怎么算?

2. 不同商品转化率的比较:

不同的商品A B, 他们的转化率 Ra = 5/10 , Rb = 50/100, Ra = Rb,但是商品A和B 的曝光量存在数量级上差异,这样做是否合理呢?

第一个问题中,初值可以设置为0, 但是不太合理,ctr作为一个强特,表示这个商品完全没有点击率这是极不合理的;所以赋值通常是一个大于0的数值; 第二个问题中,这样的比较是不合理的。

解决上述问题,一般采用贝叶斯平滑的方法。最简单的方法就是:在分子与分母上加上一个常数,加上只有就避免了这个问题:

                                                                     

但是 ab的值该如何确定呢? --  通过贝叶斯平滑来确定 ab

二. 贝叶斯平滑

贝叶斯平滑的思想是给ctr预设一个经验初始值, 再通过当前的点击量和曝光量来修正这个初始值,如果某个商品的点击量和曝光量都是0,那么该商品的ctr就是这个经验初始值; 如果AB商品的曝光量差距很大,那么可以用这个经验初始值来修正,使得曝光量大的商品的权重增大。

贝叶斯平滑就是确定这个经验值的过程,贝叶斯平滑是基于贝叶斯统计推断的,因此经验值的计算过程依赖于数据的分布情况。

贝叶斯平滑的推导设计贝叶斯参数估计,如果对贝叶斯参数估计不熟悉,可以参考:http://blog.csdn.net/jinping_shi/article/details/53444100

三. 点击率贝叶斯平滑的假设

对于商品或光改之类的,用户要么点击要么不点击,那么就符合二项分布。因此我们对点击的贝叶斯假设都是基于以下的假设:

对于某个商品或者广告X,其是否被点击是一个伯努利分布(Bernoulli)。

                                                                    

X表示的是是否被点击,点击取1,不点取0。r是X被点击的概率,对于不符合二项分布的比值类数据,在后文有说明。

四. 点击率的极大似然估计

在 三 的假设下,可以使用贝叶斯估计计算出点击率的估计值,从用户的日志中随机抽出n条记录,对任一条记录都有:

                                                                     

那么所有记录的联合概率密度就是上式的连乘。然后将连乘后的式子对r求导,并令其等于0。可以得到估计值r。r就是点击率的极大似然估计。当X的点击次数或则曝光次数为0时,可以用r代替作为他的初始值。它解决了第一个问题,但是没有解决第二个问题。

上述的估计r没有历史的信息,所谓历史的信息是:我们虽然不知道r的具体取值,但是可以知道r的范围,更精确地,我们可以假设r服从某个分布。要将这些信息融入到r的估计中,需要用到贝叶斯参数估计。

五. 点击率的贝叶斯估计

在贝叶斯的框架下,我们假设点击率服从某个分布:

                                                                  

这是基于经验做的,这个分布称为先验分布。贝叶斯参数估计可以直接解决前面两个问题。其过程是基于经验或则历史数据给出一个r的估计值,然后基于现有的数据在这个估计值上修正,得到的最终的点击率。此时的估计值是已经修正过的了。更美好的是我们可以得到修正参数a和b。

既然有先验分布,那么就有后验分布。r的后验分布记做π(r|x)。x是输入的数据(特征),对于点击率预测,x就是点击次数和曝光量。因为已经知道了数据,才确定r的分布,因此叫做后验分布。贝叶斯估计的实质就是在求后验分布。即基于当前点击次数和曝光量,求点击率的分布;而未看到数据之前点击率的分布是π(r)。

如何计算后验分布π(r|x)?

贝叶斯估计的过程可以简单的看成:

用历史数据根据 π(r) 估计 r ,记作r^history;用当前数据根据π(r|x) 估计 r ,记作r^currentr,然后用r^history修正r^currentr。
 

六. 损失函数

r 的后验分布 π(r|x) 是个概率密度函数,无法知道r确切的值。需要求出最接近真实情况的 r , 需要损失函数来约束。

贝叶斯参数估计的过程可以简单描述为:

求r^,使得损失函数在 r 的后验分布上的期望最小。

这句话的数学公式是:

                                            

因此需要知道 π(r|x) 的形式,然而 π(r|x) 的形式一般不知道的,但是可以知道 π(r) 的形式(经验值嘛,我们指定的)。此外,数据的分布我们也是知道的,其概率密度函数(pdf)记为f(x|r)f(x|r),表示数据的分布跟参数rr有关,rr是要求解的参数,在这里就是点击率。

这时可以根据贝叶斯公式计算出 π(r|x) : 

                                              

上式好复杂,但其实一些常见的分布都可以求出上式积分的具体形式。但通常不用实际去积分,因为满足一定条件,π(r) 跟π(r|x) 有一样的形式。π(r)是已知的,如果形式一样,π(r|x)也就容易求得了。下面介绍共轭先验的概念。

共轭先验: 
如果找到一个π(r),它是f(x|r)的共轭先验,那么rr的后验分布π(r|x)和先验分布π(r)会有一样的形式。

之前假设广告是否点击服从伯努利分布,参数为r;对于点击次数,服从的是二项分布,即f(C,I|r)∼Bin(r)。

二项分布的共轭先验是Beta分布,Beta分布的参数是α和β,即π(r)=Beta(α,β)。根据共轭先验的定义,r的后验分布π(r|x)的形式跟其先验分布π(r)一样,即π(r|x)=Beta(α′,β′)。
对于点击率预测,求出π(r|x),带入公式。当L(r^,r)=(r^−r)^2时,

                                                      

就是点击率估计(平滑)的最终形式。其中 C 和 I 就是点击次数和曝光量,α即为公式(2)中的a,α+β是公式(2)中的bb。α和β是从历史数据中得到的。

上面的内容给出了为什么很多文章会假设点击率服从Beta分布的理由,因为最终的平滑的因子是Beta分布(先验分布)中的两个参数。那么如何计算(估计)这两个参数?

 

七. 贝叶斯平滑因子计算

综上,贝叶斯平滑的最终落脚点是要估计Beta分布(点击率rr服从的分布)中的参数αα和ββ。下面给出比较直观的矩估计的方法。

矩估计


我们可以用样本的均值代替期望,样本的方差代替总体的方差。 就此可以解出α 和 β 的值。

 

八. 工程实践

实际操作时可以连续取一段时间的数据,比如一周,然后在每天的数据中计算每件商品或广告的点击率,之后求出这些点击率的均值和方差,带入公式(9)和公式(10),可以得到每天的 α 和 β . 最后求这段时间 α 和 β 的均值作为最终的平滑参数。

实际应用时根据历史数据得到的 α 和 β 可以帮助确定平滑参数的大致范围,防止设置参数时偏离过大。通常可以调整 α 和 β 的范围达到预期的效果。

举例说明:

下图是某件商品在两周时间内的点击率。黄色线是每天根据点击次数 C 和曝光量 I 计算得到的真实点击率;

蓝色线是根据一周的历史数据计算得到的 α 和 β 带入公式(8)得到的平滑后的点击率;

绿色线是自定义平滑参数的点击率,a=50,b=200,设置得比较夸张。可以看到如果平滑参数设置的不合理,会放大数据的表现,有时候甚至会扭曲数据的走势,数据预处理时需要考虑这样的情况。

 

九. 非二项分布的贝叶斯平滑

公式(8)的结论适用于数据是二项分布的情况,如点击率。对于不是二项分布的数据公式(8)不适用。如果数据不是二项分布,那么其先验概率就不是Beta分布了。比如某件商品一天的点击量与一周的点击量的比值,这个数据不符合二项分布,因此不适用公式(8)。但这个数据有可能是高斯分布。如果数据是高斯分布,那么其先验概率π(r)是逆Gamma分布(invers Gamma)分布,进而其后验概率π(r|x)也是逆Gamma分布,此时公式(8)会有不一样的形式。
 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 贝叶斯滤波是一种基于贝叶斯定理的概率滤波算法,用于在给定一系列观测数据的情况下对目标状态进行估计。它的主要目的是通过将先验知识和观测数据相结合,来获得对目标状态的最优估计。 平滑贝叶斯滤波算法的一个重要应用。在平滑问题中,我们试图通过后验概率分布的边缘化来估计过去的目标状态。与滤波问题不同的是,平滑问题需要使用整个观测序列,包括未来的观测值,来进行估计。 贝叶斯滤波和平滑在很多领域有着广泛的应用,例如机器人定位和航迹跟踪等。在机器人定位中,贝叶斯滤波可以结合传感器观测和运动模型来估计机器人的准确位置。在航迹跟踪中,贝叶斯滤波可以通过融合多个传感器的观测数据,来估计目标物体的位置和速度。 在贝叶斯滤波和平滑的实际应用中,还有一些常见的算法。例如,卡尔曼滤波是一种常用的线性贝叶斯滤波算法,适用于具有高斯噪声的线性系统。粒子滤波是一种非线性贝叶斯滤波算法,它通过使用一组粒子来近似目标状态的后验概率分布。 总而言之,贝叶斯滤波和平滑是一类概率滤波算法,通过结合先验知识和观测数据来对目标状态进行估计。它们在众多领域中有着广泛的应用,是许多机器学习和人工智能问题中的重要工具。 ### 回答2: 贝叶斯滤波是一种基于贝叶斯定理的概率滤波方法。它通过结合先验信息和当前观测数据来估计系统状态的后验概率分布。贝叶斯滤波可以用于多种应用,例如机器人定位和跟踪,信号处理等。 贝叶斯滤波可以分为预测步骤和更新步骤。在预测步骤中,通过当前状态的概率分布和系统动力学模型来预测下一时刻状态的概率分布。在更新步骤中,将预测的概率分布与当前观测数据结合,使用贝叶斯定理计算得到后验概率分布。 贝叶斯滤波是一种递归的方法,可以根据新观测数据不断更新状态的概率分布,从而实现对系统状态的准确估计。然而,由于计算复杂度的原因,传统的贝叶斯滤波方法在实际应用中可能存在问题。 为了解决这个问题平滑贝叶斯滤波方法被提出。平滑贝叶斯滤波不仅使用当前观测数据,还使用未来观测数据来优化对状态的估计。它通过回溯时间,先计算最后一个时刻的后验概率分布,然后逐步计算前面每个时刻的后验概率分布。这样可以获得更准确的状态估计结果。 在实际应用中,平滑贝叶斯滤波常用于信号处理领域,例如语音增强和图像恢复等。它可以通过利用未来的观测数据,提供更好的信号估计结果。此外,平滑贝叶斯滤波还可以用于系统参数辨识和模型训练,对于建模和预测具有重要意义。 总而言之,贝叶斯滤波是一种基于概率的滤波方法,在估计系统状态方面具有广泛应用。平滑贝叶斯滤波是对传统贝叶斯滤波的改进,通过使用未来观测数据来提高状态估计结果的准确性。 ### 回答3: 贝叶斯滤波是一种基于贝叶斯定理的概率推断方法,也是常用的状态估计算法之一。它主要用于处理具有噪声干扰的观测数据和系统状态的关系,并能够不断更新状态的概率分布。贝叶斯滤波通过将先验概率与观测数据进行组合,来得到后验概率分布,进而对系统状态进行估计和预测。这种滤波方法可以用于多种领域,如机器学习、模式识别、目标追踪等。 平滑贝叶斯滤波的一个重要应用,它可以通过使用历史观测数据和未来的观测数据,来对系统状态进行后验估计。在实际应用中,通常需要对过去的观测数据进行平滑处理,以更好地理解系统的演化过程和状态变化。平滑能够提供对于过去状态的更加准确和稳定的估计结果。 CSDN是一个技术社区,其中包含了大量关于贝叶斯滤波和平滑的文章和学习资源。在CSDN上,你可以找到一些关于贝叶斯滤波和平滑的基础知识和原理,以及一些实际应用和算法实现的案例和教程。如果你对贝叶斯滤波和平滑算法感兴趣,CSDN是一个很好的学习和交流平台,能够帮助你更好地理解和应用这些算法。总之,通过在CSDN上学习和探索贝叶斯滤波和平滑,你将能够更好地理解和应用这些概念和方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值