1. 程式人生 > 實用技巧 >文獻閱讀:AMBERT: A Pre-trained Language Model with Multi-Grained Tokenization

文獻閱讀:AMBERT: A Pre-trained Language Model with Multi-Grained Tokenization

1. 內容簡介

這篇文獻是位元組跳動實驗室李航博士在8月份釋出的一篇文獻,他的核心內容還是在bert的基礎上的一個變體模型。

與Roberta,span bert等不同,這篇文章的主要關注點在於輸入文字的顆粒度上。他的最核心觀點認為:bert使用的分詞顆粒度太細了,會丟失詞的資訊,因此通過調整輸入序列的詞顆粒度,可以優化模型的效果。

一種比較直接的思路就是使用詞顆粒度的輸入,但是單純的使用詞顆粒度的輸入同樣可能帶來一定的問題,首先詞表過大將會帶來許多詞彙的學習不充分以及unk問題,另一方面,分詞本身也會由於分詞本身的錯誤帶來許多的問題。

因此,李航博士嘗試同時採用詞顆粒度以及字顆粒度的輸入,來同時抓取兩者的資訊,從而提升模型的效能,在多項NLU任務中獲得了SOTA的效果。

某種意義而言,這就很像是ensemble的方式,但是後者會大幅的增加引數量,減慢模型的執行效率。因此,李航博士共享了除了embedding層之外的所有引數,從而使得引數量的增加控制在了一個可以接受的範圍內。

2. 原理 & 模型結構

如前所述,這篇文章的最核心思想就是在模型的資訊輸入層使用多顆粒度的訊號。

給出論文中給出的整體的模型結構圖如下:

在這裡插入圖片描述

其核心在於輸入將會被處理為兩個不同顆粒度的序列,而後分別將其通過embedding層之後再通過encoder層,最後將兩個encoder層的輸出結果進行concat操作。

而模型的訓練方式還是採用bert的MLM模型訓練方式,即mask輸入中的部分token,而後對其進行預測,不過論文中並沒有明確地寫明粗細顆粒度的輸入文字中mask的部分是否一致。

另外,針對這一個模型的loss函式,則是簡單的採用兩個顆粒度下的loss相加的方式,其loss函式定義公式如下:

l o s s = − ∑ i = 1 m m i l ˙ o g ( p θ ( x i ∣ x ^ ) ) − ∑ i = 1 n n j l ˙ o g ( p θ ( z j ∣ z ^ ) ) loss = -\sum_{i=1}^{m}{m_i \dot log(p_{\theta}(x_i|\hat{x}))} - \sum_{i=1}^{n}{n_j \dot log(p_{\theta}(z_j|\hat{z}))} loss=i=1mmil˙og(pθ(xix^))i=1nnjl˙og(pθ(zjz^))

其中, x x x z z z分別為粗細顆粒度下的輸入詞彙, m m m n n n表示mask,如果一個詞被mask了,則 m i m_i mi n j n_j nj)為1,反之為0。

3. 實驗

下面,我們來具體看一下作者針對ambert進行的一些具體的實驗。

1. 模型預訓練語料 & 資料處理

首先,我們來看一下作者有關模型預訓練使用的語料。

針對中文模型的預訓練,作者使用了57G的文字,全部來源於頭條資料;而針對英文模型的預訓練,作者使用了47G的文字,基本和bert保持一致,不過,BookCorpus資料已經無法獲取了,因此作者沒有使用這部分資料。

有關中文的粗細顆粒度分詞方式,細粒度的就是採用了字的分詞,粗粒度則是採用了字條跳動內部的分詞工具,但是兩者共用同一份詞表。

而有關英文的分詞方式,細顆粒度的同樣直接以單詞為單位進行分詞,粗顆粒度則是通過統計n-gram詞頻的方式獲得。

模型訓練則是使用V100的卡,mask的比例保持和bert一致,均為15%。

2. 中文語料下的finetune實驗

該文獻在分類以及閱讀理解任務中測試了finetune之後的模型效果,並且在clue系列任務下比較了ambert與當前的sota模型直接的效果比較。

1. 分類任務中效果

finetune中文預訓練模型之後在分類任務中的模型效果如下圖所示:

在這裡插入圖片描述

其中,AMBERT-Combo模型為放棄encoder部分的引數共享,直接暴力地使用兩個encoder模型進行concat之後進行處理;而AMBERT-Hybrid則是在只是用一個encoder,在輸入資料中直接concat粗細顆粒度的文字,這樣,self-attention就會同時看到兩部分的資料。

可以看到,在大部分的下游任務中,使用了粗細顆粒度資訊的模型效果是優於單一的bert模型的。但是由於實質上ambert相當於是兩個bert模型的ensemble,因此,不太好說他的效果提升是否真的來源於同時使用了不同顆粒度資訊。

