Что такое negative sampling в обучении word2vec и зачем он нужен?
Ответ от нейросети
sobes.tech AI
Negative sampling — это техника оптимизации, используемая в обучении модели word2vec для эффективного обучения в задачах с очень большим словарём. Вместо того чтобы вычислять вероятность для всех слов в словаре (что очень дорого), negative sampling выбирает несколько «негативных» примеров (слов, не являющихся контекстом данного слова) и обучает модель отличать реальные пары слов (положительные примеры) от случайных (негативных).
Это позволяет значительно ускорить обучение и уменьшить вычислительные затраты, сохраняя при этом качество получаемых эмбеддингов. В итоге модель учится увеличивать вероятность соседних слов и уменьшать вероятность случайных слов.
Пример: для пары (слово, контекст) — положительный пример, выбираются несколько случайных слов из словаря как негативные, и модель обучается отличать их.
# Псевдокод negative sampling
for target_word, context_word in corpus:
positive_pair = (target_word, context_word)
negative_samples = sample_negative_words(k) # k — число негативных примеров
update_model(positive_pair, negative_samples)