공부노트

1/8, 서른 세번째 날의 TIL(NLP)

MimAI 2025. 1. 8. 20:22

NLP관련 e-북을 계속 읽는중인데, 오늘은 워드 임베딩에 대해서 정리를 해보았다. 텍스트를 컴퓨터가 잘 이해할수록 성능이 좋으므로, 워드 임베딩 처리를 잘 하는 것이 중요한 것 같다.


워드 임베딩 (Word Embedding)

텍스트를 컴퓨터가 이해할 수 있도록 변환하는 방법. 단어를 벡터로 표현하여 단어 간 의미를 학습하며, 희소 표현의 한계를 해결하고 밀집 표현을 사용.

1. 워드 임베딩

  • 희소 표현 문제점: 단어 수가 많아질수록 차원이 커지고, 의미를 표현하지 못함.
  • 밀집 표현: 사용자가 설정한 차원으로 조밀한 실수값 벡터를 생성.
  • 임베딩 방식: LSA, Word2Vec, FastText, GloVe 등 다양한 방법이 있음.

2. Word2Vec

  • 단어를 다차원 벡터로 변환해 의미적 유사성을 계산.
  • CBOW: 주변 단어로 중심 단어 예측.
  • Skip-Gram: 중심 단어로 주변 단어 예측 (일반적으로 성능이 더 우수).
  • NNLM보다 학습 속도가 빠르고 성능이 뛰어남.

3. 네거티브 샘플링

  • 소프트맥스 대신, 일부 단어 집합에만 집중해 학습 속도 개선.
  • Skip-Gram과 결합한 방식으로 효율적인 학습 가능.

워드 임베딩의 발전

1. GloVe

  • 카운트 기반과 예측 기반의 장점 결합.
  • Word2Vec은 문맥 중심, LSA는 전체 통계 기반. GloVe는 이 둘을 통합해 단어 의미를 효과적으로 학습.

2. FastText

  • 단어 내부 구조(subword)를 학습.
  • 장점: 희귀 단어와 미등록 단어 처리 가능.
  • 한국어와 같은 언어에서 음절 단위나 자모 단위를 활용.

3. ELMo

  • 문맥에 따라 다른 임베딩을 생성.
  • 양방향 RNN을 사용해 문맥적 의미를 학습.
  • GloVe와 결합해 전역적 의미와 문맥적 의미를 함께 활용 가능.

활용 및 시각화

1. 문서 벡터

  • 단어 벡터들의 평균을 사용해 문서를 벡터로 표현.
  • GlobalAveragePooling1D(): 단어 벡터 평균으로 문서 벡터 생성.
  • 장점: 단어 정보를 고르게 반영, 공평한 처리.
  • 한계: 단어 순서와 중요도 반영 불가.

2. 시각화

  • 단어 간 의미적 관계를 확인.
  • 유사한 단어는 벡터 공간에서 가깝게 위치.

3. 추천 시스템

  • 문서 벡터 간 코사인 유사도를 계산해 유사한 문서 추천.

정리

워드 임베딩은 단어의 의미를 벡터로 표현해 텍스트 데이터의 처리를 효율적으로 만드는 핵심 기술이다. Word2Vec, GloVe, FastText, ELMo 등 다양한 방법들이 발전해왔으며, 이들을 활용해 문맥을 이해하고 다양한 NLP 작업에서 성능을 향상시킬 수 있다.


단어 내용을 평균을 내면 문서 내용을 대표한다는 것이 이해가 잘 가지 않았는데, 불용어를 제거하고 단어 벡터들의 평균을 낸다면 어느 정도는 비슷할 것 같다. 예를 들어 축구에 관련된 문서는 '축구, 공, 슛, 패스' 등이 많이 나올 것이므로 비슷하다는 것이다. 다음에 축구나, 특정 분야의 문서 두개를 벡터화시켜서 비교해보고 다른 분야의 문서도 비교해봐야겠다.

내일도 화이팅