Кейс 1: Сравнение объектов и пользователей

Использование евклидова расстояния

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

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

Пользователи и товары в одном пространстве

Постановка задачи

Рассмотрим типичную задачу из прикладного машинного обучения и рекомендательных систем. У нас есть пользователи и объекты (товары, сервисы, подписки), описанные набором числовых признаков. Мы хотим понять, какие пользователи похожи друг на друга и какие объекты им подходят.

Предположим, каждый пользователь описывается вектором:

x=(возраст,доход,частота покупок)x = (\text{возраст}, \text{доход}, \text{частота покупок})

Это классический случай, где признаки:

  • имеют понятный физический смысл

  • измеряются в разных единицах

  • должны вносить сопоставимый вклад

Шаг 1: нормализация признаков

Без нормализации евклидово расстояние работать корректно не будет. Доход в тысячах единиц просто "раздавит" возраст и частоту покупок.

Один из простейших и часто используемых подходов – это min-max нормализация:

xi=ximin(xi)max(xi)min(xi)x_i’ = \frac{x_i - \min(x_i)}{\max(x_i) - \min(x_i)}

В реальном проекте min и max считаются по всей выборке, но для примера зафиксируем их вручную.

Допустим, у нас есть два пользователя:

После нормализации оба пользователя превращаются в точки в одном и том же масштабе.

Шаг 2: евклидово расстояние между пользователями

Теперь мы можем корректно измерить "общую близость" профилей.

Формула евклидова расстояния:

d(x,y)=i=1n(xiyi)2d(x, y) = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2}

PHP-реализация:

Использование:

Малое значение означает, что пользователи похожи по совокупности признаков. В нашем случае расстояние ≈ 0.4197 означает, что пользователи довольно хорошо различаются по возрасту, доходу и активности покупок.

circle-exclamation

Именно по этому принципу работают:

Важно подчеркнуть: евклидово расстояние отвечает на вопрос "насколько профили близки в целом", а не "насколько они хорошо взаимодействуют с каким-нибудь объектом".

Шаг 3: переход к объектам и dot product

Теперь добавим объекты – например, товары. Пусть каждый товар описывается вектором предпочтений:

y=(ориентация на возраст,ориентация на доход,ориентация на активность)y = (\text{ориентация на возраст}, \text{ориентация на доход}, \text{ориентация на активность})

Это уже не профиль пользователя, а направление, в котором "смотрит" товар.

Пример:

Теперь мы хотим понять, насколько пользователь и товар подходят друг другу. Здесь евклидово расстояние уже не так удобно. Нам важно, чтобы большие значения признаков пользователя усиливали релевантные признаки товара.

Именно здесь появляется dot product:

xy=i=1nxiyix \cdot y = \sum_{i=1}^{n} x_i y_i

PHP-код:

Использование:

Если значение большое, это означает: пользователь сильно выражен по тем признакам, которые важны для данного товара.

В нашем случае по результату можно сделать вывод: если этот товар важен для людей с высоким доходом и активными покупками, то пользователь A подходит умеренно, но не идеально.

Такая оценка (score) – это основа рекомендательных систем:

Почему здесь работают разные меры

Евклидово расстояние хорошо отвечает на вопрос: "Кто из пользователей похож друг на друга?"

Dot product отвечает на другой вопрос: "Насколько хорошо пользователь и объект сочетаются?"

Это принципиально разные задачи, и попытка решать их одной и той же мерой часто приводит к плохим результатам.

Если сказать коротко, но точно:

  • расстояние – про близость

  • скалярное произведение – про взаимодействие и силу отклика

Практическое резюме кейса

circle-exclamation

Именно такая комбинация лежит в основе большинства production-рекомендательных систем – от простых e-commerce решений до сложных ML-пайплайнов.

Last updated