• LINUCB算法


    https://www.freesion.com/article/17781256797/

    《UCB算法升职记——LINUCB算法》

    这篇也不怎么样,讲得有点空洞

    我们再把UCB算法要解决的问题描述一下:
    
    面对固定的K个item(广告或推荐物品),我们没有任何先验知识,每一个item的回报情况完全不知道,每一次试验要选择其中一个,如何在这个选择过程中最大化我们的回报?
    
    UCB解决这个Multi-armed bandit问题的思路是:用置信区间。置信区间可以简单地理解为不确定性的程度,区间越宽,越不确定,反之亦反之。
    
    每个item的回报均值都有个置信区间,随着试验次数增加,置信区间会变窄(逐渐确定了到底回报丰厚还是可怜)。
    
    每次选择前,都根据已经试验的结果重新估计每个item的均值及置信区间。
    
    选择置信区间上限最大的那个item。
    
    “选择置信区间上界最大的那个item”这句话反映了几个意思:
    
    如果item置信区间很宽(被选次数很少,还不确定),那么它会倾向于被多次选择,这个是算法冒风险的部分;
    如果item置信区间很窄(备选次数很多,比较确定其好坏了),那么均值大的倾向于被多次选择,这个是算法保守稳妥的部分;
    UCB是一种乐观的算法,选择置信区间上界排序,如果时悲观保守的做法,是选择置信区间下界排序。我们再把UCB算法要解决的问题描述一下:
    
    面对固定的K个item(广告或推荐物品),我们没有任何先验知识,每一个item的回报情况完全不知道,每一次试验要选择其中一个,如何在这个选择过程中最大化我们的回报?
    
    UCB解决这个Multi-armed bandit问题的思路是:用置信区间。置信区间可以简单地理解为不确定性的程度,区间越宽,越不确定,反之亦反之。
    
    每个item的回报均值都有个置信区间,随着试验次数增加,置信区间会变窄(逐渐确定了到底回报丰厚还是可怜)。
    
    每次选择前,都根据已经试验的结果重新估计每个item的均值及置信区间。
    
    选择置信区间上限最大的那个item。
    
    “选择置信区间上界最大的那个item”这句话反映了几个意思:
    
    如果item置信区间很宽(被选次数很少,还不确定),那么它会倾向于被多次选择,这个是算法冒风险的部分;
    如果item置信区间很窄(备选次数很多,比较确定其好坏了),那么均值大的倾向于被多次选择,这个是算法保守稳妥的部分;
    UCB是一种乐观的算法,选择置信区间上界排序,如果时悲观保守的做法,是选择置信区间下界排序。
    为UCB插上特征的翅膀,这就是LinUCB最大的特色。
    
    LinUCB算法做了一个假设:一个Item被选择后推送给一个User,其回报和相关Feature成线性关系,这里的“相关feature”就是context,也是实际项目中发挥空间最大的部分。
    
    于是试验过程就变成:用User和Item的特征预估回报及其置信区间,选择置信区间上界最大的item推荐,观察回报后更新线性关系的参数,以此达到试验学习的目的。
  • 相关阅读:
    Spring学习(二) AOP 面向切面编程之概念(一)
    Spring学习(一) IOC容器学习
    多线程和同步分别有几种实现方法?
    如何理解"=="和equals方法
    &和&&的区别
    关于静态方法和非静态方法之间的调用
    缘来了,来园了
    Java设计模式-代理模式
    JavaBitSet学习
    kafka安装
  • 原文地址:https://www.cnblogs.com/charlesblc/p/16403830.html
Copyright © 2020-2023  润新知