Откуда сервисы знают, что нам понравится

YouTube, Spotify, Netflix.

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

Объясняем, как сервисы этому научились. 

Когда все началось
 

Первые рекомендательные системы появились еще в 1990-х. Но прорыв случился в 2006. Компания Netflix тогда занималась прокатом DVD-дисков по почте. В то время она создала систему Cinematch. Ее задача — предсказывать оценки пользователей. 

Отклонение у алгоритма составляло 0,9525.

Сейчас пользователи Netflix выбирают фильмы по другому принципу. Человек может поставить 10 баллов фильмам Феллини, но не готов смотреть похожий контент каждый день. Что же рекомендовать — боевики по вечерам и комедии на выходных? 

В Netflix решили: чтобы рекомендация подошла человеку, она должна быть: 

#1. Интересной
#2. Неожиданной
#3. Своевременной

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

Помимо рекомендаций, Netflix показывает пользователям разные варианты обложек для сериалов и фильмов. Все зависит от пола, возраста и интересов человека. 


Обложки для сериала  «Очень странные дела» / Netflix

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

Что такое коллаборативная фильтрация
 

Это самый популярный метод рекомендаций. Им пользуются Netflix, Last.fm, Amazon, eBay, AliExpress, YouTube и Facebook. 

Вот как он работает:

Нужно составить матрицу оценок — таблицу, в которой будут перечислены все пользователи и их оценки. 

Если у разных пользователей схожие оценки, значит, их предпочтения совпадают. Если одному человеку нравится А и В, а другому А и С, то первому советуют С, второму — В. 

Но у такого подхода есть минусы. Первый — огромный размер матрицы. Каждая строка — это пользователь, а столбец — объект оценки. Например, у сервиса Spotify более 60 млн треков, значит, столбцов должно быть столько же. Сложно работать с таким объемом в лайв-режиме.

Второй минус — непонятно, какие рекомендации будут полезны новым пользователям и тем, кто не ставит оценки. 

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

Анализ аудиофайлов
 

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

Еще Spotify использует AI-систему BaRT (Bandits for Recommendations as Treatments). Ее задача — создать для каждого пользователя индивидуальный домашний экран. На основе этой системы работают рекомендации сервиса. Их составление включает два этапа. Первый использует информацию о человеке: какую музыку он слушает, что пропускает, а что лайкает, какие плейлисты создает и даже где находится. 

На втором этапе система анализирует информацию о мире: музыканты и песни, которые похожи на тех, что слушаете вы, их популярность и востребованность. 

Также сервис объясняет людям свой выбор. Созданные плейлисты имеют названия. Например, «Вернуться в прошлое». Это говорит человеку, почему ему рекомендуют конкретный плейлист и что он там услышит. Согласно исследованию Spotify, именно эти объяснения играют главную роль в выборе пользователей.

Рекомендации YouTube
 

Система платформы получает миллионы роликов, но пользователю рекомендует лишь несколько десятков. Над этим работают две сверточные нейросети — candidate generation и ranking. Первая выбирает из всех видео только те, которые понравятся пользователю. Вторая распределяет их — от более интересных к менее. 

Алгоритм учитывает всю историю поведения пользователя на платформе, а также контекст. То есть время, возраст, пол и местонахождение человека. Кроме того, система проводит A/B тестирование. Человеку показывают разные подборки. Если какая-то понравилась больше других, система адаптирует рекомендации, понимая, что подходит пользователю. 

Также важен CTR — отношение количества людей, которые начали смотреть видео, к людям, которые увидели его в рекомендациях. Согласно справке YouTube, средний показатель CTR для половины видео составляет от 2 до 10%.

Но это не самая важная метрика: если бы YouTube учитывал только ее, нам бы показывали кликбейтные видео. Нейросети используют для ранжирования expected watch time (ожидаемое время просмотра видео). Чем оно больше, тем выше шансы ролика попасть в рекомендации.

Ещё
Советуют представители индустрии.
Рассказывает Оксана Носенко, лектор курса по SQL.