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

144

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

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

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

Обновить:

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

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

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

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

  1. Интеллектуальный анализ данных: концепции и методика
Рейчел
источник
3
Вы пробовали просеивать их кучу патентов? google.com/patents
Dolph
Да, я проходил патент, но он не очень технический и поэтому был бы признателен за понимание технических аспектов механизма
Рэйчел
1
@ Дэйв: Этот вопрос сейчас открыт, и я был бы очень признателен, если бы вы смогли немного подробнее рассказать о технологии, лежащей в основе архитектуры и функциональности механизма рекомендаций, которые Amazon использует для предоставления рекомендаций.
Рейчел
1
Я бы не назвал систему рекомендаций Amazon «лучшей» или даже полезной. Вы заказываете мышку, она предлагает купить и другую. Зачем нормальному пользователю две мыши одновременно ???
1
@Rachel: Учитывая, что вы знаете, что система Amazon запатентована, и вы хотите разработать нечто подобное, я бы даже не взглянул на их патенты - и, конечно, не глядя на них, вы тоже не защитите, но это только начало.

Ответы:

105

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

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

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

Дэйв Квик
источник
1
Да. Это мне очень помогло, и я очень ценю ваш вклад в эту тему.
Рэйчел
удивительные идеи
Шоби
28

Это не имеет прямого отношения к системе рекомендаций 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 года принадлежат первому году премии "Прогресс". Я рекомендую сначала прочитать предыдущие, потому что более поздние основаны на предыдущей работе.

Джастин Пил
источник
2
Что мне нравится в этом ответе, так это то, что он указывает на то, что не существует «идеального» ответа, и что люди продолжают вводить новшества в этой области - всегда есть место для улучшения, и со временем меняются и новые методы применяются к проблемам будет решаться по-другому. И если вы прочитаете подробные ссылки, вы увидите, как существует «смесь» нескольких подходов к прогнозированию в каждом из крупных претендентов на приз. Отличные ссылки.
Дэйв Квик
20

(Отказ от ответственности: я раньше работал в 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 -с-амазонка-рекомендация-система /

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

Джейсон Р
источник
Amazon в течение многих лет выставлял круги на предмет покупок - которые были анонимными тенденциями покупок на основе доменного имени компании и почтового индекса. Прежде чем вы смогли получить информацию об этом, в круге покупок должно было быть не менее 50 различных покупателей, поэтому Amazon определенно сохраняла, отслеживала и использовала эту информацию, чтобы помочь себе (и другим) понять, что является популярным. Вы можете посмотреть на компакт-диски, электронику и покупки книг в вашем регионе или в вашей компании. Они были выставлены с 1999-2002 гг. forum.dvdtalk.com/archive/t-122436.html даже имеет копию и вставку текста из amazon, описывающего их.
Дэйв Квик
3

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

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

newdayrising
источник
2

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

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

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

coelhudo
источник
0

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

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

Крис Деннетт
источник
0

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

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

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

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

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

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

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

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

ChrisD
источник
1
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится. - Из обзора
Кос
Верно ... Используемый алгоритм - как уже говорили выше - совместная фильтрация. Этот метод CF вычисляет матрицу косинусного сходства и затем сортирует по этому сходству, чтобы найти «ближайшего соседа» для каждого элемента (музыкальная группа в приведенном примере, розничный продукт в моем приложении). Полученная таблица может рекомендовать группу / продукт на основе другой выбранной группы / продукта. В следующем разделе кода идет шаг вперед с помощью совместной фильтрации на основе ПОЛЬЗОВАТЕЛЯ (или клиента). Результатом этого является большая таблица с топ-100 лентами / продуктами, рекомендованными для данного пользователя / клиента
ChrisD
пожалуйста, отредактируйте свой ответ и добавьте эту информацию там, а не в разделе комментариев, спасибо
Кос