Dane oryginału

Original edition copyright © 2019 by Manning Publications Co. All Rights reserved. Title of English-language original: Practical Recommender Systems by Kim Falk, ISBN 9781617292705. Polish-language edition © 2019 by Polish Scientific Publishers PWN Wydawnictwo Naukowe PWN Spółka Akcyjna. All Rights reserved.

Przekład Agnieszka Zerka-Rosik

Projekt okładki polskiego wydania INT-MEDIA Dawid Mazur

Wydawca Wioleta Szczygielska-Dybciak

Redaktor prowadzący Jolanta Kowalczuk

Redaktor Małgorzata Dąbkowska-Kowalik

Koordynator produkcji Anna Bączkowska

Skład wersji elektronicznej na zlecenie Wydawnictwo Naukowe PWN Michał Latusek

Zastrzeżonych nazw firm i produktów użyto w książce wyłącznie w celu identyfikacji.

Książka, którą nabyłeś, jest dziełem twórcy i wydawcy. Prosimy, abyś przestrzegał praw, jakie im przysługują. Jej zawartość możesz udostępnić nieodpłatnie osobom bliskim lub osobiście znanym. Ale nie publikuj jej w internecie. Jeśli cytujesz jej fragmenty, nie zmieniaj ich treści i koniecznie zaznacz, czyje to dzieło. A kopiując jej część, rób to jedynie na użytek osobisty.

Szanujmy cudzą własność i prawo

Więcej na www.legalnakultura.pl

Polska Izba Książki

Copyright © for the Polish edition by Wydawnictwo Naukowe PWN SA

Warszawa 2020

ISBN 978-83-01-21399-2

eBook został przygotowany na podstawie wydania papierowego z 2020r. (wyd. I)

Warszawa 2020

Wydawnictwo Naukowe PWN SA

02-460 Warszawa, ul. Gottlieba Daimlera 2

tel. 22 69 54 321, faks 22 69 54 288

infolinia 801 33 33 88

e-mail: pwn@pwn.com.pl, reklama@pwn.pl
www.pwn.pl

Bezpłatny fragment

przedmowa

podziękowania

o tej książce

o autorze

o okładce

Część 1. Przygotowanie do systemów rekomendacji

1. Co to jest system rekomendacji?

1.1. Rekomendacje z życia wzięte

1.1.1. Systemy rekomendacji pasują do Internetu

1.1.2. Długi ogon

1.1.3. System rekomendacji Netfliksa

1.1.4. Definicja systemu rekomendacji

1.2. Taksonomia systemów rekomendacji

1.2.1. Domena

1.2.2. Cel

1.2.3. Kontekst

1.2.4. Poziom personalizacji

1.2.5. Czyje opinie

1.2.6. Prywatność i wiarygodność

1.2.7. Interfejs

1.2.8. Algorytmy

1.3. Uczenie maszynowe i nagroda Netfliksa

1.4. Witryna MovieGEEKs

1.4.1. Projekt i specyfikacja

1.4.2. Architektura

1.5. Budowanie systemu rekomendacji

2. Zachowanie użytkowników i jak zbierać o tym dane

2.1. Jak (według mnie) Netflix zbiera dowody podczas przeglądania

2.1.1. Dowody, które zbiera Netflix

2.2. Znajdowanie przydatnych zachowań użytkowników

2.2.1. Przechwytywanie wrażeń odwiedzających

2.2.2. Czego można się dowiedzieć od osoby rozglądającej się po sklepie

2.2.3. Akt zakupu

2.2.4. Konsumpcja produktów

2.2.5. Oceny odwiedzających

2.2.6. Poznawanie swoich klientów (starym) sposobem Netfiksa

2.3. Identyfikowanie użytkowników

2.4. Uzyskiwanie danych odwiedzających z innych źródeł

2.5. Moduł zbierający dane

2.5.1. Budowanie plików projektu

2.5.2. Model danych

2.5.3. Snitch: moduł zbierający dowody po stronie klienta

2.5.4. Integrowanie modułu z MovieGEEKs

2.6. Czym są użytkownicy w systemie i jak ich modelować

3. Monitorowanie systemu

3.1. Dlaczego dodanie pulpitu nawigacyjnego jest dobrym pomysłem

3.1.1. Odpowiadanie na pytanie „jak nam idzie?”

3.2. Obliczanie statystyk

3.2.1. Analityka internetowa

3.2.2. Podstawowe statystyki

3.2.3. Konwersje

3.2.4. Analizowanie ścieżki do konwersji

3.2.5. Ścieżka konwersji

3.3. Persony

3.4. Pulpit nawigacyjny MovieGEEKs

3.4.1. Automatyczne generowanie danych w dzienniku

3.4.2. Specyfikacja i projektowanie analitycznego pulpitu nawigacyjnego

3.4.3. Analityczny pulpit nawigacyjny – szkielet projektu

3.4.4. Architektura

4. Oceny i jak je obliczać

4.1. Preferencje użytkownik-przedmiot

4.1.1. Definicja ratingu

4.1.2. Macierz użytkownik-przedmiot

4.2. Jawne lub niejawne oceny

4.2.1. Jak wykorzystujemy zaufane źródła do rekomendacji

4.3. Ponowne odwiedzanie ocen jawnych

4.4. Czym są oceny niejawne?

4.4.1. Rekomendowanie osób

4.4.2. Uwagi dotyczące obliczania ocen

4.5. Obliczanie ocen niejawnych

4.5.1. Spojrzenie na dane behawioralne

4.5.2. To można uznać za problem uczenia maszynowego

4.6. Jak zaimplementować oceny niejawne

4.6.1. Dodawanie aspektu czasu

4.7. Mniej popularne elementy mają większą wartość

5. Niespersonalizowane rekomendacje

5.1. Co to są niespersonalizowane rekomendacje?

5.1.1. Co to jest reklama?

5.1.2. Co robi rekomendacja?

5.2. Jak tworzyć rekomendacje, gdy nie masz danych

5.2.1. Top 10: lista najpopularniejszych przedmiotów

5.3. Implementacja listy najpopularniejszych pozycji i podstawy dla komponentu systemu rekomendacji

5.3.1. Komponent systemu rekomendacji

5.3.2. Kod MovieGEEKs z GitHub

5.3.3. System rekomendacji

5.3.4. Dodawanie listy najpopularniejszych pozycji do MovieGEEKs

5.3.5. Uatrakcyjnienie wyglądu treści

5.4. Rekomendacje oparte na wartościach inicjujących

5.4.1. Często kupowane przedmioty podobne do oglądanych

5.4.2. Reguły asocjacyjne

5.4.3. Implementowanie reguł asocjacyjnych

5.4.4. Zapisywanie reguł asocjacyjnych w bazie danych

5.4.5. Uruchamianie kalkulatora reguł asocjacyjnych

5.4.6. Używanie różnych zdarzeń do tworzenia reguł asocjacyjnych

6. Użytkownik (i treści), który przyszedł z zimna

6.1. Co to jest zimny start?

6.1.1. Zimne produkty

6.1.2. Zimny gość

6.1.3. Szare owce

6.1.4. Spójrzmy na przykłady z życia wzięte

6.1.5. Co możesz zrobić z zimnym startem?

6.2. Śledzenie odwiedzających

6.2.1. Uparcie anonimowi użytkownicy

6.3. Rozwiązywanie problemów z zimnym startem za pomocą algorytmów

6.3.1. Używanie reguł asocjacyjnych do tworzenia rekomendacji dla zimnych użytkowników

6.3.2. Korzystanie ze znajomości domeny i zasad biznesowych

6.3.3. Korzystanie z segmentów

6.3.4. Wykorzystywanie kategorii do obejścia problemu szarych owiec i jak wprowadzać zimny produkt

6.4. Ci, którzy nie pytają, nie będą wiedzieć

6.4.1. Kiedy odwiedzający nie jest już nowy

6.5. Wykorzystanie reguł asocjacyjnych do szybkiego przedstawiania rekomendacji

6.5.1. Znajdowanie zebranych elementów

6.5.2. Wydobywanie reguł asocjacyjnych i porządkowanie ich według ufności

6.5.3. Wyświetlanie rekomendacji

6.5.4. Ocena implementacji

Część 2. Algorytmy systemów rekomendacji

7. Znajdowanie podobieństw wśród użytkowników i wśród treści

7.1. Dlaczego podobieństwo?

7.1.1. Czym jest funkcja podobieństwa?

7.2. Podstawowe funkcje podobieństwa

7.2.1. Indeks Jaccarda

7.2.2. Pomiar odległości z normami Lp

