Bandit算法

一。算法评价指标

累计遗憾

最好的选择收益(Wopt)减去实际的选择收益( Wb(i))就是遗憾,每个臂的收益不是0就是1,伯努利收益。

对比哪个遗憾增长慢,哪个算法效果好。因此方法是,1.慢慢地试,把机会给“确定好的”和“还不确定的”。

关键因素:

臂:有几个选项。(具体的物品,推荐策略,物品类别)

回报:喜欢/不喜欢收益。

环境:决定每个臂不同的因素,称为环境。(推荐系统面临的这个用户不可捉摸的环境)

二。常用的Bandit算法

1.汤普森采样算法  

随机a.b => 用贝塔分布产生随机数 => 排序 =》最大值为对应候选 =》观察反馈,点了a+1没点b+1

贝塔分布特点:

a+b越大,分布越集中。越小 越不确定,因此可能产生一个较大的随机数,排序时被优先选出 起到探索作用。

 a/(a+b)越大越接近于1,好,越小越差。


pyhton实现

2.UCB算法(置信区间上界)

方法:为每个臂评分=》分高的输出=》观察反馈=》更新参数


UCB目标函数

评价公式是 每个候选臂的平均收益+Bonus, Bonus越大,候选的平均收益置信区间越宽,约不确定,越需要更多的选择机会。

t是目前的总选择次数,Tjt是这个臂被选择的次数。(平均+探索)


3.Epsilon贪婪算法

方法: 选一个(0,1)的之间较小的数,作为Epsilon。=》 1-Epsilon 这个概率值作为平均收益去选择=》更新

Epsilon越接近于0,在探索上越保守。


UCB和汤普森效果比较好

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容