跳到内容
⺮

如何写一篇好的科学论文

【转载】 转载自Michael Black 总结的科学论文写作方法。主要面向会议论文,但依旧可以对期刊写作有指导作用。

科研 8 分钟阅读
Writing a Good Scientific Paper 原文首图
Writing a Good Scientific Paper 原文首图

Writing a good scientific paper

The secrets I share with my students. 我与学生分享的写作秘诀。

作者: Michael Black 来源: https://medium.com/@black_51980/writing-a-good-scientific-paper-c0f8af480c91 原始发布平台: Medium

这份文档是我多年来不断整理、并一直分享给学生的一套写作经验。此前我从未公开发布过它,但希望它也能帮助更多人写出更好的论文。

这里的内容多少带有我所在研究领域的特点,主要面向计算机视觉、机器学习和计算机图形学,例如 CVPR、ICCV、ECCV、NeurIPS 和 SIGGRAPH。不过,我认为其中很多原则同样适用于其他科学与工程领域。

真正好的论文很难写,也并不常见。我希望看到更多好论文,所以决定把这些“秘诀”告诉大家。

我是谁?我的建议值得听吗?我大约写过 400 篇论文,其中不少获得过最佳论文奖。但对我而言更重要的是,其中有 5 篇获得了 “test of time awards”(时间检验奖)。这类奖项通常授予十年前发表、并在此后对领域产生了显著影响的工作。我希望自己写的每一篇论文都能经受时间检验,而下面这些建议可以提高你做到这一点的可能性。

会议投稿的竞争极其激烈。再好的想法,也经常会被拒稿。

你可能确实有一个非常棒的 idea,但很多时候你会感觉审稿人正在寻找任何一个可以拒绝它的理由。不要因为提交了一篇粗糙的论文,白白给他们一个轻松拒稿的借口。论文越专业、打磨得越充分,读者就越容易理解你的工作,审稿人也越容易对你的想法建立信心。一篇结构清楚、写作扎实的论文,会向审稿人传递一种“这项工作质量很高”的感觉。潜意识里,写作质量会影响他们对你整个研究质量的判断。

那么,怎样才能写出一篇很棒的论文?答案从阅读很棒的论文开始。找一篇你真正喜欢的论文,然后问自己:“他们到底做对了什么?”你为什么喜欢它?作者是怎样组织论证的?一个很好的办法,是去读那些在重要会议上获奖的论文。它们首先得到了审稿人的认可,又得到了 AC 的认可,最后还得到了资深评审委员会的认可。优秀论文的质量,往往从第一页就能明显感受到。

对我来说,下面这篇论文改变了我思考论文写作的方式:

http://www.merl.com/publications/docs/TR93-11a.pdf

在这篇论文中,Bill Freeman 从一个非常简单的观察出发,然后展示了怎样把它发展为一种强大而通用的感知性质。我尤其喜欢的是,他一开始就给出了一个非常具有启发性的例子(Fig. 3)。在此之前,我从没见过论文用一个简单例子直接开场,但这么做实在太合理了:一旦看懂这个例子,你马上就明白作者想表达什么,随后自然会迫不及待地想知道他会怎样利用这个概念。

想写出一篇清楚的论文,最好的方法之一是:先把它做成一个演讲。 写论文时,人很容易陷入技术细节;但做演讲时,幻灯片上几乎没有多少文字,而你的目标非常明确——让听众学会、理解你的 idea。这会迫使你按照逐步推进、自然顺畅的顺序组织内容。你在演讲中解释工作的顺序,通常也应该成为你在论文中组织内容的顺序。

如果你还没有准备演讲,那就找一个朋友,把你的工作讲给他听。你先讲什么、后讲什么?对方需要先知道哪些背景,才能理解你的贡献?他会问你哪些问题?把这些反馈用来帮助你组织 Introduction。

第一印象非常重要。通常到了 Introduction 结尾,审稿人心里已经大致决定自己是否喜欢这篇论文。如果他们已经对论文有好感,后面即便技术描述有些混乱、实验不够完美,论文仍有挽回空间;但如果读完 Introduction 后他们已经不满意,后面往往很难再把局面救回来。一个不高兴的审稿人往往会一直不高兴。尽量让审稿这件事对他们来说是一种愉快的体验。

我见过最常见、也最糟糕的论文写作错误,就是——根本没有认真写论文。 想让论文最稳妥地被拒掉,一个办法就是拖到 deadline 当天才开始写。学生常常把注意力全放在代码和结果上,却忽略正文。请牢牢记住下面这个简单事实:

所以,如果你连一篇真正的论文都没有,那么结果再漂亮,我也不在乎。

我知道有些学生会暗暗希望:只要自己一直拖下去,最后导师也许就会替自己把论文写出来。过去这种事情确实发生过,但现在我的组已经太大了,再采取这种策略,最终很可能只会落得“没有论文可投”。

还有一个观察:读论文通常不需要太长时间,但写论文却非常耗时。正因为成品论文读起来很顺,人们很容易产生错觉,以为好论文写起来也很轻松。实际上,要把一切变得清楚、一致、证据充分、逻辑严密、优雅、好看,需要投入巨大的精力。我见到的最大问题,就是很多人把写作拖到 deadline 最后一天,而且当时已经严重缺觉。我怎么强调写作对于论文成功的重要性都不为过。

写一篇论文需要付出大量努力。写一篇糟糕的论文,耗费的精力至少和写一篇好论文一样多——甚至更多,因为它可能不断被拒、不断重投。一篇论文大约要花掉纳税人 10 万欧元的研究成本。所以在真正开始之前,请先确认你确实有值得写成论文的东西。可以先问自己这些问题:

  • 你的 Goal(目标) 是什么?为什么别人应该在意?
  • 你的读者是谁?谁会使用这项工作,或者在它的基础上继续研究?
  • 如果你自己真的很想要这个东西来解决某个问题,这是个好信号。把“为什么你需要它”讲清楚。
  • 你的 hypothesis(假设) 是什么?我希望每个人心里都能有一句 “My hypothesis is …”,即使最后没有把它直接写进论文。这个 hypothesis 是否可检验?你怎样判断它是真的还是假的?围绕一个明确的 hypothesis 展开研究,可以避免陷入“增量式工程改进”的陷阱——也就是反复调参、堆技巧,只为了把指标再刷高一点点。
  • 到底是什么问题或障碍导致这个问题到现在还没有被解决?
  • Nugget——那个让原本难以解决的问题变得可解决的关键洞见是什么? 这可能是一篇好论文里最重要的东西,也是学生最难真正理解的东西。后面我会专门讲。
  • 你的 elevator pitch(电梯式陈述) 是什么?也就是说,如果你在电梯里遇到一位资深科学家,她问你的论文是做什么的,你能不能用不超过三句话讲清楚?
  • Teaser(论文首图)——如果只画一张图来解释核心 idea,这张图应该展示什么?
  • 关键的相关工作有哪些?它们还存在哪些问题?所有论文都有局限;找到这些局限,往往就能找到继续前进的方向。
  • 你准备怎样定量评价自己的方法?
  • 你的 “demo” 是什么?换句话说,你怎样最直接地证明这个 idea 是有效的?
  • 最大的风险是什么?
  • 你是否已经拥有所需要的全部数据?

世界各地的人在这一点上其实很相似:我们都非常容易被故事打动。从有语言开始,人类就在反复讲述类似的故事:爱情故事、英雄故事、冒险故事等等。对写科学论文而言,你并不需要掌握所有故事类型,理解其中最基本的结构就够了。

爱情故事里,两个人想在一起,却总有某种东西阻碍他们——常见的是家庭、社会阶层等。障碍看起来不可逾越,但最终爱情获胜。因为我们一路都在为他们“能不能走到一起”而揪心,所以最后的成功才显得格外甜美。

冒险故事里,主人公为了实现一个看似无法实现的目标而不断挣扎,很多时候甚至孤身一人。他在荒野中迷路,四周都是危险。等他最终到达目标时,我们之所以兴奋,是因为一路经历的困难已经把我们带进了这个故事。

英雄故事里,如果没有反派,英雄也很难称其为英雄。每个英雄,都需要一个反派来衬托。反派一度看起来就要获胜,世界似乎将陷入危险;英雄经历一连串打击,最终依靠更强的力量或智慧取得胜利。

一篇好的科学论文,其结构与这些故事非常相似。你先有一个值得实现的目标——就像获得爱情、拿到魔戒、击败反派——但总有某个障碍挡在前面。在科学论文中,我们想得到某种“好东西”,但 data / math / code 等因素阻止我们实现它。previous methods 没能真正完成这个目标。你必须明确说明这些障碍;只有真正解决了障碍,你才成为故事里的“英雄”。我经常把这种结构概括为:

Goal(目标)→ Problem(问题)→ Solution(解决方案)→ repeat(循环推进)

先定义 Goal,并让读者相信它值得追求。然后把它“夺走”——指出为什么现在还做不到。这样,故事就出现了张力:作为读者,我现在已经想要这个目标,却发现它无法实现。接着你用一个聪明的 idea 解决障碍,让它重新变得可能,这时你就成了“英雄”。但一篇真正好的故事不会到这里就结束。冒险途中总会出现一系列新的挑战,每一个都需要被解决。

这种 Problem → Solution → Problem → Solution 的节奏,是把一个科学故事拆成易于理解的小块、逐层推进的最好方式。你带着读者一层层从问题走向关键想法。更重要的是,这种节奏会在潜意识里让人觉得“顺”,因为它符合人类几千年来一直使用的故事结构。

请把这三个词背下来:

Goal(目标)、Problem(问题)、Solution(解决方案)。

一直按照这个结构组织论文,直到它成为你的本能。

另外,一篇论文最好只讲一个主要故事(其中可以有子问题)。如果你把两个大 idea 硬塞进同一篇论文,人们最后通常只会记住其中一个。我自己就犯过这种错误。

我经常使用 Nugget(核心洞见) 这个词,所以有必要认真解释一下。这个说法来自我的博士后导师 Allan Jepson。

字面上,nugget 是一小块闪闪发亮的金子(不是炸鸡块!)。在论文中,它指的是你的关键洞见:一个此前没有人真正意识到的关键洞见;一个能把“原本解决不了的问题”转化为“现在可以解决的问题”的 idea。

Nugget 的本质,是你看待世界的方式与此前所有人都不同。正是这种不同,使一个原本不可解的问题变得可解。

Nugget 不是你的技术贡献。我再说一次:它不是技术贡献本身。 它是引出技术贡献的那个关键想法。Max Planck 曾说过:“关键想法先于创新。” 如果你能够准确地表达自己的关键想法,并把它传达给读者,那么大部分工作其实已经完成了。后面的技术细节只是把这个关键想法落地。

一个好的 Nugget 往往很像 Reese’s Peanut Butter Cup(里斯花生酱巧克力杯):两种原本就很好吃的东西,放在一起反而更妙。很多时候,领域里有人在做 X,X 很难;另一些人在做 Y,Y 也很难。但你突然发现:把 X 和 Y 放在一起做,问题反而变简单了。这会产生一种非常好的“惊喜感”——两个分别困难的问题,合起来反而更容易。

下面是我 1992 年 optical flow 论文里的一个 Nugget。那篇工作后来获得了 Helmholtz test of time award:

https://files.is.tue.mpg.de/black/papers/iccv93.pdf

原文示例: Previous work in optical flow estimation has focused on the violation of spatial smoothness at motion boundaries while ignoring violations of the brightness constancy assumption. Within the robust estimation framework, violations of both constraints are treated in a uniform manner and we will demonstrate that this “robustification” of the brightness constancy assumption greatly improves the flow estimates.

中文翻译: 以往的光流估计研究主要关注运动边界处空间平滑性约束失效的问题,却忽略了亮度恒常性假设同样可能被破坏。在鲁棒估计框架下,这两类约束失效可以用统一的方式进行处理。我们将进一步表明,对亮度恒常性假设进行这种鲁棒化处理,能够显著改善光流估计结果。

这里我到底做了什么?当时整个领域都把注意力集中在空间平滑性上。我则利用鲁棒统计框架,重新思考如何处理空间不连续问题。真正的关键突破在于:这种重新表述打开了一条此前很少有人考虑的思路。一旦把光流估计看作一个鲁棒统计问题,原本分散的问题就可以被放到同一个框架下统一处理,而这最终带来了更好的结果。

这个 Nugget 先与大家已经熟悉的东西建立联系,然后把整个视角翻转过来,从而创造新的机会。它本质上是在说:换一种方式看世界。

还要注意:这个 Nugget 并没有描述具体技术细节。技术细节应该后面再讲。这里描述的是那些技术方案背后的关键洞见。

你的核心洞见是什么?核心贡献是什么?能不能把它们压缩成一句极短的概括?

如果说摘要是整篇论文的概括,那么标题可以看成摘要的摘要。它应该把论文最关键的贡献压缩成像一行诗一样的表达。和诗类似,标题应该简短、具有暗示性,而且一看到它,读者脑海里就能浮现出论文的核心概念。

如果你的工作还比较初步,而且你不想过度宣称自己的贡献,那么论文可能适合采用 “Towards …” 这种标题,例如:

Towards Accurate Markerless Human Shape and Pose Estimation over Time

有些人不喜欢 “Towards”,但我认为,当一项工作是在开启一个新方向时,这个词是合适的。

如果你的工作是在为某个问题提供基础、强调一个新的关键想法,或者打开一个新的研究方向,那么它可能适合采用 “On …” 这种标题。例如:

On the unification of line processes, outlier rejection, and robust statistics with applications in early vision

不要为了显得聪明而把标题起得过于俏皮。我自己犯过这个错误。当时通常会觉得这个名字很好玩,但过几年再看可能就会觉得尴尬——就像喝醉以后去纹身一样。标题可以吸引人、简短、好记,但别忘了:这是科学论文,不是营销宣传册。

