Cómo los científicos de datos de VK hacen que la publicidad sea efectiva

El año pasado, Artem Popov, el líder del equipo de VK Performance Advertising, habló con nosotros. Compartimos contigo la transcripción de la transmisión y la grabación.








Mi nombre es Artem, soy el jefe de publicidad de rendimiento en VK. Nuestro equipo está comprometido con el hecho de que, por un lado, hace que la publicidad en VK sea más efectiva, más rentable para los anunciantes, más interesante para los usuarios. Este es un gran objetivo del producto.



Por otro lado, técnicamente, somos un equipo de ingenieros de ML, desarrolladores bastante comunes que dedican mucho tiempo a tareas relacionadas con la ciencia de datos y ML. Hoy quiero hablar de estos dos temas, porque los dos me interesan, me gusta hablar de ellos. Espero mucho que tengamos una comunicación en vivo; si alguien está viendo la transmisión, será más interesante si escribe preguntas.



En general, quiero dividir nuestra conversación en dos bloques. En el primero, hablaré de las diferentes tareas que se encuentran en la publicidad en la intersección con la ciencia de datos. Es decir, por qué la publicidad puede ser un área interesante para un especialista en ML, para un especialista en ciencia de datos. Por otro lado, quiero compartir mi experiencia de pasar a un proyecto de ML de ingeniería, lo que estudié durante esos cuatro años que estuve haciendo ML como parte de la historia de la ingeniería. Y hablar de qué cosas se encuentran en las grandes empresas, pero que no se discuten en diferentes cursos; ¿Cuáles son las habilidades que son difíciles de aprender cuando estás estudiando ciencia de datos o ML en una universidad o educación en línea? Intentaré dedicar media hora a cada tema.



En primer lugar, hablaré de la publicidad, las tecnologías publicitarias, la publicidad computacional como campo de investigación, actividades científicas y de ingeniería, es decir, un campo de conocimiento; qué tareas hay y por qué es divertido hacerlas cuando hay PNL y otras cosas exageradas, pero no se habla a menudo de la publicidad.



El desafío general es: tenemos un conjunto de anunciantes. Pueden ser cualquier usuario que quiera promover el conocimiento sobre su producto, su negocio. Todos tienen sus propios objetivos diferentes. Alguien solo quiere mostrar su anuncio a tantas personas como sea posible; Por ejemplo, la Coca-Cola condicional tiene la tarea de hacer que todos conozcan su marca, para que todos recuerden que hay tal bebida, que es año nuevo, y no hay otra alternativa que esta bebida si vas a la tienda. Otro buen ejemplo es Fairy: ¿cuántos otros detergentes conoces además de él? Todo es conciencia de marca; Los grandes anunciantes establecen un objetivo: hacer que todos sepan que hay un determinado producto en sus cabezas.



Hay otros objetivos. Por ejemplo, más aplicados, los llamados objetivos de rendimiento. Esto es cuando el anunciante quiere que sigas el anuncio y realices una acción. Por ejemplo, fueron al sitio y dejaron una solicitud de préstamo. O compraste algo en una tienda en línea. Etc.

En general, la tarea de la publicidad es atraer nuevos usuarios a una empresa (los denominados clientes potenciales) y hacer que estos usuarios hagan algo útil para el anunciante y generen beneficios para su negocio.



Tenemos una plataforma, un lugar donde le permitimos mostrar anuncios. En el caso de VK, se trata de una cinta; en el caso de algún otro sitio, esto podría ser, por ejemplo, un banner. El propósito del sitio es ganar dinero con la publicidad; vende la atención de los usuarios por dinero. Gracias a esto, VK sigue siendo un proyecto gratuito; Se podrían pensar en otros modelos de monetización, pero el modelo de anuncios funciona bien para un servicio similar.



Los usuarios generalmente no quieren ver anuncios: no es por eso que vinieron al servicio. Pero resulta que el contrato publicitario funciona exactamente así: el usuario paga con su atención por utilizar el servicio. Por eso, nuestro objetivo como red publicitaria es asegurarnos de que los usuarios no se enojen, la publicidad no los aleje o espante.



Sería absolutamente maravilloso si los anuncios resultaran ser útiles para el usuario, es decir, los negocios y publicaciones promocionados resultaran ser tan interesantes para el usuario como el contenido normal. Esto es generalmente perfecto.



Tenemos tres fuerzas: el usuario, el anunciante y el sitio. Debemos establecer esa interacción entre ellos para que cada uno de ellos cumpla con sus objetivos. Imagínese: va al servicio VK, abre el feed y ve el lugar donde insertamos anuncios. Hay muchos anunciantes que solicitan este recurso y quieren que se muestren exactamente sus anuncios, pero ¿cómo elegir el anuncio que se debe mostrar en un momento dado a cada usuario?



El método estándar que se utiliza activamente en la publicidad es la subasta en línea. Es posible que haya visto diferentes opciones de subasta en la vida real o en Ebay, por ejemplo: podría ser una situación en la que todos pueden ofertar. Un usuario dice: apuesto 10 rublos, entra otro, apuesta 20, el tercero 100, y así sucesivamente. Sin embargo, no es práctico realizar subastas del tipo "quien pagó más, ganó" en el entorno de Internet, por lo que se utilizan subastas cerradas. En este caso, cada uno de los participantes realiza una apuesta en silencio. En sentido figurado, todas las hojas de papel con las apuestas se colocan en el bote, y luego alguien viene, las desarma, encuentra la hoja de papel con el número más alto y dice: ganaste.



Digamos que hay dos anunciantes, por ejemplo, Nike y Coca-Cola. Uno de ellos está dispuesto a pagar 5 kopeks por cada exhibición, y el otro - 10. El otro gana, y el desarrollo posterior de la historia depende del tipo de subasta. Hay dos tipos principales de publicidad: subastas de primer y segundo precio. En una subasta de primer precio, el ganador paga el precio que ha nombrado. Por ejemplo, Coca-Cola dice, "Pagaré 10 kopeks", sin ver las tarifas de otros usuarios; la subasta dice: OK, 10 kopeks. Nike dice "5 kopeks", Coca-Cola gana y paga 10 kopeks.



