← Todos los posts

¿Por qué me recomiendan este libro?

Terminas un libro, entras en una web a buscar el siguiente y te sale una fila de sugerencias. Una te encaja a la primera. Otra no tienes ni idea de por qué está ahí.

Esa segunda es la que me hace pensar. Solemos decir que la web «conoce nuestros gustos», y vale, pero eso no explica nada. Detrás puede haber cosas bastante distintas: comparar lo que has leído con lo que han leído otros, buscar libros que se parezcan entre sí o aplicar una serie de reglas. Cada opción funciona a su manera, y también falla a su manera.

Lectores que se parecen

Pongamos que tú y yo hemos leído los mismos tres libros, y que yo tengo un cuarto que tú aún no has abierto. Para un sistema, esa coincidencia ya es motivo suficiente para recomendártelo.

Eso es, a grandes rasgos, el filtrado colaborativo: sacar recomendaciones de lo que hacen los usuarios. En una librería online las señales serían las lecturas y las valoraciones; en una tienda, las compras; en Spotify, las reproducciones. Con eso se buscan patrones, ya sea entre personas o entre productos.

Lo curioso es que al sistema le da igual de qué va ese cuarto libro. No necesita saber si es una novela histórica o un ensayo de economía. Le basta con que tú y yo hayamos elegido lo mismo antes. Tiene su lógica, aunque coincidir en tres libros no garantiza que vayamos a coincidir en el cuarto.

Se puede montar con técnicas clásicas (vecinos más cercanos, factorización de matrices) o con redes neuronales, pero en todos los casos hace falta lo mismo: historial. Sin interacciones previas no hay de dónde tirar.

Libros que se parecen

La otra opción es olvidarse de los lectores y mirar los libros.

Si lo último que has leído comparte género, tono o estilo, el sistema puede buscarte algo con esos mismos rasgos. Es lo que se llama filtrado basado en contenido, y la pregunta de fondo cambia: ya no es «¿quién ha leído lo mismo que tú?», sino «¿qué tienen en común los libros que te gustan?». Puede ser el autor, el género, la forma de narrar…

Esto tiene una ventaja clara con las novedades. Un libro recién llegado al catálogo no tiene lecturas ni valoraciones, pero sí sabemos de qué va, quién lo ha escrito y en qué estantería iría. Con eso ya se puede comparar.

Es una manera de atacar el famoso arranque en frío (o cold start). Suena muy técnico, pero el problema es de lo más normal: cómo recomiendas algo cuando todavía no sabes qué tal le ha ido con nadie. Si conoces sus características, al menos tienes un punto de partida.

Cuando lo que buscas tiene requisitos

Ahora piensa en una profesora que busca una lectura para su clase. Tiene que ser adecuada al nivel de los alumnos, no pasar mucho de 300 páginas y tratar el paso a la edad adulta.

Aquí lo que hayan leído otros sirve de poco. Lo que hay son condiciones.

Para esto están los sistemas de recomendación basados en conocimiento, en los que esas necesidades se escriben como reglas: priorizar el nivel de lectura, comprobar la extensión, buscar temas como la identidad o el crecimiento personal. Incluso se puede pedir cierta diversidad entre los autores.

El trabajo está en afinar esas reglas. Si el máximo son 300 páginas, ¿un libro de 310 queda fuera? Igual tiene sentido dejar un margen del 10 %. Con las prioridades pasa lo mismo: hay que decidir qué es innegociable y qué puede ceder un poco.

Con criterios así, una candidata razonable sería The House on Mango Street, de Sandra Cisneros. Y lo bueno es que se puede justificar punto por punto: nivel de lectura, extensión, temática y procedencia de la autora.

Lo que más me gusta de este enfoque es que convierte lo que sabe alguien experto en el tema en reglas explícitas. Además, no depende de tener muchas interacciones acumuladas, así que también vale cuando aún no hay datos.

Parecido no es lo mismo que adecuado

Contenido y conocimiento se confunden con facilidad, porque los dos trabajan con características de los libros. Lo que cambia es para qué las usan.

El filtrado basado en contenido busca afinidad: te gustaron estos libros y este otro se les parece. El basado en conocimiento comprueba si un libro cumple lo que has pedido: un curso concreto, una extensión, un tema.

Para mí esa diferencia importa más de lo que parece. Si busco qué leer este verano, me sirve algo cercano a lo que ya me gusta. Si tengo que elegir un libro para una clase, que se parezca a mis lecturas favoritas da bastante igual; lo que necesito es que encaje con lo que pide el curso.

Así que, antes de decidir qué técnica usar, merece la pena tener clara la pregunta. ¿Quieres aprovechar que hay lectores con gustos parecidos? ¿Encontrar libros similares a los que ya funcionan? ¿O resolver una búsqueda con requisitos cerrados? Según la respuesta, el sistema será uno u otro. O una mezcla de varios, que es lo que suele acabar pasando en la práctica.

machine learningaprendizaje automático

Juan Ignacio Alberola
Analista digital y Data Engineer certificado por Google. Hablemos en LinkedIn