skipgram model(기존) + 각 단어가 n-gram의 합으로 표현(추가)
장점 1 ) 빠르다
장점 2 ) training data 에 없던 단어도 계산이 가능
=> character level information 을 통해 벡터 표현 능력을 향상 시킬 수 있다
정리하자면,
- character n-gram
- 단어를 n-gram vector들의 합 으로 표현하는 방식
을 제안하였다. 이는 continuous skipgram 모델에 subword information 을 고려한 것으로, 논문에서는 해당 모델을 9개의 언어에 대해 평가한 과정을 보이고자 한다.
=> 그러나 이 연구들은 paraphrase pair를 기반으로 한 objective function이 사용되었다면, 우리의 모델은 어떤 text corpus 에도 훈련이 가능하다.
아래에서는 1. general model, 2. subword model, 3. character n-gram에 대한 사전을 어떻게 처리하는지 이 3가지에 대해 설명할 것이다.
기존의 continous skipgram model
target word를 기준으로 context word(주변 단어)를 예측
target word가 주어졌을 때, context word 가 나올 확률을 최대화 하는 방식으로 학습
크기가 인 사전이 주어지면, 단어 는 까지의 인덱스로 식별할 수 있다. (ex. 'happy'라는 단어가 22번째 인덱스에 있음)
Distributional Hypothesis(분포 가설)을 바탕으로,
: 주변 단어들과 함께 자주 등장할수록 의미적으로 밀접한 관계에 있다는 가정. ex) "cat"과 "dog"이라는 단어가 자주 비슷한 문맥에서 사용된다면, 이 두 단어는 의미적으로 유사할 가능성이 높다는 뜻
skipgram의 목적은 아래의 값을 최대화 하는 것이다.

: 의 주변단어들의 인덱스 집합
scoring function s가 (word, context) 쌍을 매핑한다고 하면, 아래와 같이 context word의 probability를 계산할 수 있다.(softmax)

=> 그러나 이 모델은 단 하나의 context word를 예측하므로, 우리의 모델에 적합하지 않다.
=> 따라서 이를 독립적인 이진 분류 문제의 집합 으로 재구성하여 바라볼 수 있다. 즉, 각각의 단어가 중심 단어에 대해 context word인지, 아닌지를 판별하는 것이다.
위치 t에 있는 context words는 모두 positive라고 가정하고, 사전에서 랜덤하게 negative sample을 추출한다. 이때 특정 위치 c에 있는 단어를 binary logistic loss를 사용하여 아래와 같이 계산할 수 있다.

는 negative example의 집합이다. logistic loss function을 고려하여 아래와 같이 objective 함수를 쓸 수 있다.

distinct vector representation을 사용한 기존의 skipgram은 단어의 내부구조를 무시한다. 따라서 우리는 다른 scoring function 를 제안한다.
예를 들어 , n=3이고 'where'이라는 단어를 character n-gram으로 표현하면 :

이때 주의할 것은 'her'이라는 단어의 과 'where'의 her은 다르다는 것이다.
크기가 인 n-gram 사전이 주어졌다고 해보자.
우리는 단어를 n-gram의 합으로 표현하기로 했다. 따라서 score function은 아래와 같다.

이는 단어들 사이에 표현을 공유하고, rare word에 대한 표현이 가능하게 한다.
추가적으로, 메모리 효율성을 위해 n-gram을 1~K사이의 숫자로 hashing을 하였다. (Fowler-Noll-Vo hashing function)
따라서 결과적으로 단어는
- 사전에서의 index (사전에서의 위치)
- 해시된 n-gram 집합
으로 표현된다.
Baseline, optimization, implementation detail, datasets 에 대해 설명한다.
skipgram 과 cbow model 사용 ( word2vec package : https://code.google.com/archive/p/word2vec/)
SGD 사용
step size (학습률) : linear decay
병렬 최적화
- 학습을 최적화 하기 위해 여러 thread 사용
- 이때, 파라미터는 공유되며, asynchronous 하게 업데이트 됨
(따라서 파라미터 값이 덮어씌워지기도 함)
train set : Wikipedia dumps
9 languages : Arabic, Czech, German, English,Spanish, French, Italian, Romanian and Russian
normalize by MattMahoney’s pre-processing perl script
shuffled, 5 passes
총 5가지의 실험을 통해 평가할 것이다.
1. 단어 유사성 평가 (word similarity)
2. 단어 유추 평가 (word analogies)
3. 최신 방법들과의 비교 (comparison to state-of-the-art methods)
4. 훈련 데이터 크기와 모델 성능의 관계 분석 (effect of training data size)
5. n-gram 크기와 모델 성능의 관계 분석 (effect of character n-gram size)


다른 형태소적 표현 methods 와의 비교 => 우수하다!


3~6자의 n-gram을 사용
길이는 짧은 접미사와 긴 어근을 모두 포함하여 다양한 정보를 포괄할 수 있도록 선택
실험 결과, 영어와 독일어에서 이 n-gram 범위가 만족스러운 성능을 제공하는 것으로 나타남.
하지만 최적의 n-gram 길이는 언어와 작업에 따라 달라지므로 적절히 조정해야 함.
- 특히 독일어의 경우, 많은 명사가 여러 구성 요소로 이루어져 있어 긴 n-gram이 필요.
또한 n이 3 이상인 경우가 2 이상인 경우보다 더 나은 결과를 보여, 2-gram은 유용하지 않았음. 단어의 시작과 끝을 나타내기 위해 특수 위치 문자를 추가하여 n-gram을 계산하므로, 2-gram만으로는 접미사를 제대로 포착할 수 없음.

log-bilinear language model vs character aware language model
=> 형태소 정보를 사용하는 것이 언어 모델링 작업에서 중요하다
제안된 모델과 skipgram baseline 모델을 사용하여 훈련된 벡터의 코사인 유사도를 기반으로 선택된 단어의 최근접 이웃을 보여준다.
=> 결과적으로, 복잡하고 기술적이며 드문 단어의 경우, 제안된 접근 방식이 기준 모델보다 더 나음
단어의 가장 중요한 n-gram이 형태소와 관련이 있는지 평가하기 위해, n-gram의 합으로 구성된 단어 벡터를 사용.

모델은 훈련 세트에 나타나지 않는 단어에 대해서도 벡터를 생성할 수 있으며, 이는 n-gram의 평균으로 표현된다.
character n-grams를 skipgram model에 적용하였다. subword information을 고려하지 않는 모델에 비해 뛰어난 성능을 보였다.