Идея для создания нового алгоритма рекомендации музыкальных треков на примере Spotify
Сегодня я хочу поделиться с вами своей идей для создания нового алгоритма рекомендации музыкальных треков на примере моего приложения на PS4, которое называется Spotify.
Суть алгоритма заключается в следующем:
1. Музыкальные треки, отмеченные в Spotify как понравившиеся пользователю с меткой ID, где ID - это номер зарегистрированного в приложении пользователя; формируют рейтинг для пользователя ID, который строится на количестве полного прослушивания, получая единицу (1,2,3 и т.д.) за каждое полное прослушивание.
2. Каждом треку присваивается метка ID-N, где N - это переменная от 1 до бесконечности, которая соответствует месту в рейтинге пользователя с меткой ID.
3. Далее для каждого трека на количестве полных прослушиваний строится рейтинг фолловером, которые слушали данный трек больше, чем все остальные треки (совпадение по содержимому, которое присвоено метке ID-1).
4. После этого фолловеры одной группы большего предпочтения получают рекомендации тех музыкальных треков, которые больше всего прослушал фолловер, который занял первое место в рейтинге трека. Потом тех, которые больше всего прослушал фолловер, который занял второе место в рейтинге. И так до конца рейтинга. Фолловер, занявший первое место, получает рекомендации тех музыкальных треков, которые больше всего прослушал фолловер, который занял второе место в рейтинге трека. Потом тех, которые больше всего прослушал фолловер, который занял третье место в рейтинге. И так, также, до конца рейтинга. Если пользователь, который занял первое место в рейтинге, слушал в приложении только один трек, то он пропускается остальными фолловерами общей группы большего предпочтения, и фолловеры группы получают рекомендации тех музыкальных треков, которые начинаются по такому же принципу с пользователя, занявшего второе место. И так для каждого места.
5. Дальнейший список рекомендаций строится на совпадении по содержимому, которое присвоено метке ID-2, потом ID-3, и т.д. до последнего трека в списке понравившихся пользователю ID.