机器学习竞赛中,为什么GBDT往往比深度学习更有效?

在过去的几年里,大多数的推荐算法都是基于深度学习(DL)方法。遵循我们领域的一般研究实践,这些工作证明了新的DL方法在离线实验中优于其他不基于深度学习的模型。然而,在与推荐相关的机器学习竞赛中(如与年度ACM   RecSys大会一起举行的挑战赛)没有观察到基于DL的模型的这种几乎一致的成功。取而代之的是,成功的解决方案主要包括大量的特征工程和使用梯度提升的技术。

在本文中,我们探讨了这种令人惊讶的现象的可能原因。我们考虑多个可能的因素,如问题设置、数据集和DL方法的特点和复杂性;竞赛参与者的背景;或评估方法的特殊性。

然而,当我们观察推荐任务的机器学习竞赛的结果时,我们无法观察到近年来DL方法对非DL技术的胜利。例如,当我们看一下每年在ACM推荐系统大会(ACM   RecSys)上举行的挑战赛时,我们发现其他技术在排行榜上占据主导地位。具体地说,在这些依赖于相对古老的梯度提升树的方法似乎总是能拿名次。而成功的一个关键在于特征工程过程的有效性,这通常需要对该领域有很好的理解。为了证明这一差异,我们看了2017年至2019年与ACM  RecSys举行的挑战相关的研讨会的会议记录。

最新ACM RecSys挑战赛的DL方案分析

在2017年至2019年ACM RecSys挑战赛的前五大解决方案中,只有一个方案完全依赖于DL方法的组合:在2018年挑战赛中排名第二的方案。

他们解决自动播放列表问题的方法:将Autoencoder处理曲目和艺术家列表与字符级 CNN处理音乐曲目标题相结合。所有其他解决方案通常基于特征工程、梯度提升或各种技术的组合,包括矩阵分解、支持向量机、逻辑回归、基于内容的技术或最近邻技术等。

在一些融合方案中,也经常包含DL模型。选手也经常会给出单个模型的结果,我们经常观察到,即使使用相同的特征集,DL模型也没有达到梯度提升的性能。

  • 在2018年获胜的两阶段模型中,第一阶段使用了CNN组件,但据作者的说法,它在第一阶段模型中表现最差。在GBDT类模型与DL技术结合时。为了避免过度拟合,DL方案只训练了一个epoch,最后它对整体提升也很小。

  • 在2019年竞争第二名的解决方案中,作者说,效果最好的单模型是使用的XGBoost。他们试验了基于LSTM和基于Transformer的神经体系结构,使用相同的一组特征,对查询后显示给用户的商品序列进行建模。此外,他们用预先训练的XGBoost模型的预测输出叶(一种称为叶编码的技术)丰富了特征集。然而,根据作者的说法,“即使是这样,我们发现深度学习模型很难与GBM效果相匹配。”

  • ACM RecSys 2020挑战赛的胜出团队将三个梯度提升决策树(即XGBoost)融合在一起,对100多个工程特性进行了训练,最终得出了最终的预测结果。

他们探索了一些利用文本内容(BERT标记)的神经方法,但最终的解决方案中没有包含这些方法。

从其它推荐系统和数据科学竞赛中观察表格数据

类似的情况也可以在Kaggle等流行平台上举办的推荐系统竞赛中找到。例如,

  • 在Outbrain Click Prediction竞赛(2017)中,FFM是前三名获奖解决方案中的核心技术。

  • 在Criteo(2014)和Avazu5(2014)主办的CTR(点击率)预测竞赛中,同样的技术也取得了成功。

  • 与后两项比赛不同的是,Outbrain比赛的任务是排名(而不是CTR预测)。然而,FFM技术在三年后继续表现最好,同样是为了这个替代的预测目标。在这些竞争中,神经网络扮演了次要的角色,继FFM、带有FTRL优化和XGBoost的logistic回归模型。

