Salesforce愛因斯坦AI最新NLP研究,通過情境化詞向量從翻譯中學習(附開原始碼)

2021-02-20 人工智慧學家

來源:機器人圈

概要:現如今,自然語言處理(NLP)找到一個很好的實現方法,通過對單個單詞的理解以植入新的神經網絡,但是該領域還沒有找到一種方法可以初始化新網絡,理解這些單詞與其他單詞之間的關係。

導覽:CRM 廠商 Salesforce 在去年成立新單位 Salesforce Research,專門處理關於深度學習、自然語言處理,和計算機視覺辨識技術的研究,協助用在 Salesforce 的產品線上。其人工智慧服務愛因斯坦AI (Einstein AI),將與他們既有的雲端服務結合,提供更好的服務。最近,他們發布了最新的自然語言處理成果,我們一起來看看。

現如今,自然語言處理(NLP)找到一個很好的實現方法,通過對單個單詞的理解以植入新的神經網絡,但是該領域還沒有找到一種方法可以初始化新網絡,理解這些單詞與其他單詞之間的關係。我們的研究打算利用已經學會了如何使文本情境化的網絡,從而使新的神經網絡能夠學習理解自然語言的其他部分。

對於NLP中的大多數問題來說,理解情境至關重要。翻譯模型需要了解英語句子中的單詞是如何協同工作的,從而生成德語翻譯。摘要模型需要通曉上下文,從而知道哪些詞是最重要的。執行情緒分析的模型需要了解如何能夠掌握那些改變他人表達情緒的關鍵詞。問答模型依賴於對一個問題中的詞語如何改變一個文檔中詞語重要性的理解。由於這些模型中的每一個都需要理解情境是如何影響單詞的含義的,因此每個模型都可以通過與已經學習如何情境化單詞的模型相結合來獲益。

一條通往NLP Imagenet-CNN的路徑

在找尋可重複使用的表徵方面,顯然計算機視覺已經比NLP取得了更大的成功。在大圖像分類數據集(ImageNet)上訓練的深度卷積神經網絡(CNN)經常用作其他模型中的組件。為了更好地對圖像進行分類,CNN通過逐漸構建像素是如何與其他像素相關的更為複雜的理解,來學習圖像的表徵。諸如圖像標註、面部識別和目標檢測等模型處理任務都可以從這些表徵開始,而不需要從頭開始。NLP應該能夠做一些和單詞及其語境類似的事情。

我們可以教一個神經網絡如何在情境中理解單詞。首先,教它如何將英語翻譯成德語;然後,我們將以一種方式來展示我們可以重複使用這個網絡,即計算機視覺中在ImageNet上進行訓練的CNN的重用。我們通過將網絡的輸出,即情境向量(context vectors (CoVe))作為學習其他NLP任務的新網絡的輸入來實現。在我們的實驗中,將CoVe提供給這些新網絡總是能夠提高其性能,所以我們很高興發布生成CoVe的已訓練網絡,以便於進一步探索NLP中的可重用表徵。

詞向量

可以說今天的大多數用於NLP的深度學習模式主要是依靠用詞向量來表徵單個單詞的含義。而對於那些不熟悉這個概念的人來說,所有這一切只不過意味著我們將語言中的每個單詞與一個稱為向量的數字列表相關聯在一起。

圖1:在深度學習中,常常將單詞表徵為向量。深度學習模型不是像讀文本般讀取序列單詞,而是讀取單詞向量的序列。

預訓練詞向量

有時,在為特定任務訓練模型之前,常常將詞向量初始化為隨機數列表,但是用諸如word2vec、GloVe或FastText之類的方法來初始化模型的詞向量也是很常見的。這些方法中的每一種都定義了一種學習具有有用屬性的詞向量的方法。前兩種假說認為,至少有一部分單詞的含義與它的用法是相關的。

word2vec通過訓練一個模型來處理一個單詞並預測一個本地情境窗口;模型看到一個單詞,並試圖預測在其周圍的單詞。

 

