Salesforce最新論文提出了一個可處理多項自然語言處理的通用模型:decaNLP,處理機器翻譯、文本分類等NLP任務(wù)統(tǒng)統(tǒng)不在話下!
深度學(xué)習(xí)提升了許多單個自然語言處理任務(wù)的性能。但是,一般的NLP模型集中于單個度量、數(shù)據(jù)集和任務(wù),因此不能形成典范。我們引進了自然語言十項全能(decaNLP)的概念,一個跨越10個任務(wù)的挑戰(zhàn):問答,機器翻譯,總結(jié),自然語言推理,情感分析,語義角色標(biāo)注,關(guān)系抽取,目標(biāo)驅(qū)動對話,語義解析,常識性代詞消解。
我們將所有的問題轉(zhuǎn)化為一段文本的問答。進一步的,我們提出了一個新的多任務(wù)問答網(wǎng)絡(luò)(MQAN),它可以在沒有任何特定任務(wù)的模塊或參數(shù)的情況下,共同學(xué)習(xí)decaNLP中的所有任務(wù)。MQAN顯示了機器翻譯和命名實體識別(NER)的遷移學(xué)習(xí)的改進,情感分析和自然語言推理的領(lǐng)域適應(yīng),以及文本分類的零樣本能力。
我們證明了MQAN的多指針編解碼器是這個成功的關(guān)鍵,并且通過相反訓(xùn)練策略(anti-curriculum training strategy)進一步提高了性能。盡管MQAN是為decaNLP設(shè)計的,但它也實現(xiàn)了在單任務(wù)設(shè)置中的WikiSQL語義解析任務(wù)的最新結(jié)果。我們還發(fā)布了獲取和處理數(shù)據(jù),訓(xùn)練和評估模型的代碼,以及重現(xiàn)了decaNLP的所有實驗。
代碼鏈接:
https://github.com/salesforce/decaNLP
介 紹
我們介紹了decaNLP,以探索推廣到許多不同類型的NLP任務(wù)的模型。decaNLP鼓勵用單一模型同時優(yōu)化十項任務(wù):問答、機器翻譯、文檔總結(jié)、語義解析、情感分析、自然語言推理、語義角色標(biāo)注、關(guān)系抽取、目標(biāo)驅(qū)動對話、代詞消解。
MQAN是針對decaNLP設(shè)計的,它利用了一種新的雙關(guān)聯(lián)注意力和多指針發(fā)生器解碼器在decaNLP中對所有任務(wù)進行多任務(wù)處理。我們的研究結(jié)果表明,用正確的相反訓(xùn)練策略對所有任務(wù)的MQAN進行聯(lián)合訓(xùn)練,可以達到與10個獨立的MQANs單獨訓(xùn)練相同的性能。
在decaNLP上接受過訓(xùn)練的MQAN在機器翻譯和命名實體識別的遷移學(xué)習(xí)、情感分析和自然語言推理的領(lǐng)域適應(yīng)以及文本分類的零樣本能力方面都有改進。雖然沒有為任何一個任務(wù)明確地設(shè)計,但事實證明,MQAN在單任務(wù)設(shè)置中也是一個強大的模型,在decaNLP的語義解析上實現(xiàn)了最先進的結(jié)果。
我們發(fā)布了代碼,用于獲取和預(yù)處理數(shù)據(jù)集、訓(xùn)練和評估模型,以及通過基于decaScore的十項全能分數(shù)(decaScore)的排行榜跟蹤進度。我們希望這些資源的結(jié)合能夠促進多任務(wù)學(xué)習(xí)、遷移學(xué)習(xí)、通用嵌入和編碼器、架構(gòu)搜索、零樣本學(xué)習(xí)、通用問答、元學(xué)習(xí)等NLP相關(guān)領(lǐng)域的研究。
任務(wù)和指標(biāo)
decaNLP包含了10個公開的可獲得的數(shù)據(jù)集,示例被轉(zhuǎn)換為(問題、上下文、回答)三元組,如圖1所示。
圖1. decaNLP數(shù)據(jù)集的概覽:其中包含了每一個decaNLP任務(wù)的例子。它們展示了如何預(yù)先處理數(shù)據(jù)集,使其成為問答問題。紅色的回答詞是通過指向上下文生成的,綠色的是從問題中生成的,藍色的是輸出詞匯表上的分類器生成的。
問答(QA)。QA模型接收一個問題和一個上下文,其中包含輸出所需答案所需的信息。在這個任務(wù)中我們使用斯坦福問答數(shù)據(jù)集(SQuAD)。
上下文是從英語維基百科中摘取的段落,回答是從上下文中復(fù)制的單詞序列。SQuAD使用一種標(biāo)準(zhǔn)化的F1指標(biāo),剔除冠詞和標(biāo)點符號。
機器翻譯。機器翻譯模型以源語言作為輸入文檔,輸出為翻譯好的目標(biāo)語言。我們使用2016年為國際口語翻譯研討會(IWSLT)準(zhǔn)備的英語到德語訓(xùn)練數(shù)據(jù)。例子來自轉(zhuǎn)錄的TED演講,以對話的形式涵蓋了各種各樣的話題。我們在2013年和2014年的測試集上分別以語料級別的BLEU評分作為驗證集和測試集進行評估。
摘要。摘要模型接收一個文檔并輸出該文檔的摘要。關(guān)于摘要,最近最重要的進展是CNN/DailyMail(CNN/DM)語料庫轉(zhuǎn)化為一個摘要數(shù)據(jù)集。我們在decaNLP中包含這個數(shù)據(jù)集的非匿名版本。平均而言,這些示例包含了decaNLP中最長的文檔,并強迫模型通過生成新的抽象的單詞序列來平衡從上下文提取的內(nèi)容。CNN/DM使用ROUGE-1、ROUGE-2和ROUGE-L分數(shù)。我們把這三個分數(shù)取平均,計算出一個整體的ROUGE分數(shù)。
自然語言推理。自然語言推理(NLI)模型接受兩個輸入句子:一個前提和一個假設(shè)。模型必須將兩者之間的推理關(guān)系歸類為包含關(guān)系、中立關(guān)系或矛盾關(guān)系。我們使用多流派的自然語言推理語料庫(MNLI),提供來自多個領(lǐng)域的訓(xùn)練示例(轉(zhuǎn)錄語音、通俗小說、政府報告),以及來自可見和不可見領(lǐng)域的測試對。MNLI使用精確匹配(EM)得分。
情感分析。訓(xùn)練情感分析模型的目的是,根據(jù)輸入的文本對文本表達的情感進行分類。斯坦福情感樹庫(SST),由一些帶有相應(yīng)情緒(積極的,中性的,消極)的電影評論組成。我們使用未解析的二進制版本。SST也使用EM分數(shù)。
語義角色標(biāo)注(SRL)。SRL模型被給定一個句子和謂詞(通常是一個動詞),然后必須確定“誰對誰做了什么”、“什么時候”、“在哪里”。我們使用一個SRL數(shù)據(jù)集,將任務(wù)視為一種問答,也叫QA-SRL。這個數(shù)據(jù)集涵蓋了新聞和維基百科領(lǐng)域,但我們只使用后者,以確保decaNLP的所有數(shù)據(jù)都可以免費下載。我們用SQuAD使用的nF1指標(biāo)來評估QA-SRL。
關(guān)系抽取。關(guān)系抽取系統(tǒng)接收到一段非結(jié)構(gòu)化的文本以及要從該文本中提取的關(guān)系。在這種情況下,模型需要先識別實體間的語義關(guān)系,再判斷是不是屬于目標(biāo)種類。與SRL一樣,我們使用一個數(shù)據(jù)集QA-ZRE,將關(guān)系映射到一組問題,這樣就可以將關(guān)系抽取處理為問答形式。
對數(shù)據(jù)集的評估是為了對新的關(guān)系進行零樣本性能的測量——數(shù)據(jù)集是被分割的,這樣在測試時看到的關(guān)系在訓(xùn)練時是看不到的。這種零樣本關(guān)系的提取,把它轉(zhuǎn)化成問答,使它有可能推廣到新的關(guān)系。QA-ZRE使用一個預(yù)料級別的F1指標(biāo)(cF1)來準(zhǔn)確地解釋無法回答的問題。這個F1指標(biāo)定義精度為真正的正計數(shù)除以系統(tǒng)返回非空答案的次數(shù),召回率為真正的正計數(shù)除以有答案的實例數(shù)。
目標(biāo)驅(qū)動對話。對話狀態(tài)跟蹤是目標(biāo)驅(qū)動對話系統(tǒng)的重要組成部分。基于用戶的說話、已經(jīng)采取的行動和會話歷史,對話狀態(tài)跟蹤器會跟蹤用戶對對話系統(tǒng)有哪些預(yù)定義目標(biāo),以及用戶在系統(tǒng)和用戶交互時發(fā)出哪些請求。
我們使用了WOZ餐廳預(yù)訂任務(wù)的數(shù)據(jù)集,它提供了一個預(yù)定義的食物、日期、時間、地址和其他信息,可以幫助代理商為客戶預(yù)訂。WOZ基于回合的對話狀態(tài)(dsEM)對客戶的目標(biāo)進行評估。
語義解析。SQL查詢生成與語義解析相關(guān)。基于WikiSQL數(shù)據(jù)集的模型將自然語言問題轉(zhuǎn)化成結(jié)構(gòu)化的SQL查詢,以便用戶可以使用自然語言與數(shù)據(jù)庫進行交互。WikiSQL通過邏輯形式精確匹配(lfEM)進行評估,以確保模型不會從錯誤生成的查詢中獲得正確的答案。
指代消解。我們的最后一個任務(wù)是基于Winograd模式,它要求代詞消解:“Joan made sure to thank Susan for the help she had [given/received]. Who had [given/received] help? Susan or Joan?"。我們從Winograd模式挑戰(zhàn)中的例子開始,并對它們進行了修改,以確保答案是來自上下文的單個單詞。這個修改后的Winograd模式挑戰(zhàn)(MWSC)確保了分數(shù)不會因上下文、問題和答案之間的措辭或不一致而被夸大或縮小。我們用EM值來評估。
十項全能分數(shù)(decaScore)。在decaNLP上競爭的模型將使用每個特定于任務(wù)的指標(biāo)的相加組合進行評估。所有指標(biāo)都在0到100之間,因此十項任務(wù)的decaScore自然會在0到1000之間。使用一個相加組合可以避免因衡量不同的指標(biāo)而產(chǎn)生的問題。所有指標(biāo)都不區(qū)分大小寫。
表1 decaNLP中公開可用的基準(zhǔn)數(shù)據(jù)集以及用于decoSocre的評估指標(biāo)。
多任務(wù)問答網(wǎng)絡(luò)
因為每一項任務(wù)都被定義為問答并且共同訓(xùn)練,所以我們稱我們的模型為多任務(wù)問答網(wǎng)絡(luò)(MQAN)。每個示例由上下文、問題和回答組成,如圖2所示。
圖2. MQAN模型概覽:它輸入一個問題和上下文文檔,然后將它們用BiLSTM進行編碼,使用dual coattention對兩個序列的條件進行表示,用另兩個BiLSTMs壓縮所有的這些信息,用self-attention來收集這種長距離依賴,然后使用兩個BiLSTMs的問題和上下文環(huán)境進行最終的表示。多指針生成器解碼器使用對問題、上下文和先前輸出的詞次的關(guān)注來決定是從問題中復(fù)制、從上下文中復(fù)制還是從有限的詞匯表中生成。
在訓(xùn)練過程中,MQAN將三個序列作為輸入:具有l(wèi)個詞次的文本c,具有m個詞次的問題q,具有n個詞次的回答a。它們都用矩陣表示,矩陣的第i列與d_emb維的嵌入向量一致,作為序列中的第i個詞次:
編碼器將這些矩陣作為輸入,使用重復(fù)的、coattentive的和self-attentive層的深層堆棧來產(chǎn)生最終的表示。設(shè)計作為上下文和問題的C_fin和Q_fin,來捕捉局部和全局的相互依賴。
回答表示
在訓(xùn)練過程中,解碼器開始把回答潛入向量投影到d維的空間中:
接下來是一個self-attentive層,它在編碼器中有一個相應(yīng)的self-attentive層。因為它既沒有遞歸,又沒有卷積,我們給A_poj添加位置編碼PE,其中PE為:
多頭解碼機制
我們使用self-attentive,這樣解碼器就可以知道以前的輸出(或者在沒有先前輸出的情況下,可以使用一個特殊的初始化詞次),并且可以關(guān)注上下文來準(zhǔn)備下一個輸出。
中間解碼器狀態(tài)
接下來,我們將使用標(biāo)準(zhǔn)的LSTM來獲取時間步t時的循環(huán)上下文狀態(tài)c_t。首先,讓LSTM通過使用先前的回答詞A_self和循環(huán)上下文狀態(tài)產(chǎn)生一個中間狀態(tài)h_t:
上下文和問題機制
這個中間狀態(tài)被用于獲得注意力權(quán)重和
,以使解碼器集中于與時間步t有關(guān)的編碼信息。
循環(huán)上下文狀態(tài)
上下文表示與這些權(quán)重相結(jié)合,通過tanh激活的前饋網(wǎng)絡(luò)輸入,形成重復(fù)的上下文狀態(tài)和問題狀態(tài):
多指針生成器
我們的模型必須能夠生成不在上下文或問題中的詞次。我們讓它訪問v個額外的詞匯詞次。分別得到在上下文中、問題和這個外部詞匯表中詞次的分布:
這些分布通過將缺失的條目設(shè)置為0以使每個分布都在R_l+m+v中來擴展,以覆蓋上下文、問題和外部詞匯表中的詞次的聯(lián)合。兩個標(biāo)量開關(guān)調(diào)節(jié)每個分布在決定最終輸出分布的重要性。
我們在整個時間步中使用一個詞次級別的負對數(shù)似然損失:
實驗和分析
基線和MQAN
表2 decaNLP基線的驗證指標(biāo):單任務(wù)和多任務(wù)實驗對不同模型和訓(xùn)練策略的驗證結(jié)果。
在我們的框架中,訓(xùn)練示例是(問題,上下文,回答)三元素。我們第一個基線是指針生成器S2S模型,S2S模型只接受一個輸入序列,因此我們將該模型的上下文和問題連接起來。
在表格2中,驗證指標(biāo)顯示在SQuAD上表現(xiàn)得并不是很好,在WikiSQL上,它相比于之前的S2S基線包含了更高的分數(shù),但是相比于MQAN(+Qptr)和其他基線則更低。
使用self-attentive編碼器和解碼器層擴展S2S模型(w/SAtt),增加了模型集成來自上下文和問題的信息的能力。這讓SQuAD上的表現(xiàn)性能提高了20個nF1,QA-SRL上的表現(xiàn)性能提高4個nF1,WikiSQL上的表現(xiàn)性能提高了12個LFEM。對于WikiSQL,這個模型在沒有使用結(jié)構(gòu)化方法的情況下,幾乎達到了先前的最先進的驗證結(jié)果72.4%。(見表格中紅色箭頭標(biāo)注)
接下來,我們將研究如何將上下文和問題分割為兩個輸入序列,并使用coattentive擴展S2S模型(+CAtt)。SQuAD和QA-SRL上的表現(xiàn)增加了5個nF1。不幸的是,這不能改進其他任務(wù),并且會嚴重影響MNLI和MWSC上的性能。
對于這兩個任務(wù),可以直接從問題中復(fù)制答案。由于兩個S2S基線都將問題連接到上下文,所以指針生成器機制能夠直接從問題中復(fù)制。當(dāng)上下文和問題被分成兩個不同的輸入時,模型就失去了這種能力。
為了解決這個問題,我們在前面的基線上添加了一個問題指針(+QPtr),這提高了MNLI和MWSC在先前基線之上的性能。它還將陣容性能提高到75.5 nF1,這使它成為了在SQuAD數(shù)據(jù)集上訓(xùn)練的最高效的問答模型。
最后一個模型在WikiSQL上達到了一個新的最先進的測試結(jié)果,達到了72.4%的lfEM和80.4%的數(shù)據(jù)庫執(zhí)行精度,超過了之前最先進的71.7%和78%的水平。
在多任務(wù)設(shè)置中,我們看到了類似的結(jié)果,但我們也注意到一些額外的顯著特性。QA-ZRE的性能比最高的單任務(wù)模型提高了11個F1點,這支持了多任務(wù)學(xué)習(xí)可以更好地推廣零樣本學(xué)習(xí)的假設(shè)。
需要大量使用外部詞匯表的任務(wù)的性能從S2S基線下降了50%以上,直到問題指針添加到模型中。除了參與的上下文之外,這個問題指針還使用參與的問題,它允許來自問題的信息直接流到解碼器中。我們假設(shè)更直接地訪問這個問題使模型更容易決定何時生成輸出詞次比復(fù)制更合適。
圖3 對MQAN如何選擇輸出回答詞的分析。當(dāng)p(generation)最高時,MQAN對外部詞匯的權(quán)重最大。當(dāng)p(context)最高時,MQAN將最大的權(quán)重放在上下文上的指針分布上。當(dāng)p(question)最高時,MQAN將最大的權(quán)重放在問題的指針分布上
分 析
多指針生成器和和任務(wù)識別。在每個步驟中,MQAN在三個選項中進行選擇:從詞匯表生成、指向問題和指向上下文。雖然模型沒有接受過對這些決策進行明確監(jiān)督的培訓(xùn),但它學(xué)會了在這三個選項之間進行切換。圖3顯示了最終模型選擇每個選項的頻率。
對于SQuAD、QA-SRL和WikiSQL,模型大部分是從上下文復(fù)制的。這很直觀,因為正確回答來自這些數(shù)據(jù)集的問題所需的所有詞次都包含在上下文中。這個模型通常也會復(fù)制CNN/DM的上下文,因為答案摘要主要是由上下文中的詞匯組成的,而很少有詞匯是在上下文之外產(chǎn)生的。
對于SST、MNLI和MWSC,模型更喜歡問題指針,因為問題包含可接受類的詞次。因為模型學(xué)習(xí)用這種方法來使用問題指針,所以它可以做零樣本分類。對于IWSLT和WOZ,該模型更喜歡從詞匯表中生成,因為德語詞匯和對話狀態(tài)字段很少出現(xiàn)在上下文中。該模型還避免了對QA-ZRE的復(fù)制。
對新任務(wù)的適應(yīng)性。在decaNLP上訓(xùn)練的MQAN學(xué)會了泛化,而不是局限于特定領(lǐng)域,同時也學(xué)習(xí)表示,使學(xué)習(xí)完全新的任務(wù)更容易。對于兩項新任務(wù)(英語對捷克語翻譯和命名實體識別),在decaNLP上完成的一個MQAN訓(xùn)練需要更少的迭代,并且比從隨機初始化(圖4)獲得更好的最終性能(圖4)。
對文本分類的零樣本域適應(yīng)性。因為MNLI包含在decaNLP中,所以它是能夠適應(yīng)相關(guān)的SNLI。在decaNLP上對MQAN進行微調(diào),達到了87%的精確匹配分數(shù),這比目前最好的隨機初始化的訓(xùn)練增加了2個點。更值得注意的是,在沒有對SNLI進行任何微調(diào)的情況下,在decaNLP上接受過訓(xùn)練的MQAN仍然能夠獲得62%的精確匹配分數(shù)。
這些結(jié)果表明,在decaNLP上訓(xùn)練的模型有潛力同時對多個任務(wù)的域外上下文和問題進行模擬推廣,甚至可以適應(yīng)文本分類的不可見類。這種輸入和輸出空間中的零樣本域適應(yīng)表明,decaNLP中的任務(wù)寬度鼓勵了泛化,超出了對單個任務(wù)的訓(xùn)練所能達到的范圍。
圖4. 在decaNLP上預(yù)先訓(xùn)練的MQAN在適應(yīng)新環(huán)境時和學(xué)習(xí)新任務(wù)時優(yōu)于隨機初始化。左:在一個新的語言對上訓(xùn)練,英語-捷克語,右:在一個新任務(wù)-命名實體識別(NER)上訓(xùn)練。
注|來源:大數(shù)據(jù)文摘
以上就是關(guān)于【自然語言十項全能:轉(zhuǎn)化為問答的多任務(wù)學(xué)習(xí)】的解答,如需了解學(xué)校/賽事/課程動態(tài),可至翰林教育官網(wǎng)獲取更多信息。
往期文章閱讀推薦:
準(zhǔn)大一必看!如何利用暑假“搶跑”拿下高GPA?翰林預(yù)學(xué)班全攻略!

? 2026. All Rights Reserved. 滬ICP備2023009024號-1