IJCAI-18 阿里妈妈搜索广告转化预测总结(0.13966,53/5204)

赛题内容

本次比赛以阿里电商广告为研究对象,提供了淘宝平台的海量真实交易数据,参赛选手通过人工智能技术构建预测模型预估用户的购买意向,即给定广告点击相关的用户(user)、广告商品(ad)、检索词(query)、上下文内容(context)、商店(shop)等信息的条件下预测广告产生购买行为的概率(pCVR),形式化定义为:pCVR=P(conversion=1 | query, user, ad, context, shop)。

结合淘宝平台的业务场景和不同的流量特点,我们定义了以下两类挑战:

  1. 日常的转化率预估
  2. 特殊日期的转化率预估

评估指标

数据挖掘流程

  1. 数据探索与特征使用方案:业务逻辑和特征覆盖率
  2. 数据采样:样本采样与过滤
  3. 根据特征使用方案构造特征:基础特征、平稳特征、动态特征、高阶特征、文本特征、偏好特征、趋势特征、leak特征等
  4. 特征分类:连续性、二值型、枚举型
  5. 特征处理与分析:特征归一化、离散化(one-hot)、缺失值填补
  6. 特征选择:过滤型、包裹型(采用该方案,KFlod)、嵌入型
  7. 模型选择:bagging(采用该方案,KFlod)、stacking

数据探索

复赛提供了8月31日到9月7号12:00:00的数据,需要预测9月7号12:00:00~24:00:00的广告转化率。

我们首先分析了每天的流量、转化率。

流量图:

转化率图:

通过分析,我们可以发现6号和7号的场景与前6天的场景不同,点击量在这两天猛增,在6号的转化率突然降低(大家观望并没有发生消费),7号转化率突然增高(大量的消费记录),初步推测7号应该为双11或者618。

我们采用7号上半天的数据作为训练集,每次验证随机选择20%数据作为验证集。这样子做的优点是可以加快训练,节省时间,可以验证更多的特征及思路。

存在的问题--用户冷启动

用户点击次数:

通过该图可以发现大多数用户的点击量为0,所以存在用户冷启动问题,即该用户没有历史记录,不能从历史数据中获得该用户的购物意向。针对每个冷启动用户,我们只能从点击商品的属性和上下文信息中获得购物意向。

我们的解决方案:

可以通过有多次点击用户的历史行为学习每个商品的相似度。具体的是将用户点击商品行为路径转化为成word2vec的输入形式。通过word2vec计算每个商品的向量表示,通过向量表示可以表示商品的相似度。

user_id item_id
history_click
path
1 A   0
1 B 0 1
1 C 00 2
1 A 001 3
2 A   0
2 A 1 4
2 B 10 5
2 A 101 6

特征选择

我们采用KFlod的方案选择特征。即将训练集分成5等份,每次选择80%的数据作为训练,剩余的20%作为验证,将每次验证结果拼接在一起可以得到整个训练集的验证结果。相当于用5个不同的模型验证了新的特征,通过该特征选择方案可以选择出可靠的特征。

类别平衡

通过设置每个样本的权重从而达到类别平衡。训练集的转化率为0.046,测试集的转化率预估0.037,所以我们需要加大对负样本的权重,使得预测转化率降低。

上式中expected_cvr代表期望达到的转化率,pos_example和neg_example分别是训练集中正样本和负样本的个数,pos_weight和neg_weight分别是训练集中正样本和负样本的权重。我们可以设置pos_weight固定为1,调整neg_weight即可。

在这里需要注意到,在sklearn、lgb或者xgb中有两个参数都已达到该效果,即class_weight和sample_weight。class_weight是对各个类别统一设置权重、sample_weight为各个样本设置权重,最终每个样本的权重为class_weight * sample_weight。我们这里只设置了sample_weight。

模型选择与融合

模型:xgb和lgb

融合:bagging,即Kflod。将训练集分成k等份,每次拿k-1份数据进行训练并预测测试集,将每次测试集的结果取平均作为结果。

分别通过xgb和lgb模型并采用bagging策略得到两份结果,最终取平均作为最终输出结果。

参考资料:

天池阿里妈妈第一名EDA

Kaggle CTR 比赛第一名PPT

