清華大學劉知遠老師親授:如何寫一篇合格的NLP論文
雷鋒網 AI 科技評論按,本文作者是清華大學的劉知遠老師,原文發表在知乎,雷鋒網獲授權轉載。
前幾天剛過完 ACL 2019 投稿季,給不少同學的論文提供了修改建議。其中很多論文,特別是初學者的論文的問題都很相似。一想到未來還要給更多新同學重複這些話,決定索性把這些建議總結出來,不僅以後能少費一番唇舌,說不定還能幫助更多同學。於是就有了這篇短文。
本文題目取「合格」的論文,而不是優美的論文,或精彩的論文。一個原因是,我自知英文水平特別是辭彙有限,從未寫過自認精彩或優美的論文,並無資格提供這方面的建議。另一個原因是,下面會講到,學術論文的關鍵目標並非辭藻優美而是清晰準確,我在這方面還積累了不少經驗。憑藉這些經驗,相信「辭達已矣」不難,「言之有文」則各憑本事吧。
實際上,同組的劉洋老師對 NLP 學術論文寫作做過非常全面而精彩的報告 [1],強烈推薦所有 NLP 同學都仔細閱讀這份報告,相信會讓你少走不少科研的彎路。而本文可以看做對這個報告的腳註或補充。
論文在 NLP 學術研究中的意義
NLP 是一門重視實踐和應用的領域,創新成果可以是新的演算法、任務、應用、數據、發現等,務求一個「新」字,其影響力則取決於它對該領域發展的推動作用。如下圖所示,學術研究是一項系統工程,包括多個環節,共同完成對「創新」的追求:問題務求挑戰,模型務求創新,實現務求準確,實驗務求深入。
學術研究是一項系統工程
在這個系統工程中,論文的作用則是,向學術界同行清晰準確地描述成果的創新點、技術思路、演算法細節和驗證結果。明白這一點,才能正確的對待論文寫作:一項乏善可陳的工作,很難通過寫作變得眾星捧月;一項充滿創新的成果,卻有可能因為糟糕的寫作而無法向審稿人準確傳遞重要價值所在,延誤成果發表。
一篇 NLP 論文的典型結構
NLP 學術會議(甚至包括期刊)論文已經形成比較固定的結構。絕大部分論文由以下六大部分構成:摘要(Abstract)、介紹(Introduction)、相關工作(Related Work)、方法(Method)、實驗(Experiment)、結論(Conclusion)。少數論文會根據創新成果形式不同而略有不同,例如提出新數據集的論文,可能會把 Method 部分調整為 Dataset 的標註與分析,但不影響論文整體構成。每個部分作用不同:
摘要:用 100-200 詞簡介研究任務與挑戰、解決思路與方法、實驗效果與結論。
介紹:用 1 頁左右篇幅,比摘要更詳細地介紹研究任務、已有方法、主要挑戰、解決思路、具體方法、實驗結果。
相關工作:用 0.5-1 頁左右篇幅介紹研究任務的相關工作,說明本文工作與已有工作的異同。
方法:用 2-3 頁篇幅介紹本文提出的方法模型細節。
實驗:用 2-3 頁篇幅介紹驗證本文方法有效性的實驗設置、數據集合、實驗結果、分析討論等。
結論:簡單總結本文主要工作,展望未來研究方向。
乍看這樣每篇論文顯得死板,實際上這正凸顯了學術論文的真正意義,不追求在形式上給讀者帶來意外,而將讀者注意力集中在論文介紹的研究成果上。
如前所說,論文的作用是向學術界同行清晰準確地描述成果的創新點、技術思路、演算法細節和驗證結果。由於學術界的同行評審制度,貫穿全文的線索和目標就是要論證這份工作的創新價值,每個部分都要各司其職為這個目標而服務。為了實現這個目標,需要作者特別注意以下幾點:
(1)學會換位思考。要始終站在審稿人或讀者的角度審視論文,思考如何更清晰地表達。這是初學者最容易忽視的問題:作為研究成果的親歷者,論文作者掌握所有細節,如果不多加留意,寫作中就會出現新概念沒有被明確定義就被使用等情況,很多描述和分析缺少邏輯銜接。對作者而言,這些省去的東西並不影響他對這些文字的理解;但對並不了解這份工作的讀者而言,這無疑是一場噩夢,因為他們並沒有作者腦中的那套背景信息。因此,寫作時要時時留神,讀者讀這句時能否理解,所需要的背景知識前文是否已經介紹。
(2)注意邏輯嚴謹。嚴謹是學術論文的底色,從引用格式、公式符號到謀章造句,雖不至於美國法學期刊的 Bluebook 那麼變態,都力求風格統一,行文嚴謹。引用、公式、拼寫等方面都容易學,初學者更需要注意行文嚴謹,力求全文從章節、段落、句子等不同級別都邏輯嚴密,爭取做到沒有一句話沒來由,沒有一句話沒呼應:
章節層面,Introduciton 提到已有方法面臨的幾個挑戰,就要對應本文提出的幾個創新思路,對應 Method 中的幾個具體演算法,對應 Experiment 中的幾個實驗驗證。
段落和句子層面,段間要注意照應,是並列、遞進、轉折還是總分關係,需要謀劃妥當,要有相應句子或副詞銜接。段內各句,有總有分,中心思想句和圍繞論述句分工協作。
除了整體結構上的建議外,每個部分也各有定式,下面按各部分提供一些寫作建議,同時用我們最近發表的一篇 ACL 2018 論文 [2] 作為例子。
Abstract 和 Introduction 怎麼寫
Abstract 可以看做對 Introduction 的提要,所以我們先介紹 Introduction 的寫法,然後再說如何寫 Abstract。Introduction 是對整個工作的全面介紹,是決定一篇論文能否被錄用的關鍵。一般 Introduction 這麼寫:起手介紹研究任務和意義;隨後簡介面向這個任務的已有方法;接著說明已有方法面臨的關鍵挑戰;針對這些挑戰,本文提出什麼創新思路和具體方法;最後介紹實驗結果證明本文提出方法的有效性。這幾個部分各擋一面,同時又有嚴密的內在邏輯。每個部分也各有章法,下面分別介紹對各部分的建議:
(1)研究任務。介紹本文的研究任務及其在該研究領域的重要價值和意義。如果是領域公認的重要任務的話,則可以不用詳細論述其研究價值/意義;如果是新提出的研究任務,則需要花費比較多篇幅論證該任務的價值。如下所示論文 [2] 的第 1 段集中說明閱讀理解研究任務。
(2)已有方法。從研究任務遞進一步,介紹這個任務的已有代表方法。如下所示論文 [2] 的第 2 段,開始介紹 DS-QA。需要注意,這個已有方法需要是目前最好、最具代表性的,也是本文工作準備改進的。所謂站在巨人的肩膀上,一篇值得發表的論文需要找到那個最高的巨人。
(3)面臨挑戰。已有方法一定仍然存在某些不足或挑戰,才需要進一步研究改進。因此,需要總結已有方法面臨的挑戰。這是 Introduction 的關鍵部分,起著承上啟下的作用。初學者特別注意,這部分涉及對已有工作的評價,務必保證精準客觀。要知道,當論文投稿至 NLP 國際會議後,是通過同行評審決定是否錄用發表,評審人一般是小同行,有很大概率是已有工作的作者。所以這部分論述一定要做到客觀公正,讓這些工作作者本人也能信服。
如下所示論文 [2] 的第 3、4 段,先介紹 DS-QA 的 noisy labeling 挑戰,並且通過舉例直觀呈現。面對這個挑戰,已有一些相關工作,還需說明他們各自有什麼不足和挑戰,為引出本文創新思路做好鋪墊。
(4)創新思路。水來土掩,兵來將擋,既然已有方法有這些不足和挑戰,就需要有新的創新思路和方法。這部分需要注意與上面的」挑戰「部分嚴絲合縫,密切呼應,讓讀者清楚領會到這些創新思路與方法的確能夠解決或緩解這些挑戰問題。
如下所示論文 [2] 的第 5 段,就是介紹創新思路和方法。可以看到,一般」面臨挑戰「和」創新思路「部分還配圖示,更直觀地展示本文要解決的挑戰問題和創新思路。例如論文 [2] 這張醜醜的圖,比較直觀地展示了創新方法包括 Selector 和 Reader 兩個模塊和作用。也可以隨便看我們的其他論文 [3],大部分論文都會在 Introduction 中提供圖示。
(6)實驗結論。除了在」創新思路「部分圖文兩開花地說明本文創新工作外,還要通過合理的實驗驗證方法的有效性。一般要得到」our method achieves significant and consistent improvement as compared to other baselines「的結論,從而驗證本文工作的創新性。
有些論文最後還會體貼的總結本文的主要貢獻,一般說」In summary, the key contributions are x-fold: (1)...(2)...(3)...「。這樣做的好處是,可以幫助審稿人總結本文的創新點放在審稿意見中,節省不少工作量。但需要注意,這些創新點要簡潔明了,不能是前文的簡單重複,也不能 overclaim。如果要說」首次「提出或發現,一般也要前置」to the best of our knowledge「。此外還有論文最後一段會介紹接下來幾個 Section 結構,個人感覺對一篇 8 頁論文可能並不需要。
對於 Abstract,可以看做對 Introduction 的簡介,最簡單的做法是,以上每部分都精簡為 1-2 句話組成 Abstract 皆可。如下是論文 [2] 的 Abstract 內容,可以看出與 Introduction 的對應關係。
Method 怎麼寫
這部分要詳細介紹本文創新方法的具體細節,由於涉及非常艱澀的細節,要採用」總-分「結構來介紹。
這部分起手」總「的部分要介紹本文任務的符號定義,以及本文方法的框架組成,或者按步驟來介紹或者按模塊來寫,讓讀者對本文方法有全景式的理解。如下所示論文 [2] 的 Methodology」總「的部分,就先介紹一些符號,然後分別介紹了 Selector 和 Reader 兩個模塊的主要功能。
然後進入「分」的部分,則需對應「總」中的框架,分別介紹各關鍵模塊/步驟。例如,論文 [2] 的 Methodology「分」的部分,就包括 3.1 Paragraph Selector、3.2 Paragraph Reader、3.3 Learning and Prediction。讀者在「總」的部分已經對方法有全景式的了解,有的放矢,就比較容易理解每個模塊的具體細節。而每個「分」的部分中,又可以進一步採用「總-分」結構進行介紹,例如 3.1 小節做完總體介紹後,又會按照 Paragraph Encoding 和 Question Encoding 分別介紹。為了更清晰地體現「總-分」結構,可以將各「分」的部分命名並加粗。
初學者特別注意,(1)Introduction 中對創新思路與方法的介紹,不要在 Method 中簡單重複,否則會讓認真通讀全文的審稿人頗感厭煩。要做到前後照應,有所遞進,前略後詳,不妨使用「as mentioned in Section 1」來做關聯。(2)Method 部分往往包含大量公式,需要保證公式風格和符號使用前後統一,新符號使用均需顯式解釋。
Experiment 怎麼寫
這部分要詳細介紹與實驗相關的具體細節。一般先介紹實驗數據、評測標準和比較方法等基本信息。以論文 [2] 為例,實驗部分首先介紹實驗數據與評測標準(4.1 Datasets and Evaluation Metrics)、實驗比較的已有代表方法(4.2 Baselines)、實驗方法的參數設置(4.3 Experimental Settings)等基本信息。
在介紹完實驗基本信息後,主要開展兩種實驗:
(1)主實驗。目的是證明本文方法與已有方法相比的有效性。一般需要選取業界公認的數據集合或已有工作採用的實驗驗證方式,提升實驗的可信性。對於學術論文而言,並不需要比該任務上最好的方法相比,只要證明採用本文創新方法與不採用本文方法相比更有效即可,也就是說,實驗中盡量控制其他變數,只聚焦於本文關注的挑戰問題即可。當然,如果能夠因為本文創新思路,得到該任務上的最好效果,會更有吸引力,但不必總是強求。
一般實驗結果用圖表展示,然後在正文進行觀察分析。例如,論文 [2] 的主實驗部分先介紹不同 Selector 和 Reader 對實驗效果的影響(4.4 Effect of Different Paragraph Selectors、4.5 Effect of Different Paragraph Readers),接著介紹主實驗結果和觀察分析(4.6 Overall Results)。其中表格中會把最好效果加粗顯示,一般應大部分位於本文提出的方法;為了更加清晰明了,觀察分析結論可用(1)(2)(3)列出,其中第 1 條一般要得出主要結論,即本文方法要顯著優於已有方法。
主實驗結果
主實驗分析
(2)輔助實驗。目的是展示本文創新方法的優勢和特點。例如,不同超參數對本文方法的影響(Hyper-Parameter Effect),不同模塊對本文方法效果的貢獻(Ablation Test),不同數據劃分對本文方法的影響(如 Few-shot Learning 相關工作比較常見),本文方法的主要錯誤類型(Error Analysis),本文方法能夠改進效果的典型樣例(Case Study)等。這些實驗需要根據論文創新工作特點而有針對性的設計,一切要為體現本文的創新價值而服務。
例如,論文 [2] 的輔助實驗包括 4.7 Paragraph Selector Performance Analysis、4.8 Performance with different numbers of paragraphs、4.9 Potential improvement、4.10 Case study 等,從各方面呈現本文提出方法的特點。
Experiment 部分的特點是要圖文並茂,注重通過多個表格和圖示來呈現本文方法的優勢和特點,需要注意圖表風格統一。初學者特別注意,要做到僅憑圖表下方的說明文字就可以理解每張圖表內容,不要讓讀者還要到跑到正文尋找相關說明。因為,很多有經驗的審稿人在看完 Introduction 後,會直接跳到 Experiment 圖表中尋找對比效果。
Related Work 怎麼寫
這部分主要是介紹本文任務和方法的相關工作,目標是通過對已有工作的梳理,凸顯本文工作的創新價值。對已有工作的梳理,不應是對每個工作的簡單介紹,而應當注意匯總、分類、分析,或者按照時間發展順序,或者按照技術路線劃分,例如論文 [2] 就是按照時間脈絡介紹。
在對相關工作的介紹中,要注意暗合本文創新思路要解決的挑戰,不應是單純的介紹,而是夾敘夾議,時刻注意與本文工作的照應。在 Related Work 的最後,應該落腳到本文工作與已有工作相比,有什麼新的思路,解決了什麼挑戰問題。
初學者特別注意,Introduction 和 Related Work 部分是特別需要導師或其他有經驗學者幫助把關的。一是,不能遺漏重要相關工作,這點需要論文作者對相關領域工作保持跟蹤;二是,與 Introduction 要求類似,對已有工作的評述務必精準客觀。
Related Work 一般放在 Introduction 之後,或者 Conclusion 之前,這一般取決於論文工作的特點。對於那些與已有工作聯繫緊密、創新精微的工作,一般建議放在 Introduction 之後,方便讀者全面了解本文工作與已有工作的關係,然後開始在 Method 介紹本文方法。而對於有些框架性創新工作,如果主要是對已有方法的組合,一般建議 Related Work 放在 Method、Experiment 之後即可。這點並無成法,完全根據行文方便來定。
Conclusion 怎麼寫
在論文最後會有總結展望,一般用一段來再次總結和強調本文的創新思路和實驗結果,然後說明未來建議的研究方向和開放問題。這部分相對來講比較固定。稍微留意的是,在準備論文最後階段,如果發現論文有哪些應當做還沒來得及做的,可以寫作本文的未來工作。至少可以向審稿人表明你也想到這個問題了,贏得一點同情分。
其他建議
要想寫出一篇合格的 NLP 論文,首先是態度問題,只有態度重視,才有可能不厭其煩地反覆修改,才會「不擇手段」地尋找各種辦法來儘力改進論文(找學長找外教藉助 Grammarly 工具等)。其次是動手問題,只有寫下來,才可能不斷改,只要改就能不斷進步。最後是經驗問題,要寫得精彩可能需要天賦,而要寫得合格,只要堅持寫,不斷根據評閱人和其他人的意見進行思考和修改,就可以進步。總之,堅持就是勝利。
實際上,我覺得論文寫作,是對思維模式的訓練。也許未來你並不會從事學術研究,但通過論文寫作鍛煉的凝練工作創新價值的能力、清晰傳遞複雜信息的表達能力,對未來工作中無論是工作溝通、成果展示等,都有重要幫助。所以還希望大家都能重視這個科研道路上難得的鍛煉機會。加油!
小結
論文寫作有很多需要注意的細節和技巧,很多領域甚至都有專門的厚厚一本指南來介紹寫作技巧。這麼一篇短文很難面面俱到,只是介紹一下我指導同學準備論文提的比較多的建議,希望對大家有用。以後想到任何新的建議,隨時更新。也歡迎各位反饋建議和問題,共同進步。
※剛剛,華為宣布決定起訴美國政府
※實例分割的進階三級跳:從 Mask R-CNN 到 Hybrid Task Cascade
TAG:雷鋒網 |