如何阅读科技论文

译者:哈工大SCIR博士生 赵森栋
译者注:Jason Eisner是美国约翰霍普金斯大学计算机系教授,主要从事自然语言处理和机器学习领域的研究。

多次阅读

首先浏览论文,忽略一切让你费脑筋的东西。只是去了解这篇论文的目的是什么?作者为什么会写这篇论文?对你来说哪些是新东西哪些是老生常谈?可以设定每页需要的时间,或者使用PDF阅读器的滚屏功能,来强迫自己往下看。

假如这篇文章看起来还挺有价值的,那么再回过头来仔细的阅读整篇论文。

建议大家按照S.Keshav写的“three-pass reading”这篇短文中所描述的方法进行实践——在每一遍阅读中应该做什么?

不过这里让我们先略过它,继续往前读。

以写论文的思维模式阅读论文

以写论文的思维模式阅读论文能够使你精力更加集中,而且能够使你参与到这篇论文中。

低级笔记

做笔记最简单的方法是直接在打印好的论文写笔记,对文中的公式、图表和文本的上下文进行回应。这种情况下,论文原件或扫描件可以留作以后参考。(也可不用打印或扫描而在PDF文件上直接做笔记。一个免费的可以替代Acrobat的阅读器是PDF-XChangeViewer,它是windows系统上的一个应用软件,但是也可以通过wine用于linux上)

你可以使用笔记来:

  • 用自己的话重新阐述论文中表达不够清楚的观点。

  • 填补一些缺失的细节,包括假设、代数运算步骤、证明、伪代码

  • 标注数学目标函数的类型

  • 想出一些可以表述作者想法的例子和反驳作者的例子

  • 描绘这篇论文和你所知道的其它方法和工作的联系

  • 对一些没有描述清楚和不合理的地方提出问题

  • 挑战论文的主张或者方法

  • 设想你可以接着这个工作做的后续工作

高级笔记

低级笔记是不够的,还需要做一些关于该论文高级的笔记。你应该尝试提取这篇文章:摘取你感兴趣的东西,和其它论文矛盾的地方,还可以记录基于这篇论文基础上你自己未来工作的问题和想法。记录这些核心信息能够使你在阅读论文的时候有一个目标,而且这些信息以后也可能对你有所帮助。

Michael Mitzenmacher 写到:“要带有创造性地阅读。批判地阅读一篇论文是容易的,因为毁掉一个东西总比构建它要容易。带有创造性的阅读涉及更难的更加积极的思考。哪些是这篇文章中好的想法?还有哪些关于这些想法观点的应用或扩展是作者还没有考虑到的?它们是否可以被进一步的泛化?有哪些可能的改进可以在实践中产生不同的结果?如果你要从这篇文章入手开始研究工作,你接下来要做什么?”

至少,你应该用自己的话重新解释论文中的思想:写一些文字,使得在未来某个时刻当你重新阅读这些文字后能够很快地重构你对这篇文章的理解,而不要把时间浪费在重复对你来说容易的地方上。这些文字包括原始论文的URL,根据需要参考论文的图1,公式(2),小节3.3 等。但是请务必花时间记录下自己在阅读论文过程中来之不易的领悟,例如:

他们没有说这个,但是公式(2)和Pookie (2001)的方法基本一致,除了他们在数据平滑之后加了一个reconfabulation的过程。我对他们的reconfabulator表示惊讶,它和我从Kachu (2004)的工作中得到的预期不符,但是它解决了这个领域中的指数增长问题。为了分析差别,我发现思考下面这个例子比较有用:……

组织你的笔记

