推荐系统中使用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處理特征間二次交叉的能力。
但是二次項權重??需要我們去存儲一個二維矩陣的變量,而因為特征是大規模離散的,這個二維矩陣的維度可能很大。而FM的作者利用矩陣分解的原理,將這個權重矩陣進行分解,即??。
則FM的公式變為:
但是這里,對于特征??,??與??,??與??,都是使用??去和??、??做內積。但是對于不同的特征組合,比如天氣與地點,天氣與性別,關聯的程度是不一樣的,都使用同樣的向量去與不同的特征做內積,會帶來明顯的信息損失。所以引出了FFM(field FM)。
FFM的模型公式為:
這里可能對FM的原理沒有闡述得十分清楚。所以推薦一篇美團團隊寫的文章:https://tech.meituan.com/deep-understanding-of-ffm-principles-and-practices.html?。這篇文章里面具體闡述了FM與FFM。
FM的優點相對于LR在于擁有處理二次交叉特征的能力,而且它是可以實現線性的時間復雜度的(具體看美團的文章),模型訓練也十分快。
而FFM則是在FM的基礎上,考慮了特征交叉的field的特點,但是也導致它沒有辦法實現線性的時間復雜度,模型訓練要比FM慢一個量級,但是效果會比FM來得更好。
?
4. GBDT+(LR, FM, FFM)
前面提及到了GBDT適合處理連續值特征,而LR,FM,FFM更加適合處理離散化特征。GBDT可以做到一定程度的特征組合,而且GBDT的特征組合是多次組合的,不僅僅是FM與FFM這樣的二階組合而已。同時,GBDT具備一定的特征選擇能力(選擇最優的特征進行分裂)。
在facebook 2014年的一篇論文中,提及到GBDT+LR的解決方案。即先使用GBDT對一些稠密的特征進行特征選擇,得到的葉子節點,再拼接離散化特征放進去LR進行訓練。在方案可以看成,利用GBDT替代人工實現連續值特征的離散化,而且同時在一定程度組合了特征,可以改善人工離散化中可能出現的邊界問題,也減少了人工的工作量。
而kaggle的ctr預估比賽中,臺大的團隊參考fb,使用了gbdt+ffm的方案奪冠。
此時GBDT+LR模型的公式為:
?
5. MLR
MLR是由阿里團隊提出的一種非線性模型。它等價于聚類+LR的形式。
我們定義:
則MLR的公式為:
相當于將X進行聚類,聚成m類,然后每一個聚類單獨訓練一個LR。
MLR相對于LR擁有更好的非線性表達能力,算是LR的一種拓展。
但是MLR與LR一樣,也需要較大的特征工程處理,而且這個模型本身屬于非凸模型,需要預訓練,可能出現不收斂的情況。
總結
以上是生活随笔為你收集整理的推荐系统中使用ctr排序的f(x)的设计-传统模型篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【从传统方法到深度学习】图像分类
- 下一篇: 推荐系统遇上深度学习(二十二):Deep