word2vecとは

ワードツーベック別名 Word2Vec

1行定義

word2vecとは、単語と周辺の単語の一方から他方を予測するニューラルネットワークを学習し、単語の意味を密なベクトル(分散表現)で表す手法のことです。

くわしく

word2vecは、2013年にGoogleのTomas Mikolovらが発表した、単語をベクトルで表す手法です。単語の意味を、数百個の数値の並び(分散表現、単語埋め込み)として表します。

背景:ワンホットベクトルの限界

単語を数値にする素朴な方法に、語彙の数だけ次元をもち、その単語の位置だけが1で残りが0のワンホットベクトルがあります。この表し方では、どの2語も同じだけ離れているため、「犬」と「猫」が似ていることを表せません。

分布仮説と2つのモデル

word2vecの土台は、「似た文脈に現れる単語は、意味も似ている」という分布仮説です。文章中の単語と周辺の単語の関係を予測する課題を解かせ、その過程で得られる重みを単語のベクトルとして使います。

  • CBOW:周辺の単語から、中心の単語を予測します。
  • スキップグラム:中心の単語から、周辺の単語を予測します。

ネットワークは隠れ層が1つだけの浅い構造で、計算が軽いのが特徴です。論文では、16億語の文章から1日足らずで質の高いベクトルを学習できたと報告されています。続く論文では、ネガティブサンプリングなどの工夫で学習をさらに効率化しました。

できること

意味の近い単語は、ベクトルも近くなります。近さはコサイン類似度で測るのが一般的です。さらに、「King」−「Man」+「Woman」を計算すると「Queen」に近いベクトルになるなど、足し引きで意味の関係を表せます。

限界とその後

word2vecは、1つの単語に1つのベクトルしか割り当てません。そのため、多義語を文脈に応じて区別できません。また、学習データにない単語にはベクトルを作れません。後者は、単語を文字n-gramに分けて学ぶfastTextが補いました。前者は、文脈ごとにベクトルを変えるELMoやBERTによって解決が進みました。

覚え方

「周りの単語を見れば、意味がわかる」と覚えます。

G検定での出題

似た文脈に現れる単語は意味も似ているという分布仮説、CBOWとスキップグラムの予測の向きの違い、ベクトルの足し引きで意味の関係を表せる点、多義語を区別できない限界が問われます。

混同しやすい用語

用語意味
fastText単語を文字n-gramの集まりとして扱うことで未知語にもベクトルを与えられるようにした、単語の分散表現と文書分類のための手法

◯×チェック

  1. word2vecで学習した単語ベクトルでは、「King」−「Man」+「Woman」の計算結果が「Queen」のベクトルに近くなるような、意味の関係が表れる。

    答えを見る

    答え ◯ 正しい

    性別や国と首都のような関係が、ベクトルの差としてほぼ一定の向きに表れます。word2vecの論文でも示された性質です。

  2. word2vecは、文書ごとの単語の出現回数を数えて並べた疎なベクトルを、そのまま単語の意味として使う手法である。

    答えを見る

    答え × 誤り

    出現回数を数えて並べた疎なベクトルは、BoWなどのカウントに基づく表現です。word2vecは、予測の課題を学習する過程で、数百次元ほどの密なベクトルを単語ごとに得ます。

  3. word2vecでは1つの単語に1つのベクトルしか割り当てないため、英語のbank(銀行・土手)のような多義語を文脈に応じて区別できない。

    答えを見る

    答え ◯ 正しい

    文脈によらず同じベクトルになります。文脈ごとにベクトルを変えるELMoやBERTで、この問題の解決が進みました。

練習問題

word2vecの問題(4問)
  1. 単語の分散表現の手法
  2. 埋め込み行列による単語の変換
  3. スキップグラムとCBOWの予測回数
  4. 単語ベクトルの加減算による類推

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術27

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習