¿Cuál es el mejor enfoque para abordar la compensación de exploración / explotación en los sistemas de recomendación?

Es difícil abogar por un enfoque único, ya que depende de las peculiaridades de su problema y del enfoque de alto nivel que adopte. Algunos factores que pueden influir en la solución.

a) ¿Qué métrica (s) está tratando de optimizar? ¿Es una métrica única como CTR o múltiples objetivos competitivos como CTR y dinero?

b) ¿Qué enfoque de modelado adopta (produce estimaciones puntuales o estimaciones puntuales y estimaciones de incertidumbre)? Además, ¿con qué frecuencia actualiza sus modelos (cada 5 minutos, cada hora, todos los días, todas las semanas)? ¿Su modelo es personalizado o se basa solo en popularidad?

c) ¿Cuál es el costo de una mala recomendación (presupuesto de exploración)? Por ejemplo, mostrar una recomendación de trabajo irrelevante puede tener un efecto negativo mayor que mostrar una recomendación de noticias irrelevante.

Aunque se ha escrito mucho sobre explorar / explotar en términos de maximizar los clics totales o alguna métrica única, creo que es importante un enfoque holístico del problema teniendo en cuenta los problemas anteriores. También he observado (como muchos otros) que en problemas de alta dimensión, obtener un buen modelo para ajustar sus datos es mucho más importante que la técnica de exploración / explotación real utilizada (muestreo de Thompson, softmax, UCB, …).

En general, he encontrado que la siguiente heurística funciona bien en la práctica (descargo de responsabilidad: la configuración de su problema podría ser muy diferente y esto puede no funcionar como es, esto es solo una guía). Reduzca el problema en términos de métricas que se puedan medir fácilmente con poco retraso (por ejemplo, CTR, lectura de tiempo, fracción de video visto, …). Escriba su función objetivo (por ejemplo, maximizar el CTR pero minimizar el número de quejas debido a malas recomendaciones). Su función objetivo implicaría incógnitas como CTR que se estimarían a través de modelos de aprendizaje automático. En lugar de usar estimaciones puntuales en el momento del servicio, use algo de aleatorización para perturbarlo. Los métodos populares que funcionan bien son el muestreo de Thompson (si tiene acceso a estimaciones de incertidumbre), softmax (pero necesita ajustar el parámetro de temperatura con cuidado), UCB (tenga cuidado de no usarlo, ya que las actualizaciones de su modelo tienen un retraso prolongado )

También es útil tener una pequeña fracción de tráfico donde se realiza mucha más aleatorización (de manera controlada, dependiendo del costo). Este tráfico aleatorizado le ayuda a evaluar nuevas técnicas de exploración / explotación (o ajustar parámetros de las existentes) de manera fuera de línea. También agrega más diversidad a sus datos de entrenamiento y ayuda a construir modelos que se generalicen mejor en la naturaleza. Un ejemplo de esto de mi primer problema de exploración / explotación en la vida real en 2007 fue seleccionar noticias en el sitio Yahoo! portada Dado que cada noticia en el grupo fue revisada editorialmente y de calidad razonable, creamos un pequeño grupo de usuarios (seleccionados al azar) que recibieron una de estas historias al azar. Dado el pequeño conjunto de artículos de noticias y una cantidad gigantesca de datos (cientos de millones de visitas por día), este tráfico de exploración pura fue de gran ayuda para optimizar el sistema. Cómo hacer tal exploración para grandes grupos de contenido es un problema abierto. Pero una cosa que ayuda es idear un esquema que pueda ayudarlo a registrar la probabilidad de entregar un artículo a un usuario y garantizar que el muestreo de tal importancia tenga una distribución razonable (para reducir la varianza del muestreo).

Para explorar / explotar en general, puede leer mucho en varios documentos de aprendizaje automático y estadísticas. Varios capítulos están dedicados a este tema en el libro que coautoré recientemente sobre sistemas de recomendación https://www.linkedin.com/pulse/p…. El libro también tiene una bibliografía sobre el tema.