Самообслуживание — это фундаментальный механизм, используемый в нейронных сетях, особенно заметный в моделях-трансформерах, позволяющий им эффективно обрабатывать последовательные данные. Это позволяет модели по-разному взвешивать разные слова или элементы в последовательности, уделяя больше внимания важным частям во время вычислений.
Компоненты самовнимания
-
Запросы, Ключи и Значения: при самостоятельном внимании входная последовательность преобразуется в три вектора: запрос, ключ и значение. Эти векторы получаются из входной последовательности путем линейных преобразований, генерирующих компоненты, которые будут использоваться для расчета оценок внимания.
-
Оценки внимания: после получения этих векторов оценки внимания рассчитываются путем измерения сходства между вектором запроса и ключевыми векторами * из всех элементов последовательности*. Обычно это делается с помощьюскалярного произведения, за которым следуетмасштабированиеи применениефункции softmax для получения весов внимания для каждого элемента.
-
Взвешенная сумма: полученные веса внимания используются для взвешивания векторов значений. Взвешенная сумма этих значений, основанная на их соответствующих весах внимания, дает выходные данные уровня самообслуживания.
-
Многоголовое внимание: для фиксации различных взаимосвязей между словами или элементами несколько наборов преобразований запроса, ключа и значения выполняются параллельно, в результате чего образуется несколько наборов весов внимания и выходных векторов. Затем они объединяются и снова преобразуются для получения окончательного результата.
Содействие изучению долгосрочных зависимостей
Самообслуживание превосходно фиксирует долгосрочные зависимости в последовательностях благодаря своей способности напрямую моделировать взаимодействия между всеми элементами последовательности. Традиционные архитектуры, такие как рекуррентные нейронные сети (RNN), страдают от проблем с исчезновением или взрывом градиента, что ограничивает их способность изучать долгосрочные зависимости. С другой стороны, самовнимание может уловить отношения между удаленными словами или элементами без этих проблем, что делает его более эффективным в понимании контекста и отношений внутри последовательности.
Преимущества перед традиционной архитектурой
-
Распараллеливание: Самообслуживание позволяет параллельно вычислять оценки внимания для всех элементов последовательности, что делает его более эффективным, чем последовательная обработка в RNN.
-
Дальние зависимости: в отличие от RNN, которым сложно фиксировать зависимости на больших расстояниях из-за их последовательного характера, самообладание может эффективно фиксировать эти зависимости.
-
Уменьшенная длина пути: внимание к себе напрямую соединяет все элементы в последовательности, уменьшая длину пути между удаленными элементами, обеспечивая лучший градиентный поток во время тренировки.
Ограничения и вычислительные сложности
-
Квадратическая сложность. Самостоятельное внимание включает парные сравнения между всеми элементами последовательности, что приводит к квадратичному увеличению объема вычислений по мере увеличения длины последовательности. Это может быть вычислительно затратно для очень длинных последовательностей.
-
Требования к памяти. Трансформаторам из-за их механизмов самообслуживания часто требуется больше памяти по сравнению с более простыми архитектурами, такими как CNN или RNN.
-
Маскировка внимания. Работа с последовательностями переменной длины требует использования масок внимания для обработки заполнения, что может усложнить модель и процесс обучения.
Несмотря на эти ограничения, самовнимание оказалось высокоэффективным механизмом в задачах обработки естественного языка, и текущие исследования направлены на решение его вычислительных сложностей для еще большей эффективности и масштабируемости.