공부노트
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 작업에서 성능을 향상시킬 수 있다.
단어 내용을 평균을 내면 문서 내용을 대표한다는 것이 이해가 잘 가지 않았는데, 불용어를 제거하고 단어 벡터들의 평균을 낸다면 어느 정도는 비슷할 것 같다. 예를 들어 축구에 관련된 문서는 '축구, 공, 슛, 패스' 등이 많이 나올 것이므로 비슷하다는 것이다. 다음에 축구나, 특정 분야의 문서 두개를 벡터화시켜서 비교해보고 다른 분야의 문서도 비교해봐야겠다.
내일도 화이팅