Antitoxicbot — Бот, Который Распознает Токсичных Пользователей В Чатах Telegram. Немного Об Архитектуре Нейросети Бота. Часть 2



Фон

Существует известная проблема с токсичными людьми в чатах.

Модераторы чатов не всегда могут отследить и забанить токсичных людей; Я хотел бы автоматизировать процесс.

В прошлой статье мало было уделено архитектуре нейросети.

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

Если вы не читали предыдущую статья , пожалуйста прочти.



Об архитектуре.

Архитектура нейронной сети CNN + GRU. Почему был выбран CNN+GRU, а не просто GRU или CNN? Нейронная сеть состоит из 3-х основных частей (CNN, GRU, Linear).

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

AntiToxicBot — бот, который распознает токсичных пользователей в чатах Telegram. Немного об архитектуре нейросети бота.
</p><p>
 Часть 2

Архитектура нейронной сетиГиперпараметры (conv1): Conv1d(300, 512, kernel_size=(5,), шаг=(1), заполнение=(2)) (conv2): Conv1d(512, 1024, kernel_size=(3,), шаг=(1,), заполнение=(1,)) (conv3): Conv1d(1024, 2048, kernel_size=(5,), шаг=(1), заполнение=(2)) (гру): ГРУ (2048, 512, пакет_первый=Истина) (fc1): Линейный (in_features=512, out_features=256, смещение=True) (fc2): Линейный (in_features=256, out_features=2, смещение=True)

CNN — нейронная сеть свертки

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

Как и при классификации изображений, сверточный слой извлекает «особенности», но в нашем случае — векторизованный текст. То есть эта часть сети учится распознавать признаки токсичных и позитивных сообщений.



ГРУ — Рекуррентная нейронная сеть

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

Для обработки последовательностей произвольной длины используйте повторяющиеся слои .

В архитектуре используется рекуррентный уровень.

ГРУ .



Линейный – линейный слой

Этот слой учится принимать окончательное решение по определению тона текста на основе предыдущих слоев.



Об обучении нейронной сети и результатах



Подготовка данных

Чтобы обучить нейронную сеть, вам нужен набор данных.

Датасет взят с сайта болтать .

Около 14 000 комментариев отметили, является ли сообщение токсичным или нет. Но у этого набора данных есть недостаток — орфографические ошибки.

Для решения этой проблемы была использована библиотека Yandex Speller, исправляющая орфографические ошибки.

Далее нужно превратить текст в числа, потому что нейронные сети работают только с ними.

Вы могли бы тренировать свои собственные Word2Vec на основе этого набора данных, но лучше взять уже обученный.

Например: Навек .

Модель обучалась на русской литературе (~150Гб), что говорит о качественной векторизации текста.

Вам также необходимо разделить набор данных на обучающую и тестовую выборки.



Обучение нейронной сети

Для классификации используется обычная функция потерь – перекрестная энтропия .

При обучении сети необходимо обращать внимание на основные параметры, такие как потери, точность И точность .

Всего сеть пройдет 5 эпох, потому что начиная с 5-й эпохи нейросеть начинает переобучаться.



Результаты

После обучения сети на тестовом наборе мы имеем следующие результаты:
потеря точность точность
0.362 0.857 0.92


AntiToxicBot — бот, который распознает токсичных пользователей в чатах Telegram. Немного об архитектуре нейросети бота.
</p><p>
 Часть 2

Диаграмма точности

AntiToxicBot — бот, который распознает токсичных пользователей в чатах Telegram. Немного об архитектуре нейросети бота.
</p><p>
 Часть 2

График функции потерь

Заключение

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

В ~80% случаев нейронная сеть правильно классифицирует тональность текста.



Ссылки

Телеграм-бот Репозиторий проекта Предыдущая статья Теги: #python #машинное обучение #обработка естественного языка #классификация #нейронная сеть #проект #токсичные сообщения
Вместе с данным постом часто просматривают: