Dot product получает управляемый масштаб
Для query/key размерности d_k исходный score — их скалярное произведение. Scaled dot-product attention использует деление на√d_k:
Если компоненты независимы, центрированы и имеют единичную дисперсию, variance суммы d_kпроизведений равна d_k. Деление на√d_k возвращает масштаб порядка1. Это мотивация из L06, не предположение, автоматически истинное для любых введённых вручную Q/K.
Для третьей query[1,1] и keys[1,0],[0,1],[1,1] dots=[1,1,2]. После scaling это[1/√2,1/√2,√2]. Без scaling разность максимума и остальных больше, softmax становится более концентрированным.
Эксперимент. Выключите scaling при тех же X/W. Сравните coefficients, особенно при увеличении модуля элементов. Порядок scores сохраняется, но распределение может заметно измениться. При нулевых Q все scores равны0, и scaling не оказывает эффекта.
Под капотом. Для nпозиций и ширины d_k вычисляется n²dot products длины d_k. Сами линейные проекции имеют дополнительную стоимость; формула attention-matrix не описывает все FLOPs Transformer. FlashAttention и другие точные оптимизации меняют выполнение/хранение, но не должны подменять математическую операцию.