Руководитель технической дирекции ЯRUS, Дмитрий Илюхин

Сегодня мы поговорим о внутренней кухне рекомендательных систем на примере приложения ЯRUS. Разработчики предлагают ярусный контент – новости, видео, события, музыку и многое другое. Однако цель команды ЯRUS – не только собирать разнообразный контент на одной площадке, но и правильно показывать его пользователям, за что и отвечает рекомендательная система. Что же такое рекомендательные системы и как они работают, расскажет руководитель технической дирекции ЯRUS Дмитрий Илюхин.

— Привет, как ты долго занимаешься проектом?

— В ЯRUS я с самого его основания, с июля 2020 года. Многое, что вы можете увидеть сейчас, – итог наших общих трудов с командой.

Расскажи чуть подробнее, как связаны приложение и рекомендательная система?

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

Есть два типа подходов. Первые основаны на том, что смотрит группа пользователей; вторые – на предпочтении конкретного человека. Мы учитываем всё.

Например, к нам в систему ежедневно подтягивается около 56 000 новостей от 10 000 источников СМИ. Все они проходят внутреннюю чистку: на качество, язык и прочие параметры. Оставляем только литературные тексты.

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

– Расскажи поподробнее, что это за алгоритмы такие?

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

– А чем отличается показ от просмотра?

— Показ – это когда новость появляется на экране, а просмотр – это когда пользователь ее открывает.

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

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

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

— А влияет на выбор новостей место, где находится пользователь?

— Да, на этом основан как раз следующий, пятый, алгоритм. Мы пытаемся предсказать геолокацию пользователя, либо он сам назначает ее в процессе регистрации. Это нужно для соблюдения региональности новостей, чтобы человек из Рязани не получал в ленте новости Красноярска.

Шестой и седьмой алгоритмы – это усиления по дате выхода новости и категории. Они помогают распределять новости по времени и принадлежности интересов пользователя.

Каждый из этих семи алгоритмов по-разному влияет на контент. Но геолокация – это самый важный параметр. Именно по этому алгоритму новости будут подниматься выше всего.

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

— А если человек только зашел в приложение, то какие новости он увидит?

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

— Сколько времени потребовалось на разработку модели?

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

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

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

— Что планируете сделать в будущем?

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

До конца года мы планируем сделать персонализированные рекомендации не только новостей, но и видео. Там принцип отбора и алгоритмы совсем другие. 

— Спасибо за интервью. Предлагаю в следующий раз обсудить рекомендательную систему для видео.

 — Приходите, буду рад рассказать о развитии нашего проекта.

Комментарии (0)