Algoritmos de recomendación

Escrito por Blanca Alicia Vargas Govea

¿Qué me recomiendas?

Ésta es una pregunta usual entre amigos. Si un amigo va al cine, a un restaurante de moda o compra algún artículo que también nos interesa es irresistible preguntarle si nos lo recomienda. Al ser nuestro amigo es posible que compartamos gustos o que sepa cuáles son nuestras preferencias por lo que su opinión será muy confiable. 

«Este proceso natural entre amigos se ha automatizado y es muy común que encontremos recomendaciones en las tiendas online» 

Los algoritmos de recomendación surgieron como una solución a la gran cantidad de información que los usuarios de la Web y aplicaciones móviles experimentamos. Ellos vienen en nuestra ayuda para mostrarnos artículos o servicios personalizados que se acerquen más a lo que nos gusta y reducir nuestro tiempo de búsqueda. Estos algoritmos son los responsables de calcular los criterios para decidir qué ofrecernos y mostrarnos su selección.

Pero, ¿Cómo le hacen? entre humanos es sencillo hacer sugerencias pero, ¿de qué manera una computadora sabe lo que nos gusta?  

Hay diversos tipos de algoritmos de recomendación, veremos en qué consisten algunos de ellos:

Basados en la opinión de muchas personas

Son los que toman en cuenta la valoración que les damos a los artículos que hemos usado. Hay distintas formas de calificar un artículo una de ellas es el número de estrellas en una escala y también los likes que les otorgamos. A este tipo de método se le conoce como filtrado colaborativo porque aunque no nos demos cuenta, las recomendaciones se calculan por una colaboración entre los usuarios a quienes nos gustan los mismos artículos y los calificamos de forma parecida. Esos usuarios desconocidos son como nuestros amigos con gustos semejantes a los nuestros.

Si no contamos con ratings o valoraciones explícitas podemos recurrir al comportamiento del usuario. Este comportamiento se refleja en acciones como comprar, ver, poner en una lista los artículos de nuestro interés. Estas acciones pueden usarse para generar recomendaciones pues implícitamente estamos dando valoración a los artículos.

En la búsqueda de empleo un algoritmo de filtrado colaborativo puede enviar recomendaciones de vacantes a la persona que está buscando trabajo. En este caso el usuario es la persona que busca trabajo y los artículos son las vacantes que las empresas tienen disponibles. Si dos personas se postulan a una misma vacante es muy probable que tengan un perfil laboral similar. Podemos decir que  las personas se parecen. Asi, las vacantes a las que una de ellas se postula pueden ser recomendadas a la otra persona que no se ha postulado.

La ventaja: el algoritmo considera la opinión de personas con gustos similares lo que aporta cierto nivel de calidad a la recomendación.

La desventaja: el algoritmo no puede producir recomendaciones si no hay evaluaciones o acciones registradas. 

Basados en nuestras preferencias y en la descripción del artículo

Son los que toman en cuenta las características o descripciones de los artículos que nos gustan y las comparan con las características del artículo o servicio que buscamos. A estos algoritmos se les conoce como basados en contenido y con ellos no es necesario conocer las valoraciones, ratings o comportamiento.

Por ejemplo, si nos gustan las películas de terror entonces el algoritmo seleccionará para mostrarme películas del mismo género. El contenido puede ser de varios tipos, los más comunes son descripciones en texto libre (e.g., “película aterradora sobre una muñeca poseída por una entidad del más allá”) y palabras clave (e.g., “terror”, “hechizos”). Aunque puede parecer más directo, el trabajar con texto es todo un reto pues necesitamos hacer que la computadora entienda ese contenido. Para lograrlo existen técnicas de procesamiento de lenguaje natural que son muy útiles para extraer el contenido que deseamos.

Una variante es considerar no solamente un criterio como en este caso el género de la película sino también el actor/actriz principal, el director, la banda sonora entre otros aspectos importantes. De esta manera las recomendaciones pueden ser multicriterio y generarse no solamente a partir de una característica. Si a nosotros nos gusta la película “El náufrago”, es muy posible que el algoritmo nos recomiende películas donde aparece Tom Hanks. Para buscar candidatos que cubran vacantes este planteamiento puede aplicarse en las habilidades que la vacante requiere y comparar con los conocimientos que los candidatos poseen. Si la vacante es para un programador especializado en lenguaje Python, en el currículum del candidato se buscará esa habilidad y se mostrarán al reclutador los candidatos que se acerquen más a esta característica.

