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とスキップグラムの予測の向きの違い、ベクトルの足し引きで意味の関係を表せる点、多義語を区別できない限界が問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| word2vecこのページの用語 | 単語と周辺の単語の一方から他方を予測するニューラルネットワークを学習し、単語の意味を密なベクトル(分散表現)で表す手法 |
| fastText | 単語を文字n-gramの集まりとして扱うことで未知語にもベクトルを与えられるようにした、単語の分散表現と文書分類のための手法 |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
word2vecで学習した単語ベクトルでは、「King」−「Man」+「Woman」の計算結果が「Queen」のベクトルに近くなるような、意味の関係が表れる。
答えを見る
答え ◯ 正しい
性別や国と首都のような関係が、ベクトルの差としてほぼ一定の向きに表れます。word2vecの論文でも示された性質です。
-
word2vecは、文書ごとの単語の出現回数を数えて並べた疎なベクトルを、そのまま単語の意味として使う手法である。
答えを見る
答え × 誤り
出現回数を数えて並べた疎なベクトルは、BoWなどのカウントに基づく表現です。word2vecは、予測の課題を学習する過程で、数百次元ほどの密なベクトルを単語ごとに得ます。
-
word2vecでは1つの単語に1つのベクトルしか割り当てないため、英語のbank(銀行・土手)のような多義語を文脈に応じて区別できない。
答えを見る
答え ◯ 正しい
文脈によらず同じベクトルになります。文脈ごとにベクトルを変えるELMoやBERTで、この問題の解決が進みました。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目27 自然言語処理)
- Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean, Efficient Estimation of Word Representations in Vector Space (2013)
- Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, Jeffrey Dean, Distributed Representations of Words and Phrases and their Compositionality (2013)