NLP預訓練中的mask方式
目錄
一、為什么要mask
二、這些年paper中出現(xiàn)過的mask方式
2.1 padding Padding-mask
2.2 sequence mask:transformer decoder部分
2.3 BERT: maskd LM
2.4 RoBERTa: dynamic maskd LM
2.5 ERNIE: Knowledge masking strategies
2.6 BERT-wwm
參考資料
一、為什么要mask
1.1 padding:
數(shù)據(jù)輸入模型的時候長短不一,為了保持輸入一致,通過加padding將input轉成固定tensor
如:
一句話:[1, 2, 3, 4, 5]
input size: 1* 8
加padding:[1, 2, 3, 4, 5, 0, 0, 0]
1.2 padding 引入帶來的問題:
padding填充數(shù)量不一致,導致均值計算偏離
如:
原始均值:(1 + 2 + 3 + 4 + 5) / 5 = 3
padding后的均值: (1 + 2 + 3 + 4 + 5) / 8 = 1.875
1.3 引入mask,解決padding的缺陷:
假設 m = [1, 1 , 1, 1, 1, 0, 0, 0]
?:逐個相乘
mask后的avg = 3 (和原先結果一致)
1.4 除了上述的padding的場景,為了讓模型學習到某個詞或者關注到某個區(qū)域,也可以使用mask對信息做屏蔽。
二、這些年paper中出現(xiàn)過的mask方式
2.1 padding Padding-mask
原理同上
例:transformer mask encoder self-attention mask
2.2 sequence mask:transformer decoder部分
訓練的時候,在Masked Multi-h(huán)ead attention層中,為了防止未來的信息被現(xiàn)在時刻看到,需要把將來的信息mask掉。
mask為下三角矩陣
使用mask矩陣,把當前之后的全部遮住。
可以防止看到t時刻之后的信息。
t-1時刻、t時刻、t+1時刻在masked Multi-h(huán)ead attention layer是并行計算的。
延伸問題:transformer decoder在預測時也用到了mask
是為了保持預測時和訓練時,信息量一致。保證輸出結果的一致。
2.3 BERT: maskd LM
The training data generator chooses 15% of the token positions at random for prediction. If the i-th token is chosen, we replace the i-th token with (1) the [MASK] token 80% of the time (2) a random token 10% of the time (3) the unchanged i-th token 10% of the time. Then, Ti will be used to predict the original token with cross entropy loss.
——BERT 原文:訓練數(shù)據(jù)中,被mask選中的概率是15%,選中的詞,被[MASK]替換的概率是80%,不變的概率是10%,隨機替換的概率是10%。
解釋:訓練分布和實際語言分布有差異,三種替換方式是為了告訴模型,輸入的詞有可能是錯誤的,不要太相信。
對應的代碼:bert/create_pretraining_data.py
2.4 RoBERTa: dynamic maskd LM
The original BERT implementation performed masking once during data preprocessing, resulting in a single static mask. To avoid using the same mask for each training instance in every epoch, training data was duplicated 10 times so that each sequence is masked in 10 different ways over the 40 epochs of training. Thus, each training sequence was seen with the same mask four times during training.
RoBERTa的原文對比了BERT的靜態(tài)mask。并說明了RoBERTa為了避免靜態(tài)mask導致每個epoch訓練輸入的數(shù)據(jù)mask是一樣的,所以先把數(shù)據(jù)復制了10份,然后在40輪訓練中,每個序列都以10種不同的方式被mask。
2.5 ERNIE: Knowledge masking strategies
ERNIE is designed to learn language representation enhanced by knowledge masking strategies, which includes entity-level masking and phrase-level masking.
給BERT加了知識圖譜,加強了局部學習。BERT原先的方式,只是從mask出現(xiàn)的概率做填空。用knowledge level的填空方式,把knowledge挖空,保證了模型學到關鍵知識。
基本級別掩碼(Basic-Level Masking):
這里采用了和BERT完全相同的掩碼機制,在進行中文語料時,這里使用的是字符級別的掩碼。在這個階段并沒有加入更高級別的語義知識。
短語級別掩碼(Phrase-Level Masking):
在這個階段,首先使用語法分析工具得到一個句子中的短語,例如圖中的“a serious of”,然后隨機掩碼掉一部分,并使用剩下的對這些短語進行預測。在這個階段,詞嵌入中加入了短語信息。
實體級別掩碼(Entity-Level Masking):
在這個階段,將句子中的某些實體掩碼掉,這樣模型就有了學習更高級別的語義信息的能力。
2.6 BERT-wwm
繼2019年4月百度發(fā)布ERNIE1.0之后,同年7月訊飛+哈工大發(fā)布了BERT-WWM。
The whole word masking mainly mitigates the drawbacks in original BERT that, if the masked WordPiece token (Wu et al., 2016) belongs to a whole word, then all the WordPiece tokens (which forms a complete word) will be masked altogether.
連續(xù)mask所有能組成詞的詞
wwm的Roberta沒有動態(tài)mask,因為不需要,所有詞已經mask了。
wwm的代碼解釋參考[4]
例句:there is an apple tree nearby.
tok_list = ["there", "is", "an", "ap", "##p", "##le", "tr", "##ee", "nearby", "."]
bert沒有wwm結果是:
there [MASK] an ap [MASK] ##le tr [RANDOM] nearby .
[MASK] [MASK] an ap ##p [MASK] tr ##ee nearby .
there is [MASK] ap [MASK] ##le tr ##ee nearby [MASK] .
bert-wwm結果是:
there is an [MASK] [MASK] [RANDOM] tr ##ee nearby .
there is [MASK] ap ##p ##le [MASK] [MASK] nearby .
there is! [MASK] ap ##p ##le tr ##ee nearby [MASK] .
可以看出,apple這個詞,在沒有wwm時,會被mask不同部分;wwm時,則同時被mask,或者不被mask。
wwm無需改動bert代碼:

請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
推薦專題
- 1 AI 眼鏡讓百萬 APP「集體失業(yè)」?
- 2 大廠紛紛入局,百度、阿里、字節(jié)搶奪Agent話語權
- 3 深度報告|中國AI產業(yè)正在崛起成全球力量,市場潛力和關鍵挑戰(zhàn)有哪些?
- 4 上海跑出80億超級獨角獸:獲上市公司戰(zhàn)投,干人形機器人
- 5 國家數(shù)據(jù)局局長劉烈宏調研格創(chuàng)東智
- 6 下一代入口之戰(zhàn):大廠為何紛紛押注智能體?
- 7 百億AI芯片訂單,瘋狂傾銷中東?
- 8 Robotaxi新消息密集釋放,量產元年誰在領跑?
- 9 一文看懂視覺語言動作模型(VLA)及其應用
- 10 格斗大賽出圈!人形機器人致命短板曝光:頭腦過于簡單