word2vecの元の目的関数に対する負のサンプリング(NS)目的関数の関係はどのようなものですか?


8

私は、標準/有名な読んでいたword2vecするためのモデルをしてstandordのメモによるとcs224n:から目的関数の変化を

Joriginal=j=0,jm2mucm+jvc+2mlog(k=1|V|exp(ukvc))

に:

JNS1=logσ(ucm+jvc)k=1Klogσ(ukvc)

または

JNS2=(logσ(vwoTvwc)+i=1KEiP(w)[logσ(uwiTvwc)])

2つ目の目的関数はどこから来るのでしょうか。負のサンプリングはどこから来るのですか?私は厳密な証明/派生を必要としませんが、どんな種類の正当化もいいでしょう。2つ目は1つ目と似ていますか?ある意味で?ラフ、近似、直感、これを正当化するものはありますか?

速度の向上があることを理解しています。元の関数を最適化したり、適切な単語を埋め込んだりしながら、上記を導き出すための思考プロセスが何であったかを理解することに、より興味があります。


私自身の考え:

しましょう Pθ(D=1w,c) 与えられたペアが (w,c)単語とコンテキストはコーパスデータから取得されました。検討するJNS1=logσ(ucm+jvc)+k=1Klogσ(ukvc)(すなわち、物事を確率を最大化するものとして見ることができます)。最初の項を最大化すると、2つの単語ベクトルが正しく出力され、JNS1 大きい方は、第1項を1に近づけることで第1項を大きくすることができます。これは、ベクトルの内積を大きくすることで達成できます。

しかし、私には、2番目の用語が実際に悪い単語表現を取り戻す動機になっているように見えます。2番目の用語が何であるかを見てみましょう。

logσ(unot contextvcenter)=log(1σ(unot contextvcenter))

上記の項を増やすことで 1σ(unot contextvcenter) 私たちが作ることを意味する大きな σ(unot contextvcenter)小さい(ゼロに近い「確率」)。これは、シグモイドに対して非常に否定的な引数が必要であることを意味します。つまり、負の内積が大きいベクトルが得られます。内積がゼロである場合、つまり単語が垂直である場合、これはより良い目的であるため、これは私には一種の間違っているようです。なぜ彼らは代わりに他のものを選んだのですか?垂直の言葉の方がいいのでは?つまり、単語が類似しておらず相関がない場合、それらは互いに何の関係もないため、内積はゼロになります。

基本的に、否定的な内積は、ゼロである内積よりも単語の類似性の方が優れているのはなぜですか?



1
関連:stats.stackexchange.com/questions/244616(多分重複しているかもしれませんか?)
アメーバ

回答:


1

@amoebasaysReinstateMonicaがあなたの質問のコメントで参照している質問への回答は、これを非常によく答えていますが、2つの点を述べたいと思います。

まず、その答えのポイントを拡張すると、最小化される目的は、softmax関数の負の対数ではありません。むしろ、ノイズコントラスト推定(NCE)のバリアントとして定義されます。Kロジスティック回帰。1つはポジティブサンプル(つまり、中央の単語が与えられた真のコンテキストワード)に使用され、残りはK1 負のサンプルに使用されます(つまり、中央の単語が与えられた偽/偽のコンテキストワード)。

第2に、偽のコンテキストワードと中心のワードの間に大きな負の内積が必要な理由は、これはワードが最大限に類似していないことを意味するためです。これを確認するには、2つのベクトル間のコサイン類似度の式を考えます。x そして y

scos(x,y)=xTy||x||2||y||2
これは、次の場合に最低-1になります。 x そして y 反対方向を向いており、0の場合 x そして y垂直です。それらが垂直である場合、それらは同じ情報を含まず、反対方向を向いている場合、それらは反対の情報を含みます。2Dで単語ベクトルを想像すると、これは、「明るい」という単語には[1 0]という埋め込みがあり、「暗い」という単語には[-1 0]という埋め込みがあり、「おいしい」という単語には[0 1]という埋め込みがあります。簡単な例では、「明るい」と「暗い」は反対です。「明るい」ときに何かが「暗い」と予測することは、意図した情報とは正反対のことを伝えるため、最大の誤りです。一方、「おいしい」という言葉には、何かが「明るい」か「暗い」かについての情報が含まれていないため、両方に垂直な向きになっています。

これは、word2vecから学習した埋め込みが、ワードベクトルの和と差を含む類似の推論でうまく機能する理由でもあります。タスクの詳細については、word2vecペーパーを参照してください。


-1

乗算されるベクトルは、単語の埋め込みベクトルではありません。内積は、単語の埋め込みベクトルと、出力層の重み行列/ベクトルの組み合わせです。したがって、目的は、クロスエントロピー損失を最小限に抑えることです。インネット製品が負であるかゼロであるかは、単語の類似性について何も示しません。これは私の意見。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.