!@轉載文章
自然語言處理在 2017 年有哪些值得期待的發展?
知乎·竹間智能 Emotibot·幾秒前·打開原文
謝邀。 從符號主義和連接主義的對立走向合作,從靜態分析走向交互,從語法和淺層語義走向深層語義,從功能主義走向認知和情感體驗。
謝邀。
從符號主義和連接主義的對立走向合作,從靜態分析走向交互,從語法和淺層語義走向深層語義,從功能主義走向認知和情感體驗。
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/PPLhttps://www.zhihu.com/question/59442141/answer/166358150)
現在結合一些熱門的領域(任務)來談一談具體的方向。
Dialogue
是的,自然語言對話將會開創一個新的人機交互時代。但是2016年流行的seq2seq對話框架不會給我們太大的驚喜。雖然理論上,如果能夠給足訓練數據,它是可以表現得很好的。
原因在于,對話不同于翻譯,翻譯的input和output肯定是一個domain的東西,這大大限制了可能的解的空間。更重要的是,對話中有大量的省略和指代,我們必須通過大量的上下文信息才能夠理解對話。這樣的后果就是訓練對話系統對于訓練數據有指數級別上升的要求。
就算我們已經記錄了這個世界上所有人類的對話,明天依然會有人在不同的場景下說出的話,根本沒有在訓練集中出現。
所以,2017年的對話系統,一定是在限定的場景下發揮作用的。
即便是限定場景下的對話,也存在以下的幾個難點需要攻克。后面例舉的文章只是拋磚引玉。
1. 怎樣評估對話的質量?必須要和標準答案回答得一模一樣才算好嗎?(Towards an automatic Turing test: Learning to evaluate dialogue responseshttps://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 Generationhttps://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機器學習科學家馬永寧。