AI・機械学習 自然言語処理

ERNIE(Enhanced Representation through Knowledge Integration)を理解する

2020年5月9日

今回はBERTの改良版であるERNIEの論文を読みたので解説したいと思います。

https://arxiv.org/abs/1904.09223

これとは同時期に別のERNIE(Enhanced Language Representation with Informative Entities)も提案されていますが、偶然同じネーミングになったとのことです。こちらのERNIEは、以下の記事で解説しています。

ERNIEとは

ERNIEの仕組みはBERTと同じ双方向のTransformerです。

BERTと異なる重要な点は、事前学習の方法です。BERTでは、単語にマスキングをして、その単語を予測するというタスクを解くことで双方向の言語モデルを学習しましたが、ERNIEではそれに加えて、以下のタスクも解きます。

  • フレーズ単位のマスキングを行う
  • エンティティ(固有名詞)単位のマスキングを行う

この違いを図示するとこのようになります。上段がBERTのMasked LM、下段がERNIEのマスキングです。ERNIEの方は、単語のマスキング(“written”)に加えて、フレーズのマスキング(“a series of”)と固有名詞のマスキング(“J. K. Rowling”)を行っています。

本論文では中国語のタスクを解いていますが、恐らく中国語ではトークンの単位が文字単位になるので、文字単位のマスクだけでは完全に意味を学習できないので、フレーズ単位の学習をするという発想になったのかと思います。

さらにエンティティ(固有名詞)単位のマスキングをすることで、エンティティの情報を取り込むことができ、事前知識をより深く得ることで、より賢い言語モデルができるということです。

ERNIEの仕組み

ERNIEはBERTと同じTransformerベースです。ここでは、BERT、Transformerの説明はしませんので、以下の記事を参考にしてください。

ERNIEでは事前学習の方法をBERTのMasked Language Modelから改良します。具体的には、以下で説明する3つの事前学習を順番に行います。

Basic-Level Masking

こちらはBERTと同じで、トークンをマスキングし、そのマスクされたトークンを予測します。 インプットの文章の15%をマスキングします。これにより、基本的な単語の意味を学習します。

Phrase-Level Masking

フレーズ単位でマスキングし、そのフレーズを予測します。 各言語の解析ツールを使って、フレーズを特定し、マスキングします。

Entity-Level Masking

人物、地名、企業名、製品名といった固有名詞をマスキングし、それを予測します。これにより、単語の埋め込み表現が、固有名詞の特徴も加味することになります。

それぞれのマスキングの具体例が以下の図です。フレーズや固有名詞をきちんと特定することさえできれば、特に難しいところはなさそうです。

実験

事前学習ですが、色々な種類のコーパスを使って学習した方が精度が良いということで、以下の通り複数種類のコーパスを使っています(カッコ内は文章数)。

  • Chinese Wikipedia(21M)
    中国のWikipedia。
  • Baidu Baike(51M)
    encyclopedia、いわゆる百科事典。フォーマルな表現が多い。
  • Baidu news(47M)
    映画のタイトル、俳優、サッカーチームなど最新の情報が収録されている。
  • Baidu Tieba(54M)
    ディスカッション・フォーラム。スレッドの形式になっている。次に説明するDaiglogue Language Model(DLM)というものに使うようです。

上記の通り、Baidu Tiebaというデータセットは対話形式の質問-回答という形になっています。そこで、ERNIEでは、dialogue embeddingという形で、QuestionとResponseに分けてembeddingします。これにより、どこが質問でどこが回答かという情報を付け加えることができます。さらに、質問あるいは回答を他の文章に置き換えることにより偽のサンプルを作成し、それが本当の対話なのか偽の対話なのかを判断するように設計されているとのことです(すみません、本当か偽かを予測するようなタスクを解いているのかもしれませんが、よくわかりませんでした)。このタスクはMasked LMとは別に行うそうです。

以下は“How old are you? 8. Where is your hometown?”という質問-回答-質問というダイアログの場合のイメージです。

実験結果

中国語の5つのタスク(Natural Language Inference、Semantic Similarity、Named Entity Recognition、Sentiment Analysis、Retrieval Question Answering)で精度を検証しています。結果は以下の通りです。

どのデータセットにおいても、BERTの精度よりも良くなっています。

次にマスキングの効果を見ています。1番上が、事前学習データセットの10%を使って、通常のマスキングのみを行った場合のNatural Language Inference(NLI)タスクの精度です。2番目はフレーズ単位のマスキングを追加した場合ですが、テストセットで0.5%程度精度が改善しています。3番目はフレーズ単位、エンティティ単位のマスキングを追加した場合の結果でが、さらに0.3%改善しており、合計で0.8%改善しています。つまり、フレーズ単位、エンティティ単位のマスキングは相応の効果があることがわかります。

次に、データセットのバリエーションおよびDialogue Language Model(DLM)の効果を見ています。

1段目はBaike(encyclopedia; 百科事典)のみで事前学習をした場合、2段目は16%をニュースコーパスとした場合ですが、そこは精度の改善は見られません。3段目は15.7%をディスカッション・フォーラムの対話形式のデータセットを使って、DLMを学習した場合です。0.9%精度が改善しているので、DLMの効果は十分あるようです。

最後に、BERTとERNIEで固有名詞部分を予測するタスクを解かせています。

以下は、そのいくつかのサンプルですが、例えば1では、BERTは人物名が入るということはわかっていながらも同じ文章に出てくる人物名を予測したり、2では、違う人物名を予測しています。ERNIEでは正しく予測できています。

5は、ERNIEも間違っていますが、きちんとオーストラリアの都市名(メルボルン)を予測しています(正解はオーストラリアの首都なのでキャンベラです)。BERTは都市名ではなかったので、ERNIEの方が固有名詞に関してよく理解しているように見えます。

まとめ

今回は、フレーズや固有名詞の理解に焦点を当てたERNIEの論文を見てきました。感覚的にこういった知識を使って言語を理解するというのは、実務への応用において重要になってきそうな気がします。

-AI・機械学習, 自然言語処理
-,