圖2:像word2vec和GloVe這樣的算法產生的詞向量與在自然語言中經常出現的詞向量是相關的。這樣一來,「(vector)向量」的向量意味著出現在諸如「lists」、「of」以及「numbers」這類單詞周圍的單詞「vector」。

GloVe採取類似的方法,但它還明確地添加了關於每個單詞與其他每個單詞發生頻率的統計信息。在這兩種情況下,每個單詞都由相應的詞向量表示,並且訓練強制詞向量以與自然語言中單詞的使用相關聯的方式相互關聯。

預訓詞向量的突現屬性

如果將這些詞向量視為空間中的點,我們可以從中看到一種令人著迷的緊密關係,從而讓人聯想到單詞之間的語義關係。

圖3:捕獲到的男性—女性單詞對之間的向量差異(Pennington等人在2014提出的觀點)。

圖4:對於關係a-b,c:d表示c +(a-b)產生最接近d的向量(Mikolov等人於2013年提出觀點)。

圖5:捕獲到的比較和最高級關係之間的向量差異(Pennington等人於2014提出的觀點)。

很快就發現,在為目標任務初始化一個模型時,如果用word2vec或GloVe所定義的用於中級任務的預訓練詞向量進行訓練,將會使模型在目標任務上更加具有優勢。因此,由word2vec和GloVe生成的詞向量在NLP的許多任務中找到了廣泛的實驗方法。

隱藏向量

這些預訓練的詞向量表現出有趣的屬性,並提供了對隨機初始化的詞矢量的性能增益。但是正如上面所敘述的那樣,單詞很少獨立出現。使用預訓練詞向量的模型必須學習如何使用它們。我們的工作是通過對中級任務進行訓練,找到一種用於改進詞向量情境化的隨機初始化方法,從而提取詞矢量。

編碼器

情境化詞向量的一種常見方法是使用一個循環神經網絡(RNN)。RNN是一種處理可變長度的向量序列的深度學習模型。這使得它們適合於處理詞向量的序列。我們使用的是一種稱為長短期記憶網絡(LSTM)的特定類型的RNN,從而更好地處理長序列。在處理的每個步驟中,LSTM接收一個詞向量,並輸出一個稱為隱藏向量的新向量。該過程通常被稱為編碼序列,並且將執行編碼的神經網絡稱為編碼器。

圖6:LSTM編碼器接收一個詞矢量序列並輸出一個隱藏向量序列。

雙向編碼器

這些隱藏的向量不包含序列中稍後出現的單詞的信息,但這一點很容易進行補救。我們可以反向運行一個LSTM從而獲得一些反向輸出向量,並且我們可以將它們與正向LSTM的輸出向量相連,以獲得更有用的隱藏向量。我們把這對正向和反向的LSTM當做一個單元,它通常被稱為雙向LSTM。它接收一個詞向量序列,運行正向和反向LSTM,連接對應於相同輸入的輸出,並返回所得到的隱藏向量的結果序列。

 

圖7:雙向編碼器包含每個單詞前後的信息。

我們使用一組兩個雙向LSTM作為編碼器。第一個雙向LSTM處理其整個序列,然後將輸出傳遞給第二個。

機器翻譯中的隱藏向量

正如預訓練的詞向量被證明是許多NLP任務的有效表徵一樣,我們期望預訓練我們的編碼器,以便它能夠輸出通用的隱藏向量。為此,我們選擇機器翻譯作為第一個訓練任務。機器翻譯訓練集要遠大於其他大多數NLP任務的翻譯訓練集,翻譯任務的性質似乎具有一種吸引人的屬性,可用於訓練通用情境編碼器,例如,翻譯似乎比文本分類這樣的任務需要更一般的語言理解能力。

解碼器

在實驗中,我們教編碼器如何如何將英語句子翻譯成德語句子,從而教它生成有用的隱藏向量。編碼器為英語句子生成隱藏向量,另一個稱為解碼器的神經網絡在生成德語句子時將引用這些隱藏向量。