Sin embargo, también hay una subasta de segundo precio: en este caso, el ganador debe pagar exactamente tanto dinero como sea necesario para ganar todas las demás ofertas. En nuestro caso, se puede utilizar un paso de 1 kopeck, por ejemplo. Imagínese la situación: llegan las mismas Coca-Cola y Nike. Coca-Cola dice: "Estoy dispuesto a pagar 100 rublos por el espectáculo" y Nike dice: "Estoy dispuesto a pagar 1 kopeck". Y Coca-Cola se ofenderá mucho al saber que podría haber ganado pagando 2 kopeks en lugar de 100 rublos. La subasta de segundo precio se considera más justa para todos los participantes.



En base a esto, una determinada propiedad se considera muy importante para un anunciante: poner siempre un precio máximo honesto en las subastas que está dispuesto a pagar por una impresión. Esto es necesario para construir cualquier estrategia comercial competente.



En la subasta del primer precio, debe idear una estrategia astuta, piense: aquí, tales y tales anunciantes pueden ofertar tanto, pero en las subastas del segundo precio esto no es necesario. Todos colocan la tarifa que están dispuestos a pagar como máximo. Si ganó, paga exactamente la misma cantidad o menos; si no es así, no estaría dispuesto a pagar más. Esta es una gran propiedad de este tipo de subasta, que se ha extendido de la teoría al uso generalizado en los sistemas publicitarios.



Sin embargo, ese no fué el caso. Parecería, desde el punto de vista teórico, que la subasta de segundo precio es muy buena, y sus propiedades permiten que sea muy práctica. Pero, de hecho, cuando nos enfrentamos a sistemas reales, resulta que hay varios factores que aseguran la popularidad de las subastas de primer precio; por alguna razón, la gente prefiere usarlas en lugar de las subastas de segundo precio. Uno de los dos puntos principales sobre los que me gustaría decir es que la subasta de segundo precio no es transparente. Es decir, cuando una subasta de publicidad es organizada por alguna plataforma de la que no sabes nada - simplemente participas como anunciante - te dice que tu puja de (digamos) 10 kopeks ganó y tienes que pagar el segundo precio - déjalo ser 9 kopeks. Este segundo precio es opaco; no está claro de dónde vino. En general,el sitio puede engañar fácilmente al anunciante haciendo las llamadas apuestas falsas. También existen mecanismos justos para ofertas adicionales, por ejemplo, "precio inverso": usted declara que una subasta en particular no se puede vender por menos de 9 kopeks, y aparece una oferta tan honesta. Pero la transparencia es muy importante y su falta de transparencia desanima a los anunciantes. Cuando no sabe lo que está sucediendo bajo el capó de un sistema de publicidad, nuevamente tiene que idear algunas estrategias: no puede simplemente tomar y utilizar el enfoque de establecer solo los precios que está dispuesto a pagar.y su ausencia apaga a los anunciantes. Cuando no sabe lo que está sucediendo bajo el capó de un sistema de publicidad, nuevamente tiene que idear algunas estrategias: no puede simplemente tomar y utilizar el enfoque de establecer solo los precios que está dispuesto a pagar.y su ausencia apaga a los anunciantes. Cuando no sabe lo que está sucediendo bajo el capó de un sistema de publicidad, nuevamente tiene que idear algunas estrategias: no puede simplemente tomar y utilizar el enfoque de establecer solo los precios que está dispuesto a pagar.



El segundo punto es que la subasta de segundo precio funciona bien en un entorno ideal con solo una subasta a la vez. En un sistema de publicidad real, millones de ellos ocurren por segundo, de manera convencional. En tales condiciones, ya es necesario idear estrategias, y la idea de que el anunciante siempre tenga una estrategia simple y preparada para el comercio perfecto en una subasta se rompe.



Me gustaría hablar sobre los momentos que surgen en el contexto de las tareas de diseño de subastas: cómo se pueden diseñar más interesantes, más útiles, etc. Quiero mencionar dos puntos. En primer lugar, en la subasta, al parecer, todo debería suceder en función del valor máximo, la cantidad máxima de dinero que la red publicitaria ganará con la venta de espacio; sin embargo, en realidad, el valor que se vende en una subasta se puede expresar de diferentes maneras para el sitio, no solo en la cantidad que el anunciante está dispuesto a pagar. Por ejemplo, es muy importante para nosotros que los usuarios no se enfurezcan con nuestra publicidad; es deseable que les sea útil. Como parte de la tarea de diseñar una subasta, debe generar métricas adicionales para clasificar los anuncios. Esto da como resultado una serie de métricas: beneficio esperado, la probabilidad de una reacción negativa del usuario, etc.



La segunda variante del problema es una subasta "no codiciosa". En este caso, entendemos que nosotros, como red publicitaria, podríamos ganar más si no siempre vendiéramos espacios publicitarios al ganador, sino que los distribuyéramos entre todos los anunciantes de forma que maximizamos todos sus presupuestos publicitarios, dejando algunos luego honestidad en la subasta. Es decir, si tenemos varios anunciantes, y uno de ellos es más rico que los demás y compra constantemente subastas, entonces quizás no siempre deberíamos darle la oferta del ganador. Un "problema de mochila", tal vez recuerde los de los cursos sobre programación o algoritmos de estructura de datos, si tuviera tal historial. Esta es una tarea muy interesante, es muy interesante hacerla y hay artículos científicos al respecto.



En VK estamos llegando a esta tarea; Tenemos muchas tareas, y otra gran parte de las tareas que están en publicidad ya están más cerca del ML. Debido al hecho de que tenemos que cumplir con diferentes objetivos de los anunciantes, necesitamos predecir con qué probabilidad el usuario tomará esta o aquella acción para utilizar este conocimiento en la elaboración de la estrategia de oferta para la subasta.



