為什么要閱讀論文?
閱讀機器學習論文是算法工程師技術精進的不可缺少的學習途徑。雖然實際工作使用的機器學習算法很多已經出現了十幾年了,但是將機器學習技術應用于實際互聯網項目開發中卻只是最近幾年的事情,而且這幾年隨著深度學習的流行,基于深度學習的機器學習項目也開始在國內外大型互聯網公司逐漸應用并取得了一定的效果,而學習這些成果項目實踐的最快方法就是閱讀這些公司發布在各大著名會議上的論文,所以作為一名有技術追求的算法工程師必須閱讀相應的論文拓寬思路和提高技術能力。
一篇論文的基本結構?
通常一篇論文有如下幾個部分組成:
- Abstract:論文的摘要,該部分通常要交代發表論文的應用場景、目前方法的不足進而引出該論文提出的新的方法改進與創新點。
- Categories and Subject Descriptors:論文的研究領域分類與課題描述詞,例如信息處理與存取。
- Keywords:論文內容的一些關鍵詞。
- Introduction:論文的主要內容介紹,這部分內容相對摘要更為詳實。一篇來自互聯網公司一線的實踐項目論文介紹通常包含了該論文嘗試解決的問題以及該問題的現狀,然后是描述該論文在相應公司的應用場景,并給出相應的解決方案或者基于已有方案的創新改進,另外還包括該論文實際的工程架構、AB測試方法和實際的應用效果介紹。
- 主要內容:接下來就是論文的主要內容詳細闡述了。
- Conclusion:論文的總結。該部分通常會再次將論文主要內容和創新點進行概要總結,給出該論文達到的實際應用成果,以及該論文能夠解決的擴展領域的相關問題。
- References:論文的引用。一篇論文通常都會引用幾十篇相關論文,主要包括該論文試圖解決問題的領域介紹、前人已經發布的研究方法等。
如何閱讀一篇論文?
關于如何閱讀一篇論文,本人根據自己的論文閱讀經驗給出如下幾點建議供參考:
要不要精讀?
先看下論文Abstract部分,細讀Abstract的內容確保論文的內容是與你的期望要看到的東西是相符的,如果該內容和你預想的完全不一樣,基本可以判斷你找錯論文了,不用浪費時間再讀下去了;
接著看下論文的研究領域和關鍵詞是不是與你工作的領域相符,接著就是論文的介紹部分了,可以重點看下論文的創新點是什么,比如找下a novel way這樣的句詞,如果這里說的是你感興趣的內容你就可以精讀這篇論文了。
怎么精讀?
個人覺得一篇內容詳實的內容不讀個好幾遍是吃不透的,通常第一遍先匆匆過一遍,碰到相應的英文生詞不影響理解內容就先略過(多讀幾篇同一領域的論文后生詞就很少了),然后第二遍重點選讀論文的核心內容:比如數學公式的推導、偽代碼實現,建議這時候要拿出筆把里面的公式抄抄畫畫,重點部分內容圈圈,加點備注方便后面復讀和加深理解,第二遍閱讀通常要花很長時間,如果在工作之余時間的話,個人通常要花費好幾個小時,碰到實在不理解的內容可以問問同事,也許同事已經讀過這篇論文,或者知乎上搜下,業內比較經典的論文知乎都有牛人做過閱讀分享,可以參考閱讀,不過本人建議還是自己先折騰一遍再看下別人的分享會更好,至少先對論文的內容比較熟悉了再去看,這就像學習的時候碰到難題不能直接去看參考答案啊,經過這一翻折騰后,應該已經對論文內容已經消化的差不多了,最后也是個人認為最重要的一點就是如果這篇論文是一篇實踐性很強的論文,例如谷歌的那篇經典的點擊率預估論文:(https://research.google.com/pubs/archive/41159.pdf),論文給出了偽代碼,強烈建議自己用現成的數據(網上公開的或自己項目中的數據)用代碼實現一遍,即使自己覺得獨立實現不了,也建議參考別人的代碼敲一遍,絕對收獲巨大!!!,最后還有可以將自己的論文閱讀理解用博客寫出來或在公司內部分享,把這些內容寫出來或說出來,也會大大加深對論文的理解。