正如LSTM是我們編碼器的主幹一樣,LSTM在解碼器中也扮演著重要的角色。我們使用一個與編碼器一樣具有兩個層的解碼器LSTM。解碼器LSTM從編碼器的最終狀態初始化,讀入一個特殊的德語詞向量作為開始,並生成一個解碼器狀態向量。

 

圖8:解碼器使用單向LSTM從輸入詞向量中創建解碼器狀態。

注意

注意機制回顧隱藏向量,以便決定接下來要翻譯英文句子的哪一部分。它使用狀態向量來確定每個隱藏向量的重要性,然後它生成一個新的向量,我們稱之為情境調整狀態(context-adjusted state)來記錄其觀察結果。

圖9:注意機制使用隱藏狀態和解碼器狀態來生成情境調整狀態。

生成

生成器稍後將查看情境調整狀態以確定要輸出的德語單詞,並且將情境調整狀態傳遞迴解碼器,從而使其對已經翻譯的內容與足夠準確的理解。解碼器重複此過程,直到完成翻譯。這是一種標準的注意編碼—解碼器體系結構,用於學習序列的序列任務,如機器翻譯。

 

圖10:生成器使用情境調整狀態來選擇輸出單詞。

來自預訓練MT-LSTM的情境向量

當訓練完成後,我們可以提取已訓練的LSTM作為機器翻譯的編碼器。我們將這個已預訓練的LSTM稱為MT-LSTM,並使用它來輸出用於新句子的隱藏向量。當使用這些機器翻譯隱藏向量作為另一個NLP模型的輸入時,我們將它們稱為情境向量(CoVe)。

圖11:a)編碼器的訓練b)將其重新用作新模型的一部分

用CoVe進行實驗

我們的實驗探索了使用預訓練的MT-LSTM生成用於文本分類和問答模型的CoVe的優點,但CoVe可以與任何表徵其輸入的模型一起作為向量序列。

分類

我們研究兩種不同類型的文本分類任務。第一種,包括情緒分析和問題分類,具有單一的輸入。第二種僅包括蘊涵分類(entailment classification),有兩個輸入。對於這兩種,我們使用雙集中分類網絡(Biattentive Classification Network)。如果只有一個輸入,我們將其複製,假裝有兩個,讓模型知道避免運行冗餘計算。而且我們不需要了解BCN理解CoVe的細節以及使用它們的好處。

 

圖12:一個雙集中分類網絡。

問答

我們依靠動態關注網絡(Dynamic Coattention Network)進行問答實驗。為了分析MT數據集對模型學習其他任務性能的影響,我們使用一個稍微修改過的DCN,但實驗測試了整個CoVe和CoVe與字符向量的總體有效性,我們使用udpated DCN +。

 表1:我們實驗中數據集和任務的總結。

GloVe+CoVe

對於每個任務,我們用不同的方式來表徵輸入序列。我們可以將每個序列表示為我們訓練的隨機初始化的詞向量序列,我們可以使用GloVe,或者我們可以將GloVe和CoVe一起使用。 在最後一種情況下,我們採用GloVe序列,通過預訓練的MT-LSTM運行它,以獲得CoVe序列,並且我們將CoVe序列中的每個向量與GloVe序列中的相應向量相加。不管是MT-LSTM還是GloVe都不是作為分類或問答模型的一部分進行訓練的。

實驗結果表明,在隨機初始化詞向量和單獨使用GloVe的情況下,包括CoVe以及GloVe在內總是能夠提高其性能。

圖13:通過使用GloVe和添加CoVe來驗證性能是否提高。

更多MT→更好CoVe

改變用於訓練MT-LSTM的數據量表明,用更大的數據集進行訓練會導致更高質量的MT-LSTM,在這種情況下,更高的質量意味著使用它來生成CoVe會在分類和問題應答任務上產生更好的性能。

