探索与利用(EE)常用策略
强化学习
表格型求解
按direclet分布随机
direclet分布式高维情况的beta分布。
下面介绍beta分布。
beta分布:以击棒球为例,根据某人的击球数据,估计其命中率\(\theta\),取值范围[0,1],此时可以将这个人的命中率的概率分布视为beta分布,该分布的特性是,当击球次数较少时,\(\theta\) 的分布受其先验分布影响较大,随着击球次数的增加,方差减少(置信区间收窄),均值趋向于该人n次击球的准确率(后验概率)。
对上面公式的各个部分进行解释。
-
\(p(data|\theta)\):给定\(\theta\),进行n次Bernoulli实验,产生数据data的概率分布,为二项分布。假设data为总共击球N词,命中Z次。
\[p(data|\theta) = C^N_Z\theta^Z(1-\theta)^{N-Z} = \frac{beta(Z, N-Z)}{C_1} \] -
\(p(\theta)\): \(\theta\)的先验分布
\[p(\theta) = beta(\alpha, \beta) = \frac{\theta^\alpha(1-\theta)^\beta}{C_2} \]\(C_2\) 为归一化因子,即对分子按\(\theta\) 从0到1进行积分。\(\alpha,\beta\)的比例按统计的先验分布的均值来定,数值大小根据经验或者效果需要而定,理论上可以根据方差(置信区间)来确定
\[k = \frac{E(\theta)\cdot(1-E(\theta))}{S^2} - 1, S为方差 \]\[\alpha = E(\theta)\cdot k, \beta = (1-E(\theta))\cdot k \] -
$ p(data)$ : 为归一化因子,即对分子按\(\theta\) 从0到1进行积分,在给定data时为常数,所以以下推导只考虑正比关系。
推导:
结论:后验分布 \(p(\theta | data )\)与其先验分布\(p(\theta)\) 具有相同的形式,称之为共轭先验。
UCB(置信区间上界Upper Confidence Bound)
示例:
相比于贝叶斯平均/dirichlet随机,UCB方法是更乐观的估计。在CTR 预估的场景中,UCB方法会让新的item获得足够的曝光机会,直到置信区间收窄,UCB取值趋向到某个值。
以某广告的点击率为例。假设某广告点击率x为一个beta分布,假设取95%置信区间,则该广告的UCB得分为a,a为 \(\int^{1}_{a}{p(x)}{}dx = 5%\) 的解。(画一张图更直观)
结论:
求解:
高斯分布的置信区间比较好求,beta分布的置信区间怎么求解?



结论:
但实际的二项分布参数为(p,q)时,观测到(p+t,q-t)的概率随样本大小n的增加呈指数下降,下降的速度与实际分布与经验分布的KL-Divergence相关。
相关实践:
第一版效果广告CTR预估方法,就是用的UCB方法。
选取用户的性别、年龄段、地域、C1C2阅读偏好等特征及其二维组合、三维组合作为用户集,每个用户集对每个广告ID、广告主ID、广告标签进行探索利用,生成UCB参数。
离线特征计算方式。
- 以流式计算的方式,根据展现、点击、转化日志更新UCB参数表格。
在线打分的方式,对每个用户
- 根据定向策略进行广告召回。
- 取用户特征,获得用户集的ID,一个用户从属于多个用户集,取他从属的所有用户集的ID。
- 对每个广告进行打分:
- 取所有用户集ID对该广告ID、广告主ID、广告标签的UCB参数(也可以理解为交叉特征)。因此交叉特征个数是该用户从属的用户集ID数*3。
- 对以上特征进行融合。第一版方式是规则计算(topN sum pooling)。理论上是假设该用户所从属的某个用户集(比如北京__10-18岁__男频偏好)对某个广告主ID有较好的转化,这个高分应该直接影响到最终打分,而不是被矩阵中其他平庸的交叉特征打分平均、淹没。
这里注意一个问题,因为单个用户对广告的点击行为是很稀疏的,所以探索利用一定要以用户集为单位,而不是为每个用户建立对每个广告、广告主、广告标签的UCB表格,以提高探索利用的效率。
基于Q学习
基于policy

参考
https://www.cs.bham.ac.uk/internal/courses/robotics/lectures/ucb1.pdf
https://blog.csdn.net/songyunli1111/article/details/83384738
李宏毅 强化学习
推荐我的开源项目 exFM c++ deepFM

浙公网安备 33010602011771号