Кейс 2: Оценка релевантности объекта
Использование скалярного произведения
Скалярное произведение векторов используется в задачах, где важно не расстояние между объектами и не только направление в пространстве признаков, а вклад каждого признака в итоговый результат. Такой подход лежит в основе линейных моделей, скоринга и большинства систем ранжирования.
Постановка задачи
Рассмотрим задачу оценки релевантности объекта. Пусть у нас есть набор объектов (например, пользователей, товаров или документов), и каждый из них описывается числовыми признаками:
частота использования
уровень активности
недавность взаимодействия
Каждый признак вносит разный вклад в итоговую оценку. Это знание мы кодируем в виде вектора весов.
Объект представляется вектором признаков
А модель — вектором весов
Почему именно скалярное произведение
Скалярное произведение вычисляет взвешенную сумму признаков:
В этом кейсе:
важна сила признаков, а не только их относительные пропорции
масштаб значений имеет смысл
вклад каждого признака явно контролируется весами
Поэтому ни евклидово расстояние, ни косинусное сходство здесь не подходят.
Вариант 1. Реализация на чистом PHP
Скалярное произведение
Пример скоринга объекта
Чем выше значение, тем выше оценка релевантности объекта.
Интерпретация результата
первый признак вносит вклад 3.0
второй – 2.5
третий – 3.0
Результат легко интерпретируется и объясняется, что особенно важно в прикладных задачах.
Вариант 2. Реализация с использованием Rubix ML
В Rubix ML скалярное произведение используется внутри линейных моделей. Рассмотрим пример линейной регрессии без обучения – с заранее заданными весами.
Пример линейного, регрессионного скоринга
Что происходит внутри
Ridge – это линейная регрессия с L2-регуляризацией (т.е. Ridge = Linear Regression + L2):
где веса находятся решением:
Связь с линейными моделями
Скалярное произведение — это сердце линейных моделей:
линейная регрессия
логистическая регрессия
линейные классификаторы
нейронные сети (на уровне отдельных нейронов)
Каждый нейрон фактически вычисляет скалярное произведение входов и весов.
Короткий вывод
Эта идея станет ключевой при переходе к обучаемым моделям, где веса вектора () подбираются автоматически на данных.
Last updated