논문 본문 링크↓
단어의 개념 위주로 작성을 하겠습니다.
1. Introduction
N-gram모델
단어를 분해하는 방법 중 하나
문자열을 N개의 길이를 기준 단위로 절단하는 방법
통계적 언어 모델(SLM, Statistical Language Model)의 일종
이전에 등장한 모든 단어를 고려하는 것이 아니라 일부 단어만 고려하는 접근 방법을 사용
충분한 데이터를 관측하지 못하면 언어를 정확히 모델링하지 못하는 희소 문제(sparsity problem)
자동 음성 인식 등 많은 작업에서 한계를 갖는다
2. Model Architecture
# 계산복잡도
O = E × T × Q
training epochs의 수
training set의 단어 수
모델에 따라 다름
만약이 언어 모델 또한 단어의 유사도를 학습할 수 있도록 설계한다면, 훈련 코퍼스에 없는 단어 시퀀스에 대한 예측이라도 유사한 단어가 사용된 단어 시퀀스를 참고하여 보다 정확한 예측을 할 수 있을 겁니다. 그리고 이런 아이디어를 가지고 탄생한 언어 모델이 신경망 언어 모델 NNLM입니다. 그리고 이 아이디어는 단어 간 유사도를 반영한 벡터를 만드는 워드 임베딩(word embedding)의 아이디어이기도 합니다. [출처] https://wikidocs.net/21692
NNLM(Neural Network Language Model)
[참고자료] wikidocs.net/45609
위키독스
온라인 책을 제작 공유하는 플랫폼 서비스
wikidocs.net
[N-gram 에서의 개선점]
NNLM은 단어의 유사도를 단어를 표현하기 위해 밀집 벡터(dense vector)를 사용
→ 단어의 유사도 표현 가능
→ 희소문제 해결(sparsity problem)
# 밀집 벡터 : 벡터의 원소들이 실수값을 가지면서, 원-핫 벡터보다 저차원을 가지는 벡터
# 원-핫 벡터 : 벡터의 원소값이 대부분이 0이란 의미에서 희소 벡터(sparse vector)라고 부름
더 이상 모든 n-gram을 저장하지 않아도 됨 → n-gram 언어 모델보다 저장 공간의 이점
[한계]
고정된 길이의 입력(Fixed-length input)
n-gram과 마찬가지로 다음 단어를 예측하기 위해 정해진 n개의 단어만을 참고 → 버려지는 단어들이 가진 문맥 정보는 참고할 수 없음을 의미
많은 시간이 소요됨(느림)
RNNLM(Recurrent Neural Network Language Model)
Projection Layer 없이 Input Layer, Hidden Layer, Output Layer로만 구성됨
NNLM과 달리 몊개의 단어인지에 대해 정해줄 필요 없음입력의 길이를 고정하지 않을 수 있음시점(time step)이라는 개념이 도입된 RNN
teacher forcing(교사 강요)
▶테스트 과정에서 t 시점의 출력이 t+1 시점의 입력으로 사용되는 RNN 모델을 훈련시킬 때 사용하는 훈련 기법
▶훈련할 때 교사 강요를 사용할 경우, 모델이 t 시점에서 예측한 값을 t+1 시점에 입력으로 사용하지 않고, t 시점의 레이블. 즉, 실제 알고있는 정답을 t+1 시점의 입력으로 사용
▶훈련 과정에서 이전 시점의 출력을 다음 시점의 입력으로 사용하면서 훈련시킬 수도 있지만 이는 한번 잘못 예측하면 뒤의 예측에도 영향을 미펴 훈련시간이 느려짐 →교사강요를 사용하여 빠르게 훈련
3. New Log-linear Model
위키독스
온라인 책을 제작 공유하는 플랫폼 서비스
wikidocs.net
"비슷한 분포를 가진 단어라면 비슷한 의미를 가질 것이다."
word2vec의 알고리즘은 지도 학습을 닮았지만 사실은 비지도 학습(unsupervised learning) 알고리즘이다. 어떤 단어와 어떤 단어가 비슷한지 사람이 알려주지 않아도 word2vec은 비슷한 단어들을 찾아낼 수 있다. 비지도 학습의 장점은 정답지가 필요 없다는 것이다. [출처]쉽게 씌어진 word2vec / dreamgonfly.github.io/blog/word2vec-explained/#%EC%95%84%EC%9D%B4%EB%94%94%EC%96%B4
CBOW(Continuous Bag-of-Words Model)
맥락으로 단어를 예측
# 윈도우(window) : 중심 단어를 예측하기 위해서 앞, 뒤로 몇 개의 단어를 볼지를 결정하고 이 범위를 말함
주어진 단어에 대해 앞뒤로 몇개의 단어를 Input으로 사용하여 주어진 단어를 유추하는 모델
Input(one-hot encoding사용) →여러 개의 단어를 각각 projection → 그 벡터들의 평균을 구해서 hidden Layer→ 여기에 Weight Matrix 곱함 → Output Layer → softmax 계산→ 이 결과를 진짜 단어의 one-hot encoding과 비교하여 에러를 계산
Continuous Skip-gram Model
단어로 맥락을 예측
주변 단어, 다른 말로 맥락(context)으로 타겟 단어(target word)를 예측
CBOW와 마찬가지로 input(one-hot encoding 방식) → Hidden layer → softmax함수를 사용 → output layer
'데이터분석' 카테고리의 다른 글
[논문리뷰]Attention_Neural Machine Translation by Jointly Learning to Align and Translate (0) | 2021.04.08 |
---|---|
[논문리뷰]LSTM (0) | 2021.04.01 |