СМИ. Это раздельный вопрос в Америке: СМИ и газеты по-разному освещают ключевые темы из-за скрытых предубеждений в журналистике. Я слышал о неявных предубеждениях, но что это такое? По сути, статьи, написанные крупными газетными организациями, часто отражают унаследованную от авторов точку зрения, особенно потому, что новостные организации, как правило, предпочитают писателей из определенной области политического спектра. Нынешний президент США Дональд Дж. Трамп постоянно создает разные точки зрения: консервативные источники с большей вероятностью сообщат о действиях Трампа в благоприятной форме, в то время как либеральные СМИ склонны изображать действия Трампа в негативном свете. Итак, очевидно, что средства массовой информации очень разногласны и предвзяты по ключевым моментам - но что, если бы мы могли напрямую выявить предвзятость в любой новостной статье?

Данные. Существует масса данных, свидетельствующих о предвзятости в СМИ. Я обнаружил, что в базе данных газет ProQuest есть тысячи статей из многих новостных источников о Дональде Трампе. Я также понял, что могу разумно определить общую политическую склонность достаточно крупной новостной организации, используя Media Bias / Fact Check, крупнейший веб-сайт, который выявляет политические пристрастия основных источников новостей. Имея такой большой объем данных, есть один отличный способ проверить, смогу ли я проанализировать статьи на предмет этих предубеждений - машинное обучение.

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

Ячейки LSTM. Одна конкретная нейронная сеть, которая представляет собой действительно революционный способ поиска закономерностей, - это рекуррентная нейронная сеть (RNN) с длительной краткосрочной памятью (LSTM) из этой статьи, которая состоит из нескольких отдельные ячейки LSTM. Но как это работает? В основном это работает с использованием специальных вентилей, позволяющих каждому уровню LSTM получать информацию как из предыдущих, так и из текущего уровня. Данные проходят через несколько шлюзов (например, ворота забывания, входные ворота и т. Д.) И различные функции активации (например, функция tanh) и передаются по ячейкам LSTM. Основное преимущество этого заключается в том, что он позволяет каждой ячейке LSTM запоминать шаблоны в течение определенного времени; по сути, они могут запоминать важную информацию и забывать несущественную информацию. Это очень полезно при анализе текста (например, слово и не так актуально для политической предвзятости, как такое напористое слово, как свобода). Теперь, когда у меня есть план как для данных, так и для модели, я наконец могу приступить к работе.

Сбор данных. Когда мой план был готов, я приступил к настоящей работе. Я вернулся к базе данных ProQuest Newspaper Database и загрузил 5 000 статей на каждый источник новостей для четырех источников новостей, всего 20 000 статей. Эти источники новостей - New York Times, CNN, Wall Street Journal и New York Post (перечислены от самых либеральных до самых консервативных, согласно определению Media Bias / Fact Check). К счастью для меня, статьи загружаются в один файл для каждого источника, поэтому я просто пометил четыре коллекции в соответствии с их источником новостей (от 0 до 3). Это ведь не может быть так просто? Совершенно верно! Проблема в том, что моя нейронная сеть принимает числа, а не слова ...

Вложения слов. Чтобы добавить слова в мою модель, я должен преобразовать каждое слово в каждой статье в векторное представление с помощью метода встраивания слов. Для этого проекта я использовал метод GloVe из этой статьи, который преобразует слова в 300-мерный вектор, так что похожие слова находятся близко друг к другу в этом 300-мерном пространстве. Но как можно представить слово числами? Итак, GloVe представляет собой слово с 300 определенными характеристиками. Думайте об этом как об особенностях слова (например, при использовании GloVe векторные представления (мужчина минус женщина) равны (король минус королева), потому что в обоих случаях почти все функции одинаковы для обоих, кроме пола). Теперь, когда слова представлены в числовом виде, я могу перейти к некоторым финальным настройкам моих данных.

Предварительная обработка данных. Статьи разбиты на разделы в зависимости от разрывов абзацев в исходном тексте. Зачем ты это сделал? Модели сложно анализировать всю статью сразу (проблемы с ОЗУ), поэтому лучший способ - просмотреть каждое предложение и усреднить результаты каждого предложения, чтобы получить прогноз для статьи. Я взял по 1000 статей из каждого источника для использования в качестве тестового набора (разделение на 20%), а оставшиеся данные были перетасованы в обучающий набор, где 5% этого обучающего набора использовались в качестве набора для проверки. Наконец, я могу подготовиться к написанию кода для моей модели глубокого обучения!

Модель глубокого обучения. Я сосредоточился на использовании рекуррентной нейронной сети с кратковременной памятью, которая позволяет нейронной сети определять важную информацию в данных и предсказывать происхождение статьи на основе найденных ею атрибутов. Я также решил добавить несколько слоев из этой статьи, чтобы убедиться, что моя модель не слишком подходит для обучающих данных (хотя это звучит как миссия выполнена, но на самом деле это делает модель в целом менее точной). Я использовал Keras с бэкэндом Tensorflow в Python 3.6 для создания своей модели. Слои - это входной слой, слой LSTM, слой исключения, слой LSTM, слой исключения, плотный слой и выход softmax.

Обучение. Я тренировал свою модель за 10 эпох. Почему 10 эпох? Это было определено методом ранней остановки, когда модель автоматически прекращает обучение, когда точность проверки перестает расти - это просто оказалось около числа. Я использовал довольно стандартные гиперпараметры: размер пакета 1024, категориальная функция кросс-энтропийной потери, AdamOptimizer и функция активации ReLu / softmax.

Результаты. Теперь самое интересное! Я обнаружил, что хочу проверить способность своей модели делать две вещи: предсказывать источник статьи и предсказывать политическую предвзятость статьи. Я измерил способность предсказывать источники новостей по шкале F1 и бинарной точности; Я проанализировал возможность обнаружения политической предвзятости с помощью n-граммов и визуализации t-SNE. В следующих параграфах подробно описывается каждый анализ модели.

Оценка F1 (точность). Модель получила оценку F1 (то есть точность для этого типа задач) 77,20%. Откуда мне знать, что модели не просто повезло? Я провел тест на статистическую значимость этого числа и получил значение p, равное 0. По сути, существует 0% вероятность того, что моя модель случайно предсказала это точно по счастливой случайности. Согласитесь, что модель хорошая.

Двоичная точность. Я также проверил двоичную точность модели для каждого класса, используя площадь под кривой рабочих характеристик приемника (ROC); это дало мне двоичную точность более 94% для всех классов. Что это означает? По сути, это означает, что модель довольно хорошо умеет различать происхождение статей.

N-граммы. Сначала я провел тест n-граммов - по сути, я взял все возможные последовательности из 7 слов из тестового набора, так что одно из слов должно быть «Трамп» (это дает мне предложение, которое, вероятно, является предвзятым) и вернул эти фразы в модель. Я выбрал фразы с наивысшей степенью достоверности, которые можно рассматривать как способ показать, какие фразы модель ассоциировала с каждым источником новостей. Модель смогла связать либеральные источники с негативно сформулированными фразами о Дональде Трампе (как правило, либеральные источники должны были бы сообщать о Трампе), а консервативные источники с позитивно сформулированными фразами о Дональде Трампе (как правило, консервативных источников можно было бы ожидать. сообщить о Трампе).

Визуализация t-SNE. Звучит сложно, в чем дело? Вернемся немного назад - результаты моей модели четырехмерны, поскольку существует четыре класса. Я не могу это построить, поэтому собираю достоверные данные из 4-мерного выходного слоя и изменяю его размер с помощью метода визуализации t-распределенного стохастического вложения соседей (t-SNE). Это означает, что четырехмерные прогнозы преобразуются в двухмерные точки. Я нанесу эти точки и раскрасьте их на основе их истинного источника новостей (синий для либеральных источников и красный для консервативных источников). В общем, этот метод позволяет мне строить прогнозы модели и видеть, как они распределяются. Я обнаружил, что модель может сгруппировать вместе либеральные источники и консервативные источники. Эта группировка достаточно значительна, чтобы можно было провести довольно четкую границу между либеральными и консервативными источниками. Ух ты! Это похоже на то, как у модели есть свой собственный политический спектр статей! Интересно, что вы подняли этот вопрос, я как раз собирался сказать и это - очень здорово видеть, как модель анализирует эти статьи на основе предубеждений. ! Но реальный вопрос: как мы можем применить это открытие?

