論文讀不懂怎麼辦?

nkwshuyi發表於2020-01-29

王樹義

讀完需要

18
分鐘

速讀僅需6分鐘

悄悄告訴你幾個竅門。

640?wx_fmt=jpeg

1

   

痛苦

做科研,不能不讀論文。

但是,我見過不少研究生,論文都讀得愁眉苦臉的。

這其中,自然有因為拖延的關係。例如教授佈置了2周後討論論文,你原本可以每天抽出時間,慢慢消化。可你非得拖到截止日期的前一天晚上才開啟看,希望畢其功於一役……這顯然是態度問題

但是,不可忽略的,有些同學,卻真的不是態度問題,而是方法不當。

他們喜歡跟論文死磕

讀不懂,就一遍一遍反覆讀,試圖從字裡行間,悟出精髓。

這可能是為了遵從那句古訓:


書讀百遍,其義自見。



且不說這樣是不是最終能走通。只論這個過程,就很痛苦,而且事倍功半。

有的同學對著一篇論文發了幾天甚至是幾周,依然看不懂。那種挫折、沮喪,別人看著都難受。

問題出在哪裡呢?

2

   

困難

更進一步,不斷湧現的論文,其實就是學術界的升級安裝包。

你不斷讀論文,就是為了跟學術共同體保持同步。但是,只有你跟這篇論文所依賴的那些基礎知識同步以後,安裝這個升級包才有意義,也才能水到渠成。

而對著論文犯愁的你,不管出於什麼原因,顯然不大具備這個新包兒(論文)的安裝條件。

所以,你需要做的,不是跟這篇論文自身較勁。而是應該儘快補充調整自己的知識架構,使得這篇論文對你而言,是可以相容,並且升級的。

論文羅列的參考文獻,可以作為你補充基礎知識的一個有效手段。畢竟,作者親自在這裡為你指明的路徑,如同給了你一張寫有路標的迷宮地圖。

這就是為什麼,許多優秀的博士,都是要讀數百篇文獻的。

讀過那些文獻以後,再看什麼新文獻,都會很有感覺,一下子就能找到方向,看到論文的優勢和弱點。

這時候,你就已經是個專業人士了。

但是,對於初學者而言,你得先讓自己樹立自信。而不是用一種近乎於閉卷考試的方法挑戰自己。

做買賣不怕賠錢,但是怕剛開張的時候賠錢。這是有道理的,因為“貧窮陷阱”曲線有多個均衡。

640?wx_fmt=jpeg

同樣,做科研也不怕面對困難。但是初始階段,還是得給自己降低一些難度。

許多時候,你要讀的論文來自陌生領域,你並沒有那麼多的時間,一篇篇文獻去啃、去挖掘。

舉個例子,假設你的研究方向,不是自然語言處理或者深度神經網路。但是你最近在學術研討會上聽說了一個神奇的東西,叫做 BERT 。

你自己學科裡面的很多人,都在談論他。他們用上了 BERT ,所以可以高精度、自動化處理很多從前只有人類才能做好的文字處理工作,例如情感分析,例如智慧問答等。

見他們發了很好的論文,你也想一探究竟。

你找到了 BERT 的原始論文,它就在預印本平臺 arxiv 上面。

640?wx_fmt=jpeg

但是一開啟,你就暈了。

640?wx_fmt=jpeg

這些術語(例如“fine-tuning”),這些圖,都是什麼意思啊?一點頭緒都沒有。

怎麼辦?

好在,要讀懂論文,是有不少竅門的。你可以善用許多從前忽視的資源,幫助自己消化和理解論文中令你感到困惑的部分。

下面我一一講給你聽。

3

   

幻燈

俗話說,解鈴還須繫鈴人。

如果你覺得一個作者在論文中使用了很多公式,而且表達晦澀,那是因為要發表,他只需要顧及審稿人和領域內小圈子專業人士的感覺就可以了。

為了表達效率高,他就得用術語。為了表達精準,他就得用公式。

用術語,就是壓縮;用公式,就是加密。

所以,論文其實就是一個加密壓縮包。

它安全,只有內行看得懂,不會引來很多外行抬槓。

它高效,壓縮了所有冗餘的資訊。

但這搞得你這個初學者讀不懂,很不愉快。

你得先解密再解壓縮,然後才能看懂。可你癥結在於,你不具備解密和解壓的能力。

好在,每一個作者,都要同時面對兩個問題——共識知名度

共識是說,別人承認他;知名度是說,別人喜歡他。

要提升知名度,他就不能只悶頭寫論文。還得出席一些會議,做做報告和講座什麼的。

面對大領域同行,他要把一個事兒說清楚,就不能再用那麼多的術語了,而必須考慮到聽眾的感受。

這時候,他可能更多使用描述性語言,生動的例子,甚至更吸引人的內容,例如視訊或者動圖。

這些會議的幻燈,很多都是公開發布的。所以你不妨搜搜看。

例如說,你在搜尋引擎裡面搜尋 BERT 那篇論文的第一作者,加上 BERT 這個關鍵詞,以及把資源型別指定為 ppt 之後,你就能看見很有趣的搜尋結果了。

