Word Embedding
원핫 벡터화를 통해 발생하는 sparse vector를 Dense하게 바꿔주는 과정을 말한다.
ex) 오토인코더와 비슷하게 생겼다.
- 차원을 압축, 해제하면서 특징 추출을 자동으로 학습하게 한다.(Latent Space)
TF-IDF
- TF: 단어의 문서 내 출현 횟수
- IDF: 단어가 출현한 문서의 갯수의 역수(inverse)
TF / DF -> The와 같은 단어는 하나의 문서 내에서도 자주 등장했을 테지만 전체 문서를 기준으로 봤을 때도 대다수의 문서에 포함되었을 것이다. 이러한 단어에 패널티를 가하는 방식이다.
Context Windowing
가정: 의미가 비슷한 단어는 쓰임새도 비슷할 것이다. 그래서 같이 등장할 확률이 높을 것이다.
- 지정한 단어의 앞 뒤 n개 만큼의 단어를 함께 본다. 여기서 지정한 n개 만큼의 범위를 window라 부른다.
- window 내에서 특정 단어와 같이 등장한 단어들의 빈도를 측정한다.
Word2Vec
가정: 주변(context window)에 특정 단어가 계속 나타나는 단어일 수록 비슷한 벡터 값을 가져야 한다.
- Context windowing을 적용한 알고리즘
- CBOW와 Skip-gram 두 가지 방식을 제안한다.
- A 단어와 B 단어 각각의 주변 단어가 비슷한 패턴을 지닌다면 A와 B 단어는 유사하다고 판단한다.
CBOW
주변 단어로 타겟 단어를 예측하도록 하는 방식
- 인풋 데이터로 주변 단어들을 입력하면 타겟 데이터는 window의 중심 단어를 타켓으로 설정해서 weight를 학습한다.
- 타겟 데이터가 스칼라이므로 선형 회귀로 접근한다.
Skip-gram
타겟 단어로 주변 단어들을 예측하도록 하는 방식
- auto encoder와 흡사한 방식으로 학습
- Linear한 방식, Softmax를 적용한 분류 문제로 접근한다.
*오토인코더를 되돌아보자
- 특징을 추출하는 방법을 자동으로 학습
- 차원이 축소되도록 weight 행렬을 내적하여 잠재(히든)레이어를 생성하고, 그 과정에서 특징 추출이 발생하도록 유도
- 어떤 특징이 버려지고 추출되는지 우리는 알 수 없다.
Embedding Layer는 왜 필요한가?
실상 one-hot-vector를 넣어서 임베딩 레이어를 뽑는 것은 단순 Linear Regression과 다를 바 없다.
그렇다면 굳이 임베딩 레이어 과정을 거칠 필요 없이 바로 one-hot-vector를 Fc(fully-connected)에 넣어주면 되는 것 아닌가?
1. One-hot-vector가 사실상 인덱싱 역할을 해준다.
- 예를들어 3만 개의 단어 중 ‘강아지’라는 단어에 대해서 감성 분석을 한다고 했을 때, 학습 과정에서는 ‘강아지’ 하나의 단어에 대한 weight값만 업데이트하면 되는 것이다. 그래서 one-hot-vector는 ‘강아지’라는 단어와 연결된 weight만 보도록 인덱싱하는 역할을 하는 것이다. 이 부분에서 계산의 효율성이 발휘된다.
2. Dense representation으로 변경해준다.
- latent layer과정을 거치며 차원 축소의 역할을 해주므로 Sparse한 매트릭스를 Dense하게 바꿔준다. 이 과정에서 알짜베기 데이터만 남겨 불필요한 연산을 줄여주며 연산의 효율성을 높인다.
'데이터사이언스 이론 공부' 카테고리의 다른 글
RNN과 LSTM 원리에 대한 간략 정리 (0) | 2022.12.05 |
---|---|
딥러닝 기초 용어에 대한 간단 정리 (0) | 2022.11.02 |
SVM의 가우시안 RBF 커널 간략 정리 (0) | 2022.10.25 |
엔트로피(Entropy)와 크로스 엔트로피(Cross Entropy) (0) | 2022.10.07 |
NDCG로 랭킹 추천모델 평가하기 (0) | 2022.09.15 |