生物醫學語言表示模型BioBERT論文解析!
1.摘要
隨著生物醫學文獻數量的快速增長,生物醫學文本挖掘變得越來越重要。隨著自然語言處理(NLP)的進步,從生物醫學文獻中提取有價值的資訊已在研究人員中普及,深度學習促進了有效的生物醫學文本挖掘模型的發展。但是,由於單詞分布從一般領域的語料庫轉移到生物醫學的語料庫,直接將NLP的進步應用到生物醫學的文本挖掘中通常會產生不令人滿意的結果。在本文中,我們研究了最近引入的預訓練語言模型BERT如何適用於生物醫學語料庫。
我們介紹了BioBERT(用於生物醫學文本挖掘的雙向編碼器表示Transformers),這是一種在大型生物醫學語料庫上預先訓練的領域特定語言表示模型。通過在任務上幾乎相同的體系結構,在經過生物醫學語料庫的預訓練之後,BioBERT在許多生物醫學文本挖掘任務中都大大優於BERT和以前的最新模型。儘管BERT的性能可與以前的最新模型相媲美,但在以下三個代表性的生物醫學文本挖掘任務上,BioBERT的性能明顯優於它們:生物醫學命名實體識別(F1分數提高0.62%),生物醫學關係提取(2.80%) F1分數提高)和生物醫學問答(MRR提高12.24%)。我們的分析結果表明,對生物醫學語料庫進行BERT的預培訓有助於其理解複雜的生物醫學文獻。
2.介紹
生物醫學文獻的數量繼續迅速增加。平均而言,每天在同行評審的期刊上發表3000多篇新文章,不包括各種檔案中的預覽版和技術報告,例如臨床試驗報告。截至2019年1月,僅PubMed就有2900萬篇文章。包含有關新發現和新見解的寶貴資訊的報告不斷地被添加到本已大量的文獻中。因此,越來越需要用於從文獻中提取資訊的準確的生物醫學文本挖掘工具。
自然語言處理(NLP)中使用的深度學習技術的進步,使生物醫學文本挖掘模型的最新進展成為可能。例如,在過去幾年中,長短期記憶(LSTM)和條件隨機場(CRF)在生物醫學命名實體識別(NER)方面的性能有了很大提高(Giorgi和Bader,2018 ; Habibi 等人,2017 ; Wang 等人,2018 ; Yoon 等人,2019)。其他基於深度學習的模型也改善了生物醫學文本挖掘任務,例如關係提取(RE)(Bhasuran和Natarajan,2018年 ; Lim和Kang,2018年))和問答(QA)(Wiese 等人,2017年)。
但是,將最新的NLP方法直接應用於生物醫學文本挖掘具有局限性。首先,隨著最近的單詞表示模型(例如Word2Vec(Mikolov 等,2013),ELMo(Peters 等,2018)和BERT(Devlin 等,2019)都在包含通用領域文本的數據集上進行訓練和測試(例如Wikipedia),很難估計它們在包含生物醫學文本的數據集上的表現。同樣,普通語料庫和生物醫學語料庫的單詞分布也有很大不同,這對於生物醫學文本挖掘模型通常可能是一個問題。結果,生物醫學文本挖掘中的最新模型很大程度上依賴於單詞表示形式的改編版本(Habibi 等, 2017 ; Pyysalo 等,2013年)。
在這項研究中,我們假設需要在生物醫學語料庫上訓練當前最先進的詞表示模型(例如BERT),以有效地進行生物醫學文本挖掘任務。以前,Word2Vec是最廣為人知的上下文無關單詞表示模型之一,它是在生物醫學語料庫上進行訓練的,該語料庫包含通常不包含在通用領域語料庫中的術語和表達(Pyysalo 等人,2013年)。儘管ELMo和BERT已經證明了上下文化詞表示法的有效性,但它們在生物醫學語料庫上無法獲得高性能,因為它們僅在通用領域語料庫上進行了預訓練。由於BERT在各種NLP任務上都取得了非常出色的結果,同時在整個任務中使用幾乎相同的結構,因此將BERT應用於生物醫學領域可能會有益於眾多生物醫學NLP研究。
3.方法
在本文中,我們介紹了BioBERT,它是針對生物醫學領域的預先訓練的語言表示模型。預訓練和微調BioBERT的總體過程如圖1所示。首先,我們使用BERT的權重初始化BioBERT,該BERT已在通用領域語料庫(英語Wikipedia和BooksCorpus)上進行了預訓練。然後,對BioBERT進行生物醫學領域語料庫的預訓練(PubMed摘要和PMC全文文章)。為了顯示我們的方法在生物醫學文本挖掘中的有效性,我們對BioBERT進行了微調,並對三種流行的生物醫學文本挖掘任務(NER,RE和QA)進行了評估。我們使用通用領域語料庫和生物醫學語料庫的不同組合和大小來測試各種預訓練策略,並分析每種語料庫對預訓練的影響。我們還提供了BERT和BioBERT的深入分析,以顯示我們的預訓練策略的必要性。
本文的貢獻如下:
BioBERT是第一個基於領域特定BERT的模型,已在生物醫學語料庫上經過八個NVIDIA V100 GPU進行了23天的預訓練。
我們表明,對BERT進行生物醫學語料庫的預培訓可以大大提高其性能。與當前的最新模型相比,BioBERT在生物醫學NER(0.62)和生物醫學RE(2.80)中獲得了更高的F1評分,在生物醫學QA中獲得了更高的MRR得分(12.24)。
與大多數以前主要專註於單個任務(例如NER或QA)的生物醫學文本挖掘模型相比,我們的模型BioBERT可在各種生物醫學文本挖掘任務上實現最先進的性能,而僅需進行最小的架構修改。
我們公開提供了經過預處理的數據集,經過訓練的BioBERT權重以及用於微調BioBERT的源程式碼。
4.模型及預料
BioBERT基本上具有與BERT相同的結構。我們簡要討論最近提出的BERT,然後詳細描述BioBERT的預訓練和微調過程。
4.1BERT
從大量未注釋的文本中學習單詞表示法是一種悠久的方法。先前的模型(例如Word2Vec(Mikolov 等,2013),GloVe(Pennington 等,2014))專註於學習上下文無關的單詞表示,而最近的工作則專註於學習上下文相關的單詞表示。例如,ELMo(Peters 等人,2018)使用雙向語言模型,而CoVe(McCann 等人,2017)使用機器翻譯將上下文資訊嵌入單詞表示中。
BERT(Devlin 等人,2019)是一個基於上下文的單詞表示模型,該模型基於標註語言模型並使用雙向Transformer 進行了預訓練(Vaswani 等人,2017)。由於無法看到將來的單詞的語言建模的本質,以前的語言模型僅限於兩個單向語言模型(即從左到右和從右到左)的組合。BERT使用掩蔽語言模型來預測序列中的隨機掩蔽詞,因此可用於學習雙向表示。而且,它在大多數NLP任務上都具有最先進的性能,同時只需要最小的特定於任務的體系結構修改。BERT的作者認為,合併雙向表示而不是單向表示的資訊對於以自然語言表示單詞至關重要(Krallinger 等,2017)。由於篇幅所限,我們請讀者參考Devlin 等。(2019)進一步了解BERT。
4.2 預訓練BioBERT
作為通用語言表示模型,BERT在英文Wikipedia和BooksCorpus上進行了預培訓。但是,生物醫學領域文本包含相當多的領域特定專有名詞(例如BRCA1,c.248T> C)和術語(例如轉錄,抗菌劑),大多數生物醫學研究人員都理解它們。結果,為通用語言理解而設計的NLP模型通常在生物醫學文本挖掘任務中表現不佳。在這項工作中,我們對BioBERT進行了PubMed摘要(PubMed)和PubMed Central全文文章(PMC)的預訓練。表1列出了用於BioBERT的預訓練的文本語料庫,表2列出了經過測試的文本語料庫組合。為了提高計算效率,每當使用Wiki + Books語料庫進行預訓練時,我們就使用Devlin 等提供的預訓練的BERT模型初始化BioBERT (2019)。我們將BioBERT定義為一種語言表示模型,其預訓練語料庫包括生物醫學語料庫(例如BioBERT(+ PubMed))。
4.3 微調BioBERT
只需進行最小的架構修改,即可將BioBERT應用於各種下游文本挖掘任務。我們針對以下三個具有代表性的生物醫學文本挖掘任務對BioBERT進行了調整:NER,RE和QA。
命名實體識別 是最基本的生物醫學文本挖掘任務之一,其中涉及到識別生物醫學語料庫中的眾多領域特定專有名詞。雖然以前的大多數解決方案都是基於LSTM和CRF的不同組合構建的(Giorgi和Bader,2018年 ; Habibi 等人,2017年 ; Wang 等人,2018年),但BERT具有基於雙向 Transformer 的簡單架構。BERT基於來自最後一層的表示使用單個輸出層來僅計算令牌級別的BIO2概率。注意:雖然以前在生物醫學NER中的工作經常使用在PubMed或PMC語料庫上訓練的詞嵌入(Habibi 等,2017 ;Yoon 等。,2019),BioBERT在預訓練和微調期間直接學習WordPiece嵌入。對於NER的評估指標,我們使用了實體級別的準確性,召回率和F1得分。
關係提取 是對生物醫學語料庫中命名實體的關係進行分類的任務。我們利用了BERT原始版本的句子分類器,該分類器使用[CLS]標記對關係進行分類。基於來自BERT的[CLS]令牌表示,使用單個輸出層執行句子分類。我們使用預定義標籤(例如@ GENE $或@ DISEASE $)使句子中的目標命名實體匿名。例如,具有兩個目標實體(在這種情況下為基因和疾病)的句子表示為「 @ GENE $位置986處的絲氨酸可能是血管造影@ DISEASE $的獨立遺傳預測因子。」的精確度,召回率和F1得分報告RE任務。
問題解答 是根據相關段落回答以自然語言提出的問題的任務。為了對BioBERT進行品質檢查進行微調,我們使用了與SQuAD相同的BERT架構(Rajpurkar 等,2016)。我們使用了BioASQ事實數據集,因為它們的格式與SQuAD相似。使用單個輸出層計算答案短語開始/結束位置的令牌級別概率。但是,我們發現,在提取的品質檢查設置中,約有30%的BioASQ擬事實問題無法回答,因為確切的答案並未出現在給定的段落中。像Wiese 等人。(2017),我們從訓練集中排除了具有無法回答的問題的樣本。此外,我們使用了相同的預訓練過程Wiese 等。(2017),它使用SQuAD,並在很大程度上改善了BERT和BioBERT的性能。我們使用了BioASQ的以下評估指標:嚴格的準確性,寬鬆的準確性和平均倒數排名。
5.結果
5.1 硬體環境及訓練時長
我們使用了在英語維基百科和BooksCorpus上預訓練的BERT BASE模型進行1M步。BioBERT v1.0(+ PubMed + PMC)是經過訓練的470K步驟的BioBERT(+ PubMed + PMC)版本。當同時使用PubMed和PMC語料庫時,我們發現200K和270K的預訓練步驟分別對於PubMed和PMC是最佳的。我們還使用了BioBERT v1.0的消融版本,僅在PubMed上進行了200K步的預訓練(BioBERT v1.0(+ PubMed)),在PMC上進行了270K步的訓練(BioBERT v1.0(+ PMC))。在最初發布BioBERT v1.0之後,我們在PubMed上對BioBERT進行了100萬步的預培訓,我們將此版本稱為BioBERT v1.1(+ PubMed)。除非另有說明,否則其他超參數(例如用於預訓練BioBERT的批處理大小和學習速率計劃)與用於預訓練BERT的參數相同。
我們使用Naver智慧機器學習(NSML)(Sung 等人,2017)對BioBERT進行了預培訓,該技術用於需要在多個GPU上運行的大規模實驗。我們使用了八個NVIDIA V100(32GB)GPU進行預訓練。最大序列長度固定為512,最小批量大小設置為192,每次迭代產生98304個單詞。在這種情況下,要對BioBERT v1.1(+ PubMed)進行BioBERT v1.0(+ PubMed + PMC)的培訓要花費將近23天的時間,超過10天。儘管我們竭盡全力使用BERTLARGE,但由於BERTLARGE的計算複雜性,我們僅使用BERTBASE。
我們使用單個NVIDIA Titan Xp(12GB)GPU在每個任務上微調BioBERT。請注意,微調過程比預訓練BioBERT的計算效率更高。為了進行微調,選擇了10、16、32或64的批量大小,並選擇了5e-5、3e-5或1e-5的學習率。由於訓練數據的大小比Devlin 等人使用的訓練數據小得多,因此在QA和RE任務上對BioBERT進行微調不到一個小時(2019)。另一方面,BioBERT在NER數據集上達到最高性能需要花費20多個epochs。
5.2 試驗結果
NER的結果示於表6。首先,我們觀察到僅對通用域語料庫進行了預訓練的BERT是非常有效的,但是BERT的微觀平均F1得分要比最新模型低(2.01)。另一方面,在所有數據集上,BioBERT的得分均高於BERT。在9個數據集中,有6個數據集的BioBERT均優於最新模型,而按微觀平均F1得分計算,BioBERT v1.1(+ PubMed)則較最新模型高0.62。LINNAEUS數據集的相對較低的得分可歸因於以下方面:(i)缺乏用於訓練先前的最新模型的銀標準數據集,以及(ii)先前使用的不同訓練/測試集劃分作品(Giorgi and Bader,2018),這是不可用的。
每個模型的RE結果如表7所示。BERT的性能優於CHEMPROT數據集上最新模型的性能,這證明了它在RE中的有效性。從平均水平(微型)來看,BioBERT v1.0(+ PubMed)的F1得分高於最新模型。此外,BioBERT在3個生物醫學數據集中有2個獲得了最高的F1分數。
QA結果顯示在表8中。我們對每批最新模型的最佳分數進行微平均。BERT獲得了比最新模型更高的微觀平均MRR分數(高7.0)。所有版本的BioBERT均明顯優於BERT和最新模型,尤其是BioBERT v1.1(+ PubMed)的嚴格準確度為38.77,寬大的準確度為53.81,平均倒數排名得分為44.77 ,所有數據均進行了微平均。在所有生物醫學QA數據集上,BioBERT的MRR均達到了最新水平。
6. 討論
我們使用了其他大小不同的語料庫進行預訓練,並研究了它們對性能的影響。對於BioBERT v1.0(+ PubMed),我們將預訓練步驟數設置為200K,並更改PubMed語料庫的大小。圖2(a)顯示,BioBERT v1.0(+ PubMed)在三個NER數據集(NCBI Disease,BC2GM,BC4CHEMD)上的性能隨PubMed語料庫的大小而變化。對10億個單詞進行預訓練是非常有效的,每個數據集的性能最多可以提高到45億個單詞。我們還在不同的預訓練步驟中保存了BioBERT v1.0(+ PubMed)中的預訓練權重,以衡量預訓練步驟的數量如何影響其在微調任務上的性能。圖2(b)顯示了相對於預訓練步驟數,相同的三個NER數據集上的BioBERT v1.0(+ PubMed)的性能變化。結果清楚地表明,隨著預訓練步驟數量的增加,每個數據集的性能都會提高。最後,圖2(c)顯示了在所有15個數據集上,相對於BERT,BioBERT v1.0(+ PubMed + PMC)的絕對性能提高。F1分數用於NER / RE,MRR分數用於QA。BioBERT大大提高了大多數數據集的性能
(a)更改PubMed語料庫大小以進行預訓練的影響。(b)BioBERT在不同檢查點的NER性能。(c)BioBERT v1.0(+ PubMed + PMC)與BERT相比的性能提高
在新標籤頁中打開下載幻燈片
(a)改變PubMed語料庫大小以進行預訓練的影響。(b)BioBERT在不同檢查點的NER性能。(c)BioBERT v1.0(+ PubMed + PMC)與BERT相比的性能提高
如表9所示,我們對BERT和BioBERT v1.1(+ PubMed)的預測進行了取樣,以了解預訓練對下游任務的影響。BioBERT可以識別BERT無法識別的生物醫學命名實體,並且可以找到命名實體的確切邊界。雖然BERT通常會為簡單的生物醫學問題提供錯誤的答案,但是BioBERT會為此類問題提供正確的答案。此外,BioBERT可以提供名稱較長的實體作為答案。
7. 結論
在本文中,我們介紹了BioBERT,它是用於生物醫學文本挖掘的預訓練語言表示模型。我們證明了在生物醫學語料庫上對BERT進行預培訓對於將其應用於生物醫學領域至關重要。只需對特定任務進行最小的架構修改,BioBERT就可以在生物醫學文本挖掘任務(例如NER,RE和QA)上勝過先前的模型。
BioBERT的預發行版本(2019年1月)已被證明在許多生物醫學文本挖掘任務中非常有效,例如臨床筆記的NER(Alsentzer 等人,2019),人類表型基因RE(Sousa 等人。,2019)和臨床顳葉RE(Lin 等人,2019)。以下BioBERT的更新版本將提供給bioNLP社區:(i)僅基於PubMed摘要進行訓練的BioBERT BASE和BioBERT LARGE,無需從現有BERT模型進行初始化;以及(ii)根據特定領域的辭彙進行訓練的BioBERT BASE和BioBERT LARGE在WordPiece上。