介紹
MLR算法是alibaba在2012年提出並使用的廣告點擊率預估模型,2017年發表出來。
如下圖,LR不能擬合非線性數據,MLR可以擬合非線性數據,因為划分-訓練模式。
討論,非線性擬合能力:
數據划分規則如下公式,特征分片數m=1時,退化為LR;上圖MLR中m=4。m越大,模型的擬合能力越強,一般m=12。
基礎知識
優化方法:
1)剃度下降:
大小:一階導數,方向:導數負方向。由目標函數的泰勒一階展開式求得
2)牛頓法:
大小:一階導數,方向:-海信矩陣的逆。由目標函數的泰勒二階展開式求
3)擬牛頓法(LBFGS):牛頓方向通過約等替換,每個樣本保存下面三個參數:delta x ,delta剃度 和p:
增量替換,計算牛頓方向D
LBFGS方法通過一階導數中值定理,避免了計算海信矩陣(復雜度太大)。但是L1范數不能求導,所以需要OWLQN方法。
4)OWLQN:
(1)次梯度定義如下,
(2)不可導點取左or右次梯度,如下
直觀解釋,當你打算用左偏導時,說明是在負象限,因此要加上一個負值,使得更新之后參數更往負象限前進,這樣就避免了跨象限;當打算用右偏導數時,說明在正象限,一次要加上一個正值,使得更新之后參數更往正象限前進,從而避免跨象限;否則,只能直接設置subgradient為0。
(3)象限搜索line search:
x不在0點時,line search在x_i所在象限搜索;如果模型參數在0點,就要在(2)次梯度約束的象限內進行line search.
MLR算法
算法公式如下:
0計算邊界下降方向d:
1計算梯度大小:theta在0處不可導,取sign符號函數dij。
2計算最終下降方向p:
3象限內梯度下降,同OWLQN,line search:
paper介紹,MLR與LBFGS有三點不同:
1)OWLQN需要計算次梯度,MLR需要計算方向導數;
2)計算最終下降方向p時,MLR也要進行象限約束;
3)象限搜索line search,與OWLQN相似。
分布式框架實現
分布式
User特征共享
個人理解是為了加快運算速度,具體特征划分如下所示。其中,c是用戶特征,nc是非用戶特征。
實驗結果
實驗截圖略,具體圖表可以查看參考paper
縱坐標是內存使用率,特征共享技巧使速度提高了三倍。
參考paper:Learning Piece-wise Linear Models from Large Scale Data for Ad Click Prediction