在很多人眼里,Salesforce也許是個陌生的名字,但它實際上是可以比肩微軟和甲骨文的科技巨頭。和眾多專注個體消費者服務的公司不同,Salesforce的主營業務是CRM系統,這也是它當年迫于股東壓力放棄收購Twitter的一大因素。近年來,眼看競爭對手依靠AI技術取得巨大成功,坐擁大量優質數據、成立了人工智能平臺Einstein的Salesforce自然也不甘落后。今天,論智帶來的是Einstein研究所的新成果:一個十項全能的NLP深度學習模型。
對于機器翻譯、文本摘要、Q&A、文本分類等自然語言處理任務來說,深度學習的出現一遍遍刷新了state-of-the-art的模型性能記錄,給研究帶來諸多驚喜。但這些任務一般都有各自的度量基準,性能也只在一組標準數據集上測試,這就導致一個問題:即便這些模型在單個NLP任務中表現良好,但它們的基準設計和架構發展并不一定會對NLP全能模型的發展帶去積極影響。
為了探索這些模型的更多可能性,以及優化它們的權重,我們引入decaNLP:自然語言十項全能多任務挑戰(同樣是個大型數據集)。這個挑戰包含十項任務:Q&A、機器翻譯、摘要、自然語言推斷、情感分析、語義角色標注、關系抽取、任務驅動多輪對話、數據庫查詢生成器和代詞消解。它的目標是找到可以高質量完成以上10種任務的模型,并探究這些模型與針對特定任務單獨訓練的模型之間的不同。
為了方便比較,decaNLP使用了一個名為decaScore的基準。
通過把這十項任務統一轉化成問答模式,這就成了一個大型Q&A模型
針對這項挑戰,我們的具體做法是把這十項任務都轉換為問題和答案,并提出一個新的多任務問答網絡(MQAN),它可以在無需任何特定任務模塊、參數的情況下同時學習這十項任務。經過實驗,MQAN得到了一些有趣發現:機器翻譯和命名實體識別模型間可以進行遷移學習、情感分析和自然語言推斷有相似的域……
通過比較基準,我們發現MQAN的多指針編碼器-解碼器結構是它成功的一大關鍵,而且相反的訓練策略可以進一步提高網絡性能。盡管MQAN的定位是NLP全能模型,但它在單一任務中的表現也可圈可點。總而言之,它在WikiSQL語義解析任務中取得了state-of-the-art的成果,在SQuAD上得分最高,在其他任務中也表現出眾。
任務及數據集
問題、文本、答案:十項NLP任務
首先我們來看看任務和相關數據集,這塊內容在論文中有更詳細的介紹,包括每個任務的歷史背景和近期進展情況,這里我們不再贅述。上圖是每個任務輸入輸出對的一些樣本。
Q&A
問答模型的輸入由問題和上下文兩部分組成,其中包含輸出答案所需的信息。對于這個任務,我們使用的是斯坦福問答數據集(SQUAD),上下文截取自英語維基百科的段落,而答案則是從上下文中復制的單詞序列。
機器翻譯
機器翻譯的輸入是源語言文本,輸出是翻譯好的目標語言。我們在這里把2016年國際口語機器翻譯評測比賽(IWSLT)中的英譯德數據作為訓練集,并把2013年、2014年比賽的數據作為驗證集和測試集。輸入樣本來自轉錄的TED演講,因為它涵蓋了大多數自然語言會話主題。雖然對機器學習來說這個數據集有點小,但它的大小上和其他任務的數據集基本一致。
decaNLP沒有對額外數據的限制,所以如果你愿意,你還可以引入更多數據,比如WMT的會議翻譯數據。
摘要
這類任務要求輸入文本后,模型能輸出該文本的摘要。近幾年來不少研究人員把CNN(美國有線電視新聞網)和《每日郵報》語料庫匯總成數據集,并在這個基礎上取得了不少重大進展。我們也為decaNLP挑戰引入了這個數據集的非匿名版本。
自然語言推斷
自然語言推斷(NLI)模型接收兩個輸入句子:一個前提和一個假設。模型需要推斷前提和假設之間的關系,并把它歸類為矛盾、中性、支持三者之一。我們用的是斯坦福大學的Multi-Genre NLI Corpus(MNLI)數據集,它是SNLI的升級版,提供多領域(語音轉錄、流行小說、政府報告)訓練樣本。
情感分析
情感分析的任務是輸入文本后,輸出文本所表達的情緒。斯坦福大學的情緒樹庫(SST)是一個包含電影評論及其相應情緒(正面、中性、負面)的數據集,非常適合這類任務。我們使用的是它的二進制版本,以便decaNLP模型可以解析其中的依賴關系。
語義角色標注
語義角色標注(SRL),即輸入句子和謂語(通常是動詞),輸出語義角色間的關系:何時何地,“誰”對“誰”做了什么。我們把一個SRL數據集處理成問答形式,制作了一個新數據集:QA-SRL,它的內容涵蓋新聞和維基百科。
關系抽取
關系抽取的目的是從輸入文本中提取屬于目標種類的實體關系。在這種情況下,模型需要先識別實體間的語義關系,再判斷是不是屬于目標種類。和SRL一樣,我們也為這項任務制作了一個新數據集:QA-ZRE。它把實體關系映射到一系列問題,所以抽取過程就也成了問答形式。
任務驅動多輪對話
在人機對話系統中,任務驅動多輪對話的一個關鍵是對話狀態跟蹤,也就是根據用戶發言和機器人的反應確定用戶的明確目的,比如訂餐、訂票、購買商品等,它也可以追蹤交流過程中用戶提出的請求類型。對于這項任務,我們用的是英文版的WoZ訂餐任務,它包含訂餐食物實體、日期、時間、地址以及其他信息。
語義分析
從本質上說,把自然語言翻譯成SQL再到數據庫查詢語句這個過程和語義分析密切相關。去年,我們曾在論文Seq2SQL中介紹過一種可以跳過SQL的方法,允許自然語言與數據庫直接進行交互。所以這里用的還是當時的數據集WikiSQL。
代詞消解
這個任務面向的是不圖靈測試,而是威諾格拉德模式挑戰,其中最典型的一個例題是:市議會拒絕給示威者頒發許可,因為他們[擔心/宣揚]暴力。這里“擔心”的主語是“市議會”,那么“宣揚”的主語是誰?我們從這個例子開始訓練,確保最終答案來自上下文,但它的得分又不會被上下文的措辭所影響。
模型得分:decaScore
多任務問答網絡(MQAN)
MQAN是一個多任務問答模型,只用一個深度學習神經網絡就能解決decaNLP挑戰的十項任務。它沒有任何針對特定任務的參數和模塊,如上圖所示,輸入問題和上下文文本后,模型用BiLSTM對輸入進行編碼,又用dual coattention分別調整兩個序列的表征,之后用另外兩個BiLSTM壓縮所有信息,以便它們能被用于高層計算。后面添加的自我注意力模塊能有效收集長期記憶,這些信息再被饋送進最后兩個BiLSTM,得到問題和上下文的最終表征。
因為decaNLP是一個十項全能挑戰,所以如果每項任務的評分基準是百分制,那它就應該是千分制——加法可以有效避免對不同任務的評分偏見。對于Q&A、自然語言推斷、情感分析和語義角色標注,它們的評分基準是歸一化的F1(nF1);摘要任務計算的是ROUGE-1、ROUGE-2和ROUGE-L得分的平均值;機器翻譯用的是BLEU評分;任務驅動多輪對話用的是任務跟蹤得分和請求跟蹤得分的平均值……
除了MQAN,我們還嘗試了其他結構的模型并計算了它們的decaScores,下面是具體評分情況:
各模型評分結果
第一個S2S是一個包含注意力機制和指針生成器的序列到序列網絡;第二個w/SAtt是S2S的衍生,它在編碼器的BiLSTM和解碼器的LSTM層之間加入了一層自我注意力模塊(Transformer);+CAtt把上下文和問題分解成兩個序列,并在編碼器上添加了額外的層;MQAN事實上就是帶額外問題指針的+CAtt,它在表格中被表示為+QPtr。
上表數據顯示了模型在多任務和單任務之間的權衡:通過在S2S中加入額外的注意力模塊,模型能更有效地從問題+上下文的單一序列中提取有效信息,從而極大地提高了它在SQUAD和WikiSQL上的性能;通過在前者基礎上把上下文和問題作為單獨的輸入序列,模型在大多數任務上的表現更好了,但它在MNLI和MWSC兩個數據集上卻性能暴跌,這不難理解,自然語言推斷和代詞消解需要結合上下文和問題,它們一旦分離,模型就失效了;針對這個問題,+QPtr引入了一個額外指針,可以發現,這時模型在MNLI和MWSC上的性能比S2S更優。
學習新任務時,MQAN預訓練/直接訓練的差距
-
深度學習
+關注
關注
73文章
5492瀏覽量
120975 -
nlp
+關注
關注
1文章
487瀏覽量
22011
原文標題:decaNLP:一個深度學習模型能完成幾項NLP任務?
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論