Алгоритм предложения продуктов

Каков хороший алгоритм для предложения вещей, которые могут понравиться кому-то на основе их предыдущего выбора? (например, как популяризируется Amazon для предложения книг и используется в таких сервисах, как iRate Radio или YAPE, где вы получаете предложения по рейтингу)


person OJW    schedule 27.04.2009    source источник


Ответы (9)


Просто и понятно (корзина заказа):

Ведите список транзакций с точки зрения того, какие товары были заказаны вместе. Например, когда кто-то покупает видеокамеру на Amazon, он одновременно покупает и носитель для записи.

При принятии решения о том, что «рекомендуется» на данной странице продукта, просмотрите все заказы, в которых был заказан этот продукт, подсчитайте все другие товары, купленные в то же время, а затем отобразите 5 самых популярных товаров, которые чаще всего покупались в то же время. время.

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

С точки зрения рейтинговой системы (например, оценок фильмов):

Становится сложнее, когда вы вбрасываете рейтинги. Вместо отдельной корзины товаров, которые вы купили, у вас есть история оценок товаров покупателями.

В этот момент вы смотрите на интеллектуальный анализ данных, и сложность его огромна.

Простой алгоритм, тем не менее, недалеко от описанного выше, но принимает другую форму. Возьмите товары клиента с самой высокой и самой низкой оценкой и найдите других клиентов с аналогичными списками с самой высокой и самой низкой оценкой. Вы хотите сопоставить их с другими, у которых есть такие же крайние симпатии и антипатии — если вы сосредоточитесь только на симпатиях, то, когда вы предложите что-то, что они ненавидят, вы доставите им плохой опыт. В системах внушения вы всегда хотите ошибаться в сторону «теплого» опыта, а не «ненависти», потому что один плохой опыт испортит их от использования внушения.

Предлагайте покупателю товары из других списков.

person Adam Davis    schedule 27.04.2009
comment
Затем вы можете продолжить это, проверяя только поиски продуктов, сделанные людьми с той же демографической информацией (например, кавказскими мужчинами в возрасте 18-24 лет). - person TheTXI; 27.04.2009
comment
В идеале вы очень точно сегментируете рынок, демография, теги, обзор ключевых слов и т. Д. Все это будет использоваться в вашей системе предложений. Это может стать очень, очень сложным очень быстро ... Но для простой системы первого порядка вышеизложенное может работать очень хорошо. Как только это будет сделано, вы сможете настроить алгоритм и источники данных по своему вкусу... - person Adam Davis; 27.04.2009

Посмотрите на "Что такое хороший алгоритм рекомендации?" и его обсуждение на Hacker News.

person Jeff Moser    schedule 27.04.2009

Однозначного ответа нет, и маловероятно, что для этого существует стандартный алгоритм.

То, как вы это сделаете, сильно зависит от типа данных, которые вы хотите связать, и от того, как они организованы. Это зависит от того, как вы определяете «связанный» в рамках вашего приложения.

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

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

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

Сочетание любого из этих случаев может сработать для вас.

Я бы лично рекомендовал подумать о том, как вы хотите, чтобы алгоритм работал, и как предлагать сопутствующие «продукты». Затем вы можете изучить все варианты: от простого до сложного и сбалансировать свои потребности.

person alkar    schedule 27.04.2009

Алгоритмы рекомендуемых продуктов — это огромный бизнес в наши дни. Например, NetFlix предлагает 100 000 лишь за незначительное повышение точности своего алгоритма.

person TheTXI    schedule 27.04.2009

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

  • Programming CI: http://oreilly.com/catalog/9780596529321/ — довольно мягкое введение в образцы на Python.

  • CI в действии: http://www.manning.com/alag выглядит более подробно ( но я только что прочитал первую главу или 2), и у меня есть примеры на Java.

person Steve    schedule 27.04.2009
comment
+1. Я предпочитаю программирование CI, в котором, как мне кажется, больше баланса между теорией и практикой, CI в действии, которое, кажется, полностью посвящено рецептам использования библиотек Java. Но они оба достойны внимания. - person Rob Lachlan; 09.09.2009

Я думаю, что поиск в Google по методу наименьшей среднеквадратичной регрессии (или что-то в этом роде) может дать вам пищу для размышлений.

person wcm    schedule 27.04.2009

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

Сначала я бы нашел, где в приложении я буду использовать данные, которые будут использоваться, поэтому, если у меня есть магазин, он, вероятно, будет в кассе. Затем я бы сохранил связь между каждым товаром в корзине.

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

Я знаю, что это просто, и, вероятно, есть лучшие способы.

Но я надеюсь, что это поможет

person Sebastian Bender    schedule 27.04.2009

Анализ потребительской корзины — это область исследования, которую вы ищете:

Microsoft предлагает два подходящих алгоритма со своим сервером анализа: Алгоритм ассоциации Microsoft Алгоритм деревьев решений Microsoft

Ознакомьтесь с этой статьей msdn, чтобы узнать, как лучше всего использовать службы Analysis Services для решения этой проблемы.

текст ссылки

person Ralph Shillington    schedule 27.04.2009

существует рекомендательная платформа Certona, созданная amazon. Она может оказаться полезной. Она используется такими компаниями, как B&Q и Screwfix. Дополнительную информацию см. на сайте www.certona.com/‎.

person Joe Bambridge    schedule 03.11.2013