关于Multi-Armed Bandit(MAB)问题及算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Multi-Armed Bandit(MAB)问题及算法相关的知识,希望对你有一定的参考价值。

参考技术A 地址: Multi-armed bandit

   -  A Problem in which a fixed limited set of resources must be allocated between competing (alternative) choices in a way that maximizes their expected gain, when each choice's properties are only partially known at the time of allocation, and may become better understood as time passes or by allocating resources to the choice.[1]

    - 经典的强化学习算法( Reinforcement Learning(RL) ),用于处理Exploration-Exploitation(EE) trade-off dilemma。

    - 名字来源于casino中赌博机slot machine(or one armed bandit)

    一个赌徒,要去摇老虎机,走进赌场一看,一排老虎机,外表一模一样,但是每个老虎机吐钱的概率可不一样,他不知道每个老虎机吐钱的概率分布是什么,那么每次该选择哪个老虎机可以做到最大化收益呢?这就是多臂赌博机问题。[2]

     - MAB问题也在 stochastic scheduling 领域范畴中。Stochastic scheduling problems can be classified into three broad types: problems concerning the scheduling of a batch of stochastic jobs ,  multi-armed bandit  problems , and problems concerning the scheduling of queueing systems.

     1. 有K台machine,每次选取其中一台pull the lever,该machine提供一个random的reward,每一台machine的reward服从特定的概率分布。

     2. 一个gambler有N次lever pulls的机会,他的目标是使得回报reward最大化,那么他要确定这N次pull 的arm的顺序。显然,作为一个聪明的赌徒,他会记录下每一次得到的reward,试图找出能给出最大reward的那台machine,尽量多次数的去pull这台machine 的arm。

     3. 对于每一轮选择,主要面对的问题是Exploitation-Exploration.

        Exploitation: to pull the arm with Highest expected payoff    OR 

        Exploration: to play other machines to get more information about the expected payoffs of them.

     4. 得到的收益称为reward,一般假设为伯努利分布,即0或1。得到的收益与真实的最大收益(上帝视角,假设一开始就知道哪个payoff最大,那我肯定pull那个arm)之间的差值称为regret。

Online service that benefits from adapting the service to the  individual sequence of requests,  Ad placement, website optimization, and packeting route.

1. 推荐系统领域,领域有两个经典问题:EE问题和用户冷启动问题。[2]

    EE问题:上面提到过的exploit-explore问题;比如已知某用户对A产品感兴趣,那么在大多数时间要给他推送A的链接才能赚钱,这就是 exploit ;但是为了赚更多的钱,就需要知道他还对哪些产品感兴趣,那么在有些时候就可以尝试一下给他推送B,C,D,E等选择看用户的反应,这就是 explore 。

    用户冷启动问题:面对新用户时如何用尽量少的次数,猜出用户的大致兴趣。[2]

2. 临床测试场景clinical trials

    假设有一批用于治疗某种疾病的新药需要进行测试,目标肯定是在尽量少的测试体上进行尝试,找出效果最好的那一种然后应用于其他病患。由于测试需要等待并观察,尽早找出效果最好的药物类型也有利于救助更多的病患;同时,该方法也有助于减少承受不良药物副作用的测试体数量/增加病患存活率。[3]

在讨论算法之前,首先要明确几种bandit model。根据对于reward过程的不同假设,主要可以分为三种类型: Stochastic  , Adversarial   and  Markovian。 几种经典的策略与之对应 , UCB algorithm for the stochastic case,  Exp3 randomized algorithm for theadversarial case, so-called  Gittins indices for the Markovian case.[4]

本文目前主要讨论Stochastic bandits problem(另外两种待以后补充),以下为[4]对其定义:

针对MAB问题常用的基本算法有: -greedy, Boltzmann exploration(Softmax), pursuit, reinforcement comparisonm, UCB1, UCB1-Tuned, Thompson Sampling(TS) [3]

arm    共K个arm

round   共N次机会

: The empirical mean of arm i after t rounds

: The probability of picking arm i at round t

实际操作:每一轮在[0,1]生成一个随机数,如果小于\epsilon,则在K个arm中随机选一个;否则选平均收益最大的那个(如果多个则随机选一个)。

- 为了不记录n歌reward,更高效的办法是对均值做增量式计算,每一轮只记录两个变量:已经尝试的次数和最近的平均reward。

对于constant \epsilon,regret的bound是linear的。

