• Efficient Estimation of Word Representations in Vector Space

    2022. 7. 4.

    by. haong_

    Tomas Mikolov 2013에 발표된 word2vec 논문

    컴퓨터로 언어를 분석 할 수 있게 하기 위해 수치적인 방식으로 단어를 표현 해야 한다. 단어를 벡터로 표현함으로 컴퓨터가 인식을 하고 산술적 계산을 할 수 있게 만들어 준다.

    논문에서는 두가지를 비교했을 때 스킵그램이 좀 더 성능이 좋았다고 한다.

    논문에서는 윈도우 사이즈를 5로 줬을 때 성능이 좋았다고 말하고 있다.

    주변단어들이 원핫벡터로 들어가서 가중치 행렬과 행렬곱, 후에 다시 nxv 가중치 행렬과 곱해서 v길이의 벡터가 나오게 된다. Cbow는 인풋단어가 여러개이므로 각 단어에서 나오는 아웃풋을 다 더해서 평균을 낸 값을 최종 아웃풋으로 사용한다. 최종아웃풋에 소프트맥스 함수를 취해 확률분포로 만들고 실제값과 예측값의 오차를 교차 엔트로피 함수를 사용해 줄여나간다. 히든레이어도 존재하지 않고 행렬곱을 두번하는 굉장히 간단한 구조의 모델이다.

    첫번째 행렬곱 부분을 보면 인풋단어가 원핫벡터이기 때문에 사실상 0은 계산할 필요가 없고 1만 남아서 해당하는 행을 그대로 가져오면 되는데 이 작업을 lookup 이라고 부른다.

    스캡그램은 cbow에서 평균을 구하는 과정 빼고는 동일한 구조를 가지고 있다.

    기존모델은 CxN에 히든레이어까지 곱해져서 수십 수백만의 값이 나오는데 반해 워드투벡의 두 모델은 기존보다 복잡도가 훨씬 많이 줄어들어서 이 논문에서 말하고자 하는 효율적인 학습이 이뤄지는 것을 볼 수 있다.

    논문에서는 단어들 사이의 관계를 측정하기 위해 analogy resining task 라는 실험을 제시했다. 어떤 단어의 페어가 주어졌을때 이 관계에 상응하는 다른단어를 제시하는 방식의 시험. semantic, 의미적인 관계 다섯개와 syntactic 문법적인 관계가 9개 있으며, 예를들면 그리스에서 아테네를 빼고 오슬로를 더해주면 가장 가까운벡터에 노르웨이라는 벡터가 나올경우 정답으로 처리하는 것이다.

    상단의 표는 벡터 길이를 640으로 고정하고 다양한 모델을 이용하여 학습 시켰을때의 결과를 적어둔 것이다. 위의 두 모델은 기존의 다른 모델이고 기존모델에 비해 cbow와 스킵그램이 더 좋은 정확도를 갖는다는 것을 알 수 있다. 스킵그램이 syntactic의 정확도는 조금 떨어지지만 두 문제 모두에서 전반적으로 높은 정확도를 보였다.

    하단의 표는 모델별로 단어 개수와 에포크 수를 조절하면서 얻은 정확도와 time을 보여주는 표이다. 상대적으로 적은 데이터를 여러번 에포크 하는 것 보다 많은 데이터를 사용해 1번의 에포크만 돌리는 것이 더 좋은 성능과 좀더 빨라진 훈련 시간을 제공한다고 말했다.

    word2vec은 분산표현으로 단어 임베딩 모델을 제시했고, 이 이후에도 워드투벡 기반으로 여러 후속연구가 나왔었다. 물론 지금은 더 고도화 된 기술이 많지만 자연어 처리 중에 가장 기본이 되는 내용이라고 볼 수 있겠다.

    '머신러닝 > 논문' 카테고리의 다른 글

    Attention Is All You Need  (0) 2022.07.04
    WaveNet : A Generative Model for Raw Audio, DeepMind  (0) 2022.07.04

    댓글