Найти в Дзене

Word Embeddings в Машинном обучении простыми словами

Фото: Pixabay
Фото: Pixabay

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

Пример. Рассмотрим два похожих предложения: “Хорошего Вам дня” и “Отличного Вам дня”. Компьютеру понять разницу в их значении довольно сложно, пока мы не создадим исчерпывающий словарь V = {Вам, дня, отличного, хорошего}.

Давайте создадим вектор быстрого кодирования (One-Hot Encoding) для каждого элемента словаря V. Мы получим векторы из нулей и единиц, где единицы представляют место слова в V:

  • Вам = [1, 0, 0, 0]
  • дня = [0, 1, 0, 0]
  • отличного = [0, 0, 1, 0]
  • хорошего = [0, 0, 0, 1]

Если мы попытаемся визуализировать эти кодирования, мы сможем представить себе четырехмерное пространство, где каждое слово занимает одно из измерений и не имеет ничего общего с остальными (без проекции по другим измерениям). Это означает, что “Вам” и “дня” так же близки по значению, как “отличного” и “хорошего”, а это неверно.

Наша цель состоит в том, чтобы слова с похожим контекстом занимали близкие пространственные позиции. С точки зрения математики, косинус угла между такими векторами должен стремиться к единице, то есть угол стремиться к нулю.

Здесь возникает идея распределенных представлений. Мы интуитивно вводим некоторую зависимость одного слова от другого, чтобы устранить словарную независимость быстрого кодирования. С этим прекрасно справляется метод Word2Vec и его разновидности — скип-грам (Skip-Gram) и СBOW (Continuous Bag of Words — “Вещественный мешок слов”).

Посмотрим, как работает этот метод на Python. Импортируем библиотеку Gensim:

-2

Определим тренировочные данные:

-3

Обучим модель:

-4

Выведем словарь:

-5

Отобразим вектор для слова “предложение”:

-6

Понравилась статья? Поддержите нас, поделившись статьей в социальных сетях и подписавшись на канал. И попробуйте наши курсы по Машинному обучению на Udemy.