如果\epsilon随着时间减小,regret的bound是poly-logarithmic的。

若摇臂奖赏的不确定性较大,比如概率分布较宽,则需要更多的explore,对应较大的\epsilon。若摇臂奖赏的不确定性较小,比如概率分布集中,则少量的尝试就能很好的近似真实奖赏,只需要较小的\epsilon。

通常让epsilon为一个较小的数如0.1或0.01。 不过,如果尝试次数很大,在一段时间后各个arm的奖赏都能很好近似出来,不需要再explore,这种情况下可以让epsilon随时间逐渐减小,例如

随机系数 ,称为“温度”。 tau越小则平均奖赏高的摇臂被选取的概况更高;趋于0的时候-〉仅利用exploit; 趋于无穷大的时候-〉仅探索explore

与Pursuit Algorithm类似,RC方法的行为也不是直接由empirical means计算而来。该方法同时还保留一个平均预期回报(average expected reward) ,将平均回报和预期回报作比较。

- 如果 empirical mean 〉average expected reward,选该arm的概率上升。

- 如果empirical mean〈 average expected reward,选该arm的概率下降。

- 对于arm i 存在偏好(preference) , 每一轮preference会根据结果进行更新:

    含有参数: ( The empirical mean of arm  i  after  t  rounds

                        the number of times that arm i has been played after t rounds

    1、初始化: 所有arm都被play一次。

    2、选择arm j(t):

    3、观察选择结果,更新t和ni。其中加号前面是这个臂到目前的收益均值,后面的叫做bonus,本质上是均值的标准差

这个公式反映一个特点:均值越大,标准差越小,被选中的概率会越来越大。被选次数较少的臂虽然可能均值不大,但根号那一项会比较大,也会得到试验机会。

将每个arm的variance引入了考虑

核心思想:[2]

    1. 假设每个arm产生收益的概率p符合 Beta(wins,lose)分布,两个参数wins和lose。

    2. 每个arm 维护(maintain)一对beta分布的参数。每次实验选一个arm摇一下,有收益该arm的wins+=1 , 否则 lose+=1

    3. 每次选arm的方式:用每个arm的beta分布产生一个随机数b,选择所有arm产生的随机书最大的那个arm去摇。

beta(a,b)有a和b两个参数,两个参数决定了分布形状。

a+b的值越大,分布曲线就越集中,反之则越疏远(两边大中间小)

当a/(a+b)的值越大,分布集中位置的中心越靠近1,反之越靠近0,这样产生的随机数位置也相应更容易靠近1或0

因此,Beta分布总体有三种情况,曲线很窄靠近1、曲线很窄靠近0、曲线很宽

由此,若把Beta分布的参数a看做推荐后得到用户点击的次数,把b看做未得到用户点击的次数,如下:

取出每一个候选对应的a和b

为每个候选用a和b作为参数,用Beta分布产生一个随机数

按照随机数排序,输出最大值对应的候选

观察用户反馈,如果用户点击则将对应候选的a增加1,反之b增加1

因此在推荐系统中,为每个用户都保存一套参数,每个用户对应每个物品都保存一份a和b

- 为什么有效?

如果候选被选中次数很多,那么a+b分布变窄,换句话说这个候选的收益已经确定,用它产生随机数,基本就在分布的中心位置附近,接近这个分布的平均收益

如果一个候选不但a+b很大,且a/(a+b)也很大,那么就是一个好的候选项,平均收益很好,每次选择占据优势,就进入利用阶段,反之则几乎再无出头之日

如果一个候选项的a+b很小,分布很宽,就是没有给充分的探索次数,此时不能确定好坏,那么这个较宽的分布有可能得到一个较大的随机数,在排序时被优先输出,给予次数做探索

[Notes]Regret Analysis of Stochastic and Nonsto... -

腾讯QQ大数据:神盾推荐——MAB算法应用总结 | 互联网数据资讯中心-199IT | 中文互联网数据研究资讯中心-199IT

小白都能看懂的softmax详解 - bitcarmanlee的博客 - CSDN博客

bandit算法原理及Python实现 - 新颜_USTC - CSDN博客

Contextual Bandit算法在推荐系统中的实现及应用 - 知乎 (比较详细介绍了LinUCB的思想和实现)

    这个系列太值得读了!从整体框架到细节,还有各种资源! 比之前看到的都好多了!    

[1] https://en.wikipedia.org/wiki/Multi-armed_bandit

[2] Bandit算法与推荐系统: https://blog.csdn.net/heyc861221/article/details/80129310

[3] Kuleshov,Precup. Algorithms for the multi-armed bandit problem. Journal of Machine Learning Research.

[4] Regret Analysis of Stochastic and Nonstochastic Multi-armed Bandit

[5] https://blog.csdn.net/lyx_yuxiong/article/details/81237416

Bandit

 

CSE599:online and adaptive machine learning

Lecture 3:Stochastic Multi-Armed Bandits, Regret Minimization

 

csdn  bandit 算法(3) -- UCB算法 

 

推荐系统的EE问题及Bandit算法

https://x-algo.cn/index.php/2016/12/15/ee-problem-and-bandit-algorithm-for-recommender-systems/

 

https://zhuanlan.zhihu.com/p/32356077

 

除了 DQN/A3C,还有哪些高级强化学习成果

 

斯坦福提出无需人类示范的强化学习算法 SOORL

深度神经网络和强化学习这对cp在模仿人类打游戏方面可谓是取得了不小的进步。但是这些智能体往往需要数百万个步骤进行训练,但是人类在学习新事物时效率可要高多了。我们是如何快速学习高效的奖励的,又是怎样让智能体做到同样水平的?

有人认为,人们学习并利用能解释世界如何运行的结构化模型,以及能用目标而不是像素表示世界的模型,从而智能体也能靠同样的方法从中获得经验。

具体来说,我们假设同时具备三个要素即可:运用抽象的目标水平的表示、学习能快速学习世界动态并支持快速计划的模型、利用前瞻计划进行基于模型的策略探索。

在这一思想的启发下,我们提出了策略目标强化学习(SOORL)算法,据我们所知,这是第一个能在雅达利游戏Pitfall!中能到积极奖励的算法。重要的是,该算法在这一过程中不需要人类的示范,可以闯过50关。SOORL算法利用强大的先验知识而非传统的深度强化学习算法,对环境中的目标和潜在的动态模型有了了解。但是相比于需要人类示范的方法来说,SOORL算法所掌握的信息就少了很多。  

 

SOORL在两方面超过了之前以目标为导向的强化学习方法:

  • 智能体在积极尝试选择一种简单模式,该模式解释了世界是如何运作的从而看起来是决定性的
  • 智能体用一种基于模型的积极计划方法,在做决定时假设智能体不会计算出一个完美的计划来应对即使知道世界怎样运作后会有何反应。

这两种方法都是从人类遇到的困难中受到的启发——先前经验很少,同时算力有限,人类必须快速学习做出正确的决定。为了达到这一目标,我们第一条方法发现,与复杂的、需要大量数据的深度神经网络模型不同,如果玩家按下的某一按键需要很少经验来估计,那么简单的决定性模型可以减少计划所需的计算力,尽管会经常出错,但对达到良好的效果已经足够了。第二,在奖励分散、复杂的电子游戏中,玩一场游戏可能需要成百上千个步骤,对于任何一个计算力有限的智能体来说,想在每个步骤都作出合适的计划是非常困难的,就算是12岁的小孩也是如此。我们用一种常用并且强大的方法做前瞻计划,即蒙特卡洛树搜索,将其与目标导向的方法结合,用作最优策略的探索,同时指导智能体学习它不了解的世界的环境。

 

 

 

Hybrid computing using a neural network with dynamic external memory

 

Bayesian Deep Learning 

NIPS 2018 workshop

 

Relation DRL

Relation inductive bias for physical construction in humans and machines

Relation inductive biases, deep learning and graph networks

Relational recurrent neural networks

Neural Ordinary Differential Equations

 

CNN 已老,GNN来了 图网络让深度学习也能因果推理

 

生成式对抗网络GAN有哪些最新的发展,可以实际应用到哪些场景中? - 知乎 https://www.zhihu.com/question/52602529

 

以上是关于关于Multi-Armed Bandit(MAB)问题及算法的主要内容,如果未能解决你的问题,请参考以下文章

Multi-armed Bandit Problem与增强学习的联系

强化学习方法:探索-利用困境exploration exploitation,Multi-armed bandit

强化学习专栏|多臂老虎机问题(Multi-armed Bandit Problem)

The Epsilon-Greedy /UCB ("upper confidence bound") for MAB (Multiarmed-bandit) problem som

适用于在线服务的A/B测试方法论

overthewire (bandit)