Из компонент получается один скаляр
Скалярное произведение двух векторов одинаковой размерности определено как
Операция выполняет два действия: перемножает соответствующие компоненты, затем суммирует все результаты. Для , промежуточный вектор произведений равен , а dot равен 11. Покомпонентный результат называется произведением Адамара и не должен подменять скалярный итог.
Shape помогает обнаружить ошибку: [n] · [n] даёт скаляр, тогда как [n] * [n] во многих библиотеках даёт [n]. В NumPy это различие видно как x @ y против x * y.
Арифметика кодирует евклидов угол
Для ненулевых векторов евклидово скалярное произведение связано с углом :
При , dot равен , а , поэтому . Если заменить на , dot станет 4: вертикальная ось согласована с сильнее горизонтальной.
Знак даёт качественную информацию:
- : угол острый;
- : векторы ортогональны или один из них нулевой;
- : угол тупой.
Условие dot = 0 само по себе не разрешает говорить об угле, если присутствует нулевой вектор: арифметическая сумма определена, но направление нулевого вектора отсутствует.
Компенсация вкладов создаёт ортогональность
Возьмём . Тогда
Ортогональность возникла не потому, что каждое произведение равно нулю, а потому, что отрицательный и положительный вклады точно компенсировались. Вектор является поворотом на 90 градусов и имеет ту же длину 5.
Dot измеряет и направление, и масштаб
Если , то . Если , угол остаётся нулевым, но dot удваивается до 50. Если , длины прежние, а dot равен . Поэтому большой положительный score может быть следствием большой длины, сильного совпадения направления или обоих факторов.
Это существенно для attention: score query-key до нормировки зависит от масштаба представлений. Деление на в scaled dot-product attention управляет масштабом типичных logits, но не превращает каждый dot в cosine.
Неравенство Коши–Буняковского
гарантирует, что нормированное отношение лежит в . Равенство достигается для линейно зависимых векторов: знак плюс для одного направления и минус для противоположных. В floating-point вычислениях отношение может стать из-за округления; перед arccos его допустимо ограничить диапазоном . Такое ограничение исправляет только численный шум, но не несовместимые shapes и не неверную формулу.
Вычисление dot длины требует умножений и сложений при последовательном суммировании. В attention такие суммы вычисляются для множества пар query-key. Нижняя лаборатория показывает и промежуточные произведения, и итог: следите, какие вклады усиливают друг друга, а какие компенсируются.