在本章前面的章節(jié)中,我們?yōu)樽匀徽Z言處理應用設計了不同的模型,例如基于 RNNs、CNNs、attention 和 MLPs。當存在空間或時間限制時,這些模型很有用,但是,為每個自然語言處理任務制作一個特定模型實際上是不可行的。在 15.8 節(jié)中,我們介紹了一種預訓練模型 BERT,它需要對各種自然語言處理任務進行最少的架構更改。一方面,在提出建議時,BERT 改進了各種自然語言處理任務的最新技術水平。另一方面,如 第 15.10 節(jié)所述,原始 BERT 模型的兩個版本帶有 1.1 億和 3.4 億個參數。因此,當有足夠的計算資源時,我們可以考慮為下游自然語言處理應用程序微調 BERT。
在下文中,我們將自然語言處理應用程序的一個子集概括為序列級和標記級。在序列層面,我們介紹了如何在單個文本分類和文本對分類或回歸中將文本輸入的 BERT 表示轉換為輸出標簽。在令牌級別,我們將簡要介紹文本標記和問答等新應用,并闡明 BERT 如何表示其輸入并轉換為輸出標簽。在微調期間,BERT 在不同應用程序中所需的“最小架構更改”是額外的全連接層。在下游應用程序的監(jiān)督學習期間,額外層的參數是從頭開始學習的,而預訓練 BERT 模型中的所有參數都經過微調。
16.6.1。單一文本分類
單文本分類以單個文本序列作為輸入并輸出其分類結果。除了我們在本章中學習的情感分析之外,語言可接受性語料庫(CoLA)也是一個用于單一文本分類的數據集,判斷給定的句子是否在語法上可以接受(Warstadt et al . , 2019)。例如,“我應該學習?!?是可以接受的,但“我應該學習”。不是。
圖 16.6.1針對單一文本分類應用微調 BERT,例如情感分析和測試語言可接受性。假設輸入的單個文本有六個標記。
15.8 節(jié)描述了 BERT 的輸入表示。BERT 輸入序列明確表示單個文本和文本對,其中特殊分類標記“”用于序列分類,特殊分類標記“”標記單個文本的結尾或分隔一對文本. 如圖 16.6.1所示 ,在單文本分類應用中,特殊分類標記“”的 BERT 表示對整個輸入文本序列的信息進行編碼。作為輸入單個文本的表示,它將被送入一個由全連接(密集)層組成的小型 MLP,以輸出所有離散標簽值的分布。
16.6.2。文本對分類或回歸
我們還在本章中研究了自然語言推理。屬于文本對分類,對一對文本進行分類的一類應用。
以一對文本作為輸入但輸出連續(xù)值, 語義文本相似度是一種流行的文本對回歸任務。該任務測量句子的語義相似性。例如,在語義文本相似性基準數據集中,一對句子的相似性得分是從 0(無意義重疊)到 5(意義等同)的有序尺度(Cer等人,2017 年)。目標是預測這些分數。來自語義文本相似性基準數據集的示例包括(句子 1、句子 2、相似性分數):
“一架飛機正在起飛?!保耙患茱w機正在起飛。”,5.000;
“一個女人在吃東西?!保耙粋€女人在吃肉。”,3.000;
“一個女人在跳舞。”,“一個男人在說話?!保?.000。
圖 16.6.2為文本對分類或回歸應用微調 BERT,例如自然語言推理和語義文本相似性。假設輸入文本對有兩個和三個標記。
與 圖16.6.1中的單一文本分類相比,圖16.6.2中用于文本對分類的微調BERT在輸入表示上有所不同。對于語義文本相似性等文本對回歸任務,可以應用微不足道的更改,例如輸出連續(xù)的標簽值并使用均方損失:它們在回歸中很常見。
16.6.3。文本標記
現在讓我們考慮標記級任務,例如文本標記,其中為每個標記分配一個標簽。在文本標注任務中,詞性標注根據詞在句子中的作用為每個詞分配一個詞性標簽(例如,形容詞和限定詞)。例如,根據 Penn Treebank II 標簽集,句子“John Smith's car is new”應該被標記為“NNP(名詞,專有單數)NNP POS(所有格結尾)NN(名詞,單數或質量)VB (動詞,基本形式)JJ(形容詞)”。
圖 16.6.3為文本標記應用微調 BERT,例如詞性標記。假設輸入的單個文本有六個標記。
文本標記應用程序的微調 BERT 如圖 16.6.3所示。與 圖 16.6.1相比,唯一的區(qū)別在于在文本標記中,輸入文本的每個標記的 BERT 表示被饋送到相同的額外全連接層以輸出標記的標簽,例如部分 -詞性標簽。
16.6.4。問答
問答作為另一個token級的應用,體現了閱讀理解能力。例如,斯坦福問答數據集 (SQuAD v1.1) 由閱讀文章和問題組成,其中每個問題的答案只是與問題相關的文章中的一段文本(文本跨度)(Rajpurkar 等人,2008 年)。 , 2016 年). 為了解釋,請考慮一段話“一些專家報告說口罩的功效尚無定論。然而,口罩制造商堅稱,他們的產品,如 N95 口罩,可以抵御病毒?!?以及“誰說N95口罩可以防病毒?”的問題。答案應該是段落中的文本跨度“面具制造商”。因此,SQuAD v1.1 的目標是在給定一對問題和段落的情況下預測段落中文本跨度的開始和結束。
圖 16.6.4為問答微調 BERT。假設輸入文本對有兩個和三個標記。
為了微調 BERT 以進行問答,問題和段落分別打包為 BERT 輸入中的第一和第二文本序列。為了預測文本跨度的開始位置,相同的附加全連接層將從位置通道轉換任何標記的 BERT 表示i進入標量分數 si. 這樣所有passage token的得分通過softmax操作進一步轉化為概率分布,使得每個token位置i在段落中分配了一個概率pi作為文本跨度的開始。預測文本跨度的結束與上述相同,只是其附加的全連接層中的參數獨立于預測開始的參數。預測結束時,位置的任何通道令牌i由相同的全連接層轉換為標量分數ei. 圖 16.6.4描述了用于問答的微調 BERT。
對于問答,監(jiān)督學習的訓練目標與最大化地面實況開始和結束位置的對數似然一樣簡單。在預測跨度時,我們可以計算分數si+ej對于位置的有效跨度i定位j(i≤j), 并輸出得分最高的跨度。
16.6.5。概括
BERT 需要對序列級和令牌級自然語言處理應用進行最小的架構更改(額外的全連接層),例如單個文本分類(例如,情感分析和測試語言可接受性)、文本對分類或回歸(例如,自然語言推理和語義文本相似性)、文本標記(例如,詞性標記)和問題回答。
在下游應用程序的監(jiān)督學習期間,額外層的參數是從頭開始學習的,而預訓練 BERT 模型中的所有參數都經過微調。
16.6.6。練習
讓我們?yōu)樾侣勎恼略O計一個搜索引擎算法。當系統(tǒng)收到查詢(例如,“冠狀病毒爆發(fā)期間的石油工業(yè)”)時,它應該返回與查詢最相關的新聞文章的排名列表。假設我們有大量新聞文章和大量查詢。為了簡化問題,假設已為每個查詢標記了最相關的文章。我們如何 在算法設計中應用負采樣(參見第 15.2.1 節(jié))和 BERT?
我們如何利用 BERT 訓練語言模型?
我們可以在機器翻譯中利用 BERT 嗎?
Discussions
-
自然語言處理
+關注
關注
1文章
600瀏覽量
13484 -
pytorch
+關注
關注
2文章
802瀏覽量
13115
發(fā)布評論請先 登錄
相關推薦
評論