NLPのword2vec:ネガティブサンプリングの説明
1. 概要
それらの導入以来、word2vecモデルはNLP研究とその応用に大きな影響を与えてきました(例えば、トピックモデリング)。 これらのモデルの1つは、スキップグラムモデルです。これは、ネガティブサンプリングと呼ばれるややトリッキーな手法を使用してトレーニングします。
このチュートリアルでは、このメソッドがどのように機能するかを明らかにします。 The
2. スキップグラムモデル
word2vecモデルの背後にある考え方は、同じコンテキスト(互いに近い)に表示される単語は、類似した単語ベクトルを持つ必要があるということです。 したがって、モデルをトレーニングするときは、目的の類似性の概念を考慮する必要があります。 ベクトルが類似している場合、それらの内積が大きくなるため、これは内積を使用して行われます。
スキップグラムモデルは、入力が与えられると、周囲の単語または文脈の単語を予測するように機能します。 この方法を使用すると、入力のコンテキストとして単語が発生する可能性を計算するために使用する隠れ層を学習できます。
3. 計算問題
トレーニングデータとして一連の単語があると想像してください。 単語と語彙の分散表現とその構成性というタイトルの会議論文として公開されたスキップグラムモデルの元の説明によると、このモデルの目的は、コンテキストの平均対数確率を最大化することです。語彙全体にわたって入力単語の周囲に出現する単語:
(1)
ここで、はトレーニングデータ内のすべての単語であり、はトレーニングコンテキストウィンドウです。 このウィンドウのサイズは、トレーニングの精度と計算コストに影響を与える可能性があります。 ウィンドウが大きいほど、精度が高くなり、計算コストも高くなります。 上記の確率を計算する1つの方法は、softmax関数を使用することです。
(2)
ここで、およびはそれぞれ入力および出力としての単語のベクトル表現です。 また、語彙全体の単語数です。
直感的には、同じコンテキストに表示される単語は、同様のベクトル表現を持ちます。 上記の式の分子は、2つのベクトルの内積を介して、類似した単語に大きな値を割り当てることにより、これを示します。 単語がお互いの文脈で出現しない場合、表現は異なり、その結果、分子は小さな値になります。
しかし、主な問題は、語彙全体にわたって計算する必要がある正規化係数である分母を計算するときに発生します。語彙のサイズが数十万に達する可能性があるという事実を考慮すると、数百万語でも計算が大変になります。 ここでネガティブサンプリングが機能し、この計算が実行可能になります。
4. ネガティブサンプリング
一言で言えば、新しい目的関数を定義することにより、ネガティブサンプリングは、同じコンテキスト内の単語の類似性を最大化し、異なるコンテキストで発生する場合にそれを最小化することを目的としています。 ただし、コンテキスト単語を除く辞書内のすべての単語を最小化する代わりに、トレーニングサイズに応じて少数の単語()をランダムに選択し、それらを使用して目的を最適化します。 小さいデータセットには大きいものを選択し、その逆も同様です。
Mikolovetal。による回避策の目的。 (2013)提案は次のとおりです。
(3)
ここで、はシグモイド関数です。 また、そこから抽出された負のサンプルを含むノイズ分布と呼ばれます。 これは、実験結果に基づいて計算された数値である単語のユニグラム分布として計算されます。
(4)
ここで、は正規化定数です。 式3を最大化すると、第1項で内積が最大化され、第2項で最小化されます。 言い換えると、同じコンテキスト内の単語は、より類似したベクトル表現を持つようにプッシュされますが、異なるコンテキストで見つかった単語は、類似性の低い単語ベクトルを持つように強制されます。
Objective 3 からわかるように、計算は、ノイズ分布からの 負のサンプルに対して実行されます。これは、語彙全体のソフトマックスを計算します。
5. ネガティブサンプリングの目的を導き出す
これは、トレーニングデータで互いに近くに表示される単語のペアであり、単語とそのコンテキストであると仮定します。 したがって、これをで表すことができます。これは、このペアがトレーニングデータからのものであることを意味します。
したがって、ペアがトレーニングデータから取得されなかった確率はになります。 確率分布のトレーニング可能なパラメーターをとして示し、トレーニングデータから外れるという概念をとして示すと、最適化するために次のものがあります。
(5)
製品の最大値を対数の合計の最大値に置き換えて変換すると、次のようになります。
(6)
シグモイド関数を使用して計算できます。
(7)
ここで、およびはそれぞれメインワードとコンテキストワードのベクトル表現です。 したがって、式6は次のようになります。
(8)
これは、コーパス全体で合計された式3と同じ式です。 より詳細な派生プロセスについては、word2vecの説明の論文をご覧ください。
6. 結論
この記事では、単語ベクトルをトレーニングするためのスキップグラムモデルについて説明し、この目的でネガティブサンプリングがどのように使用されるかについて学習しました。 簡単に言えば、語彙全体で行われるソフトマックス関数の計算コストを削減するために、メインのコンテキストに表示されないサンプルのセットからいくつかの例を描画するだけで、この関数を概算できます。語。