빅데이터 공부 한 걸음: Word2Vec 이란?

//빅데이터 공부 한 걸음: Word2Vec 이란?

빅데이터 공부 한 걸음: Word2Vec 이란?

임베딩은 텍스트를 단순하게 표현할 수 있어 다양한 통계적 자연어 처리기법에 적용되었고, 좋은 성과를 보이고 있습니다. 이번 컨텐츠에서는 간단한 인공신경망 모형을 기반으로 효율성을 대폭 개선시킨 Word2Vec에 대해 알아보고자 합니다.

  • 워드 임베딩(Word Embedding) 개념과 표현 방법
  • Word2Vec 개념과 두 가지 학습 방법
  • Word2Vec 최적화 방법
  • Word2Vec 한계점


1. 워드 임베딩(Word Embedding)

임베딩이란 비정형화된 텍스트를 숫자로 바꿔줌으로써 사람의 언어를 컴퓨터 언어로 번역하는 것을 뜻합니다. 자연어처리 분야에서 텍스트 데이터를 처리하는 가장 작은 단위(atomic unit)는 단어였으며, 이는 일반적으로 단위 벡터(one-hot vector)로 표현됩니다. 이처럼 임베딩은 텍스트를 단순하게 표현할 수 있어 다양한 통계적 자연어 처리(statistical natural language processing)기법에 적용되었고, 좋은 성과를 보이고 있습니다. 임베딩의 표현 방법에는 단어를 벡터로 변환하는 방법단어를 밀집 표현으로 변환하는 방법이 있습니다.

1.1 희소 표현(Sparse Representation)

희소 표현은 원-핫 인코딩(one-hot encoding)을 통해 나온 원-핫 벡터처럼 벡터 또는 행렬(matrix)의 대부분 값이 0으로 표현되는 방법입니다. 예를 들어 ‘나는 임베딩 공부를 하고 있다’라는 문장을 희소 표현으로 나타내면 <그림1-좌>과 같이 나타낼 수 있습니다.

(좌) 희소 표현 (우) 밀집 표현

 


이처럼 표현하고자 하는 단어를 간단하게 나타낼 수 있다는 장점이 있습니다. 그러나 데이터의 규모가 매우 커져서 데이터 셋에 등장하는 단어의 종류가 기하급수적으로 증가할 경우에는 단위 벡터의 크기가 지나치게 커진다는 단점이 있습니다. 이는 공간적 낭비를 불러일으킵니다. 또한, 단어를 단위 벡터로 표현하는 방법으로는 단어 간 의미적(semantic), 구문적(syntactic) 유사도를 평가할 수 없습니다.

1.2 밀집 표현(Dense Representation)

밀집 표현은 희소 표현과 반대되는 개념으로 벡터의 차원을 단어의 집합 크기로 상정하지 않습니다. 오히려 사용자가 설정한 값으로 모든 단어의 벡터 표현 차원을 맞춰 각 벡터 값이 0과 1이 아닌 실수 값으로 표현합니다. 따라서 밀집 표현은 저차원에서 단어의 의미를 여러 차원 공간에 분산하여 표현하기 때문에 단어 간 유사도를 계산할 수 있습니다. <그림1-우>와 같이 단어를 밀집 벡터의 형태로 표현하는 방법워드 임베딩이라고 하며, 그 결과를 임베딩 벡터(embedding vector)라고도 합니다. 두 표현 방법의 차이는 <그림2>와 같으며, 이 콘텐츠는 워드 임베딩 중 하나인 Word2Vec에 대해서 알아보고자 합니다.

표현 방법 비교 (출처 : 딥러닝을 이용한 자연어 처리 입문)

[/fusion_text]

2. Word2Vec

구글에서 개발한 Word2Vec은 분포 가설(distributional hypothesis)을 가정 하에 표현한 분산 표현을 따릅니다. 예를 들어 ‘강아지’라는 단어는 ‘귀엽다’, ‘예쁘다’, ‘애교’ 등의 단어와 같이 자주 등장한다고 해봅시다. 그에 따라 분포 가설에 맞춰 해당 단어들을 벡터화한다면 유사한 값이 나올 것입니다. 즉, 의미적으로 가까운 단어가 된다는 뜻입니다.

분산 표현을 통해 벡터를 구하는 방법이 이미 널리 사용되고 있었지만, Word2Vec이 특히 주목 받게 된 이유는 효율성 부분입니다. 간단한 인공신경망 모형을 기반으로 학습 데이터의 규모가 10억 단어 이상으로 커져도 요구되는 계산량을 낮은 수준으로 유지(computationally cheap)할 수 있습니다. 이는 학습 과정을 쉽게 병렬화(parallelization)하여 짧은 시간 안에 양질의 단어 벡터 표상을 얻을 수 있기 때문입니다. 이처럼 속도를 대폭 개선시킨 Word2Vec에는 CBoW Skip-Gram이라는 두 가지 학습 방법이 존재합니다.