Lo bueno: no se necesitan evaluaciones o registros del comportamiento de otros usuarios, con las descripciones es suficiente.

Lo malo: escasa novedad, si no hay suficiente información en el contenido la recomendación será deficiente. 

Personalizando las recomendaciones: el contexto

Hasta este momento, las recomendaciones consideran ratings, requerimientos explícitos de los usuarios y las descripciones de los artículos. Sin embargo si queremos recomendaciones más personalizadas entonces el contexto es muy importante. Los algoritmos basados en contexto toman en cuenta situaciones específicas del usuario para generar las recomendaciones. La ubicación geográfica, el clima, el sistema operativo que utilice la gente al momento de recibir la recomendación pueden ser la diferencia en que la recomendación sea exitosa o no.

En el caso de la búsqueda de empleo si no estamos disponibles para mudarnos de ciudad o país entonces las recomendaciones que recibiremos serán únicamente del lugar donde vivimos. De forma análoga, un reclutador puede requerir cubrir sus vacantes solamente con personas de la localidad. En otro dominio, si estamos de visita en una ciudad desconocida y buscamos un restaurante, pero de pronto empieza a llover, un sistema de recomendación basado en contexto nos recomendaría restaurantes cercanos a nuestra ubicación omitiendo aquellos que estén al aire libre.

Lo bueno: al introducir contexto el nivel de personalización incrementa.

Lo malo: se incrementa el nivel de complejidad. 

Otras estrategias y tendencias

A partir de los algoritmos básicos pueden hacerse distintas combinaciones para obtener lo mejor de cada estrategia. Podemos tener un algoritmo cuya base sea un filtro colaborativo e introducir variables de contexto o contenido. Una ventaja de este planteamiento híbrido es que no necesitamos tener ratings o acciones para poder generar recomendaciones.

En un nivel mayor de recomendación se encuentra el enfoque semántico el cual utiliza una base de conocimiento en la que se representan conceptos y relaciones entre ellos. Esta estructura de conocimiento formal facilita búsquedas en lenguaje natural más allá del uso de palabras clave. Se pueden realizar inferencias sobre conceptos donde los conceptos son candidato y gerente unidos por la relación es-un y los conceptos gerente y manufactura unidos por la relación de-industria. Otra tendencia en los algoritmos de recomendación es el uso de aprendizaje profundo (deep learning) en el cual se entrenan redes neuronales para generar las recomendaciones. Este tipo de algoritmos están experimentando un gran crecimiento puesto que han mostrado resultados exitosos.

Los sistemas de recomendación se han incorporado a nuestra vida diaria de forma gradual y silenciosa. Cada día aparecen nuevas aplicaciones que los utilizan hasta el punto de que ya es común revisar antes de salir las recomendaciones sobre la mejor ruta para ir a nuestro destino.

Seguramente en algún lugar existe un sistema que nos recomienda qué ropa ponernos dependiendo de la cara y ánimo que tengamos mediante una aplicación que nos tome una foto al levantarnos. No estoy segura de que esto me gustaría.

Saber más:

Sistemas de recomendación. Presente y futuro de la web http://gaia.fdi.ucm.es/files/people/almudena/seminario/recsys-dia1.pdf

Personalización de sistemas de recomendación. http://lsi.ugr.es/~mgea/workshops/coline02/Articulos/fgarcia.pdf

Sistema de recomendación de películas https://www.dspace.espol.edu.ec/bitstream/123456789/8798/1/Sistema%20de%20Recomendaci%C3%B3n%20de%20Pel%C3%ADculas.pdf 

Blanca Alicia Vargas Govea, Dra. en Ciencias Computacionales por el INAOE (Instituto Nacional de Astrofísica, Óptica y Electrónica), Científica de datos en OCCMundial  https://www.occ.com.mx/ Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.