728x90
반응형
계층적 Softmax (N=OlogN), 네거티브 샘플링 (로지스틱 회귀분석), CBOW, Skip-gram, PMI지수, Query-Graph

[개념] 단어벡터 기반 문맥학습, 연관성 학습, 추론, 예측 수행하는 인공신경망 기반 워드 임베딩 기법 (비지도학습 수행)
[구성] 입력층 - (Projection Layer) - 출력층
[기술] 계층적 Softmax, Negative Sampling
[모델학습] CBOW (문장 내 단어 유추), Skip-gram(단어를 통한 문장 유추)
[유사도 측정] PMI지수, Query-Graph, Centrality, 유사도 행렬, 중요도 평가
 
 
단어 임베딩 기법으로 문맥 단어들을 기반으로 단어들을 예측
CBOW와 Skip-gram 두가지 방법을 제시
CBOW는 문맥에서 하나의 단어를 주변 단어를 통해 예측하는 방법
Skip-gram은 CBOW의 방법을 역전시킨 방법으로 하나의 단어가 주어지면 그 주변의 단어를 예측하는 방법
 
가장 근본적인 언어 모델은 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 에서 두 단어 사이의 거리를 점차 줄이는 알고리즘입니다

- 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) 완성
 
 
 
 

 

 
728x90
Posted by Mr. Slumber
,