Discover Weekly, czyli co się dzieje za kotarą Spotify

Jednym z podziałów dominujących w naszym społeczeństwie jest odwieczna dyskusja, która mierzy ze sobą humanistów i naukowców, sztukę i pojęcia ścisłe. Jakby nie można było połączyć tych dwóch pozornie przeciwstawnych pojęć. Spotify, platforma muzyczna, która za pomocą algorytmów i modeli rekomendacji dopasowuje ofertę do indywidualnych użytkowników, pokazuje nam, że odwieczna walka dziedzin artystycznych i ścisłych kończy się tutaj. 

Sophia Ciocca. Software engineer w The New York Times. W 2014 ukończyła studia ekonomiczne na Uniwersytecie w Pensylwanii. W 2016 przez pół roku pracowała dla Korpusu Pokoju jako specjalista do nauczania przedsiębiorczości. Rok później ukończyła kurs JavaScript na Fullstack Academy of Code. 


W tym tekście Sophia uchyla rąbka tajemnicy dotyczącej strategii Spotify w tworzeniu spersonalizowanych, cotygodniowych playlist dla swoich użytkowników. Polecamy artykuł każdemu, kogo fascynują mechanizmy stojące za Spotify, ale też każdemu, kto pragnie zobaczyć w jaki sposób muzyka i przedmioty ścisłe mogą ze sobą współpracować. Poniższy tekst został przetłumaczony za zgodą autorki. 

W każdy poniedziałek, ponad 100 milionów użytkowników Spotify, na swojej skrzynce pocztowej znajduje nową playlistę zatytułowaną Discover Weekly. To spersonalizowana lista 30 piosenek, których do tej pory dany użytkownik nie miał okazji wysłuchać..

Osobiście jestem wielką fanką Spotify, a w szczególności Discover Weekly. Dlaczego? Bowiem sprawia ona, że czuję się zauważona. Spotify zna moje upodobania muzyczne lepiej niż ktokolwiek inny, a utwory, które mi poleca prawie zawsze przypadają mi do gustu, choć sama pewnie nigdy bym ich nie znalazła.

Dla tych, którzy nigdy nie słyszeli o Spotify – pozwólcie, że przedstawię wam mojego najlepszego wirtualnego przyjaciela:

Jak się okazuje, nie tylko ja mam obsesję na punkcie Discover Weekly. Baza użytkowników wręcz za nią szaleje, co doprowadziło Spotify do przemyślenia swojej strategii i zwiększenia inwestycji w playlisty oparte o algorytmy. 

Od momentu, w którym w 2015 roku Discover Weekly pojawiło się po raz pierwszy na scenie Spotify chciałam zrozumieć mechanizmy za nią odpowiedzialne. Po trzech tygodniach szaleńczego googlowania mam wrażenie, że wreszcie udało mi się dojrzeć czegoś za kotarą.

Zatem jak to jest, że Spotify jest w stanie wybrać 30 piosenek dla każdego użytkownika każdego tygodnia? Zróbmy krok do tyłu i spójrzmy najpierw jak inne serwisy muzyczne radziły sobie z rekomendacjami, i w jaki Spotify robi to lepiej. 

Krótka historia serwisów muzycznych

Jeszcze w latach 2000, Songza zapoczątkowała erę serwisów muzycznych. Serwis ten tworzył playlisty za pomocą “ekspertów muzycznych”, którzy decydowali, które utwory należy na nich umieścić. Sposób ten sprawdzał się dobrze, jednak opieranie się wyłącznie o ekspertów muzycznych nie brało pod uwagę muzycznych upodobań każdego użytkownika.

Podobnie jak Songza, Pandora również była jednym z serwisów oferujących muzykę.  Stosowała ona jednak bardziej zaawansowane podejście, opisując każdą ścieżkę dźwiękową i odpowiednio ją tagując. Następnie kod Pandory filtrował konkretne tagi, aby utworzyć playlistę o podobnym brzmieniu. 

Mniej więcej w tym samym czasie narodziła się agencja muzycznej inteligencji The Echo Nest. Miała ona radykalne podejście do personalizacji muzyki. The Echo Nest stosował algorytmy do analizowania zarówno dźwięku audio, jak i tekstu danego utworu, co pozwalało na identyfikację muzyki, pozwalając tym sposobem na spersonalizowane rekomendacje, tworzenie playlist i analizę. 