結果表明,用較少的MT訓練數據訓練的MT-lstms所獲得的增益是不顯著的,在某些情況下,使用這些小MT數據集訓練MT-lstm產量,實際上會損害性能。這可能表明使用CoVe的好處來自於使用不平凡的MT-lstm。這也可能表明,MT訓練集的領域對產生的MT-lstm所提供的任務有影響。

圖14:MT-LSTM的訓練集大小對使用CoVe的模型的驗證性能有明顯的影響。在這裡,MT-Small是2016年WMT多模態數據集,MT-Medium是2016年IWSLT訓練集,MT-Large是2017年WMT新聞追蹤訓練集。

CoVe和字符

在這些實驗中,我們嘗試向GloVe和CoVe添加字符向量。結果表明,在某些任務中,字符向量可以與GloVe和CoVe一起工作,以獲得更高的性能。這表明CoVe添加了與字符和單詞級信息相輔相成的信息。

圖15:CoVe與字符向量中存儲的字符級信息互補。

測試性能

我們所有最好的模型都使用了GloVe、CoVe和字符向量。我們採用了為每個任務實現最高驗證性能的模型,並在測試集上對這些模型進行了測試。上圖顯示,相較於我們在出發點的表現,添加CoVe始終可以提升我們的模型性能,下表顯示,在我們七個任務中的其中三個裡面,在測試集層面,足以推動我們的起始模式向藝術表現的最新狀態發展。

表2:在測試時,測試性能與其他機器學習方法的比較(7/12/17)。

值得注意的是,就像我們使用機器翻譯數據來改進我們的模型一樣,sst-2和IMDb的最先進的模型也在使用監督訓練集之外的數據。對於sst-2來說,頂級模型使用了8200萬未標記的Amazon評論,而IMDb的頂級模型使用了50000個未標記的IMDb評論,此外還有22500個監督訓練樣本。這兩種方法都增加了與目標任務相似的數據,而不是我們使用的機器翻譯數據集。這些模型的優越性可能突出顯示了附加數據的種類與附加數據的有益程度之間的聯繫。

結論

我們展示了如何訓練一個神經網絡,使其能夠學習情境中單詞的表徵,並且我們展示了我們可以使用該網絡的一部分——MT-LSTM,從而幫助網絡學習NLP中的其他任務。在分類和問答模型中,MT-LSTM提供的情境向量或CoVe都無疑推動它們達到更好的性能。我們用於訓練MT-LSTM的數據越多,改進越明顯,這似乎與使用其他形式的預先訓練向量表徵所帶來的改進相輔相成。通過將來自GloVe,CoVe和字符向量的信息相結合,我們能夠在各種NLP任務中提高基準模型的性能。

代碼發布

我們希望通過使用最好的MT-LSTM(我們曾用其為所有最好的模型生成CoVe)可以鼓勵進一步探索NLP中的可重用表示。此代碼包括如何在PyTorch中生成CoVe的示例。

來源:機器人圈

歡迎加入未來科技學院企業家群,共同提升企業科技競爭力

一日千裡的科技進展,層出不窮的新概念,使企業家,投資人和社會大眾面臨巨大的科技發展壓力,前沿科技現狀和未來發展方向是什麼?現代企業家如何應對新科學技術帶來的產業升級挑戰?

歡迎加入未來科技學院企業家群,未來科技學院將通過舉辦企業家與科技專家研討會,未來科技學習班,企業家與科技專家、投資人的聚會交流,企業科技問題專題研究會等多種形式,幫助現代企業通過前沿科技解決產業升級問題、開展新業務拓展,提高科技競爭力。

未來科技學院由人工智慧學家在中國科學院虛擬經濟與數據科學研究中心的支持下建立,成立以來,已經邀請國際和國內著名科學家、科技企業家300多人參與學院建設,並建立覆蓋2萬餘人的專業社群;與近60家投資機構合作,建立了近200名投資人的投資社群。開展前沿科技講座和研討會20多期。  歡迎行業、產業和科技領域的企業家加入未來科技學院

報名加入請掃描下列二維碼,點擊本文左下角「閱讀原文」報名


相關焦點

  • Salesforce AI最新研究,翻譯中的情境化詞向量
    周末來點燒腦的,Salesforce愛因斯坦發布以來究竟做了哪些事情,做了哪些高科技含量的事情,下面我們就來一起看一看Salesforce愛因斯坦在自然語言處理領域的最新研究吧
  • Salesforce 開發了一個處理不同 NLP 任務的通用模型
    在通常情況下,自然語言處理(NLP)針對每種功能(如翻譯、情感分析和問題和答案)都需建一個模型。由Salesforce首席科學家Richard Socher領導的一項研究旨在完成名為自然語言 Decathlon(decaNLP)的挑戰任務。
  • NLP領域最優秀的8個預訓練模型(附開源地址)
    自然語言處理應用能夠快速增長,很大程度上要歸功於通過預訓練模型實現遷移學習的概念。在本文中,我將介紹一些頂級的預訓練模型,你可以用它們來開始你的自然語言處理之旅,並複製該領域的最新研究成果。如今,自然語言處理(Natural Language Processing,NLP)應用已經變得無處不在。
  • 深度學習的NLP工具
    為什麼最新的模型結果這麼難以復現?為什麼去年可以工作的代碼和最新發布的深度學習框架不適配?為什麼一個很直白的基線這麼難以建立?在今天的世界中,這些都是自然語言處理(NLP)的研究員遇到的問題。Github上的開源實現質量參差不齊,並且維護者可以停止維護項目。√GluonNLP處方:復現最新的研究結果。頻繁更新復現代碼,包括訓練腳本,超參數,運行日誌等。
  • 2019已經過去一大半了,努力一把成為NLP專家!
    本文將介紹2019年自然語言處理的一些論文,代碼,博客及研究趨勢等。Fastai:https://course.fast.ai/videos/?lesson它會教你在fastai,語言模型是如何實現的。
  • 這套1600贊的NLP課程已開放,面向實戰,視頻代碼都有丨資源
    一套面向實戰、號稱「代碼優先」的NLP課程來了,名字為A Code-First Introduction to Natural Language Processing,fast.ai出品,全程免費學習。不到半天點讚超過1600,轉發近500。
  • 一文學會最常見的10種NLP處理技術(附資源&代碼)
    自然語言處理(NLP)是一種藝術與科學的結合,旨在從文本數據中提取信息。在它的幫助下,我們從文本中提煉出適用於計算機算法的信息。從自動翻譯、文本分類到情緒分析,自然語言處理成為所有數據科學家的必備技能之一。在這篇文章中,你將學習到最常見的10個NLP任務,以及相關資源和代碼。
  • 深度學習在NLP中的運用?從分詞、詞性到機器翻譯、對話系統
    自然語言是人類知識的抽象濃縮表示,而自然語言理解是人工智慧研究領域中極具挑戰的一個分支。上次,《自然語言處理在 2017 年有哪些值得期待的發展?》中,我們已經講到,2016 年是深度學習大潮衝擊 NLP 的一年,通過去年一年的努力,深度學習在 NLP 領域已經站穩了腳跟。
  • NLP入門+實戰必讀:一文教會你最常見的10種自然語言處理技術(附代碼)
    大數據文摘作品編譯:糖竹子、吳雙、錢天培自然語言處理(NLP)是一種藝術與科學的結合,旨在從文本數據中提取信息。在它的幫助下,我們從文本中提煉出適用於計算機算法的信息。從自動翻譯、文本分類到情緒分析,自然語言處理成為所有數據科學家的必備技能之一。
  • Facebook開源多款AI工具,支持遊戲、翻譯
    翻譯 | 林椿眄編輯 | 阿司匹林出品 | AI科技大本營近日,Facebook 在年度開發者大會 F8 上宣布開源多款 AI 工具,除了 PyTorch、Caffe 等深度學習框架之外,此次開源的還包括 DensePose(可用於人體姿態估計)、Translate(可翻譯 48 種語言)、ELF(可通過遊戲來教機器推理)等諸多 Facebook 內部使用的庫和模型。
  • NLP、KG相關軟體、工具、資源匯總
    fastNLP(https://github.com/fastnlp/fastNLP):復旦大學開源的一個NLP模型訓練框架,基於torch。其內核為基於BERT的聯合模型,其在13個語料庫中進行訓練,可處理中文分詞、詞性標註、依存分析、命名實體識別四項任務。
  • Salesforce DX環境搭建
    最近想從GitHub上下載一些Lightning的代碼觀摩觀摩,發現很多都是sfdx工程,於是學習下這是個什麼東東。
  • 獨家 | 快速掌握spacy在python中進行自然語言處理(附代碼&連結)
    它已經成為Python中最廣泛使用的工業級自然語言庫之一,並且擁有相當大的社區,因此,隨著該領域的快速發展,它為科研進展進展的商業化提供了足夠地支持。我們已經在Domino中配置了默認的軟體環境,以包含本教程所需的所有包、庫、模型和數據。請查看Domino項目以運行代碼。
  • Salesforce Einstein(愛因斯坦)產品介紹,國內有沒有類似的產品
    1 Salesforce Einstein(愛因斯坦)產品介紹Salesforce Einstein(愛因斯坦)是美國大名鼎鼎的軟體公司Salesforce近些年的重點產品,在近年其公司舉辦的年度大會Dreamforce給予了非常大的曝光量,
  • 開源| 哈佛大學NLP組開源神經機器翻譯工具包OpenNMT:已達到生產...
    選自OpenNMT機器之心編譯參與:吳攀神經機器翻譯是近段時間以來推動機器翻譯發展的主要推動力。今天,哈佛大學自然語言處理研究組(Harvard NLP)宣布開源了其研發的神經機器翻譯系統 OpenNMT,該系統使用了 Torch 數學工具包。該研究組在官網上表示該系統已經達到生產可用的水平(industrial-strength)。
  • 2018年最實用機器學習項目Top 6(附開源連結)
    許多高影響力的機器學習應用被開發出來,特別是在醫療保健、金融、語音識別、增強現實以及更複雜的3D和視頻應用中。我們已經看到了更多的應用驅動研究,而不是理論研究。雖然這些研究有著一些不足,但當前的確產生了巨大的積極影響,也促成了很多可以迅速商業化的新研發。這一趨勢也在機器學習的大部分開源項目中得到了強烈反映。讓我們來看看過去一年中前6大最實用的機器學習項目。
  • Salesforce 在JavaScript中使用SOQL
    您可以在VF頁面上的Javascript中或您編寫的任何類型的Javascript中使用SOQL,就像我們可以通過單擊按鈕或記錄的詳細信息頁面上存在的連結將其執行一樣。以下是簡單的示例,您可以使用它並進行相應的修改:JavaScript代碼:{!
  • 如何輕鬆拿下Salesforce CPQ 證書?
    但是,為了使產品出現在quote line編輯器的「產品選擇」頁面中,該產品必須具有與quote有相同的pricebook entry和幣種在pricebook中。當您根據opportunity創建primary quote時,它將繼承opportunity的貨幣。用戶無法通過opportunity的primary quote欄位更改與該opportunity相關的報價的幣種。
  • ...2深度學習環境到神經機器翻譯,上手機器學習這些開源項目必不可少
    另外,雷鋒網 AI 研習社在原文的基礎上補充了部分開源項目,為 AI 開發者提供更加詳細的 AI 項目和資源。機器學習是用數據來學習、概括、預測的研究。近幾年,隨著數據的開發、算法的改進以及硬體計算能力的提升,機器學習技術得以快速發展,不斷延伸至新的領域。
  • Salesforce LWC學習(二十三) Lightning Message Service 淺談
    salesforce默認的訂閱模型的scope範圍是active的,如果我們希望訂閱範圍擴大,需要lwc component頭部引入APPLICATION_SCOPE,這個是在 『lightning/messageService』中。