Cómo detectar Fake News con Machine Learning

Enrique Blanco  8 mayo, 2019

Las redes sociales han cambiado drásticamente la forma en que las noticias son generadas, difundidas y consumidas por la sociedad, abriendo oportunidades imprevistas, pero también creando desafíos complejos. Las redes sociales, diarios digitales, si bien son fuentes muy importantes de información, permiten la generación de información altamente sesgada, así como facilitar la rápida difusión de la misma. Haciendo un uso fraudulento de las mismas, se pueden generar con facilidad campañas de información no legítimas que pueden afectar la credibilidad de todo el ecosistema de noticias.

Una característica única de las noticias en las redes sociales es que cualquier persona puede registrarse como editor de noticias sin ningún tipo de restricción (por ejemplo, cualquiera puede crear una página de Facebook que diga ser un periódico o una organización de medios de comunicación). En consecuencia, muchos medios digitales tradicionales están migrando cada vez más a las redes sociales. Junto con esta transición, no es sorprendente que haya una creciente preocupación acerca de los editores de noticias “falsos” que publican noticias “falsas”, y que a menudo las difunden ampliamente utilizando seguidores “falsos”. Como la extensa difusión de noticias falsas puede tener un impacto negativo grave en los individuos y en la sociedad, la falta de estrategias de verificación de hechos escalables es especialmente preocupante.

No es sorprendente que los esfuerzos de investigación recientes se dediquen no sólo a comprender mejor este fenómeno, sino también a automatizar la detección de noticias falsas o Fake News. Si bien un enfoque totalmente automatizado para el problema de las noticias falsas puede ser bastante controvertido y aún está abierto para el debate. Una pregunta pertinente que nos podemos hacer es:

¿Cuál es el rendimiento de la predicción de los enfoques y funciones actuales para la detección automática de noticias falsas?

La mayoría de los esfuerzos existentes en este espacio son trabajos simultáneos, que identifican patrones recurrentes en noticias falsas después de que ya se hayan difundido, o proponen nuevas características para los motores de clasificación.

Por lo tanto, es difícil evaluar el potencial que tienen los modelos supervisados entrenados a partir de las características propuestas en estudios recientes para detectar noticias falsas. En este artículo examinamos brevemente dos servicios que, haciendo uso de clasificadores de aprendizaje supervisado, nos permitirán clasificar la naturaleza del contenido digital que consumimos.

¿Qué técnicas de Machine Learning se utilizan para detectar fake news?


Cuando se comienzan a investigar las noticias falsas, podemos observar que hay muchas categorías diferentes en las que clasificar la información no verídica. Hay artículos que son descaradamente falsos, artículos que brindan un evento verídico pero que luego hacen algunas interpretaciones falsas, artículos que se pueden clasificar como pseudocientíficos, artículos que en realidad lo son sólo de opinión disfrazados de noticias, artículos satíricos y artículos que consisten principalmente en tuits y citas de otras personas. Es decir, pueden ser clasificados como “sátira“, “falso“, “engañoso“, “clickbait”, etc.

La detección de noticias falsas es un problema de aprendizaje supervisado donde se aplican técnicas de Procesamiento de Lenguaje Natural (NLP). En este caso nos encontramos con contenido web que puede obtenerse mediante web scrapping, y a cada noticia se la puede etiquetar en base a tantos criterios como se desee. Una de las condiciones para que los clasificadores de noticias falsas logren un buen desempeño es tener suficientes datos etiquetados. Sin embargo, obtener etiquetas en las que confiar requiere mucho tiempo y trabajo de catalogación. Por lo tanto, los métodos semi-supervisados y no supervisados también se pueden utilizar para la agrupación de noticias en una primera aproximación exploratoria.


Figura 1. Identificación de Fake News mediante clasificadores (paradigma supervisado)

