Многоголовое внимание

В предыдущем разделе мы познакомились с механизмом Self-Attention, который был представлен в июне 2017 года в статье Attention Is All You Need. Особенностью данного механизма является способность выявлять зависимости между отдельными элементами последовательности. Мы даже реализовали его и успели протестировать на реальных данных. Модель показала свою работоспособность.

Напомню, что в алгоритме Self-Attention используется три обучаемых матрицы весовых коэффициентов (WQ, WK и WV). Данные матрицы используются для получения 3трех сущностей: Query (Запрос), Key (Ключ) и Value (Значение). Первые две определяют попарную взаимосвязь между элементами последовательности, а последняя — контекст анализируемого элемента.

Не секрет, что далеко не всегда ситуации бывают однозначны. Наверное, даже чаще одну и ту же ситуацию можно трактовать с различных точек зрения. При разных точках зрения выводы могут быть абсолютно противоположными. В таких ситуациях важно рассмотреть все возможные варианты, и только после тщательного анализа сделать вывод. Поэтому в той же статье авторы метода для решения таких задач предложили использовать многоголовое внимание Multi-Head Attention. Это запуск нескольких параллельных потоков Self-Attention с различными весовыми коэффициентами. Здесь каждая «голова» имеет свое мнение, а решение принимается взвешенным голосованием. Подобное решение должно лучше выявлять связи между различными элементами последовательности.

Self-Attention

Схема архитектуры многоголового внимания

Схема архитектуры многоголового внимания

В архитектуре Multi-Head Attention параллельно используется несколько потоков Self-Attention с различными весовыми коэффициентами, что имитирует разносторонний разбор ситуации. Результаты работы потоков конкатенируются в единый тензор. Итоговый результат алгоритма определяется умножением тензора на матрицу W0, параметры которой подбираются в процессе обучения нейронной сети. Вся эта архитектура подменяет блок Self-Attention в энкодере и декодере архитектуры «Трансформер».

Именно архитектура Multi-Head Attention наиболее часто используется для решения практических задач.