也不要为了硬凑一个好听的缩写,而把它强行塞进论文标题。缩写通常是由一组关键词拼出来的,但这些词未必适合直接组成一个自然的标题。当然,如果这个缩写能够自然地出现在标题中,通常会更方便读者记住你的工作。尤其在我们这个领域,论文往往还会发布代码,而代码本身通常也需要一个名字。

一个好记、简短、容易读出来的缩写,可以帮助别人记住你的工作,方便称呼,也更容易被引用。

一个实用的方法是:先把所有相关的关键词写出来,取出它们的首字母,然后看看这些字母能不能组成一个有意义、好记,而且与研究内容相关的词。玩 Scrabble(拼字游戏),其实很有帮助。

一个好的缩写最好具有某种可反推性:也就是说,当我看到这个缩写时,能够反推出,或者至少大致联想到构成它的那些词。因此,我通常会优先使用描述中的主要名词和动词来构造缩写。

SMPL 是个很好的例子。它代表:

Skinned Multi-Person Linear model

这个名字本身已经具有描述性,但更重要的是,我们在设计这个模型时,本来就想让它足够 “simple”。所以 SMPL 这个 Acronym 不只是缩写,它同时强化了模型最核心的贡献和气质。它很短、容易读、辨识度也很高。

关于 SMPL 还有一个背景故事:它一开始其实叫 SIMPLE,但我很快发现,我根本没法在邮箱里搜索 “SIMPLE”——命中结果太多了!于是我们把它缩短成 SMPL。这个名字非常独特,也很好搜索。

这个故事也说明,最好不要使用像 NASA 或 NeRF 这种本来就在其他语境中有含义、搜索时容易混淆的普通名称。

MANO 也很好。它是一个 hand model(手部模型),而 “mano” 在西班牙语里就是“手”。所以起名字时,可以从其他语言、拉丁语、希腊语等寻找灵感。

MANO 的完整展开其实稍微有些绕:

hand Model with Articulated and Non-rigid defOrmations

这说明了一个原则:最终的缩写名称本身最重要。只要名字足够好记,并且能够传达核心想法,那么为了组成这个缩写,完整名称稍微有些生硬也可以接受。

MANO 最开始其实叫 HAND,但审稿人指出,我们不能永远“占有”一个叫 “HAND model” 的名字。他们说得对。这个反馈迫使我们想出了 MANO,而 MANO 其实是更好的名字——至少在英语语境中更独特。世界上可以有很多 hand models,但只有一个 MANO。

例如,假设现在有一篇关于 dressing 3D bodies(为 3D 人体穿衣) 的论文,我们可以先把相关词汇全部写出来:

  • Multi(多重)
  • Mesh(网格)
  • Human(人体)
  • Clothing(服装)
  • Cloth(衣物)
  • Dressing(穿衣)
  • Person(人)
  • Body(人体)
  • Pose(姿态)
  • Latent(潜在表示)
  • Auto-Encoder(自编码器)
  • Variational(变分)
  • Wardrobe(服装集合)
  • Displacement(位移)
  • Regression(回归)

于是,把这些关键词的首字母提取出来并重新组合,可以得到:

MCDPBLVWRH — consonants(辅音字母)

AE — vowels(元音字母)

然后把它们组合起来,看看有没有和 clothing(服装) 相关的短词:

  • CLOTHE(穿衣)
  • ROBE(长袍)
  • CAPE(披风)
  • GOWN(礼服)
  • CLOAK(斗篷)
  • WRAP(披裹)
  • GARB(装束)
  • ENROBE(穿袍)
  • DRESS(穿衣)
  • VEST(背心)
  • COVER(覆盖)
  • ENVELOP(包裹)
  • WEAR(穿戴)

再进一步,看看能否用这些词反向构造出合理的完整名称,例如:

  • Clothed Auto Person Encoding — CAPE(着装人体自动编码)
  • Wardrobe Regressor Auto-Encoder for People — WRAP(面向人体的衣橱回归自编码器)
  • Cloth Encoder — ClothE(服装编码器)

这些词本身多少都能让人联想到 clothing。这种语义上的联系,正是你希望建立的。

如果你不是英语母语者,这件事确实比较难。有一个“作弊办法”:说到底,这其实就是一场 Scrabble(拼字游戏)。所以可以使用在线拼字工具。例如,把你的候选字母输入:

https://word.tips/scrabble-word-finder/

当然,你也可以直接让 ChatGPT 帮你把这些都做掉,不过那样就少了很多乐趣。给方法起名字其实是一道小谜题,也是一件很适合发挥创造力的事。

你并不是一个人在写论文,因为通常还会有几位共同作者。但不要假设他们会替你完成工作。如果你是第一作者,那么绝大部分重担都会落在你身上。

假设你很幸运,有一位或多位资深共同作者。通常他们都非常忙,所以你不能依赖他们替你把论文写出来。

怎样最有效地使用资深共同作者的时间?不要把一堆乱七八糟的初稿扔给他们,然后说:“已经写好了,等你过一遍。”你应该先交给他们一个相对成熟、已经打磨过的版本。

如果你让资深共同作者花大量时间做这些细枝末节的文字润色,其实是在浪费他们的时间。你真正希望他们帮助你的,是打磨论证、检查大逻辑、判断故事是否成立。应该让他们把精力放在真正重要的问题上,而不是琐碎的细节上。