另一方面,針對AMBERT以及AMBERT-Combo模型,可以看到,AMBERT模型的效果在大部分任務中還是優於Combo模型的,所以可以證明:聯合不同顆粒度資訊確實可以提升模型的資訊抽取能力,進而提升模型的效果

2. 閱讀理解任務中效果

同樣的,我們在閱讀理解任務中比較AMBERT與BERT之間的效能差異。

給出實驗結果對比圖如下:
在這裡插入圖片描述

可以看到:

  • 在閱讀理解任務當中,AMBERT全面碾壓了BERT模型。

3. sota模型對比

最後,我們考察以下除了bert之外當前的一些sota模型與AMBERT模型的效能比較。

給出實驗結果圖如下:
在這裡插入圖片描述

可以看到:

  • 在大多數實驗中,AMBERT都有著較好的效能表達。

3. 英文語料下的finetune實驗

同樣的,我們對英文的AMBERT模型效果進行考察。

1. 分類任務中效果

同樣的,給出英文AMBERT模型在分類任務下的實驗結果圖如下:
在這裡插入圖片描述

可以看到:

  • 與中文預訓練模型的結果相一致,AMBERT的效果全面超過BERT模型,僅在少數任務中劣於AMBERT-Combo模型。

2. 閱讀理解任務中效果

我們直接給出英文閱讀理解任務中的實驗結果圖下:
在這裡插入圖片描述

可以看到:

  • 上述分類問題的結論同樣適用於英文的閱讀理解任務。

3. sota模型對比

最後,同樣的,與中文模型的考察方式相一致,我們考察一下當前各個sota模型的效果與AMBERT的效能比較。

給出實驗結果圖如下:
在這裡插入圖片描述

但是,我們發現,在英文任務當中,當前最優的模型依然是ROBERTA模型,AMBERT僅在RACE任務當中獲得了sota的結果。

作者嘗試對這一現象進行了解釋,他認為:英文任務中效能不佳的原因在於分詞結果中英文的“詞彙”比例佔比太少,僅佔13.7%,且可能存在分詞不佳的情況,而中文任務中兩者佔比差不多是1:1的,因此導致英文的粗顆粒度模型並沒有貢獻應有的作用,反而拖累了模型效果。

4. 例項分析

除了上述的指標分析,作者還給出了一些具體的例項來說明AMBERT較之單一顆粒度模型的優點,給出例項如下:
在這裡插入圖片描述

比較1、2以及5、6這些句子,可以看出作者的論點:

  1. 細顆粒模型對於詞力度的詞彙把握上存在不足;
  2. 而針對粗顆粒度分詞模型,錯誤的分詞方式會影響模型的效果。

5. 其他

1. encoder層是否學到不同粒度的資訊

在上述實驗中,我們注意到,在大多數的任務中,AMBERT模型的效果是優於AMBERT-Combo模型的,這裡,作者嘗試針對這一現象進行了解釋。

在embedding層之後,粗顆粒度以及細顆粒度的模型在self-attention層中事實上都被一步步處理成了抽象特徵,而共享引數使得這些特徵被整合在了一起,因此雖然是兩個獨立的處理過程,但是處理得到的結果在特徵表達上將會更為相似。

因此,作者比較了兩個模型在粗細顆粒度兩個encoder之後得到的特徵向量之間的相似度,發現與他的猜測相一致,共享引數之後特徵向量的相似度明顯更高,不過這個結論事實上也挺直覺的。
在這裡插入圖片描述

2. self-attention考察

除此之外,作者還考察了一下第一層self-attention層的attention分佈,得到結果圖如下:
在這裡插入圖片描述

顯然,可以看到:

  • BERT以及AMBERT模型的attention結果更靠近前後關聯的詞,即更專注於詞顆粒度的局域資訊,而AMBERT-Hybrid由於同時輸入了不同顆粒度的模型,導致模型在第一層的attention時出現了混亂。

4. 結論

本文的作者李航博士基於bert中文模型只是用了字顆粒度輸入的問題提出了使用多種顆粒度資訊的AMBERT模型,從而在大部分的中文分類以及閱讀理解任務中取得了sota的效果。

毫無疑問,使用多種顆粒度資訊輸入的這個思路是非常有意思的,給了我很大的啟發,不過他的結論坦率地說我保留一定的懷疑態度,因為本質上來說他這個模型使用了兩個encoder,和ensemble模型是非常類似的,因此,我比較擔心效能的提升是否真的單純來源於不同顆粒度資訊,而非來源於誤差或者ensemble導致的效能提升。

更讓人不安的是,模型僅僅在中文任務中取得了較好的表現,在英文任務中的表現是不如Roberta的,雖然李航博士在論文中給出了一種合理的解釋,但是卻無法排除其他的可能性。

因此,我暫時對這篇文章的結論持保留態度,不過這個思路確實可以借鑑到其他的nlp任務當中,應該能夠對效能提升有所幫助。

5. 參考連結

  1. AMBERT: A Pre-trained Language Model with Multi-Grained Tokenization