Как работает функция рекомендаций Amazon?

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

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

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

Обновить:

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

Из комментариев Дейва, Affinity Analysis формирует основу для такого рода рекомендательных двигателей. Также вот некоторые хорошие чтения по теме

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

Предлагаемое чтение:

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

8 ответов

Решение

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

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

  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) и охраняемые как таковые.

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

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

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

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

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

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

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

М. Пиотт, М. Хабберт, " Решение по прагматической теории гран-при Netflix", (2009).

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

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

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

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

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

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

Так как же работает совместная фильтрация от элемента к элементу? По сути, для каждого элемента вы строите "соседство" связанных элементов (например, просматривая элементы, которые люди просматривали вместе, или элементы, которые они покупали вместе), чтобы определить сходство, вы можете использовать такие метрики, как индекс Jaccard; корреляция; Это еще одна возможность, хотя я подозреваю, что 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, который обнаруживает то, что смотрят другие люди в моем регионе.])

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

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

Насколько я знаю, он использует Case-Based Reasoning как движок для этого.

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

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

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

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

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

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

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

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

В следующем разделе кода идет шаг вперед с помощью совместной фильтрации на основе ПОЛЬЗОВАТЕЛЯ (или клиента).

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

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

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

Другие вопросы по тегам