私は、標準/有名な読んでいたword2vecするためのモデルをしてstandordのメモによるとcs224n:から目的関数の変化を
に:
または
2つ目の目的関数はどこから来るのでしょうか。負のサンプリングはどこから来るのですか?私は厳密な証明/派生を必要としませんが、どんな種類の正当化もいいでしょう。2つ目は1つ目と似ていますか?ある意味で?ラフ、近似、直感、これを正当化するものはありますか?
速度の向上があることを理解しています。元の関数を最適化したり、適切な単語を埋め込んだりしながら、上記を導き出すための思考プロセスが何であったかを理解することに、より興味があります。
私自身の考え:
しましょう 与えられたペアが 単語とコンテキストはコーパスデータから取得されました。検討する(すなわち、物事を確率を最大化するものとして見ることができます)。最初の項を最大化すると、2つの単語ベクトルが正しく出力され、 大きい方は、第1項を1に近づけることで第1項を大きくすることができます。これは、ベクトルの内積を大きくすることで達成できます。
しかし、私には、2番目の用語が実際に悪い単語表現を取り戻す動機になっているように見えます。2番目の用語が何であるかを見てみましょう。
上記の項を増やすことで 私たちが作ることを意味する大きな 小さい(ゼロに近い「確率」)。これは、シグモイドに対して非常に否定的な引数が必要であることを意味します。つまり、負の内積が大きいベクトルが得られます。内積がゼロである場合、つまり単語が垂直である場合、これはより良い目的であるため、これは私には一種の間違っているようです。なぜ彼らは代わりに他のものを選んだのですか?垂直の言葉の方がいいのでは?つまり、単語が類似しておらず相関がない場合、それらは互いに何の関係もないため、内積はゼロになります。
基本的に、否定的な内積は、ゼロである内積よりも単語の類似性の方が優れているのはなぜですか?