ELMo (G検定)

ELMo

1. 定義と概要

ELMo(Embeddings from Language Models、エルモ)とは、2018年に発表された自然言語処理の手法です。Allen Institute for Artificial Intelligence(AI2)とワシントン大学の研究チームが、この手法を提案しました。文中における単語の使われ方に応じて、単語のベクトル表現を動的に変化させる点に特徴があります。

土台は2層の双方向LSTM(文章を前後の両方向から読み込み、文脈を捉えるネットワーク構造)です。これで作った言語モデル(単語の並びから次に来る単語やその文らしさを予測する仕組み)を、biLM(双方向LSTMで構成された言語モデルの略称)と呼びます。ELMo はこの「biLM」を大規模なテキストで事前学習し、その内部状態を組み合わせて単語ベクトルを得る点が特徴です。

例えば「bank」という単語は、「銀行」の意味で使われた文と「土手」の意味で使われた文とで異なるベクトルが割り当てられます。

ELMo登場以前、word2vecをはじめとする単語埋め込みの手法は、学習後に1つの単語につき1つの固定ベクトルしか割り当てられませんでした。そのため、複数の意味を持つ多義語(複数の異なる意味を持つ単語)を文脈によって区別できないという課題を抱えていました。

ELMo は、大規模なテキストで学習した双方向の言語モデルが持つ各層の隠れ状態(ニューラルネットワークが入力を処理する途中で持つ内部の数値情報)を、単語ごとに組み合わせます。こうして、同じ単語でも文脈によって異なるベクトルを動的に生成する手法として登場しました。

文脈依存の単語表現という新しい方向性を示した研究として知られ、論文「Deep Contextualized Word Representations」はNAACL 2018でOutstanding Paper に選ばれています。質問応答や含意関係認識(ある文が別の文の内容を含意しているかを判定するタスク)、感情分析など複数のタスクで、当時の最高性能を更新しました。

2. 試験対策ポイント

ELMo の核心は、word2vec との対比で整理しておきたいところです。分散表現(単語の意味を数百次元程度の数値ベクトルで表す表現方法)の手法として知られるword2vecやfastText と比べると、ベクトルの持ち方が次のように異なります。

手法 ベクトルの持ち方 多義語の扱い
word2vec・fastText 学習後は単語ごとに1つの固定ベクトル 文脈で区別できない
ELMo 文中の使われ方に応じて動的に生成 「bank」を文脈で区別できる

それぞれの学習アルゴリズムの詳細は各手法固有の学習項目にゆずり、ここでは固定ベクトルか文脈依存かという違いにとどめておきます。ELMo が克服した固定ベクトルの限界を考えるうえで、あわせて整理しておきたい語群です。

技術的な仕組みとして、ELMo はまず文字レベルCNN(単語を構成する文字の並びから特徴を捉える畳み込みニューラルネットワーク)で単語の初期表現を作る流れです。これを2層の双方向LSTMに通し、各層の内部状態を組み合わせて最終的な単語ベクトルを得ます。文字単位の処理を経由するため、学習データに存在しない未知語(学習に使ったデータに含まれておらずベクトルを持たない単語)にもある程度対応できる点が特徴です。

ELMo は、既存の自然言語処理モデルに組み込んで使う「特徴量(機械学習モデルへの入力として使うデータの特徴を表す数値)としての埋め込み」という位置づけで登場しました。あらかじめ学習した表現を個別タスクに転用する転移学習(あるタスクで学習した知識を、別のタスクに応用する学習の枠組み)が有効であることを広く示した手法でもあります。この考え方は、後続のBERTやGPTなど事前学習・ファインチューニング型のモデルに引き継がれている点が特徴です。

ELMo の言語モデル本体はLSTMを使うため、単語を順番に処理する必要があります。一方で後継のBERT・GPTはTransformer(文章中の単語同士の関係性に注目して処理する、深層学習のネットワーク構造)を用いており、並列処理が可能になった点でアーキテクチャが異なります。

3. 関連概念との比較・相違点

word2vec との最大の違いは、文脈によって変化するかどうかという点です。word2vec自体の学習の仕組みは別の学習項目にゆずり、ここではELMo が固定ベクトルの限界を文脈依存で克服したという関係にとどめておきます。

BERT との最大の違いは、アーキテクチャと使い方です。観点ごとに並べると、次のように整理できます。

観点 ELMo BERT
土台の構造 2層の双方向LSTM Transformerのエンコーダ(入力文を処理して内部表現に変換する部分)
タスクでの使い方 内部状態を特徴量として既存モデルに組み込む 事前学習済みモデル自体をファインチューニング(追加のタスクに合わせてモデル全体を再調整する処理)して使う
処理の進め方 単語を順番に処理する 並列処理が可能

特徴量として外から組み込むELMo と、モデル本体を作り替えて使うBERTという違いです。ELMo が示した転移学習の考え方は、BERTへと受け継がれています。

4. ビジネス・実務での活用シナリオ

検索エンジンや質問応答システムの分野では、検索クエリや質問文中の単語をELMo のような文脈依存のベクトルで表現する取り組みが役立ちます。同じ表記でも意味が異なる語を区別できるため、質問の意図を取り違えにくくなり、回答の精度向上につながる仕組みです。

文書分類や感情分析の分野でも、レビュー文や問い合わせ文の単語を文脈依存のベクトルに変換したうえで分類モデル(文章やデータをあらかじめ定めたカテゴリーに振り分ける機械学習モデル)に入力する使い方があります。多義語を含む文でも意味の取り違えを減らせるため、レビューの評価や問い合わせ内容の分類精度を高める効果を見込めます。

人名・地名・組織名などを抽出する固有表現抽出(文章中から人名や地名、組織名といった固有の名称を取り出す技術)の分野では、同じ単語表記でも文脈によって指すものが異なるケースの区別が欠かせません。ELMo による文脈依存のベクトルを使うことで、抽出漏れや誤抽出を減らし、抽出精度を高める効果が見込まれます。

5. 要点まとめ

  • ELMo は2018年にAllen Institute for AIとワシントン大学の研究チームが発表した、文脈に応じて単語のベクトル表現を動的に変化させる自然言語処理の手法です。
  • 2層の双方向LSTMで構成された言語モデルの内部状態を組み合わせて単語ベクトルを得ることで、word2vecでは区別できなかった多義語を文脈によって使い分けられます。
  • 既存モデルに組み込んで使う特徴量としての位置づけで転移学習が有効であることを示し、その考え方はTransformerを用いる後続のBERT・GPTに引き継がれています。

6. 確認問題

問1ELMo は、文中における単語の使われ方に応じて、同じ単語でも異なるベクトルを動的に生成する。

解答・解説をみる

○ 正しい

ELMo の核心的な特徴です。双方向LSTMで構成された言語モデルの内部状態を組み合わせることで実現しています。

問2word2vecは、学習後の単語ごとに1つの固定されたベクトルしか持たないため、複数の意味を持つ語(多義語)を文脈によって区別できない。

解答・解説をみる

○ 正しい

word2vecの限界です。この限界を、文脈に応じた動的なベクトル生成で補ったのがELMo です。

問3ELMo は、GPTと同様にTransformerを用いて単語の内部表現を学習する。

解答・解説をみる

× 誤り

正しくは、ELMo は双方向LSTM(RNNの一種)を用いる言語モデルの内部状態を利用します。Transformerを用いるのはBERT・GPTなど後続モデルであり、ELMo とはアーキテクチャが異なります。