Я создаю систему рекомендаций. Чтобы измерить сходство между вектором профиля пользователя и вектором товара, мы можем использовать сходство Косинус.Как измерить сходство между параллельными векторами?
Допустим, что элемент представлен в виде вектора с компонентами n, где каждый компонент является признаком Предмета. (Все элементы находятся в диапазоне 0-5)
Рассмотрим
Профиль Вектор [2,0,2,2]
Элемент1 Характеристика Вектор является [4,0, 4,4]
Элемент2 Функция Vector является [1,0,1,1]
Здесь cosinesimilarity(User,Item1)
равно cosinesimilarity(User,Item2)
, который 1. Это потому, что все они действительно похожи.
Но Item1 лучше, чем Item2 для Пользователя, поскольку он имеет более высоко ценимые функции.
Использование dotproduct
в качестве показателя сходства даст желаемые результаты в вышеуказанном случае.
Большинство материалов и реализаций лекций используют метрику CosineSymilarity. Каков правильный способ выбора функции вычисления подобия?