Transformer 兩種mask簡介

2021-10-08 08:33:32 字數 459 閱讀 2328

mask 有兩種,padding-mask,用於處理不定長輸入

另一種是 seqence-mask,為了防止未來資訊不被洩露

在 nlp 中,乙個常見的問題是輸入序列長度不等,一般來說我們會對乙個 batch 內的句子進行 pad,通常值為 0。

在語言模型中,常常需要從上乙個詞**下乙個詞,sequence mask 是為了使得 decoder 不能看見未來的資訊。也就是對於乙個序列,在 time_step 為 t 的時刻,我們的解碼輸出應該只能依賴於 t 時刻之前的輸出,而不能依賴 t 之後的輸出。因此我們需要想乙個辦法,把 t 之後的資訊給隱藏起來。產生乙個上三角矩陣,上三角的值全為 1,下三角的值全為 0,對角線也是 0。把這個矩陣作用在每乙個序列上,就可以達到我們的目的啦。值得注意的是,本來 mask 只需要二維的矩陣即可,但是考慮到我們的輸入序列都是批量的,所以我們要把原本二維的矩陣擴張成 3 維的張量。

一文帶你了解兩種Transformer文字識別方法

由 堅強是說給別人聽的謊言 提交於 2020 11 27 12 47 35 摘要 受transformer模型的啟發,目前一些學者將該結構應用到文字行識別中,以替代rnn,取得了良好的效果,如在hga str和 srn。當前的文字行識別器為擁有更強的序列語義能力,模型多採用cnn rnn的結構,如目...

兩種if判斷

上海面試三 下面是c語言中兩種if語句判斷方式。請問哪種寫法更好?為什麼?int a if a1 第一種判斷方式 if 1a 第二判斷方式 答 這是個主觀題,不過多數人認為第二種好。從執行效率上講,第二種效率更高。另外,在編寫 時如果不小心將 寫成 即變成 1 a 這時編譯器將會給出錯誤提示。而如果...

mysql的兩種引擎 mysql的兩種儲存引擎

背景 最近在使用spring data jpa操作mysql,在使用jpa的自動建表功能之後,處理多對多關係 manytomany的時候,spring data jpa會給中間表的兩個欄位都加上外來鍵引用。當前使用的版本預設的資料庫儲存引擎為myisam。這種儲存引擎是為資料庫查詢效能而生的,不支援...