Es decir, el anunciante dice: quiero tantas compras en mi tienda como sea posible, para gastar mi presupuesto lo mejor posible. Nosotros, como plataforma publicitaria, estamos pensando en cómo destacar a aquellos usuarios que tienen más probabilidades de comprar algo en la tienda. Surge un problema típico de ML. Clasificación binaria: '1': el usuario hizo clic en el anuncio e hizo algo bueno (compró), '0': el usuario ignoró el anuncio. Con base en este problema, necesitamos construir una clasificación binaria, donde en la salida usamos la probabilidad de un evento útil como una parte de los cálculos adicionales de qué oferta usaremos en la subasta. La tarea suena muy trillada en términos de AA, como, tómala y hazla. Pero en la vida real, tal tarea tiene muchas dificultades, y le contaré algunas. El principal esque la publicidad suele ser un proyecto de gran carga. Tanto en términos de datos como en términos de carga. Debe responder a una solicitud muy rápidamente. La ventana es, digamos, 100 milisegundos, y necesita tener tiempo para responder. En base a esto, se nos imponen ciertas restricciones, específicamente, sobre cómo, en ingeniería, los modelos que usamos para predecir la publicidad pueden funcionar. Puedes inventar muchas cosas interesantes, crear redes neuronales complejas que, a través de varias capas, resalten interacciones no lineales entre características, pero en la vida se requiere que todo esto funcione muy rápido.que utilizamos para predecir anuncios. Puedes encontrar muchas cosas interesantes, crear redes neuronales complejas que, a través de varias capas, resalten las interacciones no lineales entre características, pero en la vida se requiere que todo esto funcione muy rápido.que utilizamos para predecir anuncios. Puedes inventar muchas cosas interesantes, crear redes neuronales complejas que, a través de varias capas, resalten las interacciones no lineales entre características, pero en la vida se requiere que todo esto funcione muy rápido.



Está entrenado en grandes cantidades de datos. La tarea resulta ser a gran escala, con conjuntos de datos de terabytes. En base a esto, generalmente tiene que hacer cosas como computación distribuida, entrenamiento de modelos distribuidos, pensar qué modelos usar. La publicidad utiliza tradicionalmente modelos lineales como regresiones logísticas o aumento de gradiente; a veces cambian a cosas más geniales como máquinas de factorización. Es decir, la elección de modelos es grande, pero generalmente se usan modelos bastante simples, debido a la gran carga.



Otro punto cercano al ML: utilizamos datos que están extremadamente desequilibrados en términos de retroalimentación. Hay una unidad por cada 10,000 ceros. Cómo entrenar máquinas ML en estas condiciones es una buena pregunta. Tienes que usar diferentes trucos; el principal es precisamente la formulación del problema: no intente predecir si habrá un clic (compra) o no, por ejemplo, sino utilice enfoques relacionados con las probabilidades, suavizar los datos con baja cardinalidad al máximo, etc. Se puede pensar mucho, pero la dificultad es que los eventos positivos rara vez ocurren en la tarea.



Cuando hace clic en un anuncio y compra algo, no siempre lo hace de inmediato. Es decir, muy a menudo los eventos dirigidos que los anunciantes quieren suceden con una gran demora. Esto no puede ser solo una compra, por ejemplo, puede ser registrarse en el juego y llevar a un personaje al nivel 10, o aprobar una solicitud de préstamo. Este tipo de cosas pueden suceder en unos pocos días. Y, cuando necesitamos entrenar modelos, que, según el anuncio, deberían decir ahora mismo que el usuario hará algo, pero, de hecho, recibimos comentarios positivos solo unos días después de que sucedió algo, y esto crea problemas adicionales. Para hacer frente a estos problemas, hay varias soluciones diferentes que han surgido en la ciencia y la práctica. Qué complejidad tan divertida.



Otro punto: cuando un usuario ve anuncios de determinados productos, puede entrar en contacto con ellos desde varios canales de marketing. Por ejemplo, salió a la calle, vio una valla publicitaria "Taxi VKontakte"; comenzó a hojear el feed - también hay un anuncio de "Taxi VKontakte", fue a otro servicio - y también hay un anuncio de "Taxi VKontakte", del servicio de publicidad Yandex o Google. Dices - sí, ya lo entiendo, pon la aplicación. Y después de eso Yandex, VK, Google, la valla publicitaria necesita averiguar de quién es la participación en este proceso, en una acción útil para el anunciante, el porcentaje.



Este proceso se denomina "atribución": la cuestión de asignar qué contacto con el anunciante influyó de manera tan fuerte en su decisión de realizar la acción específica. Por lo general, se utilizan modelos simples, por ejemplo, "atribución al último clic": el último anuncio en el que hizo clic recibe todos los premios. Pero luego resulta que no es rentable participar en el primer "contacto frío": mostrar anuncios a un usuario que no está familiarizado con el producto. En base a esto, existen muchos modelos de AA diferentes (incluidos) que le permiten distribuir mejor las ganancias de las impresiones. Usan, entre otras cosas, chips de tipo atención, algunas cosas más interesantes de las redes neuronales. Tarea genial. Y su objetivo, al final, es regatear en la subasta mejor, más correctamente, más correctamente y así sucesivamente.



Cuanto mejor comprenda quién influyó en la decisión de compra final, mejor comprenderá cuánto entregar en un momento dado. Como resultado, toda la industria se está moviendo hacia la comprensión de que trabajar con una predicción de la probabilidad de que compre algo es menos efectivo que trabajar con una idea del grado de influencia en la decisión de compra. Quizás ya estaba listo para comprar el juego de mesa que visitó. Pero la publicidad online está empezando a ponerse al día. Tal vez este anuncio no hubiera existido si todos decidieran inicialmente que comprarías este juego de todos modos, y no se necesita publicidad adicional; ya has tomado una decisión. Pienso en el término "prueba de incrementalidad" y todavía se relaciona con el dominio de ML de "inferencia causal". Es decir, estamos pasando de la tarea de predecir la probabilidad de realizar una acción objetivo a predecir el impacto, es decir,la diferencia en la probabilidad de lo que comprará después de ver el anuncio, menos lo que ya compró. Esta también es una transición muy interesante, una transición a una nueva idea de cómo trabajar, cómo predecir algunos eventos.



En general, hay muchas tareas en la publicidad y casi todas se derivan del deseo inicial de cumplir con la tarea del anunciante. El objetivo "Quiero tantas compras en mi tienda como sea posible" se convierte en una secuencia de ofertas en la subasta, porque todos los anunciantes se eliminan en la subasta por impresiones. Esta es una estrategia. Y necesitamos hacer la transición más genial del objetivo original a la secuencia de apuestas. Esto implica el deseo de comprender el comportamiento del usuario, extraer intereses comerciales, orientar anuncios automáticamente, recopilar creatividades (así es como se ven los anuncios), etc.