640?wx_fmt=jpeg

點開看看?

640?wx_fmt=jpeg

原來是 Jacob Devlin 在史丹佛大學一次演講的幻燈。

這裡面,清晰地定義了問題,並且梳理了各種疑問的解答。

640?wx_fmt=jpeg

特別地,還使用了更多的圖形,來對比 BERT 和現有技術之間的差異。

640?wx_fmt=jpeg

通過幻燈,你可以把論文中很多沒有能夠展開的問題,或者許多作者認為小領域同行默知默會的知識點,都詳細論述。

有了這些補充資源,再回去讀論文,是不是更加清晰了?

4

   

部落格

如果找不到作者的演示幻燈,或者看了作者的幻燈之後,你還是沒能很好理解論文的內容,也不必氣餒。

我們前面說的,只是通則。

例如我們假定,作者面對一群不同背景的聽眾時,他的幻燈會做得更加深入淺出,以調眾口。

但是,有些學者,就是不分場合跟你展示數學功底。指著一個包含超過30個數學符號的長式子興奮地說:


看,就是那麼顯而易見……!



這種情況下,如果他的工作足夠重要,你不必擔心,會有人站出來幫忙做解密和解壓,也就是“科普”這件事兒的。

目前學術界有幾個科普文和教程聚居地。

其中我最喜歡的一個,是 medium.com 。

BERT 論文出來之後不久,你就可以在 Medium 上面查到這篇博文。

640?wx_fmt=jpeg

博文寫得如何?看看點贊(clap)次數也就知道了。

640?wx_fmt=jpeg

標紅的地方顯示,已經有超過3800人點讚了。這在 Medium 平臺的學術科普類文章裡,算是非常受歡迎了。

之後過了半個月,又有人寫了這篇。

640?wx_fmt=jpeg

隨後,因為許多與 BERT 類似的 Transformers 模型競相出現,所以 medium 平臺上的相關係列教程,也層出不窮。

640?wx_fmt=jpeg

例如釋出在 2019 年 2 月 “How the Embedding Layers in BERT Were Implemented”一文中的這張手繪圖形,就把 BERT 為什麼使用3種不同的嵌入層,講得一清二楚。

640?wx_fmt=jpeg

這些文章,可以讓你從一個感興趣的旁觀者角度,迅速建立相關概念。有了這些基礎之後,再去讀論文,你的感覺會輕鬆許多。

5

   

視訊

如果你足夠幸運的話,還能找到很好的視訊教程,作為補充資源。

其中許多視訊,還是免費的。

例如 BERT ,就有不少人一言不合發視訊給大家講講清楚。

640?wx_fmt=jpeg

中英文視訊都有。而且排名靠前的這些教程,往往都做得品質精良,讓你迅速瞭解 BERT 的來龍去脈。

我個人比較推薦那些大學老師做的視訊。當老師受到的最寶貴訓練,絕不是什麼師資班的培訓,而是上課的時候收穫的學生反饋。

因為總是給學生上課,他會明白學生的關注點在哪裡,會忽視或者錯誤理解什麼,從而可以有的放矢強調某些東西,讓你輕易避開很多認知誤區陷阱。

例如說李宏毅老師講的 BERT 介紹,就可稱得上是深入淺出,形象生動。

640?wx_fmt=jpeg

何況,還是中文的。

6

   

課程

有的時候,你會發現,雖然某些令許多人關注的焦點內容(例如 BERT )會有這樣多的視訊可供觀賞,但是若你想仔細瞭解一下論文裡出現的其他技術,以便對比,就未必有這麼好的運氣了。

在視訊平臺上搜尋,也許很難有收穫,甚至還會找到很多噪聲。

這時候,你也不要氣餒。雖然你想看視訊教程,但如果只在某個視訊平臺搜尋,那就如同魚在坑的東邊,你卻非得在坑西邊釣一樣。

系統化了的知識,你沒有必要東奔西走地查詢。而是可以通過線上課程來快速概覽。這樣不僅選擇成本低,而且學習效率更高。

有的同學天然把課程等同於幾大 MOOC 平臺。實際上,這也是一種誤解。

例如你打算回顧一下,自然語言處理近幾年的發展與技術應用。那麼,選擇 Coursera 或者 Udacity 課程,自然也是一種辦法。

但你如果喜歡更靈活地學習,可以直接到 fast.ai 上面。因為這裡的特點是快速迭代,緊貼前沿,而且剛好就有一門 NLP 課程,內容非常新穎。

640?wx_fmt=jpeg

課程內容裡,自然也包括 BERT 。

640?wx_fmt=jpeg

而與此同時,它也囊括了 ULMfit, GPT-2 和 XLNet 等相關技術。以寫程式碼來理解不同技術的進展,邏輯清晰,讓你一站式瞭解領域裡面最重要的內容有哪些,特別是最近發生了什麼有意思的事兒。

640?wx_fmt=jpeg

7

   

程式碼

提到了程式碼,我們們就多說幾句。

Jeremy Howard 在他的課程裡面一直強調,對於技術類的問題,程式碼比公式更重要。

