切分也重要:基于多粒度语言单元切分的BERT模型
論文標題:
AMBERT: A PRE-TRAINED LANGUAGE MODEL WITH MULTI-GRAINED TOKENIZATION
論文作者:
Xinsong Zhang, Hang Li
論文鏈接:
https://arxiv.org/pdf/2008.11869.pdf
不同粒度語言單元的切分
在深度學習時代,將語言單元切分為怎樣的粒度是一個很重要的問題,它首先影響了詞典的大小,比如英語,如果切分為字符,那詞典最多也不會超過100,但是如果切分為詞,那詞典就會成千上萬。
詞典大小直接影響了數據的分布,即詞典中的有些詞是高頻詞,有些是低頻詞,甚至可能出現很多未登錄詞(OOV),這些都對模型最終的效果有影響。
當前主流預訓練模型的切分方式大致是:對英語來說,默認采用子詞(Subword)的形式,一種介于字和詞之間的語言單元粒度,比如BERT采用的是字詞。
對中文來說,一般采用字級別的粒度。采用這種粒度的切分方式,相比其他粒度而言表現更好。
但是,這些模型都是基于“單粒度”的切分,也就是說,要么只采用字詞,要么只采用字,而單粒度的切分可能會產生一些問題。
比如下圖是采用字級別切分粒度的中文BERT模型的注意力圖示。可以看到,“拍”關注了“賣”,“北”關注了“京”,“長”和“市”組合了。
但是在這些例子中,它們都錯誤地關注了字,這是因為對于字級別的模型而言,“北京”一起出現的頻率遠大于“北上京城”出現的頻率,“市長”共現的頻率遠大于“長江”共現的頻率。字級別的模型難以完全建模具體相同字的不同的詞。
反之,如果我們把這三句話都切分為詞再送入BERT,就會發現它們能夠在一定程度上克服上述不足,如下圖所示。
“球拍”和“乒乓”關注,是正確的;“北”關注了“北”,不能算錯;“市長”關注了“市長”,也不能算錯。
這時候,第一句話就是我們想要的;對第二句話,由于我們把“京城”當作一個整體,“北”就不能再去關注“京”了,只能去關注自己;第三句話是分詞帶來的錯誤,正確的分詞應該是“南京市/長江/大橋”,盡管分詞錯誤,但是模型還是“保守”地關注了自己。
由此可見,不同粒度的切分都有各自的優劣,如果能結合多個粒度,我們就可以期望它們能優勢互補。
鑒于此,本文提出AMBERT(A Multi-grained BERT),結合不同粒度的語言單元的切分進行預訓練和微調,從而提高在自然語言理解任務上的效果。
其做法很簡單:用兩個參數共享的Encoder分別編碼同一個句子的兩個不同切分粒度,然后使用掩碼預測同時進行預訓練,并在微調、推理的時候也結合兩方信息即可。
這種方法簡單易實現,而且由于參數共享,所以模型參數量上也不會有太大的變化(詞典更大),訓練也比較容易。
總的來說,本文貢獻如下:
提出多粒度的預訓練BERT模型,結合不同粒度的語言單元的切分提高下游任務的效果;
在中文自然語言理解任務CLUE和英文自然語言理解任務GLUE和問答任務上取得了顯著的效果,尤其是對中文而言效果提升非常可觀。
AMBERT
下圖是AMBERT的示意圖,實現非常簡單。簡單來說,就是對同一個句子,按照兩個不同的粒度進行切分(本文只探究了兩個粒度,多個粒度亦可),然后使用兩個參數共享的編碼器把它們分別編碼,最后各自使用掩碼預測(MLM)進行預訓練即可。
這里需要強調的是“分別”,也就是說,不同粒度的句子是不相互關注的,這就顯著降低了自注意力的復雜度。
在微調的時候,使用下述優化目標:
其中,分別是兩個粒度的特殊單元[CLS],用于進行預測。而最后一項則是讓兩個粒度得到的特殊單元[CLS]盡量保持一致。
當然,我們還可以對AMBERT稍作修改,就得到了下述變體:
AMBERT-Combo:用兩個非參數共享的編碼器分別編碼兩個粒度的句子;
AMBERT-Hybrid:用單個編碼器而不是兩個編碼器去同時編碼兩個粒度的句子,也就是把兩個粒度的句子先拼接起來再送到BERT里,這就會讓自注意力在不同粒度的句子中進行。
其實可以預見,上述兩個變體都不如AMBERT,具體將在實驗部分進行說明。
實驗
對于中文,采用字和詞兩個粒度,對于英文,采用詞和短語兩個粒度。中文任務在CLUE上進行,英文在GLUE上進行。預訓練數據、實驗設置詳見原文。
下表是AMBERT在CLUE上的實驗結果。可以看到,AMBERT比RoBERTa平均高出接近一個點,盡管參數量多一些。在9個任務上,AMBERT取得4項最佳,在WSC和CMRC上離最佳結果差的比較多,原因還需要進一步分析。
下表是AMBERT在GLUE上的實驗結果。和RoBERTa相比略遜一籌,但是超過了其他模型(盡管不知道是參數量帶來的還是模型本身帶來的,可能需要作者進一步進行對比實驗)。
和中文比較,可以認為多粒度模型在中文上帶來的提升要比英文顯著。這個結論也是比較符合直覺的。
下面來看看AMBERT和它的兩個變體的比較。首先是AMBERT和AMBERT-Combo。注意到AMBERT-Combo用了兩個獨立的編碼器,我們可以期望它們得到的[CLS]特征應該是有所不同的。
為此,下圖呈現了每個模型中兩個編碼器[CLS]特征的ED(normalized Euclidean Distance)和CD(Cosine Dissimilarity)距離。
從圖中可以看到,AMBERT-Combo的數值顯著大于AMBERT,說明獨立的編碼器可能會使不同粒度得到的特征有更大差異。
下面再來比較AMBERT和AMBERT-Hybrid。下圖是兩個模型的自注意力熱力度,由于AMBERT-Hybrid聯合編碼兩個粒度的句子,所以不同粒度的語言單元之間會互相關注,這樣可能會“稀釋”自注意力。
當句子很長(實際上已經很長了)時,注意力稀釋帶來的影響就會更加明顯(作者沒有在這里進一步說明句子長度的影響,實際上原文Claim了這個結論是需要實驗佐證的)。這可以在一定程度上解釋為什么AMBERT-Hybrid效果弱于AMBERT。
小結
本文提出多粒度的預訓練模型,使用粗細粒度的語言單元切分方式對句子進行切分,從而期望結合二者的優勢。在中文和英文的自然語言理解任務上顯示該模型的有效性,尤其是對中文而言效果更佳顯著。
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的切分也重要:基于多粒度语言单元切分的BERT模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在家中自己制作健康饭菜?
- 下一篇: FCC 拒绝向马斯克 SpaceX 提供