Цікаво, чому пропускати грам краще для нечастого слова, ніж CBOW у word2vec. Я прочитав претензію на https://code.google.com/p/word2vec/ .
Цікаво, чому пропускати грам краще для нечастого слова, ніж CBOW у word2vec. Я прочитав претензію на https://code.google.com/p/word2vec/ .
Відповіді:
У CBOW вектори з контекстних слів усереднюються перед прогнозуванням центрального слова. У пропускному грамі немає середнього вбудовування векторів. Схоже, що модель може засвоїти кращі уявлення для рідкісних слів, коли їх вектори не порівнюються з іншими контекстними словами в процесі здійснення прогнозів.
Ось моє надто спрощене і досить наївне розуміння різниці:
Як ми знаємо, CBOW вчаться передбачати слово за контекстом. Або максимізувати ймовірність цільового слова, дивлячись на контекст. І це трапляється проблемою для рідкісних слів. Наприклад, дана контекстна yesterday was really [...] day
модель CBOW скаже вам, що, швидше за все, слово є beautiful
або nice
. Слова на зразок delightful
отримають набагато менше уваги моделі, оскільки вона покликана передбачити найбільш вірогідне слово. Рідкісні слова будуть згладжені на багатьох прикладах з більш частими словами.
З іншого боку, пропускний грам призначений для прогнозування контексту. Враховуючи слово, delightful
воно повинне зрозуміти це і сказати нам, що існує велика ймовірність, контекст є yesterday was really [...] day
чи інший відповідний контекст. З пропуском грам слово delightful
не намагатиметься конкурувати зі словом, beautiful
але натомість delightful+context
пари будуть розглядатися як нові спостереження. Через це пропускному граму знадобиться більше даних, тому він навчиться розуміти навіть рідкісні слова.
Я щойно зіткнувся з документом, який показує протилежне: CBOW краще для рідкісних слів, ніж пропускний грам https://arxiv.org/abs/1609.08293 . Цікаво, які джерела заявленої претензії на https://code.google.com/p/word2vec/ .