Как устроена рекомендательная система Instagram
Разработчик алгоритма 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), или показателей, ориентированных на продукт (количество лайков), может привести к скуке пользователя и отпискам.