📐

Word2Vec

単語をベクトルに変える出発点

Word2Vecは2013年にGoogleのMikolovが発表したモデルだ。核心は単純 — 似た文脈に出現する単語は似た意味を持つ。

2つの方式がある。CBOWは周辺語を入力として中心語を予測する構造。Skip-gramはその逆で、1つの単語から周辺語を予測する。

構造: 2層の浅いニューラルネットワーク

Word2Vecはディープラーニングと呼ぶには浅いが、れっきとしたニューラルネットだ。入力層 → 隠れ層(1つ) → 出力層、これで全部。

入力に「猫」(one-hotベクトル)を入れると、隠れ層を経て出力で「かわいい」「動物」などの周辺語を予測する。学習が終わったら隠れ層の重み行列を取り出す — それがそのまま単語ベクトルになる。

隠れ層のサイズが300なら、全ての単語が300次元ベクトルで表現される。ベクトル同士のコサイン類似度を求めれば意味的な距離が出る。

自前学習 vs 事前学習済みモデル

Word2Vecは自分のデータでニューラルネットを直接学習させる方式だ。数万〜数十万件のデータが必要で、GPUがあると良い。その代わりドメインに最適化されたベクトルが得られる。

一方、OpenAIのtext-embedding-3-smallのような事前学習済みモデルは、既にインターネットの膨大なテキストで学習済みだ。APIを呼んでベクトルを受け取るだけ。データが少なくても使えて多言語も自動対応するが、ドメイン特化はされない。

なぜ推薦システムに重要か

真の価値は「king - man + woman = queen」のようなベクトル演算が成立する点だ。このアイデアをアイテムに適用するとItem2Vecになる。

学習されたベクトル空間で類似度を計算すれば、明示的なタグやカテゴリなしでも「このアイテムに似たアイテム」を見つけられる。

動作原理

1

大量テキストから単語-文脈ペアを抽出

2

浅いニューラルネット(1隠れ層)で予測を学習

3

Negative Samplingで学習を効率化

4

隠れ層の重みがそのまま単語埋め込みになる

メリット

  • 学習が速く、数百万語も処理可能
  • ベクトル演算で意味関係を捉える

デメリット

  • 多義語を区別できない(bank = 銀行? 川岸?)
  • コンテキストウィンドウ外の長距離依存を無視

ユースケース

類似単語検索(クエリ推薦) Item2Vecの基盤 — アイテム埋め込み 感情分析・文書分類の入力表現

参考資料