Эта статья также опубликована на моем личном сайте. Картинки с формулами отображаются лучше. Добро пожаловать на сайт: https://lulaoshi.info/machine-learning/attention/transformer-attention.html.
Механизм внимания используется в статье Transformer[^1]. Основная формула механизма внимания такова:
в этой формулеQ
、K
иV
Соответственно представляютQuery、KeyиValue,Математику, происходящую между ними, нелегко понять.
Начнем с
Такая формула начинается.
Во-первых, вам необходимо рассмотреть понятие скалярного произведения векторов (Dot Product). Для двух векторов-строк
и
:
Геометрический смысл векторного скалярного произведения: вектор
в векторе
Тогда проекция в направлении связана с вектором
Произведение может отражать сходство двух векторов. Чем больше результат векторного скалярного произведения, тем более похожи два вектора.
матрица
Зависит от
состоит из векторов-строок. Например, мы можем преобразовать вектор-строку
Понимаемый как вектор слов, существует в общей сложности
векторы-строки
Квадратная матрица:
матрица
транспонирование иматрица
Умножить,
Каждая строка в
Умножьте каждый столбец приезжать, чтобы получить элемент целевой матрицы,
Это может быть выражено как:
к
Например, элементы первой строки и первого столбца на самом деле являются векторами.
и
Самостоятельное умножение точек на самом деле
Сходство между собой и самим собой, то элементы в первой строке и втором столбце равны
и
сходство между ними.
Следующий пример векторной матрица слов,В этой матрице,Векторы слов по одному слову в строке для. Сама транспозиция матриц, Умножить, генерирует целевую матрицу.,Целевая матрица на самом деле представляет собой вектор слова и подобие векторов слов каждого слова.
Умножение векторов слов матрица
Что, если добавить Softmax? Производим следующие расчеты:
. Функция Softmax — нормализовать вектор,Тогда это нормализация сходства,приезжать получил нормализованную матрицу веса,матрицасередина,Чем больше вес определенного значения,Это означает, что сходство выше.
Нормализация матрицы сходства
Исходя из этого, сделайте еще один шаг вперед:
,получитприезжать Нормализованный весматрицаи Умножение векторов слов матрица。массаматрицасередина某一行отдельныйстолбец векторов слов Умножить,Столбец векторной матрица слов фактически представляет собой определенное измерение разных слов. После этого матрица Умножить, что эквивалентно процессу взвешенного поиска.,Результирующий вектор слов «приехать» представляет собой новое представление после взвешенного поиска.,Весовая матрица рассчитывается посредством сходства и нормализации по месту жительства.
Завершите процесс взвешенного нахождения с помощью весовой матрица Умножить
Основная формула механизма внимания такова:
, и то, что мы только что проанализировали
Несколько похоже. В документе Transformer[^1] эта формула внимания описывается как: Dot-Product Attention。в,QдляQuery、KдляKey、VдляValue。Q、K、Откуда взялся Ви? вопрос、K、V фактически линейно преобразуется из той же входной матрицаX. Мы можем просто понять это как:
Продемонстрируйте с помощью фотографий:
X умножается на три матрицы соответственно для генерации Q, K, V матрица
в,
,
и
— это три обучаемых параметра матрица. Войти в матрицу
отдельный
,
и
Умножить,генерировать
、
и
, что эквивалентно линейному преобразованию. Внимание не используется напрямую.
,Вместо этого используйте эти три матрицы, сгенерированные путем умножения матриц.,Потому что для использует три обучаемых параметра матрица,Это может улучшить возможности установки модели.
Scaled Dot-Product Attention
На этой картинке
и
После MatMul генерируется матрица сходства. Разделим к для каждого элемента матрицы сходства
,
для
размерный размер. Это разделение называется дляScale. когда
Когда оно очень большое,
Дисперсия результата умножения становится больше,Выполнение Scale может уменьшить дисперсию.,Обновления градиента более стабильны во время обучения.
Маска — это часто используемая ссылка в задачах обработки естественного языка, таких как машинный перевод. В сценариях НЛП, таких как машинный перевод,Длина каждого примера предложения различна.,Для позиции после окончания предложения,Нет необходимости обращаться к расчету сходства,В противном случае это повлияет на результаты расчетов Softmax.
Мы используем пример из подробного поста в блоге Transformer [^2] иностранного блоггера, чтобы последовательно объяснить приведенные выше расчеты.
Входные данные для вектора слов матрицаX,По одной строке на каждое слово дляматрица,умножение матрицы на иW,первый Генерировать Q, KиV。q1 = X1 * WQ
,q1
дляQ
матрицасередина的行向量,k1
ждатьи Похоже на:。
От векторов слов к Q, K, V
Второй шаг – провести
Посчитайте и получите подобие.
QиKУмножить,придетсяприезжать Сходство
Третий шаг – разделить сходство вновь полученных поселений на к
,Затем выполните Softmax. После нормализации Softmax,Каждое значение представляет собой весовой коэффициент больше 0 и меньше 1.,И общая идля0,Этот результат можно понимать как весовую матрицу.
Scale & Softmax
Четвертый шаг — использовать вновь полученные веса приезжать, матрица, иVУмножить для расчета взвешенного решения.
Используйте весовую матрицу и VУмножить, чтобы получить взвешенный расчет жилья.
для повышения производительности фитинга,Трансформатор продолжает расширяться Внимание,предложенное бычье внимание(Multiple Head Внимание). Мы только что поняли,
、
、
является входным
и
、
и
получается умножением соответственно,
、
и
— обучаемый параметр матрица. Теперь для того же ввода
, мы определяем несколько групп разных
、
、
,например
、
、
,
、
и
, каждая группа вычисляет и генерирует разные
、
、
и, наконец, изучите разные параметры.
Определите несколько групп W и сгенерируйте несколько групп Q, K и V.
Например, если мы определим 8 наборов параметров, одни и те же входные данные
, вы получите 8 разных выходов
приезжать
。
Если определены 8 наборов параметров
Перед выводом следующего слоя приезжать,Нам нужно соединить 8 выходов приезжать,Автор: кматрица
, уменьшая размеры обратно до нужных нам размеров.
После объединения нескольких наборов выходов Автор: кматрицаWoкуменьшить размерность
Процесс расчета бычьего внимания показан на рисунке ниже. Для шага 2) на картинке ниже,Когда текущий для находится на первом уровне,Кодируйте входные слова напрямую,Генерировать вектор слов X при текущем для последующего слоя;,Используйте выходные данные предыдущего слоя напрямую.
бычье внимание процесс расчета
Глядя на диаграмму «бычье внимание», приведенную в статье «Трансформер», кажется, что ее легче понять:
бычье внимание диаграмма, приведенная в статье Трансформер
[^1]: Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need. 31st Conference on Neural Information Processing Systems 2017(NIPS 2017). Long Beach, CA, USA: 2017: 5998–6008.
[^2]: https://jalammar.github.io/illustrated-transformer/