640?wx_fmt=jpeg

描述一個演算法,你用公式當然沒有問題。但如你能把它寫成程式碼,而且正確執行,那想必你是真的懂了

同樣,現在我們看很多論文,都配有程式碼。

640?wx_fmt=jpeg

如果你讀論文的時候,只閱讀公式看演算法,搞不懂究竟是怎麼回事兒,則完全可以去看看那簡單的 Python 程式碼。

例如說 BERT ,你雖然看到各種圖片,但是可能還是不知道,如果你打算做一個分類下游任務,該怎麼給你的輸入文字做編碼呢?

這時候,如果你讀程式碼,效果就大不相同了。

你完全可以去讀 PyTorch 程式碼。至少讀起來,更像是人話。

有好事者,就把 Tensorflow 上的各種 Transformer 模型,都搬到了 PyTorch 上。目前這個叫做 Transformer 2.0 專案,在 github 上已經有了16300顆星。

640?wx_fmt=jpeg

在論文裡, BERT 模型輸入文字的預處理,是這個樣子的。你可能會很疑惑,特殊的 token (例如論文中出現的 [CLS][SEP] ),究竟如何設定,如何起作用?

640?wx_fmt=jpeg

這裡,看一下程式碼示例。你會發現,原來你該這樣把它們加入進去。

640?wx_fmt=jpeg

而且,只有真正看了程式碼倉庫裡面的示例,你才會瞭解, transformers 這個專案,為什麼會這麼火。

因為,你可以僅僅用10幾條語句,就完成一個經典的文字分類任務。

640?wx_fmt=jpeg

於是,你也就明白,在自己的研究任務裡面,用上最前沿的自然語言處理技術,根本就沒有預想得那麼困難。

8

   

小結

本文我們以 BERT 為例,為你講述了當直接閱讀科研論文時遭遇困難的原因,以及你可以求助的免費資源和路徑,它們包括但不限於:

  • 幻燈。作者用幻燈和聽眾溝通的時候,是要在一定程度上,放棄術語和公式的便利的。這就給你一個聽懂的機會。

  • 部落格。對於一個大家都認為有用,但是學起來很困難的知識點。你可以在主流技術部落格平臺上找一找,很可能會有驚喜。

  • 視訊。視訊教程的好處,是可以用更為形象生動的方式,給你展現動態的過程。而且,有時你還能直接感受到講者的幽默。

  • 課程。如果你需要形成知識基礎,系統化的課程可以讓這一過程快捷高效。

  • 程式碼。對於那些技術性的問題,數學描述演算法有時候會讓人有疑惑。這時候,閱讀原始碼,甚至程式設計實踐出來,會極大提升你的理解程度。

當然,這不是全部。

最好的方式,當然是與專家甚至是作者本人,做面對面的高效溝通反饋。當然,這樣的機會很稀缺。如果你遇到,一定要抓住。

9

   

專欄

告訴你一個好訊息

我的第一個訂閱專欄《科研新手全面入坑指南》已經在少數派(sspai)平臺正式上線了。

640?wx_fmt=jpeg

我用20多篇教程,為你介紹初窺研究門徑的研究生與高年級的本科生,很需要了解的一些科研基礎知識。包括但不限於如何選題、如何讀文獻、如何快速寫初稿……

這些知識,你的導師大約會預設你已經學會,因此不會手把手教給你。但是你若做不到,導師很可能會覺得你基礎不牢,或者不用心。

你唯一能做的,就是儘快把它們補充齊備,以便減輕剛剛走上科研之路時的痛苦,保護好你的好奇心與成就感。

除了方法,我還介紹一些工具給你。例如 VosViewer 。它可以幫助你快速掃描中英文領域文獻,發現作者、主題之間的微妙關聯。由此,你就可以快速識別已有研究的盲點、盲區,甚至是盲維,從而有的放矢地找到自己研究的獨特定位與價值。

如果你正在發愁畢業論文該怎麼著手做,那麼這是個很好的入手時機

本文釋出時,正值少數派的雙十一促銷活動,該專欄限時八折銷售。

二維碼在這裡:

640?wx_fmt=jpeg

你也可以點選篇末的“閱讀原文”訂閱。

願熱愛學習的你,科研之路從此走得更加紮實與順暢。

感覺有用的話,請點“在看”,並且把它轉發給你身邊有需要的朋友。

讚賞就是力量。

640?wx_fmt=jpeg

由於微信公眾號外部連結的限制,文中的部分連結可能無法正確開啟。如有需要,請點選文末的“閱讀原文”按鈕,訪問可以正常顯示外鏈的版本。

訂閱我的微信公眾號“玉樹芝蘭”,第一時間免費收到文章更新。別忘了加星標,以免錯過新推送提示。

640?wx_fmt=jpeg

如果你對 Python 與資料科學感興趣,希望能與其他熱愛學習的小夥伴一起討論切磋,答疑解惑,歡迎加入知識星球。

640?wx_fmt=jpeg

延伸閱讀

你可能也會對以下話題感興趣。點選連結就可以檢視。

題圖: Photo by Tim Gouw from Pexels

相關文章