Как программа word2vec или skip-gram преобразует слова в вектор?

Я читал много статей о НЛП и наткнулся на многие модели. Я получил модель SVD и представляю ее в 2-D, но я до сих пор не понял, как сделать вектор-слово, предоставив корпус модели word2vec/skip-gram? Является ли это также матричным представлением для каждого слова? Не могли бы вы объяснить это, взяв пример corpus:

Hello, my name is John.
John works in Google.
Google has the best search engine. 

В принципе, как пропустить грамм конвертировать John в вектор?

Ответы

Ответ 1

Думаю, вам нужно будет прочитать статью о процессе обучения. В основном значения векторов представляют собой значения node обученной нейронной сети.

Я попытался прочитать оригинальную бумагу, но я думаю, что документ Более подробное объяснение объясняется объяснением "word2vec Parameter Learning Explained" от Xin Rong.

Ответ 2

Основная концепция легко понять с помощью примера Autoencoding с нейронными сетями. Вы тренируете нейронную сеть для передачи информации из входного слоя на выходной уровень через средний слой, который меньше.

В традиционном автоматическом кодировщике у вас есть вектор ввода размера N, средний слой длины M < N и выходной уровень, снова размер N. Вы хотите, чтобы только один блок был включен во время ввода и вы тренируете сеть для репликации на выходном уровне того же блока, который включен во входном слое.

После того, как обучение завершится успешно, вы увидите, что нейронная сеть, чтобы переносить информацию из входного уровня на выходной уровень, адаптировалась таким образом, чтобы каждый входной блок имел соответствующее векторное представление в среднем слое.

Упрощение бит в контексте word2vec ваши входные и выходные векторы работают более или менее одинаково, за исключением того факта, что в образце, который вы отправляете в сеть, устройство, включенное во входном слое, отличается от блок включен в выходном слое.
Фактически вы тренируете сеть, собирающую пары близлежащих (не обязательно смежных) слов из вашего корпуса и отправляя их в сеть.
Размер входного и выходного вектора равен размеру словаря, который вы подаете в сеть.
У вашего входного вектора включен только один блок (тот, который соответствует первому слову выбранной пары), выходной вектор имеет один включенный блок (тот, который соответствует второму слову выбранной пары).

Ответ 3

Для нынешних читателей, которые могут также задаваться вопросом "что означает вектор слова точно означает", как тогда было OP: Как описано в http://cs224d.stanford.edu/lecture_notes/LectureNotes1.pdf, вектор слова имеет размерность n, а n "- произвольный размер, определяющий размер нашего пространства внедрения." Иными словами, этот вектор слова не означает ничего конкретно. Это просто абстрактное представление определенных качеств, которые могут иметь это слово, которые мы можем использовать для различения слов.

Фактически, чтобы непосредственно ответить на исходный вопрос "как преобразовать слово в векторное представление", значения векторного вложения для слова обычно обычно рандомизированы при инициализации и улучшены итерационно-на-итерации.

Это обычное явление в глубоком обучении/нейронных сетях, где люди, которые сами создали сеть, обычно не имеют представления о том, что именно означают ценности. Предполагается, что сама сеть будет определять значения постепенно, через обучение. Они просто абстрактно представляют что-то и различают вещи. Например, AlphaGo, где команда DeepMind не сможет объяснить, что означает каждое значение в векторе. Он просто работает.