至于“谁应该署名、作者顺序应该怎样排”,那是完全不同的另一个话题,这里就不展开了。

  • 第一条,也是最重要的一条写作建议:少写一点。 尽量寻找更短、更简单的解释。压紧你的论证,删除多余词语,砍掉 filler,直达核心。

  • 先写一个 “糟糕的第一稿(shitty first draft)”,而且要尽早写,越早越好。即使还没有任何实验结果,也完全可以先写 Introduction(引言)。这个过程会迫使你整理自己的思路。第一稿不要过分纠结语法,先把逻辑结构理顺;只要逻辑是对的,语法之后很容易修改。

  • 人理解概念的方式各不相同。一个重要概念最好通过三种方式来解释:文字、图和公式。这并不是重复,而是在帮助不同类型的读者建立理解。论文中的概念对作者本人往往很清楚,但对读者未必如此。如果一个概念非常重要,我希望它能够以三种形式呈现:文字、公式和图。文字负责用相对非技术化的语言说明核心意思;公式负责把概念表达得更加精确;图则负责帮助读者建立直观理解。正如那句常说的话:一图胜千言。

  • 一篇论文如果能够反复形成 “文字 → 公式 → 图” 的结构,读起来通常会更加流畅。这样的安排可以打破大段文字带来的单调感,让读者的大脑得到短暂的调节,同时形成一种自然的节奏。你可能从未想过论文也有节奏,但真正优秀的论文确实如此,而这种节奏能够让读者更容易持续保持注意力。

  • 所有好论文一开始都是坏论文。好论文都是一遍又一遍重写出来的。把一段话重新写短,几乎总会让它变得更好。

  • 打磨很重要。如果文章的文字表达很差、参考文献很乱、图很难看、符号系统又很混乱,审稿人会非常严厉地评价你的工作。

  • 论文里不要使用英语中的省略形式,例如 don't、can't、it's。 写得正式一点。例如,不要写 don't,而写 do not。

  • 不要使用感叹号(永远不要!)。

  • 避免写:

    “Next we optimize over the shape space.”(接下来,我们在形状空间上进行优化。)

    真正执行优化的并不是作者本人,而是方法本身。更合适的是:

    “Next, the method optimizes over the shape space.”(接下来,该方法在形状空间上进行优化。)

  • et al.(等人)和 e.g.(例如)不应该使用斜体。我也不知道为什么有人开始这么写。

  • 下面这种写法让我很抓狂:

    Author[10] Author et al.<space><space>[10]

    作者名和引用编号之间应该正好有一个空格,不能没有空格,也不要两个空格。LaTeX 中可以写:

    Author \cite{Author} Author et al.~\cite{Author}

    不需要写 Author~\cite{Author},这种写法既多余,也可能导致换行问题。

  • 不要用 \cite{Author} 直接开头。否则会出现:

    “[10] was the first to do X.”

    应改成:

    “Author et al. [10] were the first to do X.”

    如果这样太长,也可以不点作者名字,例如:

    “Robust penalty functions are often used instead of the L2 loss because they are more robust to outliers \cite{Author}”.

  • 时态一直是很棘手的问题。选定一种时态——我建议使用现在时——然后全文保持一致。我经常看到一个段落里过去时 → 现在时 → 过去时 → 现在时来回跳。用现在时描述相关工作,一开始可能听起来有点奇怪,但坚持这样写,通常效果很好。

  • 有一个例外:描述数据集是怎样创建的时,使用现在时往往不自然。尤其是在描述参与实验的人类被试时,通常更适合使用过去时。

  • 避免写:

    “In this section we do the following …”(在本节中,我们将进行如下内容……)

    不要预告“接下来要做什么”,直接开始做。

  • 会议论文本来就篇幅有限。如果逻辑组织得好,读者自然能知道后面每一节在干什么,因此没必要浪费一整段去介绍“本文其余章节安排如下……”。

  • 但有一个例外:如果方法本身非常复杂,那么在进入技术细节之前,可以先给出一个简短的方法概览,最好再配一张图。

  • 如果你发现自己在反复重复相同的文字或公式,通常说明论文的结构存在问题。一篇短论文不应该需要不断重复。良好的逻辑结构应该让内容自然向前推进,而不需要依靠冗余来维持连贯性。

  • 复合形容词要注意连字符。例如:

    state-of-the-art results

    但下面这句不需要连字符:

    “We define the state of the art.”

    如果第一次使用缩写 SOTA,要先完整写出:

    “we compare with the current state of the art (SOTA)”

  • 避免含糊、犹豫的表达。很多人会写:

    “We can compute X with Y.”(我们可以用 Y 计算 X。)

    但他们真正想表达的是:

    “We compute X with Y.”(我们用 Y 计算 X。)

    “can” 会给人一种感觉:你也许能做,但实际上可能并没有做。如果你真的做了,就直接说你做了;如果你没做,那为什么要写进论文?同样,不要写:

    “The loss can be written as follows:”(损失函数可以写成如下形式:)

    更直接地写:

    “The loss is:”(损失函数为:)

    删除那些多余的词,以及所有让人感觉你在犹豫或不确定的表达。表述要明确、肯定。

  • 类似地,我最常修改的一类句子是:

    “we aim to exploit …”(我们的目标是利用……)

    直接写:

    “we exploit …”(我们利用……)

    不要绕弯。直接把你实际做了什么说清楚。

  • 总体来说,论文里的人太喜欢使用 “we” 了。很多人会写:

    “First we do x and then we do y.”(首先我们做 x,然后再做 y。)

    但他们真正想表达的是:方法先执行 x,再执行 y。如果写成 “we do it”,从字面上看,就像这些操作是作者手工完成的一样。

  • 大小写本身并没有唯一正确的答案。章节标题中的词是否首字母大写都可以。真正重要的是:保持一致。 如果格式风格不断变化,会在潜意识里告诉读者:你并不重视细节。如果连大小写这种小地方都不注意,审稿人就会开始怀疑你的代码以及实验到底有多严谨。

  • 我经常看到有人写:

    “our work is more accurate”(我们的方法更准确) “our method is more robust”(我们的方法更鲁棒)

    一旦用了 “more”,就必须回答:more than what?(比什么更……?),应该写成:

    “our work is more accurate than the baseline”(我们的方法比基线方法更准确)

    同样,使用 “better” 时也必须回答:better than what?(比什么更好?) 一定要把比较对象写明确。

  • 另一个很常见的问题是 “allows to”。例如:

    “a learned warping field allows to model human deformations”(学习得到的形变场可以对人体形变进行建模)

    这里的 allows to model 是错误的。可以改成:

    “a learned warping field models human deformations”(学习得到的形变场对人体形变进行建模)

    或:

    “a learned warping field allows the method to model human deformations”(学习得到的形变场使该方法能够对人体形变进行建模)

    或:

    “a learned warping field makes it possible to model human deformations.”(学习得到的形变场使人体形变建模成为可能。)

    allow 的一个含义是“允许某人做某事”,因此句子中必须明确是谁被允许做这件事。在第二个正确例子中,这个对象就是 the method。每次你想写 allows to 时,都先问自己:allows who to do what?(允许谁做什么?)

    更好的做法是尽量避免这种写法,因为它本身就不够精确。我们的代码并不是在“授权”某个形变场去对人体形变进行建模。

  • 尽量避免模糊的词,例如:

    provides / enables / allows

    这些词本身没有解释任何机制。method / data 到底怎样 provide(提供)、enable(使能够)、allow(允许)?科研写作应该尽量把机制说具体。

  • 也要避免像 “paramount importance”(至关重要、重于一切) 这样的词。它字面上等于“比任何其他事情都重要”,这是一个很难支撑的绝对表述。unique(独一无二的) 也类似。这类词不给自己留任何余地,一旦使用,就是主动邀请审稿人来挑战你。

  • 很多人会滥用 “to that end”(为此 / 为了达到这一目的)。如果要使用这个短语,那么前文所指的那个“目的”必须非常清楚。但在我看到的 80%–90% 的情况中,这个目的其实并不明确。

  • ChatGPT 很适合用来检查和修改语法,但不要过度依赖它,更不要让它替你完成真正的写作。它生成的句子通常读起来很流畅,因此很容易让你误以为内容本身也很好。但根据我的经验,它经常会写出一些语法完全正确、却没有多少实质内容的句子:过于冗长、不够精确,而且缺少只有你自己才能提供的关键洞见。

  • 一个很明显的“ChatGPT 痕迹”,就是频繁使用类似 delve(深入探讨) 和 showcase(展示) 这样的词。我非常不希望看到用 showcase(展示) 来描述实验结果。实验结果的作用是评价你的方法,而不是替你推销产品。我们又不是在卖高级手表!作为科研人员,你应该保持客观、中立。你提出一个假设,例如“该方法会优于当前最先进的方法”,而实验结果的任务只是冷静地检验这个假设。

  • 最后一个我特别介意的小问题:Overleaf 默认情况下对英文引号的处理并不总是正确。如果直接输入普通的双引号,LaTeX 排版出来的左引号可能不符合规范。正确的写法是:

    ``quote''

    也就是说,左引号使用两个连续的反引号 “,右引号使用两个连续的单引号 ”。

  • 尽量不要 over-claim(过度宣称)。我们都会对自己的工作感到兴奋,而这种兴奋很容易在文字中表现得过头。要保持自我批判,适当收敛这种热情。论文不是广告,你也不是在卖产品。过度宣称很容易引起审稿人的反感。
  • 也不要 under-claim(过于保守地表述贡献)。你的创新贡献必须清楚地写出来。
  • 再问一次:你的目标读者是谁?谁会使用这项工作?你一定要有一个清楚的信息想要传达给他们。
  • 审稿人也有自己的工作,而且通常时间非常紧张,所以请尽量让他们的工作更容易。你应该先了解审稿人需要完成什么任务。例如,CVPR 审稿人指南:

