周明,段楠,劉樹杰,沈向洋*
Microsoft Research Asia, Beijing 100080, China
作為人工智能(artificial intelligence, AI)的重要分支,自然語言處理(natural language processing, NLP)研究人與機(jī)器之間如何通過自然語言進(jìn)行交互。自然語言處理研究范圍包括詞、短語、句子和文檔的處理(如分詞、句法分析、語義分析)以及機(jī)器翻譯、問答系統(tǒng)、信息檢索、對話、文本生成和推薦系統(tǒng)等應(yīng)用。自然語言處理對搜索引擎、智能客服、商業(yè)智能和語音助手等都具有至關(guān)重要的作用。
自然語言處理研究可以追溯到1950年。在研究初期,基于規(guī)則的方法被用來構(gòu)建自然語言處理的各類系統(tǒng),包括詞法句法分析、問答系統(tǒng)和機(jī)器翻譯。這類方法的缺點(diǎn)在于規(guī)則的設(shè)計(jì)需要來自領(lǐng)域?qū)<业拇罅抗ぷ?。此外,?dāng)規(guī)則數(shù)量越來越多后,如何對已有規(guī)則進(jìn)行管理和組織,也成為制約規(guī)則系統(tǒng)發(fā)展的一大障礙。步入20世紀(jì)90年代,隨著互聯(lián)網(wǎng)的發(fā)展,大規(guī)模訓(xùn)練數(shù)據(jù)的獲取成為可能,這促進(jìn)了基于統(tǒng)計(jì)自然語言處理方法的產(chǎn)生和普及?;谌斯ぴO(shè)計(jì)的特征,統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法在自然語言處理的各個(gè)任務(wù)上(如機(jī)器翻譯)均帶來了顯著性的性能提升。2012年以來,隨著深度學(xué)習(xí)在圖像[1]和語音處理[2]領(lǐng)域的突破性進(jìn)展,深度學(xué)習(xí)方法也被引入自然語言處理領(lǐng)域,并很快超過了傳統(tǒng)的統(tǒng)計(jì)模型。如今,深度學(xué)習(xí)方法被全面用于自然語言處理的各個(gè)領(lǐng)域,并在某些任務(wù)(如機(jī)器翻譯和機(jī)器閱讀理解)上達(dá)到了前所未有的水平。例如,微軟的Bible系統(tǒng)在中英新聞?lì)I(lǐng)域的機(jī)器翻譯任務(wù)(WMT 2017)上,達(dá)到了與人類媲美的水平。微軟亞洲研究院(Microsoft Research Asia, MSRA)的R-NET和NLNet系統(tǒng)在機(jī)器閱讀理解任務(wù)(Stanford question answering dataset, SQuAD)上同時(shí)在準(zhǔn)確匹配(exact match,EM)和模糊匹配(F1)方面達(dá)到了人類水平。包括預(yù)訓(xùn)練生成(generative pre-training, GPT)[3]、來自transformers的雙向編碼器表示(bidirectional encoder representations from transformers, BERT)[4]和XLNet等[5]在內(nèi)的預(yù)訓(xùn)練模型在自然語言處理的各個(gè)任務(wù)上也表現(xiàn)出了強(qiáng)大的能力。但同時(shí)值得注意的是:雖然神經(jīng)網(wǎng)絡(luò)在訓(xùn)練樣本足夠的任務(wù)上表現(xiàn)良好,但該類方法依然在低資源或無資源任務(wù)上表現(xiàn)得不盡如人意。
基于上述背景,本文將從3個(gè)方面回顧神經(jīng)自然語言處理的最新進(jìn)展:①常見的神經(jīng)網(wǎng)絡(luò)模型;②常見的訓(xùn)練方法;③基于知識(shí)的推理。通過在這三方面對當(dāng)前的技術(shù)和挑戰(zhàn)進(jìn)行深入分析,我們試圖探索和指出推動(dòng)自然語言處理繼續(xù)前進(jìn)的未來研究方向。
在自然語言處理的不同任務(wù)中(分類任務(wù)、序列標(biāo)注任務(wù)和生成任務(wù)),句子通常被作為基本的輸入單位。當(dāng)在這些任務(wù)中使用基于神經(jīng)網(wǎng)絡(luò)的方法時(shí),需要解決如下兩個(gè)關(guān)鍵問題:
(1)如何使用神經(jīng)網(wǎng)絡(luò)對自然語言句子進(jìn)行編碼;
(2)如何使用神經(jīng)網(wǎng)絡(luò)產(chǎn)生輸入句子對應(yīng)的標(biāo)簽序列或輸出句子。
本節(jié)從這兩個(gè)角度出發(fā),將介紹常用的神經(jīng)網(wǎng)絡(luò)建模方法,包括詞嵌入模型、句子嵌入模型和序列到序列建模。詞嵌入模型將自然語言句子中的單詞映射到連續(xù)的語義空間?;谠~嵌入的語義空間表示,包括循環(huán)神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)和自注意力網(wǎng)絡(luò)等在內(nèi)的方法才能生成考慮全句上下文的詞嵌入表示或句子嵌入表示。詞嵌入表示在詞性預(yù)測(part-of-speech, POS)和命名實(shí)體識(shí)別(named-entity recognition, NER)等任務(wù)中有廣泛的應(yīng)用。句子嵌入通常被用于句子級任務(wù),如情感分析或者復(fù)述判別。句子嵌入還可以用于循環(huán)神經(jīng)網(wǎng)絡(luò)或卷積神經(jīng)網(wǎng)絡(luò),用來完成序列到序列間的轉(zhuǎn)化任務(wù),也就是我們常說的編碼器-解碼器的框架。給定一個(gè)輸入句子,序列到序列模型可以用來生成問題對應(yīng)的答案(問答系統(tǒng)),也可以用來生成源語言句子對應(yīng)的目標(biāo)語言翻譯(機(jī)器翻譯)。
詞嵌入(指詞的向量表示)和句子嵌入(指句子的向量表示)是將詞或句子從離散空間映射到連續(xù)語義空間,使得在該空間內(nèi),相似的詞或句子具有相似的向量表示。
2.1.1. 上下文無關(guān)的詞嵌入技術(shù)
為了將一個(gè)詞映射到一個(gè)連續(xù)的語義空間,Mikolov等[6]提出了CBOW和Skip-gram模型。開源工具word2vec實(shí)現(xiàn)了該論文提出的方法,并能夠基于大規(guī)模單語數(shù)據(jù)學(xué)習(xí)詞向量表示。如圖1 [6]所示,CBOW模型利用給定窗口內(nèi)的其他單詞來預(yù)測窗口中心的單詞;與之相反,Skipgram利用窗口中間的單詞來預(yù)測窗口內(nèi)的其他單詞。這兩個(gè)模型都是基于如下原則:“一個(gè)詞的語義由所有出現(xiàn)在它周圍的那些詞決定”[7]。利用全局的共現(xiàn)信息和線性子結(jié)構(gòu),Pennington等[8]提出全局對數(shù)雙線性回歸模型(global log-bilinear regression model, GloVe)方法,對詞嵌入進(jìn)行了進(jìn)一步的改進(jìn)。
在Word2vec和GloVe方法中,同一個(gè)單詞對應(yīng)的詞嵌入表示在不同句子中是不變的。例如,無論“bank”這個(gè)單詞出現(xiàn)在“An ant went to the river bank”中,還是出現(xiàn)在“It is a good way to build up a bank account.”中,它對應(yīng)的詞嵌入表示是一樣的。然而,“bank”在這兩個(gè)句子中所表達(dá)的意思完全不同,它們的詞嵌入也應(yīng)該不一樣。為了解決這個(gè)問題,句子里的上下文信息應(yīng)該被引入詞嵌入的生成過程中。
2.1.2. 基于循環(huán)神經(jīng)網(wǎng)絡(luò)的上下文相關(guān)詞嵌入
ELMo [9]利用雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)對上下文信息進(jìn)行建模來生成上下文相關(guān)的詞嵌入。前向循環(huán)神經(jīng)網(wǎng)絡(luò)對該詞左邊的所有單詞進(jìn)行建模,反向循環(huán)神經(jīng)網(wǎng)絡(luò)對該詞右邊的所有單詞進(jìn)行建模。通過將得到的正向和反向兩個(gè)詞嵌入向量進(jìn)行拼接,可以得到以該詞對應(yīng)的上下文敏感的詞嵌入表示。例如,如圖2所示,給定輸入句子 “an ant went to the bank of the river.”,前向循環(huán)神經(jīng)網(wǎng)絡(luò)首先接受第一個(gè)詞“an”作為輸入來產(chǎn)生第一個(gè)隱含狀態(tài)。當(dāng)?shù)诙€(gè)詞“ant”作為輸入時(shí),循環(huán)神經(jīng)網(wǎng)絡(luò)能夠?qū)⒌诙€(gè)詞的信息同第一個(gè)詞的信息進(jìn)行融合獲得前兩個(gè)詞的上下文表示。循環(huán)神經(jīng)網(wǎng)絡(luò)繼續(xù)接收后邊的詞,直到碰到“bank”這個(gè)詞時(shí),前一個(gè)隱含狀態(tài)應(yīng)該能夠包含該詞之前所有詞(“an ant went to the river”)的信息。將這些信息考慮進(jìn)來,新的隱含狀態(tài)將能夠生成考慮該句上下文信息的動(dòng)態(tài)的詞嵌入表示。
圖1 . 上下文無關(guān)的單詞嵌入方法[6]。CBOW:使用窗口中的上下文詞來預(yù)測中心詞;Skip-gram:使用中心詞來預(yù)測窗口中的上下文詞;Wt是句子中的第t個(gè)單詞。
圖2 . 基于RNN的上下文感知詞嵌入。
2.1.3. 基于自注意力網(wǎng)絡(luò)的上下文相關(guān)詞嵌入
基于自注意力網(wǎng)絡(luò),Radford等[3]提出了使用GPT來訓(xùn)練一個(gè)多層的從左到右的語言模型。同ELMo中使用的循環(huán)神經(jīng)網(wǎng)絡(luò)相比,盡管GPT仍然是一個(gè)從左到右的語言模型,然而通過自注意力機(jī)制,GPT允許詞與詞之間直接進(jìn)行交互,從而能夠更好地對上下文信息進(jìn)行建模。Devlin等[4]提出基于自注意力網(wǎng)絡(luò)的BERT模型。與GPT不同,該模型在生成詞嵌入時(shí),同時(shí)考慮句子中每個(gè)單詞左右所有的上下文信息。這就不同于循環(huán)神經(jīng)網(wǎng)絡(luò)順序從左到右或者從右到左的處理方式。圖3給出一個(gè)例子,自注意力網(wǎng)絡(luò)首先計(jì)算當(dāng)前詞(“bank”)同包含當(dāng)前詞在內(nèi)的所有單詞的匹配度。該匹配度經(jīng)過歸一化后,對每個(gè)單詞對應(yīng)的隱含狀態(tài)進(jìn)行加權(quán)求和,從而得到考慮所有上下文的詞嵌入表示。為了引入輸入單詞之間的位置信息,位置嵌入被引入進(jìn)來,同詞嵌入一起作為自注意網(wǎng)絡(luò)的輸入。為了解決BERT在預(yù)訓(xùn)練和微調(diào)階段的不一致問題(即預(yù)訓(xùn)練階段的特殊符號MASK在微調(diào)階段并不會(huì)出現(xiàn)),Yang等[5]提出XLNet模型。該模型基于輸入序列的排列組合,在自左向右的語言模型中引入了雙向上下文信息。
2.1.4. 基于卷積神經(jīng)網(wǎng)絡(luò)的上下文相關(guān)詞嵌入
ELMo和BERT都是考慮整句信息,用來生成動(dòng)態(tài)詞嵌入。不同于考慮整個(gè)句子中所有的詞,卷積神經(jīng)網(wǎng)絡(luò)可以利用一個(gè)滑動(dòng)窗口在輸入句子上進(jìn)行滑動(dòng),并將窗口內(nèi)單詞對應(yīng)的詞向量通過線性映射產(chǎn)生一個(gè)局部上下文信息的向量[10]。如圖4所示,為了產(chǎn)生“bank”這個(gè)詞的動(dòng)態(tài)詞嵌入,可以使用大小為3的窗口來覆蓋片段“river bank.”。這樣一來,“river”這個(gè)詞就會(huì)被考慮到“bank”這個(gè)詞對應(yīng)的詞嵌入表示中。
2.1.5. 句子嵌入
基于句子里每個(gè)詞的詞嵌入表示,可以利用神經(jīng)網(wǎng)絡(luò)(比如循環(huán)神經(jīng)網(wǎng)絡(luò)、自關(guān)注網(wǎng)絡(luò)或者卷積神經(jīng)網(wǎng)絡(luò))來獲取句子嵌入表示。Collobert等[10]使用最大池化層來基于各個(gè)語義向量在每一維度上選擇最大值來構(gòu)成一個(gè)新的同輸入向量長度相同的向量,并進(jìn)一步經(jīng)過一個(gè)前饋神經(jīng)網(wǎng)絡(luò)來生成該句子的詞嵌入表示。這種句子的嵌入表示可以應(yīng)用在其他任務(wù)上,比如分類問題(情感預(yù)測)或者生成一個(gè)句子(機(jī)器翻譯)。除了使用卷積神經(jīng)網(wǎng)絡(luò)之外,循環(huán)神經(jīng)網(wǎng)絡(luò)和自關(guān)注網(wǎng)絡(luò)也可以被用來產(chǎn)生一個(gè)語義向量來表示整個(gè)輸入句子。對循環(huán)神經(jīng)網(wǎng)絡(luò)來說,最后一個(gè)隱含狀態(tài)由于整合了句子里所有單詞,從而可以看做是整個(gè)輸入句子對應(yīng)的向量表示。對于自注意網(wǎng)絡(luò)來說,特殊符號</S>被添加進(jìn)句子里,它的對應(yīng)隱狀態(tài)(圖4中的藍(lán)色部分)可以作為整個(gè)句子的嵌入表示。
圖3 . 基于自注意力的上下文感知詞嵌入。</S>:句子結(jié)尾的符號。
圖4 . 基于CNN的上下文感知詞嵌入。
序列到序列的轉(zhuǎn)換模型能夠?qū)⒁粋€(gè)輸入串經(jīng)過神經(jīng)網(wǎng)絡(luò)處理后轉(zhuǎn)換為另外一個(gè)串。許多的自然語言處理任務(wù)都可以被規(guī)范化成一個(gè)序列到序列的轉(zhuǎn)換任務(wù),比如機(jī)器翻譯、問答系統(tǒng)、對話系統(tǒng)等。
2.2.1. 編碼器-解碼器框架
Cho等[11]提出了編碼器-解碼器框架來處理序列到序列的轉(zhuǎn)換任務(wù)。如圖5所示,編碼器-解碼器框架包含兩個(gè)部分:一個(gè)編碼器和一個(gè)解碼器?;谘h(huán)神經(jīng)網(wǎng)絡(luò)的編碼器對輸入句子里的詞從左到右進(jìn)行處理,最后得到的隱含狀態(tài)包含了句子全部的信息?;谠撔畔?,基于循環(huán)神經(jīng)網(wǎng)絡(luò)的解碼器依次產(chǎn)生目標(biāo)句子里的每個(gè)詞,直至生成句子結(jié)束符(</S>)為止。在每一步中,解碼器將前一個(gè)產(chǎn)生的詞、前一個(gè)隱含狀態(tài)、源語言句子的上下文向量一同作為循環(huán)神經(jīng)網(wǎng)絡(luò)的輸入來預(yù)測當(dāng)前的目標(biāo)語言詞。
該編碼器解碼器框架有如下幾個(gè)缺點(diǎn):①只利用了最后一個(gè)單詞對應(yīng)的隱含狀態(tài)向量來對源語言句子的語義進(jìn)行建模,該向量難以刻畫源語言中所包含的全部信息;②解碼過程中前面產(chǎn)生的詞信息很難被循環(huán)神經(jīng)網(wǎng)絡(luò)保存下來以影響后面(特別是距離較遠(yuǎn))單詞的預(yù)測;③僅僅使用一個(gè)源語言句子的上下文向量難以預(yù)測目標(biāo)語言句子中的所有詞。
2.2.2. 基于注意力網(wǎng)絡(luò)的編碼器-解碼器框架
為了解決上述三個(gè)問題,注意力網(wǎng)絡(luò)被引入進(jìn)來[12]。該方法能夠利用編碼器產(chǎn)生的所有隱含狀態(tài)和前一個(gè)解碼器隱含狀態(tài)來生成一個(gè)更適合產(chǎn)生當(dāng)前目標(biāo)語言詞的上下文向量,并用于生成當(dāng)前位置的單詞。如圖6所示,該上下文向量是所有編碼器隱含狀態(tài)的加權(quán)平均,其權(quán)重是通過計(jì)算前一個(gè)解碼器隱含狀態(tài)和所有編碼器隱含狀態(tài)的相似程度并歸一化為概率得到的。前一個(gè)解碼器的隱含狀態(tài)、前一個(gè)預(yù)測的詞和上下文向量一起被作為解碼器的輸入來產(chǎn)生當(dāng)前的解碼器隱含狀態(tài)并預(yù)測當(dāng)前的目標(biāo)語言詞。這種方法可以在生成每個(gè)單詞時(shí),綜合考慮編碼器中全部的隱含狀態(tài)向量。
圖5 . 從英文到中文的MT編碼器-解碼器框架。
圖6 . 從英文到中文的MT基于注意力的編解碼器框架。
2.2.3. 基于Transformer的編碼器-解碼器框架
為了更好地利用注意力網(wǎng)絡(luò)強(qiáng)大的特征提取能力,Transformer [13](圖7)使用多頭注意力網(wǎng)絡(luò)來取代編碼器和解碼器中的循環(huán)神經(jīng)網(wǎng)絡(luò),以及兩者之間的注意力網(wǎng)絡(luò)。多頭注意力網(wǎng)絡(luò)是一組注意力網(wǎng)絡(luò)的集合。通過將查詢、關(guān)鍵字以及值通過線性層映射成N個(gè)向量,然后利用N個(gè)注意力網(wǎng)絡(luò)來生成N個(gè)上下文向量表示,進(jìn)而將其組合成一個(gè)上下文向量。需要注意的是,對于解碼器中的注意力網(wǎng)絡(luò),在解碼過程中只能夠利用已經(jīng)生成的詞的信息,所以只有以前的隱含狀態(tài)才能夠被用來生成當(dāng)前的上下文向量。
本節(jié)介紹了如何使用神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)詞嵌入、句子嵌入,以及序列到序列的轉(zhuǎn)換。為了能夠更好地對各類自然語言處理任務(wù)進(jìn)行建模,我們還需在如下幾個(gè)方面做更多的探索。
(1)先驗(yàn)知識(shí)的建模。盡管基于大規(guī)模數(shù)據(jù)訓(xùn)練得到的詞嵌入表示能夠包含一定的常識(shí)知識(shí)[6],如何將已有的先驗(yàn)知識(shí)融入到神經(jīng)網(wǎng)絡(luò)中,仍然需要受到更多的重視[14]。
(2)文檔建模和多輪對話建模。利用句子的上下文信息獲得的詞嵌入被證實(shí)能夠顯著提高自然語言處理各任務(wù)上的性能,但如何對更長距離的信息進(jìn)行上下文建模仍然是一個(gè)開放課題[15]。例如,給定句子 “the mouse is on the table”,僅僅依賴句子里的信息,我們很難確定“mouse”指的是“老鼠” 還是“鼠標(biāo)”。 為了更好地消歧,文檔上下文信息需要被引入進(jìn)來。類似地,如何在多輪對話中考慮上下文信息[16]仍然是一個(gè)有挑戰(zhàn)的任務(wù)。
圖7 . 從英文到中文的MT基于全注意的編碼器-解碼器框架。
(3)非自回歸的產(chǎn)生模型。現(xiàn)在的序列到序列的轉(zhuǎn)換模型在產(chǎn)生輸出句子時(shí)采用自回歸的方法依次產(chǎn)生句子里的詞,也就是說前一時(shí)刻生成的詞會(huì)被作為輸入來產(chǎn)生當(dāng)前時(shí)刻的詞。這種自回歸的產(chǎn)生方式會(huì)導(dǎo)致曝光偏差問題:前邊產(chǎn)生的錯(cuò)誤會(huì)被保存并放大從而影響后邊詞的產(chǎn)生。為了解決這個(gè)問題,人們提出了非自回歸的產(chǎn)生模型[17],然而該模型的性能仍然遠(yuǎn)遠(yuǎn)落后于自回歸的模型。未來的研究中,如何設(shè)計(jì)更好的非自回歸網(wǎng)絡(luò)應(yīng)該受到更多關(guān)注。
隨著深度學(xué)習(xí)的發(fā)展,新的訓(xùn)練方法被提出來并用于優(yōu)化神經(jīng)網(wǎng)絡(luò)中的大規(guī)模參數(shù)。隨機(jī)梯度下降 (stochastic gradient descent, SGD)[18]是最常用的一種基于反向傳播的神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法 [19]。基于沖量的隨機(jī)梯度下降通過引入沖量來加速訓(xùn)練過程。AdaGrad [20]、AdaDelta [21]、Adam [22]和RMSProp通過對不同參數(shù)使用不同的學(xué)習(xí)率進(jìn)一步提高訓(xùn)練效率,并使得訓(xùn)練過程更為穩(wěn)定。當(dāng)神經(jīng)網(wǎng)絡(luò)太過復(fù)雜或者參數(shù)非常多時(shí),僅僅使用一個(gè)設(shè)備可能遠(yuǎn)遠(yuǎn)不夠。為了解決這一問題,還需要基于多個(gè)訓(xùn)練設(shè)備(顯卡或者計(jì)算機(jī))的并行訓(xùn)練方法。根據(jù)參數(shù)更新的方式不同,分布式的隨機(jī)梯度下降通常分為同步和異步的隨機(jī)梯度下降。
除了這些通用訓(xùn)練方法的進(jìn)展,針對不同的自然語言處理的任務(wù),更好的訓(xùn)練和學(xué)習(xí)方法層出不窮。對于資源豐富的自然語言處理任務(wù),監(jiān)督學(xué)習(xí)的方法通常被用來利用大規(guī)模標(biāo)注數(shù)據(jù)訓(xùn)練模型參數(shù)。對于這樣的任務(wù),深度學(xué)習(xí)模型往往能夠得到很好的效果,例如,在中英語言對的新聞?lì)I(lǐng)域,存在大規(guī)模的雙語句對,神經(jīng)機(jī)器翻譯(neural machine translation, NMT)的質(zhì)量就會(huì)非常好,甚至達(dá)到了能與人類媲美的水平。然而對于其他自然語言處理任務(wù),卻很難獲取大規(guī)模的訓(xùn)練數(shù)據(jù),比如小語種的機(jī)器翻譯和情感分析。為了提高該類任務(wù)上模型的性能,人們使用半監(jiān)督學(xué)習(xí)方法將未標(biāo)注數(shù)據(jù)和有標(biāo)注數(shù)據(jù)進(jìn)行結(jié)合,或者使用無監(jiān)督學(xué)習(xí)方法,僅僅使用未標(biāo)注數(shù)據(jù)來訓(xùn)練模型參數(shù)。另一種利用未標(biāo)注數(shù)據(jù)的方法是利用未標(biāo)注數(shù)據(jù)來預(yù)訓(xùn)練模型參數(shù),然后將預(yù)訓(xùn)練模型通過遷移學(xué)習(xí)來遷移到目標(biāo)任務(wù)上。當(dāng)本任務(wù)的訓(xùn)練數(shù)據(jù)不夠時(shí),其他相關(guān)任務(wù)的訓(xùn)練數(shù)據(jù)也可以通過多任務(wù)學(xué)習(xí)來改進(jìn)模型的性能。人工標(biāo)注數(shù)據(jù)自然是最為有用但代價(jià)最高的一個(gè)途徑,如何在經(jīng)費(fèi)有限的情況下更為高效地進(jìn)行數(shù)據(jù)標(biāo)注便是主動(dòng)學(xué)習(xí)的研究范圍。
基于有標(biāo)注的數(shù)據(jù),監(jiān)督學(xué)習(xí)方法通過輸入和輸出對來訓(xùn)練模型參數(shù)。對于分類任務(wù),監(jiān)督學(xué)習(xí)通常通過最大化正確標(biāo)簽的對數(shù)似然概率或者最小化交叉熵的方法來進(jìn)行模型參數(shù)的訓(xùn)練。對于序列到序列轉(zhuǎn)換的任務(wù),給定輸入序列作為條件,監(jiān)督學(xué)習(xí)通常最大化輸出序列的概率似然來學(xué)習(xí)模型參數(shù)。比如,給定一個(gè)訓(xùn)練語料中的句對(x,y),其中x = (x1, x2, ..., x|x|)是輸入句子,y = (y1, y2, ..., y|y|)是輸出句子。條件似然概率定義為:
式中,pθ(yi|yi-1, ..., y1, x)是序列到序列轉(zhuǎn)換模型中解碼器softmax層的輸出概率。基于該似然函數(shù),訓(xùn)練數(shù)據(jù)的對數(shù)似然損失函數(shù)定義為:
基于這樣的損失函數(shù),具體的訓(xùn)練方法(比如Adam、AdaDelta)便可以用來訓(xùn)練模型參數(shù)。
除了最大化正確輸出的產(chǎn)生概率,為了能夠在訓(xùn)練過程中引入任務(wù)相關(guān)的損失函數(shù),Shen等[23]提出了最小化風(fēng)險(xiǎn)(即最大化BLEU [24],BLEU是機(jī)器翻譯任務(wù)的常用評價(jià)指標(biāo),其本質(zhì)是根據(jù)參考譯文來統(tǒng)計(jì)翻譯候選的n元文法的準(zhǔn)確率)的訓(xùn)練方法來訓(xùn)練神經(jīng)機(jī)器翻譯的模型參數(shù)。該方法首先基于交叉熵的損失函數(shù)利用雙語數(shù)據(jù)來預(yù)訓(xùn)練模型參數(shù),然后最大化輸出候選的BLEU期望來細(xì)調(diào)模型參數(shù)。為了解決自回歸的序列到序列轉(zhuǎn)換模型的曝光偏差問題,Zhang等[25]通過在訓(xùn)練目標(biāo)中引入了兩個(gè)Kullback-Leibleer (KL) 距離來最大化從左到右和從右到左模型生成的翻譯候選的一致性。推敲網(wǎng)絡(luò)[26]是另一種解決該問題的方法。推敲網(wǎng)絡(luò)基于兩輪的解碼來模擬人工翻譯的過程。具體的第一輪產(chǎn)生初始的翻譯結(jié)果,而第二輪則對該初始結(jié)果進(jìn)行修正。Zhang等[27]提出了通過同時(shí)從正確翻譯和模型產(chǎn)生的候選中采樣上下文詞來解決神經(jīng)機(jī)器翻譯中的訓(xùn)練和解碼不一致的問題。
半監(jiān)督和無監(jiān)督學(xué)習(xí)通過利用未標(biāo)注數(shù)據(jù)來提高模型性能。當(dāng)使用半監(jiān)督學(xué)習(xí)時(shí),通?;谟袠?biāo)注的數(shù)據(jù)來預(yù)訓(xùn)練模型的參數(shù),然后利用未標(biāo)注數(shù)據(jù)對模型進(jìn)一步進(jìn)行訓(xùn)練。如何結(jié)合有標(biāo)注數(shù)據(jù)和未標(biāo)注數(shù)據(jù),有多種半監(jiān)督的學(xué)習(xí)方法,包括自學(xué)習(xí)、產(chǎn)生式模型和基于圖的方法[28]。在這些方法中,模型產(chǎn)生的偽標(biāo)注結(jié)果通常被用于模型的進(jìn)一步訓(xùn)練。在神經(jīng)機(jī)器翻譯中,為了控制半監(jiān)督學(xué)習(xí)生成的偽標(biāo)注數(shù)據(jù)中的噪聲和錯(cuò)誤,人們引入了不同的權(quán)重或者利用某種獎(jiǎng)勵(lì)來過濾比較差的偽標(biāo)注數(shù)據(jù),比如用于NMT評價(jià)中的BLEU法[29]和對偶學(xué)習(xí)方法[30]。為了能夠利用單語數(shù)據(jù)提高神經(jīng)機(jī)器翻譯的質(zhì)量,反向翻譯方法[31]使用一個(gè)反向的(目標(biāo)語言到源語言的)翻譯模型來將目標(biāo)語言的單語數(shù)據(jù)翻譯為偽雙語數(shù)據(jù),并將其用于對源語言到目標(biāo)語言的翻譯模型做進(jìn)一步的訓(xùn)練。聯(lián)合訓(xùn)練的方法(圖8)[32]擴(kuò)展了反向翻譯方法,使其能夠同時(shí)使用源語言和目標(biāo)語言的單語數(shù)據(jù),并基于期望最大化的框架來迭代地訓(xùn)練源語言到目標(biāo)語言以及目標(biāo)語言到源語言的翻譯模型。在該方法中,首先使用雙語數(shù)據(jù)來預(yù)訓(xùn)練兩個(gè)翻譯模型:源語言到目標(biāo)語言(source-to-target,S2T)和目標(biāo)語言到源語言(target-to-source, T2S)。S2T模型將源語言的單語數(shù)據(jù)進(jìn)行翻譯,構(gòu)造目標(biāo)語言端不太準(zhǔn)確的偽雙語數(shù)據(jù),然后利用該偽雙語數(shù)據(jù)來訓(xùn)練T2S模型?;趦?yōu)化后的T2S模型,可以將目標(biāo)語言單語數(shù)據(jù)進(jìn)行翻譯,得到源語言端不太準(zhǔn)確的偽雙語數(shù)據(jù),該偽雙語數(shù)據(jù)可以進(jìn)一步優(yōu)化S2T模型。這種訓(xùn)練過程可以迭代進(jìn)行,直至在開發(fā)數(shù)據(jù)上的性能不能提高為止。
隨著深度學(xué)習(xí)的發(fā)展,深度產(chǎn)生模型被用來進(jìn)行無監(jiān)督學(xué)習(xí),比如變分自編碼器(variational auto-encoder,VAE)[33]和生成對抗網(wǎng)絡(luò)(generative adversarial network,GAN)[34]。VAE 網(wǎng)絡(luò)沿用了自動(dòng)編碼網(wǎng)絡(luò)的框架,包含一個(gè)編碼器和一個(gè)解碼器。編碼器將輸入映射到一個(gè)語義空間,解碼器基于該語義空間的表示將重構(gòu)輸入本身。不同于原始的自動(dòng)編碼器,VAE假設(shè)編碼器生成語義向量的分布應(yīng)該盡可能地接近一個(gè)標(biāo)準(zhǔn)正態(tài)分布。同VAE類似,GAN同樣包含兩部分:一個(gè)產(chǎn)生器和一個(gè)判別器。產(chǎn)生器基于一個(gè)語義向量產(chǎn)生一個(gè)樣本,判別器試圖區(qū)分某個(gè)樣本是產(chǎn)生器產(chǎn)生的,還是從數(shù)據(jù)集中采樣的。通過一個(gè)對抗的損失函數(shù),產(chǎn)生器盡可能地產(chǎn)生判別器區(qū)分不出來的樣本,而判別器則盡可能地去區(qū)分產(chǎn)生的樣本和數(shù)據(jù)集中的樣本。研究人員將VAE和GAN應(yīng)用到不同的自然語言處理的任務(wù)上[35,36]。
圖8 . S2T和T2S NMT模型的聯(lián)合訓(xùn)練。
沒有使用任何的雙語數(shù)據(jù),而是僅僅使用一個(gè)小的雙語詞典,無監(jiān)督學(xué)習(xí)方法被用來訓(xùn)練無監(jiān)督的神經(jīng)機(jī)器翻譯模型[37]。無監(jiān)督的神經(jīng)機(jī)器翻譯通常使用聯(lián)合訓(xùn)練的方法來通過產(chǎn)生偽雙語數(shù)據(jù),來同時(shí)訓(xùn)練源語言到目標(biāo)語言和目標(biāo)語言到源語言的翻譯模型。由于沒有真實(shí)雙語數(shù)據(jù),生成的偽雙語數(shù)據(jù)難免存在錯(cuò)誤和噪聲,而這種錯(cuò)誤會(huì)在聯(lián)合訓(xùn)練的迭代過程中被強(qiáng)化。為了解決這一問題,Ren等[38]引入了統(tǒng)計(jì)機(jī)器翻譯(statistical machine translation, SMT)模型作為后驗(yàn)正則來過濾這些噪聲和錯(cuò)誤。SMT模型和NMT模型基于一個(gè)期望最大化框架來迭代優(yōu)化這兩種模型。如圖9 [38]所示,整個(gè)訓(xùn)練過程包括兩部分:模型的初始化和使用SMT作為后驗(yàn)正則的NMT訓(xùn)練。給定一個(gè)語言對X-Y,基于跨語言的詞嵌入表示,可以獲得初始的翻譯概率表,并結(jié)合語言模型就可以構(gòu)造兩個(gè)初始SMT系統(tǒng)。初始SMT系統(tǒng)可以用來產(chǎn)生偽雙語數(shù)據(jù)。該偽雙語數(shù)據(jù)用來初始化兩個(gè)NMT系統(tǒng)。NMT模型在訓(xùn)練時(shí)不僅僅使用SMT生成的偽雙語數(shù)據(jù),而且使用了基于聯(lián)合訓(xùn)練方法的NMT模型生成的偽數(shù)據(jù)。而NMT系統(tǒng)生成偽雙語數(shù)據(jù)則可以用來訓(xùn)練新的SMT系統(tǒng)。通過后驗(yàn)正則,SMT系統(tǒng)可以過濾掉NMT模型產(chǎn)生的偽數(shù)據(jù)中的噪聲和錯(cuò)誤,從而生成更高質(zhì)量的偽雙語數(shù)據(jù)?;谠摂?shù)據(jù)訓(xùn)練得到的NMT系統(tǒng)能夠?yàn)镾MT系統(tǒng)提供更高質(zhì)量的偽雙語數(shù)據(jù)。SMT系統(tǒng)和NMT系統(tǒng)通過這種方式來幫助對方提高翻譯質(zhì)量,直到開發(fā)數(shù)據(jù)集上的性能不再提高為止。同Lample等[37]的方法相比,該方法能夠顯著提高翻譯質(zhì)量(法英方向可提高1.4個(gè)BLEU點(diǎn),英法方向可提高3.5個(gè)點(diǎn),德英方向可提高3.1個(gè)點(diǎn),英德方向可提高2.2個(gè)點(diǎn))。Lample 和Connau [39]進(jìn)一步引入了生成式的預(yù)訓(xùn)練方法,并提出了一個(gè)跨語言的預(yù)訓(xùn)練模型,從而獲得了目前最好的無監(jiān)督機(jī)器翻譯結(jié)果。
多任務(wù)學(xué)習(xí)利用與目標(biāo)任務(wù)相關(guān)的數(shù)據(jù)來改進(jìn)模型在目標(biāo)任務(wù)上的性能。當(dāng)目標(biāo)任務(wù)的訓(xùn)練數(shù)據(jù)不足時(shí),與目標(biāo)任務(wù)相關(guān)的其他任務(wù)的訓(xùn)練數(shù)據(jù)就可以被多任務(wù)學(xué)習(xí)引入進(jìn)來改進(jìn)目標(biāo)任務(wù)模型的性能。Collobert等[10]提出了一個(gè)統(tǒng)一的神經(jīng)網(wǎng)絡(luò)框架,用來訓(xùn)練多個(gè)自然語言處理任務(wù),包括POS、組塊分析、命名實(shí)體識(shí)別(named entity recognition, NER)和語義角色標(biāo)注(semantic role labelling, SRL)。該方法基于不同任務(wù)的數(shù)據(jù),來學(xué)習(xí)任務(wù)共享的模型參數(shù),該方法是神經(jīng)網(wǎng)絡(luò)在自然語言處理領(lǐng)域中一個(gè)里程碑式的工作,開啟了深度學(xué)習(xí)在自然語言處理領(lǐng)域的潮流。
McCann等[40]提出了一種將10種不同的自然語言處理任務(wù)(包括問答、機(jī)器翻譯、文摘、自然語言推斷)都看作是問答任務(wù),并構(gòu)建了一個(gè)多任務(wù)問答網(wǎng)絡(luò)(multitask question-answering network, MQAN),如圖10所示。MQAN的輸入是一個(gè)問題和該問題對應(yīng)的一個(gè)上下文。這種設(shè)置對問答任務(wù)來說是很自然的。對于機(jī)器翻譯任務(wù),問題對應(yīng)“該輸入在語言Y中對應(yīng)的翻譯是什么?”,上下文對應(yīng)語言X輸入本身。對于文摘任務(wù),問題對應(yīng)“該輸入對應(yīng)的摘要是什么?”,上下文對應(yīng)文檔本身。問題和上下文分別通過雙向LSTM(BiLSTM)進(jìn)行編碼,然后通過co-attention來對兩個(gè)輸入構(gòu)建條件進(jìn)行編碼表示。這兩個(gè)條件編碼表示分別通過兩個(gè)雙向LSTM(BiLSTM)、兩個(gè)自注意力網(wǎng)絡(luò)和兩個(gè)雙向的LSTM來獲得最終的問題和上下文的編碼結(jié)果。為了獲得最后的輸出,引入注意力機(jī)制考慮最相關(guān)的編碼器的隱含狀態(tài),然后通過一個(gè)多點(diǎn)指針生成器網(wǎng)絡(luò)來決定是從問題和上下文中復(fù)制一個(gè)詞還是直接生成一個(gè)詞。該模型在WikiSQL數(shù)據(jù)集上得到了目前最好的結(jié)果(72.4%的EM值和80.4%的準(zhǔn)確率)。通過多任務(wù)學(xué)習(xí),MQAN能夠具有更好的泛化能力,從而在零樣本關(guān)系抽取任務(wù)的QA-ZRE數(shù)據(jù)集上比單任務(wù)模型提高了11個(gè)F1值。Liu等[41]提出了MT-DNN——一個(gè)基于BERT的多任務(wù)深度神經(jīng)網(wǎng)絡(luò)、通過添加特殊的多任務(wù)到預(yù)訓(xùn)練模型上,MT-DNN在10個(gè)自然語言理解的任務(wù)(包括SNLI和SciTail,以及9個(gè)GLUE任務(wù)[42]中的8個(gè))上獲得了非常好的效果。MT-DNN表明,不同任務(wù)可以通過多任務(wù)學(xué)習(xí)相互促進(jìn)。
圖9 . 無監(jiān)督NMT訓(xùn)練的示意圖。
任務(wù)無關(guān)的模型可以首先通過預(yù)訓(xùn)練,然后通過遷移學(xué)習(xí)的微調(diào)過程遷移到特定的任務(wù)上?;陬A(yù)訓(xùn)練的詞嵌入或者句子嵌入,遷移學(xué)習(xí)可以被用來在某些特定的任務(wù)上進(jìn)行微調(diào)[43]。近幾年,很多預(yù)訓(xùn)練的模型被提出,比如在2.1節(jié)中介紹的word2vec [6]、Glove [8]、ELMo [9]、GPT [3]、BERT [4]和XLNet [5]。這些模型也廣泛用于各種自然語言處理任務(wù)中,比如自動(dòng)問答和文本分類等。Pushp等[44]提出了一種零樣本遷移學(xué)習(xí)方法,用于文本分類。在該方法中,預(yù)訓(xùn)練模型首先在大規(guī)模數(shù)據(jù)集上學(xué)習(xí)句子和類別之間的關(guān)系,然后通過遷移學(xué)習(xí)遷移到?jīng)]有任何訓(xùn)練數(shù)據(jù)新的類別上。Srivastava等[45]使用語義分析方法將分類概念上的自然語言解釋映射到未標(biāo)注數(shù)據(jù)上的約束關(guān)系特征,這種約束的特征會(huì)通過后驗(yàn)正則的方法進(jìn)行融合,來提高零樣本任務(wù)上的性能。對于某些富資源語言(比如英語)在某些任務(wù)上有大量的訓(xùn)練數(shù)據(jù),但是在某些小語種(比如羅馬尼亞語)上,訓(xùn)練資源則非常有限,跨語言的遷移學(xué)習(xí)可以將在富資源語言上訓(xùn)練得到的模型遷移到小語種的任務(wù)上。在多個(gè)語言對上,通過多任務(wù)學(xué)習(xí)得到的模型也可以通過遷移學(xué)習(xí)來支持零樣本(沒有任何雙語數(shù)據(jù))的翻譯任務(wù)上[46]。
將一個(gè)預(yù)訓(xùn)練好的模型遷移到新的或者沒見過的場景的另一個(gè)方向是元學(xué)習(xí),由Schmidhuber [47]首次提出。元學(xué)習(xí)最近成為一個(gè)非常火的方向,應(yīng)用在預(yù)訓(xùn)練模型的遷移、超參數(shù)的訓(xùn)練以及神經(jīng)網(wǎng)絡(luò)的優(yōu)化上。通過僅僅若干樣本便可以直接遷移一個(gè)初始的模型,與模型無關(guān)的元學(xué)習(xí)(model agnostic meta learning, MAML)[48]基于對模型不做任何假設(shè)的原則,提出了一種元學(xué)習(xí)的方法。該方法可以通過若干任務(wù)相關(guān)樣本或者幾個(gè)更新的步驟便可以遷移到相關(guān)的任務(wù)上。Gu等[49]利用MAML在歐洲18個(gè)語言上來優(yōu)化NMT模型的訓(xùn)練。該方法將每個(gè)訓(xùn)練樣本作為獨(dú)特的偽任務(wù),原始的結(jié)構(gòu)查詢產(chǎn)生任務(wù),轉(zhuǎn)化為小樣本學(xué)習(xí)任務(wù),從而可以利用元學(xué)習(xí)方法來顯著提高模型性能。
Subramanian等[50]通過融合多個(gè)訓(xùn)練目標(biāo)(包括跨語言NMT、自然語言推斷、句法分析和skip-thought向量,即預(yù)測前一個(gè)和后一個(gè)句子)提出了一種高效的多任務(wù)學(xué)習(xí)框架,用來訓(xùn)練一個(gè)可遷移的句子嵌入表示。該句子表示可以被遷移到新的分類任務(wù)上。通過在不同的任務(wù)之間切換,基于門控循環(huán)單元(gated recurrent unit, GRU)的循環(huán)神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)到句子不同角度的表示。通過NMT和句法分析任務(wù),句法的特征也可以被更好地編碼。句子級的特性包括句子長度和詞序也可以通過句法分析任務(wù)更好地學(xué)習(xí)到?;谌齻€(gè)不同的數(shù)據(jù)集(SUBJ、TREC和DBpedia),學(xué)習(xí)得到的句子表示可以通過降維可視化,發(fā)現(xiàn)針對不同類別相似的句子能夠更好地被聚在一起。不需要額外更新,學(xué)習(xí)得到的句子表達(dá)可以被很好地遷移到其他的任務(wù)上,比如在情感分析的任務(wù)(MR、CR、SUBJ&MPQA)上提高了1.1%~2.0%,在問題類別分類(TREC)上提高6%,在轉(zhuǎn)述判別任務(wù)(Microsoft research paraphrase corpus)上提高2.3%。
圖10 . MQAN的網(wǎng)絡(luò)結(jié)構(gòu)[40]。α是注意力權(quán)重;γ和λ是切換輸出分布的標(biāo)量。
主動(dòng)學(xué)習(xí)解決如何選擇合適的未標(biāo)注數(shù)據(jù)讓標(biāo)注員去人工標(biāo)注,以最小化標(biāo)注的花費(fèi)最大化性能提升。為了解決低資源學(xué)習(xí)問題中訓(xùn)練樣本少的問題,一個(gè)直接的方法是由標(biāo)注員去標(biāo)注更多的數(shù)據(jù)。該思路帶來了一個(gè)問題:選擇哪些未標(biāo)注的數(shù)據(jù)才能得到最大的性能提升。為了解決這個(gè)問題,主動(dòng)學(xué)習(xí)[51]被用來基于當(dāng)前的模型狀況自動(dòng)迭代地選擇未標(biāo)注數(shù)據(jù),去標(biāo)注以最大化模型性能的提升?;谟袠?biāo)注數(shù)據(jù),可以訓(xùn)練一個(gè)初始的模型,并使用該模型來預(yù)測未標(biāo)注數(shù)據(jù)的標(biāo)簽類型?;跇?biāo)注的結(jié)果,主動(dòng)學(xué)習(xí)能夠選擇某些(比如不太確定的)樣本交付標(biāo)注員去標(biāo)注。標(biāo)注員返回的標(biāo)注數(shù)據(jù)會(huì)用來更新模型,新的模型會(huì)重新標(biāo)注未標(biāo)注數(shù)據(jù),并進(jìn)一步選擇樣本由標(biāo)注員進(jìn)行標(biāo)注。該過程迭代進(jìn)行,直至預(yù)先設(shè)置的花費(fèi)用完或者達(dá)到預(yù)設(shè)的性能。
在本節(jié)中,我們介紹了幾種經(jīng)典的訓(xùn)練方法,包括監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)、多任務(wù)學(xué)習(xí)、遷移學(xué)習(xí)和主動(dòng)學(xué)習(xí)。當(dāng)自然語言處理任務(wù)的標(biāo)注數(shù)據(jù)足夠多時(shí),監(jiān)督學(xué)習(xí)方法可以得到非常好的效果,比如機(jī)器翻譯和機(jī)器閱讀理解。對于標(biāo)注數(shù)據(jù)不足的任務(wù),可以引入多種機(jī)器學(xué)習(xí)的策略來提高模型的性能,比如使用未標(biāo)注數(shù)據(jù)的半監(jiān)督和無監(jiān)督學(xué)習(xí),基于預(yù)訓(xùn)練模型的遷移學(xué)習(xí),使用相關(guān)的任務(wù)標(biāo)注數(shù)據(jù)的多任務(wù)學(xué)習(xí),或者選擇最優(yōu)價(jià)值未標(biāo)注樣本進(jìn)行標(biāo)注的主動(dòng)學(xué)習(xí)。為了繼續(xù)推進(jìn)自然語言處理的發(fā)展,我們認(rèn)為需要繼續(xù)關(guān)注如下的幾個(gè)方向。
(1)拓?fù)涞挠?xùn)練過程。盡管多任務(wù)學(xué)習(xí)和遷移學(xué)習(xí)已經(jīng)可以利用相關(guān)的學(xué)習(xí)任務(wù)來提高特定任務(wù)上模型的性能,然而未來我們需要深入探索不同的自然語言處理任務(wù)之間的關(guān)系,并基于此設(shè)計(jì)更合理的拓?fù)浣Y(jié)構(gòu)的訓(xùn)練過程。基于此拓?fù)溆?xùn)練過程,預(yù)訓(xùn)練的基礎(chǔ)自然語言處理模型(比如語言模型、詞性標(biāo)注和句法分析)能夠更好地遷移到高層次的自然語言處理任務(wù)(比如機(jī)器翻譯和問答系統(tǒng))。
(2)強(qiáng)化學(xué)習(xí)(reinforcement learning, RL)。當(dāng)任務(wù)的損失函數(shù)不太容易定義時(shí),強(qiáng)化學(xué)習(xí)被引入自然語言處理的多個(gè)任務(wù)上。比如,對于面向任務(wù)的對話,在某一輪的對話上,錯(cuò)誤或者損失函數(shù)就很難定義。整體的損失或者錯(cuò)誤則在對話完成后才能獲得,比如任務(wù)是否完成或者對話持續(xù)了多少輪。對于這種只有一個(gè)長期的獎(jiǎng)勵(lì)可用的情況下,強(qiáng)化學(xué)習(xí)就可以用來學(xué)習(xí)一個(gè)策略網(wǎng)絡(luò),來最大化最終獎(jiǎng)勵(lì)的期望。強(qiáng)化學(xué)習(xí)的過程仍然存在著一些問題,比如非常大的句子長度的指數(shù)搜索空間[52]。
(3)生成對抗網(wǎng)絡(luò)。盡管很多的研究者試圖將生成對抗網(wǎng)絡(luò)應(yīng)用到自然語言處理的任務(wù)上,比如機(jī)器翻譯[53]和自然語言生成[54],然而依然存在著一些挑戰(zhàn),比如由于生成器生成的句子是在離散空間,錯(cuò)誤的信號就很難像圖像和語音處理那樣從判別器直接通過梯度傳遞給生成器。另外生成對抗網(wǎng)絡(luò)的訓(xùn)練對隨機(jī)初始化的結(jié)果和超參數(shù)的選擇都非常敏感[36]。這些問題的存在制約了生成對抗網(wǎng)絡(luò)在自然語言處理任務(wù)上的應(yīng)用。
神經(jīng)網(wǎng)絡(luò)方法已經(jīng)在包括機(jī)器翻譯和機(jī)器閱讀理解(machine reading comprehension, MRC)等在內(nèi)的諸多NLP任務(wù)上取得了令人矚目的效果。然而,此類方法依然存在諸多問題。例如,絕大多數(shù)神經(jīng)網(wǎng)絡(luò)方法都以黑盒的方式工作,因此無法對輸出結(jié)果給出合理的解釋和說明。此外,對于很多自然語言處理任務(wù)(如問答和對話系統(tǒng)),模型為了生成正確的輸出,不僅需要對輸入進(jìn)行理解,還需要具備一定的外部知識(shí)。這就需要模型具備一定的推理能力。
本文將推理定義如下:基于已有知識(shí)對未見問題進(jìn)行理解和推斷,并得出問題對應(yīng)答案的過程,即為推理。據(jù)此定義,推理系統(tǒng)(圖11)主要由如下兩個(gè)模塊組成。
(1)知識(shí):如知識(shí)圖譜、常識(shí)、規(guī)則、從本文中抽取的斷言等。
(2)推理引擎:基于輸入和已有知識(shí)推斷出答案。
這里,我們用兩個(gè)例子來說明推理的重要性。
第一個(gè)例子是基于知識(shí)圖譜的多輪問答。給定問題“比爾·蓋茨夫人的生日是哪天?”知識(shí)圖譜問答系統(tǒng)能夠基于給定知識(shí)圖譜將其轉(zhuǎn)化為對應(yīng)的語義表示:λxλy.DateOfBirth (y,x) ? Spouse (Bill Gates,y)。對于接下來的第二個(gè)問題“他/她是做什么工作的?”,問答模型首先需要具備跨越當(dāng)前輪問題去做指代消解的能力,即判斷第二個(gè)問題中的“他/她”究竟指的是第一個(gè)問題中的哪個(gè)實(shí)體。這本身就是一個(gè)推理過程。此外,問答模型還需要具備一定的常識(shí)知識(shí),用來判斷代詞“他”或“她”所代表的實(shí)體的性別。
第二個(gè)例子是對話系統(tǒng)。當(dāng)用戶說“我現(xiàn)在很餓”,對話模型更應(yīng)該回復(fù)“讓我給你推薦一些餐館吧”,而不是“讓我給你推薦幾部電影吧”。這么簡單的對話過程同樣需要推理,因?yàn)槿烁杏X到饑餓后應(yīng)該去吃飯,而不是去看電影。
本節(jié)余下部分將首先介紹兩類知識(shí):知識(shí)圖譜和常識(shí)知識(shí),然后介紹幾種典型的推理引擎算法。
知識(shí)在推理任務(wù)中起著至關(guān)重要的作用。包括詞典、規(guī)則、知識(shí)圖譜、常識(shí)等在內(nèi)的很多信息都屬于知識(shí)的范疇。本文會(huì)重點(diǎn)介紹兩類推理系統(tǒng)常用到的知識(shí):知識(shí)圖譜和常識(shí)知識(shí)。
4.1.1. 知識(shí)圖譜
知識(shí)圖譜可以表示為一個(gè)有向圖{V,E}。它由節(jié)點(diǎn)V和邊E組成。每個(gè)節(jié)點(diǎn)v∈V表示一個(gè)實(shí)體,每條邊e∈E連接兩個(gè)實(shí)體,用來表示一個(gè)謂詞。每個(gè)三元組<v1,e,v2>用來表示知識(shí)圖譜中的一個(gè)事實(shí)。
例如,<Microsoft, Founder, Bill Gates>表示一個(gè)知識(shí)圖譜三元組,Microsoft表示主語實(shí)體,Bill Gates表示賓語實(shí)體,F(xiàn)ounder表示一個(gè)謂詞,它指明Bill Gates 是Microsoft的創(chuàng)始人。
知識(shí)圖譜構(gòu)建(knowledge graph construction, KBC)主要有三類方法。
(1)手工方法。此類方法完全采用手工方式構(gòu)建知識(shí)圖譜,如WordNet [55]。這類知識(shí)圖譜通常具有非常高的質(zhì)量,但覆蓋度非常有限。此外,這類方法的構(gòu)建開銷也非常高。
(2)眾包方法。此類方法通過眾包的方式構(gòu)建知識(shí)圖譜。和手工構(gòu)建方法相比,這類方法構(gòu)建的知識(shí)圖譜(如Satori、DBpedia [56]、Freebase [57]和WikiData [58])通常具有很大的規(guī)模和較高的質(zhì)量。
圖11 . 推理系統(tǒng)概述。ILP:整數(shù)線性規(guī)劃; MLN:馬爾可夫邏輯網(wǎng)絡(luò)。
(3)信息抽取方法。此類方法通過信息抽取的方式從文本中抽取具有一定結(jié)構(gòu)的知識(shí),如KnowItAll [59]、YAGO [60]和NELL [61]。與前兩類方法相比,此類方法抽取的知識(shí)通常具有較大的噪聲,但抽取知識(shí)的數(shù)量可以非常大。
4.1.2. 常識(shí)
常識(shí)是指每個(gè)人都具備的關(guān)于事物的屬性、關(guān)系以及事物之間交互的通用知識(shí)。常識(shí)知識(shí)通常與地點(diǎn)、語言和文化無關(guān),并且很少在文本中被顯式描述。
例如,“每一位父親都是男性”是一條屬性類常識(shí),“太陽在天上”是一條空間類常識(shí),“樹木是從種子生長出來的”是一條過程類常識(shí)。
常識(shí)知識(shí)庫(commonsense knowledge base, CKB)的構(gòu)建非常具有挑戰(zhàn)性。下面列舉3種常見的構(gòu)建方法。
(1)手工方法。CYC [62]是一個(gè)完全由人工專家構(gòu)建的常識(shí)知識(shí)庫。它主要專注那些很少被寫下來或說出來的常識(shí)知識(shí)。例如,“每個(gè)人都有唯一一個(gè)父親和唯一一個(gè)母親”。構(gòu)建CYC的目的是為了使AI系統(tǒng)具備人類所具備的常識(shí)知識(shí)。通過這類方式構(gòu)建的常識(shí)知識(shí)庫通常規(guī)模很小。這是由于人工標(biāo)注的成本非常高。
(2)眾包方法。ConceptNet [63]屬于這類常識(shí)知識(shí)庫。它由WordNet、Wiktionary、Wikipedia、DBpedia和Freebase混合構(gòu)成。和CYC相比,ConceptNet規(guī)模更大,但其中很大一部分知識(shí)都是關(guān)于命名實(shí)體的,如“比爾·蓋茨”“白宮”等,真正意義上的常識(shí)知識(shí)依然占少數(shù)。
(3)信息抽取方法。WebChild [64]屬于這類常識(shí)知識(shí)庫。它包含了從無結(jié)構(gòu)文本中抽取出來的常識(shí)知識(shí)。這類知識(shí)庫的規(guī)模較大,但由于信息抽取系統(tǒng)的錯(cuò)誤,通常也包含更多的噪聲。
本小結(jié)首先介紹兩種非神經(jīng)網(wǎng)絡(luò)推理算法:整數(shù)線性規(guī)劃法(integer linear programming, ILP)和馬爾可夫邏輯網(wǎng)絡(luò)法(Markov logic network, MLN)。然后,介紹一種神經(jīng)網(wǎng)絡(luò)推理算法:記憶網(wǎng)絡(luò)法,并介紹它在語義分析和對話回復(fù)生成兩個(gè)任務(wù)中的應(yīng)用。
4.2.1. 非神經(jīng)網(wǎng)絡(luò)推理算法——ILP和MLN
ILP是一個(gè)優(yōu)化框架。給定一組有限的變量集合,ILP針對一組線性不等式約束條件去優(yōu)化一個(gè)線性目標(biāo)函數(shù):
ILP中用到的約束條件可以看做是一種先驗(yàn)知識(shí),優(yōu)化過程可以看做是一個(gè)推理過程。下例給出ILP在信息抽取中的一個(gè)應(yīng)用實(shí)例[65]。該任務(wù)的目標(biāo)是從文本中抽取命名實(shí)體以及實(shí)體之間的關(guān)系。
命名實(shí)體識(shí)別(NER)模塊和關(guān)系抽取(RE)模塊通常分別訓(xùn)練,并采用串行的方式用于上述抽取任務(wù)。首先,NER模塊從文本中識(shí)別實(shí)體,并為每個(gè)實(shí)體賦予一個(gè)抽取概率。然后,RE模塊為每個(gè)實(shí)體對預(yù)測可能的關(guān)系。圖13給出了上例對應(yīng)的3個(gè)NER結(jié)果和2個(gè)RE結(jié)果。
如果我們從每個(gè)預(yù)測結(jié)果中選擇局部最優(yōu)的結(jié)果,那么就會(huì)產(chǎn)生錯(cuò)誤。Brooklyn將會(huì)被識(shí)別為Person、Adam和Anne之間的關(guān)系將會(huì)被識(shí)別為PlaceOfBirth。然而,如果模型知道PlaceOfBirth對應(yīng)的賓語實(shí)體類型應(yīng)該是Location而不是Person,那么就可以避免這樣的錯(cuò)誤?;诰植款A(yù)測結(jié)果和約束條件推斷全局最優(yōu)預(yù)測結(jié)果的過程就是一個(gè)典型的推理過程。
針對上述問題,我們將它形式化為一個(gè)ILP問題。首先,定義如下4條約束條件:①每個(gè)實(shí)體只能被賦予一個(gè)實(shí)體類型;②每個(gè)實(shí)體對只能賦予一個(gè)關(guān)系;③給定一個(gè)實(shí)體和連接該實(shí)體的一個(gè)關(guān)系,該關(guān)系對應(yīng)位置上的實(shí)體類型必須和給定實(shí)體的類型保持一致;④每個(gè)關(guān)系對應(yīng)位置的實(shí)體類型必須和實(shí)際連接的實(shí)體類型保持一致?;谏鲜?個(gè)約束條件以及NER和RE的局部預(yù)測結(jié)果,ILP能夠推斷出下述全局預(yù)測結(jié)果(圖14)。
圖12 . 信息提取任務(wù)示例。
圖13 . 不使用ILP的次優(yōu)結(jié)果。E:句子中出現(xiàn)實(shí)體;R:實(shí)體之間的關(guān)系。
ILP在很多NLP任務(wù)中都有廣泛的應(yīng)用,如自動(dòng)問答[66-68]和語義角色標(biāo)注[69,70]。在很多缺乏足夠訓(xùn)練語料的任務(wù)中,ILP能夠充分地利用少量的先驗(yàn)知識(shí),并取得很好的效果。
一個(gè)MLN [71]L由多個(gè)(Fi,wi)對組成。每個(gè)Fi表示一個(gè)一階邏輯公式,wi表示Fi對應(yīng)的權(quán)重。MLN將概率方法和一階謂詞邏輯融合在一個(gè)統(tǒng)一的框架之中。通過將一階邏輯公式中的每個(gè)變量實(shí)例化成常量C= {c1, ...,c|c|},MLN能夠生成一個(gè)馬爾可夫網(wǎng)絡(luò)ML,C,并基于此完成對應(yīng)的推理任務(wù)。
理想情況下,MLN通過如下步驟完成相關(guān)的推理任務(wù)。這里使用著名的“friend-smoking”例子說明。
(1)給定一個(gè)自然語言描述的世界,首先將它解析成一組一階邏輯公式F= {F1, ...,F|F|}。例如,給定下述兩個(gè)句子:
smoking causes cancer
friends have similar smoking habits
它們對應(yīng)的兩個(gè)一階邏輯公式分別是:
?xSmokes(x) ? Cancer(x)
?x,yFriends(x,y) ?(Smokes(x) ? Smokes(y))
在實(shí)際情況中,每個(gè)一階邏輯公式都對應(yīng)一個(gè)權(quán)重,該權(quán)重從關(guān)系知識(shí)庫中通過特定算法學(xué)習(xí)得到,如pseudo-likelihood [72]。
(2)給定L和C,按照下述步驟得到一個(gè)馬爾可夫網(wǎng)絡(luò)ML,C:①L中每個(gè)謂詞的每種可能賦值在ML,C中都對應(yīng)了一個(gè)二元節(jié)點(diǎn),如果謂詞為真,對應(yīng)節(jié)點(diǎn)的值為1,否則為0;②ML,C中每個(gè)公式Fi對應(yīng)的可能賦值都對應(yīng)一個(gè)特征,如果公式為真,那么該特征的取值為1,否則為0。每個(gè)特征的權(quán)重wi與Fi相關(guān)。例如,給定兩個(gè)常量Anna (A)和Bob (B),實(shí)例化后的ML,C可以表示為圖15的形式。
(3)給定一組事實(shí),如Friends (A, B) = 1和Cancer(A) = 1,推理出當(dāng)前世界每個(gè)狀態(tài)最可能的賦值情況,如Smokes (A) = ? Smokes (B) = ? 和Cancer (B) = ? 等。這個(gè)推斷的過程能夠用來回答諸如“What is the probability that Anna is smoking given Anna has cancer?”的問題。常用的推斷算法是MC-SAT [66]。
作為一種統(tǒng)計(jì)關(guān)系學(xué)習(xí)方法,MLN在很多NLP任務(wù)中都有廣泛應(yīng)用,如語義分析[73]、關(guān)系抽取[74]、實(shí)體消歧[75]等。然而,MLN在真實(shí)場景中的應(yīng)用依然存在很多問題。一方面這是由于對自然語言的精準(zhǔn)理解非常困難。另一方面,實(shí)例化后的馬爾可夫網(wǎng)絡(luò)規(guī)模通常非常大[76],這也帶來了很大的計(jì)算問題。此外,和ILP類似,目前MLN和深度學(xué)習(xí)結(jié)合的工作還不多。如何設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)化的MLN依然有待探討和解決。
圖14 . 使用ILP時(shí)的最佳結(jié)果。
圖15 . 馬爾可夫網(wǎng)絡(luò)的一個(gè)例子。
4.2.2. 神經(jīng)網(wǎng)絡(luò)推理算法——記憶網(wǎng)絡(luò)及其變種
記憶網(wǎng)絡(luò)(memory network, MemNN)[77-79]是一種基于深度學(xué)習(xí)的推理框架。它通過多次訪問存儲(chǔ)在記憶模塊中的知識(shí)達(dá)到推理的目的。
這里以“鍵-值記憶網(wǎng)絡(luò)”(key-value memory network, KV-MemNN)[79]為例,說明如何將MemNN用于推理任務(wù)。圖16 [79]給出KV-MemNN的一個(gè)示意圖。
在KV-MemNN中,記憶模塊被表示為一組鍵值向量對(k1,v1), ..., (kM,vM),km表示第k個(gè)鍵,vm表示km對應(yīng)的值。知識(shí)圖譜和非結(jié)構(gòu)化文本都能夠存儲(chǔ)在這樣的記憶模塊中。例如,給定一個(gè)知識(shí)圖譜三元組<e1,v,e2>,鍵可以定義為主語實(shí)體e1和謂詞v,值可以定義為賓語實(shí)體e2。給定一個(gè)輸入問題x,首先從知識(shí)圖譜中找到與其相關(guān)的一組鍵值對(kh1,vh1), ..., (khN,vhN)。查找的方式按照每個(gè)鍵值對與x的相似性:
式中,ΦX(x)和ΦK(khi)用于將x和khi映射到D維特征;A是一個(gè)d×D維的矩陣。接下來,輸出向量o通過下述方式進(jìn)行計(jì)算:
如果某個(gè)任務(wù)需要多輪推理,那么可以通過下式對輸入問題x對應(yīng)的特征向量q進(jìn)行更新:
式中,q=AΦX(x);R1是一個(gè)d×d維的矩陣。上述過程執(zhí)行H次后,生成最終的問題表示qH+1,并用于輸出預(yù)測結(jié)果。
MemNN可被用于推理相關(guān)的任務(wù)。例如,Weston等[77]將MemNN用于推理數(shù)據(jù)集bAbI。Miller等[79]將KVMemNN用于WikiMovies和WikiQA [80]這兩個(gè)數(shù)據(jù)集。Bordes等[81]將MemNN用于端到端對話系統(tǒng)。
MemNN可以看作是記憶增強(qiáng)神經(jīng)網(wǎng)絡(luò)(memory-augmented neural network, MANN)的一個(gè)特例。MANN在實(shí)際NLP任務(wù)中有很多應(yīng)用。接下來以兩個(gè)推理相關(guān)的任務(wù)(語義分析和回復(fù)生成)為例,說明如何使用知識(shí)圖譜和常識(shí)知識(shí)完成推理任務(wù)。
Guo等[82]提出一種基于知識(shí)圖譜的多輪語義分析方法。在該方法中,基于記憶網(wǎng)絡(luò)的對話記憶模塊被引入,用于處理多輪對話中常出現(xiàn)的指代消解和關(guān)系省略現(xiàn)象。
(1)給定第一個(gè)問題:Where was Donald Trump born?語義分析器首先生成其對應(yīng)的語義表示:
λx. PlaceOfBirth(Donald Trump,x)
通過在知識(shí)圖譜上執(zhí)行該語義表示,能夠得到其對應(yīng)的答案New York。由于上述過程只與輸入問題相關(guān),它屬于上下文無關(guān)的語義分析任務(wù)。
(2)接下來,給定第二個(gè)問題:Where did he graduate from?為了解析這個(gè)問題,第一個(gè)問題也需要考慮,這是因?yàn)榈诙€(gè)問題中的he實(shí)際上指第一個(gè)問題中的實(shí)體Donald Trump。由于解析第二個(gè)問題需要考慮上下文,它屬于上下文相關(guān)的語義分析任務(wù)。
給定一個(gè)上下文無關(guān)的問題,語義分析器通過如下步驟生成其對應(yīng)的邏輯表示。從根節(jié)點(diǎn)start開始,一個(gè)語法引導(dǎo)的解碼器采用自頂向下的方式,不斷地將action中的非終結(jié)符替換成其他action或終結(jié)符,直至沒有任何非終結(jié)符為止。圖17給出這個(gè)過程。
表1給出針對多輪語義分析任務(wù)定義的21種不同的action。每個(gè)action由三部分組成:語義類型、函數(shù)名和函數(shù)參數(shù)。每個(gè)參數(shù)既可以是一個(gè)語義類型,也可以是一個(gè)常量,還可以是一個(gè)action序列。按照這個(gè)定義,表中前15個(gè)action覆蓋了語義分析中典型的操作。動(dòng)作16到動(dòng)作18分別表示將非終結(jié)符轉(zhuǎn)化為一個(gè)實(shí)體e、一個(gè)謂詞r和一個(gè)數(shù)字num。動(dòng)作19到動(dòng)作21用于復(fù)制已有的action序列。
圖16 . KV-MemNN概述[79]。a表示問題的答案;B表示d×D矩陣,可以將其約束為與A相同。Rj表示d×d矩陣,用于更新第j跳中輸入問題的表示形式。
圖17 . 上下文無關(guān)的語義解析的示例。DT:唐納德·特朗普(Donald Trump)。
給定一個(gè)上下文相關(guān)的問題,對話歷史記憶模塊保存了從對話開始到現(xiàn)在為止全部對話對應(yīng)的語義表示,包括提及的實(shí)體名稱、謂詞、答案實(shí)體以及全部合法的動(dòng)作子序列。這些信息將被用于當(dāng)前輪問題的語義分析中,用于完成跨輪指代消解和關(guān)系省略等任務(wù)。如圖18中,第二個(gè)問題中的he實(shí)際是指第一個(gè)問題中提到的實(shí)體Donald Trump。通過使用對話歷史記憶模塊,這個(gè)指代消解問題得以解決。
CSQA數(shù)據(jù)集[83]上的實(shí)驗(yàn)表明:通過引入對話記憶,該方法在多輪語義分析和問答任務(wù)上取得了目前最優(yōu)的效果。
Zhou等[84]提出一種基于常識(shí)知識(shí)的編碼器-解碼器方法,用于完成開放領(lǐng)域?qū)υ捪到y(tǒng)中的回復(fù)生成任務(wù)。這里,ConceptNet被用于理解用戶的輸入,并跟據(jù)相關(guān)的常識(shí)知識(shí)生成對應(yīng)的回復(fù)。
在編碼階段,給定輸入X=x1, ...,xn中的每一個(gè)單詞,從常識(shí)圖譜中搜索得到相關(guān)的常識(shí)知識(shí),并通過知識(shí)嵌入將其轉(zhuǎn)化為對應(yīng)的向量表示。每個(gè)單詞都和對應(yīng)的知識(shí)向量表示進(jìn)行拼接,生成知識(shí)增強(qiáng)單詞表示e(xi) = [w(xi);gi],并將其輸入到GRU編碼器中。
在解碼階段,解碼器在生成每個(gè)單詞時(shí),都會(huì)從常識(shí)圖譜中搜索相關(guān)的知識(shí),并將其轉(zhuǎn)化為對應(yīng)的知識(shí)嵌入引入到解碼過程當(dāng)中。此外,在輸出單詞的時(shí)候,解碼器還被允許從常識(shí)圖譜中選擇某個(gè)實(shí)體作為輸出。
實(shí)驗(yàn)證明,通過在編碼和解碼兩個(gè)階段都引入常識(shí)知識(shí),該方法在常識(shí)對話數(shù)據(jù)集[84]上能夠取得當(dāng)前最優(yōu)的結(jié)果。
最近,學(xué)術(shù)界發(fā)布了很多推理相關(guān)的數(shù)據(jù)集。按照所使用知識(shí)類型的不同,本文將這些數(shù)據(jù)集歸為如下4類。
表1 由語義類別、功能符號和參數(shù)列表組成的動(dòng)作列表
圖18 . 一個(gè)依賴于內(nèi)容的語義解析示例。
(1)基于知識(shí)圖譜的任務(wù)。WikiSQL [85]、LC-QuAD[86]、CSQA [83]和ComplexWebQuestions [87]都屬于這類任務(wù)。語義分析是完成這類任務(wù)最核心的技術(shù)。
(2)基于常識(shí)知識(shí)的任務(wù)。Winograd Schema Challenge [88]、ARC [89]、CommonsenseQA [90]和ATOMIC[91]都屬于這類任務(wù)。如何抽取、表示和利用任務(wù)相關(guān)的常識(shí)知識(shí)是這類任務(wù)最核心的技術(shù)。
(3)基于文本的任務(wù)。HOTPOTQA [92]、NarrativeQA [93]、MultiRC [94]和CoQA [95]都屬于這類任務(wù)。目前,端到端的深度學(xué)習(xí)模型在這類文本任務(wù)上取得了非常好的效果。不過究竟這些模型是否真的學(xué)習(xí)到了推理的能力,還是說它們只是記憶了有用的模板,這些都是推理研究亟需解決的問題。
(4)基于文本和視覺的任務(wù)。GQA [96]和VCR [97]都屬于這類任務(wù)。給定一張圖片和一個(gè)自然語言問題,這類任務(wù)需要系統(tǒng)能夠從給定的答案中選擇出問題對應(yīng)的正確答案。這不僅需要模型具備一定的推理能力,還要求模型能夠很好地理解和對齊來自語言和視覺兩方面的信息。
由于數(shù)據(jù)標(biāo)注的昂貴性,目前絕大多數(shù)推理數(shù)據(jù)集的規(guī)模都不大。從這些數(shù)據(jù)集中訓(xùn)練得到的模型往往缺乏泛化性。最近,包括ELMo、 GPT、 BERT 和 XLNet等在內(nèi)的預(yù)訓(xùn)練模型在很多NLP任務(wù)上取得了非常好的效果。如何將已有知識(shí)和預(yù)訓(xùn)練模型結(jié)合,成為一個(gè)非常有意義的研究課題。
本小結(jié)簡要介紹了一些和推理相關(guān)的NLP研究。包括非神經(jīng)網(wǎng)絡(luò)方法和神經(jīng)網(wǎng)絡(luò)方法。推理相關(guān)的研究目前依然處于比較初步的階段,也有很多挑戰(zhàn)需要去解決,包括以下3個(gè)方面。
(1)知識(shí)抽取。由于目前知識(shí)圖譜的覆蓋度很低,因此無法涵蓋絕大多數(shù)自然語言內(nèi)容。這導(dǎo)致基于知識(shí)的推理方法很難在開放領(lǐng)域的NLP任務(wù)上取得廣泛應(yīng)用。因此,如何抽取大規(guī)模高質(zhì)量的知識(shí)成為推動(dòng)推理研究的一個(gè)重要課題。
(2)結(jié)合顯式知識(shí)和預(yù)訓(xùn)練模型進(jìn)行推理。傳統(tǒng)的推理方法大都基于顯式的知識(shí)。最近,包括GPT、BERT和XLNet在內(nèi)的預(yù)訓(xùn)練模型在很多推理相關(guān)的NLP任務(wù)上都取得了很好的效果,如Winograd Schema Challenge [88]和SWAG [98]。如何將預(yù)訓(xùn)練模型和已有知識(shí)這兩者的優(yōu)勢結(jié)合在一起,也是接下來一個(gè)值得研究的方向。
(3)數(shù)據(jù)集和評測指標(biāo)。由于深度學(xué)習(xí)技術(shù)的發(fā)展,很多NLP任務(wù)都取得了非常好的效果。然而我們依然無法確認(rèn)這些模型究竟具備多少推理能力。這就需要構(gòu)建更好的和推理相關(guān)的數(shù)據(jù)集以及設(shè)計(jì)可以評價(jià)推理能力的評測指標(biāo)。
總體而言,推理在很多NLP任務(wù)中都至關(guān)重要。推理研究的發(fā)展能夠推動(dòng)NLP整體水平的發(fā)展。如何更好地利用包括知識(shí)圖譜、常識(shí)、預(yù)訓(xùn)練模型等不同類型的知識(shí)進(jìn)行推理研究,是人工智能從感知走向認(rèn)知的關(guān)鍵一步。
本文從模型、訓(xùn)練和推理3個(gè)角度回顧了自然語言處理在近年來所取得的最新進(jìn)展。總體而言,NLP研究和應(yīng)用已經(jīng)進(jìn)入了一個(gè)新的時(shí)代。對于高資源的NLP任務(wù)(如機(jī)器翻譯和自動(dòng)問答),監(jiān)督學(xué)習(xí)方法已經(jīng)取得了很好的效果。對于低資源的NLP任務(wù),半監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)在近年來也有了長足的進(jìn)步和發(fā)展。但還需要更多持續(xù)的努力才能取得更令人滿意的效果。此外,推理相關(guān)的研究和數(shù)據(jù)集也得到研究者越來越多的關(guān)注。這個(gè)方向目前尚處于起步期,但意義重大,因此還有很大的發(fā)展空間。
展望未來,我們可以看到很多令人激動(dòng)的方向。預(yù)訓(xùn)練模型的發(fā)展已經(jīng)展示出巨大的威力。毫無疑問,這些研究將繼續(xù)推動(dòng)自然語言理解和生成任務(wù)的水平。記憶和知識(shí)增強(qiáng)的神經(jīng)網(wǎng)絡(luò)方法會(huì)受到越來越多的關(guān)注,并促進(jìn)知識(shí)抽取領(lǐng)域的持續(xù)發(fā)展。此外,如何將包括聲音、視覺和文本等多模態(tài)信息融入NLP的研究,也是人工智能發(fā)展的一個(gè)重要方向。
未來,NLP技術(shù)會(huì)極大地改變?nèi)藗兊纳?。為了?shí)現(xiàn)這一目標(biāo),需要我們繼續(xù)不斷地創(chuàng)新,并推動(dòng)各項(xiàng)研究和應(yīng)用。這些技術(shù)終將更好地為人類社會(huì)服務(wù)。
Compliance with ethics guidelines
Ming Zhou, Nan Duan, Shujie Liu, and Heung-Yeung Shum declare that they have no conflict of interest or financial conflicts to disclose.