当我们用一般的表格数据来看待其他数据科学竞赛时,我们的观察结果是相似的。近三年来Kaggle竞争的表格数据来看,大多数以GBM为核心模型。偶尔有例外,例如Porto Seguro’s Safe Driver Prediction和Predicting Molecular Properties 竞赛,其中获胜的解决方案依赖于DL模型。

  • 在前者中,所提供的特征名称是匿名的,不可能将领域知识用于特征工程。我们可以推测这是一个有利于使用DL模型的因素。

  • 在后一场比赛中,获胜的解决方案是一个精心设计的具有自我关注能力的图神经网络(GNN)。在这里,数据的底层图结构可能对基于图的体系结构有利。

对于此类现象的潜在原因,我们确定了三大潜在差异和解释:

  • 数据集和问题特征;

  • 研究者的目标和动;

  • 评估方法

问题是否不同

我们观察到的差异的一个潜在原因可能在于学术研究和竞赛中所讨论问题的特点。

数据集相关方面

数据集相关方面:数据量大,  ACM RecSys  Challenge等比赛提供的数据集通常包含数百万个交互,旨在代表行业数据。例如,2017年挑战赛的XING数据集包含超过3.2亿次记录交互。自2006年Netflix以1亿的ratings,这样大的数据集在推荐系统研究中并不少见。然而,在学术界,最近的DL方法通常是基于更小的数据集,只包含100000个交互,甚至更少。

DL方法的一个流行假设是,当有大量的数据可用于训练时,DL会尤其有效。如果这是真的,这些方法将从比赛中使用的大数据集中获益。然而,另一方面,训练深层神经网络的计算成本很高,这也是为什么即使是最近的学术论文在评估时也使用相对较小的数据集的原因之一。在竞争对手没有处理大计算能力的情况下(例如,具有大内存的gpu可以容纳用于高基数分类特征的巨型嵌入表),因此他们可能会求助于其他方法,如梯度提升树模型等。

竞赛和实际部署之间的一个决定性区别可能是真实世界系统中可用的数据量。比赛中的数据是从短时间内用户子集中采样的,而部署的系统利用现有模型的迭代再训练来维护用户和商品丰富的交互历史。因此,DL方法在已部署系统中的优势可能只会在更多的数据出现时才显现出来可用。与数据集特性相关的另一个方面是,学术界使用的一些数据集(如传统的MovieLens100k电影收视率集合)比竞赛数据集和一般真实世界的数据集稀疏。众所周知,高数据稀疏性可能导致过度拟合,这可能特别适用于某些DL架构。这里需要考虑的一个重要方面是,实际上竞争数据集通常在记录的交互数量方面很大。然而,有时这些互动是在一个狭窄的时间窗口内收集的,例如,几个星期。因此,由许多DL模型学习的用户和项目嵌入通常只基于每个用户和项目的非常小的交互集。

在额外的数据方面,过去的三个ACM   RecSys挑战中,提供了各种类型的元数据,即不仅提供了用户和商品之间的交互,而且数据集还分别包含了有关工作、艺术家和酒店的信息。通常认为DL方法的优点是它们非常适合于异构或多模式数据,并且能够检测和利用此类数据中的复杂交互,例如通过使用共享表示。同样,元数据的可用性原则上应该对DL方法有利,但是我们只观察到一些例子,比如,CNN被用来利用元数据信息。

