Кейс 2: Оценка релевантности объекта

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

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

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

Рассмотрим задачу оценки релевантности объекта. Пусть у нас есть набор объектов (например, пользователей, товаров или документов), и каждый из них описывается числовыми признаками:

  • частота использования

  • уровень активности

  • недавность взаимодействия

Каждый признак вносит разный вклад в итоговую оценку. Это знание мы кодируем в виде вектора весов.

Объект представляется вектором признаков

x=(x1,x2,,xn)\mathbf{x} = (x_1, x_2, \dots, x_n)

А модель — вектором весов

w=(w1,w2,,wn)\mathbf{w} = (w_1, w_2, \dots, w_n)

Почему именно скалярное произведение

Скалярное произведение вычисляет взвешенную сумму признаков:

xw=ixiwi\mathbf{x} \cdot \mathbf{w} = \sum_i x_i w_i

В этом кейсе:

  • важна сила признаков, а не только их относительные пропорции

  • масштаб значений имеет смысл

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

Поэтому ни евклидово расстояние, ни косинусное сходство здесь не подходят.

Вариант 1. Реализация на чистом PHP

Скалярное произведение

Пример скоринга объекта

Чем выше значение, тем выше оценка релевантности объекта.

Интерпретация результата

  • первый признак вносит вклад 3.0

  • второй – 2.5

  • третий – 3.0

Результат легко интерпретируется и объясняется, что особенно важно в прикладных задачах.

Вариант 2. Реализация с использованием Rubix ML

В Rubix ML скалярное произведение используется внутри линейных моделей. Рассмотрим пример линейной регрессии без обучения – с заранее заданными весами.

Пример линейного, регрессионного скоринга

Что происходит внутри

Ridge – это линейная регрессия с L2-регуляризацией (т.е. Ridge = Linear Regression + L2):

y^=w1x1+w2x2+w3x3+b\hat y = w_1​x_1​+w_2 x_2​+w_3x_3​ + b

где веса находятся решением:

w=(XX+αI)1Xy\mathbf{w} = \left( \mathbf{X}^\top \mathbf{X} + \alpha \mathbf{I} \right)^{-1} \mathbf{X}^\top \mathbf{y}

Связь с линейными моделями

Скалярное произведение — это сердце линейных моделей:

  • линейная регрессия

  • логистическая регрессия

  • линейные классификаторы

  • нейронные сети (на уровне отдельных нейронов)

Каждый нейрон фактически вычисляет скалярное произведение входов и весов.

Короткий вывод

circle-info

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

Эта идея станет ключевой при переходе к обучаемым моделям, где веса вектора (w\mathbf{w}) подбираются автоматически на данных.

Last updated