Как создавался умный агрегатор новостей LifeLines
Рассказываем, как Технологика и российский стартап запустили мобильный агрегатор новостей, который опередил своё время.
Содержание
Идея и челлендж проекта
Изначально идея проекта была достаточно простой – создать удобный агрегатор, который собирал бы новости со всей сети в единое пространство. Чтобы пользователь мог получить максимально полную картину происходящего в мире, не прыгая с одной площадки на другую. Нужно было учитывать и то, что каждый новостной источник освещает события по-своему.
Именно здесь и начинает свой путь задумка проекта LifeLines – освещать все мировые события в максимально объективном и непредвзятом ключе, давая читателю возможность формировать свою точку зрения на происходящее.
Другими словами, LifeLines – это агрегатор новостей, который стремится предоставить пользователю широкий спектр возможностей для работы с поступающей информацией, начиная от обзора одного и того же новостного повода в разных СМИ, заканчивая возможностью настройки новостной ленты «под себя».
Фичи агрегатора LifeLines
- Резонансная новостная лента. Лента стремится донести пользователю наиболее важные события, анализируя, сколько упоминаний в СМИ они произвели.
- Персональная новостная лента. Пользователи, которым по какой-то причине не нравится алгоритм резонансной ленты, могут сформировать свою ленту, включив в нее желаемые источники, из базы LifeLines.
- Возможность дополнительной персонализации лент новостей, указав интересующие темы и географию. Также можно исключить из показа определенные источники или новостные теги.
- Хронология новостей - возможность отследить, как развивалось событие во времени.
- Справочная информация. Возможность, не выходя из приложения получить справочную информацию об исторических событиях и персоналиях, упомянутых в статье.
- Telegram-каналы как дополнительный источник оперативной и эксклюзивной информации. Новостная выдача из традиционных веб СМИ при возможности обогащается видео- и фото-информацией из Telegram-каналов.
Исследование рынка
Первым на рынок выводился мобильный продукт и только после его запуска - веб версия продукта.
Анализ конкурентных проектов производится только среди новостных агрегаторов. Были проанализированы 2 группы конкурентов:
- Крупные игроки вроде Mail.ru, Яндекс, Rambler.
- Множество однотипных агрегаторов, предлагающих примерно один и тот же функционал.
В первой группе очевидным фаворитом является Яндекс, имеющий огромные мощности и самые продвинутые алгоритмы для решения задачи, аналогичной LifeLines. Однако у него нет своего мобильного приложения специально для новостей.
Первая группа конкурентов живет замкнутой жизнью, слабо реагируя на фидбек пользователей. Внести какое-то непопулярное изменение в приложение, и потом получать годами негативные оценки – норма.
У второй группы есть существенный минус - посредственное качество продукта. Складывается ощущение, что цель подобных приложений состоит в том, чтобы показывать рекламу, а новости – дело вторичное. Тяжело обнаружить какую-либо изюминку, которая бы оправдывала такое отношение к пользователю.
Для того, чтобы выделиться на фоне конкурентных проектов LifeLines выработал несколько ключевых идей:
- Прислушиваться к обратной связи. Приложение должно соответствовать актуальным потребностям пользователей. Для этого, в «Настройках», есть пункт «Предложения по улучшению»; также мы проводим опросы, какие улучшения пользователи хотели бы увидеть в первую очередь.
- Оригинальные идеи в функционале приложения, которых еще ни у кого не реализовано. Например, в новостной ленте мы используем не только обычные новостные источники, но и новости из Telegram-каналов.
- Избегание агрессивной монетизации.
- Стремление к прозрачности работы своих алгоритмов.
Дизайн-концепция
Перед дизайнерами стояла важная задача: необходимо было создать визуальную концепцию приложения, когда маркетинговая и бренд-стратегии продукта были ещё в проработке.
При создании дизайн-концепции приложения был сделан упор на минимализм, чтобы максимально облегчить взаимодействие пользователя с новостями. Очень многие новостные сервисы визуально перегружены и нам хотелось этого избежать. Была выбрана нестандартная цветовая гамма в фиолетовых тонах, приятная глазу и не раздражающая пользователя. Также было уделено большое внимание шрифтам, поскольку это важная часть новостных приложений.
Очень большое внимание было уделено UX в приложении.
Как всё устроено внутри
Вся работа в бэкенде LifeLines протекает в 4 этапа:
- Периодический обход новостных источников (веб-сайты, Telegram-каналы) из внутренней базы в несколько тысяч источников. Сбор текста, дат и заголовков в первичный документ.
- Обработка текстовой информации с помощью моделей машинного обучения. На выходе получается нормализованная форма текста, в которой можно выделить теги, именные сущности (персоны, объекты, события), географию, а также вероятную категорию (тему).
- Агрегирование обработанных статей в события. 10 статей из 10 разных источников могут освещать разные события, а могут и одно и то же. На этом этапе все статьи раскладываются по своим “полочкам” и ранжируются по значимости.
- События проходят индексацию и ожидают показа конечному пользователю в зависимости от настроек ленты.
Это общий принцип работы новостного агрегатора. Однако во время работы над его ядром были сложности и вот как они были решены.
Челлендж #1
Сотни новостных источников обязательно будут генерировать дубликаты одних и тех же событий, если все их совместить в одну ленту. Поэтому система должна уметь определять, где статьи об одном и том же, но в разных источниках. То есть, она должна понимать, о чем идет речь. А также из множества “склеенных” статей необходимо определить ту, которую мы покажем, как “заглавную” в блоке.
Решение #1
Перебрав различные варианты выбор пал на использование модели машинного обучения на основе BERT, которая способна преобразовывать текст в векторное представление. И уже работая с векторами, а не с текстом, появляется возможность определить насколько статьи семантически схожи друг с другом.
Стало ясно, что при таком алгоритме в качестве “заглавной” выбирается самая большая статья с некоторой поправкой на дату публикации, что является довольно удачным решением. Пользователь получает самый информативный текст из всех о произошедшем событии на момент времени.
Хоть текущий алгоритм и не идеален, свои задачи он выполняет. Его усовершенствование – наша задача на самое ближайшее будущее.
Челлендж #2
Одной из фич приложения LifeLines стала хронология или “развитие события”, возможность посмотреть, как развивалось событие во времени. Из любой новости, если она имела какое-то развитие во времени, можно перейти в прошлое и узнать, как развивались события.
Решение #2
Самый рабочий способ организации такой хронологии — по тегам с поправкой на географию. Но метод эффективен не на 100%, потому что, часто в хронологию событий попадает вариант исходной новости из другого источника, который не был правильно сгруппирован изначально при помощи нейросети.
Челлендж #3
На этапе после получения нормализованного текста статьи встает вопрос распознавания в тексте определенных сущностей, такие как персоны, бренды, география и т.п. Это необходимо для определения географии события и определения тегов.
Решение #3
Для решения этой проблемы была использована модель машинного обучения, способная выделять в тексте именные сущности, определяя, что это: География, Персона или Организация.
Далее, имена географических сущностей используются для поиска в базе топонимов. Также эта база давала узнать об иерархии географических объектов, что дополнительно помогает определить конечную географию события.
Имена Персон и Организаций используются для поиска в базе WikiData, которая содержит огромный объем справочной информации в удобном для машины формате. В статьях с такими сущностями автоматически прикрепляются ссылки на Википедию сразу под текстом новости для уточнения информации.
Мобильная часть LifeLines
После того, как внутреннее ядро LifeLines и дизайн были готовы, можно было приступить к разработке мобильного приложения.
Для быстрого старта был создан прототип. Поскольку основа приложения — это сложная лента с новостями, большинство интересных моментов в финальной версии приложения во время разработки были связаны с ней и с различными оптимизациями. Так, были реализованы:
- Асинхронная загрузка картинок в ленте новостей — т.е. сначала показывается текстовая часть ленты, а потом в нее грузим картинки.
- Кэширование контента при переходе от ленты к детальным новостям картинки берутся из кэша для ускорения загрузки.
- Адаптация верстки новостей под одну стилистику. Поскольку все новости автоматически парсятся бэкендом с новостных сайтов, в ленту может попасть разное. Ведь картинки бывают разной высоты, стили тоже у всех сайтов отличаются. Поэтому нам пришлось научить приложение обрабатывать и красиво показывать картинки в приложении, и заменять стили на релевантные.
От старта разработки до релиза прошло около 3-4 месяцев.
Релиз
Релиз приложения под обе мобильные платформы состоялся в конце 2021 года. В 2022 году приложение было выбрано Google Play в качестве рекомендуемых.
Количество установок в день увеличилось более чем в два раза в 2022 году. С начала 2022 года к его концу количество активных пользователей выросло в 8 раз. Был даже пик установок в 17 раз превышающий цифры на старте.
Планы на развитие
У проекта множество планов. Сервис регулярно улучшается, ведется работа над новыми фичами, которые были запрошены пользователями - такие как виджет для мобильного приложения, добавление Telegram-каналов в закладке «Персональное», работа с историческими источниками, возможность оставлять комментарии под новостями. Но также есть и более амбициозные планы.
Архивы
Планируется расширение архивной части — скрапинг данных с большего числа иностранных и исторических источников и их подгрузка в систему.
Зарубежные источники
Проект можно было бы дополнить большой частью иностранных источников, но пока что это не представляется возможным из-за политической обстановки и новой законодательной базы. Однако, для этого всё готово.
Сам себе репортер
Одна из историй, в которую хочет погрузиться LifeLines — это социальная составляющая. Дать пользователям возможность делать собственные публикации о событиях в мире под своим профилем - будь то сообщения очевидцев с места происшествия, или же просто мнение насчет той или иной ситуации.
Также в планах проработать локальный масштаб новостей. Ведь у каждого города имеется множество различных сообществ, которые тоже являются агрегаторами, принимая от очевидцев материалы и публикуя их у себя в группах и каналах.
Задачей LifeLines будет предоставить наиболее удобную и комфортную среду для такого рода контента, чтобы пользователям хотелось делиться событийной информацией именно здесь.
Трансляция события
Один из важных новостных форматов в наше бурное время – текстовые новостные трансляции.
Бывает, что в реальном времени разворачиваются особо важные события, и новые факты всплывают каждые несколько минут. А значит, нужен такой же оперативный формат показа информации.
В планах дать возможность LifeLines чувствовать подобные новостные турбулентности и создавать для них текстовую трансляцию, в которую будут оперативно помещаться поминутно информация из множества СМИ.
Спасибо за внимание! Оставайтесь на связи, впереди еще много интересных кейсов.
#machinelearning #машинное_обучение #машинноеобучение #ml #искусственный_интеллект #mobileapp #mobileapps #нейронка #нейросеть #ai #агрегаторновостей #lifelines #technologika #enjoytechnologika #технологика #itтехнологии #ии #машинлёнинг #машинленинг #development #разработка #it #разработкапо #агрегатор #искусственныйинтеллект #разработка_мобильных_приложений #startup #startups #startupshow #стартап #распознавание #аутсорсинг
Автор статьи - Ахмерова Мария
Комментарий удален модератором