How to Read a Paper
之前在CSDN上写的,现在转到这边来吧,毕竟之后还是看这个站点看得多一点了应该。
S. Keshav (opens new window) (David R. Cheriton School of Computer Science, University of Waterloo)[现在好像去剑桥了]
# 概述
本文中作者提出了他的三遍读论文的方法(‘three-pass’ approach),下面分别给出每一遍的动作。
# 第一遍
预计耗时5~10分钟
在这一遍中,主要的目的是快速概览,并决定是不是要进行接下来几遍的阅读。
1、仔细读title, abstract 和 introduction
2、读每部分和子部分的标题
3、读最后的结论
4、查看参考文献,标记没有读过的那些(个人认为初期没读过的论文太多时可以酌情标记)
在进行完一遍后,需要回答五个问题(five Cs):
1、Category:这是什么类型的论文?分析已有系统的?表述一个研究的?等等
2、Context:哪些其他文章和这篇文章有关?这篇文章用了什么理论基础去分析问题?
3、Correctness:文章中的猜想看上去是有效(有意义?正确?)的吗?
4、Contributions:文章主要的contribution是什么?
5、Clarity:这篇文章写得怎么样?(感觉应该是说架构或者语言)
通过这些问题,可以大概判断你是否对该文章感兴趣,同时对于非自己研究领域的文章,到这一步也就差不多了,这些可以帮助你在日后可能需要这篇文章时回忆起它。
同时作者还提到,论文写作时可能也需要注意这些方面,因为很多人可能只会粗略的看一遍你的文章,如果你的文章没办法在他们速读第一遍的时候吸引他们,那么你可能会被reject。
# 第二遍
预计耗时1小时
这一遍需要读的较为仔细,但是可以丢弃有关证明细节这些比较耗时的部分。(对于计算机论文,个人喜欢在这一遍的时候不看算法的详细实现,只看大致思想)
除了仔细读内容以外:
1、关注图表,坐标轴是否标记正确?结果是否用误差条显示,从而使结论具有统计学意义? (Are the axes properly labeled? Are results shown with error bars, so that conclusions are statistically significant?)这一步可以帮助你分辨粗制滥造的工作和真正好的工作。
2、记得标记相关的但是你还没读的参考论文,这可以帮你扩展知识面。(又一次提到了,但还是酌情阅读吧…)
在这一遍之后,你应该能抓住整篇文章的内容,并且给其他人总结这篇文章的主旨。这一遍对于你感兴趣的论文来说已经够了,但是对于你专业方向来说还不够。
有可能你在第二遍之后还是不懂这个论文,这可能是因为:
这篇论文的方向对你来说太新了,你不太熟这些术语。
这篇文章的技术你不太懂。
这篇文章用了太多之前论文的引用和未经证实的声明。
或者可能是因为太晚了而你太困了。
这时候你可以:
把论文丢一边吧,然后祈祷你不需要理解它也能在你的人生中获得成功。
或者在你了解背景知识之后再看
或者开始看第三轮。
# 第三遍
预计耗时4~5小时(初学者)或1小时(有经验的)
这一遍的主要目的是模拟重现这篇论文,即把自己当作作者,用一种“我正在写这篇文章”的视角去读这篇文章。
通过基于作者和相同的assumptions去复现这篇工作,去读这篇论文,你可能 不仅会感受到作者这篇文章的创新点, 还会感受到这篇文章的隐藏的不足和隐藏的assumptions。
这一遍的阅读非常关注细节,你需要辨别和质疑每一句里面的每一个assumption,你需要思考你会提出一个什么样的idea。这一遍可以帮助你更细致的了解文中的证明和技术,从而将他们用到你未来的工作。
在这一步之后,你应该能够通过记忆重现整篇论文的结构,同时知道它隐含的假设,遗漏的引用,可能的问题以及优缺点。
# 其他
原文中还给出了怎么做LITERATURE SURVEY的一些小方法。
作者说他用这个方法15年了,这个方法能帮他很好的估计读论文的时间。
总之原文就两面,可以大概看看,觉得有价值的地方就使用,觉得暂时不太适合自己的就调整。