임베딩과 벡터화 기법

2025. 9. 25. 20:47개발/텍스트마이닝과 언어모델

반응형

 

1. 텍스트 데이터의 숫자 표현

  • 컴퓨터의 기본 원리: 모든 문자는 숫자로 표현됨 (ASCII, Unicode).
  • 한계: 단일 문자 단위는 의미를 충분히 담지 못하므로, 단어·문장을 벡터화 필요.

2. 단순 벡터화 방법

(1) 정수 인코딩

  • 단어별 고유 ID 부여 → 문장을 정수 배열로 표현.
  • 문제점: 숫자의 크기·차이가 의미와 무관, 문장마다 길이 다름.

(2) 원-핫 인코딩

  • 어휘 크기만큼 벡터 생성, 해당 단어 위치만 1, 나머지 0.
  • 장점: 단순, 벡터 길이 고정.
  • 단점: 희소행렬(대부분 0), 차원 폭발.

3. BoW (Bag-of-Words)

  • 단어 등장 횟수 기반 문서 표현.
  • CountVectorizer: 단어 사전 구축 후 각 문서의 단어 빈도 계산.
  • 한계:
    • 단어 중요도 구분 불가.
    • 불용어가 과도하게 반영.
    • 문서 길이 의존성.

4. TF-IDF

  • TF(문서 내 빈도) × IDF(전체 문서에서 드물수록 가중 ↑).
  • 장점:
    • 불용어 패널티.
    • 문서 길이 보정.
  • 단점: 여전히 단어 순서·문맥 반영 불가.

5. 문서 유사도 측정

  • 임베딩 후 벡터 유사도 계산.
  • 대표 지표:
    • 코사인 유사도 (가장 많이 사용).
    • 유클리드 거리, 자카드 유사도 등.

6. 워드 임베딩 (Word Embedding)

  • 단어를 저차원 밀집 벡터로 표현, 의미적으로 가까운 단어는 인접.
  • 학습 원리: "비슷한 문맥 → 비슷한 의미".
  • 대표 기법:
    • Word2Vec (구글, 2013): CBOW, Skip-gram.
    • GloVe (스탠포드, 2014): 동시 출현 통계 반영.
    • FastText (페이스북, 2016): 서브워드 활용.
  • 장점: 희소성 제거, 의미 반영.
  • 한계: 문맥의 동적 의미 변화까지는 제한적.

7. 문서 수준 확장

  • 워드 벡터의 합/평균 → 문서 벡터.
  • 문제점: 단어 중요도 동일 취급, 순서 무시, 의미 희석.

8. 이후의 발전

  • Doc2Vec (2014): 문서 자체 벡터 학습.
  • RNN 기반 표현: 순서 반영.
  • ELMo (2018): 문맥 반영 임베딩.
  • BERT, S-BERT (2018~): Transformer 기반, 문맥 정교 반영.

9. LLM 기반 임베딩

  • S-BERT:
    • 문장을 고정 길이 벡터로 변환.
    • 문맥·단어 순서 반영.
    • Hugging Face 라이브러리 지원.
  • 장점:
    • 문맥적 의미 내포.
    • 사전학습 모델 활용 용이.
  • 단점:
    • 입력 길이 제한(512 토큰).
    • 속도/자원 부담.
    • 해석 불가성(블랙박스).

핵심 흐름 요약
문자 → 숫자(ASCII/Unicode) → 정수 인코딩/원-핫 인코딩 → BoW/TF-IDF (단어 빈도 기반) → 워드 임베딩(Word2Vec, GloVe 등) → 문서 벡터화(합·평균, Doc2Vec) → LLM 기반 임베딩(S-BERT, BERT)**으로 발전.

반응형