同じ単語でも、文が違えば意味は変わります。この当たり前の事実をベクトル表現に持ち込んだのがELMoです。本記事では、word2vecなどの「固定された単語ベクトル」と何が違うのか、なぜBERTやGPTにつながる転換点とされるのかをやさしく解説します。

📖 ひと言でいうと

ELMo(Embeddings from Language Models)とは、2018年に発表された、前後の文脈に応じて単語のベクトル表現(埋め込み)を動的に変える自然言語処理モデルです。

例えるなら、従来の単語ベクトルが「1単語につき1つの顔写真」だったのに対し、ELMoは「その場の状況に合わせて表情が変わる動画」のようなものです。「甘い」という単語なら、「甘いケーキ」と「甘い考え」で別のベクトルが割り当てられます。この「文脈依存の埋め込み」という発想が、その後のBERTやGPTに受け継がれていきます。

🖼 1枚でわかるELMo

ELMo(Embeddings from Language Models)
  • 正体 — 文脈に応じた単語埋め込みを提供するNLPモデル(2018年発表)
  • 仕組み — 双方向LSTMで前後の文脈を読み、動的な単語表現を生成
  • 強み — 多義語・同義語の意味の違いを文脈から捉えられる
  • 使い方 — 事前学習した言語モデルを各タスクに応じて活用
  • 歴史的意義 — 文脈考慮型表現の重要性を示し、BERTやGPTに影響
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

ELMo(Embeddings from Language Models)は、2018年に発表された自然言語処理(NLP)のモデルで、文脈に応じた単語の埋め込み表現を提供する。従来の手法では、単語は固定されたベクトルで表現されていたが、ELMoは双方向LSTM(Long Short-Term Memory)を用いて、前後の文脈を考慮した動的な単語表現を生成する。これにより、多義語や同義語の意味の違いを文脈に基づいて適切に捉えることが可能となる。ELMoの特徴は、事前学習された言語モデルを活用し、特定のタスクに応じて微調整することで、さまざまなNLPタスクに適用できる点にある。例えば、固有表現抽出や感情分析など、多様なタスクで性能向上が報告されている。日本語においても、ELMoの事前学習済みモデルが公開されており、ビジネスニュース記事を用いて学習されたモデルが存在する。これにより、日本語の文脈に応じた単語の埋め込み表現を取得することが可能となり、特にビジネス分野での応用が期待されている。ELMoの登場により、文脈を考慮した単語表現の重要性が再認識され、その後のBERTやGPTといったモデルの開発にも影響を与えた。

ポイントは3つに整理できます。①従来の固定ベクトル(word2vecなど)に対し、ELMoは「文脈に応じた動的な表現」を作ること。②その仕組みとして「双方向LSTM」を使い、文を前から読む方向と後ろから読む方向の両方で文脈を捉えること。③大量のテキストで「事前学習」した言語モデルを、固有表現抽出や感情分析といった個別タスクに活用する使い方を示したことです。

🔍 しっかり理解する

固定ベクトルの限界:1単語1ベクトルでは多義語が困る

word2vecやfastTextが作る単語ベクトルは、学習が終わると「1つの単語に1つのベクトル」で固定されます。すると「銀行に金を預ける」の「金(かね)」と「金の指輪」の「金(きん)」のような多義語は、複数の意味が混ざった平均的なベクトル1つで表すしかありません。文によって意味が変わる単語を、文と無関係に決まるベクトルで表すことには限界があったのです。

ELMoはこの問題への答えとして登場しました。単語単体ではなく「文全体を入力してから、その文の中での各単語のベクトル」を計算するため、同じ単語でも出てくる文が違えば違うベクトルになります。

🅰 静的な埋め込み(word2vec / fastText)
  • 1単語につき1つの固定ベクトル
  • 文脈が変わってもベクトルは同じ
  • 多義語は複数の意味が混ざった表現になる
  • 計算が軽く、辞書のように引くだけで使える
🅱 文脈依存の埋め込み(ELMo)
  • 文を入力するたびにベクトルを計算
  • 同じ単語でも文脈が違えば別のベクトル
  • 多義語・同義語の意味の違いを捉えられる
  • 双方向LSTMによる言語モデルが土台

双方向LSTMで「前からの文脈」と「後ろからの文脈」を読む

ELMoの土台は、LSTM(長期の依存関係を扱えるリカレントニューラルネットワーク)を使った言語モデルです。文を先頭から読んで「次の単語」を予測する順方向のLSTMと、文を末尾から読んで「前の単語」を予測する逆方向のLSTMの2本を大量のテキストで学習します。

