Buscar

Como construir uma rede neural para detectar noticias falsas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

Nome: Gabriel Miller Silone 
 
Como construir uma rede neural recorrente para detectar 
notícias falsas 
Em um mundo que está se tornando cada vez mais conectado, é mais 
fácil espalhar mentiras. Acontece que, com um conjunto de dados que consiste 
em artigos de notícias classificados como confiáveis ou não, é possível detectar 
notícias falsas. Neste tutorial, vamos construir uma rede neural com convoluções 
e células LSTM que oferece um desempenho top 5 no desafio Kaggle fake news. 
 
O que estamos tentando detectar? 
Como você pode ver no mapa acima, notícias falsas é um problema em 
todo o mundo. A definição de notícias falsas na China provavelmente será muito 
diferente da definição no Oriente Médio ou nos EUA. Os dados determinam qual 
definição de notícia falsa é detectada. O conjunto de dados que estamos usando 
neste exemplo é do Kaggle, um site que hospeda competições de aprendizado 
de máquina. O conjunto de dados consiste em artigos de notícias com um rótulo 
confiável ou não confiável. Se uma notícia não for confiável, será considerada 
uma notícia falsa. 
 
Um exemplo de um artigo de notícias falso do conjunto de dados: 
 
As 5 principais teorias da conspiração que foram comprovadas como 
verdadeiras porque Donald Trump concorreu à presidência todo ano eleitoral, 
acusações de favoritismo na mídia vão e vêm, isso é tão antigo quanto a própria 
República. Mas este ano, os teóricos da conspiração alegaram que o MSM não 
estava apenas no bolso de Crooked Hillary, mas ativamente trabalhando para 
garantir sua eleição com pesquisas falsas, histórias falsas e concluio 
desenfreado e ilegal com o candidato. Obrigado, WikiLeaks (…) Eu sei onde 
estão os e-mails excluídos de Hillary Clintons e como obtê-los legalmente. 
 
E um exemplo de um artigo confiável do conjunto de dados: 
 
O treinamento de primavera da Major League Baseball está em 
andamento novamente, e a perspectiva de shortstop do New York Mets, Luis 
Guillorme, já está causando uma boa impressão no clube da grande liga. Quinta-
feira, o shortstop do Miami Marlins, Adeiny Hechavarria, balançou e perdeu o 
taco. O morcego voou em direção ao abrigo do Mets e os jogadores se 
esforçaram para sair do caminho. Guillorme, no entanto, não saiu de seu lugar 
e, em vez disso, pegou o morcego que voou por sua cabeça. 
 
Como funciona o algoritmo 
Texto vem em vários formatos. O texto dos tweets do Twitter pode ser 
muito confuso. Artigos de notícias podem usar muitas linhas em branco. O 
primeiro passo em cada tarefa de Processamento de Linguagem Natural é limpar 
o texto, removendo linhas em branco e pontuação desnecessária. 
A próxima etapa é transformar as palavras em números, porque os 
computadores não podem ler palavras. Existem várias maneiras de fazer isso. A 
maneira mais fácil é atribuir números para cada palavra única e, em seguida, 
usar isso como entrada para um modelo. Portanto, a frase “No verão passado, o 
cantor fez uma turnê pela costa oeste dos EUA” se tornaria [1 2 3 4 5 3 6 7 3 8]. 
Como você pode ver, cada palavra única recebe um novo número. Outro método 
mais comum é usar embeddings de palavras pré-treinadas. Em vez de converter 
todas as palavras em um número, as palavras são convertidas em uma 
representação de tensor. Portanto, quando uma incorporação 4-dimensional é 
usada, cada palavra (única) é convertida em uma combinação de quatro 
números. A incorporação de palavras funciona tão bem porque a semântica das 
palavras é capturada, as palavras com o mesmo significado têm valores tensores 
semelhantes e as diferenças com outros grupos de palavras também são 
semelhantes. O exemplo abaixo mostra isso. Como você pode ver, todas as 
palavras têm valores Y maiores quando a palavra é feminina. 
 
 
Depois que as palavras são convertidas em embeddings de palavras, as 
palavras são alimentadas em uma rede neural. Essa rede neural consiste em 
várias camadas. A primeira camada é uma camada convolucional. Uma 
convolução é um filtro que pode extrair recursos dos dados. Na detecção de 
imagens, por exemplo, convoluções podem ser usadas para detectar bordas ou 
formas. No Natural Language Processing, as convoluções também podem 
melhorar o desempenho. O exemplo abaixo mostra um filtro que extrai relação 
entre duas palavras que possuem uma palavra no meio. Em cada etapa, o filtro 
é multiplicado pelos valores de incorporação da palavra. Os valores de filtro de 
1 vezes os valores de incorporação de palavras resultam em valores de 
incorporação de palavras, enquanto os valores de filtro de 0 resultam em 0. 
 
 
 
 
 
 
 
 
 
 
 
 
 
A próxima camada é uma camada de pooling máximo. Essa camada itera 
sobre os tensores e assume o valor mais alto. Desta forma, o espaço do recurso 
é compactado. Esta etapa garante que os recursos importantes sejam mantidos, 
enquanto o espaço vazio é descartado. 
 
 
 
A próxima camada é a Long Short Term Memory (LSTM). Uma unidade 
LSTM comum é composta de uma célula, uma porta de entrada, uma porta de 
saída e uma porta de esquecimento. A célula se lembra dos valores em 
intervalos de tempo arbitrários e as três portas regulam o fluxo de informações 
para dentro e para fora da célula. Mais sobre as camadas LSTM podem ser 
encontradas aqui. 
A última camada antes que a previsão seja feita é uma camada totalmente 
conectada. Esta é uma camada de rede neural regular onde todos os nós estão 
conectados uns aos outros. A arquitetura geral da rede é semelhante a esta: 
 
 
 
 
 
 
 
 
 
O código 
O código está programado no Google Colab. Os dados podem ser 
baixados aqui: 
https://www.kaggle.com/c/fake-news/data 
O ambiente Google Colab pode ser encontrado aqui: 
https://github.com/matdekoning/FakeNewsClassifier/blob/master/FakeNe
wsClassifier.ipynb 
Este ambiente do Google Colab irá guiá-lo através da codificação da rede neural 
convolucional recorrente. No código, primeiro as bibliotecas necessárias são 
importadas (ou seja, Keras e Tensorflow). O código verifica se o Tensorflow 2.0 
está instalado e será atualizado se uma versão mais antiga estiver instalada. 
Reinicie a página da Web se você atualizou o Tensorflow. Na segunda célula, 
você pode montar seu ambiente do Google Drive. Esta é uma maneira fácil de 
conectar seu conjunto de dados. Faça o upload do conjunto de dados para sua 
pasta principal no Google Drive, monte o Google Drive e, na célula 3, você pode 
importar o conjunto de dados no ambiente Google Colab. 
https://www.kaggle.com/c/fake-news/data
https://github.com/matdekoning/FakeNewsClassifier/blob/master/FakeNewsClassifier.ipynb
https://github.com/matdekoning/FakeNewsClassifier/blob/master/FakeNewsClassifier.ipynb
Resultados 
Os resultados são mostrados no gráfico a seguir: 
 
 
Após 5 minutos de treinamento, o modelo alcançou uma precisão de validação 
de 0,9041, o que significa que mais de 9 em cada 10 notícias estão corretamente 
classificadas como confiáveis ou não. Depois de prever no conjunto de dados de 
envio do Kaggle, esse algoritmo atingiu uma pontuação de 0,96. Esta pontuação 
é um dos 5 melhores desempenhos. 
 
 
 
Acontece que essa arquitetura funciona bem para detecção de notícias falsas. A 
vantagem das convoluções com camadas de pool é que o tempo de desempenho 
é muito mais curto, enquanto o desempenho permanece o mesmo. Esta 
arquitetura também é útil em outras tarefas de Classificação de Linguagem 
Natural. O modelo oferece bons resultados na classificação de comentários 
tóxicos, bem como na análise de sentimento.