https://www.quora.com/What-is-the-main-difference-between-word2vec-and-fastText
word2vec 과 fasttext의 가장 중요한 차이점은 다음과 같다.
word2vec은 각 단어를 (쪼개질 수 없는) 원자적 단위로 취급해서, vector 를 만든다. 이점에서 word2vec 과 glove는 동일하다.
fasttext 는 본질적으로 word2vec 모델을 확장한 것이지만, 단어를 문자(character)의 ngram 조합으로 취급한다. 그래서, 한 단어에 대한 벡터는 이들 ngram 의 합으로 만들어진다. 예를 들자면, "apple" 이란 단어의 벡터는 "<ap", "app", "appl", "apple>", "ppl", "ppple", "pple>", "ple", "ple>", "le>" (여기선 하이퍼패러미터인 최소 ngram 을 3, 최대 ngram 을 6으로 잡았음) 와 같은 ngram 벡터들의 합이다. 이 차이는 다음과 같은 특징을 갖게 된다.
1. 희귀한 단어에 대해 더 좋은 word embedding 을 만들어 낸다. (번역 후략. 후략한 내용은 원문을 참조.)
2. 어휘사전(vocabulary words)으로부터 훈련 말뭉치에 존재하지 않았던 단어의 벡터를 만들어낼 수 있다. (word2vec / glove 에선 불가능)
3. 임베딩을 만들어날 때의 하이퍼패러미터가 매우 중요해진다.
4. 문자임베딩 ( ngram 이 아닌 문자(character)단위 임베딩 ) 의 사용이 성능향상을 보인다고 하는 것 같기도... (후략. 후략한 내용은 원문을 참조.)
'프로그래밍 > AI:ML:DL' 카테고리의 다른 글
[gensim|fasttext] KeyError: 'all ngrams for word absent from model' (0) | 2018.07.20 |
---|---|
[SPACY] windows 에 spacy 설치 (0) | 2018.07.18 |
[TENSORFLOW] cpu버전 tensorflow 1.6 이상에서 DLL 초기화 루틴을 실행할 수 없습니다 에러. (4) | 2018.06.05 |
[NLP] Word2Vec 튜토리얼 - 스킵-그램 모델 (1) | 2018.04.18 |
[GENSIM] "You must specify either total_examples or total_words, for proper job parameters updation (0) | 2018.04.03 |