スキップグラムword2vecのグラデーション


9

スタンフォード大学NLPディープラーニングクラスの課題の問題http://cs224d.stanford.edu/assignment1/assignment1_soln

私は3aの答えを理解しようとしています。ここで、彼らは中心語のベクトルの派生物を探しています。

あなたが予測単語ベクトル与えられていると仮定し、中心ワードに対応するC skipgramのために、と単語予測がword2vecモデルで見つかったソフトマックス関数で作られています。vc

y^o=p(o|c)=exp(uoTvc)∑w=1Wexp(uwTvc)

ここで、wはw番目の単語を表し、(w = 1、。。、W)は語彙内のすべての単語の「出力」単語ベクトルです。クロスエントロピーコストがこの予測に適用され、単語oが期待される単語であると仮定します。uw

ここで、すべての出力ベクトルの行列であり、およびlet yは単語のソフトマックス予測の列ベクトルであり、そしてyはワンホットラベルでいますも列ベクトルです。U=[u1,u2,···,uW]y^

クロスエントロピーでありCE(y,y^)=−∑iyilog⁡(y^i)

だから、中心ベクトルのための勾配のための答えがある∂J∂vc=UT(y^−y).

UT(y^−y).

回答:


15

最初に、得られたものと、さまざまなベクトルの形状に関する仮定を説明します。みましょう、

  1. |W|
  2. yy^|W|
  3. uivjDD
  4. y|W|
  5. y^|W|
  6. y^i=P(i|c)=exp(uiTvc)∑w=1Wexp(uwTvc)
  7. J=−∑i=1Wyilog(yi^)
  8. U=[u1,u2,...,uk,...uW]uk

これで、書くことができます。

J=−∑i=1Wyilog(exp(uiTvc)∑w=1Wexp(uwTvc))
J=−∑i=1Wyi[uiTvc−log(∑w=1Wexp(uwTvc))]
ykthyk
J=−yk[ukTvc−log(∑w=1Wexp(uwTvc))]
yk

∂J∂vc

∂J∂vc=−[uk−∑w=1Wexp(uwTvc)uw∑x=1Wexp(uxTvc)]

∂J∂vc=∑w=1W(exp(uwTvc)∑x=1Wexp(uxTvc)uw)−uk
∂J∂vc=∑w=1W(y^wuw)−uk

これをマトリックス表記でどのように書くことができるかを見てみましょう。

  1. ukU.y
  2. ∑w=1W(y^wuw)uwUy^wU.y^

U[y^−y]

uiUT[y^−y]


1
これは導出の素晴らしい説明だと言いたかっただけです!それは私のような数学を吸う人にとって本当に役立ちます。ありがとうございました!
— Eric Kim

1
すばらしい説明の+1!
— ブラッグボーイ、

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