微軟亞洲研究院:NLP將迎來黃金十年
僅供參考學習。
作者:周明、段楠、韋福如、劉樹傑、張鼕鼕
微軟亞洲研究院
在 1998 年微軟亞洲研究院成立之初,NLP 就被確定為最重要的研究領域之一。歷經二十載春華秋實,在歷屆院長支援下,微軟亞洲研究院在促進 NLP 的普及與發展以及人才培養方面取得了非凡的成就。共計發表了 100 餘篇 ACL 大會文章,出版了《機器翻譯》和《智慧問答》兩部著作,培養了 500 名實習生、20 名博士和 20 名博士後。我們開發的 NLP 技術琳琅滿目,包括輸入法、分詞、句法/語義分析、文摘、情感分析、問答、跨語言檢索、機器翻譯、知識圖譜、聊天機器人、使用者畫像和推薦等,已經廣泛應用於 Windows、Office、Bing、微軟認知服務、小冰、小娜等微軟產品中。我們與創新技術組合作研發的微軟對聯和必應詞典,已經為成千上萬的使用者提供服務。
過去二十年,NLP 利用統計機器學習方法,基於大規模的帶標註的資料進行端對端的學習,取得了長足的進步。尤其是過去三年來,深度學習給 NLP 帶來了新的進步。其中在單句翻譯、抽取式閱讀理解、語法檢查等任務上,更是達到了可比擬人類的水平。
基於如下的判斷,我們認為未來十年是 NLP 發展的黃金檔:
-
來自各個行業的文字大資料將會更好地採集、加工、入庫。
-
來自搜尋引擎、客服、商業智慧、語音助手、翻譯、教育、法律、金融等領域對 NLP 的需求會大幅度上升,對 NLP 質量也提出更高要求。
-
文字資料和語音、影象資料的多模態融合成為未來機器人的剛需。這些因素都會進一步促進對 NLP 的投資力度,吸引更多人士加入到 NLP 的研發中來。因此我們需要審時度勢、抓住重點、及時規劃,面向更大的突破。
因此,NLP 研究將會向如下幾個方面傾斜:
-
將知識和常識引入目前基於資料的學習系統中。
-
低資源的 NLP 任務的學習方法。
-
上下文建模、多輪語義理解。
-
基於語義分析、知識和常識的可解釋 NLP。
重點知識:NLP 的技術進展
自然語言處理,有時候也稱作自然語言理解,旨在利用計算機分析自然語言語句和文字,抽取重要資訊,進行檢索、問答、自動翻譯和文字生成。人工智慧的目的是使得電腦能聽、會說、理解語言、會思考、解決問題,甚至會創造。它包括運算智慧、感知智慧、認知智慧和創造智慧幾個層次的技術。計算機在運算智慧即記憶和計算的能力方面已遠超人類。而感知智慧則是電腦感知環境的能力,包括聽覺、視覺和觸覺等等,相當於人類的耳朵、眼睛和手。目前感知智慧技術已取得飛躍性的進步;而認知智慧包括自然語言理解、知識和推理,目前還待深入研究;創造智慧目前尚無多少研究。比爾·蓋茨曾說過,「自然語言理解是人工智慧皇冠上的明珠」。NLP 的進步將會推動人工智慧整體進展。
NLP 在深度學習的推動下,在很多領域都取得了很大進步。下面,我們就來一起簡單看看 NLP 的重要技術進展。
神經機器翻譯
神經機器翻譯就是模擬人腦的翻譯過程。
翻譯任務就是把源語言句子轉換成語義相同的目標語言句子。人腦在進行翻譯的時候,首先是嘗試理解這句話,然後在腦海裡形成對這句話的語義表示,最後再把這個語義表示轉化到另一種語言。神經機器翻譯就是模擬人腦的翻譯過程,它包含了兩個模組:一個是編碼器,負責將源語言句子壓縮為語義空間中的一個向量表示,期望該向量包含源語言句子的主要語義資訊;另一個是解碼器,它基於編碼器提供的語義向量,生成在語義上等價的目標語言句子。
神經機器翻譯模型的優勢在於三方面:一是端到端的訓練,不再像統計機器翻譯方法那樣由多個子模型疊加而成,從而造成錯誤的傳播;二是採用分散式的資訊表示,能夠自動學習多維度的翻譯知識,避免人工特徵的片面性;三是能夠充分利用全域性上下文資訊來完成翻譯,不再是侷限於區域性的短語資訊。基於迴圈神經網路模型的機器翻譯模型已經成為一種重要的基線系統,在此方法的基礎上,從網路模型結構到模型訓練方法等方面,都湧現出很多改進。
神經機器翻譯系統的翻譯質量在不斷取得進步,人們一直在探索如何使得機器翻譯達到人類的翻譯水平。2018 年,微軟亞洲研究院與微軟翻譯產品團隊合作開發的中英機器翻譯系統,在 WMT2017 新聞領域測試資料集上的翻譯質量達到了與人類專業翻譯質量相媲美的水平 (Hassan et al., 2018)。該系統融合了微軟亞洲研究院提出的四種先進技術,其中包括可以高效利用大規模單語資料的聯合訓練和對偶學習技術,以及解決曝光偏差問題的一致性正則化技術和推敲網路技術。
智慧人機互動
智慧人機互動包括利用自然語言實現人與機器的自然交流。其中一個重要的概念是「對話即平臺」。
「對話即平臺(CaaP,Conversation as a Platform)是微軟執行長薩提亞·納德拉 2016 年提出的概念,他認為圖形介面的下一代就是對話,並會給整個人工智慧、計算機裝置帶來一場新的革命。
薩提亞之所以提出這個概念是因為:首先,源於大家都已經習慣用社交手段,如微信、Facebook 與他人聊天的過程。我們希望將這種交流過程呈現在當今的人機互動中。其次,大家現在面對的裝置有的螢幕很小(比如手機),有的甚至沒有螢幕(比如有些物聯網裝置),語音互動更加自然和直觀。對話式人機互動可呼叫 Bot 來完成一些具體的功能,比如訂咖啡,買車票等等。許多公司開放了 CAAP 平臺,讓全世界的開發者都能開發出自己喜歡的 Bot 以便形成一個生態。
面向任務的對話系統比如微軟的小娜通過手機和智慧裝置讓人與電腦進行交流,由人釋出命令,小娜理解並完成任務。同時,小娜理解你的習慣,可主動給你一些貼心提示。而聊天機器人,比如微軟的小冰負責聊天。無論是小娜這種注重任務執行的技術,還是小冰這種聊天系統,其實背後單元處理引擎無外乎三層技術:第一層,通用聊天機器人;第二層,搜尋和問答(Infobot);第三層,面向特定任務對話系統(Bot)。
聊天系統的架構
機器閱讀理解
自然語言理解的一個重要研究課題是閱讀理解。
閱讀理解就是讓電腦看一遍文章,針對這些文章問一些問題,看電腦能不能回答出來。機器閱讀理解技術有著廣闊的應用前景。例如,在搜尋引擎中,機器閱讀理解技術可以用來為使用者的搜尋(尤其是問題型的查詢)提供更為智慧的答案。我們通過對整個網際網路的文件進行閱讀理解,從而直接為使用者提供精確的答案。同時,這在移動場景的個人助理,如微軟小娜(Cortana)裡也有直接的應用:智慧客服中可使用機器閱讀文字文件(如使用者手冊、商品描述等)來自動或輔助客服來回答使用者的問題;在辦公領域可使用機器閱讀理解技術處理個人的郵件或者文件,然後用自然語言查詢獲取相關的資訊;在教育領域用來可以用來輔助出題;在法律領域可用來理解法律條款,輔助律師或者法官判案;在金融領域裡從非結構化的文字(比如新聞中)抽取金融相關的資訊等。機器閱讀理解技術可形成一個通用能力,第三方可以基於它構建更多的應用。
斯坦福大學在 2016 年 7 月釋出了一個大規模的用於評測閱讀理解技術的資料集(SQuAD),包含 10 萬個由人工標註的問題和答案。SQuAD 資料集中,文章片段(passage)來自維基百科的文章,每個文章片段(passage)由眾包方式,標註人員提 5 個問題,並且要求問題的答案是 passage 中的一個子片段。標註的資料被分成訓練集和測試集。訓練集公開發布用來訓練閱讀理解系統,而測試集不公開。參賽者需要把開發的演算法和模型提交到斯坦福由其執行後把結果報在網站上。
一開始,以 100 分為例,人的水平是 82.3 左右,機器的水平只有 74 分,機器相差甚遠。後來通過不斷改進,機器閱讀理解效能得以逐步地提高。2018 年 1 月,微軟亞洲研究院提交的 R-Net 系統首次在 SQuAD 資料集上以 82.65 的精準匹配的成績首次超越人類在這一指標上的成績。隨後阿里巴巴、科大訊飛和哈工大的系統也在這一指標上超越人類水平。標誌著閱讀理解技術進入了一個新的階段。最近微軟亞洲研究院的 NL-Net 和谷歌的 BERT 系統又先後在模糊匹配指標上突破人類水平。對於閱讀理解技術的推動,除了 SQuAD 資料集起到了關鍵作用之外,還有如下三個方的因素:首先,是端到端的深度神經網路。其次,是預訓練的神經網路;最後,是系統和網路結構上的不斷創新。
機器創作
機器可以做很多理性的東西,也可以做出一些創造性的東西。
早在 2005 年,微軟亞洲研究院在時任院長沈向洋的提議和支援下成功研發了《微軟對聯》系統。使用者出上聯,電腦對出下聯和橫批,語句非常工整。
在此基礎上,我們又先後開發了格律詩和猜字謎的智慧系統。在字謎遊戲裡,使用者給出謎面,讓系統猜出字,或系統給出謎面讓使用者猜出字。2017 年微軟研究院開發了電腦寫自由體詩系統、作詞譜曲系統。中央電視臺《機智過人》節目就曾播放過微軟的電腦作詞譜曲與人類選手進行詞曲創作比拼的內容。這件事說明如果有大資料,那麼深度學習就可以模擬人類的創造智慧,也可以幫助專家產生更好的想法。
就作詞來說,寫一首歌詞首先要決定主題。比如想寫一首與「秋」,「歲月」,「滄桑」,「感嘆」相關的歌,利用詞向量表示技術,可知「秋風」、「流年」、「歲月」、「變遷」等詞語比較相關,通過擴充套件主題可以約束生成的結果偏向人們想要的歌詞,接著在主題模型的約束下用序列到序列的神經網路,用歌詞的上一句去生成下一句,如果是第一句,則用一個特殊的序列作為輸入去生成第一句歌詞,這樣迴圈生成歌詞的每一句。
下面也簡介一下譜曲。為一首詞譜曲不單要考慮旋律是否好聽,也要考慮曲與詞是否對應。這類似於一個翻譯過程。不過這個翻譯中的對應關係比自然語言翻譯更為嚴格。它需嚴格規定每一個音符對應到歌詞中的每一個字。例如每一句有 N 個字,那麼就需要將這句話對應的曲切分成 N 個部分,然後順序完成對應關係。這樣在「翻譯」過程中要「翻譯」出合理的曲譜,還要給出曲與詞之間的對應關係。我們利用了一個改進的序列到序列的神經網路模型,完成從歌詞「翻譯」到曲譜的生成過程。
趨勢熱點:值得關注的 NLP 技術
從最近的 NLP 研究中,我們認為有一些技術發展趨勢值得關注,這裡總結了五個方面:
熱點一,預訓練神經網路
如何學習更好的預訓練的表示,在一段時間內繼續成為研究的熱點。
通過類似於語言模型的方式來學習詞的表示,其用於具體任務的正規化得到了廣泛應用。這幾乎成為自然語言處理的標配。這個正規化的一個不足是詞表示缺少上下文,對上下文進行建模依然完全依賴於有限的標註資料進行學習。實際上,基於深度神經網路的語言模型已經對文字序列進行了學習。如果把語言模型關於歷史的那部分引數也拿出來應用,那麼就能得到一個預訓練的上下文相關的表示。這就是 Matthew Peters 等人在 2018 年 NAACL 上的論文「Deep Contextualized Word Representations」的工作,他們在大量文字上訓練了一個基於 LSTM 的語言模型。最近 Jacob Delvin 等人又取得了新的進展,他們基於多層 Transformer 機制,利用所謂「MASKED」模型預測句子中被掩蓋的詞的損失函式和預測下一個句子的損失函式所預訓練得到的模型「BERT」,在多個自然語言處理任務上取得了當前最好的水平。以上提到的所有的預訓練的模型,在應用到具體任務時,先用這個語言模型的 LSTM 對輸入文字得到一個上下文相關的表示,然後再基於這個表示進行具體任務相關的建模學習。結果表明,這種方法在語法分析、閱讀理解、文字分類等任務都取得了顯著的提升。最近一段時間,這種預訓練模型的研究成為了一個研究熱點。
如何學習更好的預訓練的表示在一段時間內將繼續成為研究的熱點。在什麼粒度(word,sub-word,character)上進行預訓練,用什麼結構的語言模型(LSTM,Transformer 等)訓練,在什麼樣的資料上(不同體裁的文字)進行訓練,以及如何將預訓練的模型應用到具體任務,都是需要繼續研究的問題。現在的預訓練大都基於語言模型,這樣的預訓練模型最適合序列標註的任務,對於問答一類任務依賴於問題和答案兩個序列的匹配的任務,需要探索是否有更好的預訓練模型的資料和方法。將來很可能會出現多種不同結構、基於不同資料訓練得到的預訓練模型。針對一個具體任務,如何快速找到合適的預訓練模型,自動選擇最優的應用方法,也是一個可能的研究課題。
熱點二,遷移學習和多工學習
對於那些本身缺乏充足訓練資料的自然語言處理任務,遷移學習有著非常重要和實際的意義。多工學習則用於保證模型能夠學到不同任務間共享的知識和資訊。
不同的 NLP 任務雖然採用各自不同型別的資料進行模型訓練,但在編碼器(Encoder)端往往是同構的。例如,給定一個自然語言句子 who is the Microsoft founder,機器翻譯模型、複述模型和問答模型都會將其轉化為對應的向量表示序列,然後再使用各自的解碼器完成後續翻譯、改寫和答案生成 (或檢索) 任務。因此,可以將不同任務訓練得到的編碼器看作是不同任務對應的一種向量表示,並通過遷移學習(Transfer Learning)的方式將這類資訊遷移到目前關注的目標任務上來。對於那些本身缺乏充足訓練資料的自然語言處理任務,遷移學習有著非常重要和實際的意義。
多工學習(Multi-task Learning)可通過端到端的方式,直接在主任務中引入其他輔助任務的監督資訊,用於保證模型能夠學到不同任務間共享的知識和資訊。Collobert 和 Weston 早在 2008 年就最早提出了使用多工學習在深度學習框架下處理 NLP 任務的模型。最近 Salesforce 的 McCann 等提出了利用問答框架使用多工學習訓練十項自然語言任務。每項任務的訓練資料雖然有限,但是多個任務共享一個網路結構,提升對來自不同任務的訓練資料的綜合利用能力。多工學習可以設計為對諸任務可共建和共享網路的核心層次,而在輸出層對不同任務設計特定的網路結構。
熱點三,知識和常識的引入
如何在自然語言理解模組中更好地使用知識和常識,已經成為目前自然語言處理領域中一個重要的研究課題。
隨著人們對人機互動(例如智慧問答和多輪對話)要求的不斷提高,如何在自然語言理解模組中更好地使用領域知識,已經成為目前自然語言處理領域中一個重要的研究課題。這是由於人機互動系統通常需要具備相關的領域知識,才能更加準確地完成使用者查詢理解、對話管理和回覆生成等任務。
最常見的領域知識包括維基百科和知識圖譜兩大類。機器閱讀理解是基於維基百科進行自然語言理解的一個典型任務。給定一段維基百科文字和一個自然語言問題,機器閱讀理解任務的目的是從該文字中找到輸入問題對應的答案短語片段。語義分析是基於知識圖譜進行自然語言理解的另一個典型任務。給定一個知識圖譜(例如 Freebase)和一個自然語言問題,語義分析任務的目的是將該問題轉化為機器能夠理解和執行的語義表示。目前,機器閱讀理解和語義分析可以說是最熱門的自然語言理解任務,它們受到了來自全世界研究者的廣泛關注和深入探索。
常識指絕大多數人都瞭解並接受的客觀事實,例如海水是鹹的、人渴了就想喝水、白糖是甜的等。常識對機器深入理解自然語言非常重要,在很多情況下,只有具備了一定程度的常識,機器才有可能對字面上的含義做出更深一層次的理解。然而獲取常識卻是一個巨大的挑戰,一旦有所突破將是影響人工智慧程序的大事情。另外,在 NLP 系統中如何應用常識尚無深入的研究,不過出現了一些值得關注的工作。
熱點四,低資源的 NLP 任務
引入領域知識(詞典、規則)可以增強資料能力、基於主動學習的方法增加更多的人工標註資料等,以解決資料資源貧乏的問題。
面對標註資料資源貧乏的問題,譬如小語種的機器翻譯、特定領域對話系統、客服系統、多輪問答系統等,NLP 尚無良策。這類問題統稱為低資源的 NLP 問題。對這類問題,除了設法引入領域知識(詞典、規則)以增強資料能力之外,還可以基於主動學習的方法來增加更多的人工標註資料,以及採用無監督和半監督的方法來利用未標註資料,或者採用多工學習的方法來使用其他任務甚至其他語言的資訊,還可以使用遷移學習的方法來利用其他的模型。
以機器翻譯為例,對於稀缺資源的小語種翻譯任務,在沒有常規雙語訓練資料的情況下,首先通過一個小規模的雙語詞典(例如僅包含 2000 左右的詞對),使用跨語言詞向量的方法將源語言和目標語言詞對映到同一個隱含空間。在該隱含空間中, 意義相近的源語言和目標語言詞具有相近的詞向量表示。基於該語義空間中詞向量的相似程度構建詞到詞的翻譯概率表,並結合語言模型,便可以構建基於詞的機器翻譯模型。使用基於詞的翻譯模型將源語言和目標語言單語語料進行翻譯,構建出偽雙語資料。於是,資料稀缺的問題通過無監督的學習方法產生偽標註資料,就轉化成了一個有監督的學習問題。接下來,利用偽雙語資料訓練源語言到目標語言以及目標語言到源語言的翻譯模型,隨後再使用聯合訓練的方法結合源語言和目標語言的單語資料,可以進一步提高兩個翻譯系統的質量。
為了提高小語種語言的翻譯質量,我們提出了利用通用語言之間大規模的雙語資料,來聯合訓練四個翻譯模型的期望最大化訓練方法(Ren et al., 2018)。該方法將小語種(例如希伯來語)作為有著豐富語料的語種(例如中文)和(例如英語)之間的一個隱含狀態,並使用通用的期望最大化訓練方法來迭代地更新 X 到 Z、Z 到 X、Y 到 Z 和 Z 到 Y 之間的四個翻譯模型,直至收斂。
熱點五,多模態學習
視覺問答作為一種典型的多模態學習任務,在近年來受到計算機視覺和自然語言處理兩個領域研究人員的重點關注。
嬰兒在掌握語言功能前,首先通過視覺、聽覺和觸覺等感官去認識並瞭解外部世界。可見,語言並不是人類在幼年時期與外界進行溝通的首要手段。因此,構建通用人工智慧也應該充分地考慮自然語言和其他模態之間的互動,並從中進行學習,這就是多模態學習。
視覺問答作為一種典型的多模態學習任務,在近年來受到計算機視覺和自然語言處理兩個領域研究人員的重點關注。給定一張圖片和使用者提出的一個自然語言問題,視覺問答系統需要在理解圖片和自然語言問題的基礎上,進一步輸入該問題對應的答案,這需要視覺問答方法在建模中能夠對影象和語言之間的資訊進行充分地理解和互動。
我們在今年的 CVPR 和 KDD 大會上分別提出了基於問題生成的視覺問答方法(Li et al., 2018)以及基於場景圖生成的視覺問答方法(Lu et al., 2018),這兩種方法均在視覺問答任務上取得了非常好的結果,實現了 state-of-the-art 的效果。除視覺問答外,視訊問答是另一種最近廣受關注的多模態任務。該任務除了包括帶有時序的視訊資訊外,還包括了音訊資訊。目前,視訊問答作為一種新型的問答功能,已經出現在搜尋引擎的場景中。可以預見,該任務在接下來一定還會受到更多的關注。
未來展望:理想的 NLP 框架和發展前景
我們認為,未來理想狀態下的 NLP 系統架構可能是如下一個通用的自然語言處理框架:
首先,對給定自然語言輸入進行基本處理,包括分詞、詞性標註、依存分析、命名實體識別、意圖/關係分類等。
其次,使用編碼器對輸入進行編碼將其轉化為對應的語義表示。在這個過程中,一方面使用預訓練好的詞嵌入和實體嵌入對輸入中的單詞和實體名稱進行資訊擴充,另一方面,可使用預訓練好的多個任務編碼器對輸入句子進行編碼並通過遷移學習對不同編碼進行融合。
接下來,基於編碼器輸出的語義表示,使用任務相關的解碼器生成對應的輸出。還可引入多工學習將其他相關任務作為輔助任務引入到對主任務的模型訓練中來。如果需要多輪建模,則需要在資料庫中記錄當前輪的輸出結果的重要資訊,並應用於在後續的理解和推理中。
顯然,為了實現這個理想的 NLP 框架需要做很多工作:
-
需要構建大規模常識資料庫並且清晰通過有意義的評測推動相關研究;
-
研究更加有效的詞、短語、句子的編碼方式,以及構建更加強大的預訓練的神經網路模型;
-
推進無監督學習和半監督學習,需要考慮利用少量人類知識加強學習能力以及構建跨語言的 embedding 的新方法;
-
需要更加有效地體現多工學習和遷移學習在 NLP 任務中的效能,提升強化學習在 NLP 任務的作用,比如在自動客服的多輪對話中的應用;
-
有效的篇章級建模或者多輪會話建模和多輪語義分析;
-
要在系統設計中考慮使用者的因素,實現使用者建模和個性化的輸出;
-
構建綜合利用推理系統、任務求解和對話系統,基於領域知識和常識知識的新一代的專家系統;
-
利用語義分析和知識系統提升 NLP 系統的可解釋能力。
未來十年,NLP 將會進入爆發式的發展階段。從 NLP 基礎技術到核心技術,再到 NLP+的應用,都會取得巨大的進步。比爾蓋茨曾經說過人們總是高估在一年或者兩年中能夠做到的事情,而低估十年中能夠做到的事情。
我們不妨進一步想象十年之後 NLP 的進步會給人類生活帶來哪些改變?
-
十年後,機器翻譯系統可以對上下文建模,具備新詞處理能力。那時候的講座、開會都可以用語音進行自動翻譯。除了機器翻譯普及,其他技術的進步也令人耳目一新。家裡的老人和小孩可以跟機器人聊天解悶。
-
機器個人助理能夠理解你的自然語言指令,完成點餐、送花、購物等下單任務。你已習慣於客服機器人來回答你的關於產品維修的問題。
-
你登臨泰山發思古之幽情,或每逢佳節倍思親,拿出手機說出感想或者上傳一幅照片,一首情景交融、圖文並茂的詩歌便躍然於手機螢幕上,並且可以選擇格律詩詞或者自由體的表示形式,亦可配上曲譜,發出大作引來點贊。
-
可能你每天看到的體育新聞、財經新聞報道是機器人寫的。
-
你用手機跟機器人老師學英語,老師教你口語,糾正發音,跟你親切對話,幫你修改論文。
-
機器人定期自動分析浩如煙海的文獻,給企業提供分析報表、輔助決策並做出預測。搜尋引擎的智慧程度大幅度提高。很多情況下,可以直接給出答案,並且可以自動生成細緻的報告。
-
利用推薦系統,你關心的新聞、書籍、課程、會議、論文、商品等可直接推送給你。
-
機器人幫助律師找出判據,挖掘相似案例,尋找合同疏漏,撰寫法律報告。
-
……
未來,NLP 將跟其他人工智慧技術一道深刻地改變人類的生活。當然前途光明、道路曲折是亙古不變的道理,為了實現這個美好的未來,我們需要大膽創新、嚴謹求實、紮實進取。講求研究和應用並舉,普及與提高同步。我們期待著與業界同仁一道努力,共同走進 NLP 下一個輝煌的十年。