2. NLP이해하기
• ’어떻게 각 단어를 벡터화해야 하는가?’ 에 대
한 문제가 관건
• 현재 ‘CBOW’와 ‘Skip-gram’ 이라는 아키텍쳐
로 다시 한번 발전하여 현재 word2vec의 모양
새로 이어지게 되었다.
3. NLP이해하기
one-hot
encoding
• NLP는 ‘one-hot encoding’ 방식을 많이 사용했다.
예를 들어, 내가 어떤 단어들이 있는지에 대한 단
어 n개짜리 ‘사전’ (Dictionary)이 있다고 해보자.
이 때, 어떤 단어를 표현하기 위해서 길이 n짜리
벡터를 하나 만들고, 그 단어가 해당되는 자리에
1을 넣고 나머지 자리들에는 0을 넣는 것이다. 사
전이 [감자, 딸기, 사과, 수박] 이라면 사과를 표현
하는 벡터는 [0, 0, 1, 0] 이 되는 식이다.
4. NLP이해하기
one-hot
encoding
• 호텔과 모텔 각 단어를 단어토큰(token)을 벡
터화 하여 벡터 공간(word space)에서 각 단어
를 표현(represent)해 볼 수 있다. N차원의(N-
dimensional)공간에서 각 단어는 의미를 갖을
것이다. 그 다음, 우리는 각 단어를 one-hot
vector로 표현해볼 수 있다. Vector의 크기는
우리가 가진 어휘 수많큼 많을 것이다. 그리
고 one-hot vector방식으로 표현된 각 단어는
완전히 독립된 개체(entity)로 표현될 것이다.
7. Word Embeddings
특정 단어가 문장 내에서 주변에 함께 등장한 각 단어를 dense vector로 표현하여 이웃 단어들을
이용해 그 의미를 예측해 나간다.
Word vector 관점에서 중심 단어 w(t)와 그 주변단어(context words)사이에서 중심 단어의
의미를 예측한다.
큰 언어 말뭉치(corpus)에서 많은 위치를 갖고 있는 t를 확인할 수 있다. 단어별로 문장
또는 vector상에서 위치한 포지션.
단어를 백터로 표현하는데 있어 손실(loss)최소화 하는것이 관점.
8. Word2Vec
word2vec은 2013년 구글에서 발표된 연구로, Tomas Mikolov라는 사람을 필두로 여
러 연구자들이 모여서 만든 Continuous Word Embedding 학습 모형이다. 재밌는 점
은, 이 논문을 집필한 사람 중 Jeffery Dean (구글의 전설적인 프로그래머로
MapReduce등을 만듬) 도 있다는 점이다. 이 모델이 기존 Neural Net 기반 학습방법
에 비해 크게 달라진 것은 아니지만, 계산량을 엄청나게 줄여서 기존의 방법에 비해
몇 배 이상 빠른 학습을 가능케 하여 현재 가장 많은 이들이 사용하는 Word
Embedding 모델이 되었다.
9. Word2Vec
• 모든 단어를 vector로 표현하여 단어 사이의 유사성과 차이점을
계산한다. 계산된 결과를 바탕으로 그 주변단어(context word)와
의 관계를 통해 단어가 표현(representation)하는 바를 직접적으로
예측하는 것이다.
10. 알고리즘
Skip-gram(SG) – 타겟 단어를 이용해 주변단어(context
words)를 예측
Continuous Bag of Words(CBOW) – 주변단어를 이용해
타겟 단어를 예측
12. CBOW(Continuous
Bag-of-Words)
• CBOW 모델은 크게 Input Layer,
Projection Layer, Output Layer로
이루어져 있다. 그림에는 중간 레
이어가 Hidden Layer라고 표시되
어 있기는 하지만, Input에서 중
간 레이어로 가는 과정이 weight
를 곱해주는 것이라기 보다는 단
순히 Projection하는 과정에 가까
우므로 Projection Layer라는 이름
이 더 적절할 것 같다.
13. CBOW(Continuous
Bag-of-Words)
• Input Layer에서 Projection
Layer로 갈 때는 모든 단어들이
공통적으로 사용하는 VxN 크
기의 Projection Matrix W가 있
고 (N은 Projection Layer의 길
이 = 사용할 벡터의 길이),
Projection Layer에서 Output
Layer로 갈 때는 NxV 크기의
Weight Matrix W’ 가 있다.
14. CBOW(Continuous
Bag-of-Words)
• Input에서는 NNLM 모델과 똑같
이 단어를 one-hot encoding으로
넣어주고, 여러 개의 단어를 각각
projection 시킨 후 그 벡터들의
평균을 구해서 Projection Layer에
보낸다.
• 그 뒤는 여기에 Weight Matrix를
곱해서 Output Layer로 보내고
softmax 계산을 한 후, 이 결과를
진짜 단어의 one-hot encoding과
비교하여 에러를 계산한다.
15. CBOW(Continuous
Bag-of-Words)
• 따라서 전체 계산량은
CxN + NxV
앞서 말한 V를 lnV로 줄이는 테
크닉을 사용하면 전체 계산량은
CxN + N x lnV
즉, C=10, N=500, V=1,000,000으
로 잡아도 500 x
(10+ln(1,000,000)) = 약 10000의
계산량밖에 들지 않는 것이다.
16. Skip-gram
-타겟단어로부터 콘텍스트를 예측
1부터 T까지 각 단어(t)의 m 반경만큼
떨어진 주변단어를 예측하는 것.
현재 주어진 중심단어(target word /
center word)로부터 가까이 있는
단어의 확률값을 최대화하는
방향으로 함수를 구성한다.
즉, 타겟 단어 주변에 있을수록 높은
점수를 받아 관련성이 높다고
판단한다.
17. Skip-gram
• 현재 주어진 단어 하나를 가지고 주위에
등장하는 나머지 몇 가지의 단어들의 등장
여부를 유추하는 것(Skip-gram 모델은
CBOW와는 반대 방향의 모델)
• ‘가까이 위치해있는 단어일 수록 현재
단어와 관련이 더 많은 단어일 것이다’
라 는 생 각 을 적 용 하 기 위 해 멀 리
떨어져있는 단어일수록 낮은 확률로
택하는 방법을 사용한다.
18. Skip-gram
• Skip-gram 모델에서 하나의 단어를 처리하는 데
에 드는 계산량은 다음과 같다. C개의 단어를 샘
플링했다고 할 때,
• 현재 단어를 Projection 하는 데에 N
• Output을 계산하는 데에 N x V, 테크닉을 사용
하면 N x ln V
• 총 C개의 단어에 대해 진행해야 하므로 총 C배
• 로 총 C(N + N x lnV) 만큼의 연산이 필요하다.
19. Negative Sampling
• 여기서 Q(D=1|w_t,h)는 데이터셋 D에서 콘텍스트 h에서 관찰한 단어가 w일 이진
로지스틱 회귀분석에서의 확률이다. 이는 학습된 embedding vectors를 이용해서
계산된다. 실제 상황에서는, k개의 대비되는(contrastive) 단어들을 noise
distribution에서 구하고 이를 평균을 취해서 위의 값을 계산한다. (즉, 몬테
카를로 평균을 계산한다.)
logQ :로지스
틱회귀확률
데이터셋 D에서
h에서 관찰한 단
어w 확률구하기
W(~ 노이즈):K개(상상의단어) 대비되는
(contrastive)단어들을 noise distribution
에서 구하고 이를 평균취해 값을 계산.
Real Target noise
20. Negative Sampling
• 이 목적함수는 모델이 실제 단어에는 높은 확률을 부여하고 노이
즈 단어들에는 낮은 확률을 부여하면 최대화된다.
• 이런 종류의 손실 함수(loss function)를 정의하는 것은 수학적으로
적절하다. 제한 상황 안에서 이 함수의 업데이트는 softmax 함수
의 업데이트와 근사하다.
• 더욱이 계산 비용의 측면에서, 이런 방식은 매우 효율적이다. 왜냐
하면 전체 어휘 V를 계산하는 것이 아니라 우리가 선택한 k개의
noise 단어들만 계산하면 되기 때문이다. 따라서 이런 트레이닝 시
간을 짧게 줄여준다.
21. Word2Vec : Skip gram model 구현
목표 : 목적함수를 최대화; embedding parameter
update
Tensorflow – NCE LOSS
Noise-contrastive estimation
텐서플로우 : tf.nn.nce_loss
Word2vec 튜토리얼 – 구글사이트는 404
소스코드:
http://solarisailab.com/archives/
374
22. 데이터셋
• http://mattmahoney.net/dc/
• text8.zip
• Data size 17005207
무정부주의(anarchism )는 영국혁
명의 파굴과 프랑스 혁명의 산토
병 등을 포함한 초기 노동 계급 급
진주의 자들에 대해 처음 사용 된
학대의 용어로 창안되었지만이 용
어는 여전히 폭력적인 수단을 사
용하여 폭력적인 수단을 사용하여
폭력적인 수단을 사용하는(used
in a pejorative way to describe
any act that used violent means
to destroy the organization of
society) 행위를 묘사하는 데 사용
됩니다.
이런내용…
26. 결론
• Embeddings 평가하기 : 유추(Analogical Reasoning)
• Embeddings 는 NLP 의 다양한 예측 문제에 대해 유용하다. 완
전 품사 모델이나 개체명 모델의 학습을 제외하고, embeddings
를 평가하는 한가지 간단한 방법은 이들을 직접 사용하여 king
is to queen as father is to ? 와 같이 구문론적인 그리고 의미론
적인 관계를 예측하는 것이다.
27. 결론
• hyperparameters 의 선정은 이 문제의 정확도에 매우 큰 영향
을 줄 수 있다. 이 문제에 대해 최고의 성과를 달성하기 위해선
매우 큰 dataset 을 학습하는 것, hyperparameters 에 대한 신중
한 조절, 그리고 데이터의 이단추출과 같은 기법을 이용하는 것
이 필요하다.
28. 결론
• hyperparameters 의 선정은 이 문제의 정확도에 매우 큰 영향
을 줄 수 있다. 이 문제에 대해 최고의 성과를 달성하기 위해선
매우 큰 dataset 을 학습하는 것, hyperparameters 에 대한 신중
한 조절, 그리고 데이터의 이단추출과 같은 기법을 이용하는 것
이 필요하다.
Notes de l'éditeur
logQ 는 로지스틱 회귀 확률
D = 1|wt,h 는 데이터셋 D에서 콘텍스트 h에서 관찰한 단어가 w
k개의 대비되는(contrastive)단어들을 noise distributio에서 구하고 이를 평균을 취해 값을 계산