Word2Vec의 스킵 그램 모델은 어떻게 출력 벡터를 생성합니까?


11

Word2Vec 알고리즘의 스킵 그램 모델을 이해하는 데 문제가 있습니다.

연속 단어 단위로 신경망에서 문맥 단어가 어떻게 "맞을"수 있는지 쉽게 알 수 있습니다. 기본적으로 각각의 one-hot 인코딩 표현에 입력 행렬 W를 곱한 후 평균을 계산하기 때문입니다.

그러나 skip-gram의 경우 one-hot encoding과 입력 행렬을 곱하여 입력 단어 벡터 만 얻은 다음 컨텍스트 단어에 C (= window size) 벡터 표현을 얻는 것으로 가정합니다. 출력 행렬 W '로 입력 벡터 표현.

내 말은, 크기 의 어휘 와 크기 인코딩 , 입력 행렬 및 출력 행렬로. 인코딩 와 컨텍스트 워드 및 (단일 핫 및 )가 있는 단어 가 주어지면 에 입력 행렬 를 곱 하면 , 이제 어떻게 이것으로부터 점수 벡터 를 생성 합니까?VNWRV×NWRN×VwixiwjwhxjxhxiWh:=xiTW=W(i,)RNC

답변:


7

나는 그것을 이해하는 데 같은 문제가있었습니다. 출력 점수 벡터는 모든 C 항에 대해 동일한 것으로 보입니다. 그러나 각각의 원-핫 표시 벡터의 오차 차이는 다를 수 있습니다. 따라서 오차 벡터는 역 전파에 사용되어 가중치를 업데이트합니다.

내가 틀렸다면 정정 해주세요.

출처 : https://iksinc.wordpress.com/tag/skip-gram-model/


그래서 ? WRN×(VC)
Fabich

0

두 모델 모두에서 출력 점수는 사용하는 점수 기능에 따라 다릅니다. 소프트 맥스 또는 네거티브 샘플링의 두 가지 스코어 기능이있을 수 있습니다. 따라서 softmax 점수 기능을 사용합니다. N * D의 점수 함수 크기를 얻게됩니다. 여기서 D는 단어 벡터의 차원입니다. N은 예의 수입니다. 각 단어는 신경망 아키텍처의 클래스와 같습니다.


0

스킵 그램 모델에서, 원-핫 인코딩 된 단어는 2 계층 얕은 신경망에 공급된다. 입력은 one-hot 인코딩이므로 숨겨진 레이어에는 입력 숨겨진 가중치 행렬의 한 행만 포함됩니다 ( 입력 벡터 의 행이 1 이므로 행 이라고합시다 ).kthkth

각 단어의 점수는 다음 방정식으로 계산됩니다.

u=WTh

여기서 h는 숨겨진 레이어의 벡터이고 는 숨겨진 출력 가중치 행렬입니다. 계산 한 후 어디 다항 분포가 계산된다 윈도우 크기이다. 분포는 다음 방정식으로 계산됩니다.Wu CC

p(wc,j=wO,c|wI)=expuc,jj=1Vexpuj

보시다시피 모든 분포는 다릅니다. (자세한 내용은 https://arxiv.org/pdf/1411.2738.pdf ). 실제로 다음 그림과 같은 것을 사용하면 더 명확합니다.C

요약하면 하나의 소스 벡터 있습니다. 그러나 다른 분포는 softmax 함수를 사용하여 계산됩니다.uC

References:

  • Xin Rong, Word2Vec 매개 변수 학습 설명

W 행렬은 본질적으로 단어 벡터 (알고리즘의 출력)이며 W '는 우리가 버리는 완전히 다른 행렬입니까?
Nadav B

W '는 또한 똑같이 좋은 단어 벡터입니다.
user3108764

1
이것은 잘못이다. Xin Rong, Word2Vec Parameter Learning Explained의 식 (26)을 참조하십시오. 실제로 . 출력 점수 벡터는 모든 C 항에 대해 동일합니다. p(wc,j=wO,c|wI)=expuc,jj=1Vexpuj=expujj=1Vexpuj
siulkilulki
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.