2016-03-25

Kaggle Contests: 一场高端劳动力市场的革命

最近的机器学习(Machine Learning)课程上,有同学建议大家去参加 Kaggle Contests。 Kaggle 竞赛是什么呢?

简单地说,各种公司或者组织可以在 kaggle.com 上发布竞赛,这些竞赛由实际生产或者交易中的某个具体问题出发,寻求基于机器学习或者数据挖掘(Data Mining)的解决之道。竞赛要用到的产业界/金融界数据则由发布比赛的组织提供。每个比赛的优化目标都是不一样的, 所以获胜规则也不同。 每一个比赛,事先定义好获胜规则,通常有几十天时间给参赛者递交算法方案。 任何人都可以组队参加这样的竞赛。 递交方案的时间截止后,算法表现最好的团队胜出,前几名通常可以得到几万或者几千美元的奖金。

就拿我刚刚在 kaggle 上看到的一个竞赛来举个例子。 法国巴黎银行集团 (BNP Paribas)旗下的保险公司 Cardif 希望能对索赔申请快速作出反应。于是他们就在 kaggle 上发布竞赛,希望参赛团队提供准确并且快速的索赔单审核算法。 假如客户提交的索赔单上各种数据齐全并看上去真实可信,算法应该对此作出 “可信” 的预言,这样 Cardif 可以尽快向客户付款,提升客户满意度。 假如索赔单上数据不全或者看上去可疑, 算法就应该降低该单的可信等级,并给出需要进一步审核的资料清单。


Cardif 在 kaggle 上提供匿名的历史索赔数据,这些索赔单都已经被划分好了 “可信” 或者 “可疑,需要额外审核资料” 这两大类。 参赛者可以用这些历史数据训练他们的算法。算法模型中的各个参数训练好了之后, 必须用组织方提供的测试数据来测试那些算法模型。输出的结果格式很简单, 就是测试用索赔单的序列号,和它的可信概率。 比如这样:

索赔单序列号:0, 可信度: 0.6756
索赔单序列号:1, 可信度: 0.3279
索赔单序列号:2, 可信度: 0.8921
……


因为设计的算法各不相同, 每个团队做出来的结果都是不一样的。 参赛日期截止后,组织方会用这个算式来衡量各团队递交的结果:


当然算法程序也是要一并上交的。 结果最好的三个团队可以得到如下奖金:第一名 1.5 万美元,第二名 1 万美元, 第三名 5 千美元。 这比赛的参赛日期是 2016 年 2 月 3 日到 2016 年 4 月 18 日。 各团队有两个多月的时间不断改进他们的算法。 目前的前几名总是可以在竞赛网页上的 Leaderboard 上看到。这个 Cardif 发起的 “索赔申请可信度预言” 算法竞赛,目前在全球范围内有 2300 多个团队参加角逐。

在 kaggel.com 上,类似的竞赛发布者来自各种不同行业和组织,目前进行中的比赛大约有 15 个左右。

同班同学说,他参加过 kaggel 竞赛,他可以学到算法技巧和团队相处之道, 这些竞赛令人上瘾。 我觉得,对于十几二十岁的学生来说,这些竞赛用来锻炼自己各方面的技能是再好没有。他所谓的 “上瘾”,我很明白。就是脑子里一直会去想这桩事情,茶饭不思,人明明很累了, 可是躺在床上也睡不着觉,会去纠缠那个算法。 我以前做毕业论文的时候也有过一两周是完全处在那样的状态,因为连续严重缺睡眠后来还发了一周的低烧。 学生们年轻身体好, 又没有太多生活琐事, 可以这样干。但我现在是全职工作,工作压力就不小,而且上有老下有小,身边有各种琐事要操心,这种比赛是没有条件轻易尝试了。 希望小孩大一点,我空一点了以后,可以去尝试下 kaggel 竞赛。毕竟是几千个团队,全球最聪明的人在那里玩,竞争绝对残酷。不太可能胜出的, 但是体验一下参赛的过程和感觉也是好。

现在说一件很重要的事。 这种比赛,其实是一场高端劳动力市场的革命。没有这种竞赛以前,需要算法服务的公司和组织必需招标做事,招到了团队以后,还不保证项目一定能出成果,尤其是很复杂的问题。就算中标的公司在一段时间后做出一个系统,还不能保证做出来的解决方案一定是质量效率都很高。而雇佣科学家工程师做研发,解决算法问题不是一件便宜事。不少项目,花了几百万以后没有结果, 半途而废。 或者花了很多钱以后,做出来的产品很差劲。 有了这些竞赛以后,那些招标方 (就是发起某个 kaggle 竞赛的公司或者组织)的项目风险几乎为零。不可能全球几千个团队都做不出一个像样的结果来。 更美妙的是,全球的聪明人免费给你做,等出来了结果你才付钱。 付多少钱呢? 区区三五万美元,对 Cardif 那种公司来说完全湿湿碎。 天哪,实在是太便宜了! 最最喜欢 regulate 各种市场行为的欧洲各国政府可能还没有意识到 kaggle 竞赛意味着什么,我很好奇他们醒悟以后会怎样去 regulate 这种大幅度降低算法开发成本的行为。也有可能政府自己将来也会在 kaggle 上发布竞赛,寻求诸如 “优化某市交通网络,减少内城拥堵时间” 之类的算法。这倒会是件好事情。

软件工程师和算法科学家们也不用太过担心从此没事做。这世界的运行越来越依赖软件和算法,实际经济生活中,有各种各样的事情需要你们的程序去处理,也不是发布个 kaggle 竞赛, 收获个算法结果就万事大吉了。有了算法以后,工程上的实施都有大量的事情必须做。

Kaggle.com 上, 除了各种算法竞赛,还有类似猎头服务的功能。在各个比赛中表现出色团队,不可能不引起各大用人机构的注意。真正擅长技术的大 geek,可以通过这种竞赛自动扬名立万,坐等各大公司上门求贤,不必浪费太多时间在无谓的社交活动上。各位同学当然也可以通过 kaggle 主动寻找雇主,有参赛成绩或者踏踏实实的算法技能在,找到工作应该不会太难。

谢谢阅读, 下次再见。

No comments:

Post a Comment