Cómo comparar dos algoritmos de recomendación en términos de problema de cola larga

Como dijiste, la cobertura es una de las métricas que puede proporcionar información sobre cómo el algoritmo está abordando una situación de cola larga (estoy considerando el “problema de la cola larga” en referencia a la capacidad del motor para recomendar elementos que pertenecen al extremo superior de la distribución de frecuencias, es decir, son artículos que rara vez se consumen, al menos en términos relativos). Si bien, por supuesto, mantener los resultados lo más relevantes posible del usuario.

Las dos métricas más inmediatas serían cobertura y diversidad:

  • la cobertura mediría la capacidad del recomendante para recomendar en todo el catálogo, por ejemplo, tratando de calcular una puntuación para cada elemento y para cada usuario. Un motor CF, por ejemplo, no podría proporcionar puntajes para elementos no utilizados o usados ​​muy raramente, por lo que estarían fuera de su alcance. Si bien un motor CB puede no ser capaz de proporcionar puntajes para los elementos cuyos metadatos no proporcionan suficiente coincidencia. Promediado sobre todos los usuarios que indicarían la cobertura potencial , es decir, elementos que son potencialmente accesibles Otra medida más práctica sería la cobertura efectiva , que es la proporción de elementos que aparecen en los primeros resultados de N entre todos los usuarios.
  • La diversidad (y su medida relacionada, serendipia) mide la capacidad del motor para ir más allá de los “sospechosos habituales” y recomendar elementos que abarcan el espacio de características de los elementos, en lugar de limitarse a un subespacio estrecho. Necesitaría una medida de similitud de elementos y la usaría para calcular la diversidad intrausuario (cuán diferentes son las recomendaciones en los resultados Top-N para cada usuario). También podría calcular la diversidad entre usuarios (cómo las listas difieren entre los diferentes usuarios).

Además, se pueden obtener mayores conocimientos jugando con el catálogo. Por ejemplo, podríamos usar la popularidad de los elementos y excluir de los resultados de la recomendación los K elementos más populares, o los que abarcan una cierta proporción de interacciones del usuario (por ejemplo, los principales elementos M que toman conjuntamente hasta el 20% de las opciones del usuario) y ver cómo el sistema funciona con el resto del catálogo de cola media y larga.

Por lo tanto, pedimos nuevamente las listas Top-N pero prohibimos esos K artículos populares. Para obtener un resultado real al comparar dos variantes de algoritmo, esto debe intentarse mediante pruebas A / B. De hecho, estamos midiendo qué tan bien se adapta el sistema cuando excluye el encabezado de la distribución, que si se incluye tendería a enmascarar la comparación (ya que los elementos populares probablemente aparecerían en ambas variantes y oscurecerían las métricas).

En esencia, los algoritmos de recomendación deberían resolver un problema comercial; comparar algoritmos requiere objetivos para los algoritmos.

Para long tail, las métricas útiles podrían ser sobre el factor de exposición de todo el inventario (podría ser una buena métrica para un mercado, donde las franquicias de long tail están utilizando una subasta para la visibilidad del mercado).

Sin embargo, probablemente las métricas más útiles serían las ventas generadas, como siempre.

Una medición compleja sería modelar los productos y usuarios a una red sin escala mediante enlaces de exposición (una red de productos utilizando vistas de usuario como enlaces) y medir si hay una reducción en la distribución de grados (lo contrario de los ricos se enriquecen) .

More Interesting

¿Cuáles son algunas de las mejores plataformas en línea para practicar la codificación relacionada con algoritmos?

¿Cuál es la mejor manera de leer y comprender la Introducción a los algoritmos?

¿Cuáles son las mejores prácticas para implementar la paginación en un sitio web con una gran cantidad de datos?

¿Qué es el algoritmo A * en inteligencia artificial?

El comportamiento emergente se encuentra en el núcleo de las ciencias físicas y de la vida: posiblemente por conveniencia computacional. ¿La teoría de la complejidad ofrece ideas aquí?

Cómo fusionar tres matrices ordenadas en una sola matriz ordenada de manera eficiente

¿Cuál es la forma más rápida (estructura de datos) para buscar la matriz multidimensional?

¿Puede una computadora generar un número verdaderamente aleatorio?

¿Cuáles son los problemas resueltos por los algoritmos hash?

¿Cómo pueden los estudiantes de electricidad y electrónica llegar a ser buenos en algoritmos y estructuras de datos?

No puedo desempeñarme bien en los concursos de programación, incluso después de practicar mucho. ¿Qué debería hacer ahora? ¿Debo dejar de hacer programación competitiva?

¿Por qué conocer estructuras de datos y algoritmos básicos no es suficiente para descifrar la mayoría de las entrevistas técnicas?

¿Hay algún algoritmo que pueda implementarse en un lenguaje de programación pero no en otro lenguaje de programación?

¿Cuál sería un algoritmo eficiente para ordenar millones de líneas de cadenas / enteros en un archivo?

¿Cuál es la forma correcta de escribir un algoritmo? ¿Podemos usar la sintaxis del lenguaje en el que estamos escribiendo?