研究之路再孤独,也不要失去理智和希望!
无导师、无同伴、无资金援助,在这样的条件下「为发顶会 Paper 而战」是一种怎样的体验?
机器学习领域的独立研究者 Andreas Madsen 用 7 个月的时间成就一篇 ICLR Spotlight 论文,为黑暗中默默探索的独立研究者们带来希望!当然,他本身也是一名技术达人,机会从来只留给有准备的人!
而值得一提的是,驱动 Andreas Madsen 尝试发顶会论文的原因,则是他在申请博士入学资格过程中四处碰壁的经历。
一个拥有机器学习硕士学位、丰富的机器学习开发经验,同时也发表过一些重要论文的研究者竟然只因没有发过顶会论文,而被一众教授拒之门外?
这一现象在他看来,其实更像是学术界的一种「新精英主义」,最终会放大已经对这一行业产生了挑战的固有偏见。
对此,他最后呼吁:学术应该有清流,不应唯论文论!
以下为他亲自撰写的经验分享:
2019 年 4 月,为了在重要的学术会议上发表论文,我下定决心成为了一名独立研究者。终于,在 2019 年 12 月,经历了漫长的七八个月没有资助的研究工作,我成功了!我的论文被 ICLR 接收了,更令人欣慰的是:这篇论文被接收为 Spotlight 论文!
在我将这篇论文发布在 Twitter 平台上后,它迅速地传播开来,为像我一样的研究者带来了希望。因此,我迄今为止收到了近 100 条私信,他们都在征询我的意见,想知道如何作为一名独立研究者发表论文。
在本文中,我会向大家提出一些这方面的建议。但是,更重要的是,我想谈谈为什么我选择成为一名独立研究者。要知道,在没有任何资金支持的情况下工作 7 个月并非儿戏,这种做法值得大家慎重考虑!
图 1:是的!我的第一篇顶会论文本 ICLR 接收为 spotlight 了!我们将 DeepMind 的论文「NALU」中的性能提升了 3-20 倍。我在没有任何资助的情况下,作为独立研究者,花了 7-8 个月完成了这份工作。
2018 年 3 月,我在「distill.pub」平台上作为唯一作者发表了论文「Visualizing memorization in RNNs」,说明了针对自然语言处理任务,如何通过一种交互式的显著性可视化技术,证明两个准确率几乎一样的模型具有差异极大的表现。
图 2:在 Distill 上发表的第一篇论文「Visualizing memorization in RNNs」
曾经,我认为凭借上面提到的这篇论文和我的机器学习硕士学位,就足以申请到博士入学资格,或者是研究型软件工程师、实习项目或者机器学习工程师的职位了。所以我就开始向许多教授发博士申请信,同时向谷歌、微软、Rakuten、ElementAI、英伟达、Hypefactors、英特尔、京东、亚马逊、三星、Shift Technology、Corti 等公司求职。
然而最终,我竟然连一个面试机会都没得到!
在应聘谷歌的研究型软件工程师时,甚至有一名谷歌的高级研究员找到我,他鼓励我申请他们部门的职位,并正式推荐了我。为保险起见,我还请求了另一名谷歌的高级软件工程师内推我,他曾经与我在开源的 Node.js 项目上有过很多合作。
尽管如此,我还是没有得到面试机会,也没有 HR 联系我,了无音讯!
在申请期间,我收到了一位教授的回信:
非常感谢你的邮件,内容非常有趣。一般来说,现在想要申博士学位,没有一两篇顶会顶刊上的机器学习/NLP 论文是相当困难的。你在 Distill 上发表的论文和你在工业领域的经验在一定程度上弥补了这一点。不幸的是,我现在没有可供申请的空缺名额。——来自 QS 全球排名 Top 100 的大学的一名教授。
我的一位朋友(认识另一所大学的前委员会成员),则收到了下面的回信:
最好的人工智能博士项目要求申请者已经在顶会上发表过论文。如果你并没有在 ACL/EMNLP/CVPR/ICCV/NeurIPS 或 ICML 上发表过论文,你被录取的几率就非常小了。——某 QS 全球排名 Top 5 大学的前委员会成员。
当然,我也收到了一些其它的邮件(大多数人并没有回复我),那些教授说得没有这么直白,但是对我的申请也完全不感兴趣。
我想,他们实际上也要求申请者拥有一两篇顶会论文,但并不想直接承认这一点,因为这种糟糕的标准只对那些非常幸运的学生们有利。——我硕士期间就读的大学并没有鼓励我们去发表论文。但是丹麦同样也是一个读硕士的好地方。
所以,想要在没有内推的情况下申请到博士学位,你本身就需要拥有可以拿到半个博士学位的成果。
这就是事实!为了实现我自 2011 年以来的梦想,我需要发表 1-2 篇顶会论文。于是,在 2019 年 4 月,我决定全身心投入到科研工作直到 2020 年 1月,力争在 NeurIPS 或者 ICLR 上发表论文。如果最终还是没有成功,那我就会去做一名 JavaScript 程序员。
我如何才能找到自己的研究思路?怎样才能为我自己提供资金支持?这是我到目前为止被问最多的问题。然而,虽然这些问题确实有待解决,但我觉得它们其实没有那么重要。
实际上,有很多方法可以发掘研究思路;如果你不用负担别人的开支,有很多办法可以自己省钱。你可以进入一种「孤独地生活,但不放弃理智和希望」的状态,这并不会让你感到十分难受。
在 2017 年 9 月至 2018 年 10 月期间,我一直都是一名自由职业者。在我刚开始成为独立研究者时,我的朋友 Emil Bay 向 NearForm 推荐了我,他们想做一个名为「clinic.js」的新项目。该项目不仅需要工程师对 Node.js 的内部实现有详细的了解,还要求具备统计学背景和网页可视化技术。
这个项目简直就是为我量身定制的!此前,我做过大量的可视化工作,参与了与 Node.js 内部实现相关的工作长达 6 年的时间,并且刚刚取得了机器学习硕士学位。所以,我在这个项目中获得了丰厚的报酬。如果我能将自己的开支消费控制在非常低水平,这份报酬足以支持我进行 3 到 4 年的研究。
可以说在资金方面,我非常幸运。但是,丹麦是一个消费水平很高的国家,或许在另外的国家资助自己完成研究会更加容易。
2019 年,他们也曾邀请我为其在 NodeConf EU 2019 上推出的物联网智能手表/胸牌开发 TensorFlow 组件。虽然这笔收入不足以支撑我全年的所有开支,但也对我帮助很大。
图 3:本文作者开发的智能手表设备
正如我所说,可以有很多种方法发掘研究思路,所以不要太在意我的说法,要充分发挥你自己的创造性。
2019 年 2 月,我回到母校参加了一个人工智能学生社团的开幕式活动,希望与之前的导师谈谈申请博士的事情。但遗憾的是,他也无法为我提供任何的入学机会。
然而,我却遇到了 Alexander R Johansen,他是一位助理研究员,想要寻找合作伙伴。2019 年 3 月下旬,我写信给他,他告诉我他的几名学生尝试复现 DeepMind 的论文「NALU」,但都以失败告终。所以,他问我是否愿意对此进行研究,也许我们可以由此写出一篇 NeurIPS 论文。
我的硕士学位论文和在 Distill 上发表的论文都是对其他人夸大或具有误导性的作品进行批判性思考,然后改进这些工作。而且这项研究的难点在于优化,而我对此却很擅长。所以,我觉得自己可以胜任这项任务。
几乎所有发表的论文都会对其性能进行夸大,所以改进他人的工作是一种可行的研究策略。
我的建议就是如此。这并不是一种非常具有启发意义的寻找研究思路的策略,在这个过程中你也会遇到一些重大的挑战,但的确是一种可行的策略。
下面,我们来看看什么是最重要的!
作为一名独立研究者,你可能很难获得来自任何人的鼓励。当然,我也知道,许多博士生导师也不会鼓励他们自己的学生,但这些学生可以从处于类似困境中的同门那里寻求鼓励。而一名独立研究者想要得到这样的鼓励几乎是不可能的,这也是我建议大家不要成为独立研究者的首要原因。
作为论文的第一作者,在写论文的过程中,背后没有与你感同身受的人支持你是很难熬的。这是我建议大家不要成为独立研究者的首要原因。
每个人都多多少少需要一些鼓励。不要以为在没有任何鼓励的情况下,你自己也能撑过 7 个月。我一直在担心出现下面的情况:找不到解决方案、遭遇不公正的同行评审、得不出有用的实验结果、发现工作中存在某些重要缺陷、甚至担心即便论文发表了也会因为课题过于小众而没有影响力。
同时,自筹 7 个月的研究经费也是有很大风险的。如果最终论文没有发表,我的损失就会很大。作为一名独立研究者,我被录取的机会是低于平均水平的,这是因为我得到的反馈更少。
图 4:作为一名独立研究者发表论文,很可能是我做不到的事,我也想过会失败,但无论如何,我都会尽力做到最好。
然而,尽管可能没有与你感同身受的人支持你,但你也可以通过其它方法解决这个问题。我是这么做的:
1. 我通常每周会与 Alexander 就研究思路进行讨论。虽然 Alexander 本人并没有获得博士学位,但他具有非常棒的批判性思维。我并不认为必须和那些有很多一作论文、或者有多年论文指导经验的人交流。重要的是,我们需要和那些能针对我们的研究工作提出问题的人交流。不然的话,我们可能会变得懒惰,对自己论文中存在的错误视而不见。请尽量与别人讨论你的论文,这会给你增加很大的压力,让你不会寄希望于投机取巧。
2. 在主要的研究之外,我也进行了一些附带的项目。把所有时间都分配给同一份工作的风险太大。不妨花时间做一些你认为有用的小项目。写个开源工具、复现一篇知名论文都可以。从研究中抽身出来,放松一下也是非常有必要的。这样一来,即使研究项目失败了,但至少完成了某些小项目。对我来说,能够让这些附带的项目被知名研究者们认可也是一种莫大的鼓励。
图 5:三天完成的附带项目示例,用到这个项目的研究者会十分感谢你,从中你可以感受到鼓励。(推特大意:很高兴在此发布「pip install Ircurve」。它可以被用于绘制实时的学习曲线,而不像 TensorBoard 那样繁琐。它包含一个 Keras 帮助文件和模型无关的接口。
在所有提交的论文中,大约只有 20% 会被接收,你的同行审稿人会寻找各种理由拒掉你的文章。你认为文章已经「足够好」是远远不够的,你需要让自己的论文被人赞叹道「great」!
然而,(对于独立研究者来说)你并没有任何导师能帮你,此前你也没有发表过论文,那么怎样才能写一篇令人叹为观止的论文呢?
就我而言,我的第一份论文放到了 distill.pub 期刊上。回想起来,我那时太幸运了——Distill 特别关心论文的写作质量。因为与通过同行审稿人(他们自己可能并不精通写作)的评审相比,Distill 更加强调论文能解释清楚并教育他人。对于我来说,写一篇用于解释和教育的文章,要比写一篇取悦同行评审的文章容易得多。
然而,我第一次向 Distill 投稿的时候遭到了编辑的拒稿!他们不清楚我的工作有何贡献。它到底是对 Nested LSTM 的批判,还是提出了一项新的 NLP 任务「自动补全」,或者它是一种交互式的可视化技术?
一篇论文中可能有一到两条重要的信息,如果它们被误解了,那么就会让读者感到非常困惑,从而被拒稿。所以,不要害怕反复强调某些重要信息,从而避免这些问题。
在我的 Distill 论文中,上面提到的这样的信息是:「可视化可以帮助人们理解模型,而准确率却并不能。然而,你需要使用一个任何人都能有直观感受的问题来体现这一点,显然,中文诗歌生成并不是这样的问题」。
在我的 ICLR 的论文中,这样的信息是:「异构单元之间的门控比它看上去要困难得多,但在解决门控的问题之前还有其他问题需要解决,所以我们会在未来的研究里解决门控的问题」。
仅仅这样写还不够,你还需要在整篇文章中反复表达这个观点,让即使最懒的审稿人也能看到它。
我对论文进行了重大修改,将修改稿再一次提交给了 Distill。这次,他们更加开放一些。Distill 上的 Chris Olah 和 Ludwig Schubert 在论文进入同行评审环节之前为我给出了非常有用的反馈。
如果没有从他们那里得到的经验,我不确定我是否还能被 ICLR 接收。大家可以读一下小说家 McCarthy 关于如何写科学类文章的技巧,里面涵盖了我学到的大部分经验。
最后,我想告诉大家,我和 Alexander 一起花了很长时间对这篇论文进行润色,尤其是在摘要和引言部分,他的帮助非常有价值。
我们将论文提交给了 NeurIPS 2019,但惨遭拒稿。当时我内心十分煎熬。毕竟,我付出了那么多的时间却一无所获。我感觉自己的梦碎了,我再也没有机会追求自己的梦想,不能从事我热爱的机器学习研究了。
让自己的命运掌握在匿名的同行审稿人手中是一件很奇怪的事。
图 6:我收到 NeurIPS 2019 审稿意见的感想。
那么为什么我们会被拒稿呢?我总结的经验教训是:
一些审稿人不相信我们成功地复现了 NALU 的结果(那篇我们进行了改进的论文)。很多审稿人都会问:「为什么原始论文中的结果比你们给出的结果要好很多」?
一些审稿人要求我们在提交的论文中做到 NALU 论文声称可以做到的所有事情(即使我们已经提供了明确的证据来说明 NALU 模型并没有将这些事情做到令人满意的程度)。如果你看过这篇论文,我们没有解决的是除法,以及加法和乘法之间的门控。尽管如此,我们也对其它方面进行了改进。
其实,第二点也可以归结为一些审稿人不相信我们的实验结果和复现。这就是我们在改进别人夸大的实验结果时可能遇到的难题。
审稿人更偏向支持已经发布的研究成果。与批判之前发表过的论文相比(尤其是当这些论文出自 DeepMind 之手),他们更容易对你新提交的论文持批判性态度。
我想澄清的是,DeepMind 在论文「NALU」最后给出的结果并不是假的,它们是可以复现的。但这样的结果对于「外推任务」来说,却并非以最合适的方式去构建的,该任务是主要的目标,它使模型能够比第一次和第二次通读的时候看起来更好(你需要更加仔细地阅读实验结果)。而且,NALU 这篇论文只展示了具有单个种子(seed)的结果,而我们的论文展示的是具有 100 个种子时的结果。关于个话题我们发表了一篇 workshop 论文「Measuring Arithmetic Extrapolation Performance」(论文地址:https://arxiv.org/abs/1910.01888)。
在对 NeurIPS 2019 的审稿意见进行反驳之前,我们已经对论文进行了一些改进。在提交给 ICLR 的版本中,我们补充了更多的证据和实验去支持我们的观点。
我们做了一件非常明智的事!我们把自己完成的 NALU 的实验设置和复现结果发表在NeurlIPS 2019 的 SEDL 研讨会上。我们还将这项工作写在了推特上,发布了 NALU 一作的标签,他回复道:「很棒的工作!有了好的对比基准,我们才能继续改进模型」。这对我们来说很有帮助,我们不必再为实验设置和我们的新模型而争论了。相反,我们可以专注于我们提出的模型。
图 7:要在神经网络上实现数学上的外推十分困难。我们提出了一种新的对比基准,并发现 NALU 十分脆弱。那么我们如何构建可以学习算术方法的神经网络呢?仅仅使用更多的数据并不能做到这一点。
我其实很希望我能告诉你,我们的改进起了很大作用,但事实是,我觉得我们只是比较走运,遇到了一位超棒的审稿人。由于评论是公开的,他在 OpenReview 上对我们工作的评论引起了更广泛的讨论、更深入的批判性思考以及更少的谩骂性评论。
值得一提的是,我们收到了四份审稿意见,我认为,这意味着我们的领域主席对此非常感兴趣。其中一位评审在 NeurIPS 上也审阅过我们的论文(可能是那时的 reviewer #3),同时他在 NeurIPS 上给出的审稿意见也是最具建设性的。
在我们做出这一系列的修改后,这位审稿人的意见从 NeurIPS 的弱拒改为了 ICLR 的弱接收,在 ICLR 的终审意见中又改成了接收,他甚至还对其他审稿人的意见评论道,「这篇文章中体现的贡献进步巨大」。
这审稿人的意见如下:
我理解其它审稿人所关心的问题,本文给出的模型是在其它模型上进行增量式修改得到的。但我并不认为本文的优点仅仅在于模型本身,而是在于全文中体现的而理论和实验分析,从而提升了模型的性能,而且本文的代码也公开了。
这篇文章可读性很强,它尝试针对最近提出的模型做一些工作,它指出了他人提出的模型的缺陷,并给出了详细的分析过程,然后改进了该模型以及对比基准。本文直面了原模型的复现问题,并对其进行了大幅度的改进。这就是为什么我认为这篇论文一定要被接受的原因。
我不确定这里提出的模型是否会在该领域引起巨大的改变,但是这种方法可能会影响并启发其他研究者做出更加透彻的分析。
因此,我将对这篇论文的评分提升到「接收」。
这条审稿意见让我十分开心。那时,我们的论文还有两个弱拒,所以仍然存在被拒稿的可能性。但即使被拒绝,我至少也会觉得我并没有失败,而是审稿程序有缺陷。
最终,我们的论文被 ICLR 接收。我希望我能肯定地说,这篇文章能帮助我找到一份研究工作,但说实话,我并不知道未来会如何。我刚刚看到一封邮件,上面说我需要「2 篇顶会论文(最好是和著名研究者合作),才能被顶级的博士项目录取」,但作为一名独立研究者,这一点我是做不到的。希望只是这所大学有这种要求。
图 9:机器学习研究之路是漫长的。然而,如果你不敢迈出第一步,一切都会看起来不可能。如果你真的想去做,那就付诸努力去寻找其他方法。
前文并没有回答我收到的所有问题,我认为现在的内容还不足够吸引人。所以我在下面针对其它重要问题一一作出解答:
Q:你这些漂亮的图是怎么绘制的?
A:我所有的图都是用 R 语言的 ggplot2 库绘制的,这个代码库给了我很大帮助。我并没有用 R 语言做其它事情,我只是将 CSV 文件从 Python 中导出,将其导入到 R 中,然后使用 R 计算置信区间并画图。
Q:你的工作没有什么用,你就是个笑话。
A:谢谢你,你有想过成为一名审稿人吗?
Q:你花了多长时间?
A:我每周在这篇论文上大约花 48 个小时,有时候达到 100 个小时。但请记住,我也在做一些附带的项目和自由工作。
Q:你的计算资源是从哪里得到的?
A:Alexander 可以为我们提供计算资源,因为他是一名助理研究员。
Q:我的导师要给我一个读博的机会,我是否应该接受?
A:如果你真的想做研究,也许你应该接受。现在竞争很激烈,我认为你应该抓住你能得到的机会。
Q:我现在正在实习,但我感觉什么都学不到,因为我的导师不太负责。
A:你要为自己的信念负责,不要指望你的导师主动来找你。你要庆幸你能得到实习机会,我之前没有得到。可以开始安排与导师的交流,但也要记住,除了导师,你还可以向别人请教。
Q:我是正在读硕士,要怎么为发论文做准备?
A:如果你能找到一位对此持开放态度的导师,那么你可以尝试发表论文。同时,要尝试在学习期间寻找实习工作。大多数实习工作只对学生开放。我曾经得到过实习机会但却去不了,因为我已经毕业了。
Q:我要如何提升自己的编程能力?
A:我多年来坚持写开源代码,这让我有机会受到一些卓越的程序员的指导。
Q:要发一篇 Spotlight 还需要什么?
A:说实话,我想最需要的还是运气。
Q:我看到一些人拿到硕士学位就成为了谷歌的研究员,他们是怎么做到的?
A:确实是这样,这种现象的黄金时期是 2013 年到 2015 年。如果当时你拿到了硕士学位并且足够幸运,你就可以走得很远。
最后,我想再重申一下给其他独立研究者的主要建议。
1. 与他人合作。这个人不一定必须是论文写作方面的专家,只要是能对你的工作提出建设性评论的人就行。因此,在大学里找到一个拥有计算资源的人帮助你,可能是很有必要的。
2. 做最坏的打算,尽最大的努力。只有 20% 的论文会被接收。作为一名独立研究者,你被接收的概率可能还要低于平均水平。不要在被拒绝一次后就气馁!你也可以进行一些附带的项目,这样的话,即使你失败了,也不会觉得自己完全是在浪费时间。
3. 避免成为独立研究者。如果有更好的选择,你就不应该有什么理由成为独立研究者。也许你的硕士生导师对你不上心,但至少你可以和其他博士生交流。如果你成为独立研究者,就失去了非常重要的支持你的人际网络。
图 10:成为一个独立研究者是极其艰难、孤独的。然而,如果你足够幸运,也可能在转角处发现希望。
最后,由于我们有一篇论文被相关研讨会接收了,我确实也参加了 NeurIPS 2019。在会上,我有幸与几位招聘人员、教授、研究者交谈。我感到极为震惊:招聘者的需求、研究人员的意愿和教授所能提供的条件之间存在着巨大的差距。
我想让研究者们知道的是,在过去的两年里,这个学术领域中的供需关系发生了翻天覆地的变化。如今,得到一个读博机会似乎比完成博士学业还要难。
如果你在 2017 年或更早之前拿到了硕士学位,那么被好的博士项目录取还是可以实现的目标。
但如今,你需要在(NeurIPS/ICLR/ICML)等顶会上发表 1-2 篇论文(而且最好是与著名研究者合作)才能够满足入学要求。
我希望研究者、教授、委员会成员以及会议组织者都能够帮助遏制这种迅速蔓延的新精英主义。它只会放大已经对这一行业产生挑战的固有偏见。
雷锋网 AI 科技评论编译。 雷锋网 雷锋网