BERTとは|Googleが誇る自然言語処理モデルの仕組み、特徴を解説

このエントリーをはてなブックマークに追加

LINE Clova、Amazon Echoなどのスマートスピーカーやウェブ上のカスタマーサービスに見られるチャットボットはどれも自然言語処理というAI技術が用いられています。この自然言語処理においては、2018年10月にGoogleがBERTという手法を発表し、「AIが人間を超えた」と言わしめるほどのブレイクスルーをもたらしました。

BERTはすでに様々なサービスに応用され、活躍の幅を広げています。

本稿では、BERTとは何か、特徴、仕組みを詳しく解説します。

BERTとは

BERTとは、Bidirectional Encoder Representations from Transformers の略で、「Transformerによる双方向のエンコード表現」と訳され、2018年10月にGoogleのJacob Devlinらの論文で発表された自然言語処理モデルです。翻訳、文書分類、質問応答など自然言語処理の仕事の分野のことを「(自然言語処理)タスク」と言いますが、BERTは、多様なタスクにおいて当時の最高スコアを叩き出しました。

のちに詳しく解説しますが、BERTの特徴として「文脈を読むことが可能になった」ことを挙げられます。BERTにはTransformerというアーキテクチャ(構造)が組み込まれており、文章を双方向(文頭と文末)から学習することによって「文脈を読むこと」が実現しました。

自然言語処理とは

自然言語処理(Natural Language Processing)とは、人間の言語(自然言語)を機械で処理することです。
具体的には、言葉や文章といったコミュニケーションで使う「話し言葉」から、論文のような「書き言葉」までの自然言語を対象とし、それらの言葉が持つ意味を解析する処理を指します。また、自然言語には意味が一意に定まらない曖昧性があります。自然言語処理は、その曖昧性を含め、自然言語で書かれたテキストデータを処理するための技術です。
自然言語処理によって、翻訳、感情分析(文章の意見がポジティブかネガティブか分析)、文書分類(文章のカテゴライズ)などが可能になりました。

BERT導入の背景

BERT導入の背景として、「多様化する検索クエリへの対応」が挙げられます。検索エンジン以外でも、声でコンピューターやデバイスを操作するVUI(Voice User Interface)の普及もBERT導入の背景として考えられます。「天気情報を調べてもらう」「アラームを設定してもらう」などの自然言語の命令は長文で複雑化しやすい傾向にありました。こうした中で文脈を読めるモデルの需要が高まっていました。

また、一般に、タスクに応用するためには、構造ごと修正する必要がありましたが、BERTはその必要がなく容易に別のタスクに応用できることや、学習データの不足を克服した点も注目されています。

BERTの仕組み

自然言語処理は、単語を高次元のベクトルに置き換える分散表現という技術を用いて入力されます。単語データの並びのことを「シーケンス」と言い、これはいわゆる文章にあたりますが、BERTは入力されたシーケンスから別のシーケンスを予測します。BERTは事前学習モデルであり、入力されたラベルが付与されていない、つまり名前がついていない分散表現をTransformerが処理することによって学習します。実際には、TransformerがMasked Language ModelNext Sentence Predictionという2つの手法を同時進行で行うことで学習します。

Masked Language Model

従来の自然言語処理モデルでは、文章を単一方向からでしか処理できませんでした。そのため、目的の単語の前の文章データから予測する必要がありました。しかし、先述の通りBERTは双方向のTransformerによって学習するため、従来の手法に比べ精度が向上しました。それを実現しているのがMasked Language Modelです。以下で説明します。

[具体的な処理]

入力文の15%の単語を確率的に別の単語で置き換えし、文脈から置き換える前の単語を予測させます。具体的には、選択された15%のうち、80%は[MASK]に置き換えるマスク変換、10%をランダムな別の単語に変換、残りの10%はそのままの単語にします。

Ledge.ai編集部で作成

このように置換された単語を周りの文脈から当てるタスクを解くことで、単語に対応する文脈情報を学習します。

Next Sentence Prediction

Masked Language Modelにおいて単語に関しての学習はできますが、文単位の学習はできません。そこで、2つの入力文に対して「その2文が隣り合っているか」を当てるよう学習します。これにより、2つの文の関係性を学習できます。Next Sentence PredictionによってBERTは文章も考慮した、より広範的な自然言語処理モデルとして機能できます。

[具体的な処理]

文の片方を50%の確率で他の文に置き換え、それらが隣り合っているか(isNext)隣り合っていない(notNext)か判別することによって学習します。(2文を[SEP]というトークンで分け、isNextかnotNextか分類するために[CLS]というトークンが用意されます。)

Ledge.ai編集部で作成

このように、BERTは単語だけでなく文全体の表現についても学習することができます。

導入方法

BERTによってタスクを解くためには、既存のタスク処理モデルに接続します。一定のタスクのために学習されたアーキテクチャを別のタスクに活かす転移学習という学習手法があります。BERTは既存のタスク処理モデルに転移学習し導入します。

Ledge.ai編集部で作成

BERTの特徴

BERTによってどのような問題が解決されたか具体的に解説します。

① 文脈理解

BERT以前にはELMoOpenAI GPTといった言語処理モデルが存在しました。ELMoは浅い双方向モデルであり、OpenAI GPTは未来の単語しか予測することができない単一方向モデルだったので、文脈読むことができませんでした。

BERT導入以前のGoogle検索では「to」のような文と文の関係を結ぶ言葉を処理できませんでした。Googleが紹介している一例をここでは解説します。

