В этом посте мы опишем структуру, похожую на трансформатор, которую мы реализовали в Umayux Labs (@UmayuxLabs), чтобы предсказать, было ли предложение юмористическим или нет, используя испанский корпус из HAHA @ IberLEF2019 набор данных. Мы основали нашу реализацию на этом руководстве по преобразованию Tensorflow 2.0.

Набор данных

Набор данных, используемый для обучения и тестирования модели, состоит в общей сложности из 24000 аннотированных твитов, полученных из набора данных HAHA 2019 года. Вкратце, оценка и тегирование твитов производились с использованием стратегии голосования, при которой пользователей просили пометить твиты как юмористические (1) или нет (0) и поставить оценку от 1 (не смешно) до 5 (отлично). .

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

Структура набора данных описана в таблице ниже:

Для получения более подробной информации о наборе данных перейдите по этой ссылке.

Модель глубокого обучения

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

Кодировщик

  • Входные данные кодировщика состоят из агрегации вложенных входных данных и позиционного кодирования.
  • Тело кодировщика состоит из многоголового внимания, за которым следуют нормализация, прямая связь и второй слой нормализации.
  • Выпадение используется на каждом выходе каждого из слоев перед нормализацией.
  • Веса внимания также предоставляются на выходе кодировщика.

Уровень классификации

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

Обучение

Для обучения и тестирования модели набор данных HAHA сначала был разделен на наборы для обучения (60%), тестирования (20%) и проверки (20%).

  • Поезд: 15360
  • Тест: 3840
  • Вал: 4800

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

Результаты

Наша модель достигла точности 0,83 и 0,83 средневзвешенного показателя F1 на проверочном наборе.

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

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

Как показано на рисунке выше, модель смогла разделить два класса интересов (юмор / не юмор) и сгруппировать их в три доминирующих кластера. Однако одна из групп содержала смесь юмористических и не юмористических твитов с правильными и неправильными прогнозами. При анализе этого кластера мы обнаружили, что некоторые из этих твитов не помечены должным образом. Следовательно, это может повлиять на производительность нашей модели (и других). В целом курирование набора данных выглядит правильным.

Понимание модели со вниманием

Топология трансформатора, используемая в нашей модели, позволяет нам определить, куда указывает нейронная сеть при прогнозировании юмористических или неюмористических текстов. Наша модель состоит из преобразователя кодировщика, в котором случайным образом игнорируются 10% входных слов, он состоит из 12 заголовков, 8 уровней кодировщика, всего 20 000 токенов и 512 измерений модели. Длина каждого твита ограничена 40 словами. Поэтому внимание состоит из матрицы 12х40х40. Вот несколько примеров внимания:

Внимание к юмористическим твитам

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

Внимание к твитам без юмора

Следующие несколько примеров показывают, как модель обращает внимание на неюмористические твиты. Интересно, что в отличие от юмористических твитов, глава № 12 не обращает внимания на первое предложение. Но, похоже, глава № 4 обращает внимание на первое предложение для неюмористических твитов. Также обратите внимание, что внимание № 3 и № 12 обращайте внимание на последние слова в предложениях.

В общем, для юмористических твитов кажется, что первое предложение является ключевым для определения того, является ли твит смешным или нет (как видно на уровне внимания № 12). Поскольку большинство слов было разделено на более мелкие граммы, невозможно определить вес каждого отдельного слова. Однако результаты ясно показывают, что голова внимания № 12 фиксирует топологию предложения. Обратите внимание, что для неюмористических твитов этот заголовок отбрасывает первое предложение и имеет вес над средним и последним предложениями.

Случаи, когда модель не работает должным образом

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

В следующем примере твит, помеченный как юмористический, модель пометила как неюмористический. Однако этот твит также можно считать не смешным и даже не оскорбительным. Например, в этом предложении слова «sean tontas» «они тупые» могут быть сочтены некоторыми людьми несмешными и оскорбительными.

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