Spotify официально объясняет, как использовать глубокое обучение, чтобы рекомендовать музыку Discover Weekly

искусственный интеллект глубокое обучение NLP
Spotify официально объясняет, как использовать глубокое обучение, чтобы рекомендовать музыку Discover Weekly

The science behind personalized music recommendations

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

Я большой поклонник Spotify и особенно Discover Weekly. Почему?seen. It knows my musical tastes better than any person in my life ever has, and I am consistently delighted by how it satisfies me just right every week, with tracks I myself would never have found or known I would like.

For those of you who live under a musically soundproof rock, let me introduce you to my virtual best friend:

Еженедельный плейлист Spotify Discover  — конкретно мой.

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

<div class="iframeContainer"><IFRAME data-width="500" data-height="185" width="500" height="185" src="/media/fa684fe30330bebb9822fed42ce735fb?postId=19a41ab76efe" data-media-id="fa684fe30330bebb9822fed42ce735fb" data-thumbnail="https://i.embed.ly/1/image?url=https%3A%2F%2Fpbs.twimg.com%2Fprofile_images%2F1397555521%2F207306_567545382507_16603807_32406047_7658474_n_400x400.jpg&key=4fce0568f2ce49e8b54624ef71a8a5bd" allowfullscreen frameborder="0"></IFRAME></div>

Ever since Discover Weekly дебютировала в 2015 году, и мне не терпелось узнать, как она работает (к тому же я фанат компании, поэтому иногда мне нравится притворяться, что я работаю там и изучаю их продукты). После трех недель безумного гугления я чувствую себя благодарным чтобы, наконец, заглянуть за занавеску.

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


A brief history of online music curation

Back in the 2000s, Songza kicked off the online music curation scene using manual curation для создания плейлистов для пользователей. вручную, которые, по их мнению, звучали хорошо, а затем слушатели просто слушали их плейлисты (позднее Beats Music использовала ту же стратегию).Это не может «принять во внимание нюанс индивидуального музыкального вкуса каждого слушателя.

Like Songza, Pandora was also one of the original players in the music curation scene. It employed a slightly more advanced approach, instead manually tagging attributes Из песен, это означало, что группа людей слушала к музыке, выбрал набор описательных слов для каждого трека и пометил треки этими словами, а затем код Pandora мог просто фильтровать определенные теги, чтобы создавать плейлисты из похожей музыки.

Around that same time, a music intelligence agency from the MIT Media Lab called The Echo Nest was born, which took a radically more advanced approach to personalized music. The Echo Nest used algorithms to analyze the audio and textual content of music, allowing it to perform music identification, personalized recommendation, playlist creation, and analysis.

Finally, taking yet another different approach is Last.fm, which still exists today and uses a process called collaborative filtering to identify music its users might like. More on that in a moment.


Так что если это такother music curation services have done recommendations, how does Spotify come up with their волшебный движок, который, по-видимому, гораздо точнее улавливает вкусы отдельных пользователей, чем любой другой сервис?

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

Spotify на самом деле не использует единую революционную модель рекомендаций —  вместо этого,they mix together some of the best strategies used by other services to create its own uniquely powerful Discovery engine.

To create Discover Weekly, there are three main types of recommendation models that Spotify employs:

  1. Collaborative Filtering models (i.e. the ones that Last.fm originally used), which work by analyzing your behavior and другие behavior.
  2. Natural Language Processing (NLP) models, which work by analyzing text.
  3. Audio models, which work by analyzing the raw audio tracks themselves.
Image credit: Chris Johnson, Spotify

Давайте углубимся в то, как работает каждая из этих моделей рекомендаций!


Recommendation Model #1: Collaborative Filtering

<img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*Lfl5nMKUwGjhZvC_3vPCKQ.png">

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

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

Однако, в отличие от Netflix, у Spotify нет тех звездочек, которыми пользователи оценивают свою музыку.implicit feedback — в частности,stream counts of the tracks we listen to, as well as additional streaming data, including whether a user saved the track to his/her own playlist, or visited the Artist page after listening.

But what is коллаборативная фильтрация и как она работает?

Image by Erik Bernhardsson

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

Collaborative filtering then uses that data to say,

"Хммм. Вам обоим нравятся три одинаковых трека  — "Q, R и S ", — так что вы, вероятно, похожие пользователи. Следовательно, каждому из вас, вероятно, понравятся другие треки, которые слушал другой человек, которые вы не слушали. слышал еще».

It therefore suggests that the guy on the right check out track P, and the guy on the left check out track T. Simple, right?

