Выбор ответа Middle Attention и трансформеры спрашивают часто обновлено

Зачем делить на √d_k

Вопрос

Зачем в attention логиты делят на √d_k?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: При больших dk произведения растут по дисперсии как dk, softmax насыщается. Если компоненты q и k независимы с дисперсией 1, то дисперсия q·k равна dk.

Варианты ответа

  1. Чтобы attention стал симметричным: вес от токена i к j равен весу от токена j к i
  2. При больших d_k произведения растут по дисперсии как d_k, softmax насыщаетсяправильный ответ
  3. Чтобы сумма весов внимания по ключам была равна единице
  4. Для экономии памяти: логиты меньше и хранятся в fp16 без переполнения

Разбор

Если компоненты q и k независимы с дисперсией 1, то дисперсия q·k равна d_k. При d_k = 128 логиты порядка ±11, softmax почти one-hot, и градиент почти нулевой. Деление на √d_k возвращает дисперсию к 1.

  • Симметрия тут ни при чём.
  • Сумму весов нормирует softmax.
  • Память не меняется.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме