7次KDDCup&Kaggle冠军的经验分享:从多领域优化到AutoML框架

反馈快速、竞争激烈的算法比赛是算法从业者提升技术水平的重要方式。从若干行业核心问题中抽象出的算法比赛题目具有很强的实际意义,而比赛的实时积分榜促使参加者不断改进,以试图超越当前的最佳实践,而且获胜方案对于工业界与学术界也有很强的推动作用,例如KDDCup比赛产出的Field-AwareFactorizationMachine(FFM)算法[1]、ImageNet比赛产出的ResNet模型[2]在业界都有着广泛的应用。

ACMSIGKDD(国际数据挖掘与知识发现大会,简称KDD)是数据挖掘领域的国际顶级会议。KDDCup比赛是由SIGKDD主办的数据挖掘研究领域的国际顶级赛事。从1997年开始,每年举办一次,是目前数据挖掘领域最具影响力的赛事。该比赛同时面向企业界和学术界,云集了世界数据挖掘界的顶尖专家、学者、工程师、学生等参加,为数据挖掘从业者们提供了一个学术交流和研究成果展示的平台。

本文主要面向以下两类读者,其他感兴趣的同学也欢迎了解。

基于多层级多因子的模型融合方案:针对本次赛题的挑战,我们队采用了基于多层级多因子的模型融合方案来进行建模。一方面对于异构站点行为,单一模型不易于全面刻画,另一方面,亿级别的数据规模给多模型的分别优化带来了较大的空间。由于FFM具有强大的特征交叉能力以及较强的泛化能力,能更好地处理高维稀疏特征。因此,我们选择该模型作为融合基模型的主模型。模型融合通过不同模型学习到有差异性的内容,从而有效挖掘用户在不同站点上的异质行为。模型融合的关键是产生并结合“好而不同”的模型[3][4]。基于多层级多因子的模型融合方案首先通过模型差异性、特征差异性多个角度来构造模型之间的差异性,然后通过多层级以及使用基学习器的多特征因子(模型pCTR预估值、隐层表征)进行融合:

上述方案同我们业务中模型相比,采用更多的模型融合,在取得高精度的同时产生了更高的开销,而在实际业务中要更加注重效果与效率的平衡。

基于i2i游走的Debiasing排序方案:我们的方案为基于i2i建模的排序框架。如图所示,整体流程包含四个阶段:i2i构图与多跳游走、i2i样本构建、i2i建模以及u2i排序。前两个阶段解决了选择性偏差问题,后两个阶段则侧重于解决流行度偏差问题。

第一个阶段是基于用户行为数据和商品多模态数据构建i2i图,并在该图上多跳游走生成候选样本。这种方式扩大了商品候选集,更好地近似系统真实候选集,缓解了选择性偏差。

第二个阶段是根据不同i2i关系计算i2i候选样本的相似度,从而决定每种i2i关系下候选样本的数量,最终形成候选集。通过不同候选的构造方法,探索出更多有差异的候选商品,可以进一步缓解选择性偏差问题。

第三个阶段包括基于i2i样本集的自动化特征工程,以及使用流行度加权的损失函数进行消除流行度偏差的建模。自动化特征工程中包含了商品多模态信息的刻画,这类信息能够反应商品在热度信息以外的竞争关系,能够一定程度上缓解流行度偏差问题。而流行度加权的损失函数定义如下:

其中,参数α与流行度成反比,来削弱流行商品的权重,从而消除流行度偏差。参数β是正样本权重,用于解决样本不平衡问题。

第四个阶段首先将i2i打分通过Max操作进行聚合,突出打分集合中低热度商品的高分信号,从而缓解流行度偏差问题。然后对商品列表的打分结合商品热度进行调整处理,进而缓解流行度偏差问题。

(3)模型融合:我们队采用了Stacking融合的方式,单个学习器通过不同模型、数据、建模方式来构建差异性。LightGBM模型使用了天气质量、历史统计、空间拓扑等特征,Spatial-temporalGate则是引入了门结构,强化了时空信息。Seq2Seq利用序列到序列的建模方式,刻画了序列的连续性、波动性。最后使用了基于约束的线性模型将不同的单个学习器进行融合。

基于交叉验证降噪的极值点优化模型融合方案:

备注:特别感谢共同参加KDDCup2017的陈欢、燕鹏、黄攀等同学。

自动化机器学习问题[10]主要包括KDDCup2019AutoML和KDDCup2020AutoGraph比赛。该类问题,一般具有以下三个特性:

