Краткий обзор классификации этикеток и языка вражды

Авторы Джейкоб Крэбб, Шерри Янг и Анна Зубова.

Что такое язык вражды?

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

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

  • Он адресован определенной группе людей (этническая принадлежность, национальность, религия, сексуальность, инвалидность или класс);
  • Есть злой умысел;

Есть одна основная проблема с языком вражды, которую трудно классифицировать: субъективность. За исключениями из Первой поправки язык вражды не имеет юридического определения и не карается законом. По этой причине то, что является языком ненависти, а что нет, открыто для интерпретации. По словам Айлин Калискан, исследователя информатики из Университета Джорджа Вашингтона (источник), многое зависит от предметной области и контекста. На первый взгляд нейтральное предложение может быть оскорбительным для одного человека и не беспокоить другого.

Но поскольку люди не всегда могут прийти к единому мнению о том, что можно классифицировать как язык вражды, особенно сложно создать универсальный алгоритм машинного обучения, который бы его идентифицировал. Кроме того, по словам Томми Грёндаля из Университета Аалто, Финляндия (источник), наборы данных, используемые для обучения моделей, как правило, отражают мнение большинства людей, которые собирали или маркировали данные.

Еще одна сложность заключается в том, что даже для человека трудно отличить язык ненависти от просто оскорбительной лексики. Это становится проблемой, особенно когда маркировка выполняется случайными пользователями на основе их собственного субъективного суждения, как в этом наборе данных, где пользователям предлагалось пометить твиты как язык ненависти, оскорбительный язык или ни то, ни другое. Поэтому при разработке модели важно следовать критериям, которые помогут отличить язык ненависти от оскорбительного.

Стоит отметить, что база данных Hatebase может быть очень полезной при создании алгоритмов обнаружения языка вражды. Это многоязычный словарь, в котором слова получают ярлыки от «мягко» до «крайне оскорбительного» в зависимости от вероятности их использования в языке ненависти.

Хотя существуют разные мнения о том, следует ли ограничивать разжигание ненависти, некоторые компании, такие как Facebook, Twitter, Riot Games и другие, решили контролировать и ограничивать его, используя машинное обучение для его обнаружения.

Чувствительность модели

Еще одна проблема с обнаружением языка вражды - чувствительность алгоритмов машинного обучения к текстовым аномалиям.

Модель - это результат работы алгоритма, обученного на данных (источник). Алгоритмы или модели машинного обучения могут классифицировать текст за нас, но чувствительны к небольшим изменениям, например удалению пробелов между словами, вызывающими ненависть. Это изменение может резко снизить отрицательную оценку предложения (Источник). Обучающиеся модели могут быть обмануты, неправильно пометив свои входные данные. Важнейшей проблемой для алгоритмов машинного обучения является понимание контекста.

Коварный характер языка вражды заключается в том, что он может принимать самые разные формы в зависимости от контекста. Дискриминационные идеи могут быть скрыты во многих мягких словах, если сообщество придет к консенсусу по выбору слов. Например, названия детских игрушек и хэштеги могут использоваться как прозвища для ненавистных идей. Статические определения, приписывающие значение одному слову в логической логике, не обладают гибкостью, позволяющей адаптироваться к смене псевдонимов из-за ненависти. Что A.I. здесь не улавливается контекст, и именно это делает язык ненавистным , - говорит Бриттан Хеллер, сотрудник Центра Беркмана Кляйна по Интернету и обществу при Гарвардском университете ( Источник ).

Каждая компания, которая позволяет пользователям публиковать собственные материалы, сталкивается с проблемой, связанной с тем, что речь становится ассоциированной с их брендом. В апрельском выпуске Wired описывается, как неуклонный рост Facebook породил серьезный вопрос, совместима ли бизнес-модель компании даже с ее заявленной миссией [сблизить мир]. (Источник) Возможно, мы не сможем объединить людей и сделать мир лучше, просто дав людям больше инструментов, которыми можно поделиться.

В следующем разделе мы рассмотрим пример того, как другая компания, Riot Games, столкнулась с проблемой сдерживания разжигания ненависти.

Пример использования: League of Legends от Riot games

Для тех, кто не знает, League of Legends - это соревновательная игра, в которой две команды по пять игроков в каждой пытаются разрушить базу противостоящей команды.

При выпуске в 2009 году Riot games, конечно же, стремилась создать веселую среду, в которой могла бы процветать дружеская конкуренция. Это была первоначальная цель.

В League of Legends используется встроенный текст, и по мере роста популярности игры и количества пользователей конкуренция усилилась. Игроки начинают использовать чат, чтобы злорадствовать по поводу своих игровых показателей или сорвать тщетные попытки вражеской команды остановить неизбежное поражение. Это все еще входило в цели компании. Вскоре, однако, до тех пор, пока не стало обычным явлением видеть такие вещи, как вся твоя жизнь - мусор, убей себя в реале или множество других заявлений о непристойных вещах, которые победители сделали бы с проигравшими. Это стало настолько обычным явлением, что игроки дали ему название: токсичность. Игроки потеряли чувствительность до такой степени, что были даже положительными, честные игроки вели себя ядовито, не задумываясь. В Riot Games выяснилось, что из их внутренних классификаций игроков (отрицательная, нейтральная и положительная) 87% токсичности приходилось на нейтральных или положительных игроков. Болезнь распространялась. ("Источник")

