Как устроена рекомендательная система Instagram

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

Главная дилемма таких систем – оценивать их по предсказательной точности или сосредоточить внимание на расширении предпочтений пользователей.

Другими словами – показывать только то, что нравится пользователям или расширять их опыт, предлагая меньше того, что они любят?

Амог Махапатра рассмотрел 2 смоделированных сценария в динамической обстановке.

Предпочтения пользователей в динамической обстановке

 

Например, пользователь одинаково предпочитает боевики и комедии. Эти предпочтения обозначены двумя шариками в урне, красным (боевики) и серым (комедии). Предположим, что изначально они одинаково предпочтительны для пользователя. Далее рассматриваются две простые модели того, как предпочтения могут динамически развиваться.

Как устроена рекомендательная система Instagram, изображение №2

Персонализация

 

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

 

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

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

 

Этот процесс известен как «Модель урны Polya» (Pólya urn model). Это отличная игрушечная модель для понимания самоусиливающихся динамических систем. У них одинаково вероятные результаты, зависящие от пути. Но независимо от того, какой путь выбран, в состоянии равновесия (после бесконечных манипуляций) один вариант сильно доминирует над другим.

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

 

Баланс

 

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

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

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

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

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

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

 

Какой модели придерживается рекомендательная система Instagram?

 

Как выбрать «средний путь» между этими крайностями в создании полезного опыта в долгосрочной перспективе с небольшими краткосрочными компромиссами.

Прежде необходимо понять некоторые основы.

Предпочтения в реальном мире

 

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

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

 

Мягкость: пользователь может демонстрировать различную степень привязанности к типам контента, например, 35% относятся к комедии и 99% – к спорту.

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

 

Динамичность: что наиболее важно, предпочтения меняются с течением времени. Человек, который любит исторические документальные фильмы в настоящее время, может не интересоваться ими через месяц.

Чтобы помочь обеспечить более разнообразный пользовательский опыт с учетом строгих количественных и качественных оценок, Амог Махапатра рассмотрел несколько практических методов диверсификации.

 

Практические методы диверсификации Instagram

 

1. Разнообразие на уровне авторов: что делать, если один и тот же автор продолжает появляться в сеансе одного пользователя несколько раз? Простая стратификация для выбора ранжируемых кандидатов среди разных авторов может улучшить общий пользовательский опыт.

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

Например, если алгоритм ранжирования выбирает 3 видео, а затем 2 фотографии для показа, рекомендуется смешивать фотографии и видео, если это не влияет на общие количественные/качественные показатели.

3. Семантическое разнообразие: пользователь может получать рекомендуемые видео о баскетболе от нескольких авторов за один сеанс. Этот вид разнообразия наиболее сложно поддерживать. Лучший способ диверсификации на уровне контента – это сначала разработать систему понимания контента высокого качества. В Instagram были созданы системы понимания фотографий, видео и текста в любом масштабе. Они могут обеспечить как детальное, так и общее понимание медиа-элемента.

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

 

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

 

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

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

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

 

Так может выглядеть Граф знаний пользователя с учетом подбора семантических узлов

Так может выглядеть Граф знаний пользователя с учетом подбора семантических узлов

 

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

6. Использование алгоритмов компромисса: компромиссные методы исследования и использования, основанные на обучении с подкреплением, могут обеспечить систематический механизм для разнообразия предпочтений пользователей. Вот пара примеров:

 

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

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

7. Вычисление качественного компромисса: Instagram ценит качественные показатели, такие как удовлетворенность и настроения пользователей, не меньше, чем количественные показатели, такие как ROC-кривая или NDCG (метрика качества ранжирования).

Разработчики проводят качественные исследования, опросы пользователей, дневниковые исследования и т. д., чтобы определить лояльность и терпимость к повторяемости и стремление к разнообразию.

8. Негативные ограничения: пользователи сами не любят повторения и иногда (не всегда) будут давать явные отрицательные отзывы. Отрицательная обратная связь связана с такими действиями пользователя, как: нажатие кнопки «не интересно» или «показывать меньше таких видео».

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

 

Заключение

 

Амог Махапатра рекомендует помнить об этих факторах и оптимизировать контент так, чтобы он мог долгосрочно удовлетворять пользователей. Использование исключительно метрик, ориентированных на ранжирование (NDCG), или показателей, ориентированных на продукт (количество лайков), может привести к скуке пользователя и отпискам.