В начале 2000-х Songza внедрила ручную систему рекомендаций по музыке для своих слушателей, в которой команда музыкальных экспертов и кураторов создавала плейлисты. Но эти рекомендации не были объективными, так как зависели от личного вкуса кураторов.

Для слушателей это был средний опыт с изрядной долей попаданий и промахов, потому что невозможно было составить плейлист, который удовлетворял бы самые разные вкусы самых разных людей. В то время не существовало технологий и данных для создания списка воспроизведения, который можно было бы персонализировать по вкусу каждого отдельного слушателя.

Спустя несколько лет появился Spotify, предлагающий персонализированный еженедельный плейлист под названием Discover Weekly, который быстро стал одним из их флагманских предложений.

Каждый понедельник миллионы слушателей получают свежий плейлист с рекомендациями новых песен, адаптированных к их личным вкусам на основе истории прослушивания и песен, с которыми они взаимодействовали. Spotify использует комбинацию различных методов агрегирования и сортировки данных для создания своей уникальной и мощной модели рекомендаций, основанной на машинном обучении.

«Одна из наших флагманских функций называется Discover Weekly. Каждый понедельник мы даем вам список из 50 треков, которые вы раньше не слышали и которые, как мы думаем, вам понравятся. Механизм машинного обучения, лежащий в основе его, и с тех пор он был усовершенствован, фактически присутствовал в Spotify немного раньше, чем появился Discover Weekly, просто поддерживая нашу страницу Discover », - Дэвид Мургатройд, руководитель машинного обучения в Spotify.

Spotify использует три формы моделей рекомендаций для работы Discover Weekly.

Совместная фильтрация Совместная фильтрация - это популярный метод, используемый рекомендательными системами для автоматического прогнозирования предпочтений пользователей на основе предпочтений других подобных пользователей.

В Spotify алгоритм совместной фильтрации сравнивает несколько созданных пользователями плейлистов, в которых есть песни, которые пользователи слушали. Затем алгоритм просматривает эти списки воспроизведения, чтобы найти другие песни, которые появляются в списках воспроизведения, и рекомендует эти песни.

Этот фреймворк выполняется с помощью матричной математики в библиотеках Python. Сначала алгоритм создает матрицу всех активных пользователей и песен. Затем библиотека Python запускает серию сложных формул факторизации для матрицы. Конечным результатом являются два отдельных вектора, где X - пользовательский вектор, представляющий вкус отдельного пользователя. Вектор Y представляет собой профиль отдельной песни. Чтобы найти пользователей со схожим вкусом, совместная фильтрация будет сравнивать данный пользовательский вектор с каждым без исключения пользовательским вектором, чтобы получить аналогичный пользовательский вектор в качестве выходного. Та же процедура применяется к векторам песни.

Spotify полагается не только на совместную фильтрацию. Вторая используемая модель рекомендаций - это НЛП.

  1. Обработка естественного языка

НЛП - это способность алгоритма понимать речь и текст в режиме реального времени. NLP Spotify постоянно просматривает Интернет в поисках статей, сообщений в блогах или любого другого текста о музыке, чтобы придумать профиль для каждой песни.

Со всеми этими очищенными данными алгоритм НЛП может классифицировать песни на основе языка, на котором они описаны, и может сопоставлять их с другими песнями, обсуждаемыми в том же ключе. Артистам и песням назначается классификация ключевых слов на основе данных, и каждому термину присваивается определенный вес. Подобно совместной фильтрации, создается векторное представление песни, которое используется для предложения похожих песен.

2. Сверточные нейронные сети

Сверточные нейронные сети используются для оттачивания системы рекомендаций и повышения точности, поскольку менее популярные песни могут игнорироваться другими моделями. Модель CNN обеспечивает рассмотрение малоизвестных и новых песен.

Модель CNN наиболее часто используется для распознавания лиц, и Spotify настроил ту же модель для аудиофайлов. Каждая песня преобразуется в необработанный аудиофайл в виде волны. Эти формы волны обрабатываются CNN, и им назначаются ключевые параметры, такие как удары в минуту, громкость, мажорная / минорная тональность и так далее. Затем Spotify пытается сопоставить похожие песни, которые имеют те же параметры, что и песни, которые их слушатели любят слушать.

С помощью этих ключевых моделей машинного обучения Spotify может составить уникальный плейлист с музыкой, которая каждую неделю удивляет своих слушателей песнями, которые они никогда бы не нашли в ином случае.

Ключевой проблемой многих моделей машинного обучения является отсутствие доступа к чистым, структурированным данным, которые можно обрабатывать. Spotify удалось обойти эту проблему благодаря доступу к огромным объемам данных, которые они собирают от своих пользователей. Они смогли показать отличный пример эффективного использования моделей машинного обучения, чтобы предоставить своим пользователям непревзойденный персонализированный опыт.

Если вас интересует область искусственного интеллекта и глубокого обучения и вы хотите узнать больше об этом предмете, ознакомьтесь с программой Great Learning PG по искусственному интеллекту и машинному обучению.