2.1 CBoW(Continuous Bag of Words)

CBoW는 주변에 있는 단어들로 중간에 있는 단어들을 예측하는 방법입니다. 이 때, 예측해야 하는 단어를 중심 단어(center word)라 하고, 예측에 사용되는 단어들을 주변 단어(context word)라고 합니다. 중심 단어를 예측하기 위해서는 앞뒤로 몇 개의 단어를 볼지 결정하게 되는데, 그 크기를 윈도우(window)라고 하며, 학습을 위한 데이터 셋을 만들기 위해 슬라이딩 윈도우(sliding window)를 사용합니다.

Word2Vec의 학습은 주변 단어 크기에 따라 말뭉치(corpus)를 슬라이딩하면서 중심 단어의 주변 단어들을 보고 각 단어의 벡터 값을 업데이트 해나가는 방식입니다. 이 때, 윈도우 내에 등장하지 않는 단어에 해당하는 벡터는 중심 단어 벡터와 멀어지게끔, 등장하는 주변 단어 벡터는 중심 단어 벡터와 가까워지도록 값을 변경해 나갑니다.

CBoW의 인공신경망 구조

 


CBoW를 이용하는 Word2Vec의 신경망 구조는 <그림3>와 같고, 은닉층(hidden layer)이 하나이므로 딥러닝 모델이 아닌 얕은 신경망(shallow neural network)라고 할 수 있습니다. 게다가 일반적인 은닉층과는 다르게 활성화 함수가 존재하지 않고, 연산(룩업 테이블)만을 담당하는 층이므로 투사층(projection layer)이라고 부릅니다. 이는 <그림3>의 상단 부분에서 행렬의 곱을 보면 쉽게 이해할 수 있습니다.

주변 단어 별 원-핫 벡터에 가중치 W를 곱해서 생긴 결과 벡터들은 투사층에서 만나고 이 벡터들의 평균을 구합니다. 평균 벡터 값을 다시 두 번째 가중치 행렬 W’과 곱하여 나온 원-핫 벡터들과 차원이 동일한 벡터에 softmax함수를 적용함으로써 스코어 벡터(score vector)를 구합니다. 스코어 벡터의 n번째 인덱스 값은 n번째 단어가 중심 단어일 확률을 뜻합니다.

추가적으로, 스코어 벡터(or 예측 값)과 실제 중심 단어 벡터 값과의 오차를 줄이기 위해 손실 함수(loss function)을 사용하여 오차를 최소화하는 방향으로 학습됩니다.

2.2 Skip-Gram 

Skip-Gram의 원리는 CBoW와 크게 다르지 않지만 중심 단어를 보고 어떤 주변 단어가 존재하는지 예측하는 모델입니다. <그림4>와 같이 Skip-Gram은 CBoW와 같이 매우 간단한 인공신경망 모델이며, 입력층과 출력층만 CBoW와 반대입니다. 이처럼 유사한 두 방식을 두고 여러 논문에서 성능 비교를 진행하였고, 그 결과 전반적으로 Skip-Gram이 CBoW보다 좋은 성능을 보인다고 알려져 있습니다.

Skip-Gram의 인공신경망 구조

 

3.Word2Vec의 최적화

앞서 살펴본 두 가지 방식은 입력으로 주어진 단어를 N차원의 벡터로 투영한 뒤, softmax함수를 이용하여 출력 단어를 맞추도록 학습되면서 학습 속도가 매우 느려진다는 단점이 존재합니다. 이는 정확한 계산을 위해 데이터 셋에 존재하는 모든 단어를 한꺼번에 고려하여 계산량이 매우 커졌기 때문입니다. Word2Vec이 상용화되기 시작하면서 해당 단점을 극복하기 위해 hierarchical softmax와 negative sampling이라는 두 가지 방법이 제안되었습니다.

3.1 Hierarchical softmax

이 방법은 순수하게 softamx함수를 빠르게 계산하기 위해 고안되었고, 모든 단어 별 등장 빈도를 고려하여 이진 트리(binary tree)를 아래와 같이 구성하는 방법입니다.

Step1) 데이터 셋 상에서 가장 높은 빈도로 등장하는 단어를 트리의 루트로 지정합니다.

Step2) 루트의 자식 노드는 2, 3번째로 많이 등장한 단어로 저장하고, 각각의 다음 자식 노드에는 다음으로 많이 등장하는 단어를 저장합니다.

<그림5>과 같이 확률 값을 구하고자 하는 단어가 저장된 리프(leaf) 노드까지 가는 길에 저장된 확률을 계산하기 때문에 일반 softmax함수처럼 N번 탐색할 필요없이 logN번만 계산하면 됩니다. 따라서, 빈도가 높은 단어일수록 트리의 상위 부분에 저장되어 있어 logN번보다 적게 계산이 가능하기 때문에 학습 속도를 향상시킬 수 있습니다.

Hierarchical softmax 예시

 


3.2 Negative sampling

