1. 程式人生 > >NLP通用模型誕生?一個模型搞定十大自然語言常見任務

NLP通用模型誕生?一個模型搞定十大自然語言常見任務

640?wx_fmt=png

翻譯 | 於之涵

編輯 | Leo

出品 | 人工智慧頭條 (公眾號ID:AI_Thinker

人工智慧頭條按:目前的NLP領域有一個問題:即使是再厲害的演算法也只能針對特定的任務,比如適用於機器翻譯的模型不一定可以拿來做情感分析或摘要。

然而近日,Salesforce釋出了一項新的研究成果:decaNLP——一個可以同時處理機器翻譯、問答、摘要、文字分類、情感分析等十項自然語言任務的通用模型。

Salesforce的首席科學家RichardSocher在接受外媒採訪時表示:我們的decaNLP就好比NLP領域的瑞士軍刀!

以下為人工智慧頭條對Salesforce的論文概述《The Natural Language Decathlon》的編譯,enjoy!

引言

深度學習已經顯著地改善了自然語言處理任務中的最先進的效能,如機器翻譯、摘要、問答和文字分類。每一個任務都有一個特定的衡量標準,它們的效能通常是由一組基準資料集測量的。這也促進了專門設計這些任務和衡量標準的體系的發展,但是它可能不會促使那些能夠在各種自然語言處理(NLP)任務中表現良好的通用自然語言處理模型的湧現。為了探索這種通用模型的可能性以及在優化它們時產生的權衡關係,我們引入了自然語言十項全能(decaNLP)。

這個挑戰涵蓋了十個任務:問答、機器翻譯、摘要、自然語言推理、情感分析、語義角色標註、關係抽取、任務驅動多輪對話、資料庫查詢生成器和代詞消解。自然語言十項全能(decaNLP)的目標是開發出可以整合所有十個任務的模型,並研究這種模型與那些為單一任務訓練而準備的模型有何不同。出於這個原因,十項全能的表現會被一個統一的指標所衡量,該指標集合了所有十項任務的度量標準。

640?wx_fmt=gif

圖1.通過將 decaNLP的所有十個任務整合成問答形式,我們可以訓練一個通用的問答模型

我們把所有十個任務都統一轉化為問答的方式,提出了一個新的多工問答網路(MQAN),它是一個不需要特定任務的模組或引數而進行共同學習任務的網路。在機器翻譯和實體識別命名中,MQAN顯示出了遷移學習(Transfer learning)方面的改進。在情感分析和自然語言推理中,MQAN顯示出了在領域適應方面的改進,同時對於文字分類方面也顯示出了其zero-shot的能力。

在與基線的比較中,我們證明了MQAN的多指標編解碼器(multi-pointer-generator decoder)是成功的關鍵,並且使用相反的訓練策略(anti-curriculum training strategy)進一步改進了效能。 儘管該設計用於decaNLP和通用的問答,MQAN恰好也能在單任務設定中表現良好:它在WikiSQL語義解析任務上與單項模型最佳成績旗鼓相當,任務驅動型對話任務中它排名第二,在SQuAD資料集不直接使用跨監督方法的模型中它得分最高,同時在其他任務中也表現良好。decaNLP的從獲取和處理資料、訓練和評估模型到復現實驗的所有程式碼已經開源。


任務

640?wx_fmt=png

圖2.(問題、上下文、答案)問答、機器翻譯、摘要、自然語言推理、情感分析、詞性標註、關係抽取、目標導向對話、語義解析和代詞解析任務的例子

讓我們首先開始討論這些任務及其相關資料集。我們的論文包含更多的細節,包括對每個任務的歷史背景和最近的工作進行更深入的討論。每個任務的輸入-輸出對示例如上圖所示。

問答。問答(QA)模型接收一個問題以及它所包含的必要的資訊的上下文來輸出理想的答案。我們使用斯坦福問答資料集的原始版本(SQuAD)來完成這項任務。該上下文是從英文維基百科中摘取的段落,答案是從文章中複製的單詞序列。

機器翻譯。機器翻譯模型以源語言文字的形式為輸入,輸出為翻譯好的目標語言。我們使用2016年為國際口語翻譯研討會(IWSLT)準備的英譯德資料為訓練資料集,使用2013年和2014年的測試集作為驗證集和測試集。這些例子來自TED演講,涵蓋了會話語言的各種主題。這是一個相對較小的機器翻譯資料集,但是它與其他任務的資料集大致相同。當然你還可以使用額外的訓練資源,比如機器翻譯大賽(WMT)中的資料集。

摘要。摘要模型接收一個文件並輸出該文件的摘要。如今在摘要方面最重要的進展是將CNN/DailyMail (美國有線電視新聞網/每日郵報)語料庫轉換成一個摘要資料集。我們在decaNLP中包含這個資料集的非匿名版本。平均來講,這些例項包含了該挑戰賽中最長的文件,以及從上下文直接提取答案與語境外生成答案之間平衡的force Model。

自然語言推理。自然語言推理(NLI)模型接受兩個輸入句子:一個前提和一個假設。模型必須將前提和假設之間的推理關係歸類為支援、中立或矛盾。我們使用的是多體裁自然語言推理語料庫(MNLI),它提供來自多個領域的訓練示例(轉錄語音、通俗小說、政府報告)和來自各個領域的測試對。

情感分析。情感分析模型被訓練用來對輸入文字表達的情感進行分類。斯坦福情感樹庫(SST)由一些帶有相應的情緒(積極的,中立的,消極的)的影評所組成。我們使用未解析的二進位制版本,以便明確對decaNLP模型的解析依賴。

語義角色標註。語義角色標註(SRL)模型給出一個句子和謂語(通常是一個動詞),並且必須確定“誰對誰做了什麼”、“什麼時候”、“在哪裡”。我們使用一個SRL資料集,該資料集將任務視為一種問答:QA-SRL。這個資料集涵蓋了新聞和維基百科的領域,但是為了確保decaNLP的所有資料都可以自由下載,我們只使用了後者。

關係抽取。關係抽取系統包含文字文件和要從該文字中提取的關係型別。在這種情況下,模型需要先識別實體間的語義關係,再判斷是不是屬於目標種類。與SRL一樣,我們使用一個數據集,該資料集將關係對映到一組問題,以便關係抽取可以被視為一種問答形式:QA-ZRE。對資料集的評估是為了在新的關係上測量零樣本效能——資料集是分開的使得測試時看到的關係在訓練時是無法看到的。這種零樣本的關係抽取,以問答為框架,可以推廣到新的關係之中。

任務驅動多輪對話。對話狀態跟蹤是任務驅動多輪對話系統的關鍵組成部分。根據使用者的話語和系統動作,對話狀態跟蹤器會跟蹤使用者為對話系統設定了哪些事先設定目標,以及使用者在系統和使用者互動過程中發出了哪些請求。我們使用的是英文版的WOZ餐廳預訂服務,它提供了事先設定的關於食物、日期、時間、地址和其他資訊的本體,可以幫助代理商為客戶進行預訂。

語義解析。SQL查詢生成與語義解析相關。基於WikiSQL資料集的模型將自然語言問題轉換為結構化SQL查詢,以便使用者可以使用自然語言與資料庫互動。

代詞消解。我們的最後一個任務是基於要求代詞解析的Winograd模式:“Joan一定要感謝Susan的幫助(給予/收到)。誰給予或者收到了幫助?Joan還是Susan?”。我們從Winograd模式挑戰中的示例開始,並對它們進行了修改(導致了修訂的Winograd模式挑戰,即MWSC),以確保答案是上下文中的單個單詞,並且分數不會因上下文、問題和答案之間的措辭或不一致而增加或者減少。

十項全能得分(decaScore)

在decaNLP上競爭的模型是被特定任務中度量標準的附加組合來評估的。所有的度量值都在0到100之間,因此十項全能得分在10個任務中的度量值在0到1000之間。使用附加組合可以避免我們在權衡不同指標時可能產生的隨意性。所有指標都不區分大小寫。我們將標準化的F1(nF1)用於問答、自然語言推理、情感分析、詞性標註和MWSC;平均值ROUGE-1、ROUGE-2、ROUGE-L作為摘要的評分等級;語料BLEU水平得分用於對機器翻譯進行評分;聯合目標跟蹤精確匹配分數和基於回合的請求精確匹配得分的平均值用於對目標導向進行評分;邏輯形式精確匹配得分用於WikiSQL上的語義解析;以及語料庫級F1評分等級,用於QA-ZRE的關係提取。

為了代替標準的驗證資料,我們選擇了按要求的decaNLP模型提交到原始的小組平臺進行測試。類似地,MNLI測試集不是公開的,decaNLP模型必須通過一個Kaggle系統來評估MNLI的測試效能。

多工問答網路(MQAN)

640?wx_fmt=png

圖3.多工問答網路

為了有效地在所有decaNLP中進行多工處理,我們引入了MQAN,一個多工問題回答網路,它沒有任何針對特定任務的引數和模組。

簡單地說,MQAN採用一個問題和一個上下文背景文件,用BiLSTM編碼,使用額外的共同關注對兩個序列的條件進行表示,用另兩個BiLSTM壓縮所有這些資訊,使其能夠更高層進行計算,用自我關注的方式來收集這種長距離依賴關係,然後使用兩個BiLSTM對問題和背景環境的進行最終的表示。多指標生成器解碼器著重於問題、上下文以及先前輸出象徵來決定是否從問題中複製,還是從上下文複製,或者從有限的詞彙表中生成。關於我們的模型的其他細節可以在我們的文章的第3節中找到。

基線和結果

除了MQAN,我們還嘗試了幾種基線方法並計算了它們的十項全能得分。第一個基線,S2S,是具有注意力和指標生成器的序列到序列的網路。我們的第二基線,S2S w/SAtt,是一個S2S網路,它在編碼器側的BiLTM層和解碼器側的LSTM層之間添加了自注意(Transformer)層。我們的第三個基線,+CAtt,將上下文和問題分成兩個序列,並在編碼器側新增一個額外的共同關注層。MQAN是一個種帶有附加問題指標的+CAtt模型,在我們的基線/消融研究中,它被稱為+QPtr。針對每一個模型,我們都提出了兩種實驗。第一,我們報告出十個任務模型中的單任務效能。第二,我們提出多工效能,即模型在所有任務中被聯合訓練所體現出的效能。

640?wx_fmt=png

圖4.單任務和多工實驗對不同模型和訓練策略的驗證結果

比較這些實驗的結果突出了在序列到序列和通用NLP問答方法之間的多工和單任務之間的權衡關係。從S2S到S2S w/ SAtt提供了一種模型,該模型在混合上下文和輸入的系列問題中添加了附加關注層。這大大提高了 SQuAD和WiKISQL的效能,同時也提高了QA-SRL的效能。僅此一點就足以實現WiKISQL的最新技術效能。這也表明,如果不隱性地學習如何分離它們的表示方法,而顯性地去分離上下文和問題會使模型建立更豐富的表示方法。

下一個基線使用上下文和問題作為單獨的輸入序列,相當於使用一個共同關注機制(+CAT)來增強S2S模型,該機制分別構建了兩個序列表示。 使得每個SQuAD和QA-SRL的效能增加了 5 nF1。但遺憾的是,這種分離不能改善其他任務,並且極大地損害了MNLI和MWSC的效能。對於這兩個任務,可以直接從問題中複製答案,而不是像大多數其他任務那樣從上下文中複製答案。由於兩個S2S基線都將問題連線到上下文,所以指標生成器機制能夠直接從問題中複製。當上下文和問題被分成兩個不同的輸入時,模型就失去了這種能力。

為了補救這個問題,我們在前面的基線中添加了一個問題指標(+QPTR),一種在之前新增給MQAN的指標。這提高了MNLI和MWSC的效能,甚至能夠比S2S基線達到更高的分數。它也改善了在SQuAD,IWSLT和 CNN/DM上的效能,該模型在WiKISQL上實現了最新的成果,是面向目標的對話資料集的第二高執行模型,並且是非顯式地將問題建模為跨度提取的最高效能模型。因為當使用直接跨度監督時,我們會看到應用在通用問答中的一些侷限性。

在多工設定中,我們看到了類似的結果,但我們還注意到一些額外的顯著特性。在QA-ZRE中,零樣本關係提取,效能比最高的單任務模型提高11個點,這支援了多工學習即使在零樣本情況下也能得到更好的泛化的假設。在需要大量使用S2S基線的指標生成器解碼器的生成器部分的任務上,效能下降了50%以上,直到問題指標再次新增到模型中。我們認為這在多工設定中尤為重要。原因有二:首先,問題指標除了在一個共同參與的上下文語境環境之外,還有一個共同參與的問題。這種分離允許有關問題的關鍵資訊直接流入解碼器,而不是通過共同參與的上下文。其次,通過更直接地訪問這個問題,模型能夠更有效地決定何時生成輸出令牌比直接複製更合適。

使用這種反課程訓練策略,最初只針對問答進行訓練,在decaNLP上的效能也進一步有所提高。

零樣本和遷移學習能力

640?wx_fmt=png

圖5.在適應新域和學習新任務時,MQAN對decaNLP的預訓練優於隨機初始化。左:一個新的語言對的訓練-英文到捷克語,右:訓練一個新的任務-實體識別命名(NER)

考慮到我們的模型是在豐富和多樣的資料上進行訓練的,它構建了強大的中間表示方法,從而實現了遷移學習。相對於一個隨機初始化的模型,我們的模型在decaNLP上進行了預先訓練,使得在幾個新任務上更快的收斂並且也提高了分數。我們在上圖中給出了兩個這樣的任務:命名實體識別和英文到捷克語的翻譯。 我們的模型也具有領域適應的零樣本能力。

我們的模型在decaNLP上接受過訓練,在沒有看過訓練資料的情況下,我們將SNLI資料集調整到62%的精確匹配分數。因為decaNLP包含SST,它也可以在其他二進位制情感分析任務中執行得很好。在亞馬遜和Yelp的評論中,MQAN在decaNLP上進行了預先培訓,分別獲得了82.1%和80.8%的精確匹配分數。此外,用高興/憤怒或支援/不支援來替換訓練標籤的符號來重新表示問題,只會導致效能的輕微下降,因為模型主要依賴於SST的問題指標。這表明,這些多工模型對於問題和任務中的微小變化更加可靠,並且可以推廣到新的和不可見的類。

附加細節和引文

為了方便起見,我們為感興趣的讀者提供了我們的論文及其附錄,為主要任務、歷史背景、模型、訓練策略、課程學習啟發、模型啟用分析和相關工作提供更多細節。該論文連結如下:

https://einstein.ai/static/images/pages/research/decaNLP/decaNLP.pdf

原文連結:https://einstein.ai/research/the-natural-language-decathlon

開原始碼:https://github.com/salesforce/decaNLP

——【完】——

關注人工智慧頭條,獲得更多幹貨內容

640?wx_fmt=jpeg