自然語言處理在 2017 年有哪些值得期待的發展?
鏡像問題:基於深度學習的自然語言處理在 2016 年有哪些值得期待的發展?
本題已收錄至知乎圓桌:人工智慧 · 語言智能,更多「人工智慧」相關話題歡迎關注討論
謝邀。
從符號主義和連接主義的對立走向合作,從靜態分析走向交互,從語法和淺層語義走向深層語義,從功能主義走向認知和情感體驗。
2016年是深度學習的大潮衝擊NLP的一年,果實豐碩。從底層的pos tagging, word segmentation, NER,到高級的任務比如semantic analysis, machine translation, machine reading comprehension, QA system, natural language generation。。都是全面開花,Deep learning for NLP的架構越來越成熟。經典的Speech and Language Processing也出了第三版的draft( http://web.stanford.edu/~jurafsky/slp3/ )。
那麼在2017年,我們又有什麼樣的期待呢?
我想對於這個問題最有發言權的應該是Christopher Manning——他在Computational Linguistics and Deep Learning (http://www.mitpressjournals.org/doi/pdf/10.1162/COLI_a_00239) 中的一些論點到了2017年依然成立。
NLP無疑依然是機器學習有待攻克的下一個重大領域。但是由於語言本身已經是一種高層次的表達,深度學習在NLP中取得的成績並不如在視覺領域那樣突出。尤其是在NLP的底層任務中,基於深度學習的演算法在正確率上的提升並沒有非常巨大,但是速度卻要慢許多,這對於很多對NLP來說堪稱基礎的任務來說,是不太能夠被接受的,比如說分詞。
在一些高級任務中,基於端到端學習的神經網路確實取得了令人矚目的成就,尤其是機器翻譯方面。由於複雜性太高,這樣的高級任務在此前是非常難以攻克的,無論是基於常規的統計學習方法,還是基於規則的方法。深度神經網路強悍的「記憶」能力和複雜特徵提取能力非常適合於這類問題。在完形填空類型的閱讀理解(cloze-style machine reading comprehension)上,基於attention的模型也取得了非常巨大的突破(在SQuAD數據集上,2016年8月的Exact Match最好成績只有60%,今年3月已經接近77%,半年時間提升了接近20個點,這是極其罕見的)。
但同時,深度學習的不可解釋的特性和對於數據的需求,也使得它尚未在要求更高的任務上取得突破,比如對話系統(雖然對話在2016年隨著Echo的成功已經被炒得火熱)。
相比於機器翻譯,對話系統並不是一個簡單的「sequence-to-sequence」的問題(雖然很多paper嘗試這樣去做)。對話系統必須要能夠準確地理解問題,並且基於自身的知識系統和對於對話目標的理解,去生成一個回復。這並不是簡單地去尋找「word alignment」就可以做到的。當然更不必說對於上下文和情感的理解。而相比於完形填空類型的機器閱讀理解,對話系統可能的回復是完全開放的,並不是僅限於「答案包含在文本中」這樣的情形。而開放式的閱讀理解,同樣是一個AI-complete的難題。
這就要求我們對於交互的過程有更深刻的理解,對於人類在交流的過程中的認知過程和情感變化有更好的模型。而這個方向上,深度學習暫時還沒有更好的辦法。
在這個過程中,就像Chris Manning說的一樣,我們需要更好的理解模型的組合( compositionally in models)。
很顯然,從傳統的語言學到我們現在的端到端的靠大量數據的訓練結果,其間還有很大一塊認知過程的坑沒有被填上。有一個有意思的事情是,在大多數端到端的NLP應用中,在輸入中包括一些語言學的特徵(例如pos tag或dependency tree)並不會對結果有重大影響。我們的一些粗淺的猜測,是因為目前的NLP做的這些特徵,其實對於語義的表示都還比較差,某種程度來說所含信息還不如word embedding來的多。對於極其複雜、需要非常深的語義理解的任務來說,這些語言學特徵並沒有太多作用。這並不一定是對的——在結合語言學的規則與深度學習方面,太多實驗等著我們去做了。
所以,我們需要解決的不僅僅是Semantic Role Labelling,甚至Semantic Parsing或是Abstract Meaning Representation( http://amr.isi.edu/);我們需要知道的是從符號到人類體驗的一種映射——不僅僅是「紅色」可以被翻譯為「Red」——我們想知道人類在看到紅色時的感受,以及紅色所代表的情緒。
我們想要復原的是文字完全無法記錄下來的現場的氣氛,情緒和心跳的感覺(embodied experience)。同樣的文字,在不同的場景,應該有完全不同的表達力。
我們相信,僅僅依賴word2vec(或其它distributed representation)或是先進的memory-augmented networks,或是傳統的NLP方法,都還無法解決這些問題。
在情感和體驗的另一個極端,我們又希望語言能夠展示它「如雕塑一樣的美感」(羅素形容數學用語),可以精準地描述概念和邏輯。這要求我們在語言的模糊性上建立出來健壯的知識和推理體系——同樣,現在的深度學習也還不能做到這一點。
只有結合了符號邏輯,神經網路以及認知科學,才有可能讓我們在對語言的理解和處理上更上一層樓。(硬廣Bayersian Cognitive Science/PPL https://www.zhihu.com/question/59442141/answer/166358150)
現在結合一些熱門的領域(任務)來談一談具體的方向。
- Dialogue
是的,自然語言對話將會開創一個新的人機交互時代。但是2016年流行的seq2seq對話框架不會給我們太大的驚喜。雖然理論上,如果能夠給足訓練數據,它是可以表現得很好的。
原因在於,對話不同於翻譯,翻譯的input和output肯定是一個domain的東西,這大大限制了可能的解的空間。更重要的是,對話中有大量的省略和指代,我們必須通過大量的上下文信息才能夠理解對話。這樣的後果就是訓練對話系統對於訓練數據有指數級別上升的要求。
就算我們已經記錄了這個世界上所有人類的對話,明天依然會有人在不同的場景下說出的話,根本沒有在訓練集中出現。
所以,2017年的對話系統,一定是在限定的場景下發揮作用的。
即便是限定場景下的對話,也存在以下的幾個難點需要攻克。後面例舉的文章只是拋磚引玉。
1. 怎樣評估對話的質量?必須要和標準答案回答得一模一樣才算好嗎?(Towards an automatic Turing test: Learning to evaluate dialogue responses https://openreview.net/pdf?id=HJ5PIaseg)
2. 怎麼利用對話中人類的反饋來幫助學習?(Dialogue Learning With Human-in-the-Loop: https://arxiv.org/pdf/1611.09823.pdf)
3. 怎樣keep track of dialogue state?怎麼定義目標?怎麼記住多個對話片段?(Frames: A Corpus for Adding Memory to Goal-Oriented Dialogue Systems:https://arxiv.org/abs/1704.00057)
4. 如何去做對話的policy?(Towards Information-Seeking Agents:https://arxiv.org/abs/1612.02605)
5. 如何結合記憶以及情感?(Emotional Chatting Machine: Emotional Conversation Generation with Internal and External Memory:https://arxiv.org/abs/1704.01074)
6. 上下文如何建模?(Improving Frame Semantic Parsing with Hierarchical Dialogue Encoders:https://arxiv.org/abs/1705.03455)
7. 對話回復的生成如何變得可控?(Data Distillation for Controlling Specificity in Dialogue Generation https://arxiv.org/pdf/1702.06703.pdf)
- 閱讀理解(Open-domain QA)
去年到今年初MRC取得的進展大家已經有目共睹了,最高表現的架構基本趨同。估計再刷下去就要達到super-human performance了(人類的 baseline是82 EM, 91 F1)。比較有意思的是大家基本上都放棄了multi-hop reasoning的結構,原因非常簡單:Stanford的SQuAD跟FB的bAbI不一樣,沒有專門設立這種需要推理的項目(諸如John went to the hall; John putdown the ball; Where is the ball?這類問題),大部分的問題主要依賴Attention機制就可以抓得很好了。bAbI這樣的偽推理看來大家也是受夠了。
但是SQuAD本身也存在很多問題,拋開細的面不說,cloze-style本來就有很大的問題。而且最近出現了海量的刷SQuAD的文章,品質老實說並不敢恭維。幸好Stanford的Chen Danqi大神的Reading Wikipedia to Answer Open-Domain Questions (http://cs.stanford.edu/people/danqi/papers/acl2017.pdf )打開了很多的方向。通過海量閱讀(「machine reading at scale」),這篇文章試圖回答所有在wikipedia上出現的factoid問題。其中有大量的工程細節,在此不表,僅致敬意。
- Unsupervised Learning
在分散式語義表示這個「傳統」深度學習領域(2013年算是很「傳統」了吧),主要的工作還是向下,向上和向周邊擴展(不小心說了句廢話)。
向下是指sub-word level。(Enriching Word Vectors with Subword Information:https://arxiv.org/abs/1607.04606)
向上當然就是句子/篇章級別了。(A Simple but Tough-to-Beat Baseline for Sentence Embeddings:https://openreview.net/pdf?id=SyK00v5xx)
向周邊呢?就是面向任務,譬如知識庫里的entity-embedding,或者面向sentiment analysis的情感-embedding。。好吧,我承認這類的文章真的已經看得太多了,並沒有太大新意(no offense:我知道無論如何「boring」的文章,背後都是大家不眠不休的心血)。
- NLG
通過RNN-language model來做語言生成已經很成熟了,這都已經出survey paper了——Survey of the State of the Art in Natural Language Generation: Core tasks, applications and evaluation:https://arxiv.org/pdf/1703.09902.pdf
但是通過GAN/VAE來生成呢?
當然,做這個方向的人也很多,比如MSRA的Adversarial Neural Machine Translation(https://arxiv.org/abs/1704.06933)和Li Jiwei的Adversarial Learning for Neural Dialogue Generation:https://arxiv.org/pdf/1701.06547.pdf
不過認真地說,我同意Ian Goodfellow在Reddit里說的:「GANs have not been applied to NLP because GANs are only defined for real-valued data.」 (https://www.reddit.com/r/MachineLearning/comments/40ldq6/generative_adversarial_networks_for_text/)
當然,做一些twist當然是可以強行讓它work的,或者用VAE——但是目前看來,這些生成模型在自然語言方面並沒有在圖像方面的顯著療效。更重要的是,目前NLG的重要課題不是生成的質量,而是要搞清楚想說什麼——類比一下,就如同就算人腦的Broca區域沒有問題,可是Wernicke區域出現了問題,那麼病人會說一口流利的語言,可是每一句話都毫無意義——這樣的生成當然也是毫無意義的了。
所以這個領域,其實還是任重道遠啊。目前的很多「自然語言生成」或「寫稿機器人」,還是carefully-crafted的模版來的多。
總結
通過2016年的努力,deep learning在NLP領域已經站穩了腳跟。我們期待2017年語言學和機器學習的進一步結合,讓機器更加聰明,更懂你。
歡迎大家補充、討論:)
本回答來自竹間智能Emotibot機器學習科學家趙寧遠。
2016年回答過這個題目,現在看來似乎並沒有完全答對。也許這就是科研創新的魅力所在,就像一盒巧克力,打開前永遠不知道它的口味是什麼。
2017年已經將近過半,其實有一些跡象已經可以從ACL 2017等會議論文窺豹一斑。我覺得2017年的發展將體現在以下幾個方面:
先驗語言知識與深度學習模型的有機融合。從ACL 2017上NMT的相關論文可以看到,學者們紛紛將各種語言知識(如句法等)應用到NMT模型中,進一步提升機器翻譯效果。該思路應該具有一定普適性。
對抗訓練思想的應用。雖然GAN本身尚未在NLP各領域得到廣泛驗證,但對抗訓練思想已經在NMT等模型中開始發揮重要作用,值得關注。
其他稍後想到了繼續補充。
深度學習目前已經在NLP領域站穩腳跟 ,但是還沒有成熟到像語音和圖像那樣可以和人類PK的程度,所以目前還是上升期,有三個點非常值得關註:
1. 深度學習最初進入NLP走的是端到端的路線,靠無需人工特徵知識即可達到state-of-art的賣點在NLP站穩腳跟。但是後面的發展過程中大家逐漸發現,只靠端到端是不行的。這個不僅僅是因為很多NLP任務監督數據匱乏的問題,因為在機器翻譯這種語料充足的任務中,純端到端的方法有很快遇到了瓶頸。所以大家把目光重新投向傳統方法,和傳統方法結合,藉助外部知識來提高端到端模型的表現逐漸成為主流。機器翻譯作為NLP領域中深度學習應用最成熟的方向,這一點尤為明顯。2017年,這種結合的思路應該會進一步發展並向對話、摘要等其他NLP任務擴展,同時也會有更多通用的結合方法出現。
2. 強化學習開始在NLP發力。AlphaGo的成功帶來了強化學習的一輪熱潮,大家很自然的會考慮用強化學習解決NLP中的一些問題。多輪對話是強化學習非常自然的應用場景,而chatbot的火熱又在裡面添了一把柴。另外強化學習在信息檢索這種傳統場景中的應用也值得關注,如多輪搜索。還有一點就是文本生成,目前文本生成還是很初級的階段,而文本生成是可以看做一個馬爾可夫決策過程,用強化學習解決的,因此很期待後續強化學習在這方面的應用。
3. GAN在NLP開始發力。GAN在圖像領域取得巨大成功,大家很自然的會想到把對抗的思路引入到NLP領域。目前除了在文本生成任務中結合GAN和強化學習的應用之外,多任務學習中也有對抗思想的引入。目前GAN在NLP中的效果還很一般,這個主要受制於NLP離散特性帶來的梯度學習困難,因此GAN演算法針對離散場景的改進是一個很有價值的研究方向,而由此帶來的NLP任務突破則很值得期待。另一方面,GAN由於剛剛進入NLP領域,它的生成模型部分一般直接套用現有的複雜模型,而判別模型則比較簡單,因此有很大改進空間,例如從matching方向借鑒一些更複雜的匹配模型。
先寫到這裡,後續想到了再補充。
1、最有可能的是機器翻譯,借鑒多任務學習(MultiTask Learning)和transfer Learning的多語言翻譯。
2、智能對話,多輪對話,對話更natural,更人性化。
3、語言理解,情感分析,text summarization等
我覺得套模型就是bull shit。刷分也是。
雖然現在大部分的工作都是這樣的
個人感覺自然語言生成(NLG)將會逐漸有所發展吧,主要應用在問答系統、聊天機器人等領域吧。模型方面期待VAE和GAN吧~純屬個人見解。
半監督學習,充分利用大規模的無標籤數據;
多任務學習、跨領域學習與遷移學習,利用其它領域和任務的數據;
深度學習結合先驗知識,包括句法知識、大規模知識庫、推理結構等。
以上。
我的期待和大家的可能不太一樣,我希望的是深度學習在NLP方面繼續停滯不前,然後大家開始反思深度學習的局限,進而結束這一輪的人工智慧熱潮
為什麼這麼說呢,其實最近聽到很多類似的聲音了,比之前漸漸多了,往小了說,NLP大部分傳統領域,比如分類分詞什麼的,深度學習其實並沒有提升,只是差不多,是高還是低完全看實驗者的運氣,然而消耗巨大,機器翻譯毫無疑問,深度學習是帶來很大提升的,但是只要注意到它在人機對話,尤其多輪對話上的表現,你就會發現,機器翻譯相當於是把開放性問題轉化為封閉性的問題,限定了場景,同時語料豐富,這才造就了它的巨大提升。用不可知的模型了解不可知的語言體系,還是太難了。往大了說,科研就是調參套模型跑模型試錯?好多人都覺得沒意思了,找不到初心了。
還有另外一個趨勢,可能也會從另一個角度去反思深度學習,就是在數據量和計算量足夠大的情況下,是不是只有人工神經網路可以超神,相信後面類似的工作也會越來越多
理論:無 (看不到有突破,對語言認知的研究計算機科學家做不了太多)
實踐:1. 知識表達,移植。2. 新的大規模訓練方法。
https://www.linkedin.com/pulse/how-engineer-ai-understand-human-language-even-before-quan
這個問題好大,我從我的角度簡單來說說,大家別噴哈。
自然語言處理(NLP)是指創造能夠處理或是「理解」語言以完成特定的任務的系統。這些任務可能包括:
- 問答系統(也就是蘋果Siri、微軟小娜、訊飛語音所做的事情)
- 語義情感分析(判斷一句話隱含的積極或消極意義)
- 語音識別、機器翻譯(將一段文本翻譯成另一種語言,彩雲小譯在做的事情)
- 詞性標註(各大輸入法好像都在做)
傳統的自然語言處理方法涉及到了很多語言學本身的知識,裡面有太多的專業知識。今天我換個角度來和大家說說。
首先為什麼 NLP 現在會這麼火。
大家可能已經聽得很多了,是由於大數據的快速積累、大規模並行計算的快速發展、新演算法的不斷出現共同促使了神經網路技術改頭換面,重出江湖。這個過程中,雲計算與大數據功不可沒。所以,如果大家在從事 NLP 相關的工作或者創業的話,雲計算和大數據是必不可少的工具。
其次是行業角度,幾年會比較火的幾個行業:
1、晶元行業,由於大規模的演算法模型以及時效性的需求,深度學習晶元必將是一個強需求。
2、語音識別翻譯,舉個例子:彩雲小譯,它是一款實時語音(中英文)翻譯的應用,只需要對著屏幕說任意語言,小譯就會幫你不斷的實時翻譯成另外一種語言,堪稱同聲翻譯。
3、語義分析,進行大規模的數據分析從而支持決策。
最後做個小廣告,上面說的彩雲小譯就是使用了青雲QingCloud 的雲計算服務,自己不需要去採購大量的物理硬體設備,也不需要為帶寬和計算髮愁,只需要將全部精力放在自己的核心計算框架以及邏輯上即可。
unsupervised learning,獲取自動標註數據。
multi-task,但是必須是能夠相關互相促進的task。
cross-lingual,跨語言貌似還只是大部分用於機器翻譯,利用不同語言的特點應該可以利於其他任務。
自然語言發展到現在也只能說是剛剛和產業相結合起來,任何一門技術的發展都是需要應用到產業化中去才有發展前途,個人認為自然語言以後的發展會有兩個方向:
1.廣度上,這個方面主要是指自然語言發展和產業化的結合上。目前感覺應用到自然語言處理的一些地方都比較高大上。其實自然語言要想發展的好,必須要深入到各個領域,逐漸應用到各行各業中去,比方說旅遊、法律、自然災害等等領域。
2.深度上,這個方面主要涉及到一些技術方面的。上邊也講到與產業結合,與產業結合的一個首要的條件是要技術過硬,比方說在圖像的識別、語音的識別等等方面。
上邊說的有點籠統了,但是個人一直堅信一個信條:在自然語言處理的領域中,一定要堅持從數據中來再回到數據中去。
剛入坑小白感覺問答系統、短文本單輪對話、多輪交互對話值得期待。
1、對話的自然與上下文的連貫,包括語義連貫與情感連貫等;
2、跨語言的詞向量應該會比較熱;
3、GAN對對話生成可能會有幫助,再加上facebook的cnn翻譯,感覺也可以用到對話上
4、模型優化應該也會有所發展,具體沒想好;
另:忽然感覺好幾篇論文出來了………………
很失望全部在提GAN,真是什麼流行往哪裡撲,今年又不知道要有多少GAN+x的文章出來。AI灌水之風何時停啊。
推薦閱讀:
※「人工智慧」這個詞是不是被計算機科學與技術方向的人濫用了?
※支持向量機(SVM)是什麼意思?
※如果Cortana,siri,小冰一起聊天會是怎樣的場景?
※深度學習有哪些好玩的且易於實現的論文?
※普通程序員如何向人工智慧靠攏?