- PVSM.RU - https://www.pvsm.ru -

Представьте себе, что вы поспорили с друганом, что было раньше — курица или яйцо повышение какого-то налога, к примеру, или новости на эту тему, или вовсе важное событие заглушили тучей новостей про новую песню, скажем, Киркорова. Удобно было бы посчитать, сколько новостей на каждую тему было в каждый конкретный момент времени, а потом наглядно это представить. Собственно, этим и занимается проект “радар новостей рунета”. Под катом мы расскажем, при чём здесь машинное обучение и как любой доброволец может в этом поучаствовать.
Machine Learning for Social Good (ML4SG) — это инициатива внутри сообщества ODS, нацеленная на создание условий для проектов, как следует из названия, которые применяют машинное обучения для принесения какой-то пользы обществу. Под созданием условий здесь подразумеваются в основном организационные ресурсы. Выглядит это примерно так: кто-то формулирует идею проекта и призывает добровольцев, а кто-то просто присоединяется к проекту, ради идеи, опыта или ещё каких-то интересов. Всё держится на энтузиазме, чаще всего в свободное от основной работы время. Радар новостей рунета, или как мы его коротко зовём в команде “ньюзвиз”, один из проектов в рамках ML4SG.
В некоторых иллюстрациях в этой статье будут упоминаться какие-то политические события или персоны. Давайте оставим мнения о них при себе. Хабр не для политики.
Сейчас проект позиционируется как инструмент для анализа СМИ в целом. Если есть какая-то гипотеза о том, как развивалось внимание в новостях к разным темам, событиям, персонам и так далее, то можно говорить опираясь на конкретные числа, а не на домыслы.
Изначальный замысел был такой: берём все новостные данные, какие найдём, применяем тематическое моделирование, раскладываем результаты по времени и рисуем результат.
Понятно, что для этого нужны сами новости, и мы их качаем. И раз у нас будут большие корпуса новостей, то можно сделать ещё много всего интересного, не ограничиваясь тематизацией. Но учитывая реальные условия, о которых мы ещё поговорим, а именно, что реализовывать проект будет толпа добровольцев, а не хорошо сработавшаяся команда оплачиваемых специалистов, сначала мы всё-таки решаем задачу почти без изменений.

Сейчас мы пришли к такому формату визуализации, он называется ridgeline plot. На слайде, кстати, настоящие темы, — это скрин из старого внутреннего демо. То есть здесь у нас по оси абсцисс время, толщина полоски пропорциональна тому, насколько тема в этот момент представлена среди других новостей. В данном случае агрегация по месяцам.
В базовом плане у нас есть выбор источника новостей и выбор способа, как показывать график. Также можно выбрать дополнительные данные не из новостей, например, как в это время вела себя цена на нефть или любой другой показатель на том же временном промежутке. Выбор рубрики и набора тем в ней. В дополнение к этому ещё много идей, но об этом позже.
Есть много разных других проектов, связанных с визуализацией новостей. Мне нравятся вот эти [2] два [3]. Первый сравнивает, как подаются одни и те же новости в разных источниках, и при этом очень хорошая форма изложения и интерактив. Второй просто имеет очень хорошее отношение информативности к простоте. Там сравнивается, как много говорится о разных причинах смерти в новостях, как часто какие причины смерти упоминаются в поисковых запросах, и как оно по статистике. Ну и в выводах о том, как катастрофически переоценивается терроризм и как недооцениваются сердечные заболевания и рак.
Проект довольно прямолинейный. Сначала качаем данные, потом обрабатываем, делаем всякий машинлёрнинг, ну и рисуем графики. Потом делаем сайт, и все смотрят. Всё понятно (ну да, конечно).

