當前位置:
首頁 > 知識 > 帶你用深度學習虛擬機進行文本遷移學習

帶你用深度學習虛擬機進行文本遷移學習

作者:Anusua Trivedi、Wee Hyong Tok

翻譯:付宇帥

校對:盧苗苗

本文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

原文標題:

Transfer Learning for Text using Deep Learning Virtual Machine (DLVM)

https://blogs.technet.microsoft.com/machinelearning/2018/04/25/transfer-learning-for-text-using-deep-learning-virtual-machine-dlvm/

譯者簡介

付宇帥,澳大利亞聯邦CSIRO Machine Learning Engineer。Dedicate in creating reliable and safe lifestyle via technology。

轉載須知

如需轉載,請在開篇顯著位置註明作者和出處(轉自:數據派ID:datapi),並在文章結尾放置數據派醒目二維碼。有原創標識文章,請發送【文章名稱-待授權公眾號名稱及ID】至聯繫郵箱,申請白名單授權並按要求編輯。

發布後請將鏈接反饋至聯繫郵箱(見下方)。未經許可的轉載以及改編者,我們將依法追究其法律責任。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 數據派THU 的精彩文章:

數據科學的積累:海平面下的冰山
深度學習模型復現難?看看這篇句子對模型的復現論文

TAG:數據派THU |