帶你用深度學習虛擬機器進行文字遷移學習(附程式碼)

THU資料派發表於2018-07-03

轉自:資料派THU ID:DatapiTHU  

本文5302字,建議閱讀10分鐘。

本文講述了現代機器學習的模型,主要由微軟資料科學家Anusua Trivedi和資料科學家經理Wee Hyong Tok共同撰寫。

動機

現代機器學習模型,尤其是深度神經網路,通常可以從遷移學習中顯著受益。在計算機視覺中,在大型影象分類資料集(如ImageNet)上訓練的深卷積神經網路已被證明對初始化其他視覺任務(如物體檢測)模型非常有用(Zeiler和Fergus,2014)。

但是,我們如何文字上應用遷移學習技術?在這篇部落格文章中,我們試圖在研究社群中對現有的文字傳輸學習文獻進行綜合研究。我們探索八種流行的機器閱讀理解(MRC)演算法(圖1)。我們評估和比較了六篇這樣的論文:

BIDAF,DOCQA,ReasoNet,R-NET,SynNet和OpenNMT

我們將模型初始化,對不同的源問題答疑(QA)資料集進行預先訓練,並展示標準遷移學習如何在大型目標語料庫上實現結果。為了建立一個測試語料庫,我們選擇了由Harry Shum和Brad Smith編寫的Future Computed一書。

我們比較了使用這些預訓練的MRC模型為本書建立QA系統的遷移學習方法的效能。對於我們的評估方案,Document-QA模型的效能優於其他遷移學習方法(如BIDAF,ReasoNet和R-NET模型)的效能。您可以在這裡使用Jupyter筆記本測試Document-QA模型場景。

我們使用一些預訓練的MRC模型比較了用於為本書建立QA語料庫的微調學習方法的效能。根據我們的評估方案,OpenNMT模型的效能優於SynNet模型的效能。您可以在這裡使用Jupyter筆記本測試OpenNMT模型場景。

介紹

自然語言處理(NLP)中,域適應一直是語法解析(McClosky等,2010)和命名實體識別(Chiticariu等,2010)等重要課題。隨著詞向量的普及,像word2vec(Mikolov et al。,2013)和GloVe模型(Pennington等,2014)這樣的預先訓練的詞嵌入模型也被廣泛用於自然語言任務。

自然語言處理中,問題回答中是一個長期存在的挑戰,該社群在過去幾年中為這項任務引入了幾個範例和資料集。這些範例在問題和答案的型別以及培訓資料的大小方面各不相同,有幾百到幾百萬不等的例子。

在這篇文章中,我們特別感興趣的是上下文感知QA範例,其中每個問題的答案可以通過參考其伴隨的上下文(即段落或句子列表)來獲得。對於人類來說,閱讀理解是一項基本任務,每天都要進行。早在小學,我們就可以閱讀一篇文章,並回答關於其主要思想和細節的問題。但對於AI來說,完成閱讀理解仍然是一個難以捉摸的目標。因此,構建能夠執行機器閱讀理解的機器是非常有意義的。

機器閱讀理解(MRC)

MRC是關於回答有關給定情境段落的查詢。 MRC需要對上下文和查詢之間的複雜互動進行建模。最近,注意力機制已成功擴充套件到MRC。通常,這些方法使用注意力集中在上下文的一小部分上,並用固定大小的向量對其進行總結,暫時關注時間和/或經常形成單向注意力。這些都已表明,這些MRC模型對於新領域的文字轉移學習和微調來說表現良好

為什麼MRC對企業來說非常重要?

企業內部對聊天機器的使用情況持續增長。研究和行業已經轉向會話式AI方法來推進這種聊天機器人場景,特別是在銀行,保險和電信等複雜使用案例中。對話式人工智慧的一個主要挑戰是需要使用人類的方式理解人類所表達的複雜句子。人的交談從來不是直截了當的 - 它充滿了由多字串單詞,縮寫,片段,發音錯誤和其他一系列問題。

MRC是解決我們今天面臨的對話式AI問題的必備因素。如今,MRC方法能夠精確地回答諸如“什麼原因導致下雨?”等客觀問題。這些方法可以被運用於真實世界,如客戶服務。 MRC可以被用於導航和理解種“給予與獲取”這樣的互動。 MRC在商業領域的一些常見應用包括:

  • 翻譯。

  • 不同領域間的自動問答。

  • 自動回覆電子郵件。

  • 從對話中提取嵌入式資訊,用於有針對性的廣告/促銷活動。

  • 個性化的客戶服務。

  • 根據對話域建立機器人的個性和知識。