Następnym graczem na ówczesnym rynku było Last.fm, które do proponowania muzyki użytkownikom używa procesu zwanego Collaborative Filtering. Więcej na jego temat później. Jakie podejście ma Spotify?

Trzy modele rekomendacji Spotify

Aby stworzyć Discover Weekly, Spotify stosuje mieszankę trzech typów modeli rekomendacji:

  1. modele Collaborative Filtering, które analizują zarówno zachowanie twoje, jak i innych ludzi,
  2. modele Natural language Processing, które analizują tekst,
  3. modele audio, które analizują wyłącznie ścieżki dźwiękowe.

Zobaczmy teraz jak działa każdy z powyższych modeli.

Model Rekomendacji numer 1: Collaborative Filtering

Najpierw małe wprowadzenie: kiedy ludzie po raz pierwszy słyszą pojęcie Collaborative Filtering, z reguły pierwsza myśl, jaka przychodzi im do głowy to Netflix – jedna z pierwszych platform, która zastosowała tę metodę w procesie rekomendowania swoich produktów poprzez używanie ocen filmów.

Po sukcesie Netfliksa Collaborative Filtering szybko się rozprzestrzeniło, obecnie będąc początkowym punktem dla każdego, kto chce stworzyć model rekomendacji.

W przeciwieństwie do Netfliksa, Spotify nie ma gwiazdkowej oceny muzyki. Zamiast tego, bierze pod uwagę takie czynniki, jak na przykład fakt, czy użytkownik zachował ścieżkę dźwiękową do własnej playlisty lub czy odwiedził stronę artysty po wysłuchaniu piosenki. 

Czym jest jednak Collaborative Filtering i jak działa? 

Przyjmijmy, że mamy dwóch użytkowników. Jednemu podobają się utwory P, Q, R, S, podczas gdy drugiemu podobają się utwory Q, R, S, T. Collaborative Filtering jest w stanie stwierdzić, że oboje użytkowników mają podobny gust muzyczny i sugeruje, aby ta pierwsza osoba odsłuchała ścieżkę T, a ta druga ścieżkę P.

W jaki sposób Spotify używa tej koncepcji, aby zasugerować ścieżki dźwiękowe dla milionów użytkowników w oparciu o preferencje milionów innych użytkowników?

Za pomocą macierzy i bibliotek Pythona!

W rzeczywistości macierz, którą widzisz powyżej jest gigantyczna. Każdy rząd reprezentuje jednego ze 140 milionów użytkowników Spotify, a każda kolumna reprezentuje jedną z 30 milionów piosenek w bazie danych Spotify.

Biblioteka Pythona przetwarza poniższe działanie:

Kiedy jest już to skończone mamy dwa typy wektorów przedstawione tutaj przez X i Y. X jest wektorem użytkownika reprezentującym upodobania pojedynczego użytkownika, a Y jest wektorem piosenki reprezentującym profil pojedynczej piosenki. 

Macierz użytkownik / piosenka produkuje dwa typy wektorów – wektor użytkownika i wektor piosenki. Mamy teraz 140 milionów wektorów użytkowników i 30 milionów wektorów piosenki. Zawartość w tych wektorów to właściwie tylko zbiór liczb, które same w sobie są bez znaczenia, ale są bardzo przydatne, kiedy porównamy je do siebie. 

Aby dowiedzieć się, którzy użytkownicy mają podobne upodobania muzyczne Collaborative Filtering porównuje wektory użytkowników aż w końcu znajdzie te, które są do siebie najbardziej zbliżone. Tak samo dzieje się w przypadku wektora Y: możesz porównać wektor pojedynczej piosenki z innymi piosenkami i wybrać tę piosenkę, która jest najbardziej podobna do tej, o którą pytamy.

Collaborative Filtering daje sobie radę całkiem dobrze, ale aby ulepszyć swoją ofertę Spotify dodał kolejny silnik.

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
Rutyna w programowaniu - jak z nią walczyć?
Rutyna w pracy programisty – jak sobie z nią radzić?