Для старта у нас был датасет ленты ру за 20 лет. В основном все эксперименты мы делали на нём. Сейчас мы собрали ещё несколько источников и продолжаем собирать всё, до чего дотянемся. О скрапинге и пауках есть достаточно много подробных материалов, поэтому мы не будем здесь подробно останавливаться на этой теме.
Я больше всего переживал за NLP часть, потому что тяжело формализовать требования к результату тематизации. К тому же, достаточно много побочных подзадач. Сейчас мы проделали довольно много экспериментов с разными инструментами для тематического моделирования, перед этим разделались с препроцессингом, наделали много бенчмарков и сравнений. На данный момент бесспорным лидером по тематизации с точки зрения ресурсов и качества оказался bigARTM. Теперь это наш рабочий вариант, пока кто-нибудь не покажет что-то лучше.
В общем-то весь машинлёрнинг сосредоточен по большей части именно в этой секции. Кроме изначально поставленной основной задачи тематизации есть ещё много других, которые тоже принесут интересные выводы. Например, NER. Мы уже вытащили все имена из тех данных, что у нас есть, составили словари, посчитали, кого сколько раз упоминают. Вышло, например, что про Порошенко в Ленте.ру за всё время писали в четыре раза больше, чем про Путина. Мне интересно стало, что Ассанж идёт синхронно с Магнитским, и всё это ровно после ухода Буша. А Бэтмен популярнее, чем Медведев.
Хотя этот этап всё ещё в процессе, мы сделали большое количество экспериментов и сравнили много инструментов и подходов. В процессе большой туториал по разным задачам NLP с примерами кода и бенчмарками самых популярных и некоторых необычных инструментов.
Этот этап не казался слишком сложным, однако почему-то почти никто не готов им заниматься. Требования к визуализациям идут чуть дальше, чем привычный подход к EDA в датасаенсе. Нарисовать график для себя или другого датасентиста — это гораздо проще, чем нарисовать график для широкой публики. Мы очень долго возились с форматами и инструментами и сейчас пришли к некоторым подходам, которые кажутся наиболее разумными, но впереди ещё много работы, так как готовых инструментов для наших задач практически нет. Например, график с лицами выше делался в два этапа — основные элементы сгенерированы в коде, а затем следовал длинный этап ручной перерисовки, чтобы хоть что-то читалось. В плане подробный разбор этой визуализации в отдельной статье — она отражает в какой-то мере историю России за последние 20 лет.
Условно можно на две группы разделить участников: новички и профи. У новичков мотивация простая — положить в копилку какой-то проект, чтобы показывать работодателям, или просто приобрести опыт, чему-то научиться. И мне уже сообщали, что разные вещи, которые мы делали в рамках проекта, пригодились в работе участников, начальство оценило. Профи приходят либо из-за самой цели проекта, потому что им интересно присоединиться к идее, либо потому что хотят попробовать что-то из своих идей на новостных данных.
На самом деле есть ещё одна группа участников — это вот такие неуловимые ниндзя, которые вписались и ничего не делают либо только стартуют, а потом исчезают. Но как я уже пояснял, никто не работает в проекте за деньги, поэтому неорганизованность человеческих ресурсов неизбежна. Наблюдать со стороны из любопытства тоже можно.

Сейчас формально числится около 80 человек, из них около 10-20 бывают активны и 2-4 человека из них активны почти постоянно. В таком формате можно компенсировать отсутствие опыта временем. Многие пишут, что нет знаний, как делать, есть страх подвести из-за неумелости, но по факту важно только делать, а не ждать момент. Потому что ml4sg это очень крутая активность. Можно принести пользу и одновременно получить профит в виде опыта и портфолио, при этом из рисков только время, для менеджера ещё и репутация, конечно, но основной ресурс здесь это время, которое в итоге окупается.
Сейчас я это пытаюсь позиционировать как инструмент для исследований. Мы планируем добавить “разведочный” поиск, который может оценивать тему запроса и давать статистики по новостям этой темы, графики разных неновостных данных, но релевантных теме проекта. Тогда можно будет проверять всякие гипотезы о том, как ведут себя СМИ, как связаны события и другие произвольные показатели, социальные или экономические. Такой инструмент, чтобы исследовать СМИ в целом.
Автор: Святослав
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/news/325734
Ссылки в тексте:
[1] здесь: http://www.machinelearning.ru/wiki/index.php?title=%D0%A2%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
[2] эти: https://pudding.cool/2018/01/chyrons/
[3] два: https://owenshen24.github.io/charting-death/
[4] Image: https://habrastorage.org/webt/vx/62/w8/vx62w8rfurusrfljikioopvbfj0.png
[5] Источник: https://habr.com/ru/post/460287/?utm_source=habrahabr&utm_medium=rss&utm_campaign=460287
Нажмите здесь для печати.