Найти в Дзене
SoftAppNews

Нейросеть для ведения канала

Оглавление

Наверняка те, кто хоть раз пробовал или вел какой-либо канал в телеграм, на YouTube или ЯндексZen сталкивались с такой проблемой, что канал вести довольно затратно по времени.

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


Рождение идеи


Если взглянуть на предыдущий абзац, все это укладывается в определенный алгоритм:

  1. Найти контент
  2. Выбрать лучшее из многообразия
  3. Отформатировать под формат канала.
  4. Опубликовать на канале в определенное время

Здесь и пришла идея, автоматизировать некоторые процессы хотя бы частично.

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

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


Выбираем лучшее


Рисуем схему:

Parser - собирает контент из источников
Database - место хранения контента и других служебных данных
DatasetCombine - Собирает данные в формат удобный для обучения нейросети
API - собственно методы управления
WebUI - интерфейс управления системой
TG Bot - бот, который публикует отформатированный контент и собирает информацию о реакциях пользователей.
Parser - собирает контент из источников Database - место хранения контента и других служебных данных DatasetCombine - Собирает данные в формат удобный для обучения нейросети API - собственно методы управления WebUI - интерфейс управления системой TG Bot - бот, который публикует отформатированный контент и собирает информацию о реакциях пользователей.

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

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

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

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

Когда данных станет достаточное для обучения нейросети количество, можем собрать датасет, где мы будем учитывать те показатели которые мы просчитывали для контента, а так же реакцию пользователей. Итого входными данными для обучения будет массив чисел о наличии тегов, и числа от 0 до 1 (коэффициент водности, тошноты и других показателей текста), и в качестве проверочного сета, будут коэффициенты реакций пользователей, где мы можем просто разделить количество 👍 на общее количество реакций.

Примерно такая математика. Всего, например, 7 реакций из них 5 лайков:
5 ÷ 7 ≈ 0,71
Мы можем умножить его на 100 и получим 71%, можно считать, что настолько этот контент нравится нашей аудитории.


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

Здесь по сути вступает в работу статистика, которая определяет, что контент с тегом #Система нравится пользователям гораздо чаще чем с тегом #Графика. Ну и так для каждого тега и каждого поста. Дальше, так как они имеют разные теги, он выводит некую вероятность между 0 и 1 о том, что это понравится пользователям. Вот это число между 0 и 1 умножаем на 100 и получаем процент, насколько это понравится пользователю.

Далее просто говорим боту какой контент публиковать, по условиям. Например, чтобы интересность контента по прогнозу нейросети была 75% или выше, тут уже будет зависеть от средней оценки контента и уровня обученности модели. Для обучения мы можем использовать различные показатели, не только тошноту, теги или водность. Здесь уже необходимо понимать, что некоторые показатели будут зависеть от тематики канала.

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

Итог

Немного о плюсах и минусах такого подхода.

Начнем с плюсов:

  • Экономия времени, которое требуется для ведения канала
  • Это работает, и канал со временем ведется практически автоматически
  • Аудитория канала может не знать, подбирает ли контент для нее челове, или "бездушный" робот
  • Возможность вести множество каналов из за экономии времени, и охватывать большие информационные пространства

Минусы:

  • Канал ведет, "бездушный" робот, многим может не понравится
  • Приближает восстание машин (Шутка конечно, но кто-то ведь верит)
  • Нужны хорошие системы мониторинга особенно для парсеров, так как источники контента могут изменить структуру
  • Требуется следить за обучением нейросети, иногда оно заходит "не туда"
  • Робот не сможет вовремя сориентироваться и сменить тематику, если тема станет не актуальной, поэтому следить за своим каналом все же придется
Пример опубликованного роботом контента с реакциями
Пример опубликованного роботом контента с реакциями

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