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.数据流程图和系统结构图详细版本.经管文库(原数据流程图和系统结构图-详细版本.https://bbs.pinggu.org/thread-13115355-1-1.html
2.收藏:20张数据分析学习思维导图大全,有了它学习思路超清晰!来源:数据分析不是个事儿 数据分析学习内容比较多,很多宝子可能会感觉无从下手,今天小爱就给大家分享一波很硬的干货,20张数据分析学习思维导图大全,建议收藏,慢慢消化吸收! 数据分析步骤地图 数据分析基础知识地图 数据分析技术知识地图 展开剩余 84 % https://m.sohu.com/a/796770928_121124376
3.大数据学习路线图(2023完整版)适合收藏本文提供了一份详细的大数据学习路线图,涵盖从数据仓库基础到BI数据分析与可视化的7个阶段,包括MySQL、Python、Hadoop、Linux、Hive、数据仓库技术、BI工具如Superset、FineBI等,以及数据质量和阿里云大数据服务等专题,旨在帮助初学者和进阶者规划学习路径。 摘要由CSDN通过智能技术生成 https://blog.csdn.net/longz_org_cn/article/details/130152191
4.Java辅助学习系统数据流图java数据流编程实验总结Java辅助学习系统数据流图 java数据流编程实验总结 20143516许心远 《Java程序设计》第6周学习总结 教材学习内容总结 10.1.1 1.Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象。 2.若要将数据从来源中取出,可以使用输入串流;若要将数据写入目的地,可以使用输出串流。在java中,输入串流代表https://blog.51cto.com/u_14844/8309580
5.MariaDb数据库管理系统学习(二)使用HeidiSQL数据库图形化界面管理HeidiSQL 是一款用于简单化的MySQLserver和数据库管理的图形化界面。该软件同意你浏览你的数据库,管理表,浏览和编辑记录,管理用户权限等等。此外,你能够从文本文件导入数据,执行 SQL查询,在两个数据库之间同步表以及导出选择的表到其他数据库或者 SQL 脚本其中。HeidiSQL 提供了一个用于在数据库浏览之间切换 SQL 查询https://cloud.tencent.com/developer/article/2047562
6.深度图数据集:解决深度学习数据不足的方案实验结果表明,使用深度图数据集可以提高深度学习模型的性能。具体来说,通过将图像、文本等原始数据转化为深度图数据集,再利用图卷积网络(GCN)等图神经网络进行训练,模型在各项指标上均取得了显著的提升。这充分证明了深度图数据集在解决深度学习数据集少问题上的有效性。五、案例分析——深度图数据集在推荐系统中的https://developer.baidu.com/article/detail.html?id=2036386
7.基于深度学习的实时识别硬件系统框架设计AET系统框架采用MNIST和Fashion MNIST数据集作为网络模型硬化试验样本,实验结果表明,在一般场景下该系统框架能够实时、准确地完成图像数据的获取、显示及识别,并且具有可移植性高、处理速度快、功耗低的特点。 关键词: 深度学习 卷积神经网络 Zynq 软硬件协同 中图分类号: TP391文献标识码: ADOI:10.16157/j.issn.0258-http://www.chinaaet.com/article/3000091553
8.前沿综述:面向复杂系统建模的多模态图学习澎湃号·湃客图学习(Graph Learning)是一种研究和应用图结构数据的机器学习方法。在图学习中,数据被表征为由节点和边组成的图形,其中节点表示实体或对象,边表示它们之间的关系或连接。因此图学习特别适用于复杂系统的多尺度分析、建模与仿真研究,揭示复杂系统中的模式、规律和动态变化。图学习常用的技术包括图卷积网络、图注意力网络https://www.thepaper.cn/newsDetail_forward_25672785
9.管理信息系统学习心得体会管理信息系统学习心得体会3 一连为期五天的管理信息系统实训结束了,从E—R图的绘制到业务流程图绘制,再到数据流程图绘制,最后到判断树、判断表绘制,我们似乎在名为管理信息系统的这座大学城里的外环绕了一圈,但系我又深知,这么一个想法其实只是在五十步笑百步,E—R图、业务流程图、数据流程图、判断树和判断表https://www.yjbys.com/xuexi/xinde/3879192.html
10.亚马逊AWS:开源图深度学习框架DGL的机遇与挑战实际过程中使用图数据去解决问题,大家可能会想到说我有这样的任务,我有这样的一个需求,我应该用怎样的模型去解决它呢? 现在主流的或者说一个非常火热的方向,(就是)把我们知道已经非常成功的深度学习技巧引入到图数据的学习当中,因此也就诞生了一类新的图数据库,叫做图神经网络 Graph Neural Network,GNN。 https://www.yueshu.com.cn/posts/chance-and-challenge-of-deep-graph-learning
11.大数据组件有哪些?构建现代数据生态系统的组件一览!Apache Giraph:用于大规模图数据处理的分布式计算系统。Giraph支持图的遍历和计算,适用于社交网络分析、推荐系统等场景。 TensorFlow和PyTorch:两个流行的开源机器学习框架,提供了灵活的工具和库,使得用户能够构建和训练各种深度学习模型。 结语 大数据组件构成了一个庞大而强大的生态系统,为企业提供了从数据存储、处理到分https://www.fanruan.com/bw/big-data-module
12.《学生成绩管理系统数据流图》.doc《学生成绩管理系统数据流图》.doc 8页VIP内容提供方:tangzhaoxu123 大小:274.5 KB 字数:约4.79千字 发布时间:2020-01-22发布于天津 浏览人气:686 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)《学生成绩管理系统数据流图》.doc 关闭预览 想预览更多内容,点击免费https://max.book118.com/html/2020/0117/7200054111002113.shtm
13.学习数据库系统概论这一篇就够了学习数据库系统概论这一篇就够了 第一章 数据库绪论 1.1、数据库系统概述 1.1.1、数据库的四个概念 数据(Data):数据是数据库中存储的基本对象,它是描述事物的符号记录。 数据库(Database):数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。https://developer.huawei.com/consumer/cn/forum/topic/0201421181252730565
14.一种高效全面的敏感数据分布自动化探查方法本文概要性地描述了一种企业敏感数据分级分类、采集、识别、分布展示的高效全面的自动化探查方法。https://www.secrss.com/articles/12266
15.Java开发全栈知识体系架构学习(服务器微服务数据库思维导向URL指定的资源提交数据或附加新的数据 03、PUT方法 跟POST方法很像,也是想服务器提交数据。但是,它们之间有不同。PUT指定了资源在服务器上的位置,而POST没有 04、HEAD方法 只请求页面的首部 05、DELETE方法 删除服务器上的某资源 06、OPTIONS方法 它用于获取当前URL所支持的方法。如果请求成功,会有https://www.processon.com/view/60504b5ff346fb348a93b4fa
16.《复式条形统计图》说课稿(精选12篇)从学生已有的知识经验出发,先后呈现单手投球的条形统计图,复式统计表和两幅单式条形统计图,既复习、激活学生已有的对单式条形统计图的认知,又为后继的学习提供准备材料,接着通过提出需要对统计图的数据进行分析比较才能作答的问题。引发学生认知冲突,产生合并统计图的需求,促进学生主动建构所要学的复式条形统计图的https://xiaoxue.ruiwen.com/shuokegao/326172.html
17.2022云栖精选—云栖大会图计算及其应用论坛但是,在真实的应用场景中问题复杂,计算模式多样,解决方案碎片化;同时用户的门槛很高,学习难度也很大;海量数据的计算复杂度高且效率低。因此,解决图计算大规模应用的挑战是我们GraphScope系统开发的重要目标。 GraphScope的构建,始于2020年底。两年的时间里,我们结合了阿里的海量数据场景以及以达摩院团队和业界专家学者的合作https://developer.aliyun.com/article/1101113
18.收藏:常用医学公共数据库(含临床数据库,生信数据库和机器学习数据美国国家癌症数据库(National Cancer Database, NCDB),SEER(Surveillance, Epidemiology, and EndResults Program)https://www.medsci.cn/article/show_article.do?id=fd511958806a
19.科学网—[转载]基于强化学习的数据驱动多智能体系统最优一致性基于强化学习的数据驱动多智能体系统最优一致性综述 李金娜, 程薇燃 辽宁石油化工大学信息与控制工程学院,辽宁 抚顺113000 【摘 要】多智能体系统因其在工程、社会科学和自然科学等多学科领域具有潜在、广泛的应用性,在过去的 20 年里引起了研究者的广泛关注。实现多智能体系统的一致性通常需要求解相关矩阵方程离线设https://wap.sciencenet.cn/blog-951291-1276281.html
20.四年级上册数学教学计划(通用13篇)3、统计与概率(数学思想方法)领域的知识包括统计;数学广角两个单元。统计主要学习复式条形统计图(纵式和横式)学会看懂复式统计图并进行数据分析;数学广角让学生初步体会运筹思想和对策论方法解决生活中的实际问题。 4、用数学领域的内容主要放在三位数乘两位数、除数是两位数的除法这两个单元之中,结合计算教学解决生活https://www.unjs.com/jiaoxuejihua/202109/4104477.html