在某些情况下,更多元数据特性的可用性甚至会在某些方面误导DL方法。在推荐系统竞赛中,最常见的任务是对用户交互进行bianry分类或根据其预测的相关性对商品进行排名。这些任务需要负样本(不存在的user   item交互)进行评估,大多数算法也使用这些负样本进行训练。完美的场景应该是有真正的负样本,这些样本实际上被用户看到而忽略了。然而,竞赛数据集中的负样本通常是由商品的某些概率分布(例如,基于项目的最近性、流行性、,“共现”(co-occurrence)或“内容相似性”(content  similarity),试图模拟用户在浏览会话中可能看到(或忽略)的商品。

如果负项的分布与正项的分布不太接近,复杂模型可以学习模式,将正样本和负样本从可用的泄漏特征中分离出来,并利用这种方式进行准确预测。当一组更丰富的功能可用时,这种风险会增加。

当存在这种泄漏特征时,神经网络很容易过度拟合,即使使用诸如L2正则化或dropout之类的正则化技术。相比之下,树的集合(例如GBDT、随机森林)则使用诸如bagging(实例抽样和替换)、feature   bagging(列抽样)和boosting(优化以正确预测前一个训练步骤中的错误)来对抗过度拟合。最后,这些技术可能会产生更一般化的模型(即低方差误差)。

预测相关方面

在学术界,最常见的问题是rating预测、bianry分类和给定历史用户项交互矩阵的top-n推荐。

在许多研究工作中,一个相应的假设是,对于每个用户来说,在训练阶段有一些过去的交互是已知的。然而,在过去三次ACM-RecSys挑战中的预测问题是不同的。

  • 2017年,挑战的离线部分的目标是预测哪些用户会对新发布的工作邀请感兴趣,这与商品冷启动问题相对应。与典型的学术研究不同,使用了一种非常具体的评价指标,考虑了用户对推荐的各种反应。

  • 2018年,我们的任务是给定最初的几首歌曲创建音乐播放列表continuation。

  • 2019年的目标是预测用户在给定的会话中点击了哪一个酒店搜索结果。特别是在后两种情况下,问题不是传统的矩阵补全设定,而是基于会话和上下文感知的推荐问题;

在商品冷启动和用户冷启动推荐场景中使用神经网络时,通常商品和用户嵌入会像初始化一样随机,没有预测能力。因此,利用用户和商品元数据(例如,人口统计、内容特性)和上下文信息(例如最近的交互、时间、位置)是判断给定用户是否对给定上下文中的特定项感兴趣的关键。

近年来,针对基于会话和顺序推荐任务,提出了一些基于DL的方法。然而,特别是对于基于会话的方法,基于rnn或注意力的DL方法并不一定比基于概念上更简单的技术,例如基于最近邻的方法。请注意,许多基于会话的深度学习算法仅依赖于协同信息(即,用户-商品交互),但没有考虑副信息,这可能是限制其有效性的一个因素。

例如,在之前新闻领域的实验表明,简单的基于会话的算法(例如,基于kNN和关联规则)能够提供比基于RNN和基于GNN(图神经网络)的模型更高的精度,当只考虑用户-商品交互时。只有当附加信息被添加到一个基于RNN的体系结构(CHAMELEON)中时,该体系结构设计用于处理冷启动问题,其精度比任何其他基于会话的算法高20%。

研究人员和他们的目标不同吗?

另一个我们看不到DL方法持续获胜的潜在原因可能与参加比赛的人有关。例如,可以假设一些参与者无法访问GPU驱动的硬件,这就是为什么他们求助于其他计算要求较低的技术。另一种假设是,挑战参与者会定期参加数据科学竞赛。考虑到梯度提升在这类比赛中的流行和过去的成功,人们可以推测,这些参与者要么偏爱更传统的模式,要么不精通最新的深度学习技术。

然而,当研究人员关注这些假设时,很难维持这些假设。表现最好的贡献来自具有不同背景的团队。有来自专注于人工智能的公司的团队,有从事推荐系统的学术研究小组的成员,还有一些个人,假设是独立的研究人员或机器学习爱好者,但他们的背景并不多。至少对于来自公司的参与者,我们可以假设他们配置了足够的计算资源。此外,当查看来自工业界和学术界的单个研究人员简介时,也会发现这些参与者非常了解DL方法,并且在某些情况下,如上所述,报告他们在解决方案中添加DL方案的经验。

尽管如此,研究人员和挑战选手可能有不同的目标、偏好和工作流程。在竞赛中,参赛者通常依靠常规的科学数据和竞赛数据来获得胜利。这些模型在数据预处理方面非常轻量级(例如,不需要特征缩放),进行自动特征选择,对过度拟合具有鲁棒性,并且可以解释,从而提供对最重要特征的见解。另一方面,神经网络通常需要在特征规范化、体系结构设计、正则化或损失函数方面有深入的专业知识,而且它们还需要专门的硬件(GPU)来实现高性能。此外,由于对预处理、体系结构设计和超参数选择的敏感性,神经模型通常需要努力和时间才能获得更好的结果。仅仅找到一个网络体系结构(包括结构、层和节点的数量)的问题就可以打开一个巨大的设计空间,在这个空间中可以找到一个性能良好的解决方案。由于比赛的时间跨度通常相对较短,因此当给出表格数据时,DL模型可能不是参赛者的首选。

根据我们的经验,挑战赛参赛者在处理表格数据时通常会在特征探索和工程设计上投入大量时间。另一方面,学术研究者通常更关注科学方面,例如针对给定的问题或领域探索和提出复杂的训练算法和神经体系结构设计。他们在实验中一般不注重特征工程和泄漏的开发。例如,有论文报道了将混合推荐的新神经体系结构与XGBoost模型进行比较的实验,XGBoost模型使用相同的丰富特性集。

是评估过程不一致吗?

在学术研究和竞赛中,如何设置性能比较实验以及如何实际进行评价是完全不同的。我们在表1中说明了主要差异。

这两种基准测试算法之间的差异是显著的。在竞赛中这样做的方式似乎更客观,也不容易受到研究人员的潜在偏见的影响,他们是唯一在发表前对自己的提案进行评估的人。实际上,在学术环境中,研究人员在决定实验装置的具体细节时有很大的自由。拥有这种自由是绝对重要的,因为它允许研究人员探索新的结构和研究以前没有研究过的问题。这种自由的一个潜在的缺点可能是,研究人员可能会有意识或无意识地以实验配置结束,这些配置支持他们的假设,即他们新提出的方法比以前的方法更好。上下文中的一个典型问题可能在于基线的选择和优化。也就是说,可能是因为新的Baseline太弱了。

最近的研究提供了几个例子,其中DL方法与论文中报道的方法相比,并不总是优于现有的并且通常相当简单的方法。当然,在学术文献中,我们无法知道DL方法在多大程度上战胜了以往的方法论问题。这一点尤其不清楚,因为在数字图书馆时代之前,也曾观察到类似的问题,例如在信息检索领域。

我们可以在不同的学术评价方法和方法中观察谁来设计和研究。然而,最终,这些差异是否与学术论文和竞赛中获奖模式之间观察到的差异密切相关,目前仍不清楚。在行业中也可以看到类似的差异,推荐的成功是以组织为导向的,通常是纵向的关键绩效指标。例如,谷歌在他们的在线实验中报告说,与具有相同特征集的线性模型相比,他们的广度和深度模型在在线获取方面的收益增加了3.9%。从更积极的方面来说,我们可以越来越多地观察到学术研究人员通过公开代码、超参数选择和数据集来更加关注可重复性。这将导致其他研究人员有机会客观独立地验证实验和结果。

讨论和总结

我们的工作突出了许多潜在的原因,为什么DL方法不能一直赢得推荐系统的竞争。也可能存在其他原因,例如,这只是发生在特定比赛系列中的巧合。

事实上,一年之内有一个完全基于DL的第二个解决方案。可能是DL方法对于这些类型的问题“只是不能很好地工作”。然而,考虑到DL在机器学习的其他应用领域和工业中的成功,这样一个概括的解释似乎不太可能。

总的来说,我们认为DL方法在推荐问题上的潜力还没有得到充分的开发。也许我们还需要更好的方法来并行地组合不同的信息源。结合前10期作品的成功经验,提出了相关建议。尤其是在需要考虑某些细节的情况下,比如在新闻领域,我们有一个永久性的项目冷启动问题。另一种在竞赛中使用DL获得更好结果的潜在方法可能是开发和使用能够实现高性能“开箱即用”的工具,即不需要进行广泛的特征工程和神经结构设计。在DL的上下文中,例如,这样的AutoML技术NAS。

然而,我们的讨论也强调了在学术研究中不要忘记非DL方法的重要性。近年来,我们有时观察到新提出的方法只与其他DL方法进行比较,而不再考虑以前的方法。当后来发现这些基线DL方法并不一定比我们以前的方法更好时,例如。,由于以上提到的方法问题,我们再次以“提升不会add  up”结束,这种以DL为中心的基线模式也出现在行业数据集的在线评估中,而且这一建议也可能适用于此。

最后,人们可能会质疑机器学习竞赛对于一般科学过程的重要性。这样的比赛在某些方面强化了一种“追逐排行榜”的文化,在这种文化中,主要的、通常唯一的目标是在一组准确度指标上比以前的方法高出几个百分点。这可能会导致这样的结果:这些改进在实践中是否重要的问题从未被问过。此外,为什么某个解决方案导致了改进,这也变得无关紧要,因为这样的研究方法不是基于基础理论或研究假设的。另一方面,竞赛可以对科学研究产生一些积极的影响。例如,通过这样的竞赛,组织可以与学术界分享他们感兴趣的问题。此外,竞争是学术研究人员获取数据集的重要来源之一,也是吸引研究人员在未来不断建立更好的推荐系统的有效手段。

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2020年算法工程师技术路线图

原文链接:https://cloud.tencent.com/developer/article/1689082 重磅干货,第一时间送达作者丨字节知乎来源丨https://zhuanlan.zhihu.com/p/192633890极市导读算法工程师如何获得技术方面的成长?本文从工程基础、算法基础、算法工程交叉、工…

浅谈大型互联网企业入侵检测及防护策略

前言 如何知道自己所在的企业是否被入侵了?是没人来“黑”,还是因自身感知能力不足,暂时还无法发现?其实,入侵检测是每一个大型互联网企业都要面对的严峻挑战。价值越高的公司,面临入侵的威胁也越大&#x…

征稿 | Big Data Research 专刊(影响因子 2.95)

征稿截止:2020年06月15日近年来,学术界和工业界领域都相继构建和发布了越来越多的大规模知识图谱,如DBpedia、YAGO、Freebase、Wikidata、Google knowledge Graph、Microsoft Satori、Facebook Entity Graph等。事实上,来自不同领…

Android官方开发文档Training系列课程中文版:动画视图之场景创建

原文地址:http://android.xsoftlab.net/training/transitions/scenes.html 场景存储了View层级的状态,包含所有的View及View的属性。转场框架在启动场景与结束场景之间运行动画。启动场景通常由当前的UI状态自动决定。对于结束场景,转场框架…

不要再问Python了!

很多小伙伴问如何学习Python,哪里可以找到实战的Python项目,有没有爬虫案例等等。今天给大家分享一份我整理的Python大全学习资料(文末有获取方式)。话不多说,直接上干货。首先,全部资料目录压缩简单看下里…

GCN】在NLP中应用GCN的几种构图方法整理

GCN】在NLP中应用GCN的几种构图方法整理:https://blog.csdn.net/qq_27590277/article/details/106264292

Android官方开发文档Training系列课程中文版:动画视图之应用场景

原文链接:http://android.xsoftlab.net/training/transitions/transitions.html 在转场框架中,动画是由一帧帧的图像连续绘制形成的,这一帧帧的图像描述了启动场景到结束场景的整个过程。转场框架将这些动画作为一个转场对象,这个对象包含了…

CAT 3.0 开源发布,支持多语言客户端及多项性能提升

项目背景 CAT(Central Application Tracking),是美团点评基于 Java 开发的一套开源的分布式实时监控系统。美团点评基础架构部希望在基础存储、高性能通信、大规模在线访问、服务治理、实时监控、容器化及集群智能调度等领域提供业界领先的、…

论文浅尝 - TACL2020 | TYDI QA:Google 发表一个多语言的问答语料库

论文笔记整理:吴林娟,天津大学硕士。链接:https://arxiv.org/ftp/arxiv/papers/2003/2003.05002.pdf动机具有挑战性、值得信赖的评估数据可以促进多语言模型的发展,为了鼓励对多语言问答技术的研究,作者提出了数据集Ty…

读博总结的总结:读博的那些事儿

文 | 胡津铭知乎本文已获作者授权,禁止二次转载我时常给同学们推荐各种我看过的优质读博总结与建议文章,今天有了些空,整理一下我看过的优质文章。排名不分先后,想到啥写啥。先推荐英文的资源好了,因为我最推荐的一篇文…

NLP事件抽取综述(上中下):中文事件抽取、开放域事件抽取、事件数据生成、跨语言事件抽取、小样本事件抽取、零样本事件抽取等类型

https://github.com/xiaoqian19940510/Event-Extraction 近年来事件抽取方法总结,包括中文事件抽取、开放域事件抽取、事件数据生成、跨语言事件抽取、小样本事件抽取、零样本事件抽取等类型 NLP事件抽取综述下:

Android官方开发文档Training系列课程中文版:动画视图之创建自定义转场动画

原文地址:http://android.xsoftlab.net/training/transitions/custom-transitions.html 自定义转场可以创建自定义动画。比如,可以定义一种动画来更改文本的颜色或者将输入框的颜色置灰以表示不可用。 自定义转场与内置转场相同,都作用在Vi…

LeetCode 55. 跳跃游戏(贪心)

1. 题目 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1:输入: [2,3,1,1,4] 输出: true 解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。 示例…

论文浅尝 - ICLR2020 | Abductive Commonsense Reasoning

论文笔记整理:毕祯,浙江大学硕士,研究方向:知识图谱、自然语言处理。链接:https://arxiv.org/pdf/1908.05739.pdf动机尽管长期以来人们一直认为归因是人们在自然语言界线之间进行解释和阅读的核心,但很少有…

【基本功】深入剖析Swift性能优化

简介 2014年,苹果公司在WWDC上发布Swift这一新的编程语言。经过几年的发展,Swift已经成为iOS开发语言的“中流砥柱”,Swift提供了非常灵活的高级别特性,例如协议、闭包、泛型等,并且Swift还进一步开发了强大的SIL&…

Android官方开发文档Training系列课程中文版:连接无线设备之网络服务搜索功能

原文地址:http://android.xsoftlab.net/training/connect-devices-wirelessly/index.html 引言 Android设备除了可以与服务器建立连接之外,Android无线API还允许处于同一网段下的两台设备建立连接,或者是物理距离相近的两台设备建立连接。N…

新年立个小目标!代码写得更规范!

知乎作者叶小飞:作为Oppo Reno2 超级夜景核心开发人员和奔驰San Jos Pilot落地工程师之一,我写代码基本尽可能地遵循Google Style. 在这里写几个自己的习惯Google Style里面几个常用的要点。自己的习惯动手写代码前尽量做到胸中有丘壑。现在这世界讲究格局&#xff…

手把手教你用Keras实现英文到中文机器翻译 seq2seq+LSTM

原文链接:https://blog.csdn.net/qq_44635691/article/details/106919244 该模型实现的是英文到中文的翻译,下图为了更好展示模型架构借用大佬的图(这里没有用到Embeddings): 本文完整代码:Github 目录 一、处理文本数据 1.获得翻译前后的句子…

LeetCode 45. 跳跃游戏 II(贪心/BFS,难)

文章目录1. 题目2. 解题2.1 贪心2.2 BFS1. 题目 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例:输入: [2,3,1,1,4] 输出: 2 解释: 跳到最…

Android官方开发文档Training系列课程中文版:连接无线设备之通过WIFI创建P2P连接

原文地址:http://android.xsoftlab.net/training/connect-devices-wirelessly/wifi-direct.html#permissions Wi-Fi peer-to-peer (P2P) APIs可以使程序与附近的设备进行直接通讯,Android的Wi-Fi P2P框架由Wi-Fi Direct™提供技术支持。WI-FI P2P技术可…