Cuando cualquiera de nosotros, humanos, empezamos a leer o escuchar una noticia, determinamos el nivel de interés o relevancia que tiene. Lo hacemos constantemente y de manera casi inconsciente.

Nuestro cerebro nos permite valorar múltiples factores simultáneamente sin ser plenamente conscientes de cuáles son y cuál es la importancia de cada uno de ellos. Después de unos segundos, a veces, una fracción de segundo, sabemos cómo de relevante es un texto o noticia para nosotros.

Por otra parte, nuestros intereses cambian y evolucionan de manera natural. Lo que nos parecía interesante a los 18, puede ya no serlo tanto a las 38 y quizá menos aún a los 48. Los criterios de valoración se adaptan en función de nuestra experiencia e influencias externas.

Pero ¿cómo puede valorar una máquina la relevancia o interés de una noticia? Las máquinas tienen potencial, pero hay que enseñárselo todo paso a paso. A partir de aquí voy a describir cómo lo hice yo, espero que os resulte interesante y relevante.

En este artículo (en inglés) de Wikipedia se explica el mecanismo utilizado por los medios de comunicación para seleccionar qué noticias se publican. Al final, hay una lista de criterios que he filtrado y tomado como base.

Cada uno de los criterios se puede asociar a una lista de palabras. Por ejemplo, las palabras enfrentamiento, contrario, desacuerdo y demanda indican conflicto. Por otro lado, inesperado, imprevisto, fortuito, de repente y sin previo aviso, indican imprevisibilidad (espero que exista).

Con este enfoque y la lista de criterios del artículo anterior se puede diseñar un motor de relevancia, que toma un artículo como entrada y da un valor entre 0 y 10, por ejemplo, como salida.

En un entorno estático y objetivo, la cosa se acabaría aquí, pero nos movemos en un mar de subjetividades, nada es absoluto, todo depende de quién, dónde y cuándo. Los criterios se deben adaptar a la audiencia y al entorno y quien debe marcar la dirección de esa evolución es el lector, el usuario, el que elige leer o no cada artículo.

Esto nos lleva al objetivo del proyecto: implementar un sistema en el que personas con criterios (humanos) enseñen a las máquinas a aplicar esos criterios automáticamente. Es decir, un sistema de aprendizaje automático guiado por criterios humanos y adaptables.

Los resultados, a modo de ejemplo, del desarrollo de este sistema se pueden ver en:

Implementando adecuadamente lo anterior, se tiene un modelo dinámico que va ajustando los pesos de los criterios en función de las preferencias de los usuarios. Un sistema de este tipo, le daría a los lectores más de lo que más les gusta y menos de lo que menos les gusta.

Este es el enfoque utilizado por los motores de recomendación de Google, Facebook, Netflix … el objetivo de este artículo no es valorar si dicho enfoque es el adecuado o no. Pero es un tema interesante.

El resto del artículo explica cómo desarrollarlo y va en un tono un poco más técnico, sorry.

  1. Se establece una lista de criterios y se asocian los términos a cada criterio.
  2. Se asigna un peso inicial a cada criterio, digamos 10.
  3. Se diseña un mecanismo en el que el usuario/lector pueda aprobar o suspender un artículo, un +1 o un -1. A día de hoy, estas entradas vienen de botones en la página web y de patrones de uso de algunos Alexa skills.
  4. Se revisa cómo dicho artículo puntuó en cada criterio.
    1. Si el lector valoró negativamente el artículo
      1. los criterios en donde el artículo tuvo una puntuación alta deben tener menos peso. El 10 inicial se debe aumentar a un 10,001, por ejemplo.
      2. los criterios con una puntuación baja, deben tener más peso.
    2. Si el lector valoró positivamente el artículo
      1. se debe reducir el peso de los criterios con puntuación baja. El 10 inicial pasaría a algo así como 9,999
      2. se aumenta el peso de los criterios con puntuación alta.

Además de criterios asociados al contenido, se puede valorar el origen del artículo, es decir, dónde se ha publicado. Aquí el peso no se modifica, sino que se valora cada dominio.

Para terminar, uno de los factores clave es la novedad. Un artículo publicado ahora mismo tendrá la máxima puntuación que irá decreciendo con el tiempo hasta alcanzar, en mi caso, el valor cero en 72 horas.