스킵 그램 word2vec에 대한 그라디언트


9

나는 스탠포드 NLP 딥 러닝 수업의 과제 할당 문제 http://cs224d.stanford.edu/assignment1/assignment1_soln의 문제를 겪고 있습니다 .

중심 단어의 벡터에 대한 미분을 찾고있는 3a의 답을 이해하려고합니다.

스킵 그램에 대한 중심 단어 c 에 해당 하는 예측 단어 벡터 가 주어 지고 단어 예측은 word2vec 모델에서 찾은 softmax 함수로 이루어집니다.vc

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

여기서 w 는 w 번째 단어를 (w = 1, ..., W)는 어휘의 모든 단어에 대한 "출력"단어 벡터입니다. 이 예측에 교차 엔트로피 비용이 적용되고 단어 o 가 예상 단어라고 가정합니다.uw

여기서 는 모든 출력 벡터의 행렬이며 는 단어의 예측의 열 벡터이며 y 는 one-hot 레이블입니다. 또한 열 벡터입니다.U=[u1,u2,···,uW]y^

교차 엔트로피가CE(y,y^)=iyilog(y^i)

따라서 중심 벡터의 기울기에 대한 답은Jvc=UT(y^y).

누군가 나에게 이것에 도달하는 단계를 보여줄 수 있습니까? 이 질문을 참조로 사용 했습니다. word2vec에서 교차 엔트로피 손실의 파생물 이지만 를 알고 싶습니다대표.UT(y^y).

답변:


15

먼저 우리가 얻은 것과 다른 벡터의 모양에 대한 가정을 정리해 봅시다. 허락하다,

  1. |W|어휘에 포함 된 단어 수
  2. y 및 는 모양의 열 벡터입니다. x 1y^|W|
  3. ui 및 는 모양 X 1 의 열 벡터입니다 ( = 포함 차원).vjDD
  4. y 는 모양의 원-핫 인코딩 된 열 벡터입니다x 1|W|
  5. y^ 는 모양의 softmax 예측 열 벡터입니다. x 1|W|
  6. y^i=P(i|c)=exp(uiTvc)w=1Wexp(uwTvc)
  7. 교차 엔트로피 손실 :J=i=1Wyilog(yi^)
  8. U=[u1,u2,...,uk,...uW] 는 열 벡터 로 구성된 행렬 입니다.uk

이제 . 이제 는 one-hot 인코딩이므로 모든 요소가 인덱스를 제외하고 0 입니다. 즉, 해당하는 위의 합계에는 0이 아닌 항이 있고 합계의 다른 모든 항은 0입니다. 따라서 비용은 다음과 같이 쓸 수도 있습니다. 참고 : 위의 는 1입니다.

J=i=1Wyilog(exp(uiTvc)w=1Wexp(uwTvc))
J=i=1Wyi[uiTvclog(w=1Wexp(uwTvc))]
ykthyk
J=yk[ukTvclog(w=1Wexp(uwTvc))]
yk

풀기 : Jvc

Jvc=[ukw=1Wexp(uwTvc)uwx=1Wexp(uxTvc)]

될 수있는 재 배열 등 : 정의 (6)을 사용하여 위 방정식을 다음과 같이 다시 작성할 수 있습니다.

Jvc=w=1W(exp(uwTvc)x=1Wexp(uxTvc)uw)uk
Jvc=w=1W(y^wuw)uk

이제 이것을 매트릭스 표기법으로 어떻게 작성할 수 있는지 봅시다.

  1. uk 는 행렬 벡터 곱셈으로 쓸 수 있습니다 :U.y
  2. 그리고 벡터의 선형 변환이다 에서 의해 스케일링 각각. 이것을 다시 로 쓸 수 있습니다w=1W(y^wuw)uwUy^wU.y^

따라서 모든 것을 간결하게 다음과 같이 쓸 수 있습니다.

U[y^y]

마지막으로, 가 열 벡터 라고 가정했습니다 . 행 벡터로 시작한 경우 찾고 있던 것과 동일한 가됩니다.uiUT[y^y]


1
이것은 이것이 파생에 대한 훌륭한 설명이라고 말하고 싶었습니다! 그것은 나와 같은 수학을하는 사람들에게 정말 도움이됩니다. 감사합니다!
Eric Kim

1
놀라운 설명을 위해 +1!
bragboy

나는이 파생이 왜 그런지 :
BATB=A
Parth Tamane

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.