В статье решается задача детектирования искусственных новостей. Используются классические методы машинного обучения, такие как метод опорных векторов и случайный лес, а также методы глубокого обучения — нейронная сеть LSTM, языковые модели BERT и XLNet.
Ключевые слова: машинное обучение, глубокое обучение, бинарная классификация, фейковые новости.
В последние годы произошел отток пользователей из более традиционных средств массовой информации, таких как газеты, радио и телевидение, в новые форматы: социальные сети, YouTube, подкасты, онлайн-журналы, новостные приложения. Благодаря Интернету появилась возможность мгновенного и бесплатного доступа к широкому спектру источников информации, не говоря уже о многочисленных услугах, позволяющих делиться новостями с миллионами людей по всему миру. Большой объем информации, к которой люди получают доступ, обычно не проверяется и считается достоверным, что приводит к появлению такой проблемы как дезинформация пользователей посредством публикации фейковых новостей.
Именно поэтому авторы работы поставили перед собой цель выявить метод машинного обучения, который бы наилучшим образом отличал фейковые новости от настоящих.
В процессе обзора существующих решений мы заметили, что в основном решения сосредоточены на анализе отношения пользователей к новости, публикации, посту. Но поскольку характеристики такие как лайки, количество комментариев и репостов, в наше время могут быть “накрученными”, то их использование в детектировании искусственных новостей может приводить к некорректным результатам, поэтому в нашей работе мы сосредоточились только на текстовой составляющей новости.
В данной работе использовался датасет, содержащий 20000 размеченных новостных статей. Была проведена предобработка данных, которая включала в себя удаление стоп-слов, чисел, иноязычных слов, знаков препинания и специальных символов. Это позволило не только уменьшить количество функций для обучения моделей, но и сосредоточиться на более значимом содержании новостей, так как сократилось огромное количество текста, не имеющего важного контекстуального значения.
Поскольку некоторые используемые методы не умеют работать со словами, необходимо использовать модели предварительной подготовки для кодирования текстов в числовые представления. Для этого использовались две модели: TF-IDF Vectorizer и Word2Vec. После получения числовых представлений текстов новостей, мы перешли к непосредственной реализации выбранных методов.
Первый метод — это метод опорных векторов, набор контролируемых алгоритмов машинного обучения, в которых создается гиперплоскость для разделения и классификации функций. Оптимальная гиперплоскость обычно рассчитывается путем создания опорных векторов на обеих сторонах гиперплоскости, в которых каждый вектор должен максимизировать расстояние между собой. Другими словами, чем больше расстояние между каждым вектором вокруг гиперплоскости, тем точнее будет граница принятия решения между категориями объектов. SVM требует определенных параметров, таких как тип ядра, C, максимальные итерации и т. д.. В нашем случае необходимо было определить оптимальное C, а также оптимальное ядро. Мы использовали K-кратную перекрестную проверку с K = 3. Был выполнен сеточный поиск типов ядра и C, чтобы дать наиболее точную модель SVM. Параметры, которые использовались для каждого ядра, были линейными и радиальными, в то время как значения, которые использовались для C, были 0,25, 0,5 и 0,75. После того как поиск по сетке для этих гиперпараметров был завершен, модель была оценена с использованием наиболее оптимальных гиперпараметров.
Следующий рассмотренный метод — это случайный лес, контролируемый алгоритм машинного обучения, который является одним из самых гибких и простых в использовании. Основная идея заключается в использовании большого ансамбля решающих деревьев, каждое из которых само по себе даёт очень невысокое качество классификации, но за счёт их большого количества результат получается хорошим. Алгоритм случайного леса требует 4 гиперпараметра для настройки, таких как количество деревьев в лесу (200, 400, 800); максимальная глубина дерева (1, 5, 9); минимальное количество выборок, которое должно быть в ведущем узле (2, 4); минимальное количество выборок, которое должно быть в листовом узле (5, 10). Минимальное количество выборок в каждом листовом узле имеет эффект сглаживания модели. Все параметры применяются для поиска в сетке, и, в конце концов, лучший набор параметров может быть определен, при помощи кросс-валидации по 3 блокам.
Далее была реализована нейронная сеть LSTM, особый тип рекуррентных нейронных сетей, который способен изучать долгосрочные зависимости. В LSTM блок работает как обычный рекуррентный блок, но имеет дополнительную ячейку памяти и различные вентили. Вентили помогают определить долгосрочные зависимости, управляя потоком данных внутри блока. Ячейка дает сети своего рода память и сохраняет долгосрочные зависимости. Для поиска в сетке применяются следующие параметры: оптимизатор (Adam, SGD), функция активации (RELU, linear, sigmoid), относительно небольшое количество скрытых слоев (0, 1, 2) и узлов (200, 400, 600) выбрано в качестве основы для поиска в сетке, поскольку это простая задача двоичной классификации и слишком большое количество может привести к переобучению. Из-за ограниченности вычислительных ресурсов поиск в сетке для LSTM делится на четыре последовательных этапа. Вместо того, чтобы выполнять поиск по сетке по всем гиперпараметрам одновременно, поиск по сетке сначала выполняется по количеству скрытых слоев, а все остальные гиперпараметры выбираются случайным образом. Затем выполняется поиск в сетке по количеству узлов в скрытом слое(ях), используя наилучшее количество скрытых слоев, найденных на шаге 1 и т. д.. Поиск по сетке завершается, когда все четыре шага завершены. На каждом этапе использовалась трехкратная перекрестная проверка.
В качестве четвертого метода была использована языковая модель BERT, созданная исследователями в Google основанная на трансформерах, которая решает проблему моделирования двунаправленного контекста, вводя новую задачу в форме моделирования языка масок. Идея проста: вместо предсказания следующего токена в последовательности, BERT заменяет случайные слова во входном предложении специальным токеном [MASK] и пытается предсказать, каким был исходный токен. В дополнение к этому, BERT использовал мощную архитектуру Transformer, чтобы включить информацию из всего входного предложения. Для реализации данного метода использовалась библиотека Simple Transformers которая позволяет быстро обучать и оценивать модели. Из-за ограничений вычислительной мощности, обучение проходило в течение трёх эпох с гиперпараметрами, рекомендованными Google (learningrate = 3e-5, а также batch_size = 32).
Последний реализованный метод — это языковая модель XLNet, авторегрессионная модель, которая вместо того чтобы полагаться на маскирование входных данных для обучения объединенного представления для левого и правого контекстов, как в BERT, изучает двунаправленный контекст путем максимизации ожидаемой логарифмической вероятности по всем перестановкам порядка факторизации. Поскольку перестановки могут сделать маркеры из левого и правого контекстов доступными с одной стороны позиций, XLNet преодолевает ограничения традиционных моделей авторегрессии, которые можно только обучить однонаправленно представлять контекст, а затем объединить их. Это также позволяет избежать потенциального расхождения в предтренировочных настройках, вызванного повреждением данных из-за маскирования токенов в BERT. Несмотря на перестановку, XLNet кодирует позиции, чтобы сохранить информацию о местоположении. XLNet использует механизм рекуррентности и схему относительного позиционного кодирования Transformer-XL для изучения зависимости сверх фиксированной длины и репараметризирует ее, чтобы устранить неоднозначность порядка факторизации. Модель реализована с помощью библиотеки Simple Transformers с использованием рекомендованных гиперпараметров (learningrate = 2e-5, batch_size = 32) в течении 3 эпох.
Ниже (табл.1 и табл.2) представлены результаты поиска лучших гиперпараметров и точности предсказания рассмотренных методов.
Таблица 1
Результаты поиска лучших гиперпараметров по сетке
SVM |
Random Forest |
LSTM |
|
TF-IDF |
Kernel = Linear C = 0.75 |
Max Depth = 9 Min_samples_leaf = 4 Min_samples_split = 5 N_estimators = 400 |
Activation = sigmoid Optimizer = Adam Hidden_layers = 2 Num_Neurons = 600 |
W2V |
Kernel = Linear C = 0.75 |
Max Depth = 9 Min_samples_leaf = 2 Min_samples_split = 10 N_estimators = 400 |
Activation = relu Optimizer = Adam Hidden_layers = 2 Num_Neurons = 600 |
Таблица 2
Точность предсказания (%)
SVM |
RF |
LSTM |
BERT |
XLNet |
|
TF-IDF |
94.58 |
87.64 |
93.89 |
— |
— |
W2V |
91.71 |
88.6 |
92.29 |
— |
— |
— |
— |
— |
— |
97.4 |
97.7 |
Среди двух моделей предварительной подготовки TF-IDF Vectorizer достигает в целом наилучшей производительности, а Word2Vec работает относительно плохо. Также можно заметить, что в целом нейронная сеть LSTM работает стабильнее, поскольку нейронные сети служат мощным универсальным аппроксиматором. Комбинация tf-idf vectorizer и SVM является лучшей среди всех методов, использующих модели предварительной подготовки, и показывает точность 94.6 %. Как и ожидалось, методы, основанные на языковых моделях BERT и XLNet, показали более высокую точность предсказания. Лучшие результаты показала модель XLNet, хотя стоит отметить, что время обучения модели BERT было значительно меньше.
Литература:
- Essentials of Deep Learning: Introduction to Long Short Term Memory, www.analyticsvidhya.com/blog/2017/12/fundamentals-of-deep-learning-introduction-to-lstm
- Juan Ramos. “Using tf-idf to determine word relevance in document queries”, December 2003, https://www.cs.rutgers.edu/~mlittman/courses/ml03/iCML03/papers/ramos.pdf
- Jason Brownlee. “How to Prepare Text Data for Machine Learning with scikit-learn”, August 2019, https://machinelearningmastery.com/prepare-text-data-machine-learning-scikit-learn/
- M. Chang et al J. Devlin. Bert: Pre-training of deep bidirectional transformers for language understanding, 2017.
- Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, Quoc V. Le. XLNet: Generalized Autoregressive Pretraining for Language Understanding, 2019.