Jak działa funkcja rekomendacji Amazon?


144

Jaka technologia działa za ekranami technologii rekomendacji Amazon? Uważam, że rekomendacja Amazon jest obecnie najlepsza na rynku, ale jak dostarczają nam tak trafnych rekomendacji?

Niedawno byliśmy zaangażowani w podobny projekt rekomendacji, ale z pewnością chcielibyśmy wiedzieć, jak wygląda technologia rekomendacji Amazon z technicznego punktu widzenia.

Wszelkie wkłady będą bardzo mile widziane.

Aktualizacja:

Ten patent wyjaśnia, w jaki sposób wykonuje się spersonalizowane zalecenia, ale nie jest zbyt techniczny, więc byłoby naprawdę miło, gdyby można było przedstawić pewne spostrzeżenia.

Z uwag Dave'a wynika, że ​​Analiza Affinity stanowi podstawę dla tego rodzaju Silników Rekomendacji. Oto również kilka dobrych lektur na ten temat

  1. Demistyfikująca analiza koszyka rynkowego
  2. Analiza koszyka rynkowego
  3. Analiza powinowactwa

Sugerowane czytanie:

  1. Eksploracja danych: koncepcje i technika

3
Czy próbowałeś przeszukać stos ich patentów? google.com/patents
Dolph

Tak, przeszedłem przez patent, ale nie jest on zbyt techniczny, więc doceniłbym pewne spostrzeżenia dotyczące technicznego aspektu mechanizmu
Rachel,

1
@Dave: To pytanie jest teraz otwarte i byłbym naprawdę wdzięczny, gdybyś mógł podać więcej informacji na temat technologii stojącej za architekturą silnika rekomendacji i funkcjonalnością, której Amazon używa do dostarczania rekomendacji.
Rachel

1
Nie nazwałbym systemu rekomendacji Amazon „najlepszym”, a nawet użytecznym. Zamawiasz myszkę, sugeruje też zakup innej. Dlaczego zwykły użytkownik miałby potrzebować dwóch myszy naraz ???

1
@Rachel: Biorąc pod uwagę, że wiesz, że system Amazon jest opatentowany i chcesz opracować coś podobnego, nawet nie spojrzałbym na ich patenty - i oczywiście nie patrzenie na nie również cię nie chroni, ale to początek.

Odpowiedzi:


104

To zarówno sztuka, jak i nauka. Typowe dziedziny badań koncentrują się wokół analizy koszyka rynkowego (zwanej również analizą powinowactwa), która jest podzbiorem dziedziny eksploracji danych. Typowe elementy takiego systemu obejmują identyfikację głównych elementów kierowcy oraz identyfikację elementów podobieństwa (sprzedaż dodatkowa, sprzedaż krzyżowa).

Pamiętaj o źródłach danych, które muszą wydobywać ...

  1. Zakupione koszyki = prawdziwe pieniądze od prawdziwych ludzi wydane na prawdziwe przedmioty = potężne dane i to dużo.
  2. Przedmioty dodane do koszyków, ale porzucone.
  3. Eksperymenty cenowe online (testy A / B itp.), W których oferują te same produkty w różnych cenach i sprawdzają wyniki
  4. Eksperymenty z pakowaniem (testy A / B itp.), W których oferują różne produkty w różnych „pakietach” lub rabaty na różne pary produktów
  5. Listy życzeń - co na nich jest specjalnie dla Ciebie - i zbiorczo można je traktować podobnie do innego strumienia danych z analizy koszyka
  6. Witryny odsyłające (identyfikacja, skąd przyszedłeś, może wskazać inne interesujące elementy)
  7. Czasy oczekiwania (ile czasu minie, zanim klikniesz wstecz i wybierzesz inny element)
  8. Oceny wystawione przez Ciebie lub osoby z Twoich sieci społecznościowych / kręgów zakupowych - jeśli oceniasz rzeczy, które lubisz, dostajesz więcej tego, co lubisz, a jeśli potwierdzisz przyciskiem „już to mam”, utworzą one bardzo pełny profil Ciebie
  9. Informacje demograficzne (adres wysyłki itp.) - wiedzą, co jest popularne w Twojej okolicy dla Twoich dzieci, Ciebie, Twojego współmałżonka itp.
  10. segmentacja użytkowników = czy kupiłeś 3 książki w oddzielnych miesiącach dla małego dziecka? prawdopodobnie mieć dziecko lub więcej ... itd.
  11. Dane dotyczące klikalności marketingu bezpośredniego - czy otrzymałeś od nich e-maila i kliknąłeś? Wiedzą, który to był e-mail, w jaki sposób kliknąłeś i czy w rezultacie to kupiłeś.
  12. Ścieżki kliknięć w sesji - co oglądałeś niezależnie od tego, czy trafiło to do Twojego koszyka
  13. Liczba wyświetleń przedmiotu przed ostatecznym zakupem
  14. Jeśli masz do czynienia ze sklepem stacjonarnym, mogą one również mieć Twoją fizyczną historię zakupów (np. Zabawki u nas lub coś, co jest online, a także sklep fizyczny)
  15. itp. itp.

Na szczęście ludzie zachowują się podobnie łącznie, więc im więcej wiedzą o całej populacji kupujących, tym lepiej wiedzą, co będzie, a czego nie sprzeda, a przy każdej transakcji i każdej ocenie / dodaniu / przeglądaniu listy życzeń wiedzą, jak bardziej osobiście dostosowywać rekomendacje. Należy pamiętać, że jest to prawdopodobnie tylko niewielka próbka pełnego zestawu wpływów tego, co kończy się w zaleceniach itp.

Teraz nie mam żadnej wewnętrznej wiedzy o tym, jak Amazon prowadzi interesy (nigdy tam nie pracowałem), a wszystko, co robię, to mówienie o klasycznym podejściu do problemu handlu internetowego - byłem kiedyś PM, który pracował nad eksploracją danych i analizą dla Microsoft produkt o nazwie Commerce Server. W Commerce Server dostarczyliśmy narzędzia, które pozwoliły ludziom tworzyć witryny o podobnych możliwościach… ale im większa wielkość sprzedaży, tym lepsze dane, tym lepszy model - a Amazon jest DUŻY. Mogę sobie tylko wyobrazić, jak fajnie jest bawić się modelami z tak dużą ilością danych w witrynie komercyjnej. Obecnie wiele z tych algorytmów (jak predyktor, który rozpoczął się na serwerze handlowym) zostało przeniesionych bezpośrednio do Microsoft SQL .

Cztery najważniejsze rzeczy, które powinieneś mieć, to:

  1. Amazon (lub jakikolwiek sprzedawca) analizuje zbiorcze dane dotyczące ton transakcji i mas ludzi ... to pozwala im nawet całkiem dobrze polecać anonimowym użytkownikom ich witrynę.
  2. Amazon (lub jakikolwiek zaawansowany sprzedawca detaliczny) śledzi zachowanie i zakupy każdego, kto jest zalogowany, i wykorzystuje je do dalszego udoskonalania danych zbiorczych.
  3. Często istnieje sposób na przejechanie zgromadzonych danych i przejęcie „redakcyjnej” kontroli nad sugestiami kierowanymi do menedżerów produktu z określonych linii (np. Osoba, która jest właścicielem pionu „aparatów cyfrowych” lub „powieści romantycznych” lub podobnych). są ekspertami
  4. Często zdarzają się oferty promocyjne (np. Sony, Panasonic, Nikon, Canon, Sprint lub Verizon płaci dodatkowe pieniądze sprzedawcy detalicznemu lub daje lepszy rabat przy większych ilościach lub innych rzeczach w tych liniach), które powodują, że niektóre „sugestie” wzrosną top częściej niż inni - zawsze kryje się za tym jakaś rozsądna logika biznesowa i biznesowy powód, który ma na celu zarobienie więcej na każdej transakcji lub zmniejszenie kosztów hurtowych itp.

Jeśli chodzi o rzeczywistą realizację? Prawie wszystkie duże systemy online sprowadzają się do pewnego zestawu potoków (lub implementacji wzorca filtru lub przepływu pracy itp., Nazywasz to, jak chcesz), które pozwalają na ocenę kontekstu przez serię modułów, które stosują jakąś formę logika biznesowa.

Zwykle z każdym oddzielnym zadaniem na stronie powiązany byłby inny potok - możesz mieć taki, który obsługuje zalecane „pakiety / promocje” (tj. Kup to z przedmiotem, który oglądasz) i taki, który obsługuje „alternatywy” (tj. Kup to zamiast tego, na co patrzysz) i inne, które wyciąga pozycje najbardziej zbliżone do Twojej listy życzeń (według kategorii produktów lub podobnych).

Wyniki tych potoków można umieścić w różnych częściach strony (nad paskiem przewijania, pod przewijakiem, po lewej, po prawej stronie, różne czcionki, obrazy o różnych rozmiarach itp.) I przetestować, które Najlepsza. Ponieważ używasz ładnych, łatwych do podłączenia modułów, które definiują logikę biznesową dla tych potoków, otrzymujesz moralny odpowiednik klocków lego, które ułatwiają wybieranie i wybieranie logiki biznesowej, którą chcesz zastosować, gdy budujesz kolejny potok co pozwala na szybsze innowacje, więcej eksperymentów, a na koniec większe zyski.

Czy to w ogóle pomogło? Mam nadzieję, że dzięki temu dowiesz się, jak to ogólnie działa w przypadku niemal każdej witryny e-commerce - nie tylko Amazon. Amazon (dzięki rozmowom ze znajomymi, którzy tam pracowali) jest bardzo oparty na danych i stale mierzy skuteczność swojego doświadczenia użytkownika oraz ceny, promocje, opakowania itp. - jest bardzo wyrafinowanym sprzedawcą online i prawdopodobnie znajduje się w czołówce wiele algorytmów, których używają do optymalizacji zysków - i są to prawdopodobnie zastrzeżone tajemnice (znasz wzór na tajne przyprawy KFC) i jako takie są chronione.


1
Tak. Bardzo mi to pomogło i naprawdę doceniam wasz wkład w ten temat.
Rachel

niesamowite spostrzeżenia
Shobi

28

Nie jest to bezpośrednio związane z systemem rekomendacji Amazona, ale pomocne może być zbadanie metod stosowanych przez osoby, które brały udział w konkursie Netflix Prize , mającym na celu opracowanie lepszego systemu rekomendacji z wykorzystaniem danych użytkowników Netflix. W ich społeczności istnieje wiele dobrych informacji na temat technik eksploracji danych.

Zespół, który wygrał, zastosował mieszankę zaleceń wygenerowanych przez wiele różnych modeli / technik. Wiem, że niektóre z głównych stosowanych metod to analiza głównych składowych, metody najbliższego sąsiada i sieci neuronowe. Oto kilka artykułów zwycięskiej drużyny:

R. Bell, Y. Koren, C. Volinsky, „ The BellKor 2008 Solution to the Netflix Prize ” (2008).

A. Töscher, M. Jahrer, „ The BigChaos Solution to the Netflix Prize 2008 ”, (2008).

