
통계기반기법 문제점
- 대규모 말뭉치 다루기 힘들다. 단어 수가 100만개라면 100만x100만 크기의 행렬 만들어야 함
- 말뭉치 전체의 통계를 이용해 단 1번의 처리만으로 분산 표현을 얻어서 말뭉치가 크면 눈물만..
추론기반기법

통계 기반 기법처럼 "단어의 의미는 주변 단어에 의해 형성된다"는 분포 가설에 기초.
"단어의 동시발생 가능성"을 얼마나 잘 모델링하는가가 중요한 연구 주제.
통계기반기법 | 추론기반기법 |
1번 학습 | 미니배치로 학습 |
새로운 단어 넣으면 처음부터 다시 학습 | 새로운 단어 넣어도 기존 가중치를 초깃값으로 학습하면 됨. |
분산 표현의 성격 / 정밀도는 비슷 |
|
둘을 융합한 GloVe 기법! |
CBOW 모델
맥락을 보고 target 추측

맥락에 포함시킬 단어 n개 = 입력층 개수 n개
입력으로 맥락을 받고 > 원핫 벡터로 변환 > 결과 score를 softmax층으로 > 최종 출력값 확률
CBOW 학습

입력측 가중치는 행방향, 출력측 가중치는 열방향으로 저장.
최종적으로 사용하는 단어의 분산 표현은 W_in을 가장 많이 쓰지만 선택지는 여러개!
1. 입력 측 가중치만
2. 출력 측 가중치만
3. 양쪽 가중치 모두

context 는 (6, 2, 7)의 3차원 배열 > 6은 미니배치 수, 2는 contex의 윈도우 사이즈, 7은 원핫벡터
target은 (6, 7) > 6이 미니배치 수, 7은 원핫벡터
학습 결과로 W_in과 W_out(가중치)에 단어의 출현 패턴을 파악한 벡터가 학습됨
skip-gram 모델
CBOW에서 봤던 맥락이랑 타겟의 역할을 반대로 생각하면 됨.
target이 주어졌을 때 맥락이 뭔지 맞춤. > input이 1개고 output이 여러개

확률로 보면

W_i는 말뭉치 안에 있는 단어들, W_t는 target이고 W_t-1, W_t+1는 context라고 했을 때
context가 주어졌을 때 target이 W_t가 될 확률은 조건부 확률로 나타낼 수 있음

위의 식을 이용해서 교차 엔트로피 오차 식도 쉽게 표현할 수 있음.



skip-gram의 경우는 조건부확률 식을 반대로 쓰면 되고, loss는 두번째 사진처럼 구하면 됨



CBOW | skip-gram |
학습 속도 빠름 | 학습 속도 느림 |
단어 분산 표현 정밀도 bad | 단어 분산 표현 정밀도 good |
skip-gram을 사용하자! |

'NLP > 밑바닥부터 시작하는 딥러닝2' 카테고리의 다른 글
5장 RNN (0) | 2021.04.16 |
---|---|
4장 word2vec 속도 개선 (0) | 2021.04.13 |
2장 자연어&단어 분산 표현 (0) | 2021.02.22 |
1장 신경망 복습 (0) | 2021.02.21 |