제2절 임베딩방법론
1. 임베딩(embedding)
자연어 처리 분야에서의 임베딩이란 기계가 이해할 수 있는 실수값으 로 이루어진 벡터로 단어표현을 학습하는 과정과 그 결과를 나타낸다 (Bengio et al., 2003). 대표적인 비정형 형태의 자료인 텍스트자료에서 는 단어를 모형 적합에 사용하기 위해서 단어를 숫자 벡터로 변환하는 과 정이 반드시 필요하다. 이를 워드 임베딩(word embedding)이라 부르 며, 전통적인 방법에서는 전체 단어 집합의 개수를 개라고 하면 하나의 단어를 해당하는 단어 위치에 1의 값을 가지고 있는 지시 벡터(indicator vector)로 변환하는 방법을 활용한다. 가장 기본적인 임베딩 방법인 TF-IDF(Term Frequency Inverse Document Frequency)는, 문서를 단어 단위로 분해하여 생성된 문서-단어 행렬(document-term matrix) 에서 사용할 수 있는 방법으로 단어의 등장 여부를 0과 1을 통해 표현하 는 지시 벡터로 표현한다. TF-IDF 방법은 단어의 개수에 비례하기 때문 에 고차원을 가지게 된다.
최근 단어표현학습에 범용적으로 활용되고 있는 word2vec(Mikolov
et al., 2013), Glove(Pennington et al., 2014) 등의 기술들은 밀집한 (dense)한 저차원의 실수벡터로 표현함으로써 비슷한 의미의 단어는 가 까운 거리(유클리디언 거리 혹은 코사인 유사도)에 위치하도록 임베딩 공 간을 만들 수 있다.
〔그림 4-3〕 1차원 합성망
자료: Kim (2014). “Convolutional neural network for sentence classification”, Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing, p. 1746-1751.
임베딩 방법은 특징을 분산하여 표현할 수 있는 장점을 가지고 있다.
〔그림 4-3〕은 텍스트 자료에 대한 1차원 합성망모형을 활용하여 단어를 임베딩하는 기법을 나타내는 것으로 단어 색인을 저차원 벡터 표현으로 대응시킨다. 합성망모형은 문장의 단어들의 전후의 순서 정보를 보존함 으로써 단어/표현의 등장순서를 학습에 반영하는 구조를 반영할 수 있다.
컴퓨터 비전 분야에서 널리 활용되는 합성망모형이 자연어 처리 문제에 서도 효과적일 수 있음을 확인할 수 있다. 중간층으로 한 층을 사용하는 합성망모형에 대한 설명은 다음과 같다.
주어진 하나의 문장이 개의 단어로 구성되어졌다고 하고, 각 입력단 어는 차원의 임베딩 실수벡터라고 하자. 즉, 한 문장에서 번째 단어를
∈라 놓자. 번째 단어를 포함하여 연속된 개의 단어로 구성된 문 장을 연쇄(concatenation)하여 표현하면
⊕ ⊕ ⋯ ⊕
와 같다. 필터의 커널(kernel)의 크기를 (대역폭, bandwidth)라 놓 자. 여러 필터에 적용하여 합성곱연산을 수행하고 입력정보로부터 특징 들을 추출한다.
〔그림 4-3〕은 개의 단어의 차원의 사전 임베딩 행렬로부터 인접한 개, 크기가 7( )인 벡터를 얻는 과정 을 보여준다. 필터의 개수는 4이며, 이미지의 색상에 해당하는 채널의 수 는 2이다. 문장의 양끝은 인접한 단어의 커널의 크기는 2이다. 한 필터의 가중치를 ∈로 두고, 절편 가 주어지며 번째 단어임베딩벡터에 대한 특징맵
⋅
를 얻을 수 있다. 여기서, 는 활성함수(activation function)이다.
개의 인접 부분단어집합 전체 단어에 적용하여 ⋯ 와 같이 중복된 임베딩벡터를 가진 행렬로 표현하자. 전술한 특징맵 벡터를 뽑 는 과정을 반복적용하면 특징맵
⋯ ∈
을 얻을 수 있다. max ⋯ 와 같은 최대풀링(max pooling)
을 통해 값 중 최대값을 추출한다. 이와 같은 과정을 4개의 필터에 적용
① 인코더(encoder): 인지 네트워크(recognition network)으로 입력 벡터를 응축된 표현벡터로 변환한다.
② 디코더(decoder): 생성 네트워크(generative network)으로 표현 을 출력한다.