Multi-head attention: несколько голов внимания
в одном слое работает несколько голов внимания, у каждой свои матрицы, и их выходы склеиваются и проецируются обратно.
Зачем это нужно
Одна голова даёт один набор весов. По словам источника, разные головы могут смотреть на контекст с разными целями и специализироваться на разных связях между словами.
Как это работает
В слое A голов, и каждая имеет свои матрицы W_Q, W_K, W_V. Размерность значений каждой головы d_v = d / A, поэтому по числу параметров multi-head стоит примерно как одна голова. Выходы голов склеиваются в вектор размера A·d_v и умножаются на W_O, чтобы вернуться к размерности d.
Пример
В оригинальном трансформере d = 512, A = 8, d_k = d_v = 64. Для иллюстрации в источнике на рисунке взято A = 4, потому что меньшее число лучше помещается на странице.
Что запомнить
- Головы работают параллельно и имеют свои параметры.
- Размер головы d_v = d/A, поэтому параметров почти столько же, сколько у одной головы.
- Выходы склеиваются и проецируются через W_O.
Где читать дальше
- SLP3, гл. 7 «Transformers and Pretraining», раздел 7.1.1 (Multi-head Attention)