Агрегатор новостей от Telegram: что это такое, зачем нужно и как выглядит?
Агрегатор новостей от Telegram: что это такое, зачем нужно и как выглядит?

Агрегатор новостей от Telegram: что это такое, зачем нужно и как выглядит?

20 июля, 20209 минут на чтение
1,7к

Идея

Чуть больше года назад Павел Дуров анонсировал создание независимого агрегатора новостей на базе новостного контента, публикуемого в Telegram. Это было сделано на фоне попыток российских властей получить бесконтрольный доступ к личным данным пользователей Яндекса и в целом продолжающегося тренда давления на бизнес российских IT-компаний.

ФСБ потребовала ключи шифрования переписки пользователей у «Яндекса»
ФСБ запросила ключи шифрования «Яндекс.Почта» и «Яндекс.Диск», но компания отказывается их передать: ключи могут дать доступ к паролям пользователей всей экосистемы «Яндекса».

В этом же сообщении Павел Дуров призвал разработчиков Яндекс.Новостей присоединиться к команде Telegram и помочь в создании «подобного сервиса рекомендаций новостей в глобальном масштабе — и без политической цензуры». Тем самым основатель Telegram намекнул, что алгоритмы Яндекса предвзяты в угоду российским властям (о том, действительно ли это так, существуют разные мнения, но углубляться в эту тему мы не будем). Далее Дуров объяснил, что технология моментального просмотра новостей Instant View уже позволяет читать новости 6000 изданий по всему миру с любого устройства, а статистика их просмотров в каждой стране позволяет алгоритмически вычислять наиболее релевантный на данный момент контент.

У нас есть шанс создать первый в истории интернета эффективный и свободный агрегатор новостей, — подытожил свой пост Павел Дуров.

Конкурс

Публично сотрудники из Яндекс.Новостей не откликнулись на это предложение, а Telegram не стал откладывать идею новостного агрегатора в долгий ящик. Уже в ноябре 2019 года был объявлен конкурс на создание алгоритма ранжирования новостей с призовым фондом в €100 тысяч.

Telegram запустил конкурс на создание алгоритма ранжирования новостей
Telegram объявил о новом конкурсе, задача которого — создание алгоритма ранжирования новостей. Призовой фонд 1-го этапа — $100 000.

По имеющейся у «Кода Дурова» информации, за ником Mindful Kitten «скрывается» разработчик из Google, который в прошлом был сотрудником «Яндекс.Поиска». А Mindful Squirrel — это Илья Гусев из «Яндекс.Новостей» и еще как минимум 3 человека, которые контрибьютят этот проект на GitHub. О своей работе в Яндекс Илья указал у себя в профиле Linkedin. При этом ребята из Mindful Squirrel сделали интересный технической обзор своей первой конкурсной работы, с которой мы советуем ознакомиться.

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

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

Новостные агрегаторы из конкурса Telegram теперь работают с настоящими новостями
Отныне конкурсные работы по агрегации контента берут настоящие новости в режиме реального времени.

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

Как новости попадают в агрегатор?

Чтобы новость попала в агрегатор, сайт должен поддерживать Instant View для Telegram. Для более быстрого появления в агрегаторе желательно, чтобы ссылку на новость хотя бы один раз переслали через мессенджер — так ее сразу же распознает алгоритм Instant View. Впрочем, даже если этого не произойдет, то на помощь придут внутренние краулеры, которые проактивно обходят ссылки на доменах Instant View.

Безусловно, наилучший рейтинг новость получит при публикации, например, в официальном Telegram-канале издания с большим количеством подписчиков, так как в этом случае ее прочитает большее количество людей, а просмотры через Instant View являются одним из основных факторов ранжирования.

Как агрегатор их сортирует и ранжирует?

В этом как раз и заключается основная задача участников конкурса — разработать алгоритм, который будет отделять от всего «сырья» Instant View новости, группировать их по теме и объединять в треды — списки новостей разных ресурсов одной тематики. Вместе с тем треды и новости должны еще и ранжироваться в выдаче, и на это влияют сразу несколько факторов, например, количество прочтений, авторитет источника и даже то, насколько длинная новостная заметка.

Мы пообщались с одним из участников конкурса с ником Hip Hyena и узнали, по какому принципу происходит сортировка и ранжирование в подобных проектах.


Как определяются треды? В треды объединяются статьи, которые алгоритм считает достаточно похожими. Для оценки схожести можно использовать несколько признаков.

Например, есть заранее подготовленный словарь, который превращает любое слово в некий набор чисел (вектор) — объединяя эти наборы чисел для всех слов в статье, мы можем получить вектор всей статьи. Если у двух статей похожие векторы — скорее всего, у них похожая тематика.

Или вот ещё подход: можно выделить в каждой статье самые важные, ключевые слова, которые употребляются в ней чаще, чем в других статьях. Совпадение таких слов — тоже признак того, что в статьях говорится об одной теме и их стоит объединить в тред.

Как определяются категории? Всё почти так же, как с объединением в треды, только тут сравниваются не статьи друг с другом, а каждая статья с конкретной темой. Например, для темы «спорт» одни слова чаще оказываются ключевыми, для темы «технологии» — другие. Какая тема оказалась ближе всего — та категория и назначается статье.

Как строится повестка? Чем больше публикаций, тем выше место в топе? Учитывается ли авторитет издания? Здесь тоже учитывается много факторов — как для сортировки статей в треде, так и для сортировки самих тредов. Имеет значение и авторитет источника, и количество публикаций, и время каждой публикации, и степень их схожести всему треду, и даже длина каждой статьи.