7.2.3. Podobieństwo kosinusowe

7.2.4. Znajdowanie podobieństwa za pomocą współczynnika korelacji liniowej Pearsona

7.2.5. Testowanie podobieństwa Pearsona

7.2.6. Korelacja liniowa jest podobna do kosinusowej

7.3. Klastrowanie metodą k-średnich

7.3.1. Algorytmy klastrowania metodą k-średnich

7.3.2. Przekładanie algorytmu klasowania metodą k-średnich na Pythona

7.4. Implementacja podobieństw

7.4.1. Implementacja podobieństwa w witrynie MovieGEEKs

7.4.2. Implementacja klastrowania w witrynie MovieGEEKs

8. Wspólna filtracja w sąsiedztwie

8.1. Wspólna filtracja: lekcja historii

8.1.1. Kiedy informacja stała się wspólnie przefiltrowana

8.1.2. Wzajemna pomoc

8.1.3. Macierz ocen

8.1.4. Potok wspólnej filtracji

8.1.5. Czy należy używać wspólnej filtracji użytkownik-użytkownik czy element-element?

8.1.6. Wymagania dotyczące danych

8.2. Obliczanie rekomendacji

8.3. Obliczanie podobieństw

8.4. Algorytm Amazona do wstępnego obliczania podobieństwa elementów

8.5. Sposoby wybierania sąsiedztwa

8.6. Znajdowanie właściwego sąsiedztwa

8.7. Sposoby obliczania przewidywanych ocen

8.8. Przewidywanie z filtrowaniem opartym na elementach

8.8.1. Obliczanie przewidywań elementów

8.9. Problemy z zimnym startem

8.10. Kilka słów o pojęciach w uczeniu maszynowym

8.11. Wspólna filtracja na stronie MovieGEEKs

8.11.1. Filtrowanie oparte na elementach

8.12. Jaka jest różnica między rekomendacjami z reguł asocjacyjnych a rekomendacjami opartymi na wspólnej filtracji

8.13. Dźwignie do majstrowania przy wspólnej filtracji

8.14. Plusy i minusy wspólnej filtracji

9. Ewaluacja i testowanie systemu rekomendacji

9.1. Biznes chce wzrostów, sprzedaży krzyżowej, sprzedaży droższych towarów i konwersji

9.2. Dlaczego ewaluacja jest ważna?

9.3. Jak interpretować zachowanie użytkowników

9.4. Co należy mierzyć

9.4.1. Rozumienie mojego gustu: minimalizowanie błędów przewidywania

9.4.2. Różnorodność

9.4.3. Pokrycie

9.4.4. Szczęśliwy zbieg okoliczności

9.5. Przed wdrożeniem systemu rekomendacji...

9.5.1. Zweryfikuj algorytm

9.5.2. Testowanie regresyjne

9.6. Rodzaje ewaluacji

9.7. Ewaluacja offline

9.7.1. Co zrobić, kiedy algorytm nie przedstawia żadnych rekomendacji

9.8. Eksperymenty offline

9.8.1. Przygotowywanie danych do eksperymentów

9.9. Implementacja eksperymentu na witrynie MovieGEEKs

9.9.1. Lista rzeczy do zrobienia

9.10. Ewaluacja zbioru testowego

9.10.1. Rozpoczynanie od predyktora bazowego

9.10.2. Znajdowanie odpowiednich parametrów

9.11. Ewaluacja online

9.11.1. Eksperyment kontrolowany

9.11.2. Testy A/B

9.12. Testowanie ciągłe z eksploatacją/eksploracją

9.12.1. Pętle informacji zwrotnych

10. Filtrowanie oparte na treści

10.1. Przykład opisowy

10.2. Filtrowanie oparte na treści

10.3 Analizator zawartości

10.3.1. Wyodrębnianie cech dla profilu przedmiotu

10.3.2. Dane kategoryczne z małymi liczbami

10.3.3. Przekształcanie roku na porównywalne cechy

10.4. Wydobywanie metadanych z opisów

10.4.1. Przygotowywanie opisów

10.5. Znajdowanie ważnych słów za pomocą TF-IDF

10.6. Modelowanie tematów przy użyciu LDA

10.6.1. Jakie gałki możesz pokręcić, aby dostosować LDA?

10.7. Znajdowanie podobnych treści

10.8. Tworzenie profilu użytkownika

10.8.1. Tworzenie profilu użytkownika za pomocą LDA

10.8.2. Tworzenie profilu użytkownika za pomocą TF-IDF

10.9. Rekomendacje oparte na treści na witrynie MovieGEEKs

10.9.1. Pobieranie danych

10.9.2. Uczenie modelu

10.9.3. Tworzenie profili elementów

10.9.4. Tworzenie profili użytkowników

10.9.5. Pokazywanie rekomendacji

10.10. Ocena systemu rekomendacji opartego na treści

10.11. Zalety i wady filtrowania opartego na treści

11. Znajdowanie ukrytych gatunków za pomocą faktoryzacji macierzy

11.1. Czasami dobrze jest zredukować ilość danych

11.2. Przykład tego, co chcesz rozwiązać

11.3. Powiew algebry liniowej

11.3.1. Macierz

11.3.2. Co to jest faktoryzacja?

11.4. Tworzenie faktoryzacji za pomocą SVD

11.4.1. Dodawanie nowego użytkownika metodą folding-in

11.4.2. Jak tworzyć rekomendacje za pomocą SVD

11.4.3. Predyktory bazowe

11.4.4. Dynamika czasowa

11.5. Budowanie faktoryzacji za pomocą Funk SVD

11.5.1. Średnia kwadratowa błędu

11.5.2. Metoda gradientu prostego

11.5.3. Stochastyczne zejście wzdłuż gradientu

11.5.4. Wreszcie zabieramy się za faktoryzację

11.5.5. Dodawanie odchyleń

11.5.6. Jak zacząć i kiedy przestać

11.6. Budowanie rekomendacji przy użyciu Funk SVD

11.7. Implementacja Funk SVD na witrynie MovieGEEKs

11.7.1. Co zrobić z odstającymi wartościami

11.7.2. Aktualizowanie modelu

11.7.3. Szybsza implementacja

11.8. Dane jawne kontra niejawne

11.9. Ewaluacja

11.10. Dźwignie do majstrowania dla Funk SVD

12. Branie tego co najlepsze ze wszystkich algorytmów: implementacja hybrydowych silników rekomendacji

12.1 Zagmatwany świat hybryd

12.2. Monolityczny

12.2.1. Mieszanie cech opartych na treści z danymi behawioralnymi, aby usprawnić system rekomendacji wspólnej filtracji

12.3. Mieszany hybrydowy system rekomendacji

12.4. Algorytmy złożone

12.4.1. Przełączany system rekomendacji

12.4.2. Ważony system rekomendacji

12.4.3. Regresja liniowa

12.5. Liniowe łączenie modeli ważone cechami (FWLS)

12.5.1. Meta-cechy: wagi jako funkcje

12.5.2. Algorytm

12.6. Implementacja

13. Rangowanie i nauka rangowania

13.1. Nauka rangowania na przykładzie Foursquare

13.2. Rangowanie ze zmianą kolejności

13.3. Czym jest nauka rangowania ze zmiana kolejności?

13.3.1. Trzy typy algorytmów LTR

13.4. Bayesowskie rangowanie spersonalizowane (BPR)

13.4.1. Rangowanie z BPR

13.4.2. Sztuczki matematyczne (magia zaawansowana)

13.4.3. Algorytm BPR

13.4.4. BPR z faktoryzacją macierzy

13.5. Implementacja BPR

13.5.1. Tworzenie rekomendacji

13.6. Ewaluacja

13.7. Dźwignie do majstrowania przy BPR

14. Przyszłość systemów rekomendacji

14.1. Ta książka w kilku zdaniach

14.2. Tematy do dalszej nauki

14.2.1. Dalsza lektura

14.2.2. Algorytmy

14.2.3. Kontekst

14.2.4. Interakcje człowiek-komputer

14.2.5. Wybór dobrej architektury

14.3. Jaka jest przyszłość systemów rekomendacji?

14.4. Końcowe przemyślenia

Przypisy

przedmowa

Kiedy ukończyłem uniwersytet w 2003 roku, było to w atmosferze zagrożenia, że żadni programiści nie będą już potrzebni w Europie, bo wszystko będzie wytwarzane w krajach, w których wynagrodzenia są dużo niższe. To na szczęście nigdy się nie stało, i to z wielu powodów. Zaryzykowałbym stwierdzenie, że jednym z większych problemów było to, że firmy bagatelizowały problem programistów nierozumiejących kultury miejsc, w których ich oprogramowanie miało działać. Implementowano żądania wobec oprogramowania, ale funkcjonalność była inna niż oczekiwana przez klientów.

