少し前のことですが、「BERT」という自然言語処理のモデルが話題になりました。
今回は、そのBARTについてまとめてみます。
BERTって何?
BERTは、2018年10月11日にGoogleが公開した言語表現モデルです。
Bidirectional Encoder Representations from Transformers を略してBERT。
なにがすごいの?
事前学習をさせることで、さまざまな自然言語処理に対して汎用的に使えるとのこと。
ひとつのモデルで細かな変更を行わずに、さまざまなタスクを高い精度で行うことができるそうです。
今までのモデルでは出せなかった高精度の仕事ができるため、注目を浴びました。
(引用元:https://twitter.com/_Ryobot/status/1050925881894400000)
2つの事前学習
BERTに行わせる事前学習の方法には、2つの手法があります。
Masked Language Model(穴埋めクイズ)
入力文の中のいくつかの単語をランダムに隠したり、全く別の単語に置換されたデータを入れます。正しい単語を予測させるというタスクを行います。
まさに穴埋め問題を解くようなものですね。
文脈の特徴や情報を掴むことができるよう学習をしていくことになります。
マスクトークンに置き換えられたもの
my dog is hairy → my dog is [MASK]
ランダムに別のトークンに置き換えられたもの
my dog is hairy → my dog is apple
置き換えなしのもの
my dog is hairy → my dog is hairy
Next Sentence Prediction(隣接文クイズ)
文章同士が隣り合っているか、そうでないかを当てることで、文章の表現についても学習を行います。
[CLS] the man went to [MASK] store [SEP]
he bought a gallon [MASK] milk [SEP]
→ isNext(隣り合っている。最初の文章の後に、次の文章がくる)
[CLS] the man [MASK] to the store [SEP]
penguin [MASK] are flight ##less birds [SEP]
→ notNext(隣り合っていない。最初の文章と次の文章がつながらない)
穴埋めクイズと同時に学習させるため、ところどころ単語が隠されています。
上記のように1つ目の文の後に、2つ目の文章がつながるかどうかを学習して、文章表現を獲得しています。
まとめ
自然言語の意味理解には課題点は多いですが、BERTが示した方法によって、できることが増えたように感じます。
社内でもBERTを使ってみたいと思っています。
おまけ。BERTの対抗馬?
中国のバイドゥから、言語の意味を理解する自然言語処理モデル「ERNIE(Enhanced Representation through kNowledge IntEgration)」が発表されています。
こちらにBERTとの比較がありますので、気になる方はこちらもどうぞ。
(全文を読むには登録が必要ですが、無料で月3本まで読めます)