基于代理模型的自动化多层次模型优化[14]

多类别层次化图模型优化:

(1)候选图模型的生成:现实世界中的图通常是多种属性的组合,这些属性信息很难只用一种方法捕捉完全,因此,我们使用了基于谱域、空域、Attention机制等多种不同类型的模型来捕捉多种属性关系。不同模型在不同数据集上效果差异较大,为了防止后续模型融合时加入效果较差的模型,会对GCN、GAT、APPNP、TAGC、DNA、GraphSAGE、GraphMix、Grand、GCNII等候选模型进行快速筛选,得到模型池。

(2)层次模型集成:这部分共包含两个维度的集成。第一层为模型自集成,为了解决图模型对初始化特别敏感,同种模型精度波动可达±1%的问题,采用了同模型的自集成,同时生成多个同种模型,并取模型预测的平均值作为该种模型的输出结果,成功降低了同种模型方差,提高了模型在不同数据集上的稳定性。第二层为不同模型集成,为了有效地利用来自本地和全球邻域的信息,充分捕获图的不同性质,我们采用加权集成了不同种类的图模型,进一步提高性能。同时针对在参数搜索阶段,需要同时优化模型内参数α,以及多种模型加权集成参数β,使用模型集成参数和模型内参数通过互迭代的梯度下降进行求解,有效提升了速度。

经过上述的多场比赛,团队在多领域建模中不断总结与优化,抽象出其中较为通用的模块,总结得到针对数据挖掘类问题时的一套较为通用的解决方案——AutoML框架。该框架包含数据预处理,自动化特征工程[15]和自动化模型优化[16-20]三个部分。其中数据预处理部分主要负责特征分类、数据编码、缺失值处理等常见的基础操作,不过多展开。主要针对AutoML框架的自动化特征工程和自动化模型优化两个部分进行详细介绍。

特征工程是机器学习中至关重要的工作,特征的好坏直接决定了模型精度的上限。目前常见的方式是人工手动对特征进行组合与变换,但人工特征挖掘存在速度较慢、无法挖掘全面等问题。因此,设计全面挖掘的自动化特征工程能够比较好地解决上述问题,自动化特征工程主要包含三个部分:

基于重要度的网格搜索:在我们框架中采用的是全局基于重要度按照贪心的方式进行搜索,加快速度;得到的最优结果再进行小领域更详细网格搜索,缓解贪心策略导致的局部最优。根据以往比赛经验,总结不同模型的超参重要性排序如下:

MDDCup2021需要参赛者根据用户、商家在图谱中的属性、用户的历史点击、实时点击以及下单行为,预测下次购买的商家。包含四周的135万个订单行为,涉及20万个用户,2.9万个商家,17.9万个菜品,订单关联菜品数据共438万条,构成知识图谱。使用Hitrate@5作为评价指标。

快速特征选择,上述自动产出的一、二阶统计特征数量共有1000+,其中存在大量无效特征,故使用LightGBM模型,从指标提升与重要性角度进行特征筛选与重要标识。如用户x菜品口味的特征没什么效果,进行筛除;用户最常购买的价格区间则很有效果,标识为重要特征进行高阶组合。

高阶特征算子,基于一、二阶特征算子组合构建的新特征,可以作为输入进行高阶特征组合。这里值得一提的是,高阶特征组合存在两种形式,第一种原始特征的更高阶组合,如用户在某个商家中最喜欢的菜品口味,结合三个实体,并不需要额外的运算,第二种需使用一、二阶新特征,其中频数编码的结果可以直接使用,目标编码与时序差分需要先进行数值分桶操作转换为离散值后才可使用,如用户订单价格区间的众数x商家订单价格平均值的分桶的联合count。循环进行特征组合与筛选后就得到了最终的特征集。

自动化模型优化:模型部分使用了LightGBM和DIN的融合方案,迭代过程中多次进行了自动超参搜索,通过自动化行、列采样及最优参数局部扰动构造了具有差异性的多个模型,融合得到最终的结果。

本节会就比赛的通用建模方法进行介绍,即面对一个新问题,如何进行快速高效的整体方案设计。

在面对新问题时,我们主要将技术框架分为以下三个阶段,即探索性建模、关键性建模、自动化建模。三个阶段具有逐渐深化,进一步补充的作用。

探索性建模:比赛前期,首先进行问题理解,包括评估指标与数据表理解,然后进行基础的模型搭建,并线上提交验证一致性。在一致性验证过程中往往需要多次提交,找到同线上指标一致的评估方式。探索性建模的核心目标是要找到迭代思路与方法,所以需要对问题做多方面探索,在探索中找到正确的方向。

关键性建模:比赛中期,会就关键问题进行深挖,达成方案在榜单Top行列,在问题理解方面,会尽可能就评估方式进行损失函数自定义设计。

分类问题优化,可以结合Logloss、AUCLoss[21]、NDCGLoss等不同损失函数进行MixLoss设计。而回归问题的损失函数设计要更复杂,一方面可以结合平方误差,绝对值误差等进行损失函数设计,另一方面可以结合Log变换,Box-cox变换等解决回归异常值等问题。

自动化建模:比赛后期,由于基于人的理解一方面在细节与角度有盲区,另一方面较难进行抽象关系的建模,所以我们会采用自动化建模进行补充。如下图18所示,先基于关系型多表输入,进行自动化关联,然后通过生成式自动化特征工程构建大量特征,再进行特征选择与迭代,然后基于模型输入进行自动化超参搜索与模型选择,最终基于多模型进行自动化融合构建,将生成的多元化模型关系进行选择与赋权。

算法比赛相对于工业界实际情况而言,一个重要区别是工业界涉及线上系统,在工程方面性能的挑战更大,在算法方面涉及更多的线上线下效果一致性问题。因此算法比赛会在模型复杂度、模型精度更进一步,在算法比赛中也产出了ResNet、Field-awareFactorizationMachine(FFM)、XGBoost等算法模型,广泛应用于工业界实际系统。

一致的评估方式是决定模型泛化能力的关键

大数据注重模型的深化,小数据注重模型的鲁棒

不同数据集注重的内容不一样,在数据充分的场景下,核心问题是模型深化,以解决特征之间交叉,组合等复杂问题。而在小数据下,因为噪音多,不稳定性强,核心问题是模型的鲁棒。高数据敏感性是方案设计的关键。

方差与偏差的平衡是后期指导优化的关键

从误差分解角度去理解,平方误差可以分解为偏差(Bias)与方差(Variance)[25],在中前期模型复杂度较低时,通过提升模型复杂度,能够有效减低偏差。而在偏差已经被高度优化的后期,方差的优化是关键,因此在后期会通过Emsemble等方式,在单模型复杂度不变的基础上,通过模型融合优化结果。

AutoML的关键是人为先验的不断减少

在运用AutoML框架的同时,会有一些超参数等隐蔽的人为先验,把AutoML技术也以模型视角来理解,同样存在模型复杂度越高越容易过拟合的问题,迭代中的一个关键问题不是评估效果的好坏,而是方案是否存在不必要的超参数等信息,能否不断地简化AutoML的建模,不断地自动化,自适应适配各类问题。

最后,也特别感谢ConvolutionTeam、NomoTeam、GetmaxTeam、AisterTeam等队伍的队友们。

岗位要求:

具备以下条件优先:

感兴趣的同学可投递简历至:chengxiuying@meituan.com(邮件标题请注明:广平算法团队)。

THE END
1.2024最全大数据学习路线(建议收藏)注意:在这个阶段,Scala 语言可以先不学,可以在学习 Spark 之前学习! 数据结构与算法:强烈推荐左神的视频,他讲的内容基本上和企业面试相关,通俗易懂。我当时看的是一个在牛客网上讲视频:其中包括算法初级和进阶。在听这个视频前,最好去了解下基本的数据结构!可以从下面百度网盘中获取视频资料和课件!看完视频后,具https://blog.csdn.net/2401_84181801/article/details/138851968
2.从零开始学大数据15让你一看就懂的数据挖掘四大经典算法上一讲,我们从流程上介绍了数据挖掘,而在整个数据挖掘实施的流程中,数据挖掘算法可能是我们的算法工程师最关注的环节。在常见的数据挖掘过程中,通常会用到什么类型的算法,不同的算法又应对什么样的问题?在实际工作中遇到的问题,该如何转化成算法可解决的问题呢?带着这些疑问,让我们开始这节课吧。 数据挖掘算法有什https://zhuanlan.zhihu.com/p/550336239
3.最全解析:大数据和机器学习有什么区别小码哥0520大数据的核心是利用数据的价值,机器学习是利用数据价值的关键技术,对于大数据而言,机器学习是不可或缺的。相反,对于机器学习而言,越多的数据会越 可能提升模型的精确性,同时,复杂的机器学习算法的计算时间也迫切需要分布式计算与内存计算这样的关键技术。因此,机器学习的兴盛也离不开大数据的帮助。 大数据与机器学习两者https://www.cnblogs.com/kylinsblog/p/7760256.html
4.经验之谈:零基础学大数据算法怎么学?六年码农告诉大家,零基础学大数据算法怎么学?零基础学大数据算法怎么学?现在学习大数据的人越来越多,如果你有编程基础,自学也是可以的。但如果你是零基础的学员,建议跟着专业老师进行系统学习,能够更快的掌握专业知识,具备足够的能力,那选择报班的帮助作用会更大。机构有专业的老师,有系统的课程安排,学起来要https://baijiahao.baidu.com/s?id=1782011330946569097&wfr=spider&for=pc
5.不懂这25个名词,好意思说你懂大数据?本文先介绍了25 个基本大数据术语,帮助你温故知新,那么开始吧~ 01 算法(Algorithm) 算法可以理解成一种数学公式或用于进行数据分析的统计学过程。那么,「算法」又是何以与大数据扯上关系的呢?要知道,尽管算法这个词是一个统称,但是在这个流行大数据分析的时代,算法也经常被提及且变得越发流行。 https://gxq.guiyang.gov.cn/zjgxq/zjgxqxyzs/zjgxqxyzsdsjqy/201710/t20171013_17120534.html
6.量子计算应对大数据挑战:中国科大首次实现量子机器学习算法中国科学技术大学潘建伟教授及其同事陆朝阳、刘乃乐等组成的研究团队在国际上首次实现量子机器学习算法。日前,国际权威物理学期刊《物理评论快报》发表了这一论文[Phys. Rev. Lett. 114, 11050https://news.ustc.edu.cn/info/1055/56642.htm
7.观点有一种说法,算法工程师的薪酬只有三档(附大数据工程师本文从当前炙手可热的算法工程师就业开始讲起,详细的和朋友们探讨一下,普通程序员如何转型成为算法工程师? 先谈钱。 有一种说法,算法工程师薪酬区间基本就是三挡: 薪酬范围人才背景能力特征 15~30W科班毕业的数学系硕士研究生或有ACM铜奖以上熟悉通用的模型,知道如何用合适的模型去做数据 https://blog.itpub.net/69903766/viewspace-2286314/
8.人工智能的深度学习算法建立在大数据的基础上目前人工智能的深度学习算法是建立在大数据的基础上的,人工智能在工作过程中首先要对大数据进行挖掘,然后再利用大数据训练人工智能模型。 对于图片数据来说,这一工作说起来好像很简单,但实际上整个工作过程并不智能,这背后隐藏着一个赚钱十分辛苦而且工作内容非常枯燥的劳动密集型的产业。 https://m.hqew.com/tech/fangan_2009016
9.大数据学习心得(通用16篇)10月23日至11月3日,我有幸参加了管理信息部主办的“20xx年大数据分析培训班”,不但重新回顾了大学时学习的统计学知识,还初学了Python、SQL和SAS等大数据分析工具,了解了农业银行大数据平台和数据挖掘平台,学习了逻辑回归、决策树和时间序列等算法,亲身感受了大数据的魅力。两周的时间,既充实、又短暂,即是对大数据知识https://www.ruiwen.com/xuexixinde/5805944.html
10.科学网—[转载]联邦学习算法综述关键词:联邦学习;算法优化;大数据;数据隐私 论文引用格式: 王健宗,孔令炜,黄章成, 等. 联邦学习算法综述[J]. 大数据, 2020, 6(6): 64-82. WANG J Z, KONG L W, HUANG Z C, et al. Research review of federated learning algorithms[J]. Big Data Research, 2020, 6(6): 64-82. https://blog.sciencenet.cn/blog-3472670-1280769.html
11.新手学大数据技术,可以按照什么样的流程来学习?很多人了解到大数据发展的前景和空间很好,适合发展自己的职业生涯,那么零基础的新手想转行学习大数据,可以按照什么样的流程来安排学习呢? 1、首先,0基础入门大数据,先从一门编程语言入手。如果你想往大数据开发方向走,学习Java,想学数据分析或者数据挖掘,那就选Python。 https://cloud.tencent.com/developer/news/596827
12.机密计算差分隐私全搞清楚了!亿信华辰同态加密是一种允许在加密之后的密文上直接进行计算,且计算结果解密后和明文的计算结果一致的加密算法。 这个特性属性对于保护信息的安全具有重要意义,利用同态加密技术可以先对多个密文进行计算之后再解密,不必对每一个密文解密而花费高昂的计算代价;利用同态加密技术可以实现无密钥方对密文的计算,密文计算无须经过密钥方https://www.esensoft.com/industry-news/dx-5995.html
13.大数据常用分聚类算法区别大数据聚类分析方法大数据常用分聚类算法区别 大数据聚类分析方法 1.聚类的基本有关概念 聚类分析:将物理或抽象对象的集合分成相似的对象类的过程称为聚类。 簇:数据对象的集合,对象与同一簇中的对象批次相似,而与其他簇中的对象相异。 无监督学习:没有事先定义好的类 典型应用:①作为获得数据集中数据分布的工具②作为其他数据挖掘https://blog.51cto.com/u_16099196/10583387
14.大数据&人工智能学习总结(一)·学习地图虽然在理论研究上没进展,但是自从有了大数据和规模运算能力之后,就对人工智能有了更具体的应用上的诉求:如何用机器对数据进行识别、提取和分析?对应到的技术就是人工智能中的一个分支叫“机器学习”,即从数据中习得学习算法,进而解决实际的应用问题。 认知4:机器学习是怎么工作的 https://www.jianshu.com/p/a77951458d43
15.深度学习高手笔记卷1:基础算法本书通过扎实、详细的内容和清晰的结构,从算法理论、算法源码、实验结果等方面对深度学习算法进行分析和介绍。本书共三篇,第一篇主要介绍深度学习在计算机视觉方向的一些卷积神经网络,从基础骨干网络、轻量级 CNN、模型架构搜索 3 个方向展开,介绍计算机视觉方向的里程碑算法;第二篇主要介绍深度学习在自然语言处理方向的https://www.epubit.com/bookDetails?id=UB7d8623610d375
16.零基础学大数据算法高清pdf完整版[98MB]电子书下载零基础学算法下载 投诉报错 书籍大小:98.2MB 书籍语言:简体中文 书籍类型:国产软件 书籍授权:免费软件 书籍类别:其它相关 应用平台:Windows平台 更新时间:2019-08-30 购买链接:京东异步社区 网友评分: 360通过腾讯通过金山通过 98.2MB 详情介绍 《零基础学大数据算法》是通俗易懂的大数据算法教程。通篇采用师生对话的https://www.jb51.net/books/690828.html
17.大数据分析建模有哪些算法帆软数字化转型知识库大数据分析建模有多种算法,包括决策树算法、支持向量机(SVM)算法、随机森林算法、K-means聚类算法、线性回归算法、逻辑回归算法、神经网络算法和贝叶斯分类算法。其中,决策树算法是一种使用树状模型对数据进行分类和回归的方法。决策树算法通过递归地将数据集分成更小的子集,同时相应地构建树结构,使其能够对未知数据进行https://www.fanruan.com/blog/article/71906/
18.干货一文读懂工业大数据的算法与模型基本知识与应用工业大数据分析面对的数据不仅包括传统统计学中的结构化数据,也包括非结构化和异型数据。 传统的统计学方法在对大规模数据进行处理时的效率较低,因此神经网络和遗传算法等机器学习和人工智能算法是工业大数据经常采用的方法。 常见算法及分类介绍 01.预测算法 https://www.evget.com/doclib/s/14/10645
19.cv算法工程师和大数据工程师有什么区别3、负责虚拟数字人驱动相关算法的研发工作,包括但不限于视频生成(动作、表情、口型)对话机器人等方向; 4、基于图形学,深度学习等技术进行模型训练以及性能优化,将前沿算法理论转换为原型并落地产品,达成业界竞争力目标。 职位要求: 1、计算机、数学、统计学或相关专业,有数字人直播方向的项目研究方向优先; 2、https://www.jobui.com/gangwei/pk/cvsuanfagongchengshi-dashujugongchengshi/
20.大数据处理的五大关键技术及其应用——CDA人工智能学院数据挖掘算法。图像化是将机器语言翻译给人看,而数据挖掘就是机器的母语。分割、集群、孤立点分析还有各种各样五花八门的算法让我们精炼数据,挖掘价值。这些算法一定要能够应付大数据的量,同时还具有很高的处理速度。 预测性分析。预测性分析可以让分析师根据图像化分析和数据挖掘的结果做出一些前瞻性判断。 https://bbs.pinggu.org/jg/kaoyankaobo_kaoyan_8513784_1.html