Как создавался умный агрегатор новостей LifeLines

Как создавался умный агрегатор новостей LifeLines

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

Содержание

Идея и челлендж проекта

Изначально идея проекта была достаточно простой – создать удобный агрегатор, который собирал бы новости со всей сети в единое пространство. Чтобы пользователь мог получить максимально полную картину происходящего в мире, не прыгая с одной площадки на другую. Нужно было учитывать и то, что каждый новостной источник освещает события по-своему.

Именно здесь и начинает свой путь задумка проекта LifeLines – освещать все мировые события в максимально объективном и непредвзятом ключе, давая читателю возможность формировать свою точку зрения на происходящее.

Другими словами, LifeLines – это агрегатор новостей, который стремится предоставить пользователю широкий спектр возможностей для работы с поступающей информацией, начиная от обзора одного и того же новостного повода в разных СМИ, заканчивая возможностью настройки новостной ленты «под себя».

Мы-независимый проект и делаем то, что нам интересно и не заинтересованы в продвижении какой-то конкретной точки зрения. Мы заинтересованы лишь в одном - качественно подать пользователю информацию. И уже его задача - решить, какая у него точка зрения по данному вопросу. Человек должен сам формировать её на основе нескольких источников.

Вадим Питерский, управляющий проекта LifeLines

Фичи агрегатора LifeLines

Как создавался умный агрегатор новостей LifeLines
  • Резонансная новостная лента. Лента стремится донести пользователю наиболее важные события, анализируя, сколько упоминаний в СМИ они произвели.
  • Персональная новостная лента. Пользователи, которым по какой-то причине не нравится алгоритм резонансной ленты, могут сформировать свою ленту, включив в нее желаемые источники, из базы LifeLines.
  • Возможность дополнительной персонализации лент новостей, указав интересующие темы и географию. Также можно исключить из показа определенные источники или новостные теги.
  • Хронология новостей - возможность отследить, как развивалось событие во времени.
  • Справочная информация. Возможность, не выходя из приложения получить справочную информацию об исторических событиях и персоналиях, упомянутых в статье.
  • Telegram-каналы как дополнительный источник оперативной и эксклюзивной информации. Новостная выдача из традиционных веб СМИ при возможности обогащается видео- и фото-информацией из Telegram-каналов.

Исследование рынка

Первым на рынок выводился мобильный продукт и только после его запуска - веб версия продукта.

Анализ конкурентных проектов производится только среди новостных агрегаторов. Были проанализированы 2 группы конкурентов:

  1. Крупные игроки вроде Mail.ru, Яндекс, Rambler.
  2. Множество однотипных агрегаторов, предлагающих примерно один и тот же функционал.
Как создавался умный агрегатор новостей LifeLines

В первой группе очевидным фаворитом является Яндекс, имеющий огромные мощности и самые продвинутые алгоритмы для решения задачи, аналогичной LifeLines. Однако у него нет своего мобильного приложения специально для новостей.

Первая группа конкурентов живет замкнутой жизнью, слабо реагируя на фидбек пользователей. Внести какое-то непопулярное изменение в приложение, и потом получать годами негативные оценки – норма.

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

Для того, чтобы выделиться на фоне конкурентных проектов LifeLines выработал несколько ключевых идей:

  1. Прислушиваться к обратной связи. Приложение должно соответствовать актуальным потребностям пользователей. Для этого, в «Настройках», есть пункт «Предложения по улучшению»; также мы проводим опросы, какие улучшения пользователи хотели бы увидеть в первую очередь.
  2. Оригинальные идеи в функционале приложения, которых еще ни у кого не реализовано. Например, в новостной ленте мы используем не только обычные новостные источники, но и новости из Telegram-каналов.
  3. Избегание агрессивной монетизации.
  4. Стремление к прозрачности работы своих алгоритмов.
Как создавался умный агрегатор новостей LifeLines

Дизайн-концепция

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

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

Очень большое внимание было уделено UX в приложении.

Как создавался умный агрегатор новостей LifeLines

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

Виктор, дизайнер LifeLines

Как всё устроено внутри

Как создавался умный агрегатор новостей LifeLines

