ELMoは、2018年に注目された文脈埋め込みの手法です。word2vecが語ごとに固定のベクトルを与えるのに対し、ELMoは双方向LSTMで学習した言語モデルから、その文脈での語の意味をベクトルとして取り出します——本記事は層の結合式の暗記ではなく、「静的埋め込みから動的埋め込みへ」というTransformer前の転換点に焦点を当てます。
固定ベクトルの限界
word2vecは単語の分散表現を学習する古典的手法です(G-335、G-344)。「犬」と「子犬」が近いベクトルになる——埋め込みの直感はここから広がりました。
しかし word2vec では「bank」は常に同じベクトルです。川の岸の bank と、金融機関の bank は文脈で意味が変わるのに、固定ベクトルでは区別できません。ELMoはこの多義語問題に正面から応え、文脈に応じたベクトルを出力します。
文脈で変わる意味
ELMoのキーワードは文脈依存(contextual)です。
| 方式 | ベクトルの性質 | 試験での整理 |
|---|---|---|
| word2vec | 語ごとに1つの固定ベクトル | 分散表現の古典(G-335) |
| ELMo | 文ごとに変わる動的ベクトル | 双方向LSTMの文脈埋め込み |
| BERT | 文脈で変わる(Transformer) | 次世代の事前学習(G-337) |
同じ語でも、前後の文脈によってベクトルが変わる——これがELMoの本質です。下流タスク(固有表現抽出・感情分類など)では、この動的ベクトルを特徴量として使います。
ELMoのざっくり構造
- 文字レベルCNN — 語の綴りから初期表現を得る(未知語への頑健性)
- 双方向LSTM — 左から・右からの文脈をそれぞれ処理(G-242)
- 層の組み合わせ — 各LSTM層の出力を重み付きで合成し、語の埋め込みを生成
- 下流タスク — 固定したELMoベクトル+タスク用層でファインチューニング(または重み固定のまま利用)
RNN系列の延長上にあり、G-308が示す長期依存の課題をLSTMで緩和した設計です。現代のLLMはTransformerが主役ですが、ELMoは「文脈埋め込み」という概念を広めた橋渡しとして試験に残ります。
word2vec・BERTとの系列
| 時代 | 代表 | 骨格 |
|---|---|---|
| 〜2013頃 | word2vec | 静的分散表現 |
| 2018 | ELMo | 双方向LSTMの動的埋め込み |
| 2018〜 | BERT | Transformerエンコーダの事前学習(TF-425) |
| 現在 | LLM | 大規模デコーダ型生成 |
ELMo=BERT、ELMo=word2vec——いずれも×です。系列史ではELMo → BERT → LLMと理解すると、すり替えに強くなります。
試験で押さえるポイント
- 定義 — 双方向LSTMの文脈埋め込み。Transformer前の代表的手法
- キーワード — 文脈依存・動的埋め込み。固定word2vecとの対比
- 系譜 — NLPの表現学習。画像CNN・GANではない
- すり替え回避 — BERT・LLM・物体検出モデルではない
すり替えに注意
| 誤った説明 | 正しい理解 |
|---|---|
| ELMo=word2vec | 動的文脈埋め込み vs 固定分散表現 |
| ELMo=BERT | LSTM系 vs Transformerエンコーダ |
| ELMo=LLM | 特徴抽出 vs 大規模生成モデル |
| ELMo=CNN | NLP vs 画像(G-239) |
| ELMo=埋め込みモデル全般 | 特定手法名 vs 現代の汎用カテゴリ |
よくある質問
ELMoは何をする手法ですか?
事前学習した双方向LSTM言語モデルから、各単語の文脈依存の埋め込みベクトルを取り出し、下流のNLPタスクに渡す手法です。同じ語でも前後の文脈によってベクトルが変わる点が特徴です。
ELMoとword2vecは同じですか?
同じではありません。word2vecは語ごとに固定の分散表現を学習します。ELMoは文脈に応じて語のベクトルが変わる動的な埋め込みです。いずれもNLPの表現学習ですが、文脈の扱い方が異なります。
ELMoとBERTは同じですか?
同じではありません。ELMoは双方向LSTMベースの文脈埋め込み、BERTはTransformerエンコーダによる双方向事前学習モデルです。いずれも文脈を見ますが、系譜とアーキテクチャが異なり、BERTはELMoの後に登場した次世代の代表です。