lunes, 27 de junio de 2016

Caso Detallado: Aumentar el rendimiento de los anuncios on-line usando el algoritmo Apriori

 Los anuncios on-line atraviesan un momento muy interesante si los comparamos con los medios tradicionales como la prensa y TV.

        Los anuncios web son bastante baratos en esa comparación y ofrecen buenos resultados. En este caso trataremos de optimizar el rendimiento de anuncios on-line dinámicos destinados a la venta de un producto utilizando Data Mining y el algoritmo de Apriori. Como ejemplo de estos banners destacaríamos Google ads.

        El Data Mining puede ser utilizado en el mundo de los anuncios web en distintos niveles. Desde la perspectiva del minero, ese mundo es un dominio muy interesante ya que ofrece una gran cantidad de datos, producidos de forma acelerada con una gran cantidad de detalles.

        Cabedestacar que este aumento del rendimiento de los anuncios on-line se ha realizado sobre datos en vivo. Veremos como de efectiva es esta optimización.

        Una vez que se conoce el objetivo del negocio vamos a ver qué datos nos serán útiles. Estos datos serán guardados en ficheros de texto, en logs, los cuales pueden ser fácilmente preprocesados para ser analizados en distintos modelos.

        Para este problema distinguimos:

        -Banners dinámicos: cambian a lo largo del tiempo en función de las franjas horarias, el día de la semana, época del año, etc.

        -Contextualidad: es otra gran capacidad de los anuncios on-line. También cambian en función del contexto que le rodea. Por ejemplo en foro sobre Android ofrecer distintos dispositivos.

        -El camino del usuario (user tracking): Monitorizar la actividad del usuario, como puede ser con cookies.

        -Tratamiento uno a uno: En realidad una campaña publicitaria puede estar destinada a un específico usuario basándose en sus intereses y necesidades. Por ejemplo si encontramos que un usuario está buscando comprar un coche podemos poner anuncios relativos desde ese preciso instante. Aunque también debemos considerar que una vez ha comprado el coche, sus intereses cambian rápidamente.

        -Volumen de datos y su disponibilidad: se obtienen a, o casi, tiempo real.

        -Modelo de comprobación dinámico: va cambiando a lo largo del día, a medida que se va adoptando a con los datos obtenidos a tiempo real.

El experimento


        Este experimento se ha modelado con el concepto del carrito de la compra para los banners de una página web real. De esta manera, el carrito se irá llenando de los diferentes anuncios en los que un usuario haga click. Por tanto, asumiremos que cuando un usuario consulta varios anuncios diferentes siguiendo cierto orden, decimos que existe una especie de correlación.

        Los servidores de anuncios son una aplicación software compleja que gestiona todos los anuncios que se necesiten en una serie de websites. Estos servidores realizan campañas de publicidad teniendo en cuenta factores como la franja horaria, el número de veces que ha sido invocado el mismo anuncio o el número de veces que se ha clicado en cierto tiempo. En realidad esta selección se puede mejorar usando el algoritmo A priori.

        Cada vez que un usuario hace click en un banner, se almacena qué banner es, y cuándo se ha accedido a él gracias a las cookies del navegador, generando un log de la actividad completa sobre los anuncios a los que ha accedido.

Extracción de reglas


        Entonces dada una serie de anuncios anidados A1,…,An ; si el usuario después accede otro banner B podemos obtener reglas del tipo A1&A2&…An->B.

        Una vez que pasa el ciclo que estimemos, se recopilan los logs y se obtienen esas reglas, que tienen en concreto la siguiente forma:

            55577 <- 75860 (0.1/96, 22.9)
            52976 <- 54808 54807 (0.0/51, 37.3)

        Donde considerando la primera regla, 55577 y 75860 con los ids de los anuncios, 0.1 establece el refuerzo de las reglas en porcentaje al total de todos los datos de entrenamiento, 96 es el número actual de carritos usado para generar la regla y 22.9 es el porcentaje de confianza de la regla.

        Una vez generadas las reglas son procesadas adecuadamente para servir de entrada a los servidores de anuncios.

Aplicando las reglas


        Entonces una vez que el servidor obtiene las reglas, las procesa de la siguiente manera:

        POR cada banner B
                    SI hay una regla del estilo : A1,..,An -> B entonces
                                SI el usuario tiene el mismo tracking y no ha clicado aun en B
                                            Elegir B con probabilidad: conf(B)*decay(B)
                                End;
                    End;
                End;

        La probabilidad es calculada directamente proporcional a la confianza de la regla, teniendo en cuenta que si un banner ha sido mostrado varias veces sin ser clicado, se reducirá esta probabilidad (decay).

Midiendo el rendimiento


        En este caso mediremos la mejora de los CTR de un banner específico, es decir, el ratio vistas/exposiciones de un anuncio.

        Supongamos el descubrimiento de una regla A->B, entonces separamos la base de clientes en dos conjuntos: Ca (los que ya han pinchado en A) y Ca’(el resto de usuarios).
        Se realiza el experimento enviando el banner B a ambos conjuntos en el mismo momento a lo largo de un periodo determinado.

Experimentos: datos y resultados


        Recopilaron más de 30 millones de lineas de logs cada día, llegando a almacenar información incluso del id del ususario, posición en la página, etc.Y Usaron 60 millones de lineas recopiladas a lo largo de un mes de la forma presentada anteriormente. El periodo escogido fue el de un dia, procesando la información adquirida ya entrada la noche.
        Utilizando la notación CTR(A) como el ratio de clicks/invocaciones y CTR(A|B) como los CTR del banner A para todos los usuarios que ya han clicado en B.
 

Tabla mensual de resultados
DayImpr(31)Impr(189|31)Clicks(189|31)CTR(189|31)Lift
1610785200.0%0.00
2457023100.0%0.00
3359995100.0%0.00
481270000.0%0.00
589166100.0%0.00
6101865000.0%0.00
7519119400.0%0.00
85426096598212.4%3.58
9369882114212911.3%3.25
10419101901112.2%3.52
1131345083310212.2%3.53
12137743111312811.5%3.31
131302381027888.6%2.47
1422595811541079.3%2.67
15256673107711210.4%2.99
163312031022848.2%2.37
173589061013929.1%2.62
182737230904738.1%2.33
19152246850718.4%2.41
201714699129710.6%3.06
2134350114501208.3%2.38
2222461413671259.1%2.66
2324654112661128.8%2.55
241636151124958.5%2.43
25117600922828.9%2.56
2647568718719.9%2.85
2751261825657.9%2.27
2811727292410010.8%3.12
29119402817607.3%2.12
30106071736679.1%2.62
3172803213.1%0.90


        La primer columna hace referencia al día del mes, la segunda columna indica el numero de invocaciones del banner numero 31 cada día. La tercera y cuarta columna contienen el numero de invocaciones del banner numero 189 una vez que han visto el numero 31 y el número de usuarios que han clicado en ese anuncio una vez han visto el anuncio número 31 respectivamente. La quinta columna presenta el porcentaje de clicks en relacion al número de veces que ha sido expuesto el banner. La última columna representa el aumento del rendimiento, es decir, es la división entre el número de CTR de la columna 5 entre el CTR de los usuarios que han visto el anuncio 189 para el resto de casos.

        Importante es señalar que el sistema no logró adaptarse correctamente en la primera semana, de ahí los resultados.

Resultados para otro website en una quincena, detalles para cinco banners optimizados.

Banner idOptimizad CTRNon-optimized CTRLift
529760.151%0.073%2.06
754361.195%0.869%1.38
649318.025%1.634%4.91
525862.759%1.618%1.71
759264.498%0.938%4.80


        La primera columana es el numero del banner, la segunda y tercera columnas representan los CTR para los distintos modelos y por último la mejora obtenida.


Conclusiones


        1. Hemos logrado un incremento del rendimiento considerable con un modelo de lo más sencillo, podemos imaginar que si tenemos en cuenta más factores, se puede convertir en una herramienta muy interesante.

        2. Esta aproximación puede tener varias aplicaciones en distintos campos, y en concreto en este puede servir de base o complemento de numerosos sistemas.

        3. Como motivación al lector, destacamos el uso de esta técnica en el sector de los anuncios en dispositivos móviles.
, ,

No hay comentarios:

Publicar un comentario