https://cvpr.thecvf.com/Conferences/2024/ReviewerGuidelines

  • 审稿人在审稿表中需要回答哪些问题?

  • 问题 1:总结。用 3–5 句话描述论文的核心思想、实验以及它们的重要性。

  • 那么你就应该主动把这 3–5 句话“送给”审稿人。也就是说,你的核心思想必须非常清楚,而且容易被概括。例如,可以直接写:

    “Our key ideas are …”(我们的核心思想是……)

    或:

    “The significance of our experiments is …”(我们的实验意义在于……)

    这样可以让审稿人很容易抓住重点。

  • 我们也经常在论文中安排一个以

    “Our contributions are …”(我们的贡献包括……)

    开头的段落,把贡献集中放在一个位置,方便审稿人直接找到。

  • 问题 2:论文中哪些方面做得特别好?

  • 问题 3:优点。请考虑 key ideas(核心思想)的 significance(重要性)、experimental validation(实验验证)以及 writing quality(写作质量)。请清楚说明为什么论文的这些方面是 valuable(有价值的)。

  • 审稿人应该能够非常轻松地找到这些内容:key ideas(核心思想)、experimental validation(实验验证) 的总结、工作的 significance(重要性),以及它为什么 valuable(有价值)。你甚至可以直接使用这些关键词或类似表达,降低审稿人提炼信息的难度。

  • 问题 4:缺点。请考虑核心思想的重要性、实验以及写作质量。请清楚说明为什么这些方面构成论文的不足,例如:为什么某项已有工作实际上已经展示了论文的核心贡献,或者为什么现有实验不足以验证论文中的主张。

  • 你的工作存在哪些不足?一定要非常清楚地说明自己如何超越相关工作。把实验结果放到上下文中,让审稿人知道这些实验究竟如何支撑论文中的主张。一张只有数字的表远远不够。你必须解释这些数字意味着什么。数字本身也应该讲出一个故事。

  • 在第 4 点上,良好的科研规范有时会让我们处于一点劣势:我们必须主动讨论方法的局限性或不足。确实,有些审稿人会抓住这些地方狠狠攻击,但这件事仍然必须做。认真想清楚这些弱点,以及未来可以怎样解决它们,并把可能的解决方向写出来。审稿人有时会说:“好,那你把这些做了再来投。”这当然存在一定风险,但实际上我们也没有更好的替代方案。

现在距离 deadline 只剩 3 天,你的正文还是一团糟,实验结果也没有像预期那样出来,而计算集群还被所有人挤爆了。怎么办?

这时,你必须在冷静清醒的状态下做出一些艰难的决定。你原本“冲击最佳论文”的梦想也许已经破灭了,但你手里很可能仍然有一些真正有用、真正新颖的东西。

不要一直盯着“自己还缺什么”,而要专注于“自己已经拥有什么”。我经常用一句话来形容这种状态:

“Dance with one who brung ya.”(和带你来的人跳舞。)

大意是:你去参加舞会,虽然在那里遇到了另一个更想一起跳舞的人,但如果你是一个守信的人,就应该和那个真正陪你来到舞会的人跳。

现在也是一样:接受你目前真正拥有的东西,然后把它做到最好。以后还会有新的机会、新的截止日期、新的论文。现在要现实一点,从现有结果中找出真正的 Nugget(核心洞见),然后把这个故事讲好。

你甚至可能会发现:一个更小、更聚焦的故事,反而是一个更好的故事。到最后,你也许真的会喜欢上那个“带你来到舞会的人”。

Teaser(论文首图)到底是什么?为什么要放它?

Abstract(摘要),用文字概括论文的主要思想;而 Teaser(论文首图),做的是同一件事,只不过采用视觉形式。它应该帮助读者在深入阅读正文之前,快速抓住论文最核心的想法。

对一部分读者来说,Abstract 和 Teaser 可能就是他们唯一真正会看的内容。因此,两者结合起来,应该能够给出这项工作的一个高度浓缩版本。

Teaser 常见有几种形式:

  1. Summary of results(结果总结):如果你的结果非常漂亮,可以在一开始就展示这些结果,用它们直接说明方法的性能。
  2. Illustration of the problem(问题展示):展示现有方法存在哪些问题、为什么会失败,以及你的方法如何更好地解决这些问题。
  3. System overview(系统概览):一般来说,这种形式没有前两种那么有用,但如果系统足够简单,也可以采用。总体上,除非这个概览本身就是一个非常容易理解的 cartoon summary(卡通式概览),否则不建议把复杂的系统框架图放在论文第一页。

这是 Nature 对 abstract 的写法要求:

https://www.nature.com/documents/nature-summary-paragraph.pdf

我们当然不需要完全照着它那么严格地写,但它确实提供了一个很好的思路。

下面是我自己的 Mad Libs(填空式)摘要模板。保留其中这些关键的连接词,然后把空白部分替换成你自己的内容。这个结构同样可以进一步扩展成完整的 Introduction(引言)。

英文模板: _____ is widely used in computer vision and has applications in _____.

中文模板: _____ 在计算机视觉中被广泛使用,并应用于 _____。

英文模板: Recent work has addressed this problem by _____.

中文模板: 近期工作主要通过 _____ 来解决这一问题。

英文模板: Unfortunately, all of these approaches _____.

中文模板: 遗憾的是,所有这些方法都 _____。

英文模板: In contrast, we do something different (insert nugget of an idea).

中文模板: 相比之下,我们采用了一种不同的方法:_____。

英文模板: This fixes _____, however, it does not solve _____.

中文模板: 这解决了 _____,然而,它仍然没有解决 _____。

英文模板: Consequently, we develop a novel _____.

中文模板: 因此,我们提出了一种新的 _____。

英文模板: While promising, _____ is non-trivial.

中文模板: 尽管这一方案很有前景,但 _____ 仍然并非易事。

英文模板: Therefore, we further do something _____.

中文模板: 因此,我们进一步 _____。