Si alguien está interesado en aprender más sobre esto, tengo una charla en una reunión, donde hablo en detalle sobre lo que un científico de datos puede hacer en publicidad y por qué trabajar en ello puede ser interesante. Resultó ser un descubrimiento para mí. Inicialmente, cuando entré por primera vez en la industria, pensé: bueno, publicidad, qué es interesante. Pasó el primer, segundo, tercer año, y me di cuenta de cuántas tareas interesantes hay y de lo interesante que es hacerlo desde el punto de vista de un ingeniero.



Ahora pasaré a ML en producción. Ahora ha realizado cursos de aprendizaje automático o estudió en la universidad. Usted es un gran especialista en Kegel, digamos, y es increíble hacer clic en tareas de análisis de datos en una competencia. Llegas a una empresa real en la que se está desarrollando un gran producto de forma iterativa y coherente. Y aquí se produce un desguace. Resulta que simplemente no tiene muchas habilidades que le gustaría poseer en el momento en que ingresa a la industria. Nadie te enseñó esto ni te explicó cómo funciona en realidad; cuáles son las dificultades en la industria, cuán diferente es resolver problemas con una formulación clara. Si en el campo de la programación todavía se habla mucho de esto, en el campo de la ciencia de datos no es suficiente.



¿Cuáles son los desafíos que enfrentan los recién llegados a los equipos de productos que han estado trabajando en el mismo producto durante mucho tiempo, por ejemplo, hacer que la publicidad VK sea efectiva? Por "novatos" me refiero a mí mismo, incluido; He estado haciendo esto durante cuatro años y todavía me siento como un novato. Esto es algo muy complejo e interesante de entender.

Lo primero que quiero decir es el deseo de comenzar una tarea existente de inmediato con algún método progresivo genial que se puede encontrar en la ciencia; deseo de idear una nave espacial que lo haga todo genial a la vez. En la vida real, en el campo del desarrollo de productos, la ciencia de datos es un lugar donde podemos predecir muy mal qué método funcionará al final. Es muy difícil trabajar con los requisitos del producto original, porque no conoce la forma de resolver el problema.



Tienes una formulación de tareas: por ejemplo, crear un sistema de moderación automático que debería resolver algunos problemas iniciales. Puedes correr y encontrar algún artículo super-top, en el que la tarea se resuelva a la perfección, dale cuerda a los transformadores. O puede hacer una heurística simple que mire cuántas veces aprobamos a un anunciante determinado antes, tomar una parte de este número, comparar con el 70%, por ejemplo, y decir: este a menudo se aprobó antes. Tal cosa puede ayudar enormemente a una empresa inmediatamente, brindar información útil. Y un sistema complejo lleva mucho tiempo y no es un hecho que valga la pena. En ciencia de datos, debe llegar rápidamente a esta idea: está trabajando constantemente en el modo de hipótesis, no sabe qué funcionará y, para reducir los riesgos y brindar valor al usuario final y al negocio lo más rápido posible,necesita hacer frente a las tareas desde una solución simple hasta una compleja. A menudo, para estudiar, comenzando con heurísticas, sin ningún ML, puede que no haya datos para ello. Esto puede sacudir al científico de datos que esté interesado en hacer girar modelos neuronales. Pero sin esto, no puede obtener la línea de base inicial, un pequeño paso desde el que puede comenzar. Puede pasar mucho tiempo haciendo algo que no funcionará en absoluto.



Lo más difícil y el trabajo inusual en la industria es que después de haber hecho un modelo y ponerlo en producción, su vida apenas comienza. Necesita ser apoyado activamente y cambiado. Con la modelo, mientras viva, hay una gran variedad de cambios. En primer lugar, existe algo llamado sesgo de servicio de entrenamiento.



De una manera simple: si un modelo funciona en producción con ciertos datos, o en un conjunto de conjuntos generales de tareas que su modelo debe resolver, y fue entrenado en otros datos obtenidos de otras formas, entonces a menudo ocurren errores en este punto y el modelo comienza a funcionar mal. Idealmente, necesita construir un sistema en el que los modelos, durante el análisis y durante la preparación inicial, se entrenan con los mismos datos con los que trabajarán en producción.



En segundo lugar, en cualquier momento alguna característica, o el propio modelo, puede empezar a funcionar de forma incorrecta, inadecuada. Tienes un repositorio que almacena características; algo ha cambiado, en lugar de ceros, comenzó a fluir nulo, en lugar de "-1", se empezaron a devolver otros valores; o alguien multiplicó estos valores por 100 porque pensó que eran porcentajes, no fracciones. Y su modelo de repente comienza a funcionar mal. Necesita notar estos cambios de alguna manera. La cualidad más genial del modelo ML es el error silencioso; ella nunca dirá que algo salió mal; siempre dará algún resultado, dependiendo de lo que le diste. Basura dentro basura fuera. Esto debe ser monitoreado de alguna manera. En base a esto, hay una gran cantidad de cosas que deben ser rastreadas mientras el modelo se ejecuta en producción. Necesita construir un sistema de monitoreo, monitorear,para que la distribución de funciones no cambie mucho, etc. Tienes que entender que el modelo puede dar juego completo en cualquier momento, y de alguna manera vivir en estas condiciones. ¿Qué pasa si estos resultados retiran dinero directamente de nuestros usuarios, haciendo una oferta en una subasta de anuncios, negociando en un intercambio o lo que sea? Hay muchas formas de hacer esto, pero es importante pensar en ello primero.



En base a esto, ¿cómo cambia la vida de un científico de datos, que llega a un entorno donde es necesario desarrollar modelos iterativamente? Me parece que primero es necesario ser un buen ingeniero y, en segundo lugar, un buen investigador. Debido a que su código y sus conclusiones, la información que recibe durante la investigación y el análisis, sus modelos, todo lo que es producto del trabajo de su científico de datos, no se utilizará 2 o 10 veces. Mucha gente verá cómo se construyen los experimentos, cómo se obtienen los resultados, por qué, dónde, cómo funciona y cómo se utiliza en la producción. Por tanto, lo que más les falta a las personas que llegan a la industria desde cero - por ejemplo, de la universidad, dejándose llevar por el tema de la ciencia de datos, o la analítica, o ML - son las habilidades de ingeniería. En primer lugar, un científico de datos es un subtipo de desarrollador.También trabaja con código, también trabaja con algo que luego funciona en producción en un entorno cambiante que la gente usa. Ellos leerán tu código. Deberá encontrar soluciones eficaces, bien respaldadas y comprobables. Esta es la parte de la que carecen muchos candidatos. Por lo tanto, si es un principiante en la ciencia de datos, preste mucha atención a las habilidades de los desarrolladores. Cómo escribir código eficiente, comprensible y bien mantenido; soluciones de ingeniería para construir de manera efectiva procesos de intercambio de datos. Todo esto te ayudará mucho en tu carrera.del que carecen un gran número de candidatos. Por lo tanto, si es un principiante en la ciencia de datos, preste mucha atención a las habilidades de los desarrolladores. Cómo escribir código eficiente, comprensible y bien mantenido; soluciones de ingeniería para construir de manera efectiva procesos de intercambio de datos. Todo esto te ayudará mucho en tu carrera.del que carecen un gran número de candidatos. Por lo tanto, si es un principiante en la ciencia de datos, preste mucha atención a las habilidades de los desarrolladores. Cómo escribir código eficiente, comprensible y bien mantenido; soluciones de ingeniería para construir de manera efectiva procesos de intercambio de datos. Todo esto te ayudará mucho en tu carrera.



