티스토리 뷰
[논문] Distributed Representations of Words and Phrases and their Compositionality (Tomas Mikolov)
yunmap 2017. 10. 8. 15:38Distributed Representations of Words and Phrases and their Compositionality (Tomas Mikolov) 논문은 읽는데 2~3주가 걸렸다.
처음으로 발표하게 된 논문이라 완벽하게 발표하고 싶은 욕심이 있는데 읽는 요령이 없어서 시간이 정말 오래 걸렸다.
내용에 수식이 많아서 먼저 올린 논문보다 난이도가 있다.
논문 다운로드 링크는 누르면 연결된다~!
Distributed Representations of Words and Phrases and their Compositionality
이번에도 논문의 goal 먼저 살펴보겠다.
이 논문은 word2 vec 중 skip-gram의 vector representation quality를 높이고자 한다.
Quality를 높이기 위해 Mikolov는 3가지 방법을 제시한다.
1. word 기반으로 학습된 단어를 phrase 기반으로 학습시키는 것.
2. 빈도가 높은 단어에 대한 subsampling.
3. training에 negative sampling 기법을 도입.
이 방법들을 순서대로 알아보겠다.
기존의 word 기반 학습의 문제점은 'Boston Globe'처럼 두 단어로 이루어져 있고 의미가 두 단어와 전혀 관련이 없는 phrase에 대해 전혀 해석을 할 수 없다는 것이다.
이런 phrase를 idiomic 하다고 한다.
Boston Globe에서 Boston은 지명이고 Globe는 지구본이라는 뜻이지만 둘이 합쳐지면 Boston Globe라는 신문지 이름이 된다.
그래서 이 문제점 해결을 위해 phrase 기반의 학습을 도입하게 된다.
word 대신 phrase를 token으로 이용하여 학습시킨다.
Phrase를 찾기 위해 단어들 중 같이는 빈번하게 나타나지만 각각은 잘 나타나지 않는 단어를 score를 계산하여 찾는다.
이 score 값이 특정 threshold를 넘으면 이 phrase를 독립된 token으로 여긴다.
score를 계산하는 방법은 위와 같다.
두 개의 단어를 Wi, Wj라고 할 때 count(WiWj)는 두 단어가 같이 나타난 횟수이고 count(Wi)는 Wi가 혼자 나타난 횟수이다.
threshold 값은 시행을 통해서 점차 감소시켜야 하는데, 그 이유는 3개 이상의 단어로 구성된 phrase를 찾기 위해서이다.
예를 들면 New York와 New York Times가 있다.
이전 논문처럼 phrase도 analogy 하게 표현이 가능하다.
정확도는 72% 까지 달성했다고 한다.
이렇게 phrase를 추출하도록 token을 설정한 것이다.
다음으로 subsampling이다.
subsampling은 모집단이 많을 때 사용하는 방법이다.
1. 먼저 자료를 그룹으로 나눈다.
2. 각 그룹에서 표본을 추출한다.
이 과정을 통해 추출한 표본만 이용하게 된다. 그러면 시간이 절약된다.
Subsampling을 사용하면 오히려 정확도가 떨어지지 않을까? 하는 염려가 드는데, 예를 들어 in, the, a는 어디든지 빈번하게 등장하는 단어이지만 다른 단어에 비해서 정보와 의미를 담고 있다고 보기 어렵다.
그래서 이런 단어에 대해서는 subsampling을 해도 결과의 정확도에 크게 영향을 주지 않고 시간만 단축된다.
특정 단어가 빈번한지 아닌지 판단하는 기준이 되는 식이다.
f(Wi)는 frequency와 유사한 값으로 Wi라는 단어가 빈번히 나타날수록 큰 값을 가진다.
그래서 Wi가 빈번하게 나타나면 P(Wi) 값이 커지고, 이게 t라는 threshold를 넘으면 Wi라는 word엔 subsampling을 한다.
Subsampling을 한 결과를 보면 accuracy는 subsampling을 안 했을 때와 비슷하지만 time은 매우 많이 줄어든 것을 확인할 수 있다.
시간이 줄어든 것을 좀 더 가시적으로 보여주기 위해 넣은 그래프이다.
또한, phrase 기반으로 subsampling을 했더니 정확도가 오히려 증가하는 모습을 보여준다.
word2 vec 중 하나인 skip-gram model이다.
skip-gram은 한 단어로 돼있는 input을 받아 이 input 주변에 나타날 가능성이 높은 단어를 출력해준다.
물론 이 논문에서는 한 단어가 input이 아니고 한 phrase가 input이다.
skip-gram model은 이 식에서 log probability를 높여야 한다. (정확도가 높아진다.)
그러나 기본 skip-gram의 log p를 미분하게 되면 W의 개수만큼 연산을 하게 되는데 식이 너무 길어져서 비현실적이고 시간 소요가 굉장히 많이 된다.
대안으로 Hierachical softmax를 소개하는데 basic skip-gram 모델과 다르게 식의 길이가 log p를 미분한 L(W0)=ln W라서 학습 속도가 빨라진다.
그러나, 이 논문은 Hiearachical softmax가 아닌 negative sampling을 도입한다.
Negative sampling은 NCE (Noise contrastive estimation)을 단순화한 버전이다.
NCE와 NEG의 차이는 Numerical probability가 필요한지 아닌지에 있다.
Numerical probability가 필요하지 않은 것은 특정한 값을 사용해야 한다는 제약이 없다는 의미이다.
이 논문에서는 U(w)의 4/3승을 Z로 나눈 값을 사용한다. (이 값은 바뀌어도 된다.)
NCE를 간단하게 이용하다 보니 NEG는 NCE에 비해 정확도가 떨어진다.
하지만 이 논문은 log probability를 높여 정확도를 높이는 것이 목적이 아닌, vector representation의 quality를 높이는 것이기 때문에 NEG를 사용한다.
이 슬라이드는 skip-gram의 장점인 non-linear 한 형태를 학습하더라도 linear한 결과를 출력할 수 있다는 것을 의미한다.
linear 한 표현이 가능하다는 것은 analogy 한 표현이 가능하다는 것과 같은 뜻이다.
그래서 모든 것을 종합하여 빈도가 낮은 단어에 대해서도 실험을 진행하였더니 skip-gram의 결과가 월등히 좋았다는 것을 알 수 있다.
이렇게 논문 포스팅을 다시 하면서 기억도 새록새록 나고 좋은 것 같다.
'공부 > 논문' 카테고리의 다른 글
[논문] Linguistic Regularities in Continuous Space Word Representations (Tomas Mikolov) (0) | 2017.10.08 |
---|