728x90
자연어처리 공부중입니다. 잘못된 부분은 편히 댓글 부탁드립니다.
1. 워드 임베딩이란?
- 단어를 인공신경망 학습을 통해 벡터화하는 하는 것
- 즉 텍스트를 숫자로 변환하는 방법
2. 희소 표현(Sparse Representation)
- One-hot-encoding은 값이 2개로만 이루어진 것으로 희소표현은 One-hot-Vetor를 의미하며 0과 1로만 이루어져있음.
단, 하나만 1 나머지는 0이어야 한다.
10개의 데이터 중 고양이가 4번째라면, 고양이 = [0,0,0,1,0,0,0,0,0,0]
- 단어의 개수가 늘어날 수록 벡터 차원이 한없이 커진다는 단점이 있음
단어가 1만개라면 벡터의 차원도 1만
3. 밀집 표현(Dense Representation)
- 희소 표현과 반대되는 표현
- 벡터의 차원을 단어 집합의 크기로 상정하지 않음. 사용자가 설정한 값으로 차원을 맞춰 줌
- 0,1 뿐만 아니라 실수 값으로 바뀜
128차원으로 설정한다면, 모든 값이 실수가 됨. 고양이 = [0.1, 1.6, 1.1, -1.2, ...]
벡터 차원이 조밀해졌다고 하여 밀집 벡터(Dense Vector)라고 함
4. 워드 임베딩(Word Embedding)
- 단어를 밀집 벡터로 표현하는 것
- 임베딩 벡터(Embedding Vector): 밀집 벡터를 워드 임베딩 과정을 통해 나온 결과
5. 워드투벡터(Word2Vec)
- 단어 벡터 간 유의미한 유사도를 반영할 수 있도록 단어의 의미를 수치화 하는 방법
- 분산 표현(Distributed Representation): 분포 가설이라는 가정 하에 만들어진 표현 방법으로,
가정은 "비슷한 문맥에서 등장하는 단어들은 비슷한 의미를 가진다" - 단어의 의미를 여러 차원에다가 분산하여 표현하는 것으로 단어 벡터간 유의미한 유사도 계산가능
- Word2Vec 학습방식은 CBOW와 Skip-Gram 방식이 있음
6. CBOW(Continuous Bag of Words)
- 주변에 있는 단어들을 입력으로 중간에 있는 단어 예측
The fat cat sat on the mat
['The', 'fat', 'cat', 'on', 'the', 'mat'] 에서 CBOW는 'sat'을 예측
이 때 예측해야 하는 단어 sat이 중심단어(center word), 예측에 사용되는 단어들을 주변단어(context word)라 함.
- 윈도우(window): 중심단어를 예측하기 위해 앞, 뒤로 몇 개의 단어를 볼지 결정해야 하는데 이 때의 범위
윈도우 크기가 n이라면 실제 중심 단어를 예측하기 위해 참고하려고 하는 주변단어의 개수는 2n - 슬라이딩 윈도우(sliding window): 윈도우를 옆으로 움직여서 주변 단어와 중심 단어의 선택을 변경해가며
학습을 위하는 데이터 셋을 만드는 것


- Input layer: 윈도우 크기 범위 안에 있는 주변 단어들의 one-hot-vector
- Output layer: 예측하고자 하는 중간 단어의 one-hot-vector
- Hidden Layer가 1개인 얕은 신경망으로 활성화 함수가 존재하지 않고
룩업 테이블이라는 연산을 담당하는 층으로 투사층(projection layer)라고 부르기도 함
7. Skip-gram:
- 중간에 있는 단어들을 입력으로 주변 단어 예측
The fat cat sat on the mat


- 중심 단어에 대해서 주변 단어를 예측하므로 투사층에서 벡터들의 평균을 구하는 과정이 없음
- 전반적으로 CBOW보다 Skip-gram이 성능이 더 좋음
8. NNLM vs Word2Vec

728x90
'DeepLearning > NLP' 카테고리의 다른 글
| [NLP] Drain3 - Python (0) | 2025.02.19 |
|---|---|
| [NLP] 텍스트 데이터 전처리 - Log Template (3) | 2025.01.13 |
| [NLP] Transformer - BERT (4) | 2025.01.11 |
| [NLP] Encoder-Decoder와 Attention (5) | 2025.01.06 |
| [NLP] 텍스트 데이터 전처리 (3) | 2025.01.05 |
