한국어 단어 임베딩 모델의 평가에 적합한 유추 검사 세트
Copyright ⓒ 2018 The Digital Contents Society
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
초록
지금까지 자연어 처리 분야에서 다양한 단어 임베딩 모델 및 성능 검증 방식이 제안되어 왔지만, 대부분은 영어에 적용되는 것이다. 따라서 한국어 단어 임베딩 모델을 평가하는 대부분의 경우, 영어 단어 임베딩 모델에 적용되는 성능 검증 방식을 단순한 번역을 통해 사용해 왔다. 하지만 한국어와 영어의 문법적 차이가 크기 때문에, 이런 변형에는 상당한 한계가 존재한다. 본 논문의 목표는 한국어 단어 임베딩 모델을 평가하기에 적합한 유추 검사 세트를 제안하는 것이다. 이를 위해, 최근 많이 사용되고 있는 단어 임베딩 모델 중 하나인 word2vec 모델의 기존 유추 검사 세트를 한국어 고유의 특성을 반영하도록 확장했다. 한국어 형태소 분석기의 성능을 정량적으로 비교하는 데 적용함으로써 이 검사 세트의 효용을 확인했다. 다양한 한국어 단어 임베딩 모델의 하이퍼파라미터를 최적화하고자 할 때, 한국어 유추 검사 세트를 활용할 수 있을 것으로 기대된다.
Abstract
A variety of word embedding models and their evaluation methods in natural language processing have been proposed. However, most of them are applied to English. Thus in most cases where word embedding models for Korean are to be evaluated, people have utilized evaluation methods that are adjusted through simple translation from those applied to word embedding models for English. However, since Korean is quite different from English in grammatical aspects, there exist certain limits to these modified methods. This paper aims to suggest a new analogy test set suitable to evaluate word embedding models for Korean. For this purpose, the existing analogy test set for word2vec models, which are recently gaining popularity as word embedding models, has been extended to reflect features intrinsic to Korean. The utility of this modified test set has been confirmed by applying it to the quantitative comparison between capabilities of Korean morphological analyzers. It is expected that the Korean analogy test set proposed in the paper will be employed in hyperparameter optimization for various word embedding models for Korean.
Keywords:
Analogy test, Morphological analyzer, POS tagger, Word embedding키워드:
유추 검사, 형태소 분석기, 품사 태거, 단어 임베딩Ⅰ. 서 론
단어 임베딩(word embedding)은 자연어 처리(NLP; Natural Language Processing)에서 사용되는 언어 모델링과 특성 학습의 기법으로, 특정 어휘에 속하는 모든 단어를 벡터 공간상의 실수 벡터로 매핑하는 것을 의미한다[1]. 즉, 단어의 의미와 맥락을 고려해서 해당 단어를 벡터 공간의 적절한 한 점에 대응시키는 단어의 분산 표상(distributed representation)에 해당한다. NLP를 위해서는 단어의 이러한 표상이 먼저 처리되어야 하므로, 단어 임베딩은 NLP의 가장 기본적인 단계라고 볼 수 있다.
단어 임베딩은 기본적으로 언어학의 분산 가설(distributional hypothesis)[2]을 전제로 하는데, 다시 말해 비슷한 의미를 갖는 단어는 비슷한 문맥에서 등장한다는 전제에 근거한다. 이 기법은 단어의 유사도와 유추 관계를 빠르고 효율적으로 포착하는 것으로 입증되어서, 다양한 NLP 문제의 최신 결과를 도출하는데 사용되고 있다[3].
지금까지 다양한 단어 임베딩 모델과 각 모델의 성능을 검증하는 다양한 방식이 제안되어 왔다. 하지만 대부분의 성능 검증 방식은 영어에 적용되는 단어 임베딩 모델을 평가하는 것이다. 따라서 한국어 단어 임베딩 모델을 평가하고자 하는 대부분의 경우, 영어 단어 임베딩 모델에 적용되는 성능 검증 방식을 한국어에 맞도록 변형해서(주로 번역을 통해) 사용해 왔다. 하지만 한국어와 영어의 문법적 차이가 크기 때문에, 이런 변형에는 당연히 한계가 존재한다.
따라서 본 연구는 한국어 단어 임베딩 모델을 평가하기에 적합한 성능 검사 방식을 제안하는 것을 목표로 한다. 이 목표를 달성하기 위해, 최근 각광받고 있는 단어 임베딩 모델 중 하나인 word2vec 모델[4, 5]을 사용할 것이고, 그 성능 검사 방식인 유추 검사(analogy test)를 한국어에 적합한 방식으로 변형할 것이다. 본 논문에서 제안하는 유추 검사를 통해, word2vec을 포함한 다양한 한국어 단어 임베딩 모델의 하이퍼파라미터 최적화가 가능해질 것으로 예상한다.
본 논문의 구성은 다음과 같다. 우선 제2장에서는 word2vec 모델과 그 성능 검사 방식인 유추 검사에 대해서 간단히 소개한다. 제3장에서는 한국어의 언어학적 특성을 설명한 후, 본 연구에서 개발한 한국어에 적합한 유추 검사 세트에 대해 자세히 설명한다. 제4장에서는 이렇게 개발된 유추 검사 세트를 적용해서, 한국어 형태소 분석기의 성능을 비교한 결과를 분석한다. 마지막으로 제5장은 본 연구의 결론과 한계에 해당한다.
Ⅱ. Word2vec 모델 및 유추 검사
2-1 Word2vec 모델의 개요
2013년 구글의 한 연구팀에 의해 제안된 word2vec 모델[4, 5]은 단어 임베딩의 비약적 발전을 이끌었다. 이 모델은 기본적으로 문장 내의 특정 단어와 그 주변 단어들 사이의 관계에 집중하고, CBOW(Continuous Bag-Of-Words)와 SG(Skip-Gram)라는 2가지 모델 아키텍처를 제안한다. CBOW는 주변 단어를 근거로 중심 단어를 예측하는 구조이고, SG는 중심 단어를 근거로 주변 단어를 예측하는 구조이다. 그림 1은 이런 2가지 아키텍처의 개요를 보여준다.
더 구체적으로 말하면, CBOW는 k개(그림 1에서 k= 4)의 주변 단어가 주어졌을 때 특정 중심 단어가 나타날 조건부 확률을 계산하고, SG는 중심 단어가 주어졌을 때 k개의 주변 단어의 특정 조합이 나타날 조건부 확률을 계산하다. Word2vec 모델의 학습 과정은 주어진 말뭉치(corpus)의 문장을 스캔해 가면서, 이런 조건부 확률이 최댓값이 되도록 단어 벡터(word vector)의 값을 정하는 과정이다. 이 학습 과정이 끝나면, 말뭉치에서 유사한 문맥을 공유하는 단어들의 벡터는 벡터 공간상에서 서로 가까운 위치에 배치되는 결과를 낳는다. 즉, 비슷한 단어는 벡터 공간상에 가까운 위치에 존재하게 된다.
2-2 유추 검사
단어 임베딩 모델의 성능을 검증하기 위한 다양한 방식이 존재한다[6-8]. 이런 성능 검증 방식은 단어 임베딩 모델 자체의 의미론적 특성을 직접적으로 평가하거나, 단어 임베딩 모델을 이용한 NLP 과제의 성능을 비교함으로써 간접적으로 해당 모델을 평가한다. 전자의 방식에는 임베딩된 특정 단어 쌍의 유사도/관련도를 평가하는 유사도 검사(similarity test), TOEFL의 어휘 문제를 이용한 동의어 검사 그리고 임베딩된 특정 단어 쌍의 유추 관계를 평가하는 유추 검사가 존재한다. 후자의 성능 검증 방식에서 사용하는 NLP 과제에는 텍스트 분류(text classification), 개체명 인식(named entity recognition), 감정 분류(sentiment classification) 및 품사 태깅(POS tagging)이 존재한다. 그중에 word2vec 모델의 평가를 위해 흔히 쓰이는 방식은 유사도 검사와 유추 검사이다.
단어 임베딩 모델의 성능 평가에서 널리 쓰이는 유사도 검사는 WordSim353 데이터세트[9]를 이용한다. 이 데이터세트는 353개 영단어 쌍과 1~10 사이의 점수로 평가된 각 쌍의 유사도 혹은 관련도(relatedness)로 구성되어 있다(e.g. love–sex–6.77). 한국어 단어 임베딩의 성능을 검증하기 위해 이 데이터세트를 번역해서 적용한 경우도 있지만[10, 11], 해당 데이터세트는 영어 화자가 생각하는 각 단어 쌍의 유사도/관련도이기 때문에 한국어 단어 임베딩의 평가에 사용하기에는 근본적인 한계가 있다. 게다가, 이 데이터세트는 문항 수가 한정적(353개)이고 대부분 명사로만 구성되어 있어서, 영어 단어 임베딩 모델의 전체적인 성능을 평가한다고 보기에도 태생적인 한계가 존재한다. 이런 한계에도 불구하고, 영어 이외의 다른 언어에도 번역을 통해 간단히 적용할 수 있어서 지금까지 한국어 단어 임베딩의 성능 검증에 많이 사용되어 왔다.
이에 비해, word2vec 모델을 제안한 구글 연구팀이 평가 방식으로 함께 제안한 유추 검사는 다양한 품사로 구성된 훨씬 더 많은 문항의 검사 세트를 제공한다. 이 유추 검사 세트는 흔히 GATS(Google Analogy Test Set)라고 불리고[12], 의미론적/문법적 유추 관계를 확인하는 총 14개 섹션으로 구성된 19,544개의 문항으로 구성되어 있다. 각 섹션에 속하는 문항은 동일한 유추 관계에 있는 4개의 단어로 구성되어 있다. 표 1은 GATS의 각 섹션과 해당 섹션의 전형적인 문항을 보여 준다.
이런 검사 세트를 통해, 벡터 공간에 임베딩된 단어 벡터가 그림 2와 같은 의미론적/문법적 관계를 잘 표현하는지를 검사하는 것이 유추 검사이다. 두 단어 사이의 관련도/유사도가 벡터 공간에 임베딩된 두 단어 벡터 사이의 차로 표현될 수 있는 것처럼, 두 단어 사이의 유추 관계 또한 해당 단어 벡터의 차로 표현될 수 있다. 그림 2(a)에서처럼, 남녀 관계에 있는 단어 쌍들의 의미론적 관계가 동일하므로 제대로 임베딩된 단어 벡터라면 해당 단어 벡터의 차(그림에서 파란색 화살표에 해당)는 동일해야 한다. 예를 들어, 4개의 단어 man, woman, king 및 queen이 3차원 벡터 공간에 임베딩된 단어 벡터가 각각 v(man), v(woman), v(king), v(queen)이고, 각 좌표값이 [1, 1, 1], [1, 1, 2], [2, 2, 1] 및 [2, 2, 2]이라고 하자. 이 경우 υ(man) - υ(woman)및 υ(king) - υ(queen)은 [0, 0, -1]로 동일하다. 즉, 남녀 관계라는 동일한 유추 관계가 동일한 벡터 차로 표현되었다. 마찬가지로, 그림 2(b)에서 빨간색 화살표는 명사의 단수-복수 관계에 있는 단어 벡터의 차에 해당하고, 단수-복수의 문법적 관계에 있는 모든 단어 벡터의 차도 동일해야 한다. 유추 검사는 학습이 완료된 단어 임베딩 모델이 이런 단어 벡터의 의미론적/문법적 관계를 얼마나 잘 표현하는지를 측정한다고 볼 수 있다.
유추 검사 세트의 각 문항은 동일한 의미론적/문법적 관계를 갖는 4개의 단어로 구성된다(e.g. man–woman–king–queen). 학습이 완료된 단어 임베딩 모델에서 man, woman, king, queen의 벡터를 각각 v(man), v(woman), v(king), v(queen)이라고 하고, 학습된 전체 단어 벡터의 집합을 W라고 하자. 그러면 man–woman–king–queen이라는 문항에 대한 유추 검사는 다음과 같은 벡터 관계식이 성립하는지를 검사하는 것이다.
(1) |
즉, |υ(man) - υ(woman) - υ(king) + x|의 값을 최소로 만드는 단어 벡터 x가 v(queen)이면 해당 문항은 정답으로 처리하고, 아니면 오답으로 처리한다. 하지만 모델링에 사용된 말뭉치의 어휘 중에 특정 단어가 없다면(OOV; Out-Of-Vocabulary), 해당 단어는 벡터 공간에 임베딩되지 않을 것이다. 만약 4개의 단어 벡터 중 하나라도 이렇게 W에 속하지 않는다면, 식 (1)의 성립 여부를 확인할 수 없으므로 해당 문항은 미학습으로 처리한다.
유추 검사의 결과는 보통 전체 문항 중 정답으로 처리된 문항의 비율(정답률, accurate %), 오답으로 처리된 문항의 비율(오답률, inaccurate %) 그리고 미학습으로 처리된 문항의 비율(미학습률, OOV %)로 요약할 수 있다. 이런 수치를 통해 특정 단어 임베딩 모델의 성능을 정량적으로 분석할 수 있다.
Ⅲ. 한국어 단어 임베딩 모델에 적합한 유추 검사 방안
3-1 한국어의 언어학적 특징
인간의 언어는 형태론적(morphological) 관점에서 고립어, 굴절어, 교착어 등으로 나눌 수 있다. 고립어(e.g. 중국어)는 어형의 변화가 적고 단어의 위치에 의해 문법적 기능이 결정되는 언어이다. 굴절어(e.g. 라틴어)는 문법적 기능에 따라 어형이 변화하지만 어근과 접사의 구분이 명확하지 않다. 이에 비해 교착어(e.g. 한국어)는 고립어와 굴절어의 중간적 성격을 띠는 것으로 어근과 접사에 의해 단어의 문법적 기능이 결정되는 언어이다.
일반적으로 대부분의 언어는 위 3가지 특성 중 하나가 두드러지긴 하지만 나머지 특성도 함께 갖는 경우가 많다. 영어는 고립어로 분류되지만 굴절어와 교착어의 특성도 어느 정도 갖고 있다. 예를 들어, 다음 두 문장은 어순에 의해서만 문법적 기능(주어-동사-목적어)이 결정되므로 고립어적인 특성을 보인다.
(2) |
(3) |
하지만 불규칙 동사(e.g. eat-ate-eaten)의 경우처럼, 문법적 기능에 따라 어형이 변화하고 어근과 접사의 구분이 명확하지 않은 굴절어적인 특성도 보인다. 영어의 과거형 접미사(-ed)나 복수형 접미사(-s)는 반대로 교착어적인 특성도 보여 준다.
영어와는 대조적으로 한국어는 교착어적인 특성이 가장 강하고 고립어나 굴절어의 특성은 거의 없다. 즉, 한국어에선 어순이 문법적 기능을 전혀 하지 않으며 문법적 기능을 표시하기 위한 어형의 변화는 어근과 접사로 명확히 구분된다. 예를 들어, 주어나 목적어 등의 문법적 기능을 표시하는 격조사(e.g. -이/가, -을/를)와 해당 조사와 연결되는 체언(명사, 대명사, 수사)은 명확히 구분된다. 또한 용언(동사, 형용사)의 활용(e.g. 기본형-과거형)은 어미의 추가(e.g. 과거시제 선어말어미 -었-)를 통해 이루어진다. 요컨대, 한국어의 가장 큰 문법적 특성은 조사와 어미라고 할 수 있다. 따라서 한국어 말뭉치의 경우는 영어의 경우에서처럼 띄어쓰기 단위로 토큰화(tokenization)1)하는 것보다 형태소(morpheme) 단위로 토큰화하는 것이 바람직하다. 즉, 체언과 조사 그리고 용언의 어간과 어미를 분리해서 어절 단위가 아닌 형태소 단위로 단어 임베딩을 수행하는 것이 효과적인 방식이 될 것이다.
3-2 한국어 유추 검사 세트
GATS는 크게 의미론적 유추 검사 세트(e.g. 남녀 관계)와 문법적 유추 검사 세트(e.g. 명사의 단수형-복수형 관계)로 구분된다. 의미론적 유추 검사 세트에 속하는 범주는 대부분 한국어에도 해당되는 범주가 존재한다. 하지만 GATS의 문법적 유추 검사 세트의 범주에 상응하는 범주가 한국어에는 존재하지 않는 경우가 많다. 예를 들어, 그림 2(b)와 같은 영어 명사의 단수형-복수형 관계(king-kings-queen-queens)는 한국어 word2vec 모델에서는 검증할 수 없다. 한국어의 교착어적 특징으로 인해 띄어쓰기 단위가 아닌 형태소 단위의 토큰화가 적당하므로, 한국어 word2vec 모델에서 “왕들”이라는 어절은 한 단어가 아니라 두 개의 형태소( “왕”과 “들”)로 임베딩되는 것이 효과적이다. 이런 이유로 GATS의 문법적 유추 검사 범주에 속하는 문항을 단순히 번역해서 한국어 word2vec 모델을 검증할 수는 없다. 따라서 한국어의 문법적인 특성을 단어 임베딩 모델에서 검증할 수 있는 문법적 유추 검사 세트를 개발하는 것이 관건이라 할 수 있다.
한국어 단어 임베딩 모델에 적합한 유추 검사 세트를 편의상 KATS(Korean Analogy Test Set)이라고 명명하겠다. KATS는 GATS를 확장한 BATS(Bigger Analogy Test Set)[14]를 기반으로 개발되었다. BATS는 총 40개 섹션의 99,200개 문항으로 구성되어 있고, 각 섹션의 문항 수는 2,480개로 균형이 맞추어져 있다. 각 섹션은 크게 4가지 범주(한 범주 당 10개 섹션)로 구분되는데, 의미론적 유추에 해당하는 사전학(lexicography) 및 백과사전(encyclopedia) 범주가 존재하고, 문법적 유추에 해당하는 굴절(inflection) 및 파생(derivation) 범주가 존재한다. 사전학 범주에는 상위어(e.g. cat-feline), 하위어(e.g. color-white), 부분어(e.g. car-engine), 동의어(e.g. sofa-couch) 및 반의어(e.g. clean-dirty)에 대한 유추 검사를 시행하는 문항이 포함된다. 백과사전 범주는 지리 정보(e.g. Athens-Greece), 인물 정보(e.g. Lincoln-American), 동물 관련 정보(e.g. cat-kitten) 및 기타 정보(e.g. blood-red)에 대한 유추 검사 문항을 포함한다. 그리고 굴절 범주에는 명사/형용사/동사의 다양한 굴절 관계(예를 들어, 명사의 단수형-복수형, 형용사의 원급-비교급, 동상의 기본형-과거형)에 대한 유추 검사 문항이 포함되고, 마지막으로 파생 범주에는 접두사/접미사를 통한 파생 관계(e.g. create-recreate, continue-continuation)에 대한 유추 검사 문항이 포함된다. 각 섹션은 해당 섹션이 속한 범주에 따라 L01~L10(사전학 범주), E01~E10(백과사전 범주), I01~I10(굴절 범주) 및 D01~D10(파생 범주)의 라벨로 구분된다. 표2는 BATS의 40개 섹션에 대한 유추 관계 및 전형적인 예를 정리한 것이다.
표 3과 표 4는 KATS의 31개 섹션과 문항에 대한 정보를 정리한 것이다.2)KATS는 BATS를 기반으로 개발되었지만, 4가지 범주로 구분되어 있지는 않다. 우선 한국어에는 굴절 관계에 있는 단어 쌍이 없으므로, BATS의 굴절 범주에 해당하는 섹션을 생성할 수 없다. 그리고 한국어의 경우, 정확한 근거를 토대로 상위어/하위어/부분어의 개념에 따라 어휘를 정리한 자료를 입수하기 힘들어서, BATS의 L01~L06에 해당하는 섹션을 생성하기도 어려웠다. 이런 이유로 KATS는 GATS처럼 의미론적 유추 범주(S 섹션)와 문법적 유추 범주(G 섹션)의 2가지로만 구분되어 있다.
KATS를 개발할 때 특히 주안점을 둔 부분은 가능한 한 한국어의 많은 품사를 포함하고, 한국어의 문법적 특성을 잘 검증할 수 있는 문항을 포함하는 것이었다. 일반적으로 한국어에는 9개의 품사(명사, 대명사, 수사, 동사, 형용사, 관형사, 부사, 조사, 감탄사)가 존재하는 것으로 알려져 있지만, 감탄사는 어휘에서 차지하는 비중도 적고 중요도도 떨어지므로 KATS에서 제외시켰다. 그리고 한국어 고유의 특성이 잘 반영되는 어미(e.g. 선어말어미 -시/었/겠/더- 그리고 어말어미 -다/니/고/며)도 KATS에 포함된다면 가장 바람직하겠으나, 이런 어미의 교착어적인 특성(예를 들어, 영어의 현재형-과거형과 같은 문법적 관계는 과거시제 선어말 어미‘-었-’의 첨가 여부에 의해 표현됨)으로 인해 유추 관계를 갖는 쌍을 생성할 수 없다. 즉, 형태소 단위로 토큰화한 말뭉치에 적용되기 때문에, 예를 들어 (먹- 먹었- 보- 보았-)과 같은 유추 검사 문항을 생성할 수 없다는 의미이다. 따라서 어미도 KATS의 문항에서 제외되었다.
의미론적 유추 범주에 속하는 KATS의 S 섹션 중 S01~S11 섹션은 GATS와 BATS를 참고한 섹션이다. 즉, KATS의 S01, S02, S04, S05, S06, S07, S08, S09, S10, S11 섹션은 각각 BATS의 E01, E02, E03, E10, E06, E07, E09, L08, L09, L10 섹션에 해당하고, S03 섹션은 GATS의 “currency” 섹션에 해당한다. 그리고 KATS의 S12~S16 섹션은 한국어 고유의 특성을 반영해서 본 연구에서 새로 개발한 섹션이다. 해당 섹션의 단위성 의존명사(unit bound nouns) 및 높임말/낮춤말(honorific and deferential speech) 관련 어휘는 다른 언어와 구별되는 한국어의 의미론적 특성을 잘 보여 준다.
KATS의 G 섹션은 문법적 유추 범주에 속하는 15개 섹션으로 구성되어 있다. 한국어에는 영어의 굴절어적 특성이 존재하지 않기 때문에, GATS와 BATS의 굴절 관련 유추 검사 문항을 생성하기 어렵다. 그나마 굴절과 유사한 현상은 앞에 오는 체언의 받침 유무에 따라 달라지는 조사의 이형태3)그리고 양성모음과 음성모음의 교체를 통한 작은말과 큰말(light and heavy isotopes of a word)의 대조이다. 이런 한국어의 특징을 반영하도록, G01 섹션은 조사의 이형태와 관련된 문법적 유추 문항으로 구성되고, G02 섹션은 작은말과 큰말의 문법적 유추 관계를 검증하는 문항으로 구성되어 있다. 그리고 G03~G10 섹션은 BATS의 파생 범주에 속하는 섹션을 참고하긴 했지만, 정확히 대응되지는 않는다. 그 이유는 BATS의 파생 범주에 속하는 섹션은 특정 접두사/접미사를 기준으로 분류되었지만, KATS의 G03~G10 섹션은 파생 방식(예를 들어, 형용사에서 파생된 부사, 자동사에서 파생된 사동사 등)에 따라 분류되었기 때문이다. 특히 G04~G07 섹션은 한국어 동사 특유의 주동-사동 및 능동-피동4)과 관련된 문법적 유추 문항이다. 마지막으로 G11~G15 섹션은 관형사(e.g. 이/그/저/어느/무슨)를 KATS에 포함시키기 위한 개발된 섹션이다.
다음은 KATS 문항에서 사용된 품사의 개수(중복 허용)와 구성비를 나타낸 표와 그림이다. 전체적으로 체언(명사, 대명사, 수사)은 전체 문항의 56.39%를 차지하고 용언(동사, 형용사)은 36.38%를 차지하며, 부사/관형사/조사가 나머지 7.24%를 차지한다. KATS에서 사용된 대명사/수사/부사/관형사/조사의 비율이 명사/동사/형용사에 비해 현저히 낮다. 하지만 일반적으로 전체 어휘의 대부분은 명사/동사/형용사/부사에 해당하므로, 이런 구성비는 큰 문제가 되지 않을 것으로 본다.
Ⅳ. 한국어 유추 검사 세트의 적용 – 한국어 형태소 분석기의 성능 비교
4-1 실험 데이터 및 방법
본 연구 이전에, 한국어 NLP에서 사용되는 형태소 분석기(morphological analyzer)/품사 태거(POS tagger)의 성능을 간단한 의미론적 유추 검사로 비교한 바 있다[15]. KATS를 이용해서 2가지 품사 태거(kkma 태거와 mecab 태거)[16, 17]의 성능을 다시 정량적으로 비교함으로써, 본 연구에서 개발한 KATS의 효용을 확인하고자 한다.
Word2vec 모델링에서 사용될 한국어 말뭉치로 나무위키(https://namu.wiki/)와 위키백과(https://ko.wikipedia.org/)의 대용량 덤프 파일을 사용했다. 정제된 텍스트 파일 기준으로 전체 말뭉치의 용량은 3.52 GB(각각 3.1 GB 및 0.42 GB)이었다. 이 원본 텍스트 파일을 kkma 태거와 mecab 태거를 이용해서 형태소 분석/품사 태깅(POS tagging)을 실시했고, 각 품사 태거로 분석된 말뭉치(편의상 각각 kkma 말뭉치 및 mecab 말뭉치로 명명하겠다)를 word2vec 모델링의 입력 데이터로 사용했다. 각 말뭉치는 SG 모델 아키텍처로 5회 반복 학습시켰고, 벡터 크기 300, 윈도 크기 10, 어휘의 최소 출현빈도 3이라는 하이퍼파라미터를 사용했다.
Kkma 말뭉치에서 학습된 총 어휘 수는 397,838개이었고, mecab 말뭉치의 경우는 447,091개이었다. 그리고 말뭉치의 총 학습 시간은 kkma 말뭉치의 경우 5.12 시간이었고, mecab 말뭉치의 경우 7.65 시간이었다. Mecab 말뭉치의 총 어휘 수가 더 많으므로, 총 학습 시간이 더 긴 것은 당연한 일이다.
동일한 대용량 덤프 파일을 사용했는데도 2가지 말뭉치의 총 어휘 수가 다른 이유는 두 품사 태거의 차이에서 기인한다. 구체적으로 말하면, kkma 태거가 mecab 태거에 비해 용언의 어간과 어미를 더 잘게 분석하기 때문이다. 표 6은 이 2가지 품사 태거가 동일한 용언의 형태소를 다르게 분석하는 전형적인 예이다.5)이 표에서 확인할 수 있듯이, mecab 태거는 2가지 형태소가 음절 단위에서 합쳐진 경우, 각 형태소를 따로 분석하지 않고 2가지 형태소의 품사를 함께 태깅한다. 이에 비해 kkma 태거는 형태소를 음소 단위(e.g. ㄴ/ETD)까지 세분하고 줄임말 형태의 음절(e.g. -셨-)도 본딧말 형태(e.g. -시- + -었-)로 따로 분석한다. 따라서 mecab 말뭉치는 2가지 형태소의 품사가 결합된 형태(e.g. 끓인다/VV+EF, 셨/EP+EP)의 토큰을 추가로 포함하게 되므로, 총 어휘 수가 kkma 말뭉치보다 더 많아진 것이다.
4-2 결과 및 해석
그림 4와 그림 5는 kkma 및 mecab 말뭉치에 대한 word2vec 모델링의 결과를 KATS를 이용해서 분석한 것이다. 이때 사용된 KATS도 각 품사 태거로 형태소 분석을 실시한 것이다.6)
일단 유추 검사의 결과에서 가장 눈에 띄는 것은 kkma 말뭉치의 경우 S01, S02, S03, S09, S12 섹션의 미학습률이 각각 58.95%, 58.95%, 20.00%, 53.33%, 37.78%로 상당히 높게 나왔다는 점이다. Kkma 말뭉치의 나머지 섹션과 mecab 말뭉치의 모든 섹션의 미학습률이 0%인 것과 비교하면 상당히 놀라운 결과이다. 해당 섹션은 외래어 고유명사(S01, S02, S03, S09)와 단위성 의존명사(S12)를 포함한다는 특징이 있다. Kkma 말뭉치의 내용을 살펴본 결과, 이런 명사에 대한 kkma 태거의 형태소 분석/품사 태깅에 문제가 있음이 확인되었다. 즉, kkma 태거는 외래어 고유명사를 단일한 형태소로 인식하지 못해서 잘못 분석하거나, 일부 단위성 의존명사를 일반명사로 분석하는 현상을 보였다. 예를 들어, “자카르타”라는 명사를 “자/NNG + 카르타/NNG”의 형태로 분석하거나, 단위성 의존명사인 “벌”(옷을 세는 단위)이나 “포기”(배추 따위를 세는 단위)를 “bee”나 “give up”을 의미하는 일반명사로 분석했다. 이런 기본적인 고유명사와 단위성 의존명사를 제대로 분석/태깅하지 못한다는 점은 kkma 태거의 큰 단점으로 작용할 수 있다.
그림 6은 kkma 및 mecab 말뭉치의 섹션별 정답률을 비교한 그래프이다. 총 31개의 섹션 중 S10, S13, S14, S16, G01, G02, G05, G07, G09, G10, G12의 11개 섹션(그림에서 노란색 사각형으로 표시된 섹션)에서만 kkma 말뭉치의 정답률이 더 높음을 확인할 수 있다. 즉 다수의 섹션에서 mecab 말뭉치의 정답률이 더 높았다. 그리고 G 섹션의 평균 정답률에선 큰 차이가 없지만, S 섹션의 평균 정답률은 mecab 말뭉치의 경우 약 13% 더 높다. 그 결과, 전체 평균 정답률도 mecab 말뭉치의 경우 약 7% 높게 나온 것을 확인할 수 있다. 따라서 KATS를 이용한 유추 검사의 결과를 근거로, 단어 임베딩에 적용되는 경우 mecab 태거가 kkma 태거보다 더 우수하다는 사실을 정량적으로 입증할 수 있다.
마지막으로 그림 6에서 주목할 점은 섹션별로 정답률의 편차가 상당히 크다는 점이다. 이런 정답률의 큰 편차는 BATS를 이용한 유추 검사의 결과[14]에서도 유사하게 나타나는 패턴이다. 즉, 특정 섹션은 정답률이 상당히 높게 나오지만 다른 섹션은 정답률이 상당히 낮게 나올 수가 있다. 이런 섹션별 정답률 차이의 원인은 우선 단어 임베딩 모델 자체의 문제일 수 있다. 다른 임베딩 모델을 사용한다면 그림 6과는 다른 패턴의 정답률 분포를 확인할 가능성도 있다.
하지만 단어 임베딩 모델이 아니라 학습에 사용된 말뭉치에 따라 섹션별 정답률 분포가 달라질 가능성도 존재한다. 표 7은 Kkma 및 mecab 말뭉치 모두에서 정답률이 10% 미만인 섹션을 열거한 것이다. S06, S07 및 S08 섹션에 속하는 단어는 아동용 도서에서 자주 등장하고, S13, S14 및 S16 섹션의 단어들은 화자와 청자의 위계질서가 잘 드러나는 희곡이나 시나리오에서 자주 등장한다고 볼 수 있다. 본 연구에서 사용된 말뭉치가 백과사전이라는 점을 고려하면, 이런 단어의 출현빈도가 상대적으로 낮고, 따라서 해당 단어에 대한 학습 기회가 그만큼 낮다고도 볼 수 있다.
요약하면, 섹션별 정답률의 편차가 나타나는 원인은 사용된 단어 임베딩 모델일 수도 있고, 학습에 사용한 말뭉치일 수도 있다. 이를 검증하고자 한다면, word2vec 모델 이외의 다른 임베딩 모델을 사용하거나 백과사전이 아닌 다른 말뭉치(예를 들어, 드라마 대본이나 영화 시나리오)를 사용해서, 섹션별 정답률 분포가 그림 6과 다르게 나타나는지를 확인해 볼 수 있을 것이다.
Ⅴ. 결 론
본 논문에서는 GATS와 BATS를 기반으로 한국어 단어 임베딩 모델의 성능을 평가할 수 있는 KATS를 제안했다. KATS는 한국어의 언어학적 특성을 고려해서 다양한 유추 관계에 대한 검증이 가능하도록 설계되었다. KATS를 kkma 및 mecab 태거의 성능을 비교하는 데 적용함으로서, mecab 태거의 우수성을 정량적으로 확인했다. 한국어 단어 임베딩 모델에 대한 체계적인 성능 검증 방식이 거의 없었으므로, KATS는 향후 한국어 단어 임베딩 모델의 하이퍼파라미터 최적화에 효과적으로 활용될 수 있을 것으로 예상된다.
하지만 KATS의 총 문항 수(4,620개)가 GATS와 BATS의 총 문항 수(각각 19,544개와 99,200개)에 비해 현저히 적다는 한계가 존재한다. 즉, KATS는 GATS나 BATS보다 훨씬 좁은 범위의 어휘에 대한 유추 검사만을 수행할 수 있다. 이런 문제를 개선하기 위해, 각 섹션의 유추 관계에 해당하는 어휘를 추가해서 문항 수를 증가시킬 수 있다. 예를 들어, S01 섹션에는 훨씬 더 많은 국가-수도 단어 쌍을 추가할 수 있다. 하지만 일부 섹션은 해당 섹션에 추가할 수 없는 어휘가 존재하지 않는다. 예를 들어, G01 섹션은 이미 조사의 이형태에 해당하는 모든 단어 쌍이 포함되어 있다. 만약 GATS처럼 각 섹션 문항 수의 균형을 맞추는 것을 목표로 하지 않는다면, 단어 쌍의 추가가 가능한 섹션의 문항 수를 증가시켜서 전체 문항 수를 증가시키는 것이 가능하다.
Acknowledgments
이 논문은 2018년도 정부(미래창조과학부)의 재원으로 한국연구재단의 지원을 받아 수행된 기초연구사업입니다(과제번호 : NRF-2017R1A2B4007398).
References
- Wikipedia, Word Embedding [Internet], Available: https://en.wikipedia.org/wiki/Word_embedding.
- M. Sahlgren, "The distributional hypothesis,", Italian Journal of Disability Studies, 20, p33-53, (2008).
- T. Young, et al. , "Recent trends in deep learning based natural language processing,", ieee Computational intelligenCe magazine, 13(3), p55-75, (2018).
- T. Mikolov, et al. , "Efficient estimation of word representations in vector space,", arXiv preprint arXiv:1301.3781, (2013).
- T. Mikolov, et al. , "Distributed representations of words and phrases and their compositionality,", Advances in neural information processing systems, p3111-3119, (2013).
- M. Baroni, G. Dinu, and G. Kruszewski, "Don't count, predict! A systematic comparison of context-counting vs. context-predicting semantic vectors,", Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 1, p238-247, (2014). [https://doi.org/10.3115/v1/p14-1023]
- T. Schnabel, et al. , "Evaluation methods for unsupervised word embeddings,", Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing, p298-307, (2015). [https://doi.org/10.18653/v1/d15-1036]
- Siwei Lai, et al. , "How to generate a good word embedding,", IEEE Intelligent Systems, 31(6), p5-14, (2016). [https://doi.org/10.1109/mis.2016.45]
- L. Finkelstein, et al. , "Placing Search in Context: The Concept Revisited", ACM Transactions on Information Systems, 20(1), p116-131, January), (2002. [https://doi.org/10.1145/503104.503110]
- Sanghyuk Choi, Jinseok Seol, and Sang-goo Lee, “On Word Embedding Models and Parameters Optimized for Korean,”, Proceedings of the 28th Annual Conference on Human and Cognitive Language Technology, Busan Korea, p252-256, (2016).
- Dongjun Lee, Yubin Lim, and Taekyoung Kwon, “Morpheme-based Efficient Korean Word Embedding”, Journal of KIISE, 45(5), p444-450, May), (2018. [https://doi.org/10.5626/jok.2018.45.5.444]
- ACL(Association for Computational Linguistics) Wiki, Analogy (State of the art) [Internet], Available: https://aclweb.org/aclwiki/Analogy_(State_of_the_art).
- R. M. Kaplan, "A method for tokenizing text,", Inquiries into words, constraints and contexts, p55-64, (2005).
- A. Gladkova, A. Drozd, and S. Matsuoka, "Analogy-based detection of morphological and semantic relations with word embeddings: what works and what doesn't,", Proceedings of the NAACL Student Research Workshop, p8-15, (2016). [https://doi.org/10.18653/v1/n16-2002]
- Hyungsuc Kang, and Janghoon Yang, “Selection of the Optimal Morphological Analyzer for a Korean Word2vec Model”, Proceedings of the KIPS Fall Conference 2018, Busan Korea, in progress Nov.), (2018.
- Eunjeong L. Park, and Sungzoon Cho, “KoNLPy: Korean natural language processing in Python,”, Proceedings of the 26th Annual Conference on Human and Cognitive Language Technology, Chuncheon Korea, p133-136, (2014).
- Eunjeong L. Park, KoNLPy: Korean NLP in Python [Internet], Available: http://konlpy.org/ko/latest/.
저자소개
1996년 : 연세대학교 전파공학과 (공학사)
1998년 : 한국과학기술원 대학원 전기 및 전자공학과 (공학석사)
2013년 : 숙명여자대학교 TESOL 대학원 TESOL 전공 (TESOL 석사)
1998년 ~ 2003년: 삼성전자 네트워크사업부 선임연구원
2018년 ~ 현 재: 서울미디어대학원대학교 뉴미디어학부 재학
※관심분야: 인공지능(Artificial Intelligence), 자연어처리(Natural Language Processing), 기계학습(Machine Learning) 등
2001년 : University of Southern California (공학박사)
2001년 ~ 2006년: 삼성전자, 책임연구원
2006년 ~ 2010년: 연세대학교, 연구교수
2010년 ~ 현 재: 서울미디어대학원 뉴미디어학부, 부교수
※관심분야: 중재 기술, 감성 공학, 간사이 공학, 정보이론, 이종 시스템 제어, 무선통신, 무선 네트워크, 뇌공학