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를 업데이트합니다.
반응형
'데이터 다루기 > Textmining' 카테고리의 다른 글
[Text mining] 4. Word2vec (3) Hierarchical Softmax (1) | 2020.01.06 |
---|---|
[Text mining] 3. Word2vec (2) Skip-gram (0) | 2020.01.02 |
[Text mining] 2. Word2vec (1) CBOW (0) | 2020.01.01 |
[Text mining] 1. Word embedding (0) | 2019.12.30 |