Русский
Русский
English
Статистика
Реклама

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

В ноябре на EMNLP 2020 в четвёртый раз прошёл воркшоп WOAH: он был посвящён алгоритмам, обнаруживающим кибербуллинг и токсичность в онлайн-пространстве. Мы выступили со статьёй о ложноположительных срабатываниях детектора враждебных высказываний. На прошлой неделе мы запустили фильтр на основе этого детектора: каким был путь от идеи до релиза и публикации рассказываем в этой статье.

Проблема и существующие решения

ВКонтактесотни тысячсообществ разной тематики:от абстрактных мемов и уродливых растений до фанатских комьюнити и пабликов мировых брендов. В каждомсвоя атмосфера, которую поддерживают сами подписчики и админы. У владельцев сообществ есть целый набор инструментов для модерации:например, фильтры по нецензурным выражениямиключевым словам(ихвыбирают сами админы).

Недавно мы запустилиеще один фильтрвраждебных высказываний.Хоть угрозы в комментарияхчастоне несут реальной опасности,онисоздаютагрессивнуюатмосферу в пабликеипорой могут провоцироватьнанасилие в офлайне.Мысделалифильтр,которыйавтоматически удаляетугрозы: например, пожелания смерти или обещания причинить вред здоровью.Администратор сообщества можетвключить и выключитьегов любой момент, а ещё посмотреть все отсеянные комментарии,восстановитьлюбой из них илиотправить автора в чёрный список.

С проблемой угроз и оскорблений сталкиваемся не только мы, но и многие другие интернет-площадки.Разработчики вместе с представителями социальных сетей стремятсясоздаватьнадёжные модели, обнаруживающиетоксичность.Но частаяпроблематаких детекторов наличие Unintended Bias (UB) при вынесении вердикта. Иными словами, модель учится присваивать высокий скор токсичности текстам, в которыхестьспецифичные слова: оничасто встречаютсяв оскорбительном контексте, но сами по себе несодержат негативного смысла. Например:женщина, чёрный, петух, админ. Такие слова мы будем называть защищаемыми сущностями,или Protected Identities(PI).

ВКонтакте, 2020 https://vk.com/safetyВКонтакте, 2020 https://vk.com/safety

Сейчас естьмногоконтестови мастер-классов, посвящённых распознаванию токсичных выражений:например,HASOCнаFIRE-2019; TRAC-2020; HatEvalиOffensEvalнаSemEval-2019.Также на платформе Kaggle проводятся состязания по этому направлению и даже по его узкой теме Unintended Bias! В последнемсоревновании от Jigsawиспользовалась специфичная для нашей задачи метрика, на которой мы валидировали модели(подробнее в следующем разделе статьи).

Исследованийпообнаружениютоксичности в русском языкепока мало.Существуетunsupervised-методдлярасширениясловаря оскорбительных и непристойных слов на русском и украинском языках. Ещёнедавно была предложенамодельBERTдля классификациитоксичногорусскоязычногоконтента сейчас онанаиболее близка кSoTA, но еёсложно использовать из-за размера.

В статье сWOAHEMNLP2020мы рассказываем о трёх подходах, которые помоглиуменьшить число false-positive предсказаний:

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

  2. Использовалидропаут на слова из спискатакихсущностей.

  3. Опробовалиmultitask-подходы, о которых расскажем далее.

Как мыразрабатывалидетектор(данные,мини-апп, проблема UnintendedBias)

Весной 2020 года мывзялись за разработкусобственного детектора токсичности, который могли бы применитьВКонтакте.Думали о разных фичах, в которыхон был бы полезен. Поняли, что администраторам сообществ пригодитсяфильтр враждебных высказываний: онпозволит авторам открыть комментариипод записями и не опасаться, что там будут бесконтрольно разрастаться токсичные обсуждения. Кроме того, фильтр способенснизитьобщийградус враждебности на площадке и уменьшитьнагрузку на модераторов.

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

Первые вопросы,на которыенам предстоялоответить на старте разработки:

  • Как понять, что перед нами токсичный текст?

  • Как разметить данные для обучения?

  • Сколько вообще их нужно?

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

Угрозы

Не угрозы

Обещанияипожелания смерти,причинения вреда здоровью

Призывы отправить кого-то в тюрьму

Угрозы с сексуальным подтекстом

Одобрение действий, которые нам неизвестны

Пожелания смерти самому себе

Эпитафии

Таблица1. Некоторые изправил разметки

Разметкой занимались модераторы. Онииспользовали нашевнутреннееприложениеи выполнялинесколько итераций, валидируярешения друг друга.

Чтобысобирать данные максимально эффективно, на финальныхэтапахразметки мы использовали подходActive Learning. Онпозволяетдокидывать примеры с максимальной энтропией для дообучения классификатора. Конечно, в перспективе было бы здорово поставить всёэто на конвейер :)

