Выбор ответа Middle Attention и трансформеры спрашивают часто обновлено
Зачем делить на √d_k
Вопрос
Зачем в attention логиты делят на √d_k?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: При больших dk произведения растут по дисперсии как dk, softmax насыщается. Если компоненты q и k независимы с дисперсией 1, то дисперсия q·k равна dk.
Варианты ответа
- Чтобы attention стал симметричным: вес от токена i к j равен весу от токена j к i
- При больших d_k произведения растут по дисперсии как d_k, softmax насыщаетсяправильный ответ
- Чтобы сумма весов внимания по ключам была равна единице
- Для экономии памяти: логиты меньше и хранятся в fp16 без переполнения
Разбор
Если компоненты q и k независимы с дисперсией 1, то дисперсия q·k равна d_k. При d_k = 128 логиты порядка ±11, softmax почти one-hot, и градиент почти нулевой. Деление на √d_k возвращает дисперсию к 1.
- Симметрия тут ни при чём.
- Сумму весов нормирует softmax.
- Память не меняется.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.