Назад к подготовке
ВопросСредняяdeep-learningТехническое собеседование · Ozon

Как работает self-attention в трансформере

Объясните self-attention и основные блоки трансформера так, чтобы было понятно без формального вывода.

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

Короткий ответ

Из каждого токена строятся query, key и value. Query сравнивается с key других токенов, веса проходят через softmax, а итоговое представление получается как взвешенная сумма value. Multi-head attention делает несколько таких сравнений параллельно.

Полный разбор

Self-attention отвечает на вопрос: на какие элементы последовательности должен смотреть текущий элемент. Для каждого токена линейными слоями строятся Q, K и V. Скалярные произведения Q с K дают scores близости, softmax превращает их в веса, затем веса применяются к V.

Multi-head attention делает это несколько раз в разных подпространствах, поэтому разные головы могут ловить разные связи. После attention обычно идут residual connection, normalization и feed-forward блок. Позиционная информация нужна отдельно, потому что сам attention без нее не знает порядок токенов.

В RecSys или табличных задачах идея та же: элементы могут быть действиями пользователя, товарами или признаками, а attention учит, какие связи между ними важны для итогового представления.

Теория

Self-attention строит контекстное представление через content-based взаимодействие элементов последовательности.

Типичные ошибки

  • Говорить только “токены смотрят друг на друга”, не объясняя Q/K/V.
  • Забывать про positional encoding.
  • Не отличать attention block от всего transformer layer.