본문 바로가기

프로그래밍/AI:ML:DL

[QUORA|번역] word2vec 과 fasttext의 가장 큰 차이점은 무엇인가?

반응형

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)단위 임베딩 ) 의 사용이 성능향상을 보인다고 하는 것 같기도... (후략. 후략한 내용은 원문을 참조.)

728x90