계층적 Softmax (N=OlogN), 네거티브 샘플링 (로지스틱 회귀분석), CBOW, Skip-gram, PMI지수, Query-Graph
1. 단어 수준 임베딩 모델 : 단어를 백터화, 단어 간의 유사도 측정
- 예측 기반 : NPLM, Word2Vec, FastText 등
- 행렬분해 기반 : LSA, GloVe, Swivel 등
2. 문장 수준 임베딩 모델 : 문서(문장)을 벡터화, 문서 간의 유사도 측정
- 확률 기반 : LDA
- 행렬분해 기반 : LSA
- 뉴럴네트워크 기반 : Doc2Vec, ELMo, GPT, BERT
가장 근본적인 언어 모델은 n-gram 모델 입니다. n 그램은 연속되는 n 단어의 덩어리입니다. 예를 들어, "나는 ...을 쓰고있다"라는 문장이 주어진다면, 여기에 각각의 n-gram이있다.
- unigrams : "나", "오전," "글쓰기", "
- bigrams : "나는있다", " 쓰다 ", " 쓰다 "
- trigrams : "나는 쓰고있어." "쓰고있어."
- 4 그램 : "나는"
n-gram 언어 모델링의 기본 아이디어는 얼마나 자주 다른 n-gram이 나타나는지에 대한 통계를 수집하고이를 사용하여 다음 단어를 예측하는 것입니다. 그러나 n-gram 언어 모델은 코퍼스에서 언어를 정확하게 모델링하기에 충분한 데이터를 관찰하지 않는 희소성 문제가 있습니다 (특히 n이 증가 할 때).
신경 확률 론적 언어 모델의 네트워크 아키텍처 개요
출처 : https://medium.com/@Synced/language-model-a-survey-of-the-state-of-the-art-technology-64d1a2e5a466
n-gram 접근 방식 대신 피드 - 포워드 (feed-forward) 신경 확률 론적 언어 모델 및 반복적 인 신경망 언어 모델 과 같은 창 기반 신경 언어 모델을 시도 할 수 있습니다 . 이 접근법은 단어를 벡터로 표현하고 (단어 임베딩) 신경 언어 모델의 입력으로 사용하여 데이터 희소성 문제를 해결합니다. 매개 변수는 교육 과정의 일부로 학습됩니다. 신경 언어 모델을 통해 얻어진 워드 임베딩은 속성을 나타내며, 이로써 의미 론적으로 가까운 단어가 유도 된 벡터 공간에서 비슷하게 닫힙니다. 또한 반복적 인 신경 언어 모델은 문장 수준, 코퍼스 수준 및 하위 단어 수준에서 상황 정보를 캡처 할 수 있습니다.
word2vec 은 2013년 Mikolov 등 구글 엔지니어들이 제안한 자연어처리 방식으로 단어를 vector space에 embedding 하고 벡터로 단어를 표현하는 것입니다 이 방식을 통해 자연어 처리 분야에서 비약적인 정밀도 향상을 가능하게 하였습니다 word2vec의 알고리즘은 Neural Network에 같이 출연하는 단어들을 의미상 연관된 단어라고 가정하고 vector space 에서 두 단어 사이의 거리를 점차 줄이는 알고리즘입니다
https://brunch.co.kr/@mobiinside/950
( https://ratsgo.github.io/natural%20language%20processing/2017/08/16/deepNLP/
Example of distributional vectors of words.
https://tryolabs.com/blog/2017/12/12/deep-learning-for-nlp-advancements-and-trends-in-2017/
Word2vec Skip-gram model
( https://towardsdatascience.com/using-word2vec-for-music-recommendations-bb9649ac2484
- One-hot representation : 단어 수 만큼의 크기를 갖는 벡터에 각 단어를 구별하는 하나의 1로 표현. 단어 간의 의미 관계를 표현할 수 없음
- Cooccurence matrix : 단어가 같이 나오는 수를 카운트. SVD로 차원 축소
- word2Vec
Directly learn low-dimensional word vectors
한 단어의 주변에 나올 단어를 예측
주어진 단어의 context word의 확률이 최대가 되도록 학습
- GloVe : Count based 알고리즘과 direct prediction 알고리즘의 융합판
one hot encoding 시 vector size가 매우 크고 sparse 하므로 neural net 성능이 잘 나오지 않는다.
"주위 단어가 비슷하면 해당 단어의 의미는 유사하다" 라는 아이디어
단어를 트레이닝 시킬 때 주위 단어를 label로 매치하여 최적화
단어를 "의미를 내포한 dense vector"로 매칭 시키는 것이 목표!
embeddings
dataset으로 구성된 words를 Multi-layer perceptron을 이용하여 학습
input layer의 weight에 해당하는 Matrix가 학습이 완료되면 embeddings(vector dictionary) 완성
http://nbviewer.jupyter.org/format/slides/gist/leechanwoo/c104702c7f1cbaf10e4188b88b2080ff#/3
[개념] 단어벡터 기반 문맥학습, 연관성 학습, 추론, 예측 수행하는 인공신경망 기반 워드 임베딩 기법 (비지도학습 수행)
[구성] 입력층 - (Projection Layer) - 출력층
[기술] 계층적 Softmax, Negative Sampling
[모델학습] CBOW (문장 내 단어 유추), Skip-gram(단어를 통한 문장 유추)
[유사도 측정] PMI지수, Query-Graph, Centrality, 유사도 행렬, 중요도 평가
# Word Embeddings as a Vector
Vector Representation을 통한 추론의 예시.
# How to Train Word Vectors?
NNLM Structure
RNNLM Structure
CBOW Architecture
Skip-gram Architecture
– Hierarchical Softmax
Example Binary Tree for Hierarchical Softmax
'07.AI' 카테고리의 다른 글
인공지능을 이용한 3D 콘텐츠 기술 동향 및 향후 전망 (0) | 2020.06.08 |
---|---|
향후 10년 AI 투명성의 위험을 완화하는 방법 (0) | 2020.05.29 |
2020 글로벌 AI 클러스터 (0) | 2020.05.29 |
워드 임베딩 (구글) (0) | 2020.05.29 |
추천 시스템 - 가짜뉴스 (Fake News) (0) | 2020.05.26 |