Query, key, value и формула внимания
каждый токен проецируется в три роли (запрос, ключ, значение), а вес внимания — это softmax от скалярного произведения запроса и ключа.
Зачем это нужно
Один и тот же токен в одном случае ищет похожие слова, в другом — его просят как источник информации. Три проекции разделяют эти роли.
Как это работает
Входной вектор x_i умножается на три матрицы: q_i = x_i W_Q, k_j = x_j W_K, v_j = x_j W_V. Сходство q_i с k_j — это скалярное произведение, делённое на √d_k. Деление нужно, чтобы большие значения не ломали softmax и градиенты. Softmax даёт веса α_ij, и выход — это сумма значений v_j с этими весами. Затем результат умножается на W_O.
Пример
Для третьего токена a_3 считаются три оценки: x_3·x_1, x_3·x_2 и x_3·x_3. Затем softmax даёт веса, и выход — взвешенная сумма значений. В оригинальном трансформере d = 512, а d_k = d_v = 64.
Что запомнить
- Q, K, V — это три роли, которые токен играет при внимании.
- Вес пропорционален softmax от q·k/√d_k.
- Выход — сумма значений с весами, затем W_O.
Где читать дальше
- SLP3, гл. 7 «Transformers and Pretraining», раздел 7.1.1