В 2011 году Riot Games предприняла попытку решения под названием Трибунал (Источник). Трибунал был разработан для работы с другой внутриигровой функцией под названием Отчетность (Источник). Если в конце игры вы почувствовали себя отравленным другим игроком, сообщение было способом отправить эти опасения в Riot Games на рассмотрение. Затем Riot Games передала отчет Трибуналу. Трибунал представляет собой систему судебных решений, основанную на присяжных, состоящую из добровольцев. Обеспокоенные игроки могли подписаться на The Tribunal, затем просмотреть отчеты об играх и проголосовать в каждом конкретном случае, действительно ли кто-то действовал токсично или нет. Если ваш голос совпадет с большинством, вам будет предоставлено небольшое количество игровой валюты, а виновный токсичный игрок получит небольшое наказание, которое будет увеличиваться для повторных нарушителей. Riot Games также ввела небольшие бонусы для нетоксичных игроков. Эти совместные усилия позволили улучшить базу игроков, и Riot обнаружил, что всего одного наказания от Трибунала было достаточно, чтобы обуздать токсичное поведение большинства игроков.

У этой системы были две основные проблемы:

  1. Это было медленно и неэффективно. Ручная проверка требует, чтобы эти журналы чата были перенесены на веб-сайт Трибунала, затем нужно было дождаться ответов от достаточного количества игроков, а затем принять решение о наказании оттуда.

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

Riot закрыли Трибунал в 2014 году. Некоторое время он работал, но токсичность все еще оставалась проблемой.

Решение для машинного обучения:

Однако после этого Riot Games взяла около 100 миллионов отчетов Трибунала (Источник) и использовала их в качестве обучающих данных для создания системы машинного обучения, которая выявляла сомнительное поведение и предлагала индивидуальный ответ на них (в зависимости от того, как игроки голосовали в Тренинг данных по делам Трибунала.)

Хотя Трибунал был медленным или неэффективным, иногда на вынесение приговора требовалось несколько дней или недель или двух (спустя много времени после того, как игрок забыл о своем токсичном поведении), эта новая система могла анализировать и выносить приговор за 15 минут. Игроки видели почти немедленные последствия своих действий (Источник).

В результате того, что эти системы управления изменили культурные нормы в Интернете, случаи гомофобии, сексизма и расизма в League of Legends упали в сумме до 2 процентов от всех игр… «Словесные оскорбления снизились более чем на 40 процентов и 91,6 процент отрицательных игроков меняют свое поведение и никогда не совершают другого нарушения после всего лишь одного заявленного пенальти. ("Источник")

Методология машинного обучения

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

Предварительная обработка данных

Обработка естественного языка (NLP) - это процесс преобразования человеческих слов в числа и векторы, понятные машине. Способ работы между миром человека и миром машин. Естественно, для этого требуется довольно много очистки данных. Как правило, очистка означает удаление стоп-слов, стемминга, токенизации и реализацию функции частоты термина-обратной частоты документа (TFIDF), которая взвешивает более важные слова тяжелее, чем такие слова, как the, которые наказываются за добавление меньшего значения. (Источник) Лемматизация - это более затратный в вычислительном отношении метод, используемый для выделения слов или их корня. ("Источник")

Реализация модели

После того, как данные станут чистыми, мы используем несколько методов классификации. Общие методы классификации текста включают "анализ тональности, обозначение тем, определение языка и определение намерений". (Источник) Более продвинутые инструменты включают наивный байесовский метод, сбор пакетов, усиление и случайные леса. Каждый метод может иметь отзыв, точность, точность и оценку F1, привязанную к тому, насколько хорошо он классифицируется. Затем мы хотим тестировать эти методы снова и снова. Каким бы удивительно точным ни был наш искусственный интеллект с обученными наборами данных, он также может быть мошенническим с тестовыми данными. Нам нужно убедиться, что наша модель не слишком подходит для наших обучающих данных таким образом, чтобы она превосходно подходила для классификации тестовых данных, но плохо справляется с точной классификацией будущих данных. Ниже приведены еще три способа решения проблем при классификации текста.

Классификация по нескольким меткам

Базовый подход к классификации с использованием нескольких ярлыков, называемый методом бинарной релевантности, сводится к независимому обучению одного бинарного классификатора для каждой метки (Источник). При таком подходе каждая метка обрабатывается независимо от остальных. Например, если вы пытались классифицировать Я ненавижу такую ​​еду, давайте не будем ее на обед. Для ярлыков: разговоры за обедом, разговоры о любви, разговоры о ненависти. Ваш классификатор будет просматривать данные трижды, по одному разу для каждой метки.

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

