1. ホーム
  2. machine-learning

[解決済み] word2vec: ネガティブサンプリング(平たく言うと)?

2022-11-05 23:13:07

質問

以下の論文を読んでいるのですが、ネガティブサンプリングの概念を理解するのに苦労しています。

http://arxiv.org/pdf/1402.3722v1.pdf

誰か助けてください。

どのように解決するのですか?

の考え方は word2vec は、テキスト内で(互いの文脈で)近くに現れる単語のベクトル間の類似度(ドットプロダクト)を最大化し、そうでない単語の類似度を最小化することです。リンク先の論文の式(3)では、指数計算を一旦無視します。次のようになります。

      v_c . v_w
 -------------------
   sum_i(v_ci . v_w)

分子は基本的に単語間の類似性である c (文脈) と w (ターゲット)の単語を比較する。分母は他のすべての文脈の類似度を計算する ci と目的語である w . この比率を最大にすることで、テキスト中で近くに現れる単語は、そうでない単語よりも類似したベクトルを持つようになる。しかし、これを計算するのは非常に時間がかかる。 ci . ネガティブサンプリングはこの問題に対処する方法の1つで、いくつかの文脈を選択するだけでよい ci を無作為に選択します。最終的な結果は、もし cat のコンテキストに現れるということです。 food のベクトルは food のベクトルに似ています。 cat (のベクトルよりも(それらの内積で測ると)より似ています。 他のランダムに選ばれたいくつかの単語 (例えば democracy , greed , Freddy ) の代わりに の代わりに、他のすべての言語 . これによって word2vec をより速く訓練することができます。