본문 바로가기

데이터 다루기/Textmining

[Text mining] 5. Word2vec (4) Negative sampling

728x90
반응형

안녕하세요. 이번에는 Negative sampling에 대해서 배워볼게요.

Negative sampling은 중심단어를 학습할 때, 모든 단어의 weight들을 업데이트시키지 않게 하는 아이디어입니다.

보통 주변 단어 + 20개의 negative samples 를 사용하여 학습을 진행한다고 합니다.

예를 들어서, 100만개의 단어가 들어있는 corpus가 있습니다.

이 안에 I live in Seoul and like data analysis. 이라는 문장이 들어 있습니다.

'Seoul' 이라는 단어를 학습할 때, window size = 2 라고 가정할 경우, 주변 단어 (Positive sampling) 은 'live', 'in', 'and', 'like' 입니다.

이 때, negative sample 로써, Seoul의 이웃에 포함되지 않는 단어 (예를 들어, 'data' , 'analysis') 20개를 추가합니다.

이 때, 추가되는 것도 확률에 근거합니다.

어떤 negative 단어 w_i 가 뽑힐 확률은 위와 같은 확률을 따릅니다.

분자의 f(w_i)는 전체 Corpus에서 w_i 의 빈도 수 입니다.

분모는 전체 Corpus에 존재하는 단어의 수 입니다.

즉 빈도수가 높은 단어들이 뽑힐 확률이 크지요.

이렇게 위의 예시에서는 24개 (4개의 주변단어, 20개의 negative sample) 만 가지고 parameter를 업데이트합니다.

반응형