data = pd.read_csv('lunchHateLove.csv')
data.head()

# using binary relevance
from skmultilearn.problem_transform import BinaryRelevance
from sklearn.naive_bayes import GaussianNB
# initialize binary relevance multi-label classifier
# with a gaussian naive bayes base classifier
classifier = BinaryRelevance(GaussianNB())
# train
classifier.fit(x_train, y_train)
# predict
predictions = classifier.predict(x_test)
#print the keywords derived from our text
#along with the labels we assigned, and then the final predictions
print(data.comment_text[1], '\n',
      data.comment_text[3], '\n',
      y_test, '\n',
      predictions, '\n')

hate love kind food okay lunch 
food hate love get lunch 
    lunch_talk  love_talk  hate_talk
1        1          0          1
3        1          1          1 
  (0, 0)	1
  (1, 0)	1
  (1, 1)	1
  (0, 2)	1
  (1, 2)	1

Итак, в этом простом примере бинарная релевантность предсказывала, что место в первой строке в первом столбце (0,0) было истинным для метки «breakfast_talk», которая является правильной меткой на основе наших исходных входных данных. Фактически, в этом очень простом примере бинарная релевантность идеально предсказывает наши метки.

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

Передача обучения и слабое наблюдение

Одним из узких мест в моделях машинного обучения является отсутствие маркированных данных для обучения наших алгоритмов распознавания языка ненависти. Два решения - это трансферное обучение и слабый надзор.

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

ULMFiT - это метод, который использует предварительно обученную модель на миллионах страниц Википедии, которую можно настроить для конкретной задачи. Эта настроенная модель позже используется для создания классификатора. Этот подход впечатляюще эффективен: всего 100 помеченных примеров (и дает доступ примерно к 50 000 немаркированным примерам), [было возможно] достичь той же производительности, что и обучение модели с нуля с 10 000 помеченных примеров ( источник ). Еще одно преимущество заключается в том, что этот метод можно использовать для языков, отличных от английского, поскольку данные, использованные для начального обучения, были взяты со страниц Википедии, доступных на многих языках. Некоторые другие языковые модели трансферного обучения для НЛП: Transformer, Google BERT, Transformer-XL, OpenAI GPT-2, ELMo, Flair, StanfordNLP (источник).

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

Пример использования этих двух подходов представлен в этой статье. Абрахам Староста, магистр искусственного интеллекта из Стэнфордского университета, показывает, как он использовал комбинацию слабого супервизии и трансфертного обучения для выявления антисемитских твитов.

Он начал с немаркированного набора данных из примерно 25000 твитов и использовал Snorkel (инструмент для слабой маркировки надзора), чтобы создать обучающий набор, написав простые функции меток. Эти функции использовались для обучения «слабой» модели меток с целью классификации этого большого набора данных.

Чтобы применить переносное обучение к этой проблеме, он доработал языковую модель ULMFiT, обучив ее на обобщенных твитах. Затем он обучил эту новую модель на обучающей выборке, созданной со слабой супервизией. Результаты были весьма впечатляющими: автор смог достичь точности 95% и запоминания 39% (порог вероятности 0,63), в то время как без использования слабой техники супервизии он был бы запоминанием 10% при точности 90%. Модель также работает лучше, чем логистическая регрессия из sklearn, XGBoost и нейронных сетей прямого распространения (источник).

Классификации на основе голосования

Методы, основанные на голосовании, представляют собой ансамблевое обучение, используемое для классификации, которое помогает сбалансировать слабые места отдельных классификаторов. Методы ансамбля объединяют отдельные алгоритмы классификатора, такие как: упаковка (или агрегирование начальной загрузки), деревья решений и повышение. Если мы подумаем о линейной регрессии или одной линии, предсказывающей наши значения y при заданном x, мы увидим, что линейная модель не годится для идентификации нелинейных кластеров. Вот тут и пригодятся методы ансамбля. Подходящая комбинация ансамбля таких линейных классификаторов может изучить любую нелинейную границу. (Источник) Классификаторы, каждый из которых имеет уникальные границы решения, могут использоваться вместе. Точность классификатора голосования обычно выше, чем точность отдельных классификаторов. ("Источник")

Мы можем комбинировать классификаторы посредством голосования большинством, также известного как наивное голосование, взвешенное голосование и максимальное голосование. При большинстве голосований система классификации следует подходу« разделяй и властвуй , разделяя пространство данных на меньшие и более простые для изучения разделы, где каждый классификатор изучает только один из более простых разделов». (Источник) При взвешенном голосовании мы можем многократно подсчитывать более полезные модели. (Источник) Мы можем использовать эти методы для текста на иностранных языках, чтобы получить эффективную классификацию. (Источник). С точки зрения удобства использования, методы, основанные на голосовании, хороши для оптимизации классификации, но их нелегко интерпретировать.

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