Existen diversos servicios para la detección de Fake News basados en:
  • Verificación de dominios de origen como fuente legítima o poco sesgada;
  • Análisis de patrones en el contenido de la noticia;
  • Búsqueda de keywords para mejorar la búsqueda, categorización y manejo de información;
Los modelos de clasificación más utilizados en la detección de noticias falsas son Support Vector Machine (SVM) y Naive Bayes Classifier (NBC). También se utilizan la Regresión Logística (LR) y los modelos basados Árboles de Decisiones.

El Deep Learning también tiene cabida. Muchos tipos de modelos de redes neuronales, como los perceptrones multicapa, también funcionan para la detección de noticias falsas. Las Redes Neuronales Recurrentes (RNN) son muy populares en el procesamiento de lenguaje natural, especialmente en la memoria a largo plazo a largo plazo; Long Short Term Memory (LSTM).


Un pequeño experimento del Departamento Ideas Locas


En el Departamento de Ideas Locas queríamos ver si era sencillo protegernos de este tipo de noticias, por lo que nos pusimos a investigar.  Se encontraron dos servicios elegidos para el procesado y clasificación de noticias: Robinho y Fakebox, tras lo cual generamos un breve script en Python que realizaba scrapping de una página web. Facilitada la url, el script obtenía todo el texto de la página.

A continuación, se describen brevemente los dos servicios sobre los que nuestro programa trabaja:

Robinho 

El detector de Fake News de Robinho permite detectar y señalar Fake News, Click Baits y noticias extremadamente sesgadas. Hay varias formas de usar este detector de Fake News:

  • Instalando la extensión para Chrome o Firefox, esto verifica las noticias desde el feed de Twitter y Facebook;
  • Hablando directamente con Robinho en Telegram;
  • Haciendo llamada a su JSON API, que es lo de que se ha hecho uso para el presente artículo.

Fakebox

Fakebox analiza artículos de noticias para evaluar si es probable que estas sean reales o no. Al observar una variedad de aspectos disponibles de un artículo (título, contenido y url) utilizando modelos de aprendizaje automático integrados, Fakebox puede identificar con éxito noticias falsas con una precisión superior al 95%. El servicio comprueba los siguientes aspectos de un artículo:
  • Título: los títulos pueden ser clickbait o sesgados;
  • Contenido: el contenido textual de un artículo se puede analizar para determinar si está escrito como una noticia real o no;
  • Nombre de dominio: algunos dominios son conocidos por alojar ciertos tipos de contenido, Fakebox conoce los sitios más populares al respecto.
Para hacer uso de este servicio es necesario tener Docker instalado en tu equipo.

Figura 2. Instrucciones para hacer uso de Fakebox.

Abajo se incluye el script en Python que nos permite obtener una respuesta de ambos servicios a una url facilitada como argumento.



Como puede observarse, el script es muy sencillo, no sólo en su implementación sino en su uso. Haciendo un GET y POST al siguiente diccionario de urls:

url_main_dict = {
‘robinho’: ‘https://robinho.fakenewsdetector.org/predict’,
‘fakebox’: ‘http://localhost:8080/fakebox/check’
}

Facilitando los siguientes parámetros como llamada:

params = dict(
           url=url,
           content=parrafos,
           title=title
)


Se puede obtener el resultado de ambos servicios en formato JSON para acceder fácilmente a los datos. A continuación, tenéis un breve vídeo que muestra cómo funciona el script con tres noticias diferentes, así como el resultado que arroja para cada url facilitada.



Si estáis interesados en probar este simple script, podéis descargarlo desde el siguiente repositorio de Github a través del siguiente comando:


Las instrucciones para poder usar este repositorio están indicadas en el fichero README.md. Como podéis ver, fabricarse herramientas sencillas basadas en Inteligencia Artificial para protegernos de contenidos no legítimos es muy sencillo con unas mínimas bases de programación.

Para mantenerte al día con LUCA visita nuestra página web,  suscríbete a LUCA Data Speaks o síguenos en TwitterLinkedIn YouTube.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *