Categories
程式開發

Kaggle大赛曝出作弊问题:拿下25000美元奖金的AI成果竟暗藏玄机


又是一年除夕,然而今年全国人民的注意力全部集中在新型肺炎上,每一个地区的每一条确诊消息都牵动着我们的神经,我们希望所有人都可以安然渡过难关,我们也希望科技在医疗、救助等各领域有更大助力。科技本想善,奈何人心难测。近日,谷歌资助的一项比赛旨在开发机器学习软件,以帮助被遗弃的动物找到有爱心的人家,不料爆出了获胜团队作弊的丑闻。

Kaggle Grandmaster是谷歌公司举办的一项竞赛,目标在于开发机器学习软件,帮助遭到遗弃的小动物们找到新的温暖家园。但美好愿望的背后却曝出丑闻——获胜团队在比赛中居然作弊。

PetFinder.my是一家非营利性组织,负责向领养者们提供关于小狗、小猫以及其他宠物的相关信息。此项竞赛要求“利用创新型AI解决方案拯救这些无家可归的动物。”各参赛者需要创建一种算法,该算法可以根据宠物的具体情况(包括宠物的照片、品种、性别、尺寸、年龄以及是否接种过疫苗)提供预测结果,用以加快整个领养流程。

预测结果将用于优化及调整未来的宠物介绍方式,尽可能缩短领养周期。该算法将使用宠物信息与每只宠物的实际领养时间进行训练。以此为基础,该模型将能够把宠物信息与领养周期对应起来。一旦周期过长,模型就会调整介绍以提高宠物的吸引力。

谷歌方面为这项竞赛准备了25000美元(折合19000英镑)的奖金池,旨在奖励最佳解决方案。比赛在Kaggle平台上进行,该平台同样由谷歌开发,目前有超过100万用户在利用该平台构建自己的AI模型,查找及共享数据集,并与他人合作共同开发AI成果。

消除安乐死

比赛规则指出,“在这场比赛当中,您将开发算法以预测宠物被领养的机率——具体来讲,结果将以宠物被领养的速度为准。如果领养成功,相关介绍将被改编为AI工具,用于指导动物保护及救援人员对宠物的介绍方式,通过提高领养率的方式减少宠物的痛苦甚至被安乐死的可能性。”

约有2000个团队参加了此次挑战赛,谷歌方面收到超过3000件参赛作品:每个小组的训练数据集中包含15000条PetFinder.my上的宠物信息,以及发布相关信息之后各只宠物被成功领养的时间周期。几个月之后,各团队需要提供自己的代码。接下来,各模型将利用第二套数据集进行测试,新的数据集包含模型此前从未接触过的约4000条宠物信息,得出结果的方式是将预测领养周期与实际领养周期做出比较。二者的一致性越高,则项目得分越高。

2019年4月,获胜团队正式出炉。这是一支名为Bestpetting的小组,由Pavel Pleskov牵头领导。他是Kaggle平台上的著名人物,在参加的所有Kaggle比赛中都拿到了前三位的好成绩。凭借出色的表现,Pleskov获得了“Kaggle Grandmaster”头衔,代表他成为“强者中的强者”。

Bestpetting项目夺得了10000美元的最高资金。第二名团队获得7000美元,第三名团队为5000美元,第四名为2000美元,第五名为1000美元。

结果就这样决定了,似乎一切都在顺利进行——直到一位青年学生尝试将Betpetting代码投入PetFinder.my生产,接下来的情况逐渐走向失控。

超级侦探的破案之旅

Benjamin Minixhofer是一位来自奥地利的19岁少年,同样参加了此次挑战赛并获得了第六名。在与位于马来西亚的PetFinder.my创始人兼CEO Andy Koh进行电话沟通之后,这名少年同意与获胜团队开展合作,结合后者的技术开发出一套基于机器学习技术的整体系统。

Minixhofer在本月接受采访时表示,“我认为这是一件有趣的工作,因为我之前从未尝试过将实验模型投入生产环境。我觉得这肯定是个很好的挑战。”

