Tech for good

한국어 임베딩 - 2. 벡터가 어떻게 의미를 가지게 되는가 본문

IT/Data Science

한국어 임베딩 - 2. 벡터가 어떻게 의미를 가지게 되는가

Diana Kang 2021. 4. 14. 16:58

  (한국어 임베딩(Sentence Embeddings Using Korean Corpora) - 이기창 지음 / NAVER Chatbot Model 감수)

 

목차

2. 벡터가 어떻게 의미를 가지게 되는가

   2.1.  자연어 계산과 이해

   2.2.  어떤 단어가 많이 쓰였는가

         2.2.1.  백오브워즈 가정

         2.2.2.  TF-IDF

         2.2.3. Deep Averaging Network

   2.3.  단어가 어떤 순서로 쓰였는가

         2.3.1.  통계 기반 언어 모델

         2.3.2.  뉴럴 네트워크 기반 언어 모델

   2.4.  어떤 단어가 같이 쓰였는가

         2.4.1.  분포 가정

         2.4.2.  분포와 의미 (1): 형태소

         2.4.3.  분포와 의미 (2): 품사

         2.4.4.  점별 상호 정보량

         2.4.5.  Word2Vec

   2.5.   이 장의 요약

 


 

2. 벡터가 어떻게 의미를 가지게 되는가

2.1.  자연어 계산과 이해

