Чем отличаются модели doc2vec, если для dbow_words установлено значение 1 или 0?

Я читаю эту страницу, но я не понимаю, чем отличаются модели, построенные на основе следующих кодов. Я знаю, что когда dbow_words равен 0, обучение doc-векторов происходит быстрее.

Первая модель

model = doc2vec.Doc2Vec(documents1, size = 100, window = 300, min_count = 10, workers=4)

Вторая модель

model = doc2vec.Doc2Vec(documents1, size = 100, window = 300, min_count = 10, workers=4,dbow_words=1)

1 ответ

Решение

dbow_words параметр действует только при обучении модели DBOW, то есть с нестандартным значением dm=0 параметр.

Итак, между вашими двумя примерами строк кода, которые оба оставляют значение по умолчанию dm=1 значение не изменилось, разницы нет.

Если вы вместо этого переключитесь на тренировку DBOW, dm=0 то с дефолтом dbow_words=0 В этом случае модель представляет собой чистый PV-DBOW, как описано в оригинальной статье "Векторы абзацев". Векторы Doc обучаются предсказывать слова в тексте, но векторы не обучаются. (В модели все еще будут присутствовать произвольно инициализированные векторы слов, но они не используются или не улучшаются во время обучения.) Этот режим быстрый и все еще работает довольно хорошо.

Если вы добавите dbow_words=1 настройку, то пропущенная тренировка слова-вектора будет добавлена ​​к обучению чередующимся образом. (Для каждого примера текста будут обучаться оба вектора документа по всему тексту, а затем векторы слова по каждому скользящему контекстному окну.) Поскольку это добавляет больше обучающих примеров, как функцию от window Параметр будет значительно медленнее. (Например, с window=5 добавление словосочетания сделает обучение примерно в 5 раз медленнее.)

Это дает преимущество, заключающееся в том, что оба документа doc-векторы и слова-векторы помещаются в "одно и то же пространство", что делает их более понятными благодаря их близости к словам.

Это смешанное обучение может служить своего рода расширением корпуса - превращением каждого контекстного окна в мини-документ - что помогает улучшить выразительность получающихся встраиваемых векторов документов. (Хотя, особенно с достаточно большими и разнообразными наборами документов, возможно, стоит сравнить с чистым DBOW с большим количеством проходов.)

Другие вопросы по тегам