DeBERTa刷新了GLUE的榜首,本文解讀一下DeBERTa在BERT上有哪些改造
DeBERTa對BERT的改造主要在三點
分散注意力機制
為了更充分利用相對位置信息,輸入的input embedding不再加入pos embedding, 而是input在經過transformer編碼后,在encoder段與“decoder”端 通過相對位置計算分散注意力
增強解碼器(有點迷)
為了解決預訓練和微調時,因為任務的不同而預訓練和微調階段的gap,加入了一個增強decoder端,這個decoder并非transformer的decoder端(需要decoder端有輸入那種),只是直觀上起到了一個decoder作用
解碼器前接入了絕對位置embedding,避免只有相對位置而丟失了絕對位置embedding
其實本質就是在原始BERT的倒數第二層transformer中間層插入了一個分散注意力計算
訓練trick
訓練時加入了一些數據擾動
mask策略中不替換詞,變為替換成詞的pos embedding
分散注意力機制
motivation
BERT加入位置信息的方法是在輸入embedding中加入postion embedding, pos embedding與char embedding和segment embedding混在一起,這種早期就合并了位置信息在計算self-attention時,表達能力受限,維護信息非常被弱化了
BERT embedding
本文的motivation就是將pos信息拆分出來,單獨編碼后去content 和自己求attention,增加計算 “位置-內容” 和 “內容-位置” 注意力的分散Disentangled Attention
Disentangled Attention計算方法
分散注意力機制首先在input中分離相對位置embedding,在原始char embedding+segment embedding經過編碼成后,與相對位置計算attention,
即是內容編碼,是相對的位置編碼, attention的計算中,融合了位置-位置,內容-內容,位置-內容,內容-位置
相對位置的計算
限制了相對距離,相距大于一個閾值時距離就無效了,此時距離設定為一個常數,距離在有效范圍內時,用參數用控制
增強型解碼器
強行叫做解碼器
用 EMD( enhanced mask decoder) 來代替原 BERT 的 SoftMax 層預測遮蓋的 Token。因為我們在精調時一般會在 BERT 的輸出后接一個特定任務的 Decoder,但是在預訓練時卻并沒有這個 Decoder;所以本文在預訓練時用一個兩層的 Transformer decoder 和一個 SoftMax 作為 Decoder。其實就是給后層的Transformer encoder換了個名字,千萬別以為是用到了Transformer 的 Decoder端
絕對位置embedding
在decoder前有一個騷操作是在這里加入了一層絕對位置embedding來彌補一下只有相對位置的損失,比如“超市旁新開了一個商場”,當mask的詞是“超市”,“商場”,時,只有相對位置時沒法區分這兩個詞的信息,因此decoder中加入一層
一些訓練tricks
將BERT的訓練策略中,mask有10%的情況是不做任何替換,這種情況attention偏向自己會非常明顯,DeBeta將不做替換改成了換位該位置詞絕對位置的pos embedding, 實驗中明顯能看到這種情況下的attention對自身依賴減弱
在訓練下游任務時,給訓練集做了一點擾動來增強模型的魯棒性
效果
DeBERTa large目前是GLUE的榜首,在大部分任務上整體效果相比還是有一丟丟提升
責任編輯:lq
-
數據
+關注
關注
8文章
7067瀏覽量
89108 -
編碼
+關注
關注
6文章
945瀏覽量
54850 -
Decoder
+關注
關注
0文章
25瀏覽量
10709
原文標題:SOTA來啦!BERT又又又又又又魔改了!DeBERTa登頂GLUE~
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論