Чтобы прочитать эту статью в формате документа, нажмите здесь.

ABSTRACT
NLP (обработка естественного языка) – это ветвь искусственного интеллекта, позволяющая компьютерам взаимодействовать с людьми посредством понимания человеческих (естественных) языков. Это исследование посвящено обучению модели NLP для использования в анализе настроений в отношении политики Big Tech путем извлечения и анализа реакций на статьи Big Tech, связанные с Reddit, с использованием PRAW, API-интерфейса веб-скрейпинга, специфичного для Reddit. Сообщения были взяты из сабреддита r/politics, форума, посвященного обсуждению американской политики. Я обнаружил, что существует несколько существенный перекос в сторону поддержки политики, направленной на ограничение влияния больших технологий.

МОТИВАЦИЯ
После слушаний Конгресса по крупным технологиям [1] многие активисты социальных сетей начали публиковать посты и изображения, направленные против крупных технологий, а также косвенно связанные с ними критики миллиардеров и Их роль в имущественном неравенстве. Тем не менее, в каждом посте всегда будет раздел противоречивых комментариев между теми, кто выступает против радикальных антимонопольных мер, и теми, кто их поддерживает. Это побудило меня задуматься об истинном мнении о рыночной власти Big Tech.

МЕТОДЫ
С помощью веб-скрапинга Reddit с помощью PRAW API из сабреддита r/politics был составлен список 100 лучших статей этого года о больших технологиях. Поскольку все эти статьи в общих чертах касались политики, направленной на подавление рыночной власти FAANG, использование НЛП для анализа комментариев верхнего уровня к каждому сообщению может обеспечить адекватное представление об отношении к крупным технологиям. Можно разумно предположить, что каждый комментарий имеет заметное отрицательное или положительное отношение к политике больших технологий, поскольку я использовал сабреддит, посвященный обсуждению американской политики.

И парсинг Reddits, и модель машинного обучения были закодированы в одном файле в этом Google Colab (код можно запустить в среде). Также предоставляются более подробные аннотации с кодом. Весь код машинного обучения был написан с использованием библиотеки TensorFlow.

Модель была обучена на наборе данных TensorFlow IMDb, наборе данных с открытым исходным кодом из 50 000 обзоров фильмов, разделенных на 25 000 обзоров, предназначенных для обучения, и 25 000 обзоров, предназначенных для проверки. Они были автоматически рандомизированы при инициализации. Предполагается, что этот набор данных применим к данным комментариев Reddit, поскольку обзоры и политические дискуссии часто состоят из аналогичного набора самоуверенных слов. Чтобы проверить это предположение, я вручную провел кластерную выборку и оценил 20% постов Reddit и их комментариев, чтобы позже сравнить с прогнозом алгоритма.

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

Эта модель в конечном итоге будет состоять из 1 356 841 обучаемого параметра (см. рис. 1). Была использована функция потерь binary_crossentropy, поскольку предполагалось разделить комментарии на отрицательную или положительную реакцию на каждую статью. Оптимизатор adam также использовался, поскольку он особенно хорошо работает с моделями НЛП. Используемая метрика была оставлена ​​как точность.

Во время тестирования модель была запущена в течение 10 эпох с учетом точности, val_accuracy, потерь и val_loss в разные эпохи. Изменения были отображены с помощью библиотеки matplotlib:

При сравнении графиков точности и потерь в зависимости от эпох (см. рис. 2) стало очевидно, что максимизация val_accuracy при минимизации val_loss потребует написания резкого обратного вызова. Поскольку значение val_accuracy примерно равно 0,93, accuracy, а val_loss достигло минимума, обучение должно было быть отменено при 0,93. точность. При точности выше 0,93 значение val_loss будет увеличиваться, что свидетельствует о риске переобучения, практически без увеличения val_accuracy с возможностью уменьшения val_accuracy. Таким образом, обратный вызов был написан, чтобы остановить обучение после достижения эталона точности 0,93. В зависимости от процесса обучения эталон может достигаться от 4 эпох (см. рис. 2. (а)) до 10 эпох (см. рис. 2. (б)).