But how does Spotify actually use that concept in practice to calculate millions треков, предложенных пользователями на основеmillions предпочтений других пользователей?

… матричная математика, сделанная с помощью библиотек Python!

In actuality, this matrix you see here is gigantic.Каждая строка представляет одного из 140 миллионов пользователей Spotify.(if you use Spotify, you yourself are a row in this matrix) and each column represents one of the 30 million songsв базе данных Spotify.

Then, the Python library runs this long, complicated matrix factorization formula:

Какая-то сложная математика…

When it finishes, we end up with two types of vectors, represented here by X and Y. X is a user vector, представляющий вкус одного пользователя, иY is a song vector, представляющий одну песню профиль.

<img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*cs6FT4dt3sujiauIKF_HYg.png">
The User/Song matrix produces two types of vectors: User vectors and Song vectors.

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

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

Collaborative filtering does a pretty good job, but Spotify knew they could do even better by adding another engine. Enter NLP.


Recommendation Model #2: Natural Language Processing (NLP)

The second type of recommendation model that Spotify employs are Natural Language Processing (NLP) models, Исходные данные этих моделей, как следует из названия,words —  отслеживать метаданные, новостные статьи, блоги, и другой текст в Интернете.

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

Точные механизмы, лежащие в основе NLP, выходят за рамки этой статьи, но вот что происходит на очень высоком уровне: Spotify постоянно сканирует Интернет в поисках сообщений в блогах и других письменных текстов о музыке и выясняет, что говорят люди. о конкретных исполнителях и песнях — какие прилагательные и формулировки часто используются в отношении этих песен, и какиеother artists and songs are also discussed alongside them.

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

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

Then, much like in collaborative filtering, the NLP model uses these terms and weights to create a vector representation of the song that can be used to determine if two pieces of music are similar. Cool, right?


Recommendation Model #3: Raw Audio Models

First, a question. You might be thinking:

But, Sophia, we already have so much data from the first two models! Why do we need to analyze the audio itself, too?

Well, first of all, including a third model further improves the accuracy of this amazing recommendation service. But actually, this model serves a secondary purpose, too: Unlike the first two model types, raw audio models take into account new songs.

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

Итак, теперь о том, «как» — «Как мы можем анализироватьraw audio data, which seems so abstract?

…с участиемconvolutional neural networks!

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

Image credit: Sander Dieleman

This particular neural network has four convolutional layers, seen as the thick bars on the left, and three dense layers, seen as the more narrow bars on the right. The input are time-frequency representations of audio frames, which are then concatenated to form the spectrogram.

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

After processing, the neural network spits out an understanding of the song, including characteristics like estimated time signature, key, mode, tempo, and loudness. Ниже приведен график этих данных для 30-секундного отрывка. «Вокруг света» группы Daft Punk.

Image Credit: Tristan Jehan & David DesRoches (The Echo Nest)

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


That covers the basics of the three major types of recommendation models feeding the Recommendations pipeline, and ultimately powering the Discover Weekly playlist!

Конечно, все эти модели рекомендаций связаны с гораздо большей экосистемой Spotify, которая включает в себя гигантские объемы хранения данных и использование.lots of Hadoop clusters to scale recommendations and make these engines work on giant matrices, endless internet music articles, and huge numbers of audio files.

Я надеюсь, что это было информативно и удовлетворило ваше любопытство так же, как и мое. А пока я буду работать над своим собственным Discover Weekly, находить свою новую любимую музыку, узнавать и ценить все машинное обучение, которое происходит за кулисами. ?

— — 
Если вам понравилась эта часть, я был бы рад, если бы вы нажали кнопку хлопка?so others might stumble upon it. You can find my own code on GitHub, and more of my writing and projects at http://www.sophiaciocca.com.

Sources:
 — От идеи к воплощению: еженедельник Spotify Discover (Chris Johnson, ex-Spotify)
 —
 Совместная фильтрация в Spotify (Erik Bernhardsson, ex-Spotify)
 — 
Recommending music on Spotify with deep learning (Sander Dieleman)
 —
 Как работает рекомендация по музыке  и не работает (Brian Whitman, co-founder of The Echo Nest)
 — 
Ever Wonder How Spotify Discover Weekly Works? Data Science (Galvanize)
 — 
Магия, которая делает плейлисты Spotify Discover Weekly такими чертовски хорошими (Quartz)
 —
 Документация по анализатору Echo Nest

Thanks also to ladycollective for reading this article over and suggesting edits.

Кроме того, если вы работаете в Spotify или знаете кого-то, кто работает, я бы хотел связаться с вами!?