概要
BERTの事前学習の方法にwhole word masking(以下、WWM)という学習方法があるので調べてみた。
事前知識
事前学習
BERTの事前学習の方法については qiita.com が詳しく書かれています。 事前学習の方法を大雑把にまとめると、
今回は「単語予測」のみに注目。(WWMは単語予測のときに使われているため)
BERTの形態素解析
BERTの形態素解析にはWordPieceが使用されており、各単語はサブワードに分割される。
単語が先頭にない場合には「##」を付ける。
(playing → play + ##ingといった次第)
サブワードに分割するときは「vocab.txt」という辞書ファイルを用意して、単語と辞書を照らし合わせながら分割を行う。
上記の場合、「play」という単語が辞書に登録されており、ingがもっと小さな単語として処理され##が付与される。
単語予測
「単語予測」を行うときは一部のトークンを[MASK]
に置き換えて学習を行う。
例えば入力文のトークン化が
the man jumped up , put his basket on phil ##am ##mon ' s head
のとき、
[MASK] man [MASK] up , put his [MASK] on phil [MASK] ##mon ' s head
のように置き換える。
whole word masking
上記の
[MASK] man [MASK] up , put his [MASK] on phil [MASK] ##mon ' s head
を参考にすると、以前までの事前学習での[MASK]
の置き換えはランダムに行っていた。
WWMでは
the man [MASK] up , put his basket on [MASK] [MASK] [MASK] ' s head
のように単語に対応したトークン(##am、##monのようなトークン)を[MASK]
に置き換える。
効果
一般的にWWMをかけたpretrainedモデル方がランダムに学習させたpretrainedモデルよりfine tuningしたときの精度が良いらしい。
(上記のgoogleのBERTや京大の日本語Pretraiedモデル、NICTの日本語Pretrainedモデルで確認)