ДАННЫЕ
После проверки каждого комментария Reddit на обученной модели каждому комментарию был присвоен прогнозируемый рейтинг. Их можно увидеть в коде Colab. Рейтинги алгоритма машинного обучения возвращали настроение по шкале от 0 до 1, где 0 — полностью негативное настроение, 0,5 — нейтральное, а 1 — полностью положительное настроение. Поплавки для оценок комментариев Reddit несколько трудно отличить от остального компьютерного жаргона; тем не менее, я объединил список общих оценок сообщений, полученных из средневзвешенных оценок комментариев в сообщениях, список, который можно было распечатать с относительной удобочитаемостью (см. Таблицу 1).

АНАЛИЗ ДАННЫХ
После индивидуальной оценки каждого комментария они были усреднены для каждого комментария в сообщении, чтобы создать рейтинг сообщения. Вес был основан на собранных чистых голосах за каждый комментарий, полезной функции на Reddit, где люди либо отрицали (-1), либо повышали (+1) комментарий. Для чистых голосов нет ограничения на отрицательные голоса, поэтому комментарии потенциально могут получить отрицательные голоса. Это позволит наказывать менее резонансные чувства и получать пользу от более уважаемых комментариев.

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

Поскольку список post_rating проходил через итерации, несколько точек данных были удалены — те, которые включали только 0, а не вложенный список (см. Таблицу 1). Вложенный список служил идентификатором, по которому сообщения могли быть оценены, с нулями, идентифицирующими сообщения, у которых не было комментариев, которые нужно очистить, и поэтому они будут исключены из окончательных вычислений.

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

Хотя алгоритм выдавал взвешенный рейтинг настроений для каждого поста, значение этого значения все еще оставалось неясным — он показывал только прогнозируемое отношение к статье, а не к самой Big Tech. Затем я просмотрел каждую из 100 статей и вручную просмотрел заголовки, чтобы подтвердить конкретную сторону проблемы, о которой писала статья. Поскольку каждая статья обычно предваряла политику против больших технологий, возвращаемые значения вычитались из 1. Вычитание позволяло сторонам поменяться местами, так что те, которые поддерживают ценности против больших технологий, были бы представлены на отрицательном (0) конце шкалы и эти противоположные ценности, направленные против больших технологий, будут представлены на положительном (1) конце (см. рис. 3 (b)).

После манипулирования данными алгоритм выдал примерно 0,4032 оценки настроений, что является существенным, но не слишком негативным отношением к рыночной власти крупных технологий.

ЗАКЛЮЧЕНИЕ
Из этого исследования можно сделать вывод, что в настоящее время существуют существенные анти-большие технологические настроения. Однако, если бы был способ эффективно преобразовать агрессивно заниженные данные в масштабированные противоположные настроения, исследование могло бы более точно отражать истинное отношение к большим технологиям в Америке.

Ограничением, на которое следует обратить внимание, является молодой левый политический уклон Reddit. В 2016 году Бартель [2] обнаружил, что 47% пользователей Reddit идентифицируют себя как либералы по сравнению с примерно 24% среди взрослого населения США. Следующим интересным шагом может стать изучение других форумов для сравнения настроений.

В качестве проверки работоспособности модели я вручную кластеризовал 20% сообщений перед запуском алгоритма, выбирая каждые 5 сообщений для оценки и усредняя оценку настроения примерно до 0,3031. Относительно в пределах диапазона предсказания модели 0,4032 был сделан вывод, что модель имеет достаточно точную, хотя и несовершенную аппроксимацию.

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

ССЫЛКИ
[1]: Канг, Сесилия и Дэвид Маккейб. Законодатели, объединенные гневом, набрасываются на лидеров крупных технологий. The New York Times, The New York Times, 29 июля 2020 г., www.nytimes.com/2020/07/29/technology/big-tech-hearing-apple-amazon-facebook-google. html.

[2]: Бартель, Майкл. Как президентская кампания 2016 года обсуждается на Reddit. Pew Research Center, Pew Research Center, 26 мая 2016 г., www.pewresearch.org/fact-tank/2016/05/26/how-the-2016-presidential-campaign-is-being- обсуждается на reddit/.

БЛАГОДАРНОСТИ
Я хотел бы поблагодарить Кевина Трики за его помощь в уточнении дизайна исследования, Фанг Ван за ее помощь в процессе проверки модели и опыт работы с данными, а также Кевина Чена за его понимание исследования.