本文へ移動

G検定(ジェネラリスト検定)

えるも

ELMo

ELMo

Embeddings from Language Models

ELMoは、大規模なテキストコーパスで事前学習した深い双方向言語モデル(biLM)の内部状態から単語ベクトルを求め、文脈によって変わる単語の意味を表す深い文脈化単語表現です。

詳しい説明

ELMoがモデル化する2つの性質

ELMoは、深い文脈化単語表現(deep contextualized word representation)と呼ばれる新しい種類の単語表現として提案されました。この表現は、2つの性質を同時にモデル化することを目指しています。

1つ目は、単語の使われ方が持つ複雑な特徴です。具体例としては、統語(syntax)に関わる特徴と、意味(semantics)に関わる特徴が挙げられています。

2つ目は、そうした単語の使われ方が、言語的な文脈によってどのように変わるかという点です。これは多義性(polysemy)をモデル化することにあたります。同じ単語であっても、置かれた文脈が違えば表す意味が変わりうるため、その違いを単語の表現に反映させようとする考え方です。

双方向言語モデルの内部状態から単語ベクトルを学習する仕組み

ELMoの単語ベクトルは、深い双方向言語モデル(biLM)の内部状態の関数として学習されます。このbiLMは、大規模なテキストコーパスであらかじめ事前学習されています。

つまりELMoは、言語モデルとして事前学習したネットワークの内部で生じる状態を材料にして、単語の表現を組み立てる仕組みです。単語ごとに固定された1つのベクトルを割り当てるのではなく、言語モデルの内部状態から単語ベクトルを求める点に特徴があります。

名称の由来はEmbeddings from Language Models

ELMoという名前は、Embeddings from Language Modelsに由来します。言語モデル(Language Models)から得られる埋め込み表現(Embeddings)であることが、そのまま名前に表れています。名称を覚えておくと、ELMoが言語モデルを土台にした単語表現であることを思い出しやすくなります。

biLMのすべての内部層を使うという意味での深さ

ELMoは、それ以前に提案されていた文脈化単語ベクトルの学習手法とは異なり、深い(deep)表現であるとされています。ここでいう深さとは、biLMのすべての内部層の関数になっているという意味です。

より具体的には、各入力単語の上に積み重なった各層のベクトルについて、その線形結合を最終的なタスク(end task)ごとに学習します。この方法は、最上位のLSTM層だけを使う場合と比べて、性能を大きく向上させると報告されています。

最上位の層の出力だけに頼るのではなく、層ごとのベクトルをタスクに合わせて組み合わせる点が、ELMoの深さの中身です。

既存モデルへの組み込みやすさ

ELMoの表現は、既存のモデルに容易に追加できることが示されています。タスク用のモデルを一から作り直すのではなく、すでにあるモデルに単語表現として加えて利用できるという、実用面での利点があります。

試験で問われること

G検定

  • ELMoが同時にモデル化しようとする2つの性質として、統語や意味といった単語の使われ方の複雑な特徴と、文脈による使われ方の変化(多義性)を説明できますか。
  • ELMoの単語ベクトルは、大規模なテキストコーパスで事前学習された何の内部状態の関数として学習されるか答えられますか。また、ELMoという名称がEmbeddings from Language Modelsに由来することを説明できますか。
  • ELMoが深い(deep)表現とされる理由を、biLMのすべての内部層の関数であることと、タスクごとに各層のベクトルの線形結合を学習することから説明できますか。
  • 最上位のLSTM層だけを使う場合と比べたELMoの利点と、既存のモデルに容易に追加できるという実用面の特徴を説明できますか。

最終更新日: 2026/09/14