Открыть сервис

Word2Vec

Word2Vec — это группа моделей и алгоритмов машинного обучения, используемых для получения векторных представлений слов (word embeddings) на основе больших текстовых корпусов. Разработанная в 2013 году группой исследователей под руководством Томаша Миколова в компании Google, эта технология позволяет преобразовывать слова из естественного языка в числовые векторы фиксированной размерности, сохраняя семантические и синтаксические отношения между ними.

История

До появления Word2Vec основным методом построения векторных представлений слов были модели на основе матриц совместной встречаемости (например, Latent Semantic Analysis). Однако эти подходы требовали больших вычислительных затрат и плохо масштабировались на большие корпуса. В 2013 году Томаш Миколов, Кай Чен, Грег Коррадо и Джеффри Дин опубликовали статью «Efficient Estimation of Word Representations in Vector Space», в которой представили архитектуры Continuous Bag-of-Words (CBOW) и Skip-gram. Эти модели позволяли обучать векторы слов на корпусах, содержащих миллиарды слов, за несколько часов на обычном компьютере.

В 2014 году Миколов и его коллеги выпустили расширение модели — word2vec, которое включало дополнительные оптимизации, такие как negative sampling и hierarchical softmax. В том же году исходный код был опубликован под лицензией Apache 2.0, что способствовало быстрому распространению технологии в академической среде и промышленности.

Принцип работы

Word2Vec основан на идее дистрибутивной семантики, согласно которой значение слова определяется его контекстом. Модель обучается предсказывать слово по его окружению (CBOW) или, наоборот, контекст по слову (Skip-gram). Векторы слов формируются таким образом, чтобы слова, часто встречающиеся в схожих контекстах, имели близкие векторные представления.

Архитектуры

Continuous Bag-of-Words (CBOW) — предсказывает текущее слово по его контексту (окну из нескольких слов слева и справа). Входные векторы контекстных слов усредняются, и по полученному вектору строится предсказание. Эта архитектура быстрее обучается и даёт лучшие результаты для частотных слов.

Skip-gram — предсказывает контекстные слова по заданному слову. Для каждого слова в корпусе модель пытается предсказать слова, которые могут находиться в его окрестности. Эта архитектура лучше работает для редких слов и даёт более качественные векторы для небольших корпусов.

Методы оптимизации

Для ускорения обучения используются два основных метода:

  • Negative sampling — вместо полного softmax по всему словарю (который может содержать сотни тысяч слов) модель обучается различать целевое слово от небольшого числа случайно выбранных «отрицательных» примеров. Это снижает вычислительную сложность с O(V) до O(K), где V — размер словаря, K — число отрицательных примеров (обычно от 5 до 20).
  • Hierarchical softmax — использует бинарное дерево для представления всех слов в словаре. Вместо вычисления вероятности для каждого слова вычисляется вероятность пути от корня до листа, что даёт сложность O(log V).

Характеристики

Размерность

Размерность векторов обычно выбирается от 50 до 300. Более высокая размерность позволяет улавливать более тонкие семантические различия, но требует больше данных для обучения и увеличивает риск переобучения. На практике наиболее часто используется размерность 300.

Окно контекста

Размер окна контекста определяет, сколько слов слева и справа от целевого слова учитывается. Маленькое окно (2-5 слов) даёт векторы, отражающие синтаксические отношения (например, падежи, числа). Большое окно (10-15 слов) лучше улавливает семантическую близость (например, синонимы, тематические группы).

Корпус

Для обучения качественных векторов требуется корпус объёмом не менее нескольких миллионов слов. Наиболее известные предобученные модели Word2Vec обучались на корпусах Google News (100 миллиардов слов) и русскоязычном корпусе НКРЯ (Национальный корпус русского языка).

Применение

Word2Vec широко используется в задачах обработки естественного языка (NLP) и смежных областях:

  • Семантический поиск — поиск документов по смыслу, а не по точному совпадению слов. Векторы слов позволяют находить релевантные результаты даже при использовании синонимов или близких по смыслу терминов.
  • Машинный перевод — векторы слов используются для выравнивания слов между языками. Например, можно построить переводной словарь, находя пары слов с ближайшими векторами в разных языковых пространствах.
  • Анализ тональности — векторы слов служат входными признаками для классификаторов, определяющих эмоциональную окраску текста.
  • Рекомендательные системы — представление пользователей и товаров в виде векторов на основе текстовых описаний.

Примеры

Одним из наиболее известных примеров работы Word2Vec является способность модели выполнять векторные арифметические операции. Например:

  • Вектор(«король») — вектор(«мужчина») + вектор(«женщина») ≈ вектор(«королева»)
  • Вектор(«Париж») — вектор(«Франция») + вектор(«Россия») ≈ вектор(«Москва»)

Такие операции показывают, что модель улавливает не только семантические, но и грамматические отношения (например, род, число, падеж).

Критика и ограничения

Несмотря на популярность, Word2Vec имеет ряд недостатков:

  • Статичность — модель даёт одно и то же векторное представление для слова независимо от контекста. Например, слово «ключ» в значениях «инструмент» и «источник» будет иметь один вектор. Эта проблема решается в более поздних моделях, таких как ELMo и BERT.
  • Чувствительность к корпусу — качество векторов сильно зависит от объёма и качества обучающего корпуса. На маленьких корпусах модель может давать нестабильные результаты.
  • Отсутствие учёта морфологии — Word2Vec рассматривает слова как неделимые единицы, не учитывая их внутреннюю структуру. Для языков с богатой морфологией (например, русского) это может быть недостатком.
  • Воспроизведение предвзятостей — модель обучается на реальных текстах, поэтому может воспроизводить и усиливать существующие в обществе стереотипы и предрассудки.

Влияние и развитие

Word2Vec стал важной вехой в развитии NLP. Он показал, что эффективные векторные представления слов можно получать с помощью простых нейросетевых архитектур, обучаемых на больших корпусах. Технология легла в основу многих последующих моделей, включая GloVe, FastText и более сложные контекстные модели, такие как ELMo, BERT и GPT.

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

Источники

  1. Mikolov T., Chen K., Corrado G., Dean J. Efficient Estimation of Word Representations in Vector Space. — arXiv:1301.3781, 2013.
  2. Mikolov T., Sutskever I., Chen K., Corrado G., Dean J. Distributed Representations of Words and Phrases and their Compositionality. — Advances in Neural Information Processing Systems, 2013.
  3. Goldberg Y., Levy O. word2vec Explained: Deriving Mikolov et al.’s Negative-Sampling Word-Embedding Method. — arXiv:1402.3722, 2014.
  4. Rong X. word2vec Parameter Learning Explained. — arXiv:1411.2738, 2014.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →