翻译:Towards Lingua Franca Named Entity Recognition with BERT(基于BERT的通用语命名实体识别)
**基于BERT的通用語命名實體識別筆記整理**
- 基于BERT的通用語命名實體識別
- 摘要
- 簡介
- 命名實體識別(NER)
- 現存問題
- 本文主要思想
- 現有研究工作
- 多語言工作
- 多任務學習
- 任務和框架
- 實驗:基線
- 數據和實驗設置
- 比較方法
- 單語言訓練
- 多語言訓練
- Zero-shot 推理
- 實驗結果與分析
- 討論:Zero-shot
- 實驗:部分更新
- 實驗:多任務學習
- 語言ID(LI)
- 完形填空任務(CL)
- 預測完形填空任務(PC)
- 次要任務的組合
- 實驗細節
- 實驗結果
- 單語言zero-shot
- 結論
基于BERT的通用語命名實體識別
本文是關于學習Towards Lingua Franca Named Entity Recognition with BERT1 論文時翻譯和筆記的記錄,便于日后查看。
摘要
信息抽取是自然語言處理中的一項重要任務,它能夠自動抽取數據以填充關系數據庫。從歷史上看,研究和數據是為英文文本生成的,隨后幾年是阿拉伯文、中文、荷蘭文、西班牙文、德文和許多其他語言的數據集。自然趨勢是將每種語言視為不同的數據集,并為每種語言構建優化的模型。
本文研究了一個基于多語言BERT的命名實體識別模型,該模型同時在多種語言上聯合訓練,能夠比只在一種語言上訓練的模型更準確地解碼這些語言。為了改進初始模型,我們研究了多任務學習和部分梯度更新等正則化策略的使用。
除了是一個可以處理多種語言(包括代碼轉換)的單一模型之外,該模型還可以用于對一種新語言進行零觸發預測,即使是那些沒有現成訓練數據的語言。結果表明,該模型不僅在單語模型上具有競爭力,而且在荷蘭語和西班牙語數據集、阿拉伯語和漢語數據集上也取得了最好的結果。此外,它在沒見過的語言上表現相當好,在三種語言上實現了最先進的零觸發。
簡介
命名實體識別(NER)
命名實體識別(NER)是信息抽取和自然語言處理中的一項重要任務。它的主要目標是在非結構化文本中識別對現實世界實體的連續類型引用,如人員、組織、設施和位置。作為識別實體(填充關系數據庫)和事件(其中實體是事件的參數)之間語義關系的先驅,它非常有用。
現存問題
NER的絕大多數研究一次只關注一種語言,用單語數據為每種語言構建和調整不同的模型。這些模型已經從基于規則的模型發展到統計模型,緊密遵循自然語言處理的一般趨勢:從基于Winnow和Transformation的學習,到基于最大熵、SVMs和CRF的模型,投票感知機,到深度神經網絡,以及最近在大量未標記數據上使用預先訓練的模型(ELMo、BERT)。然而,研究的單一語言方面保持不變,除了少數例外,稍后在先前的工作中描述。單語模型將無法跨語言共享資源,需要每種語言的大量人工標注數據。
本文主要思想
假設使用適當的統計模型在不同語言之間共享數據不僅是可能的,而且肯定是有益的,即使在語言不是來自同一語系或使用相同腳本的情況下。在BERT多語言模型的基礎上,證明了:
這種跨語言模型在生產環境中有許多優勢:簡化的部署和維護、易于擴展、相同的內存/CPU/GPU占用空間,當然還有0-shot能力。然而,從標準培訓/評估/模型選擇過程的角度來看,0-shot學習框架存在一些限制,我們試圖通過幾項修改來克服這些限制,從而進一步推動SOTA。特別是,我們檢查了訓練框架的擴展,包括部分梯度更新和合并額外的任務,如完形填空預測和語言預測。
現有研究工作
命名實體識別及其后繼者,提及檢測,在自然語言處理中有著廣闊的歷史——完整的描述超出了本文的范圍。我們將觸及與這里呈現的結果直接相關的深度學習研究。
科洛博特和韋斯頓(2008)是第一個現代的序列分類方法,包括NER,使用卷積神經網絡架構,推進了英語國家的藝術。Lample等人(2016)引入了雙向LSTM (Bi-LSTM)網絡,以提高CoNLL數據集的SotA NER性能,建立了4個模型,每種語言一個。
2018年引入了強語言模型預訓練模型,首先是ELMo,然后是BERT。Peters等人使用大量未標記的英語數據,用字符嵌入的輸入訓練一個3層LSTM網絡,然后將其作為標準的雙LSTM網絡的輸入,在許多任務中獲得最先進的結果。以類似的方式,Devlin等人(2018)在大量未標記文本上訓練了一個基于變壓器的架構,使用完形填空和下一個句子預測目標,然后將句子/段落嵌入到一個線性前饋層,在許多任務中再次超過SotA。
Akbik、Blythe和Vollgraf (2018)通過在字符級別計算 Bi-LSTM序列來擴展ELMo框架,然后將兩個對齊的片段與嵌入的作品一起組合到雙向LSTM層中,并顯示所有的結果和OntoNotes。英語CoNLL’03中的當前SotA是由(Baevski等人,2019)獲得的,他對完形填空任務預訓練了一個雙塔注意力模型,然后應用結果嵌入來獲得GLUE任務的SotA結果,并在英語CoNLL’03數據集上獲得93.5的F1值。
多語言工作
最近有一些關于構建可以同時處理多種語言的模型的研究。
- sil (2015)對英語和西班牙語的聯合提及檢測模型進行了培訓,從而提高了西班牙語數據的性能。
- Akbik、Blythe和V ollgraf (2018)通過在所有CoNLL’02和’ 03語言上訓練Flair,并在他們的系統的github頁面上提供Flair github(2019)的一個模型——這個系統是最接近這里描述的模型,我們將我們的模型與他們的模型進行比較。主要的區別在于,我們的系統可以輕松地在不共享輸入腳本的新語言上運行,正如我們將在實驗部分中展示的那樣。
在相關工作中,Xie等(2018)將英語的單語嵌入對齊到西班牙語、德語和荷蘭語,然后將英語CoNLL數據集翻譯成這些語言,并使用翻譯語言建立自關注的Bi-LSTM-CRF模型,創建0-shot NER系統。皮雷、施林格和加雷特(2019)使用多語言BERT和類似于我們的0-shot基線的技術,在所有四種CoNLL語言中獲得了0-shot的最好的準確率。
多任務學習
多任務學習(Multi-task learning, MTL)已經成功地應用于機器學習的許多應用中很多年了。
- Caruana(1997)對MTL進行了很好的概述,指出:“MTL通過利用相關任務的訓練信號中包含的領域特定信息來改善泛化。”MTL在自然語言處理中也很受歡迎。
- Collobert和Weston(2008)利用MTL有效地共同學習了詞性標注、組塊、命名實體識別、語義角色標注等多種自然語言處理任務,這些任務共享一個單一的網絡。
- 從那時起,就有一些工作將MTL實現為一個硬共享網絡,或軟參數共享,其中每個任務都有自己的模型和自己的參數。然后對模型參數之間的距離進行正則化,以使參數相似。
- BERT模型也使用MTL進行訓練,它們共享一個網絡來同時學習兩個任務,一個是完形填空風格的語言模型,另一個是下一個句子預測模型。
任務和框架
大多數基于神經網絡的NER系統都是從捕捉語言使用的word embedding開始構建的。這通常是通過使用各種技術(如CBoW、skip-gram、ELMo、BERT、RoBERTa、XLNet等)對word embedding進行預訓練來實現的。
建立在多種語言上的挑戰,特別是如果它們有不同的腳本,是能夠訓練這些單詞嵌入,以這樣一種方式,在不同的語言中相似的單詞有相似的表示。Ni、Dinu和Florian(2017)使用了兩種語言(如西班牙語到英語)之間的表示投影,從而能夠在西班牙語數據上使用英語NER tagger,取得了一定的成功,但模型本身并沒有從兩種(或多種)語言的數據中受益。
我們在此假設,通過預訓練,BERT詞塊向量很好地對齊,以便基于BERT的系統能夠成功地訓練多種語言,并能夠對一種新語言的文本進行0-shot推斷。此外,這種方法有一個偉大的特性,即無論它可以對多少種語言進行推理,它都擁有相同的內存/CPU/GPU占用空間。
本研究基于(Devlin et al. 2018) BERT框架,對所有模型使用預先訓練的BERT基礎多語言詞向量。這些詞向量訓練在最大的維基百科(谷歌研究Github 2018)的前100種語言。隨著語言大小的變化,使用指數平滑加權方法對數據進行采樣,以平衡訓練語料庫中的語言表示。這些向量包括一個共有的110萬個單詞,跨越許多非歐洲文字,包括阿拉伯語和漢語。
我們以一種標準的方式來處理NER:一種基于上下文為每個單詞分配一個標簽的序列標簽任務。
- 給定一個句子 {w1,w2,....wn}\{w_1, w_2,....w_n\}{w1?,w2?,....wn?} ,將其輸入BERT模型,得到每個單詞的上下文BERT emdedding {v1,v2,…vn}\{v_1, v_2,…v_n\}{v1?,v2?,…vn?},通過每一層的多個注意力頭捕捉每個單詞的上下文;
- 然后將這些嵌入信息送入線性前饋層獲得標簽 {y1,y2,…yn}\{y_1, y_2,…y_n\}{y1?,y2?,…yn?} 對應于每個詞塊(見圖1)。
- 整個網絡用每一輪進行訓練,從而對NER任務的BERT embedding進行微調。我們使用實體的IOB1編碼(Tjong Kim Sang和Veenstra 1999),因為它在初步結果中表現最好。
圖1:BERT-ML 架構
我們使用BERT的HuggingFace PyTorch實現(HuggingFace github 2019)和BERT 詞段標記器。我們遵循(Devlin et al. 2018)中構建命名實體標記器的方法:為了將NER標記從標簽轉換為單詞片段,我們將標記的標簽分配給它的第一個片段,然后將特殊標記“X”分配給所有其他片段。在訓練和測試期間,不會對“X”標記進行預測。圖1顯示了所提模型的架構和NER注釋風格。
實驗:基線
在這一節中,我們檢查了我們在基本0-shot設置中的方法,在這種設置中,我們使用能直接使用的多語種BERT嵌入,并且只在非目標語言的語言集上進行調整和微調,然后對目標語言進行評估。
數據和實驗設置
我們在兩個數據集上訓練/評估我們的模型,即NER 02/03和OntoNotes 5.0。CoNLL數據集由四種歐洲語言西班牙語、荷蘭語、英語和德語的新聞專線數據組成,并以四種實體類型(PER、LOC、ORG、MISC)進行注釋。
OntoNotes 5.0是一個更具挑戰性的語料庫,包含三種不共享腳本的語言:阿拉伯語、漢語和英語,并包含18種NER類型。
對于大多數實驗,我們使用 5?55^{-5}5?5 的學習率和 32 或 100 的批量,訓練20個epoch。我們在開發中調整超參數,并選擇開發集上F1成績最好的模型。我們在那個模型上報告測試值(訓練數據不包括開發測試)。顯示的所有測試值都是三次運行的平均值。模型是在一臺裝有兩張Nvidia 2080Ti卡的臺式電腦上接受訓練的;訓練時間從0.5到1.5小時不等。
比較方法
單語言訓練
作為基準,我們分別在所有四種通用語言和三種OntoNotes語言上訓練模型2。
多語言訓練
我們訓練了 CoNLL 數據的聯合多語言模型和帶有 OnNotes 數據的多語言模型。為了進行多語言訓練,我們隨機混合所有語言的句子,并在每一輪對它們進行訓練。兩者都是基于相同的架構的單語和多語模型,唯一的區別是用于訓練模型的數據。
Zero-shot 推理
為了測試訓練后的模型執行Zero-shot推斷的能力,我們以循環的方式在三種CoNLL語言上進行訓練,在第四種語言上進行測試,同樣在兩種OntoNotes語言上進行訓練,在第三種語言上進行測試。
實驗結果與分析
單語和多語實驗的結果如表1(CoNLL)所示,如表2(Ontonotes)所示。
表1:單語言和多語言在 CoNLL ’ 02, CoNLL ’ 03上的F1值。Flair-ML是在(Akbik, Blythe, and V ollgraf 2018)中描述的系統,多語言培訓,可從(Github 2019)獲得。
表2:OntoNotes上的單語、多語言和0-shot語言的F1值。WordPiece fertility是給定語言中每個標記的BERT單詞的平均數量。
對于CoNLL和OntoNotes來說,在所有語言上訓練的模型(BERT-ML)在所有情況下都比在一種語言上訓練的模型(BERT-SL)表現更好,表明BERT-ML模型能夠受益于來自所有語言的信息來改進每種語言,驗證了我們的前兩個假設:我們可以有效地建立一個多語言模型,并且它比單個模型表現更好。相對于其他已發表的結果,Bert-ML CoNLL模型獲得西班牙語和荷蘭語的SotA(最棒)結果,德語排名第二,Bert-ML OntoNotes模型獲得中文和阿拉伯語的SotA結果,英語排名第三。此外,請注意,BERT-ML模型的性能優于Flair-ML模型(除了英語),盡管前者的大小/架構與每種語言相同3 4。
為了驗證第三個假設,表3顯示了 0-shot 實驗的結果。BERT-ML系統在西班牙語、德語、荷蘭語和漢語(OntoNotes)上獲得了良好的結果,而沒有看到該語言的任何訓練數據。對于所有語言來說,其表現與參加原始比賽的頂級系統的結果非常接近,荷蘭語比獲勝系統高2F。表中還顯示了(前一個)在CoNLL上的-shot跨語言NER的SotA結果。僅用英語訓練的BERT-SL模型在各個方面都有很好的表現。
表3:在CoNLL語言上訓練的模型的0-shot 的F1值。BERT?MLk\small{BERT-ML^k}BERT?MLk是在k語言上訓練的BERT-ML系統。(Pires,Schlinger和Garrette 2019)的數字來自他們表1中的英語行。有關CL、CL+LI、LI、PC、PC+LI系統的詳細信息,請參見各自章節;在這種設置中,英文數字不是 0-shot 的。
對于OntoNotes,表2中所有語言中,阿拉伯語在 0-shot 場景中表現不佳——只有12.6F。在BERT分詞器中查看單詞詞典,我們發現阿拉伯語沒有得到很好的表示。正如我們在最后一行所示,一個阿拉伯符號平均被分割成7.42個單詞塊,而所有其他語言的范圍都在1.8-2.5之間。由于標記的延長,這會產生破壞性的影響,導致阿拉伯語的行為明顯比其他語言的行為更糟糕。盡管如此,當一起訓練時,該模型仍然能夠整合來自英語和漢語的信息,并且比僅使用阿拉伯語的模型提高了1.2F。
討論:Zero-shot
表3中關于BERT-ML 0-shot的結果給人留下了深刻的印象,尤其是考慮到沒有使用相應目標語言的標注數據。然而,當我們檢查這些模型在各個訓練時期的發展數據集上的表現時,一個奇特的畫面出現了(圖2)。
圖2:0-shot BERT多語言版本在CoNLL開發中的性能,平均運行5次。
考慮到在使用荷蘭語、德語和西班牙語標記的數據訓練模型時目標語言是英語的情況,我們在每輪之后對英語發展集進行評估。平均五次運行的總得分,我們清楚地看到隨著訓練的進行,總得分呈下降趨勢。這超出了大多數帶標簽數據的統計學習問題的正常范圍,在這些問題中,我們預計隨著學習的進展,F值會逐漸增加,然后可能會出現一個平穩期,而不是圖中所示的持續下降軌跡。
這可能發生的原因之一源于我們最初的假設,即多語言BERT嵌入是良好對齊的。但這可能只是在開始微調伯特模型之前的情況。在對標記數據進行微調時,相對于目標語言的過度訓練比在標準設置中發生得快得多。這是有道理的,因為我們實際上并沒有對目標語言進行任何訓練,因此我們假設有標簽的語言的學習目標與我們心中的目標(即在目標語言上做好NER)是分離的。
為了克服F值軌跡中的這種狀況,我們提出了兩種訓練增強:
- 第一是將學習限制在BERT變換器架構的子集,即在學習期間凍結變換器的1個或多個較低層,使得在這些較低層上不發生反向傳播和更新。
- 第二種是以無監督的方式結合目標語言,以實現目標語言的遷移學習,同時優化我們有標記數據的語言的模型。
實驗:部分更新
為了克服如圖2所示的F值的病理軌跡,我們建議在學習時凍結BERT變壓器架構的低層,這樣在訓練時就不會更新它們。我們認為這是模型正則化的一種形式,我們推測這在 0-shot 設置中特別有用,目標是在某些語言上訓練一個NER模型,并將其應用到該模型沒有訓練過的其他語言。在多語言完形填空任務/結果句預測訓練中,BERT的基本表示形式部分相同,同時部分適用于NER任務。
我們可以看到這個猜想在圖3中得到證實。表4給出了 CoNLL dev實際的數值結果,表5給出了 CoNLL test實際的數值結果。
圖3:Zero-shot BERT在CoNLL dev上的多種語言的效果圖,包括語言、輪次和凍結層的數量。只有奇數的冰凍層。平均5次運行。
表4:CONLL dev數據的多語言0-shot。#frz對應于訓練期間凍結層數。-1是沒有東西被凍結的地方,是標準設置。0是僅凍結嵌入的位置。1是嵌入,第一層是凍結,以此類推。12是所有bert層被凍結的地方,只有輸出層被調諧。
表5:基于CONLL test數據的多語言0-shot BERT。#frz對應于訓練期間凍結層數。-1是沒有東西被凍結的地方,是標準設置。0是僅凍結嵌入的位置。1是嵌入,第一層是凍結,以此類推。12是所有bert層被凍結的地方,只有輸出層被調諧。
在訓練期間,我們凍結?1,0,1,…, 12層。凍結-1層與基線多語言0-shot學習設置相同,在該部分中沒有凍結任何內容,所有內容都按照中更新(Devlin et al. 2018)。凍結0層意味著只有BERT emdedding層被凍結,實際的BERT層沒有被凍結。凍結1…12層意味著embedding層以及最低的1…12層在訓練期間被凍結并且不更新。多語言伯特嵌入使用一個12層變壓器。因此,當我們凍結最低層,比如3層時,只有從第四層開始的后續層根據更新方案進行更新(Devlin et al. 2018)。
在圖3中,我們只顯示了奇數冰凍層(?1,1,….11)的 f-score 圖,以減少雜波。聚焦在對應于基本 0-shot 設置的藍色實線上,病理行為在德語(deu)設置中最清晰可見。然而,當1,3,… 11層被凍結,f值的圖穩定下來,不再隨著學習的進展而減少。最穩定的軌跡出現在凍結11層時,但相對于凍結更少的層時表現不佳。
表4和表5在凍結層時選擇并顯示一些更有趣的結果,而不是顯示所有可能的結果。在驗證和測試過程中,我們都發現使用德語、英語和荷蘭語凍結某些層的效果最好。在這個意義上,西班牙語是不正常的,因為沒有凍結的效果比沒有凍結的效果好(例如1)。此外,西班牙語測試的分數比西班牙語驗證的分數要高,這是非常不尋常的,因為大多數模型的驗證驗證分數通常都比堅持測試分數高。
在驗證中,德語在凍結5層時表現最好,英語7層,荷蘭語5層。在測試中,德語在凍結3層時表現最好,英語7層,荷蘭語3層。
表中給出的#frz 11和12表明在0-shot設置中,有太少的層調整是不利的。凍結12層類似于(Devlin et al. 2018)中的“基于特征的方法”,其中只有輸出層針對CoNLL 英語任務進行了調整。那樣,作者能夠在沒有任何微調的情況下在開發集上達到91的 F值。盡管如此,英語成績達到63.43 f(表4,當輸出層僅針對非英語語言進行調整時)仍然是值得注意的。這有力地支持了我們的假設,即多語言的BERT是良好對齊的,并且似乎在一個共享空間中為100+語言生成了一個共同的表示。
實驗:多任務學習
另一種可能的解決方案是克服如圖2所示的總體F值下降的情況,將0-shot學習作為一個多任務學習問題。在0-shot假設下,我們沒有目標語言中的任何標記數據。然而,我們有目標語言中未標記的原始數據,而且我們也知道數據來自哪種語言,這是合理的假設。這允許我們使用:
因此,在NER問題之上,我們提出了三個額外的任務。設 (xil,yil),i∈{1?nl}(x^l_i, y^l_i), i∈\{1\cdots n^l\}(xil?,yil?),i∈{1?nl} 是語言 l∈{1?L}l∈\{1\cdots L\}l∈{1?L} 表示有訓練數據的L語言。設 xiu,i∈{1?nu}x^u_i, i∈\{1\cdots n^u\}xiu?,i∈{1?nu} 是語言u∈1?Uu∈{1\cdots U}u∈1?U表示我們沒有標記數據的U語言。
基線0-shot學習問題的培訓目標如下:
其中 LLL 為要最小化的總損失,DLD_LDL? 為標記的訓練數據,NNN 為訓練實例總數,?\ell?為標準交叉熵損失,hθh^θhθ為BERT編碼的softmax輸出和前饋層及其相關參數θθθ。
語言ID(LI)
在語言ID (LI)多任務學習設置中,我們增加了一個輔助目標來識別未標記數據的語言。目標語言數據僅在語言識別任務中使用。我們在BERT[’ CLS ']中使用專用的初始分類標記作為語言標識層的位置。我們使用交叉熵損失作為語言標識。我們將這個損失與基線序列預測損失相加。
其中DUD_UDU?是未標記數據的集合,NUN_UNU?是未標記實例的總數,hliθh^θ_{li}hliθ?是BERT嵌入的輸出和句子分類的前饋層以及相關參數θθθ。因此,要最小化的損失函數變成
完形填空任務(CL)
第二個變體是完形填空任務(CL)多任務學習目標,其中我們添加了一個語言建模的次要目標,以預測目標語言句子中的屏蔽輸入詞塊,就像最初的BERT訓練目標中使用的那樣(Devlin et al. 2018)。目標語言數據有一個任意屏蔽的輸入單詞子集,目標是預測這些屏蔽的單詞。我們在完形填空中使用交叉熵損失。我們將此損失與基線序列預測損失相加。
其中,hclθh^θ_{cl}hclθ?是BERT embedding的輸出,以及用于詞塊預測的前饋層和相關參數θθθ。mpm_pmp?是掩蔽概率為 ppp 的隨機掩蔽函數,m?\overset{?}{m}m?是相關的輸出選擇函數,它選擇已經被損失函數掩蔽的原始字塊。要最小化的損失函數變成
預測完形填空任務(PC)
最后一種變體是我們所說的預測性完形填空任務,在這種任務中,我們添加了一個次要目標,對目標語言數據進行非軌道完形填空任務。請注意,具有原始參數集的NER模型 hθh^θhθ 可以在訓練期間的任何時刻切換到解碼輸入標簽。在訓練過程中,我們使用訓練好的序列標簽器的輸出來解碼目標語言數據。我們屏蔽對應于預測實體跨度的輸入單詞塊,目標是預測這些屏蔽的標記。我們將交叉熵損失用于預測性完形填空任務。我們將這個損失與基線序列預測損失相加。
其中DUD_UDU?為未標記數據集,NUN_UNU? 為未標記實例總數,hpcθh^θ_{pc}hpcθ?為 BERT embedding 的輸出,以及一個用于詞塊預測的前饋層和相關參數 θθθ。mmm 是掩蔽函數,其將未標記的文本xiux^u_ixiu?和 NER 解碼器hθ(xiu)h^θ(x^u_i)hθ(xiu?)的輸出作為輸入,以在 xiux^u_ixiu? 上生成掩蔽的輸入序列,m?\overset?mm?是相關的輸出選擇函數,其選擇已經被 mmm 掩蔽的原始單詞塊作為損失函數。
次要任務的組合
除了上面列出的任務,我們還考慮了將語言識別任務與完形填空任務或預測完形填空任務相結合的設置。通過增加挑戰的任務數量,從而增加間接正則化,我們檢查這些是否比 0-shot 設置進一步提高了性能。
實驗細節
在實際實驗中,使用了小批量更新,而不是上面公式中暗示的批量更新。由于完形填空語言建模任務帶來了更高的內存要求,我們將輸入序列的最大序列長度減少到64。然而,我們不是截斷句子并丟棄剩余部分,而是將長輸入序列分割成更小的重疊序列(重疊大小為8),這樣就不會丟棄任何訓練數據。我們使用掩蔽概率 p=0.15p = 0.15p=0.15,就像在最初的 BERT 論文中一樣,用于 CL 任務。
所有實驗結果都是用5種不同的種子5次運行的平均值。就解碼測試數據的模型選擇而言,為每個目標語言設置和種子選擇了在相應開發數據上具有最佳總體F值的模型。
實驗結果
我們在表6中給出了上述次要任務的CoNLL測試數據的結果。這里,#frz列中的-1值表示在訓練期間沒有層被凍結,相當于標準設置。至少對于荷蘭語和英語來說,我們認為CL、CL+LI、LI、PC幫助是次要任務,并且比ML(-1)基線有所提高。但是,沒有對西班牙語有幫助的次要任務。而且只有LI任務對德語有幫助。
表6:ML、LI、CL、CL+LI及不同凍層對照結果。少于8層的冷凍層可能會達到更好的數量。根據表5,最好的結果似乎出現在3個凍結層附近,但根據之前未討論的實驗,選擇了8個凍結層,使用英語不區分大小寫的多語言BERT。
接下來,我們檢查當8層被凍結并且圖片被混合時。對于英語來說,它對ML、LI、PC有幫助,但在其他情況下似乎也不會造成傷害。對于西班牙語來說,凍結8層總是效果不好。對于德語和荷蘭語,沒有直截了當的結論。
單語言zero-shot
我們還研究了訓練單一語言的組合,即CoNLL英語,然后假設表7中沒有荷蘭語、德語和西班牙語的標記數據。
結果如表6所示。ML設置對應于標準的0-shot設置,但標記的訓練數據僅來自一種語言。在這里,當3個層面被凍結時,會獲得最佳分數。
因為除了LI之外,我們沒有 # frz = -1時次要任務的結果,所以很難說它們之間有什么比較。但是,可以找到-1 #frz層ML基線被擊敗的設置,例如荷蘭語的6 #frz層PC設置,或西班牙語的8 #frz層LI設置,或德語的6 #frz層CL+LI設置。
表7:在使用多種語言的測試中,用英語進行的單一語言0-shot
結論
在本文中,我們提出了一個簡單而有效的方法來建立多語言NER系統的BERT。通過利用多語言BERT框架,我們不僅能夠訓練一個可以對英語、德語、西班牙語和荷蘭語進行推理的系統,而且它的性能優于一次只對一種語言進行訓練的相同模型,并且還能夠執行0-shot推理。由此產生的模型在西班牙語和荷蘭語數據集上以及在中文和阿拉伯語數據集上產生SotA結果。此外,英語訓練模型對西班牙語、荷蘭語和德語的0-shot語言產生SotA結果,將其提高了2.4F至17.8F的范圍。最后,模型的運行時特征(內存/CPU/GPU)與建立在單一語言上的模型相同,大大簡化了其生命周期維護。
我們已經表明,預處理的多語言BERT嵌入可以以無監督的方式有效地使用,同時利用目標語言之外的注釋數據。此外,通過部分梯度更新或使用完形填空任務和其他無監督的聯合任務來獲得進一步的改進,很容易擴展這種方法。
原論文鏈接 ??
僅發布了用于多語言嵌入的基本模型;期望一個大模型產生更好的結果是不合理的。 ??
Flair-ML模型隨著每一種添加的語言線性增長,因為需要該語言的詞向量。 ??
我們意識到英語水平低于報告(Devlin et al. 2018)。盡管我們盡了最大的努力,我們還是無法復制這種性能,甚至在社區中也找不到其他成功復制92.4/92.8數字的報道,然而有許多其他不成功的嘗試報道,這讓我們覺得系統的某些部分沒有被完全描述。 ??
總結
以上是生活随笔為你收集整理的翻译:Towards Lingua Franca Named Entity Recognition with BERT(基于BERT的通用语命名实体识别)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常见的操作系统与发展历史简介
- 下一篇: CSS之盒子边框