AI・機械学習
中級

Word2Vec・GloVe(古典的埋め込み手法)(ワードツーベック・グローブ)

Word2VecとGloVeは、大規模テキストコーパスから単語の分散表現(ベクトル)を学習する古典的な埋め込み手法で、Word2Vecは局所的な共起関係(CBOW/Skip-gram)、GloVeはコーパス全体の共起統計量から学習する点が異なる。

0 回閲覧
0 いいね

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年現在は教育・軽量用途・ベースラインとして価値を維持