Приложения. Одно из непосредственных применений этого - встраивание модели в новостное приложение, такое как Apple News. Это дало бы пользователю возможность в реальном времени анализировать каждую статью в своей ленте новостей и проинформировать их о любых потенциальных предвзятостях (например, «эта статья имеет 43% вероятность умеренно либерального предубеждения»), прежде чем им даже придется нажимать на что-либо! Более косвенным расширением этого проекта было бы встраивание модели в веб-браузер в качестве расширения. С некоторыми изменениями это будет означать, что модель может анализировать веб-сайты на предмет различных форм предубеждений (например, выявления веб-сайтов, которые могут рекламировать продукт) наряду с политическими предубеждениями. Это дало бы пользователю беспрецедентный контроль над тем, какую информацию он хочет получать, и позволило бы избежать предвзятой информации. Но каковы длительные сроки этого проекта? Чтобы получить наиболее широкое применение из этого проекта, я бы использовал эту модель для создания огромной базы данных предложений из различных частей политического спектра. Затем я бы обучил CycleGAN или другую генеративную нейронную сеть, чтобы она могла преобразовывать предвзятое предложение в полностью беспристрастную версию того же предложения с тем же значением. После этого основное применение - применение модели обнаружения для поиска предвзятых предложений, а затем применение генеративной модели для превращения каждого предвзятого предложения в объективное. Что? Это будет расширение браузера, которое не только сообщит вам о предвзятости, но и даст вам возможность читать тот же веб-сайт с УДАЛЕННЫМИ ПРЕДВИЖЕНИЯМИ! Сумасшедший.

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

Возможно, однажды мы сможем полностью контролировать получаемую информацию.

Часто задаваемые вопросы. Я отправился на международную выставку Intel в области науки и техники, чтобы представить этот проект - вот некоторые из вопросов, которые мне задавали судьи, которые вы, возможно, тоже захотите узнать.

  • Насколько важен ваш проект, если я могу просто зайти на упомянутый вами веб-сайт Media Bias / Fact Check, чтобы найти предвзятость? Сайт ограничен тем, что является ручным и содержит только общий обзор крупных медиа-компаний. Моя модель умеет смотреть статьи индивидуально. Так, например, веб-сайт может сказать, что статья CNN, которая на самом деле консервативна, немного либеральна, потому что она обобщает, но моя модель может проанализировать статью и определить ее консервативность, даже если она от CNN. Модель также имеет преимущества в случае небольших новостных организаций, таких как те, что представлены в Facebook, которые могут рекламировать определенную повестку дня. Эти организации не могут быть проверены на веб-сайте, потому что они маленькие, но модель все еще может анализировать их сообщения на предмет предвзятости.
  • А другие модели пробовали? Недавно я увидел, что сверточные нейронные сети также хорошо справляются с языковыми задачами, но решил придерживаться стандарта использования рекуррентных нейронных сетей. Я обязательно буду пробовать больше моделей в будущем, таких как BERT.
  • Что вы будете делать дальше? Я бы, вероятно, добавил нейтральный источник и собрал более широкий спектр политических предубеждений, чтобы моя модель была более обширной. Больше приложений!
  • Откуда вы знаете, что модель определяет источник на основе политической предвзятости, а не что-то еще, подобное теме статьи? На н-граммах нет четкой темы, и они почти всегда имеют политическую предвзятость как единственную идентифицируемую информацию. Это означает, что модель, похоже, рассматривает политическую предвзятость как главный индикатор источника и что модель должна уметь это делать, чтобы быть точной.