IJCAI-18 阿里妈妈广告转化预测相关推荐

  1. IJCAI 2018 阿里妈妈广告预测算法大赛

    背景 本项目是天池的一个比赛,由阿里妈妈和天池大数据众智平台举办的广告预测算法大赛,本次参赛人数5200多个队伍,而我们只取得了731的成绩,最遗憾的是当我们写好CNN预测结果准备上传,队伍却意外解散 ...

  2. 阿里妈妈广告商品点击数据分析

    阿里妈妈广告商品点击数据分析报告 一.分析背景与目的 数据源:[https://tianchi.aliyun.com/dataset/dataDetail?dataId=56] 阿里妈妈发展势头迅猛, ...

  3. CSDN博客放阿里妈妈广告代码的方法

    CSDN博客放阿里妈妈广告代码的方法.最近阿里妈妈广告投放平台以其新颖的模式,符合互联网本质的方法,以迅猛发展的势头向传统广告商发起挑战,阿里妈妈的口号是:只要你有网站,只要你有博客,甚至,只要你可以 ...

  4. 阿里妈妈广告进入联合早报网

    阿里妈妈广告进入联合早报网,有图为证: 上图为单条早报新闻的页面截图,图中右上角和左下角的广告均是阿里妈妈系统提供的广告.示例原文地址为http://www.zaobao.com/zg/zg08100 ...

  5. 感觉有些阴险的阿里妈妈广告。。。。

    感觉有些阴险的阿里妈妈广告.... 我在我的公告栏申请了个阿里妈妈广告...现在广告放上去了.在阿里妈妈管理平台里面,确没有交易记录. 很多人去他那边申请广告位.没有购买就等于免费给阿里妈妈做广告.. ...

  6. 用ControlJS优化阿里妈妈广告

    长时间以来阿里妈妈的广告载入策略一直存在些问题,很多页面也因为阻塞式的广告载入而被拉低性能,影响用户体验.毕竟阿里妈妈广告的渲染依赖于诸多嵌套的document.write.ControlJS的目标就 ...

  7. 推荐!CSDN博客放阿里妈妈广告代码的方法

    推荐!CSDN博客放阿里妈妈广告代码的方法 分类: 软件之外2009-12-28 13:46 427人阅读 评论(0) 收藏 举报 最近阿里妈妈广告投放平台以其新颖的模式,符合互联网本质的方法,以迅猛 ...

  8. 按键精灵刷阿里妈妈广告联盟源码 V1.1版

    //V1.1版  点两次是一样的,去掉. //by小黄人软件 //按键精灵刷阿里妈妈广告联盟源码 后台运行 并显示点击次数 UserVar Yanshi=2000 "时间(毫秒)" ...

  9. 按键精灵刷阿里妈妈广告联盟源码 后台运行 并显示点击次数 亲测有效

    按键精灵刷阿里妈妈广告联盟源码 后台运行 并显示点击次数 UserVar Yanshi=2000 "时间(毫秒)" UserVar Num=0 "次数" //h ...

最新文章

  1. java EE 5配置邮件发送 qq企业邮箱
  2. c++计算机等级考试笔记(1)
  3. const debug = require(‘debug‘)(‘cnpm‘)
  4. const_cast的使用:添加或去掉const、常量折叠
  5. Windows Phone开发(4):框架和页
  6. $.ajax的一些坑啊
  7. python识别人脸多种属性_深度学习人脸识别仅9行python代码实现?同时高效处理100张相片?...
  8. 理论基础 —— 排序 —— 希尔排序
  9. springboot的起步依赖
  10. python计算夏令时的具体日期,python time.time()和“夏令时”;
  11. IPSec隧道配置案例(手动模式)
  12. python中functools_(转)Python——functools
  13. 1.5节 卡诺图以及布尔代数(SOP,POS)part1
  14. SQL Service 数据库 基本操作 视图 触发器 游标 存储过程
  15. 解决 git branch -a 无法全部显示远程的分支,只显示master分支
  16. 乐观的态度使工作充满激情
  17. webshell检测方式深度剖析---RASP(taint扩展)
  18. Lipschitz函数相关
  19. 判断用户输入的8位信用卡号码是否合法
  20. SLAM学习资源分享

热门文章

  1. STM32MP157驱动开发——设备树下的LED驱动
  2. Nuxt作为主应用集成qiankun,SKIP_BECAUSE_BROKEN报错
  3. SQL Server 常用关键字
  4. 谷歌浏览器打不开原型图解决办法
  5. 我的文品指数 搜狗的新服务
  6. 根据慕课网Daisy老师教程写的 爱心鱼 网页小游戏
  7. 一文看懂区块链架构设计(附知识图谱)
  8. html显示当前时间
  9. megaface 下载
  10. 三种合并请求的方式帮提高接口性能