Чем отличаются модели 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 с большим количеством проходов.)