「2019 brazil traveler to usa need a visa(2019年 アメリカへのブラジル旅行者はビザが必要)」と検索するとします。この場合、ユーザーはブラジルからの旅行者はアメリカに行く際にビザが必要かどうかを知りたいはずです。ところが、BERT導入前は「to」を処理できないので「ブラジルへのアメリカ人旅行者」と解釈し、ニーズに合致しない検索結果を表示されていました。
BERT導入後は、「アメリカへのブラジル人旅行者」と解釈ができるようになり、アメリカ大使館がブラジル人旅行者向けに公開しているビザ情報のページを上位表示するようになりました。

* Global GPU shipments market share from 3rd quarter 2013 to 4th quarter 2019, by producer(外部リンク)

② 汎用性

BERTの特徴として汎用性の高さが挙げられます。従来のタスク処理モデルは特定のタスクにのみ対応しています。しかし、BERTはモデルの構造を修正せずとも、様々なタスクに応用できます。既存のタスク処理モデルの前に接続(転移学習)するだけで、自然言語処理の精度を向上させられます。

③ データ不足の克服

BERTは従来のモデルとは違い、ラベルが付与されていないデータセットを処理できます。現状、自然言語処理タスクのためにラベルが付与されたデータセットが少なく、手に入れることが困難です。またラベルを付与するにも時間と労力がかかります。一方、インターネットが普及した現代では、ラベルが付与されていないデータは大量に存在し、容易に獲得できます。そのため、BERTはこのようにデータ不足を克服した点で評価されています。

性能の数値評価(ベンチマーク)

自然言語処理モデルの性能はGLUE(The General Language Understanding Evaluation)という指標で評価できます。GLUEはあらゆる自然言語処理タスクにおけるスコアを算出するベンチマークです。以下の表に結果を示しています。

以下は実験で使用されているタスクの説明です。

    ・MNLI:含意関係の分類タスク
    ・QQP:質問内容が同じであるかを分類するタスク
    ・QNLI:質問と文が与えられ文が質問の答えになるか当てる分類タスク
    ・SST-2:映画のレビューに対する感情分析タスク
    ・CoLA:文の文法性判断を行う分類タスク
    ・STS-B:2文の類似度を5段階で評価する分類タスク
    ・MRPC:ニュースに含まれる2文の意味が等しいかを当てる分類タスク
    ・RTE:小規模な含意関係の分類タスク

図は論文にて報告されている実験の数値です。BERTには、BASEとLARGEの二種類があります。LARGEはBASEよりもパラメーター数が多く、精度の高いモデルです。図の通り、全てのデータセットにおいてOPEN AIなどの既存モデルよりもBERTの方が高いスコアを出しています。

また、BERTをスタンフォード大学の文章読解ベンチマーク「SQuAD 1.1」で評価したところ、人工知能で初めて人間の平均の精度を超える結果を叩き出しました。(SQuaDは文章中から質問に合う適切な単語を選ぶタスクを課します。)

BERTの課題

大きなブレイクスルーをもたらしたBERTですが、いくつかの課題があります。その1つに計算する際のパラメーターが多く、層が厚い「巨大なモデル」である点があげられます。

巨大であれば、学習に時間がかかる、大きなメモリ量が必要になるなどのデメリットが生まれます。一般に配布されているBERTモデルでは、16個のTPU(機械学習に特化したGoogleの自社開発プロセッサ)を使って学習に4日かかると言われています。また、精度を上げるためにパラメーターを増やしても一定のところで精度が逆に落ちてしまうという構造の複雑さがありました。

それらの課題を克服するべく、BERTの軽量版ALBERT(A Lite BERT)が発表されました。ALBERTでは、層ごとにパラメーターを共有する、入力したベクトルの処理方法を変えることで精度を落とさずにパラメーターの数を減らすことができました。パラメーターを減らすことによってよりシンプルで現実的なモデルになりました。

さらに、先述のNext Sentence Predictionは文脈解読のための手法でしたが、実際に文脈解読の精度を向上しているかという点で疑問視されていました。ALBERTではSentence Order Predictionという別の手法を用いて文脈解読の精度を向上させました。

BERTの現状と展望

Free-Photos pixabay

Googleは2019年10月25日、公式ブログにおいてBERTを検索エンジンに導入したと発表しました。発表時は米Googleの英語検索のみ導入されていましたが、2019年12月10日、日本語を含む70以上の言語に展開されました。また、2019年11月25日に株式会社日立ソリューションズは独自技術の文書分類アプリ「活文 知的情報マイニング」にBERTを導入したと発表し、現在世界的に導入が進んでおります。

* Global GPU shipments market share from 3rd quarter 2013 to 4th quarter 2019, by producer(外部リンク)

今後、BERTの文脈理解によってスマートスピーカーやチャットボットの強化が進められると考えられます。

BERTには先述のALBERTだけではなく、XLNetや中国語向けに改良されたERNIEなどの進化系がいくつか開発されています。現在BERTは研究が盛んに行われているホットな分野です。人間の能力を超えたと言われることもありますが、まだ人間のように振舞うことはできません。今後の研究では今まで自然言語処理が苦手としていた文章要約や対話などのタスクも攻略されるのでしょうか。

自然言語処理は人工知能技術の中でも検索エンジンなどに利用される最も身近な技術の1つです。これを機にいつもは見えない内側の技術に注目してみてはいかがでしょうか。