https://zhuanlan.zhihu.com/p/35046241html
最近在玩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等方法也取得了不错的效果。优化
参考 https://github.com/wzhe06/Ad-papers,wzhe06同窗搜集的论文列表编码
除了很是厉害的特征工程助你取胜以外,下面有一些经典的论文和方法讲解。固然这只是通常套路,针对具体的数据须要你有本身的理解,活用方法和创新才能立于不败之地。spa
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
下面是一些比较经典的论文,这些论文不少在去年的腾讯计算广告计算大赛中第一名都有所使用,而且取得了单模型就能排到第三的很好的成绩,因此深度学习不容小觑。
youtebe使用DNN作推荐
Deep & wide
下面是一些过往比赛的整理:
kaggle:outbrain click prediction
https://www.kaggle.com/c/outbrain-click-prediction/discussion
kaggle:Display Advertising Challenge
https://www.kaggle.com/c/criteo-display-ad-challenge
kaggle Click-ThroughRate Prediction
https://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的数据集,比较适合学习,讲解地很是详细。