日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Online Learning算法理论与实践

發(fā)布時間:2024/1/17 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Online Learning算法理论与实践 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Online Learning是工業(yè)界比較常用的機器學習算法,在很多場景下都能有很好的效果。本文主要介紹Online Learning的基本原理和兩種常用的Online Learning算法:FTRL(Follow The Regularized Leader)[1]和BPR(Bayesian Probit Regression)[2],以及Online Learning在美團移動端推薦重排序的應用。

?

什么是Online Learning

????? 準確地說,Online Learning并不是一種模型,而是一種模型的訓練方法,Online Learning能夠根據(jù)線上反饋數(shù)據(jù),實時快速地進行模型調(diào)整,使得模型及時反映線上的變化,提高線上預測的準確率。Online Learning的流程包括:將模型的預測結(jié)果展現(xiàn)給用戶,然后收集用戶的反饋數(shù)據(jù),再用來訓練模型,形成閉環(huán)的系統(tǒng)。如下圖所示:

Online Learning有點像自動控制系統(tǒng),但又不盡相同,二者的區(qū)別是:Online Learning的優(yōu)化目標是整體的損失函數(shù)最小化,而自動控制系統(tǒng)要求最終結(jié)果與期望值的偏差最小。

傳統(tǒng)的訓練方法,模型上線后,更新的周期會比較長(一般是一天,效率高的時候為一小時),這種模型上線后,一般是靜態(tài)的(一段時間內(nèi)不會改變),不會與線上的狀況有任何互動,假設預測錯了,只能在下一次更新的時候完成更正。Online Learning訓練方法不同,會根據(jù)線上預測的結(jié)果動態(tài)調(diào)整模型。如果模型預測錯誤,會及時做出修正。因此,Online Learning能夠更加及時地反映線上變化。

Online Learning的優(yōu)化目標

如上圖所示,Online Learning訓練過程也需要優(yōu)化一個目標函數(shù)(紅框標注的),但是和其他的訓練方法不同,Online Learning要求快速求出目標函數(shù)的最優(yōu)解,最好是能有解析解。

?

怎樣實現(xiàn)Online Learning

????? 前面說到Online Learning要求快速求出目標函數(shù)的最優(yōu)解。要滿足這個要求,一般的做法有兩種:Bayesian Online Learning和Follow The Regularized Leader。下面就詳細介紹這兩種做法的思路。

Bayesian Online Learning

貝葉斯方法能夠比較自然地導出Online Learning的訓練方法:給定參數(shù)先驗,根據(jù)反饋計算后驗,將其作為下一次預測的先驗,然后再根據(jù)反饋計算后驗,如此進行下去,就是一個Online Learning的過程,如下圖所示。

舉個例子, 我們做一個拋硬幣實驗,估算硬幣正面的概率。我們假設的先驗滿足


對于觀測值,代表是正面,我們可以算的后驗:

對于觀測值,代表是反面,我們可以算的后驗:
?

按照上面的Bayesian Online Learning流程,我們可以得到估算的Online Learning算法:

最終:?,可以取的期望,

假設拋了次硬幣,正面出現(xiàn)次,反面出現(xiàn)次,按照上面的算法,可以算得:

和最大化似然函數(shù):


得到的解是一樣的。

上面的例子是針對離散分布的,我們可以再看一個連續(xù)分布的例子。

有一種測量儀器,測量的方差是已知的, 測量結(jié)果為:, 求真實值的分布。

儀器的方差是, 所以觀測值Y滿足高斯分布:

觀測到?, 估計參數(shù)?。
假設參數(shù)?滿足高斯分布:

觀測到, 可以計算的后驗:


可以得到以下的Online Learning算法:

上面的兩個結(jié)果都是后驗跟先驗是同一分布的(一般取共軛先驗,就會有這樣的效果),這個后驗很自然的作為后面參數(shù)估計的先驗。假設后驗分布和先驗不一樣,我們該怎么辦呢?

舉個例子:假設上面的測量儀器只能觀測到,是大于0,還是小于0,即,,代表觀測值小于0,代表觀測值大于0。

此時,我們?nèi)匀豢梢杂嬎愫篁灧植?#xff1a;


但是后驗分布顯然不是高斯分布(是截斷高斯分布),這種情況下,我們可以用和上面分布KL距離最近的高斯分布代替。
觀測到

可以求得:
?

觀測到



可以求得:
?

兩者綜合起來,可以求得:



其中:


?

有了后驗我們可以得到Online Bayesian Learning流程:

Bayesian Online Learning最常見的應用就是BPR(Bayesian Probit Regression)。

BPR

在看Online BPR前,我們先了解以下Linear Gaussian System(具體可以參考[3]的4.4節(jié))。
是滿足多維高斯分布:


是通過線性變換加入隨機擾動得到的變量:

已知,我們可以得到的分布:

上面這個結(jié)論的具體的推導過程可以參考[3]的4.4節(jié),這里我們直接拿來用。

我們可以假設特征權(quán)重?滿足獨立高斯分布,即


?

是一維變量,是與特征向量的內(nèi)積,加入方差為的擾動:


根據(jù)上面的式子可以得出:

由于我們只能觀測到,是大于0,還是小于0,即,,代表觀測值小于0,代表觀測值大于0。

對于觀測值,我們可以先用KL距離近似的分布,我們可以算出后驗:




有了的近似分布,我們可以計算出后驗:

可以求得:

?

Online Bayesian Probit Regression 訓練流程如下:

FTRL

除了Online Bayesian Learning,還有一種做法就是FTRL(Follow The Regularized Leader)。
FTRL的網(wǎng)上資料很多,但是大部分介紹怎么樣產(chǎn)生稀疏化解,而往往忽略了FTRL的基本原理。顧名思義,FTRL和稀疏化并沒有關系,它只是一種做Online Learning的思想。

先說說FTL(Follow The Leader)算法,FTL思想就是每次找到讓之前所有損失函數(shù)之和最小的參數(shù)。流程如下:

FTRL算法就是在FTL的優(yōu)化目標的基礎上,加入了正規(guī)化,防止過擬合:


其中,是正規(guī)化項。

FTRL算法的損失函數(shù),一般也不是能夠很快求解的,這種情況下,一般需要找一個代理的損失函數(shù)。

代理損失函數(shù)需要滿足幾個要求:

  • 代理損失函數(shù)比較容易求解,最好是有解析解
  • 優(yōu)化代理損失函數(shù)求的解,和優(yōu)化原函數(shù)得到的解差距不能太大
  • 為了衡量條件2中的兩個解的差距,這里需要引入regret的概念。

    假設每一步用的代理函數(shù)是
    每次取

    ?

    其中,是原函數(shù)的最優(yōu)解。就是我們每次代理函數(shù)求出解,離真正損失函數(shù)求出解的損失差距。當然這個損失必須滿足一定的條件,Online Learning才可以有效,就是:

    隨著訓練樣本的增多,這兩個優(yōu)化目標優(yōu)化出的參數(shù)的實際損失值差距越來越小。

    代理函數(shù)?應該該怎么選呢?

    如果是凸函數(shù),我們可以用下面的代理損失函數(shù):

    其中是次梯度(如果是可導的,次梯度就是梯度)。滿足:

    為了產(chǎn)生稀疏的效果,我們也可以加入l1正規(guī)化:


    只要是凸函數(shù),上面的代理函數(shù)一定滿足:

    上面的式子我們可以得出?的解析解:

    其中

    可以得到FTRL的更新流程如下:

    ?

    Online Learning實踐

    ????? 前面講了Online Learning的基本原理,這里以移動端推薦重排序為例,介紹一下Online Learning在實際中的應用。

    推薦重排序介紹

    目前的推薦系統(tǒng),主要采用了兩層架構(gòu),首先是觸發(fā)層,會根據(jù)上下文條件和用戶的歷史行為,觸發(fā)用戶可能感興趣的item,然后由排序模型對觸發(fā)的item排序,如下圖所示:

    推薦重排序既能融合不同觸發(fā)策略,又能較大幅度提高推薦效果(我們這里主要是下單率)。在移動端,屏幕更加小,用戶每次看到的item數(shù)目更加少,排序的作用更加突出。

    美團重排序Online Learning架構(gòu)

    美團Online Learning架構(gòu)如下圖所示:

    線上的展示日志,點擊日志和下單日志會寫入不同的Kafka流。讀取Kafka流,以HBase為中間緩存,完成label match(下單和點擊對映到相應的展示日志),在做label match的過成中,會對把同一個session的日志放在一起,方便后面做skip above:

    訓練數(shù)據(jù)生成

    移動端推薦的數(shù)據(jù)跟PC端不同,移動端一次會加載很多item,但是無法保證這些item會被用戶看到。為了保證數(shù)據(jù)的準確性,我們采用了skip above的辦法,如下圖所示:

    假設用戶點擊了第i個位置,我們保留從第1條到第i+2條數(shù)據(jù)作為訓練數(shù)據(jù),其他的丟棄。這樣能夠最大程度的保證訓練樣本中的數(shù)據(jù)是被用戶看到的。

    特征

    用的特征如下圖所示:

    算法選擇

    我們嘗試了FTRL和BPR效果,線下實驗效果如下表:

    BPR的效果略好,但是我們線上選用了FTRL模型,主要原因是FTRL能夠產(chǎn)生稀疏化的效果,訓練出的模型會比較小。

    模型訓練

    訓練算法不斷地從HBase中讀取數(shù)據(jù),完成模型地訓練,訓練模型放在Medis(美團內(nèi)部地Redis)中,線上會用Medis中的模型預測下單率,根據(jù)預測的下單率,完成排序。

    線上效果

    上線后,最終的效果如下圖所示,和base算法相比,下單率提高了5%。

    ?

    參考資料

    • [1] McMahan H B, Holt G, Sculley D, et al. Ad Click Prediction: a View from the Trenches. Proceedings of the 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD). 2013.
    • [2] Graepel T, Candela J Q, Borchert T,et al. Web-Scale Bayesian Click-Through Rate Prediction for Sponsored Search Advertising in Microsoft's Bing Search Engine. Proceedings of the 27th International Conference on Machine Learning ICML. 2010.
    • [3] Murphy K P. Machine Learning: A Probabilistic Perspective. The MIT Press. 2012.

    原文鏈接:http://tech.meituan.com/online-learning.html

    總結(jié)

    以上是生活随笔為你收集整理的Online Learning算法理论与实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。