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

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

Что такое фейк?

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

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

Решив, что вполне можно с этого и начать, я немедленно пошел по ссылкам на эти сайты с ложью, сатирой и прочей неправдой и тут же столкнулся со сложностями. Большая часть сайтов, находившихся в категории «лживые», публиковали отнюдь не только неправду. 

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

Кроме того, мне предстояло решить, как быть с сатирическими и пародийными изданиями — они фейковые или нет? Или, может, для них нужна своя категория?

Автоматический анализ языка

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

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

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

Неприятная работа

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

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

Я тонул. Я злился на вранье, которое читал. Я боролся с постоянным желанием добавлять в базу только те заметки, которые мне нравились. Которые были правильными. Но что вообще такое «правильно»?

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

Точность определения «фейк / не-фейк» оказалась в районе 70%. Поначалу я был в восторге, но, потестировав программу на новых текстах из интернета, которых не было в базе данных, я понял, что такая точность все равно слишком низка.

Начать сначала

Пришлось вернуться на старт. Что я делал не так? Спасибо Дэвиду, который в какой-то момент предположил, что лучших результатов можно добиться, если упростить задачу. Тогда я стал думать — а в чем же, собственно, заключается проблема, которую я хочу решить? И тут меня осенило.

Не надо пытаться определить и классифицировать фейковые новости — надо всего лишь уметь узнавать настоящие.

Дать определение качественной новостной заметке довольно просто — она описывает факты, не перегружает читателя информацией и практически не предлагает интерпретации. Кроме того, существует масса надежных источников качественных новостей.

Так что я вновь стал собирать базу данных, но на этот раз решил ограничиться бинарной оппозицией: «новости / не-новости». Не-новости включали в себя сатиру, авторские колонки, откровенные фейки и вообще все, что не подходило под определение новостей и не было написано по стандартам качественных информагентств.

Через несколько недель напряженной работы я отправил Дэвиду новую базу данных. Когда он написал мне, что точность распознавания оказалась больше 95%, я чуть не запрыгал от радости. Мы сумели найти паттерн, который позволял бы отличать новости ото всего остального в интернете! Кажется, успех!

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