Еженедельные рекомендации Spotify: музыкальные рекомендации на основе машинного обучения

машинное обучение Программа перевода самородков Нейронные сети NLP

Еженедельные рекомендации Spotify: музыкальные рекомендации на основе машинного обучения

Каждый понедельник более 100 миллионов пользователей Spotify получают свежий плейлист с песнями. Этот пользовательский список содержит 30 песен, которые пользователи никогда не слышали, но которые могут им понравиться. Эта удивительная функция называется «Discover Weekly».

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

Если вы изо всех сил пытаетесь найти музыку, которую хотите послушать, позвольте представить моего лучшего виртуального партнера:

A Spotify Discover Weekly playlist — specifically, mine.
Еженедельный плейлист Spotify Discover  — конкретно мой.

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

Функция «Еженедельные рекомендации» дебютировала в 2015 году, и с тех пор мне очень не терпелось увидеть, как она работает (я фанат их компании, поэтому часто предполагаю, что работаю в Spotify и изучаю их продукт). После трех недель лихорадочных поисков я смог мельком увидеть, что скрывается за его завесой.

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


Songza использует его с 2000 года.ручное редактированиедля онлайн-музыкального курирования (курирование, курирование и презентация). «Человеческое редактирование» означает, что какой-то группе «музыкальных экспертов» или другим администраторам необходимо вручную поместить песни, которые они считают хорошими, в список воспроизведения. (Эта же стратегия позже была принята Beats Music). Хотя ручное редактирование работает хорошо, оно требует ручных операций и слишком упрощено.Невозможность учесть различия индивидуальных музыкальных вкусов каждого слушателя.

Как и Сонгза, Пандора является одним из старейших музыкальных кураторов. Он принимает более продвинутый метод, используяАннотирование атрибутов песни вручнуюМетоды. То есть после прослушивания песен группа людей выбирала для каждой песни несколько описательных слов и отмечала каждый трек. Затем Pandora может использовать код для простой фильтрации аннотаций, чтобы получить похожие списки воспроизведения.

В то же время Медиа-лаборатория Массачусетского технологического института разработала интеллектуального музыкального помощника под названием «Эхо-гнездо», который стал пионером в более продвинутом способе персонализации музыкальных рекомендаций. Эхо-гнездо используетАлгоритмы анализируют содержание отдельных музыкальных аудиофайлов и текста., который обеспечивает идентификацию музыки, персональные рекомендации, создание списков воспроизведения и анализ.

Кроме того, Last.fm, который существует до сих пор, использует метод, называемыйСовместная фильтрацияразные методы. Он может идентифицировать музыку, которая может понравиться пользователю. Подробно о нем будет сказано позже.


ВышеупомянутоеразноеРекомендуемый метод для музыкальных сервисов. Так как же Spotify создает свой волшебный движок и дает рекомендации, которые больше соответствуют вкусам пользователей?

3 модели рекомендаций Spotify

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

Разработчики еженедельных рекомендаций Spotify в основном используют следующие три типа рекомендаций:

  1. Совместная фильтрацияМодель (та, которую впервые использовал Last.fm), проанализировавтвойповедение идругиеповедение для работы.
  2. Обработка естественного языка (NLP)модель для анализатекст.
  3. аудиомодель для анализаОригинальный саундтрек.

Image credit: Chris Johnson, Spotify
Image credit: Chris Johnson, Spotify

Давайте подробнее рассмотрим каждую из приведенных выше моделей рекомендаций!


Рекомендательная модель № 1: совместная фильтрация

Во-первых, немного предыстории: когда люди слышат слово «совместная рекомендация», большинство из них думают оNetflixЭто первая компания, принявшая модель рекомендаций по совместной фильтрации. Они используют пользовательские рейтинги видео, чтобы определить, какие видео рекомендовать для просмотра.разноеПользователи со схожими предпочтениями.

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

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

Так что же такое совместная фильтрация и как она работает? Вот краткий обзор этого короткого разговора:

Image by Erik Bernhardsson
Image by Erik Bernhardsson

Что происходит на картинке? У обоих людей на картинке есть несколько любимых песен — человеку слева нравятся песни P, Q, R и S, человеку справа нравятся песни Q, R, S и T.

Совместная фильтрация — это как сказать с этими данными:

«Эмммм, вам обоим нравятся песни Q, R и S, так что вы можете быть похожими пользователями. Итак, вам должны нравиться песни, которые нравятся другому человеку, но вы еще не слышали».

То есть человеку справа будет рекомендовано попробовать песню P, а человеку слева будет рекомендовано послушать песню T. Это просто!

Но как Spotify реализует этот подход длямиллион пользователейлюбимые песни для подсчетамиллион пользователейрекомендуемые?

