Як працює функція Рекомендації Amazon?


144

Яка технологія входить за екрани рекомендаційних технологій Amazon? Я вважаю, що рекомендація Amazon на даний момент є найкращою на ринку, але як вони надають нам такі відповідні рекомендації?

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

Будь-які матеріали будуть дуже вдячні.

Оновлення:

Цей патент пояснює, як робляться персоналізовані рекомендації, але це не дуже технічно, і тому було б дуже приємно, якщо можна було б отримати деяку інформацію.

З коментарів Дейва, Аналіз афінності є основою для такого роду Рекомендаційних двигунів. Ось також кілька хороших читань на Тему

  1. Демістифікуючий аналіз кошика на ринку
  2. Аналіз ринкових кошиків
  3. Аналіз спорідненості

Пропоноване читання:

  1. Обмін даними: поняття та техніка

3
Ви спробували просіювати їх купу патентів? google.com/patents
Дельф

Так, я переживав патент, але це не дуже технічно, і тому я би вдячний деяким уявленням про технічний аспект механізму
Рейчел,

1
@Dave: Це питання відкрите зараз, і я дуже вдячний, якщо ви можете дати більше інформації про технологію, що стоїть за архітектурою рекомендацій та функціоналом, який Amazon використовує для надання рекомендацій.
Рейчел

1
Я б не назвав систему рекомендацій Amazon "найкращою" або навіть корисною. Ви замовляєте мишу, вона пропонує також придбати ще одну. Чому нормальному користувачеві потрібно дві миші одночасно ???

1
@Rachel: З огляду на , що ви знаєте , система Амазонки запатентована , і ви хочете , щоб розробити що - щось подібне, я б навіть не глянув на свої патенти --- і, звичайно ж, не дивлячись, на них , не захищає вас або, але це початок.

Відповіді:


104

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

Майте на увазі джерела даних, які вони мають видобувати ...

  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, що сплачують додаткові гроші продавцеві, або дає кращу знижку на більшу кількість або інші речі в цих рядках), що спричинить певні "пропозиції" вгорі частіше за інших - за цією метою завжди є якась розумна ділова логіка та бізнес-причини, спрямовані на те, щоб зробити більше на кожній операції або зменшити оптові витрати тощо

З точки зору фактичної реалізації? Практично всі великі онлайн-системи зводяться до певного набору конвеєрів (або реалізації фільтруючого шаблону, або робочого процесу тощо. Ви називаєте це тим, що будете), що дозволяє оцінювати контекст за допомогою серії модулів, що застосовують певну форму логіка бізнесу.

Зазвичай з кожним окремим завданням на сторінці пов’язується інший конвеєр - у вас може бути такий, який рекомендує "пакети / розпродажі" (тобто купуйте цей товар, який ви дивитесь) і той, який робить "альтернативи" (тобто купувати це замість того, що ви дивитесь) та іншого, який витягує предмети, найбільш тісно пов'язані зі списку бажань (за категорією товару чи подібними).

Результати цих трубопроводів можна розмістити на різних частинах сторінки (над смужкою прокрутки, під прокруткою, зліва, праворуч, різними шрифтами, зображеннями різного розміру тощо) і перевірити, щоб побачити, які функції виконують найкращий. Оскільки ви використовуєте приємні модулі для підключення та відтворення, які визначають бізнес-логіку для цих трубопроводів, ви отримуєте моральний еквівалент лего-блоків, що дозволяє легко вибирати та вибирати з бізнес-логіки, яку ви хочете застосувати під час створення іншого конвеєра. що дозволяє швидше впроваджувати інновації, більше експериментувати і, врешті-решт, отримувати більше прибутку.

Це взагалі допомогло? Сподіваємось, це дасть вам трохи зрозуміти, як це взагалі працює для будь-якого веб-сайту електронної комерції - не лише Amazon. Amazon (від спілкування з друзями, які там працювали) дуже керується даними і постійно вимірює ефективність свого досвіду користувачів, а також ціноутворення, просування, упаковка тощо - вони є дуже складним роздрібним дилером в Інтернеті і, ймовірно, є на передньому краї дуже багато алгоритмів, які вони використовують для оптимізації прибутку - і це, ймовірно, власні секрети (ви знаєте, як формула секретних спецій KFC) і гарантовані як такі.


1
Так. Це дуже допомогло мені, і я дуже вдячний за ваші дані з цієї теми.
Рейчел

дивовижні уявлення
Шобі

28

Це не пов’язано безпосередньо з рекомендаційною системою Amazon, але може бути корисним вивчення методів, які використовуються людьми, які змагалися в премії Netflix , конкурсі на розробку кращої системи рекомендацій з використанням даних користувачів Netflix. У їх громаді існує багато хорошої інформації про методи видобутку даних загалом.

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

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

А. Тьошер, М. Джарер, « Рішення BigChaos до премії Netflix 2008 » (2008).

А. Тьошер, М. Джарер, Р. Легенштейн, « Покращені алгоритми на основі сусідства для широкомасштабних систем рекомендування », семінар SIGKDD з питань широкомасштабних систем рекомендування та конкурсу призів Netflix (KDD'08), ACM Press (2008) .

Ю. Корен, " Рішення BellKor до великої премії Netflix ", (2009).

А. Тьошер, М. Джарер, Р. Белл, " Рішення BigChaos до великої премії Netflix ", (2009).

М. Піотт, М. Шаббер, " Прагматична теоретична розв'язка Великої премії Netflix ", (2009).

Документи за 2008 рік - від першого року премії «Прогрес». Рекомендую спочатку прочитати попередні, оскільки пізніші ґрунтуються на попередній роботі.


2
Що мені подобається у цій відповіді, це те, що вона вказує на той факт, що немає "ідеальної" відповіді, і що люди продовжують впроваджувати інновації в цій галузі - завжди є можливість для вдосконалення, і, як змінюються часи, і нові методи застосовуються до проблем продовжуватимуть вирішуватися інакше. І якщо ви прочитаєте детальні посилання, то зможете побачити, як існує "суміш" декількох схвалень до прогнозування у кожного з великих претендентів на приз. Чудові довідники.
Дейв Швидкий


20

(Відмова: Раніше я працював в Amazon, хоча не працював над командою з рекомендацій.)

Відповідь ewernli має бути правильною - паперові посилання на оригінальну систему рекомендацій Amazon, і з того, що я можу сказати (як з особистого досвіду як Amazon Shopper, так і працював у подібних системах в інших компаніях), дуже мало змінилося: По суті, рекомендаційна функція Amazon як і раніше дуже сильно базується на спільній фільтрації по предметах.

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

То як працює спільна фільтрація по предметах? В основному для кожного елемента ви створюєте "сусідство" пов’язаних предметів (наприклад, переглядаючи, які предмети люди переглядали разом або які предмети люди купували разом - для визначення схожості ви можете використовувати такі показники, як індекс Жакарда ; кореляція - це ще одна можливість, хоча я підозрюю, що Amazon не дуже активно використовує дані рейтингів). Потім, коли я переглядаю товар X або здійснюю покупку Y, Amazon пропонує мені речі в тому ж районі, що і X або Y.

Деякі інші підходи, які Amazon потенційно може використовувати, але, мабуть, не, описані тут: http://blog.echen.me/2011/02/15/an-overview-of-item-to-item-collaborative-filtering -з амазонами-рекомендаційною системою /

Багато з того, що описує Дейв, майже напевно не робиться в Амазонії. (Рейтинги тих, хто є у моїй соціальній мережі? Ні, Amazon не має жодної з моїх соціальних даних. Це в будь-якому випадку буде масовим питанням конфіденційності, тому для Amazon було б складно зробити, навіть якщо вони мали б ці дані: люди не хочуть, щоб їх друзі знали, які книги чи фільми вони купують. Демографічна інформація? Ні, ніщо в рекомендаціях не говорить про те, що вони дивляться на це. [На відміну від Netflix, хто пояснює те, що дивляться інші люди в моєму районі. .])


Амазонка роками виставляла кола закупівель - які анонімізували тенденції покупки на основі доменного імені компанії та поштового індексу. У колі покупців повинно було бути принаймні 50 різних покупців, перш ніж ви могли отримати інформацію про це - тому Amazon, безумовно, зберігав, відстежував та використовував цю інформацію, щоб допомогти собі (та іншим) зрозуміти, що є популярним. Ви можете подивитися компакт-диски, електроніку та придбання книг у вашому районі чи у вашій компанії. Вони були виставлені з 1999-2002 років. forum.dvdtalk.com/archive/t-122436.html навіть має копію та вставлення тексту з опису Amazon.
Дейв Швидкий

3

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

Іншою можливістю буде відстеження частоти замовлення товару B протягом N днів після замовлення товару A, що може запропонувати співвіднесення.



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 обчислює матрицю подібності косинусу і потім сортує за цією подібністю, щоб знайти "найближчого сусіда" для кожного елемента (музичний діапазон у наведеному прикладі, роздрібний продукт у моїй програмі).

Отримана таблиця може рекомендувати смугу / виріб на основі іншого обраного діапазону / продукту.

Наступний розділ коду іде ще крок із спільною фільтрацією на основі USER (або замовника).

Результатом цього є велика таблиця з 100 найпопулярнішими діапазонами / продуктами, рекомендованими для даного користувача / замовника


1
Хоча це посилання може відповісти на питання, краще включити сюди суттєві частини відповіді та надати посилання для довідки. Відповіді лише на посилання можуть стати недійсними, якщо пов’язана сторінка зміниться. - З огляду
Кос

Правда ... Використовуваний алгоритм - як уже говорилося вище - фільтрація спільної роботи. Цей метод CF обчислює матрицю подібності косинусу і потім сортує за цією подібністю, щоб знайти "найближчого сусіда" для кожного елемента (музичний діапазон у наведеному прикладі, роздрібний продукт у моїй програмі). Отримана таблиця може рекомендувати групу / виріб на основі іншого обраного діапазону / продукту. Наступний розділ коду іде ще крок із спільною фільтрацією на основі USER (або замовника). Результатом цього є велика таблиця з 100 найпопулярнішими діапазонами / продуктами, рекомендованими для даного користувача / замовника
ChrisD

будь ласка, відредагуйте свою відповідь та додайте цю інформацію там, а не в розділ коментарів, дякую
Кос
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.