Algorytm Collaborative filtering na Spotify

Algorytm Collaborative filtering na Spotify

Słownik Digital Marketing

Słownik Digital Marketing

Artykuł uaktualniony 2 miesiące

Schemat działania Spotify

W jaki sposób słuchamy na platformie Spotify tego, co nam się podoba? Dzieje się tak za sprawą algorytmów, które dobierają utwory do każdego użytkownika.

 Spotify używa 3 algorytmów filtrowania: przetwarzanie języka naturalnego, analiza dźwięku i Collaborative filtering. W poniższym artykule opisany został Collaborative filtering. Na mapie został zaprezentowany sposób zbierania oraz filtrowania danych przez algorytmy. Dane te są uzyskiwane z pomocą Internetu, wytwórni płytowych i wewnętrznych systemów.

Algorytm Collaborative filtering na Spotify
Schemat działania Spotify

Algorytm Collaborative filtering opiera się na wyborach człowieka. W sytuacji, kiedy artysta chce dodać utwór do platformy Spotify, musi on wypełnić specjalny formularz. W formularzu tym musi przyporządkować swój utwór do odpowiedniego gatunku, opisać „uczucia, jakie piosenka wywołuje” oraz do jakich innych artystów nawiązuje jego twórczość. Ważnymi informacjami dla algorytmu są również zapisywanie utworów w polubionych utworach przez użytkowników oraz inne działania wykonywane przez użytkownika po wysłuchaniu piosenki wybranego artysty (Madrigal, 2020). Wszystko to jest potrzebne do odpowiedniego filtrowania oraz trafnego doboru przez platformę utworów, a także tworzenia rekomendacji dla innych użytkowników z podobnym gustem muzycznym.

Schemat działania algorytmu collaborative filtering

Dane wejściowe collaborative filtering

Dane wejściowe dla algorytmu Collaborative filtering stanowi liczba odtworzeń poszczególnych piosenek przez konkretnych użytkowników. Dane są przekształcane do postaci tzw. macierzy wskaźnikowej (ang. rating, oznaczonej literą „R”).

Każdy wiersz macierzy odpowiada jednemu użytkownikowi. Natomiast każda kolumna macierzy jest przypisana do jednej piosenki (Mohan, 2020). Wartości umieszczone w poszczególnych komórkach reprezentują liczbę odtworzeń danej piosenki przez wybranego użytkownika, np. zgodnie z zaprezentowaną poniżej macierzą pierwszy użytkownik pięć razy odtworzył piosenkę numer trzy. 

przykladowa macierz wskaznikowa
Przykładowa macierz wskaźnikowa

Operacje na danych collaborative filtering

Po utworzeniu macierzy wskaźnikowej (R) następuje jej przekształcenie na dwie pomocnicze macierze: macierz preferencji (ang. preference, oznaczono literą „P”) oraz macierz pewności (ang. confidence, oznaczono literą „C”).

ZYbh1oOra5S YBKmcTRD9THJZCjZzFIVNfA4uWE5P9Mr4VtjLDYJXKvnM0Ey7ZeCSZAiqP3YPdI1S DwHxMQzKWnNTJJ 1r MCEaMhUviaNMgjQfd3Cj6DjY SBjcOtYH4HTyXZ

Wartości poszczególnych elementów macierzy preferencji obliczane są na podstawie wartości dopowiadających im elementów macierzy wskaźnikowej. 

Jeżeli danych element macierzy wskaźnikowej ma wartość równą 0, to w macierzy preferencji będzie mu odpowiadać również wartość 0. Natomiast gdy danych element macierzy wskaźnikowej ma wartość większą lub równą 1, to w macierzy preferencji będzie mu odpowiadać wartość 1. 

Opisaną operację możemy zapisać za pomocą specjalnie przygotowanego wzoru. Na potrzeby tego wzoru wartości macierzy R oznaczymy jako rui , a wartości macierzy P oznaczymy jako pui. Symbol u odnosi się do danego użytkownika, a natomiast i odnosi się do piosenki. 

image

Macierz pewności (C), podobnie jak macierz preferencji, powstaje na podstawie macierzy wskaźnikowej. Elementy macierzy pewności są oznaczane jako cui zgodnie ze schematem wykorzystanym dla macierzy preferencji. Macierz pewności stara się określić, jak bardzo prawdopodobna jest preferencja danego użytkownika względem wybranej piosenki. Dokonuje tego na podstawie ilości odtworzeń konkretnej piosenki przez danego użytkownika (Mohan, 2020). 

Do przeprowadzania obliczeń wykorzystywany jest odpowiedni wzór, który oprócz opisanych wcześniej informacji korzysta z dwóch hiperparametrów (ang. hyperparameters): oraz .

image 1

W kolejnym kroku macierz wskaźnikowa jest rozkładana z wykorzystaniem algorytmu WMF (Weighted Matrix Factorization). W wyniku tego działania powstają dwie nowe macierze: X oraz Y. Wierszy macierzy X (xu) oraz kolumny macierzy Y (yi,) odpowiadają reprezentacjom czynników ukrytych (ang. latent factor)) dla użytkowników i piosenek. 

Schemat działania algorytmu WMF
Schemat działania algorytmu WMF

Do obliczenia czynników ukrytych wykorzystywane są wartości z macierzy preferencji, macierzy pewności oraz parametr regulujący . Wzór na każdy z czynników ukrytych ma postać:

image 3

Wynik działania collaborative filtering

Po wykonaniu opisanych wcześniej operacji możliwe jest wygenerowanie rekomendacji. Rekomendacje tworzone są poprzez znalezienie ‘K’ najbliższego wektora piosenki dla każdego wektora użytkownika. Aby tego dokonać, wykorzystywany jest algorytm szacowanego najbliższego sąsiada (ang. Approximate Nearest Neighbour). Nie gwarantuje on pełnej poprawności uzyskiwanych wyników, ale cechuje się relatywnie wysoką szybkością działania, co pozwala na efektywne tworzenie rekomendacji.

Zastosowanie algorytmu collaborative filtering

Algorytm ten w praktyce wygląda tak:

Collaborative filtering Zastosowanie algorytmu
Zastosowanie algorytmu collaborative filtering

Wyobraź sobie, że idziesz na spotkanie ze znajomymi. Spotykasz tam swoją znajomą Kasię. Zaczynacie rozmawiać o muzyce. Z rozmowy dowiadujesz się, że Kasia lubi piosenki B, C, D, E. Tak się składa, że ty też znasz piosenki B, C, D i one Ci się podobają. W związku z tym, że macie podobny gust muzyczny, ty postanawiasz posłuchać piosenki E, a z kolei Kasi polecasz piosenkę A. Tak właśnie wygląda działanie wskazanego algorytmu w praktyce.

Dlaczego algorytm jest ciekawy?

Wynikiem zastosowania algorytmu jest wysoka jakość spersonalizowanych rekomendacji i trafny wybór piosenek wśród ok. 82 milionów utworów platformy Spotify (Pendlebury, 2022). Algorytm zapewnia dostęp do znajomej, ale świeżej listy utworów, analizuje zachowania jednego użytkownika i porównuje do innych użytkowników, aby sprawdzić, czy mają podobne gusta. Spotify w każdy poniedziałek udostępnia milionom użytkowników 30 nowych rekomendacji utworów “Odkryj w tym tygodniu”.

mqlTZJFF RqtESTvadd6uhegXTGLMjT2nJTPzYhTGMwbqif38YGMK9C3m4tSJpLBrnYAqzttnel9WmVDoWUtCA ta5H36f7fsHVUU7

Aby sprawdzić poprawność działania algorytmu w playliście  została przeprowadzona ankieta. Ankietowanymi byli studenci, głównie w wieku 20-23. Ankietowani musieli przesłuchać 30 piosenek i podzielić je w dwóch kategoriach, czy im się podoba i czy znali te piosenki. Jeśli chodzi o to, czy piosenki im się podobały, to równo 40% piosenek podobało się ankietowanym, o 19% nie mieli zdania (czyli piosenka ani się nie spodobała, ale dało się ją odsłuchać), a 41% się nie podobało.

Jeśli chodzi o sprawdzenie tego, czy algorytm proponuje naprawdę nowe piosenki, to wynikiem ankiety było, że ankietowani znali jedynie 25% z 30 piosenek, co jest dobrym wynikiem – ponieważ Spotify nie da rady sprawdzić, czy np. nie słyszeliśmy danej piosenki na innej platformie, na imprezie, czy chociażby radiu.

YfzGuKWiBu84EzfCoJs8dy3bXNNK6Xw7k0D1JQ4VQ6AZChUCEnRcSQmXLxKe5woD2GpSqroVoB1baC74Pq7LdszLs

Podsumowując, playlista, jeśli chodzi o proponowanie nowych piosenek działa dobrze. Jednakże, jeśli chodzi o proponowanie piosenek, które spodobają się słuchaczowi, już tutaj nie działa tak dobrze. Średnio tylko 12 z 30 piosenek podobało się ankietowanym, więc jest to strata ponad połowy piosenek.

Autorzy : Tomasz Bykowski, Patrycja Gruszkowska ,Jakub Jeżewski

Redakcja: Marcin Kordowski

Marcin Kordowski
Marcin Kordowski
17 lat doświadczenie w Digital Marketing i SEO, wykładowca PW, trener, bloger i praktyk. Projekty w ponad 30 krajach, specjalizuje się w branży finansowej, medycznej i e-commerce.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.