Как работает word2vec, чтобы найти сходство предложений? - PullRequest
0 голосов
/ 25 января 2019

Я использую word2vec / doc2vec, чтобы найти сходство текста двух документов. Я изучал, что word2vec работает на двух подходах:

  • CBOW: который предсказывает слова на основе контекста
  • Skipgram: который предсказывает контекст на основе слова

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

1 Ответ

0 голосов
/ 25 января 2019

Векторы слов просто моделируют отдельные слова.

Но затем вы можете использовать эти векторы для каждого слова для создания векторов для больших текстов или для расчетов подобия между большими текстами.

Простой способ превратить текст в один вектор фиксированной ширины - это усреднить векторы слов для всех слов текста. (Это также может быть средневзвешенное значение, основанное на некоторых представлениях о важности отдельных слов.) Этот вид текстового вектора часто может хорошо работать как быстрая и простая базовая линия. Для двух текстов косинусное сходство двух векторов средних значений всех их слов представляет собой сходство двух текстов.

Алгоритм, подобный Doc2Vec (он же «Вектор абзаца»), является альтернативным способом получения вектора для текста. Он не объединяет строго слова-векторы, а использует процесс, подобный тому, который используется для создания слов-слов для создания текстовых векторов.

Если просто работать с слово-векторами, другой вариант для схожести текста с текстом - это «Расстояние для Word Mover» (ОМУ). Вместо усреднения всех векторов слов вместе, чтобы создать единый вектор для текста, мера ОМУ обрабатывает все слова текста как "груды значения" в их координатах различных слов. Расстояние между текстами - это то, сколько усилий требуется, чтобы «переместить» массу слов-векторов одного текста в слово-вектор другого. Это дорого (поскольку каждый такой попарный расчет представляет собой проблему оптимизации среди многих возможных сдвигов в словах), но сохраняет немного больше различий, чем просто свертывание текста в один итоговый вектор.

...