Oops! It appears that you have disabled your Javascript. In order for you to see this page as it is meant to appear, we ask that you please re-enable your Javascript!
スポンサーリンク

BERT(ディープラーニング)による自然言語処理は、どんなデータで評価されたの?どんな応用ができそう?

スポンサーリンク
BERT ディープラーニング 深層学習 自然言語処理 データセット テキストマイニング
BERT ディープラーニング 深層学習 自然言語処理 データセット
スポンサーリンク
スポンサーリンク

ディープラーニングによる人工知能の進歩は、日進月歩です。

 

画像認識や音声認識の分野においては、

すでに人間と同等かそれ以上の性能を示すモデルができています。

しかし、自然言語処理においては、人間のスコアを超えるモデルはできていませんでした。

 

最近発表された、GoogleによるBERTというディープラーニングモデルでは、

11個の自然言語処理タスクの中のいくつかで、人間のスコアを超える性能が出せることが報告されています。

 

画像認識などでは、様々なところで応用が進んでいますが、

自然言語処理における今回の成果がブレークスルーとなり、

さらなる応用・活用が加速する可能性があります。

 

また、BERTはデータや学習済みモデルが公開されているので、

巨人の肩にのった応用への活用も進むのではないかと思います。

 

 

そこで本記事では、自然言語処理ってなに?という方も理解でき、

  • BERTが、どんなタスクで評価されたのか
  • どのくらいの成績を収めたのか
  • どんな応用ができそうか
  • 課題が残っているのは、どんなタスクか

などについて、データセットの中身を見ながらサクッと理解してもらえたらと思います。

 

 

本記事の概要

BERT(ディープラーニング)による自然言語処理は、どんなデータで評価されたの?

 

BERTとは

BERTは、Bidirectional Encoder Representations from Transformers

の頭文字をとったディープラーニングモデルです。

 

これまでのディープラーニングによる自然言語処理では、

注目単語の前方か後方かどちらか1方向の文脈情報の使用のみで学習されていました。

BERTの特徴の1つは、注目する単語の、前後の文脈の両方(Bidirectional)について学習している点にあるということです。

(詳しくは、本記事下の論文等をご覧ください)

 

 

今後どのように応用されていきそうか興味が湧いたので、

  • どんなデータセット
  • どんなタスク
  • どのくらいの性能

が報告されたのかを見てみました。

 

 

 

 

 

 

 

 

BERTは、多様なデータセットで評価されていました

これまでの自然言語処理の多くは、タスクごとに学習を行い性能を評価することが多いです。

それに対して、BERTでは、タスクごとに区別することなく適用して、どのタスクにも良い性能を発揮した、ということです。

 

各タスクで人間のスコアを超えた点も価値がありますが、

より汎用的なモデルとして成功している点も、すばらしい点の1つだと感じました。

 

 

では具体的に、どのような自然言語処理のタスクで性能が評価されたのかについて、

 

BERTで使用されたデータセットとタスク内容をご紹介します。

 

 

今回の論文では、大きく分けて、4つのベンチマークセットが使われていました。

  1. SQuAD:The Standford Question Answering Dataset
  2. NER: CoNLL 2003 Named Entity Recognition dataset
  3. SWAG:The Situations With Adversarial Generations dataset
  4. GLUE:The General Language Understanding Evaluation benchmark

 

(1),  SQuAD:The Standford Question Answering Dataset

スタンフォード大が提供している、約10万ペアのクラウドソーシングの質問応答ペアデータセットです。

入力として、「質問」と「Wikipediaの段落」を使います。

例えば、質問としては、

「Where do water droplets collide with ice crystals to form precipitation?」

(水滴が雨になるには、氷の結晶と、どこで衝突しますか?)」

Wikipediaの段落としては、以下のものを入力します。

「… Precipitation forms as smaller droplets coalesce via collision with other rain drops
or ice crystals within a cloud. …」

(小さい水滴としての雨は、他の降雨か氷の結晶と、雲の中で衝突することによって形成されます)

 

これらを入力として学習し、答えを出力します。上の例ですと

「within a cloud」

(雲の中)

が正解となります。

 

このような質問応答ペアが約10万ペア用意されているデータセットになります。

 

(2),  NER: CoNLL 2003 Named Entity Recognition dataset.

20万のアノテーションされた固有表現のデータセットです。

Named Entity Recognition(固有表現抽出)とは、文中にある、固有名詞や日付、時間、数量など、あらかじめ定義された固有表現分類に分類することをいいます。

 

固有表現抽出は、例えば日本語では、文を単語に分解するときなどに活躍します。

文を形態素解析などで単語に分けるときに、固有表現が未知の語として処理されるため、解析がうまくいかないことがあります。

固有表現は、1つひとつ登録して処理する必要があります。

大量のデータに対してそれでは手に負えません。

そこで、固有表現を一括して処理できるように、固有表現の自動抽出が望まれています。

本データセットは、固有表現抽出のためのデータセットになります。

 

 

(3),  SWAG:The Situations With Adversarial Generations dataset

約11万の完結したペア文例集で、常識を使いながら推論するためのデータセットです。
ある文の続きについて、4つの可能性の中から、常識的に正しいものを選ぶタスクとなっています。
例えばある文として、以下のものが与えられます。

A girl is going across a set of monkey bars. She
(少女は、一連の雲底を横切っています。彼女は)

 