英文模板: We evaluate _____ qualitatively and quantitatively on _____ and find that it is more accurate than the state of the art.

中文模板: 我们在 _____ 上对 _____ 进行了定性和定量评估,并发现其准确性优于当前最先进的方法。

英文模板: Code and data will be available for research purposes.

中文模板: 代码和数据将开放用于科研用途。

你会发现,这个模板实际上反复使用了同一个结构:

Goal(目标)— 说明研究主题的重要性
Problem(问题)= “Unfortunately(遗憾的是)” —— 引出已有方法的不足
Solution(解决方案)= “In contrast, we(相比之下,我们……)” —— 引出我们的不同之处和核心想法
Problem(问题)= “While promising(尽管很有前景)” —— 指出前一方案仍然存在的新困难
Solution(解决方案)= “Therefore(因此)” —— 引出为解决这一困难而采取的下一步方案

换句话说,整个摘要其实是在不断重复:

Goal(目标)→ Problem(问题)→ Solution(解决方案)→ repeat(循环推进)

当然,你也可以增加新的 Goal(目标),或者以不同的方式组合这些结构。但如果你的 Abstract(摘要) 中完全没有体现这些加粗词所承担的逻辑作用,那么很可能说明你的故事还没有讲清楚。

不要写:

“We are interested in X.”(我们对 X 感兴趣。)

没有人关心你个人对什么感兴趣,也没有人关心“你想做什么”。真正重要的是:你的目标读者需要什么?

更好的开头是类似:

“X is important because … and X is unsolved because …”(X 很重要,因为……;而 X 至今仍未解决,因为……)

不要把论文写成关于“作者本人”的故事。论文不是关于你,而是关于现实世界中那个值得解决的问题。

真正要回答的是:

为什么这个问题很重要?为什么它现在还没有被解决?

一个真正好的 Related Work(相关工作),能够把一篇本来已经不错的论文,进一步变成一篇可能“经得住时间检验”的论文。

很多人把这一节拖到最后一刻,然后匆匆拼出一份流水账式的文献清单:

“Foo et al. did X and it was bad so we do Y.”(Foo 等人做了 X,但效果不好,所以我们做 Y。)

这种写法的目的往往只是替自己的方法找理由,证明自己比别人更好。

但真正好的相关工作应该让读者理解:这个领域是怎样一步步发展到今天的。它不仅要为刚进入该领域的读者提供一个起点,更重要的是,还应该教会读者应该怎样理解这个领域。也就是说,你需要结合当前论文的研究背景,重新组织和梳理这一领域的发展脉络。

要做到这一点,就不能按照“论文 A、论文 B、论文 C”的顺序逐篇罗列,而应该按照不同的主题或类别来组织相关工作,并指出不同方法之间真正的共同点。

我不断看到论文里写:

“To the best of our knowledge, we are the first to do X.”(据我们所知,我们是第一个做 X 的。)

这句话本身没有问题,但有些论文随后引用的最早工作居然只追溯到 2020 年。如果你只读了最近四年的论文,那么这个 “to the best of our knowledge” 的说服力可能并没有那么强。

写 Related Work(相关工作) 时,应该尽量向更早的研究追溯。把自己当成一名侦探,沿着思想的发展脉络不断向前寻找:这个想法最早从哪里来?谁最先提出过类似的概念?它又是如何一步步演化到今天的?

一个好的 Related Work 不是一份“别人都做了什么”的流水账式文献清单,而是在教学。它应该对相关工作进行组织、总结和分析。

每一段最好围绕一个明确的主题展开,并回答两个问题:

  • 这一类已有工作做对了什么?
  • 它还遗漏了什么?

这是关键。你需要分析已有工作,而不仅仅是罗列已有工作。

这里还有一个听起来有些反直觉的建议:这一节尽量使用现在时。是的,那些工作是在过去完成的,但它们就像数学定理一样,今天仍然存在、仍然成立。

所以不要写:

“Black et al.~\cite{..} proposed …”(Black 等人之前提出……)

而写:

“Black et al.~\cite{..} propose …”(Black 等人提出……)

刚开始可能会觉得有些奇怪,但习惯以后就会很自然。

  • 你提出了一个很新颖、很漂亮的新方法,而且自己非常兴奋。审稿人通常也喜欢漂亮的新方法。但你首先应该问自己:

    “Is there a simpler method that can solve this?”(有没有更简单的方法也能解决这个问题?)

    这就是你的 baseline(基准方法)。你应该尽早实现一个简单的基准方法并进行测试。你可能会惊讶地发现:很多简单的基准方法其实非常难以超越。

  • Change ONE THING AT A TIME(一次只改变一个因素)。

    一次只改变一个因素。如果你从 baseline(基准方法) 出发,同时改变了方法和数据,那么谁也无法判断最终的提升究竟来自哪里。这是我在论文中见过的最大错误之一。

    这正是 ablation study(消融实验) 存在的意义:一次只改变一个因素,然后观察它带来了什么影响。

    一个领域真正能够积累知识,依靠的正是这种实验逻辑。如果读者看完你的实验部分后,仍然不知道“真正起作用的到底是哪一个设计”,那么这个实验部分实际上就是失败的。

  • 要公平。你的任务不是把竞争方法“打得体无完肤”。实验的目的应该是学习、传授和帮助读者理解。

    还是那句话,实验也要讲故事:

    不同方法之间的对比揭示了什么?我们从这些比较中学到了什么?

  • 这一点我怎么强调都不为过:论文中的公式必须和代码一致。这是我在截稿前帮学生修改论文时最常见、也最严重的问题之一。如果论文中的公式与代码不一致——而这种情况其实经常发生——那么整篇论文的故事都会出现问题。两者必须保持一致。

  • 一旦实验已经全部跑完,你实际上就没有其他选择了:论文中的公式必须忠实反映代码。即使代码里存在某个临时处理,或者某个设计现在看来不够优雅,把它如实写出来可能会有些尴尬,但也必须这样做。

  • 如果你足够早地开始写公式,就有机会提前发现错误,然后及时修改代码并重新运行实验。因此,公式和代码应该同步编写。

  • 把符号系统设计好非常非常难。现在就应该认真考虑论文中的符号表示,避免让同一个变量承担多个含义。如果 x 已经表示 pixel(像素),就不要再用它表示其他东西。你需要提前想清楚以下符号该如何表示:scalar(标量)、vector(向量)、matrix(矩阵)、index(索引)、constant(常数)、function(函数)、set(集合)。

    如果符号设计不够严谨,就会增加读者的认知负担,让论文更难理解。符号设计的目标应该是:让读者更轻松,而不是让读者更辛苦。

  • 一个可以作为起点的符号约定是:

  • \mathbf{A} 表示矩阵;

  • \mathit{a} 表示标量变量;

  • \mathit{A} 表示常量;

  • \mathbf{a} 表示向量;

  • \alpha 表示需要被优化的参数;

  • \Alpha 表示一组 / 一系列参数。

  • 一个很好的做法,是为论文中出现的所有符号建立一张表。这张表最终可以放到附录或补充材料中。最好从一开始就建立它:每出现一个新的符号,就立刻添加进去。这样你很快就会发现前后不一致的地方。

  • 标点与公式。把公式当成普通句子的一部分来处理。也就是说,要像处理普通文字一样,给公式加上逗号和句号。

    如果一句话以公式结束,那么公式后面应该加句号。

    如果公式后面紧接:

    “where x is a variable …”(其中 x 是一个变量……)

    那么公式末尾应该加逗号。

  • 关于 \hat 的一个小细节:应该写

    \hat{c}_i

    而不是:

    \hat{c_i}

    正确写法会让 hat 正好位于 c 上方;错误写法会让 hat 奇怪地居中在 c 和 i 之间。

  • 我经常帮人修改公式前后的间距。如果你在公式前后留一个空行,LaTeX 往往会加入过多的空白,而且下一行还会被当成一个新的段落自动缩进,即使从语义上看,它其实仍然属于同一段。正确的写法不仅能让 LaTeX 源代码更清晰,也能让最终的排版更加自然:

