悄悄告訴你幾個竅門。
痛苦
做科研,不能不讀論文。
但是,我見過不少研究生,論文都讀得愁眉苦臉的。
這其中,自然有因為拖延的關(guān)系。例如教授布置了 2 周后討論論文,你原本可以每天抽出時間,慢慢消化。可你非得拖到截止日期的前一天晚上才打開看,希望畢其功于一役…… 這顯然是態(tài)度問題。
但是,不可忽略的,有些同學,卻真的不是態(tài)度問題,而是方法不當。
他們喜歡跟論文死磕。
讀不懂,就一遍一遍反復讀,試圖從字里行間,悟出精髓。
這可能是為了遵從那句古訓:
書讀百遍,其義自見。
且不說這樣是不是最終能走通。只論這個過程,就很痛苦,而且事倍功半。
有的同學對著一篇論文發(fā)憤了幾天甚至是幾周,依然看不懂。那種挫折、沮喪,別人看著都難受。
問題出在哪里呢?
困難
我在《如何與導師有效溝通你的論文選題?》一文給你講過,一篇合格的論文,就是傳遞認知差的載體。
更進一步,不斷涌現(xiàn)的論文,其實就是學術(shù)界的升級安裝包。
你不斷讀論文,就是為了跟學術(shù)共同體保持同步。但是,只有你跟這篇論文所依賴的那些基礎(chǔ)知識同步以后,安裝這個升級包才有意義,也才能水到渠成。
而對著論文犯愁的你,不管出于什么原因,顯然不大具備這個新包兒(論文)的安裝條件。
所以,你需要做的,不是跟這篇論文自身較勁。而是應(yīng)該盡快補充調(diào)整自己的知識架構(gòu),使得這篇論文對你而言,是可以兼容,并且升級的。
論文羅列的參考文獻,可以作為你補充基礎(chǔ)知識的一個有效手段。畢竟,作者親自在這里為你指明的路徑,如同給了你一張寫有路標的迷宮地圖。
這就是為什么,許多優(yōu)秀的博士,都是要讀數(shù)百篇文獻的。
讀過那些文獻以后,再看什么新文獻,都會很有感覺,一下子就能找到方向,看到論文的優(yōu)勢和弱點。
這時候,你就已經(jīng)是個專業(yè)人士了。
但是,對于初學者而言,你得先讓自己樹立自信。而不是用一種近乎于閉卷考試的方法挑戰(zhàn)自己。
做買賣不怕賠錢,但是怕剛開張的時候賠錢。這是有道理的,因為 “貧窮陷阱” 曲線有多個均衡。
同樣,做科研也不怕面對困難。但是初始階段,還是得給自己降低一些難度。
許多時候,你要讀的論文來自陌生領(lǐng)域,你并沒有那么多的時間,一篇篇文獻去啃、去挖掘。
舉個例子,假設(shè)你的研究方向,不是自然語言處理或者深度神經(jīng)網(wǎng)絡(luò)。但是你最近在學術(shù)研討會上聽說了一個神奇的東西,叫做 BERT 。
你自己學科里面的很多人,都在談?wù)撍?。他們用上?BERT ,所以可以高精度、自動化處理很多從前只有人類才能做好的文本處理工作,例如情感分析,例如智能問答等。
見他們發(fā)了很好的論文,你也想一探究竟。
你找到了 BERT 的原始論文,它就在預印本平臺 arxiv 上面。
但是一打開,你就暈了。
這些術(shù)語(例如 “fine-tuning”),這些圖,都是什么意思?。恳稽c頭緒都沒有。
怎么辦?
好在,要讀懂論文,是有不少竅門的。你可以善用許多從前忽視的資源,幫助自己消化和理解論文中令你感到困惑的部分。
下面我一一講給你聽。
幻燈
俗話說,解鈴還須系鈴人。
如果你覺得一個作者在論文中使用了很多公式,而且表達晦澀,那是因為要發(fā)表,他只需要顧及審稿人和領(lǐng)域內(nèi)小圈子專業(yè)人士的感覺就可以了。
為了表達效率高,他就得用術(shù)語。為了表達精準,他就得用公式。
用術(shù)語,就是壓縮;用公式,就是加密。
所以,論文其實就是一個加密壓縮包。
它安全,只有內(nèi)行看得懂,不會引來很多外行抬杠。
它高效,壓縮了所有冗余的信息。
但這搞得你這個初學者讀不懂,很不愉快。
你得先解密再解壓縮,然后才能看懂??赡惆Y結(jié)在于,你不具備解密和解壓的能力。
好在,每一個作者,都要同時面對兩個問題 —— 共識與知名度。
共識是說,別人承認他;知名度是說,別人喜歡他。
要提升知名度,他就不能只悶頭寫論文。還得出席一些會議,做做報告和講座什么的。
面對大領(lǐng)域同行,他要把一個事兒說清楚,就不能再用那么多的術(shù)語了,而必須考慮到聽眾的感受。
這時候,他可能更多使用描述性語言,生動的例子,甚至更吸引人的內(nèi)容,例如視頻或者動圖。
這些會議的幻燈,很多都是公開發(fā)布的。所以你不妨搜搜看。
例如說,你在搜索引擎里面搜索 BERT 那篇論文的第一作者,加上 BERT 這個關(guān)鍵詞,以及把資源類型指定為 ppt 之后,你就能看見很有趣的搜索結(jié)果了。
點開看看?
原來是 Jacob Devlin 在斯坦福大學一次演講的幻燈。
這里面,清晰地定義了問題,并且梳理了各種疑問的解答。
特別地,還使用了更多的圖形,來對比 BERT 和現(xiàn)有技術(shù)之間的差異。
通過幻燈,你可以把論文中很多沒有能夠展開的問題,或者許多作者認為小領(lǐng)域同行默知默會的知識點,都詳細論述。
有了這些補充資源,再回去讀論文,是不是更加清晰了?
博客
如果找不到作者的演示幻燈,或者看了作者的幻燈之后,你還是沒能很好理解論文的內(nèi)容,也不必氣餒。
我們前面說的,只是通則。
例如我們假定,作者面對一群不同背景的聽眾時,他的幻燈會做得更加深入淺出,以調(diào)眾口。
但是,有些學者,就是不分場合跟你展示數(shù)學功底。指著一個包含超過 30 個數(shù)學符號的長式子興奮地說:
看,就是那么顯而易見……!
這種情況下,如果他的工作足夠重要,你不必擔心,會有人站出來幫忙做解密和解壓,也就是 “科普” 這件事兒的。
目前學術(shù)界有幾個科普文和教程聚居地。
其中我最喜歡的一個,是 medium.com 。
BERT 論文出來之后不久,你就可以在 Medium 上面查到這篇博文。
博文寫得如何?看看點贊(clap)次數(shù)也就知道了。
標紅的地方顯示,已經(jīng)有超過 3800 人點贊了。這在 Medium 平臺的學術(shù)科普類文章里,算是非常受歡迎了。
之后過了半個月,又有人寫了這篇。
隨后,因為許多與 BERT 類似的 Transformers 模型競相出現(xiàn),所以 medium 平臺上的相關(guān)系列教程,也層出不窮。
例如發(fā)布在 2019 年 2 月 “How the Embedding Layers in BERT Were Implemented” 一文中的這張手繪圖形,就把 BERT 為什么使用 3 種不同的嵌入層,講得一清二楚。
這些文章,可以讓你從一個感興趣的旁觀者角度,迅速建立相關(guān)概念。有了這些基礎(chǔ)之后,再去讀論文,你的感覺會輕松許多。
視頻
如果你足夠幸運的話,還能找到很好的視頻教程,作為補充資源。
其中許多視頻,還是免費的。
例如 BERT ,就有不少人一言不合發(fā)視頻給大家講講清楚。
中英文視頻都有。而且排名靠前的這些教程,往往都做得品質(zhì)精良,讓你迅速了解 BERT 的來龍去脈。
我個人比較推薦那些大學老師做的視頻。當老師受到的最寶貴訓練,絕不是什么師資班的培訓,而是上課的時候收獲的學生反饋。
因為總是給學生上課,他會明白學生的關(guān)注點在哪里,會忽視或者錯誤理解什么,從而可以有的放矢強調(diào)某些東西,讓你輕易避開很多認知誤區(qū)陷阱。
例如說李宏毅老師講的 BERT 介紹,就可稱得上是深入淺出,形象生動。
何況,還是中文的。
課程
有的時候,你會發(fā)現(xiàn),雖然某些令許多人關(guān)注的焦點內(nèi)容(例如 BERT )會有這樣多的視頻可供觀賞,但是若你想仔細了解一下論文里出現(xiàn)的其他技術(shù),以便對比,就未必有這么好的運氣了。
在視頻平臺上搜尋,也許很難有收獲,甚至還會找到很多噪聲。
這時候,你也不要氣餒。雖然你想看視頻教程,但如果只在某個視頻平臺搜索,那就如同魚在坑的東邊,你卻非得在坑西邊釣一樣。
系統(tǒng)化了的知識,你沒有必要東奔西走地查找。而是可以通過在線課程來快速概覽。這樣不僅選擇成本低,而且學習效率更高。
有的同學天然把課程等同于幾大 MOOC 平臺。實際上,這也是一種誤解。
例如你打算回顧一下,自然語言處理近幾年的發(fā)展與技術(shù)應(yīng)用。那么,選擇 Coursera 或者 Udacity 課程,自然也是一種辦法。
但你如果喜歡更靈活地學習,可以直接到 fast.ai 上面。因為這里的特點是快速迭代,緊貼前沿,而且剛好就有一門 NLP 課程,內(nèi)容非常新穎。
課程內(nèi)容里,自然也包括 BERT 。
而與此同時,它也囊括了 ULMfit, GPT-2 和 XLNet 等相關(guān)技術(shù)。以寫代碼來理解不同技術(shù)的進展,邏輯清晰,讓你一站式了解領(lǐng)域里面最重要的內(nèi)容有哪些,特別是最近發(fā)生了什么有意思的事兒。
代碼
提到了代碼,咱們就多說幾句。
Jeremy Howard 在他的課程里面一直強調(diào),對于技術(shù)類的問題,代碼比公式更重要。
描述一個算法,你用公式當然沒有問題。但如你能把它寫成代碼,而且正確運行,那想必你是真的懂了。
同樣,現(xiàn)在我們看很多論文,都配有代碼。
如果你讀論文的時候,只閱讀公式看算法,搞不懂究竟是怎么回事兒,則完全可以去看看那簡單的 Python 代碼。
例如說 BERT ,你雖然看到各種圖片,但是可能還是不知道,如果你打算做一個分類下游任務(wù),該怎么給你的輸入文本做編碼呢?
這時候,如果你讀代碼,效果就大不相同了。
當然,這里不是讓你去讀最初論文的代碼。那是基于 Tensorflow 1.x 版本寫的?;仡櫼幌拢以凇度?span id="4eizgh1" class="wpcom_tag_link">何用 Python 和 BERT 做中文文本二元分類?》里面,跟你介紹過 Tensorflow 1.x 設(shè)計上的反人性。
你完全可以去讀 PyTorch 代碼。至少讀起來,更像是人話。
有好事者,就把 Tensorflow 上的各種 Transformer 模型,都搬到了 PyTorch 上。目前這個叫做 Transformer 2.0 項目,在 github 上已經(jīng)有了 16300 顆星。
在論文里, BERT 模型輸入文本的預處理,是這個樣子的。你可能會很疑惑,特殊的 token (例如論文中出現(xiàn)的 [CLS] 和 [SEP] ),究竟如何設(shè)置,如何起作用?
這里,看一下代碼示例。你會發(fā)現(xiàn),原來你該這樣把它們加入進去。
而且,只有真正看了代碼倉庫里面的示例,你才會了解, transformers 這個項目,為什么會這么火。
因為,你可以僅僅用 10 幾條語句,就完成一個經(jīng)典的文本分類任務(wù)。
于是,你也就明白,在自己的研究任務(wù)里面,用上最前沿的自然語言處理技術(shù),根本就沒有預想得那么困難。
小結(jié)
本文我們以 BERT 為例,為你講述了當直接閱讀科研論文時遭遇困難的原因,以及你可以求助的免費資源和路徑,它們包括但不限于:
幻燈。作者用幻燈和聽眾溝通的時候,是要在一定程度上,放棄術(shù)語和公式的便利的。這就給你一個聽懂的機會。博客。對于一個大家都認為有用,但是學起來很困難的知識點。你可以在主流技術(shù)博客平臺上找一找,很可能會有驚喜。視頻。視頻教程的好處,是可以用更為形象生動的方式,給你展現(xiàn)動態(tài)的過程。而且,有時你還能直接感受到講者的幽默。課程。如果你需要形成知識基礎(chǔ),系統(tǒng)化的課程可以讓這一過程快捷高效。代碼。對于那些技術(shù)性的問題,數(shù)學描述算法有時候會讓人有疑惑。這時候,閱讀源代碼,甚至編程實踐出來,會極大提升你的理解程度。當然,這不是全部。
最好的方式,當然是與專家甚至是作者本人,做面對面的高效溝通反饋。當然,這樣的機會很稀缺。如果你遇到,一定要抓住。
專欄
我的第一個訂閱專欄《科研新手全面入坑指南》已正式上線了。
我用 20 多篇教程,為你介紹初窺研究門徑的研究生與高年級的本科生,很需要了解的一些科研基礎(chǔ)知識。包括但不限于如何選題、如何讀文獻、如何快速寫初稿…… 這些知識,你的導師大約會默認你已經(jīng)學會,因此不會手把手教給你。但是你若做不到,導師很可能會覺得你基礎(chǔ)不牢,或者不用心。你唯一能做的,就是盡快把它們補充齊備,以便減輕剛剛走上科研之路時的痛苦,保護好你的好奇心與成就感。
除了方法,我還介紹一些工具給你。例如 VosViewer 。 它可以幫助你快速掃描中英文領(lǐng)域文獻,發(fā)現(xiàn)作者、主題之間的微妙關(guān)聯(lián)。由此,你就可以快速識別已有研究的盲點、盲區(qū),甚至是盲維,從而有的放矢地找到自己研究的獨特定位與價值。
愿熱愛學習的你,科研之路從此走得更加扎實與順暢。
讀過本文,如果覺得有收獲,請點贊。
要讀更多的文章,微信關(guān)注我的公眾號 “玉樹芝蘭”(nkwangshuyi)。別忘了加星標,以免錯過新推送提示。
如果本文對你身邊的親友有幫助,也歡迎你把本文通過微博或朋友圈分享給他們。
延伸閱讀你可能也會對以下話題感興趣。點擊鏈接就可以查看。
如何用 Python 和深度遷移學習做文本分類?如何用 Python 和 BERT 做中文文本二元分類?如何用 Python 和 BERT 做中文文本二元分類?如何用 Python 和 BERT 做多標簽(multi-label)文本分類?如何在 fast.ai 用 BERT 做中文文本分類?題圖: Photo by Tim Gouw from Pexels