這種智慧會話介面是企業與各地的裝置,服務,客戶,供應商和員工互動的最簡單方式。使用MRC方法構建的智慧助理可以每天訓練並繼續學習。業務影響可以包括通過增加自助服務,提高終端使用者體驗/滿意度,更快地提供相關資訊以及提高對內部程式的遵從性來降低成本。

在這篇博文中,我們想要評估不同的MRC方法來解決不同領域的自動問答功能。

MRC遷移學習

最近,一些研究人員已經探索出了各種攻克MRC遷移學習問題的方法。他們的工作對於開發一些可擴充套件解決方案以將MRC擴充套件到更廣泛領域來講,至關重要。

目前,大多數最先進的機器閱讀系統都建立在監督培訓資料的基礎上,通過資料例項進行端對端培訓,不僅包含文章,還包含人工標記的關於文章和相應答案的問題。通過這些例子,基於深度學習的MRC模型學習理解問題並從文章中推斷出答案,其中涉及推理和推理的多個步驟。對於MRC轉移學習,我們有6個模型,如圖1所示。

MRC微調

儘管使用MRC遷移學習有了很大的進展,但直到最近,人們才開始重視一個被忽視很久的關鍵問題- 如何為非常小的領域構建MRC系統?

目前,大多數最先進的機器閱讀系統都建立在監督式培訓資料的基礎上,經過資料示例的端對端培訓,不僅包含文章,還包含有關文章和相應答案的人工標記問題。通過這些例子,基於深度學習的MRC模型學習理解問題並從文章中推斷出答案,其中涉及推理和推理的多個步驟。這種MRC遷移學習對於通用文章非常有效。但是,對於許多利基領域或垂直領域而言,這種監督訓練資料不存在。

例如,如果我們需要建立一個新的機器閱讀系統來幫助醫生找到有關新疾病的有價值資訊,那麼可能有許多檔案可用,但是缺少關於這些文章及其相應答案的手動標記問題。由於需要為每種疾病建立單獨的MRC系統以及迅速增加的文獻量,這一挑戰被放大了。因此,找出如何將MRC系統轉移到小眾領域很重要,在這個領域中沒有手動標記的問題和答案,但有可用的檔案體。

在此之前,已經有人研究過生成合成資料以增加不充分的訓練資料這樣的問題。為了翻譯的目標任務,Sennrich 等人在2016提出用給定的真句生成合成翻譯以改進現有的機器翻譯系統。然而,與機器翻譯不同的是,對於像MRC這樣的任務,我們需要綜合考慮文章的問題和答案。而且,雖然問題是句法流式的自然語言句子,但答案主要是段落中的顯著語義概念,如命名實體,動作或數字。由於答案與問題的語言結構不同,因此將答案和問題視為兩種不同型別的資料可能更合適。 Golub等人2017年提出了一種稱為SynNet的新型模型以解決這一關鍵需求。

Xinya Du等人在2017年使用了開源神經機器翻譯工具包OpenNMT這樣的微調方法。 

帶你用深度學習虛擬機器進行文字遷移學習(附程式碼)圖1

訓練MRC模型

我們使用深度學習虛擬機器(DLVM)作為具有NVIDIA Tesla K80 GPU,CUDA和cuDNN庫的計算環境。 DLVM是資料科學虛擬機器(DSVM)的一種特別配置的變體,可以更直接地使用基於GPU的虛擬機器例項來訓練深度學習模型。它支援Windows 2016和Ubuntu Data Science虛擬機器上。它與DSVM共享相同的核心虛擬機器映像(以及所有豐富的工具集),但在配置上更適用於深度學習。所有實驗均在具有2個GPU的Linux DLVM上執行。我們使用TensorFlow和Keras以及Tensorflow後端來構建模型。我們在DLVM環境中安裝了所有依存項。

先決條件

對於每個模型,請按照GitHub中的Instructions.md來下載程式碼並安裝依存關係。

實驗步驟

在DLVM中設定程式碼後:

  • 執行程式碼來訓練模型。

  • 產生訓練有素的模型。

  • 然後執行評分程式碼來測試訓練模型的準確性。

有關所有程式碼和相關詳細資訊,請參閱我們的GitHub連結。

使用Python Flask API在DLVM上執行訓練的MRC模型

操作化是將模型和程式碼釋出為Web服務以及消費這些服務以產生業務結果的過程。 AI模型可以使用Python Flask API部署到本地DLVM。 要使用DLVM操作AI模型,我們可以在DLVM中使用JupyterHub。 您可以按照每個型號的筆記本中列出的類似步驟進行操作。 DLVM模型部署體系結構圖如圖2所示。

帶你用深度學習虛擬機器進行文字遷移學習(附程式碼)圖2

評估方法

為了比較研究,我們想要在不同的資料集上訓練不同的MRC模型,並在單個大型語料庫上測試它們。為了達到本博文的目的,我們使用六種MRC模型方法 - BIDAF,DOCQA,ReasoNet,R-NET,SynNet和OpenNMT - 使用訓練好的MRC模型為大語料庫建立QA-Bot,然後比較結果。

如前所述,為了建立我們的測試語料庫,我們使用Harry Shum和Brad Smith撰寫的Future Computed一書。我們將本書的PDF轉換為Word格式,並刪除了所有影象和圖表,因此我們的測試語料庫僅包含文字。

BIDAF,DOCQA,R-NET,SynNet和OpenNMT都有開放的GitHub資源可用來複製紙質結果。我們使用這些開放的GitHub連結來訓練模型,並在必要時擴充套件這些程式碼以進行比較研究。對於ReasoNet論文,我們與作者取得聯絡並訪問了他們的私人程式碼以進行評估工作。請參考下面的詳細說明,對我們的測試語料庫上的每個MRC模型進行評估。

  • 第1部分 - 評估雙向注意力流動(BIDAF)模型

  • 第2部分 - 評估文件 - 質量保證模型

  • 第3部分 - 評估ReasoNet模型

  • 第4部分 - 評估R-NET模型

  • 第5部分 - 評估SynNet模型

  • 第6部分 - 評估OpenNMT模型

我們的比較工作總結在下面的表1中

帶你用深度學習虛擬機器進行文字遷移學習(附程式碼)

表1

評估工作中的收穫

在這篇部落格文章中,我們調查了SQUAD和TriviaQA資料集中的四種不同MRC方法的效能。我們比較了使用這些預訓練的MRC模型為Future Computed一書建立問答系統遷移學習方法的效能。請注意,這裡的比較僅限於我們的評估方案。其他文件或場景的結果可能會有所不同。

我們的評估方案顯示,OpenNMT微調方法的效能優於針對領域特定資料集的簡單遷移學習MRC機制。但是,對於通用的大型文章,Document-QA模型優於BIDAF,ReasoNet和R-NET模型。我們將比較下面更詳細的效能。

使用BiDAF模型進行轉移學習的優點和缺點

  • 優點

BiDAF模型易於培訓和測試(感謝AllenAI通過開放的GitHub連結提供所有程式碼)。

  • 缺點

BiDAF模型的使用非常有限。它只適用於一小段。給定一個更大的段落或許多小段落,這個模型通常需要很長時間,並且以可能的跨度作為答案返回,這可能根本沒有任何意義。

GitHub中的資源貢獻:

https://github.com/antriv/Transfer_Learning_Text/tree/master/Transfer_Learning/bi-att-flow

使用Document-QA模型進行轉移學習的優點和缺點

  • 優點

Document-QA模型非常易於培訓和測試(感謝AllenAI通過開放的GitHub連結提供所有程式碼)。與我們之前探討的BiDAF模型相比,Document-QA模型做得更好。給定多個較大的文件,這個模型通常需要很少的時間來產生多個可能的跨度作為答案。

  • 缺點

但是,由於Document-QA沒有給出單個答案,因此演算法可能會將最可能的答案指定為較低的優先順序,這可能根本沒有任何意義。我們假設,如果模型只能看到包含答案的段落,那麼它可能會對啟發式或模式過於自信,這種模型只有在先驗知道存在答案時才有效。例如,在下面的表2中(根據論文進行調整),我們觀察到,即使問題單詞與上下文不匹配,模型也會為與答案類別強烈匹配的跨度分配高信度值。如果有答案,這可能會工作得很好,但在其他情況下可能不會有這麼好的效果。

GitHub中的資源貢獻:

https://github.com/antriv/Transfer_Learning_Text/tree/master/Transfer_Learning/document-qa

