[Машинное обучение, Natural Language Processing] Чёрный петух, жирный творог и альпийская корова, или Уменьшение предвзятости в классификации токсичности

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
10-Мар-2021 16:31


В ноябре на EMNLP 2020 в четвёртый раз прошёл воркшоп WOAH: он был посвящён алгоритмам, обнаруживающим кибербуллинг и токсичность в онлайн-пространстве. Мы выступили со статьёй о ложноположительных срабатываниях детектора враждебных высказываний. На прошлой неделе мы запустили фильтр на основе этого детектора: каким был путь от идеи до релиза и публикации — рассказываем в этой статье. Проблема и существующие решенияВКонтакте сотни тысяч сообществ разной тематики: от абстрактных мемов и уродливых растений до фанатских комьюнити и пабликов мировых брендов. В каждом своя атмосфера, которую поддерживают сами подписчики и админы. У владельцев сообществ есть целый набор инструментов для модерации: например, фильтры по нецензурным выражениям и ключевым словам (их выбирают сами админы). Недавно мы запустили еще один — фильтр враждебных высказываний. Хоть угрозы в комментариях часто не несут реальной опасности, они создают агрессивную атмосферу в паблике и порой могут провоцировать на насилие в офлайне. Мы сделали фильтр, который автоматически удаляет угрозы: например, пожелания смерти или обещания причинить вред здоровью. Администратор сообщества может включить и выключить его в любой момент, а ещё посмотреть все отсеянные комментарии, восстановить любой из них или отправить автора в чёрный список.С проблемой угроз и оскорблений сталкиваемся не только мы, но и многие другие интернет-площадки. Разработчики вместе с представителями социальных сетей стремятся создавать надёжные модели, обнаруживающие токсичность. Но частая проблема таких детекторов — наличие Unintended Bias (UB) при вынесении вердикта. Иными словами, модель учится присваивать высокий скор токсичности текстам, в которых есть специфичные слова: они часто встречаются в оскорбительном контексте, но сами по себе не содержат негативного смысла. Например: женщина, чёрный, петух, админ. Такие слова мы будем называть защищаемыми сущностями, или Protected Identities (PI).  
ВКонтакте, 2020 https://vk.com/safetyСейчас есть много контестов и мастер-классов, посвящённых распознаванию токсичных выражений: например, HASOC на FIRE-2019; TRAC-2020; HatEval и OffensEval на SemEval-2019. Также на платформе Kaggle проводятся состязания по этому направлению и даже по его узкой теме — Unintended Bias! В последнем соревновании от Jigsaw использовалась специфичная для нашей задачи метрика, на которой мы валидировали модели (подробнее — в следующем разделе статьи).Исследований по обнаружению токсичности в русском языке пока мало. Существует unsupervised-метод для расширения словаря оскорбительных и непристойных слов на русском и украинском языках. Ещё недавно была предложена модель BERT для классификации токсичного русскоязычного контента — сейчас она наиболее близка к SoTA, но её сложно использовать из-за размера.В статье с WOAH EMNLP 2020 мы рассказываем о трёх подходах, которые помогли уменьшить число false-positive предсказаний: 
  • Мы применили языковую модель для генерации нетоксичных примеров с контекстом по защищаемым сущностям.
  • Использовали дропаут на слова из списка таких сущностей.
  • Опробовали multitask-подходы, о которых расскажем далее.
Как мы разрабатывали детектор (данные, мини-апп, проблема Unintended Bias)Весной 2020 года мы взялись за разработку собственного детектора токсичности, который могли бы применить ВКонтакте. Думали о разных фичах, в которых он был бы полезен. Поняли, что администраторам сообществ пригодится фильтр враждебных высказываний: он позволит авторам открыть комментарии под записями и не опасаться, что там будут бесконтрольно разрастаться токсичные обсуждения. Кроме того, фильтр способен снизить общий градус враждебности на площадке и уменьшить нагрузку на модераторов. Сейчас фильтр уже реализован, администраторы могут его опробовать. В нынешней итерации он удаляет только угрозы — то есть пожелания смерти или обещания причинить вред здоровью. Но в рамках исследований мы работаем и с другими категориями токсичности: например, националистическими высказываниями и домогательствами.Первые вопросы, на которые нам предстояло ответить на старте разработки: 
  • Как понять, что перед нами токсичный текст?
  • Как разметить данные для обучения?
  • Сколько вообще их нужно?
