Перейти к содержанию

Модель Text2Vec

Модель Text2Vec преобразует текстовые столбцы датафрейма в векторные представления фиксированной размерности.
Полученные числовые вектора можно использовать как входные признаки для стандартных моделей машинного обучения на табличных данных — например, для кластеризации или классификации.

Основная идея

Внутри Text2Vec обучается модель Word2Vec (из библиотеки gensim) на вашем текстовом корпусе, а затем для каждой строки датафрейма считается средний вектор слов, присутствующих в этой строке.

Как работает внутри

Основные этапы:

  1. Подготовка данных
  2. Все текстовые поля конвертируются в списки слов.
  3. Каждая строка считается как отдельный "документ" или "предложение".

  4. Обучение Word2Vec

  5. Модель Word2Vec обучается на всем корпусе текстов.
  6. Корпус — это список списков слов.

  7. Векторизация строк

  8. Для каждой строки собираются все слова.
  9. Для слов, имеющихся в словаре Word2Vec, берутся их эмбеддинги.
  10. Итоговый вектор строки — среднее арифметическое всех эмбеддингов слов.
  11. Если в строке нет ни одного слова из словаря — возвращается нулевой вектор.

Основные параметры

Параметр Описание
vector_size Размерность выходного вектора. Важно: слишком маленькое значение ухудшает качество, особенно при малом датасете.
sg Архитектура обучения: 0CBOW, 1Skip-gram.
window Размер окна контекста вокруг слова.

Важно: При слишком маленьком датасете и слишком большом vector_size, модель может выдавать некачественные или даже полностью нулевые вектора.

Подробно о параметре sg: CBOW vs Skip-gram

Параметр sg (от "skip-gram") определяет, какая архитектура Word2Vec будет использоваться при обучении векторных представлений слов.

Значение Архитектура Описание
0 CBOW (Continuous Bag of Words) Модель пытается предсказать текущее слово, зная слова из его контекста (окружающие слова). Быстрее обучается, лучше для частых слов.
1 Skip-gram Модель пытается предсказать контекст (окружающие слова), зная текущее слово. Лучше работает с редкими словами и на малых датасетах, но медленнее.

Как это влияет на Text2Vec

CBOW (sg=0)

  • Плюсы:
  • Быстрая сходимость
  • Хорош для крупных датасетов
  • Предпочтителен, если тексты длинные и слов много

  • Минусы:

  • Хуже работает с редкими словами
  • Может "сглаживать" семантику

Skip-gram (sg=1)

  • Плюсы:
  • Лучше качество векторизации на малых и средних датасетах
  • Лучше захватывает связи редких слов

  • Минусы:

  • Более медленное обучение
  • Требует больше ресурсов

Как выбрать архитектуру для своей задачи?

Если... Рекомендация
У вас маленький корпус текстов (до ~10 000 строк) Используйте Skip-gram (sg=1), чтобы лучше "поймать" даже редкие слова
У вас большой корпус (от ~100 000 строк и выше) Можно использовать CBOW (sg=0) для скорости
Если целевая задача связана с редкими словами Лучше Skip-gram
Если цель — быстрое приближённое представление Можно CBOW

Итог

Параметр sg — это ключевой выбор между двумя подходами к обучению Word2Vec, и он напрямую влияет на то, насколько хорошо будут обучаться эмбеддинги слов с учетом доступного размера данных и целей задачи.
В Text2Vec этот параметр можно свободно настраивать через параметры модели.

Пример сценария использования

Классификация отзывов с IMDb

  • Входные данные: текстовые отзывы (например, положительные/отрицательные метки).

  • Пайплайн:

  • Применяем Text2Vec, чтобы превратить текст в вектора.
  • Обучаем стандартный классификатор (например, LogisticRegression, RandomForest или LightGBM).

image info

  1. Оцениваем качество. image info