Как работает 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.