在线学习算法

论坛 期权论坛     
选择匿名的用户   2021-5-30 21:03   298   0
<h3 id="-">背景</h3>
<p>Online Learning是工业界比较常用的机器学习算法,在很多场景下都能有很好的效果。本文主要介绍Online Learning的基本原理和两种常用的Online Learning算法:FTRL(Follow The Regularized Leader)[1]和BPR(Bayesian Probit Regression)[2],以及Online Learning在美团移动端推荐重排序的应用。</p>
<h3 id="-online-learning"><a name="t1"></a>什么是在线学习(Online Learning)</h3>
<p>准确地说,Online Learning并不是一种模型,而是一种模型的训练方法,Online Learning能够根据线上反馈数据,实时快速地进行模型调整,使得模型及时反映线上的变化,提高线上预测的准确率。Online Learning的流程包括:将模型的预测结果展现给用户,然后收集用户的反馈数据,再用来训练模型,形成闭环的系统。如下图所示:</p>
<p>                                        </p>
<p>Online Learning有点像自动控制系统,但又不尽相同,二者的区别是:Online Learning的优化目标是整体的损失函数最小化,而自动控制系统要求最终结果与期望值的偏差最小。</p>
<p>传统的训练方法,模型上线后,更新的周期会比较长(一般是一天,效率高的时候为一小时),这种模型上线后,一般是静态的(一段时间内不会改变),不会与线上的状况有任何互动,假设预测错了,只能在下一次更新的时候完成更正。Online Learning训练方法不同,会根据线上预测的结果动态调整模型。如果模型预测错误,会及时做出修正。因此,Online Learning能够更加及时地反映线上变化。</p>
<p><strong>Online Learning的优化目标</strong></p>
<p>                                                                  </p>
<p>如上图所示,Online Learning训练过程也需要优化一个目标函数(红框标注的),但是和其他的训练方法不同,Online Learning要求快速求出目标函数的最优解,最好是能有解析解。</p>
<h3><a name="t2"></a>怎样实现Online Learning</h3>
<p>前面说到Online Learning要求快速求出目标函数的最优解。要满足这个要求,一般的做法有两种:Bayesian Online Learning和Follow The Regularized Leader。下面就详细介绍这两种做法的思路。</p>
<p><strong>Bayesian Online Learning</strong></p>
<p>贝叶斯方法能够比较自然地导出Online Learning的训练方法:给定参数先验,根据反馈计算后验,将其作为下一次预测的先验,然后再根据反馈计算后验,如此进行下去,就是一个Online Learning的过程,如下图所示。</p>
<p>                                                               </p>
<p>举个例子, 我们做一个抛硬币实验,估算硬币正面的概率<img alt="\mu" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-66f61b77bbc27510aeb92b9abceb8cac.latex">。我们假设<img alt="\mu" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-66f61b77bbc27510aeb92b9abceb8cac.latex">的先验满足</p>
<p>                                                                  <img alt="p\left(\mu \right) &#61; \operatorname{Beta}(\alpha, \beta)" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-8b80d55113ab1c523c60d3abea99538b.latex"><br> 对于观测值<img alt="Y&#61;1" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-980fed3390f41619e7483229a113b6fa.latex">,代表是正面,我们可以算的后验:</p>
<p>                                                                  <img alt="p\left( \mu | Y&#61;1 \right) &#61; \operatorname{Beta}(\alpha&#43;1, \beta)" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-f6ba7e8640aa9f3fdc9d54a37f142836.latex"><br> 对于观测值<img alt="Y&#61;0" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-1d4e2f5e55d445f5949fa6301096df08.latex">,代表是反面,我们可以算的后验:</p>
<p>                                                                <img alt="p\left(\mu \right | Y&#61;0) &#61; \operatorname{Beta}(\alpha, \beta&#43;1)" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-e76676af84c8c6de0f8dc7bc72c7f907.latex"><br> 按照上面的Bayesian Online Learning流程,我们可以得到估算<img alt="\mu" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-66f61b77bbc27510aeb92b9abceb8cac.latex">的Online Learning算法:</p>
<blockquote>
<p>初始化 <img alt="\alpha, \beta" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-9dea6aad9ec181d3e5a1ebe020a5b704.latex"><br> for i &#61; 0 ... n </p>
<blockquote>
  <p>如果 <img alt="Y_{i}" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-f8d0e65950d0f106f029b07598308264.latex">是正面<br><img alt="\alpha &#61;\alpha&#43;1" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-eb93401525f37a308315bd13f73de9d9.latex"><br> 如果 YiYi是反面<br><img alt="\beta &#61;\beta&#43;1" src="https://beijingopt
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP