Делать крутые вещи с данными

Вступление

Не за горами выборы 2020 года в США. Фейковые новости, публикуемые в социальных сетях, - ОГРОМНАЯ проблема во время выборов. Хотя часть фейковых новостей создается специально для искажения результатов выборов или для быстрого заработка за счет рекламы, дезинформированные люди также могут делиться ложной информацией в своих сообщениях в социальных сетях. Эти сообщения могут быстро стать вирусными. Большинство людей считают, что сообщения, которые нравятся многим другим, должны быть правдой.

Обнаружение фейковых новостей - непростая задача для модели машинного обучения. Многие из этих историй написаны очень хорошо. Тем не менее машинное обучение может помочь, потому что:

  • Он может определить стиль письма как похожий на тот, который был помечен как поддельный в его базе данных.
  • Версия событий в истории противоречит так называемой правде.

В этом блоге мы создаем детектор фейковых новостей с использованием моделей BERT и T5 Transformer. Модель T5 неплохо справляется с впечатляющей точностью 80% при обнаружении фактических фейковых новостей, опубликованных в районе выборов 2016 года.

Полный код Детектора фальшивых новостей опубликован на моем Github здесь.

В Deep Learning Analytics мы очень увлечены использованием науки о данных и машинного обучения для решения реальных проблем. Свяжитесь с нами, чтобы обсудить с нами проект НЛП.

Набор данных

Для этого блога мы использовали набор данных Kaggle - Узнаем о фейковых новостях. Он содержит новости и истории, отмеченные как фальшивые или предвзятые с помощью BS Detector, расширения Chrome Дэниела Сирадски. Детектор BS помечает некоторые веб-сайты как поддельные, а затем любые новости, полученные с них, помечаются как поддельные.

Набор данных содержит около 1500 новостей, из которых около 1000 - фейковые, а 500 - настоящие. Что мне нравится в этом наборе данных, так это то, что он содержит истории, снятые в последние дни выборов 2016 года, что делает его очень важным для обнаружения фейковых новостей во время выборов. Однако одна из проблем при маркировке фейковых новостей заключается в том, что необходимо потратить время и усилия на проверку истории и ее правильности. Применяемый здесь подход состоит в том, чтобы рассматривать все истории с веб-сайтов, помеченных как BS, как фальшивые. Так бывает не всегда.

Пример истории, отмеченной как реальная:

ed state  \nfox news sunday reported this morning that anthony weiner is cooperating with the fbi which has reopened yes lefties reopened the investigation into hillary clintons classified emails watch as chris wallace reports the breaking news during the panel segment near the end of the show \nand the news is breaking while were on the air our colleague bret baier has just sent us an email saying he has two sources who say that anthony weiner who also had coownership of that laptop with his estranged wife huma abedin is cooperating with the fbi investigation had given them the laptop so therefore they didnt need a warrant to get in to see the contents of said laptop pretty interesting development \ntargets of federal investigations will often cooperate hoping that they will get consideration from a judge at sentencing given weiners wellknown penchant for lying its hard to believe that a prosecutor would give weiner a deal based on an agreement to testify unless his testimony were very strongly corroborated by hard evidence but cooperation can take many forms  and as wallace indicated on this mornings show one of those forms could be signing a consent form to allow   the contents of devices that they could probably get a warrant for anyway well see if weiners cooperation extends beyond that more related

И фальшивая история:

for those who are too young or too unwilling to remember a trip down memory lane \n  debut hillary speaks at wellesley graduation insults edward brooke senates lone black member \n  watergate committee says chief counsel jerry zeifman of hillarys performance she was a liar she was an unethical dishonest lawyer she conspired to violate the constitution the rules of the house the rules of the committee and the rules of confidentiality \n  cattlegate as wife of arkansas governor she invests  in cattle futures makes  \n  whitewater clintons borrow money to launch whitewater development corporations several people go to prison over it clintons dont \n  bimbo eruptions bill and hillary swear to steve kroft on  minutes bill had nothing to do with gennifer flowers \n  private investigators we reached out to them hillary tells cbs steve kroft of bills women i met with two of them to reassure them they were friends of ours they also hire pis to bribe andor threaten as many as twodozen of them \n  health care reform hillary heads secret healthcare task force sued successfully for violating open meeting laws subsequent plan killed by democraticcontrolled house \n  ....

В рассказах в среднем 311 слов, а в некоторых рассказах более 1000 слов.

Модельное обучение

