https://github.com/shenweichen/tencent_social_ads2017_mobile_app_pcvr
Tencent Social Ads 2017 contest rank 20
https://github.com/shenweichen/tencent_social_ads2017_mobile_app_pcvr
Last synced: over 1 year ago
JSON representation
Tencent Social Ads 2017 contest rank 20
- Host: GitHub
- URL: https://github.com/shenweichen/tencent_social_ads2017_mobile_app_pcvr
- Owner: shenweichen
- Created: 2017-08-06T10:47:41.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-09-24T11:50:36.000Z (almost 9 years ago)
- Last Synced: 2025-02-27T21:14:01.357Z (over 1 year ago)
- Language: Jupyter Notebook
- Homepage:
- Size: 69.3 KB
- Stars: 157
- Watchers: 6
- Forks: 48
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 第一届腾讯社交广告高校算法大赛-移动App广告转化率预估
赛题详情http://algo.tpai.qq.com/home/information/index.html
题目描述
根据从某社交广告系统连续两周的日志记录按照推广中的App和用户维度随机采样构造的数据,预测App广告点击后被激活的概率:pCVR=P(conversion=1 | Ad,User,Context),即给定广告、用户和上下文情况下广告被点击后发生激活的概率。
# 运行环境
- 操作系统 Ubuntu 14.04.4 LTS (GNU/Linux 4.2.0-27-generic x86_64)
- 内存 128GB
- CPU 32 Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
- 显卡 TITAN X (Pascal) 12GB
- 语言 Python3.6
- Python依赖包
1. Keras==2.0.6
2. lightgbm==0.1
3. matplotlib==2.0.0
4. numpy==1.11.3
5. pandas==0.19.2
6. scikit-learn==0.18.1
7. scipy==0.18.1
8. tensorflow-gpu==1.2.1
9. tqdm==4.11.2
10. xgboost==0.6a2
- 其他库
LIBFFM v121
# 运行说明
1. 将复赛数据文件`final.zip`放在根目录下
2. 在根目录下运行`sh run.sh`命令生成特征文件
3. 打开`./code/_4_*_model_*.ipynb`分别进行模型训练和预测,生成单模型提交结果,包括`lgb,xgb,ffm,mlp`
4. 打开`./code/_4_5_model_avg.ipynb`进行最终的加权平均并生成最终提交结果
# 方案说明
1. 用户点击日志挖掘`_2_1_gen_user_click_features.py`
挖掘广告点击日志,从不同时间粒度(天,小时)和不同属性维度(点击的素材,广告,推广计划,广告主类型,广告位等)提取用户点击行为的统计特征。
2. 用户安装日志挖掘 `_2_2_gen_app_install_features.py`
根据用户历史APP安装记录日志,分析用户的安装偏好和APP的流行趋势,结合APP安装时间的信息提取APP的时间维度的描述向量。这里最后只用了一种特征。
3. 广告主转化回流上报机制分析`_2_4_gen_tricks.py`
不同的广告主具有不同的转化计算方式,如第一次点击算转化,最后一次点击算转化,安装时点击算转化,分析并构造相应描述特征,提升模型预测精度。
4. 广告转化率特征提取`_2_5_gen_smooth_cvr.py`
构造转化率特征,使用全局和滑动窗口等方式计算单特征转化率,组合特征转化率,使用均值填充,层级填充,贝叶斯平滑,拉普拉斯平滑等方式对转化率进行修正。
5. 广告描述向量特征提取`_2_6_gen_ID_click_vectors.py`
广告投放是有特定受众对象的,而特定的受众对象也可以描述广告的相关特性,使用不同的人口属性对广告ID和APPID进行向量表示,学习隐含的语义特征。
6. 建模预测
使用多种模型进行训练,包括LightGBM,XGBoost,FFM和神经网络,最后进行多模型加权融合提高最终模型性能。
# 其他
- 最终线上排名20,logloss 0.101763
- 最终特征维度在110左右
- 部分最终没有采用的特征代码依然保留
- 由于我们团队的代码是3个人共同完成的,我这里整理的模型训练的部分可能和当时略有差异,但特征部分基本一致。
- `deprecated`目录下为弃用的代码,包括一些原始代码和打算尝试的方法