在北大AI公開課上,微軟亞洲研究院副院長周明受邀參加。在與大家分享了近期自然語言技術取得的進展和創(chuàng)新成果的同時也探討了自然語言技術和搜索引擎如何進一步結合并創(chuàng)造新的可能。
在課后問答環(huán)節(jié),周明著重解讀了當前自然語言技術比較重要的研究方向,并為想要進入這一領域的同學提供了一些實用建議。
本文由?AI?前線(ID:ai-front)獨家整理首發(fā),編輯 | Natalie,未經(jīng)授權請勿轉載。
特邀講者:周明博士,?1999年加入微軟研究院,現(xiàn)任微軟亞洲研究院副院長,也是現(xiàn)任國際計算語言學會(ACL)會長,中國計算機學會理事、中文信息技術專委會(即NLP專委會)主任、中國中文信息學會常務理事。他長期領導NLP的研究,包括輸入法、在線詞典(必應詞典)、下一代搜索、機器翻譯、問答、聊天機器人、計算機對聯(lián)(微軟對聯(lián))、知識圖譜、語義分析、文本挖掘、文本生成、用戶畫像和推薦系統(tǒng)等。主編《機器翻譯》、《智能問答》等NLP技術專著。他的團隊對微軟產(chǎn)品(譬如Office、Windows、必應搜索、Azure、小冰等)的NLP技術做出了不可替代的貢獻。
課程導師:雷鳴,?天使投資人,百度創(chuàng)始七劍客之一,酷我音樂創(chuàng)始人,北大信科人工智能創(chuàng)新中心主任,2000?年獲得北京大學計算機碩士學位,2005?年獲得斯坦福商學院?MBA?學位。
以下為?AI?前線(ID:ai-front)獨家整理的周明老師課程內容(略有刪減)
對于搜索引擎來說,最重要的是兩件事,第一是智能程度,指的是理解用戶意圖和文檔,然后快速找出答案,這是智能部分;第二是自然程度(Naturalness),指的是根據(jù)用戶輸入的搜索請求,把搜索結果很自然地展現(xiàn)給用戶,整體表現(xiàn)就是搜索非常流暢。自然語言從搜索引擎出現(xiàn)開始一直到今天為止,都對搜索引擎的智能和自然這兩個方面起到了極為重要的作用。
?
下圖是一個典型的搜索引擎,我們以微軟Bing搜索為例回顧一下搜索引擎的工作過程,再看看其中涉及到哪些自然語言技術。?
首先會有一個輸入框,我們叫做Header&Search?Box,用于輸入Query。用戶輸入Query之后,它就要干一件事,叫Context&Query?Understanding。搜索引擎首先要理解Context,就是什么人用了什么樣的設備、在什么地點輸入這樣的Query,其次要理解用戶的意圖,就是用戶輸入這個Query是想搜什么。
基于理解的結果,再到網(wǎng)上去搜索。主要會搜出幾件事,第一個就是Ten?Blue?Links即十個最重要的匹配文檔。還有Super?Fresh內容,就是新鮮的一些事物或者文檔,比如新聞的有關結果搜出來。還有一些Instant?Answer,就是涉及到天氣、股票、交通等垂直領域的信息,我們一般都叫Instant?Answer。還有一些Task&Social?Pane,Task指的是基于搜索結果的頁面上還可能要做新的任務,比如訂票;Social?Pane是列出相關的微信、微博或LinkedIn的各種信息。最后在以上的各種搜索結果基礎上配上合適的廣告。
這就是我們的搜索引擎基于一個用戶Query到最后輸出搜索結果的一個過程。然后我們要把這些結果體現(xiàn)在一個網(wǎng)頁上,再對頁面進行整體優(yōu)化,適應于不同的設備、瀏覽器和屏幕(比如桌面和手機),頁面布局要美觀大方。
為了支持這個搜索過程,我們需要一些Offline的操作,最主要的就是Crawler和Index。Crawler指的是到網(wǎng)上把浩如煙海的各種文檔爬下來,爬的越多越好;然后是Index,把重要的文檔選出來,同時把每篇文檔中其中的重要信息摘出來,一般是用關鍵詞來做索引,然后入庫;這個過程中需要把一些有極端傾向或者黃色的文檔過濾掉。這些都是Offline要做的工作,最后要把結果體現(xiàn)到web?index里面,供搜索的前端系統(tǒng)使用。
我們可以看到,整個搜索過程背后用到了很多自然語言技術,具體如下圖。
在搜索引擎初期,自然語言技術用的比較淺。隨著自然語言技術快速發(fā)展并變得越來越成熟,我們把越來越多的自然語言技術(NLP)試探性地放到搜索引擎中,看它能起到什么樣的效果,并不斷加以改進直到穩(wěn)定。NLP在搜索中的作用越來越重要。
今天的講座主要回答兩個問題,第一是自然語言處理到底有哪些新的進展;第二是這些新的進展給我們的搜索引擎帶來了什么新的變化,或者未來可能會帶來什么新的變化。
自然語言技術覆蓋的領域可以總結為三方面,包括?NLP?基礎、NLP?核心技術和?NLP?應用。
NLP基礎包括詞的表示,比如現(xiàn)在熱門的word?Embedding。詞的表示包括上下文無關的表示和上下文有關的表示,前者就是靜態(tài)的Word?Embedding,后者現(xiàn)在一般使用各種預訓練模型,根據(jù)當前的句子來體現(xiàn)一個詞在特定上下文的的語境里面該詞的語義表示。同樣一個詞,在不同的語境下,其語義表示也不一樣?;谠~的表示,我們就可以做很多應用,比如語言模型、分詞、語言模型、句法語義分析、篇章分析、等等,這些都是NLP的基礎。
基于?NLP?基礎,我們又有很多?NLP?的核心技術,包括機器翻譯、問答、信息檢索、信息抽取、對話、知識工程,還有自然語言生成、推薦系統(tǒng),等等。
基于?NLP?核心技術,我們就可以把?NLP?用在一些具體的應用中,比如搜索引擎、客服、商業(yè)智能和語音助手。
為了完成這些任務還需要很多底層支撐技術,包括用戶畫像建模、用于實現(xiàn)個性化的推薦技術、大數(shù)據(jù)能力、計算能力、機器學習和深度學習的能力、知識庫、常識及推理的能力。
?
深度學習先后對圖像、語音、自然語言這些領域都產(chǎn)生了重要的影響。其中,深度學習對自然語言的影響主要體現(xiàn)在以下?6?個方面:
①端到端訓練(End-end training)
過去做統(tǒng)計自然語言處理的時候,都是由專家去定義各種Feature,需要很多領域知識。有的時候不容易找到很好的Feature。而有了端對端的訓練,只要有輸入和輸出的對照(輸入-輸出),把輸入對應的輸出標注好,形成訓練數(shù)據(jù)集合。然后用神經(jīng)網(wǎng)絡通過自動訓練就可以得到學習系統(tǒng),不需要人為設定和優(yōu)選Feature。這改變了很多自然語言技術的發(fā)展,大大降低了自然語言處理的技術門檻。這意味著,你只要有算力和標注數(shù)據(jù),基本上可以“傻瓜式”地實現(xiàn)一個自然語言模型的學習,從而推動了自然語言處理技術的普及。
②語義表示(Embedding)和預訓練模型(Pretrained Model)
一是上下文無關的Embedding(表示),就是不管上下文是什么,一個詞的表示是固定的(用多維向量來表示)。第二個,根據(jù)上下文有關,在不同的句子里,同一個詞的意思可能不一樣,那么它的embedding也是不一樣的?,F(xiàn)在利用Bert和GPT-2這樣的模型,可以根據(jù)一個詞的上下文訓練這個詞的動態(tài)Embedding。在做其他任務時候,預訓練模型可以用來強化輸入信息。有了Embedding這個東西就可以計算詞與詞之間的距離;基于詞的Embedding,又可以得到句子的Embedding,也就可以計算句子與句子之間的距離。這就使得搜索引擎中Query對Document匹配程度的計算得以改進。
③Attention(注意力模型)
?Attention指的是不同的輸入信號源之間可以做相應的修正,來動態(tài)地體現(xiàn)當前層對網(wǎng)絡的下一層或者對網(wǎng)絡輸出層的最佳輸入信號。有了Attention,就可以對受多輸入路信號,然后動態(tài)計算信號之間產(chǎn)生的互相影響。
④句子的編碼方法
(RNN/LSTM/GRU/Transformer)
對于一個不定長的句子,可以通過?RNN、LSTM/GRU?或者?Transformer?技術表示其編碼,表現(xiàn)為若干個隱含狀態(tài)的序列。一個隱含狀態(tài)對應句子的一個詞匯。雖然以上對句子的幾種編碼方式都可行,但是發(fā)展到目前,更多是用?Transformer?來對句子編碼。對句子編碼之后,就可以做翻譯、問答、檢索等各種應用。
⑤編碼 – 解碼模型(Encoder-Decoder)
NLP中,很多任務都可以定義成一個輸入和一個輸出的對應。所以編碼-解碼模型有普遍的適用意義。比如,機器翻譯任務,源語言句子是輸入,目標語言句子是輸出。這樣就存在輸入和輸出的對應。如果是單輪任務,就是輸入和輸出直接對應,不需要中間推理,可以用編碼和解碼的技術來進行建模。除了機器翻譯,詞性標注、分詞、句法分析、語義分析、問答、摘要、閱讀理解等許多任務都可以通過編碼-解碼模型進行建模。
⑥?強化學習
系統(tǒng)根據(jù)用戶的反饋或者環(huán)境的反饋信號,會迭代地修正參數(shù),整個系統(tǒng)得以不斷改進。比如對話系統(tǒng)很多用到了強化學習。不過在很多其他NLP任務中,如何體現(xiàn)強化學習是一個還在不停探索的問題。
?
接下來逐一介紹自然語言技術在不同方向上的進展,并討論每一項進展對于搜索的影響。
?
當用戶提出問題或者?Query?的時候,搜索引擎或問答系統(tǒng)需要到它所能夠掌握的資源里去找到相應的答案。一般有如下幾項資源以及相對應的?QA?技術:
-
Community-QA,就是常見的?FAQ?表。對于一個問題,可尋找歷史上類似的問題,然后把其對應的答案輸出。
-
KBQA,就是到知識圖譜里把相應的答案找出來或者推理出來。
-
TableQA,針對問題在網(wǎng)絡上查找對應的表格,然后把表格的相關信息抽取出來作為答案。
-
PassageQA,針對問題,在無結構的文檔中尋找答案。
-
VQA,從視頻或者圖像中把答案抽取出來。
目前利用多源數(shù)據(jù)流或者知識庫進行?QA?的技術已經(jīng)越來越普及,而且相應的語義分析技術和排序技術也比以前大大提高了。
過去的?QA?都是用的傳統(tǒng)的,像手工編輯的基于規(guī)則的語義分析,比如說?CCG,但由于它存在各種問題,最近三年以來人們更多使用?Encoder-Decoder?技術來做語義分析,在分層語義分析、上下文感知的語義分析上都取得了新的突破。
有了很好的?QA?之后,搜索引擎的智能水平和自然程度都提高了。但是在具體做搜索引擎的時候,比如在某些垂直領域,或者使用某些設備時,怎么用?QA?的結果,可能是仁者見仁智者見智??尚哦葮O高的時候可以使用?QA?的結果,可信度不高的時候還是要回歸到原來的?Ten?Blue?Links?上面,這需要拿捏一定的尺度并跟?UI?很好地結合。
多語言的處理能力對于搜索引擎非常重要。假設我們有很好的機器翻譯技術,就可以做多語言的搜索,將用戶想要搜索的信息、哪怕是來自其他語言的也可以找出來,在搜索結果中呈現(xiàn),并通過機器翻譯技術把頁面翻譯成用戶的母語。
機器翻譯其實一直都進展緩慢,近幾年由于深度學習技術的發(fā)展,神經(jīng)網(wǎng)絡機器翻譯相比統(tǒng)計機器翻譯已經(jīng)有了大幅度的進展。機器翻譯技術可以分成兩類,一種是?Rich?Resource?NMT,也就是雙語語料豐富的語言對(比如中文?–?英文);另一種叫?Low?Resource?NMT,即缺少足夠的雙語語料(比如中文?–?希伯來語)。
目前的機器翻譯在Rich?Resource?上已經(jīng)做得非常好了,甚至在某些訓練集下已經(jīng)可以達到或超過人工翻譯水平。但是Low?Resource現(xiàn)在才剛剛開始,有很多有趣的研究,整體水平還處于比較低級的階段。
機器翻譯在搜索上已經(jīng)有很多的應用,現(xiàn)在每一個搜索引擎都會有機器翻譯應用,用戶可以動態(tài)地把網(wǎng)頁翻譯成所需要的某種語言。
神經(jīng)網(wǎng)絡機器翻譯最開始是用RNN來做,后來引入了注意力模型,過去兩年又出現(xiàn)了Transformer技術,大大提升了并行能力?,F(xiàn)在大部分神經(jīng)網(wǎng)絡機器翻譯都是用Transformer來做的,最近業(yè)界也有了很多新的進展,包括微軟亞洲研究院的最新技術等,使得機神經(jīng)器翻譯有了長足的進步。
上圖所示是微軟?2018?年在神經(jīng)機器翻譯的進展。傳統(tǒng)?Transformer?的?Baseline?只有?24.2,加上單方向的?Back?Translation?之后可以達到?25.57,再加上聯(lián)合學習、對偶學習、多次解碼和雙向一致性解碼等技術讓系統(tǒng)的表現(xiàn)不斷提高。當前將所有成果結合起來已經(jīng)在?WMT?新聞語料上得到了一個最佳翻譯結果,而且這個結果達到了人工翻譯在這個數(shù)據(jù)集合的水平。
下面是一些句子翻譯的示例展示,第一行是輸入的句子,第二行就是機器翻譯的句子,第三行是人工翻譯的句子。雖然有些詞用法不一樣,但是所有句子相互之間都是等價的。
當沒有那么足夠多語料的時候,就要考慮?Low?Resource?的機器翻譯技術。Low?Resource?的機器翻譯現(xiàn)在主要有三個思路。
-
樞軸式翻譯(Pivot-based?NMT):比如說要翻中日,可以通過先中翻英、再英翻日這樣一個兩步走的過程來實現(xiàn),因為中文?–?英文、英文?–?日文的雙語語料比較多。
-
Tri-Language?NMT:這是一個三角形的機器翻譯架構。假設有一個?Rich?Resource?的語料對,比如中英,但是要翻譯一個?Low?Resource?的語言,比如希伯來語。中文和希伯來語、英文和希伯來語的預料對相對都比較少,那么可以利用中英已經(jīng)很強大的機器翻譯和對應的語料,來把希伯來語和中文,與希伯來語和英文的翻譯來強化,通過一個?EM?迭代的過程來體現(xiàn)這樣的帶動作用。
-
Unsupervised?NMT:有時候可能什么雙語料也沒有,只有一些簡單的小辭典,體現(xiàn)源語言詞與目標語言詞的對應關系。那么可以利用這個小辭典做一些工作。首先做一個所謂的跨語言?Word?Embedding,把不同語言的詞,如果它們表達相近或者相同的意思,試圖通過一種方式把它們聚在一起。抽取高可信度的詞匯對應形成一個雙語對照辭典?;谶@個翻譯辭典,再加上目標語言的語言模型,就可以做一個詞匯級的統(tǒng)計機器翻譯?;谶@個統(tǒng)計機器翻譯,就可以把源語言翻譯得到目標語言,或反之,雖然翻譯質量不高。再利用這樣的雙語料,就可以分別去訓練神經(jīng)網(wǎng)絡機器翻譯,然后再通過類似我們在做WMT的一些技術,比如實現(xiàn)源到目的、目的到源的翻譯系統(tǒng)的互相迭代,進一步強化翻譯結果。
多模態(tài)搜索指的就是將語言、語音、文字、圖像等各種模態(tài)集成來進行搜索。
近幾年?ImageNet?數(shù)據(jù)集將圖像識別的水平大幅度提高,而?image?captioning?和?video?captioning?技術可以用自然語言來描述圖像和視頻的內容。這些技術的進展激發(fā)了研究人員對多模態(tài)搜索的更多嘗試來提高搜索的用戶體驗。
VQA?指的是基于圖片對用戶提出的問題進行解答。有了?VQA?數(shù)據(jù)集之后,研究人員就可以實驗性地去做一些基于圖像的問答系統(tǒng),背后涉及到如何對圖像跟自然語言進行編碼,如何通過注意力模型把常識引入進去,以提高整體水平。目前仍處于初期階段,其中還有許多有意思的挑戰(zhàn),比如怎么使用推理和常識。最近斯坦福做了一個叫做?GQA?的數(shù)據(jù)集,用來體現(xiàn)?VQA?的推理過程,比如對一個問題經(jīng)過哪幾個步驟進行了推理得到答案。研究人員可以用它來訓練?VQA?系統(tǒng)的推理能力。
基于多模態(tài)技術,可以做出很多新的搜索體驗。比如用戶輸入一個?Query,可以直接輸出圖像結果,甚至圖像中每一個人在知識圖譜中對應的?ID?可以找回來,提示給用戶,可以鏈接知識圖譜的描述。其中也用到了人臉識別技術。
另外,也可以直接輸入圖像進行?Query,比如手機照相,經(jīng)過圖形識別,得到相關圖像和文檔。
圖像搜索的結果也可以強化普通的文本搜索結果。比如在輸入引擎中輸入一個?Query:大象吃什么?可得到文本搜索的結果以及圖像的搜索結果。這兩個結果可以互相增強,來提高用戶的搜索體驗。
機器閱讀理解(Machine?Reading?Comprehension),簡稱?MRC。簡單地說,就是針對一篇文章,如果問機器一個問題,看機器能不能把這個問題回答出來,有時候是直接從文章中找出一個答案,有時候可能要根據(jù)上下文進行推理。
過去這幾年,SQuAD?1.1、SQuAD?2.0、CoQA這些經(jīng)典的機器閱讀理解數(shù)據(jù)集驅動著MRC快速發(fā)展。而大量涌現(xiàn)出的很多優(yōu)秀的Pre-trained?Model,像ELMo、Bert等也大幅提高了MRC的水平,主要體現(xiàn)在能夠將一些開放領域的人類知識(隱含)進行編碼,強化輸入信號(問題和文章),并參與到一個整體的端對端訓練過程中。學術界和產(chǎn)業(yè)界有很多團隊在不斷刷新著MRC的記錄,甚至超越了人工水準。如下圖所示。
有了更高的機器閱讀理解水平,我們可將其應用在搜索上做一些新的嘗試,MRC?對搜索的幫助主要體現(xiàn)在以下幾方面:
-
首先可以對搜索結果的摘要進行改進,抽取出更好的摘要。對于摘要中最匹配答案的部分,可以更好地?highlight?出來。
-
優(yōu)化手冊閱讀理解。一般使用手冊都很長,沒有人愿意看,只需要將手冊的?PDF?文件數(shù)字化,就可以做機器閱讀理解。而用戶只要發(fā)出一個問題,可直接找出它的答案。
? ? ? 3.加速網(wǎng)站全站搜索。在某一個網(wǎng)站中,比如客服網(wǎng)站或某一個產(chǎn)品的介紹網(wǎng)站,如果用戶有問題,只要把問題輸入進去,機器可以對整個網(wǎng)站進行解析,并把答案直接抽取出來。同時用戶還可以通過?Conversational?QA?連續(xù)對網(wǎng)站進行連續(xù)提問。通過?MRC?找到精準的答案,以實現(xiàn)一個交互式的搜索過程。
未來?MRC?如果要進一步提升,一方面在?Pre-trained??Model?上還有很多可以改進的地方,另外還要加強上下文推理的能力,以及更好地融合常識和知識庫,增強推理過程。
對于搜索引擎來說,推薦系統(tǒng)變得越來越重要。所謂推薦系統(tǒng)指的就是用戶不用(顯式)輸入?Query,系統(tǒng)會根據(jù)用戶過去的行為,直接把他可能喜歡的內容推薦過去?,F(xiàn)在這種方式在手機端越來越流行。
這背后涉及很多技術:
-
第一個技術是用戶畫像(User?Modeling)。即根據(jù)用戶的各種行為,比如搜索行為、使用地圖的行為、電子商務網(wǎng)站的各種行為,這些行為構成的異構數(shù)據(jù),對某個用戶形成了一個全面的了解。通過對多種異構數(shù)據(jù)的融合建模,來體現(xiàn)用戶畫像。
-
第二是怎么將用戶畫像的結果表達出來。一種是顯示的表達,比如男女、性格、年齡等用關鍵詞或數(shù)字表示出來。如果涉及隱私問題,可考慮隱式的表達,通過?User?Embedding,用多維向量(一串數(shù)字)來代表一個用戶的整體特征。?雖然不能顯式體現(xiàn)用戶的特征(從而保護用戶隱私),但是卻能夠體現(xiàn)出很好的推薦效果。
-
根據(jù)知識圖譜和朋友圈對推薦內容進行擴展。
推薦內容拓展之后,再加上用戶畫像,最后就會變成一個簡單的匹配或者?Ranking?的過程。也就是將用戶畫像作為一個?Embedding,待推薦的事情(比如說新聞、博客、Video、電影等)也做?Embedding,通過神經(jīng)網(wǎng)絡計算他們的相似度,相似度高就推薦給用戶,這樣就可以實現(xiàn)一個推薦的過程。
上面展示的是微軟亞洲研究院在個性化推薦系統(tǒng)上做過的一些工作。
未來,個性化推薦系統(tǒng)有幾個方向值得關注:
-
做聰明的推薦,既能找到用戶以前喜歡的內容,又能預測用戶未來可能喜歡的內容,及時推薦給用戶。
-
推薦系統(tǒng)的可解釋性,做推薦不能盲目推薦,還需要給用戶一個解釋,為什么要把這樣的內容推薦給他呢?可能因為他的朋友某某喜歡,或者因為通過用戶早前的搜索行為預測用戶可能喜歡這個被推薦內容。這種解釋要以自然語言形式附著在被推薦內容上面,來幫助用戶理解。
自然語言處理未來比較重要的研究課題包括:
-
知識獲取和知識表示,尤其是前面提到的?Pre-trained?Model,一是怎么用,二是怎么改進。還有像常識知識如何獲取,如何加入到數(shù)據(jù)訓練過程中,以及如何融入領域知識和?Open?Domain?的知識等。
-
新的學習方法,比如多任務學習、強化學習、半監(jiān)督和無監(jiān)督的學習,還有?Low?Resource?資源的學習。此外,推理是未來關注焦點。如何把推理很好地建立起來。用在機器閱讀理解、多輪對話、法律、醫(yī)療診斷等方面。
-
上下文相關的建模(Context?Modeling)。多輪對話的時候,如何把歷史信息存儲起來,又如何用在當前句子的解析里面。
-
新的搜索模態(tài):除了文字,用戶用語音、圖像、手勢、觸摸等進行搜索。而且多個模態(tài)可以自然融合。
-
搜索結果的生成和摘要。這方面做的相對比較少,比如將不同方面的內容收集出來,體現(xiàn)出鮮明的觀點,甚至做一些對比,生成深度好文等。
-
信息流。信息流現(xiàn)在無論是工業(yè)界還是學術界都越來越熱。如何進行用戶畫像建模,如何獲得豐富的內容(抓取、授權、翻譯、生成等),如何做各種推薦,如何提供推薦的解釋等都是未來很重要的研究方向。
雷鳴:多輪對話一直是研究上的一個熱點,也是一個難點,到現(xiàn)在應該說解決的也不是特別好,這塊的話,你感覺它的最大的挑戰(zhàn)在哪?未來的幾年會有什么樣的進展?可能在什么技術上能支撐它做得更好?
周明:?多輪對話問題確實很難,現(xiàn)在來講最難的就是,上下文信息記錄下來之后,什么信息可以用在當前的這個句子里,什么信息應該遺忘,這在目前是不夠清楚的,沒有那么強的信號。所以有時候語義分析結果會出現(xiàn)一些錯誤,通用的多輪對話還是很難。因此具體應用的時候,多輪對話一定要考慮場景,如果把場景定義清楚了,你就可以很容易地定義狀態(tài),而在每個狀態(tài)下可以提問的形式也是有限的,就可以做相應的推理。這樣一來,多輪對話可能相應會容易一些?,F(xiàn)在對話系統(tǒng)都是面向具體任務或者具體場景來設計的。
如果一個對話系統(tǒng)對應多個場景,就需要判斷場景之間是否出現(xiàn)切換。只要判斷進了某個場景,就調用那個領域的對話引擎(知識圖譜、對話狀態(tài)圖譜),根據(jù)當前的狀態(tài)來判斷那個下一個回復應該怎么進行,等等。
當然有一些聊天機器人,比如微軟小冰,不是完成某一個任務的對話驅動,它的技術跟面向任務的多輪對話有很多不同。這里就不多介紹了。
雷鳴:最近強化學習之父發(fā)了一篇文章,是關于算力推動整個計算機領域包括算法和技術發(fā)展的論點,文中主要觀點是說我們的科研要跟著算力走。這點正好也映射了之前我們在課上提到過的,如?Bert、GPT?2.0?等依靠巨大的算力建立起預訓練模型,在很多方面幫助自然語言提升各項能力或解決了一些問題。從一定意義上,你怎么看算力和自然語言下一步發(fā)展之間的關系?現(xiàn)在很多自然語言問題沒有解決,會不會是算力沒達到,還是說算法不夠精巧?未來算力和算法之間會出現(xiàn)什么樣的交替關系,或者有沒有可能因為算力的高度提升,最終?NLP?能夠計算機視覺一樣得到終極解決?
周明:?首先,算力永遠是重要的?,F(xiàn)在好多?NLP?評測任務(機器翻譯、閱讀理解等),如果沒有算力根本不可能上得來。算力的背后,體現(xiàn)的一種對知識(特征)的不斷抽取過程,比如神經(jīng)網(wǎng)絡四層和八層,區(qū)別在哪?層數(shù)越高對特征抽取的能力就越強。當然也需要更強的算力。從這一點上來看,算力強,對輸入信號表示能力和特征抽取的能力就強,當然其對應的解題的能力就更強。
但是有些問題只憑算力也無從下手。比如我們剛剛提到的?Low?Resource?問題,在缺少訓練語料的情況下,搞一千層、一萬層也沒用。這時候光靠算力的蠻力解決不了太多問題,可能要引入一些建模上的能力,或者引入人類知識。比如說將人類專家的幾條翻譯規(guī)則融入到神經(jīng)網(wǎng)絡機器翻譯之中,進行冷啟動或者增強基于數(shù)據(jù)的學習系統(tǒng)。這時候需要考慮的是,人類的知識模型或知識庫如何跟數(shù)據(jù)驅動的模型巧妙地融合起來,發(fā)揮各自的特長。這時候算力當然還是越強越好,但已經(jīng)不是唯一重要的。如何建立人類知識體系(開放和領域相關的)并將其融入到原來的基于數(shù)據(jù)驅動的方法之中,這里還有很多值得研究的問題。
第二個問題就是多輪問題。應用神經(jīng)網(wǎng)絡方法,現(xiàn)在只要算力足夠強、數(shù)據(jù)足夠大,對單輪任務(比如單句級機器翻譯任務就是典型的單論?NLP?任務,一個輸入句子,對應一個輸出句子)的能力已經(jīng)非常強大,但多輪依然很難。因為多輪任務會出現(xiàn)動態(tài)的變化。比如多輪對話,用戶會根據(jù)前一個回答再提出新的問題,我們無法提前把訓練的輸入、中間輪可能的回答、最后輪的輸出等這些數(shù)據(jù),大規(guī)模地標注出來,做成足夠大的訓練集合。多輪建模的時候還會涉及到?Memory?的問題(存儲前后輪上下文得到的信息)、建立人類常識等。這些還沒有到簡單地憑算力就可以很好地解決的地步。
未來可能有兩條路,一是基于數(shù)據(jù)驅動的。兩件事,一把數(shù)據(jù)掌握好,二是把算力掌握好,就能把模型很好地訓練出來。還有一條路就是基于知識,以及推理的這條線,它背后也要靠一些算力,但我們現(xiàn)在還沒有到以算力取勝的階段。當前可能如何對知識進行建模、如何獲取知識、如何推理,整個理論體系并沒有完全地形成起來。也許未來某一天,理論體系已經(jīng)起來了,那時候大家又要比算力。這件事如果不恰當?shù)乇扔饕幌拢拖喈斢诟锩诓煌碾A段:數(shù)據(jù)驅動已經(jīng)快接近共產(chǎn)主義社會了,而基于知識和推理還處于社會主義初級階段。兩者焦點不一樣。等后者也搞清楚了,這時候加上算力推動,也許真有希望進入共產(chǎn)主義了,也就是說對多輪?NLP?任務可以很好地解決了。這樣認知智能會進入實用階段。
雷鳴:關于知識圖譜和深度學習相結合,現(xiàn)在有沒有什么新的研究在嘗試,或者說未來會有什么發(fā)展?還是說這兩個有點水火不容,很難真的融合起來?
周明:?首先在?Offline?階段,建知識圖譜的時候會用到一些深度學習的方法,比如說信息抽取、分類問題、Relation?等,背后的技術可以用深度學習來做,但是建完之后就成為一個知識圖譜了,它又變成符號化了。第二個就是在?Run?time?的時候,怎么把知識圖譜也融入到剛才所說的數(shù)據(jù)驅動里面?,F(xiàn)在有一種辦法,就把知識圖譜也做?Embedding,即?Entity?Embedding,可以根據(jù)知識圖譜的前后左右周圍的節(jié)點和邊,對知識圖譜中的每個節(jié)點和節(jié)點關系,用一個多維語義向量來表達。這跟詞的?Word?Embedding?是一樣的,那么如果這兩個?Embedding?是一樣的,再往上走的時候也可以做?Attention,也可以計算?Encoder、Decoder。現(xiàn)在有很多任務都在沿著這個方向走,也有一定的效果,但我不認為目前這個領域取得了多么大的突破,可能還有一些新的探索的余地。
雷鳴:能否大膽地假設,多輪對話和計算機視覺只是信息接口不同,其實背后能夠落到一個相似的領域中去?計算機視覺再往后發(fā)展,是否會跟自然語言的融合性會更強?
周明:?未來人類跟機器最自然的交互是多模態(tài)的,有的是圖像,有的是文字,有的是語音?,F(xiàn)在做研究大都是針對每個單模態(tài),先做好研究,比如圖像識別、語音識別、自然語言處理。將來是多模態(tài)一起融合來編碼和解碼,比如對一個圖片連續(xù)問答,實際上就是多模態(tài)處理。遺憾的是這個方面尚缺乏相應的評測集和數(shù)據(jù)集來推動。我們剛剛提到的斯坦福大學建立的?GQA?數(shù)據(jù)集,實際上就是想把自然語言的問題提問跟圖像理解融合到一起,考察背后的推理能力和答案抽取能力。如果這個數(shù)據(jù)集能有效地推動相關研究,我們以后就可以做更大膽的嘗試,要么更大的數(shù)據(jù)集,要么把某些技術用到一個很狹窄的垂直領域里去看看結果。比如說地圖領域,對著地圖指指點點、說說話,看看是不是能做新一代的智能地圖??梢宰鲆恍┻@樣的嘗試慢慢推動這個領域的發(fā)展。
雷鳴:未來三五年,你覺得自然語言在哪些領域會有比較好的進展?這個進展指的是能夠真正落地,能做出來一些我們作為終端用戶感受得到的產(chǎn)品或者服務的,或者有沒有什么地方可能適合同學們未來幾年創(chuàng)業(yè)之類的?
周明:?首先我們要考慮兩件事,一個是研究,研究可以有自己的?Vision,可能短期實現(xiàn)不了,但是長期必然要走到某一個地方,那從研究角度就應該大膽地去研究。也許一兩年沒做出來很了不起的成果,但長期它總是驅動人類認知提升的一個動力,我們未來一定要走到那里。比如多模態(tài)問答,我覺得它就是人工智能一個終極目標,我們一定要做到。至于怎么做,可以先從單模態(tài)做起,再加雙模態(tài),再多模態(tài)融合;從簡單的單輪問答,再到多輪問答;從一開始不需要推理,再逐漸需要推理,一點點來推進整個過程。
其次就是要去思考某些技術是否可以找到一個垂直領域把它用起來??赡苁呛苷囊粋€領域,但是用的特別巧妙。
比如說文本生成,現(xiàn)在已經(jīng)可以做到給幾個關鍵詞,就把一篇文章,或一首詩,或歌詞生成出來?,F(xiàn)在的?Demo?都已經(jīng)做得挺漂亮了,但是仔細去看其實前后的句子或者段落,不合邏輯,或者不合事實。目前需要研究的是如何把文本生成跟事實融合起來,使它生成的句子既邏輯合理,也體現(xiàn)事實。這件事如果往前推動,我認為是能做出來的。做出來之后可以快速生成大規(guī)模文本,可以做深度好文。做完之后,可以再由人工專家,就是編輯或者作家,來潤色和修改確認。我認為這會對整個人類的文檔生產(chǎn)過程產(chǎn)生巨大的影響。
還有信息抽取。對一個垂直領域,比如說金融、法律、醫(yī)療,做信息抽取,抽取之后形成知識圖譜,基于知識圖譜進行問答、搜索或者推理,甚至建立某一個垂直領域的專家系統(tǒng),我認為一旦對某一個垂直領域做成知識圖譜和推理,將會產(chǎn)生巨大的落地效果。諸如此類的場景,大家都可以去考慮,這是仁者見仁智者見智。另外不完善技術的應用,需要運用之妙存乎一心。技術不必也不可能非得達到百分之一百的好,也許某些場景下,巧妙的設計,對技術的要求百分之六七十就足夠。如果用的特別巧妙,也可能在某一個領域產(chǎn)生相應的經(jīng)濟效應。
雷鳴:隨著?BERT?和?GPT?2.0?的出現(xiàn),NLP?是不是進入了比算力的階段?另外?NLP?最近在挑戰(zhàn)圖靈測試嗎?還有多遠的距離?
周明:?圖靈測試從某種意義上是不是已經(jīng)算解決了,要看怎么定義。以聊天機器人為例,在很多場合,比如微軟小冰現(xiàn)在能聊?23?輪以上,我們沒有去做圖靈測試,如果真要去做,也有可能是突破了圖靈測試。但是我認為?真正的人類智能光憑傳統(tǒng)的圖靈測試是不能完全體現(xiàn)的,比如剛才提過的多輪事實類問答,事實不能錯。除此之外,多模態(tài)對話、需要復雜推理的閱讀理解、自然語言交互的專家系統(tǒng)(比如醫(yī)療診斷、法律咨詢)等等,這些任務的智能水平,離突破圖靈測試還需要很長的時間。
雷鳴:還有就是?NLP?是不是只比算力了,沒點大機器就研究不了了?
周明:?第一大家要尊重算力,過去很多搞人工智能的人都不服算力。但實際上,我認為要尊重這件事,算力體現(xiàn)了剛才所說的建模能力、信息抽取能力、解碼能力,它不是簡單的速度快了、容量大了的問題,而是有一個由量變到質變的過程。第二,我們要尊重算力但也不唯算力,要體現(xiàn)人類建模的能力、知識抽取、常識推理各方面,而恰恰常識知識推理這塊沒有一個人能說清楚,也沒有一套成熟的理論和工具包,這塊恰好是我們未來可以深入研究的。對高校的同學來講,可能會覺得學校沒有公司的算力強,要搞研究就要吃虧,但我覺得應該多去做一些剛才我說的后者,就是建模、知識推理、知識獲取這方面的研究,這樣跟以算力取勝的很多公司可以很好地配合。
雷鳴:未來同聲傳譯有可能會被取代嗎?如果有可能,需要具備什么前提呢?
周明:?似乎有人認為同聲傳譯在一些場合有可能是可以被取代的,但是好好思考一下其實還有很長的路要走。目前語音翻譯還有幾個問題:第一,針對不同人語音特點的語音識別已經(jīng)不錯了,但是還有很大提升空間;第二,背景噪聲對語音識別影響還是很大;第三,專業(yè)術語、新詞影響對語音識別和翻譯影響非常大;第四,凡是用同聲傳譯的場合都是重要場合,它對錯誤的容忍度是非常低的。這不像網(wǎng)頁上只需要把大概的意思翻譯出來,即使有點錯誤,用戶是可以容忍的,而同聲傳譯的場合,只要一個重要人物的名字翻譯錯了,整個翻譯就算失敗了,而且可能有重大的影響。從這個意義上來看,要達到這么高標準的要求,自動同聲傳譯還有很長的路要走。
這里其實有很多技術上的考量、實用上的考量、政治上的考量、投資回報上的考量,我認為不能簡單用?yes?或?no?來回答,它是很漫長的一個過程。但是我們做技術的人,應該繼續(xù)關注技術。把語音識別做得更好,把翻譯做得更好,把?TTS?做得更好,更個性化。不過至于未來它能不能采用,有很多非技術的因素在起作用,現(xiàn)在不能一概而論。
雷鳴:時間關系,我們最后再代表同學問一個問題。很多同學現(xiàn)在正在學?NLP?或者對?NLP?感興趣,包括專業(yè)的和非專業(yè)的兩種學生,如果他們未來想做從事這方面的工作,你覺得他們在大學階段或者研究生階段應該怎么做,將來才能在這一塊有所建樹?
周明:?大家可能會覺得自然語言好像聽起來很復雜。其實我想跟大家講的是,進入了深度學習時代之后,自然語言的門檻一下就降低了。只要你會Python編程,網(wǎng)上找到訓練語料,基本上就能把自然語言的第一個模型走出來了。請大家不要被一大堆公式所迷惑,還是要找一個具體的任務試一試。我建議大家拿機器翻譯為例,把端到端的訓練過程玩起來,沉浸其中,很快就能理解整個自然語言的精髓了。第一件事做好了,比什么都重要。比如你把第一個機器翻譯模型訓練好,確實Work了,水平也還可以,至少和別人發(fā)表的水平差不多,你這時就會信心大漲。
只要有一個任務通了,其他自然語言的任務也可以通的?,F(xiàn)在因為深度學習的原因,你會做機器翻譯,就會做問答,就可能會做搜索,它背后的原理全部都一樣。以前就不敢這么說,以前可能某位著名專家可能就是問答做得好,他做了一輩子。有的人summarization做得好,做了一輩子,它們之間不容易直接借鑒。所以那時候的門檻就非常高。現(xiàn)在只要懂了深度學習、比如編碼-解碼技術,把NLP主要領域都熟悉一遍是沒有太大問題的。這樣就有了“全棧”自然語言處理能力。這時候再考慮延伸到圖像處理、語音識別,發(fā)現(xiàn)他們背后也是同樣的編碼-解碼這些東西。所以又可以從自然語言走向其他領域,或者多模態(tài)融合。當然要做到世界頂級那還是要花點工夫的,但是做到普及,對它不怵,把它用在自己的工作場合或者應用之中,大家是應該有信心的。