Эта проблема

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

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

Вступление

Вдохновение

Идея преобразования текста в изображение изначально навеяна этим постом Глеба Эсмана об обнаружении мошенничества. В этом подходе они преобразовали различные точки данных, такие как скорость движения мыши, направление, ускорение и т. Д., В цветное изображение. Затем на этих изображениях была запущена модель распознавания изображений, которая дала очень точные результаты.

Данные

Данные, используемые для всех экспериментов, являются подмножеством набора данных Fake News Джорджа Макинтайра. Он содержит около 1000 статей фейковых и реальных новостей вместе взятых.

Text2Image с расстояния 20000 футов

Давайте сначала обсудим Text2Image на высоком уровне. Основная идея состоит в том, чтобы преобразовать текст во что-то, что мы можем построить как тепловую карту. Подождите, а что это такое? Значения TF-IDF каждого слова. Частота термина - обратная частота документа (TF-IDF) - это статистический метод определения важности слова по отношению к другим словам в документе. После базовой предварительной обработки и расчета значений tf-idf мы строим их в виде тепловых карт в логарифмическом масштабе, используя некоторую степень фильтрации по Гауссу для гладкости. После того, как тепловые карты построены, мы используем реализацию CNN в fast.ai и пытаемся различать настоящие и поддельные тепловые карты. В итоге мы получили стабильную точность около 71%, что является отличным началом для этого нового подхода. Вот небольшая блок-схема нашего подхода

Еще не совсем понятно? Читать дальше.

Text2Image с земли

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

Данные в нижнем регистре, все специальные символы удалены, а текст и заголовок объединены. Слова, встречающиеся более чем в 85% документа, также удаляются. Кроме того, список слов явно избегается (стоп-слова). Используется стандартный список стоп-слов, в основном повторяющихся неинформативных слов. Изменение игнорируемых слов, особенно для фальшивых новостей, может стать областью для исследования в будущем, особенно для выявления стиля написания фальшивых новостей.

Расчет TF-IDF

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

Умножая их вместе, мы получаем tf-idf. Мы делаем это итеративно для каждого документа.

Обработка значений TF-IDF

Для каждого документа извлекается 121 слово с наивысшими значениями TF-IDF. Эти слова затем используются для создания массива 11x11. Здесь количество выбранных слов может действовать как гиперпараметр. Для более коротких и простых фрагментов текста можно использовать меньше слов, в то время как большее количество слов можно использовать для представления более длинного и сложного текста. Эмпирическим путем было установлено, что размер 11x11 был идеальным для этого набора данных. Вместо того, чтобы располагать значения TF-IDF в порядке убывания их величины, они отображаются в соответствии с их положением в тексте. Значения TF-IDF отображаются таким образом, поскольку они более репрезентативны для текста и предоставляют более богатые возможности для обучения модели. Поскольку одно слово может встречаться в тексте несколько раз, учитывается его первое появление.

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

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

Одним из недостатков является большое количество переобучений при обучении модели. Это можно объяснить отсутствием каких-либо дополнений данных, поскольку в настоящее время никакие способы увеличения данных не кажутся жизнеспособными для этого варианта использования. Следовательно, для сглаживания графиков была использована фильтрация по Гауссу для всего набора данных. Хотя это немного снизило точность, наблюдалось значительное уменьшение переобучения, особенно на начальных этапах обучения.

Заключительные сюжеты

Окончательные тепловые карты имеют размер 11 x 11 и построены с использованием морских данных. Поскольку оси X и Y, а также цветная полоса не передают никакой информации во время тренировки, мы удалили их. Используемая тепловая карта - «плазменная», поскольку она показывает идеальные цветовые вариации. Экспериментирование с различными цветовыми сочетаниями может стать областью, которую стоит изучить в будущем. Вот пример того, как выглядят финальные сюжеты.

Обучение нашей модели

Модель обучается на resnet34 с использованием fast.ai. Всего было использовано 489 фейковых статей и 511 реальных статей. Между поездом и тестовой группой использовалось стандартное разделение 80:20 без увеличения данных. Весь используемый код можно найти здесь.

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

Выводы

После 9 эпох модель имела точность более 70%. Несмотря на то, что новый подход далеко не самый современный для этого набора данных, он кажется многообещающим. Вот пара наблюдений, сделанных во время тренировочного процесса -

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

Будущая работа

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

Если вы заинтересованы в изучении дополнительных возможностей Text2Image или хотите поговорить об этом, вы можете найти меня в Twitter @ Abhijithhere_ или посетить мою личную страницу