ここでは、入門的な内容を理解している方向けに、自然言語処理モデルの解説をしています。
ただし、応用編と言っても、基本的な内容から説明しています。
まず、全体感をつかむために自然言語処理の歴史、特にニューラルネットワークを使ったものについての歴史を概観しています。
ニューラルネットワークを使った自然言語処理の歴史を簡単にまとめています。
ある程度自然言語処理モデルを理解してから読んでいただいてもいいですし、まだまったくわからないけど、どんな風に発展してきているのか知りたい、という方に読んでいただいていてもいいと思います。
入門的なモデル
ここまでの入門的なモデルです。
Bag-of-Wordsは、説明変数に単語の回数やそれを調整したTF-IDF(Term Frequency- Inverse Document Frequency)を使った手法です。
結果がわかりやすく、簡単に実装することができるので、ベースラインモデルとして利用されることが多いです。
単語の意味を表すベクトルである埋め込み表現(分散表現)を計算する手法です。
非常にシンプルなニューラルネットワークを利用することにより、Queen = King – Man + Womanというような単語同士の線形関係が捉えられます。
再帰的ニューラルネットワーク自体は、既に時系列データのモデリングで利用されていましたが、それを自然言語処理に適用しました。
文章を単語の時系列データとみなして、処理をする手法で、長く自然言語処理の主要なモデルとして利用されています。
Attentionメカニズム
処理の高速化のため、LSTMを使わずAttentionメカニズムを全面的に採用したモデルです。
BERTやOpenAI GPTなど現在主流の多くのモデルはこのTransformerベースとなっています。
転移学習
モデルというよりは、学習の手法になります。
事前学習-ファインチューニングのステップを踏む効果は非常に大きく、これにより現在のモデルの精度が達成されたと言えます。
事前学習言語モデル
ここからモデルの発展と転移学習が合わさったことにより、どんどんSoTAを達成していきます。
LSTMに対して転移学習をしますが、これまでの研究成果をもとにした細かい工夫がたくさんあります。
こちらもLSTMベースの転移学習です。
これまでは単語には一つの意味しか持たせられないというのが通常でしたが、ELMoでは文脈に応じた単語表現を求め、それをタスクに合わせたモデルに転移していきます。
Transformerに転移学習をさせています。
ELMoと違いタスクごとにモデルの構造を変える必要がありません。
GPT2、GPT3と発展していきますが、仕組み自体はGPTがわかっていれば十分です。
BERTを改良したモデル
BERTはそのモデルの持つ最大限の力を出し切っていないということで、モデルの仕組みはそのままで色々な調整を加えてSoTAを達成しています。
一つの重要なポイントはデータ量を増やして事前学習したところです。
BERTをさらに大きなモデルにしようというものです。
ただ、単純にレイヤーなどを増やして大きなモデルにすると計算付加が大きくなりすぎるので、工夫をしてパラメータ数を減らし、大きなモデルにしています。
Transformerの仕組みでは、長文を処理しようとするとメモリの消費量が文章の長さの2乗にh例して多くなります。
そこでAttentionに工夫をして、メモリ消費量を大幅に抑えました。
それによりWikipedia全文などを処理することができるようになっています。
固有名詞をうまく扱う手法
こちらはBaiduにより提案されたモデルで、BERTの仕組みはそのままで、フレーズ単位のマスキングを行ったり、エンティティ(固有名詞)単位のマスキングを行うことにより、より賢くBERTを学習させようというものです。
文書の埋め込み表現を求める
BERTによる文章の埋め込み表現の精度を改善させることにより、類似文書の検索などに使えるようにしています。
モデルを支える技術
Transformerで使われている層の正則化手法です。
従来のBatch Normalizationの欠点を克服し、バッチサイズが1でも対応できるように設計されています。
BERTやOpenAI GPTで使われている活性化関数です。