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