... применяя математические матрицы, а затем используя для этого библиотеку Python.

На практике матрица, на которую вы смотрите,огромныйиз,Каждая строка в матрице представляет 140 миллионов пользователей Spotify.(Если вы также используете Spotify, вы также будете строкой этой матрицы),Каждый столбец представляет 30 миллионов песен в базе данных Spotify..

Затем библиотека Python вычисляет матрицу по следующей формуле разделения, долго и медленно:

После завершения вычислений мы получаем два типа векторов, обозначенных здесь X и Y.X - пользовательский вектор, представляющий вкус одного пользователя;Y - вектор песни, который представляет атрибуты песни.

用户/歌曲矩阵会产生两个向量:用户向量与歌曲向量。
Матрица пользователь/песня создает два вектора: вектор пользователя и вектор песни.

Теперь у нас есть 140 миллионов пользовательских векторов и 30 миллионов векторов песен. Содержимое этих векторов, по сути, представляет собой набор чисел, которые сами по себе ничего не значат. Но их сравнение может иметь огромное значение.

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

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


Рекомендательная модель № 2: обработка естественного языка (NLP)

Вторая модель рекомендаций, принятая Spotify,Модели обработки естественного языка (NLP). Как следует из названия, источником данных для этой модели является традиционный смысл.Слово- Эти тексты получены из метаданных песен, новостных статей, блогов и других текстов в Интернете.

НЛП, способность компьютеров понимать человеческий язык, — это огромная область. Здесь можно использовать некоторые API анализа тональности.

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

Хотя я не знаю подробностей того, как Spotify обрабатывает данные, я знаю, как с ними работает Echo Nest. Они инкапсулируют языковую обработку в виде «культурных векторов» или «высокочастотных фраз». Существуют тысячи высокочастотных фраз для каждого исполнителя и песни, которые меняются каждый день. Каждая фраза имеет вес, отражающий важность фразы (грубо говоря, вероятность того, что кто-то будет использовать эту фразу при описании музыки).

«Культурные векторы» и «Частотные фразы», ​​используемые Echo Nest, таблица предоставлена ​​Брайаном Уитменом.

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


Рекомендуемая модель № 3: модель Raw Audio

Прежде чем начать эту главу, вы можете спросить:

Мы уже применили достаточно данных в первых двух моделях, зачем нам анализировать сам звук?

Во-первых, введение этой третьей модели может еще больше повысить точность этой удивительной службы рекомендаций. Но на самом деле у этой модели есть и вторая цель: в отличие от первых двух моделей,Оригинальная аудиомодель может быть использована для обработкиновыйПесня.

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

Далее объясните "как" такому рефератуоригинальный звуканализ.

…использоватьСверточная нейронная сеть (CNN)!

Сверточные нейронные сети — это технология распознавания лиц. В сценарии Spotify инженеры используют аудиоданные вместо пикселей. Ниже приведен пример структуры в нейронной сети 1:

Image credit: Sander Dieleman
Image credit: Sander Dieleman

Эта специально созданная нейронная сеть имеет 4 слоя.сверточный слой, они в левой части картинки и выглядят как очень толстые доски, там еще 3 слояполносвязный слой, они находятся в правой части изображения и выглядят как очень узкие дощечки. Входное значение является представлением частоты звукового кадра, представленного на графике в виде спектрограммы.

После того, как звуковой кадр проходит через эти сверточные слои, вы можете увидеть слой «глобального временного объединения» рядом с последним сверточным слоем. Этот объединяющий слой объединяет по всей временной оси, эффективно статистически находя особенности, обнаруженные во временном ряду песен.

После этого нейросеть выдает свое понимание песни, которое включает в себя различные похожиеОтметка времени, тональность, стиль, ритм, громкостьи другие типичные характеристики. На изображении ниже показаны данные из 30-секундного клипа Daft Punk «Вокруг света».

Авторское право на изображение:Tristan Jehan & David DesRoches (The Echo Nest)

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


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

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

Я надеюсь, что информация в этой статье удовлетворит ваше любопытство (как и мое). Теперь я нахожу музыку, которая мне нравится, благодаря моим персональным еженедельным рекомендациям, понимаю и ценю все машинное обучение, стоящее за этим. ?


**ресурс:


Программа перевода самородковэто сообщество, которое переводит высококачественные технические статьи из Интернета сНаггетсДелитесь статьями на английском языке на . Охват контентаAndroid,iOS,React,внешний интерфейс,задняя часть,продукт,дизайнЕсли вы хотите видеть более качественные переводы, пожалуйста, продолжайте обращать вниманиеПрограмма перевода самородков,официальный Вейбо,Знай колонку.