我建议当你阅读论文时按照你的阅读时间来对笔记文件进行排序。因为这样有助于你找到记忆模糊的论文或者记起当时你还读了一些什么。你有时也会想要按照作者、标题等检索,所以在每篇论文的笔记开头作一个粗略的引用(还可参见https://www.cs.jhu.edu/~jason/advice/how-to-organize-your-files.html)

如果你不得不在理解一些点上做很多努力,那么你可以通过改进在相关Wikipedia网页上的讨论来和其它人分享这些努力(并且记录下来留作以后参考)。

许多人已经设计了一些软件或者个人系统来标记论文并且追踪笔记。

什么时间什么地点阅读论文

尽早开始。如果你的注意力不够集中,就给自己预留足够的时间,你可以先把论文放下等到你有比较好的阅读情绪时再重新拿起来。这样做比强迫自己必须在某个时间前读完效果要好得多。

一些人会在一天中的某个特定时段阅读起来比较轻松,或许在吃饭的时候,或许在走路的时候,或许在骑健身脚踏车的时候。你是否习惯于在早饭桌上或者浴室里顺手拿起离你最近的东西来读呢?那么就把论文放在那些地方吧。

尝试和朋友一起阅读论文!互相挨着坐,一起看同一篇论文的不同拷贝,并且在段落一级或者句子一级上保持同步。有时大声朗读。你们将使每个人保持前进并相互帮助通过比较难的部分。在阅读的同时也可以讨论。

留出时间

当你开始一个新的领域时,可能需要花费几小时的时间去读透一篇会议论文。没有关系,透彻地理解一篇好的或者基础的论文是值得花费这么多时间的。

我真的没时间!不用担心。不是所有的论文都需要这么长时间。许多想法在不同的论文之间被反复使用,所以你在阅读论文上会变得越来越快。到目前为止,在我比较熟悉的领域,我经常可以用30分钟或者更少的时间阅读一篇论文,因为论文的动机非常熟悉而且我可以看出大部分设置都是标准做法。(毕竟,大多数的论文都要落入现有的框架和准则中。他们用一到两个真正新的想法和一些重要或者不重要的技术细节来扩展已有的工作。)

但是我已经是一个三年级学生。为什么这篇论文还要花费我这么长时间?读的慢一点没有什么丢人的。去吸收一篇我不是真的很了解的论文仍然需要花费我几个小时的时间。(而且,甚至审阅一篇我自己领域的论文也需要几小时的时间,因为我的责任是指出所有的问题和可以改进的机会。75%的会议提交论文被拒绝接受,但是留下的25%的论文中大部分在发表之前还需要改进。)

哪些部分需要重点读

所以你是否真的需要在第二遍阅读时仔细的阅读整篇论文?有时需要,但是并不总是需要。这取决于你阅读这篇文章的目的。

我认为当你学习一个新的领域时,你至少应该把一些论文读透。这意味着要了解每一个句子和每一项标记的涵义,这样你才能真正理解这篇文章中使用到的所有技术。还要理解事情为什么要这么做:默默的问自己一些问题并问答这些问题。

锻炼解读整篇论文的能力——想像你正在批判性地审阅这篇论文并且试图找出任何的错误、马虎的想法和不完整的地方。这将会提高你的批判性思维能力。当你计划、执行并撰写你自己的研究时,你也将用这种批判性的眼光来审视自己。

但是,有时也有一些论文是不值得马上仔细阅读所有细节的。或许这些细节并不是很有趣,或者你只是觉得还没有准备好去理解它们。考虑一篇典型论文的几个主要部分:

动机 你应该很好的理解这个部分,否则阅读这篇论文将毫无意义。但是部分动机可能依赖于你不知道的东西(数学背景或者过去的工作)。如果你不想马上去追踪那些文献,你也可以只是提高一下它们在你的阅读列表中的优先级。

数学和算法 这些部分是一篇论文的技术核心。所以不要形成略读这部分的习惯。(你可以从作者解决问题的方式中学习到很多。)尽管如此,你可以跳过一些技术章节如果:

  • 它看起来只是对一些你已经知道的东西进行解释。在这种情况下,只需要检查文中说的是你期望的内容即可。

  • 它看起来只是令人讨厌的个例解决方法而没有其他人愿意去使用这个解决方法。去完全理解它的唯一理由可能是你想要批评它或者改进它。(即使你跳过这些令人讨厌的细节,还是要理解作者的直觉是什么。并且需要思考如何更优雅的阐述这种直觉。)

  • 现在只要知道有这个方法存在就足够了。这个方法看起来只适合特定场景,所以你可能永远也不会需要它。如果以后你真的需要它可以再回到这篇论文上。但是你仍然应该清楚的指知道这个方法实现了什么。当该方法可用时,也应该努力去了解这个方法用起来有多难,什么东西决定了该方法的运行时间和准确性。然后,确保当你需要这个方法的时候你能记得起它。

实验很多论文通过实验来对所提出的方法进行测试。当你开始一个新领域时,你应该仔细调研通常情况下是如何进行实验的(以及你是否赞同!)。了解论文中用了什么数据集和代码也非常有帮助,因为你以后可能需要用到这些数据集和代码。

但是当你已经学会这些诀窍,你可能不是总这么关心一篇论文的实验。毕竟,有时你读一篇论文的目的只是想用一些新问题和新技术来激发你的创造力。我承认我不太关注实验细节——虽然例子和错误分析确实能够吸引我的注意力,那是因为它们常常太吸引眼球了。

如果你真的非常关心论文的结论(“这个方法真的有效吗?”“我应该使用这个方法吗?”),那么你就应该回过头来仔细检查实验的设计,包括数据的选择。实验对比公平吗?实验能支撑结论吗?真实情况到底是什么样的?在当前的实验方案基础上,结论是否可以泛化?

总之,要理智的进行时间安排。关注那些有被“拿来”价值的东西。如果你无法分辨文章的那些部分是“有趣的”或“重要的”,那么就抓紧去问知道如何分辨的人。如果不知道该问谁,找一些引用了这篇文章的论文(通过Google Scholar)然后看看这些论文是如何评价这篇论文的。

Delip Rao建议:“永远不要读提出X的原始论文。而是读一些后续的关于X的论文,先对X有一个整体的概念,然后再去读X的原始论文。学术圈的其它人往往比原作者更善于将观点和想法表达得更加清晰。”

读什么

  • 具有创造性的网页搜索;

    • 使用不同关键字进行搜索;

    • 让自己站在作者的角度:作者自己会使用什么样的表达方式?

    • 在ACL Anthology, Google Scholar等这些网站上进行搜索;

  • 追踪相关工作

    • 向前追踪:跟踪论文中参考文献中引用的前人工作。

    • 向后跟踪:看看谁还引用了这篇论文(通过Google Scholar交互界面)

  • 是否有人已经给你列出了适合你阅读的论文?

    • 期刊上的综述论文

    • 课程大纲里的推荐阅读列表

    • 各个学校的一些实验室的论文阅读小组(reading group)主页

    • 课程教材的各个章节

    • 在线的教程(Tutorial)

    • 学位论文的“文献综述(literaturereview)”章节

    • 来自朋友或者教授的直接推荐(其它科研机构的也可)

  • 广度优先搜索

    • 在确定哪些是值得读的好论文之前先要阅读大量的摘要(根据需要浏览论文)

    • 一次阅读多篇相关论文也是可以的,各个论文来回跳着看,这样能够充分的看到相关论文之间的相互补充和澄清。

    • 想要获得一个领域研究全景的感觉,可以快速浏览一些最近的相关论坛、会议或者期刊的主题专刊。

  • 当前阅读论文进展比较艰难时,可以转而去阅读一些背景材料

    • 教材或者指导报告

    • 综述文章

    • 前言或者学位论文的文献综述章节

    • 早期的已被大量引用的文章

    • 有时读读Wikipedia也有帮助



  • “哈工大SCIR”公众号

  • 编辑部:郭江,李家琦,徐俊,李忠阳,俞霖霖

  • 本期编辑:徐俊


长按下图并点击 “识别图中二维码”,即可关注哈尔滨工业大学社会计算与信息检索研究中心微信公共号:”哈工大SCIR” 。点击左下角“阅读原文”,即可查看原文。