El segundo consejo y lo segundo que separa a los científicos de datos geniales de los que están trabajando duro es la inmersión en el contexto del producto y en la parte de ingeniería del entorno de su modelo. Digamos que está desarrollando un modelo y, como científico de datos, es fácil para usted decir: "Mi trabajo es desarrollar el modelo, todo lo demás está fuera de mi responsabilidad. Enseño modelos, ese es mi negocio. El backend los integrará, el ingeniero de datos preparará los datos, el probador los probará y el gerente de producto decidirá cómo usarlos ". Pero una gran cantidad de implicaciones y formas de hacer que el modelo sea más atractivo y valioso están más allá del proceso de diseño del modelo en sí. Ejemplo: si está clasificando los resultados de búsqueda, entonces está clasificando los documentos que vienen de fuera; hay algún tipo de selección de candidatos. Si sabe cómo funciona esta selección, puede comprender fácilmenteque el cuello de botella en el trabajo no es que el modelo no funcione bien, sino que se envían a la entrada documentos incorrectos, poco interesantes e incompletos. Por otro lado, si sabe que en su producto su modelo puede, bajo ciertas circunstancias, funcionar de manera diferente a lo que le gustaría, pero es muy difícil hacer que esto funcione mejor, entonces puede cambiar el producto por el modelo. Podemos decir: ahora el producto está organizado de otra manera, ahora no es el usuario quien llama al modelo, sino que el modelo llama a algún tipo de herramienta automática que coordina varios parámetros que el usuario no puede seguir. La idea es que puedas cambiar el producto por el modelo y no al revés. Si está inmerso en estas áreas, entonces usted, como científico de datos e ingeniero de ML, puede generar enormes ganancias y beneficios para su producto y sus usuarios.que el modelo no funciona bien, pero que se envían documentos incorrectos, poco interesantes e incompletos para su entrada. Por otro lado, si sabe que en su producto su modelo puede, bajo ciertas circunstancias, funcionar de manera diferente a lo que le gustaría, pero es muy difícil hacer que esto funcione mejor, entonces puede cambiar el producto por el modelo. Podemos decir: ahora el producto está organizado de otra manera, ahora no es el usuario quien llama al modelo, sino que el modelo llama a algún tipo de herramienta automática que coordina varios parámetros que el usuario no puede seguir. La idea es que puedas cambiar el producto por el modelo y no al revés. Si está inmerso en estas áreas, entonces, como científico de datos e ingeniero de ML, puede generar enormes ganancias y beneficios para su producto y sus usuarios.que el modelo no funciona bien, pero que se envían documentos incorrectos, poco interesantes e incompletos para su entrada. Por otro lado, si sabe que en su producto su modelo puede, bajo ciertas circunstancias, funcionar de manera diferente a lo que le gustaría, pero es muy difícil hacer que esto funcione mejor, entonces puede cambiar el producto por el modelo. Podemos decir: ahora el producto está organizado de otra manera, ahora no es el usuario quien llama al modelo, sino que el modelo llama a algún tipo de herramienta automática que coordina varios parámetros que el usuario no puede seguir. La idea es que puedas cambiar el producto por el modelo y no al revés. Si está inmerso en estas áreas, entonces, como científico de datos e ingeniero de ML, puede generar enormes ganancias y beneficios para su producto y sus usuarios.documentos incompletos. Por otro lado, si sabe que en su producto su modelo puede, bajo ciertas circunstancias, funcionar de manera diferente a lo que le gustaría, pero es muy difícil hacer que esto funcione mejor, entonces puede cambiar el producto por el modelo. Podemos decir: ahora el producto está organizado de otra manera, ahora no es el usuario quien llama al modelo, sino que el modelo llama a algún tipo de herramienta automática que coordina varios parámetros que el usuario no puede seguir. La idea es que puedas cambiar el producto por el modelo y no al revés. Si está inmerso en estas áreas, entonces, como científico de datos e ingeniero de ML, puede generar enormes ganancias y beneficios para su producto y sus usuarios.documentos incompletos. Por otro lado, si sabe que en su producto su modelo puede, bajo ciertas circunstancias, funcionar de manera diferente a lo que le gustaría, pero es muy difícil hacer que esto funcione mejor, entonces puede cambiar el producto por el modelo. Podemos decir: ahora el producto está organizado de otra manera, ahora no es el usuario quien llama al modelo, sino que el modelo llama a algún tipo de herramienta automática que coordina varios parámetros que el usuario no puede seguir. La idea es que puedas cambiar el producto por el modelo y no al revés. Si está inmerso en estas áreas, entonces, como científico de datos e ingeniero de ML, puede generar enormes ganancias y beneficios para su producto y sus usuarios.como nos gustaría, pero es muy difícil hacer que esto funcione mejor, entonces puede cambiar el producto por el modelo. Podemos decir: ahora el producto está organizado de otra manera, ahora no es el usuario quien llama al modelo, sino que el modelo llama a algún tipo de herramienta automática que coordina varios parámetros que el usuario no puede seguir. La idea es que puedas cambiar el producto por el modelo y no al revés. Si está inmerso en estas áreas, entonces, como científico de datos e ingeniero de ML, puede generar enormes ganancias y beneficios para su producto y sus usuarios.como nos gustaría, pero es muy difícil hacer que esto funcione mejor, entonces puede cambiar el producto por el modelo. Podemos decir: ahora el producto está organizado de manera diferente, ahora no es el usuario quien llama al modelo, sino que el modelo llama a algún tipo de herramienta automática que coordina varios parámetros que el usuario no puede seguir. La idea es que puedas cambiar el producto por el modelo y no al revés. Si está inmerso en estas áreas, entonces, como científico de datos e ingeniero de ML, puede generar enormes ganancias y beneficios para su producto y sus usuarios.que el usuario no puede seguir. La idea es que puedas cambiar el producto por el modelo y no al revés. Si está inmerso en estas áreas, entonces, como científico de datos e ingeniero de ML, puede generar enormes ganancias y beneficios para su producto y sus usuarios.que el usuario no puede seguir. La idea es que puedas cambiar el producto por el modelo y no al revés. Si está inmerso en estas áreas, entonces, como científico de datos e ingeniero de aprendizaje automático, puede generar enormes ganancias y beneficios para su producto y sus usuarios.



