NLP论文的写作技巧 - 来自国外年轻老师的总结
今天在twitter上看到一篇国外年轻老师给学生写的NLP论文如何写作的博客,觉得很受启发,所以在此翻译并分享给大家。
作者:Vered Shwartz
链接:https://medium.com/@vered1986/tips-for-writing-nlp-papers-9c729a2f9e1f
职位:英属哥伦比亚大学NLP助理教授
分享:「深度学习自然语言处理」公众号
多年来,我已经建立了一定的论文写作标准(以及一般性的研究方法),我通常会口头与我的学生分享。最近我意识到我一再重复着相同的内容,更糟糕的是,在论文草稿中一遍又一遍地进行编辑。因此,我决定记录下我的论文写作技巧。这篇博客帖首先是为我的学生准备的,尽管其他人可能也会觉得有用。
这里的一些技巧是特定于自然语言处理论文,尽管其中许多也是通用的,对其他领域可能也有用。有些技巧是标准做法,而其他一些则是我个人的偏好。如果你不是我的学生,可以自由忽略那些;)
随着这一标准的不断变化(希望会有所改进!),我计划更新这篇博客帖。
重要提示:本文档不替代你所针对的特定期刊或会议的提交说明。请始终遵循官方的提交说明和样式文件,如果它们与本文档有任何冲突。
内容
不要忘记为什么。论文需要明确阐明以下内容:1)试图回答哪些研究问题;以及2)为什么它们很重要。确保在深入探讨“如何”问题之前,引言部分回答了“为什么”的问题。
由抽象到具体。将更多技术细节留给方法、数据和实验设置部分。在深入具体细节之前,始终从更抽象的细节开始。实现这一标准的一种常见方式是在技术部分的顶部有一个段落,描述高层次的子组件,同时引用具体的子部分详细描述。在某些情况下,提供所提议方法的视觉概述也很有帮助。参见 Ravi等人(2023)的以下示例段落:
我们的方法的架构如图1所示。我们使用与Cattan等人(2021a)相同的聚类方法,但修改了成对评分器。我们的目标是改进模型解决不是在词汇或上下文上相似的提及对之间的指代的能力,而是一个提及可以通过常识知识和推理推导出另一个提及。因此,我们开发了一个常识推理引擎(3.1节),并使用它来增强成对评分器(3.2节)。
最后写引言、摘要和结论。我认为将引言视为论文的摘要、将摘要视为引言的摘要是有帮助的。因此,它们各自需要涵盖以下方面:1️⃣工作的动机,2️⃣与之前工作的差距,3️⃣提出的工作,4️⃣发现,5️⃣结束语(通常涉及未来工作、局限性或发现的影响)。因此,最好在论文“叙述”在描述结果之后清晰之后,最后才写这部分。以下是 Shwartz等人(2020)的一个示例摘要,我标记了每个方面:
[1️⃣ 自然语言理解涉及通过隐含的背景知识阅读行间文字。] [2️⃣ 当前系统要么依赖预训练语言模型作为唯一的隐含世界知识源,要么求助于外部知识库(KBs)以整合额外相关知识。] [3️⃣ 我们提出了一个基于自我对话的无监督框架作为多选常识任务的新型替代方案。受到探究式发现学习(Bruner,1961)的启发,我们的方法通过询问语言模型一些信息寻求问题,比如“……的定义是什么”来发现额外的背景知识。] [4️⃣ 实证结果表明,自我对话过程显著改进了六个常识基准中四个的零样本语言模型基线的性能,并且与从外部KB获得知识的模型竞争。] [5️⃣ 虽然我们的方法提高了几个基准的性能,但自我对话诱发的知识即使带来正确答案时,未必总是被人类评审认为有用,这引发了关于预训练语言模型进行常识推理内部机制的有趣问题。]
另一种思考方法是,摘要和引言是你说服读者阅读整篇论文的机会。话虽如此,不要使用构建悬念等技巧来吸引读者。我们不是在写小说 :) 提前明确表达主要发现。
少即是多。你可能在这个项目上工作了一年以上。在找到有效解决方案之前,你可能实施了半打解决方案。在论文中,只描述相关的内容很重要,排除了一些(通常是大部分)你所做的工作。尽管研究往往在最终找到一个成功的想法之前涉及许多失败的尝试和弯路,但学术论文的结构是假设你一开始就拥有了一个成功的想法。
在相关的注意点上,论文不一定要按时间顺序描述你做了什么,更重要的是以易于理解的顺序描述。
有些学生认为他们需要在论文中突出展示许多不同的贡献。我认为这并不总是对他们有利。审稿人并不因为更多工作而印象深刻,他们希望看到高质量的工作。不要用平庸的中间步骤淡化你的高质量解决方案。有时候,把一些想法留出来,或者单独写成另一篇论文更好。
这里有一个重要的区别我想要强调。尝试不同的想法并决定在过程中放弃其中一些是合理的。但挑选实验来报告并排除不利结果则是不正当的。例如,假设你正在写一篇方法论文。你在几个数据集上进行了测试,效果很好。现在你在另一个数据集上进行了测试,结果不如现有技术或者你的基线。你仍应该报告这些结果。
论文需要是自包含的。记住,你已经长时间地研究了这个问题,获得了一些并非在领域内普遍知晓的知识。努力写论文,使你的研究室同事们在做不同的自然语言处理任务时可以不必阅读先前的工作就能轻松理解。
语言
保持简单。当论文使用过于复杂的语言时,会让人感到非常沮丧。目标是撰写能够被自然语言处理领域的任何人理解的论文,无论其所在子领域如何。
不要试图显得聪明。没有必要使用“复杂”的词汇,比如使用 "utilize" 代替 "use"。这并不会让你听起来更聪明或更学术。
要简洁。会议(以及一些期刊)论文页面限制的一个优势在于它鼓励简洁性。不要在同一部分重复你的观点(在摘要、引言和正文中重复一些重要观点是可以的)。不要来回切换话题。不要使用空洞的词语,比如“distinct”(比如“我们对五个独特的数据集进行了评估” — 这暗示这五个数据集并不相同)和“novel”(比如“我们提出了一种新颖的方法” — 当然,你并不是在提出一种现有的方法)。
要清晰具体。我本来打算写“不要写抽象或模糊的句子”,但我意识到这是一个抽象和模糊的建议。所以,让我更具体一些:增加例子。我特别喜欢贯穿整篇论文的相同例子。例如,在 Coil 和 Shwartz (2023) 中,我们从标题的“鳄鱼巧克力”示例开始,贯穿摘要和引言,一直到分析部分。但不同的例子也是可以的。请包含例子!
不要写过长的句子。这个建议适用于任何文体的写作。理解长句在认知上会有一定难度。将它们拆分成多个简短的句子。
不要过度吹嘘。近年来,存在一种过度吹嘘论文的倾向,好像每一篇论文都是变革性的 — 然而实际上,自然语言处理领域的论文如此不断涌现,大多数论文几年后几乎不会被记住。我总是更喜欢对论文的贡献保持诚实(甚至在*CL会议之前,我就写了一个“局限性”部分!)。例如,以下是Waterson和Shwartz(2018)论文引言的结尾:
我们尝试了各种评估设置,包括使词汇记忆变得不可能的设置。在这些设置中,综合方法的表现优于基线方法。即便如此,所有方法的性能都令人失望,表明这个任务很困难,需要进一步调查。
我们本可以只提到我们有一个优于基线方法的方法。但我认为重要的是不要欺骗读者,认为这是一个可以应用于下游任务的有效解决方案。
我明白这个建议有些棘手,因为对论文的贡献和局限性保持诚实表面上使你的论文看起来比一个充满热情的推销员写的论文要糟糕。但我真的希望相信,有不少审稿人会超越夸大的言辞,欣赏你的诚信。
与之前的工作比较
了解文献。在先前的工作和现存问题的背景下激发你的工作动机。我听说过一个建议,认为研究生不应该阅读文献,因为这会使他们的创造力减弱。这,恕我直言,完全是胡扯。我们大多数人都不是创造天才,如果你不阅读文献,最有可能发生的事情是你到了写论文的时候,快速通过谷歌搜索相关工作部分,发现你的想法已经被人发表过了。
同时,你也不需要一篇NLP论文在arXiv上发表就马上去阅读。尽量深入研究你目前正在工作的主题,并更有选择地选择其他子领域中更有影响力或有趣的论文。
不要抄袭。我无法再次强调这点。从其他论文中完全抄袭句子是不可以的。确保你不会抄袭的最好方法是阅读相关工作,并用自己的话对其进行总结(强调对你的论文更为相关的要点),并在写相关工作部分时查阅这份文档。在阅读完论文后立即总结它,也有助于你在你的论文中描述它与你自己工作的背景联系。我见过一些模糊描述之前工作的案例,有时会使用完全不同的术语,然后谷歌这些句子,发现它们是“借用”自该论文的摘要。无需多言,不要在未阅读论文的情况下引用它们。
相关工作部分不是一个购物清单。不要仅仅列出与你的论文相关的论文。尝试按主题对其进行分组,得出结论,并用它们来强调你的工作旨在解决文献中的空白。例如,Qin等人(2020)描述了相关工作沿着3个维度,每个段落以与当前论文的区别结束。
要有批判精神。不要假设先前工作中的任何内容都是金子。是的,即使这些都是同行评审的论文。如果你对先前工作中的某个说法表示怀疑,你可能是对的。仔细测试它,并在发现它是错误的时候对其进行挑战。
样式
好的,现在我们进入了挑剔的区域!
不要过度使用大写。不是“Large Language Models”,而是“large language models”。
不要定义基本术语。例如,在一篇自然语言处理的论文中,绝对不需要定义NLP为“natural language processing”。
LaTex中的引号是不同的。开引号是``,闭引号是’’。如果你是从Google文档或其他文档复制内容,请确保替换这些引号。(单引号使用`和‘)。
为表格使用booktabs。你自己来判断哪个看起来更好:
引用
使用ACL文集。在自然语言处理领域发表的大多数论文都可以在ACL文集中找到。会议的样式文件通常包括一个anthology.bib文件,其中包含了这些论文的所有bibtex条目(可从此处下载),以及一个用于其他引用的custom.bib文件。当你想引用一篇论文时,请检查它是否在ACL文集中。如果在其中,点击“引用”即可看到bibtex键。例如:
如果不在ACL文集中,从其他地方(或者Google Scholar / Semantic Scholar)找到bibtex,并将其放入custom.bib文件中。
引用正确版本的论文。Google Scholar通常默认显示arXiv版本,但你应该检查一下该论文是否后来已被其他出版物(期刊或会议)接受,然后引用该版本。
使用正确的引用格式。\citep 用于括号引用,比如“我们从多伦多图书语料库中提取了短篇故事(Zhu et al., 2015)”。\citet(或在*CL样式文件中为\newcite)用于文中引文,比如“Yu和Ettinger(2020)表明语言模型编码了出现在给定文本中的词,但几乎不捕捉短语含义的信息”。
微信扫码关注该文公众号作者