Cuando el algoritmo de recomendación se vuelve contra ti
Cuando el algoritmo de recomendación se vuelve contra tiMétricas en caída, equipos movilizados y una hipótesis descabellada que resultó cierta. El día que nuestro algoritmo nos traicionó.
El martes, mientras hacía un repaso a uno de los muchos paneles de control con los que instrumentamos nuestro producto, observé algo extraño. Por primera vez en lo que iba de año, estábamos teniendo menos engagement en una funcionalidad concreta respecto al año anterior. No le veía mucho sentido, así que profundicé. Descartando hipótesisEse engagement podía iniciarse en distintos puntos del producto, así que bajé un nivel para comprobar si la caída era generalizada en todos: al hacerlo, pude apreciar que esta se producía únicamente en uno de ellos. Con este dato descarté que se tratara de un problema de estacionalidad negativa. Si por cualquier razón externa al producto, los usuarios bajaran su interacción con el mismo, lo deberíamos notar en todos los orígenes y no sólo en uno. El principal sospechoso pasó a ser que hubiéramos introducido un bug, bien en el producto en sí, o bien en el metricado del evento. Eché un ojo a las versiones que desplegamos en ese rango de fechas y no vi nada en principio que pudiera ser la causa. ¿Quizás habíamos roto algo sin saberlo mientras desarrollábamos alguna funcionalidad adyacente? El siguiente paso fue movilizar al equipo de QA para que repasasen esa funcionalidad de arriba a abajo y pudiéramos descartar el error de metricado. Lo hicimos, y todo parecía funcionar correctamente. En ese momento, el equipo de Data apuntó también un dato relevante. No sólamente había caído el volumen de eventos, también las visitas a los puntos de origen. ¿Quizás las cohortes recientes de usuarios eran distintas a las anteriores y expresaban un comportamiento distinto? Pasé a consultar con nuestro equipo de adquisición y me informaron que en principio no había nada raro. Estábamos viviendo la estacionalidad típica de esta época. Sin embargo, desde el producto, estábamos observando un comportamiento claramente distinto. ¿Quizás había algún problema en nuestra API que estaba empeorando la experiencia? Acudí entonces a nuestros ingenieros de plataforma e infraestructura para que echáramos un ojo a los tiempos de respuesta y códigos de error de los últimos días. Para mi desgracia, todo estaba en orden. Debía continuar la búsqueda. En este punto, ya quedaban pocas alternativas. La opción nuclear, a la que habíamos recurrido en alguna ocasión, era hacer rollback a la versión previa a la caída en métricas y comparar en un test A/B contra la versión de producción. Afortunadamente, detectamos el problema pronto, por lo que era algo que podíamos hacer sin causar demasiado caos. Simplemente tendríamos que detener algunos tests en marcha, y perder unos días esperando confirmar o descartar que el fallo estuviera en la aplicación. Ya lo teníamos todo listo para pulsar el botón, cuando se me ocurrió una hipótesis descabellada. Esta funcionalidad en concreto vive de un algoritmo de recomendación que utilizamos tanto en nuestro producto como en una web externa. ¿Y si había ocurrido algo en ese rango de fechas que había alterado el contenido que estábamos recomendando a los usuarios? ¿Y si resultaba que este estaba generando menos engagement de lo que era habitual? La solución inesperadaMe puse en contacto con el equipo que lleva la web y pregunté por el tráfico en esos días. Y justo ahí, vimos que la web había tenido un cambio de comportamiento, pero a la inversa; un subidón de tráfico enorme por cazar una tendencia lateral a nuestro negocio principal. Sin embargo, observando el tráfico, no era fácil relacionar una cosa y la otra; una subida por un lado, y una bajada por otro. ¿Cómo podíamos hacerlo? Filtrando el tráfico de la web, por el dispositivo y sistema operativo de nuestros usuarios. Cuando lo hicimos, descartando el tráfico móvil y aislando a los usuarios de Windows, de donde viene el 95% de nuestro consumo, ahí estaba. Justo la misma curva descendente que me había hecho iniciar la investigación. Lo que pasó es que esa tendencia temporal nos alteró el algoritmo de recomendación. Los usuarios que pasaron esos dos días para consumir un contenido concreto, y que nada tenía que ver con nuestros casos de uso tradicionales, dieron peso en el algoritmo a piezas de contenido que para nada tenían encaje con nuestro perfil típico de usuario. Así, cuando estos entraban a la vista donde se lo mostrábamos dentro de nuestro producto, lo utilizaban mucho menos. Y tampoco volvían, agrandando el agujero según pasaba el tiempo. Lecciones aprendidasCancelamos inmediatamente el rollback y ajustamos el algoritmo para prevenir futuros desbalanceos. La investigación, que duró tres días intensos, me dejó tres aprendizajes fundamentales:
Tras implementar los ajustes necesarios, las métricas volvieron a la normalidad. Y yo, finalmente, pude descansar. 😅 |
Similar newsletters
There are other similar shared emails that you might be interested in: