Постановка задачі


Об’єктом дослідження є процес побудови персоналізованих рекомендацій музичного контенту на основі багатовимірного набору ознак з використанням Spotify API. Метою роботи є розробка та реалізація архітектури рекомендаційної системи, що базується на принципах «воронки» фільтрації: від початкової генерації кандидатів до етапу важкого ранжування.

Підходи до рекомендацій


Послідовність підбору рекомендацій


Послідовність базується на принципах воронки продаж:

  1. Побудова векторного простору (Embedding Generation): Перш ніж переходити до роботи з алгоритмами, ми маємо перетворити сирі дані про пісні та дії користувача у математичні об'єкти (embeddings), це робиться для уніфікація представлень (для оперування різного роду даними, наприклад числа і категорії) і видобутку додаткових залежностей між початковими ознаками. Саме цей етап забезпечує передбачувану роботу моделі, адже таким чином будується спільний латентний простір для наступних етапів.
  2. Генерація кандидатів – це процес генерації початкових кандидатів з усього пулу. Скажімо, на YouTube мільярди відео, вони використовуватимуть цілий комплекс генераторів кандидатів, щоб відсіяти їх до кількох тисяч, можливо, десяти тисяч.
  3. Фільтрація – це процес, коли застосовується певна логіка для фільтрації поганих кандидатів за допомогою правил. Це може бути мовний фільтр, фільтр віку (наприклад, контент занадто старий). Деякі базові перевірки стану та якості. Решта кандидатів: зазвичай кілька тисяч.
  4. Легке ранжування – це також називається попереднім ранжуванням. Легка модель (або кілька) швидко оцінить решту кандидатів. Ці моделі зазвичай навчаються за допомогою методів дистиляції знань. Рештою кандидатів на цей момент буде кілька сотень.
  5. Важке ранжування – це “основна” прогностична модель. У деяких системах є лише одна важка модель, в інших системах є багато важких моделей, залежно від програми. Вони, по суті, генерують остаточних кандидатів, яких налічується десятки.
  6. Перерахунок кандидатів – іноді потрібно перерахувати кандидатів, наприклад, щоб запобігти появі занадто великої кількості публікацій від одного автора поруч.

Побудова векторного простору