推薦系統之CTR預估-FM算法解析

一、問題由來

      在計算廣告和推薦系統中,CTR預估(click-through rate)是非常重要的一個環節,判斷一個商品是否進行推薦需要根據CTR預估的點擊率來進行。傳統的邏輯迴歸模型是一個廣義線性模型,非常容易實現大規模實時並行處理,因此在工業界獲得了廣泛應用,但是線性模型的學習能力有限,不能捕獲高階特徵(非線性信息),而在進行CTR預估時,除了單特徵外,往往要對特徵進行組合。對於特徵組合來說,業界現在通用的做法主要有倆大類:FM系列和DNN系列。今天,我們就來分享下FM算法。

二、爲什麼需要FM

     1、特徵組合是許多機器學習建模過程遇到的問題,如果對特徵直接建模,很有可能會忽略與特徵之間的關聯信息,因此,可以通過構建新的交叉特徵這一特徵組合方式提高模型的效果。

     2、高維的稀疏矩陣是實際工程中常見的問題,並直接會導致計算量過大,特徵權值更新緩慢。試想一個10000×100的表,每一列都有8種元素,經過one-hot獨熱編碼之後,會產生一個10000×800的表。因此表中每行元素只有100個值爲1,700個值爲0.特徵空間急劇變大,以淘寶上的item爲例,將item進行one-hot編碼以後,樣本空間有一個categories變爲了百萬維的數值特徵,特徵空間一下子暴增一百萬。所以大廠動不動上億維度,就是這麼來的。

    而FM的優勢就在於這倆方面問題的處理。首先是特徵組合,通過對兩兩特徵組合,引入交叉項特徵,提高模型得分;其次是高維災難,通過引入隱向量(對參數矩陣進行矩陣分解),完成對特徵的參數估計。

三、原理及求解

    在看FM算法前,我們先回顧一下最常見的線性表達式:

                                 

      其中W_{0}爲初始權值,或者理解爲偏置項,W_{i}爲每個特徵X_{i}對應的權值。可以看到,這種線性表達式只描述了每個特徵與輸出的關係。

     FM的表達式如下,可觀察到,只是在線性表達式後面加入了新的交叉特徵及對應的權值。

                                 

求解過程:

                 從上面的式子可以很容易看出,組合部分的特徵相關參數共有n(n-1)/2個。但是如第二部分所分析,在數據很稀疏的情況下,滿足Xi,Xj都不爲0的情況非常少,這樣將導致Wij無法通過訓練得出。

爲了求出Wij,我們對每一個特徵分量Xi引入輔助向量Vi=(Vi1,Vi2,...Vik)。然後,利用ViVj^T對Wij進行求解:

         

那麼Wij組成的矩陣可以表示爲:

 

               

 那麼,如何求解Vi和Vj呢?主要採用了公式:

                 

  

    四、參數求解

       利用梯度下降法,通過求損失函數對特徵(輸入項)的導數計算出梯度,從而更新權值。設m爲樣本個數。\varnothing爲權值。

 

 

其中,是和i無關的,可以事先求出來。每個梯度都可以在O(1)時間內求得,整體的參數更新的時間爲O(kn).

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章