728x90
반응형
Word Embedding
자연어로 되어 있는 문장을 컴퓨터가 받아들일 수 있도록 하는 문장의 전처리 과정 중 하나
- 유사한 의미의 단어를 군집화하고 벡터 연산을 통해 단어 간의 관계를 파악하여 추론이 가능해짐에 따라 자연어 처리 모델링에 필수 기술로 사용
- 자연어는 이미지보다 높은 차원의 데이터
- vs Color : RGB 벡터로 표현
- 단어 간 유사도 및 중요도 파악을 위해 단어를 저차원의 실수 벡터로 맵핑하여 의미적으로 비슷한 단어를 가깝게 배치하는 자연어 처리 모델링 기술
- Word Embedding 방식은 동형어, 다의어 등에 대해선 embedding 성능이 좋지 못하다는 단점이 있음
- 주변 단어를 통해 학습이 이루어지기 때문에, '문맥'을 고려할 수 없음
Sparse Representation (희소 표현)
- 벡터 또는 행렬의 값이 대부분이 0으로 표현되는 방법
- n개의 단어에 대한 n차원의 벡터 필요
- 단어가 커질수록 무한대 차원의 벡터가 생성
- 주로 신경망의 입력단에 사용(신경망이 임베딩 과정을 대체. tf.layers.Embedding)
- 의미 유추 불가능
- 차원의 저주(curse of dimensionality): 차원이 무한대로 커지면 정보 추출이 어려워짐
one-hot encoding
- 단어 하나를 vector로 표현하는 방법
- 각 단어의 인덱스를 정한 후 각 단어의 벡터에서 그 단어에 해당하는 인덱스의 값을 1로 표현하는 방식
- One-hot 벡터의 차원 축소를 통해 특징을 분류하고자 하는 접근도 있음
Dense Representation (밀집 표현)
- 사용자가 설정한 값으로 모든 단어의 벡터 표현의 차원을 맞춤
- 결과값은 실수값을 가지게 됨
- 강아지 = [ 0 0 0 0 1 0 0 0 0 0 0 0 ... 중략 ... 0] # 이 때 1 뒤의 0의 수는 9995개. 차원은 10,000
- -> 강아지 = [0.2 1.8 1.1 -2.1 1.1 2.8 ... 중략 ...] # 이 벡터의 차원은 128
- 의미 관계 유추 가능
- 비지도 학습으로 단어의 의미 학습 가능
Dense Representation Matrix
구분 | 유형 | 원리 |
횟수 기반 임베딩 (Frequency Based Embedding) |
BOW (Bag of Words) |
단어의 출연 빈도만으로 단어 사전(주머니) 생성 각 단어 인덱싱 기반 사전으로 만들어 자동 분류 |
Count Vector | 모든 문서의 단어 학습 후 문서 마다 단어 횟수 파악 각 문서 별 고유 토큰 수 기반 행렬(Matrix)로 표현 |
|
TF-IDF | 핵심어 추출 위해 단어의 특정 문서 내 중요도 산출 TF: 단어의 문서내 빈도, IDF: 문서 빈도 수(DF)의 역수 |
|
추론 기반 임베딩 (Prediction Based Embedding) |
CBOW | 주변 단어 기반 해당 위치에 나타날 수 있는 단어 추론 컨텍스트에서 단어의 평균을 적용하여 Softmax 계산 |
Skip-gram | 입력 단어를 통해 주변에 나타날 수 있는 단어를 추론 컨텍스트에서 단어를 1:1로 대응하여 Softmax 계산 |
|
Word2Vec | 단어를 벡터 평면에 배치하여 문맥적 의미 보존 신경망 연산 수행하며 CBOW와 Skip-gram 모델 적용 |
Distributed Hypothesis
- 벡터의 크기가 작으면서도 벡터가 단어의 의미를 표현할 수 있는 방법
- 같은 문맥의 단어, 즉 비슷한 위치에 나오는 단어는 비슷한 의미를 가진다라는 개념
카운트 기반 방법
단어를 표현한다는 것은 어떤 글의 문맥 안에 단어가 동시에 등장하는 횟수를 세는 방법
- Co-occurence: 동시에 등장하는 횟수
- SVD(Singular Value Decomposition): 특이값 분해
- LSA(Latent Semantic Anaysis): 잠재 의미 분석
- HAL(Hyperspace Analogue to Language)
- Hellinger PCA(Principal Component Anaysis)
예측 기반 방법
신경망 구조 혹은 어떠한 모델을 사용해 특정 문맥에서 어떤 단어가 나올지를 예측하면서 단어를 벡터로 만드는 방식
- Word2Vec
- NNLM(Neural Network Language Model)
- RNNLM(Recurrent Neural Network Language Model)
Word Embedding 활용
- 다른 자연어처리 모델의 입력으로 사용
- ex) 학습 데이터의 양이 매우 적은 감성분석을 수행할 경우 학습 데이터만으로는 특성 추출 불가능
- 토픽 키워드
References
728x90
반응형
'NLP > Embedding' 카테고리의 다른 글
부분구문분석(청크나누기, Chunking) (0) | 2023.07.18 |
---|---|
[NLP] Doc2Vec (0) | 2021.04.08 |
[NLP] Word2Vec (0) | 2021.03.12 |