LaTeX 公式前后间距的正确写法

紧接在公式后面的下一行文字,不应该被缩进成一个新的段落。如果你在公式后多留一个空行,这一行就会被自动缩进,而大多数情况下,这并不是你想要的排版效果。

  • 不要让公式超出页边距,或者侵入双栏之间的栏间空白!这类问题通常是可以修正的。例如下面这个公式:

公式超出页边距的示例

你有几种选择。第一种,是把公式的一部分移到正文中,与文字放在同一行:

将公式的一部分移到正文中的示例

如果只是稍微超出一点,上面这种做法通常就已经足够了。如果公式超出的部分更多,还可以使用 \lefteqn:

使用 lefteqn 处理较长公式的示例

  • 图就像“论文中的另一篇论文”。很多时候,只看图和图注,就已经能够大致理解一篇论文。遗憾的是,有些读者可能真的只会看这些内容;但反过来说,如果他们仅凭图和图注就能理解你的核心思想和主要结果,那么论文的影响力反而可能更大。

  • 尽早开始制作图。我通常会先在白板上画草图:也就是说,先想象最终应该有哪些图,以及准备怎样通过这些图来讲故事。这个过程会帮助你判断哪些实验才是真正关键的。

    然后把白板上的草图拍下来,先作为占位图放进 LaTeX。这样,你很早就已经拥有了一篇“带图的论文”。随着实验结果逐渐确定,再把这些占位图一张张替换成正式的图即可。

  • 图注一定要真正解释图。读者看完这张图之后应该得到什么结论?应该重点看哪里?不同颜色分别代表什么?尽量降低读者的认知负担。

  • 如果某个细节很重要,它对你来说也许一眼就能看出来,但对读者未必如此。应该加入箭头、圆圈等标记,把真正重要的区域明确指出来。

  • 只要论文中出现了某张图,就应该在正文中明确引用它。听起来理所当然,但很多人真的会忘。

  • 图中的文字必须足够大,读者不需要放大页面就能够看清。

  • 图表的坐标轴必须有标签;如果存在单位,也必须把单位标出来。不要让读者到处寻找,或者自己猜测单位。

  • 大家都喜欢彩色的图,但颜色应该谨慎使用,并承担传递信息的功能,而不是仅仅用于装饰。

  • 我认为 Sintel 数据集 能够变得如此流行,其中一个原因就是它的图像很好看,而且看起来很有趣。适当地加入一些风格和创意,确实有助于更好地传达你的想法。

  • 我几乎总是把图放在页顶或栏顶,例如:

    \begin{figure}{t}

    或者也可以使用 {tbh}。

    这样做有很多理由,其中一个很重要的原因是:节省空间。

    如果使用 {h},LaTeX 往往会把图放在栏的中间,于是图的上下都会产生额外的 \vspace。如果把图放在顶部,就只需要在图的下方留出空间,而且视觉上也会更加整洁。

  • 在正文中引用图时,不要写:

    “In Figure 6 we show …”(在图 6 中,我们展示了……)

    去掉 “we”,直接写:

    “Figure 6 shows …”(图 6 展示了……)

  • 不要拖到最后一分钟才写 Conclusion(结论),然后指望我替你补完。

  • Conclusion 应该简洁回顾论文的核心洞见和主要结果。它有点像 Abstract(摘要),也建议使用现在时。

    但与 Abstract 不同的是:读者读到这里时已经看过全文,因此你可以进一步分析实验结果所说明的问题,而不只是重新概括一遍。

  • Future Work(未来工作):我曾犯过一个错误——列出了太多未来工作。审稿人反而觉得,我们像是在试图把整个领域都“圈进来”。

    所以这里需要保持平衡。一个比较好的做法,是把局限性转化为未来工作:这样既诚实地承认当前方法确实存在限制,又能让读者看到未来有一条现实可行的改进路径。

如果会议允许 8 页,那就尽量把这 8 页真正用好。

如果你最后只写了 7.5 页,甚至 7.35 页,不知为什么,会给人一种“你是不是还没认真写完”,或者“其实没有那么多内容可讲”的感觉。因为正常情况下,大家通常都在拼命删内容,努力把论文压进页数限制以内;因此审稿人潜意识里可能会想:这篇论文是不是还没有完成,或者工作量是不是还不够扎实。

