2018第二届腾讯广告算法大赛(持续更新)

1. Abstract

小弟最近这前一段时间参加了腾讯广告算法比赛,所以趁热打铁记录比赛的一些操作和得与失。我参加这场比赛的时候已经离初赛结束还有一周的时间了,因为我同学刚好缺一个车位所以就拉上我。但是她们貌似没有做太多准备。虽然最后一周的时间我们能够进入复赛,但是复赛的成绩并不理想。主要是因为我对处理大数据量(超过自己机器性能的时候)经验不足。

鄙人文笔不是太好,写得有点乱,大家将就着看呗。


持续更新,欢迎大家关注

2 Main work

2.1 初赛

在初赛的时候,我的队友主要是靠网站上面的baseline然后调参。其做法是对category字段做one-hot,对有多个id的字段做multi-labels(CountVec),然后放入LightGBM当中就这么简单。因此初赛的时候我决定使用他来当其中一个模型。

另外,我使用Deep FM做训练模型。但首先考虑到interest, kw, app, topic他们各自的字段数据都不是统一,也就是不同用户的apps id个数不是一样多的。所以针对这个我们需要对每个这样的sequence id做sequence长度统一。然后我们利用deep FM,这里有一篇关于deep FM的blog,里面包含源码。

2.2 复赛

面对复赛的大数据集合,在初赛当中的很多东西都不能用了。主要是因为处理大数据feature的时候,内存是撑不住的,尽管我开启了虚拟内存来做特征处理。对于LightGBM,我们事先对data每个字段做feature sparse matrix然后保存到外存,这样我们每次训练都不用浪费时间做feature。接着我们分开多组数据去训练多个子模型,然后把他们融合在一起。

除了以上所说的sparse feature,我们通过统计加入了其他的feature:

  1. app, interest 的长度的对数
  2. interest 之间的比值
  3. appInstall与appAction之间的比值
  4. kw长度是否小于5
  5. topic长度是否小于5。

由于其他的字段主要是category为主,所以这些非category或者说是multi category是我们挖掘特征的主要地方。当然特征也不是乱加,毕竟现在如此大的数据量加特征会加长训练时间,因此我通过corr来筛选部分特征。

我也参考了一些关于广告CTR的论文,毕竟我们这个题目跟点击率是比较相近的。大家可以看看王喆同学的这个github,包含了很多关于Ad的论文。一般主流做CTR的方法有FFM(Field-aware Factorization Machines for CTR Prediction.pdf
)和Deep FM(Deep FM论文)。

最后我们将两个模型训练的结果融合作为我们最后的提交结果。

3 Solutions of Other Players

  • 初赛baseline
  • 11th 提及到不少的强特征(如uid的点击转化率)并选择一些相关性较低的特征。
  • 6 th 将特征做的更加细粒度,粒度越细,越容易定位到某一个单独的用户。尤其是对uid做数据挖掘
  • 利用SVD处理sparse matrix,由于sparse matrix太大了,所以利用SVD将10w+的feature转换到其他维度上面。
  • 本想着用GBDT+RL来做模型的,但是GBM训练不起来也没办法。这里有一篇关于模型的blog,相关论文可以在这里看到。
  • 初赛:FFM + NN,我觉得这个模式可以在复赛在使用,毕竟两个都可以batch training。

4. Summary

本次比赛成绩并不理想,主要是由以下这几个原因所导致的。

  1. 首先我对于超大数据集的处理并不是很好,毕竟以前我做的比赛都能把所有的特征放入内存进行训练,然而这次却不行。所以迫使我主力使用deep fm(毕竟我对Deep learning的了解甚少,所以刚好打中我的软肋)。

  2. 前期对题目做的research太少了,到后期才发现有很多feature engineering和model可以做。好吧,这算给我上了宝贵的一课,前期的research能够给比赛提供不少的理论指导(类似于Kaggle上面的kernel和forum)。这一点可能决定你比赛的方向,比起我这次比赛瞎努力更有效。方向和选择比努力更重要。大家可以看看这位大佬关于CTR/CVR的一些见解,我认为对比赛还是很有用的。从最近的比赛学习CTR/CVR

  3. 代码的pipeline还是缺乏一定的自动化能力。这次比赛对pipeline要求比较高,主要是因为在超大的数据量的时候,我们都需要将数据转化为feature到外存然后在读到内存中,另外feature到model,model评估等,都需要良好的code pipeline来提高编码效率。

  4. 专注于比赛,这次比赛相对于上次Kaggle,我的投入时间和专注力并没有这么多,可能是因为自己私事比较多的原因吧,专注于比赛时间就仅仅三周时间。再者我没有很好动员自己的队员参与到当中来,这是不好的,毕竟人多力量大。因此组织能力有待太高。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343