Як працюють рекомендації в музичних сервісах Яндекса

Все більше людей користується стрімінговимі сервісами, вважаючи за краще доступ до мільйонів треків за щомісячну плату покупці дискографій, альбомів та окремих композицій. Однак мало мати можливість включити практично будь-який трек, користувачам потрібен помічник, який дозволить послухати щось нове і підбере треки на основі смаків користувачів. Буквально кожен сервіс потокового відтворення музики пропонує користувачам різні інструменти для цього: радіостанції за жанрами і настроям, кураторів плейлисти, а головне - персональні рекомендації.
Перш ніж що-небудь радити людині, варто уточнити його смаки і переваги. Дізнатися про них Диско може з кількох джерел. По-перше, це пошукові запити - вони можуть розповісти про поточні інтересах. По-друге, це дані від технології Крипта: стать, приблизний вік і рід занять. Вони дозволяють не рекомендувати людині те, що йому явно не сподобається. Скажімо, 15-річній дівчинці, яка захоплюється аквааеробікою, не варто радити музику в жанрі шансон. Нарешті, це відомості від сервісу, для якого складаються рекомендації. Наприклад, в Маркеті це інформація про те, які товари переглядав людина, а в Музиці і Радіо - які треки він слухав. Само собою, всі дані знеособлені.
Сигнали про переваги користувача можуть бути позитивними і негативними. Наприклад, в Яндекс.Радіо і Яндекс.Музиці композиції, які припали до душі, можна пропускати або відзначати оцінкою «не подобається». Це негативний сигнал - він говорить про те, що в подальшому людині таку музику рекомендувати не треба. Крім того, сигнали можуть відрізнятися за вагою. І оцінка «мені подобається», і факт прослуховування треку від початку до кінця є позитивними сигналами, але у першого вага буде більше.
В основі другого підходу лежить інформація про зв'язки між людьми. Завдяки Крипті відомі стать, приблизний вік і можливий рід занять кожного користувача. Встановлено, що людей, у яких ці характеристики збігаються, часто цікавлять одні і ті ж об'єкти. Навіть якщо людина користується сервісом вперше і ще не встиг нічого подивитися, послухати або придбати, можна перевірити, що дивляться, слухають або купують люди зі схожими характеристиками - і запропонувати йому ці ж об'єкти.

У кожного з підходів є свої переваги. Перший підхід дозволяє порадити людині рідкісні об'єкти, якими мало хто цікавиться - наприклад, маловідому музичну групу. Другий підхід дає можливість складати рекомендації для людей, які опинилися на сервісі вперше і ще не встигли зробити ніяких дій. Третій підхід дозволяє знайти нетривіальні закономірності: скажімо, може з'ясуватися, що люди, які цікавляться надувними басейнами і фітнес-трекера, частіше за інших купують кавоварки.
На цих трьох підходах засновані всі рекомендаційні моделі, які використовуються в Диско. Таких моделей налічується кілька сотень, і всі вони працюють по-різному: одна становить рекомендації з урахуванням музичного жанру, друга - з урахуванням бренду товарів, і так далі. Кожна модель на вхід приймає набір параметрів, а на виході видає список рекомендацій.
Всі рекомендації від різних моделей обробляє метод машинного навчання Матрикснет. Його завдання - скласти поєднання рекомендацій, яке б ідеально відповідало інтересам користувача в даний момент.
Вирішуючи цю задачу, Матрикснет враховує безліч факторів. Наприклад, фактор різноманітності - людям, у яких в списках відтворення сусідять треки різних жанрів і виконавців, варто радити більш різноманітну музику, ніж тим, хто звик включати альбом і слухати його від початку до кінця. Або фактор популярності - хтось вважає за краще слухати музику, яку часто крутять радіостанції, а хтось любить рідкісні треки, які відомі тільки вузькому колу меломанів.
Результат роботи Матрикснет - фінальний список рекомендацій. Його користувач і бачить на сервісі - наприклад, на головній сторінці Яндекс.Музика або в розділі «Популярні товари» на Яндекс.Маркеті.