1. 程式人生 > >線上學習演算法FTRL-Proximal原理

線上學習演算法FTRL-Proximal原理

1.背景

Follow The Regularized Leader Proximal,簡稱FTRL,由Google公司提出。由於FTRL收斂速度快、能產生稀疏解等優勢,FTRL在計算廣告領域的重要性日益凸顯。

2.回顧SGD

可以參考文章利用SGD方法訓練FM模型 地址

定義:

模型引數:
第t個樣本:
自定義Loss Function
然後可以利用隨機梯度下降(SGD)得到引數更新值:
進行迭代:
其中,是learning rate(學習速率,也就是步長)。
這種迭代方式夠簡單,但不夠好,也不產生稀疏解。

3.Follow The Leader(FTR)

FTR是FTRL的前身,每次找到讓之前所有損失函式之和最小的引數
演算法流程

  1. 隨機初始化(實驗證明隨機初始化比直接賦值效果更好)
  2. for t in 1,2,…,n
    (1)得到損失函式
    (2)更新

4.Follow The Regularized Leader(FTLR)

FTLR在FTR上加了一個正則項
Google的原文是這樣描述的:“Like Stochastic Gradient Descent, but much sparser models.”
(1)推導

其中

式中第一項是對損失函式的貢獻的一個估計,第二項是控制w(也就是model)在每次迭代中變化不要太大,第三項代表L1正則(獲得稀疏解),表示學習速率。

學習速率可以通過超引數自適應學習

(2)進一步化簡

這個優化問題看起來比較難解,因為看起來要儲存迭代過程產生過的所有model引數。實際上,經過巧妙的處理,只要為model引數x的每個係數存一個數就可以了。

最終可以化簡為

令梯度為0,得到解析解

其中,

對於上面的迭代式,如果 = 0,同時學習率η取一個常數,這個迭代過程就跟SGD是一致的

(3)演算法流程
注:此流程中將自適應學習速率中超參設為0

5.實際工程Tip

(1)使用正負樣本的數目來計算梯度的和(所有的model具有同樣的N和P)

(2)Subsampling Training Data
    1)在實際中,CTR遠小於50%,所以正樣本更加有價值。通過對訓練資料集進行subsampling,可以大大減小訓練資料集的大小
    2)正樣本全部採(至少有一個廣告被點選的query資料),負樣本使用一個比例r取樣(完全沒有廣告被點選的query資料)。但是直接在這種取樣上進行訓練,會導致比較大的biased prediction
    3)解決辦法:訓練的時候,對樣本再乘一個權重。權重直接乘到loss上面,從而梯度也會乘以這個權重。
    


    先採樣減少負樣本數目,在訓練的時候再用權重彌補負樣本,從而控制P(Y=1)的count。
    
參考文獻
(1) Ad Click Prediction: a View from the Trenches.H. Brendan McMahan, Gary Holt, D. Sculley et al
(2)美團技術團隊《Online Learning演算法理論與實踐》地址