일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Python
- ggplot
- R프로그래밍
- lstm
- 데이터처리
- AI
- 데이터시각화
- 하둡
- 데이터
- word2vec
- 기계학습
- SQL
- 데이터분석
- 머신러닝
- CNN
- 그래프
- pandas
- 자연어처리
- R시각화
- r
- R그래프
- Hadoop
- 그래프시각화
- Deeplearning
- 딥러닝
- 주가예측
- HIVE
- NLP
- 빅데이터
- 빅데이터처리
- Today
- Total
욱이의 냉철한 공부
[NLP 개념정리] Word Embedding : NNLM 본문
* 자료출저 및 참고논문
- 강의
Coursera, Andrew Ng 교수님 인터넷 강의
- 논문
NPLM : A Neural Probabilistic Language Model
* Word Representation 분류체계
1. Discrete Representation : Local Representation
1) One - hot Vector
- One - hot Vector
2) Count Based
- Bag of Words (BoW)
- Document-Term Matrix (DTM)
- (TDM)
- Term Frequency-Inverse Document Frequency (TF - IDF)
- N-gram Language Model (N-gram)
2. Continuous Representation
1) Prediction Based (Distributed Representation)
- Neural Network Language Model (NNLM) or Neural Probabilistic Language Model (NPLM)
- Word2Vec
- FastText
- Embedding from Language Model (ELMo) (Bidirecional Language Model (biLM) 활용)
2) CountBased (Full Document)
- Latent Semantic Analysis (LSA)) <-DTM
3) Prediction Based and CountBased (Windows)
- GloVe
*
Discrete Representation은 값 그 자체를 표현, 정수로 표현된 이산표현
Continuous Representation은 관계, 속성의미를 내포하여 표현, 실수로 표현된 연속표현
* 목차
NPLM, Word2Vec
1. Neural Probabilistic Language Model (NPLM) or Neural Network Langugage Model (NNLM)
1) NPLM 모델링 과정
2) NPLM 이점
3) NPLM 문제점
1) NPLM 모델링
1) 입력층(Input layer)
- 차원 이해
x1 : (4 X 10000)) (원핫인코딩(단어수))
- 보충 설명
10000개 중에 1개만 1이고 나머지는 0인 원핫인코딩된 입력값.
2) 입력층 (Input layer) -> 투사층 (Projection layer)
- 차원 이해
가중치 매트릭스 E (w1,b1) : (10000) X (300) (원핫인코딩(단어수) X (노드수(관계피쳐))
- 내적 후 차원
Lookup테이블 e (z1) : z1 = x1 * w1 + b1
: (1 X 1200)(Concatenate) <= (4 X 300) = (4 X 10000) X (10000 X 300)
- 보충설명
가중치 매트릭스(E)에서필요한 열[a, glass, of, orange]과,One-hot-encoding된 Matrix(O)와 내적(참조, lookup)을 통해 Lookup 테이블 (e : embedding vector) 를 도출
가중치 매트릭스(E)와 Lookup 테이블 (e : embedding vector)를 학습을 통해 도출하는 것이 중요.
* One-hot-encoding된 Matrix(O1)를 사용하지 않는 이유 2가지
첫째, 벡터값 1, 0이 내적하면 0이 됨, 이것은 단어들 사이의깊은 관계(유의어, 반의어, 상위어 등)찾을 수 없음
둘째, One-hot-encoding Matrix는 sparse한 벡터, 즉 이것을 빽빽한 dense 벡터로 변환해야 함.
* 투사층 (Projection layer)
활성화 함수가 존재하지 않는 선형층(linear layer)
3) 투사층 (Projection layer) -> 은닉층 (Hidden layer)
- 차원 이해
(w2,b2) : (1200 X w2)
- 내적 후 차원
z2 = z1 * w2 + b2 : (1 X w2) = (1 X 1200) X (1200 X w2 )
* 은닉층 (Hidden layer)
활성화 함수가 존재하는 비선형층(nonlinear layer)
4) 은닉층 (Hidden layer) -> 출력층 (Output layer)
- 차원 이해
(w3,b3) : (w2 X 10000)
- 내적 후 차원
z3 = z2 * w3 + b3 : (1 X 10000) = (1 X w2) X (w2 X 10000 )
5) 출력층(Output layer)
- 차원 이해
예측 Y = softmax(z3) : 10000
- 보충 설명
예측 Y 값은 최종 출력값이며 0과 1사이의 실수이고, 10000개의 각 원소의 총 합은 1이 된다.
이렇게 나온 최종 출력값, 벡터는 스코어 값이라고 명칭한다.
- softmax식
* 이해 필요
6) 학습 최적화 : 손실함수(loss function) 계산
- L(예측값, 실제값)
이 손실함수를 줄이는 방향으로 역전파 실시
더불어 최적의 가중치 매트릭스(E)를 도출하는 방향으로 학습 진행
2) NPLM 목적 및 이점
- 목적
충분한 양의 훈련 코퍼스를 학습한다면 수많은 문장에서 유사한 목적으로 사용되는 단어들의 관계(유사성)을 찾게됨
이것을 피쳐를 통한 임베딩 벡터값으로 표현
이런 훈련과정 후 다음 단어를 예측하는데 있어 훈련 코퍼스에서 없던 단어 시퀀스라고 하더라도 선택 가능하게 됨.
- 이점 : sparse vector -> dense vector
NPLM은 밀집 벡터(dense vector)를 사용하면서 단어의 유사도를 표현.
원 핫 벡터의 고차원 더불어 희소문제(sparsity problem)을 해결.
이 것은 저차원으로 저장공간도 해결, N-gram에서 겪었던 공간문제(모든 그램 저장)도 해결
3) NPLM 문제점
1. NPLM은 업데이트 할 파라미터들 매우 많음. 그렇기에 계산복잡성 큼
=> Word2Vec으로 해결
2. N-gram과 마찬가지로, 정해진 n개의 단어만 참고함. 그렇기에 버려지는 단어들의 문맥정보 참고 못함
=> RNNLM(Recurrent Neural Network Language Model)로 해결
* 나의생각
개인적으로, 딥러닝은 차원이해가 가장 중요하다고 생각합니다.
즉 피쳐변화의 이해입니다.
구체적으로 어떻게 일반화되는 피쳐가 추출되는건지, 고수준 및 유의미한 피쳐를 추출하고 있는지, 피쳐들이 sparse 한지 dense 하는지, 이런 부분을 가장 깊게 이해해야 합니다.
금융데이터를 다룰 제 연구를 위해서도 이 부분이 가장 중요하다고 생각합니다.
(신속하게 공부하여, 많은 인사이트를 찾겠습니다.)
그러므로 차원이해 위주의 Word2Vec을 포스팅하겠습니다.
=> 핵심은 결국 가중치 매트릭스(E)
=> 각 layer의 차원 이해 필요
그나저나 앤드류님의 행, 열하고, 다른 논문들에서의 행, 열하고 다른 것 같아 헷갈림..
다 똑같이 표기해주세요 ㅜ
가중치매트릭스에서 단어수가 행으로 갑니까 열로 갑니까..?
전 W1(가중치매트릭스)에서 단어(10000개)를 행으로 표기하고, 유사성을 알아낼 관계피쳐(300)를 열로 갑니다.
'데이터과학 > 개념 : NLP' 카테고리의 다른 글
[NLP 개념정리] 이해하기 쉬운 분류체계 (0) | 2020.04.16 |
---|---|
[NLP 개념정리] Word Representation : 카운트 기반 단어표현 (0) | 2020.04.16 |
[NLP 개념정리] Word Embedding : GloVe (0) | 2020.04.16 |
[NLP 개념정리] Word Embedding : Word2Vec (0) | 2020.04.16 |
[NLP 개념정리] Word Embedding 개요 (0) | 2020.04.16 |