Вопрос или проблема
Как говорит этот вопрос:
В масштабированном внимании на основе скалярного произведения мы масштабируем наши выходные значения, деля скалярное произведение на квадратный корень из размерности матрицы:
Причина, по которой это делается, заключается в том, что это сдерживает распределение весов выходных значений, чтобы стандартное отклонение было равно 1.
Мой вопрос заключается в том, почему мы не делаем то же самое после умножения на $V$ (значения) по той же причине?
Я имею в виду, что вы можете. Стандартизация здесь предназначена для контроля дисперсии скалярного произведения, поскольку в противном случае, поскольку softmax возводит в степень, веса softmax, вероятно, будут очень разреженными (т.е. вес, близкий к $1$, применяется к самому большому значению скалярного произведения). Это не очень полезно, так как градиенты будут чрезвычайно малы для значений с весами softmax, равными $0$.
Что касается нормализации произведений, вы можете это сделать, и я считаю, что архитектура действительно включает слои нормализации для этой цели.
Ответ или решение
В механизме внимания, в частности в рамках масштабированного механизма внимания (scaled dot-product attention), основное внимание уделяется контролю распределения весов после применения функции softmax к скалярному произведению запросов (queries) и ключей (keys). Этот аспект критически важен для корректной работы модели, так как выходные значения (values) обрабатываются после того, как были нормализованы веса, но не требуют дополнительной нормализации на данном этапе.
Обоснование отсутствия нормализации после умножения на значения (V)
-
Контроль распределения весов: Ключевой мотив для нормализации в процессе вычисления весов состоит в минимизации разреженности весов. Когда мы делим скалярное произведение на корень из размерности, это приводит к более предсказуемому распределению, позволяющему избежать того, чтобы некоторые веса мягко маскировались (например, один вес стремится к 1, а другие — к 0). С помощью softmax каждое значение преобразуется в вероятности, и нормализация перед этим этапом позволяет избежать больших градиентов, что может затруднить процесс обучения.
-
Отличия между весами и значениями: После вычисления весов с использованием softmax, веса уже представляют собой вероятностное распределение, которое будет применено к значениям. Вместо того чтобы нормализовать значения после их умножения на веса, мы используем уже нормализованные веса для взвешивания значений. Это делает нормализацию после применения весов излишней, так как ожидается, что суммарный взвешенный вывод обеспечит нужную масштабируемость благодаря обоснованному распределению входных данных.
-
Значения не требуют дополнительной масштабируемости: Значения ( V ) сами по себе не влияют весом на обучение в такой степени, как веса, зависящие от запросов и ключей. Значения передаются через механизм внимания и влияют на выходное состояние модели на основе весов. Комплексная операция, когда к значениям применяются нормализованные веса, обеспечивает большую предсказуемость в результате, исключая необходимость добавления еще одной стадии нормализации.
-
Слои нормализации в архитектуре: В современных архитектурах нейронных сетей действительно присутствуют слои нормализации, такие как Batch Normalization или Layer Normalization. Эти слои могут быть применены к выводам на выходе модели после процесса внимания, обеспечивая более стабильное и предсказуемое поведение в ходе обучения.
Заключение
В заключение, предварительная нормализация для весов в механизме внимания является необходимостью для обеспечения правильного распределения и избежания разреженности, в то время как значения не требуют аналогичной обработки. Процесс нормализации можно применить на более высоком уровне, в слое нейронной сети, что позволяет регуляции диапазонов выходных данных без избыточной сложности на этапе вычислений внимания.