Для разметки мы использовали комментарии из публичных сообществ — брали анонимизированные реплики не длиннее 100 слов. При составлении правил разметки важно было иметь в виду, что наша нынешняя модель не сможет учитывать контекст, как модераторы. Поэтому все спорные ситуации мы решили помечать как нетоксичные.УгрозыНе угрозыОбещания и пожелания смерти, причинения вреда здоровьюПризывы отправить кого-то в тюрьмуУгрозы с сексуальным подтекстомОдобрение действий, которые нам неизвестныПожелания смерти самому себеЭпитафииТаблица 1. Некоторые из правил разметкиРазметкой занимались модераторы. Они использовали наше внутреннее приложение и выполняли несколько итераций, валидируя решения друг друга.Чтобы собирать данные максимально эффективно, на финальных этапах разметки мы использовали подход Active Learning. Он позволяет докидывать примеры с максимальной энтропией для дообучения классификатора. Конечно, в перспективе было бы здорово поставить всё это на конвейер :)Когда завершилась первая итерация разметки и тестирования классификатора, мы заметили, что существует проблема UB. Она проявляется в двух моментах: 
  • классификатор считает токсичными тексты вида «ты не чучело» или «называть людей чучелами плохо» — это удалось решить довольно быстро генерацией синтетики;
  • а также учится выдавать высокий скор токсичности примерам с защищаемыми сущностями — как боролись с этим, рассказываем дальше в статье. 
Кроме того, изобретательные пользователи придумывали сложные трёхэтажные оскорбления — но их победила модель BPE.Дальше мы действовали так: вручную составили список из 214 русских слов, которые относятся к защищаемым сущностям (то есть тем, которые часто встречаются в оскорбительном контексте, но сами по себе не несут негативного смысла). Слова распределили по характеру токсичности на категории: сексизм, национализм, угрозы, домогательства, гомофобия и другие. Полный список защищаемых идентичностей и относящихся к ним слов можно посмотреть на GitHub: vk.cc/aAS3TQ. Во future work смело записываем автоматизацию сбора таких сущностей. лукизмкорова, пышкасексизмженщина, бабанационализмчех, еврейугрозывыезжать, айпидомогательствакиска, сексигомофобиягей, лгбтдругоемамка, админТаблица 2. Выдержки из полного списка защищаемых идентичностей и относящихся к ним словКак можно оценить Unintended Bias?В соревновании от Jigsaw, как и на нашем чемпионате VK Cup, качество предсказаний оценивалось при помощи generalized mean of Bias AUCs. Идея такой метрики в том, что результаты работы модели на тесте разбиваются на сабсеты — в зависимости от выхода модели и наличия слов из списка защищаемых сущностей. Затем мы считаем AUC по каждому сабсету, берём от них обобщённое среднее и комбинируем его с варьируемыми весами с AUC по всем результатам.
Метрика качества. Взято из соревнования от JigsawМетрика качества. Взято из соревнования от JigsawНаши подходы
  • Нетоксичная языковая модельОдин из способов победить предвзятость — сгенерировать нетоксичные примеры для обучения, снабдив их контекстом по словам из списка защищаемых идентичностей. При этом языковая модель должна быть обучена на текстах из нетоксичного распределения. Мы взяли Transformer, а в качестве данных для обучения — детские сказки, русскую классическую литературу и научпоп. Всего сгенерировали 25 000 дополнительных примеров и добавили их к трейнсету.
  • Random dropout на Protected IndentitiesИзвестно, что random word dropout может сделать классификацию текста качественнее. Мы применили этот метод, чтобы во время обучения случайным образом (с вероятностью 0,5) заменять защищаемые идентичности во входных последовательностях на маркер .
  • Multitask frameworkМы использовали фреймворк multitask-learning, расширив для него базовую модель при помощи предсказания класса Protected Identity (лукизм, национализм, угроза и так далее). При обучении потери считаются как среднее взвешенное по предсказанию токсичности и классу защищаемой сущности — это тоже улучшает результат.

