Расскажите идею word2vec. Чем CBOW отличается от Skip-gram?
Answer from AI
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)