从最近的比赛学习CTR/CVR
https://zhuanlan.zhihu.com/p/35046241

从最近的比赛学习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
下面是一些比较经典的论文,这些论文很多在去年的腾讯计算广告计算大赛中第一名都有所使用,并且取得了单模型就能排到第三的很好的成绩,所以深度学习不容小觑。
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的数据集,比较适合学习,讲解地非常详细。
从最近的比赛学习CTR/CVR的更多相关文章
- 我的第一个 Kaggle 比赛学习 - Titanic
背景 Titanic: Machine Learning from Disaster - Kaggle 2 年前就被推荐照着这个比赛做一下,结果我打开这个页面便蒙了,完全不知道该如何下手. 两年后,再 ...
- ACM比赛学习指导(20180223)
0.比赛介绍 (1)浙江省大学生程序设计比赛,3人一组,题目为英文 (2)ACM程序设计比赛 百度百科介绍 1.理论学习 (1)<挑战程序设计竞赛>,秋叶拓哉,巫泽俊 (2)<算法竞 ...
- multi-task learning
多任务学习, CTR, CVR 任务同时训练, 同时输出概率.
- CTR预估模型演变及学习笔记
[说在前面]本人博客新手一枚,象牙塔的老白,职业场的小白.以下内容仅为个人见解,欢迎批评指正,不喜勿喷![握手][握手] [再啰嗦一下]如果你对智能推荐感兴趣,欢迎先浏览我的另一篇随笔:智能推荐算法演 ...
- 深度学习在CTR预估中的应用
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂优文发表于云+社区专栏 一.前言 二.深度学习模型 1. Factorization-machine(FM) FM = LR+ e ...
- 推荐中的多任务学习-ESMM
本文将介绍阿里发表在 SIGIR'18 的论文ESMM<Entire Space Multi-Task Model: An Effective Approach for Estimating Po ...
- 多任务学习(MTL)在转化率预估上的应用
今天主要和大家聊聊多任务学习在转化率预估上的应用. 多任务学习(Multi-task learning,MTL)是机器学习中的一个重要领域,其目标是利用多个学习任务中所包含的有用信息来帮助每个任务学习 ...
- CTR预估经典模型总结
计算广告领域中数据特点: 1 正负样本不平衡 2 大量id类特征,高维,多领域(一个类别型特征就是一个field,比如上面的Weekday.Gender.City这是三个field),稀疏 ...
- 深入FM和FFM原理与实践
FM和FFM模型是最近几年提出的模型,凭借其在数据量比较大并且特征稀疏的情况下,仍然能够得到优秀的性能和效果的特性,屡次在各大公司举办的CTR预估比赛中获得不错的战绩.美团点评技术团队在搭建DSP的过 ...
随机推荐
- Fiddler抓包工具怎么设置HTTPS抓包
最近在学习使用 Fiddler 抓包工具时遇到一个问题,Fiddler 默认只对 HTTP 协议进行抓包,如果出现下图提示,则需要进行相应设置才可以抓包HTTPS 具体步骤 ①:Tools-Optio ...
- [转帖]PostgreSQL的时间/日期函数使用
PostgreSQL的时间/日期函数使用 https://www.cnblogs.com/mchina/archive/2013/04/15/3010418.html 这个博客的 文章目录比上一个好十 ...
- Linux系统安装snmp服务
Linux安装snmp详解 Snmp一种网络之间的传输协议,通过snmp可以采集很多指标比如cpu.内存及磁盘的信息,现在越来越多的网络设备基本上都支持snmp,本文介绍了snmp的安装过程. 二.安 ...
- 想让自己的项目6666,可是 Chrome 不答应!
读万卷书,行万里路!有的技能可以从书里学会,有的技能却需要在实战中打怪升级慢慢掌握,今天就来和大家聊一个很多小伙伴经常遇到的问题. 缘起 有人向松哥反映,在搭建微服务分布式配置中心 Spring Cl ...
- Window应急响应(六):NesMiner挖矿病毒
0x00 前言 作为一个运维工程师,而非一个专业的病毒分析工程师,遇到了比较复杂的病毒怎么办?别怕,虽然对二进制不熟,但是依靠系统运维的经验,我们可以用自己的方式来解决它. 0x01 感染现象 1.向 ...
- [转] console.log的高级用法
//基本用法 console.log('最常见用法\n换行'); console.error('输出错误信息 会以红色显示'); console.warn('打印警告信息 会以黄色显示'); cons ...
- ******可用 SpringBoot 项目打包分开lib,配置和资源文件
spring-boot多模块打包后,无法找到其他模块中的类https://blog.csdn.net/Can96/article/details/96172172 关于SpringBoot项目打包没有 ...
- Python基础13
<玩1>中关于病假.事假的问题,说得不完全正确. 实际为哑变量. 有关看待问题的维度.出发点(即屁股在哪里) 转哑变量后可以提高模型精度. 机器学习不怕字段过多. 转哑变量是在增维.
- 英语cowbezoar牛黄cowbezoar单词
牛黄(cowbezoar)是脊索动物门哺乳纲牛科动物牛胆囊的胆结石.在胆囊中产生的称“胆黄”或“蛋黄”,在胆管中产生的称“管黄”,在肝管中产生的称“肝黄”. 中文学名牛黄 拉丁学名Bos taurus ...
- 大数据技术原理与应用【第五讲】NoSQL数据库:5.3 NoSQL的四大类型
5.3 NoSQL的四大类型 5.3.1 键值数据库和列族数据库 可以分为四大类产品:键值数据库,列族数据库,文档数据库,图数据库 (代表) 1.键值数据库: 用的多:redis云数据库: ...