2015-01-09 4 views

답변

96

아이디어는 word2vec은 텍스트에서 서로 가깝게 (서로의 맥락에서) 나타나는 단어에 대한 벡터 간의 유사성 (내적)을 최대화하고 그렇지 않은 단어의 유사성을 최소화하는 것입니다. 링크 한 논문의 식 (3)에서 잠시 멱승을 무시하십시오. 당신은 분자가 기본적으로 단어 사이에 유사성 c (컨텍스트)와 w (대상) 단어

 v_c * v_w 
------------------- 
    sum(v_c1 * v_w) 

있습니다. 분모는 다른 모든 컨텍스트 c1과 대상 단어 w의 유사도를 계산합니다. 이 비율을 최대화하면 텍스트에 더 가깝게 나타나는 단어가 그렇지 않은 단어보다 더 비슷한 벡터를 갖게됩니다. 그러나 많은 컨텍스트가 있기 때문에 이것을 계산하는 것은 매우 느릴 수 있습니다 c1. 네거티브 샘플링은이 문제를 해결하는 방법 중 하나입니다. 문맥을 무작위로 선택하십시오. c1. 최종 결과는, (catfood 컨텍스트 나타나면 다음 food의 벡터 여러 다른 무작위로 선택된 단어의 벡터 이상 (이들의 내적에 의해 측정 됨) cat의 벡터에 더 유사하다는 등 democracygreed, Freddy) 대신 다른 모든 단어는입니다. 이로 인해 word2vec은 훨씬 빠르게 학습 할 수 있습니다.

+8

감사 또는 좋은 설명. 그냥 샘플링 일 뿐이라고 생각합니다. 그러나 왜 그것이 "부정적"이라고 불렀는지 아십니까? – HappyCoding

+21

용어는 신경 네트워크의 공통된 적용 인 분류에서 차용 한 것입니다. 거기에 긍정적이고 부정적인 예들이 많이 있습니다. 'word2vec'를 사용하면 어떤 단어에 대해서도 비슷한 단어 (긍정적 인 클래스)가 필요하지만 음의 클래스 (큰 단어와 유사하지 않은 단어)는 샘플링에 의해 컴파일됩니다. – mbatchkarov

14

일반적으로 대용량 인 V (분모)에있는 모든 단어를 합한 요구하기 때문에 고가이다 (현재 목표 단어 유사한되는 단어를 결정하는 기능) 소프트 맥스 컴퓨팅.

enter image description here은 는

는 무엇을

을 수행 할 수 있습니다

?

에 대해서는 서로 다른 전략이 제안되어있다. softmax는이다. 이러한 접근법은 softmax 기반샘플링 기반 접근 방식으로 그룹화 할 수 있습니다. softmax 기반 접근법은 softmax 층을 손상시키지 않고 그 구조를 수정하여 효율성을 향상시킵니다 (예 : 계층 적 softmax). 샘플링 기반은 softmax 레이어를 완전히 없애고 softmax를 근사하는 다른 손실 함수를 최적화합니다 (softmax의 분모에 정규화를 근사하여이 작업을 수행합니다. 부정적인 샘플링처럼 계산하기에 저렴함).

무언가 같이 Word2vec의 손실 함수는 다음 몇 가지 수학 및 그라데이션 식 (3에서 자세한 내용을 참조)

enter image description here

: 어떤 대수로 분해 할 수

enter image description here

다음으로 변환 :

enter image description here

이진 분류 작업 (y = 1 양수 클래스, y = 0 음수 클래스)으로 변환되어 있습니다. 우리는 이진 분류 작업을 수행하기 위해 레이블이 필요하기 때문에 모든 문맥 단어 c을 실제 레이블 (y = 1, 양수 샘플) (대상 단어 창의 모든 단어)로 지정하고 k을 실수로 임의로 선택합니다 (y = 0, 음성 샘플).

참조 :

+1

안녕하세요 @ amir, 내 초기 질문은 부정적인 샘플링의 개념을 이해하는 몇 가지 문제가 있습니다 ... –