Как мы получаем выходной слой в скип-грам?

Вопрос или проблема

Не могли бы вы объяснить, как мы получаем выходной слой в этой архитектуре (векторы [0.2, 0.8, -1.4, 1.2] и [-0.3, 0.2, -0.7, 0.1]). Я понимаю, что предыдущий слой — это встраивания слова “коричневый”. Но как мы получаем вектор [0.2, 0.8, -1.4, 1.2]? Я думал, что это должно быть скалярное произведение встраиваний “коричневого” с встраиваниями “быстрого”? Не могли бы вы подробно описать, как работает эта часть?

введите описание изображения здесь

У нас есть 2 матрицы встраивания (U, V), которые обучаются во время тренировки word2vec.
U имеет размер (размер_словаря, размеры)
V имеет размер (размер, размер_словаря)
Для любой данной пары цель, контекст:

  1. Мы выбираем встраивание цели из U (один из рядов в матрице U) и вычисляем его скалярное произведение со всеми векторами в матрице V, что приводит к вектору оценок (третий от последнего вектора). Вектор оценок имеет размерность размер_словаря * 1

Этот вектор оценок (выходной вектор в вопросе) переводится в вероятностное пространство с помощью операции softmax.
Теперь у нас есть предсказанные вероятности, то есть softmax(score_vector) и фактический вектор вероятностей, то есть one-hot вектор контекстного слова.

Другими словами, мы хотим распределение вероятностей, которое предсказывает контекстное слово (здесь быстрый) с более высокой вероятностью, чем остальные слова.

Как только у нас есть предсказанный вектор и фактический вектор, мы вычисляем потери (то есть кросс-энтропию) и обратно распространяем его, чтобы изменить как U, так и V.

Ответ или решение

Как получить выходной слой в архитектуре Skip-Gram

Архитектура Skip-Gram, часть алгоритма Word2Vec, используется для обучения векторных представлений слов (эмбеддингов) на основе их контекста в текстах. В вопросе указан набор векторов, а также затрагивается понимание того, как выводится вектор, который можно использовать для предсказания контекстного слова, например, "quick", основываясь на целевом слове "brown". Давайте подробно рассмотрим этот процесс.

Краткое описание архитектуры Skip-Gram

В Skip-Gram заключается идея обучения представления (эмбеддингов) слов, при этом каждое слово в текстовом корте представляется в виде вектора фиксированной длины. Архитектура включает 2 матрицы:

  • U (матрица эмбеддингов целевых слов) размерностью (размер_словаря, размер_вектора),
  • V (матрица эмбеддингов контекстных слов) размерностью (размер_вектора, размер_словаря).

Когда мы хотим предсказать контекстное слово для целевого слова, мы делаем следующее:

1. Получение эмбеддингов слова

Для слова "brown" мы извлекаем его эмбеддинг из матрицы U. Допустим, что эмбеддинг "brown" равен [0.2, 0.8, -1.4, 1.2].

2. Вычисление вектора оценок (score vector)

Чтобы получить вектор оценок, мы вычисляем скалярное произведение выбранного эмбеддинга целевого слова с содержимым матрицы V. Это воплощается в следующей операции:

  • Сначала перемножьте эмбеддинг слова "brown" (из матрицы U) с каждым из векторов в матрице V.
  • Полученный результат представлен в виде вектора размерности (размер_словаря, 1). Каждый элемент этого вектора представляет оценку вероятности для соответствующего слова из словаря.

Процесс может быть описан формально:
[ \text{score_vector} = U[\text{"brown"}] \cdot V ]

3. Применение функции Softmax

Посчитанный вектор оценок (score vector) затем преобразуется в вероятностное распределение с помощью функции Softmax. Это позволяет превращать сырые оценки в вероятности, которые суммируются до единицы. Формула для Softmax:
[ P(w|c) = \frac{e^{score(w,c)}}{\sum_{w’ \in V} e^{score(w’,c)}} ]

где ( w ) – слово из контекста, а ( c ) – целевое слово.

4. Сравнение с актуальными данными и обучение

После получения вероятностного распределения мы сравниваем предсказанные вероятности с фактической вероятностью, заданной вектором one-hot для целевого слова. Потеря вычисляется с помощью перекрестной энтропии:
[ L = -\sum_{c} y_c \log(\hat{y}_c) ]

где ( y_c ) – настоящая метка (one-hot вектор), а ( \hat{y}_c ) – предсказанное значение.

Заключение

Процесс получения выходного слоя в архитектуре Skip-Gram требует извлечения эмбеддингов целевых слов, их умножения на матрицу контекстных слов и последующего применения функции Softmax для получения вероятностного распределения по словам в словаре. Этот подход позволяет эффективно учить векторные представления слов, которые могут использоваться в различных NLP-задачах. Надеюсь, это объяснение помогло вам лучше понять, как работает архитектура Skip-Gram.

Оцените материал
Добавить комментарий

Капча загружается...