從最近的比賽學習CTR/CVR

https://zhuanlan.zhihu.com/p/35046241html

從最近的比賽學習CTR/CVR

最近在玩kaggle的talking data的比賽,適逢IJCAI2018的比賽也是CTR問題,故將最近學習的東西整理下分享,歡迎你們拍磚。python

CTR預估就是這樣的任務:給定用戶或某惟一標識,給定一個商品(Product),給定了必定的環境,來看用戶會不會買這個商品,買商品的機率有多高;或者說給用戶推薦一個電影,用戶會不會看這個電影,看的機率有多高。形式化的表示就是建模P(click|content)給定上下文,建模點擊/購買/下載/使用的機率。git

CTR是不少電商,社交,信息流涉及到盈利的很是關鍵的技術,各家都很是重視,CTR微小的提高,帶來的就是可觀的盈利。github

CTR問題爲何是一個值得拿出來研究的問題,是由於問題的特殊性。算法

 

  • 存在高維度的稀疏特徵

好比從用戶的維度看,大的電商其用戶有上億,商品種類也繁多,這樣簡單的獨熱編碼就帶來了上億維的特徵ide

 

  • 不少離散性質的特徵

好比其行爲發生時間,行爲發生的渠道/頁面位置等學習

通常來說,對於CTR問題解決方向有兩個,一是經過精巧的特徵工程結合簡單的模型(LR),這須要很是之高的專家知識和特徵工程能力。二是弱化特徵工程,經過模型的複雜性來自動發現建模,比較有表明的是Facebook的GBDT+LR,FM,FFM,DNN等方法。深度學習風潮興起以後,不少基於NN的方法,如谷歌的deep and wide, Deep FM, FNN等方法也取得了不錯的效果。優化

參考 ,wzhe06同窗蒐集的論文列表編碼

除了很是厲害的特徵工程助你取勝以外,下面有一些經典的論文和方法講解。固然這只是通常套路,針對具體的數據須要你有本身的理解,活用方法和創新才能立於不敗之地。spa

0.FM/FFM

FM和FFM是臺大的童鞋們在Netflix的比賽中把名聲打響,後來在CTR中一直有不錯的效果,FM和FFM的設計,隱含了不少矩陣分解,以及深度學習中embedding的思想,能夠說這種壓縮降維表示的思想在高維稀疏數據中都有不錯的效果,這篇博客對其原理有講解。不過我在實踐中發現,libffm對於talking data這種數據量巨大,極不平衡的狀況下無法收斂,具體的緣由還在排查。

1.FTRL 

Ad Click Prediction a View from the Trenches

這篇論文是很是經典的FTRL方法,在taiking data的kernel上有Giba大佬的分享 giba-darragh-ftrl-rerevisited
FTRL還解決了在線學習的問題,在線學習是算法實用化很是關鍵的一點。中文博客在這裏有對原理的講解, 感興趣的同窗能夠看一看。

2. Practical Lessons from Predicting Clicks on Ads at Facebook

這篇文章也很是有名,是把GBDT的葉子結點送給LR,經過模型自動發現學習組合特徵。在業界和競賽上都有不錯的效果,中文博客以下三篇對這個講解不錯,Xgboost使用簡單的

new_feature= xgb.predict(d_test, *pred_leaf*=True)

就能夠拿到GBDT的葉子結點特徵,很是方便

3.一些NN方法

NN的方法直覺思路是,經過embedding獲得向量空間的表示,而後拿到表示後經過NN模型複雜的非線性完成分類。

在talking data一開始的時候,我在kernel寫了個NN一把梭的baseline,後來有幾個大佬在這上面作了一些優化,看起來比較簡單。

下面是一些比較經典的論文,這些論文不少在去年的騰訊計算廣告計算大賽中第一名都有所使用,而且取得了單模型就能排到第三的很好的成績,因此深度學習不容小覷。

youtebe使用DNN作推薦

Deep & wide

 

下面是一些過往比賽的整理:

kaggle:outbrain click prediction

kaggle:Display Advertising Challenge

kaggle Click-ThroughRate Prediction

騰訊社交廣告大賽

天池優惠券使用預測

這裏有一個完整的CTR的解決方法,,kaggle的數據集,比較適合學習,講解地很是詳細。

相關文章
相關標籤/搜索