2018年にGoogleから発表されたBERT(バート)という自然言語処理のモデルは非常に有名ですよね。Google検索に導入されるなど広く産業応用されているBERTですが、アルゴリズムを理解するには少し難しいと感じる方も多いことでしょう。
本記事では自然言語処理のブレイクスルーとなったBERTのアルゴリズムとその応用の可能性について解説します。
BERTの概要
BERTは2018年にGoogleが発表した自然言語処理の事前学習モデルです。事前学習に2つのタスクを行い、その学習済みの重みを用いて必要なタスクとデータにFine-Tuning(ファインチューニング)することで11種類の自然言語処理のタスクで当時のSoTAを達成したことで話題を呼びました。
またタスクによって人間の認識精度を超えているものもあり、自然言語処理の大きなブレイクスルーとなって世間から非常に注目を集めたので、ご存知の方も多いかもしれません。
画像認識ではImageNetで学習済みなモデルのFine-Tuningなどで、事前学習済みモデルは広く利用されてきました。しかしBERT以前の自然言語処理の分野では画像認識分野のように様々なタスクに11個のタスクで最高精度を達成するほど汎用的に利用されるような事前学習済みモデルはありませんでした。(事前学習済みモデル自体はELMoやGPTなど様々なモデルが存在しています。)
事前学習
BERTの凄さは単語の分散表現の表現能力が非常に高いことにあります。この豊かな分散表現を手に入れるためにBERTはMasked LMとNext Sentence Predictionという2つの事前学習のタスクを行います。ここからは2つの事前学習タスクの具体的な内容について紹介していきましょう。
Masked LM
ひとつはMasked LMというタスクで、これは文書中の単語をある確率でマスクし、そのマスクした位置にある単語を予測するタスクです。このタスクによって単方向ではなく双方向な構造を持つBERTの分散表現を豊かにする学習を可能にしており、論文中では文書中の15%の単語をマスクして学習を行っています。
このタスクではマスクする単語を[MASK]というトークンで置き換えますが、Fine-Tuning時はこのトークンが出現しないため、事前学習とFine-Tuningでギャップが生じます。そのためマスクするトークンの80%は[MASK]で置き換え、10%は無作為に選択した別のトークンで置き換え、残り10%は元のトークンをそのまま用います。
これをCross Entropy Errorで学習させるのがMasked LMというわけですね。
Next Sentence Prediction
BERTの事前学習タスクの2つめがこのNext Sentence Predictionです。学習データからAとBという2つの文を選択します。AとBは50%の確率で実際に次の文であり、50%の確率で次の文ではなく、このどちらの関係を持つ文であるかを予測するのがNext Sentence Predictionというタスクです。
自然言語処理の主要なタスクであるQuestion AnsweringとNatural Language Inferenceでは文章間の関連性をいかに理解しているかが重要となります。次の文と直前の文の予測を行いながらこの関連性をモデルに獲得させていくという目的があります。このような単純なタスクでも文の関連性を獲得するには非常に有用であったと論文中で述べられています。
BERTの応用
BERTの代表的な応用例はGoogle検索で、Google検索にBERTが導入され、より良い検索につなげていることは公式からも発表がありました。
Understanding searches better than ever before
BERTを導入することで検索ワードの文脈をより正確に把握することができ、ユーザーが意図した検索したい情報を掴むことができるようになりました。現在私たちは身近なところでBERTによる恩恵を受けているんですね。
まとめ
BERTについて重要な点をまとめましょう。
- Googleが発表した自然言語処理で汎用的に利用できる事前学習モデル
- 2つの教師なしの事前学習タスクを行うことで豊かな分散表現を獲得
- BERTの事前学習モデルをFine-Tuningすることで、11個のタスクで最高精度を達成した