帶你用深度學習虛擬機器進行文字遷移學習(附程式碼)

表2

使用ReasoNet模型進行遷移學習的優點和缺點

  • 優點

ReasoNets利用多次輪流有效地利用,然後推理查詢文件和答案之間的關係。通過使用強化學習,ReasoNets可以動態確定究竟是在消化中間結果後繼續理解過程還是終止閱讀。

  • 缺點

很難重現本文的結果。沒有開放程式碼可用於此。 ReasoNet模型的使用非常有限。它只適用於一小段。給定一個更大的段落,這個模型通常需要很長時間,並以可能的跨度作為答案回來,這可能根本沒有任何意義。

GitHub中的資源貢獻,我們為這項工作增加了一些演示程式碼,但沒有公開的GitHub程式碼可用於此。

使用R-NET模型進行轉移學習的優點和缺點

  • 優點

除了在SQUAD上進行培訓外,我們還可以在MS-MARCO上訓練此模型。在MS-MARCO中,每個問題都有幾個相應的段落,所以我們只需按照資料集中給出的順序連線一個問題的所有段落。其次,MS-MARCO的答案不一定是這些段落的次要代表。在這方面,我們選擇評分最高的跨度,參考答案作為訓練中的黃金跨度,並預測最高得分跨度作為預測的答案。 MS-MARCO資料集上的R-NET模型優於其他競爭性基線,如ReasoNet。

  • 缺點

對於資料驅動的方法,標記資料可能成為更好效能的瓶頸。雖然文字很豐富,但找到符合SQUAD風格的問題片段組合並不容易。為了生成更多的資料,R-NET模型作者使用SQuAD資料集訓練了一個序列到序列的問題生成模型,並從英文維基百科生成了大量的偽問題通道組合。但分析表明,生成問題的質量需要改進。 R-NET僅適用於一小段。給定一個更大的段落或許多小段落,這個模型通常需要很長時間,並且以可能的跨度作為答案返回,這可能根本沒有任何意義。

使用SynNet模型進行Finetuning的優點和缺點

  • 優點

在NewsQA資料集上使用SynNet模型非常簡單。它還在NewsQA資料集上生成了很好的問答組合。

  • 缺點

SynNet模型的使用非常有限。很難在自定義段落/文字上執行開啟的現有程式碼。它需要大量的手動資料處理,並且這個開啟的GitHub連結的步驟並不清楚。因此,我們無法在我們的測試書語料庫上對其進行評估。

使用OpenNMT模型進行微調優的優點和缺點

  • 優點

使用OpenNMT模型,我們能夠在沒有任何額外訓練資料的情況下,獲得迄今為止最精確的小眾領域結果,以接近完全監督的MRC系統效能。 OpenNMT分兩個階段工作:

  • 答案綜合:給出一段文字,生成一個答案。

  • 問題綜合:給出一個文字段落和一個答案,產生一個問題。

一旦我們從一個新領域獲得生成的問答組合,我們還可以在這些問答組合上訓練一個Seq2Seq模型,用以從MRC中生成更多像人類一樣的對話式AI方法。

  • 缺點

OpenNMT模型培訓程式碼不可用於開源。它只適用於一小段。給定一個更大的段落或許多小段落,這個模型通常需要很長時間,並且以可能的跨度作為答案返回,這可能根本沒有任何意義。

結論

在這篇博文中,我們展示了我們如何使用DLVM來訓練和比較不同的MRC模型進行遷移學習。我們評估了四種MRC演算法,並通過使用每種模型為語料庫建立問答模型來比較它們的效能。在這篇文章中,我們展示了使用遷移學習選擇相關資料的重要性。這表明,考慮到任務和特定領域的特徵,學習適當的資料選擇措施的效能優於現成的指標。 MRC方法給了AI更多的理解力,但是MRC演算法仍然不能真正理解內容。例如,它不知道“英國搖滾樂隊酷玩樂團”究竟是什麼,只知道它是超級碗相關問題的答案。有許多自然語言處理應用程式需要能夠將知識遷移到新的任務的模型,並通過人類理解來適應新的領域,我們認為這僅僅是文字遷移學習之旅的開始。

Anusua和Wee Hyong

(您可以通過antrua@microsoft.com向Anusua傳送電子郵件,內附與本文相關的問題。)帶你用深度學習虛擬機器進行文字遷移學習(附程式碼)

相關文章