Сервіс ретельного глибокого пошуку музичних рекомендацій через аналіз схожих виконавців

Сервіс ретельного глибокого пошуку музичних рекомендацій через аналіз схожих виконавців

Мені не подобаються рекомендації звичайних музичних сервісів: вони надто поверхневі. Тому я написав свій — з глибоким аналізом і урахуванням ваг. Сервіс бере топ-500 виконавців з Last.fm (або список введений вручну), для кожного знаходить топ-300 (тепер 500) схожих, а далі будує таблицю схожості, агрегує бали й сортує результат. Виходить значно повільніше, зате релевантніше.

https://sergua.com/music/artists-recomendations

Ну відверто. Ви бачили ті рекомендації? У більшості сервісів, на мій погляд, половина рекомендацій непогана, а половина — казна-що. Чи вони підсовують те, що їм дешевше обходиться, чи є інші причини — не знаю. Але в рекомендаціях надто багато того, що відверто не хочеться слухати. Було таке, що мені потрапив індійський поп у рекомендації, хоча в мене суцільний метал, або щонайменше хард-рок. А те, що рекомендації помітно відрізняються від сервісу до сервісу, лише підсилює мою впевненість, що вони не об’єктивні. Давно хотілося зробити власну калькуляцію, а тут ще й AI - і я нарешті добрався.

Як працює мій сервіс

Спочатку сервіс витягує топ-500 виконавців користувача за весь час, за останній рік і за останній місяць. Потім складає ці числа, щоб краще врахувати і загальний профіль, і поточні музичні вподобання. За бажання можна вручну набрати список виконавців або, для поціновувачів точності, підредагувати ваги. Можна навіть поставити від’ємну вагу, щоб приглушити стиль, що не бажаний в рекомендаціях.

Далі для кожного виконавця з отриманого списку сервіс шукає топ-500 схожих виконавців. Після цього він будує таблицю схожості: кожен знайдений виконавець отримує бал, пропорційний своїй схожості, помноженій на кількість ваших прослуховувань «опорного» виконавця, через якого він був знайдений. Потім усі бали агрегуються, сортуються і виводяться у вигляді списку рекомендацій.

Як користуватися

  • Або вводите ім’я профілю Last.fm і натискаєте Load, або набираєте список улюблених виконавців вручну.
  • Опціонально: редагуєте вагу виконавців.
  • Натискаєте Find - і йдете попити кави.
  • Отримуєте топ-100 виконавців, відсортованих за сумарним зваженим балом подібності. Далі — насолоджуєтеся музикою.

Суттєве оновлення 2026.03.23

Нові можливості, які роблять сервіс значно зручнішим:

Приховування виконавців зі списку рекомендованих

Тепер біля кожного рекомендованого виконавця є кнопка «hide». Натиснув — виконавець зникає з таблиці. Це зручно, коли серед рекомендацій трапляються виконавці, яких ви вже знаєте чи щойно спробували, просто приховайте їх, щоб не заважали у списку. Всі приховані виконавці зберігаються для вашого профілю окремо і доступні через модальне вікно «Show hidden», де їх можна повернути назад. Все зберігається в local storage браузера (працює без реєстрації, але немає синхронізації).

Окрім ручного приховування, як і раніше, ваш топ-30 виконавців автоматично виключається з рекомендацій. Але тепер якщо хочете побачити, — їх теж можна повернути через те саме вікно прихованих виконавців.

Збереження стану пошукових параметрів

Сервіс тепер запам'ятовує ім'я профілю Last.fm та відредагований список виконавців у браузері. При наступному відкритті сторінки все буде на місці — не потрібно знову нічого вводити.

Збереження пошукових параметрів зі списком прихованих виконавців дуже спростило перевикористання сервісу. Просто перевідкрив сторінку - і все що було в попередній раз залишилося. Послухав ще виконавців, натиснув hide і до наступного разу.

Кількість прослуховувань рекомендованих виконавців

У таблиці результатів з'явилась колонка «Plays» — скільки разів ви вже слухали кожного рекомендованого виконавця. Це допомагає зрозуміти: перед вами справді нове відкриття, чи виконавець, якого ви і так час від часу слухаєте, але мало звертали увагу.

Багато додаткової інформації про розрахунок схожості

Раніше в розгорнутій таблиці було видно лише підсумковий бал. Тепер кожна комірка показує формулу: вага × відсоток схожості = бал. А рядок «Similar to» під ім'ям виконавця тепер містить конкретні відсотки схожості — наприклад, «Similar to: Metallica 85%, Iron Maiden 42%». Так набагато простіше зрозуміти, чому саме цей виконавець опинився у списку.

Раніше я не хотів показувати деталі, щоб не ускладнювати інтерфейс. Але ж у деталізації і є вся перевага мого сервісу. Та й мені хочеться іноді глянути.

Збільшена глубина пошуку

Раніше пошук брав 300 найбільш прослуховуваних музикантів користувача і для кожного брав 300 "схожих". Тепер - по 500. Це довше. Але все-таки я знайшов там досить цікаві перлини. Зрештою, в мене ж "глибокий" пошук.

Пом’якшення впливу популярних виконавців

Раніше вага виконавця була прямо пропорційна кількості його прослуховувань. Тепер вона розраховується за формулою plays^0.8. Це дозволяє зменшити вплив дуже популярних виконавців і збільшити різноманіття рекомендацій. Не кардинально, досить мʼяко, але приємніше, коли рекомендації не лише від твоїх топ-5 улюблених виконавців.

Думки на майбутнє

От ще б векторно-графову візуалізацію з кластеризацією... Десь я бачив js бібліотеку на цю тему.

https://sergua.com/music/artists-recomendations

Оцініть пост
0.0

Коментарі