由 Canada University of Waterloo School of Computer Science professor S. Keshav 帶給大家主要使用 IEEE journal template 的架構來做說明
採取以下的方法審核
- Abstract
- Introduction
- Literature Survey Methodology
- Literature Survey
- Related Work
- References
當今天拿到一篇 paper 時,我們該如何快速的進入狀態呢?主要目的是想建立讀者在建構自己的新想法時能夠有些路徑探索
摘要 Abstract #
首先看到 abstract 的區塊,在這裡,作者會提出他們想針對的問題,彙整研究最後產出的貢獻,這可以讓其他研究員能夠快速 review 完做出判斷,判斷該不該繼續讀下去,其中有兩個區塊更能夠讓讀者精準的判斷是否符合需求:
- 分類 (Categories) 與題目描述(Subject Descriptions):在這行作者會提出自己研究上的分類,我們可以知道這篇文獻是否派得上用場
- 關鍵字 (Keywords):而此行將會提到該篇文獻主要研究的問題、提出了哪些方法以及解決方法的技術等關鍵字,這些關鍵字一樣能讓其他研究員快速了解該篇論文是否有什麼方法是對自己有用的
研究員花上大量的時間來閱讀 paper,然後卻鮮少有人去教導,花較少的精力來 review paper,本篇 how to read a paper 就是想帶給新入門的研究生一種快速閱讀文獻的方法,作者稱作為”Three-pass method”,這種方法也能夠快速 survey 原文書
簡介 Introduction #
讀完 abstract 後,有些人會跳過 Introduction,但如果對於該領域還不是很熟悉的研究新手,就建議也先把簡介讀完,因為在這個章節會比 abstract 更加仔細解釋研究問題的來龍去脈
像是為什麼這個研究題目很重要?
並且作者在該章節最後會提到自己提出了哪種方法來解決該問題,通常研究員需要透過閱讀更新的文獻來了解最前沿的研究問題,所以閱讀簡介章節有辦法找到新的藍海題目
文獻回顧方法 Literature Survey Methodology #
為了證明作者提出的問題非常重要,以及他們的方法確實很讚,就需要利用前人的研究來佐證自己的想法,為此文獻調查以及整理資訊就是必須做的,通常在做文獻回顧時都會需要閱讀數十來篇的 paper
不過如果讀者是新進的研究員,又應該如何判斷哪些文獻必須要讀?我們可以用三個階段來判斷哪些 paper 是我們需要讀的
學術搜尋引擎 #
首先我們可以利用比較知名的學術文獻搜尋引擎像是 Google Scholar 或是 CiteSeer 等網站,利用我們目前最關心的 keywords 來搜尋最接近的文獻,通常找個 3 到 5 篇在讀者領域裡最新發表的文獻
拿到這 3 到 5 篇後,首先第一次先快速看一下每一篇的 abstract,裡面都會點出目前有哪些 problematic 在進行
如果問題是我們需要的,那很幸運,可以去看他們的 Introduction 有彙整出哪些近期的 paper,甚至找到大佬寫的 survey paper,那後續就先以看 survey paper 就行
知名學者 #
第二個階段是如果該領域找不到近期比較新的 survey paper,就利用關鍵字以及引用數量找到排名最前面的學者,通常這些人都會是領域內的知名發表人士,下載跟我們有關聯且引用數最高的 paper,以及也要到這些知名學者的網站看他們最新的發表
此時,我們就可以知道該領域內有哪些頂尖的 conference 或 journal,畢竟這些知名學者最常投稿就是頂尖的會議了
尤其在 computer science 領域,由於技術更迭的很快,所以大部分的 conference 都比 journal 有更高的影響力,會議只需 3 到 4 個月的審核時間,但期刊最快也要 6 到 8 個月,慢的話 9 到 12 個月都有可能,期刊整理完發表出來的方法應該不算新了,有時審查人員在審稿時看到有人做跟自己很相近的內容,就會馬上交辦自己底下的博後或博士生 survey 相關的方法
這樣 journal 出來後可能就一堆 conference paper 有很多種變形的方法,此時研究進度會比其他人更落後
頂尖會議 #
第三階段是我們知道了有哪些頂尖會議後,就可以尋找網站上近幾年的研究成果,快速了解一下何謂高水準的研究,也許在網站上找到的一些優質 paper 我們已經下載過了,所以試著先 survey 這些優秀的 paper,如果這些 paper 也共同指向了某篇關鍵 papaer,但我們卻沒看過,就必須找出來讀
如果發現某一篇也一直被 cite,那也必須找出來看,因為作為一個研究生我們必須不斷追問最核心的問題,為什麼這些知名的學者都認爲這個問題很重要?
往往會有一個根源是這些學者已經深植於心,認為自己有義務替這個問題找出答案,所以我們也有義務去了解,並且將這個問題一直掛在心上,如此,我們才有辦法達到跟這些知名學者一樣的高度,這也是文獻回顧最重要的理念
文獻回顧 Literature Survey #
我們已經知道目前有哪些問題可以研究,並且在簡介時作者說明想要提出什麼樣的方法來解決,在方法論中,他們就會提出自己的架構,給其他研究員一個大方向
而如果我們是研究新手,或者第一次接觸的領域,就不太可能只看一次就看懂,所以我們大概抓個看三遍為基準,如果缺少更多背景知識,也許可以更多次
但重點應該不是拿到一篇 paper 後就從 abstract 直接看到尾的 conclusion,每一次的重點我們應該放在想要在這篇 paper 上知道什麼事情?
像是可以突破我們舊有的思維框架,或是參考上一次看到的東西,哪些地方看不懂,在下一次我們補齊缺少的東西後,應該要可以看懂
- 第一次我們看 paper 時要找出作者想表達的想法是什麼,想要解決的問題是什麼?
- 第二次我們抓出這篇 paper 的重點內容,作者使用哪種解決方法、技術,但還不需要知道太細節的部分
- 第三次看時我們應該要開始深入了解這篇 paper,知道作者提出的方法是如何解決問題的
第一步驟 #
第一次快速鳥瞰整篇 paper,先見林再去見樹,在此階段我們就可以決定需不需要這篇論文,如果需要的話就可以往下更多次的閱讀,取決於我們對於 paper 領域的熟悉度,如果單篇裡有太多術語是看不懂的,肯定需要花些時間來了解這些行話
通常快速掃過去大概 5 到 10 分鐘,根據以下的策略來達成:
- 仔細閱讀 paper 標題、Abstract 以及 Introduction
- 閱讀每一個 Section 以及 Sub-section 標題,但不先去看裡面的內容
- 閱讀結論
- 稍微瞄一下 References,在心裡頭回憶一下我們有看過的
在我們完成了第一次的快速掃描後,應該要能夠回答 5 個 C:
- Category:這是一篇什麼樣的論文?是針對已存在的系統做分析?還是針對一個新的研究雛形做探討?
- Context:這篇 paper 跟其他的論文有哪些關聯性?在這篇文獻裡使用了哪種基礎理論針對問題進行分析?
- Correctness:這篇論文提出的假設是合理的嗎?
- Contributions:這篇 paper 主要的貢獻為何?
- Clarity:這篇 paper 讀起來順暢嗎?架構是否清晰?作者想解決的問題跟提出的解決方法描述夠清楚嗎?
根據這 5 個 C,我們可以決定要不要接著仔細讀這篇 paper,取決於是否對題目很有興趣?還是論文裡有太多東西不了解所以讀起來很吃力?或是作者提出的假設根本不合理,總之讀第一遍我們就知道該篇 paper 對於目前的研究是否有幫助,或未來才用的到,就能先判斷要不要讀
順帶一提,未來我們在寫 paper 時都可以假設大部分的 reviewer 或其他研究員只會讀我們的 paper 一遍,所以仔細挑選每一個 section、sub-section 的標題,以及簡潔有力且豐富的 abstract 是很重要的,否則如果審稿人員沒辦法在第一次 survey 完我們的成果就抓到我們的想法,很高機率就會直接 reject 掉我們的投稿了
而其他研究員如果無法在 5 分鐘後了解我們想要解決的問題,那也是高機率不會繼續讀下去
第二階段 #
決定讀第二遍是因為在第一次時我們覺得這篇 paper 有價值,此時我們需要更仔細的去挖掘,不過還是先忽略掉像是證明方法的章節等更細部的區塊,在這個階段我們可以在閱讀時記下 paper 裡重要的關鍵點,或是在空白處先記錄一下自己的想法,對於後續做整理時會有幫助:
-
我們要仔細看作者在 paper 裡放的圖片、表格或解釋的圖形,畢竟不管是 conference 或 journal 的 paper 都有篇幅限制,可以想見作者應該是深思熟慮後才決定放文字之外的東西上去,而身為讀者就應該要時刻警惕資料的的標示是否正確?結果是否有基準跟誤差值,使得結論具有統計上的意義?
這些常見的錯誤可以將倉促、粗劣的研究結果與真正優秀的研究結果做出區別
-
通常一些表格裡會顯示其他篇 paper 的結果進行比較,我們要記得標記這些有關聯但沒有在該篇 paper 仔細描述的資料,以利我們之後再 References 找到相關的文獻,補齊需要的 background
在第二次閱讀時大概要花一個小時,閱讀完後我們應該可以抓出 paper 裡八成的內容,包括作者想要解決的問題,以及他們證明自己解決的方法是否可行,不過目前我們還是因為對 paper 有興趣所以才繼續讀下去,卻不知道作者的方法對我們的研究有何幫助
有時候讀完第二次之後還是有可能不完全了解整篇 paper 的細節,可能是這篇 paper 裡還有許多我們不熟悉的術語,或者作者的實驗方法與證明手法我們未曾使用過,甚至是論文裡充斥大量未經證實的想法,以及參考大量前人的做法導致該篇的架構不清晰
總之這些原因有可能讓我們讀起來很吃力,也有可能其實是我們讀很久了,所以累到無法好好讀進去,在這總總因素中我們可以做出幾個選項:
- 把 paper 丟到一旁,冀望之後完全不會用到那篇 paper 的方法,之後的人生也一樣一帆風順
- 晚點再去看論文,先去把需要的 background 補齊
- 無視這些問題直接閱讀第三次
第三階段 #
當一篇論文看到第三次是為了完整了解整篇 paper 的內容,尤其如果我們是 reviewer 時就更需要這麼作,第三次的重點是我們需要嘗試重新實作文獻裡提出的方法,意思是建立一個跟作者一模一樣的假設
重新創造一次實驗結果,一來為了用來比較在我們的實驗環境跟作者提出來的結果是否相符,二來藉由實作可以站在作者的視角,發現到 paper 創新的點,以及說不定還能挖出過去作者在實驗中失敗或曾經的假設
尤其在 ML/DL 研究裡,我們還是比較希望作者至少能把 model 也發表出來,讓其他研究員可以嘗試看看,也許實驗室裡沒有 paper 裡那樣強大的算力,但不需要重新 fine-tuning 的話直接引入也行,不然每天都上百篇 ML/DL paper 出現,有些實驗數據到底是不是真實的有可能還是得重跑實驗試試
我們在閱讀第三遍時對於細節要開始放更多注意力,對於 paper 裡每一個提出的假設都要證明合理性以及挑戰它的正確性,如果想更進一步的話,可以試著想想看自己遇到這個問題會如何做?針對 paper 裡提出的問題有想出什麼解決方法嗎?
閱讀其他研究員的論文應該是為了建構我們自己的想法,對於該篇作者給出的答案不滿意?那麼我們可以試試讓自己更滿意的做法,透過抽象化問題看到其中某人提出的答案,以及實作過後雕塑出該問題的知識邊界
透過 paper 裡的證明以及方法來為我們腦中的思路打造一條全新的道路並且都想通後,也可以來想想該問題的 future work?我們會想如何加強該篇 paper 的方法?
在第三階段中如果是研究新手讀完一篇至少要花上 4 到 5 個小時,而經驗老到的研究員大概花個 1 小時就行,這取決於我們對於該研究領域的熟悉程度
讀了三遍後應該可以靠記憶力重新構建出 paper 提的架構,意識到該篇 paper 的優勢與劣勢,並且我們有辦法點出該篇文獻裡隱性的問題假設是否存在,甚至遺失掉哪些相關的研究沒有提到,或者作者的實驗方法及分析技巧有潛在問題
相關文獻 Related Work #
如果我們讀論文是為了追蹤領域內的發展,也應該去閱讀 Timothy Roscoe的paper “Writing reviews for system conferences”[2]
如果計畫寫一篇技術 paper,應該參考 Henning Schulzrinne 的網站[3]以及 George Whitesides 的方法[4],而 Simon Peyton Jones 的網站提供了一個研究員應該具備哪些能力[5]
參考資料 References #
參考資料,所有本篇paper中提到的引用資訊皆會放進此單元中,讀者可以從這裡找到一些作者看過的思考路徑
[1] S. Keshav. 2007. How to read a paper. SIGCOMM Comput. Commun. Rev. 37, 3 (July 2007), 83–84. https://doi.org/10.1145/1273445.1273458
[2] T. Roscoe, “Writing Reviews for Systems Conferences,” https://people.inf.ethz.ch/troscoe/pubs/review-writing.pdf
[3] H. Schulzrinne, “Writing Technical Articles,” https://www.cs.columbia.edu/~hgs/etc/writing-style.html
[4] G.M. Whitesides, “Whitesides’ Group: Writing a Paper," https://onlinelibrary.wiley.com/doi/10.1002/adma.200400767
[5] Simon Peyton Jones, “Other great resources on research skills, " https://simon.peytonjones.org/research-skills/
這方法實不實用? #
Keshav 教授已經使用這套方法 15 年了(這篇文章發表時間大概是 2007 年),用來閱讀 conference paper、寫 review、研究時補齊 background 以及在參與討論之前快速 review paper
這種嚴謹的方法讓教授先從鳥瞰的方法審視整個研究架構,從而避免了一開始就直接從頭看到尾,並且迷失在論文裡面細節的情形,用這方法可以先預估自己會花多少時間在成堆的文獻上
教授用這種方法可以根據自己想知道的內容來調整需要讀哪些段落以及根據所剩的時間來決定該看 paper 的哪些部分,不過我們也可以調整成自己比較舒適的方法
我認為目前在AI技術蓬勃發展的這個時代也有許多輔助我們閱讀 paper 的工具,像是 chatPDF 的出現或者chatGPT、Gemini、Claude 等服務也都可以上傳PDF檔案,他們的 OCR 能力有一直在提升
讀者可以想像目前大多數是基於 NLP/LLM 的方法上透過辨識內文快速整理出一些亮點給使用者,以及使用者可以用提問的方法讓模型推測出要回應的資訊
主要的問題是如果我們在一個領域才剛入門,資歷還算很菜沒看過太多篇的話,這些工具通常只從單篇 paper 當中擷取內文資訊出來,一些沒有在論文上詳述的事情,就得透過引入其他篇 paper 來補齊知識,這麼做了之後又會冒出更多的問題要引用更多篇進來
所以對於才剛進入研究的菜鳥,門檻內還是建議先從基礎功力打穩,對該領域有一些自己的理解跟看法之後就可以漸漸利用 AI 工具了
就像即便有了Midjourney、DALL-E 這類圖像產生服務,還是有些人從素描慢慢學起讓自己對於光影、比例、結構等有更深入的了解,就能夠在 prompting 的時候有別於他人的觀點
我想做研究也是一樣的,這些工具能夠彙整出許多的點,但要如何將每一個點連起來成線就必須依靠自己的思考框架,尤其在這個人們越來越依賴機器的時代,被 AGI 服務、短影片所奪走如此多的注意力,從學會閱讀長篇文獻的過程中找回專注力對於你我的幫助肯定很大