Вы можете узнать больше в публикации Томас Миколов , где он вводит векторное встраивание под названием Word2Vec.
Идея, лежащая в основе вложения, заключается в сжатии разреженного вектора в низкоразмерный плотный вектор. Давайте рассмотрим словарь из 100 тысяч слов. Каждое слово может быть представлено как вектор размером 100000 со всеми 0 и одним 1 в зависимости от положения / индекса слова. Представление слова непосредственно по его индексу не эффективно (рассмотрите порядок или математические операции над идексами). Но большие разреженные векторы не очень подходят для работы в контексте NN. Вложения пытаются инкапсулировать слова в непрерывное пространство меньшего размера, скажем, k = 100, где похожие слова будут иметь меньшее расстояние между собой. Миколов привык определять сходство тем, как часто слова появляются рядом друг с другом. Миколов обучил / настроил матрицу вложения E таким образом, что E (i) * E (j) примерно представляло бы вероятность появления слов i и j рядом. Более поздние публикации показали, что вы можете достичь аналогичных результатов путем случайной инициализации уровня встраивания в многоуровневую сеть, и после обучения встраивания представляли бы своего рода сходство .
Грубо говоря: NN случайным образом проецирует каждый индекс в некоторую точку в низкоразмерном пространстве. Во время тренировок с обратным распространением эти проекции организованы в виде нечеткой структуры, полезной для поставленной задачи.
Index Sparse N=6 -> Embedding K=3
----------------------------------------
0 [1 0 0 0 0 0] [0.425 0.233 0.556]
1 [0 1 0 0 0 0] [0.046 0.975 0.058]
2 [0 0 1 0 0 0] [0.306 0.424 0.651]
3 [0 0 0 1 0 0] [0.293 0.12 0.546]
4 [0 0 0 0 1 0] [0.236 0.657 0.046]
5 [0 0 0 0 0 1] [0.907 0.321 0.882]