Bandit算法

本文介绍了Bandit算法,该算法源于多臂赌博机问题,旨在解决选择难题以实现收益最大化。还提及在推荐系统中可平衡准确性和新颖性。阐述了Epsilon - Greedy、Upper Confidence Bound、Thompson Sampling三种算法原理及实现,介绍了其在兴趣探索、冷启动探索方面的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       在生活中,每个人都会面临各种各样的选择问题,简单的来说中午吃什么有很多种可能性,怎么样能提供一种比较好的办法来解决选择难的问题,那就是Bandit算法

      说到Bandit算法,我起初刚看到这个算法的时候是出现在强化学习里面,这个算法主要来源于赌博的问题,主要是这么回事,一个人去赌场摇老虎机,你不知道老虎机是什么可以理解为就是一台机器你摇它的手臂它会往出吐钱,赌场有一排老虎机,外表没有区分,但是每个老虎机吐钱的概率不一样,也不知道每个老虎机吐钱的规律是什么样,每次怎么选择老虎机可以做到最大化收益,这个就是多臂赌博机问题。

   注:推荐系统中也会出现这个问题,如何平衡准确性和新颖性评价指标,就是那个Double E问题(Exploitation&Exploration),Exploitation:选择现在可能最佳的方案,Exploration:选择现在不确定的一些方案,但未来可能会有高收益方案;在做两类决策的过程中,不断更新对所有决策的不确定性的认知,优化长期的目标函数

下面说一下几种Bandit算法:

算法原理

1、Epsilon-Greedy:以1-epsilon的概率选取当前收益最大的臂,以epsilon的概率随机选取一个臂

2、Upper Confidence Bound:均值越大,标准差越小,被选中的概率会越来越大(相对慢一点,确定性高)

3、Thompson Sampling:每个臂维护一个beta(wins,lose)分布,每次用现有的beta分布产生一个随机数,选择随机数最大的臂(较快,随机性高)

算法实现

几种算法效果比较:

greedy表示贪婪;egreedy表示给一个e的概率进行探索新的内容;egreedy_decay表示探索一定程度大部分都已知,所以添加一个衰减因子控制,ucb和thompson算法都是bandit算法的几种算法

Bandit算法应用

    1、兴趣探索

    2、冷启动探索

参考:

       如何理解beta分布:https://blog.youkuaiyun.com/hrbeuwhw/article/details/79554256

注:Bandit算法实现的详细代码详见git:https://github.com/wangtao666666/code/blob/master/Bandits_.py

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值