word2vec(ワード・トゥ・ベック)は、単語を 意味を保ったまま数値の並び(ベクトル)に変換する 代表的な手法です。2013年にGoogleの研究者が発表し、埋め込み(ベクトル) を一気に実用へ広めた立役者です。
ベクトル …
[0.8, 0.1, 0.7, ...]のように数値を一列に並べたもの。単語を座標に置き換えると、「意味の近さ」を距離として計算できます。
核心のアイデア:意味は「まわりの言葉」で決まる
word2vecの土台にあるのは、「似た文脈に現れる単語は、似た意味を持つ」 という考え方(分布仮説)です。たとえば「犬」と「猫」は、どちらも「かわいい」「飼う」「散歩」といった同じような言葉のそばに登場します。だから両者は近い意味だ、と判断できるわけです。
そこで word2vec は、文章を大量に読み込みながら 「まわりの単語を当てる穴埋めクイズ」を ニューラルネットワーク に解かせます。正解を繰り返し当てられるように内部の数値(重み)を調整していくと、その重みが「単語の意味ベクトル」として使えるようになります。
重み … ニューラルネットワークが学習で少しずつ調整する内部の数値。word2vecでは、この重みそのものを単語のベクトルとして取り出します。
2つの学習方式:CBOW と Skip-gram
word2vecには、この「穴埋めクイズ」の出し方が逆向きの2方式があります。ここで登場するのが CBOW と Skip-gram です。「今日 は ◯ が 良い」という文で考えてみましょう。
- CBOW(Continuous Bag-of-Words) … 周辺語(今日・は・が・良い)から、真ん中の 中心語(◯=天気)を当てる。まわりを手がかりに穴埋めする方式。
- Skip-gram … 逆に 中心語(天気)1語から、その 周辺語(今日・は・が・良い)を当てる。1語を手がかりに周りを予測する方式。
中心語 / 周辺語 … 注目している単語が中心語、その前後に並ぶ単語が周辺語です。前後どこまでを「まわり」とみなすかの範囲を 文脈窓(ウィンドウ) といいます。
ざっくりした使い分けは次のとおりです。
- CBOW … 学習が 速い。よく出てくる単語で安定しやすい。
- Skip-gram … 学習は遅めだが、出現回数の少ない単語(レアな語)や小さなデータでも精度が出やすい。
どちらも最終的に得られるのは「単語のベクトル」で、用途は同じです。迷ったら Skip-gram が選ばれることが多いですが、データが大きく速度を優先したいときは CBOW も有力です。
有名な性質:意味を「足し算・引き算」できる
word2vecのベクトルは、意味の関係が計算として現れることで驚かれました。
「王」 − 「男」 + 「女」 ≒ 「女王」
「東京」 − 「日本」 + 「フランス」 ≒ 「パリ」
意味の方向がベクトルの向きとして揃うため、こうした類推が成り立ちます。単語を「座標」に変えると、意味を数学で扱えるようになる——これが word2vec の大きな功績です。
どこで使われる?
word2vecは、テキストを数値化する多くの場面の出発点になりました。
- 検索・推薦 … 意味の近い単語・文書を探す(埋め込み の考え方の基礎)。
- 文書分類・感情分析 … 単語ベクトルを特徴量として機械学習に渡す。
- RAG の前身 … 「意味で探す」発想はRAGのベクトル検索へ受け継がれています(今は文全体を捉える新しい埋め込みが主流)。
現在の生成AIでは、文脈ごとに意味が変わる更に高度な埋め込み(Transformer系)が主流ですが、「言葉を意味のベクトルにする」という発想の原点として、word2vecは今も学ぶ価値のある基礎です。