如何收集论文(计算机科学专业)
https://ying-zhang.cn/misc/2016-we-love-paper/
“论文”是每个研究生头上的“阴云”。无论是没有课题或想法,都要收集研究方向相关的多篇论文,来了解背景和最新进展。本文介绍计算机科学专业如何收集论文。
TL;DR
从CCF推荐目录中感兴趣的A类会议及期刊中找论文。
按理说,开篇应该先要强调一下论文对于科研的重要性的。还是直接把前辈的经验拿来吧:
- 周志华老师关于做研究与写论文的ppt
- 凌晓峰和杨强两位老师的《学术研究:你的成功之道》,这本书的英文原版是 Crafting Your Research Future: A Guide to Successful Master’s and Ph.D. Degrees in Science & Engineering
不要忘记论文的“初心”:论文不是科研的原因,而是结果(的一部分)。所谓“工欲善其事,必先利其器”,除了科研问题本身,形成一套有效的科研方法也是重要的。要有意识地探索和总结适合自己的科研方法。
论文发表过程
/ 期刊,特辑/专刊 → 多轮审稿 → 上线 \ 想法 -> 编程、实验、写论文、投稿 < ->出版,检索 \ 会议 → 审稿 → 参会报告 /
论文作者一般是来自高校的在读研究生和年轻教师,还有一些是来自公司的研究人员。显然,论文的“出身”对质量的影响很大。
期刊是传统的论文发表渠道;期刊每季度、双月或者月度出版一期(Issues);把一年内的各期集结为一卷(Volume)。可以随时投稿给期刊,没有截稿日(Deadline)的压力。投稿后,要经同行评审(Peer Review)返回修改意见,针对审稿人的建议大修,小修(Major,Minor Revision),经两三轮修改才能被最终录用,耗时一年多是常见的。如果有的期刊安排了专刊(Special Issue)计划,会公布对应的截稿日,审稿的进度会稍快些。
期刊分为Transaction, Journal 和 Magazine。其实Magazine接近科普水平了,其中很少发表新的研究工作,更多是对当前进展的简介和综述,也会转发一些已经发表过的重要论文。新手先浏览一下相关的Magazine,建立基本概念还是不错的。
对快速发展的计算机科学(CS)专业来说,期刊的节奏比较慢,而且期刊版面有限,每期只能发布几篇到十几篇,通常发表偏理论或者综述类论文。CS的论文主要发表在学术会议上,这跟传统学科很不一样。
大部分会议每年举办一届,时间上是比较固定的月份,比如寒暑假期间。会议网站上会提前发布下一届的征稿启事(Call for Paper, CFP)和截稿日。投稿后,经过两三个月,就完成了审稿,通知作者是否录用。近几年,不少会议还增加了一轮作者应辩(Rebuttal)的环节。被录用的论文按审稿意见修改后提交最终版(Camera Ready)。最后,作者要现场参会,介绍自己的论文(Presentation)。
会议录用的论文会集结出版(Proceedings)。有的会议还会推荐若干优秀论文到合作的期刊,扩展后作为期刊论文发表。会议分为Symposium, Conference 和 Workshop。一般来说Workshop会与同领域某个更知名的Symposium/Conference一同举办,参会规模和论文质量与主会议都有所差别,有的Workshop甚至搞了几届后就不再继续了。
CS论文数据库
ACM, IEEE Computer等
会议和期刊的网站分散各处,不方便收集和检索论文,于是就有了综合的论文数据库(Digital Library,DL)。常用的CS论文数据库见下表。这些 DL 的机构与期刊出版社或者会议主办方合作,有的DL机构本身就是期刊出版社或会议主办方。
注意区分DL和机构的网站。下载论文要去DL。
机构 | Digital Library (DL) | ||
---|---|---|---|
Association for Computing Machinery, ACM | www.acm.org | ACM Digital Library | dl.acm.org |
IEEE Computer Society | www.computer.org | IEEE Xplore | ieeexplore.ieee.org |
Elsevier | www.elsevier.com | Elsevier ScienceDirect | www.sciencedirect.com |
Springer | www.springer.com | Springer Link | link.springer.com |
Wiley | www.wiley.com | Wiley Online Lib | onlinelibrary.wiley.com |
ACM 和 IEEE Computer Society(IEEE 计算机学会;IEEE还有电气、电子、通信等多个学会) 的网址后缀是 .org。这两个机构是CS领域最重要的学术组织。很多CS学术会议都是由它们组织的(此外还有下面介绍的 USENIX)。Elsevier,Springer和Wiley的网址后缀是 .com。它们是学术出版商,以出版期刊为主,除了CS,还有其它多个学科。上面这几个数据库是主要的论文全文来源。它们各自收录的会议和期刊基本没有重叠,从它们的数据库下载的论文也都有各自的排版样式。
ACM作为最“正统”的计算机学术组织,它的DL除了收录ACM组织的会议和期刊全文之外,还会索引其它几家数据库的 元数据,通过DOI链接跳转到其它几家数据库的全文页面。
IEEE出版的一些论文在 computer.org (实际是CSDL: www.computer.org/csdl/)和 Xplore 都可能搜到,这两个数据库是 分别 收费的,能在 Xplore 下载全文的不一定能在 computer.org 下载。
ACM SIGs
ACM有多个针对CS各分领域的组织,称为Special Interest Group,SIG。目前有三十多个ACM SIGs(或参考SIGs ACM DL),如
- 体系结构方向的SIGARCH、SIGHPC、SIGMETRICS、SIGMICRO、SIGMOBILE,
- 网络方向的SIGCOMM,
- 数据库方向的SIGMOD,
- 系统方向的SIGOPS,
- 软件工程方向的SIGPLAN、SIGSOFT
这些SIGs除了组织一系列的学术会议,还会评选本方向的一些奖项,如
- SIGSOFT 杰出论文,SIGSOFT 优秀博士论文
- SIGPLAN Awards
- SIGOPS Hall of Fame
- Edsger W. Dijkstra Prize in Distributed Computing,来自PODC等多个分布计算会议/期刊
- 部分会议的最佳论文列表,
- USENIX各会议最佳论文。
ACM DL 相关链接
ACM的综合杂志
- Communications of the ACM, CACM, in ACM DL, in dblp (CCF曾经选译部分CACM文章,出版为CACM中国版,但2016年之后没有继续下去)
- Queue 也值得一看,有一些文章会先发表在Queue,之后又发表在CACM
IEEE Computer 相关链接
USENIX
要是图书馆不差钱,把所有论文数据库都买来,那么电子资源应该很全了吧?然而,还少了一个重要的数据库:USENIX —— 它是免费的。USENIX实在是个良心组织,最初称为Unix User Group。它组织了OSDI 、ATC、FAST、NSDI等会议,不但学术水平很高,贴近工业界,而且免费提供全文,还提供一些论文作者在会议上的演讲视频及ppt。
USENIX 相关链接
- 所有会议,其中包括ATC,FAST,NSDI,OSDI等;
- 按召开时间列出的会议列表
arXiv
arXiv(archive的简写),是由康乃尔大学维护的,免费的多学科论文预出版(preprint)数据库。所谓预出版,是指论文可能还没有经过同行评审,文责自负。有的学科也可能会先把文章放到 arXiv 来占位子。
dblp
dblp.org ,或dblp.uni-trier.de或dblp.dagstuhl.de, 是专注于CS学科的文献元数据索引数据库,优势是收集得相当完整,用来初步筛选论文非常方便,链接也很有规律,对重名作者处理得很好,但只能搜索标题或作者等元数据(有全文链接)。
dblp 列出了关于CS论文的一些统计数据:
另外,ACM DL也有一个类似的统计。
而且dblp整站的数据可以下载为一个xml文件,以供进一步挖掘。
DOI
在查找或引用论文时经常会遇到DOI (Digital Object Identifier),wikipedia介绍DOI“是一套识别数字资源的机制,涵括的对象有视频、报告或书籍等等。它既有一套为资源命名的机制,也有一套将识别号解析为具体地址的协议”。
著名的 SCI-HUB,可以通过DOI免费获得很多全文。
EI和SCI
分别搜索上面的数据库还是有点麻烦,于是就有了一些聚合数据库,又称为索引。想必很多同学早就听说过EI和SCI:
- EI: Engineering Index https://www.engineeringvillage.com
- SCI: Science Citation Index https://apps.webofknowledge.com
只看它们的 URL, 似乎跟名字没啥关系。它们的 Web 界面体验也一般;而且它们不只收录CS的文献,还包括很多其它学科,搜索结果不怎么准确,往往返回不相关的内容。
其实通常是在已知文章标题的情况下检索是不是被这两个数据库收录了,而不是直接搜索/收集文章。
其它
从Google Scholar搜索全文时可能会跳转到下面这几个网站(学术社交网络),因为它们会保存一些别人分享的全文。
- Semantic Scholar https://www.semanticscholar.org
- CiteSeerX https://citeseerx.ist.psu.edu
- ResearchGate https://www.researchgate.net
CCF目录
EI和SCI只是两个论文数据库,但能够发表被EI和SCI收录的文章变成了能够毕业,能否获得奖学金,能否获得基金的指标。由于时代的限制,EI和SCI被赋予了不相称的地位和意义,而且短期看还是如此。更 “不幸” 的是,对于CS的学生,还有一个CCF目录)摆在面前。其实并非是不幸,而是十分幸运,因为CCF目录不像是一个紧箍咒,而更像是一个入门指南。
中国计算机学会 CCF是国内的类似于ACM的计算机学术组织。也许某位同学的导师就是CCF会员。相比EI和SCI收录的成百上千的会议和期刊,CCF维护的目录显然精简得多。考虑到对EI和SCI指标要求的实际情况,目录选取的大多是被EI或SCI收录的,具体划分为10个子方向,并区分出A,B,C三个等级。A,B类的会议和期刊的文章学术质量较高。这个质量不是简单通过所谓影响因子等简单的数据来评价的,而是综合了多种因素,国际上也获得比较广泛认可的。比如,翻一下《现代操作系统》这本经典教材的参考文献,会发现其中引用了不少SOSP,OSDI等CCF A类会议或期刊的文献。
二八定律也符合学术界。事实是大部分的文章都不值得细读。这时就显现出CCF评级的价值了。仅从CCF-A类搜集文献就足够了。
上面提到ACM有三十多个SIGs,而CCF则只划分了10个子方向,不同的视角有不同的划分结果。ACM有更详细的分类系统CCS,以及有重叠的SIGs大类划分,还有wikipedia上的一个划分。
Google Scholar(谷歌学术)
Google Scholar非常强大又简单易用。虽然它不只收录CS专业的文献,但很容易搜索到准确的结果。我习惯先在谷歌学术上搜索,如果搜不到就改用高级搜索,实在不行再去ACM DL、IEEE Xplore或者Google网页搜索。
创建快讯
可以在Google Scholar创建某个关键词或某篇文章的快讯,获取最新搜索结果的Email通知。 接收快讯不需要注册谷歌账号,任何有效的 Email 地址皆可。如果注册了谷歌学术账号,还可以获得个性化推荐的文章。
谷歌学术有 3 种快讯:
- 关键词快讯:如果在谷歌学术搜索完整的文章标题,只有一条匹配结果的话,谷歌会很自信地不在页面左侧显示 “创建快讯” 的入口链接;有多条结果时,才会显示。这是关键词快讯,是从文章全文中检索的,跟普通的谷歌网页搜索快讯差不多,查询结果可能有不少无关项,准确度较差,不建议使用;
- 引用快讯:点击文章项的 “被引用次数:xx” 链接,在新的引用项列表页,左侧同样有 “创建快讯” 链接,这时创建的是引用该文章的快讯,相当于科研人员人工添加的项,是最准确的,推荐使用;不足之处是,对比较新的文章,还没有被引用过的话,就没有引用页,也就无法获取这个 “创建快讯” 入口链接… 解决办法可 参考这个 StackExchange 问题 ;
- 作者快讯:如果某位作者在谷歌学术创建了个人主页,可以点击其主页上的 “关注” 按钮,获取其新文章,该作者文章的新引用,相关研究的新文章 的快讯,建议前 2 个选项即可。
必应学术www.bing.com/academic、百度学术 xueshu.baidu.com等跟谷歌学术比差距还很大啊!
如果所在的小组没有什么积累,暂时没有好的研究问题,不妨去浏览一下感兴趣的A类会议近5年的文章列表。总会有几篇比其它文章更有意思,这就把范围缩小一些了。
- 从这几篇文章里提炼出关键词,去 en.wikipedia.org 上搜索一下这个关键词;
- 从文章中的“相关工作”扩展开,体验一下这个细分领域涉及的问题;
- 找出来这个细分领域里发文章比较多的作者和研究小组(实验室),去作者和小组的主页看看。
这个前期工作其实花不了一周的时间。粗览一遍收集的这些相关论文,筛选出几篇值得详读的。
我们不妨通过相关论文的数量来定义一个细分的领域。比如武断地说,100篇。这个具体的数量不是关键。一个领域能发的文章必定是有限的。太多的话说明问题太复杂,还要细分;太少的话,如果不是幸运地发现了新的方向,就是问题太小了。而这些相关文章中,又只有几篇是开创性的,才值得详读。
如果读完核心的几篇文章后还是没有新的想法,那就只好重复上面的过程,重新寻找另外感兴趣的领域了。
PS: 论文致谢中的 基金号 是不错的关键词!
综述文章,一般会介绍收集相关论文的过程,方法大都类似,即所谓 Systematic Literature Review (SLR) (参考:Guidelines for performing Systematic Literature Reviews in Software Engineering),可以随便找一篇当作论文搜集方法的教程来看。
其实 SLR 方法是完全新手才用的文献收集方法,或者是为了发综述文章看起来工作量大/方法严谨。对某个主题稍有了解后,应该可以识别出来相关的会议、期刊和研究组,也就是发现了所谓的“圈子”了。效率高一点的就是从相关顶级会议/期刊近几年的文章列表中筛选,或者去作者/小组主页筛选,当然,还有订阅谷歌学术快讯。
杂项链接
国内三个学报
国内论文数据库
如何读/写论文
- Efficient Reading of Papers in Science and Technology (pdf)
- How to Read a Paper (pdf)
- How to Read a Technical Paper
- How I Read Research Paper, Deep Reading
- 《学术研究 - 你的成功之道》第3章
- How to Write a Great Research Paper - Simon Peyton Jones(SPJ) - B站视频, YouTube 原版
- Advice on Writing Research Papers - Tao Xie - PDF
- Advice on Getting a Start into Research
辅助工具
知乎上的几个相关问题
PS:
- A Survival Guide to a PhD
- 研磨记 - 豆瓣阅读(原文PhD Grind,似乎已被作者删除。还能找到转载。)
- Rob Pike: Systems Software Research is Irrelevant, 2000
- Steven Hand: Doing a Systems PhD, EuroDW11
- Peter Druschel: How to Do Systems Research, EuroDW18
2023-05-10:更新部分文字。
2021-05-24:更新链接,部分文字和插图。