この続きとして、常識的に正しいものをしたの4つの中から選ぶ、というものになります。

(i) jumps up across the monkey bars.
(雲底で跳び上がります)

(ii) struggles onto the bars to grab her head.
(頭をつかむために、雲底でもがいています)

(iii) gets to the end and stands on a wooden plank.
(終わりまで行き、木の板の上に立ちます)

(iv) jumps up and does a back flip.
(跳び上がり、宙返りをします)

こういったデータが11万件含まれたデータセットになります。

 

 

 

 

 

 

 

 

(4), GLUE:The General Language Understanding Evaluation benchmark

こちらは、自然言語処理のためのデータセットの集合体です。

9つのデータセットが含まれています。

今回の論文では、そのうちの8個のデータセットを用いています。

詳しくは以下になります。

(1), MNLI:Multi-Genre Natural Language Inference

約43万の含意関係に関するテキストペアデータです
(含意・矛盾・中立のどれかを選びます)

(2), QQP:Quora Question Pairs

 2つの質問が同じ意味かどうかを判定します

(3), QNLI:Question Natural Language Inference

 質問応答データセットで、質問と文は、正しい答えを含んでいるかどうかを判定します

(4), SST-2 The Stanford Sentiment Treebank

 映画の感想の感情分析で、良いか悪いかを判定します

(5), CoLA The Corpus of Linguistic Acceptability

 使われている英語が、言語学的に受け入れれるかどうかを判定します

(6), STS-B The Semantic Textual Similarity Benchmark

ニュースの見出しなどについての感想のペアが、意味論的に意味が一致するかどうかを判定します

(7), MRPC Microsoft Research Paraphrase Corpus

オンラインニュースから自動抽出された文のペアが、意味論的に同じ意味かどうかを判定します

(8), RTE Recognizing Textual Entailment

文のペアに含意関係があるかどうかを判定する( (1)のMNLIより少数のデータセットになります)

(9), WNLI Winograd NLI is a small natural lan- guage inference dataset

今回の論文では、除外されています。

 

論文には、これらのデータセットそれぞれについて、

BERTとこれまでの手法の結果が比較してまとめられています。

 

それぞれのタスクは、BERTによって、どれも性能が上がっているのですが、

(5),CoLAと (8), RTE のタスクで、特にスコアが上がっていました。

言語学的な問題や、ペアの文の含意関係を判定する問題について、より得意になったと言えます。

 

 

 

 

 

 

 

BERTは、人を超えたの?

Twitterを見ていると、

  • BERTが人間の理解力を超えた
  • 自然言語処理でもブレークスルーになるのでは

といった意見がありました。

 

論文中のデータセット内で、確かに人間のスコアを超えています。

 

また、どのタスクにも通用するモデル、ということで応用的な価値が高いのではないかと思います。

 

ただ人間の理解力を超えた、というのは、「理解力」をどう考えるかで変わるのかなと思いました。

 

東ロボ君の開発を通じて、読解力という観点からの考察をされた本に以下のものがあります。

AI vs. 教科書が読めない子どもたち

本書では、読解力について、数学的な観点から考察があり、数学には意味を記述する方法がまだない、とのことです。

これまでの人類の歴史の中での(数学的な)発見すべては、

「論理」もしくは「確率・統計」に収まります。

BERTなどのディープラーニングは、大量のデータから傾向を見出す方法ですので、確率・統計に立脚した手法といえます。

データから、現象のパターンが分かったとしても、意味を記述する方法がない以上、それを理解したことにはならない、

といった意味合いのことが書かれています。

 

 

BERTの発表によって、

チューリングテスト」や「中国語の部屋」で知られるような、

「理解とは?」といった問題が再び問われた点も重要なポイントかと思います。

 

 

私はディープラーニングを使うことで(たとえプラグマティックにでも)

より良いものができれば、それはいいことだと思います。

新しい化合物がガンに効くことがわかったとします。

でもそれが、体の中でどのような仕組みで効いているかわからない。

(理解はしたいですが)

とりあえずはそれでいいのではないかと思います。

 

 

 

というわけで、本記事では、BERT(ディープラーニング)による自然言語処理について、

どんなデータで評価されたの?について、

データセットなどを見ながらサクッとまとめました。

これから自然言語分野でも、応用が加速されるのではないでしょうか。

 

 

(Google AI ブログ)

Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing

 

(論文)

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

 

 

 

 

 

 

こちらもございます

ゼロから作るDeep Learning ❷ ―自然言語処理編

 

深層学習による自然言語処理 (機械学習プロフェッショナルシリーズ)

 

PythonとKerasによるディープラーニング

 

PyTorchで始める深層学習 ――数式なしで基礎から実装まで

 

現場で使える!PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装 (AI & TECHNOLOGY)

 

Deep Learning with Pytorch

 

Hands-On Deep Learning with PyTorch: Getting to know Facebook’s Deep Learning Framework (English Edition)

 

Natural Language Processing with PyTorch: Build Intelligent Language Applications Using Deep Learning

 

Deep Learning With Python: Beginner Guide with TensorFlow, Keras and Pytorch (English Edition)

 

Deep Learning with PyTorch Quick Start Guide: Learn to train and deploy neural network models in Python

 

 

 

こちらもございます↓

 

「自然言語処理」を学びたい人におすすめの良書、10冊はこちらです