단어 벡터의 작동 원리는 무엇입니까?
자연어를 기계 학습 알고리즘에 넘기기 위해서는 보통 먼저 언어를 수학화해야 한다. 단어 벡터는 언어의 단어를 수학화하는 방법이다. 가장 간단한 단어 벡터 방법 중 하나는 one-hotrepresentation 입니다. 즉, 단어는 긴 벡터로 표현되고 벡터 길이는 사전의 크기입니다. 벡터의 구성요소는 1 의 한 위치 쌍만 있고 나머지는 모두 0, 1 입니다. 그러나 이 단어 벡터는 두 가지 단점이 있음을 나타냅니다. 즉, 차원 재해에 취약합니다. 특히 심도 있는 학습의 일부 알고리즘에서 사용되는 경우 더욱 그렇습니다. 어휘와 단어 사이의 유사성을 잘 묘사할 수 없다. (이 용어는' 어휘결원' 이라고 부르는 것 같다.) 또 다른 하나는 당신이 말한 분산 표현 (DistributedRepresentation) 의 표현으로, 1986 에서 Hinton 이 처음 제기한 것으로, one-hotrepresentation 의 이러한 단점을 극복할 수 있습니다. 그 기본 사상은 한 언어의 각 단어를 훈련을 통해 고정 길이의 짧은 벡터 (물론 여기서' 짧은' 은 one-hotrepresentation 에 상대적인' 긴') 에 매핑하고, 이 벡터를 모두 함께 모아 단어 벡터 공간을 형성하는 것이다. 각 벡터는 이 공간의 한 점으로 볼 수 있다 이 공간에' 거리' 를 도입하면 단어의 거리에 따라 단어를 판단할 수 있다. 위의 아이디어를 더 잘 이해하기 위해 일반적인 예를 들어 보겠습니다. 2 차원 평면에 N 개의 다른 점이 분포되어 있고 그 중 하나가 주어진다고 가정해 보겠습니다. 이제 평면에서 이 점에 가장 가까운 점을 찾고 싶습니다. 우리는 어떻게 할까요? 먼저 각 점이 고유한 좌표 (x, y) 에 해당하는 직각 좌표계를 설정합니다. 그런 다음 유클리드 거리를 도입하십시오. 마지막으로 이 단어가 다른 N- 1 단어와의 거리를 별도로 계산하는데, 거리값이 가장 작은 단어가 바로 우리가 찾고자 하는 단어이다. 위 예에서 좌표 (X, Y) 의 위치는 벡터라는 단어와 같으며 벡터는 평면의 점 위치를 수학적으로 수량화하는 데 사용됩니다. 좌표계가 설정되면 한 점의 좌표를 쉽게 얻을 수 있습니다. 그러나 NLP 임무에서는 단어 벡터를 얻는 것이 훨씬 복잡하며 단어 벡터는 고유하지 않습니다. 그 품질은 훈련 어료, 훈련 알고리즘 및 단어 벡터의 길이에 따라 달라집니다. 단어 벡터를 생성하는 한 가지 방법은 신경망 알고리즘을 사용하는 것입니다. 물론, 단어 벡터는 일반적으로 언어 모델과 함께 묶여 있습니다. 즉, 훈련 후 동시에 얻을 수 있습니다. 신경망을 이용하여 언어 모델을 훈련시키는 아이디어는 먼저 바이두 IDL (심도학습연구소) 의 허위가 제시한 것이다. 이와 관련하여 가장 고전적인 문장 중 하나는 2003 년 Bengio 가 JMLR 에 발표한 Aneuralprobibilistic Language Model 이며, 이후 Google TomasMikolov 팀의 word2vec 을 포함한 일련의 관련 연구 저서가 있습니다.