Вся работа в бэкенде LifeLines протекает в 4 этапа:

  • Периодический обход новостных источников (веб-сайты, Telegram-каналы) из внутренней базы в несколько тысяч источников. Сбор текста, дат и заголовков в первичный документ.
  • Обработка текстовой информации с помощью моделей машинного обучения. На выходе получается нормализованная форма текста, в которой можно выделить теги, именные сущности (персоны, объекты, события), географию, а также вероятную категорию (тему).
  • Агрегирование обработанных статей в события. 10 статей из 10 разных источников могут освещать разные события, а могут и одно и то же. На этом этапе все статьи раскладываются по своим “полочкам” и ранжируются по значимости.
  • События проходят индексацию и ожидают показа конечному пользователю в зависимости от настроек ленты.

Это общий принцип работы новостного агрегатора. Однако во время работы над его ядром были сложности и вот как они были решены.

Челлендж #1

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

Решение #1

Перебрав различные варианты выбор пал на использование модели машинного обучения на основе BERT, которая способна преобразовывать текст в векторное представление. И уже работая с векторами, а не с текстом, появляется возможность определить насколько статьи семантически схожи друг с другом.

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

Хоть текущий алгоритм и не идеален, свои задачи он выполняет. Его усовершенствование – наша задача на самое ближайшее будущее.

Челлендж #2

Одной из фич приложения LifeLines стала хронология или “развитие события”, возможность посмотреть, как развивалось событие во времени. Из любой новости, если она имела какое-то развитие во времени, можно перейти в прошлое и узнать, как развивались события.

Как создавался умный агрегатор новостей LifeLines

Решение #2

Самый рабочий способ организации такой хронологии — по тегам с поправкой на географию. Но метод эффективен не на 100%, потому что, часто в хронологию событий попадает вариант исходной новости из другого источника, который не был правильно сгруппирован изначально при помощи нейросети.

Челлендж #3

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

Решение #3

Для решения этой проблемы была использована модель машинного обучения, способная выделять в тексте именные сущности, определяя, что это: География, Персона или Организация.

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

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

Мобильная часть LifeLines

После того, как внутреннее ядро LifeLines и дизайн были готовы, можно было приступить к разработке мобильного приложения.

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

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

От старта разработки до релиза прошло около 3-4 месяцев.

Релиз

Релиз приложения под обе мобильные платформы состоялся в конце 2021 года. В 2022 году приложение было выбрано Google Play в качестве рекомендуемых.

Как создавался умный агрегатор новостей LifeLines

Количество установок в день увеличилось более чем в два раза в 2022 году. С начала 2022 года к его концу количество активных пользователей выросло в 8 раз. Был даже пик установок в 17 раз превышающий цифры на старте.

Проект небольшой и изящный, предсказуемый в плане разработки. От старта до релиза прошло около 4 месяцев. Был промежуточный билд и финальный. На первоначальном этапе мы использовали подход без авторизации в приложении, настройки хранятся на сервере через привязку к устройству.

Самохин Денис, менеджер проекта мобильной разработки

Планы на развитие

У проекта множество планов. Сервис регулярно улучшается, ведется работа над новыми фичами, которые были запрошены пользователями - такие как виджет для мобильного приложения, добавление Telegram-каналов в закладке «Персональное», работа с историческими источниками, возможность оставлять комментарии под новостями. Но также есть и более амбициозные планы.

Мы сделали возможность читать не только традиционные веб СМИ, но и Telegram-каналы. Конкурентные приложения обходят их стороной. А зная, что сейчас Telegram куёт половину новостного контента, нам не хочется, чтобы наш пользователь это упускал.

Никита, Ведущий разработчик LifeLines

Архивы

Планируется расширение архивной части — скрапинг данных с большего числа иностранных и исторических источников и их подгрузка в систему.

Зарубежные источники

Проект можно было бы дополнить большой частью иностранных источников, но пока что это не представляется возможным из-за политической обстановки и новой законодательной базы. Однако, для этого всё готово.

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

Вадим Питерский, управляющий проекта LifeLines

Сам себе репортер

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

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

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

Трансляция события

Один из важных новостных форматов в наше бурное время – текстовые новостные трансляции.

Как создавался умный агрегатор новостей LifeLines

Бывает, что в реальном времени разворачиваются особо важные события, и новые факты всплывают каждые несколько минут. А значит, нужен такой же оперативный формат показа информации.

В планах дать возможность LifeLines чувствовать подобные новостные турбулентности и создавать для них текстовую трансляцию, в которую будут оперативно помещаться поминутно информация из множества СМИ.

Как создавался умный агрегатор новостей LifeLines

Спасибо за внимание! Оставайтесь на связи, впереди еще много интересных кейсов.

Автор статьи - Ахмерова Мария

1010
Начать дискуссию