PetFinder.my的目标,是利用比赛中获胜的最佳模型开发出可用于优化待领养宠物介绍信息的工具。为了实现这个目标,Minixhofer需要解读模型的评估方法,包括哪些照片及文字可能提高或者降低待领养宠物的吸引力。

他在采访中表示,“我认真研究了获胜模型,并发现第一名与第二名之间的得分差异很大。”

接下来,他开始随意浏览Betpetting源代码,但却很快遇上了问题:他意识到,majority_voting函数中隐藏着用于作弊的Python代码段。

最有效的作弊:看答案

获胜团队从PetFinder.my上爬取并散列处理了数千条宠物资料,以及每种宠物的领养时间。这张提示表被隐藏在png数据集内的哈希值中。在比赛评委的测试过程中,一旦这套机器学习系统意识到当前宠物与预存留的PetFinder.my信息相匹配,则软件就会列出网站上已经列出的真实领养时间——而非预测结果。换句话说,这套系统给出的并不是预测结果,而是真实结果。测试数据集与预存结果之间存在3500条记录交集,看来Bestpetting的爬取覆盖率不错。

Pleskov和他的队友们很聪明,为了避免成绩太过优异,他们刻意降低了得分水平。该系统只会以十分之一的机率偷看答案,但这已经足以带来显著的竞争优势。

Minixhofer解释道,“他们只是单纯对爬取到的内容进行编码,只是偶然有3500条出现在了测试数据集内。我想他们肯定知道这些正确答案来自PetFinder.my网站。”他很快意识到,如果Bestpetting没有作弊,那么他们的模型在此次竞赛中只能排在一百名左右。

事实上,如果Kaggle组委会方面认真检查Pleskov提交的代码,那么问题应该能够提早曝光。更要命的是,Pleskov之前就曾经耍过类似的花招。

一年多之前,Pleskov曾经在另一次Kaggle竞赛中作弊。他发现问答网站Quora上出现了一条质疑造假的问题,而他本人亲自上阵,介绍了自己的团队到底是怎样得到最高分的。他甚至无礼地吹嘘道,“办法非常简单:我们就是爬取了答案,没别的。”

Minixhofer马上把情况通报给Koh,后者很快联系Kaggle方面并上报了这一欺诈行为。接下来,Kaggle删除了Pleskov的账户,并以违反使用条款为由将其封禁。

Pleskov因此丢掉了自己在硅谷软件公司H2O.ai的工作。他已经在这里担任约4个月的数据科学家职务。

在Kaggle平台上获取Grandmaster大师头衔绝对是一项声望极高的成就。工程师们可以非常自豪地将其列入简历,并轻松找到待遇优厚的职务。实际上,H2O.ai这类企业会积极针对特定项目聘请顶级Kaggler选手,邀请他们为无人驾驶汽车领域的数据科学家提供构建工具。

本月消息被曝光之后,Pleskov及其团队被取消了参赛资格。他本人为此道歉,并承诺退还10000美元资金:

作为一支团队,我们为自己做出的所有不当行为,向@myPetFinder@kaggle以及DS社区表示歉意。我还要向@h2oai以及所有Kaggle竞争对手表示歉意,对不起。— Pavel Pleskov (@ppleskov) 2020年1月11日

Pleskov补充道,“对我来说,奖金并不只是钱,而是Kaggle上的信誉:不断保持领先优势的愿望,冲昏了我的头脑。现在,我得到了应有的对待,自己的心态也逐渐回归平和,也开始对以往的问题进行处理与反思。我希望大家能够原谅我,也希望其他竞争对手能够从我的错误中吸取教训。”

Pleskov与Kaggle拒绝对本文发表评论。

PetFinder.my公司CEO Koh在采访中总结道,“Bestpetting团队已经道歉并愿意退还资金。我们目前正在等待汇款的最新进度。”

原文链接:

https://www.theregister.co.uk/2020/01/21/ai_kaggle_contest_cheat/