編者按:
7 月 18 日(上周六),微軟亞洲研究院「沈老師帶你肝論文」暑期科研訓練班在線上進行了開班儀式。
「沈老師帶你肝論文」是微軟亞洲研究院為實習生們特別打造的專屬科研訓練。學會閱讀論文是科研工作的第一步,在未來的20天內,美國國家工程院外籍院士、清華大學高等研究院雙聘教授、微軟公司前執行副總裁沈向洋博士將領銜頂級導師團,帶領30名幸運鵝學習如何正確、高效地進行論文閱讀和批判性思考,在肝論文過程中練就堅實的科研基本功。
開班儀式上,沈向洋博士與同學們分享了他閱讀、撰寫科研論文的寶貴經驗。閱讀論文有消極閱讀、積極閱讀、批判性閱讀和創造性閱讀這四個階段,也有速讀、精讀與研讀這三個層次,有價值的論文閱讀將幫助研究者建立認知模型,找到有價值的研究想法。
而後,Wormpex AI Research 副總裁兼首席科學家華剛博士分享了他對於初級科研工作者如何通過論文閱讀獲得快速成長的思考,同時詳細介紹了讀論文應回答的十個問題,本次科研訓練班也正將帶領同學們學會思考和解答這些問題。
下面,我們將與大家分享沈向洋博士和華剛博士的演講,希望為做科研的你帶來思考和啟發。
沈向洋
美國國家工程院外籍院士
英國皇家工程院外籍院士
微軟公司前執行副總裁
沈向洋博士主要專注於計算機、視覺、圖形學、人機互動、統計學習、模式識別和機器人等方向的研究工作。他所設計的四分樹樣條函數算法是世界上最好的運動參數估計算法之一。他已發表關於計算機視覺、計算機圖形學、圖形識別、統計學習和機器人科學方面的數百篇論文,擁有超過 50 項美國專利。
華剛
Wormpex AI Research
副總裁兼首席科學家
華剛博士是 IEEE Fellow,IAPR Fellow 和 ACM 傑出科學家。他的研究領域包括計算機視覺、模式識別、機器學習和機器人技術等。在加入 Wormpex 之前,華剛曾擔任微軟計算機視覺科學主任以及史蒂文斯理工學院副教授。
沈向洋博士:
如何以正確方式打開一篇科研論文?
很高興有這樣一個機會跟各位同學、VC 組的研究員們交流,也非常感謝華剛跟我一起準備這個演講。
我想今天聽報告的大多數學生應該是在研究生院階段,我非常喜歡這個階段的生活,因為這可能是你一生中時間最充足的階段,以後工作了就會非常忙。我想強調的是在這個階段,你應該多讀書、多讀文章。如果你決定要從事科研工作,就需要不斷地學習、理解和消化知識,再過渡到自己創造知識、散布知識。
多年前,我到微軟亞洲研究院後就成立了 Visual Computing 組,對它有著深厚的感情。這幾年我也一直在思考和解決一個非常重要的問題——閱讀和理解之間的不匹配。通過科研論文的角度去思考閱讀和理解之間的關係,是整個人類智能中非常重要的部分。下面,我想分享自己對做科研方面的一些體會,特別是怎樣讀 paper 和寫 paper、怎麼樣更好地做科研。
我認為好的研究員有幾個特質,首先要 open-minded——這個世界只有想不出來的東西,沒有做不出來的東西,要有批判性思考的能力;其次是要努力工作;還有要不斷更新自己的知識面,要讀很多最新的東西,然後思考、交流,這樣才能慢慢把自己學到的東西用起來。
今天主要想跟大家分享我在讀科研論文方面的一些心得。讀文章有幾個階段,最簡單的是所謂的「消極閱讀」(passive reading),即大概知道文章講了什麼;然後是「積極閱讀」( active reading),主動思考這些知識有什麼用;然後是「批判性閱讀」(critical reading),思考這篇文章是否言之成理理;最後是「創造性閱讀」(creative reading),搞清楚文章對接下來的工作有什麼幫助。
我認為在讀研究生期間需要掌握三個非常重要的技能:閱讀、寫作和展示。實際上這三件事情有內在的邏輯關聯。我有個同事 Simon Peyton Jones 對此提了一些建議,大家可以到 MSR Cambridge 觀看他的視頻「how to write a great research paper」和「how to give a great research talk」。
讀論文為什麼這麼難?
如果大家決定做科研,那讀論文就是必修課。為什麼讀論文這麼難呢?
首先,大多數科研論文本身寫的不是特別好,大多數作者的母語並不是英語,而英語又是學術界的官方語言,所以一些作者在論文語言把控上欠缺火候。我回過頭來看自己早年寫的幾篇 paper,有時候會希望自己沒有寫過它們。文章寫得不好只是一個客觀原因,論文難讀的第二個原因,是讀論文時讀者需要對論文主題有很深的背景知識儲備。第三個原因是在閱讀中遇到困難的時候,我們不知道應該從哪裡、向誰尋求幫助。第四個原因是讀完論文以後,如果我想繼續深挖這個主題或者探索研究方向,除了去問導師以外,還可以向誰尋求意見呢?第五個原因,是當今世界有太多的誘惑和幹擾,不像我們以前「兩耳不聞窗外事、一心只讀聖賢書」,在這個有網際網路的世界裡,長時間專注是一件很困難的事情。
我想跟大家分享這幾年我一直在想的一個問題,就是所謂的「disconnect between reading and writing」。人類社會發展到現在離不開獲取知識和利用知識,但是目前為止,閱讀和寫作這兩件事仍是脫節的,作者和讀者的非直接溝通中必然有理解的偏差。
實際上,這種關係可以用香儂的資訊理論原理來解釋——論文是作者和讀者之間交流信息的渠道,主要是單向傳輸,信息源是作者,而目的地就是讀者。寫作就像編碼,閱讀就像解碼,所以我們需要一本 Codebook 來介紹「編碼」到「解碼」所需要的知識,也即作者按照這本 Codebook 中的規範進行「編碼」,閱讀者則用它來「解碼」。
其實,香儂理論只是概括了閱讀與寫作的一部分,真實的閱讀往往超越了傳統的「傳輸-壓縮」框架,它更多的是一個反覆的理解過程。在這個過程中,讀者不斷地揣測作者的意圖,並將之解構成能夠理解的片段,隨後這些片段被構建到讀者腦中的認知模型裡。所以,閱讀等同於理解,不同層次的閱讀對應不同層次的理解——深度閱讀導致深度理解,淺顯的閱讀對應的必然是淺顯的理解。不同需求應該對應不同的閱讀層次,你可能需要快速瀏覽,可能需要仔細閱讀,如果你的導師需要你復現論文中的細節,那麼你就需要非常深入地研讀。
閱讀文章的三個層次:速讀、精讀與研讀
了解了閱讀的本質,那麼我們應當如何閱讀paper呢?
首先是要有「速讀」的能力,快速知道一篇文章講了什麼。其次是要「精讀」。精讀有兩個方面:批判性閱讀和創造性閱讀。首先要對論文進行否定、質疑,仔細挑毛病;其次,對論文有了足夠的了解之後,如果發現論文中提到的想法非常優秀,那麼要創造性地思考你能用這篇論文做什麼。第三個步驟,我稱之為「研讀」,比如說自己嘗試將文章中的算法實現一遍。
除了閱讀的方式,讀者還要理解所讀的論文是怎樣寫出來的。一篇好的論文在邏輯上是層層遞進的,不僅能夠傳達信息也能夠激勵讀者。所以作者在寫的時候也是有結構化的邏輯性思考程度的。總體上作者會思考:這篇論文的真實任務是什麼、研究發現是什麼;論文的貢獻是什麼等等。
相應地,讀者在讀論文的時候也應該要有邏輯,首先要清楚論文中的表達是否是我想要學習到的;其次,我能從論文中學到多少,能不能找到新的方向與新的課題初稿;最後,這篇論文的背景是什麼——是什麼樣的背景讓這篇論文變得重要和有趣。
無論是計算機視覺領域的文章還是泛計算機類的文章,一般來講,都可以歸為以下幾類:提出問題型論文、解決問題型論文、闡述和調查型論文、總結型論文。
快速閱讀:如何讀標題、摘要和引言
接下來我向大家介紹一些讀論文的經驗。首先是快速閱讀。計算機視覺領域的著名學者 Don Geman 曾經說,一篇文章可以分為標題、摘要、引言、論文主體四個部分,每一部分都需要花同樣的時間進行撰寫。這個說法雖然誇張但是不無道理,因為大多數讀者實際上最關注的就是文章開始的兩頁紙。對讀者而言,看完前兩頁就知道這篇文章是不是值得去讀;對 reviewer 而言,看完開頭就知道能不能拒絕這篇文章。
我的前同事 Jim Kajiya 是一個非常了不起的圖形學專家,他最牛的地方就是基本上從來不和別人合寫文章,都是自己獨立完成。Jim曾經寫過一篇文章「How to get your SIGGRAPH paper rejected」,文中最核心的觀點是文章一定要寫得易讀——這篇論文是關於什麼的?它解決了什麼問題?迷人之處在哪?有什麼新的東西(我一直強調做科研的終極問題就是 what's new,寫文章的時候一定要強調文章中有什麼新的東西)?巧妙之處何在?
如何讀論文的引言?舉個例子,我最近在讀《擁有倫理學:企業邏輯、矽谷與倫理學的制度化》(Owning Ethics:Corporate Logics, Silicon Valley, and the Institutionalization of Ethics),在引言部分,我問了 Kajiya 提出的那幾個問題。首先這篇論文講的是高科技公司在道德方面做了什麼;其次,解決的問題是現在的實踐(擁有道德)做法;文章的迷人之處在於最近的醜聞和技術後衝(techlash);這篇文章的最新之處是對 17 位科技公司的「道德擁有者」進行了採訪;最後,論文的神奇之處是得出了結論:道德所有者在令人擔憂的動態中運營公司。
接下來,我將介紹如何讀摘要。計算機學科論文中的摘要一般有固定格式,讀起來非常枯燥。所以,要讀摘要的時候,將其分解並加上一些有趣的亮點,可能有利於閱讀。中國學生的英語一般都不太好,雖然到了研究生階段,思維方式可能還停留在中文思維到英文思維轉換的階段。對此,一個很好的建議是嘗試把摘要翻譯成中文,在這個過程當中,你會發現自己有一些細節沒有領會到位,第一遍讀的時候不見得讀懂了。
回到標題,如何讀論文的標題?標題一般只有一句話。從整篇論文的排版的角度來看,在一頁半的引言、四分之一頁的摘要以及八頁的雙欄正文面前,只有一句話的標題顯得不太「重要」。但是標題是總結、抽象的概括。我曾有一個重要發現:高質量的文章通常標題用兩個詞就能概括,並以 ing 結尾,例如 Plenoptic sampling、Lazy Snapping、Poisson matting。所以對於讀者來說在讀這些抽象的詞或句子的時候,只有花費較多的時間才能讀懂論文作者的意圖。
仔細閱讀:從批判性閱讀到創造性閱讀
下面我將介紹仔細閱讀的一些技巧。
以批判性閱讀開始,帶著質疑的心態問問題。如果作者論文中聲稱解決了一個問題,那麼你就要在心裡問自己:論文是否正確、真正地解決了問題?作者論文中所用方法是否有局限性?如果所讀的論文沒有解決問題,那麼我能解決麼?我能採用比論文中更簡單的方法解決麼?所以,一旦進入仔細閱讀的狀態,要在讀論文之前對自己說:這篇論文可能有問題,我要找出來。這就是批判性閱讀。
批判性閱讀可能非常難,也可能佔用你很多的時間,早期知識儲備不夠時,讀論文的過程中很容易卡殼。常見的建議是找熟悉這方面工作的人幫忙,讓他們解釋你遇到的難點。但你要意識到找人幫忙也可能遇到困難,一方面,你要找誰幫忙?另一方面,如何能讓他們愉快的接受你幾分鐘、十幾分鐘、甚至接近一個小時的諮詢?他們不一定有那麼多時間。所以我一直鼓勵大家在研究生階段一定要跟身邊導師、師兄師姐、厲害的同學們搞好關係。等到你自己成為師兄師姐後,也要積極回應學弟學妹們的提問。
除此之外,也建議你們多找一些背景知識閱讀,多做筆記,多在網上搜索相關論文,然後再次通讀所卡殼的論文,並試著把它與其他論文相聯繫起來,如此堅持下去,定能渡過難關。
掌握了批判性閱讀的技巧後,如何達到創造性閱讀的層次呢?這時候你要問自己:在我所讀的論文中,有哪些好的idea?(一般文章中只有一個idea,好的文章中可能有兩個idea,最了不起的文章可以有2.5個idea。)搞清楚作者的idea以後你要思考,作者有哪些點還沒有想到?可以怎麼改進?如果我現在做這項研究,我能做的新事情是什麼?
如果說批判性閱讀是「negative thinking」,那麼創造性閱讀就是「positive thinking」。創造性的閱讀需要把你所讀的論文和其他相關的論文建立聯繫,從而產生一些新的想法,這些想法可以支撐你進行三個月到五個月的研究。如果讀到了非常好的文章,不妨寫一篇半頁到一頁左右的review。最好做一個口頭展示,這樣你會發現,只有把東西寫下來或者說出來才能真正深刻理解。
我一直覺得理解了一個東西以後,最重要的是能夠自問自答,這張圖片是一個總結(圖片不見啦?),圖片的上半部分是比較客觀的問題,包括論文的核心觀點是什麼?主要的局限性是什麼?代碼和數據是不是可得的?論文的貢獻是否有意義?論文中的實驗是否足夠好?圖片的下半部分是比較主觀的問題,包括我錯過了什麼相關論文麼?這對我的工作有何幫助麼?這是一篇值得關注的論文麼?這個研究領域的領頭人是誰呢?哪些公司、研究院、實驗室值得關注?其他的人對這篇論文有何看法呢?如果有機會見到作者,我應該問作者什麼問題?當你在閱讀論文的時候如果能回答出上面列出的問題,我相信你會對你所讀論文有非常深刻的理解。
有哪些工具可以幫助我們?
我還想跟大家分享一些能夠幫助閱讀論文的工具,例如谷歌以及必應網頁搜尋引擎、谷歌學術、arXiv 等能夠搜索到你想要的論文,但這些工具都不能真正幫助我們讀懂 paper。在閱讀的過程中,OneNote 可以幫助你做筆記;CliffsNotes 作為美國知名的學習指南網站,能夠提供文獻學習指南;Mendeley 是非常優秀的參考文獻管理。
另外也強烈建議大家使用在線論壇討論論文,增加學術交流,增強對所讀論文的理解能力,但是遺憾的是,尚未有非常適合討論論文的在線論壇,現在的一些社交網絡產品或許很棒,但是它並不是為了學術研究目的而設計,畢竟學術論文的「非有趣性」不適合社交產品的調性。
最後,我想向大家介紹幾個小tips。我最想強調的是要養成寫小總結的習慣,最好能做報告,這樣真的能夠增加你對所讀論文的理解。我想再次強調,大家一定要有耐心,因為閱讀就是在你大腦中建立認知模型的過程,雖然不知道今天讀的文章未來什麼時候能夠派上用場,但是請大家保持閱讀、建立認知的習慣。
華剛博士:帶著十個問題去閱讀和思考
接下來我將和大家分享作為研究員如何在學術領域獲得成長的一些經驗。這次暑期訓練班的初衷是希望幫助到大家建立科學研究工作的認知模型,下面我會引入一種叫做「模板閱讀」的方法論。
如同前面沈老師所說的,讀 paper 可以分為四個階段:消極閱讀、積極閱讀、批判性閱讀和創造性閱讀。
我認為大家可以通過嚴格的科研訓練達到批判性閱讀之前的階段,但是創造性閱讀的境界很難只通過訓練達成。只有積極主動地去思考問題、把自己的背景知識與之聯繫起來,形成一個「故事」,並能夠自己書寫自己的「故事」時,才能在學術社區建立認同。
本次科研訓練中,我希望同學們能夠帶著這十個問題去閱讀文章,能夠篩掉無用的信息、讓真正有用的信息被構築到自己的認知模型中,真正掌握這種科研思維模式。從機器學習的信息瓶頸(Information Bottleneck) 的類比看,這個過程就是讓你的思維認知模式經過這十個問題模板形成的一個信息瓶頸而打造成型。
帶著10個問題去閱讀和思考
1. 這篇文章究竟講了什麼問題?比方說你設計一個算法,它的 input 和 output 是什麼?
2. 這個問題的性質是什麼?是一個新的問題嗎?如果是一個新問題,它的重要性何在?如果不完全是一個新問題,那為什麼它「仍然重要」?
我在西安交大念書的時候,沈老師曾經給我們做過一個演講,其中有一句話令我印象深刻——「一流的研究員發現新問題」。發現有意義、有挑戰性的新問題,實際上是一個研究最大的貢獻。但畢竟學術領域內人才濟濟,很多人沒有機會發現新問題,所以很多文章致力於回答第二個問題——為什麼這個問題仍然值得去研究?
3. 這篇文章致力於證明什麼假設?接受過深度科研訓練的人都知道所有研究其實都是從科學假設開始的。從 12 年開始,計算機視覺領域的很多研究員認為這是一門實證科學(experimental science),即需要提出假說並通過實驗去驗證。
4. 有哪些與這篇文章相關的研究?這一領域有哪些關鍵人物?
大家做研究、讀文章時,要了解這個方向的重要工作和從事相關研究的關鍵人員信息,才能把問題的來龍去脈搞清楚。讓領域內的人們認識你、了解你的工作,你才能慢慢地被更多的專家、同行認可。我一直認為作為一名研究員要足夠「八卦」,知道領域內哪些人做什麼樣的事情。
5. 這篇文章提出的問題解決方案中,核心貢獻是什麼?
6. 實驗是如何設計的?計算機視覺研究中,實驗設計的重要性不言而喻。但在寫 paper 的過程中,實驗的表現不是最重要的,關鍵是如何通過實驗去支撐每個假說。
7. 實驗是在什麼樣的數據集基礎上運行的?科學研究結果應當是可以量化、可以復現的,讀文章的人是否能接觸到文中所用的數據集?
8. 實驗結果能否有力地支持假設?如果一篇文章提出的假設並沒有被實驗或者理論完美支撐的話,多半不是一篇好的文章。
9. 這篇文章的貢獻是什麼?回答了前面 8 個問題之後,第9個問題的答案也呼之欲出了。你應當試著用自己的語言總結出來。
10. 下一步可以做什麼?這是非常關鍵的一個問題,也決定了你今後能否在科研領域獲得成功。在這篇文章的基礎上,我們接下來能做什麼?應該做什麼?在科學研究的初期,導師會給你方向上的指導,但作為一名獨立的研究員,你應該獨立地回答這個問題。
以上就是這十個希望大家回答的問題。本次訓練可以帶領大家達到批判性閱讀的階段,但要最終達到創造性閱讀的階段,還需要你有「T 字型」的知識結構,即有足夠廣的知識儲備,在某個方向鑽得足夠深。我們希望你也能提出自己的「10 個問題」,寫出你自己的故事。這種多樣性,正是科研領域健康發展的關鍵。
開班儀式雲合影
兩位老師的精彩演講是否令你心潮澎湃、充滿幹勁呢?「You are how you read」,閱讀文章不僅是大家在科研道路上進步的必由之路,也能使我們的心智不斷成長,認知模型和思維方式不斷完善。這個暑假,讓我們一起在科研之路上乘風破浪吧!