Когда завершиласьперваяитерацияразметки и тестирования классификатора,мы заметили, что существует проблема UB. Она проявляется в двух моментах:

  • классификатор считает токсичнымитекстывидатыне чучелоилиназыватьлюдей чучелами плохо этоудалось решить довольно быстро генерацией синтетики;

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

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

Дальше мы действовали так: вручную составилисписокиз 214русских слов,которые относятсяк защищаемым сущностям(тоестьтем, которые часто встречаются в оскорбительном контексте, но сами по себене несут негативного смысла). Слова распределили похарактеру токсичностина категории: сексизм, национализм, угрозы, домогательства, гомофобия и другие.Полный список защищаемыхидентичностейи относящихся к ним словможно посмотреть на GitHub:vk.cc/aAS3TQ.Воfuturework смелозаписываемавтоматизацию сбора таких сущностей.

лукизм

корова,пышка

сексизм

женщина,баба

национализм

чех,еврей

угрозы

выезжать,айпи

домогательства

киска,секси

гомофобия

гей,лгбт

другое

мамка,админ

Таблица 2. Выдержки из полного списказащищаемыхидентичностейи относящихся к ним слов

Как можно оценить Unintended Bias?

В соревновании от Jigsaw,как и на нашемчемпионатеVK Cup,качествопредсказанийоценивалосьпри помощиgeneralizedmean of Bias AUCs. Идея такой метрикив том,чторезультатыработы модели на тестеразбиваютсяна сабсетыв зависимости от выхода модели и наличия слов из списка защищаемых сущностей. Затем мы считаем AUC по каждомусабсету,берём от них обобщённое среднееикомбинируемегос варьируемыми весами с AUC по всем результатам.

Метрика качества. Взято из соревнования от JigsawМетрика качества. Взято из соревнования от Jigsaw

Метрика качества. Взято из соревнования от Jigsaw

Наши подходы

  1. Нетоксичная языковая модель

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

  2. Random dropout на Protected Indentities

    Известно,что random word dropoutможетсделатьклассификациютекстакачественнее.Мыприменилиэтот метод, чтобыво время обученияслучайным образом(свероятностью 0,5) заменять защищаемыеидентичностивовходных последовательностяхнамаркер.

  3. Multitask framework

    Мыиспользовали фреймворкmultitask-learning,расширив для негобазовую модельпри помощи предсказания классаProtected Identity(лукизм,национализм,угрозаи так далее).При обучении потери считаются как среднее взвешенное по предсказанию токсичности и классу защищаемой сущности это тожеулучшает результат.

Схема обучения модели с применением multitask-learningСхема обучения модели с применением multitask-learning

Схема обучения модели с применением nultitask-learning

Результаты

Мыработали сэмбеддингами,предварительно обученнымина корпусах комментариев из публичных сообществ, русских субтитров из разных фильмов и видео(наних жетренировалась модельBPE).

Попробовалидве архитектуры(self-ATTN,CNN),комбинируятриподходаиз нашей статьи.self-ATTN модель, основаннаяна self-attentive encoder.Векторыпередаютсянапрямуювattention,поэтомумодельself-attentionстановится похожей на ту,что используется втрансформерах. Преимущество этой архитектуры в том, что её отдельные веса внимания каждого входного токена поддаются интерпретации.Это позволяет визуализировать, что именно служит триггером для классификатора. Ана основе этого исследовать данные и, например,расширятьсписокзащищаемыхсущностей.

Визуализация attention по словамВизуализация attention по словам

Визуализация attention по словам

В качестве функции потерь для singletask approach мыприменилиBCE-loss. Дляmultitask approachиспользовали loss-взвешенное среднеедля двух задач:скоратоксичности и предсказанияклассаProtected Identity.Больше деталей обучения вроде числа итераций или lr внашейполнойстатье.

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

Метод

Нашдатасет

(Андрусяк и др., 2018)

(Сметанин, 2020)

GMB-AUC

F1

GMB-AUC

F1

GMB-AUC

F1

CNN

.56.005

.66.003

.51.005

.59.001

.53.003

.78.002

CNN + multitask

.58.001

.68.008

.52.002

.61.002

.53.010

.80.002

Attn

.60.002

.71.010

.54.001

.72.003

.54.005

.80.010

Attn + multitask

.60.004

.74.012

.54.009

.69.009

.54.007

.82.004

Attn + LM data

.65.003

.74.002

.58.003

.70.001

.57.006

.83.009

Attn + LM data + multitask

.67.002

.74.016

.59.003

.70.010

.58.003

.84.008

Attn + identity d/o

.61.001

.65.003

.53.004

.68.001

.54.007

.82.011

Attn + identity d/o + multitask

.61.005

.66.007

.54.004

.69.008

.58.009

.83.007

Attn + identity d/o + LM data

.67.004

.76.005

.55.003

.71.002

.59.003

.86.012

Attn + 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
К списку статей
Опубликовано: 10.03.2021 14:15:34
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Блог компании вконтакте

Машинное обучение

Natural language processing

Toxicity

Text classification

Russian language

Social networks

Self-attention

Bpe

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru