• 검색 결과가 없습니다.

제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)으로 표현 을 출력한다.