Для этого упражнения мы обучили две модели из HuggingFace - 1. BERT с головкой Sequence Classification и, во-вторых, модель трансформатора T5 с головкой условной генерации. Модель BERT показала точность 75% при обнаружении фейковых новостей на проверочном наборе, тогда как модель T5 смогла достичь точности 80%. Итак, мы сосредоточим оставшуюся часть блога на том, как можно обучить модель Т5.

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

Преобразование нашей проблемы классификации текста в текстовый формат

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

Для вводимого текста мы устанавливаем максимальную длину токена равной 512. Если истории меньше 512, то в конец будет добавлен токен ‹PAD›. Если истории больше, они будут обрезаны. Для вывода длина токена устанавливается равной 3. Фрагмент кода для этого ниже. Вы можете найти полный код на моем Github здесь.

source = self.tokenizer.batch_encode_plus([input_], max_length=self.input_length, 
                                                padding='max_length', truncation=True, return_tensors="pt")
        
targets = self.tokenizer.batch_encode_plus([target_], max_length=3, 
                                                     padding='max_length', truncation=True, return_tensors="pt")

Определение класса модели T5

Затем мы определяем класс тонкой настройки модели T5. Модель прямого прохода такая же, как и у других моделей Transformer. Поскольку T5 представляет собой тексто-текстовую модель, в модель передаются токенизированные входные данные и целевые объекты, а также их маска внимания.

def forward(self, input_ids, attention_mask=None, decoder_input_ids=None, decoder_attention_mask=None, lm_labels=None):
        return self.model(
                input_ids,
                attention_mask=attention_mask,
                decoder_input_ids=decoder_input_ids,
                decoder_attention_mask=decoder_attention_mask,
                labels=lm_labels
            )

На этапе генерации выход декодера ограничен длиной токена 3, как показано ниже:

def _generative_step(self, batch) :
        
        t0 = time.time()
        # print(batch)
        inp_ids = batch["source_ids"]
        
        generated_ids = self.model.generate(
            batch["source_ids"],
            attention_mask=batch["source_mask"],
            use_cache=True,
            decoder_attention_mask=batch['target_mask'],
            max_length=3

        )
        preds = self.ids_to_clean_text(generated_ids)
        target = self.ids_to_clean_text(batch["target_ids"]

Модель измеряет оценку точности, проверяя, совпадает ли сгенерированная метка - поддельная / настоящая с фактической меткой или нет.

Модельное обучение и результаты

T5 small был обучен в течение 30 эпох с использованием пакета размером 8. Обучение модели заняло около часа. Веса и смещения использовались для мониторинга тренировок. Онлайн-код Github имеет wandb, интегрированный в Pytorch Lightning для обучения.

Я тренировал T5 small на токенах длиной 512 и 1024. Обе модели работали примерно одинаково и получили оценку точности около 80%.

Тестирование T5 на наборе val показывает, что модель обладает впечатляющей способностью обнаруживать фейковые новости.

Input Text: classify: russias most potent weapon hoarding gold shtfplancom this article was written by jay syrmopoulos and originally published at the free thought project editors comment he who holds the gold makes the rules fresh attempts at containing russia and continuing the empire have been met with countermoves russia appears to be building strength in every way putin and his country have no intention of being under the american thumb and are developing rapid resistance as the us petrodollar loses its grip and china russia and the east shift into new currencies and shifting
world order what lies ahead it will be a strong hand for the countries that have the most significant backing in gold and hard assets and china and russia have positioned themselves very
well prepare for a changing economic landscape and one in which selfreliance might be all we have russia is hoarding gold at an alarming rate the next world war will be fought with currencies by jay syrmopoulos with all eyes on russias unveiling their latest nuclear intercontinental ballistic missile icbm which nato has dubbed the satan missile as tensions with the us increase moscows most potent weapon may be something drastically different the rapidly evolving geopolitical weapon brandished by russia is an ever increasing stockpile of gold as well as russias native currency the
ruble take a look at the symbol below as it could soon come to change the entire hierarchy of the international order potentially ushering in a complete international paradigm shift...

Actual Class: Fake

Predicted Class from T5: Fake

Заключение

Т5 - классная модель. Это упростило точную настройку трансформатора для решения любой проблемы НЛП с достаточным объемом данных. Этот блог показывает, что T5 может выполнять впечатляющую работу по обнаружению фейковых новостей.

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

В Deep Learning Analytics мы очень увлечены использованием машинного обучения для решения реальных проблем. Мы помогли многим компаниям внедрить инновационные решения на основе искусственного интеллекта. Свяжитесь с нами через наш сайт здесь, если вы видите возможность сотрудничества.

использованная литература