Przechwytywanie wrażeń odwiedzających 37 ■ Czego można się dowiedzieć od osoby rozglądającej się po sklepie 37 ■ Akt zakupu 42 ■ Konsumpcja produktów 43 ■ Oceny odwiedzających 44 ■ Poznawanie swoich klientów (starym) sposobem Netfiksa 47
2.3. Identyfikowanie użytkowników 47
2.4. Uzyskiwanie danych odwiedzających z innych źródeł 48
2.5. Moduł zbierający dane 49
Budowanie plików projektu 50 ■ Model danych 50 ■ Snitch: moduł zbierający dowody po stronie klienta 51 ■ Integrowanie modułu z MovieGEEKs 53
2.6. Czym są użytkownicy w systemie i jak ich modelować 55
3 Monitorowanie systemu 59
3.1. Dlaczego dodanie pulpitu nawigacyjnego jest dobrym pomysłem 60
Jak wykorzystujemy zaufane źródła do rekomendacji 85
4.3. Ponowne odwiedzanie ocen jawnych 86
4.4. Czym są oceny niejawne? 86
Rekomendowanie osób 88 ■ Uwagi dotyczące obliczania ocen 88
4.5. Obliczanie ocen niejawnych 91
Spojrzenie na dane behawioralne 92 ■ To można uznać za problem uczenia maszynowego 96
4.6. Jak zaimplementować oceny niejawne 97
Dodawanie aspektu czasu 101
4.7. Mniej popularne elementy mają większą wartość 103
5 Niespersonalizowane rekomendacje 107
5.1. Co to są niespersonalizowane rekomendacje? 108
Co to jest reklama? 108 ■ Co robi rekomendacja? 110
5.2. Jak tworzyć rekomendacje, gdy nie masz danych 110
Top 10: lista najpopularniejszych przedmiotów 112
5.3. Implementacja listy najpopularniejszych pozycji i podstawy dla komponentu systemu rekomendacji 114
Komponent systemu rekomendacji 114 ■ Kod MovieGEEKs z GitHub 115 ■ System rekomendacji 115 ■ Dodawanie listy najpopularniejszych pozycji do MovieGEEKs 116 ■ Uatrakcyjnienie wyglądu treści 117
5.4. Rekomendacje oparte na wartościach inicjujących 119
Często kupowane przedmioty podobne do oglądanych 120 ■ Reguły asocjacyjne 121 ■ Implementowanie reguł asocjacyjnych 126 ■ Zapisywanie reguł asocjacyjnych w bazie danych 131 ■ Uruchamianie kalkulatora reguł asocjacyjnych 132 ■ Używanie różnych zdarzeń do tworzenia reguł asocjacyjnych 134
6 Użytkownik (i treści), który przyszedł z zimna 136
6.1. Co to jest zimny start? 137
Zimne produkty 138 ■ Zimny gość 139 ■ Szare owce 140 ■ Spójrzmy na przykłady z życia wzięte 140 ■ Co możesz zrobić z zimnym startem? 142
6.2. Śledzenie odwiedzających 142
Uparcie anonimowi użytkownicy 142
6.3. Rozwiązywanie problemów z zimnym startem za pomocą algorytmów 143
Używanie reguł asocjacyjnych do tworzenia rekomendacji dla zimnych użytkowników 143 ■ Korzystanie ze znajomości domeny i zasad biznesowych 145 ■ Korzystanie z segmentów 146 ■ Wykorzystywanie kategorii do obejścia problemu szarych owiec i jak wprowadzać zimny produkt 147
6.4. Ci, którzy nie pytają, nie będą wiedzieć 149
Kiedy odwiedzający nie jest już nowy 150
6.5. Wykorzystanie reguł asocjacyjnych do szybkiego przedstawiania rekomendacji 151
Znajdowanie zebranych elementów 152 ■ Wydobywanie reguł asocjacyjnych i porządkowanie ich według ufności 152 ■ Wyświetlanie rekomendacji 153 ■ Ocena implementacji 156
Część 2 algorytmy systemów rekomendaCji .......................................... 157
7 Znajdowanie podobieństw wśród użytkowników i wśród treści 159
7.1. Dlaczego podobieństwo? 161
Czym jest funkcja podobieństwa? 161
7.2. Podstawowe funkcje podobieństwa 162
Indeks Jaccarda 163 ■ Pomiar odległości z normami Lp 165 ■ Podobieństwo kosinusowe 168 ■ Znajdowanie podobieństwa za pomocą współczynnika korelacji liniowej Pearsona 171 ■ Testowanie podobieństwa Pearsona 172 ■ Korelacja liniowa jest podobna do kosinusowej 174
7.3. Klastrowanie metodą k-średnich 175
Algorytmy klastrowania metodą k-średnich 175 ■ Przekładanie algorytmu klasowania metodą k-średnich na Pythona 178
7.4. Implementacja podobieństw 183
Implementacja podobieństwa w witrynie MovieGEEKs 185 ■ Implementacja klastrowania w witrynie MovieGEEKs 188
8 Wspólna filtracja w sąsiedztwie 193
8.1. Wspólna filtracja: lekcja historii 195
Kiedy informacja stała się wspólnie przefiltrowana 195 ■ Wzajemna pomoc 196 ■ Macierz ocen 198 ■ Potok wspólnej filtracji 199 ■ Czy należy używać wspólnej filtracji użytkownik-użytkownik czy element-element? 199 ■ Wymagania dotyczące danych 200
8.2. Obliczanie rekomendacji 201
8.3. Obliczanie podobieństw 202
8.4. Algorytm Amazona do wstępnego obliczania podobieństwa elementów 202
8.5. Sposoby wybierania sąsiedztwa 207
8.6. Znajdowanie właściwego sąsiedztwa 209
8.7. Sposoby obliczania przewidywanych ocen 209
8.8. Przewidywanie z filtrowaniem opartym na elementach 211
Obliczanie przewidywań elementów 212
8.9. Problemy z zimnym startem 213
8.10. Kilka słów o pojęciach w uczeniu maszynowym 213
8.11. Wspólna filtracja na stronie MovieGEEKs 215
Filtrowanie oparte na elementach 216
8.12. Jaka jest różnica między rekomendacjami z reguł asocjacyjnych a rekomendacjami opartymi na wspólnej filtracji 223
8.13. Dźwignie do majstrowania przy wspólnej filtracji 223
8.14. Plusy i minusy wspólnej filtracji 225
9 Ewaluacja i testowanie systemu rekomendacji 227
9.1. Biznes chce wzrostów, sprzedaży krzyżowej, sprzedaży droższych towarów i konwersji 228
9.2. Dlaczego ewaluacja jest ważna? 229
9.3. Jak interpretować zachowanie użytkowników 230
Co zrobić, kiedy algorytm nie przedstawia żadnych rekomendacji 240
9.8. Eksperymenty offline 240
Przygotowywanie danych do eksperymentów 246
9.9. Implementacja eksperymentu na witr ynie MovieGEEKs 253
Lista rzeczy do zrobienia 253
9.10. Ewaluacja zbioru testowego 257
Rozpoczynanie od predyktora bazowego 258 ■ Znajdowanie odpowiednich parametrów 260
9.11. Ewaluacja online 262
Eksperyment kontrolowany 262 ■ Testy A/B 262
9.12. Testowanie ciągłe z eksploatacją/eksploracją 264
Pętle informacji zwrotnych 265
10 Filtrowanie oparte na treści 267
10.1. Przykład opisowy 268
10.2. Filtrowanie oparte na treści 271
10.3. Analizator zawartości 272
Wychwytywanie cech dla profilu przedmiotu 272 ■ Dane kategoryczne z małymi liczbami 275 ■ Przekształcanie roku na porównywalne cechy 275
10.4. Wydobywanie metadanych z opisów 276
Przygotowywanie opisów 276
10.5. Znajdowanie ważnych słów za pomocą TF-IDF 280
10.6. Modelowanie tematów przy użyciu LDA 282
Jakie gałki możesz pokręcić, aby dostosować LDA? 289
10.7. Znajdowanie podobnych treści 292
10.8. Tworzenie profilu użytkownika 293
Tworzenie profilu użytkownika za pomocą LDA 293 ■ Tworzenie profilu użytkownika za pomocą TF-IDF 293
10.9. Rekomendacje oparte na treści na witrynie MovieGEEKs 295
Pobieranie danych 295 ■ Uczenie modelu 298 ■ Tworzenie profili elementów 299 ■ Tworzenie profili użytkowników 299 ■ Pokazywanie rekomendacji 301
10.10. Ocena systemu rekomendacji opartego na treści 302
10.11. Zalety i wady filtrowania opartego na treści 304
11 Znajdowanie ukrytych gatunków za pomocą faktor yzacji macierzy 306
11.1. Czasami dobrze jest zredukować ilość danych 307
11.2. Przykład tego, co chcesz rozwiązać 309
11.3. Powiew algebry liniowej 312
Macierz 312 ■ Co to jest faktoryzacja? 315
11.4. Tworzenie faktoryzacji za pomocą SVD 316
Dodawanie nowego użytkownika metodą folding-in 322 ■ Jak tworzyć rekomendacje za pomocą SVD 324 ■ Predyktory bazowe 325 ■ Dynamika czasowa 327
11.5. Budowanie faktoryzacji za pomocą Funk SVD 328
Średnia kwadratowa błędu 328 ■ Metoda gradientu prostego 329 ■ Stochastyczne zejście wzdłuż gradientu 332 ■ Wreszcie zabieramy się za faktoryzację 333 ■ Dodawanie odchyleń 334 ■ Jak zacząć i kiedy przestać 335
11.6. Budowanie rekomendacji przy użyciu Funk SVD 340
11.7. Implementacja Funk SVD na witrynie MovieGEEKs 342
Co zrobić z odstającymi wartościami 348 ■ Aktualizowanie modelu 350 ■ Szybsza implementacja 350
11.8. Dane jawne kontra niejawne 350
11.9. Ewaluacja 350
11.10. Dźwignie do majstrowania dla Funk SVD 353
12 Branie tego co najlepsze ze wszystkich algorytmów: implementacja hybrydowych silników rekomendacji 355
12.1. Zagmatwany świat hybryd 357
12.2. Monolityczny 357
Mieszanie cech opartych na treści z danymi behawioralnymi, aby usprawnić system rekomendacji wspólnej filtracji 358
12.3. Mieszany hybrydowy system rekomendacji 359
12.4. Algorytmy złożone 360
Przełączany system rekomendacji 362 ■ Ważony system rekomendacji 363 ■ Regresja liniowa 364
12.5. Liniowe łączenie modeli ważone cechami (FWLS) 365
Meta-cechy: wagi jako funkcje 365 ■ Algorytm 367
12.6. Implementacja 375
13 Rangowanie i nauka rangowania 385
13.1. Nauka rangowania na przykładzie Foursquare 386
13.2. Rangowanie ze zmianą kolejności 391
13.3. Czym jest nauka rangowania ze zmianą kolejności? 392
14.3. Jaka jest przyszłość systemów rekomendacji? 423
14.4. Końcowe przemyślenia 427
indeks 429
o tej książce
Czy ogarnia cię zazdrość, gdy Amazon rekomenduje swoje produkty lub gdy Netflix trafia z propozycją dla użytkownika w dziesiątkę? Oto twoja szansa, aby dowiedzieć się, jak dodać te umiejętności do swojego repertuaru. Przeczytanie tej książki pozwoli ci zrozumieć, czym są systemy rekomendacji i jak je stosować w praktyce. Aby system rekomendacji zadziałał, wiele rzeczy trzeba wykonać w zgodzie ze sobą. Musisz zrozumieć, jak zbierać dane od użytkowników i jak je interpretować, i potrzebujesz przybornika różnych algorytmów rekomendacji, dzięki czemu będziesz mógł wybrać najlepszy dla danego scenariusza.
Co najważniejsze, trzeba zrozumieć, jak ocenić, czy twój system rekomendacji działa poprawnie. Wszystko to i więcej jest ukryte w tej książce.
Kto powinien przeczytać tę książkę
Praktyczne systemy rekomendacji to książka przeznaczona przede wszystkim dla deweloperów zainteresowanych wdrażaniem rekomendacji. Książka prezentuje praktyczne podejście i stara się wyjaśnić wszystko w normalnym, codziennym języku. Będzie matematyka i statystyka, ale obu będą towarzyszyć rysunki i kod. Nowi analitycy danych (data scientists) również mogą skorzystać z tej książki jako wprowadzenia do algorytmów rekomendacji i infrastruktury potrzebnej do ich uruchomienia. Książka ta będzie również przydatna dla menedżerów, aby mieli ogląd na to, czym jest system rekomendacji i jak można go używać w praktyce.
Aby w pełni skorzystać z tej książki, trzeba być w stanie odczytać kod w językach programowania, takich jak Python lub Java, rozumieć zapytanie SQL i mieć podstawową wiedzę na temat matematyki wyższej i statystyki. Rysunki i listingi kodu, które wyjaśniają różne pojęcia, dadzą ci tylko tyle, ile jesteś w stanie się nauczyć.
xix
Organizacja książki
Książka jest podzielona na dwie części: jedna koncentruje się na infrastrukturze systemów rekomendacji, a druga na algorytmach.
W części 1 dowiesz się, jak zbierać dane i jak ich używać podczas dodawania systemu rekomendacji do swojej aplikacji:
¡ Rozdział 1 omawia rekomendacje i zarysowuje kluczowe elementy. Zawiera szeroką wiedzę na temat tego, czym jest system rekomendacji i jak on działa.
¡ Rozdział 2 dotyczy tego, jak rozumieć użytkowników i ich zachowania, oraz obejmuje sposoby zbierania danych od użytkowników.
¡ Rozdział 3 wprowadza do analityki internetowej i pokazuje, jak można zaimplementować pulpit nawigacyjny, gdzie można śledzić działanie swoich systemów rekomendacji.
¡ Rozdział 4 omawia, w jaki sposób dane behawioralne mogą zostać przekształcone w ratingi.
¡ Rozdział 6 nakreśla problem nowych użytkowników i produktów oraz przedstawia przykładowe rozwiązania.
W części 2 przyjrzymy się algorytmom systemowym i sposobie korzystania z danych zbieranych przez system w celu obliczenia, co rekomendować użytkownikowi:
¡ Rozdział 7 omawia formuły obliczania podobieństwa między użytkownikami lub elementami zawartości, takimi jak filmy.
¡ Rozdział 8 wprowadza spersonalizowane rekomendacje przy użyciu wspólnej filtracji.
¡ Rozdział 9 prezentuje mierniki dla rekomendacji w trybie offline i przedstawia sposoby formułowania rekomendacji w trybie online.
¡ Rozdział 10 wprowadza filtrowanie oparte na zawartości, które znajduje podobieństwa w treści przy użyciu różnych typów algorytmów, takich jak ukryta alokacja Dirichleta (Latent Dirichlet Allocation) i TF-IDF.
¡ Rozdział 11 powraca do wspólnej filtracji, która została wprowadzona w rozdziale 8, ale jest teraz omawiana przy użyciu metod redukcji wymiaru.
¡ Rozdział 12 prezentuje sposób łączenia rodzajów systemów rekomendacji.
¡ Rozdział 13 wprowadza ranking algorytmów i metod uczenia się tworzenia rankingów rekomendacji.
¡ Rozdział 14 dopełnia książkę spojrzeniem w przyszłość, tematami do dalszej nauki, książkami pogłębiającymi zrozumienie tematu i przemyśleniami na temat algorytmów i kontekstu.
Praca jest przeznaczona do czytania od deski do deski, ponieważ wiele rzeczy odnosi się do wcześniejszych rozdziałów, ale można ją również zrozumieć, czytając tylko wybrane rozdziały.
10.8. Tworzenie profilu użytkownika
Jeśli lubisz Jamesa Bonda, to może również spodoba ci się... To jest prosty przykład, który nie wymaga żadnego profilu użytkownika. Z modelem LDA lub po prostu wektorami cech, o których była mowa wcześniej, znajdziesz wektor filmu o Jamesie Bondzie, a następnie zlokalizujesz filmy z podobnymi wektorami. Jeśli jednak oferujesz spersonalizowane rekomendacje, musisz utworzyć profil użytkownika obejmujący wszystkie filmy, które podobają się użytkownikowi. Spójrzmy, jak to zrobić za pomocą LDA, a potem TF-IDF.
10.8.1. Tworzenie profilu użytkownika za pomocą LDA
Podczas tworzenia funkcji spersonalizowanych rekomendacji należy przyjrzeć się pełnej liście elementów, które podobają się użytkownikowi, i zwrócić inne elementy, które użytkownik może również polubić. W prawdziwym życiu funkcja ta nie jest indywidualna – użytkownik może nie być jednoznacznie zdefiniowany przez skonsumowane elementy (nawet jeśli większość systemów rekomendacji prawdopodobnie odpowie w ten sam sposób). Ale nadal jest to o wiele bardziej spersonalizowane niż lista najlepszych elementów.
To, co można zrobić, to dokonać iteracji po każdym z elementów, które użytkownik lubi, i dla każdego znaleźć podobne elementy. Gdy pojawi się lista, uporządkuj ją według iloczynu podobieństwa i ocen użytkowników z oryginalnej listy skonsumowanych elementów. Bardziej formalnie, dla aktywnego użytkownika możesz wykonać następujące czynności:
¡ Pobierz wszystkie elementy (CI) skonsumowane przez aktywnego użytkownika.
¡ Dla każdego elementu I w CI:
–Znajdź podobne elementy za pomocą modelu LDA.
–Oblicz ocenę na podstawie podobieństwa i ocen aktywnych użytkowników.
¡ Poukładaj elementy według oceny.
¡ Poukładaj według relewancji (jeśli masz jakieś dane na ten temat).
Alternatywnym sposobem, opisanym przez Jobina Wilsona i in., jest utworzenie macierzy LDA użytkownika, a następnie znalezienie podobnych elementów 55. Interesujące również może być zobaczenie, jakby to działało. Ocena wygląda bardzo dobrze.
10.8.2. Tworzenie profilu użytkownika za pomocą TF-IDF
Przy użyciu opisanych wcześniej wektorów dotyczących tagów i faktów, można w inny sposób utworzyć profil użytkownika. Możesz agregować macierze elementów, które użytkownik lubi i odejmować elementy, których użytkownik nie lubi. Spójrz na wnikliwe informacje w tabeli 10.3.
55 Jobin Wilson i in., Improving Collaborative Filtering Based Recommenders Using Topic Modelling, Luty 2014. Streszczenie pod adresem https://arxiv.org/abs/1402.6238.
Tabela 10.3 Wektor reprezentujący kilka filmów
Występuje Ben Affleck Akcja Film przygodowy
BvS Valentine’s Day
Arki
a Te liczby są wymyślone.
Jeśli masz użytkownika (nie robisz tutaj wspólnej filtracji, więc wystarczy spojrzeć na jednego), który dał 5 gwiazdek Poszukiwaczom zaginionej arki (kto nie kocha tego filmu?) i 3 gwiazdki La La Land, możesz teraz utworzyć profil użytkownika, mnożąc oceny w wektorze filmu i dodając je, jak pokazano w tabeli 10.4.
Tabela 10.4. Mnożenie ocen użytkowników w wektorach filmów i dodawanie każdego elementu w celu utworzenia profilu użytkownika
Występuje Ben Affleck Akcja Film przygodowy
KomediaWybuchya
Poszukiwacze zaginionej Arki
La La Land
Profil użytkownika
a Te liczby są wymyślone.
Teraz można użyć tej macierzy, aby znaleźć podobną zawartość dla użytkownika. Prawdopodobnie należy znormalizować wartości tak, aby były w tej samej skali co filmy, a liczba wybuchów powinna być prawdopodobnie pomniejszona w filmie, który zawiera albo nie zawiera wybuchów. W takim przypadku profil użytkownika wygląda jak w tabeli 10.5.
Tabela 10.5. Mnożenie ocen użytkownika w wektorach filmów i dodawanie każdego elementu, aby utworzyć profil użytkownika
Profil użytkownika
Uważam, że ta procedura jest bardziej wiarygodna dla filmów. Dobrą rzeczą jest to, że można szukać filmów, które mają wszystkie aspekty tego, co podoba się użytkownikowi (jeśli oczywiście uchwycisz odpowiednie tagi i fakty), ale chociaż lubię czekoladę
Rekomendacje oparte na treści na witrynie MovieGEEKs
i lasagne, to nie oznacza, że lubię je razem. To samo można powiedzieć o wielu innych atrybutach, jakie można wymyślić zarówno dla żywności, jak i dla filmów. Można tego użyć, aby zobaczyć, czy użytkownik lubi komedie bardziej niż filmy akcji i przygodowe. W części analitycznej witryny MovieGEEKs przedstawiłem gust użytkownika, przeglądając filmy ocenione przez użytkowników i zsumowanie ocen dla każdego gatunku, jak pokazano na poniższym listingu. Kod można wyświetlić w pliku /analytics/views.py.
Listing 10.7. Wyodrębnianie gustu z ocen
for movie in movies: id = movie.movie_id
rating = ratings[id]
r = rating.rating
Obliczone dla każdego filmu, który użytkownik ocenia
Pobiera ocenę
sum_rating += r movie_dtos.append(MovieDto(id, movie.title, r)) for genre in movie.genres.all():
if genre.name in genres_ratings.keys(): genres_ratings[genre.name] += r - user_avg genres_count[genre.name] += 1
max_value = max(genres_ratings.values())
max_value = max(max_value, 1)
max_count = max(genres_count.values())
max_count = max(max_count, 1)
genres = [] for key, value in genres_ratings.items():
Iteruje po każdym gatunku filmu i buduje słownik z nazwami gatunków jako kluczami i sumą ocen jako wartościami
Ten kod jest używany do tworzenia wykresów, takich jak ten na rysunku 10.18 dla użytkownika 100 (http://localhost:8001/analytics/user/100/).
10.9. Rekomendacje oparte na treści na witrynie MovieGEEKs
Jak wspomniano kilka razy, będziemy przechodzić przez implementację i wykorzystamy budowanie modelu LDA opartego na treści. Najpierw musimy powiedzieć kilka słów na temat pobierania danych.
10.9.1. Pobieranie danych
Zbiór danych, z którego korzystasz, nie zawiera opisów filmów, więc znów jesteś na łasce www.themoviedb.org, aby pobrać dane. W katalogu głównym kodu towarzyszącego książce znajduje się skrypt o nazwie populate_sample_of_descriptions.py, który pobiera opis najnowszych filmów. Przykład tego, co można pobierać, pokazano na rysunku 10.19 56 .
56 Zobacz http://MNG.bz/1UXq.
1 Co to jest system rekomendacji?
Jeśli chodzi o zrozumienie, czym jest system rekomendacji, to jest to istna dżungla, zatem zacznijmy tę książkę od spojrzenia na to, jakie problemy on rozwiązuje i jak jest używany. Oto, co będziemy omawiać:
¡ Zrozumienie zadania, jakie system rekomendacji próbuje emulować.
¡ Zdobywanie wiedzy, czym są niespersonalizowane i spersonalizowane rekomendacje.
¡ Opracowanie taksonomii opisywania systemów rekomendacji.
¡ Przedstawienie przykładowej strony MovieGEEKs.
Weź filiżankę kawy i koc, usiądź wygodnie i ruszajmy z wprowadzeniem do systemów rekomendacji. Zaczniemy łagodnie, najpierw patrząc na rzeczywiste przykłady, zanim przejdziemy do zawiłości obliczeniowych systemów rekomendacji w następnych rozdziałach. Możesz odczuwać pokusę, aby to pominąć i skoczyć do przodu, ale nie rób tego. Potrzebujesz podstaw, aby zrozumieć, jak powinien wyglądać wynik twoich starań w tworzeniu systemu rekomendacji.
rozdział 1 Co to jest system rekomendacji?
1.1. Rekomendacje z życia wzięte
Mieszkałem przez lata we Włoszech, w Rzymie. Rzym jest pięknym miejscem z wieloma bazarami z żywnością – nie tymi najważniejszymi, umieszczonymi w przewodnikach, pełnymi podróbek torebek Gucci (tak, torebki Gucci na bazarach z żywnością) – ale tymi, które są poza trasami autokarów, gdzie miejscowi robią zakupy i gdzie rolnicy sprzedają swoje produkty.
W każdą sobotę chodziliśmy odwiedzić sprzedawcę o imieniu Marino. Byliśmy dobrymi klientami, prawdziwymi smakoszami, więc wiedział, że jeśli poleci nam dobre rzeczy, będziemy je kupować – nawet jeśli mieliśmy w planie kupić tylko to, co było na naszej liście. Sezon arbuzowy był cudowny, wiele rodzajów pomidorów oferowało cały wachlarz różnych smaków i nigdy nie zapomnę smaku świeżej mozzarelli. Czasami Marino odradzał nam też zakup czegoś, jeśli nie było najwyższej jakości, a my ufaliśmy, że dobrze nam doradzi. To jest przykład rekomendacji. Marino polecał nam te same rzeczy wielokrotnie, a to działa w przypadku jedzenia, ale niekoniecznie w przypadku większości innych rodzajów produktów, takich jak książki, filmy lub muzyka.
Kiedy byłem młodszy, w czasach zanim Spotify i inne usługi strumieniowe przejęły rynek muzyczny, lubiłem kupować płyty CD. Szedłem do sklepu muzycznego, nastawionego głównie na DJ-ów, chodziłem wokół i zbierałem stos płyt, a potem znajdowałem miejsce przy ladzie z parą słuchawek i rozpoczynałem słuchanie. Odbywałem długie rozmowy na temat płyt z człowiekiem za ladą. Sprawdzał, które płyty mi się podobały (a które mi się nie podobały) i na tej podstawie polecał inne. Doceniłem fakt, że zapamiętał moje preferencje wystarczająco dobrze między wizytami i nie polecał wielokrotnie tych samych tytułów. To również jest przykład rekomendacji.
Wracając do domu z pracy (teraz, kiedy jestem starszy), zawsze sprawdzam w skrzynce, czy nic do nas nie przyszło. Zazwyczaj skrzynka pocztowa jest pełna reklam z supermarketów, wymieniających rzeczy, które są w promocji. Zazwyczaj reklamy pokazują zdjęcia świeżych owoców na jednej stronie i proszku do zmywarki na następnej – wszystko, co supermarkety lubią polecać do kupienia, ponieważ według nich jest to dobra oferta. Nie są to rekomendacje, lecz reklamy.
Raz w tygodniu wśród poczty pojawia się lokalna gazeta. Gazeta pokazuje listę 10 najpopularniejszych filmów oglądanych w kinie w danym tygodniu. Jest to niespersonalizowana rekomendacja. W telewizji wiele uwagi poświęca się umieszczaniu reklam w odpowiednich treściach telewizyjnych. Są to ukierunkowane reklamy, ponieważ są oglądane przez osoby pewnego typu.
W lutym 2015 roku urzędnicy lotniska w Kopenhadze zapowiedzieli umieszczenie 600 monitorów na terenie lotniska, aby wyświetlać reklamy w oparciu o szacowany wiek i płeć widza, wraz z informacjami odnoszącymi się do miejsc docelowych przy pobliskich bramkach. Wiek i płeć były wywnioskowane przy użyciu aparatów fotograficznych i algorytmu. Komunikat prasowy o reklamie miał następujący opis: „Kobieta podróżująca do Brukseli chce zobaczyć na przykład ładne zegarki lub reklamę magazynu finansowego. Rodzina lecąca na wakacje może być bardziej zainteresowana reklamami
kremów z filtrem do opalania lub wynajmem samochodów”1. Są to odpowiednie lub wysoce ukierunkowane reklamy.
Ludzie zazwyczaj postrzegają reklamy w telewizji lub na lotnisku jako uciążliwość, ale w sieci granice tego, co uważamy za inwazyjne, przesuwają się. Przyczyn tego może być wiele, lecz to jest osobny temat.
Internet to nadal Dziki Zachód, i chociaż myślę, że reklama na lotnisku w Kopenhadze jest dość inwazyjna, uważam za równie irytujące, gdy widzę reklamy w Internecie, które są skierowane do grupy docelowej, której nie jestem częścią. Aby odpowiednio dostosować reklamy, strony internetowe muszą wiedzieć nieco o tym, kim jesteś.
W tym i późniejszych rozdziałach dowiesz się o rekomendacjach, jak zbierać informacje o adresatach rekomendacji, jak przechowywać dane i jak z nich korzystać. Rekomendacje możesz obliczać na różne sposoby i zobaczysz najczęściej używane techniki. System rekomendacji nie jest tylko fantazyjnym algorytmem. Chodzi również o zrozumienie danych i użytkowników. Analitycy danych od dawna dyskutują na temat tego, czy ważniejsze jest posiadanie bardzo dobrego algorytmu, czy większej liczby danych. Obie opcje mają swoje wady; super algorytmy wymagają super sprzętu i to w dużych ilościach. Więcej danych stwarza inne problemy, takie jak dostatecznie szybkie uzyskanie dostępu do nich. Czytając tę książkę, poznasz kompromisy i uzyskasz narzędzia do podejmowania lepszych decyzji.
Poprzednie przykłady mają na celu zilustrowanie, że reklamy i rekomendacje mogą wyglądać podobnie dla użytkownika. Za kulisami intencja treści jest inna; rekomendacja jest obliczana na podstawie tego, co lubi aktywny użytkownik, co inni lubili w przeszłości, i tego, o co często prosi odbiorca. Reklama jest serwowana dla korzyści nadawcy i zazwyczaj jest zrzucana na odbiorcę. Różnica między nimi może się rozmyć. W tej książce rekomendacją nazywam wszystko to, co zostało obliczone na podstawie danych.
1.1.1. Systemy rekomendacji pasują do Internetu
Systemy rekomendacji najlepiej funkcjonują w Internecie, ponieważ to w nim można nie tylko zwracać się do poszczególnych użytkowników, ale można również zbierać dane behawioralne. Spójrzmy na kilka przykładów.
Strona internetowa pokazująca 10 najczęściej sprzedawanych maszyn do produkcji pieczywa zapewnia niespersonalizowane rekomendacje. Jeśli strona internetowa do sprzedaży domów lub biletów koncertowych pokazuje rekomendacje na podstawie twoich danych demograficznych lub aktualnej lokalizacji, te rekomendacje są częściowo spersonalizowane. Spersonalizowane rekomendacje można znaleźć na Amazonie, gdzie zidentyfikowany klient widzi „Rekomendacje dla ciebie”. Idea spersonalizowanych rekomendacji wynika również z tego, że ludzi nie interesują tylko popularne przedmioty, ale także przedmioty, które nie są sprzedawane najczęściej, lub takie, które są w długim ogonie.
1 Aby uzyskać więcej informacji, zobacz http://mng.bz/ka6j.
5 Niespersonalizowane rekomendacje
W tym rozdziale znajdziesz rekomendacje, lecz nie są one spersonalizowane. Nie oznacza to, że ten rozdział jest mniej istotny.
¡ Dowiesz się, że korzystanie z niespersonalizowanych rekomendacji może również pokazywać interesujące treści.
¡ Zobaczysz przykłady, które pokazują, dlaczego twoja witryna powinna porządkować treści i dowiesz się, jak tworzyć wykresy, które pokazują użytkownikom, co jest popularne, i wyróżniają elementy interesujące dla innych użytkowników.
¡ Dowiesz się, jak obliczyć reguły skojarzenia, tworząc zbiory elementów na podstawie koszyka zakupów, a następnie, jak użyć tych reguł do tworzenia rekomendacji opartych na wartościach inicjujących.
¡ Zobaczysz, jak jest implementowany komponent systemu rekomendacji, który jest podstawowym komponentem przykładowej witryny MovieGEEKs i który dostarcza rekomendacji.
5 Niespersonalizowane rekomendacje
Niespersonalizowane rekomendacje są zwykle tym, od czego zaczyna większość witryn, ponieważ są łatwe i nie wymagają konkretnej wiedzy o użytkownikach. Niespersonalizowane rekomendacje są dobre, ponieważ zawsze można je pokazać, pomimo tego jak niewiele wiesz o użytkownikach. Ludzie mogą powiedzieć, że niespersonalizowane rekomendacje powinny być pokazywane tylko do momentu, w którym system dowie się czegoś o użytkowniku, aby pokazać bardziej spersonalizowane rekomendacje, ale zawsze pamiętaj, że ludzie są z natury zwierzętami stadnymi i większość będzie ciekawa, jakie elementy zawartości są najbardziej popularne – jeśli nie z innego powodu, to choćby po to, aby dowiedzieć się, czego nie lubić.
W tym rozdziale zajmujemy się listami najpopularniejszych przedmiotów oraz zasadami porządkowania i kojarzenia. Zaczniemy zabawę od spojrzenia na stare dobre listy hitów, których nikt nie lubi w tych czasach opartych na kontekście. Listy najpopularniejszych przedmiotów to proste rekomendacje oparte na statystykach, takich jak rzeczy najczęściej sprzedawane. Listy te mają związek z porządkowaniem danych, więc dalej będziemy omawiać tę kwestię. Przyjrzymy się implementacji list najpopularniejszych przedmiotów i omówimy zmiany kolejności filmów w witrynie MovieGEEKs. W drugiej części rozdziału przyjrzymy się, co ludzie umieszczają w koszyku i użyjemy tego, aby tworzyć rekomendacje, takie jak „osoby, które kupiły X, kupiły również Y” za pomocą tak zwanych zbiorów elementów lub zbiorów częstości. Rekomendacje, którym się przyjrzymy, będą takie same dla wszystkich użytkowników wchodzących w interakcje z systemem rekomendującym; dlatego są one nazywane rekomendacjami niespersonalizowanymi. Po czterech rozdziałach, które dotyczą głównie tego, jak zbierać dane o użytkownikach, może uważasz, że to trochę nieuczciwe, aby odsunąć na bok indywidualne jednostki i spojrzeć na dane jako całość. Pamiętaj jednak, że większość witryn ma wielu niezidentyfikowanych użytkowników, z którymi chcesz sobie radzić, ponieważ są oni przyszłymi klientami twojej witryny. A nawet wtedy, gdy znasz tożsamość swojego gościa, jest wysoce prawdopodobne, że nie masz wystarczającej ilości danych do obliczenia spersonalizowanych rekomendacji, a wtedy dobrze jest wypełnić braki niespersonalizowanymi rekomendacjami.
5.1. Co to są niespersonalizowane rekomendacje?
W rozdziale 1 omówiliśmy różnicę między reklamą a rekomendacją. Porozmawiajmy krótko o tym ponownie.
5.1.1. Co to jest reklama?
Oferta dnia od Manninga, pokazana na rysunku 5.1, jest reklamą. To, że jest reklamą, nie sprawia, że jest czymś złym. Reklama jest czymś, co sprzedawca publikuje, ponieważ chce, aby zawartość była wystawiana na widok użytkowników, a ludzie często są zainteresowani ofertami. Ale to jest coś, co jako właściciel witryny musisz robić ostrożnie, ponieważ złe reklamy będą odstraszać odwiedzających. (Miałem taką myśl, że Internet jest pełen takich reklam, ale po spędzeniu 30 minut na szukaniu jednej, poddałem się. Znalazłem skargę od faceta, który czuł się spamowany po zarejestrowaniu się na paranormalnym serwisie randkowym – zaskoczyło go to, bo myślał, że to poważna strona).
Co to są niespersonalizowane rekomendacje?
Definiuję złą reklamę jako coś, co nie pozwala użytkownikowi zająć się jego sprawami, jak wyskakujące okienko, którego nie można zamknąć, zanim film się nie odtworzy, lub przekierowujące użytkownika do niezamierzonych stron.
Oferta dnia jest reklamą. Dobrą, ale nadal reklamą.
Rysunek 5.1. Oferta dnia Manning Publications (manning.com)
Często za pomocą reklam sprzedawca stara się przekonać użytkownika, że dane przedmioty są dobrą lub tanią ofertą (nawet jeśli nie są), podczas gdy rekomendacje znajdują użytkownikom to, czego chcą. Można powiedzieć, że znalezienie czegoś taniego jest dokładnie tym, czego użytkownik chce. W rzeczywistości wiele stron stworzyło biznes z polecania ofert tanich rzeczy. Ja osobiście zaczynam czegoś szukać, gdy odkryję, że tego potrzebuję, podczas gdy strony z kuponami, jak cupon. com (rys. 5.2) to raczej sytuacja, w której ludzie szukają czegoś, czego potrzebują, ale o tym nie wiedzą.
Cupon.com używa niespersonalizowanych rekomendacji, aby polecić więcej ofert. W górnej części znajduje się lista popularnych kategorii i marek. Podczas gdy środkowa część ekranu zawiera listy kuponów pozwalających zaoszczędzić pieniądze, trudno powiedzieć, jak to jest obliczane. Cupon.com jest jednym z wielu wyborów i myślę, że to świetny sposób dla sprzedawców, aby kontaktować się z ludźmi, którzy są zadowoleni, gdy mogą kupować rzeczy taniej – w dużej ilości, wydając w ten sposób więcej.