Это первая публикация из серии, в которой я буду документировать свой прогресс в разработке классификатора фейковых новостей. Этот проект был завершен в качестве краеугольного камня для меня (@BrennanBorlaug), Саши Гандаварапу (@Sashihere), Тали Хаджаргарбаши и Умбер Сингх (@Umby) в программе магистра информатики и данных (MIDS) Калифорнийского университета в Беркли. . В этой серии я надеюсь осветить многие проблемы и решения, которые были приняты при разработке и развертывании текстового классификатора от начала до конца. В этом посте, в частности, будет подробно описана сама проблема и описаны усилия по сбору данных, которые потребовались для получения помеченного корпуса обучения. Вы можете сами попробовать классификатор на сайте http://www.classify.news.

Во-первых, немного предыстории

Для американцев 2016 год был годом напряженных политических и социальных дискуссий. Он увидел признание социальных сетей в качестве источника новостей и рост недоверия к политикам и основным СМИ. Фактически, Oxford Dictionaries даже выбрали постправду международным словом года 2016 года. Широкое распространение ложной информации в Интернете - явление не недавнее, но его предполагаемое влияние на президентские выборы в США в 2016 году привлекло внимание к этой проблеме. Технологические компании уже изучают подходы, основанные на машинном обучении, для решения этой проблемы. Ожидается, что Facebook представит функции и советы по пометке фейковых новостей во всем мире в ближайшем будущем.

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

Четыре наблюдаемых вида «фейковых новостей»:

1) Clickbait - шокирующие заголовки, предназначенные для увеличения количества кликов и увеличения дохода от рекламы. Часто эти истории сильно преувеличены или полностью ложны.

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

3) Комментарий / мнение - предвзятая реакция на текущие события. Эти статьи часто рассказывают читателю, как воспринимать недавние события.

4) Юмор / Сатира - статьи, написанные для развлечения. Эти истории не следует воспринимать всерьез.

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

Критические предположения

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

1) Сайты, перечисленные в базе данных OpenSources как заслуживающие / не заслуживающие доверия, были достоверными.

2) Каждая статья с выбранных сайтов имеет метку своего родительского сайта.

Выбор источников

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

1) Источник должен публиковать оригинальный контент, а не быть просто агрегатором статей из других источников.

2) Статьи, публикуемые источником, должны быть сосредоточены, в первую очередь, на темах новостей и политики США.

3) Источник должен сообщать о текущих событиях, ежедневно публикуя несколько статей.

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

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

Мы написали и запланировали скрипты парсинга веб-страниц на Python (используя библиотеку парсинга газетных статей и библиотеку schedule для планирования заданий), чтобы каждую ночь извлекать содержимое статьи из нашего списка источников. Были собраны только статьи, опубликованные за предыдущие 24 часа. Мы начали собирать статьи в середине февраля и продолжали до конца апреля. На момент публикации мы собрали 5 345 уникальных статей (1264 достоверных, 4081 недостоверных) для нашего корпуса.

Спасибо за внимание! В следующем посте этой серии я расскажу о выборе модели и ее характеристиках. Буду рад получить ваши отзывы и предложения в комментариях. ✌️🏽