Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

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

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

Предложите клиенту предложения в других самых высоких списках.

Ответ 3

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

Как вы это делаете, зависит от типа данных, которые вы хотите связать и как они организованы. Это зависит от того, как вы определяете "связанные" в области вашего приложения.

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

Однако вы всегда можете попробовать более сложные вещи. Сохраняя запись других пользователей, которые требовали этот "продукт", и предлагали другие "продукты", которые требовали пользователи в прошлом (продукт может быть чем угодно - от книги до песни до всего, что вы можете себе представить). Что-то, что делают большинство основных сайтов, у которых есть функция-предложение (хотя они, вероятно, принимают большую информацию, от атрибутов продукта до демографии, чтобы лучше всего обслуживать клиента).

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

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

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

Ответ 4

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

Ответ 5

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

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

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

Ответ 6

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

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

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

текст ссылки

Ответ 7

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

Ответ 8

просто думая вслух:

вам нужно рассчитать корреляцию между всеми и всеми (O ^ 2?) - если ваш шаблон хороших и плохих оценок совпадает с тем, что у кого-то другого, тогда он может предложить вам свои вещи с высоким рейтингом.

но как это работает, если у вас есть только несколько точек данных?

рейтинги должны быть нормализованы - рейтинг 2 * от кого-то, кто оценивает все остальное, поскольку 1 * явно да-да, а рейтинг 2 * тем, кто оценивает все остальное как 4 * -5 *, больше похож на down-vote

как остановить спамеров, оценивая все свои достоинства и конкуренты плохо? может быть, система корреляции все равно - если спамеры не коррелируют с вашими оценками, то их предложения девальвируются.

Ответ 9

Модуль CPAN Math:: Preference:: SVD - это, по-видимому, "механизм предпочтений/рекомендаций, основанный на разложении одной ценности"

Ответ 10

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

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

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

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

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

Ответ 11

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