Word Embedding
단어의 의미
Term Documents Matrix의 문제점 단어마다 하나의 컬럼(column) 의미상 비슷한 단어도 서로 다른 컬럼 매우 sparse한 행렬 대부분이 0
해결을 위한 아이디어 단어를 어떤 공간 상의 '점'으로 생각하자 의미상 비슷한 단어는 공간 상에서 위치도 비슷하게 하자 Word Embedding Distributional Semantic Model Distributed Representation Semantic Vector Space
Word Embedding 단어에 좌표를 부여하는 것 단어의 의미를 수치화하는 것으로 생각 텍스트 처리가 더 빠르고 정확해짐
Latent Semantic Analysis Term-Document Matrix를 PCA 빈도가 함께 증가/감소하는 관계의 단어들을 축으로 삼음 적은 데이터에서도 잘 작동 어순 고려 X
어순 나 는 오늘 밥 을 ? ? 자리에 들어갈 수 있는 말은 한정: 먹었다, 굶었다 … 어순이 중요
NNLM
NNLM Feedforward Neural Net Language Model Bengio et al. (2003)
NNLM이 푸는 문제 앞에 나온 단어들로 ?에 들어갈 단어를 예측 오늘 밥 을 ? 앞에 나온 단어들로 ?에 들어갈 단어를 예측 앞에 나온 단어 / 뒤에 나온 단어 / 앞뒤로 나온 단어 등도 가능
NNLM
NNLM 단어를 one-hot encoding으로 표현
one-hot encoding 100 종류의 단어가 있다면 각 단어에 1부터 100까지 번호를 붙임 길이 100인 벡터를 모두 0으로 채움 38번 단어 38번째 값을 1로 표시 모든 단어를 위와 같은 방법으로 벡터로 표현
NNLM 모든 단어에 행렬 C를 곱함
벡터에 행렬을 곱하면? .1 .2 .3 .4 .5 .6 .7 .8 0 1 0 0 = .2 .6
NNLM 일반적인 앞먹임 신경망 feedforward neural network
NNLM 단어 예측
학습 텍스트를 넣고 신경망을 학습시키면 대상 단어를 잘 예측하도록 행렬 C가 구해짐 단어에 행렬 C를 곱한 결과를 사용
NNLM 단어의 의미
NNLM의 문제점 은닉층의 크기 × 단어 종류 단어 수 × 차원 수 × 은닉층의 크기 단어 종류 × 차원 수
Word2Vec
Word2Vec Mikolov et al. (2013) NNLM의 학습 효율을 높임 CBOW와 Skip-gram 제시
CBOW와 Skip-gram
CBOW Continuous Bag-Of-Words 주변 단어로 대상 단어 예측 은닉층을 단순합으로 대체
NNLM vs. CBOW 은닉층의 크기 × 단어 종류 단어 수 × 차원 수 × 은닉층의 크기 단어 종류 × 차원 수
NNLM vs. CBOW 차원 수 × 단어 종류 단어 종류 × 차원 수
Skip-gram CBOW와 반대로 대상 단어로 주변 단어를 예측
결과
결과 더 적은 데이터로 더 큰 벡터를 만들 수 있음 예측도 비슷하거나 더 정확
Word2Vec의 특이한 성질
Word2Vec의 성질
Word2Vec의 성질 왕(king) – 남자(man) + 여자(woman) = 여왕(queen) 일본(Japan) - 도쿄(Tokyo) + 서울(Seoul) = 한국(Korea)
활용
Word Embedding의 활용 Word Embedding 자체를 독립적으로 사용하지는 않음 기계학습이나 딥러닝에서 TDM이나 one-hot encoding 된 단어 를 넣는 것보다 word embedding을 입력으로 넣으면 성능이 향 상될 수 있음 데이터가 상대적으로 소량일 때 미리 대량의 텍스트로 만들어 둔 Word Embedding이 있으면 성능 향상과 일반화 가능성을 높일 수 있음