NLP/Embedding

[NLP] Word Embedding

데이터 세상 2021. 3. 11. 11:01
728x90
반응형

Word Embedding

자연어로 되어 있는 문장을 컴퓨터가 받아들일 수 있도록 하는 문장의 전처리 과정 중 하나

  • 유사한 의미의 단어를 군집화하고 벡터 연산을 통해 단어 간의 관계를 파악하여 추론이 가능해짐에 따라 자연어 처리 모델링에 필수 기술로 사용
  • 자연어는 이미지보다 높은 차원의 데이터
    • vs Color : RGB 벡터로 표현
  • 단어 간 유사도 및 중요도 파악을 위해 단어를 저차원의 실수 벡터로 맵핑하여 의미적으로 비슷한 단어를 가깝게 배치하는 자연어 처리 모델링 기술

출처: http://blog.skby.net/워드-임베딩word-embedding/

  • 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