# Янник Килхер о «Attention Is All You Need»: революция в NLP

Источник: https://www.youtube.com/watch?v=iDulhoQ2pro
Канал: Yannic Kilcher
Опубликовано: 28.11.2017

---

## Революция в архитектуре нейросетей: обзор статьи «Attention Is All You Need»
[[JUMP:00:00]]

В своём разборе классической статьи «Attention Is All You Need», представленной Google, Янник Килхер анализирует фундаментальный сдвиг в методах обработки естественного языка (NLP). Автор объясняет, почему отказ от традиционных рекуррентных нейронных сетей (RNN) в пользу архитектуры «Трансформер» (Transformer) позволил значительно повысить эффективность моделей и лучше справляться с длинными зависимостями в тексте.

### Отказ от рекурсии в пользу внимания
[[JUMP:00:27]]

Традиционный подход к задачам машинного перевода (например, перевод фразы «the cat eats the mouse» на немецкий) опирался на последовательную обработку данных с использованием рекуррентных нейросетей (RNN, включая LSTM).

*   **Как работали RNN:** Входная фраза обрабатывалась по одному слову за раз. Каждое слово преобразовывалось в вектор, который подавался в нейронную сеть вместе с «скрытым состоянием» (hidden state) от предыдущего слова.
*   **Проблема RNN:** Информация о значении слова должна была пройти через длинную цепочку скрытых состояний, чтобы достичь декодера. Из-за этого модели было трудно удерживать контекст и грамматические структуры на больших дистанциях — так называемые «долгосрочные зависимости».

Янник Килхер отмечает, что авторы статьи предложили радикальное решение: вместо передачи информации через последовательность скрытых состояний, использовать механизм «внимания» (attention). Это позволяет модели «смотреть» непосредственно на нужные части входного предложения, значительно сокращая путь прохождения сигнала.

### Устройство архитектуры «Трансформер»
[[JUMP:11:03]]

Предложенная архитектура Трансформер состоит из двух ключевых компонентов — энкодера и декодера — но, в отличие от RNN, она обрабатывает всё предложение целиком за один раз.

*   **Позиционное кодирование:** Так как сеть больше не обрабатывает слова по порядку, ей нужно понимать, где именно в предложении находится слово. Это достигается с помощью добавления специального вектора, использующего тригонометрические функции (синусоиды разной частоты), что позволяет сети сравнивать позиции слов.
*   **Механизм Keys, Values и Queries:** Это «сердце» внимания. Слой внимания сопоставляет запросы (Queries) от целевого предложения с ключами (Keys) исходного предложения, чтобы извлечь соответствующие значения (Values).

Процесс вычисления внимания:

1.  Вычисляется скалярное произведение запроса и ключа.
2.  Применяется функция Softmax, которая выделяет наиболее значимые связи (наиболее похожие векторы).
3.  Результат умножается на значение (Value), что позволяет модели сфокусироваться на нужной информации.

По словам Килхера, это похоже на систему индексации базы данных: ключи определяют, *как* мы обращаемся к информации, а значения — это сама информация, которую мы хотим получить.

### Преимущества и итоги
[[JUMP:25:30]]

Основной вывод статьи заключается в том, что механизм внимания позволяет сократить путь прохождения информации в нейросети. В традиционных RNN каждый шаг вычислений мог приводить к потере данных, тогда как параллельная обработка в Трансформерах минимизирует эти потери.

Янник Килхер подчёркивает, что данная архитектура не только теоретически элегантна, но и показала выдающиеся результаты в экспериментах, став новым стандартом в индустрии. Автор видео рекомендует ознакомиться с кодом реализации этой архитектуры на GitHub, чтобы лучше понять её работу на практике.