이름에서 알 수 있듯이 ‘softmax함수에서 너무 많은 단어들을 계산하지 말고, 몇 개만 뽑아서 계산하면 안될까?’에서 시작된 접근법입니다. softmax함수를 계산하는 것이 아닌 다른 방식을 통해 학습하는 것입니다. 예를 들어 ‘나는 임베딩 공부를 하고 있다’에서 중심 단어를 ‘임베딩’으로,주변 단어를 ‘나는’과 ‘공부를’이라고 해봅시다. 실제 주변 단어인 ‘나는’과 ‘공부를’은 긍정적인(positive) 예시가 되고, 주변 단어에 포함되지 않는 ‘하고’와 ‘있다’는 부정적인(negative) 예시가 됩니다. 이와 같이 부정적인 예시가 적은 경우는 상관없지만, 실제 코퍼스 상에서는 부정적인 예시들의 수가 매우 크므로 그 중 일부(sampling)를 뽑아서 사용하는 방법입니다.


3.3
성능평가

Word2Vec의 학습 속도 향상을 위해서 제안된 두 가지 방법을 적용하여 성능을 평가했을 때, hierarchical softmax보다는 negative sampling 방법이 성능이 더 좋았다고 합니다. 또한, 학습 방법에서도 CBoW보다는 Skip-Gram으로 학습된 워드 임베딩의 성능이 더 좋다고 알려졌습니다. 그에 따라 Word2Vec은 Skip-Gram모델에 negative sampling방법을 적용하여 학습하는 것이 당연하게 굳어졌습니다. 이는 Wrod2Vec을 대신하여 SGNS(Skip-Gram with Negative Sampling)라는 용어로 불리기도 했으며, 워드 임베딩 학습 방법에서 한 축을 담당하게 되었습니다.


4. 한계점

워드 임베딩 학습에서 한 축을 담당하고 있는 Word2Vec도 다음과 같이 몇 가지 한계점이 있습니다.

  1. 단어의 형태학적 특성을 반영하지 못합니다.

‘teach’, ‘teacher’, ‘teachers’와 같이 세 단어는 의미적으로 유사한 단어이지만, 각 단어를 개별 단어(unique word)로 처리하여 세 단어 모두 벡터 값이 다르게 구성됩니다.

  1. 분포 가설을 기반으로 학습하는 만큼 단어 빈도 수의 영향을 많이 받아 희소한 단어(rare word)를 임베딩하기 어렵습니다.
  2. OOV(Out of Vocabulary)의 처리가 어렵습니다.

OOV는 말 그대로 사전에 없는 단어이며, 단어 단위로 사전을 구성하여 학습하는 Word2Vec의 특성 상 새로운 단어가 등장하면 데이터 전체를 다시 학습시켜야 한다는 문제가 있습니다.


해당 컨텐츠를 통해 단어 임베딩 모델 중 Word2Vec의 기본 개념과 한계점을 살펴보았습니다. Word2Vec 모델은 간단한 인공신경망 모델로 학습이 가능하고, 계산 효율성이 뛰어나 자연어 처리 분야를 넘어 추천 시스템에서도 사용될 만큼 활용 분야가 넓습니다. 하지만 Word2Vec의 단점을 보완할 수 있는 모델(GloVe, FastText 등)이 개발되고 있는 만큼 단어 임베딩 모델을 활용하고 싶다면 각 모델의 장단점을 비교해보고 원하는 방향에 적합한 모델을 사용하여 좋은 결과를 얻길 바랍니다.

참고자료

  • Distributed Representations of Words and Phrases and their Compositionality, Tomas Mikolov, 2013
  • 딥러닝을 이용한 자연어 처리 입문, 유원준, 2020

[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

By |2021-05-10T17:26:47+09:005월 10th, 2021|Categories: 빅데이터|0 Comments

About the Author:

Leave A Comment

Big Data Social Analytics Service

소셜 빅데이터 분석 솔루션인 스마트크런처(Smart Cruncher)는 사용자 반응 지표 데이터를 수집 및 분석하여 효과적인 디지털 마케팅 실행을 위한 시장ᆞ고객분석, 홍보·마케팅 전략수립, 신사업ᆞ신상품 개발 전략 수립, VOCᆞ위기 모니터링 등의 서비스를 제공합니다.

Google Analytics Service

국내의 대기업 및 관공서는 물론 태국, 인도네시아등 해외 구축사례의 경험은골든프래닛의 노하우를 느끼실 수 있습니다. 아래의 구글 애널리틱스 기능을 통해 고객사의 요구사항에 맞는 컨설팅 업무를 진행 합니다.

Marketing Automation

골든플래닛의 디지털 마케팅이란 고객의 니즈가 발생한 시점을 정확히 알고, 고객의 니즈를 정확히 파악하여 고객이 필요로 하는 상품을 전달하는 과정이라고 할 수 있으며, 소비자들과의 커뮤니케이션을 통해 ‘고객 경로 맵(Customer Journey Map)’을 파악하는 것이 중요합니다.