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
Sugerowane czytanie:
Odpowiedzi:
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ć ...
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:
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.
źródło
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.
źródło
Dzisiaj wpadłem na ten papier:
Może zawiera dodatkowe informacje.
źródło
(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 .])
źródło
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ę.
źródło
O ile wiem, jako silnika używa on rozumowania opartego na przypadkach.
Możesz zobaczyć w tych źródłach: tutaj , tutaj i tutaj .
W Google jest wiele źródeł szukających argumentów amazon i opartych na przypadkach.
źródło
Ktoś zrobił prezentację na naszym uniwersytecie na temat czegoś podobnego w zeszłym tygodniu i odniósł się do systemu rekomendacji Amazon. Uważam, że wykorzystuje formę grupowania środków K-Means do grupowania ludzi według ich różnych nawyków zakupowych. Mam nadzieję że to pomoże :)
Sprawdź też: http://www.almaden.ibm.com/cs/people/dmodha/ml02.ps i jako HTML .
źródło
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
źródło