Ответ 1
Вот мое упрощенное и довольно наивное понимание разницы:
Как мы знаем, CBOW учится предсказывать слова по контексту. Или максимизируйте вероятность целевого слова, глядя на контекст. И это бывает проблемой для редких слов. Например, учитывая, что yesterday was a really [...] day
контекст yesterday was a really [...] day
дневным, модель CBOW скажет вам, что, скорее всего, это beautiful
или nice
слово. Такие слова, как delightful
, получат гораздо меньше внимания модели, потому что она предназначена для прогнозирования наиболее вероятного слова. Это слово будет сглажено во многих примерах с более частыми словами.
С другой стороны, модель скип-граммы предназначена для прогнозирования контекста. Учитывая delightful
слово, оно должно понять его и сказать нам, что существует большая вероятность того, что yesterday was really [...] day
контекст yesterday was really [...] day
или каким-то другим соответствующим контекстом. С пропуском грамматики слово delightful
не будет пытаться конкурировать со словом beautiful
но вместо этого пары delightful+context
будут рассматриваться как новые наблюдения.
ОБНОВИТЬ
Спасибо @0xF за то, что поделились этой статьей
По словам Миколова
Скип-грамма: хорошо работает с небольшим количеством обучающих данных, хорошо представляет даже редкие слова или фразы.
CBOW: в несколько раз быстрее тренироваться, чем скип-грамма, немного лучшая точность для часто употребляемых слов
Еще одно дополнение к теме можно найти здесь:
В режиме "skip -gram", альтернативном "CBOW", вместо усреднения слов контекста, каждое из них используется в качестве примера попарного обучения. Таким образом, вместо одного примера CBOW, такого как [предикат 'съел' из среднего значения ('The', 'cat', 'the', 'mouse')], сеть представлена четырьмя примерами скип-граммы [предикат ' ели 'от' The '], [предсказывают' ели 'от' кошки '], [предсказывают' ели 'от' the '], [предсказывают' ели 'от' мыши ']. (Произошло такое же случайное сокращение окна, так что половину времени составляли бы два примера ближайших слов.)