Как работают системы рекомендаций? - PullRequest
28 голосов
/ 09 марта 2009

Мне всегда было любопытно, как работают эти системы. Например, как netflix или Amazon определяют, какие рекомендации давать на основании прошлых покупок и / или рейтингов? Есть ли какие-нибудь алгоритмы для чтения?

Просто, чтобы здесь не было неправильных представлений, у меня нет практической причины спрашивать. Я просто спрашиваю из чистого любопытства.

(Кроме того, если есть вопрос по этой теме, укажите мне на него. "Система рекомендаций" - сложный термин для поиска.)

Ответы [ 9 ]

28 голосов
/ 09 марта 2009

По своей сути, большинство систем рекомендаций работают, говоря одно из двух.

Рекомендации для пользователей:
Если пользователю А нравятся пункты 1, 2, 3, 4 и 5,
И пользователю B нравятся пункты 1,2,3 и 4
Тогда пользователю Б, скорее всего, также понравится пункт 5

Рекомендации по пунктам:
Если пользователи, которые приобретают товар 1, также непропорционально могут приобрести товар 2
И пользователь А приобрел предмет 1
Тогда пользователь А, вероятно, заинтересуется пунктом 2

И вот вам мозги из алгоритмов, которые вы должны знать:
- Установить сходство (индекс Жакара и коэффициент Танимото)
- n-мерное евклидово расстояние
- алгоритм k-средних
- Машины опорных векторов

25 голосов
/ 09 марта 2009

Это настолько коммерчески важное приложение, что Netflix представила приз в 1 миллион долларов за улучшение своих рекомендаций на 10% .

Через пару лет люди сближаются (я думаю, что сейчас они выросли примерно на 9%), но это трудно по многим, многим причинам. Вероятно, самым большим фактором или самым большим начальным улучшением премии Netflix было использование статистического метода, называемого разложение по сингулярным числам .

Я настоятельно рекомендую вам прочитать Если вам это понравилось, вы обязательно полюбите это для более подробного обсуждения Премии Netflix в частности и систем рекомендаций в целом.

В принципе, принцип Amazon и т. Д. Один и тот же: они ищут шаблоны. Если кто-то хорошо купил Трилогию «Звездных войн», то, скорее всего, ему больше нравится Баффи, истребительница вампиров, чем средний покупатель (чисто вымышленный пример).

18 голосов
/ 09 марта 2009

Книга О'Рейли "Программирование Коллективного Разума" имеет хорошую главу, показывающую, как она работает. Очень читабельно.

Все примеры кода написаны на Python, но это не большая проблема.

8 голосов
/ 09 марта 2009

GroupLens Research в Университете Миннесоты изучает системы рекомендаций и щедро делится своими наборами данных исследований и .

Их исследования немного расширяются с каждым годом, и в настоящее время рассматриваются такие особенности, как онлайн-сообщества, социальная совместная фильтрация и проблемы пользовательского интерфейса при представлении сложных данных.

4 голосов
/ 09 марта 2009

Это проблема классификации, то есть классификация пользователей по группам пользователей, которые могут быть заинтересованы в определенных элементах.

После классификации в такую ​​группу легко изучить покупки / лайки других пользователей в этой группе и порекомендовать их.

Поэтому стоит обратить внимание на Байесовскую классификацию и нейронные сети (многослойные персептроны, радиальные базисные функции, машины опорных векторов).

4 голосов
/ 09 марта 2009

Алгоритм Netflix для его системы рекомендаций на самом деле является конкурентным усилием, в котором программисты продолжают конкурировать, добиваясь повышения точности системы.

Но в самых основных терминах система рекомендаций будет проверять выбор пользователей, которые точно соответствуют демографической / интересующей информации другого пользователя.

Итак, если вы белый мужчина, 25 лет, из Нью-Йорка, система рекомендаций может попытаться доставить вам продукты, приобретенные другими белыми мужчинами на северо-востоке США, в возрасте от 21 до 30 лет.

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

3 голосов
/ 09 марта 2009

Один из методов - объединить пользователей в кластеры и рекомендовать продукты других пользователей в том же кластере.

2 голосов
/ 30 мая 2018

Существует в основном два типа рекомендательных систем, которые работают по-разному:

1. Контент на основе . Эти системы дают рекомендации на основе характерной информации. Это информация об элементах (ключевые слова, категории и т. Д.) И пользователях (предпочтения, профили и т. Д.).

2. Совместная фильтрация . Эти системы основаны на взаимодействии пользователя с элементом. Это такая информация, как рейтинги, количество покупок, лайки и т. Д.

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

0 голосов
/ 18 июня 2014

Конечно, есть алгоритмы, которые порекомендуют вам предпочтительные предметы. Для этого были реализованы различные методы анализа данных. Если вы хотите получить более подробную информацию о Рекомендаторе, посетите этот блог. Здесь были рассмотрены все основы, чтобы знать о системе рекомендаций.

...