前言
自己也寫過一篇關于NLP研究領域的個人粗淺的理解與入門學習建議----吾愛NLP(3)—我對NLP的理解與學習建議,今日偶然發(fā)現(xiàn)了微軟亞研大佬的這篇文章,不僅介紹了NLP相關的各個研究領域以及入門實踐的路徑,還簡單的解讀了如何完成一篇學術論文,特此轉載希望對各位有幫助。
??自然語言處理入門必讀
微軟亞洲研究院首席研究員 周明
作者簡介
周明,微軟亞洲研究院首席研究員纯续、ACL候任主席(president)、中國計算機學會中文信息技術專委會主任灭袁、中國中文信息學會常務理事猬错、哈工大、天津大學茸歧、南開大學倦炒、山東大學等多所學校博士導師。1985年畢業(yè)于重慶大學软瞎,1991年獲哈工大博士學位逢唤。1991-1993年清華大學博士后拉讯,隨后留校任副教授。1996-1999訪問日本高電社公司主持中日機器翻譯研究鳖藕。他是中國第一個中英翻譯系統(tǒng)魔慷、日本最有名的中日機器翻譯產(chǎn)品J-北京的發(fā)明人。1999年加入微軟研究院并隨后負責自然語言研究組著恩,主持研制了微軟輸入法院尔、對聯(lián)、英庫詞典喉誊、中英翻譯等著名系統(tǒng)邀摆。近年來與微軟產(chǎn)品組合作開發(fā)了小冰(中國)、Rinna(日本)等聊天機器人系統(tǒng)伍茄。他發(fā)表了100余篇重要會議和期刊論文栋盹。擁有國際發(fā)明專利40余項。
自然語言處理(簡稱NLP)敷矫,是研究計算機處理人類語言的一門技術例获,包括:
1.句法語義分析:對于給定的句子,進行分詞沪饺、詞性標記躏敢、命名實體識別和鏈接闷愤、句法分析整葡、語義角色識別和多義詞消歧。
2. 信息抽取:從給定文本中抽取重要的信息讥脐,比如遭居,時間、地點旬渠、人物俱萍、事件、原因告丢、結果枪蘑、數(shù)字、日期岖免、貨幣岳颇、專有名詞等等。通俗說來颅湘,就是要了解誰在什么時候话侧、什么原因、對誰闯参、做了什么事瞻鹏、有什么結果悲立。涉及到實體識別、時間抽取新博、因果關系抽取等關鍵技術薪夕。
3.文本挖掘(或者文本數(shù)據(jù)挖掘):包括文本聚類、分類赫悄、信息抽取寥殖、摘要、情感分析以及對挖掘的信息和知識的可視化涩蜘、交互式的表達界面嚼贡。目前主流的技術都是基于統(tǒng)計機器學習的。
4.機器翻譯:把輸入的源語言文本通過自動翻譯獲得另外一種語言的文本同诫。根據(jù)輸入媒介不同粤策,可以細分為文本翻譯、語音翻譯误窖、手語翻譯叮盘、圖形翻譯等。機器翻譯從最早的基于規(guī)則的方法到二十年前的基于統(tǒng)計的方法霹俺,再到今天的基于神經(jīng)網(wǎng)絡(編碼-解碼)的方法柔吼,逐漸形成了一套比較嚴謹?shù)姆椒w系。
5.信息檢索:對大規(guī)模的文檔進行索引丙唧∮海可簡單對文檔中的詞匯,賦之以不同的權重來建立索引想际,也可利用1培漏,2,3的技術來建立更加深層的索引胡本。在查詢的時候牌柄,對輸入的查詢表達式比如一個檢索詞或者一個句子進行分析,然后在索引里面查找匹配的候選文檔侧甫,再根據(jù)一個排序機制把候選文檔排序珊佣,最后輸出排序得分最高的文檔。
6.問答系統(tǒng): 對一個自然語言表達的問題披粟,由問答系統(tǒng)給出一個精準的答案咒锻。需要對自然語言查詢語句進行某種程度的語義分析,包括實體鏈接僻爽、關系識別虫碉,形成邏輯表達式,然后到知識庫中查找可能的候選答案并通過一個排序機制找出最佳的答案胸梆。
7.對話系統(tǒng):系統(tǒng)通過一系列的對話敦捧,跟用戶進行聊天须板、回答、完成某一項任務兢卵。涉及到用戶意圖理解习瑰、通用聊天引擎、問答引擎秽荤、對話管理等技術甜奄。此外,為了體現(xiàn)上下文相關窃款,要具備多輪對話能力课兄。同時,為了體現(xiàn)個性化晨继,要開發(fā)用戶畫像以及基于用戶畫像的個性化回復烟阐。
隨著深度學習在圖像識別、語音識別領域的大放異彩紊扬,人們對深度學習在NLP的價值也寄予厚望蜒茄。再加上AlphaGo的成功,人工智能的研究和應用變得炙手可熱餐屎。自然語言處理作為人工智能領域的認知智能檀葛,成為目前大家關注的焦點。很多研究生都在進入自然語言領域腹缩,寄望未來在人工智能方向大展身手屿聋。但是,大家常常遇到一些問題庆聘。俗話說胜臊,萬事開頭難勺卢。如果第一件事情成功了伙判,學生就能建立信心,找到竅門黑忱,今后越做越好宴抚。否則,也可能就灰心喪氣甫煞,甚至離開這個領域菇曲。這里針對給出我個人的建議,希望我的這些粗淺觀點能夠引起大家更深層次的討論抚吠。
建議1:如何在NLP領域快速學會第一個技能常潮?
我的建議是:找到一個開源項目,比如機器翻譯或者深度學習的項目楷力。理解開源項目的任務喊式,編譯通過該項目發(fā)布的示范程序孵户,得到與項目示范程序一致的結果。然后再深入理解開源項目示范程序的算法岔留。自己編程實現(xiàn)一下這個示范程序的算法夏哭。再按照項目提供的標準測試集測試自己實現(xiàn)的程序。如果輸出的結果與項目中出現(xiàn)的結果不一致献联,就要仔細查驗自己的程序竖配,反復修改,直到結果與示范程序基本一致里逆。如果還是不行进胯,就大膽給項目的作者寫信請教。在此基礎上原押,再看看自己能否進一步完善算法或者實現(xiàn)龄减,取得比示范程序更好的結果。
建議2:如何選擇第一個好題目班眯?
工程型研究生希停,選題很多都是老師給定的。需要采取比較實用的方法署隘,扎扎實實地動手實現(xiàn)宠能。可能不需要多少理論創(chuàng)新磁餐,但是需要較強的實現(xiàn)能力和綜合創(chuàng)新能力违崇。而學術型研究生需要取得一流的研究成果,因此選題需要有一定的創(chuàng)新诊霹。我這里給出如下的幾點建議羞延。
先找到自己喜歡的研究領域。你找到一本最近的ACL會議論文集, 從中找到一個你比較喜歡的領域脾还。在選題的時候伴箩,多注意選擇藍海的領域。這是因為藍海的領域鄙漏,相對比較新嗤谚,容易出成果。
充分調(diào)研這個領域目前的發(fā)展狀況怔蚌。包括如下幾個方面的調(diào)研:方法方面巩步,是否有一套比較清晰的數(shù)學體系和機器學習體系;數(shù)據(jù)方面桦踊,有沒有一個大家公認的標準訓練集和測試集椅野;研究團隊,是否有著名團隊和人士參加。如果以上幾個方面的調(diào)研結論不是太清晰竟闪,作為初學者可能不要輕易進入声离。
在確認進入一個領域之后,按照建議一所述瘫怜,需要找到本領域的開源項目或者工具术徊,仔細研究一遍現(xiàn)有的主要流派和方法,先入門鲸湃。
反復閱讀本領域最新發(fā)表的文章赠涮,多閱讀本領域牛人發(fā)表的文章。在深入了解已有工作的基礎上暗挑,探討還有沒有一些地方可以推翻笋除、改進、綜合炸裆、遷移垃它。注意做實驗的時候,不要貪多烹看,每次實驗只需要驗證一個想法国拇。每次實驗之后,必須要進行分析存在的錯誤惯殊,找出原因酱吝。
對成功的實驗,進一步探討如何改進算法土思。注意實驗數(shù)據(jù)必須是業(yè)界公認的數(shù)據(jù)务热。
與已有的算法進行比較,體會能夠得出比較一般性的結論己儒。如果有崎岂,則去寫一篇文章,否則闪湾,應該換一個新的選題冲甘。
建議3:如何寫出第一篇論文?
接上一個問題响谓,如果想法不錯损合,且被實驗所證明,就可開始寫第一篇論文了娘纷。
確定論文的題目。在定題目的時候跋炕,一般不要“…系統(tǒng)”赖晶、“…研究與實踐”,要避免太長的題目,因為不好體現(xiàn)要點遏插。題目要具體捂贿,有深度,突出算法胳嘲。
寫論文摘要厂僧。要突出本文針對什么重要問題,提出了什么方法了牛,跟已有工作相比颜屠,具有什么優(yōu)勢。實驗結果表明鹰祸,達到了什么水準甫窟,解決了什么問題。
寫引言蛙婴。首先講出本項工作的背景粗井,這個問題的定義,它具有什么重要性街图。然后介紹對這個問題浇衬,現(xiàn)有的方法是什么,有什么優(yōu)點餐济。但是(注意但是)現(xiàn)有的方法仍然有很多缺陷或者挑戰(zhàn)径玖。比如(注意比如),有什么問題颤介。本文針對這個問題梳星,受什么方法(誰的工作)之啟發(fā),提出了什么新的方法并做了如下幾個方面的研究滚朵。然后對每個方面分門別類加以敘述冤灾,最后說明實驗的結論。再說本文有幾條貢獻辕近,一般寫三條足矣韵吨。然后說說文章的章節(jié)組織,以及本文的重點移宅。有的時候東西太多归粉,篇幅有限,只能介紹最重要的部分漏峰,不需要面面俱到糠悼。
相關工作。對相關工作做一個梳理浅乔,按照流派劃分倔喂,對主要的最多三個流派做一個簡單介紹铝条。介紹其原理,然后說明其局限性席噩。
然后可設立兩個章節(jié)介紹自己的工作班缰。第一個章節(jié)是算法描述。包括問題定義悼枢,數(shù)學符號埠忘,算法描述。文章的主要公式基本都在這里馒索。有時候要給出簡明的推導過程莹妒。如果借鑒了別人的理論和算法,要給出清晰的引文信息双揪。在此基礎上钦铁,由于一般是基于機器學習或者深度學習的方法揽惹,要介紹你的模型訓練方法和解碼方法。第二章就是實驗環(huán)節(jié)。一般要給出實驗的目的享潜,要檢驗什么订晌,實驗的方法晦譬,數(shù)據(jù)從哪里來锡溯,多大規(guī)模。最好數(shù)據(jù)是用公開評測數(shù)據(jù)信峻,便于別人重復你的工作倦青。然后對每個實驗給出所需的技術參數(shù),并報告實驗結果盹舞。同時為了與已有工作比較产镐,需要引用已有工作的結果,必要的時候需要重現(xiàn)重要的工作并報告結果踢步。用實驗數(shù)據(jù)說話癣亚,說明你比人家的方法要好。要對實驗結果好好分析你的工作與別人的工作的不同及各自利弊获印,并說明其原因述雾。對于目前尚不太好的地方,要分析問題之所在兼丰,并將其列為未來的工作玻孟。
結論。對本文的貢獻再一次總結鳍征。既要從理論黍翎、方法上加以總結和提煉,也要說明在實驗上的貢獻和結論蟆技。所做的結論玩敏,要讓讀者感到信服斗忌,同時指出未來的研究方向质礼。
參考文獻旺聚。給出所有重要相關工作的論文。記住眶蕉,漏掉了一篇重要的參考文獻(或者牛人的工作)砰粹,基本上就沒有被錄取的希望了。
寫完第一稿造挽,然后就是再改三遍碱璃。
把文章交給同一個項目組的人士,請他們從算法新穎度饭入、創(chuàng)新性和實驗規(guī)模和結論方面嵌器,以挑剔的眼光,審核你的文章谐丢。自己針對薄弱環(huán)節(jié)爽航,進一步改進,重點加強算法深度和工作創(chuàng)新性乾忱。
然后請不同項目組的人士審閱讥珍。如果他們看不明白,說明文章的可讀性不夠窄瘟。你需要修改篇章結構衷佃、進行文字潤色,增加文章可讀性蹄葱。
如投ACL等國際會議氏义,最好再請英文專業(yè)或者母語人士提煉文字。
原文: 微軟亞洲研究院 -- 發(fā)布于 2016-11-24
我的博客即將搬運同步至騰訊云+社區(qū)图云,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=3mtmis547ccgw