整理 | 蒋宝尚
人工智能顶会论文之争越来越激烈了,CVPR、AAAI、ICLR等各大会议虽然录取率逐年降低,但是投稿论文数量却在逐年增加。
虽说发论文不是衡量一位学者的学术能力的唯一标准,但确是极为重要的标准。一篇好的论文不仅要求主题明确,思路新颖,而且还要求论文写作本身行文流畅,逻辑清晰。
如何写出一篇合格的国际学术论文呢?在论文写作过程,你是否在引文中用到过这样的句子呢:“因为模型A好使,所以用A做某任务”、“因为任务B没有人做,所以我做了”、“之前的人做了什么工作,我做了什么工作,我的好”......
以上问题其实是论文写作中常见的错误逻辑,在顶会审稿人审校这些论文的时候,其实是最反感这种写法。
通过揭露这些常见错误,来自中国人民大学赵鑫老师在3月17日「智源Live:论文写作专题报告会」中专门做了题为《如何以初学者角度写好一篇国际(顶级)学术论文》分享。
赵鑫,人民大学信息学院副教授 、博士生导师。博士师从北京大学李晓明教授,专注于研究面向文本内容的社交用户话题兴趣建模,曾获得2011年谷歌博士奖研金(该年大陆高校共4人获奖)和2012年微软亚洲博士奖研金(该年亚太高校共10人获奖)。近五年内在国内外著名学术期刊与会议上以第一作者或者第二作者身份发表论文60余篇,其中包括信息检索领域顶级学术期刊ACM TOIS和学术会议SIGIR、数据挖掘领域顶级学术期刊IEEE TKDE和学术会议SIGKDD、自然语言处理顶级会议ACL和EMNLP。所发表的学术论文取得了一定的关注度,据Google Scholar统计,已发表论文共计被引用2000余次,其中以第一作者发表的《Comparing Twitter and Traditional Media Using Topic Models》被引用1000余次。担任多个重要的国际会议或者期刊评审,入选第二届CCF青年人才发展计划。曾获得CIKM 2017最佳短文候选以及AIRS 2017最佳论文奖。目前担任计算机系首届图灵实验班班主任。
在报告中,赵老师通过大量的事例,结合报告人的经验,讲述论文写作过程中注意事项和常用步骤与方法,主要涉及的内容包括引文、模型、实验以及参考文献的写作方法,另外还介绍了初学者应该避免发生的写作问题,最后也介绍了一些国际期刊的投稿经验。
下面AI科技评论对赵老师的演讲进行了有删减的整理,希望能助各位读者顶会之路一臂之力~
回放链接:
http://www.mooc.ai/course/778
赵鑫:
今天用的两个例子虽说是信息检索、数据挖掘、自然语言处理领域的,但方法比较通用。其实回头看18年的论文,有些地方也没有特别好,一些常见错误,我自己之前也会犯。
比如用到的两个事例的论文,我都觉得有些地方我好像有语病。语病可能不是写作的一个最关键,重要的是如何写出来,如何组织。
第 1 篇是发表在KDD19上面,目的是为用户规划路线,即生成个性化的路线。第2篇是基于知识属性的序列化推荐算法,基本思路是使用记忆网络扩展数据存储,知识存于记忆网络,隐状态做结构化解码。
下面主要是用第1篇论文去讲,这次讲解希望给大家提供一个八股文,可能比较功利,但是中间会传递给大家如何去写的一些价值点。
1 引文是论文的“门面”
引文非常关键,是你整个论文的门面,摘要基本上是没啥大用,只要不是写的太差,审稿人不会因为摘要拒掉论文,但是引文写不好,却100%会被拒掉。
原因是审稿人一般不会去看摘要,他们首先要看的是引文。一般来说,引文包括的内容有:要交代研究的任务,阐述现状以及总结不足,提出新的思路,然后给出的新方案的设计,还有总结贡献以及实验结论。
交代研究任务是你必须让读者知道你要做的事情,关键点在于让你室友或有计算机理论的人能够看懂。
那么阐述研究现状并总结不足部分需要注意的是和论文中的相关工作部分有很大的不同,这部分不需要说清楚一共有多少相关工作,只需写明目前整体的研究到哪了、当前的挑战。如果没有挑战,而且不难,如果你只是列出了10个人工作,只说清楚了A做了什么,B做了什么,那么这一点都不会帮你加分。
解决新思路部分要引出论文的解决思路,或者idea,然后再较为详细的介绍一下idea的实现。不需要特别详细,只需要从方案上介绍idea是什么样子。
这KDD的这篇论文中,即个性化的路线推荐,我就首先说明了要做的是:给定路网,生成用户特定的路线的建议。前面我也做了铺垫:这个任务是重要的。一般来说也说任务也说重要,这还不够,然后还要说清楚挑战是什么?
这篇论文中,我提到在大图和复杂路网上“找路”是很难,然后另外又补充了一些,比如说需要把丰富的背景信息给考虑进去。
所以,一开始你要带入,让大家快速的熟悉你的任务。
其次是介绍研究现状并总结不足,这部分在于给读者一些研究背景的铺垫,说清楚现有的研究状态,以及他们所用方法的优缺点。
在这篇论文中,我提到当前的方法主要分为两类,第1类就是传统启发式搜索,比如A*算法,其优点是在大图上特别的快,搜索也非常好。第2类就是偏机器学习或者是deep learning,它的好处是非常灵活。
分类讨论之后,我话锋一转介绍就我的思路,即能否把这些方法的优点结合起来,然后就有了我这篇KDD 19的论文。
在Idea设计与实现上,大家可能都不会有太大的问题,但要注意不要写的太细,能给你的同行评审员看懂就可以了,让他们清楚你的模型大概是个什么样子即可。
最后在引文部分要总结一下优势,说清楚整个论文的整个最新颖的点是在哪里?另外,不要说太多贡献,说太多会显得论文很散,一篇论文讲明一个贡献就够了。不建议写很长,“贡献可以列为下面三点,实验还能证明这个方法的有效性”,这种文字全都可以删掉。
上面是一些初学者可能犯到的错误,我当年初学的时候也犯过。“因为模型A好使,所以拿A去做某任务”,这个点在DeepLearning刚出来的一两年,我审论文的时候发现50%的引文都是这么写的,每当看到的时候,我都想把它拒绝掉。
“这个任务没人做,所以我做了”,这一点也很霸道,毕竟世上没人做过的事情有很多。
“之前的人做了什么工作,我做了什么工作,我的好”,这种写作也非常霸道,没有给人一丁点儿代入感,会让reviewer非常不爽~
“夸大自己模型的贡献、忽略别人的工作”极有可能导致论文被拒,千万不能夸大!
其实有些同学也问:我们是不是在制造一些论文的垃圾?靠一些写作去把东西包装的冠冕堂皇。其实不是这样,科研过程要有一个推进,你现在可能觉得这个技术不怎么样,但是你可能需要持续的去发力。那么你要发力的一种形式,就是论文,当然其他形式也有。
如果说你不想让你的论文成为垃圾,一定要把你的贡献说得很清楚。
其中一个问题就是包装一定要适度,不要过度包装,过度包装是对学术的很大的一个不尊重。有些度可能你自己都没有注意到,例如随意给出一些非常主观的意见,连个引用都不加。还有随意使用一些特别普遍的词汇,我审论文基本上都会遇到,一整就是knowledge,context、Information。在用这三个词的时候,问问自己知道是什么意思吗?能不能用一句话去定义这三个词?所以,你在用这些词的时候吗,基本上是模糊的状态
另一个很容易犯的错误是随意夸大自己的模型,所以同学在写的时候一定检查一下副词、形容词,多用一些限定词,比如说:在什么样的任务,加上这个东西,效果会好一些。
引文的作用是吸引大家,最重要的是做一些铺垫,必须是要解释清楚主要术语。比如说有的同学在做knowledge-aware,但是从头到尾都没有解释过什么叫knowledge-aware,这就非常有问题。
然后一定要解释清楚模型的主要的设计、思路、技术路线。但也不能太细,一些调参细节就不用介绍了。
最重要的是不要把方法说的云里雾里,要让你的同行室友能够看懂模型。所以,最好的方法是把你室友拉过来,然后让他看一段英文,你问他能不能看懂,他如果看不懂,你赶快把那自己那段话重新写一下。
最后还要强调一点,突出主要的创新之处,需要写出一句到两句非常中肯,学术的话来总结自己的贡献、创新点。这是非常关键的,我发现,包括我自己组里的同学有时候也说不清楚自己的idea,但这个比较绕,这个只能需要大家自己去把握。
然后我说一些八股文的写作方法,可能对初学者有帮助,第1句话写什么?写你的任务介绍写意义;第2句话写什么?概述,现在研究状况以及主要的问题;第3句写什么呢?解决这些问题的研究挑战;第4句写什么?当前这个方法的主要出发点和解决思路;第5句话写什么呢?一些当前方法的主要的技术方案,最后写总结和强调贡献。
写完这6句话之后,你在做什么事情就能很清楚了,如果能把这6句话写好,其实你基本上已经把引文给写好了。
还有一些过渡词,特别建议大家把每一个词是什么意义,自己去查一下。因为有的时候我也容易搞乱。
写作是一门讲故事的艺术,要让别人听懂,这是也是义务,这并不是说包装。如果你的东西你别人都看不懂,听不懂,你的东西,再好有什么用呢?因为你没有办法给别人带来收益。
引文的第一个状态让读过的人知道你在做什么。第二个状态就是让人觉得你的工作是重要的。第三点是说,让别人觉得你的思路就是和别人不一样,如果能给人耳目一新的感觉,那么论文很可能被接收。
最后一境界是让人读起来如沐春风,这个状态我现在也没有达到。所以在引文里头,一定要把握节奏,节奏感是达到状态的灵魂。
总体来说,引文写作步骤是:首先要交代背景,让人进入你的工作,紧接着铺垫包袱,说清楚你要做的事,你要解决的挑战是什么。然后最后要转回来,带入细节的解析,让读者知道你是怎么做的。
2 相关工作要尽可能写的全面
先关工作的写法是首先必须覆盖所有的相关工作,这点其实很重要,在于你平时的积累。一定要分类整理,不要简单的罗列“A做了什么,B做了什么”,重在总结。除此之外还要突出相关,强调不同。
在写相关工作的时候,东西一定会很多,所以归类整理的时候,要配上一些排版的style,该加粗的加粗,该黑体的黑体,要让评审或者其他读者读起来很舒适。
在相关工作中还有一个高水平的写是给某一类方法起简称,比如用开头字母代替。
上面一些错误也要坚决避免掉,在介绍相关工作的时候,一定要写清楚他们与你之间的相关联系,还有英语时态问题,可以用过去时,也可以用现在完成时,但是别混着来,混着来会给人非常不专业的感觉。
引文写作错误非常常见,我留意了这五六年的审稿情况,一直存在这种错误,大家可以看看上面三种写法都是错误的。什么能够充当主语,什么能够在人名处加括号,要完全弄清楚。
3 定义介绍要清晰
在介绍术语的时候,其实就是把概念带入进去,特别建议所用的符号符合人的直觉,可以用英文单词的首字母,因为首字母容易联想。另外,符号和意义不要差距太远。所以总结起来有三点:好看、好记、成体系。如何让读者快速记住你论文中的十几种符号?建议大家去看看《花书》,然后参考一下标量、矩阵、向量的表示方法。
还有要避免一个字母代表多个不同的意义,比如有时候代表索引,有时候又代表上下标,有时候我也犯了这样的问题,所以建议大家把论文打印出来之后,一定要反复检查:是不是有一个符号。另外,频繁使用一些单词的缩写,频繁使用上下角标都存在的符号都会让人对你的论文抓狂。
4 模型写作逻辑很重要
模型的部分在论文中占比非常多,记住逻辑很重要,常见的方式有这么几种:总分式、总基础版本、增强版本。总分在于表明模型有若干个部分,分别介绍每个部分,这样主题比较清楚。建议大家把小标题都好好检查一下,小标题如果连起来能够把模型说清楚,是很重要的关键因素。
最后要收收尾的话,要写一些模型分析和模型训练、模型学习的方法。比如分析一下,总结一下之前方法怎么做的,然后和传统方法比起来又有不同的地方。
时间复杂度、完整的算法流程、参数汇总、模型可拓展的地方在最后都可以在模型最后讨论。如果有一些东西,你觉得可能是别人争论的地方,可扩展加上去,说明模型有哪些地方没做好,怎么做就会把这个事情做好。
5 实验介绍要用对比
实验部分的一般流程包括介绍数据集合、评测指标、评测流程,还有主干的实验分析,还有模型的细致分析,还有定性的分析。
在数据集合部分要讲清楚一点:论文中图表的数据是怎么来的?这个很关键,其他步骤可以忽略性或者有选择性去介绍,如果对当前工作不太重要,就别介绍了。
还有一个注意,就是说数字不要居中!因为当你有多个数据集的时候,居中不好判断数据集大小,可以靠右对齐,靠右对齐的好处是容易看出数据集的大小。当然,也可以用逗号表示法,这样非常容易帮助大家去认识数据有多少。
在评测指标和评测流程部分,注意新任务的评审指标要完全给出,并且要给得非常详细,那老任务你可以沿用,可以压缩。
对比方法是介绍baseline,可以比较简略,但是重要的参数要给出来。最后要加一些总结,让读者有一个整体的了解。
也可以用一个表,清晰的表达出哪些方法是新的,哪些方法是general。活用图表,研究人一定要反复要学的,包括以后做PPT,其实写硕士毕业论文也都是有用的。
主干实验如何写?主干实验一定要特别清楚做实验的目的,千万不要流水账。要强调做实验的目的是什么?做实验的目的就是要突出方法好,这点是非常重要。
常见的错误写法是有五种方法,A比B好,B比C好,虽然这能支撑一个句子的长度,但是效果其实并不会很好,因为大家都是知道你所用一些方法的好处、
如果你的模型达不到原始效果,也要好好分析一下,这点在深度学习时代特别常见。如果模型baseline正常,描述不描述问题都不大。但是如果达不到原始论文效果,要解释一下,不然评审会怀疑是不是没调好参数?是不是用的方法不对?
最后一定要加上统计性显著检验,确保提升是有效的,如果不加可能是压死论文的最后一根稻草,因为我有几次是这个原因被喷的。
在写主干实验的时候,最后要强调“我的方法”好,要说清楚我的方法好在哪里,不要笼统的说好10%、20%。这一步也是为后面写实验做铺垫。
所以,前面要有铺垫,比如写清楚“我猜测是两部分造成的”,然后下面才要做这个实验。一般来说,主实验完了,还有一个细致性的分析实验,要检查贡献的来源,要调一些参数等等。篇幅不要太长,写清楚就足够了。
对于我自己来说,一般用半行或者一行就能介绍清楚一个变种的名字,学会缩写,给出一个整体的评论。
在用定性的例子的时候,要善用图表,解释方法为什么会有效,你可能在论文的前面推到了一堆公式来表明你的模式是有效的,但是让评审员最快速的理解方法的有用性,还是画图。
也要说清楚模型的哪个方面好,模型不可能每个方面都好,要挑选一些例子来辅助解释。值得注意的是,模型所有的写作都是在做呼应,因为你引文地方埋下了伏笔,要用实验部分来验证伏笔。
第一处呼应引文的地方是实验结果,而最强的呼应处是例子,而图就是定性的例子,图的关键是能不能呼应论文的motivation,图画好了会让评审的老师非常舒服~
所以,总结一下就是:定性部分不要探索式的描写,要有核心驱动进行描写,也要用好图的标题,标题一般要介绍各种符号、颜色以及整体场景的设置,不要让文本描述和图的标题大部分一样,要让双方各有分工。
怎么写定性例子的介绍?定性的例子比实验的介绍难写多了,实验写作基本上有套路,而定性写作更加考验科研员的功底。
一段清楚的描述一般有以下几条:首先写清楚目的,接着写清楚当前例子的整体故事,然后分解进关键部分,最后一句话带过,总结发现,然后说一句我的模型好。
6 摘要、结论最后写
摘要如何写呢?对我个人来说,这部分是花费时间最少的,在这无需太多的细节,不需要代入,讲清楚任务、方法和创新点就可以了。建议摘要最后写,已经在论文成型之后,一些句子已经成熟,功利的、暴力的做法是直接拿过来用。
在总结部分,切记英文语法,可以用现在完成时,过去时,但不能混着用。这部分不用再打伏笔,总结一下具体任务,解决方案,实验结果,未来扩展即可。
最后,介绍一下我改写论文的流程,我一般先写相关工作,用半天时间来梳理,如果相关工作写不清,很难说清楚论文的贡献在哪的。
然后改问题定义、模型。对于作为老师的我来说,必须确保已经了解模型的所有的细节,才能给学生去改论文。
最后全文定稿之后才开始写摘要、结论,我个人给这两个部分的时间不会超过半个小时。
我推荐把文件按照section方式切割,使用 Input命令合并,共享一个main. tex果有多人进行操作,不同人改不同的文件。一定要快速出一版初稿,然后打印出来,多次重写。我个人对图非常挑剔了。通常一个图我会让学生修改几十遍。图相当于论文的门面,图画不好就不要投论文了。
强调大段的文字摆上来没有切割,没有分段,特别是双栏布局的,我有的时候会发现有一些论文,一个单栏,从头到尾没有出现一个黑体字,没有出现一个分段。然后一定再读一读各部分段落的题目。
小题目之间的关联性也应该要强,如果关联性不强要重新写,如果重写之后关联性还不强,那就是论文逻辑的事情了。
另外需要注意是别刻意的删减,但是,也要避免无意义的过程。不是什么的句子都要在后面加上which。另外避免英语词汇习惯的错误用法,学会灵活运用英文动词☟
OMT 论文要多改、多写
在讲座的最后,赵老师还给出了一些写论文、排版的建议,针对学习方法的稳、快、廉价给出的建议如上☝
期刊写作建议☝
另外,赵老师针对几个普遍的问题进行了回答。
问:先写中文翻译成英文,还是直接写成英文?
答:可以先写一个中文的六句话(就是引文部分的那六句话),因为你中文的六句话已经确保写清楚了,然后再翻译可能会好一些。
问:哪些建议可以用于硕士毕业论文。
答:我觉得全部都可以,起码画图、做表这一点是通用的。
问:先写内容还是先排版?
答:提前一定要做好模板,比如说图应该怎么放?表示怎么放?然后比如说哪个章节应该怎么写......
问:画图什么软件更转行业一些
答:我最近在用PPT画图。
问:怎么增强理论基础呢?
答:先系统地看几本书,然后做一些笔记,关键公式要会推导。
阅读原文,直达“ICLR 2020"专题