学びをみつけるAI・機械学習2019/07/19BERTとは何か?Googleが誇る最先端技術の仕組みを解説!チャットボットやスマートスピーカー等の普及によって、音声でコンピューターを操作する機会が増えてきました。これらのシステムはAI(人工知能)を使用していますが、そのコアになる技術が「自然言語処理」です。これは人間の会話(自然言語)の認識・生成を行う技術の総称ですが、自然言語処理はAI(人工知能)分野で今最も注目の集まる分野です。いうのも、この自然言語処理において最近大きなブレイクスルーがあり、それが2018年末に登場した「BERT」という手法なのです。複数のタスクにおいて人間の言語理解力を超える精度を示したことで大きな注目を集め、「ついにAI(人工知能)が人間を超えた」と言われるほどです。この記事では、自然言語処理に一つの転換点をもたらしたBERTという手法は一体何か、どんな成果を上げたのかについて、AI(人工知能)初心者の方にもわかりやすく解説します。Transformers(Transformerによる双方向のエンコード表現)」を指し、2018年10月11日にGoogleが発表した自然言語処理モデルです。BERTの特徴として、汎用性の高さが挙げられます。これは、WikipediaやBooksCorpusなどから得た大量の文章データを学習モデルが事前学習し、文章理解や感情分析などの様々なタスクに応用できるというものです。感情分析タスクであれば、与えられた文から感情を読み取って「肯定的」か「否定的」かのどちらであるかという結果を出力できます。これを活かして、アルゴリズムが複数の映画レビューを参照し、その映画の平均的な評価を分析するというタスクを高精度で行っています。Center」で活用されるなど、実用化も進んでいます。BERTが話題になったのはなぜ?どんな特徴がある?BERTが登場する以前にも、上記で述べたような自然言語処理タスクを解くモデルは数多く存在していました。BERTがこれほど大きな話題になったのでしょうか?実は、BERTモデルの構造は、既存のタスク処理モデルと比べて根本的な相違点があります。基本的に、従来のニューラルネットワークを用いた自然言語処理モデルは、文章理解や感情分析などの特定のタスクのみに対応しています。具体的には、タスクを実行するモデルに単語列の分散表現(文中の単語をベクトル化したもの)を入力します。この入力に応じてモデルが計算を行い、そのタスクに応じた結果を出力します。この点、BERTは事前学習モデルであり、既存のタスク実行モデルに「くっつける」ことで、そのモデルの精度を向上させる役割を果たします。この「くっつける」作業をFine-tuning、転移学習と呼びます。BERTでは既存の様々なタスク実行モデルに転移学習できるということです。BERTを転移学習したモデルは、少ないデータを追加学習するのみで動作するので、一からモデルを構築しなくてすみます。Understandingまた、自然言語処理における長年の課題として、学習用データの不足が挙げられます。これはデータ収集やラベルの付与に多大な時間とコストがかかるのが主な理由です。BERTは、ネット上にある大量のラベル未付与のデータを用いて事前学習を行うため、データ不足という課題を克服するという点でも画期的です。Art=最高水準)を達成しています。UnderstandingBERTが評価されたポイントでは、BERTは具体的にどのようなタスクで好成績を出したのでしょうか。有名なベンチマークタスク「SQuAD」と「GLUE」について解説します。Dataset」の略で、スタンフォード大学が一般公開している言語処理の精度を測るベンチマークです。約10万個の質問応答のペアデータを含んでおり、Wikipediaの文章から適切な回答を選択します。cloud」(雲の中)という具合に、文章から適切な回答を抜き出します。GLUEは自然言語処理に関する9種類の学習データを含んだデータセットで、BERTでは以下の8種類を用いています。Inference):約43万個のテキストデータで、テキスト同士の関連性(含意・矛盾・中立)を判定。Pairs):2つの質問が同じ意味かを判定。Inference):文章内に質問の回答が含まれているかを判定。Treebank):映画のレビューを基に感情分析し、良し悪しを判定。Acceptability):文章が文法的に正しいかを判定。Benchmark):2つのニュース見出しの意味的類似性を判定。Corpus):2つのニュース記事が意味的に等価かを判定。Entailment):2つの文章が含意関係かどうかを判定。この他、「SWAG」や「CoNLL」など計11種類の自然言語タスクで評価したところ、全タスクでSOTA(State-of-the-Art:最先端・最新技術)を達成するという圧倒的な成果に。1.1ver.とSWAGでは、人間の平均スコアを凌駕しています。Understandingこのように、単一のBERTモデルを様々なタスクに応用可能であるほか、複数のタスクで人間の精度を超えるほどの言語理解力を獲得したという点もブレイクスルーだといえます。BERTの構造・仕組みは?どのように実現する?では、BERTはどのような手法でブレイクスルーを起こしたのか、以下ではBERTの構造・仕組みについて解説します。BERTの事前学習の特徴として、「Transformerが文章データを基に、文脈を双方向(Bidirectional)に学習する」ことが挙げられます。Transformerとは言語処理に秀でた機械学習アーキテクチャで、BERTではTransformerが文章内の特定の単語を左右両方の文脈から予測することで学習します。具体的には「穴埋めクイズ」と「隣接文予測」という手法を用いますが、こちらは下記で説明します。GPTなどが挙げられますが、これは単一方向のみの学習、つまり特定の単語の右側(もしくは左側)にある単語列を読み込んで文脈を予測します。双方向モデルはELMoなどが既に存在しますが、BERTと比べて双方向性が浅く、いずれにしてもBERTのような高精度なモデルではありませんでした。BERTは事前学習モデルなので、学習データは分散表現として出力されます。分散表現のベクトルでは意味の近い単語同士が近くに配置されるなどの情報として表され、これを各タスクに応じたモデルへ転移学習を行うことで、目的に特化した出力が得られる仕組みです。ちなみに、BERTは計104つの言語で学習を済ませており、日本語にも対応しています。学習済みモデルはコチラから無償利用できます。MODEL続いて、BERTの双方向学習を実現した2つの手法を解説します。Model(穴埋めクイズ)」という手法で、アイデア自体はシンプルです。Modelでは、文章データ内から特定のトークン(文章の最小単位となる文字や文字列)を15%ランダムに選び、[MASK]トークンに置き換えて隠します。[MASK]このマスク化された部分の単語を、前後の文脈から予測します。予測する単語が文章内の15%と少ないこと、また文章全体を予測する訳ではないので処理に時間がかかるという難点があります。Prediction(隣接文クイズ)」とは、2つの文章を与えて、それらが相互関係にあるかを判定します。具体的には、学習データの2つの文章のうち、後者が50%の確率で前者と無関係な文章に置き換えられます。後者が前者の後に来る表現として意味的に正しければIsNext、そうでなければNotNextの判定をします。[SEP]判定:NotNextこのプロセスを大量に繰り返すことで、モデルに言語処理能力を獲得させるわけですが、この手法は学習コストがかかり、最大で16個のクラウドTPUを使用した場合でも、学習に4日かかっています。その後発表された新たな手法では、従来のBERTの学習を76分で完了した成果も発表されており、事前学習を用いた自然言語処理は、今後より多くのタスクで活用しそうです。AI(人工知能)が自然言語を文脈レベルで理解することは長い間困難とされてきました。ロボットに大学入試の問題を解かせるプロジェクトとして有名な「ロボットは東大に入れるか。」プロジェクトでは、言語理解タスクにおいて壁に当たり、プロジェクトは断念を余儀なくされています。BERTは自然言語処理の性能を飛躍的に向上させた最初の実例だと言えます。一方で、BERTが達成した言語理解力は、あくまで特定のタスクにおいてのみ効果があるものです。「BERTの登場=AI(人工知能)が人間以上の言語力を獲得した」とは、一概に言えません。自然言語処理の研究は日進月歩で進んでいます。2019年6月に登場した「XLNet」では、既にBERTのスコアを凌駕してSOTAを達成しています。画期的な手法が登場する自然言語処理は、今後も注目すべき分野だといえそうです。ゼロからPythonで学ぶ人工知能と機械学習プログラミング未経験者でもPycharmや有名な機械学習ライブラリを使って、文字認識や株価分析を行うことができるようになります。顧客ターゲティングなど、実践的なビジネス課題でデータ分析の一連の流れが身につきます。初心者でも簡単に自作できる「チャットボット」に必要なプログラミング知識等を学べます。利用規約お問い合わせ。