我要这金牌有何用:Kaggle 竞赛成绩真能「保送」谷歌、FB 吗?
收藏


机器之心报道

参与:李泽南、郑丽慧

那些在 Kaggle 上获得金牌的数据竞赛大神们都找到了好工作吗?现实或许没这么美好。

对于初入机器学习领域的人来说,你肯定已经从学长口中、博客文章中、社区帖子里听说过 Kaggle 的大名。除了大量竞赛以外,Kaggle 上也有很多公开的数据集。


有很多 Kaggle 入门教程都会提到:这是一个在业内拥有很高认可度的竞赛平台,在你的简历中附上 Kaggle 成绩,会对找工作很有帮助。


最近,这一问题在 Reddit 机器学习板块上引发了热烈讨论。


发帖者u / AlexSnakeKing辗转反侧:在大家眼中,Kaggle 奖项的重量足以让你「走上人生巅峰」。我们经常可以看到各路 Kaggle 大神的传奇经历,他们有的非常年轻,有的身经百战。而故事的结局通常会是:他们获得了谷歌、Facebook 这样科技巨头的青睐。


但他也观察了自己在博客上关注的很多 Kaggle 获奖者,还有一些经常在 LinkedIn 上联系的获奖者。获奖的几个月后,「朝为田舍郎,暮登天子堂」的故事没有发生,这些获奖者并未出现在 谷歌、FaceBook 的办公室里,甚至还有一部分人始终处于自由职业者的状态……


这正是令u / AlexSnakeKing迷惑的地方,Kaggle 上的好成绩真的会对求职有帮助吗?


直白点说,在 Kaggle 上得奖能不能帮我们拿到 Google、FB、Open AI 这些大厂的 offer?


机器学习界的「耶路撒冷」


作为最著名的数据科学竞赛平台,Kaggle 成立于 2010 年,并于 2017 年被谷歌收入旗下。迄今为止,这一平台上已经举行了 356 场各种类型的数据竞赛。


很多公司、政府研究机构都会把自己的数据放上来,开放给全球范围内的参赛者,让他们帮助自己建模型。为了提高参赛积极性,他们也会设置一定的奖金,用来奖励模型精度最高的几个队伍,有些竞赛的奖金甚至可以高达百万美元。


于是乎,Kaggle 源源不断地吸引了成千上万的开发者来参加竞赛,许多数据科学家在 Kaggle 上投入了大量的时间和精力。在诸如机场安全、卫星数据分析这类的任务上,不乏数十年经验的优秀团队加入比赛。


在机器学习爱好者们心中,Kaggle 是一个灯塔般的存在。



Kaggle 的总榜单上现在已经出现了 162 名大师级(Grandmaster)选手。而在所有比赛中,获得金牌的人数大约占总人数的 2.5%。然而,数量多并不意味着拿奖牌的几率很高:从趋势上看,随着参与人数的逐渐增多,获取 Kaggle 奖牌的难度正在逐年提升。


Kaggle 奖牌能让你成为 offer 收割机吗?


「赢得 Kaggle 不代表就是一名好的 ML 工程师」


两枚银牌得主「cpury」表示:

我不是金牌获得者,但是在自身领域也得过两枚银牌。其实得 Kaggle 的奖还是有用的,很多 Kaggler 在 Linkedin 上加我,面试的时候这段经历也经常会被提到。就算搞自由职业时,这也是你谈价格的筹码。


你可以说,我值这么多钱,因为我在 Kaggle 上解决过一个类似的问题,并且排在前 100 位。


我也赞同,在 Kaggle 上做得好不代表就是一名好的 ML 工程师,Kaggle 太过关注纯数据科学,寻找创意集合体,然后花费大量时间(或者你还要花很多钱)进行实验,同时尽可能减少过拟合。对于竞赛而言,最好的模型就是能够供整个社区使用,你的主要任务也是做到这点。


Kaggle 不会主动带来大厂 offer,但非常有用


在 kaggle 比赛中得过两次前三的网友「juliandewit」说:


我现在就是一名自由职业者,职业方面还不错。Kaggle 确实给我带来了一些不错的资源和回报,我也经常收到创业公司的邀请,这还是在我没有推销自己的前提下。


不过没有 Google/OpenAI/Facebook 的邀请,也没有天价薪酬。


我个人觉得你应该在 Kaggle 上多努力,如果说是为了找工作,Kaggle 是不会为你自动带来 offer 的,但是一个好的 Kaggle 成绩当然非常有用。


想成为优秀的工程师,重在实践


还有一位网友建议发帖者更关注实践经验:


首先我觉得这个取决于你参加比赛的类型。


在我(有限)的 Kaggle 经历中,我发现那些获奖者很少拥有最佳模型。如果模型要通过准确性得分/ AUC 进行评估,可以说前 10 名团队的得分都会大于 99.5%。你知道,这些模型大部分都被遗忘了。


所以我觉得赢得 Kaggle 比赛不一定会让你成为优秀的 ML 从业者。不错,接近完美的准确性是很好,但如果暴露在真实数据中时完全瘫痪,那就不是一个成功的模型。


网友「Nitro_V」也赞同这一观点,同时补充了自己的观点:


而且,通常在一些数据竞赛的最终排名中,前几名之间的区别只是算力的区别,有时甚至前 20 名之间的分数差距都不是特别明显。我见过在一些竞赛上,排名榜单从头到尾使用的模型都几乎相同。我个人认为,使用可行的,耗费算力更小的模型,要比一个过拟合的巨型网络要好得多。


跟帖的网友「omniron」说:

以我有限的经验看来,赢得 Kaggle 比赛最重要的问题在于赛会设置的评估标准——而它们并非总是有意义的。我们必须选择一些标准来评估每个人的水平,而这个标准并不总是适合他们要解决的实际任务。


Kaggle 竞赛往往关乎如何按照最佳规格进行工程设计,而不是如何构建最好的模型,来解决数据科学的具体问题,前者意味着更多的竞争意味。


「我也见过代码能力很差的 Kaggle 获奖者」


网友「ivalm」讲了自己的亲身经历:


Kaggle 可能不像大多数人印象中的那样,是表现人们擅长机器学习、数据科学的最好指标。在工作中,我面试过一位全球总榜排名约 100 位(Kaggle competition master)的求职者,以及一名在某项竞赛中排名第二的求职者。


当我问机器学习理论细节时,回答的很好,但在架构设计问题上就显得一般了,抛出代码挑战问题之后,他们都惨遭失败。我很确定他在 Kaggle 竞赛上所做的一切只是学习公共内核(Kernel)、调好超参数、几何模型,然后花大量时间测试。我怀疑他每一步都使用了别人的代码,耗费了大量的时间和精力。虽然我们知道他的 Kaggle 成绩没有造假,但是他的代码能力太差,让人不由感到怀疑。


综合看来,在机器学习热度不断提高的情形下,Kaggle 比赛成绩在用人单位眼中的重要程度也在逐渐变化。


在 Reddit 的讨论中,一位「阅人无数」的网友也给出了非常直接的结论:



「作为阅读了大量简历的人来说,这个问题的答案很简单:No.」



Anyway,对于大多数网友来说,Kaggle 获奖到底有没有用,是不是就相当于小时候「上清华还是上北大」的问题?


参考链接:
https://www.reddit.com/r/MachineLearning/comments/dge24v/d_does_winning_a_kaggle_competition_really_help/



华为云近期推出精编实战公开课,涵盖机器学习、大数据、运维实战等多项系列课程,由华为云资深工程师倾情讲授,完成理论学习+实践内容还有精美礼品相赠。点击阅读原文,选择课程,免费报名。