Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Руководитель технической дирекции ЯRUS, Дмитрий Илюхин
Сегодня мы поговорим о внутренней кухне рекомендательных систем на примере приложения ЯRUS. Разработчики предлагают ярусный контент – новости, видео, события, музыку и многое другое. Однако цель команды ЯRUS – не только собирать разнообразный контент на одной площадке, но и правильно показывать его пользователям, за что и отвечает рекомендательная система. Что же такое рекомендательные системы и как они работают, расскажет руководитель технической дирекции ЯRUS Дмитрий Илюхин.
— Привет, как ты долго занимаешься проектом?
— В ЯRUS я с самого его основания, с июля 2020 года. Многое, что вы можете увидеть сейчас, – итог наших общих трудов с командой.
— Расскажи чуть подробнее, как связаны приложение и рекомендательная система?
— Наше приложение выступает не только как социальная платформа, но и как агрегатор. Основная задача проекта – это собрать контент: аудио, видео, текст и изображения для пользователя так, чтобы он ему был максимально интересен. Для этого и используются рекомендательные системы.
Есть два типа подходов. Первые основаны на том, что смотрит группа пользователей; вторые – на предпочтении конкретного человека. Мы учитываем всё.
Например, к нам в систему ежедневно подтягивается около 56 000 новостей от 10 000 источников СМИ. Все они проходят внутреннюю чистку: на качество, язык и прочие параметры. Оставляем только литературные тексты.
После этого идет формирование новостного сюжета. При выборе главной новости используются разные веса: новизна и объем новости. Это и станет той базой, что мы будем рекомендовать пользователям, используя различные алгоритмы ранжирования.
– Расскажи поподробнее, что это за алгоритмы такие?
— Всего их семь. Первый считает, сколько у каждой новости показов, просмотров, лайков, эмоций и комментариев. Каждый из показателей дает новости определенный вес. И чем он больше, тем больше шансов у новости стать топовой.
– А чем отличается показ от просмотра?
— Показ – это когда новость появляется на экране, а просмотр – это когда пользователь ее открывает.
Второй алгоритм начинает работать, когда пользователь просматривает ленту новостей. Здесь уже начинается процесс персонализации: система анализирует тексты заинтересовавших человека новостей, определяя часто встречающиеся в этих новостях слова. И в дальнейшем пользователь увидит в ленте похожие новости.
Третий алгоритм построен на попытке классифицировать новости: в нашей системе около ста роботизированных тематик. Мысль такая: если человек смотрит новости определенной группы, то и в дальнейшем ему будут интересны новости этой группы.
Далее пользователи распределяются на группы. Каждого нового человека, в зависимости от того, какие новости он смотрит, мы относим к той или иной группе. А для каждой просмотренной новости прибавляем вес, что повлияет на дальнейшую выдачу похожих материалов в ленте. Так работает четвертый алгоритм.
— А влияет на выбор новостей место, где находится пользователь?
— Да, на этом основан как раз следующий, пятый, алгоритм. Мы пытаемся предсказать геолокацию пользователя, либо он сам назначает ее в процессе регистрации. Это нужно для соблюдения региональности новостей, чтобы человек из Рязани не получал в ленте новости Красноярска.
Шестой и седьмой алгоритмы – это усиления по дате выхода новости и категории. Они помогают распределять новости по времени и принадлежности интересов пользователя.
Каждый из этих семи алгоритмов по-разному влияет на контент. Но геолокация – это самый важный параметр. Именно по этому алгоритму новости будут подниматься выше всего.
Таким образом, чем больше человек лайкает, комментирует, просматривает новостей, листает ленту, читает новости и чем точнее он определил любимые категории и свою геолокацию, тем релевантнее его лента новостей.
— А если человек только зашел в приложение, то какие новости он увидит?
— Это называется «холодный старт» и является частным случаем рекомендательной системы. Вся рекомендательная система для нового пользователя основывается лишь на общих параметрах. То есть он увидит выдачу первого алгоритма: самый свежий, а также самый обсуждаемый контент.
— Сколько времени потребовалось на разработку модели?
— На исследование и разработку мы потратили около двух месяцев. Естественно, над проектом работали люди, которые уже занимались такими алгоритмами ранее.
Далее система приводит все слова к начальной форме. Этот процесс называется лемматизацией текста, и он занял большую часть времени, вместе с вычисткой новостного мусора, о котором я говорил ранее.
После у нас был длительный период по определению весов. Сначала, например, мы сильно завышали новости с большим числом лайков и комментариев. Но когда мы поняли, что таким образом они всегда будут оставаться в начале ленты, продолжая собирать реакции пользователей, мы увеличили вес у других алгоритмов. Такой вот метод проб и ошибок.
— Что планируете сделать в будущем?
— Весь наш вектор развития нацелен на персонализацию. То есть мы хотим, чтобы, когда человек попадает в приложение, у него уже были преднастроены и новости, и видео под его интересы. То есть, если человек пришел к нам с автомобильного сайта, мы сразу будем выдавать ему рекомендации по теме.
До конца года мы планируем сделать персонализированные рекомендации не только новостей, но и видео. Там принцип отбора и алгоритмы совсем другие.
— Спасибо за интервью. Предлагаю в следующий раз обсудить рекомендательную систему для видео.
— Приходите, буду рад рассказать о развитии нашего проекта.