word2vecでネガティブサンプリングはどのように機能しますか?


19

私はword2vecのコンテキストでネガティブサンプリングの概念を理解しようと懸命に努力しています。[ネガティブ]サンプリングのアイデアを消化できません。たとえば、ミコロフの論文では、負のサンプリング期待値は次のように定式化されています。

ログσwc+kEcNPD[ログσwcN]

私は左の用語理解していますが、ネガティブな単語とコンテキストのペアをサンプリングするアイデアを理解できません。ログσwc


4
word2vecのドキュメントが散らばっていることはばかげています。ネガティブサンプリングの派生については、arxiv.org
Alex R.

あなたが紹介した説明を読み、その背後にある数学を理解しました。しかし、サンプリングの背後にある直感を消化することはできません。
アペンドラクマール

回答:


27

問題

「標準」ニューラルネットワークを使用して単語ベクトルを学習する場合、いくつかの問題があります。このようにして、単語のウィンドウ(ネットワークの入力)が与えられると、ネットワークが次の単語を予測することを学習しながら、単語ベクトルが学習されます

次の単語を予測することは、クラスを予測することに似ています。つまり、このようなネットワークは単なる「標準」の多項(マルチクラス)分類器です。また、このネットワークには、クラスと同数の出力ニューロンが必要です。クラスが実際の単語である場合、ニューロンの数は非常に膨大です。

「標準」ニューラルネットワークは、通常、確率を表す出力ニューロンの値を必要とするクロスエントロピーコスト関数でトレーニングされます。つまり、各クラスのネットワークによって計算された出力「スコア」は、正規化され、各クラスの実際の確率。この正規化手順は、softmax関数によって実現されます。Softmaxは、巨大な出力レイヤーに適用すると非常にコストがかかります。

(a)ソリューション

この問題、つまりソフトマックスの高価な計算に対処するために、Word2Vecはノイズ対比推定と呼ばれる手法を使用します。この手法は[A]([B]で再構成)によって導入され、[C]、[D]、[E]で使用され、ラベルのない自然言語テキストから単語の埋め込みを学習します。

基本的な考え方は、多項分布の分類問題次の単語を予測する問題であるためをバイナリ分類問題に変換することです。つまり、softmaxを使用して出力ワードの真の確率分布を推定する代わりに、バイナリロジスティック回帰(バイナリ分類)が代わりに使用されます。

k

これは重要です。最適化された分類器は、次の単語(「標準」のトレーニング手法)を予測する代わりに、単語のペアが良い悪いかを単に予測します。

Word2Vec はプロセスをわずかにカスタマイズし、ネガティブサンプリングと呼びます。Word2Vecでは、ネガティブサンプル(破損したペアに使用)の単語は特別に設計された分布から描画されます。これにより、頻度の低い単語がより頻繁に描画されます。

参照資料

[A] (2005)-対照的推定:ラベルなしデータの対数線形モデルのトレーニング

[B] (2010)-ノイズ対比推定:非正規化統計モデルの新しい推定原理

[C] (2008)-自然言語処理のための統合アーキテクチャ:マルチタスク学習を備えたディープニューラルネットワーク

[D] (2012)-ニューラル確率言語モデルをトレーニングするための高速でシンプルなアルゴリズム

[E] (2013)-ノイズを考慮した推定による単語埋め込みの効率的な学習


答えは私の古いメモに基づいています-それらが正しいことを望みます:)


2
あなたが言った、"in Word2Vec, the words for the negative samples (used for the corrupted pairs) are drawn from a specially designed distribution, which favours less frequent words to be drawn more often"。これは正しいのだろうか?いくつかの他の情報源は、より頻繁な単語が否定的なサンプルとしてサンプリングされると言っているためです。Essentially, the probability for selecting a word as a negative sample is related to its frequency, with more frequent words being more likely to be selected as negative samples.
タイラー傲来国主


ところで、否定的なサンプルとして高頻度または低頻度の単語から選択する理由は何ですか?非コンテキスト単語からのランダムサンプリングは十分ではありませんか?
タイラー傲来国主

@Tyler傲来国主私が理解しているように、頻度の少ない単語は文脈に依存する傾向があるため、より有益です。頻度の高い単語は、他の多くの単語に関連付けられる傾向があります(極端な例「the」を参照)。これにより、まれな単語が「難しく」なり(学習速度が速くなります)、実際にネガティブなサンプルではない単語を選択する可能性も低くなります(コーパスが大きいため、これをチェックするのは高価で、多くの場合省略されます)。
drevicko

@drevicko頻度の少ない単語は情報量が多くなりますが、否定的なサンプルである頻度の低い単語は情報量が少なくなります。情報理論によれば、確率が高いほど、自己情報は小さくなります。頻繁に発生する単語が特定のターゲット単語のネガティブサンプルであるイベントは、確率が低く、情報量が多いことを意味します。
タイラー傲来国主
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.