Кейс 1: Сравнение объектов и пользователей
Использование евклидова расстояния
Когда требуется сравнивать числовые объекты, евклидово расстояние часто оказывается самым естественным выбором. Оно хорошо работает в ситуациях, где признаки имеют сопоставимый смысл и находятся в одном масштабе. В таких условиях расстояние напрямую отражает степень близости объектов.
Скалярное произведение, в свою очередь, чаще применяется в рекомендательных системах. Оно позволяет оценить, насколько пользователь и объект "подходят" друг другу: чем больше значение, тем сильнее совпадение, причём учитывается не только направление предпочтений, но и их выраженность.

Постановка задачи
Рассмотрим типичную задачу из прикладного машинного обучения и рекомендательных систем. У нас есть пользователи и объекты (товары, сервисы, подписки), описанные набором числовых признаков. Мы хотим понять, какие пользователи похожи друг на друга и какие объекты им подходят.
Предположим, каждый пользователь описывается вектором:
Это классический случай, где признаки:
имеют понятный физический смысл
измеряются в разных единицах
должны вносить сопоставимый вклад
Шаг 1: нормализация признаков
Без нормализации евклидово расстояние работать корректно не будет. Доход в тысячах единиц просто "раздавит" возраст и частоту покупок.
Один из простейших и часто используемых подходов – это min-max нормализация:
В реальном проекте min и max считаются по всей выборке, но для примера зафиксируем их вручную.
Допустим, у нас есть два пользователя:
После нормализации оба пользователя превращаются в точки в одном и том же масштабе.
Шаг 2: евклидово расстояние между пользователями
Теперь мы можем корректно измерить "общую близость" профилей.
Формула евклидова расстояния:
PHP-реализация:
Использование:
Малое значение означает, что пользователи похожи по совокупности признаков. В нашем случае расстояние ≈ 0.4197 означает, что пользователи довольно хорошо различаются по возрасту, доходу и активности покупок.
Под "малым" евклидовым расстоянием понимается значение, близкое к нулю и существенно меньше типичных расстояний между объектами в выборке (как правило, менее 0.2–0.3 для нормализованных признаков).
Именно по этому принципу работают:
k-NN для поиска похожих пользователей
сегментация клиентов
Важно подчеркнуть: евклидово расстояние отвечает на вопрос "насколько профили близки в целом", а не "насколько они хорошо взаимодействуют с каким-нибудь объектом".
Шаг 3: переход к объектам и dot product
Теперь добавим объекты – например, товары. Пусть каждый товар описывается вектором предпочтений:
Это уже не профиль пользователя, а направление, в котором "смотрит" товар.
Пример:
Теперь мы хотим понять, насколько пользователь и товар подходят друг другу. Здесь евклидово расстояние уже не так удобно. Нам важно, чтобы большие значения признаков пользователя усиливали релевантные признаки товара.
Именно здесь появляется dot product:
PHP-код:
Использование:
Если значение большое, это означает: пользователь сильно выражен по тем признакам, которые важны для данного товара.
В нашем случае по результату можно сделать вывод: если этот товар важен для людей с высоким доходом и активными покупками, то пользователь A подходит умеренно, но не идеально.
Такая оценка (score) – это основа рекомендательных систем:
embeddings пользователей и товаров
нейросетевые рекомендатели
Почему здесь работают разные меры
Евклидово расстояние хорошо отвечает на вопрос: "Кто из пользователей похож друг на друга?"
Dot product отвечает на другой вопрос: "Насколько хорошо пользователь и объект сочетаются?"
Это принципиально разные задачи, и попытка решать их одной и той же мерой часто приводит к плохим результатам.
Если сказать коротко, но точно:
расстояние – про близость
скалярное произведение – про взаимодействие и силу отклика
Практическое резюме кейса
Важно: в реальных системах эти два подхода почти всегда используются вместе. Сначала мы ищем похожих пользователей или сегменты с помощью евклидова расстояния. Затем внутри сегмента ранжируем объекты с помощью dot product.
Именно такая комбинация лежит в основе большинства production-рекомендательных систем – от простых e-commerce решений до сложных ML-пайплайнов.
Last updated