임베딩은 자연어를 컴퓨터가 처리할 수 있는 숫자들의 나열인 벡터로 바꾼 결과이기 때문에 컴퓨터 자연어를 계산하는 것이 가능해진다. (임베딩에 관한 자세한 사항은 해당 링크를 참고해주세요 ➡️ https://dianakang.tistory.com/3)

 

그러면 임베딩에 자연어 의미를 어떻게 함축할 수 있을까? 그 비결은 자연어의 통계적 패턴(Statistical pattern)정보를 통째로 임베딩에 넣는 것이다. 자연어의 의미는 해당 언어 화자들이 실제 사용하는 일상 언어에서 드러나기 때문이다. 

임베딩을 만들 때 쓰는 통계 정보는 크게 세 가지가 있다. 첫째는 문장에 어떤 단어가 (많이) 쓰였는지이고, 둘째는 단어가 어떤 순서로 등장하는지이며, 마지막으로는 문장에 어떤 단어가 같이 나타났는지와 관련한 정보다. 이를 정리하면 다음과 같다.

 

임베딩을 만드는 세 가지 철학

 

백오브워즈(bag of words)가정에서는 '어떤 단어가 (많이) 쓰였는지' 정보를 중시한다. 저자의 의도는 단어 사용 여부나 그 빈도에서 드러난다고 보기 때문이다. 단어의 순서(order)정보는 무시한다. 백오브워즈 가정에서 가장 많이 쓰이는 통계량은 Term Frequency-Inverse Document Frequency(TF-IDF) 이며, 백오브워즈 가정의 딥러닝 버전은 Deep Averaging Network이다. 

 

단어의 등장 순서를 무시하는 백오브워즈 가정의 대척점에는 언어 모델(language model)이 있다. 언어 모델은 단어의 등장 순서를 학습해 주어진 단어 시퀀스가 얼마나 자연스러운지 확률을 부여한다. ELMo, GPT 등과 같은 뉴럴 네트워크 기반의 언어 모델 이 여기에 해당한다. 이 모델에서는 '단어가 어떤 순서로 쓰였는지'에 대한 정보를 중시한다. 

 

분포 가정(distributional hypothesis)에서는 '문장에서 어떤 단어가 같이 쓰였는지' 를 중요하게 따진다. 단어의 의미는 그 주변 문맥(context)을 통해 유추해볼 수 있다고 보는 것이다. 분포 가정의 대표 통계량은 점별 상호 정보량(PMI, Pointwise Mutual Information)이며 대표 모델은 Word2Vec을 꼽을 수 있다. 

 

 

위의 세 철학은 서로 연관이 있다. 언어 모델에서는 단어의 등장 순서를, 분포 가정에서는 이웃 단어(문맥)를 우선시한다. 어떤 단어가 문장에서 주로 나타나는 순서는 해당 단어의 주변 문맥과 떼려야 뗄 수 없는 관계를 가진다. 한편 분포 가정에서는 어떤 단어 쌍(pair)이 얼마나 같이 자주 나타나는지와 관련한 정보를 수치화하기 위해 개별 단어 그리고 단어 쌍의 빈도 정보를 적극 활용한다. 요컨대 백오브워즈 가정, 언어 모델, 분포 가정은 말뭉치의 통계적 패턴을 서로 다른 각도에서 분석하는 것이며 상호 보완적이다. 

 

 

2.2.  어떤 단어가 많이 쓰였는가

2.2.1. 백오브워즈 가정

수학에서 백(bag)이란 중복 원소를 허용한 집합(multiset)을 뜻한다. 원소의 순서는 고려하지 않는다. 예컨대 중복집합 {a,a,b,c,c,c}는 {c,a,b,c,a,c}, {c,a,c,b,a,c}와 같다. 자연어 처리 분야에서 백오브워즈(bag of words)단어의 등장 순서에 관계없이 문서 내 단어의 등장 빈도를 임베딩으로 쓰는 기법을 말한다. 즉, 문장을 단어들로 나누고 이들을 중복집합에 넣어 임베딩으로 활용하는 것이라고 보면 된다. 경우에 따라서는 빈도 역시 단순화해 등장여부(등장 시 1, 아니면 0)만을 백오브워즈 임베딩으로 쓰기도 한다. 

 

백오브워즈 임베딩에는 '저자가 생각한 주제가 문서에서의 단어 사용에 녹아 있다'는 가정이 깔려 있다. 다시 말해 주제가 비슷한 문서라면 단어 빈도 또는 단어 등장 여부 역시 비슷할 것이고, 백오브워즈 임베딩 역시 유사할 것이라고 보는 것이다. 빈도를 그대로 백오브워즈로 쓴다면 많이 쓰인 단어가 주제와 더 강한 관련을 맺고 있을 것이라는 전제 역시 깔려 있다. 

 

아래의 표는 1장의 단어-문서 행렬(Term-Document matrix)을 그대로 옮겨 놓은 것이다. <사랑 손님과 어머니>와 <삼포 가는 길>문서 관련성이 상대적으로 높다는 것을 알 수 있다.

단어-문서 행렬

 

 

백오브워즈 임베딩은 간단한 아이디어지만, 정보 검색(Information Retrieval) 분야에서 여전히 많이 쓰이고 있다. 사용자의 질의(query)에 가장 적절한 문서를 보여줄 때 질의를 백오브워즈 임베딩으로 변환하고 질의와 검색 대상 문서 임베딩 간 코사인 유사도를 구해 유사도가 가장 높은 문서를 사용자에게 노출한다. 

 

2.2.2. TF-IDF

단어 빈도 또는 등장 여부를 그대로 임베딩으로 쓰는 것에는 큰 단점이 있다. 해당 단어가 많이 나타났다 하더라도 문서의 주제를 가늠하기 어려운 경우가 있기 때문이다. 예컨대 '을/를', '이/가' 같은 조사만으로는 문서의 주제를 추측하기 어렵다.

 

이러한 단점을 보완하기 위해 제안된 기법이 TF-IDF(Term Frequency-Inverse Document Frequency)이다. 단어-문서 행렬에 가중치를 계산해 행렬 원소(matrix element)로 바꾼다. TF-IDF 역시 단어 등장 순서를 고려하지 않는다는 점에서 백오브워즈 임베딩이라고 이해할 수 있다. 

 

 

TF-IDF (출처: 이미지 클릭시 이동)

 

 

위의 수식에서 tf(Term Frequency)는 어떤 단어가 특정 문서에 얼마나 많이 쓰였는지 빈도를 나타낸다. 많이 쓰인 단어가 중요하다는 가정을 전제로 한 수치다. 예컨대 A라는 단어가 문서1에서 10번, 문서3번에서 5번 쓰였다면 문서1 - 단어A의 TF는 10, 문서3-단어A의 TF는 5가 된다. 

df(Document Frequency)는 특정 단어가 나타난 문서의 수를 뜻한다. 만약 A라는 단어가 말뭉치 전체에서 문서1, 문서3에만 등장했다면 DF는 2가 된다.  DF가 클수록 다수 문서에 쓰이는 범용적인 단어라고 볼 수 있다. TF는 같은 단어라도 문서마다 다른 값을 갖고, DF는 문서가 달라지더라도 단어가 같다면 동일한 값을 가진다.

IDF(Inverse Document Frequency)는 전체 문서 수(N)를 해당 단어의 DF로 나눈 뒤 로그를 취한 값이다. 그 값이 클수록 특이한 단어라는 뜻이다. 이는 단어의 주제 예측 능력(해당 단어만 보고 문서의 주제를 가늠해볼 수 있는 정도)과 직결된다. 

 

TF-IDF가 지향하는 원리는 이러하다. 어떤 단어의 주제 예측 능력이 강할 수록 가중치가 커지고, 그 반대의 경우 작아진다. 

아래의 표를 보면 담배라는 단어는 조사 보다 TF-IDF값이 크다. 만 봐서는 해당 문서의 주제를 추측하기 어렵지만, 담배가 나왔다면 문서 주제를 예측하기가 상대적으로 수월하다. 

 

한편 어떤 단어의 TF가 높으면 TF-IDF 값 역시 커진다. 단어 사용 빈도는 저자가 상정한 주제와 관련을 맺고 있을 것이라는 가정에 기초한 것이다. 

TF-IDF 행렬

 

 

위의 표처럼 TF-IDF를 적용하면 같이 정보성이 없는 단어들은 그 가중치가 0으로 확 줄게 돼 불필요한 정보가 사라진다.

따라서 위의 2.2.1. 단어-문서 행렬 표 보다는 2.2.2. TF-IDF 행렬 표가 좀 더 품질이 좋은 임베딩이라고 볼 수 있는 것이다. 

 

2.2.3. Deep Averaging Network

Deep Averaging Network는 백오브워즈 가정의 뉴럴 네트워크 버전이다. 모델의 콘셉은 다음과 같다. 

Deep Averaging Network (출처: 이미지 클릭시 이동)

 

Deep Averaging Network이 백오브워즈 가정과 연결될 수 있는 지점은 단어의 순서를 고려하지 않는다는 점에 있다. 위의 그림에서 확인할 수 있는 것처럼 Predator is a masterpiece 라는 문장의 임베딩은 중복집합 {Predator, is, a, masterpiece}에 속한 단어의 임베딩을 평균(mean)을 취해 만든다. 벡터의 덧셈은 교환 법칙이 성립하기 때문에 {a, masterpiece, Predator, is}는 {Predator, a, masterpiece, is}, {masterpiece, Predator, a, is} 순서로 쓰는 임베딩과 동일하다. 

 

이는 문장 내에 어떤 단어가 쓰였는지, 쓰였다면 얼마나 많이 쓰였는지 그 빈도만을 따진다. 즉, 문장 임베딩을 입력받아 해당 문서가 어떤 범주인지 분류(classification)하는 것이다. 이는 간단한 구조의 아키텍처임에도 성능이 좋아서 현업에서도 자주 쓰인다. 

 

 

2.3.  단어가 어떤 순서로 쓰였는가

2.3.1. 통계 기반 언어 모델

언어 모델(language model)이란 단어 시퀀스에 확률(probability)을 부여(assign)하는 모델이다. 단어의 등장 순서를 무시하는 백오브워즈와 달리 언어 모델은 시퀀스 정보를 명시적으로 학습한다. 

 

즉, 단어가 n개 주어진 상황이라면 언어 모델은 n개 단어가 동시에 나타날 확률, 즉 P(w1, ..., wn)을 반환한다. 통계 기반의 언어 모델은 말뭉치에서 해당 단어 시퀀스가 얼마나 자주 등장하는지 빈도를 세어 학습한다. 잘 학습된 언어 모델이 있다면 어떤 문장이 그럴듯한지(확률 값이 높은지), 주어진 단어 시퀀스 다음 단어는 무엇이 오는게 자연스러운지 알 수 있다. 아래의 그림처럼 자연스러운 한국어 문장에 높은 확률 값을 부여한다.

 

한국어 언어 모델 예시

 

n-gram이란 n개 단어를 뜻하는 용어다. 난폭, 운전, 눈, 뜨다 등은 2-gram 또는 바이그램(bigram)이다. 누명, 을, 쓰다 등은 3-gram 또는 트라이그램(trigram)이다. 바람, 잘, 날, 없다 등은 4-gram이다. 따라서 n-gram은 말뭉치 내 단어들을 n개씩 묶어서 그 빈도를 학습했다는 뜻이다. 

 

n-gram 모델은 직전 n-1개 단어의 등장 확률로 전체 단어 시퀀스 등장 확률을 근사(approximation)하는 것이다. 이는 한 상태(state)의 확률은 그 직전 상태에만 의존한다는 마르코프 가정(markov assumption)에 기반한 것이다. 다시 말해, 전체 단어 시퀀스 등장 확률 계산 시 직전 n-1개의 단어의 히스토리를 보고 확률을 근사하는 것이다. 

 

 

하지만 이는 데이터에 한 번도 등장하지 않는 n-gram이 존재할 때 예측 단계에서 문제가 발생할 수 있다는 단점이 있다. 이를 위해 백오프(back-off), 스무딩(smoothing)등의 방식이 제안됐다. 백오프n-gram 등장 빈도를 n보다 작은 범위의 단어 시퀀스 빈도로 근사하는 방식이다. n을 크게 하면 할수록 등장하지 않는 케이스가 많아질 가능성이 높기 때문이다. 

 

스무딩은 등장 빈도에 모두 k만큼을 더하는 기법이다. 이러한 이유로 Add-k 스무딩이라고 부르기도 한다. 만약 k를 1로 설정한다면 이를 특별히 라플라스 스무딩(laplace smoothing)이라고 한다. 스무딩을 시행하면 높은 빈도를 가진 문자열 등장 확률을 일부 깎고 학습 데이터에 전혀 등장하지 않는 케이스들에는 작으나마 일부 확률을 부여하게 된다. 

 

2.3.2. 뉴럴 네트워크 기반 언어 모델

2.3.1.에서 설명한 통계 기반 언어 모델은 단어들의 빈도를 세어서 학습한다. 그런데 이를 뉴럴 네트워크로 학습할 수도 있다. 뉴럴 네트워크는 입력과 출력 사이의 관계를 유연하게 포착해낼 수 있고, 그 자체로 확률 모델로 기능할 수 있기 때문이다. 그 콘셉트는 아래와 같다.

 

뉴럴 네트워크 기반 언어 모델을 활용한 임베딩

 

 

뉴럴 네트워크 기반 언어 모델은 위의 그림처럼 주어진 단어 시퀀스를 가지고 다음 단어를 맞추는(prediction)과정에서 학습된다. 학습이 완료되면 이들 모델의 중간 혹은 말단 계산 결과물을 단어나 문장의 임베딩으로 활용한다. ELMo, GPT 등 모델이 여기에 해당한다.

 

마스크 언어 모델(masked language model)은 언어 모델 기반 기법과 큰 틀에서 유사하지만 디테일에서 차이를 보이는 기법이다. 아래의 그림처럼 문장 중간에 마스크를 씌워 놓고, 해당 마스크 위치에 어떤 단어가 올지 예측하는 과정에서 학습한다. 

 

언어 모델 기반 기법은 단어를 순차적으로 입력받아 다음 단어를 맞춰야 하기 때문에 태생적으로 일방향(uni-directional)이다. 하지만 마스크 언어 모델 기반 기법은 문장 전체를 다 보고 중간에 있는 단어를 예측하기 때문에 양방향(bi-directional)학습이 가능하다. 이 덕분에 마스크 언어 모델 기반의 방법들은 기존 언어 모델 기법들 대비 임베딩 품질이 좋다. BERT가 이 부류에 속한다. 

마스크 언어 모델 기반 임베딩 기법

 

 

 

2.4.  어떤 단어가 같이 쓰였는가

2.4.1. 분포 가정

자연어 처리에서 분포(distribution)란 특정 범위, 즉 윈도우(window)내에 동시에 등장하는 이웃 단어 또는 문맥(context)의 집합을 가리킨다. 개별 단어의 분포는 그 단어가 문장 내에서 주로 어느 위치에 나타나는지, 이웃한 위치에 어떤 단어가 자주 나타나는지에 따라 달라진다. 어떤 단어 쌍(pair)이 비슷한 문맥 환경에서 자주 등장한다면 그 의미(meaning)또한 유사할 것이라는게 분포 가정(distributional hypothesis)의 전제이다. 

 

 

2.4.2. 분포의 의미 (1): 형태소

언어학에서 형태소(morpheme)의미를 가지는 최소 단위를 말한다. 이때의 '의미'는 어휘적인 것뿐만 아니라 문법적인 것도 포함된다.

 

형태소를 분석하는 대표적인 기준으로는 계열 관계(paradigmatic relation)가 있다. 계열 관계는 해당 형태소 자리에 다른 형태소가 '대치'돼 쓰일 수 있는가를 따지는 것이다. 언어학자들이 한국어 말뭉치를 다량 분석한 결과, '철수' 자리에 '영희' 가 올 수 있고, '밥'대신 '빵'을 쓸 수도 있다는 사실을 확인했다고 가정해보자. 언어학자들은 이를 근거로 '철수'와 '밥'에 형태소 자격을 부여한다. 이는 곧 언어학자들이 특정 타깃 단어 주변의 문맥 정보를 바탕으로 형태소를 확인한다는 이야기와 일맥상통한다. 말뭉치의 분포 정보와 형태소가 밀접한 관계를 이루고 있다는 것이다. 

 

2.4.2. 분포의 의미 (2): 품사

이번에는 품사 관점에서 살펴보자. 품사단어를 문법적 성질의 공통성에 따라 언어학자들이 몇 갈래로 묶어 놓은 것이다. 

언어학자들이 제시하는 품사 분류 기준은 기능(function), 의미(meaning), 형태(form) 등 세 가지다. 

 

  • 이 샘의 깊이가 얼마냐?
  • 저 산의 높이가 얼마나?
  • 이 샘이 깊다.
  • 저 산이 높다.

 

'기능'은 한 단어가 문장 가운데서 다른 단어와 맺는 관계를 가리킨다. 위 예시에서 '깊이', '높이'는 문장의 주어로 쓰이고 있고, '깊다', '높다'는 서술어로 사용되고 있다. 이처럼 기능이 같은 단어 부류를 같은 품사로 묶을 수 있다.

 

'의미'란 단어의 형식적 의미를 나타낸다. 물론 '깊이', '깊다'를 하나로 묶고 '높이', '높다'를 같은 군집으로 넣을 수도 있다. 이때 적용된 기준은 어휘적 의미이다. 하지만 품사 분류에는 어휘적 의미보다는 형식적 의미가 중요하다.

다시 말해, 어떤 단어가 1. 사물의 이름을 나타내느냐, 그렇지 않으면 2. 움직임이나 성질, 상태를 나타내느냐 하는 것이다.

이렇게 본다면 '깊이', '높이'를 한 덩어리로, '깊다', '높다'를 다른 덩어리로 묶을 수 있다. 

 

'형식'은 단어의 형태적 특징을 의미한다. 위 예문에서 '깊이', '높이'는 변화하지 않는다. 하지만 '깊다', '높다'는 '깊었다/높았다', '깊겠다/높겠다' 따위와 같이 어미가 붙어 여러 가지 모습으로 변화를 일으킬 수 있다. 이 기준으로 봐도 '깊이', '높이'를 한 덩어리로, '깊다', '높다'를 다른 덩어리로 묶을 수 있다. 

 

 

하지만 실제 품사를 분류할 때에는 여러 가지 어려움이 따른다. 예컨대 의미는 품사 분류 시 고려 대상이 될 수 있으나 결정적인 분류 기준이 될 수 없다. 다음 예문을 보자.

 

  • 공부하다
  • 공부

한국어 화자라면 대개 '공부하다'를 동사, '공부'를 명사로 분류할 것이다. '공부하다'는 움직임을 나타내고, '공부'는 사물의 이름이라는 의미를 내포한다고 보는 것이다. 그렇다면 '공부'라는 단어에는 움직임이라는 의미가 전혀 없는 것일까? 딱 잘라 그렇다고 말하기 어렵다. 즉, 의미가 품사 분류의 결정적인 기준이 될 수 없다는 이야기다. 

 

 

 

품사 분류 시 결정적 기준이 될 수 없는 건 형태도 마찬가지다. 예문을 보자.

 

(a) 영수가 학교에 간다.

(b) 영수! 조용히 해.

 

 

(a)에서 '영수'는 명사, (b)에서 영수는 감탄사로 쓰였다. 형태는 같지만 기능과 의미가 달라졌음을 확인할 수 있다.

 

 

그렇다면 품사 분류에서 가장 중요한 기준은 무엇일까? 언어학자들이 꼽는 결정적인 기준은 바로 '기능'이라고 한다. 해당 단어가 문장 내에서 점하는 역할에 초점을 맞춰 품사를 분류한다는 것이다. 

 

그런데 많은 언어에서는 어떤 단어의 '기능'이 그 단어의 '분포(distribution)'와 매우 밀접한 관련을 맺고 있다고 한다.

'기능'은 특정 단어가 문장 내에서 어떤 역할을 하는지, '분포'는 그 단어가 어느 자리에 있는지를 나타낸다. 비유컨대 '이웃사촌'은 정이 들어 사촌 형제나 다를 바 없이 지내는 이웃을 뜻한다. 자주 만나고 가까이에 있는 이웃(분포)이 혈육 같이 챙겨주는 역할(기능)을 하는 데서 생겨난 말이다. 이처럼 기능과 분포는 개념적으로 엄밀히 다르지만, 둘 사이에는 밀접한 관련을 지닌다. 국어학자들은 한국어 품사 분류의 일반적인 기준을 다음과 같이 정의하고 있다.

 

 

한국어 품사 분류의 일반적 기준
  • 체언(명사): 관형사가 그 앞에 올 수 있고, 조사가 그 뒤에 올 수 있음.
  • 용언(동사/형용사): 부사가 그 앞에 올 수 있고, 선어말어미가 그 뒤에 올 수 있고 어말어미가 그 뒤에 와야 함
  • 관형사: 명사가 그 뒤에 와야 함
  • 부사: 용언, 부사, 절이 그 뒤에 와야 함
  • 조사: 체언 뒤에 와야 함
  • 어미: 용언 뒤에 와야 함
  • 감탄사(간투사): 특별한 결합 제약 없이 즉, 문장 내의 다른 단어와 문법적 관계를 맺지 않고 따로 존재함

 

2.4.4. 점별 상호 정보량

점별 상호 점보량(PMI, Pointwise Mutual Information)두 확률 변수(random variable)사이의 상관성을 계량화하는 단위다. 두 확률변수가 완전히 독립(independent)인 경우 그 값이 0이 된다. 독립이라고 함은 단어 A가 나타나는 것이 단어 B의 등장할 확률에 전혀 영향을 주지 않고, 단어 B 등장이 단어 A에 영향을 주지 않는 경우를 가리킨다. 반대로 단어 A가 등장할 때 단어 B와 자주 같이 나타난다면 PMI 값은 커진다. 즉, PMI는 두 단어의 등장이 독립일 때 대비해 얼마나 자주 같이 등장하는지를 수치화한 것이다. PMI 공식은 다음과 같다.

 

점별 상호 정보량(PMI) (출처: 이미지 클릭시 이동)

 

 

PMI는 '분포 가정에 따른 단어 가중치 할당 기법'이다. 두 단어가 얼마나 자주 같이 등장하는지에 관한 정보를 수치화한 것이기 때문이다. 이렇게 구축한 PMI 행렬의 행벡터 자체를 해당 단어의 임베딩으로 사용할 수도 있다. 만약 윈도우(window)가 2라면 타깃 단어 앞뒤로 2개의 문맥 단어의 빈도를 계산한다. 현재 타깃 단어가 빨래라면 에서, 속옷, , 하는 이라는 문맥 단어가 이번 빈도 계산의 대상이 되고 이들의 값을 1씩 올려준다. 이렇게 모든 단어를 훑어 단어-문맥 행렬을 모두 구했다고 해보자. 

 

  • 전체 빈도 수 : 1000회
  • '빨래' 등장 횟수 : 20회
  • '속옷' 등장 횟수 : 15회
  • '빨래', '속옷' 동시 등장 횟수: 10회

 

빨래 - 속옷 간 PMI 계산

 : PMI ('빨래', '속옷') = log(P('빨래', '속옷') / P('빨래') × P('속옷') )

   = log ( (10/1000) / (20/1000) × (15/1000)



2.4.5. Word2Vec

분포 가정의 대표적인 모델은 2013년 구글 연구 팀이 발표한 Word2Vec이라는 임베딩 기법이다. 기본 구조는 아래와 같다. 

CBOW모델문맥 단어들을 가지고 타깃 단어 하나를 맞추는 과정에서 학습된다. Skip-gram모델타깃 단어를 가지고 문맥 단어가 무엇일지 예측하는 과정에서 학습된다. 두 모델 모두 특정 타깃 단어 주변의 문맥, 즉 분포 정보를 임베딩에 함축한다. 실제 Word2Vec 기법은 PMI 행렬과 깊은 연관이 있다는 논문이 발표되기도 했다. 

CBOW와 Skip-gram 모델 (출처: 이미지 클릭시 이동)

 

 

2.5.  이 장의 요약

2장에서는 "벡터가 어떻게 의미를 가지게 되는가"란 주제로 다양한 각도에서 살펴봤다. 주요 내용은 다음과 같다. 

 

  • 임베딩에 자연어의 통계적 패턴(statistical pattern)정보를 주면 자연어의 의미(semantic)를 함축할 수 있다.
  • 백오브워즈 가정에서는 어떤 단어의 등장 여부 혹은 그 빈도 정보를 중시한다. 단, 순서 정보는 무시한다.
  • 백오브워즈 가정의 대척점에는 언어 모델이 있다. 언어 모델은 단어의 등장 순서를 학습해 주어진 단어 시퀀스가 얼마나 자연스러운지 확률을 부여한다.
  • 분포 가정에서는 문장에서 어떤 단어가 같이 쓰였는지를 중요하게 따진다.
  • 백오브워즈 가정, 언어 모델, 분포 가정은 말뭉치의 통계적 패턴을 서로 다른 각도에서 분석하는 것이며 상호 보완적이다.