Word2Vec・GloVe(古典的埋め込み手法)(ワードツーベック・グローブ)
Word2VecとGloVeは、大規模テキストコーパスから単語の分散表現(ベクトル)を学習する古典的な埋め込み手法で、Word2Vecは局所的な共起関係(CBOW/Skip-gram)、GloVeはコーパス全体の共起統計量から学習する点が異なる。
Word2Vec(2013年、Google Mikolov et al.)とGloVe(2014年、Stanford Pennington et al.)は、現代の深層学習ベース埋め込みモデルの礎を築いた古典的手法である。「king - man + woman ≈ queen」のようなベクトル演算で意味関係を捉えられることを示し、NLP分野に革命をもたらした。
Word2Vecの仕組み
Word2Vecは2つの学習アーキテクチャを持つ。
CBOW(Continuous Bag of Words)
- 周囲の文脈語から中心語を予測するモデル
- 入力: 前後n語の文脈語のone-hotベクトル → 隠れ層(射影層) → 出力: 中心語の確率分布
- 学習が高速で、頻出語の埋め込み品質が高い
- 小〜中規模コーパスに適する
Skip-gram
- 中心語から周囲の文脈語を予測するモデル
- 入力: 中心語のone-hotベクトル → 隠れ層 → 出力: 各文脈語の確率分布
- 低頻度語の埋め込み品質が高い
- 大規模コーパスで真価を発揮
Skip-gram with Negative Sampling(SGNS)
- Softmax計算の代わりに、正例と負例(ランダムサンプリングした単語)の二値分類に置き換え
- 計算コストがO(V)からO(k)に削減(kは負例数、通常5〜20)
- 実用上最も広く使われたWord2Vecの学習手法
Word2Vec vs GloVe 比較表
| 特性 | Word2Vec (SGNS) | GloVe |
|---|---|---|
| 学習方式 | 予測型(局所的文脈窓) | カウント型(共起行列分解) |
| 入力データ | テキストを逐次的に処理 | コーパス全体の共起行列 |
| 計算効率 | ストリーミング処理可能 | メモリに共起行列を保持 |
| ベクトル演算精度 | 高い | Word2Vecと同等以上 |
| 低頻度語の扱い | Skip-gramで良好 | 共起回数が少ないと不安定 |
| 学習速度 | 高速(SGNSにより) | 中程度(行列分解) |
| 公開済みモデル | Google News 300次元(300万語) | Wikipedia+Gigaword 300次元 |
FastText: Word2Vecの拡張
FastText(2016年、Facebook/Meta)はWord2Vecを拡張し、サブワード(文字n-gram)レベルでの埋め込みを学習する。
- 未知語への対応: 「unhappiness」を「un」「happ」「iness」のサブワードに分解し、それぞれの埋め込みを合成。訓練データに含まれない語でもベクトルを生成可能
- 形態素の活用: 日本語のような活用形が多い言語でも、共通の形態素を通じて類似性を捉える
- 157言語対応: 事前学習済みモデルが157言語分公開されており、多言語NLPの入門に最適
- 計算コスト: Word2Vecと同程度。サブワード分解のオーバーヘッドは微小
ベクトル演算と意味関係
古典的埋め込みの画期的な発見は、ベクトル空間上の算術演算が意味関係を反映することだった。
vec("king") - vec("man") + vec("woman") ≈ vec("queen")
vec("Tokyo") - vec("Japan") + vec("France") ≈ vec("Paris")
vec("walking") - vec("walk") + vec("swim") ≈ vec("swimming")
これらの関係は、男女関係(gender)、首都関係(capital)、時制関係(tense)など、言語の規則的なパターンがベクトル空間に自然に反映されることを示している。
古典的埋め込みの限界
- 多義語問題: 「bank」(銀行/川岸)に対して1つの固定ベクトルしか持てない。文脈による意味の違いを表現できない
- 文脈非依存: 「The bank is near the river」と「I went to the bank for a loan」の「bank」が同じベクトル
- 構成性の限界: 文埋め込みを単語ベクトルの平均で代替する手法(Mean Pooling)は語順情報を失う
- 学習データ依存: コーパスのバイアス(性別、人種)がベクトルにそのまま反映される
2025年現在の位置づけ
Word2Vec/GloVeは現在、Sentence-BERT/E5等のトランスフォーマーベースモデルに精度面で劣る。しかし以下の理由で依然として利用価値がある。
- 軽量性: 300次元の事前学習モデルは数百MBでロード可能。GPUなしのCPU環境でも高速に動作
- 教育用途: 埋め込みの概念を理解するための入門教材として最適
- 特徴量エンジニアリング: 機械学習パイプラインの入力特徴量として利用(テーブルデータとの混合)
- ベースライン: 新しい埋め込みモデルの性能を測るベースラインとして使用
よくある質問(FAQ)
Q1: Word2VecとGloVeのどちらを使うべきですか? A: 2025年現在、どちらも古典的手法として同等の位置づけ。軽量な埋め込みが必要ならFastTextが最も実用的(未知語対応あり)。高精度が必要ならSentence-BERT以降のモデルを推奨。
Q2: Word2Vecの学習にはどれくらいのデータが必要ですか? A: 最低100万語程度のコーパスから意味のあるベクトルが得られる。Google公式の事前学習モデルはGoogle News 1000億語で学習されている。ドメイン特化の場合は50〜100万語の専門コーパスでも有効。
Q3: 日本語でWord2Vec/GloVeを使う場合の注意点は? A: 日本語は分かち書きが必要なため、MeCab/Sudachi/Fugashi等の形態素解析器で前処理が必須。Wikipedia日本語版の事前学習モデルが公開されており、そのまま利用可能(fasttext-ja等)。
まとめ
- Word2Vec(2013)はCBOW/Skip-gramで局所的文脈から単語ベクトルを学習する先駆的手法
- GloVe(2014)はコーパス全体の共起統計量から学習し、Word2Vecと相補的
- FastText(2016)はサブワード分解で未知語に対応し、157言語の事前学習モデルを公開
- 2025年現在は教育・軽量用途・ベースラインとして価値を維持