Obecnie istnieje podobne zagrożenie dla osób zainteresowanych uczeniem maszynowym i nauką o danych. Ale teraz problemem nie są niskie wynagrodzenia, lecz oprogramowanie jako usługa (SaaS), gdzie można przesyłać dane, a następnie system wykonuje pracę za ciebie.

Niepokoję się jak każdy, że maszyny nie rozumieją domen i ludzi. Maszyny nie są jeszcze wystarczająco inteligentne, aby móc wykluczyć udział ludzi. Wszystko dzieje się szybko, ale zaryzykuję stwierdzenie, że każdy, kto czyta tę książkę, będzie w stanie pracować z systemami rekomendacji do końca swojej kariery.

Skąd ja się w tym wszystkim wziąłem? Pracowałem jako inżynier oprogramowania we Włoszech, potem przeniosłem się do Anglii i potrzebowałem pracy, która wymaga więcej myślenia niż operacje CRUD na bazie danych. Na szczęście skontaktował się ze mną świetny rekruter z RedRock Consulting Ltd. Dopasowali mnie z dostawcą systemów rekomendacji, gdzie pracowałem nad systemem. I to było to; zagubiłem się w uczeniu maszynowym („zagubiłem” w sensie bycia naprawdę zainteresowanym i zaangażowanym). Oprócz pracy nad systemami rekomendacji, zacząłem również wyszukiwać wiedzę w Internecie i czytać mnóstwo książek na ten temat i tematy pokrewne.

Dziś nie można zarzucić wędki bez co najmniej 10 osób próbujących nauczyć cię czegoś o uczeniu maszynowym. To zabawne, gdy widzę jedną stronę lub jednogodzinne samouczki, które twierdzą, że nauczą cię wszystkiego, co musisz wiedzieć o uczeniu maszynowym. Mogę stworzyć podobnie skuteczny poradnik, jak być pilotem myśliwca:

Możesz wystartować i latać, używając drążka. Jeśli musisz strzelać, naciśnij przycisk. Następnie musisz wylądować, zanim zabraknie ci paliwa.

Taki samouczek dla pilota myśliwca będzie prawdopodobnie świetnym miejscem, aby zobaczyć, jak zacząć – ja tak zacząłem. Ale nie oszukuj samego siebie: zrozumienie uczenia maszynowego jest skomplikowane. Dodaj do tego jeszcze czynnik ludzki, który zawsze wprowadza jeszcze nieco niepewności.

Wracając do mojej historii, pracowałem z systemami rekomendacji i byłem z tego powodu szczęśliwy, a potem zmieniłem pracę. Na swoim nowym stanowisku miałem kontynuować prace nad systemami rekomendacji, ale projekt opóźniał się. W tym momencie zrobiłem się nerwowy, że nie będę mógł dalej pracować z systemami rekomendacji, ale to wtedy Manning zaproponował mi możliwość napisania o nich książki. Co innego mogłem zrobić, niż rzucić się na to zadanie? Zaraz po podpisaniu umowy projekt systemu rekomendacji w końcu ruszył. Pisanie tej książki było świetnym doświadczeniem edukacyjnym i mam nadzieję, że z niej skorzystasz i będziesz się nią cieszyć.

Celem publikacji jest wprowadzenie do systemów rekomendacji – nie tylko algorytmów, lecz także do ekosystemu systemów rekomendacji. Algorytmy nie są zbyt skomplikowane, ale ich zrozumienie i uruchomienie wymaga zrozumienia użytkowników, którzy mają otrzymywać rekomendacje. Zawartość książki ewoluowała podczas pisania, bo próbowałem zmieścić coraz więcej. Mam nadzieję, że jej lektura da ci wszystko, czego potrzebujesz, aby rozpocząć posługiwanie się systemami rekomendacji, i będzie stanowić solidną podstawę przy zdobywaniu dalszej wiedzy.

podziękowania

Pragnę wspomnieć i podziękować tutaj dwóm grupom: tym, którzy aktywnie pracowali nad tą publikacją, i tym, którzy cierpieli i znosili moje ciągłe rozkojarzenie w ciągu ostatnich trzech lat, gdy ta książka powstawała.

Może i moje nazwisko jest na okładce Praktycznych systemów rekomendacji, ale ta książka nie istniałaby bez wielkiego wkładu pracy ludzi w Manning. Chcę szczególnie podziękować Helen Stergius za jej nieustającą pomoc i wskazówki jako mojej redaktor prowadzącej. Wraz z innymi przetłumaczyła moje lekko dysleksyjne pismo na coś, co uczy ludzi wdrażania systemów rekomendacji.

Chciałbym również podziękować Furkanowi Kamaci i Valentinowi Crettaz, moim korektorom technicznym, i wszystkim recenzentom, którzy poświęcili czas, aby przeczytać wcześniejsze wersje i pomogli rękopisowi stać się bardziej spójnym. Należą do nich Adhir Ramjiavan, Alexander Myltsev, Alvin Raj, Amit Lamba, Andrew Collier, Fazel Keshtkar, Jared Duncan, Jaromir Nemec, Martin Beer, Mayur Patil, Mike Dalrymple, Noreen Dertinger, Olivier Ducatteeuw, Peter Hampton, Simeon Leyzerzon, Søren Lind Kristiansen, Steven Parr, Tobias Bürger, Tobias Getrost i Vipul Gupta.

Wiele bibliotek, systemów i pakietów zostało użytych do napisania tej historii i jestem bardzo wdzięczny społecznościom, które mi pomogły. Jestem również wdzięczny za narzędzia dostarczone przez społeczności open source, dzięki którym nie wszystko musiało być tworzone od podstaw.

Co najważniejsze, chcę podziękować mojej żonie, synowi, mojej teściowej, pozostałej części mojej rodziny i bliskim przyjaciołom za ich wsparcie, miłość, a przede wszystkim cierpliwość. Nie było łatwo mieć członka rodziny i przyjaciela, który stale wymyka się, aby pisać podczas przeprowadzki do nowego domu i widzieć nasze domy we Włoszech rozpadające się na kawałki przez trzęsienia ziemi. Nie wspominając, że ten pisarz zmienił miejsce pracy nie raz, a dwa razy w tym czasie. Dziękuję i obiecuję żadnych nowych projektów przez co najmniej kilka lat. Kocham was wszystkich!

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ć.

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ł 5 analizuje niespersonalizowane rekomendacje.

■ 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.

Pobrania

Kod wymagany do uruchomienia przykładowej witryny o nazwie MovieGEEKs można pobrać ze strony internetowej wydawcy pod adresem www.manning.com/books/practical-recommendersystems i można go również znaleźć na GitHub.com w http://mng.bz/04K5. Strona jest implementowana za pomocą platformy Django. Będziemy używać dwóch zbiorów danych: jeden jest generowany automatycznie, podczas gdy drugi jest pobierany z MovieTweenings. Wszystkie instrukcje dotyczące instalacji można znaleźć na stronie GitHub.

Konwencje kodu

Ta książka zawiera wiele przykładów kodu źródłowego zarówno w numerowanych listingach, jak i w linii z normalnym tekstem. W obu przypadkach kod źródłowy jest zapisany czcionką o stałej szerokości, aby oddzielić go od zwykłego tekstu. Czasami kod jest również pogrubiony, aby podkreślić , że zmienił się w stosunku do poprzednich kroków w rozdziale, na przykład gdy nowa funkcja jest dodawana do istniejącego wiersza kodu.

W wielu przypadkach oryginalny kod źródłowy został przeformatowany; dodaliśmy podziały wierszy i przerobiliśmy wcięcie akapitowe w celu uwzględnienia dostępnego miejsca na stronie w książce. W rzadkich przypadkach nawet to nie wystarczyło i listingi zawierają oznaczenia kontynuacji wiersza (). Ponadto komentarze w kodzie źródłowym często zostały usunięte z listingów, gdy kod jest opisany w tekście. Wielu listingom towarzyszą adnotacje kodu, podkreślając ważne pojęcia.

Forum książki

Zakup książki Praktyczne systemy rekomendacji obejmuje bezpłatny dostęp do prywatnego forum internetowego, które jest prowadzone przez Manning Publications, gdzie można komentować książkę, zadawać pytania techniczne i otrzymać pomoc od autora i od innych użytkowników. Aby uzyskać dostęp do forum, przejdź do https://forums.manning.com/forums/practical-recommendersystems. Więcej o forach Manninga i zasadach postępowania możesz również dowiedzieć się pod adresem https://forums.manning.com/forums/about.

Zobowiązanie Manninga na rzecz naszych czytelników to zapewnienie miejsca, gdzie może się odbywać istotny dialog między poszczególnymi czytelnikami oraz między czytelnikami i autorem. Autor nie zobowiązuje się do żadnego konkretnego wymiaru swojego uczestnictwa, a jego wkład w forum pozostaje dobrowolny (i nieodpłatny). Sugerujemy zadawanie autorowi trudnych pytań, aby utrzymać jego zainteresowanie! Forum i archiwa wcześniejszych dyskusji będą dostępne na stronie wydawcy, tak długo jak książka będzie wydawana.

o autorze

KIM FALK jest analitykiem danych, doświadczonym w budowie aplikacji opartych na danych (datadriven). Jest pasjonatem systemów rekomendacji i ogólnie uczenia maszynowego. Trenował systemy rekomendacji, aby zapewniały wybór filmów użytkownikom końcowym, jak również reklamy ludziom, a nawet pomagały adwokatom znajdować treści orzecznictwa. Od 2010 roku zajmuje się rozwiązaniami Big Data i uczeniem maszynowym. Kim często mówi i pisze o systemach rekomendacji. Można go znaleźć pod adresem http://kimfalk.org.

Kiedy nie uczy maszyn śledzenia ludzi, Kim jest człowiekiem rodzinnym, ojcem i biegaczem przełajowym (ze swoim wyżłem niemieckim).

o okładce

Rysunek na okładce Praktycznych systemów rekomendacji jest podpisany „Amazone d’Afrique”, czyli Amazonka z Afryki. Ilustracja pochodzi z kolekcji strojów z różnych krajów autorstwa Jacques Grasset de Saint-Sauveur (1757–1810), zatytułowanej Costumes de Différents Pays, opublikowanej we Francji w 1797 roku. Każda ilustracja jest precyzyjnie narysowana i ręcznie barwiona.

Bogata różnorodność kolekcji Grasset de Saint-Sauveur przypomina nam o tym, jak kulturowo różniły się miasta i regiony świata zaledwie 200 lat temu. Odseparowani od siebie ludzie mówili różnymi dialektami i językami. Na ulicach lub na wsi łatwo było zidentyfikować po samym ich stroju, gdzie żyli i czym się zajmowali, i jaka była ich pozycja społeczna. Sposób ubierania się zmienił od tego czasu, a regionalna różnorodność, tak bogata w tamtym czasie, zanikła. Teraz trudno jest odróżnić mieszkańców różnych kontynentów, nie mówiąc już o różnych miastach, regionach lub krajach. Być może zamieniliśmy różnorodność kulturową na bardziej zróżnicowane życie osobiste – a z pewnością na bardziej zróżnicowane i szybkie życie technologiczne.

W czasie, gdy trudno odróżnić jedną książkę komputerową od drugiej, Manning celebruje pomysłowość i inicjatywę biznesu komputerowego za pomocą okładek książek w oparciu o bogatą różnorodność życia regionalnego sprzed dwóch wieków, przywróconą do życia przez obrazy Grasset de Saint-Sauveur.

Część 1

Przygotowanie do systemów rekomendacji

Środowisko to wszystko, co nie jest mną.

Albert Einstein

Korzystanie z systemów rekomendacji i w zasadzie z większości metod uczenia maszynowego w produkcji nie polega tylko na wdrożeniu najlepszego algorytmu, ale także na zrozumieniu użytkowników i domeny.

Rozdziały 1–6 części 1 Praktycznych systemów rekomendacji wprowadzają do ekosystemu i infrastruktury systemów rekomendacji. Dowiesz się, jak zbierać dane i jak ich używać podczas dodawania systemu rekomendacji do aplikacji.

Poznasz różnicę między rekomendacją a reklamą oraz między spersonalizowaną a niespersonalizowaną rekomendacją. Dowiesz się również, jak zbierać dane, aby zbudować własny system rekomendacji.

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.

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.1.2. Długi ogon

Termin długi ogon został ukuty przez Chrisa Andersona w artykule opublikowanym w Wired Magazine w 2004 roku, który został rozszerzony do książki opublikowanej w roku 2006 (Hyperion)[2]. W tym artykule Anderson zidentyfikował nowy model biznesowy, który jest często dostrzegany w Internecie.

Anderson uważał, że jeśli masz tradycyjny sklep, to masz ograniczoną ilość miejsca, a co ważniejsze, skończoną przestrzeń do eksponowania produktów dla klientów. Masz również ograniczoną bazę klientów, ponieważ ludzie muszą przyjść do twojego sklepu. Bez tych ograniczeń nie trzeba sprzedawać tylko popularnych produktów, jak w zwykłym modelu biznesowym. W sklepach tradycyjnych tworzenie zapasów niepopularnych produktów uważane jest za strategię przynoszącą straty, ponieważ trzeba przechowywać wiele przedmiotów, które mogą nigdy się nie sprzedać. Ale jeśli masz sklep internetowy, możesz przechowywać nieskończoną liczbę produktów, ponieważ miejsce wynajmu jest tanie lub, jeśli sprzedajesz treści cyfrowe, nie zajmują one miejsca w ogóle, kosztując niewiele lub nic. Ideą gospodarki długiego ogona jest to, że można osiągać zyski poprzez sprzedaż wielu produktów, ale tylko kilku z każdego, wielu różnym ludziom.

Jestem za różnorodnością, więc myślę, że to wspaniale mieć ogromny katalog produktów, ale pytanie, na które trudno odpowiedzieć, to: jak użytkownicy znajdują to, czego chcą? W tym miejscu pojawiają się systemy rekomendacji. Ponieważ systemy te pomagają ludziom znaleźć te różnorodne rzeczy, o których istnieniu inaczej by nie wiedzieli.

Ponieważ Amazon i Netflix są uważane za internetowych gigantów zarówno w kwestii treści, jak i rekomendacji, firmy te są wykorzystywane w wielu przykładach w całej tej książce. W poniższym punkcie przyjrzymy się bliżej Netfliksowi jako przykładowi systemu rekomendacji.

1.1.3. System rekomendacji Netfliksa

Jak zapewne wiesz, Netflix jest platformą streamingową. Jego domeną są filmy i seriale i ma on ciągły przepływ dostępnych treści. Celem rekomendacji Netfliksa jest sprawienie, aby użytkownik był zainteresowany jego treścią tak długo, jak to możliwe, i aby nakłonić go do opłacania abonamentu miesiąc po miesiącu.

Usługa działa na wielu platformach, więc kontekst rekomendacji może się różnić. Rysunek 1.1 to zrzut ekranu z Netfliksa z mojego laptopa. Mogę również uzyskać dostęp do serwisu Netflix z mojego telewizora, mojego tabletu, a nawet mojego telefonu. To, co chcę oglądać na każdej platformie różni się – nigdy nie oglądałem epickiego filmu fantasy na telefonie, ale lubię oglądać je na telewizorze.

Zacznijmy ten przegląd od strony startowej. Strona startowa jest zbudowana jako panel zawierający rzędy z takimi rzeczami jak „Najlepsze wybory”, „Dramaty” i „Popularne w serwisie Netflix”. Górny rząd jest poświęcony temu, co znajduje się na mojej liście. Netflix lubi tę listę, ponieważ wskazuje nie tylko to, co widziałem i co oglądam teraz, ale także to, czego (przynajmniej w pewnym momencie) oglądaniem wykazałem zainteresowanie.

Netflix chce, aby użytkownik zauważył następny rząd, ponieważ zawiera oryginalne produkcje Netfliksa – seriale, które są produkowane przez Netflix. Są one ważne dla Netfliksa z dwóch powodów, obu finansowych:

■ Netflix wydał duże pieniądze, aby wyprodukować oryginalną treść, a te programy są w większości przypadków dostępne tylko w serwisie Netflix.

■ Netflix musi płacić właścicielom treści, gdy użytkownicy oglądają ich zawartość. Jeśli tym właścicielem jest Netflix, to nie tylko pozwala mu zaoszczędzić, ale może też zarobić.

Ostatni punkt ilustruje również coś do rozważenia: nawet jeśli wszystko na stronie jest spersonalizowane, to fakt, że oryginalne produkcje Netfliksa są w drugim rzędzie prawdopodobnie nie jest wynikiem mojego oglądania ich, ale raczej dążenia do realizacji wewnętrznego celu biznesowego.

Rysunek 1.1. Strona startowa Netfliksa (zanim zmienił się układ)

LISTY NAJPOPULARNIEJSZYCH POZYCJI I TRENDY

Dalej mamy listę obecnych trendów. Trendy to luźny termin, który może oznaczać wiele rzeczy, ale tutaj zawiera treści, które są popularne w krótkim okresie. W dolnym rzędzie, „Popularne w serwisie Netflix”, również ma związek z popularnością, ale w dłuższym okresie, na przykład tygodnia. Trendy i listy najpopularniejszych pozycji są omówione szczegółowo w rozdziale 5.

REKOMENDACJE

Czwarty rząd to lista „Najlepszych wyborów” dla mnie, które pasują do mojego profilu. Ta lista zawiera to, co większość nazwałaby rekomendacjami. Pokazuje, co system rekomendacji Netfliksa przewiduje, że chciałbym oglądać jako kolejne. Wygląda prawie dobrze. Nie interesują mnie krwawe filmy gore i najchętniej nie oglądałbym żadnych sekcji zwłok. Nie wszystkie sugestie są dopasowane do moich upodobań, ale zakładam, że Netflix tworzy tę listę nie tylko na podstawie mojego gustu. Pozostali domownicy również czasami oglądają treści, korzystając z mojego profilu. Profile są sposobem Netfliksa na pokazanie bieżącemu użytkownikowi, kto aktualnie ogląda.

Przed wprowadzeniem profili, Netflix kierował swoje rekomendacje do gospodarstwa domowego, a nie jednej osoby[3]. Próbowano zawsze pokazywać coś dla mamy, taty i dzieci. Ale Netflix już to porzucił i teraz moja lista nie zawiera żadnych programów dla dzieci. Ale nawet jeśli Netflix korzysta z profili osobistych, myślę, że konieczne jest rozważenie, kto ogląda – nie tylko osoba z profilem, ale także ktokolwiek inny. Słyszałem plotki, że inne firmy pracują nad rozwiązaniami pozwalającymi na poinformowanie systemu, że inni ludzie również to oglądają. Ma to pozwolić usłudze na dostarczanie rekomendacji dopasowanych do wszystkich członków grupy odbiorców. Do tej pory nie widziałem tego w akcji.

Kinect firmy Microsoft może rozpoznawać osoby przed telewizorem za pomocą rozpoznawania twarzy/ciała. Firma Microsoft poszła krok dalej, identyfikując nie tylko członków gospodarstwa domowego, ale także inne osoby z pełnego katalogu użytkowników, umożliwiając Kinect rozpoznanie użytkowników, gdy odwiedzają się w domach. Mimo rozpoznawania odbiorców, sensor Kinect dla konsoli Xbox One został wycofany w październiku 2017, co stanowi koniec linii produktów sensora Kinect.

RZĘDY I SEKCJE

Wróćmy do „Najlepszych wyborów” w serwisie Netflix. Więcej informacji na temat zawartości można znaleźć, ustawiając kursor myszy na jednej z sugestii. Pojawi się podpowiedź z opisem (rys. 1.2) i przewidywaną oceną, obliczoną przez system rekomendacji, zakładającą, że tak ocenię tę zawartość. Można oczekiwać, że rekomendacje w „Najlepszych wyborach” będą wszystkie miały wysoką ocenę, jak na rysunku 1.1, ale przeglądając rekomendacje, można znaleźć przykłady elementów z niską przewidywaną oceną, jak pokazano na rysunku 1.3.

Sposobów, w jaki Netflix rekomenduje treści, jest wiele, więc istnieje wiele możliwych wyjaśnień, dlaczego Netflix poleca pozycję, której według jego przewidywań nie ocenię wysoko. Jednym z powodów może być to, że Netflix dąży do różnorodności ponad dokładność. Innym powodem może być to, że nawet jeśli nie ocenię filmu maksymalną ilością gwiazdek, to nadal mogę mieć ochotę go obejrzeć. Jest to również pierwsza podpowiedź, że Netflix nie przykłada dużej uwagi do ratingów.

Tytuły każdego rzędu są różne, np. „Ponieważ oglądałeś W garniturach” (tytuł oryginalny Suits). Inne rzędy polecają rzeczy, które są podobne do serialu „W garniturach”. Inne rzędy to gatunki, takie jak Komedie, które, co ciekawe, zawierają komedie. Można powiedzieć, że tytuły rzędów są również listami rekomendacji; można je nazwać rekomendacjami kategorii.

Rysunek 1.2. Najlepsze wybory według Netfliksa z przewidywanym dopasowaniem

Rysunek 1.3. Najlepsze wybory według Netfliksa z niskim przewidzianym ratingiem

To mógłby być koniec historii, ale wtedy przegapilibyśmy najważniejszą część personalizacji Netfliksa.

RANKING

Każdy z nagłówków rzędów opisuje zbiór zawartości. Ta zawartość jest następnie porządkowana według systemu rekomendacji i przedstawiona w kolejności trafności lub rangi, zaczynając od lewej, jak pokazano na rysunku 1.4.

Rysunek 1.4. Każdy rząd w serwisie Netflix ułożony według trafności

Nawet na „Mojej liście”, zawierającej treści, które wybrałem sam, zawartość jest uporządkowana zgodnie z szacunkową trafnością dla mnie według systemu rekomendacji. Dodałem wczorajszy zrzut ekranu na rysunku 1.1. Dziś moja lista ma nowy układ, jak pokazano na rysunku 1.5.

Rysunek 1.5. Netflix uporządkowuje moją listę według trafności

System rekomendacji Netfliksa próbuje również polecać treści, które są istotne w określonym czasie lub w określonym kontekście. Na przykład niedzielne poranki mogą być przeznaczone bardziej dla kreskówek i komedii, podczas gdy wieczory dla „poważnego” oglądania seriali telewizyjnych, takich jak „W garniturach”.

Kolejny rząd, który może być zaskakujący, to „Popularne w serwisie Netflix”, pokazujący zawartość, która jest popularna teraz. Ale Netflix nie mówi, że najpopularniejszym elementem jest ten po lewej. Netflix znajduje zbiór najpopularniejszych elementów, a następnie porządkuje je zgodnie z tym, co uważasz za najbardziej istotne teraz.

WZMACNIANIE

Warto się zastanowić, dlaczego Netflix umieścił serial Designated Survivor wysoko na „Mojej liście”, biorąc pod uwagę, że już go oglądam. Ale Netflix wyświetlił powiadomienie, że dostępny jest nowy sezon Designated Survivor. To może wyjaśniać, dlaczego ten serial się pojawia.

Wzmacnianie (boosting) to sposób, aby firma przeważyła wynik na swoją korzyść, gdy obliczane są sugestie, a Netflix chce, bym zauważył „W garniturach”, ponieważ jest to nowa treść, co oznacza, że ma atut świeżości. Netflix wzmacnia zawartość na podstawie świeżości; świeżość może oznaczać, że zawartość jest nowa lub została wspomniana w aktualnościach. Boosting jest omówiony bardziej szczegółowo w rozdziale 6, ponieważ jest to coś, o co wielu właścicieli witryn prosi, jak tylko system zostaje uruchomiony.

UWAGA Istnieje rodzina algorytmów uczenia maszynowego o nazwie Boosting, ale tutaj mam na myśli coś innego[4].

POŁĄCZENIE Z MEDIAMI SPOŁECZNOŚCIOWYMI

Przez krótki okres Netflix próbował również korzystać z danych z mediów społecznościowych[5]. W tamtych czasach można było zobaczyć na stronie Netfliksa coś, co pokazano na rysunku 1.6.

Rysunek 1.6. Netflix chce wiedzieć, co oglądają moi znajomi

Serwis Netflix zachęcał widzów do włączenia Facebook Connect, co tym samym dawało Netfliksowi dostęp do listy znajomych, a także innych informacji. Jedną z korzyści dla Netfliksa było to, że udało mu się znaleźć twoich znajomych i przygotować społecznościowe rekomendacje w oparciu o to, co oni lubili. Połączenie z Facebookiem sprawiało również, że oglądanie filmów mogło o wiele bardziej stać się przeżyciem społecznym, a jest to coś, co bada wiele firm medialnych.

W dzisiejszych czasach ludzie nie siadają, aby oglądać filmy w sposób pasywny. Robią wiele rzeczy naraz podczas oglądania filmu, siedzą z drugim urządzeniem (takim jak tablet lub smartfon). To, co robisz na drugim urządzeniu, może mieć duży wpływ na to, co oglądasz dalej. Wyobraź sobie, że po obejrzeniu czegoś na Netfliksie pojawi się powiadomienie w telefonie, że jeden z twoich znajomych polubił jakiś film i – czary mary – Netflix rekomenduje go jako następną rzecz do obejrzenia.

Ta społecznościowa cecha została jednak usunięta w latach 2015–2016, a argumentem było to, iż ludzie nie było zadowoleni z dzielenia się informacjami o swoich filmach na Facebooku. Jak mówi Neil Hunt, dyrektor ds. produktu w Netfliksie, „to niefortunne, bo myślę, że jest wiele wartości w uzupełnieniu algorytmicznych sugestii osobistymi sugestiami” [6].

PROFIL POKAZUJĄCY TWÓJ GUST (TASTE PROFILE)

W przypadku strony, która jest zbudowana prawie całkowicie w oparciu o sugestie, dobrym pomysłem jest zapewnienie jak największej ilości danych wejściowych o swoim guście. Jeśli Netflix nie ma wyraźnego pojęcia o twoim guście, może mu być trudno znaleźć to, co chcesz oglądać.

W 2016 roku Netflix miał opcje, które pomagały użytkownikom budować swoje profile. Menu Taste Profile (Profilu gustu), pokazane na rysunku 1.7, umożliwiało ocenianie seriali i filmów, wybieranie gatunków poprzez określenie, jak często masz ochotę je oglądać, na przykład Przypływ adrenaliny, jak pokazano na rysunku 1.8, lub sprawdzić, czy twoje oceny są zgodne z twoimi aktualnymi opiniami.

Rysunek 1.7. Przykład tego, jak wyglądał profil pokazujący twój gust w serwisie Netflix w 2015 r.

Rysunek 1.8. Netfliksowe menu preferencji dotyczących gustu

Ręcznie wprowadzane Taste Preferences (preferencje dotyczące gustu) umożliwiają Netfliksowi dostarczanie lepszych rekomendacji. Proszenie użytkownika o pomoc przy tworzeniu profilu dotyczącego gustu to metoda często używana w celu umożliwienia systemowi przedstawiania rekomendacji nowym użytkownikom. Ale jak w przypadku wielu rzeczy, często jest różnica między tym, co użytkownicy mówią, że lubią, a tym, co rzeczywiście lubią.

Poznanie preferencji dotyczących gustu jest zazwyczaj pierwszym krokiem do poznania użytkownika. A ponieważ użytkownik korzysta z systemu w większym stopniu, Netflix był w stanie zbierać dane użytkowania, które często są bardziej wiarygodne. Serwis Netflix usunął obecnie tę funkcję.

1.1.4. Definicja systemu rekomendacji

Aby upewnić się, że się dobrze rozumiemy, tabela 1.1 zawiera kilka definicji.

Tabela 1.1. Definicje systemu rekomendacji

Pojęcie

Przykład z Netfliksem

Definicja

Przewidywanie

Neflix zgaduje, jak ocenisz dany element

Przewiduje, jak dany użytkownik oceni/polubi dany element

Relewancja (trafność)

Porządkuje rzędy na stronie (np. „Najlepsze wybory” i „Popularne w serwisie Netflix”) zgodnie z zakresem zastosowania

Porządkowanie elementów zgodnie z tym, co jest obecnie najbardziej trafne dla użytkownika. Relewancja to funkcja kontekstu, demografii i (przewidywanego) ratingu

Rekomendacja

Najlepsze wybory dla mnie

N najbardziej trafnych elementów

Personalizacja

Nagłówki rzędów są przykładem personalizacji

Wprowadza trafność do prezentacji

Profil dotyczący gustu

Zobacz rysunek 1.8

Lista parametrów charakteryzujących razem z wartościami

Po wyjaśnieniu tych pojęć, możemy wreszcie zdefiniować system rekomendacji.

DEFINICJA: SYSTEM REKOMENDACJI

System rekomendacji oblicza i przedstawia odpowiednią zawartość użytkownikowi na podstawie posiadanej wiedzy o użytkowniku, zawartości i interakcji pomiędzy użytkownikiem a danym elementem.

Mając tę definicję, możesz pomyśleć, że wszystko już rozumiesz. Ale przyjrzyjmy się przykładowi, jak rekomendacja może być obliczana i jak to by działało. Rysunek 1.9 pokazuje, jak Netflix może stworzyć mój rząd „Najlepszych wyborów”. Oto etapy sposobu, w jaki Netflix może dokonać obliczeń moich „Najlepszych wyborów”:

1 Otrzymano prośbę o listę „Najlepszych wyborów”.

2 Serwer wywołuje system rekomendacji, który składa się z potoku metod. Ten krok jest nazywany pobraniem kandydatów. Pobiera elementy z katalogu bazy danych, które są najbardziej zbliżone do gustu bieżącego użytkownika.

3 Pięć najważniejszych elementów (zwykle może to być 100 elementów lub więcej) jest przesuwanych do kolejnego kroku w potoku, którym jest obliczanie przewidywania.

4 Przewidywanie jest obliczane na podstawie preferencji użytkownika pobieranych z bazy danych użytkownika. Obliczenie prawdopodobnie usunie jeden lub więcej elementów z listy ze względu na niską przewidywaną ocenę. Na rysunku 1.9 elementy C i E zostały usunięte.

5 Istotne elementy są wynikiem obliczonego przewidywania, teraz z dodaną do nich przewidywaną oceną. Wynik jest przesuwany dalej do procesu porządkowania według relewancji (trafności).

Rysunek 1.9. Jak „Najlepsze wybory” Netfliksa mogą być obliczane

6 Relewantne elementy są uporządkowane według gustu, kontekstu i danych demograficznych użytkownika. Proces może nawet próbować dodać tak dużo różnorodności do wyniku, jak to możliwe.

7 Pozycje są teraz uporządkowane według relewancji. Element F został usunięty, ponieważ obliczenia relewancji wykazały, że mógł nie być istotny dla użytkownika końcowego.

8 Potok zwraca listę.

9 Serwer zwraca wynik.

Patrząc na rysunek 1.9, jest oczywiste, że istnieje wiele aspektów, które należy wziąć pod uwagę podczas pracy z systemami rekomendacji. W poprzednim potoku brakuje również części zbierania danych i budowania modeli. Większość systemów rekomendacji próbuje w taki czy inny sposób użyć danych przedstawionych na rysunku 1.10.

Rysunek 1.9 ilustruje również inną rzecz, który należy wziąć pod uwagę: prognozowanie ratingowe jest tylko częścią systemu rekomendacji. Inne rzeczy mogą również odgrywać ważną rolę w tym, co system powinien wyświetlać użytkownikowi. Duża część tej książki dotyczy prognozowania ocen, a to jest ważne, nawet jeśli sprawiłem, że to tutaj zabrzmiało to jak coś nieistotnego.

Rysunek 1.10. Dane mogą potencjalnie być wykorzystane jako dane wejściowe dla systemu rekomendacji

1.2. Taksonomia systemów rekomendacji

Przed rozpoczęciem implementacji systemu rekomendacji warto zastanowić się, jakiego systemu rekomendacji chcesz użyć. Dobrym sposobem na początek jest spojrzenie na podobne systemy w celu znalezienia inspiracji. W tym podrozdziale poznasz ramy dla studiowania i definiowania systemów rekomendacji.

W poprzednich punktach przegląd Netfliksa dał ogląd tego, co może zrobić system rekomendacji. Tutaj wyjaśniona jest taksonomia, której można użyć do analizowania systemów rekomendacji. Po raz pierwszy dowiedziałem się o niej na kursie dostępnym w serwisie Coursera, prowadzonym przez profesora Josepha A. Konstana i Michaela D. Ekstranda Introduction to Recommender Systems[7] („Wprowadzenie do systemów rekomendacji”) i od tamtej pory znalazłem dla niej dobre zastosowanie. Taksonomia używa następujących wymiarów do opisania systemu: domena, cel, kontekst, poziom personalizacji, czyje to opinie, prywatność i wiarygodność, interfejsy i algorytmy[8]. Przyjrzyjmy się każdemu z tych wymiarów.

1.2.1. Domena

Domena to typ polecanej zawartości. W przykładzie z Netfliksem, domena to filmy i seriale, ale może nią być dowolna rzecz: sekwencje treści, takie jak playlisty, najlepsze sposoby na wykorzystanie kursów e-learningowych do osiągnięcia celu, oferty pracy, książki, samochody, artykuły spożywcze, wakacje, miejsca docelowe, a nawet osoby, z którymi można umówić się na randkę.

Domena jest istotna, ponieważ zawiera wskazówki dotyczące tego, co można zrobić z rekomendacjami. Domena jest również ważna, ponieważ wskazuje, jak źle jest się mylić. Jeśli tworzysz system rekomendacji muzyki, to nic strasznego, jeśli polecisz komuś nietrafioną muzykę. Jeśli polecasz rodziców zastępczych dzieciom w potrzebie, to koszt porażki jest dość wysoki. Domena również dyktuje, czy można polecić to samo więcej niż raz.

1.2.2. Cel

Jaki jest cel witryny Netflix, zarówno dla użytkownika końcowego, jak i dla dostawcy? W przypadku użytkowników końcowych korzystanie z rekomendacji serwisu Netflix polega na znalezieniu odpowiednich treści, które chcą oglądać w określonym czasie. Wyobraź sobie, że nie masz żadnego uporządkowania lub filtrowania. Jak znalazłbyś cokolwiek w katalogu Netflix, skoro ma więcej niż 10 000 elementów? A celem dostawcy (w tym przypadku Netfliksa) jest ostatecznie sprawienie, aby klienci płacili za subskrypcję miesiąc po miesiącu, poprzez dostarczanie treści, którą chcą oglądać, na wyciągnięcie ręki.

Netflix uważa, że ilość oglądanych treści jest decydującym czynnikiem pokazującym, jak im idzie. Pomiar czegoś innego zamiast bezpośredniego celu nazywa się używaniem celu zastępczego (proxy goal). Z używaniem celu zastępczego należy uważać, ponieważ może przypadkowo skończyć się na pomiarze innych efektów niż te, które zmierzyć się chciało – więcej czasu spędzonego w serwisie Netflix może oznaczać frustrację klientów, którzy szukają i przeszukują stronę, nie znajdując tego, czego szukają, lub może i to znaleźli, ale strona ciągle się zatrzymuje[9].

Za kulisami rozważane może być również wyważenie rzeczy w taki sposób, aby Netflix płacił jak najmniej za to, co oglądasz. Netflix prawdopodobnie płaci mniej za zaoferowanie 10-letnich odcinków serialu „Przyjaciele” (Friends) niż za nowszą serię lub jeszcze lepiej, za oryginalna serię Netfliksa, gdzie nie musi nikomu płacić opłaty licencyjnej.

Celem może być również podanie informacji lub pomoc lub edukowanie użytkownika. W większości przypadków jednak celem jest prawdopodobnie jak największa sprzedaż.

Jaki rodzaj klientów wolisz obsługiwać: konsumentów, którzy przychodzą raz i oczekują dobrych rekomendacji, czy lojalnych użytkowników, którzy tworzą profile i stale wracają? Czy witryna będzie oparta na automatycznym zużyciu (na przykład stacja radiowa Spotify, która odtwarza muzykę na podstawie utworu lub jednego wykonawcy)?

1.2.3. Kontekst

Kontekst jest środowiskiem, w którym konsument otrzymuje rekomendacje. W naszym przykładzie może to być urządzenie używane przez klienta do wyświetlania serwisu Netflix lub aktualna lokalizacja odbiorcy, pora dnia (lub nocy) oraz to, co konsument robi. Czy użytkownik ma czas, aby przeglądać rekomendacje, czy potrzebna jest szybka decyzja? Kontekst może również obejmować pogodę lub nawet nastrój użytkownika!

Rozważ wyszukiwanie kawiarni na mapach Google. Czy użytkownik siedzi na komputerze biurowym i szuka dobrego baru kawowego, czy może stoi na ulicy, kiedy zaczyna padać? W pierwszym scenariuszu najlepszą odpowiedzią byłoby zidentyfikowanie dobrej jakości kawiarni w szerszym promieniu; w drugim scenariuszu idealnie rekomendacje zawierać będą tylko najbliższe miejsce do picia kawy i przeczekania deszczu. Foursquare jest przykładem aplikacji, gdzie można znaleźć kawiarnie. Przyjrzymy się Foursquare w rozdziale 12.

1.2.4. Poziom personalizacji

Rekomendacje mogą pojawić się na wielu poziomach personalizacji, od wykorzystania podstawowych statystyk po przyjrzenie się danym poszczególnych użytkowników. Rysunek 1.11 ilustruje te poziomy.

Rysunek 1.11. Poziomy personalizacji

NIESPERSONALIZOWANE

Lista najpopularniejszych elementów jest uważana za niespersonalizowaną rekomendację: istnieje szansa, że bieżący użytkownik może lubić te same elementy co większość. Niespersonalizowane rekomendacje obejmują również pokazywanie rzeczy uporządkowanych według dat, takich jak wyświetlanie najnowszych elementów w pierwszej kolejności. Każdy, kto wchodzi w interakcje z systemem rekomendacji, otrzymuje tę samą listę rekomendacji. Mogą one także obejmować kawiarnię proponującą drinki w piątkowe popołudnie, cappuccino rano, ale brunch w weekendowe poranki.

CZĘŚCIOWO/SEGMENTOWO SPERSONALIZOWANE

Następny poziom zalecenia dzieli użytkowników na grupy – częściowo/segmentowo spersonalizowane rekomendacje. Grupy użytkowników można segmentować na wiele sposobów: według wieku, narodowości lub różnych wzorców, takich jak ludzie biznesu lub studenci, kierowcy samochodów lub rowerzyści.

Na przykład system sprzedaży biletów koncertowych rekomenduje pokazy na podstawie kraju lub miasta użytkownika. Oto kolejny przykład: jeśli użytkownik słucha muzyki na smartfonie, system może próbować wywnioskować, czy urządzenie jest w ruchu, czy nie. Jeśli jest w ruchu, osoba może ćwiczyć lub jechać autem lub na rowerze. Jeśli urządzenie jest nieruchome, konsument może siedzieć na kanapie w domu i odpowiednia muzyka może być inna.

Ten system rekomendacji nie wie o tobie nic osobistego, zna cię tylko jako członka grupy lub segmentu. Inne osoby, które pasują do tej samej grupy, otrzymają takie same rekomendacje.

SPERSONALIZOWANE

Spersonalizowana rekomendacja opiera się na danych o bieżącym użytkowniku, które wskazują, w jakie interakcje z systemem użytkownik wchodził poprzednio. Generuje rekomendacje specjalnie dla tego użytkownika.

Większość systemów rekomendacji używa również segmentów i popularności podczas tworzenia spersonalizowanych rekomendacji. Przykładem spersonalizowanej rekomendacji jest „Rekomendacje dla Ciebie” Amazona. Strona startowa Netfliksa to skrajny przykład spersonalizowanych rekomendacji.

Zazwyczaj witryna stosuje różne rodzaje rekomendacji. Tylko kilka witryn, takich jak Netflix, oferuje wszystko spersonalizowane. Na Amazonie znajdziesz też kategorię „Bestsellery”, która nie jest spersonalizowana, a także „Klienci, którzy kupili to, kupili również to”. To lista, która przedstawia rekomendacje oparte na wartościach inicjujących (seeded recommendations). Są to zalecenia oparte na ziarnie (seed), czyli wartości inicjującej, którą może być bieżący element przeglądany przez użytkownika.

1.2.5. Czyje opinie

Eksperckimi systemami rekomendacji są systemy manualne, gdzie eksperci rekomendują dobre wina, książki lub podobne rzeczy. Systemy te są wykorzystywane w obszarach, gdzie ogólnie uznaje się, że trzeba być ekspertem, aby wiedzieć, co jest dobre.

Dni eksperckich stron internetowych są w większości policzone, więc parametr „czyje opinie” nie jest często używany w dzisiejszych czasach. Prawie wszystkie strony wykorzystują opinie mas. Mówi się, że nie ma żadnej reguły bez wyjątku; kilka stron eksperckich wciąż pozostaje. Przykładem jest rekomendacja sommeliera na stronie winiarskiej www.vivino.com, przedstawionej na rysunku 1.12. Vivino również skłania się ku systemom rekomendacji do polecania win. Vivino dodało system rekomendacji do swojej aplikacji w 2017, aby pomóc użytkownikom znaleźć nowe wina do próbowania w oparciu o ich historię ocen[10].

Rysunek 1.12. Vivino.com podaje eksperckie rekomendacje win (rekomendacje zostały pominięte w celu zaoszczędzenia miejsca)

1.2.6. Prywatność i wiarygodność

