Как работает функция рекомендаций Amazon? - PullRequest
141 голосов
/ 24 февраля 2010

Какая технология скрывается за рекомендациями Amazon? Я считаю, что рекомендация Amazon в настоящее время является лучшей на рынке, но как они предоставляют нам такие важные рекомендации?

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

Любые материалы будут высоко оценены.

Обновление:

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

Из комментариев Дейва Анализ сходства образует основу для такого рода Рекомендационных двигателей. Также вот некоторые хорошие чтения по теме

  1. Анализ рынка демистификации
  2. Анализ корзины рынка
  3. Анализ сродства

Рекомендуемое чтение:

  1. Интеллектуальный анализ данных: концепции и методика

Ответы [ 8 ]

103 голосов
/ 26 февраля 2010

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

Имейте в виду источники данных, которые они должны добывать ...

  1. Приобретенные корзины покупок = реальные деньги от реальных людей, потраченные на реальные товары = мощные данные и многое из этого.
  2. Товары добавлены в корзину, но заброшены.
  3. Эксперименты по ценообразованию онлайн (A / B-тестирование и т. Д.), В которых они предлагают одни и те же продукты по разным ценам и видят результаты
  4. Эксперименты по упаковке (A / B-тестирование и т. Д.), В которых они предлагают разные продукты в разных «связках» или скидку на различные пары предметов
  5. Списки пожеланий - что на них написано специально для вас - и в совокупности их можно обрабатывать аналогично другому потоку данных анализа корзины
  6. Реферальные сайты (идентификация того, откуда вы пришли, может подсказать другие интересующие вас предметы)
  7. Время задержки (как долго, прежде чем вы нажмете назад и выберите другой предмет)
  8. Рейтинги, сделанные вами или теми, кто находится в вашей социальной сети / кругах покупателей - если вы оцениваете понравившиеся вам вещи, вы получаете больше того, что вам нравится, и если вы подтверждаете нажатием кнопки «У меня уже есть это», они создают очень полный профиль вас.
  9. Демографическая информация (ваш адрес доставки и т. Д.) - они знают, что популярно в вашем регионе для ваших детей, вас, вашего супруга и т. Д.
  10. Сегментация пользователя = Вы купили 3 книги в отдельные месяцы для малыша? скорее всего есть ребенок или больше .. и т. д.
  11. Прямой маркетинг кликает по данным - вы получили от них электронное письмо и кликнули? Они знают, какое это было электронное письмо, на что вы нажали и купили ли вы его в результате.
  12. Нажмите пути в сеансе - что вы просматривали независимо от того, вошли ли они в вашу корзину
  13. Количество просмотров товара до окончательной покупки
  14. Если вы имеете дело с магазином кирпичей и растворов, у них также может быть история ваших физических покупок (например, игрушки или что-то в Интернете, а также физический магазин)
  15. и т.д.. и т. д.

К счастью, люди ведут себя одинаково в совокупности, поэтому, чем больше они знают о покупательском населении в целом, тем лучше они знают, что будут продаваться, а что нет, и с каждой транзакцией и каждым рейтингом / списком пожеланий добавляют / просматривают, что они знают, как более индивидуально настроить рекомендации. Имейте в виду, что это всего лишь небольшая выборка из всего набора влияний того, что заканчивается рекомендациями и т. Д.

Теперь у меня нет внутренних знаний о том, как Amazon ведет бизнес (там никогда не работал), и все, что я делаю, это говорю о классических подходах к проблеме онлайн-торговли - раньше я был премьер-министром, который работал над анализом данных и аналитикой. для продукта Microsoft под названием Commerce Server. Мы поставили на Commerce Server инструменты, позволяющие людям создавать сайты с похожими возможностями ... но чем больше объем продаж, тем лучше данные, тем лучше модель - и Amazon БОЛЬШОЙ. Я могу только представить, как весело играть с моделями с таким большим количеством данных на коммерческом сайте. Теперь многие из этих алгоритмов (например, предиктор, который был запущен на коммерческом сервере) перешли на прямую жизнь в Microsoft SQL .

