这是 CCF 专门制定的学生领航计划中的一个系列活动,希望对于刚入门或者刚刚准备写学术论文的同学有所帮助和启发。
本次报告面向刚刚开始从事科学研究或者将要从事科学研究的低年级研究生和高年级本科生,提供一次规范且系统的“科研与英文论文写作”入门学习,本次活动的亮点和意义主要包括以下几方面:(1)从内容组织上看,本次报告并非笼统的介绍论文写作方法论,而是以一系列鲜活的论文实例对比一篇论文高水平论文和一篇普通论文的各组成部分(标题、摘要、引言、相关工作、研究方法、实验分析、总结与展望、参考文献等),详细分析他们在写作逻辑、英文规范、图表等各方面的差别,并总结形成论文各部分的写作可规范建议,为刚刚开始英文写作的学生提供具有实操参考价值的写作范例;(2)从讲者讲述方式看,讲者在报告中贯穿了本人从学生走到科研道路上的经验、教训和心路历程,让学生对高水平学术论文的写作不再停留于“表面套路和繁荣”,而是通过规范的写作思维和方法深入理解科学问题、清晰展现科研成果,形成一套自身可不断迭代完善的科研方法,同时严格遵守学术道德。
讲者简介:于静,中国科学院信息工程研究所副研究员,CCF YOCSEF总部AC委员,CCF多媒体技术专业委员会委员。于静致力于计算机视觉领域研究,尤其关注计算机视觉-自然语言处理相结合的跨模态智能领域。在TIP, TMM, PR等国际期刊和ICML, CVPR, AAAI, ACM MM, IJCAI, WWW等国际会议发表学术论文40余篇,亦担任TMM, PR, CVPR, ICCV, AAAI, IJCAI等学术期刊和会议审稿人。主持和参与国家自然科学基金、国家重点研发计划项目、中科院战略性先导科技专项项目等各类国家级/省部级科研课题10余项,面向国家网络安全需求提供跨模态分析技术和解决方案。
个人主页:https://mmlab-iie.github.io/
B站:于老师的日常
报告题目:《英文学术论文写作基础》
报告摘要:本报告首先介绍学术研究与学术论文写作的关系,引出刚刚开始从事科学研究的低年级研究生和高年级本科生在英文学术论文写作中常见的问题及原因。报告重点以一些具体论文实例介绍高水平英文学术论文的科学思维、写作规范和修改过程,详细剖析一篇高水平论文在标题、摘要、引言、相关工作、研究方法、实验分析、总结与展望、参考文献等各部分的写作思路、相互关系、常见问题及改进方法,分享论文写作和论文修改的关键时间节点和建议,以及我本人从学生走到科研道路上的经验、教训和心路历程,希望对同学们有所启发和鼓励。
总览
研究报告主要分为 6 个方面:
此次第一期主要重点讲前两部分,从价值观和一些方法论上面去给大家做基础性的介绍,内容包括:
- 做什么样的学术研究
- 学术研究和文写作之间关系
- 怎样以 CCF A 类的论文的标准去要求自己
第二期会深入到具体实操性的方法,包括但不限于:
- 图表怎么画
- 英文怎样写得通俗易懂
- 行文逻辑规范
- 日常上面怎么样去积累
因为大部分时间大家其实还是独立做科研的,希望通过这一次培训,大家至少达到 70 分以上的能够独立写论文、做科研的能力。
学术研究和论文写作
什么是学术研究?
技术
比喻成走野路。在工程项目里会遇到特别多没有解决的实际应用场景里的问题,这些问题其实就会涉及到现有的一些成熟的技术。针对这个问题,比如说做数据清洗、数据分析、数据处理,以及怎样把这些技术组合起来,去解决一个实际中从来没有见过的一个新的应用问题。我们把这个问题以比喻成在一个特别大的荒无人烟的山区里去走一条野路,我需要自己踏出一条路,但是前景目标是非常明确的。
学术研究
比喻成攀珠峰。是在一个从来没有人去做的未知方向上,你能够去达到一个更高的制高点,这其实是没有人走过的路,也没有人尝试甚至未知的一条路,所以其实学术上面希望我们有这种对未知世界、未知知识的一个探索能力。
科研
比喻成逛景区。在这技术和学术中间还有一条路,其实也是很多论文或者说身边一些同学在做的一些工作。我们现在很多学术研究的问题,是给好了数据集、给好了一些 matrix 评测的标准、甚至给好了到底要做哪些实验,这样的实验方法你只需要在上面刷出来一个最新的指标,然后在既定的一条路上把所有该做的实验都做过,这样的工作可能简单的称之为科研。其实这条路大家已经规定好了,只需要按部就班地做出来。这其实也是现在很多审稿人遇到的一个问题,就是发现所有的论文内容都很规范,所有的实验基本上都做了,但是看不到它对这个领域和知识的推进,这其实也是并不是今天这个报告里想给大家去重点介绍的,所以今天想说重点是怎样在学术方面能够使科研往前探索,以及怎么样清晰地表达清楚。
为什么要做学术研究?
不管读硕士、读博士、还是本科期间就已经开始做科研,大家的目的是什么?目标是什么?有些同学可能是想毕业、想挣更多的钱、想继续读书……还有很多确实有自己的兴趣爱好、有这种好奇心想探索未知等等,大家的期待其实都是不一样的。在不一样的期待的情况下,发现其实读书做科研的整个过程,其实在这三个方面都给了我们从短期到长期非常大的系统性的培养。
最初的一个阶段
也就是在读博士期间最容易体会到的,就是我们是否具备系统地解决问题的能力,包括做科研的过程。其实这样的一个过程,跟你做其他任何事情,不管你工作还是组织一次活动,都是一样的。
- 到底要解决一个什么样的问题(怎么样发现问题),发现一个值得研究的问题。
- 基于这个问题,要怎样系统性的调研,其他人的成果做了哪些方法、做成什么程度、有什么样的问题。
- 根据现有的一些情况,提出一个更可行、可有效的方法,以及通过实验、实践的方式去验证,最后复盘不断地强化这个思维模式和整个解决问题的能力。
所以其实在整个的工作,甚至整个的人生的各种方面的这些问题上面,其实都是一样的方法论,但是在读博士期间,你会有这样的压力和对自己的强化的训练的过程,培养起来你这样非常系统的一个能力。
培养科学素养
所谓的科学素养就是对一个问题认识、分析、逻辑表达的能力。每年顶会录用上千篇文章,很多同学在初步读论文的时候就想到底有哪些论文是值得读的,哪些是要泛泛地读,其实在这里面它的质量和它对你的启发是参差不齐的。怎么样快速做出判断,找到引领性的这种工作去跟随,其实就是在读完博士之后或者博士期间能够具备一个对学术能力以及学术影响力的一个判断。此外具备了这样的判断能力,在写论文、在输出、在大会和别人沟通的时候,你就会建立这种结构化的思考方式(现在有哪些类型的方法,怎样去有条理地梳理清楚)。学术不是一个闭门造车的过程,通过大量交流、清晰地表达观点,甚至是非常尖锐而且前沿的一些观点,这个也是做科研能够培养起来的一个科学素养。
长线思维
最主要的可能对整个人生有长期作用的,就是你的价值观。怎么做到能不急功近利、怎么在投稿被拒甚至延毕的这样一个不断挑战自己的过程中,不患得患失、稳步地推进、交流共享、持续互惠地积累,这个是一个建立长线思维,甚至是你能够走多高、走多远的一个本源的动力。
所以做科研其实在这三个层面上,这 12 个方面都能够提高我们的能力,后面可以更关注于怎么样去提高这些底层的能力,下一次报告会重点去讲一些我们实操层面方法论的东西。
科研的过程
在科研早期,其实都会对一个领域从初步认识开始,有些老师可能会让你直接去调研,有些可能给你一个 idea 让你直接去做,不管是怎样一种方式,你都会从 0 ~ 1 开始完成第一个工作,这个时候是需要老师给你比较详细的指导,然后你把第一个工作做到极致,发表第一篇 CCF A 类的论文,这个是你的第一个阶段。
进入到第一个阶段之后,其实在做的过程中就会知道有很多觉得做的不完善的地方、可以改进的地方,就有各种各样的不靠谱的 idea。有了这些 idea 之后,就会不断地跟老师再去深入讨论,这个时候你也不知道哪个 idea 是靠谱,能够在发出高水平论文。所以这个时候你在跟老师碰撞的过程中,确定了第二阶段要做的工作选题,然后再把它做到极致,发表出来你第二篇的 CCF A 类的论文。
这个过程之后,你会发现你做这些小的研究点不足以激起你的兴趣了,你就开始进入到研究阶段的中期,开始想做更有一些影响力、更挖掘本质的一些共性的、底层的问题。这个时候其实又会花你大量的时间精力去思考和调研,你这个时候其实也具备了一定的独立做科研的能力、独立找问题的能力,这个时候你能够自己有靠谱的 idea、找到合适的问题,然后把它做到极致,完成你的第三篇 CCF A 类的论文,这个时候其实你的能力已经又达到了一个新的高度(我们这里面的所有的文章数量都不是绝对的,只是体现你的能力的提升过程)。
到博士的中后期,你发现已经能做出比较有影响力的工作之后,其实又陷入了一个新的瓶颈,就是怎么样在博士毕业之后去延续做你的科研,甚至做 5 年、10 年这样你的一个学术生涯。这个时候在博士的后期你就需要去探索更广阔的方向,去拓展你的眼界,决定后面要怎么样去发展。这个时候其实更关键的一个是当你能独立做科研,不管是你去学术界还是企业界,你需要去带团队、去独立地承担一个方向的研究。那么这个时候你能不能具备指导你的师弟师妹他们从 0 ~ 1 完成他们的第一篇 CCF A 类的论文,这个时候其实又是带团队、培养人的一个能力的提升,到这个时候之后你就开始找教职或者规划你的方向,以及在毕业之后申请 funding。
所以其实整个的就像现在这里讲可能是一个相对完整的研究生涯的一个培养、上学阶段的培养的过程,但是每个同学可能经历的阶段不一定完全契合,所以今天我希望能够跟大家一起去探讨怎么样从 0 ~ 1 去完成第一篇 CCF A 类的论文。
学术论文与写作思路
研究过程和论文写作过程内容是一致的。选择研究领域、选择领域问题、提出研究问题的设计方法、实验验证、最后总结,这个是整个的研究过程。研究过程里在每一个过程中涉及到的方法都不太一样。当然确定的主题的时候,很多同学可能有导师指导,也可能导师指导的时间并不多,需要自己去找方向或者找人请教。那么在确定了方向之后,需要去大量的阅读文献,这里面其实前两部分在下一次报告里面会给大家讲具体怎么样去选文章、读文章、积累文章、讲文章以及从中找到 idea。到下一个阶段时要提出一个合理的方法,这方法足够新、足够好、足够可行,这些是在真正去实操之前要确定的,接着通过大量的实验去验证和分析。
所以整个的研究过程基本是这样的,那么对应我们的写作过程是什么样的呢?后面会把整个的写作过程和研究过程中对应上,希望大家就说不只停留在理解怎么写作,其实你在思考写的过程中,对应你在研究的过程中,整个研究过程中也要用相同的思维方式去做研究,这样写的时候才不至于发现没有动机、idea 也说不圆等等一系列的问题。
写论文遇到的问题
在我们真正去讲写论文的方法之前,我们先归纳一下,看看我们到底现在写论文都有哪些问题?
这个是特别明显的一个问题,就是老师和同学的一个认知存在不一致。可能学生希望老师一步一步的指导,老师又可能有时候希望学生带我。怎样和老师达成一个特别好的协作关系?其实科研老师和学生就是一个互相合作、互相促进的关系。
第二个你发现你论文写出来的东西,在你眼中好像特别宏大,然后导师眼中可能就是一堆垃圾,审稿人眼中可能就是小学生的作文。所以问题是你选择了一个很好的主题,并且做出了很好的实验结果,但是你写出来的东西并没有真正的把你的这能力体现出来,或者说你论文的水平、科研研究成果的水平,是一个很大的问题。
另外一个,当我能够很好构思的时候,我发现没办法准确地表达我的主题。可能一开始设计的很完美、想象的很好,但是最终画出来的就像一个草图一样。怎么样去准确表达,其实背后的原因也是有没有把逻辑和底层贡献想清楚。
另外就是我们的论文,很多时候审稿人经常会给大家提的叫做 over claim 对吧?你在 Attract 或者 Introduction 的时候,把这个问题和贡献说得很大,但是方法和实验结果并没法去印证所说的这些问题,所以整个论文的 story 是前后不一致的。
这样的问题其实在我们真正的写论文之初,就需要把所有的内容都考虑进去。其实另外一个也是我觉得最大的一个问题:持续的拖延。可能觉得写一个 A 类论文其实只是可能所有工作的 10%,但其实我觉得写论文甚至能占到了 40% 甚至以上,它其实和你的科研是同步协同去完成的,所以科研拖延写论文是一个很大的问题。
最后一个,你自己觉得老师反馈给你有问题、同学反馈给你有问题的时候,你觉得总是越改越差、越改越不知道怎样去把论文向 A 类的水平去改好,所以如何去逐步完善我觉得可以去思考。
前面这些问题导致我们本来一个很好的科研成果(可能是一个 A 类的研究成果),通过拖延以及这些问题,导致最后可能发了一个 C 类水平的论文,这些其实都是我们很常见的问题。
归纳一下前面列了这么多的问题,其实不管是别人看不懂还是文章表达不清楚,本质上还是你的写作思路存在一定的偏差:你以为可以这么写,但其实有更科学的方法;赶不上 deadline;英文规范,包括怎样把这个表达得更准确;日常积累,防止你到最后 deadline 的时候才知道工作量有多大。
论文应该怎么样去写
今天我们主要介绍写作思路,就是学术论文到底应该怎么样去写。
在一篇论文真正开始做之前,其实很大程度上就决定了你这个论文到底能不能发一篇 A 的会议或者期刊。这个论文到底研究的内容是不是在探究一些本质性的科学问题,这个其实就决定了能不能发 A 类。
举个例子,这两篇论文跨越了 10 年,右边的是在 2011 年的时候发的一篇 CCF C 类的一个期刊,左侧是前两年发在 CCF A 类上面的一个期刊会议。这两个工作其实都是在做跨模态融合的一个工作,就是本质上它解决的问题在方法上面都是类似的,但是在 2011 年的时候做这个工作其实方法非常简单,当时还是手工定制的特征,我们发现这些特征好像有一些互补的性质,就最简单的就拼在一起把它融合,然后获得了更好的 performance。在当时没有深度学习、没有这么多开源代码的情况下,还是做了很多大量的实验、出了很多代码,所以可以认为有一些 contribution。但是从现在来看,左侧的这一个工作其实也同样是在做信息融合,但是更想探究一些本质的问题,比如说在讨论这个人对感知的信息、消防栓认识的时候,到底都从哪几个角度去判断的?这些信息在大脑里怎样去融合关联,这种机制怎样去体现在机器的模型设计上面?
这个机制从人去做到这件事是受到了启发,是现在做信息融合甚至关联知识的一个比较关注的问题,而且方法通过验证后也具有普适性。所以左边和右边如果刚入门的同学觉得他们都是在做信息融合、特征融合,方法论上都差不多,但是为什么左边能发 A 右边只能发 C,其实我想说再从它们的利益和提出的问题上面就很多的差别差距。我们现在总结一下 A 类的其实在问题上有理有据的,而且是足够具体的一个问题,现在大量的论文都说想解决一个什么问题,比如想解决信息融合不好的问题,这其实并不是一个具体的问题。而 CCF C 类的或者说更低水平一些的论文,可能就说现在这个研究很热、都在研究哪种工作,所以我们也去研究这个问题,这就是差别。在方法上面 A 类的论文大家去分析,可以看到它的每一步的设计,它的目的和它的出发点都是非常明确的。但是你看 C 类或者说其他的论文讲述的方式就是我第一步怎么做,第二步怎么做,第三步怎么做,它其实是一个像是技术报告一样的写法。
在实验方面,A 类的论文会逐一的去把所有动机和模型设计的一些机制全都证明,但是大部分现在的论文,甚至觉得有一些看起来发了不错的会议和期刊的论文,也是缺乏分析的,可能只是说我达到了 SOTA,把大家做的实验 obligation 什么都做一遍,就觉得 ok 了,审稿人可能挑不出来太大的毛病,但其实我不觉得这种论文是值得大家去借鉴和跟随的,所以后面会去给大家讲科研跟写作的关系,以及我们可能遇到的问题,就是想从本质上跟大家说,背后的这些对科研的认识、对写作的认识,其实决定于你在真正写作的时候会投入多大精力、以怎样的态度去对待他,也是决定了你到底能把这个东西写成什么样。
动笔
我们什么时候就可以开始写?其实在真正决定要开始做一个方向的时候,就会有一个PPT,就相当于一个 project 的 slice,就开始总结所有的思路,当然除了实验结果以外。当你有了实验初步的比较靠谱的结果之后,就可以开始动笔写 introduction 了,因为在做实验完善的时候甚至你在读最新的论文的时候,你会发现写的哪些是不自洽的,你会不断的完善思路,指导你后面所有的方法和实验的写作。
标题
什么叫标题?标题其实就是对这个工作到底解决了什么样的核心问题,最大的技术创新是什么的一个问题,如果你没有给它明确的定义,其实你是没法解决它的。所以你把大概方法做出来、基本上有初步结果的时候,你就要去思考你的贡献和到底解决的核心问题是什么。题目其实非常重要,好的标题一定要反映出问题是什么、最大的创新是什么。
另外就是这个题目要起的易于传播、易于记忆,否则大家去引用你的工作或者提到你的工作的时候,还要花特别长的时间去描述,其实是不利于你的影响力扩散的。
比如说第一个问题,第一个题目 from shallow to deeper。这个题目看到的时候,其实你对它到底做了些啥,可能没有什么概念,但现在同学包括很多论文往往非常喜欢起这样的题目,看起来很高大上,但是我觉得论文还是以朴实为主,真正的点到本质问题明确地说清楚为主,所以这个题目我觉得是太宽泛。
第二个这个也是组里的同学曾经写过的一个题目,他想起一个比较好的模型的名字,然后他把它的整个的标题里面涉及到这个名字的一些首字母或者什么的,它可能出现在不同单词的不同的位置,它把它变大变成大写字母,然后把它还 let 出来。但这种题目如果你作为题目是非常不规范的,我们知道正常的题目肯定是每个单词的首字母大写,大家不要写这种题目。
第三个就是像这种 understanding like humans,虽然说它本身是有这些认知机理的启发的,但是大家记住很多现在科研或者科学领域没有确定的东西,不要拿它来做题目,就让审稿人觉得你很偶尔肯定或者是你做的东西并没有一个真实的依据。
然后第四个比如 graph neural networks for image text motion。如果这个是在 2017 年出现的一个工作,那时候 GNN 刚出现也许你把它用在了 image 上面是一个好的题目,但如果放在了三四年之后,现在这个题目完全看不到你和大量的现有工作的一个差别。
然后下一个题目大家可以看 plug-and-play novel tree loss function,upgraded transformer framework。这个工作把大量的形容你工作的一些形容词放在了你的题目里,其实是非常的冗余且浪费了大量精力,抓不到这个工作最终的一个技术上的创新。
然后最后一个其实也是我觉得大部分同学起的模型的题目叫比如说像 KBGN 就是没有任何含义,也不朗朗上口,可能是一些你的关键词、首字母的缩写,但是其实不利于传播。
大家可以看到我这里其实也列了几个我觉得起的比较好的一些 CV NLP 模式 learning 的题目,他们其实都是符合我们刚才说的逻辑的,包括比如说现在 CV 里面在做这个图文生成的,你看题目非常简洁,它的核心技术能力就是在没见过的情况下你能够去生成,然后它解决的问题就是图到文或者文到图的generation。然后包括微软亚研做的 swin transformer,怎样提一个朗朗上口的的名字,同时这里面涉及到方法 shifted windows,以及做的一些核心的技术和解决的问题,当然我刚说的不一定所有的题目都会覆盖,但是我觉得在一个你初步第一篇工作的时候,尽量还要把你的这些核心的东西能够明确的在题目里体现清楚,就不要搞特别玄的一些题目。
摘要
摘要其实是题目的一个扩展,它其实包含了包括动机、亮点、效果等等。这些关键的问题,我拿 CVPR2020 有代表性给大家讲一下摘要包含哪几个部分,所以大家以后写论文其实就去 check 一下你自己的论文,每一句话是不是在表达这个内容以及句和句之间是不是这样的逻辑关系,我觉得你的摘要就可以达到 60 分了。
这篇摘要里面它做的是一个场景图生成的一个工作,那么它在前两句话就先说明了现在场景图生成这个任务,它面临的技术挑战是什么。那么基于这个挑战,现有方法存在的问题是什么?一句话就把它说清楚,不要再罗列 relative work。第三部分不一定是一句,但是尽量很简短的就表明你的方法大概的思路是什么,一句话能概括你的方法的思路。方法概括完了之后,它到底亮点是什么?就是我为什么基于这个思路能够解决上面现有的这些方法实现不了、解决不了的问题,能够很逻辑自洽的去把这个问题能够解释清楚。最后一部分也就是点明你方法的优势,还 let 你的一个 contribution 是什么,你的适用性广、是不是达到 SOTA,如果有实验的好的 performance 你也可以放上,所以摘要基本上一定要大部分 cover 这些部分的内容,而且它们之间的逻辑肯定是环环相扣的。
引言
引言我觉得是论文最难写的部分,所以可能大部分老师帮同学改的时间最长的就是引言。
引言和 Abstract 内容覆盖的内容是一致的,只是引言的内容会是 Abstract 更详细的一个扩展和说明,我用相同的颜色标明了其实相同表达的内容。比如说在 Introduction 上的第一段,我们也需要对现在的背景做很详细的介绍,引出我们的问题。
大部分同学分不清楚在讲背景时候提出的问题和你后面讲 related work 的时候提出的问题,它们俩之间到底什么样的关系?我想说特别重要的就是你在讲背景的时候,你点出的问题是你做的 task 或者你要解决你做的领域里面最核心的本质的问题。比如说我们这里面解决的是基于知识的数学问答,就是人看一个东西的时候,人是既能关联到它的视觉表象,又能关联它的语义,又能关联到外部知识,怎么样让它机器能够 adapt 的去关联这些信息,其实就是你要解决好任务的本质问题。所以这个东西是本质问题,那么你在 relative work 的时候,也就是在第二部分的时候,你要把现有的方法基本上觉得这个任务归纳成几类,每一类存在什么样的一个问题。
然后就是一个很具体的小问题了,而你的背景是一个大背景,而你在评价现有方法的时候,一定是你真的读过这些文章,你是准确对它理解了,而且你的评价是客观的,不是为了突出你的 contribution 去故意贬低某些方法的不足,然后在后面我们怎么样去介绍我们自己的方法,既然你就把问题很明确的点出来之后,你的方法就要说你具体 1 2 3 步怎么样去自洽的解决了这个问题。这个时候大家有的时候经常忽略做了一个这样的方法,它为什么能够解决这个问题,以及每一步的哪一个环节到底是解决了这个问题,这个是需要你在这一部分要把它明确的说出来的,而不需要你展开讲具体的怎么做。
然后最后一部分凝练你的 contribution,这一块其实是大部分同学在写第一篇文章的时候都比较欠缺的,怎么样去准确的评估你的 contribution?我这里给大家可以几个角度的思考:
- 是否提了一个新的问题
- 是否我提了一个 dataset、新的 task,比如说我解决这个问题,大家从来没有从认知的角度去做,我第一次从这个角度去做,我探索了一个什么样的新的方法,或者说我提了一个什么样的新的框架,在这个框架下面你是不是有新的方法?对这个框架问题的一些新的方法,它是不是达到了新的 SOTA,以及你是不是具备除了达到 SOTA 以外额外的新的能力,比如说你有组合泛化的能力,你有推理的能力等等,这些都是你可以写到 contribution
但是大家记住就像做 PPT 一样,你的任何一个 contribution 只表达一个意思,你说的一点只表达一个意思,你不要把这些又有结果又有方法都写在一个 contribution 里面。如果它不足以撑起一个 contribute 标准,建议你还是能从刚才提的这几个角度或者其他的更重要的角度去总结你的贡献。
相关工作
相关工作一定要包括需要理解本文相关的这些知识,不要把它只在正文里当做一个参考文献。
第二个就是所有跟你解决这个问题相关技术上的一些方法,不管是你这个 task 上的方法还是你用到的这个技术,它相关的一些 related work,因为你提到你的 contribution 是什么,你 contribution 相关的这些不同维度的 related work 都要去介绍,但是绝对不要罗列对应的论文。
另外我们做的是图神经网络相关的方法,这个方法相关的一些工作,以及我所有最后几行 highlight 的部分都是现有方法和我们方法的一个最大的区别,就是我们在现有方法上我们这篇文章的 contribution 是什么?所以大家做的时候一定要把这个东西总结出来,否则你的 related work 其实对于审稿人对于你这篇论文的加分是没有的,所以其实你在写完方法之后,你其实就可以写 related work 了,因为你就知道你的方法涉及到哪几方面的技术。
方法
方法这一块我觉得应该是论文最好写,也是大家最熟悉的一部分。如果说 introduction 一定要尽早写,方法就可以做完实验的时候就可以开始写了,甚至你开始做的时候也可以开始写。方法最主要的就是你要换位思考,你要真正的把逻辑梳理清楚之后,考虑哪些模块要先写、哪些要后写、哪些重点写、哪些简略写,而不要以你真正在整个科研过程中投入时间的比例,去划分你写作的这一部分的比例。
另外一个很大的一个问题,就是大家缺少对模型设计的动机分析,就是大家只是 step 1 2 3,但是为什么这样设计、这一步到底在解决整个问题的链条里起到了什么样的关键作用?这个是需要在你的论文里写出来的。
刚才讲了 A 和 C 最大的一个区别,基本上现在看好的论文都会有一个特别一目了然的 framework,也就是很多审稿人他可能还不看你的内容细节实现的什么,就看你 framework 就知道你论文的 contribution 问题在哪儿,所以非常关键。那么下一次我会重点可能拿一个工作去给大家讲到底 framework 怎么从 0 ~ 1 的把图画出来。这个画出来之后基本上你的所有方法的组织和写法之间的关联就非常清晰了。我们看 framework 其实输入和输出要非常明显,然后到底包含了哪几个模块,你的构建可能又分三部分,然后你的推理又分两部分,这些你要非常清晰的,甚至拿一个具体的例子贯穿你整个模型的框架,这样是最好理解的。一图胜千言,你很难用文字那么准确的把你的内容表达出来。
你的图其实和你的正文里的小标题,这个章节和子章节要一一对应,而且他们之间肯定是逻辑一致的。当然它们之间到底是什么逻辑,这个小标题的名字怎么样最准确,而且要表达你创新性的方式,这个标题是很要去花时间琢磨的。
接着你在具体的每一个小章节前面是需要花一段去讲你这个方法的 motivation 的,所以我标绿的其实都是在讲你这一部分的方法到底要解决什么样的问题、这个方法和上一步是什么样的关系,以及我这个方法做完之后它能达到什么样的效果,便于后面一步或者整个问题的解决。所以这些一定要有一段,但是现在其实大家都是欠缺的,好多时候为什么审稿人觉得整个看下来看不太出来你的问题,是因为你其实没有写清楚。
然后在后面你具体的一个方法,一个大的步骤下来,它其实还有很多小的细节,大家可能有的时候半页之后,具体的就是一个步骤、第一个公式、第二公式、第三个公式,让审稿人很难去抓住你的逻辑,所以你其实可以用这种加粗或者小标题的形式,把你的内部的逻辑表达出来,在题目上也要慎重的去考虑。
最后你在介绍整个方法之前,一定要有总的一段话去把问题梳理清楚、去把整个模型设计的逻辑和方法总体介绍清楚。你如果不在这说明的话,审稿人在他的意见里面肯定也会质疑,所以你在大量的可行方法之中,你为什么选择要把它说清楚,或者说它可以尝试不同的方法。
实验
其实最主要的大家有的时候会遇到你的实验和你的方法、动机并没有形成一个整体印证,而是各论各的,虽然实验可能确实放了十几二十个实验,但是大部分实验都是在说一些不痛不痒的东西,比如说你做了好多的参数分析,然后你做了特别多的可视化,但是你又没有真的体现你要解决的问题。比如说你具有泛化能力对吧?你怎么样做实验证明你有泛化能力。那么你想解决的问题到底应该通过哪样特殊的实验去证明,这种实验可能甚至你需要自己去设计,甚至提一些自己的 metric 去证明,在你真正设计实验的时候,你要诚实的去举例子,不要总是跑 1 个的跑 10 个,然后拿 1 个最好的出来,这样其实你代码开源之后,follow 你的人无法验证或者无法复现,对你其实是减分的,你整个学术生涯是这篇论文是跟随你一辈子的。你后面的分析一定要给出合理的解释,不要只有一个实验结果,或者说我的所有的分析都是告诉它数据长什么样,数据是什么样,谁比谁多,这个不叫分析,你把背后为什么会这样,和你的设计有什么样的关联要说清楚。
另外最重要的这个 limitation 就是任何的方法如果你说不清它的边界,你就很难说出它具备什么样的能力,就像刚才说的你为什么要先写一个标题,标题其实就是在定义你的边界,那么你的方法也是你最后说出实验之后,你的方法到底什么样的数据适应,什么样的不适应,它就有什么样的特点,你必须把这个能分析出来,而不是自己凭空的去解释。
最好的方法就是你大量的去看优秀的论文,我其实觉得 machine learning 的论文大家可以好好去学习一下,因为它一定会证明它在各种的任务领域上都具有这种通用的能力,所以它是一个很好的基础性的机器学习的方法,那么这种方法论文里面的实验就设计得非常多、非常巧妙,分析也非常深入,所以大家多去看看 machine learning 的论文我觉得是有帮助的。
我想说明的一点,你在讲方法、讲实验的时候,一定要有层次、有逻辑,不要一股脑的把所有的比如说 obligation 就一股劲这样讲。比如说我的 obligation 分成哪几个维度对吧?我横向的维度对吧?我每个模块是怎么样的,然后我纵向的我每一个模块内部。我把关键方法替换掉又是怎么样的,然后我又去和其他的就是一些方法去比较,这里面的 obligation 一定要有层次,而且基于层次去组织你所有的模型。同样的你的方法的可解释性,通过可视化也好、通过一些其他的模块证明也好,也是要有层次的。可解释在哪几个方面可解释,它解释了什么样的内容,它都是要有对应的依据和你的论文里对应的分层地介绍。
结论
最后结论其实有时候就是很难区分结论和 Abstract 的区别,那结论其实最主要的就是你的发现是什么。你做了这么多的分析和实验,最后的发现和总结,而且你要介绍你自己的这部分东西的总结,不要把整个大背景、对整个领域的所有问题都解决了,就不要夸大,尽量简洁。另外最终你要把你的 future work,就是你方法具有哪些的局限性之后,你下一步怎么做,其实也便于这个领域的人看你是不是可以沿着你这个方向要继续往前做 follow 你。
致谢
参考文献
另外参考文献,虽然到最后审稿人可能已经没有精力和时间去看了,但是这个决定于你这个人的一个科学素养。是不是按照期刊会议的格式大小写名字拼写是不是正确,是不是有些会议全称有些就是缩写,这些其实都会影响审稿人对你整个的科研水平的一个判断。
小总结
其实我想跟大家说整个的科研过程,我的学生在一开始确定要做这个的时候,就已经开始写边做科研边去完善它的 paper,当然最一开始没有真的写一个 paper,他只是弄了一个 PPT slice。
然后接着你在真正靠谱的结果出来之后,你就可以刚才写你的这些方法实验,包括你的 introduction,那么你在有第一版的 paper 之后,你自己其实就知道哪个实验做的还不够完善,你就边去完善实验,边去再写你的实验内容图表,然后再改十几次,可能最后可能才能赶上一个 deadline。
所以基本上周期的长度大概就跟大家一个学期上课的长度是一样的,就跟你上课大家老师先讲背景知识,然后再讲每一章,然后最后让你做作业,然后期末再有 1 个考试,其实整个就是科研的过程,如果是你第一个工作的话,其实这个 4 个月是一个我觉得比较大部分同学需要经历的一个过程。
其他拓展
总结
我们今天讲的所有论文,从标题到最后参考文献,所有的内容我想大家一定要围绕一个关键点就是我们的问题。你既然已经定位到这个问题了,你所有的内容都要围绕你怎么样去定义问题、解决问题、证明你解决了问题,以及你问题解决的到什么程度,这样的一个闭环环环相扣的去说明你的方法。
那么其实如果我们只掌握了写作思路,我觉得它可能只是我们看路的一只眼睛,那么大家其实刚才有那么多的问题对吧?我写不完,然后我写不好我改不好怎么办?其实后面我们在下一次报告里面,我们就会讲怎么样去写作,怎么样规范的、专业的围绕读者的需求去写,以及怎么样在我们的日常积累过程中把我们的 idea、我们的数学功底、我们的英文功底、我们的写代码的能力,以及我们找 idea 的能力都能积累下来。
那么我想有这几方面,大家就可以非常开心的像笑脸一样去面对自己的科研生涯,然后积累自己刚才说从方法论到认知能力,再到自己的长线的价值观的一个系统性的培养。
所以期待下一次我们的报告《学术论文写作规范和日常积累》,和大家继续分享后两部分的内容。
这里面我也给大家介绍了留下一些参考书,其实第一本书叫做 the craft of research,我在组里面其实花了一个学期的时间,让每一个同学分别讲一章去这个介绍,其实它是一个文科的讲怎么做科研的书,它的问题、思考的角度和总结的方法适用于任何一个学科,所以特别推荐给大家。
然后另外北大董彬老师,他在北大讲一门课叫研究型学习,他这门课当然特别有意思,我跟他交流就是他会把学生在一个学期分成两组,完全模拟整个的你做科研和投稿审稿的所有的过程,所以大家可以去看它有一个官网有课程的内容和 PPT,大家可以去学习。
最后我想再送给大家一句,我特别喜欢也是鼓励我的一句话:只要你敢想,而且一直持续不断的去坚持做,你就可以到达任何地方,你可以做成任何事儿。
所以我希望大家能够去坚持自己感兴趣的能做好的东西,然后有什么问题大家都可以随时交流,这些其实在你的人生整个的发展过程中,是会对你有非常大的帮助,任何困难都是提高的最大动力。好,我今天的报告内容就到这了,好,谢谢各位同学。
QA 环节
- Q:从本科开始学习计算机技术到研究生阶段找到研究方向之前,这一段时期内关于科研我都可以做些什么,有没有大概的步骤之类的?
A:你现在想大二就开始做科研是吧?其实之前带过这种本科同学去做科研,其实他的目标比较明确,可能我想保研、要不然我想出国、然后就想还是做一些能发论文的这种 idea,所以我其实觉得比较适合本科去做的是最好能够找到一个有具体研究方向的老师,然后给你具体的一个技术点的指导,然后你沿着这个点,你可以去找一篇经典,或者说现在比较新的文章去复现,然后基于复现的结果接着调研相关的一些小问题,相关的一些工作,然后把这些工作能够找到一些关联和启发,在你复现的结果之上可能做一些 inquiry mental 的改进。我觉得这个是一开始你需要先去了解领域,你要动手去做一些东西,而不是停留在大量的可能读 paper 调研,因为可能你读完之后还是没有特别深的感觉,但是你具体到底从哪个点去着手,我觉得如果身边没有一个指导的话,你自己可能可以去看一下最近一两年的顶级会议上大家都在做什么,然后找一个感兴趣的方向。所以我的建议可能是觉得还是从具体的方法、具体的一个技术点着手去做一些改进的方法,然后后面你可能有想法了,你第二个、第三个你再去提一些比较深入的 idea。
- Q:老师能不能快速讲一下会议怎么改成期刊
A:之前我记得王昌栋老师上次学术论文写作工作坊还专门详细讲了内容。主要我觉得有几点,你真正的改的时候,你在框架或者模型,还有是不是能够具有更好的领域或者任务的泛化,这些要提一个更通用或者说更新、更往前推进的一个方法,而不能你 conference paper 的原始模型,你可能就是多做了一些实验,现在是行不通的啊。但是另外有一些现在至少 CV 的一些期刊是不接收 6 页以上,我记得是 6 页以上会议再转期刊的这样的文章,所以他更希望去接受原创性的文章。如果说期刊接收改会议的文章的话,你一定要在方法上面,比如说 contribution 明显要比你的 conference paper 要多一些内容,另外你的 related work 也要做相应的扩展,因为你的方法涉及到更多的内容,另外你的模型可能已经不是原始针对一个或者针对一类方法的一个模型,可能它是一个框架,框架可以适配到任何现有的一些模型上面去,这当然只是一种思路了,以及你的实验是不是超过了你的 conference paper 另外达到一个新的 SOTA。还有更多的可解释、可分析性的这些东西。当然这里说的比较粗略了,你可以去对比一下有发会议和期刊的论文。
- Q:Introduction 里面的方法介绍是要侧重挑战还是问题呢?
A:我理解一下,你认为的挑战是现在大背景解决这个问题的就是共性的一个挑战,你的问题是现在相关方法里面存在的具体方法上的问题。如果我理解得对的话,我想说这两个都是重要的。首先你的科学问题要找准,你这篇文章的 contribution 是能发 A 还是能发 C 才能立住,那么这个立住了之后,你的方法就是你做的事肯定是重要的,审稿人就能认可。接着你的方法是不是新的,是不是对解决这个问题有贡献的,你总结出来的现有方法的问题,就是体现后面解决的方法是不是新的一个依据。因为现在方法也有很多,比如说我这个 fusion 的方法可能比较简单,我换一个更复杂的、更新的、别的领域的迁移过来,这个其实并没有针对这个问题去解决,你只是做了一些 incremental 的改进,那么现在的方法其实你从不同的维度去看它解决这个本质问题到底存在什么样的缺陷,你把这个东西真的能概括出来。后面其实提的方法,其实大家就相对的能接受,这两个是环环相扣的,都挺重要的。
- Q:Contribution 和 Abstract 有什么区别?
A:我们一般都是在 Introduction 最后一段会讲我的 contribution,其实在 Introduction 里和 Abstract 里其实是对应的,只是它的写法和它的体量不太一样。你可以看到在 Abstract 里面,其实它也包含了 Introduction 里刚才所有的内容。然后最后一部分就是你的 contribution,但只是说你在你这个地方 Abstract 的一点 contribution 的时候,相对的是最本质、最核心的 contribution,但是在你的 Introduction 里讲 contribution 的时候,一定要和你前面的方法、你的问题详细的去展开讲。这个框架也好,具体的技术也好,它到底对这个领域有什么样的推进作用,因为你有篇幅了,你就可以把它展开的讲得更细一点。
- Q:推不推荐研究生写综述?那么写综述的时候,咱们今天讲的方法有区别吗?
A:写综述我觉得分两个阶段:一个是你刚入门的时候,刚入门的时候,我其实不觉得它叫一个综述,可能是你的调研报告,因为这个时候其实你对一个领域并没有深入的,你对这个本质问题的理解,或者说你对这些工作真正的 contribution 的一个定位,所以这个时候你是把这些工作调研出来,你把它能够有效的分类组织,然后找到核心的问题,这个时候我觉得是你可以发一些偏总结性的这种,如果有接收的话,我觉得是好的,因为它能够让你用尽量凝练的语言,尽量全面的调研,把现在你要做这个事儿,能够有一个驱动力的让你调研清楚,而且可能你比如说毕业还算一篇文章对吧?综述算的话,它也算你的工作。但是其实我觉得你所谓的真正的综述应该是你真正比如说你到了博士中后期,比如说你就做跨模态的问答视觉问答,你做了大量的工作,而且你对这个领域已经非常理解了,你这个时候可能就针对这个小问题,你写一篇综述,其实综述最大的作用是除了给入门的同学看,更多的是给这个领域正在做的人看。大家更想看的是你后面到底有哪些 challenge 的可做的一些 problem,然后一些大家关注的现在方法的缺陷,以及这些方法到底在什么场景下能适用,以及它的整个的横向的比较,所以可能到你的后期你才能真正的把这个东西写得更深入。所以我其实建议如果是前期你想做这件事儿,你又不想浪费所有你总结出来的成果,你可以把它写成一个轻量级的调研报告,然后能接收的这种期刊或者会议上。另外其实现在有很多博客对吧?你也可以放影响力也挺大的。你在中后期的时候,我觉得其实你写完综述之后,你自己的大的博士论文或者硕士论文,其实就有很多的很好的素材,不管早还是晚,其实都是要去总结的。
- Q:工作后去互联网企业可能涉及更多具体业务项目的开发,如何在此过程当中保持提升学术的敏感度?
A:在高校里面的跟企业界里面的业务工作里面是有些差别的,那么业务工作上的重点可能更多是解决一些 corner case,然后学校里面更多的是在公开数据上提升一些 common case 的性能,那么这两者的学术研究区别和注意点,其实我也很希望同学们都能够真的关注。尤其是我们国内,现在大家、企业、各种行业真实的问题是什么?现在学术界尤其是大模型出来之后,我们其实在 follow 的工作都是在解决国外的一些大厂他们提的一些问题去在解决这些问题。但是国内其实你真正在工作里面,你实际业务上面,到底就是说除了一些具体的就是细节的问题之外,你觉得它本质问题可能是什么?其实你真正做了之后你就能有感觉的,而不是真正我们像 dataset 里面,你 dataset 本来就有你真正提问题的人,他未必都是真正理解问题的人,所以你自己去有感觉之后,你再回来看这种问题可能用什么样的方法去解决,我觉得这个其实是促进科研,而且能够把你的实际需求和找到的本质问题能够协同起来去做的。现在我觉得国内很多时候是这两个东西是分割的,这很考验怎么从工程里提炼本质问题的能力,所以如果你能提炼出来,就像比如做一个视频的配乐的生成,它本身是一个学术问题,但是它又是在真正的互联网,比如说视频有很大的这种应用的场景和真实背后的问题,省去了大量的人力资源。所以如果你能够找到一个关联本质问题,再去关注学术界的这些技术,你看待这些技术的视角和它对于真正解决企业界的问题能贡献的你做的东西可能会更有影响力。因为我们计算机毕竟还是一个 application 的学科。
- Q:对于本科生而言有什么手段,或者是什么途径可以找到导师?
A:如果说你在本科期间并没有接触过科研,或者说看过论文,其实我觉得这个还挺难的,因为其实你具体要做哪个方向,我之前跟北大董斌老师聊,他会有一个去考察学生的特别好的两个问题,第一个就是你为什么要来这儿,你为什么要来我们实验室?第二个就是你到底比如说未来3年、5年你有什么样的计划?其实你自己需要去网上寻找,其实如果一个老师做 research 比较长的,他都会有自己的主页,不管是各种公开的这种学术网站,还是这种教育类型的网站,你去看大家的研究方向,你去看大家的 paper,然后可能大概了解他的方向,你去调研这个方向是不是你自己真的感兴趣的研究内容。然后你再看哪些人是在做这些方向,以及哪个老师可能对这个东西做的,其实同样一个方向,大家侧重点也是非常有不一样的。另外你去问一下比如发邮件,老师其实都挺 nice 的,你去问一下今年是不是有名额招生,然后如果有的话,老师是不是可以一起在线或者什么机会去沟通一下,但是前提我特别建议大家一定要想清楚刚才那两个问题,我为什么要来这儿,对我未来要达到一个什么样的目标,其实老师是希望同学们尤其是做科研的同学,是要有自己独立的判断和批判的思维的。
- Q:国外的学生有些导师指导比较少,以及授课是硕士没做过科研,那么他问如何做研究,发出第一篇就自己做研究发出第一篇论文
A:后面下一期可能会给大家讲怎么样,如果在没有老师的情况下,或老师指导有限的情况下,你能够自力更生。这里面可以讲一讲初步的方法论,一方面你即使有老师、知道老师的作用是什么,老师的作用并不是告诉你这个 idea 能发 A 然后这个 idea 就是你就沿着做,第一步、第二步怎么做,做这种其实最大的问题就是学生在做完了这个之后,他完全不知道下面要做什么,以及在他写论文的时候完全不知道我为什么要做这个东西,他是写不出来,刚才我说的所有的每一个环节里面分析以及 contribution, motivation 这些东西的。所以我建议大家真的在你第一个阶段,即使没老师指导这其实是对你厚积薄发最大的一个能力培养的黄金时期。
就跟刚才本科的同学一样,你先要确定一个自己感兴趣的方向,在你真正想做科研的时候,其实你就应该先想好这个问题。在已知方向的情况下,你找到好问题以及找到好问题之后,你怎么把它做出来,并且表达出来、投出去,怎么样去调研定位问题,这里面平时怎么样去选论文、读论文、讲论文、积累 idea,以及基于这些论文你去找核心的问题,我觉得下次报告我会真的重点会讲这个东西。
第二个就是你怎么样把你做出来的东西写好。其实这次如果你能够后面再返过来想一想这次报告的话,可能对写作非常有帮助。
第三个我觉得特别关键的就是你一定要建立你的学术交流,任何的不管是你有没有老师指导,你一定要走出去,不管是咱们这种学术的报告,还是你线下的这种报告,甚至你有机会可以去参加一些国际学术活动,要去给别人介绍你的工作,通过别人的反馈,通过比你能力强、水平高的人对你的评价,去判断你哪里有问题,否则就像你写论文一样,那就越改越差,你自己是什么水平都很难定位清楚对吧?
所以你需要通过这种反馈,你不要认为他是在 challenge 你,你要认为任何对你的质疑,你只要能够更合理的回答出来说服他,其实你自己的东西是在提高的,所以这个过程是非常必要的,我觉得这三个是比较关键的。