Volviendo a la pregunta de que el AA es el ámbito de la especulación. Nunca sabemos cómo crear un gran producto, tenemos que probar diferentes caminos hacia la solución final. Por lo tanto, debe crear el flujo de trabajo de forma un poco diferente. A menudo, las personas, especialmente los ingenieros en los períodos iniciales del desarrollo profesional, piensan que todo tipo de chips gerenciales (SCRUM, Agile) son una mierda y no funcionan. Sin embargo, a menudo no funcionan realmente porque se utilizan en el contexto incorrecto. Por ejemplo, si alguna vez ingresa a un equipo de ciencia de datos de SCRUM, será difícil y doloroso para usted. De repente, resulta que la investigación se ha vuelto difícil de predecir y no sabrá cómo llegará al resultado, pero aquí, iteraciones de dos semanas, algo más, en general, la administración genera basura innecesaria. Procesos de trabajo,dentro de lo que trabajes debería ayudarte, no obstaculizar. Es decir, cuando la ciencia de datos toma y aplica métodos del desarrollo de software convencional, no siempre es eficaz.



Por lo tanto, quiero decir por separado: si trabaja como científico de datos y tiene que interactuar con diferentes personas (clientes, colegas, cooperar en el trabajo), entonces sería bueno que se ocupara de comprender cómo construir mejor un proceso colaborativo, actividad de equipo autoorganizado. Una buena forma de entender cómo hacer esto es acudir a una comunidad llamada LeanDS. Allí se reunieron personas interesadas en comprender cómo construir mejor los procesos de trabajo en problemas de ML en un entorno de desarrollo de productos. A partir de ahí, puede aprender muchas cosas interesantes que la gente ya ha inventado y que diferentes especialistas utilizan en diferentes empresas. Y por lo que aconsejaría, en primer lugar, debe cambiar a un enfoque cuando formule todas las tareas a través de hipótesis de productos. Cuando no sabeslo que traerá resultados, pero lo resolverá: creo que tal y tal cosa ayudará a promover las tareas de los usuarios, bombear métricas y, en tal o cual momento, se puede verificar. Es mucho más fácil trabajar con estas hipótesis. Basado en un flujo de trabajo tan incomprensible, donde es muy difícil predecir cuánto tiempo tomará tu tarea, cuándo llegarás al resultado, y de qué manera, en mi opinión, Kanban funciona muy bien. No voy a hablar de esto por mucho tiempo, solo una recomendación: intente buscar en la comunidad LeanDS. Consulte sus materiales. Creo que todos los que trabajan en ciencia de datos y se enfrentan a procesos que han migrado del desarrollo convencional estarán interesados ​​en comprender qué se puede hacer de manera diferente y cómo usar los procesos en su beneficio.que tal o cual cosa ayudará a promover las tareas del usuario, bombear métricas y en tal o cual momento se puede verificar. Es mucho más fácil trabajar con estas hipótesis. Basado en un flujo de trabajo tan incomprensible, donde es muy difícil predecir cuánto tiempo tomará tu tarea, cuándo llegarás al resultado y de qué manera, en mi opinión, Kanban funciona muy bien. No voy a hablar de esto por mucho tiempo, solo recomiendo: intente buscar en la comunidad LeanDS. Mira sus materiales. Creo que todos los que trabajan en ciencia de datos y se enfrentan a procesos que han migrado del desarrollo convencional estarán interesados ​​en comprender qué se puede hacer de manera diferente y cómo usar los procesos en su beneficio.que tal o cual cosa ayudará a promover las tareas de los usuarios, bombear métricas y en tal o cual momento se puede verificar. Es mucho más fácil trabajar con estas hipótesis. Basado en un flujo de trabajo tan incomprensible, donde es muy difícil predecir cuánto tiempo tomará tu tarea, cuándo llegarás al resultado, y de qué manera, en mi opinión, Kanban funciona muy bien. No voy a hablar de esto por mucho tiempo, solo una recomendación: intente mirar a la comunidad LeanDS. Mira sus materiales. Creo que todos los que trabajan en ciencia de datos y se enfrentan a procesos que han migrado del desarrollo convencional estarán interesados ​​en comprender qué se puede hacer de manera diferente y cómo usar los procesos en su beneficio.Es mucho más fácil trabajar con estas hipótesis. Basado en un flujo de trabajo tan incomprensible, donde es muy difícil predecir cuánto tiempo tomará tu tarea, cuándo llegarás al resultado, y de qué manera, en mi opinión, Kanban funciona muy bien. No voy a hablar de esto por mucho tiempo, solo una recomendación: intente buscar en la comunidad LeanDS. Mira sus materiales. Creo que todos los que trabajan en ciencia de datos y se enfrentan a procesos que han migrado del desarrollo convencional estarán interesados ​​en comprender qué se puede hacer de manera diferente y cómo usar los procesos en su beneficio.Es mucho más fácil trabajar con estas hipótesis. Basado en un flujo de trabajo tan incomprensible, donde es muy difícil predecir cuánto tiempo tomará tu tarea, cuándo llegarás al resultado y de qué manera, en mi opinión, Kanban funciona muy bien. No voy a hablar de esto por mucho tiempo, solo una recomendación: intente mirar a la comunidad LeanDS. Mira sus materiales. Creo que todos los que trabajan en ciencia de datos y se enfrentan a procesos que han migrado del desarrollo convencional estarán interesados ​​en comprender qué se puede hacer de manera diferente y cómo usar los procesos en su beneficio.solo un consejo: intente buscar en la comunidad LeanDS. Mira sus materiales. Creo que todos los que trabajan en ciencia de datos y se enfrentan a procesos que han migrado del desarrollo convencional estarán interesados ​​en comprender qué se puede hacer de manera diferente y cómo usar los procesos en su beneficio.solo un consejo: intente buscar en la comunidad LeanDS. Mira sus materiales. Creo que todos los que trabajan en ciencia de datos y se enfrentan a procesos que han migrado del desarrollo convencional estarán interesados ​​en comprender qué se puede hacer de manera diferente y cómo usar los procesos en su beneficio.



