intro
핵심
읽기 위해 필요한 지식
원 논문
Enriching Word Vectors with Subword Information
목차
INTRO
단어를 벡터로 만드는 방법이다.
기존 방법인 Word2Vec의 형태학을 무시(단어의 내부구조 무시) 한다는 단점을 보완하기 위해 나온 것 이기 때문에 메커니즘 자체는 Word2Vec의 확장이라고 볼 수 있다.
Word2Vec와 패스트텍스트와의 가장 큰 차이점은 Word2Vec은 단어를 한단위로 생각한다면,
패스트텍스트는 하나의 단어 안에도 여러 단어들이 존재하는 것으로 간주한다. 즉 내부 단어(subword)를 고려하여 학습한다.
이 방법은 빠르고, 대규모 말뭉치에서 모델을 빠르게 훈련할 수 있으며, 훈련 데이터에 나타나지 않은 단어에 대한 단어 표현을 계산할 수 있다(OOV문제 개선).
1. Introduction
기존 연구: 분포 의미론(distribution semantics)
기존 자연어 처리 분야는 분포 의미론(distribution semantics)으로 알려진 많은 연구가 진행되었음.
- 분포 의미론(distribution semantics): 단어의 연속적인 표현을 학습하는 것
- 이러한 표현은 일반적으로 동시 발생 통계(co-occurrence statistics)를 사용하여 레이블이 지정되지 않은 대형 말뭉치에서 파생된다.
- distributional semantics으로 알려진 많은 연구가 이러한 방법의 특성을 연구했다.
- 왼쪽의 두 단어와 오른쪽의 두 단어를 기반으로 단어를 예측하여 feedforward neural network을 사용하여 단어 임베딩을 학습할 것을 제안했다.
- Mikolov et al. (2013b)는 매우 큰 기업에서 단어의 연속적인 표현을 효율적으로 학습하기 위한 간단한 로그 이진 모델(Word2vec)을 제안했다.
기존 연구의 한계 1: OOV 문제
연속적 표현은 일반적으로 공동 발생 통계를 사용한 레이블이 없는 대형 말뭉치에서 파생된다
➡ 이러한 기법의 대부분은 매개 변수 공유 없이 개별 벡터로 어휘의 각 단어를 나타냄
➡ 이렇게 1:1로 개별백터로 단어를 나타내게 하면 처음보는 새로운 단어(학습 데이터에 없는)를 표현하지 못하는(vector embedding하지 못하는) OOV문제가 나타난다.
기존 연구의 한계: 단어 자체의 내부구조 무시
이는 형태학적으로 풍부한 언어(ex 핀란드)를 잘 나타내지 못한다.
- 형태학적으로 풍부: 적은 단어를 많이 응용하여 여러 표현을 만들 수 있는 언어
- ex) work, working, worked, worker
훈련 말뭉치에서 거의 발생하지 않는(또는 전혀 발생하지 않는) 많은 단어 형식이 포함되어 있어 좋은 단어 표현을 배우기가 어렵다.
Solution
형태학적으로 풍부한 언어에는 많은 단어 형성이 규칙을 따름
➡ 문자 수준 정보를 사용하여 형태학적으로 풍부한 언어의 벡터 표현을 개선 가능
본 논문에서는 문자 n-gram에 대한 표현을 배우고 단어를 n-gram 벡터의 합으로 나타낼 것을 제안한다.
➡ 주요 기여는 subword 정보를 고려한 연속 Skip-gram model의 확장을 도입하는 것
➡ 다양한 형태를 보이는 9개 언어에 대해 이 모델을 평가하여 접근 방식의 이점을 보여줌
2 Related work은 생략하겠다
3. Model
이 섹션에서는 형태학을 고려하면서 단어 표현을 학습하는 모델을 제안한다.
[모델 목표]
- subword 단위 고려
- 단어를 문자 n-그램의 합으로 표현하여 형태학을 모델링
[제안 순서]
- 단어 벡터를 훈련시키는 데 사용하는 일반적인 프레임워크를 제시
- subword 모델을 제시
- 최종적으로 문자 n-그램 사전을 처리하는 방법을 설명
3.1 General model
FastText의 base model은 skip-gram이다.
요약하자면 현재 단어(\(W_t\))(eat)로 맥락단어들(\(W_c\))(I, You, She …)(snack, rice, cake…)을 유추하는 것이다,
이를 통해 단어의 분산표현을 얻는다.
3.2 Subword model
기존 Skip-gram모델의 문장 자체의 구조를 무시한다는 문제를 해결하기 위해 본 논문에서는 새로운 방법을 제안한다.
단어 내부 구조를 보다 잘 반영하기 위하여,
FastText는 단어 w를 n-gram character의 bag으로 표현한다.
패스트텍스트에서는 우선 각 단어는 글자들의 n-gram으로 나타낸다.
n을 몇으로 결정하는지에 따라서 단어들이 얼마나 분리되는지 결정한다.
예를 들어서 n을 3으로 잡은 트라이그램(tri-gram)의 경우,
먼저 각 단어를 구분하기 위해 단어의 시작과 끝에 <
,>
을 붙인다.
그 다음 where
은 wh, her, ere, re
로 분리하고 이들 또한 임베딩을 한다.
마지막으로 여기에 special sequence로 word 자체가 포함된다.
따라서 bag of n-gram으로 표현된 단어는 다음과 같다.
[n의 범위 설정]
- 실제 사용할 때는 n의 최소값과 최대값을 설정가능
- n은 3이상 6이하의 범위의 숫자로 설정해야한다.
[Scoring Function]
- G 크기의 n그램 dictionary가 주어졌다고 가정하자.
- w 단어가 주어지면, Gw ⊂ {1, . . . , G}로 w에 나타나는 n-gram 집합
- 우리는 각 n-gram에 벡터 표현 \(z_g\)를 연관시킨다.
- 우리는 단어를 n-gram의 벡터 표현의 합으로 표현한다. 따라서 스코어링 함수를 얻는다.
📜 기존 Skip-gram model의 Scoring Function
- \(w_t\): target word
- \(w_c\): context word
이 간단한 모델을 통해 단어 간에 representation을 공유(=가중치 공유) 할 수 있으므로 rare한 단어(단어 집합 내 빈도 수가 적었던 단어)에 대한 신뢰할 수 있는 표현을 학습할 수 있다.
예를 들면 work, working, worked, worker에서 work의 가중치를 공유시키는 것이다.
4. Experimental setup
4.1 Baseline
대부분의 실험(5.3항 제외)에서,
본 논문은 본 논문 모델을 word2vec2 package(C로 구현된 skipgram 및 cbow 모델)과 비교한다.
4.2 Optimization
- negative log likelihood에 대해 stochastic gradient descent를 수행하여 최적화 문제를 해결
- baseline skipgram model에서와 같이, 우리는 step size의 linear decay를 사용
- T words와 P와 동일한 데이터에 대한 passes 수가 포함된 trainset가 주어지면,
시간 t의 스텝 크기는 아래와 같다.
\(γ0(1 − \frac{t}{TP})\)
※ 여기서 \(γ0\)은 고정 매개 변수 - Hogwild에 의존하여 동시에 최적화를 수행
- 모든 threads는 매개 변수를 공유하고 벡터를 비동기식(threads)으로 업데이트합니다.
📜 HogWild 병렬 SGD
HogWild는 서로 다른 쓰레드가 서로 다른 워드 페어를 병렬로 처리하는 기법으로, 모델 업데이트 단계에서 발생할 수 있는 충돌 상황(conflicts)은 무시해버립니다.
이론적으로는, 순차적으로 실행되는 경우와 비교했을 때 이렇게 하면 알고리즘의 수렴 비율을 줄일 수 있습니다. 아울러, HogWild 기법은 쓰레드를 통한 업데이트가 동일한 단어가 아닐 경우 잘 동작하는 것으로 알려져 있습니다. 즉, 대규모의 어휘집에 대해 충돌 상황이 상대적으로 매우 적게 나타나며 따라서 알고리즘의 수렴에도 영향이 별로 없습니다.
4.3 Implementation details
우리의 모델과 baseline experiments 모두에서, 우리는 다음과 같은 매개 변수를 사용한다.
- word vector: dimension 300
- sampling:각각의 긍정적인 예에 대해, smapling 5 negatives을 무작위로 표본으로 추출(uni-gram frequency의 제곱근에 비례하는 확률로)
- context window size: c (1과 5 사이의 크기 c를 균일하게 샘플링)
- rejection threshold: \(10^{-4}\) (가장 빈번한 단어를 subsample하기 위해)
- min count: word dictionary를 만들 때, 우리는 train 세트에 5번 이상 나오는 단어만 유지
- step size(learninf rate)(\(γ0\)): (word2vec 패키지의 기본값으로 설정)
- skipgram baseline: 0.025
- cbow baseline: 0.05
영어 데이터에 위 하이퍼파라미터로 학습하면,
우리의 character n-grams model은 skipgram baseline보다 훈련 속도가 약 1.5배 느리다.
Datasets
데이터는 Wikipedia data를 사용한다.(5.3 제외)
위 데이터의 9개국 언어 버전으로 사용: 아랍어, 체코어, 독일어, 영어, 스페인어, 프랑스어, 이탈리아어, 루마니아어 및 러시아어.
우리는 Matt Mahoney’s pre-processing perl script를 사용하여 raw Wikipedia data를 정상화한다.
모든 데이터 세트는 shuffled되고, 우리는 모델에 대해 five passes를 수행하여 모델을 훈련시킨다.
5 Results
우리는 다섯 가지 실험으로 모델을 평가한다:
- an evaluation of word similarity and word analogies
- a comparison to state-of-the-art methods
- an analysis of the effect of the size of training data and of the size of character n-grams that we consider.
5.1 Human similarity judgement
먼저 단어 유사성/관련성 작업에서 표현의 품질을 평가
➡ 평가 방법: 인간의 판단과 벡터 표현 사이의 코사인 유사성 사이의 Spearman’s rank correlation coefficient를 계산.
[데이터셋]
- 독일어: GUR65, GUR350 및 ZG222의 세 가지 데이터 세트에서 서로 다른 모델을 비교한다.
- 영어: Finkelstein 등이 소개한 WS353 데이터 세트, (2001) 및 Luong 등(2013)이 소개한 the rare word dataset (RW)를 사용한다.
- 프랑스어: 번역된 데이터 세트 RG65에서 프랑스어 단어 벡터를 평가한다.
- 스페인어, 아랍어 및 루마니아어: 이 언어들의 단어 벡터는 Hassan and Mihalcea, 2009에 설명된 데이터 세트를 사용하여 평가된다.
- 러시아어: 이 언어의 단어 벡터는 Panchenko et al(2016)이 도입한 HJ dataset를 사용하여 평가된다.
[결과: Table 1]
위의 모든 데이터 세트에 대한 방법과 기준선에 대한 결과를 Table 1에 나타냈다.
📜 [Table 1]
word similarity datasets의 human judgement과 similarity scores 사이의 상관관계.
우리는 우리의 모델과 normalized Wikipedia dumps를 사용한 the word2vec baseline를 모두 train했다.
Evaluation datasets에는 training set의 일부가 아닌 단어가 포함되어 있으므로 null 벡터(sisg-)를 사용하여 표현한다.
우리 모델을 사용하여 n-gram vectors(sisg)를 합산하여 보이지 않는 단어에 대한 벡터도 계산한다.
이러한 데이터 세트의 일부 단어는 training data에 나타나지 않으므로 cbow 및 skipgram baselines을 사용하여 이러한 단어에 대한 단어 표현을 얻을 수 없다.
➡ 그래서 비교 가능한 결과를 제공하기 위해 기본적으로 이러한 단어에 null 벡터를 사용할 것을 제안한다.
우리 모델은 subword 정보를 활용하기 때문에 어휘 부족 단어에 대한 유효한 표현도 계산 가능 ➡ n-gram vectors의 합을 취함으로써 가능하게 함.
OOV 단어가 null 벡터를 사용하여 표현되는 경우, 우리는 우리의 방법을 sisg- 및 sisg라고 달리 부른다(Subword Information Skip Gram).
-
result 1
Table 1 을 보면 subword 정보를 사용하는 모델(sisg)이 영어 WS353 데이터 세트를 제외한 모든 데이터 세트의 기준선을 능가한다는 것을 알 수 있다.
또한, out-of-vocabulary word(sisg)에 대한 벡터 계산은 null 벡터를 사용한 모델(sisg-)보다 거의 좋은 성능을 보인다.
➡ 이것은 문자(character) n-grams의 형태로 subword 정보를 사용하는 것의 이점을 증명한다. -
result 2
English, French, Spanish보다 Arabic, German, Russian에서 character n-grams을 사용하는 효과가 더 중요하다는 것을 관찰한다.
그리고 우리 모델은 두 언어의 유사성 떄문에 German, Russian을 완전히 다른 단어로 표현하지 않는다.
German(DE) 단어들은 복합어이다: “table tennis”라는 명목상의 문구는 “Tischtennis”라는 단어로 쓰여진다. “Tischtennis”와 “Tennis”의 문자 수준 유사성을 활용하여, 우리의 모델은 두 단어를 완전히 다른 단어로 표현하지 않는다.
➡ 즉 German과 같은 복합어로 이루어진 단어들에게 더 잘 작용한다. -
result 3
우리의 모델은 English Rare Words dataset (RW)에 대해선 baselines을 능가했가.
하지만 WS353 dataset에서는 baselines보다 성능이 좋지 못하다.
➡ 이 이유는, WS353 데이터 세트의 단어가 subword 정보를 활용하지 않고도 좋은 벡터를 얻을 수 있는 흔한 단어이기 때문이다.
➡ 하지만 빈도가 낮은 단어를 평가할 때, 단어 간의 문자 수준에서 유사성을 사용하면 좋은 단어 벡터를 학습하는 데 도움이 될 수 있음을 알 수 있다.
➡ 즉 본 모델은 흔한 단어가 많은 dataset보단 빈도가 낮은 dataset에서 더 효과가 좋다.
5.2 Word analogy tasks
[analogy tasks]
- 이 task는 아래 두개의 test로 구된다.
- Semantic
son -> daughter일 때, grandpa를 주었을 때 grandma를 답으로 낼 수 있는지를 갖고 모델의 성능을 판단한다. - Syntactic
amazing -> amazingly일 때, most 주었을 때 mostly를 답으로 낼 수 있는지를 갖고 모델의 성능을 판단한다.
[언어별 데이터 세트]
- 영어(EN): Mikolov et al.(2013a)
- 체코(CS): Svoboda와 Brychin(2016)
- 독일(DE): Köper et al.(2015)
- 이탈리아(IT): Berardi et al.(2015)
[결과: Table 2]
Table 2에서 다양한 모델에 대한 정확도를 보고한다.
📜 [Table 2]
체코어, 독일어, 영어 및 이탈리아어에 대한 word analogy tasks에 대한 본 논문의 모델과 baselines(기존 모델)의 정확성. semantic 과 syntactic에 대한 결과를 별도로 보고한다.
-
result 1
형태학적 정보가 syntactic 작업을 크게 개선한다
본 논문 모델은 은 성능이 좋다. -
result 2
반면, 본 논문의 모델은 semantic 질문에 도움이 되지 않음
심지어 독일어와 이탈리아어의 성능을 저하시킨다.
➡ 이것은 우리가 고려하는character n-grams의 길이 선택과 밀접한 관련이 있다.
➡ 본 논문은 5.5항에서 n-grams의 크기를 최적으로 선택하면 의미론적 유사성이 덜 저하된다는 것을 보여준다. -
result 3
체코어와 독일어와 같은 형태학적으로 풍부한 언어의 경우 본 논문의 모델이 기존 모델보다 훨씬 더 성능이 좋았다
5.3 Comparison with morphological representations
우리는 또한 단어 similarity tasks에 대한 subword 정보를 incorporating하는 단어 벡터에 대한
기존 모델과 본 논문의 모델의 접근 방식을 비교한다.
[사용된 방법]
- Luong et al.(2013)의 the recursive neural network
- Qiu et al.(2014)의 the morpheme cbow
- Soricut and Och (2015)의 morphological transformations
결과를 비교 가능하게 만들기 위해,
본 논문의 모델을 우리가 비교하고 있는 방법과 동일한 데이터 세트, the English Wikipedia data와
독일어, 스페인어 및 프랑스어를 위한 2013 WMT 공유 작업의 news crawl data 에 대해 모델을 훈련시켰다.
우리는 또한 유럽 연합 뉴스 해설 코퍼스에서 훈련된 Botha and Blunsom (2014)이 도입한 log-bilinear language model과 우리의 접근 방식을 비교한다.
다시, 우리는 결과를 비교할 수 있도록 동일한 데이터에 대해 모델을 훈련시켰다.
우리의 모델을 사용하여, 우리는 문자 n-grams의 표현을 합산하여 OOV의 표현을 얻는다.
[결과: Table 3]
📜 [Table 3]
단어 표현을 학습하기 위해 형태학을 사용하는 다양한 방법에 대한 human judgement과 모델 scores사이의 Spearman의 순위 상관 계수.
우리는 evaluation set의 모든 단어 쌍을 유지하고 문자 n-grams의 벡터를 합산하여 모델로 OOV에 대한 표현을 얻는다.
우리의 모델은 우리가 비교하고 있는 방법과 동일한 데이터 세트에 대해 훈련되었다. (따라서 우리의 접근 방식에 대한 두 가지 결과 라인 ).
-
result 1
본 모델의 단순한 접근 방식이 형태론적 세그먼트에서 얻은 subword 정보를 기반으로 하는 기술에 비해 잘 수행된다는 것을 알 수 있다.
우리는 또한 우리의 접근 방식이 접두사 및 접미사 분석을 기반으로 하는 Soricut and Och(2015) 방법을 능가한다는 것을 관찰한다. -
result 2
독일어가 크게 향상됨
➡ 기존 접근 방식이 우리의 접근 방식과 반대로 명사 합성을 모델링하지 않기 때문이다.
5.4 Effect of the size of the training data
[training data에 대한 평가함수의 필요성]
- 본 논문의 모델은 단어 간의 character-level similarities하기 때문에 자주 사용하지 않는 단어를 더 잘 모델링할 수 있다.
따라서, 우리는 또한 우리가 사용하는 training data의 크기에 더 robust해야한다. - 이를 평가하기 위해, 우리는 training data 크기의 함수로서, similarity task에 대한 단어 벡터의 성능을 평가할 것을 제안한다.
[training data에 대한 평가함수]
- 우리는 increasing size의 Wikipedia로 본모델과 기존의 cbow을 훈련시킨다.
- 우리는 위에서 설명한 Wikipedia corpus를 사용하고 데이터의 첫 번째 1, 2, 5, 10, 20, 50%를 분리한다.
- 우리는 데이터 세트를 reshuffle하지 않기 때문에, 그것들은 모두 서로의 subsets 집합이다.
[결과: Fig. 1]
📜 [Figure 1]
training data의 크기가 성과(performance)에 미치는 영향
우리는 크기가 증가하는 datasets를 사용하여 제안된 모델에 따라 단어 벡터를 계산한다.
이 실험에서, 우리는 전체 full Wikipedia dump의 일부에서 모델을 훈련시킨다.
Sec. 5.1에 제시된 실험에서와 같이, evaluation set의 모든 단어가 위키백과 데이터에 존재하는 것은 아니다.
그래서 Sec. 5.1에서와 같이 이렇게 evaluation set에만 존재하지 않는 단어에 대해,
- null 벡터(sisg-)를 사용하거나,
- n-gram 표현(sisg)을 합하여 벡터를 계산한다.
데이터 세트가 축소됨에 따라 어휘 부족률이 증가하고 있으므로 sisg와 cbow의 성능이 필연적으로 저하된다.
그러나 제안된 모델(sisg)은 이전에 볼 수 없었던 단어에 중요하지 않은 벡터를 할당한다.
-
result 1
모든 데이터 세트와 모든 크기에 대해 제안된 접근 방식(sisg)이 기준보다 더 나은 성능을 발휘 한다.
그러나 사용 가능한 데이터가 증가함에 따라 baseline cbow 모델의 성능이 향상된다.
반면에 우리의 모델은 빠르게 포화되는 것처럼 보이며 더 많은 데이터를 추가한다고 해서 항상 결과가 개선되는 것은 아니다. -
result 2
가장 중요한 것은 제안된 접근 방식(sisg)이 매우 작은 훈련 데이터 세트를 사용하는 경우에도 매우 좋은 단어 벡터를 제공한다는 것이다.
👀 result 2 예
예를 들어, the German GUR350 dataset에서 데이터의 5%에 대해 훈련된 모델(sisg)은 전체 데이터 세트(62)에 대해 훈련된 baseline cbow보다 더 나은 성능(66)을 달성한다.
반면, English RW dataset에서 위키피디아 말뭉치의 1%를 사용해도,
full dataset에서 훈련된 cbow의 성능(43)보다 나은 45의 상관 계수를 달성한다.
이것은 매우 중요한 실질적인 영향을 미친다.
- well performing word vectors는 제한된 크기의 데이터 세트에서 계산될 수 있으며 이전에 보지 못했던 단어에서 여전히 잘 작동한다.
- 일반적으로 특정 응용 프로그램에서 벡터 단어 표현을 사용할 때는 응용 프로그램과 관련된 텍스트 데이터에 대해 모델을 재교육하는 것이 좋다.
그러나 이러한 종류의 관련 작업별 데이터는 매우 부족한 경우가 많다.
그런데 이 모델은 적은 양의 훈련 데이터로부터 학습하는 것이 효과적이므로 이때 사용하기 좋다.
5.5 Effect of the size of n-grams
The proposed model relies on the use of character ngrams to represent words as vectors. As mentioned in Sec. 3.2, we decided to use n-grams ranging from 3 to 6 characters. This choice was arbitrary, motivated by the fact that n-grams of these lengths will cover a wide range of information. They would include short suffixes (corresponding to conjugations and declensions for instance) as well as longer roots. In this experiment, we empirically check for the influence of the range of n-grams that we use on performance. We report our results in Table 4 for English and German on word similarity and analogy datasets.
We observe that for both English and German, our arbitrary choice of 3-6 was a reasonable decision, as it provides satisfactory performance across languages. The optimal choice of length ranges depends on the considered task and language and should be tuned appropriately. However, due to the scarcity of test data, we did not implement any proper validation procedure to automatically select the best parameters. Nonetheless, taking a large range such as 3 − 6 provides a reasonable amount of subword information.
This experiment also shows that it is important to include long n-grams, as columns corresponding to n ≤ 5 and n ≤ 6 work best. This is especially true for German, as many nouns are compounds made up from several units that can only be captured by longer character sequences. On analogy tasks, we observe that using larger n-grams helps for semantic analogies. However, results are always improved by taking n ≥ 3 rather than n ≥ 2, which shows that character 2-grams are not informative for that task. As described in Sec. 3.2, before computing character n-grams, we prepend and append special positional characters to represent the beginning and end of word. Therefore, 2-grams will not be enough to properly capture suffixes that correspond to conjugations or declensions, since they are composed of a single proper character and a positional one.