Схема обучения модели с применением multitask-learningСхема обучения модели с применением nultitask-learningРезультатыМы работали с эмбеддингами, предварительно обученными на корпусах комментариев из публичных сообществ, русских субтитров из разных фильмов и видео (на них же тренировалась модель BPE). Попробовали две архитектуры (self-ATTN, CNN), комбинируя три подхода из нашей статьи. self-ATTN — модель, основанная на self-attentive encoder. Векторы передаются напрямую в attention, поэтому модель self-attentionстановится похожей на ту, что используется в трансформерах. Преимущество этой архитектуры в том, что её отдельные веса внимания каждого входного токена поддаются интерпретации. Это позволяет визуализировать, что именно служит триггером для классификатора. А на основе этого исследовать данные и, например, расширять список защищаемых сущностей.
Визуализация attention по словамВизуализация attention по словам В качестве функции потерь для singletask approach мы применили BCE-loss. Для multitask approach использовали loss-взвешенное среднее для двух задач: скора токсичности и предсказания класса Protected Identity. Больше деталей обучения вроде числа итераций или lr — в нашей полной статье.Также для бенчмарка мы использовали два внешних датасета токсичности на русском (и, как выяснили потом, немного на украинском) языке.МетодНаш датасет(Андрусяк и др., 2018)(Сметанин, 2020) GMB-AUCF1GMB-AUCF1GMB-AUCF1CNN.56±.005.66±.003.51±.005.59±.001.53±.003.78±.002CNN + multitask.58±.001.68±.008.52±.002.61±.002.53±.010.80±.002Attn.60±.002.71±.010.54±.001.72±.003.54±.005.80±.010Attn + multitask.60±.004.74±.012.54±.009.69±.009.54±.007.82±.004Attn + LM data.65±.003.74±.002.58±.003.70±.001.57±.006.83±.009Attn + LM data + multitask.67±.002.74±.016.59±.003.70±.010.58±.003.84±.008Attn + identity d/o.61±.001.65±.003.53±.004.68±.001.54±.007.82±.011Attn + identity d/o + multitask.61±.005.66±.007.54±.004.69±.008.58±.009.83±.007Attn + identity d/o + LM data.67±.004.76±.005.55±.003.71±.002.59±.003.86±.012Attn + identity d/o + LM data + multitask.68±.001.78±.010.56±.004.73±.003.60±.008.86±.004Таблица 3. Generalized Mean of Bias AUCs (GMB-AUC) и значение F-меры по наборам данныхНаши модели достигли конкурентоспособных результатов по F-мере на всех трёх наборах данных. Самая эффективная и хитрая из них (Attn + identity d/o + LM data + multitask setup) показала F-меру 0,86 по тесту. А это 93% от заявленной точности SoTA-модели — более крупной и созданной при помощи файнтюнинга BERT-like архитектуры.Исследование продолжим: интересно прикинуть, как можно автоматически расширять список защищаемых идентичностей и связанных с ними слов, а также автоматизировать разметку при помощи Active Learning.Авторы — Надежда Зуева, Павел Калайдин и Мадина Кабирова — выражают благодарность Даниилу Гаврилову и Октаю Татанову за полезные дискуссии, Даниилу Гаврилову за ревью, Виктории Логиновой и Дэвиду Принцу за редактирование текста и анонимным рецензентам за ценные комментарии. Также мы хотим поблагодарить команду модераторов ВКонтакте (которую координировала Катерина Егорушкова) за помощь в создании набора данных для обучения, Анну Мелковскую за помощь в координации проекта, Семена Полякова, Андрея Якушева, Дмитрия Сальникова за полезные советы по Active Learning и не только, Дмитрия Юткина и Александра Маркова за помощь во внедрении технологии в продакшен.We are open for collaborations! Поэтому датасет собранных нами угроз доступен по запросу — написать можно на почту nadezhda.zueva@vk.com или ВКонтакте (vk.com/nda) P. S. Обоснования и ссылки на подходы — в нашей основной статье: arxiv.org/abs/2010.11666
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_mashinnoe_obuchenie (Машинное обучение), #_natural_language_processing, #_toxicity, #_text_classification, #_russian_language, #_social_networks, #_selfattention, #_bpe, #_blog_kompanii_vkontakte (
Блог компании ВКонтакте
)
, #_mashinnoe_obuchenie (
Машинное обучение
)
, #_natural_language_processing
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 17-Май 13:07
Часовой пояс: UTC + 5