Como resultado, le diré lo que les falta a los chicos que vienen a realizar tareas de ciencia de datos al comienzo de sus carreras, y cómo puede volverse más genial como especialista y aumentar las posibilidades de conseguir un trabajo en un lugar que le guste.



Primero, como dije antes, las habilidades de ingeniería son muy importantes para un científico de datos. Nada menos que habilidades relacionadas con ML, análisis de datos, teoría de probabilidades, etc. En primer lugar, deseo que seas un ingeniero genial y, en segundo lugar, un desarrollador. En segundo lugar, muchas personas carecen de una habilidad clara para reformular un problema empresarial en un problema de ciencia de datos. Esta es una habilidad separada. Esta es una situación en la que necesita comprender qué es exactamente lo que el cliente quiere de usted; bueno, llamémoslo una persona que quiere que algo funcione bien. Volviendo al ejemplo de la moderación automática: ¿qué es exactamente lo que quiere? Después de todo, la tarea de la moderación automática se puede establecer de formas muy diferentes, con diferentes cosas específicas que queremos hacer mejor en nuestro sistema. Según las tareas, la tarea de ciencia de datos se formula de diferentes formas; según el problema de la ciencia de datos, las métricas optimizadas se formulan de diferentes maneras,un método para seleccionar un conjunto de datos, evaluar la calidad, etc. Esta habilidad es muy valiosa para todos los científicos de datos. Digamos que un cliente dice que sus moderadores no pueden hacer frente al flujo de las tareas de procesamiento para comprobar si el anuncio es bueno o necesita ser prohibido con un tema específico. Luego, descubrirá que hay muchas razones diferentes para la prohibición y, durante la moderación, debe describirlas claramente para que el anunciante pueda corregir el anuncio. En base a esto, decides que necesitas hacer algún tipo de clasificación multiclase que generará un texto explicando el motivo, y la tarea será muy difícil. Pero espere, tal vez el problema pueda reformularse de otra manera. Y resulta que puede concentrarse no en rechazar anuncios, sino en elegir el anuncio correcto. Si el anuncio es bueno, puede omitirlo,si es malo, se puede dar a los moderadores en vivo y no es necesario generar ninguna explicación. En base a esto, usted comprende: si necesita concentrarse en lo que es bueno, lo que se puede omitir, entonces debe comprender cómo administrar este negocio, este flujo de anuncios que pasarán por su sistema. Entiende: sí, basándome en este problema, puedo elegir ROC AUC como la métrica que más me convenga, describe bien la relación entre la precisión del modelo y la cantidad de anuncios que pasarán automáticamente por nuestro sistema. Etc. Es decir, en base a este diálogo entre el cliente condicional y usted, como especialista, puede simplificar enormemente su tarea, teniendo una buena comprensión de cómo reformular una tarea empresarial en una tarea de ciencia de datos.usted comprende: si necesita concentrarse en lo que es bueno, lo que se puede omitir, entonces debe comprender cómo administrar este negocio, este flujo de anuncios que pasarán por su sistema. Entiende: sí, en base a esta tarea, puedo elegir ROC AUC como la métrica que más me convenga, describe bien la relación entre la precisión del modelo y la cantidad de anuncios que pasarán automáticamente por nuestro sistema. Etc. Es decir, en base a este diálogo entre el cliente condicional y usted, como especialista, puede simplificar enormemente su tarea, teniendo una buena comprensión de cómo reformular una tarea empresarial en una tarea de ciencia de datos.usted comprende: si necesita enfocarse en lo que es bueno, lo que se puede omitir, entonces debe comprender cómo administrar este negocio, este flujo de anuncios que fluirá a través de su sistema. Entiende: sí, en base a esta tarea, puedo elegir ROC AUC como la métrica que más me convenga, describe bien la relación entre la precisión del modelo y la cantidad de anuncios que pasarán automáticamente por nuestro sistema. Etc. Es decir, en base a este diálogo entre el cliente condicional y usted, como especialista, puede simplificar enormemente su tarea, teniendo una buena comprensión de cómo reformular una tarea empresarial en una tarea de ciencia de datos.Entiende: sí, en base a esta tarea, puedo elegir ROC AUC como la métrica que más me convenga, describe bien la relación entre la precisión del modelo y la cantidad de anuncios que pasarán automáticamente por nuestro sistema. Etc. Es decir, en base a este diálogo entre el cliente condicional y usted, como especialista, puede simplificar enormemente su tarea, teniendo una buena comprensión de cómo reformular una tarea empresarial en una tarea de ciencia de datos.Entiende: sí, en base a esta tarea, puedo elegir ROC AUC como la métrica que más me convenga, describe bien la relación entre la precisión del modelo y la cantidad de anuncios que pasarán automáticamente por nuestro sistema. Etc. Es decir, en base a este diálogo entre el cliente condicional y usted, como especialista, puede simplificar enormemente su tarea, teniendo una buena comprensión de cómo reformular una tarea empresarial en una tarea de ciencia de datos.cómo reformular un problema empresarial en un problema de ciencia de datos.cómo reformular un problema empresarial en un problema de ciencia de datos.



Me gustaría contarte una cosa más que ayuda mucho. Se trata de comprender qué señales específicas se transmiten al modelo que está desarrollando en forma de características y cómo las procesa. Esta es una habilidad que pertenece directamente a la competencia del equipo de desarrollo de ML. Por alguna razón, muchos candidatos, en mi experiencia, se adhieren al enfoque de "ML se comerá todo": ponga todo en un aumento de gradiente y funcionará. Estoy exagerando, pero, en general, es muy bueno cuando entiendes claramente que el letrero que estás usando lleva exactamente la información que transmitiste, y no la información que planeabas transmitir.



