Sobes.tech
Middle — Senior
40

Расскажите идею word2vec. Чем CBOW отличается от Skip-gram?

Компании, где спрашивали
CortexML
HeadHunter

Ответ от нейросети

sobes.tech AI

Word2vec — это метод представления слов в виде векторов фиксированной размерности, которые отражают семантические и синтаксические свойства слов на основе контекста их использования в тексте. Основная идея — обучить нейросеть предсказывать слова по контексту или контекст по слову, чтобы получить векторные представления, где близкие по смыслу слова имеют близкие векторы.

CBOW (Continuous Bag of Words) и Skip-gram — два основных архитектурных подхода в word2vec:

  • CBOW предсказывает текущее слово, исходя из контекста (окружения) — то есть из нескольких слов вокруг него. Например, по словам слева и справа модель пытается угадать центральное слово.

  • Skip-gram наоборот, по одному слову пытается предсказать слова из его контекста. То есть, модель учится по текущему слову угадывать соседние.

CBOW обычно быстрее и лучше работает на больших корпусах, а Skip-gram лучше справляется с редкими словами и более точен для мелких корпусов.

Пример использования библиотеки gensim для обучения Skip-gram:

from gensim.models import Word2Vec
sentences = [['я', 'люблю', 'машинное', 'обучение'], ['word2vec', 'представляет', 'слова', 'в', 'виде', 'векторов']]
model = Word2Vec(sentences, vector_size=100, window=2, min_count=1, sg=1)  # sg=1 — Skip-gram
vector = model.wv['машинное']
print(vector)