推薦系統中使用CTR排序的f(x)的設計-傳統模型篇

一.什麼是ctr?

ctr即點擊率,在推薦系統中,通常是按照ctr來召回的內容子集進行排序,然後再結合策略進行內容的分發。

二.ctr預估模型的發展

ctr預估模型的公式:y=f(x),y的範圍爲[0, 1],表示廣告被點擊的概率。

1.LR海量高維離散特徵

LR(logistics regression),是ctr預估模型的最基本的模型。也是工業界最喜愛使用的方案。LR的介紹這裏就不細說了,介紹的教程隨便一搜一大堆。

此時,

其中 

這裏,我們定義一下, 

 

 LR 的優勢在於處理離散化特徵,而且模型十分簡單,很容易實現分佈式計算。關於LR的變種也有許多,比如Google的FTRL,其實這些變種都可以看成:LR+正則化—+特定優化方法

LR的缺點也很明顯,特徵與特徵之間在模型中是獨立的,對於一些存在交叉可能性的特徵(比如:衣服類與性別,這兩個特徵交叉很有意義),需要進行大量的人工特徵工程進行交叉。雖然模型簡單了,但是人工的工作卻繁忙了很多。而且LR需要將特徵進行離散化,歸一化,在離散化過程中也可能出現邊界問題。這裏便爲GBDT+LR的方案進行了鋪墊。

 

2.GBDT

GBDT,即梯度提升決策樹,是一種表達能力比較強的非線性模型。具體模型的介紹,也可以google出一堆教程。所以這裏就不做詳細的推導了。

此時,

 GBDT的優勢在於處理連續值特徵,比如用戶歷史點擊率,用戶歷史瀏覽次數等連續值特徵。而且由於樹的分裂算法,它具有一定的組合特徵的能力,模型的表達能力要比LR強。GBDT對特徵的數值線性變化不敏感,它會按照目標函數,自動選擇最優的分裂特徵和該特徵的最優分裂點,而且根據特徵的分裂次數,還可以得到一個特徵的重要性排序。所以,使用GBDT減少人工特徵工程的工作量和進行特徵篩選。

GBDT善於處理連續值特徵,但是推薦系統的絕大多數場景中,出現的都是大規模離散化特徵,如果我們需要使用GBDT的話,則需要將很多特徵統計成連續值特徵(或者embedding).這裏可能需要耗費比較多的時間。同時,因爲GBDT模型特點,它具有很強的記憶行爲。不利於挖掘長尾特徵。而且GBDT雖然具備一定的組合特徵的能力,但是組合的能力十分有限,遠不能與dnn相比。

 

3.FM與FFM

在LR部分,我們提及到了LR不能自動處理交叉特徵。而FM則是在這個基礎上進改進。

FM的模型公式爲:

在邏輯斯特函數裏面的公式可以看成兩部分,一部分是我們所熟悉的線性迴歸函數,而第二部分則是二次交叉項。所以FM處理特徵間二次交叉的能力。

但是二次項權重Wij需要我們去存儲一個二維矩陣的變量,而因爲特徵是大規模離散的,這個二維矩陣的維度可能很大。而FM的作者利用矩陣分解的原理,將這個權重矩陣進行分解,即

則FM的公式變爲:

但是這裏,對於特徵

都是使用

但是對於不同的特徵組合,比如天氣與地點,天氣與性別,關聯的程度是不一樣的,都使用同樣的向量與不同的特徵做內積,會帶來明顯的信息損失。所以引出了FFM(field FM)

FFM的模型公式爲:

這裏可能對FM的原理沒有闡述得十分清楚。所以推薦一篇美團團隊寫的文章:https://tech.meituan.com/這篇文章裏面具體闡述了FM與FFM.

FM的優點相對於LR在於擁有處理二次交叉特徵的能力,而且它是可以實現線性的時間複雜度的,模型訓練也十分快。

而FFM則是在FM的基礎上,考慮了特徵交叉的field的特點,但是也導致它沒有辦法實現線性的時間複雜度,模型訓練要比FM慢一個量級,但是效果會比FM來得更好。

4.GBDT+(LR,FM,FFM)

前面提及到了GBDT適合處理連續值特徵,而LR,FM,FFM更加適合處理離散化特徵。GBDT可以做到一定程度的特徵組合,而且GBDT的特徵組合是多次組合的,不僅僅是FM與FFM這樣的二階組合而已。同時,GBDT具備一定的特徵選擇能力(選擇最優的特徵進行分裂)。

在facebook2014年的一篇論文中,提及到GBDT+LR的解決方案。即先使用GBDT對一些稠密的特徵進行特徵選擇,得到的葉子節點,再拼接離散化特徵放進去LR進行訓練。在方案可以看成,利用GBDT替代人工實現連續值特徵的離散化,而且同時在一定程度組合了特徵,可以改善人工離散化中可能出現的邊界問題,也減少了人工的工作量。

而kaggle的ctr預估比賽中,臺大的團隊參考fb,使用了fbdt+ffm的方案奪冠。

此時GBDT+LR模型的公式爲:

5.MLR

MLR是由阿里團隊提出的一種非線性模型。它等價於聚類+LR的形式。

我們定義:

則MLR的公式爲:

相當於將X進行聚類,聚類m類,然後每一個聚類單獨訓練一個LR.

MLR相對於LR擁有更好的非線性表達能力,算是LR的一種拓展。

但是MLR與LR一樣,也需要較大的特徵工程處理,而且這個模型本身屬於非凸模型,需要預訓練,可能出現不收斂的情況。

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