Por ejemplo, supongamos que decide que un buen indicador de la capacidad de respuesta de un usuario a un anuncio sería la tasa de clics. Es decir, tomamos la cantidad de anuncios vistos durante todo el tiempo y la cantidad de clics en el anuncio, dividimos uno por otro y obtenemos el indicador de usuario. En un caso, dice que al usuario le gusta hacer clic en el anuncio, en el otro, que no hace clic en absoluto. Y pasamos este número a nuestro modelo: aumento de gradiente o regresión lineal. Entonces puede surgir una idea: el modelo no tiene forma de distinguir entre aquellos usuarios para los que tenemos muchas estadísticas, de aquellos que son pocos. Es posible que una métrica no signifique que un usuario siempre hace clic en un anuncio, sino que solo tuvo una impresión. Surge la pregunta: ¿cómo presentar esta característica de tal manera que el modelo distinga una gran cantidad de estadísticas de una pequeña? Primero,lo que me viene a la mente es poner el número de impresiones de anuncios en el modelo. Puede simplemente poner el número de impresiones, pero la dependencia de nuestra confianza en las estadísticas sobre el número de impresiones de anuncios que tiene un usuario no es lineal. Resulta que necesita poner no solo impresiones, sino un cuadrado o logaritmo de impresiones. Entonces resulta que si tenemos un modelo lineal, estas dos características no interactúan entre sí. No será posible hacer esquemas como “si el usuario tiene tal o cual cantidad de estadísticas, entonces confiamos tanto en él, usamos una función con tal o cual peso”. La regresión lineal no puede construir tales conexiones, pero el aumento de gradiente sí puede. O puede reformular la función. En lugar de estadísticas sin procesar, puede suavizarlo, utilizar enfoques de las transiciones bayesianas, agregar algo de conocimiento a priori de cómo los usuarios hacen clic en promedio,y usando una determinada fórmula para mezclarlos. Etc. Resulta que es muy importante comprender qué señal específica estás transmitiendo como señal.



Y segundo, es muy importante saber cómo se utilizará esta función en el modelo. En la regresión lineal, se usará uno a la vez, en el aumento de gradiente de una manera diferente, y si es una red neuronal, entonces funciona con un tipo diferente de datos y cómo funciona el contexto allí.

No necesita saber exactamente cómo funciona el modelo, pero necesita una comprensión intuitiva de lo que es posible y lo que no. Esta es una habilidad genial para un especialista en ML. Si me pregunta cómo funciona un algoritmo en particular en el aumento de gradiente, será difícil para mí explicarlo en detalle, pero con mis dedos puedo hacerlo. Y en la mayoría de situaciones prácticas, esto es suficiente para utilizar la herramienta de forma eficaz.



Al final, me gustaría aconsejar a todos que utilicen un enfoque tan iterativo en la vida real, en los productos, cuando se pasa de lo simple a lo complejo. Empieza con hipótesis simples que se prueban rápidamente y poco a poco se llega a esos artículos científicos muy complejos e interesantes. Y luego la línea de base está lista, y ya puede escribir un artículo para KDD, por ejemplo.



También quiero decir: tal vez me ayuden; Tengo dos presentaciones en las reuniones. Uno está dedicado a qué tipo de tareas de ciencia de datos se pueden realizar en publicidad (y, en general, por qué los especialistas en ciencia de datos pueden estar interesados ​​en tecnologías publicitarias como un trampolín para aplicar sus habilidades con interesantes desafíos de ingeniería). Y la segunda es una historia sobre las trampas en las que caímos como equipo de desarrolladores de ML del sistema, sobre cómo salimos de ellas y cómo no cayeron en las mismas trampas en las que caímos debido a la falta de experiencia. Me gustaría compartir esta experiencia. Creo que hay muchas cosas útiles que descubrir aquí.



Y sin embargo, antes de eso, hablé sobre la comunidad LeanDS dedicada a los procesos de ciencia de datos, la gestión de proyectos de ciencia de datos en ML. También te recomiendo encarecidamente que mires sus materiales, los chicos están haciendo cosas muy interesantes.



¿Alguna vez ha creado un modelo de embudo de ventas completo?



De hecho, no hicimos esto. Pero aquí es muy importante que el anunciante externo configure todo muy bien. Por lo tanto, es bueno lidiar con los embudos de ventas cuando eres un científico de datos del lado de un anunciante. Supongamos que trabaja para una gran empresa que trabaja con una gran cantidad de canales de marketing y está tratando de crear análisis que le permitan tener una buena comprensión de cómo funcionan específicamente los diferentes canales de marketing, qué tan bien se construyen los embudos de ventas, etc. Para nosotros, desde el lado de VK como sistema para anunciantes, a la hora de trabajar con este tipo de cosas, es muy importante que el anunciante lo tenga todo bien configurado. Para que los píxeles publicitarios siempre brinden la información correcta sobre cómo el usuario ingresó al sitio, agregó algo al carrito y compró. Y luego debemos usar esta información parapara hacer que las estrategias publicitarias sean mejores y más efectivas. Quiero hacer esto; Prácticamente no lo hicimos, porque la configuración de estos sistemas suele ser difícil para un anunciante. Probablemente sea más fácil hacer esto cuando tienes el control total.



Y tal pregunta: ¿cómo conectar entidades (establecer atributos) al construir un modelo?



Por ejemplo, visitante del sitio -> cliente



Probablemente sea bueno comenzar con alguna actividad anterior del usuario. En general, esto se hace de diversas formas; Les puedo contar sobre uno que se utiliza en la construcción de sistemas publicitarios, se llama look-alike. Puede que hayas oído hablar de él. Esta es una situación cuando decimos: aquí están los usuarios que han visitado nuestro sitio, y aquí están los que compraron algo. Echemos un vistazo a qué usuarios se parecen más a los que compraron algo y menos a los que no hicieron nada. Cuando entrenamos un modelo de este tipo, donde "1" son los que compraron, "0" son los que no hicieron nada y condicionalmente "0.5" son los que visitaron el sitio, podemos aprender a clasificar a todos los usuarios de nuestro sistema. por semejanza con un cliente potencial. Podemos utilizar este conocimiento en nuestro modelo y decirle al cliente qué características,en términos del modelo, separan a los clientes de los visitantes normales.






All Articles