Proofreading is an art(校对是一门艺术)。

  • 一篇真正好的论文,通常都会由多个人进行很多轮校对。

  • 想做到这一点,论文主体就必须在截稿日期之前相当早的时候写出来。

  • READ EVERY WORD(逐字逐句地读)。每一个词都要读。读标题,读图注,读每一个公式。一直读到你自己都看烦为止。这很痛苦,也很考验纪律性,但必须去做。

  • 尝试像第一次看到这篇论文一样去读。假装自己什么都不知道:不知道缩写,不熟悉数学符号,也不了解相关文献。

    用审稿人的眼光去读,而且要非常挑剔。做到这一点很难,需要训练。

  • 引用编号按数值顺序排列。例如:

    [3,9,23,64]

    而不是:

    [23,9,64,3]

    对你来说,这也许只是一个小细节,但它会让读者查找参考文献方便很多。同时,它也会向读者传递一种信号:你非常在意细节。如果连这种小地方都处理得很认真,审稿人往往也更愿意相信你在更重要的地方——例如代码和实验——同样足够仔细。

  • 一个小技巧:在 LaTeX 导言区中加入:

    \usepackage[numbers,sort,compress]{natbib}

    以后就再也不用手工给参考文献编号排序了,非常省时间。

  • 在最终 PDF 中搜索 ?,确认不要提交一份存在缺失引用的文档。

  • 一定要认真校对参考文献列表。很多人在赶截稿日期时会忘记这一点,但一份错误百出的参考文献列表,是最容易惹恼审稿人的方式之一。

  • 只要你认真校对参考文献,我敢保证至少会找到一个错误。一定会。

  • 再检查一遍:有没有遗漏重要的相关工作?

  • 确保引用的是论文最新、最正式的版本。例如,如果一项工作后来已经正式发表于 CVPR,就不要仍然只引用它的 arXiv 版本。

  • 如果能找到页码,就尽量补上,让参考文献信息尽可能完整。

  • 想一想:最终会是谁来审稿?

    论文更有可能被分配给与你所引用文献相关的 AC(Area Chair,领域主席),而 AC 也往往会从参考文献中寻找合适审稿人的线索。理想情况下,这意味着真正了解这个问题的专家会来审查你的论文。

    好的参考文献可能帮助你的论文获得更合适的审稿人。但这也意味着,你必须认真、准确、公平地描述这些人的相关工作。不要贬低已有工作,而应该说明它做得好的地方,以及你的工作究竟在此基础上进一步推进了什么。

  • 在 BibTeX 里,可以用大括号防止 LaTeX 自动把大写字母改成小写。例如:

    {SMPL} {3D} {2D}

    都能保持原来的 capitalization。

    示例:

    title = {{AMASS}: Archive of Motion Capture as Surface Shapes},

  • 图尽量放在页面顶部或底部,因为这样更节省空间。我通常使用 [tbh],或者直接使用 [t]。如果图位于栏的中间,LaTeX 会在图的上下都增加额外的空白。

  • 在 figure 环境中,请不要写:

    \begin{center} … \end{center}

    你会发现,这会在图的周围增加额外的垂直间距。为了节省空间,可以改用:

    \centerline{…}

    \centering 也可以,而且不会增加这种额外的垂直间距。

  • 不要滥用负的 vspace。版面挤得太紧会明显降低可读性。只有当图的间距本身看起来确实不合理时,才应该谨慎使用。

  • 怎样把一篇 9 页的论文压缩到 8 页,又不依赖大量负的 vspace?要记住,LaTeX 的排版变化并不是线性的:正文中一个很小的改动,有时就会导致整个页面布局发生很大的变化。

  • 第一,不要慌。不要一上来就删掉大块的重要内容。想省出一整页,很多时候只需要一些简单的编辑技巧。

  • 第二,检查每一个段落的最后一行。如果最后一行只有 1–2 个词,就应该重写这个段落,想办法把这一行“收回来”。

    在这个过程中,你几乎总能顺便让段落变得更加清楚、简洁,而且很多时候不仅能省下一行,还能进一步省出更多空间。

  • 同样,也要检查公式是否充分利用了版面。

    假设有一个多行公式,以 E(x,y,z)= 开头,而上一段正文的最后一行还有空余,那么是否可以把 E(x,y,z)= 移到前一行正文的末尾?

    这样通常不会影响可读性,却可以直接省出一整行。

  • LaTeX 不喜欢让章节标题或小节标题孤零零地出现在页面最底部。例如,它通常不会把一个章节标题单独留在某一页底部,而后面没有任何正文。

    因此你会经常看到这样的情况:章节标题被推到了下一页页首,而前一页各段落之间却出现了很大的空白,看起来很不美观。

    遇到这种情况,可以从前面的段落开始压缩。不断精简文字、让表达更加清楚,直到腾出足够的空间,让章节标题重新回到上一页。这样有时能够一下子节省出相当多的版面。

Supplemental Material(补充材料),最重要的几点是:

  1. 做到你在正文中承诺过要做的事情。
  2. 补充材料也要像正文一样认真打磨。如果补充材料做得很糟,别人会——而且也应该——据此评价你的工作。
  3. 不要违反投稿规则,在补充材料中偷偷加入不允许的新实验。
  4. 要意识到审稿人可能没有多少时间阅读补充材料,因此内容必须简短、清楚。
  5. 做一个视频。这是你再次讲故事的机会,而且甚至可以比论文讲得更好。审稿人很可能会先看视频,所以一定要把第一印象做好。
  6. 加入更多结果图像,让读者清楚看到正文中的例子并不是经过刻意挑选的有利结果。
  7. 加入失败案例。
  8. DO NOT FORGET(千万不要忘记):一定要在正文中明确提到补充材料和视频。

如果你的方法涉及图像序列,那么你几乎一定需要制作视频。即使不涉及序列,视频仍然是一种非常好的、而且与论文完全不同的叙事媒介。

一个好的视频同样需要时间来制作。某种意义上,视频和 Abstract(摘要)、Teaser(论文首图)属于同一类东西:它们都需要以高度浓缩的方式把论文的故事讲清楚。

  • 视频最好控制在 4 分钟以内,因为大多数人不会认真观看更长的内容。

  • 视频应该有旁白。相比让观众自己阅读屏幕上的大量文字,旁白的效果要好得多。

  • 先写好脚本。

  • 最好把每一句旁白单独录制,这样后期可以自由组合。你当然可以自己配音,但我认为使用真人配音演员或 AI 配音往往效果更好。现在的 AI 配音已经足够自然。

  • 确保视频能够在不同设备上正常播放,至少也要在 Apple 设备上测试一下。

  • 视频对审稿人很有用;审稿结束以后,也可以把它发布到网上,继续传播你的工作。

  • 一定要充分利用视频独有的时间维度。不要只是把论文里的静态图一张张搬进视频。

    要利用“时间”来解释和突出信息。

    例如,在论文中,读者可能很难发现两张结果图像之间的差异。但在视频里,如果让两张图在同一个位置前后切换,这种差异马上就会变得非常明显。

    视频要求你用一种不同的方式思考:不要只停留在论文的二维版面上,而要真正利用时间维度。

Jon Barron 的这个视频,在我看来几乎堪称完美: https://jonbarron.info/mipnerf/

简直是大师级的作品。它究竟做对了什么?

  1. 他在教观众理解核心思想。他真正做的,是一步步“教”观众理解论文最核心的想法。
  2. 他没有试图在视频中照搬论文及其结构。他没有把论文原封不动地搬成视频。论文就是论文,视频应该采用另一种不同的表达方式。
  3. 他充分发挥了视频这种媒介的优势。 他真正利用了视频的特点:利用时间,让内容动起来,通过动态过程进行解释和教学。
  • 这意味着,你需要把论文中原本的静态图重新构思成动态内容。
  • 大约 5:42 的 Positional Encoding(位置编码),就是一个非常好的例子。
  • 即使只是大约 6:11 出现的一张普通图表,他也把它变成了制造悬念的机会。他不会一开始就把所有方法全部展示出来,而是刻意先隐藏一部分,让故事一点一点展开。

好吧,这个视频的确比我们前面说的 4 分钟目标更长。但当你真正掌握了规则之后,当然也可以打破规则。

这个视频真正做到了与论文互为补充。

不要把视频看成截稿前最后时刻临时拼凑出来的一堆结果汇总。想一想:我几乎可以保证,观看你视频的人会比完整读完你论文的人更多,但我们平时却把几乎全部精力都放在论文上。

因此,从项目早期开始,就应该不断思考:

如果用视频,我要怎样讲这个故事?

Have fun!

Deadline 前写论文的确可能压力很大,但它也可以是一段令人兴奋的团队经历:大家共同参与,一起把核心 idea 打磨得更加清楚。