fastText와 Word2Vec의 차이점과 장점

Youngho LEE·2025년 8월 10일
post-thumbnail

Word2Vec는 단어를 원자적 토큰(whole word) 단위로 학습합니다. 반면 fastText는 단어를 문자 n-그램(subword)들의 합으로 표현해 형태 정보와 희귀어까지 더 잘 담는다.

이 때문에 fastText는 OOV(Out-of-Vocabulary) 단어도 n-그램으로 쪼개 벡터를 만들 수 있어 희귀어/오탈자/신조어에 강하다.

학습은 Word2Vec과 같은 CBOW/Skip-gram 틀 위에서 돌아가며, n-그램은 버킷 해싱(bucket hashing)으로 관리해 메모리를 제어한다.

비교표

항목Word2VecfastText
학습 단위단어(whole word)문자 n-그램의 합(단어 = n-그램 벡터들의 합)
OOV 처리불가(벡터 없음)가능: 미본 단어도 n-그램 합으로 벡터 생성
형태 정보암시적(문맥만)명시적(접사/어근 등 서브워드로 반영)
기본 구조CBOW/Skip-gramCBOW/Skip-gram + subword
파라미터 제어단어 사전 크기에 비례n-그램을 해시 버킷에 넣어 상한 관리
학습/추론 비용상대적으로 가벼움n-그램 합산 때문에 조금 더 무거움(코퍼스/하이퍼파라메터에 따라 다름)

fastText의 장점 (vs Word2Vec)

  1. OOV 단어 벡터 생성: 사전에 없는 단어도 문자 n-그램 합으로 즉시 벡터화. 예: “gearshift” 같은 미등장 단어 예시.

  2. 희귀어·형태가 풍부한 언어에 강함: 접사/활용형 변화가 많은 언어(한국어 포함)에서 성능 향상 보고.

  3. 오탈자·변형에 견고: 철자 변형도 일부 n-그램이 겹쳐 의미가 덜 무너짐. (서브워드 기반의 일반적 효과)

  4. Word2Vec과 동일한 사용성: 같은 CBoW/Skip-gram 틀이라 적용이 쉽고, 대규모 말뭉치에서도 빠른 학습이 가능하도록 설계됨.

  5. 메모리 관리: n-그램 수가 커도 버킷 해싱으로 파라미터 수 상한을 걸어 실용성을 확보. (충돌은 가능하지만 실무에서 관리 가능)

언제 fastText를 쓰면 좋은가?

  • 신조어/전문용어/OOV가 많은 도메인(커뮤니티/의학/게임 등).
  • 형태변화가 풍부한 언어(활용·접사 많은 언어)에서 희귀어까지 커버하고 싶을 때.
  • 정적(비맥락) 임베딩이 필요하지만 Word2Vec의 OOV 한계를 넘고 싶을 때.
    (※. 문맥 의존 의미가 중요하면 BERT류(컨텍스트 임베딩)도 고려.)

출처
GENSIM
fasttext

profile
개발자

0개의 댓글