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 에서 두 단어 사이의 거리를 점차 줄이는 알고리즘입니다