ある単語の意味を決める手がかりは、その単語より前にも後ろにもあります。「彼は銀行の口座を…」の「銀行」は後ろの「口座」が、金融機関という意味の決め手になります。順方向と逆方向の両方の隠れ状態を組み合わせることで、ELMoは前後両側の文脈を反映した単語表現を作り出します。名前の由来どおり「言語モデルから得られる埋め込み」というわけです。

事前学習した表現を、いろいろなタスクで使い回す

ELMoのもう1つの重要な貢献は、使い方のスタイルです。まず大量のテキストで言語モデルを事前学習しておき、得られた文脈依存ベクトルを、固有表現抽出・感情分析・質問応答といった個別タスクのモデルに入力として与えます。公式テキストにあるとおり、多様なタスクで性能向上が報告されました。

「大規模な事前学習で汎用的な言語知識を獲得し、個別タスクに転移する」という流れは、同じ2018年に登場したBERT(こちらはTransformerベースで、モデル全体をファインチューニングする方式)で決定版となり、現在の大規模言語モデルまで続く標準スタイルになりました。ELMoはその橋渡し役です。

💡 具体例で考える

「あまい」の使い分けができる

日本語で考えてみましょう。「このケーキは甘い」「彼の詰めは甘い」「上司の採点は甘い」——同じ「甘い」でも、味覚・不十分さ・寛大さと意味はバラバラです。word2vecではこれらすべてに同一のベクトルが割り当てられますが、ELMoなら文ごとに異なるベクトルが得られ、1文目は「おいしい」系の語に、2文目は「ミスが多い」系の語に近い表現になります。感情分析で「甘い」がほめ言葉か批判かを見分けるような場面で、この差が効いてきます。

日本語ビジネスニュースで学習したモデル

公式テキストが触れているとおり、日本語でもELMoの事前学習済みモデルが公開されており、ビジネスニュース記事で学習されたものが存在します。ニュース記事に出てくる「金利」「決算」「上方修正」のような語を文脈込みのベクトルにできるため、企業ニュースの分類や金融分野の固有表現抽出など、ビジネス文書処理への応用が期待されました。事前学習済みモデルの公開によって、自前で大規模学習をしなくても文脈依存表現を使えるようになった点も、実務上は大きな意味がありました。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • word2vecとの違い — どちらも単語をベクトル化しますが、word2vecは文脈によらない固定ベクトル、ELMoは文脈に応じて変わる動的ベクトルです。「固定か、文脈依存か」が最大の分かれ目です。
  • BERTとの違い — 発想(事前学習+文脈依存表現)は共通ですが、ELMoは双方向LSTM、BERTはTransformerのエンコーダを使います。「ELMo=LSTM系、BERT=Transformer系」と整理しましょう。
  • 「双方向LSTM」を「Transformer」と入れ替えた誤答に注意 — ELMoの説明文でアーキテクチャ名だけ差し替えた選択肢が作られやすいポイントです。
  • ELMoは文章生成AIではない — ChatGPTのように文章を作るサービスではなく、単語の埋め込み表現を提供するモデルです。生成ではなく「表現(ベクトル)の提供」が役割です。

📝 試験でのポイント

💡 ポイント
  • 「2018年」「双方向LSTM」「文脈に応じた動的な単語埋め込み」の3点セットでELMoを特定できるようにしておきましょう。
  • word2vec(静的)→ELMo(文脈依存・LSTM)→BERT(文脈依存・Transformer)という単語表現の発展の流れを並べ替えさせる問題が想定されます。
  • 「多義語の意味の違いを文脈から捉えられる」ことがELMoの利点として問われます。逆に、これができないのが従来の固定ベクトルです。
  • 事前学習した言語モデルを各タスクに活用するというスタイルが、BERTやGPTに影響を与えた点も出題されやすい論点です。

📚 まとめ

💡 ポイント
  • ELMoは2018年に発表された、文脈に応じた単語の埋め込み表現を提供するNLPモデルです。
  • 順方向・逆方向の双方向LSTM言語モデルにより、前後の文脈を考慮した動的な単語表現を生成します。
  • 固定ベクトルでは難しかった多義語・同義語の意味の違いを、文脈に基づいて捉えられます。
  • 事前学習+タスク適用というスタイルとあわせて、BERTやGPTなど後続モデルへの転換点となりました。