從最近的比賽學習CTR/CVR
從最近的比賽學習CTR/CVR
最近在玩kaggle的talking data的比賽,適逢IJCAI2018的比賽也是CTR問題,故將最近學習的東西整理下分享,歡迎大家拍磚。
CTR預估就是這樣的任務:給定用戶或某唯一標識,給定一個商品(Product),給定了一定的環境,來看用戶會不會買這個商品,買商品的概率有多高;或者說給用戶推薦一個電影,用戶會不會看這個電影,看的概率有多高。形式化的表示就是建模P(click|content)給定上下文,建模點擊/購買/下載/使用的概率。
CTR是很多電商,社交,信息流涉及到盈利的非常關鍵的技術,各家都非常重視,CTR微小的提升,帶來的就是可觀的盈利。
CTR問題為什麼是一個值得拿出來研究的問題,是因為問題的特殊性。
- 存在高維度的稀疏特徵
比如從用戶的維度看,大的電商其用戶有上億,商品種類也繁多,這樣簡單的獨熱編碼就帶來了上億維的特徵
- 很多離散性質的特徵
比如其行為發生時間,行為發生的渠道/頁面位置等
一般來講,對於CTR問題解決方向有兩個,一是通過精巧的特徵工程結合簡單的模型(LR),這需要非常之高的專家知識和特徵工程能力。二是弱化特徵工程,通過模型的複雜性來自動發現建模,比較有代表的是Facebook的GBDT+LR,FM,FFM,DNN等方法。深度學習風潮興起之後,很多基於NN的方法,如谷歌的deep and wide, Deep FM, FNN等方法也取得了不錯的效果。
參考 https://github.com/wzhe06/Ad-papers,wzhe06同學搜集的論文列表
除了非常厲害的特徵工程助你取勝之外,下面有一些經典的論文和方法講解。當然這只是一般套路,針對具體的數據需要你有自己的理解,活用方法和創新才能立於不敗之地。
0.FM/FFM
FM和FFM是台大的童鞋們在Netflix的比賽中把名聲打響,後來在CTR中一直有不錯的效果,FM和FFM的設計,隱含了很多矩陣分解,以及深度學習中embedding的思想,可以說這種壓縮降維表示的思想在高維稀疏數據中都有不錯的效果,這篇博客對其原理有講解。https://blog.csdn.net/mmc2015/article/details/51760681不過我在實踐中發現,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的葉子結點特徵,非常方便
https://breezedeus.github.io/2014/11/19/breezedeus-feature-mining-gbdt.html#fn:fbgbdt
https://blog.csdn.net/dengxing1234/article/details/73739836
https://blog.csdn.net/lilyth_lilyth/article/details/48032119
3.一些NN方法
NN的方法直覺思路是,通過embedding得到向量空間的表示,然後拿到表示後通過NN模型複雜的非線性完成分類。
在talking data一開始的時候,我在kernel寫了個NN一把梭的baseline,後來有幾個大佬在這上面做了一些優化,看起來比較簡單。https://www.kaggle.com/baomengjiao/embedding-with-neural-network
下面是一些比較經典的論文,這些論文很多在去年的騰訊計算廣告計算大賽中第一名都有所使用,並且取得了單模型就能排到第三的很好的成績,所以深度學習不容小覷。
- Deep Neural Networks for YouTube Recommendations
youtebe使用DNN做推薦
- Wide & Deep Learning for Recommender Systems
Deep & wide
- FNN:
- PNN:
- DeepFM: A Factorization-Machine based Neural Network for CTR Prediction:
下面是一些過往比賽的整理:
kaggle:outbrain click prediction
https://www.kaggle.com/c/outbrain-click-prediction/discussionkaggle:Display Advertising Challengehttps://www.kaggle.com/c/criteo-display-ad-challengekaggle Click-ThroughRate Predictionhttps://www.kaggle.com/c/avazu-ctr-prediction/leaderboard騰訊社交廣告大賽http://algo.tpai.qq.com/person/mobile/?from=singlemessage&qz_gdt=cp77gwalayaicijolfwq天池優惠券使用預測https://tianchi.aliyun.com/competition/introduction.htm?spm=5176.100066.0.0.6f5fd780FIIzQn&raceId=231587
這裡有一個完整的CTR的解決方法,http://blog.csdn.net/chengcheng1394/article/details/78940565,kaggle的數據集,比較適合學習,講解地非常詳細。
推薦閱讀:
TAG:Kaggle | 機器學習 | 深度學習DeepLearning |