Jak dobrze system chroni prywatność użytkowników? Jak wykorzystywane są zebrane informacje? Na przykład w Europie powszechne jest odkładanie pieniędzy na emeryturę, która jest obsługiwana przez bank. Często banki oferują różnego rodzaju plany oszczędnościowo-emerytalne. System, który je rekomenduje, powinien mieć ścisłe zasady dotyczące prywatności. Wyobraź sobie, że wypełniasz wniosek o plan oszczędnościowo-emerytalny i opisujesz, że masz problemy z plecami, a minutę później odbierasz telefon od kręgarza ze wspaniałą ofertą dotyczącą konkretnie tego problemu. Lub nawet gorzej, kupujesz specjalne łóżko dla osób z problemami z plecami, a godzinę później otrzymasz e-mail, że twoja stawka ubezpieczenia zdrowotnego wzrosła.

Wiele osób uważa rekomendacje za formę manipulacji, ponieważ przedstawiają rzeczy, na jakie klienci prawdopodobnie się zdecydują, niż na te, które mieliby wybierać spośród losowo im zaproponowanych. A większość sklepów stara się sprzedać więcej, więc fakt, że sklepy używają rekomendacji, aby sprzedać więcej, sprawia, że ludzie myślą, iż są manipulowani. Ale jeśli oznacza to oglądanie filmu, który będzie bawić, a nie nudzić, to uważam, że jest to w porządku. Manipulacja bardziej dotyczy motywu stojącego za pokazaniem konkretnego przedmiotu niż aktu pokazywania. Jeśli rekomendowany zostaje niewłaściwy i nieoptymalny lek, ponieważ sprzedawca kupuje właścicielowi witryny lepsze obiady, to jest to manipulacja, która powinna być niemile widziana.

Gdy system rekomendacji zacznie działać i zmierzone zostaje zwiększenie obrotów, dla wiele osób może uznać za kuszące wprowadzenie preferencji dostawcy, elementów magazynowanych w nadmiarze lub być może preferencje jaką markę tabletek klienci mają kupować. Uwaga: jeśli klienci zaczną czuć, że są manipulowani, to przestaną ufać twoim rekomendacjom i ostatecznie znajdą to, czego potrzebują, gdzieś indziej.

Moment, w którym rekomendacje mają moc decydowania o wpływie na decyzje, stają się celem dla spamerów, oszustów i innych osób o mniej niż szlachetnych pobudkach wpływania na nasze decyzje.

Daniel Tunkelang[11]

Wiarygodność wskazuje, na ile konsument ufa rekomendacjom, zamiast uważać je za reklamy lub próby manipulacji. Na przykładzie Netfliksa mówiłem o tym, jak prognozy mogą zniechęcać użytkowników, jeśli szacowane przewidywanie jest dalekie od rzeczywistej oceny użytkownika. Chodzi o wiarygodność. Jeśli użytkownik traktuje rekomendacje poważnie, system jest godny zaufania.

1.2.7. Interfejs

Interfejs systemu rekomendacji przedstawia rodzaje danych wejściowych i wyjściowych, które produkuje. Spójrzmy na każdy z nich.

DANE WEJŚCIOWE

Serwis Netflix umożliwił kiedyś użytkownikom wprowadzanie polubień i nie-polubień poprzez klasyfikowanie treści i dodawanie preferencji co do gatunków i tematów. Dane te mogą być wykorzystywane jako dane wejściowe dla systemu rekomendacji.

W przykładzie z Netfliksem użyto jawnych danych, gdzie ty, jako konsument, ręcznie dodajesz informacje o tym, co lubisz. Inna forma danych wejściowych to dane niejawne, gdzie system próbuje wywnioskować twój gust, patrząc na sposób interakcji z systemem. Rozdział 4 omawia informacje zwrotne bardziej szczegółowo.

DANE WYJŚCIOWE

Rodzajami danych wyjściowych mogą być prognozy, rekomendacje lub filtrowanie. Na przykład Netflix wyprowadza rekomendacje na wiele sposobów. Szacuje prognozy, zapewnia spersonalizowane sugestie i pokazuje popularne elementy, które zwykle są w formie listy Top 10 (ale Netflix nawet to personalizuje).

Jeśli rekomendacje są zwykłą częścią strony, są nazywane zintegrowaną prezentacją. Rzędy wyświetlane w serwisie Netflix są przykładem zintegrowanych rekomendacji: serwis Netflix nie wskazuje, że są to rekomendacje; są one integralną częścią strony.

Przykłady zilustrowane na rysunku 1.13 nie są zintegrowane. Hot Network Questions wykorzystuje formę niespersonalizowanych rekomendacji, nie podając wyraźnie, że to właśnie jest pokazywane. Amazon wyświetla spersonalizowane rekomendacje niezintegrowane na swojej liście „Polecane dla Ciebie”, a New York Times wykorzystuje niezintegrowane rekomendacje pokazujące najczęściej wysyłane artykuły.

Rysunek 1.13. Przykłady niezintegrowanych, niespersonalizowanych rekomendacji: Hot Network Questions z Cross Validated, Most Emailed z New York Timesa i spersonalizowana lista „Polecane dla Ciebie” z Amazona

Niektóre systemy wyjaśniają rekomendacje. Systemy rekomendacji z tą zdolności są nazywane systemami rekomendacji white-box (z pełną wiedzą); te, które jej nie posiadają, nazywane są systemami rekomendacji black-box (z minimalną wiedzą). Rysunek 1.14 przedstawia przykłady każdego z nich. Ich rozróżnienie jest ważne przy wyborze algorytmu, ponieważ nie wszystkie udostępniają przejrzyste ścieżki prowadzące z powrotem do przyczyn przewidywania.

Decydując, czy chcesz utworzyć system rekomendacji white-box, czy black-box można narzucić ograniczenia, których algorytmów używasz. Im więcej twój system musi wyjaśnić, tym prostszy algorytm. Często można rozważyć decyzję w sposób pokazany na rysunku 1.15. Im lepsza jakość rekomendacji, tym bardziej skomplikowane i trudniejsze do wyjaśnienia przyczyny. Ten problem jest znany jako kompromis między modelową dokładnością a modelową interpretacją (model accuracy-model interpretation trade-off).

Kiedyś pracowałem nad projektem, w którym położono nacisk na wyjaśnialność (explainability) i jakość. W tym celu musieliśmy zbudować kolejny algorytm na bazie naszego systemu rekomendacji, aby umożliwić dobrej jakości rekomendacje, mając jednocześnie system łączący dowody z rezultatem.

Rysunek 1.14. Systemy rekomendacji black-box (z Netfliksa) i white-box (z Amazona)

Rysunek 1.15. Wyjaśnialność kontra jakość rekomendacji

Systemy rekomendacji stały się bardzo powszechne w ostatnich latach, więc istnieje wiele przykładów, na które możemy spojrzeć. Często systemy rekomendacji są wdrażane dla filmów, muzyki, książek, wiadomości, artykułów badawczych i ogólnie dla większości produktów. Ale systemy rekomendacji mają również swoje miejsce w wielu innych dziedzinach, takich jak usługi finansowe, ubezpieczenia na życie, dane w sieci, poszukiwanie pracy, a w rzeczywistości wszędzie tam, gdzie są wybory, których należy dokonać. W tej książce jako przykłady wykorzystuje się przede wszystkim strony internetowe, ale nie ma powodu, aby nie działać na innych platformach.

Przypisy

[1] Aby uzyskać więcej informacji, zobacz http://mng.bz/ka6j.

[2] Więcej informacji na temat artykułu znajdziesz na stronie https://www.wired.com/2004/10/tail/. Aby uzyskać informacje o książce, zobacz: https://en.wikipedia.org/wiki/The_Long_Tail_(book).

[3] Netflix Recommendations: Beyond the 5 stars (Part 1), http://mng.bz/bG2x.

[4] Aby uzyskać więcej informacji, zobacz https://en.wikipedia.org/wiki/Boosting_%28machine_learning%29.

[5]  Get to know Netflix and its New Facebook Integration, http://mng.bz/6yHM.

[6] It.s your fault Netflix doesn’t have good social features, http://mng.bz/jc7M.

[7] Aby uzyskać więcej informacji, zobacz www.coursera.org/learn/recommender-systems-introduction/.

[8] Pojęcie taksonomii po raz pierwszy pojawiło się w Word of Mouse: The Marketing Power of Collaborative Filtering Johna Riela i Josepha A. Konstana (Business Plus, 2002).

[9] Polecam Weapons of Math Destruction Cathy O’Neil (Brodway Books, 2016), jeśli chcesz dowiedzieć się więcej na temat tego, jak źle sprawy mogą się potoczyć, kiedy używasz celów zastępczych.

[10] Aby uzyskać więcej informacji, zobacz http://mng.bz/1jFR.

[11] Więcej informacji na temat roli gustu i zaufania w rekomendacjach, można znaleźć pod adresem www.linkedin.com/pulse/taste-trust-daniel-tunkelang.