Вы должны иметь четыре основных варианта:

  1. Amazon (или любой розничный продавец) просматривает сводные данные по тоннам транзакций и тоннам людей ... это позволяет им даже очень неплохо рекомендовать анонимных пользователей на своем сайте.
  2. Amazon (или любой изощренный розничный продавец) отслеживает поведение и покупки любого, кто вошел в систему, и использует его для дальнейшего уточнения данных массового агрегирования.
  3. Часто есть средства перебора накопленных данных и получения «редакционного» контроля над предложениями для менеджеров по продуктам определенных линий (например, некоторых людей, которые владеют вертикалью «цифровых камер» или вертикалью «романсов» и т. П.) где они действительно эксперты
  4. Часто бывают рекламные предложения (например, Sony, Panasonic, Nikon, Canon, Sprint или Verizon платят розничному продавцу дополнительные деньги или дают лучшую скидку при больших количествах или других вещах в этих строках), которые вызывают определенные «предложения». чтобы подняться на вершину чаще, чем другие - для этого всегда есть какая-то разумная бизнес-логика и бизнес-причина, нацеленные на увеличение прибыли на каждую транзакцию или сокращение оптовых затрат и т. д.

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

Как правило, с каждой отдельной задачей на странице ассоциируется другой конвейер - у вас может быть тот, который рекомендует «пакеты / апселлы» (т. Е. Купить его с товаром, на который вы смотрите), и тот, который делает «альтернативы» (т. е. купить это вместо того, на что вы смотрите) и другое, которое выбирает предметы, наиболее тесно связанные с вашим списком пожеланий (по категориям товаров или аналогичным).

Результаты этих конвейеров могут быть размещены в различных частях страницы (над полосой прокрутки, под прокруткой, слева, справа, разными шрифтами, изображениями разного размера и т. Д.) И проверены на Посмотрите, какие из них работают лучше всего. Поскольку вы используете удобные модули plug-and-play, которые определяют бизнес-логику для этих конвейеров, вы получаете моральный эквивалент блоков lego, которые позволяют легко выбирать и выбирать бизнес-логику, которую вы хотите применять при создании другого конвейера. что позволяет быстрее инноваций, больше экспериментов, и, в конечном итоге, более высокую прибыль.

Это помогло вообще? Надеюсь, это даст вам некоторое представление о том, как это работает в целом для любого сайта электронной коммерции - не только для Amazon. Amazon (от общения с друзьями, которые там работали) очень ориентирован на данные и постоянно измеряет эффективность пользовательского опыта, цен, продвижения, упаковки и т. Д. - он очень сложный розничный продавец в Интернете и, вероятно, находится на переднем крае множество алгоритмов, которые они используют для оптимизации прибыли - и это, вероятно, собственные секреты (вы знаете, как формула для секретных специй KFC) и охраняются как таковые.

28 голосов
/ 24 февраля 2010

Это не имеет прямого отношения к системе рекомендаций Amazon, но может быть полезно изучить методы, используемые людьми, которые участвовали в Netflix Prize , конкурсе на разработку лучшей системы рекомендаций с использованием пользователя Netflix. данные. В их сообществе содержится много полезной информации о методах интеллектуального анализа данных в целом.

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

R. Белл, Ю. Корен, К. Волинский, " Решение БелКор 2008 для премии Netflix ", (2008).

A. Тошер, М. Ярер, « Решение BigChaos для премии Netflix 2008 », (2008).

A. Тошер, М. Ярер, Р. Легенштейн, " Улучшенные алгоритмы на основе соседства для крупномасштабных рекомендательных систем ", SIGKDD Workshop по крупномасштабным рекомендательным системам и конкурсу на призы Netflix (KDD'08), ACM Press (2008).

Y. Корен, " Решение BellKor для Гран-при Netflix ", (2009).

A. Тошер, М. Ярер, Р. Белл, " Решение BigChaos для Гран-при Netflix ", (2009).

M. Пиотт, М. Шабберт, « Прагматическая теория решения Гран-при Netflix », (2009).

Работы за 2008 год принадлежат первому году премии "Прогресс". Я рекомендую сначала прочитать более ранние, потому что последующие основаны на предыдущей работе.

21 голосов
/ 13 марта 2010

Я наткнулся на эту бумагу сегодня:

Может быть, он предоставляет дополнительную информацию.

20 голосов
/ 13 июня 2011

(Отказ от ответственности: раньше я работал в Amazon, хотя я не работал в группе рекомендаций.)

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

Просто посмотрите, какую форму принимают рекомендации: на моей главной странице все они имеют форму "Вы просматривали X ... Клиенты, которые также просматривали это, также просматривали ...", или ещесмесь предметов, похожих на вещи, которые я покупал или смотрел раньше.Если я специально захожу на мою страницу «Рекомендовано для вас», в каждом пункте описывается, почему мне рекомендуется: «Рекомендовано, потому что вы купили ...», «Рекомендовано, потому что вы добавили X в свой список пожеланий ...» и т. Д. Этоклассический признак совместной фильтрации по элементам.

Так как же работает совместная фильтрация по элементам?По сути, для каждого элемента вы строите «соседство» связанных элементов (например, просматривая, какие элементы люди просматривали вместе или какие элементы они покупали вместе), чтобы определить сходство, вы можете использовать такие метрики, как Jaccardindex ; корреляция - еще одна возможность, хотя я подозреваю, что Amazon не использует данные рейтингов очень сильно).Затем, когда я просматриваю товар X или совершаю покупку Y, Amazon предлагает мне вещи в том же районе, что и X или Y.

Описаны некоторые другие подходы, которые Amazon может потенциально использовать, но, вероятно, нет,здесь: http://blog.echen.me/2011/02/15/an-overview-of-item-to-item-collaborative-filtering-with-amazons-recommendation-system/

Многое из того, что описывает Дейв, почти наверняка не сделано в Amazon.(Рейтинги тех, кто находится в моей социальной сети? Нет, у Amazon нет моих социальных данных. В любом случае, это было бы серьезной проблемой конфиденциальности, поэтому Amazon было бы сложно сделать это, даже если у них были эти данные:люди не хотят, чтобы их друзья знали, какие книги или фильмы они покупают. Демографическая информация? Нет, ничто в рекомендациях не предполагает, что они смотрят на это. [В отличие от Netflix, который выявляет то, что смотрят другие люди в моем регионе.])

3 голосов
/ 24 февраля 2010

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

Другая возможность - отслеживать частоту заказа товара B в течение N дней после заказа товара A, что может указывать на корреляцию.

2 голосов
/ 24 февраля 2010

Насколько я знаю, он использует Обоснование на основе случая в качестве двигателя для него.

Вы можете видеть в этих источниках: здесь , здесь и здесь .

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

0 голосов
/ 14 июня 2018

Если вам нужен практический учебник (с открытым исходным кодом R), то вы могли бы сделать хуже, чем пройти через это: https://gist.github.com/yoshiki146/31d4a46c3d8e906c3cd24f425568d34e

Это оптимизированная во время выполнения версия другой части работы: http://www.salemmarafi.com/code/collaborative-filtering-r/

Однако изменение кода на первой ссылке выполняется НАМНОГО быстрее, поэтому я рекомендую использовать это (я обнаружил, что единственная медленная часть кода yoshiki146 - это последняя процедура, которая генерирует рекомендации на уровне пользователя- мои данные на моей машине заняли около часа).

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

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

Полученная таблица можетрекомендовать группу / продукт на основе другой выбранной группы / продукта.

В следующем разделе кода идет шаг вперед с помощью совместной фильтрации на основе USER (или клиента).

Вывод этогобольшой стол с топ-100 лентами / продуктами, рекомендованными для данного пользователя / клиента

0 голосов
/ 24 февраля 2010

Кто-то сделал презентацию в нашем университете на прошлой неделе и сослался на систему рекомендаций Amazon. Я считаю, что он использует форму K-Means Clustering , чтобы объединить людей в различные покупательские привычки. Надеюсь, это поможет:)

Проверьте это тоже: http://www.almaden.ibm.com/cs/people/dmodha/ml02.ps и как HTML .

...