Online方式點擊率預估時學習率不斷變小,是否可能追不上目標函數的變化?
在使用FTRL演算法時,學習率(eta + sqrt{n_i})/alpha是單調遞減的,這裡隱含假設了目標函數是固定的。
但廣告(特徵向量)是否隨著時間因素,或其它因素影響,導致點擊率變化,導致學習的速度追不上目標的變化的速度(concept drift)。
謝邀。
online演算法,比如ftrl追求的是regret小,而不是優化目標小,對於regret小這個目標,數據分布和順序不影響regret。
實際的ctr預估問題不僅僅要求regret小,還要求優化目標小等等,因此數據順序和隨時間的變化對業務結果有影響,也就是說當數據分布發生嚴重變化的時候,還是應當做調整的。最常用的解決方法是用以前的參數初始化一下,然後重啟演算法。
=========題外話科普分割線=========
注意: online演算法與傳統優化演算法考慮問題的區別,一般來說追求regret的online演算法並不會假設數據按什麼順序到來,而追求優化目標小的演算法比如sgd會要求每一步從數據中均勻採樣一個剃度。
舉例說一說regret,SGD可以被看是一種優化演算法也可以看做是online演算法。當SGD被看做是優化演算法的時候,它的解在目標函數上有這樣的bound(參考:ROBUST STOCHASTIC APPROXIMATION APPROACH TO STOCHASTIC PROGRAMMING)
當SGD被看做是online演算法的時候(稱作Online gradient descent),可以證明它在regret上也有bound(參考:Logarithmic Regret Algorithms for Online Convex Optimization)
這兩個不同的bound中,前者是帶有期望的,後者是無期望的,之所以前者會引入期望是因為需要SGD每一步均勻得從數據中抽樣一個梯度出來,因此證明中有這樣一個期望E,而online gradient descent演算法只過一遍數據,並且無視數據順序,也就沒有期望E。以上例子比較簡單,對於ftrl這類相對比較複雜一點的演算法,數據的順序也不會對regret bound造成影響。(參考:A Unified View of Regularized Dual Averaging and Mirror Descent with Implicit Updates)
如果一個特徵出現的頻率很高。那麼學習率變小沒關係。如果一個特徵出現頻率低。特別那些大量新出現的特徵。那麼他們的學習速率一開始是高的
學習率單調遞減的online learning演算法通常背後的假設是IID採樣,即數據分布不隨時間變化。如果要考慮concept drift的話可以考慮更adaptive的方法,比如AdaDelta等對歷史做decay的方法。
我覺得用 AdaDelta 做梯度下降是一個好的辦法,替換掉原來從頭開始的積累梯度的平方的做法,改用只積累一個窗口的梯度平方和。這樣就算是loss function改變了,我們依然可以保證一定的learning rate去優化。
這個是有可能的,不過per-coordinate learning rate不是ftrl的關鍵,這地方改一下影響不大,比如可以重置一下
一種做法是保留個最小learning rate;或者batch+online
直觀來看,訓練得到的函數肯定只能逼近。現實環境中,突發事件,熱點等肯定會影響目標函數。
推薦閱讀:
※如何用機器學習做廣告反作弊?
※廣告點擊預估用深度學習怎麼搞?
※什麼是計算廣告學?
※做實時計費時如何降低廣告超預算?
※為什麼LR可以用來做CTR預估?