Как это выглядит?

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

В шапке главной страницы доступен выбор языка (EN/RU) и даты, за которую будут выдаваться новости. На текущий момент можно просмотреть только новости за сегодня или за 25, 27 и 29 мая. Это связано с тем, что изначально участникам предоставили доступ к базе Instant View только за этот период, а теперь открыли актуальную повестку.

Ниже можно выбрать одну из 8 категорий:

  • Главное (сюда попадают наиболее важные инфоповоды из всех категорий)
  • Общество
  • Экономика
  • Технологии
  • Спорт
  • Развлечения
  • Наука
  • Другое (те новости, которые не подошли ни под одну из категорий)

И здесь же можно указать временной промежуток — за весь день, за последние три часа или за последний час.

Нажав на интересующий нас заголовок, мы попадаем в тред — список всех новостей на эту тему с указанием источника.

И уже по нажатию на одну из строк из треда открывается новость в адаптированном под быструю загрузку виде. Когда агрегатор будет встроен в Telegram, новости станут открываться соответственно в Instant View.

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

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

Mindful Kitten — 9 баллов. Мои коллеги сошлись во мнении, что это одна из лучших работ по качеству повестки. Главная страница дает то, что мы ожидаем там увидеть.

Ace Cock — 8,5 баллов. Практически по всем топам повестка формируется неплохо — новости свежие, однако большинство из них составляют общественно-политические инфоповоды, при этом технологии и другие темы обделены вниманием.

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

Gifted Lemur — 8 баллов. Топы показывают разнообразные темы, в том числе технологии, экономику и политику — очень актуальные и общественно-резонансные новости. Однако есть и большая проблема — повестка медленно меняется в течение дня и в какой-то момент может стать уже не такой актуальной.

Hairy Snail — 8 баллов. Одна из немногих работ, в которой нет явного акцента на политике. Повестка относительно актуальная, но новости не всегда интересные. В основном о науке и технологиях, а остальные темы «хромают».

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

Bossy Gnu — 7 баллов. Единственная работа с заметным акцентом на спорт. Есть проблемы с алгоритмами: во-первых, нередко встречается одна и та же новость в двух разных карточках, во-вторых, на месте топ-1 мы замечали совсем уж странные инфоповоды вроде коронавируса на Кубани. И почти нет политики — это даже забавно.

Happy Ladybird — 6 баллов. Новости актуальные, но не слишком интересные и их мало. В топе только политика и «корона», последней много, хотя в самих заметках нет ничего особенного. Некоторые новости очень запоздалые и при этом мало цитируемые.

Swift Skunk — 3,5 балла. Политическая выдача с не самыми актуальными новостями. Новости плохо собираются в треды — много повторяющихся. Почему-то большой акцент на новости Украины.

Mad Crow — 3 балла. Неактуальная выдача только с общественно-политической повесткой, треды работают некорректно.

Suave Penguin — 3 балла. Неактуальная выдача, все заголовки начинаются с маленькой буквы, нет источников в треде.

Calm Lemur — 2,5 балла. Как отметил мой коллега, повестка в этой работе сформирована таким образом, чтобы понравиться патриотам одной страны. Не хватает разнообразия в инфоповодах. В топе много второстепенных новостей, пусть и интересных, но никак не главных. Есть проблема с тредами.

Ожидаемо, алгоритмы кое-где пока дают сбой, например, неправильно формируют треды или парсят заголовки. Однако здесь стоит учитывать, что это лишь конкурсные работы, а к моменту реализации агрегатора внутри Telegram над «допиливанием» еще обязательно поработает команда мессенджера. К слову, визуальную часть тоже оценивать пока рано — я уверен, что внутри мобильных приложений и десктоп-клиентов агрегатор будет выглядеть совершенно по-другому. Но так или иначе, общий смысл понятен. Осталось лишь понять, зачем такая функциональность пользователям?

Зачем это нужно?

Telegram с появлением каналов давно перестал быть только лишь мессенджером. Для многих пользователей, в том числе для меня, он стал основной платформой чтения новостей, полностью заменив в какой-то момент Twitter и RSS. Однако сейчас Telegram не хватает инструментов для того, чтобы прямо внутри мессенджера можно было узнавать о новых интересных источниках. Эту проблему обозначил и упомянутый выше участник многочисленных конкурсов Hip Hyena в нашем с ним интервью:

Мне кажется, что Telegram стоит подумать над тем, что называется discovery — способами узнавать о новом контенте и об интересных источниках. Сейчас мессенджер довольно закрыт: для публичной активности можно завести канал, но о нём можно узнать только какими-то сторонними способами.
Интервью с Hip Hyena — участником Telegram Contests: о рисках, соперничестве и нюансах конкурсной разработки
«Код Дурова» пообщался с одним из победителей многочисленных конкурсов Telegram с ником Hip Hyena и выяснил много всего интересного.

На наш взгляд, агрегатор новостей внутри мессенджера частично решает эту проблему. А уж то, что он будет еще и независимым, — это большой и приятный бонус.

Когда ждать релиз?

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

Telegram Contest: обзор лучших веб-клиентов Telegram по версии «Кода Дурова»
Заглянули в будущее и теперь рассказываем, как будет выглядеть новый веб-клиент Telegram.
20 июля, 2020

Сейчас читают

Картина дня

Свежие материалы

Свежие материалы