1.임베딩
1)개념
사람이 쓰는 언어를 기계가 이해할 수 있도록 숫자형태인 Vector로 바꾸는 과정
2)임베딩의 역할
-단어/문장 간 관련도 계산
단어들 사이의 유사도를 파악하는 것이 가능하다.
-의미적/문법적 정보 함축
임베딩은 벡터이므로 사칙연산이 가능하다. 예를 들어 '아들 - 딸 + 소녀= 소년'과 같이 의미적, 문법적 관계를 파악하는 것이 가능하다.
-전이 학습
모형의 성능과 모형의 수렴속도가 빠른 품질좋은 임베딩을 다른 딥러닝 모델 입력값으로 사용하는 것을 전이학습이라고 한다. 대규모 Corpus를 사용해 좋은 품질의 임베딩을 미리 만들어 놓는 것이 가능하다.
*선행 기법
One-hot-encoding/ Sparse representation(희소표현) / Dense representation(밀집 표현)
● Sparse representation(희소표현)
데이터를 벡터 또는 행렬에 기반하여 수치화하여 표현할때 극히 일부의 인덱스만 특정 값으로 표현하고, 대부분의 나머지 인덱스는 의미 없는 값으로 표현하는 기법. 대표적으로 원핫인코딩이 있다.
(DTM-문서단어행렬도 희소표현 기법)
EX. Apple = [0,0,0,0,1, ...,0]
단점:
1.불필요한 벡터 공간 낭비(대부분의 인덱스값이 모두 0으로 표현됨) .
2.단어의 의미를 파악하지 못함.
● Dense representation(밀집 표현)
텍스트를 실숫값으로 구성하여 사용자가 설정한 차원의 벡터로 표현.
EX. Apple = [0.2,0.7,...,0.9]
3)임베딩의 종류
-행렬 분해
Corpus 정보가 들어 있는 원래 행렬을 Decomposition을 통해 임베딩하는 기법이다. Decomposition 이후엔 둘 중 하나의 행렬만 사용하거나 둘을 sum하거나 concatenate하는 방식으로 임베딩을 한다.
ex) GloVe, Swivel 등
-예측 기반
어떤 단어 주변에 특정 단어가 나타날지 예측하거나, 이전 단어들이 주어졌을 때 다음 단어가 무엇일지 예측하거나, 문장 내 일부 단어를 지우고 해당 단어가 무엇일지 맞추는 과정에서 학습하는 방법
ex) Word2Vec, FastText, BERT, ELMo, GPT 등
-토픽 기반
주어진 문서에 잠재된 주제를 추론하는 방식으로 임베딩을 수행하는 기법
ex) 잠재 디리클레 할당(LDA)
2.Word2Vec
1)개념
-단어 벡터 간 유의미한 유사도를 반영할 수 있도록 단어의 의미를 수치화 할 수 있는 방법.
-워드임베딩의 방법론 중 한가지.
-크게 CBOW(Continuous Bag of Words)와 Skip-gram 방식으로 나뉨.
● 윈도우란?
문장이 있을 때, 타깃 단어를 예측하기 위해 사용할 앞뒤 맥락 단어의 갯수
예시)
2)CBOW(Continuous Bag of Words)
-주변에 있는 단어들을 입력으로 중간에 있는 단어들을 예측하는 방법.
슬라이딩 윈도우
윈도우를 이동시키면서 타깃 단어(중심 단어)와 맥락 단어(주변 단어)를 뽑아 데이터셋으로 만들어 줌.
이러한 데이터셋을 통해 CBOW 신경망을 학습 시킴.
학습을 진행할수록 맥락으로부터 타깃 단어를 잘 추측하는 방향으로 가중치 행렬 W가 갱신됨.
그리고 이렇게 해서 얻은 분산 표현 W에는 '단어의 의미'가 잘 녹아있음.
3)Skip-gram
-중간에 있는 단어들을 입력으로 주변 단어들을 예측하는 방법
-타깃 단어로부터 맥락 단어를 예측
-Skip-gram이 CBOW보다 성능이 우수함.
추가 참고:
'NLP' 카테고리의 다른 글
ELMo, Scaled Dot-Product Attention (0) | 2023.05.22 |
---|---|
Glove, Swivel (1) | 2023.05.14 |
FastText, Topic Modeling (0) | 2023.05.09 |
Bag of Words(BoW), TF-IDF (0) | 2023.05.03 |
Tokenization, Stemming, Lemmatization 이란? (0) | 2023.04.24 |