A. Töscher, M. Jahrer, R. Legenstein, „ Improved Neighborhood-Based Algorithms for Large-Scale Recender Systems ”, SIGKDD Workshop on Large-Scale Commender Systems and the Netflix Prize Competition (KDD'08), ACM Press (2008) .

Y. Koren, „ The BellKor Solution to the Netflix Grand Prize ” (2009).

A. Töscher, M. Jahrer, R. Bell, „ The BigChaos Solution to the Netflix Grand Prize ”, (2009).

M. Piotte, M. Chabbert, „ The Pragmatic Theory solution to the Netflix Grand Prize ”, (2009).

Artykuły z 2008 r. Pochodzą z pierwszego roku Nagrody Progress. Polecam najpierw przeczytać wcześniejsze, ponieważ późniejsze opierają się na poprzedniej pracy.


2
W tej odpowiedzi podoba mi się to, że wskazuje ona na to, że nie ma „idealnej” odpowiedzi i że ludzie ciągle wprowadzają innowacje w tej dziedzinie - zawsze jest miejsce na ulepszenia, a gdy czasy się zmieniają i nowe metody są stosowane do rozwiązywania problemów będą rozwiązywane inaczej. A jeśli przeczytasz szczegółowe linki, zobaczysz, że istnieje „mieszanka” kilku podejść do przewidywania w każdym z wielkich pretendentów do nagrody. Świetne referencje.
Dave Quick


20

(Disclamer: pracowałem w Amazon, chociaż nie pracowałem w zespole rekomendacji.)

Odpowiedź ewernli powinna być prawidłowa - papierowe linki do oryginalnego systemu rekomendacji Amazona iz tego, co mogę powiedzieć (zarówno z własnego doświadczenia jako kupującego w Amazon, jak i pracując nad podobnymi systemami w innych firmach), niewiele się zmieniło: w jego rdzeń, funkcja rekomendacji Amazona nadal w dużym stopniu opiera się na wspólnym filtrowaniu między poszczególnymi przedmiotami.

Spójrz tylko, jaką formę mają rekomendacje: na mojej stronie głównej wszystkie mają formę „Obejrzałeś X ... Klienci, którzy również to oglądali, również przeglądali ...” lub też zbiór podobnych do rzeczy Kupiłem lub oglądałem wcześniej. Jeśli przejdę konkretnie do mojej strony „Polecane dla Ciebie”, każdy element opisuje, dlaczego jest mi polecany: „Polecane, ponieważ kupiłeś…”, „Polecane, ponieważ dodałeś X do swojej listy życzeń…” itd. To jest klasyczny znak wspólnego filtrowania między poszczególnymi elementami.

Jak więc działa grupowe filtrowanie między poszczególnymi elementami? Zasadniczo dla każdego przedmiotu tworzysz „sąsiedztwo” powiązanych elementów (np. Patrząc na to, jakie przedmioty ludzie oglądali razem lub jakie przedmioty kupili razem - aby określić podobieństwo, możesz użyć wskaźników takich jak indeks Jaccarda ; korelacja to kolejna możliwość, chociaż podejrzewam, że Amazon nie wykorzystuje bardzo intensywnie danych z ocen). Następnie, za każdym razem, gdy oglądam przedmiot X lub dokonuję zakupu Y, Amazon sugeruje mi rzeczy w tym samym sąsiedztwie co X lub Y.

Niektóre inne podejścia, które Amazon mógłby potencjalnie zastosować, ale prawdopodobnie nie, opisano tutaj: http://blog.echen.me/2011/02/15/an-overview-of-item-to-item-collaborative-filtering -with-amazons-system-rekomendacji /

Wiele z tego, co opisuje Dave, prawie na pewno nie zostało zrobionych w Amazon. (Oceny wystawiane przez osoby w mojej sieci społecznościowej? Nie, Amazon nie ma żadnych moich danych społecznościowych. W każdym razie byłby to ogromny problem z prywatnością, więc Amazon miałby trudności z zrobieniem tego, nawet gdyby miał takie dane: ludzie nie chcą, aby ich znajomi wiedzieli, jakie książki lub filmy kupują. Dane demograficzne? Nie, nic w rekomendacjach nie sugeruje, że na to patrzą. [W przeciwieństwie do Netflix, który ujawnia, co oglądają inni ludzie w mojej okolicy .])


Amazon przez lata ujawniał kręgi zakupowe - które były anonimowymi trendami zakupowymi w oparciu o nazwę domeny firmy i kod pocztowy. W kręgu zakupowym musiało być co najmniej 50 różnych kupujących, zanim można było uzyskać informacje na jego temat - więc amazon z pewnością zachowywał, śledził i wykorzystywał te informacje, aby pomóc sobie (i innym) zrozumieć, co jest popularne. Możesz spojrzeć na płyty CD, elektronikę i zakupy książek w Twojej okolicy lub w firmie. Zostały odsłonięte w latach 1999-2002. forum.dvdtalk.com/archive/t-122436.html ma nawet kopię i wklej opisujący je tekst z Amazon.
Dave Quick

3

Nie mam żadnej konkretnej wiedzy na temat algorytmu Amazona, ale jeden z elementów takiego algorytmu prawdopodobnie obejmowałby śledzenie grup produktów często zamawianych razem, a następnie wykorzystanie tych danych do polecania innych pozycji w grupie, gdy klient kupuje jakiś podzbiór Grupa.

Inną możliwością byłoby śledzenie częstotliwości zamawiania pozycji B w ciągu N dni po zamówieniu pozycji A, co mogłoby sugerować korelację.




0

Jeśli potrzebujesz praktycznego samouczka (przy użyciu open-source R), możesz zrobić gorzej niż przechodzenie przez to: https://gist.github.com/yoshiki146/31d4a46c3d8e906c3cd24f425568d34e

Jest to zoptymalizowana pod kątem czasu wykonywania wersja innej pracy: http://www.salemmarafi.com/code/collaborative-filtering-r/

Jednak odmiana kodu na pierwszym łączu działa DUŻO szybciej, więc polecam jej używać (stwierdziłem, że jedyną wolną częścią kodu yoshiki146 jest ostatnia procedura, która generuje zalecenie na poziomie użytkownika - zajęło to około godziny z włączonymi danymi moja maszyna).

Zaadaptowałem ten kod, aby działał jako silnik rekomendacji dla sprzedawcy, dla którego pracuję.

Zastosowany algorytm to - jak powiedzieli inni powyżej - filtrowanie zespołowe. Ta metoda CF oblicza macierz podobieństwa cosinusowego, a następnie sortuje według tego podobieństwa, aby znaleźć „najbliższego sąsiada” dla każdego elementu (zespół muzyczny w podanym przykładzie, produkt detaliczny w mojej aplikacji).

Wynikowa tabela może polecić opaskę / produkt na podstawie innego wybranego pasma / produktu.

Następna sekcja kodu idzie o krok dalej dzięki filtrowaniu zespołowemu opartemu na UŻYTKOWNIKU (lub kliencie).

Efektem tego jest duży stół ze 100 najlepszymi opaskami / produktami polecanymi dla danego użytkownika / klienta


1
Chociaż ten link może odpowiedzieć na pytanie, lepiej jest zawrzeć tutaj zasadnicze części odpowiedzi i podać link do odniesienia. Odpowiedzi zawierające tylko łącze mogą stać się nieprawidłowe, jeśli połączona strona ulegnie zmianie. - Z recenzji
Kos,

Prawda ... Zastosowany algorytm to - jak powiedzieli inni powyżej - filtrowanie zespołowe. Ta metoda CF oblicza macierz podobieństwa cosinusowego, a następnie sortuje według tego podobieństwa, aby znaleźć „najbliższego sąsiada” dla każdego elementu (zespół muzyczny w podanym przykładzie, produkt detaliczny w mojej aplikacji). Wynikowa tabela może polecić opaskę / produkt na podstawie innego wybranego pasma / produktu. Następna sekcja kodu idzie o krok dalej dzięki filtrowaniu zespołowemu opartemu na UŻYTKOWNIKU (lub kliencie). Efektem tego jest duży stół ze 100 najlepszymi pasmami / produktami polecanymi dla danego użytkownika / klienta
ChrisD

edytuj swoją odpowiedź i dodaj tę informację tam, nie w sekcji komentarzy, dzięki
Kos
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.