Word2vec 및 fastText 임베딩 모델의 성능 비교
Copyright ⓒ 2020 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 임베딩 모델은 단순하고 성능이 우수하기 때문에, 자연어 처리 분야에서 가장 널리 쓰이는 모델 중 하나이지만 몇 가지 한계도 있다. 이런 한계를 극복하기 위해 일반적인 언어에 적용 가능한 fastText 임베딩 모델이 제안되었고, 이후 한국어에 적합한 특정한 fastText 모델도 제안되었다. 본 연구는 유사도 검사, 유추 검사 및 감정 분석을 통해 몇 가지 word2vec 및 fastText 모델의 성능을 비교 평가하는 것을 목표로 한다. fastText 모델을 제안한 이전 연구의 결과와는 달리, 최소한 유추 검사와 감정 분석의 측면에서는 fastText 모델이 word2vec 모델보다 더 우수하다고 단정 지을 수 없다는 것이 본 연구의 결론이다. 특히 특정 다운스트림 태스크의 경우, word2vec 임베딩으로도 fastText 임베딩보다 작은 복잡도를 가지면서 유사하거나 더 나은 성능을 얻을 수 있음을 확인하였다.
Abstract
Due to the simple structure and excellent performance of a word2vec embedding model, it is one of the widely used models in the field of natural language processing but it also has some limitations. In order to overcome these limitations, fastText embedding models applicable to general languages were proposed and then a specific fastText model suitable for Korean was also developed recently. This study aims to compare and evaluate several word2vec and fastText models through similarity tests, analogy tests and sentiment analysis tasks. This study shows that unlike the results of previous studies that proposed fastText models, the fastText models cannot be concluded to be superior to word2vec model, at least in terms of analogy tests and sentiment analysis tasks. In particular, in the case of a specific downstream task, word2vec embeddings with less computational complexity can achieve desired performance as good as fastText embeddings
Keywords:
Word2vec, fastText, similarity test, analogy text, sentiment analysis키워드:
Word2vec, fastText, 유사도 검사, 유추 검사, 감정 분석Ⅰ. 서 론
자연어 처리 분야에서 임베딩(embedding)은 “자연어를 기계가 이해할 수 있는 숫자의 나열인 벡터로 바꾼 결과 혹은 그 일련의 과정 전체”를 의미한다[1]. 이런 임베딩은 단어/문장의 의미적/문법적 정보를 함축하고 있고, 단어/문장 간의 관련도를 계산하는 데 사용된다. 임베딩 기법은 (1) 통계 기반에서 신경망 기반으로, (2) 단어 수준 임베딩에서 문장 수준 임베딩으로, (3) 엔드투엔드(end-to-end) 방식에서 프리트레인/파인튜닝(pre-train/fine-tuning) 방식으로 발전해 왔다[1].
임베딩 기법은 크게 행렬 분해 기반, 예측 기반, 토픽 기반의 3가지로 구분된다. 행렬 분해 기반 방법에는 GloVe[2], Swivel[3] 등이 속하고, 예측 기반 방법에는 Word2vec[4, 5], fastText[6, 7], BERT[8], ELMo[9] 등이 속하며, 토픽 기반 방법은 잠재 디리클레 할당(LDA, Latent Dirichlet Allocation)[10]이 대표적이다. 이런 기법들은 다시 단어 및 문장 수준의 임베딩으로 나눌 수 있는데, 단어 임베딩에는 GloVe, Swivel, Word2vec, fastText가 속하고, 문장 임베딩에는 LDA, BERT, ELMo가 속한다.
일반적으로 단어 임베딩보다는 문장 임베딩의 성능이 더 높은 것으로 알려져 있지만[11], 후자는 더 복잡한 학습 과정을 요구하므로 더 많은 컴퓨팅 자원이 필요하다. 따라서 복잡도와 성능 사이의 적절한 균형(trade-off)을 고려하면, 특정 다운스트림 태스크(downstream task)에서는 단어 임베딩이 문장 임베딩보다 더 적절한 선택지가 될 수도 있다. 본 논문에서는 단어 임베딩 중 가장 널리 쓰이는 word2vec 및 fastText 임베딩 모델을 한국어에 적용해서, 그 성능을 비교하고자 한다.
본 논문의 구성은 다음과 같다. 우선 제2장에서는 word2vec 및 fastText의 주요 특징을 설명하고, 3장에서는 단어 임베딩 모델의 평가 방법을 간단히 소개한다. 제4장에서는 실험에 사용된 방법과 그 결과를 제시하고, 마지막으로 제5장에서는 본 연구의 결론, 한계 및 향후 과제에 대해 논의한다.
Ⅱ. Word2vec의 개요
2-1 토큰화(Tokenization)
자연어 처리에서는 크롤링(crawling) 등으로 얻어낸 말뭉치 데이터를 필요에 맞게 전처리(pre-process)하는 것이 필수적이다. 특히, 한국어의 전처리에서는 조사와 어미를 구분해서 별도의 토큰(token)으로 처리하는 형태소 분석이 필요하다. 영어의 경우는 별도의 토큰화(tokenization) 없이 띄어쓰기 단위로 토큰을 구별해도 된다. 하지만 한국어의 경우는 조사와 어미가 체언과 어간에 붙어 있기 때문에, 형태소 분석을 통해 체언-조사 및 어간-어미를 구분하는 것이 바람직하다. 이런 전처리를 거치지 않으면, 학습되는 토큰의 개수가 증가하는 문제가 발생한다. 따라서 한국어 단어 임베딩의 학습에는 형태소 분석이라는 전처리가 거의 필수적으로 수반된다.
2-2 Word2vec
Google에서 제안한 word2vec 모델[4, 5]은 가장 널리 사용되는 단어 임베딩 모델로써, 그 구조는 간단하지만 성능이 우수하다. 이 임베딩 모델은 CBOW(Continuous Bag-Of- Words)와 SG(Skip-Gram)라는 2가지 모델 아키텍처를 제안하는데, CBOW는 주변 단어를 근거로 중심 단어를 예측하는 구조이고, SG는 중심 단어를 근거로 주변 단어를 예측하는 구조이다. 일반적으로 SG 아키텍처의 성능이 더 우수한 것으로 알려져 있다.
하지만 word2vec 모델도 한계가 존재한다. 첫째, 단어의 형태론적 특성이 잘 반영되지 않는다. 예를 들어, 영어의 teach, teaches, teacher, teachers는 의미적으로 연관된 단어이지만, 형태소 분석을 통해 토큰화하지 않는다면 각각 별도의 토큰으로 임베딩되므로, 이 4가지 단어의 형태론적 특성이 해당 임베딩에 잘 반영되지 않는다. 둘째, 학습된 말뭉치에서 출현 빈도가 낮은 단어는 제대로 임베딩되지 않을 가능성이 존재한다. 즉, 출현 빈도가 낮은 단어의 임베딩은 정확하지 않을 가능성이 있다. 마지막으로, word2vec 임베딩 모델의 가장 큰 한계는 OOV(Out-Of-Vocabulary)를 처리할 수 없다는 것이다. 즉, 학습된 말뭉치에 존재하지 않는 단어는 처리할 수 없다는 것이다. 말뭉치를 아무리 증가시키더라도, 고유명사나 신조어와 같은 OOV 단어는 계속 발생할 수밖에 없다.
2-3 fastText
fastText[6, 7]는 word2vec 모델을 기반으로 이런 한계를 극복하는 한 방법으로 Facebook에서 개발되었다. 이 임베딩 모델에서는 각 단어를 문자 단위 n-gram으로 표현하고, 단어가 아닌 n-gram의 벡터를 학습한다. 그런 다음, 특정 단어의 벡터는 해당 단어를 구성하는 모든 n-gram 벡터의 평균으로 표현된다. 예를 들어, where라는 단어는 다음과 같은 5가지 n-gram(n=3)으로 구분될 수 있다(여기서 <와 >는 단어의 시작과 끝을 표시한다).
<wh, whe, her, ere, re>
학습 과정에서 위와 같은 5가지 n-gram의 벡터가 학습되고, where라는 단어의 벡터는 해당 n-gram 벡터의 평균으로 표현된다. fastText 임베딩 모델은 단어 수준이 아니라, 단어 이하 수준의 정보(subword-level information)를 포함한다. 따라서 OOV 단어라 하더라도 해당 단어를 구성하는 n-gram이 학습되었다면, OOV 단어의 벡터가 유추될 수 있다. 이런 식으로 fastText 임베딩 모델은 OOV 문제를 해결할 수 있다.
영어의 경우, 일반적으로 한 단어에서 추출되는 n-gram은 n=3~6이다. 즉, 최소 3개에서 최대 6개의 연속된 알파벳이 해당 단어의 문자 단위 n-gram으로 추출된다. 예를 들어, where라는 단어에서 추출되는 n-gram(n=3~6)은 다음과 같다.
3-gram: <wh, whe, her, ere, re>4-gram: <whe, wher, here, ere>5-gram: <wher, where, here>6-gram: <where, where>
이때 n 값의 범위가 넓으면 더 많은 단어 이하 수준의 정보를 포함한다는 장점이 있지만, 한 단어당 학습되어야 할 n-gram의 개수가 늘어난다는 단점도 존재한다. 따라서 n 값의 범위를 적절히 조절하는 것이 필요하다.
영어에 fastText 임베딩 모델을 적용할 때는 알파벳 단위로 n-gram을 추출하면 된다. 하지만 한국어에 해당 모델을 적용할 때, 단어의 n-gram은 글자(즉, 음절) 단위로 추출될 수도 있고, 자모 단위로 추출될 수도 있다. n 값의 범위가 동일하다고 하면, 글자 단위의 n-gram은 자모 단위의 n-gram보다 더 넓은 범위에서 n-gram을 추출하게 된다. 반면에 자모 단위의 n-gram은 초성/중성/종성으로 세분화된 n-gram의 벡터를 학습한다는 장점이 있다. 이는 한국어의 일부 형태소(e.g. ‘감출/감춘’의 관형사형 어미 ‘-ㄹ/-ㄴ’)가 음절보다 작은 단위이기 때문에 중요한 장점이 될 수 있다.
[12]는 한국어의 이런 특징을 고려해서, 한국어에 적합한 fastText 임베딩 모델을 제안한다. 이 모델에서 일단 단어의 모든 음절은 자모 단위로 분해되는데, 종성이 없는 음절은 임의의 문자(e.g. “e”)가 추가된다. 예를 들어, “먹었다”라는 단어는 다음과 같이 분해된다.
<, ㅁ, ㅓ, ㄱ, ㅇ, ㅓ, ㅆ, ㄷ, ㅏ, e, >
그런 다음, 자모 단위로 3~5-gram(즉, 2음절 미만)을 추출한다. 종성이 없는 경우에 임의의 문자가 추가되었으므로, 모든 음절은 3개의 자모로 구성된다. 따라서 단어의 시작과 끝을 표시하는 “<”와 “ >”를 제외하고, 3개의 자모 단위로 n-gram(n은 3의 배수)을 추출하면, 마치 글자 단위로 n-gram을 추출하는 효과를 낼 수 있다. 즉, 글자 단위로 1~6-gram을 추출하려면, 자모 단위로 3/6/9/12/15/18-gram을 추출하면 된다. 이렇듯 [12]의 임베딩 모델은 글자 단위가 아닌 자모 단위로 n-gram을 추출하면서도, 최대 6개의 자모가 아닌 최대 6개의 글자(음절) 범위에서 n-gram을 추출하는 방식을 사용한다. 이렇게 하면 자모 단위의 3~18-gram보다 훨씬 더 적은 개수의 n-gram을 추출하면서도, 마치 글자 단위 1~6-gram과 같은 넓은 범위에서 n-gram을 추출하는 효과를 갖게 된다.
Ⅲ. 평가 방법
단어 임베딩 모델의 성능을 검증하기 위한 다양한 방식이 존재한다. 이런 성능 검증 방식은 단어 임베딩 모델 자체의 의미론적 특성을 직접적으로 평가하거나, 단어 임베딩 모델을 이용한 다운스트림 태스크의 성능을 비교함으로써 간접적으로 해당 모델을 평가한다[13]. 전자의 전형적인 방식은 유사도 검사(similarity test) 및 유추 검사(analogy test)이고, 후자의 전형적인 방식은 문장의 감정 분석(sentiment analysis)이다.
3-1 유사도 검사
영어 단어 임베딩의 성능 평가에서 흔히 쓰이는 유사도 검사는 WordSim353 데이터세트[14]를 이용한다. 이 데이터세트는 353개 영어 단어 쌍과 1~10 사이의 점수로 평가된 각 쌍의 유사도 혹은 관련도(relatedness)로 구성되어 있다(예를들어, tiger-cat-7.35). 한국어 단어 임베딩의 성능을 검증하기 위해서는, 보통 이 데이터세트를 번역해서 사용한다. 하지만, 이 데이터세트는 문항 수가 한정적(353개)이고 대부분 명사로만 구성되어 있어서, 단어 임베딩 모델의 전체적인 성능을 평가한다고 보기는 어렵다. 또한 유사도/관련도가 소수의 화자에 의해서 결정되었기 때문에 유사도/관려도의 보편성에 근본적인 한계가 존재한다. 따라서 유사도 검사의 결과는 전반적인 추세만 확인하는 수준에서만 활용되거나 추후 추가적인 보편적인 유사도의 개발이 필요할 것으로 예상된다.
3-2 유추 검사
Word2vec 모델을 제안한 연구에서 평가 방식으로 함께 제안한 유추 검사는 다양한 품사로 구성되어 있으며 유사도 검사 세트에 비해서 훨씬 더 많은 문항을 제공한다. 유추 검사는 벡터 공간에 임베딩된 단어 벡터가 그림 1과 같은 의미론적/문법적 관계를 잘 표현하는지를 검사한다. 좋은 단어 임베딩 모델이라면, 남성-여성 관계(의미론적 관계) 또는 단수-복수 관계(문법적 관계)에 있는 단어 벡터의 거리(그림 1의 파란색 및 빨간색 벡터)가 일정할 것이다. 즉, 동일한 의미론적/문법적 관계에 있는 단어들은 벡터 공간상에 동일한 거리로 떨어져서 임베딩될 것이다.
유추 검사 세트의 각 문항은 동일한 의미론적/문법적 관계를 갖는 4개의 단어로 구성된다(e.g. king–kings–queen–queens). 학습이 완료된 단어 임베딩 모델에서 king, kings, queen, queens의 벡터를 각각 v(king), v(kings), v(queen), v(queens)라고 하고, 학습된 전체 단어 벡터의 집합을 W라고 하자. 그러면 king–kings–queen–queens라는 문항에 대한 유추 검사는 다음과 같은 벡터 관계식이 성립하는지를 검사하는 것이다.
(1) |
즉, |v(king) - v(kings) - v(queen) + x|의 값을 최소로 만드는 단어 벡터 x가 v(queens)이면 해당 문항은 정답으로 처리한다. 유추 검사의 결과는 보통 전체 문항 중 정답으로 처리된 문항의 비율(정답률, accuracy)로 요약할 수 있다. 이런 정량적 수치를 통해, 특정 단어 임베딩 모델의 성능을 분석 및 비교할 수 있다.
3-3 감정 분석
학습된 단어 임베딩을 이용한 다운스크림 태스크 중 감정 분석은 가장 간단하게 해당 임베딩의 성능을 평가하는 방법이다. 보통 영어의 경우는 IMDB 영화 리뷰 감정 분석 데이터세트[15]를 사용하고, 한국어의 경우는 이 데이터세트를 참조해서 만든 네이버 감정 영화 말뭉치(NSMC, Naver Sentiment Movie Corpus)[16]를 사용한다. 네이버 감정 영화 말뭉치는 총 20만 개의 영화 리뷰 문장(긍정과 부정 리뷰 각각 10만 개)으로 구성되어 있고, 이 중 15만 개(긍정과 부정 리뷰 각각 7.5만 개)는 학습용이고 나머지 5만 개(긍정과 부정 리뷰 각각 2.5만 개)는 시험용이다.
이런 말뭉치에 대한 감정 분석은 이미 학습된(pre-trained) 단어 임베딩을 입력으로 하는 파인튜닝(fine-tuning) 네트워크를 통해서 이루어진다. 즉, 해당 네트워크를 통해 학습용 말뭉치를 학습한 후, 시험용 말뭉치에 대한 감정 분석의 정확도를 확인함으로써, 단어 임베딩 모델의 성능을 간접적으로 평가한다.
Ⅳ. 실험 및 결과
4-1 학습 말뭉치 및 비교할 단어 임베딩 모델
본 연구에서 단어 임베딩의 학습에 사용한 말뭉치는 나무 위키(https://namu.wiki/)와 위키 백과(https://ko.wikipedia.org/)의 대용량 덤프 파일을 이용해서 구성했다. 각 덤프 파일에서 텍스트만을 추출한 후, KoNLPy[17]에서 제공하는 mecab 형태소 분석기를 이용해서 체언과 조사 그리고 어간과 어미를 구분하는 전처리를 수행했다. 전체 말뭉치의 토큰 개수, 문장 개수 및 어휘 개수는 다음 표와 같다(여기서 토큰의 개수는 조사와 어미까지 포함한 단어의 개수이고, 어휘의 개수는 중복을 제외한 토큰의 개수이다).
본 연구에서는 word2vec 및 fastText의 성능을 비교하기 위해, 위의 학습 말뭉치를 표 2와 같은 5가지 단어 임베딩 모델로 학습시켰다. 즉, [12]에서처럼 word2vec 모델, 글자(음절) 단위 fastText 모델(fasttext-ch), 자모 단위 fastText 모델(fasttext-jm) 및 글자/자모 단위 fastText 모델(fasttext-ch/jm)로 학습시켰다. 본 연구에서는 이른바 word2vec-pt 모델도 추가되었는데, 말뭉치에 대한 전처리로 형태소 분석뿐만 아니라 품사 태깅(POS tagging)까지 수행한 후 학습된 모델을 의미한다. 이런 전처리는 품사가 다른 동음이의어를 구분할 수 있으므로, 형태소 분석기의 장점을 최대한 활용할 수 있게 한다. 예를 들어, 한국어에서 “이”라는 형태소는 다양한 품사로 쓰이는 동음이의어이다. 즉, “이”는 주격 조사, 대명사(this), 관형사(this), 명사(tooth), 수사(two), 의존 명사(one who ~) 등으로 쓰인다. 따라서 mecab 형태소 분석기로 품사 태깅까지 수행하면, 이런 품사들로 쓰이는 형태소 “이”는 각각 “이/JKS”, “이/NP”, “이/MM”, “이/NNG”, “이/NR”, “이/NNB” 등으로 구분된다1). 따라서 형태소 분석기의 품사 태깅 기능까지 사용하는 word2vec-pt 모델은 나머지 4가지 모델과 달리, 다양한 품사로 쓰이는 동음이의어를 구별해서 학습한다는 큰 장점이 있다.
표 2는 본 연구에서 비교할 5가지 단어 임베딩 모델의 주요 하이퍼파라미터와 학습된 모델 파일의 크기를 보여준다. [12]에서처럼 모델링 아키텍처는 모두 skip-gram이고, negative sampling은 5이며, window size는 5이다. 단, [12]에서는 벡터의 크기가 300이었으나, 본 연구에서는 메모리를 줄이기 위해 100으로 설정했다. 그리고 [12]의 경우, 글자 단위 fastText 모델의 n 값의 범위는 2~4이지만, 본 연구에서는 일반적인 디폴트 값인 3~6을 적용했다. 글자/자모 단위 fastText 모델의 n 값은 [12]에서 밝힌 최적의 조합(즉, 글자 단위 n 값은 1~6, 자모 단위 n 값은 3~5)을 사용했다.
표 2에서 또 한 가지 주목할 점은, 학습된 임베딩 모델의 결과 파일 측면에서 word2vec 모델이 fastText 모델보다 더 작은 메모리를 차지한다는 점이다. 임베딩 모델의 결과 파일은 기본적으로 학습된 총 어휘와 그 벡터로 구성된 일종의 사전이라고 볼 수 있다. 동일한 어휘 개수를 갖는 말뭉치로 학습되었지만, 각 임베딩 모델마다 결과 파일의 크기가 다른 이유는 다음과 같다. 일단 word2vec 모델의 어휘는 토큰인 반면, fastText 모델의 어휘는 각 토큰을 구성하는 n-gram이다. 따라서 일반적으로 fastText 모델의 어휘(n-gram)가 word2vec 모델의 어휘(토큰)보다 더 많기 때문에 사전의 용량이 더 큰 것이다. 그리고 word2vec 모델보다 word2vec-pt 모델의 결과 파일이 좀 더 큰 이유는 각 어휘(즉, 토큰)에 품사 태그가 추가되기 때문이다. 마지막으로 글자/자모 단위 fatstText 모델(fasttext-ch/jm)이 나머지 2가지 fastText 모델(fasttext-ch 및 fasttext-jm)보다 결과 파일이 더 큰 이유는 한 토큰에서 추출되는 n-gram의 개수가 훨씬 더 많기 때문이다. 즉, fasttext-ch나 fasttext-jm의 경우는 n 값의 범위가 3~6이지만, fasttext-ch/jm의 경우는 글자 단위 n 값은 1~6이고, 자모 단위 n 값은 3~5이기 때문이다.
4-2 사용된 평가 방법
본 연구는 word2vec 및 fastText 임베딩 모델의 성능을 비교하기 위해 3가지 평가 방식을 사용할 것이다. 유사도 검사와 유추 검사는 저자들의 이전 연구[18, 19]에서 사용한 방식을 사용할 것이고, 네이버 감정 영화 말뭉치에 대한 감정 분석을 위해서는 [1]에서 제시한 파인튜닝 네트워크를 이용할 것이다. [12]에서도 이런 3가지 평가 방식을 사용하지만, 본 연구에서 사용할 방식과는 차이가 있다.
우선, 유사도 검사를 위해 [12]는 WordSim353 데이터세트[14]를 한국어로 번역한 후, 14명의 한국어 화자가 각 단어 쌍의 유사도/관련도를 다시 평가했다. 이에 반해, 본 연구에서 사용할 [18]의 유사도 검사는 WordSim353 데이터세트[14]를 번역한 후, 현재 한국이라는 지리적/시대적 상황에 부합되지 않는 단어 쌍을 제외한 데이터세트를 사용한다. [12]의 유사도 검사는 한국어 화자의 평가를 거쳤다는 장점이 있기는 하지만, 앞서 언급한 유사도 검사 자체의 한계를 고려하고 이전 평가와의 일관성을 유지하기 위해, [18]의 유사도 검사를 적용하기로 한다.
표3에서 보인 것처럼 [12]의 유추 검사는 [4]에서 제시한 영어에 대한 유추 검사를 한국어에 맞게 변형한 것이다. 의미론적 섹션은 영어의 유추 검사와 유사한 형식으로 구성하고, 문법적(통사론적) 섹션은 한국어의 특징에 맞게 새로 구성했다. 그리고 각 섹션은 10,000개의 문항으로 구성되어 있다.
하지만 표3의 문법적 섹션의 문항은 체언과 조사 그리고 어간과 어미를 구분하지 않는다. 명시적으로 언급하진 않지만, [12]에서 학습 말뭉치의 어휘 개수가 638,708개 인 것으로 보아, 해당 말뭉치는 형태소 분석기로 전처리된 것으로 보인다.(참고로 본 연구에서 형태소 분석을 적용한 말뭉치의 경우, 635,347개이다). 만약 형태소 분석기로 체언과 조사 그리고 어간과 어미를 구분하지 않았다면, 어휘 개수가 훨씬 더 많아야 하기 때문이다. 예를 들어, “교수”라는 토큰은 어휘로 학습되었겠지만, “교수가”라는 토큰은 어휘로 학습되지 않았을 것이다. 즉 이런 토큰(“교수가”)은 OOV 토큰이 되는 것이다. 하지만 fastText 모델은 이런 OOV 토큰의 벡터를 해당 토큰을 구성하는 n-gram 벡터의 합으로 추론한다. 즉 표 3의 유추 검사는 fastText 모델에는 적용할 수 있다. 그러나 word2vec 모델은 해당 OOV 토큰을 적절히 처리할 수 없다(아마도 각 형태소 벡터의 합으로 처리한 것 같지만, 이 또한 [12]에서는 명시적으로 밝히고 있지 않다). 결과적으로 표 3의 문법적 범주 문항은 일방적으로 fastText 모델에만 유리한 것으로 보인다.
따라서 본 연구에서는 저자들의 이전 연구에서 개발한 KATS(Korean Analogy Test Set)[19]를 사용하고자 한다. 단, KATS의 G01 섹션 “조사의 이형태”(異形態, allomorph)는 word2vec-pt에만 유리한 섹션이라서 제외시켰다. 왜냐하면 몇몇 1음절 조사(예를 들어, “이”, “을”, “은”)는 다른 품사로 쓰이는 동음이의어가 있어서, 나머지 임베딩 모델에서는 해당 동음이의어의 의미가 한꺼번에 학습될 것이기 때문이다. 다음의 표 4와 표 5는 본 연구에서 사용된 유추 검사의 섹션별 문항 예시와 개수를 정리한 것이다. 물론 문항이 용언인 경우, 어미 “–다”를 제외한 어간의 벡터가 유추 검사에 이용될 것이다.
[12]에서는 감정 분석 태스크를 위한 분류기로 어텐션 메커니즘(attention mechanism)이 없는 1개 층 LSTM을 사용한다. 하지만 감정 분석 태스크의 경우 특정 단어가 문장의 긍정/부정 판단에 큰 영향을 미치므로, 일반적으로 어텐션 메커니즘을 포함하는 것이 감정 분석의 정확도를 높이는 방법이다. 따라서 본 연구에서는 [1]에서 제시한 그림 2와 같은 파인튜닝 네트워크를 분류기로 사용하고자 한다.
해당 분류기에서는 단어 임베딩을 1개 층 양방향 LSTM에 태운 후, 각 LSTM 셀에서 나온 출력 벡터에 어텐션메커니즘을 적용해 고정된 길이의 히든 벡터를 만든다. 이 히든 벡터를 피드포워드 네트워크(feedforward network)에 입력한 다음, 그 출력에 소프트맥스(softmax)를 취해 긍정/부정의 확률 벡터를 만든다.
4-3 결과 및 해석
5가지 단어 임베딩 모델에 대한 유사도 검사 결과는 그림 3과 같다. 전반적인 경향은 [12]의 유사도 검사 결과(Spearman 상관 계수)와 유사하다. 즉, fastText 모델이 word2vec 모델보다 유사도 검사에서는 상대적으로 더 우수하다. 단, [12]에서처럼 글자/자모 단위 fastText 모델이 나머지 2가지 fastText 모델보다 더 우수한 결과를 보이지는 않는다. 그리고 앞서 언급한 것처럼, 유사도 검사의 결과는 특정 단어 임베딩 모델이 다른 모델보다 더 우수하다는 결정적인 근거가 되기에는 한계가 있음을 다시 한 번 더 지적하고자 한다.
그림 4는 5가지 단어 임베딩 모델에 대한 유추 검사의 결과(전체/의미론/문법적 섹션의 정답률)를 보여준다. 이 결과는 [12]와 상이한데, 일단 그 원인은 사용된 유추 검사 항목이 다르기 때문일 것이다. 최소한 본 연구에서 사용된 KATS[19]의 기준에서 보면, word2vec-pt 모델의 성능이 가장 우수하다. 이는 word2vec-pt 모델 자체가 품사 태깅을 통해 품사별로 다른 동음이의어를 구분해서 학습되기 때문일 것이다. 특히 word2vec-pt 모델의 경우 의미론적 섹션보다는 문법적 섹션의 정답률이 나머지 모델보다 더 높은데, 이는 품사 태깅의 장점이 크게 반영된 것으로 보인다.
하지만 word2vec-pt를 제외한 모델 중에서도 fastText 모델이 더 우수하지도 않다. 전체 섹션의 정답률을 기준으로, fasttext-ch, word2vec, fasttext-ch/jm, fasttext-jm 모델의 순으로 성능이 우수하다. 하지만 그 성능의 차이는 word2vec-pt 모델에 비하면 대동소이하다고 볼 수 있다. 게다가, [12]에서처럼 fasttext-ch/jm 모델의 성능이 나머지 fastText 모델보다 더 우수하지도 않다.
그림 5는 5가지 단어 임베딩 모델의 각 섹션별 정답률을 비교한 것이다. 일단 [19]의 그림 6에서처럼 섹션별로 정답률의 편차는 크다. 즉, 특정 섹션은 정답률이 80% 가까이 나오는 반면, 일부 섹션은 정답률이 거의 0%에 가까운데, 이는 유추 검사의 일반적인 특징이다. 개별 단어 임베딩 모델의 성능 차이를 살펴보면, 일부 섹션(예를 들어, S01, S02, S07, G09 등)을 제외하면 word2vec-pt 모델의 성능이 제일 우수하다. 즉, 그림 4에서 확인한 것처럼 5가지 모델 중 word2vec-pt의 성능이 유추 검사의 측면에서 제일 우수하다.
표 6은 네이버 감정 영화 말뭉치에 대한 감정 분석 태스크의 정확도를 5가지 단어 임베딩 모델별로 비교한 결과이다. 이 경우에도 [12]의 결과와 달리, 5가지 모델 중 word2vec-pt 모델의 성능이 제일 우수하다. 게다가 [12]의 감성 분석 정확도는 최소 76.15%에서 최대 76.54% 사이로 그 차이는 0.39%에 불과하다. 표 6의 결과는 87.31%에서 87.71% 사이이고 그 차이는 0.4%이다. 즉, 단어 임베딩 모델별 성능의 차이가 크지는 않다는 것이다. 오히려 어텐션 메커니즘을 사용한 덕에 본 연구의 전반적인 정확도가 약 10% 더 높은 것이 더 두드러진 특징이다. 따라서 감정 분석의 측면에서도 최소한, [12]가 제안한 글자/자모 단위 fastText 모델이 word2vec-pt 모델보다 더 낫다고는 할 수 없을 것이다.
Ⅴ. 결 론
본 연구는 word2vec 및 fastText의 5가지 단어 임베딩 모델의 성능을 유사도 검사, 유추 검사 및 감정 분석을 통해 비교했다. [12]의 주장과는 달리, 본 연구에 따르면 글자/자모 단위 fastText 모델의 성능이 나머지 모델보다 전반적으로 더 낫다고 할 수 없다. 오히려 형태소 분석기의 품사 태깅이라는 기능을 충분히 활용하는 word2vec-pt 모델이 본 연구의 유추 검사와 감정 분석의 기준에서는 더 우수하다. 특히 학습된 임베딩 모델의 파일 크기를 고려한다면(표 2 참조), fastText 모델의 성능이 확연히 더 우수하지 않다면, 많은 다운스트림 태스크의 경우 word2vec-pt 모델만으로도 원하는 성능을 얻을 수 있을 것이다.
물론 OOV 문제에서는 word2vec 모델보다 fastText 모델이 더 우수하겠지만, 충분히 큰 말뭉치를 이용한다면 word2vec 모델의 OOV 문제는 어느 정도 회피할 수 있다. 그리고 고유 명사나 신조어 등으로 인한 OOV 문제는 다운스트림 태스크의 종류에 따라 큰 문제가 되지 않을 수도 있다. 예를 들어, 본 연구에서 사용된 영화 리뷰에 대한 감정 분석 태스크의 경우, 배우 이름과 같은 고유 명사는 긍정/부정의 판단에 큰 영향을 주지 않을 것이다. 끝으로 유사도 검사/ 유추 검사/ 감정 분석을 제외한, 문법적 특성이 중요한 다운스크림 태스크(예를 들어, 품사 판별과 문장 성분 분석)에서는 글자/자모 단위 fastText 모델의 성능이 더 우수할 수도 있고, 이에 대한 향후 추가적인 연구가 필요할 것이다.
따라서 향후 연구 과제의 하나로, 이런 문법적 특성이 중요한 태스크에서 정말 word2vec 모델보다 fastText 모델의 성능이 더 우수한지 검증해 볼 필요가 있다. 또한 단순한 문장의 감성 분석을 넘어서, 대용량 문서에 대한 분류 태스크에서도 word2vec 모델의 성능이 fastText 모델보다 더 나은지도 검증해 볼 수 있을 것이다.
Acknowledgments
이 논문은 정부(과학기술정보통신부)의 재원으로 한국연구재단의 지원을 받아 수행된 기초연구사업입니다 (과제번호: NRF-2017R1A2B4007398). 일부 과학기술정보통신부 및 정보통신산업진흥원의 ‘고성능 컴퓨팅 지원’ 사업으로부터 지원받아 수행하였음
Notes
참고문헌
- Kichang Lee, Korean Embeddings (한국어 임베딩), Seoul: Acorn Publishing, 2019
- J. Pennington, R. Socher, & C. D. Manning, “Glove: Global vectors for word representation,” In Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP), pp. 1532-1543, Oct. 2014. [https://doi.org/10.3115/v1/D14-1162]
- N. Shazeer, R. Doherty, C. Evans, C. Waterson, “Swivel: Improving Embeddings by Noticing What’s Missing”, arXiv preprint arXiv:1602.02215, 2016
- 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, pp. 3111-3119, 2013.
- P. Bojanowski et al., “Enriching word vectors with subword information,” Transactions of the Association for Computational Linguistics, No. 5, pp. 135-146, 2017 [https://doi.org/10.1162/tacl_a_00051]
- A. Joulin et al., “Bag of tricks for efficient text classification,” arXiv preprint arXiv:1607.01759, 2016 [https://doi.org/10.18653/v1/E17-2068]
- J. Devlin et al., “Bert: Pre-training of deep bidirectional transformers for language understanding,” arXiv preprint arXiv:1810.04805, 2018.
- M. E. Peters et al., “Deep contextualized word representations,” arXiv preprint arXiv:1802.05365, 2018.
- D. M. Blei, A. Y. Ng, & M. I. Jordan, “Latent dirichlet allocation,” Journal of machine Learning research, No. 3, pp. 993-1022, Jan. 2003.
- I. Tenney et al., (2019). “What do you learn from context? probing for sentence structure in contextualized word representations,” arXiv preprint arXiv:1905.06316, 2019.
- SungjoonPark et al., “Subword-level word vector representations for Korean,” In Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics(Volume 1: Long Papers), pp. 2429-2438, Jul. 2018.
- T. Schnabel et al., "Evaluation methods for unsupervised word embeddings," Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing, pp. 298-307, 2015. [https://doi.org/10.18653/v1/D15-1036]
- L. Finkelstein et al., "Placing Search in Context: The Concept Revisited", ACM Transactions on Information Systems, Vol. 20, No. 1, pp. 116-131, January 2002. [https://doi.org/10.1145/503104.503110]
- A. L. Maas et al., “Learning word vectors for sentiment analysis,” In Proceedings of the 49th annual meeting of the association for computational linguistics: Human language technologies - volume 1, pp. 142-150, Jun. 2011.
- Eunjeong L. Park, Naver sentiment movie corpus v1.0 [Internet]. Available: https://github.com/e9t/nsmc
- Eunjeong L. Park. KoNLPy: Korean NLP in Python [Internet]. Available: http://konlpy.org/ko/latest/
- Hyungsuc Kang and Janghoon Yang, “Optimization of Word2vec Models for Korean Word Embeddings,” Journal of Digital Contents Society, pp. 825-833, Apr. 2019. [https://doi.org/10.9728/dcs.2019.20.4.825]
- Hyungsuc Kang and Janghoon Yang, “The Analogy Test Set Suitable to Evaluate Word Embedding Models for Korean,” Journal of Digital Contents Society, pp. 1999-2008, Oct. 2018. [https://doi.org/10.9728/dcs.2018.19.10.1999]
저자소개
1996년 : 연세대학교 전파공학과 (공학사)
1998년 : 한국과학기술원 대학원 전기 및 전자공학과 (공학석사)
2013년 : 숙명여자대학교 TESOL 대학원 TESOL 전공 (TESOL 석사)
2020년 : 서울미디어대학원대학교 미디어공학 전공 (미디어콘텐츠학 석사)
1998년~2003년: 삼성전자 네트워크사업부 선임연구원
2018년~2020년: 서울미디어대학원대학교 뉴미디어학부 재학
※관심분야: 인공지능(Artificial Intelligence), 자연어처리(Natural Language Processing), 기계학습(Machine Learning) 등
2001년 : University of Southern California (공학박사)
2001년~2006년: 삼성전자, 책임연구원
2006년~2010년: 연세대학교, 연구교수
2010년~현 재: 서울미디어대학원 뉴미디어학부, 부교수
※관심분야: 중재 기술, 감성 공학, 간사이 공학, 정보이론, 이종 시스템 제어, 무선통신, 무선 네트워크, 인공지능