Введение

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

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

Вот частичный пример:

Мы будем обучать разные модели с набором данных, использовать разные конфигурации spaCy и сравнивать результаты.

Оглавление:

  • Техники убеждения
  • Набор данных
  • Создание корпуса
  • Обучение модели
  • Предлагаемые интервалы
  • Полученные результаты
  • Заключение

Конфигурация SpaCy и код Python для создания корпуса,используемого в этой статье, доступны на github.

Ищете «HOWTO» по использованию spaCy для категоризации диапазонов?

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

Техники убеждения

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

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

В разных исследованиях были предложены разные наборы методов убеждения, например. начиная от единой классификации всего текста как пропаганды и заканчивая выделением 69 различных приемов». Здесь мы принимаем один набор из двадцати техник, понимая, что возможен другой набор.

Давайте посмотрим на описание некоторых техник, описанных в [1]:

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

Лозунги: короткая и эффектная фраза, которая может включать ярлыки и стереотипы. Лозунги, как правило, действуют как эмоциональные призывы.

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

Представление нерелевантных данных (отвлекающий маневр). Представление нерелевантных материалов к обсуждаемому вопросу, чтобы отвлечь внимание всех от высказанных замечаний.

Эти приемы описаны в контексте подзадачи 2 задания SemEval-2021 Задачи 6: «Выявление приемов убеждения в текстах и ​​изображениях»[1].

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

Набор данных

Используемый нами набор данных создан для задачи 6 SemEval-2021 Выявление техник убеждения в текстах и ​​изображениях. Его можно найти на github [3].

Набор данных состоит из 951 «мема», коротких текстов, взятых из постов в социальных сетях, в которых команда аннотаторов идентифицировала 2083 спэна с методами убеждения. Тексты накладываются на изображение — поэтому они содержат многочисленные разрывы строк — и многие из них написаны прописными буквами. Мы игнорируем изображения.

Вот пример:

Наших стариков призвали на войну, чтобы спасти жизни.\nНас призвали сесть на диван, чтобы спасти их жизни.\nМы можем это сделать.\n

Убеждение охватывает в этом тексте:

  • Преувеличение/преуменьшение: "Наши старики были призваны на войну, чтобы спасать жизни.\nНас призывают сесть на диван, чтобы спасти их жизни".
  • Призыв к страху/предубеждению: «война»
  • Апелляция к страху/предубеждению: «сядь на диван, чтобы спасти их».
  • Лозунги: «Мы можем это сделать».

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

Всего имеется 2083 интервала.

Глядя на таблицу, вы видите:

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

В целом:

  • Набор данных довольно маленький
  • Распределение по классам неравномерно. Большинство классов в наборе данных имеют менее 50 образцов, что мало. Только Загруженный язык, Обращение/маркировка и Smears имеют значительное количество экземпляров.

Создание корпуса

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

Наш набор данных уже разделен на части train, dev и test. Мы конвертируем каждый из этих файлов отдельно в двоичный файл .spacy, который используется в качестве входных данных для обучения.

Обучение модели

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

Как только наш корпус определен, мы можем начать обучение с помощью команды spacy train. Для удобочитаемости и повторяемости мы определяем это в проекте spaCy. Вы можете найти пример обычного конвейера, состоящего из шагов corpus, train и evaluate, в project.yml моей статьи «Обнаружение токсичных спанов с помощью Spacy».

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

Выбираем компонент spancat и генерируем три конфигурации:

  1. ЦП + эффективность (маленькая)
  2. ЦП + точность (большая)
  3. GPU (не различает эффективность и точность) (преобразователь)

В результате появятся модели маленькие, большие и трансформеры. Модель трансформатора spaCy по умолчанию — RoBERTa-base.

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

Предлагаемые интервалы

Для обнаружения спанов spaCy сначала создает набор возможных спанов для документа. Это делает компонент под названием Suggester.

Промежутки могут быть обнаружены только в том случае, если они сначала сгенерированы или «предложены».

SpaCy 3.3 поставляется с двумя реализациями Suggesters, обе основаны на генерации n-грамм, то есть промежутков из n токенов. ngram_suggester настроен со списком длин n-грамм, например. [1, 2, 3, 4]. ngram_range_suggester настроен с минимальным и максимальным диапазоном длин, например. min_size=1, max_size=4.

Следствие: промежутки, превышающие максимальную длину предполагаемых n-грамм, не будут обнаружены.

Именованные сущности обычно состоят всего из нескольких токенов. При длине токена 5 именованный объект «Берлин-Бранденбургский аэропорт Вилли Брандт» является относительно длинным. Однако в нашем текущем наборе данных мы имеем дело с интервалами, которые могут даже варьироваться между предложениями. Вот пример фрагмента из нашего набора данных категории Causal Simplification: «Детский Трамп не встретится с Пелоси по поводу коронавируса\nПотому что она ему не нравится». SpaCy разбивает этот фрагмент на 15 токенов, включая один для новой строки, где "won't" разбивается на ["wo", "n't"].

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

В приведенной ниже таблице мы принимаем 8 граммов, 16 граммов и 32 грамма как максимум для ngram-range-suggester.

Мы применяем некоторую разметку на основе произвольных ограничений:

  • ‹ 10 %: удовлетворительно (выделено серым цветом)
  • › 10% & ‹ 30%: причина для беспокойства (черный)
  • › 30% : плохо (красный)

Что мы видим:

  • Загруженный язык и Обозначение имени/маркировка удовлетворяют всем выбранным максимумам n-грамм
  • Для максимум 8 граммов только 6 техник имеют коэффициент сокращения меньше 30%.
  • Для максимум 16 граммов только 10 техник имеют снижение скорости меньше, чем 30%.
  • Для максимального веса 32 грамма есть еще 4 техники с коэффициентом сокращения от 10% до 30%.

Мы будем тренироваться с суггестерами с максимальным весом 16 грамм и 32 грамм. Мы будем игнорировать суггестор с максимальным весом 8 граммов, так как это выглядит бесперспективно, учитывая, что этот суггелер не может удовлетворительно охватить так много техник.

Примечание. В настоящее время экспериментально доступно больше функций подсказки, например. subtree_suggester, (существительное) chunk_suggester и sentence_suggester.

Полученные результаты

Глядя на баллы F1 для подсказчика n-грамм, установленного на максимум 16 и 32 токена, мы находим:

Как и ожидалось, модель большой (lg) работает лучше, чем модель small (sm), а модель transformer (trf) работает лучше, чем модель transformer (trf). крупная модель. Удивительно, однако, что маленькие и большие модели работают хуже с 32 граммами, чем с 16 граммами. Также мы обнаружили, что модель-трансформер работает значительно лучше с 32 граммами, чем с 16 граммами.

В таблице ниже приведены данные для оценки F1, использованной на приведенной выше диаграмме, а также показатели точности и полноты. Значения, которые уменьшились для 32-граммового подсказчика, отмечены красным.

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

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

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

Давайте посмотрим на баллы F1 для каждой отдельной техники убеждения:

Мы видим:

  • Обращение/маркировка и Загруженный язык прогнозируются лучше всего. Это понятно, учитывая, что для этих категорий у нас самое большое количество выборок, в то время как они также имеют в среднем наименьшее количество токенов на диапазон.
  • Прогноз для 32-граммовой модели для маленьких и больших моделей становится хуже или остается на одном уровне для этих двух методов по сравнению с 16-граммовой.
  • Примечательно, что маленькая модель улавливает две техники с 16 граммами, чего нет у других, но не улавливает их с 32 граммами.
  • Модели-трансформеры улавливают дополнительные приемы в 32-граммовых суггестрах, а другие модели — нет.
  • Модели-трансформеры лучше справляются даже с короткими интервалами обзыва/маркировки и загруженного языка при использовании 32-граммового подсказчика, чем при использовании 16-граммового подсказчика.

Повторяющиеся прогнозы

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

Я считаю это ошибкой SpanCategorizer.

Сравнение с другими системами обнаружения пролета

Показатели — это просто числа, если только они не служат для сравнения различных систем, их производящих. Поскольку мы эффективно реализовали подзадачу 2 задачи 6 SemEval 2021, мы можем сравнить наш результат с другими системами в таблице лидеров для этой задачи. SpaCy использует метрики на основе токенов, но упомянутый конкурс использует метрики на основе символов.

Использование наилучшей модели для получения прогноза для набора тестовых данных и оценка результата с помощью метода подсчета очков, предоставленного для конкурса, приводит к символьному F1, равному 0,449. Это поставило бы его на второе место в рейтинге Задачи 6, опубликованном в [1]!

Это побуждает к дальнейшим исследованиям, сравнивающим архитектуру модели spaCy-with-suggester с моделями, участвующими в Задаче 6.

Заключение

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

Рекомендации

[1] «SemEval-2021 Задача 6: Выявление приемов убеждения в текстах и ​​изображениях» (2021) Д. Димитров и др.

[2] “WVOQ at SemEval-2021 Task 6: BART for Span Detection and
Classification”
(2021) Cees Roele

[3] «Данные для SemEval-2021 Task 6: Обнаружение приемов убеждения в текстах и ​​изображениях», github

[4] «Мелкий анализ пропаганды в новостных статьях» (2019) Г. Да Сан Мартино и др.