22
правки
Изменения
Нет описания правки
* Предмет рекомендации.
* Цель Рекомендациирекомендации.
* Контекст рекомендации.
* Источник рекомендации.
Очевидно, что явное оценивание лучше, так как сам пользователь определяет насколько ему интересен тот или иной объект, однако из-за непостоянства в получении явных оценок от пользователей, на практике используется оба подхода.
Формализуем задачу. Имеется множество пользователей <tex> u \in U </tex>, множество объектов <tex> i \in I </tex> и множество событий <tex> (r_{ui}, u, i, ...) \in D </tex> (действия, которые совершают пользователи с обхектамиобъектами). Каждое событие задается пользователем <tex> u </tex>, объектом <tex> i </tex>, своим результатом <tex> r_{ui} </tex> и, возможно, но не обяхательно, другими харакетристиками. По итогу требуется:
* предсказать предпочтение: <tex> \hat{r_{ui}} = Predict(u, i, ...) \approx r_{ui} </tex>
* персональные рекомендации: <tex> u \mapsto (i_1, ..., i_k) = Recommend_k(u, ...) </tex>
* похожие объекты: <tex> u \mapsto (i_1, ..., i_M) = Similar_M(i) </tex>
==Кластеризация пользователей==
{{Определение
|definition=
'''Коллаборативная фильтрация''' (англ. ''collaborative filtering'') {{---}} это один из методов построения прогнозов (рекомендаций) в рекомендательных системах, использующий известные предпочтения (оценки) группы пользователей для прогнозирования неизвестных предпочтений другого пользователя.
}}
Основная идея метода - похожим пользователям нравятся похожие объекты.
Алгоритм можно разбить на следующие шаги:
* Выберем условную меру схожести пользователей по истории их оценок <tex> sim(u, v) </tex>
* Объеденим пользователей в группы так, чтобы похожие пользователи оказывались в одном кластере <tex> u \mapsto F(u) </tex>
* Оценку пользователя предскажем как среднюю оценку кластера этому объекту <tex> \hat{r_{ui}} = \frac{1}{|F(u)|}\sum_{u \in F(u)}{}{r_{ui}} </tex>
Проблемы алгоритма:
* Нечего рекомендовать новым пользователям, их невозможно определить к какому-нибудь кластеру,а значит и рекомендовать им нечего.
* Не учитывается контекст и специфика пользователя.
* Если в кластере нет оценки объекта, то предсказание невозможно.
== User-based и item-based алгоритмы ==
Заменим жесткую кластеризацию на предположение, что фильм понравится пользователю, если он понравился его друзьям.
<tex> \hat{r_{ui}} = \bar{r_u} + \frac{\sum_{v \in U_i}{}{sim(u, v)(r_{vi} - \bar{r_v})}}{\sum_{v \in {U_i}}{}{sim(u, v)}} </tex>