FTRL(Follow The Regularized Leader)學習總結


摘要:

  1.算法概述

  2.算法要點與推導

  3.算法特性及優缺點

  4.注意事項

  5.實現和具體例子

  6.適用場合

內容:

  1.算法概述

  FTRL是一種適用於處理超大規模數據的,含大量稀疏特征的在線學習的常見優化算法,方便實用,而且效果很好,常用於更新在線的CTR預估模型;

  FTRL算法兼顧了FOBOSRDA兩種算法的優勢,既能同FOBOS保證比較高的精度,又能在損失一定精度的情況下產生更好的稀疏性。

  FTRL在處理帶非光滑正則項(如L1正則)的凸優化問題上表現非常出色,不僅可以通過L1正則控制模型的稀疏度,而且收斂速度快;

  參考:[筆記]FTRL與Online Optimization

 

  2.算法要點與推導

  

  3.算法特性及優缺點

  FTRL-Proximal工程實現上的tricks:

  1.saving memory

    方案1)Poisson Inclusion:對某一維度特征所來的訓練樣本,以p的概率接受並更新模型。
    方案2)Bloom Filter Inclusion:用bloom filter從概率上做某一特征出現k次才更新。

  2.浮點數重新編碼

    1)特征權重不需要用32bit或64bit的浮點數存儲,存儲浪費空間
    2)16bit encoding,但是要注意處理rounding技術對regret帶來的影響(注:python可以嘗試用numpy.float16格式)
  3.訓練若干相似model
    1)對同一份訓練數據序列,同時訓練多個相似的model
    2)這些model有各自獨享的一些feature,也有一些共享的feature
    3)出發點:有的特征維度可以是各個模型獨享的,而有的各個模型共享的特征,可以用同樣的數據訓練。
  4.Single Value Structure
    1)多個model公用一個feature存儲(例如放到cbase或redis中),各個model都更新這個共有的feature結構
    2)對於某一個model,對於他所訓練的特征向量的某一維,直接計算一個迭代結果並與舊值做一個平均
  5.使用正負樣本的數目來計算梯度的和(所有的model具有同樣的N和P)

      

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

 

   算法特點:

   在線學習,實時性高;可以處理大規模稀疏數據;有大規模模型參數訓練能力;根據不同的特征特征學習率

   缺點:

     

  4.注意事項

  5.實現和具體例子

    FTRL處理“Springleaf Marketing Response”數據

    Spark Streaming on Angel FTRL

  6.適用場合

    點擊率模型


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM