本期干货我们为大家带来了大名鼎鼎的算法高手郭达雅“郭大”新鲜出炉的经验分享,他的队伍曾是唯一进入决赛的本科生队伍!接下来,郭大将带你深入了解如何处理大数据,让你即使在低配的环境中也能稳中求胜!

大家好,我是郭达雅,人称郭大,目前是中山大学-微软联合培养的博士生。前两届都参加了腾讯广告算法大赛,并且是唯一进入决赛的本科生队伍。如果你第一次参加这样的比赛,那我很高兴的告诉你,你可以从这个比赛学到很多东西,你可以学会如何处理数据,如何进行特征工程,如何在大数据的情况让自己的模型高效的跑起来。同时你也可以见识到许多大佬高深的技(yan)术(ji)。往届的腾讯广告算法大赛质量都很高,问题都很前沿,数据也是真实的,你可以从这个比赛中体会到真实的场景和前沿的问题,并且设计自己的模型。

在2017年的比赛中,复赛的数据量是百万级别的。而在2018年的比赛中,复赛的数据量是千万级的。对于计算资源比较少的选手来说,要一次性把所有数据读进来训练不太现实,但不全部一起训练又会使性能降低。因此,接下来主要跟大家谈谈如何处理大数据,能够在低配置的环境中也能够取得很好的成绩。主要考虑的是时间,空间和性能三个方面。

模型选择

首先我们要考虑使用什么类型的模型。目前比赛使用的模型主要还是GBDT神经网络两种类型。对于GBDT来说,需要一次性把所有的训练数据读进内存进行训练 (当然还有增量模式,没怎么试过)。而对于神经网络来说,由于是流式训练的,所以不需要一次性读进来,可以训练完一个batch就扔掉,因此可以在几G内存的情况下就完成所有数据的训练,当然也需要有GPU。

从时间上和空间上来说,神经网络是占优势的。但从性能来看的话,GBDT这种集成类的模型是很稳定的,而且效果也很好,对于新手来说,是非常友善的且容易上手的。而对于神经网络而言,性能的好坏还是取决于实现的方式,不同的人不同的实现,效果差异也会非常大,当然也可以使用一些开源的工具,比如浅梦的deepctr我最近开源的ctrnet。当然,如果要取得好成绩的话,两种类型的模型都是需要的,他们融合起来将是一个杀手锏。

数据划分

1)如果使用GBDT类型的模型 (如xgboost,lightgbm,catboost),那么得考虑下机器能读入多大的数据。假设只能读入50%的数据,那么可以将数据分成三份,在这三份数据分别训练三个模型,然后进行融合。(比如stacking,bagging,blending)

2)如果使用神经网络类型的模型(如NFFM,XdeepFM,DIN),可以将数据分成几十份,用pickle文件存储,可以先把一份数据读进来训练,训练完后删掉,再读另外一份数据,这样的话既能使用所有的数据进行训练,也不怎么消耗内存。如果有多张GPU,还能并行跑多个程序。

因此根据自己的资源和选择的模型类型,考虑下如何划分数据进行训练。如果能使用全部数据的话,可以忽略这内容的。PS:去年复赛如果利用GBDT训练全部数据的话,是需要256G内存的服务器的。

对神经网络的看法

这里我给出一些比较直观的数据。

在2018年的腾讯广告算法大赛,我使用的模型只有神经网络,最后取得了第七名。其实LGB的效果是很好的,前两名的队伍都使用了LGB进行融合,但主要还是忍受不了训练的时间和大量计算资源的消耗。

在最近的一次ICME的比赛中,也是广告类的比赛,和去年的腾讯广告算法大赛差不多,有两个赛道,一个是千万级别的数据,一个是亿万级别的数据。在千万级别的赛道中,只使用了神经网络取得了第六的成绩,并且训练时间只需要1个小时(GPU是1080,如果是P100的话,估计半个小时就行了)。相比之下,LGB训练时间是需要18个小时。在性能上,如果使用同样的特征,LGB确实要比神经网络好,但LGB的容纳的特征维度是有限的。而神经网络的优势主要在于可以无限的堆特征(只要硬盘足够大),因为流式训练不需要花费太多的内存。因此可以往神经网络堆积特征,在不需要担心内存和速度的情况下,成绩会比LGB好。在ICME的比赛中,最后GBDT的模型我只能容纳200多维的特征,而神经网络最后是使用了3000多维的特征,效果是比GBDT好很多的,训练速度也是快十几倍。

但其实如果真的需要取得TOP名次的话,两种模型都要使用的。因此,这里的组队就非常重要了,找一个善于使用神经网络和一个善于使用GBDT的队友,组合起来将会有非常大的帮助。我认为组队的参考标准是,同样的水平,不同的建模方式。

总结

在这种数据挖掘的比赛中,如果要取得好成绩,归根结底还是进行特征工程。最好能够从实际场景业务出发,去了解业务,挖掘相应的特征。尽量地大开脑洞,大胆的去尝试,如果你能想到一些别人想不到的强特征,你将会取得一个很好的成绩。最后,祝大家在本次大赛中能够取得一个不错的成绩。

大神干货:算法高手郭大顶级经验分享助你轻松通过初赛!相关推荐

  1. Kaggle 大神 Eureka 的高手进阶之路

    转自:https://baijiahao.baidu.com/s?id=1594269125827729365&wfr=spider&for=pc 雷锋网 AI 研习社按:作为全球首屈 ...

  2. Yoshua Bengio等大神传授:26条深度学习经验

    Yoshua Bengio等大神传授:26条深度学习经验 发表于2015-09-17 08:21| 13482次阅读| 来源Marek Rei| 29 条评论| 作者Marek Rei 深度学习Pyt ...

  3. 复旦和浙大计算机考研难度,复旦计算机惊现40多位400+大神,浙大、川大还有450+...

    原标题:复旦计算机惊现40多位400+大神,浙大.川大还有450+ 今天多个省份开放了考研初试查询系统,看着网上晒出的分数不得不说考研太难了,复旦的计算机今年大神扎堆,400+的大神就有40多位,最高 ...

  4. 复旦计算机考研,复旦计算机惊现40多位400+大神,浙大、川大还有450+

    今天多个省份开放了考研初试查询系统,看着网上晒出的分数不得不说考研太难了,复旦的计算机今年大神扎堆,400+的大神就有40多位,最高分447分的数二150,专业课408也有137分,你以为这就很高了? ...

  5. 大数据 清华 覃征_2021年清华(清华大学)大数据工程考研难度解析、考研经验分享...

    [盛世清北] 2021年清华考研备考已经开始,由于很多学生苦于在清华考研备考过程中,不知道如何查找资料,如何把握重点,甚至不确定如何准确设定备考计划,对此,盛世清北整理了清华各专业等一些列专业考研干货 ...

  6. 大数据技术原理与应用课程建设经验分享

    大数据技术原理与应用课程 建设经验分享 林子雨 厦门大学信息科学与技术学院, 福建 厦门 361005   摘要:大数据专业人才的培养是世界各国新一轮科技较量的基础,高等院校承担着大数据人才培养的重任 ...

  7. python入门教程2word-入门干货:Python操作Word文件经验分享

    原标题:入门干货:Python操作Word文件经验分享 导读:Microsoft Word在当前使用中是占有巨大优势的文字处理器,这使得Word专用的档案格式Word 文件(.docx)成为事实上最通 ...

  8. 鹅厂算法大神干货实录,初赛通关“秘籍”还不赶快来GET!

    2019腾讯广告算法大赛正火热进行中,今年大赛赛题"广告曝光预估"推陈出新,聚焦实际业务需求和技术创新实践应用,吸引了各界算法极客积极报名参与.为帮助选手在比赛中有更出色的发挥,5 ...

  9. 大神干货:腾讯广告算法大赛亚军女极客生存图鉴

    为了助力你更好地了解这次比赛,这期我们特地邀请到了去年腾讯广告大赛的亚军--来自北京邮电大学的"烧卖"同学,让她帮你为今年的广告大赛划重点,分享去年迎战各路技术大神的经验,晒出自己 ...

最新文章

  1. 互联网协议 — HTTP 超文本传输协议
  2. 磁珠与电感的区别,看了就灰常明白了
  3. 解决jenkins 使用ssh插件执行脚本,导致一直处于构建中无法停止
  4. angular 字符串转换成数字_Python | 一文看懂Python列表、元组和字符串操作
  5. 最新最全产品删除页代码
  6. 让 jQuery UI draggable 适配移动端
  7. centos7 时间设置
  8. java 获取oracle表结构_Java导出oracle表结构实例详解
  9. 科技战疫丨SENSORO灵思智能安全服务助力疫情防控
  10. WPF版的Dock控件第二版完成
  11. git 配置beyond compare
  12. Iocomp ActiveX v5 SP6 带OPC -Crack
  13. 分手后如何忘掉你的前任1
  14. 刚入职就写了个bug,把几万用户搞蓝屏了···
  15. C++类的常数据成员和常成员函数
  16. Java编程公鸡5元一只,母鸡3元一只,小鸡1元三只,问100元怎样可以买100鸡?
  17. 程序员谈谈返利机器人
  18. 【一问一答】错题库整理
  19. CF 115B. Lawnmower
  20. scala中的sealed

热门文章

  1. SAP License:2021年如何做一个被人喜欢的SAP顾问?
  2. SAP License:BSEG与FAGLFLEXA (A)表数据不一致问题
  3. SAP License:SAP中的PRC增值税概念
  4. SAP License:SAP中的一些问题及处理
  5. SAP License:BWBCS学习记录
  6. django--rtbac权限管理
  7. 【VS2015】链接器错误link2001
  8. AngularJS中的方法参数的问题
  9. VTK(二)vs2010第一个VTK程序。
  10. 题目47:最大公约数