Рекомендательные системы — различия между версиями
(Новая страница: «'''Рекомендательные системы''' - программы, которые пытаются предсказать, какие объекты бу…») |
|||
Строка 6: | Строка 6: | ||
* Предмет рекомендации. | * Предмет рекомендации. | ||
− | * Цель | + | * Цель рекомендации. |
* Контекст рекомендации. | * Контекст рекомендации. | ||
* Источник рекомендации. | * Источник рекомендации. | ||
Строка 23: | Строка 23: | ||
Очевидно, что явное оценивание лучше, так как сам пользователь определяет насколько ему интересен тот или иной объект, однако из-за непостоянства в получении явных оценок от пользователей, на практике используется оба подхода. | Очевидно, что явное оценивание лучше, так как сам пользователь определяет насколько ему интересен тот или иной объект, однако из-за непостоянства в получении явных оценок от пользователей, на практике используется оба подхода. | ||
− | Формализуем задачу. Имеется множество пользователей <tex> u \in U </tex>, множество объектов <tex> i \in I </tex> и множество событий <tex> (r_{ui}, u, i, ...) \in D </tex> (действия, которые совершают пользователи с | + | Формализуем задачу. Имеется множество пользователей <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> \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_k) = Recommend_k(u, ...) </tex> | ||
* похожие объекты: <tex> u \mapsto (i_1, ..., i_M) = Similar_M(i) </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> |
Версия 18:34, 23 марта 2020
Рекомендательные системы - программы, которые пытаются предсказать, какие объекты будут интересны пользователю, имея определенную информацию о его профиле.
Обзор и постановка задачи
Основная задача рекомендательных систем - проинформировать пользователя о товаре или услуге, которая будет для него наиболее инетерсной и акутальной. Разнообразие таких систем можно проиллюстрировать основными характеристиками:
- Предмет рекомендации.
- Цель рекомендации.
- Контекст рекомендации.
- Источник рекомендации.
- Степень персонализации.
- Прозрачность.
- Формат рекомендации.
- Алгоритмы.
В центре таких систем лежит матрица предпочтений. В этой матрице одна из осей отвечает за пользователей, вторая за обхекты рекомендации. Заполнена же эта матрица значениями по заданной шкале (например от 1 до 5). Каждый клиент с малой долей вероятностью оценивал все объекты рекомендации, поэтому задача системы - это обобщение информации и предсказание, какое отношение к рекомендуемому обхекту будет у пользователя.
Пользовательские оценки, необходимые для составления матрицы предпочтений, можно получить двумя способами:
- явно (explicit ratings)
- неявно (implicit ratings)
Очевидно, что явное оценивание лучше, так как сам пользователь определяет насколько ему интересен тот или иной объект, однако из-за непостоянства в получении явных оценок от пользователей, на практике используется оба подхода.
Формализуем задачу. Имеется множество пользователей
, множество объектов и множество событий (действия, которые совершают пользователи с объектами). Каждое событие задается пользователем , объектом , своим результатом и, возможно, но не обяхательно, другими харакетристиками. По итогу требуется:- предсказать предпочтение:
- персональные рекомендации:
- похожие объекты:
Кластеризация пользователей
Определение: |
Коллаборативная фильтрация (англ. collaborative filtering) — это один из методов построения прогнозов (рекомендаций) в рекомендательных системах, использующий известные предпочтения (оценки) группы пользователей для прогнозирования неизвестных предпочтений другого пользователя. |
Основная идея метода - похожим пользователям нравятся похожие объекты.
Алгоритм можно разбить на следующие шаги:
- Выберем условную меру схожести пользователей по истории их оценок
- Объеденим пользователей в группы так, чтобы похожие пользователи оказывались в одном кластере
- Оценку пользователя предскажем как среднюю оценку кластера этому объекту
Проблемы алгоритма:
- Нечего рекомендовать новым пользователям, их невозможно определить к какому-нибудь кластеру,а значит и рекомендовать им нечего.
- Не учитывается контекст и специфика пользователя.
- Если в кластере нет оценки объекта, то предсказание невозможно.
User-based и item-based алгоритмы
Заменим жесткую кластеризацию на предположение, что фильм понравится пользователю, если он понравился его друзьям.