Estás leyendo la publicación: ¿Cómo evaluar los sistemas de recomendación con RGRecSys?
Tradicionalmente, las evaluaciones de los sistemas de recomendación se han centrado en el rendimiento de los algoritmos, como la precisión de las recomendaciones. Sin embargo, la evaluación actual de dichos sistemas no debe limitarse a métricas como la precisión, sino que también debe considerar restricciones como datos incorrectos proporcionados por el usuario, evaluación de subelementos o subproductos recomendados, cambios en la distribución de datos, etc. Entonces, en esta publicación, veremos RGRecSys, una biblioteca que realiza la evaluación de restricciones de los sistemas de recomendación. Los puntos principales que se tratarán en este artículo se enumeran a continuación.
Tabla de contenido
- Acerca de los sistemas de recomendación
- Evaluación de un sistema de recomendación
- Cómo RGRecSys ayuda a evaluar
- Funciones de evaluación de RGRecSys
Primero hagamos una breve introducción al sistema de recomendación.
Acerca de los sistemas de recomendación
Un sistema de recomendación, a veces conocido como motor de recomendación, es un tipo de sistema de filtrado de información que intenta pronosticar la “calificación” o la “preferencia” de un usuario por un artículo. Los generadores de listas de reproducción para servicios de video y música, los recomendadores de productos para negocios en línea, los recomendadores de contenido para plataformas de redes sociales y los recomendadores de contenido web abierto son ejemplos de sistemas de recomendación en uso.
Estos sistemas pueden funcionar con una sola entrada, como música, o con varias entradas, como noticias, libros y consultas de búsqueda, dentro y entre plataformas. Hay otros sistemas de recomendación populares para temas específicos como restaurantes y citas en línea. Los sistemas de recomendación a menudo emplean filtrado colaborativo o filtrado basado en contenido (también conocido como el enfoque basado en la personalidad), además de otros sistemas como los sistemas basados en el conocimiento.
Las técnicas de filtrado colaborativo construyen un modelo basado en el comportamiento previo de un usuario (productos previamente comprados o seleccionados, así como calificaciones numéricas otorgadas a esos artículos) y decisiones análogas tomadas por otros usuarios. Luego, este modelo se usa para estimar qué cosas (o calificaciones de artículos) le interesarían al usuario. Al utilizar una colección de características distintas y preetiquetadas de un artículo, los enfoques de filtrado basados en contenido recomiendan cosas adicionales con atributos similares.
Evaluación de un sistema de recomendación
Tradicionalmente, los sistemas de recomendación se han creado y analizado bajo supuestos simples pero poco realistas, como los supuestos iid (los datos de entrenamiento y prueba son independientes y están distribuidos de manera idéntica) y los datos abundantes y silenciosos.
Estudios recientes han relajado estas suposiciones y se están enfocando en la construcción de modelos en entornos más difíciles pero realistas en los que los datos proporcionados a los sistemas de recomendación son intencionalmente atacados, escasos y sesgados. Sin embargo, hay más aspectos a considerar al evaluar la robustez.
Algunas funciones de usuario y elementos, por ejemplo, pueden dañarse (transformación), o puede violarse la suposición iid de datos de entrenamiento y prueba (cambio de distribución). El rendimiento de los sistemas de recomendación que se basan demasiado en suposiciones poco realistas puede sufrir mucho. Por lo tanto, para deshacerse de todas estas restricciones, uno debería haber evaluado adecuadamente el sistema de recomendación.
¿Cómo ayuda RGRecSys a evaluar?
Una definición integral de robustez para los sistemas de recomendación que puede incluir y formalizar varias perspectivas sobre la robustez, como la robustez con respecto a la subpoblación, las transformaciones, la disparidad en la distribución, el ataque y la dispersión.
Robustness Gym for RecSys (RGRecSys) es un conjunto de herramientas de evaluación de robustez para sistemas de recomendación que nos permite realizar de manera rápida y uniforme una evaluación de robustez integral para modelos de sistemas de recomendación. RGRecSys evalúa la solidez de los modelos de sistemas de recomendación para la subpoblación de datos, la transformación, el cambio de distribución, el ataque y la dispersión.
Para demostrar la utilidad de RGRecSys, este sistema utiliza modelos incorporados de RecBole. RecBole utiliza Pytorch en toda la biblioteca y propone un marco unificado que incluye módulos de datos, modelos y evaluación. Esta biblioteca contiene una colección diversa de modelos para recomendaciones generales, secuenciales, conscientes del contexto y basadas en el conocimiento.
Su estructura de datos general y extensible facilita agregar nuevos modelos a la biblioteca y brinda a los usuarios la flexibilidad suficiente para configurar entornos experimentales como hiperparámetros y criterios de división. Podemos realizar evaluaciones de robustez unificadas y completas en modelos de sistemas de recomendación utilizando el módulo de evaluación de robustez de RGRecSys.
Funciones de evaluación de RGRecSys
Evaluación de subpoblaciones
Las métricas de rendimiento promediadas entre todos los usuarios y elementos se informan en la mayoría de las bibliotecas de sistemas de recomendación existentes. Una única métrica de alto rendimiento, por otro lado, no garantiza que el modelo funcione bien para un subconjunto de usuarios o elementos.
Por ejemplo, un sistema de recomendación puede funcionar bien en promedio entre todos los usuarios, pero mal en subgrupos de usuarios, como mujeres o personas de una raza específica. Con la creciente importancia de los sistemas de recomendación justos, es fundamental informar sobre el rendimiento de un subconjunto de usuarios o elementos.
Aquí, la biblioteca RGRecSys nos permite evaluar el rendimiento del modelo para cualquier subgrupo de interés, como los usuarios de una función específica, la actividad de los usuarios en función del número de interacciones y las críticas de los usuarios en función de su puntuación de calificación. Es decir, dado un modelo entrenado, la biblioteca puede dividir los datos de prueba para realizar una evaluación detallada de los modelos y evaluar su solidez de corte.
Evaluación de turnos distributivos
Muchos modelos de sistemas de recomendación se basan en el supuesto de que los datos de entrenamiento y prueba se distribuyen uniformemente. Sin embargo, en escenarios del mundo real, esta suposición iid se rompe con frecuencia. RGRecSys se puede utilizar para validar modelos de sistemas de recomendación que están sujetos a cambios de distribución.
Para lograr esto, RGRecSys primero proporciona a los usuarios la distribución de datos de entrenamiento en función de las características del usuario y luego les permite manipular la distribución de datos de prueba muestreándolos para que difieran de la distribución de datos de entrenamiento. Los usuarios de nuestra biblioteca, por ejemplo, pueden seleccionar la proporción de mujeres a hombres en los datos de prueba que difieren mucho de los datos de entrenamiento.
Evaluación de ataques
Debido a que los sistemas de recomendación tienen un impacto económico tan grande, son extremadamente vulnerables a los ataques destinados a cambiar la clasificación de elementos específicos. Cuando se trata de ataques maliciosos, es fundamental evaluar el rendimiento de los modelos de sistemas de recomendación.
RGRecSys nos permite probar los modelos en el contexto de un ataque de falsificación de solicitud entre sitios (CSRF), en el que el atacante hace que el usuario víctima realice una acción sin querer. Por ejemplo, el usuario puede cambiar sus calificaciones a pesar de su voluntad, lo que da como resultado datos de interacción corruptos en el conjunto de datos de entrenamiento. Podemos usar RGRecSys para determinar la gravedad de un ataque al determinar qué parte de la interacción se corromperá.
Evaluación de escasez
Los datos que ingresan a los sistemas de recomendación generalmente incluyen comentarios explícitos o implícitos de los usuarios, como calificaciones o clics. Por lo general, dichos datos son escasos y se sabe que los sistemas de recomendación funcionan mal cuando se alimentan con datos escasos. Esta biblioteca permite a los usuarios comparar la solidez de diferentes modelos con datos dispersos mediante la eliminación aleatoria de una fracción de los datos de interacción del usuario. Podemos seleccionar el nivel de escasez, así como los usuarios con los que desea eliminar las interacciones en función de su actividad.
Evaluación de Transformación
La mayoría de los modelos de sistemas de recomendación requieren acceso a las funciones del usuario y del elemento para proporcionar a los usuarios un conjunto de elementos recomendados. Dicha información se puede recopilar solicitando a los usuarios y proveedores de contenido que completen un perfil que incluya información sobre ellos o mediante el sistema de recomendación extrayéndola automáticamente, por ejemplo, de las reseñas de los usuarios. Sin embargo, la información engañosa, un error que se produce cuando los modelos de recomendación intentan extraerla o un ataque malintencionado podrían contaminar estos datos.
Como resultado, es más realista suponer que algunas características del usuario o del elemento no son precisas. RGRecSys nos permite evaluar modelos bajo transformación en características de usuarios o elementos al permitirles elegir qué características transformar y qué tan severa debe ser la transformación. Esta transformación puede ser aleatoria, en cuyo caso el valor de la característica puede tomar cualquier valor o estructura, en cuyo caso el valor de la característica está dentro de un cierto rango de su valor real.
Ultimas palabras
A lo largo de este artículo, hemos discutido el sistema de recomendación y cómo podemos evaluarlo. Como discutimos en este artículo, la evaluación del sistema de recomendación no se trata de las pruebas de precisión, sino de su solidez en ciertas restricciones que se observan principalmente en el sistema de recomendación, como la solidez frente a datos dispersos, la solidez frente a información engañosa proporcionada por el usuario, etc. Esta evaluación la puede realizar la biblioteca que hemos comentado. Esta librería para evaluar sistemas de recomendación se encuentra en fase de desarrollo.