Prácticas recomendadas para la ingeniería de AA
Martin Zinkevich
El objetivo de este documento es ayudar a quienes tienen conocimientos básicos se benefician de las prácticas recomendadas de Google para el aprendizaje automático. Integra presenta un estilo para aprendizaje automático, similar a la Guía de estilo de C++ de Google. y otras guías populares de programación práctica. Si tomaste una clase en aprendizaje automático, o que creaste o trabajaste en un modelo de aprendizaje automático, entonces tener la formación necesaria para leer este documento.
Terminología
Los siguientes términos se mencionarán reiteradamente en nuestro debate sobre estrategias de aprendizaje automático:
- Instancia: El aspecto sobre el que deseas crear un para la predicción. Por ejemplo, la instancia podría ser una página web que quieres clasificas como "sobre gatos" o "no sobre gatos".
- Etiqueta: Una respuesta a la tarea de predicción, ya sea la respuesta producida por un de aprendizaje automático o la respuesta correcta proporcionada en los datos de entrenamiento. Para por ejemplo, la etiqueta de una página web podría ser "sobre gatos".
- Atributo: Una propiedad de una instancia utilizada en una tarea de predicción. Para Por ejemplo, una página web puede tener un atributo "contiene la palabra gato".
- Columna de atributos: Es un conjunto de atributos relacionados, como el conjunto de todos los atributos posibles. países donde es posible que vivan los usuarios. Un ejemplo puede tener uno o más atributos presente en una columna de atributos. "Columna de atributos" es la terminología específica de Google. Una columna de atributos se conoce como un “espacio de nombres”. en el sistema de VW (en Yahoo/Microsoft) o en un field.
- Ejemplo: Una instancia (con sus atributos) y una etiqueta.
- Modelo: Una representación estadística de una tarea de predicción. Entrenas un modelo con ejemplos y usar el modelo para hacer predicciones.
- Métrica: El número que importa. Se puede optimizar directamente o no.
- Objetivo: Una métrica que tu algoritmo intenta optimizar.
- Canalización: La infraestructura que rodea al algoritmo de aprendizaje automático. Incluye la recopilación de datos del frontend y su incorporación a los datos de entrenamiento entrenar uno o más modelos y exportarlos a producción.
- Tasa de clics: Es el porcentaje de visitantes a una página web que hacen clic en un en un anuncio.
Descripción general
Para crear productos excelentes:
el aprendizaje automático como un gran ingeniero, no como que no eres experto en aprendizaje automático.
La mayoría de los problemas a los que te enfrentarás son, de hecho, problemas de ingeniería. Uniforme con todos los recursos de un gran experto en aprendizaje automático, la mayoría de las ventajas provienen de excelentes atributos, no de algoritmos de aprendizaje automático. Por lo tanto, lo básico enfoque es:
- Asegúrate de que tu canalización sea sólida de extremo a extremo.
- Comienza con un objetivo razonable.
- Agrega funciones de sentido común de forma sencilla.
- Asegurarse de que la canalización se mantenga sólida.
Este enfoque funcionará bien para de un período prolongado. Desvíense de este enfoque solo cuando no haya y trucos sencillos para llegar más lejos. Agregar complejidad ralentiza las versiones futuras.
Una vez que agotes los trucos simples, puede que el aprendizaje automático de vanguardia estar en el futuro. Consulta la sección sobre Fase III proyectos de aprendizaje automático.
Este documento se organiza de la siguiente manera:
- La primera parte debe ayudarte a comprender se trata del momento adecuado para desarrollar un sistema de aprendizaje automático.
- La segunda parte se trata de implementar primera canalización.
- La tercera parte se trata de lanzar y iterar mientras se agregan atributos nuevos a la canalización, cómo evaluar modelos y desviación entre el entrenamiento y la entrega.
- El parte final se trata de qué hacer cuando se alcanza una meseta.
- Luego, hay una lista del trabajo relacionado y una apéndice con algunos los antecedentes de los sistemas que se usan comúnmente como ejemplos en este documento.
Antes del aprendizaje automático
Regla n.o 1: No tengas miedo de lanzar un producto sin aprendizaje automático.
El aprendizaje automático es genial, pero requiere datos. En teoría, puedes tomar datos de un problema diferente y, luego, ajustamos el modelo para un nuevo producto, pero es probable que tenga un rendimiento inferior heurística. Si crees que el aprendizaje automático te brindará un aumento del 100% y, luego, una heurística te dará un 50% del camino.
Por ejemplo, si clasificas apps en un mercado de apps, podrías usar el o la tasa de instalaciones como una heurística. Si detectas spam, filtrar a los publicadores que hayan enviado spam anteriormente. No tengas miedo de usar recursos sin editar. Si necesitas clasificar contactos, clasifica los que se usaron más recientemente más alta (o incluso se clasifican alfabéticamente). Si el aprendizaje automático no es necesarios para tu producto, no los uses hasta que tengas datos.
Regla n.o 2: Primero, diseña métricas e implementa métricas.
Antes de formalizar lo que hará tu sistema de aprendizaje automático, haz un seguimiento de posible en tu sistema actual. Hazlo por los siguientes motivos:
- Es más fácil obtener permiso de los usuarios del sistema desde el principio.
- Si crees que algo puede ser una preocupación en el futuro, es es mejor obtener datos históricos ahora.
- Si diseñas tu sistema con la instrumentación de métricas en mente, será mejor para en el futuro. En particular, para evitar que se hagan búsquedas para que las cadenas en registros instrumenten tus métricas.
- Notarás qué aspectos cambian y cuáles permanecen iguales. Por ejemplo: supongamos que quieres optimizar directamente a los usuarios activos de un día. Sin embargo, durante las primeras manipulaciones del sistema, es posible que notes que Las alteraciones drásticas de la experiencia del usuario no cambian significativamente. métrica
Las mediciones del equipo de Google Plus se expanden por lectura, publicaciones compartidas por lectura, más uno por leídos, comentarios/lecturas, comentarios por usuario, el contenido que se comparte por usuario, etc. en calcular la bondad de un puesto al momento de servir. Tengan en cuenta también marco de trabajo de experimentos, en el que puedes agrupar usuarios en buckets estadísticas por experimento, es importante. Consulta Regla n.o 12:
Si recopilas métricas con mayor flexibilidad, puedes obtener un panorama más amplio de tu sistema. ¿Notas algún problema? Agrega una métrica para realizar el seguimiento. Emocionado por algunas cambio cuantitativo en la última versión? Agrega una métrica para realizar el seguimiento.
Regla n.o 3: Elige el aprendizaje automático antes que una heurística compleja.
Una heurística simple puede sacar tu producto al mercado. Una heurística compleja es insostenible. Una vez que tienes los datos y una idea básica de lo que estás tratando de para lograr algo, pasemos al aprendizaje automático. Como en la mayoría de la ingeniería de software tareas, deberás actualizar constantemente tu enfoque, ya sea heurística o un modelo de aprendizaje automático, y descubrirás que modelo de aprendizaje automático es más fácil de actualizar y mantener (consulte regla n.o 16).
Fase I de AA: Tu primera canalización
Enfócate en la infraestructura de tu sistema para la primera canalización. Aunque es divertido de pensar en todo el aprendizaje automático imaginativo que implementarás, será difícil averiguar qué sucede si no confías primero en tu en una canalización de integración continua.
Regla n.o 4: Procura que el primer modelo sea simple y aplica la infraestructura adecuada.
El primer modelo proporciona el mayor impulso para tu producto, por lo que no necesita para ser elegante. Pero encontrarás muchos más problemas de infraestructura lo que esperas. Antes de que alguien pueda usar tu novedoso sistema de aprendizaje automático, tienes que para determinar lo siguiente:
- Cómo obtener ejemplos para tu algoritmo de aprendizaje
- Un primer paso para saber qué es "bueno" y "malo" para tu sistema.
- Cómo integrar el modelo en la aplicación Puedes aplicar una de estas opciones el modelo en vivo, o procesar previamente el modelo con ejemplos sin conexión y almacenar los resultados en una tabla. Por ejemplo, es posible que quieras preclasificar páginas web y almacenar los resultados en una tabla, pero tal vez quieras clasificar los mensajes del chat en tiempo real.
Si eliges atributos simples, es más fácil garantizar lo siguiente:
- Que los atributos se comuniquen con tu algoritmo de aprendizaje de forma correcta.
- El modelo aprende pesos razonables.
- Que los atributos lleguen a tu modelo en el servidor de forma correcta.
Una vez que tienes un sistema que hace estas tres cosas de manera confiable, has hecho la mayor parte del trabajo. Tu modelo simple te proporciona métricas de referencia y una el comportamiento del modelo de referencia para probar modelos más complejos. Algunos equipos apuntan de manera "neutral" Primer lanzamiento: un primer lanzamiento que explícitamente no tiene prioridad aprendizaje automático, para evitar distraerse.
Regla n.o 5: Prueba la infraestructura independientemente del aprendizaje automático.
Asegúrese de que la infraestructura se pueda probar y de que las partes de aprendizaje el sistema se encapsulan para que puedas probar todo lo que lo rodea. En particular, haz lo siguiente:
- Prueba obtener datos en el algoritmo. Comprueba que las columnas de atributos se deben completar. Cuando la privacidad lo permita, manualmente inspeccionará la entrada de tu algoritmo de entrenamiento. Si es posible, revisa estadísticas en tu canalización en comparación con las estadísticas de los mismos datos procesados en otro lugar.
- Prueba obtener modelos a partir del algoritmo de entrenamiento. Asegúrate de que la modelo en tu entorno de entrenamiento otorga la misma puntuación que el modelo en tu entorno de entrega (consulta regla n.o 37).
El aprendizaje automático tiene un elemento de imprevisibilidad, así que asegúrate de tener pruebas para el código que permiten crear ejemplos en entrenamiento y entrega que puedes cargar y usar un modelo fijo durante la entrega. Además, es importante para comprender tus datos: consulta Consejos prácticos para el análisis de conjuntos de datos grandes y complejos.
Regla n.o 6: Ten cuidado con la pérdida de datos al copiar canalizaciones.
A menudo, creamos una canalización copiando una existente (es decir, programación a culto a la carga ), y la canalización anterior descarta los datos que necesitamos para la canalización nueva. Por ejemplo, la canalización para la pestaña Lo más interesante de Google+ deja de lado las publicaciones más antiguas (porque intenta clasificar las publicaciones nuevas). Esta canalización se se copiaron para usarse en las Novedades de Google+, donde las publicaciones anteriores siguen siendo importantes, pero la canalización aún descartaba publicaciones antiguas. Otro patrón común es solo registrar los datos que vio el usuario. Por lo tanto, estos datos son inútil si queremos modelar por qué el usuario no vio una publicación porque se descartaron todos los ejemplos negativos. Ocurrió un problema similar en Reproducir. Mientras trabajaba en la página principal de las apps de Play, se creó una canalización nueva que también ejemplos incluidos en la página de destino de Play Juegos sin ninguna función para para diferenciar de dónde proviene cada ejemplo.
Regla n.o 7: Convierte la heurística en atributos o adminístralos de forma externa.
Por lo general, los problemas que el aprendizaje automático intenta resolver completamente nuevo. Existe un sistema para clasificar o clasificar, o cualquier problema que intentes resolver. Esto significa que hay un montón de con reglas y heurísticas. Estas mismas heurísticas pueden ser más útiles cuando se modifican con el aprendizaje automático. Debes minar tu heurística para cualquier información que tienen por dos razones. Primero, la transición a un modelo aprendido el sistema sea más fluido. Segundo, esas reglas suelen contener muchos la intuición del sistema que no quieren desechar. Existen cuatro Formas en las que puedes usar una heurística existente:
- Realiza el procesamiento previo con la heurística. Si el atributo es increíblemente asombroso, entonces es una opción. Por ejemplo, si, en un filtro de spam, el remitente ya está en la lista negra, no intente reaprender qué está "en la lista negra" significa. Bloquea el mensaje. Este enfoque tiene más sentido en objetos binarios tareas de clasificación.
- Crea un atributo. Crear directamente un atributo a partir de la heurística es genial. Por ejemplo, si usas una heurística para calcular la puntuación de relevancia de una consulta resultado, puedes incluir la puntuación como el valor de un atributo. Más adelante, técnicas de aprendizaje automático para aprovechar el valor (por ejemplo, convertir el valor en uno de un conjunto finito de valores discretos o combinarlos con otros atributos), pero comienza usando valor producido por la heurística.
- Extrae las entradas sin procesar de la heurística. Si hay una heurística para las apps que combina el número de instalaciones, el número de caracteres en el el texto y el día de la semana. Luego, considere separar estos elementos y enviar esas entradas al aprendizaje por separado. Algunas técnicas que aplican a los conjuntos. regla n.o 40).
- Modifica la etiqueta. Esta es una opción cuando sientes que la heurística captura información que no está contenida actualmente en una etiqueta. Por ejemplo: si intenta maximizar la cantidad de descargas, pero también desea contenido de calidad, quizás la solución sea multiplicar la etiqueta por la cantidad promedio de estrellas que recibió la app. Aquí hay mucha libertad. Consulta la sección "Tu primer objetivo".
Ten en cuenta la complejidad agregada cuando uses heurísticas en un AA en un sistema de archivos. Usar heurísticas antiguas en tu nuevo algoritmo de aprendizaje automático puede ayudar a crear una transición fluida, pero piensa si hay más sencilla de lograr el mismo efecto.
Supervisión
En general, ten en cuenta las alertas de manera adecuada, por ejemplo, haz que las alertas sean prácticas. y tener una página de panel.
Regla n.o 8: Conoce los requisitos de actualización de tu sistema.
¿Cuánto se degrada el rendimiento si el modelo tiene un día de antigüedad? Una semana ¿Vieja? ¿Un cuarto de edad? Esta información puede ayudarte a entender las prioridades de la supervisión. Si pierdes una cantidad significativa de artículos si el modelo no se actualiza por un día, tiene sentido tener un ingeniero que lo controle continuamente. La mayoría de los anuncios de publicación de anuncios tienen nuevos anuncios que gestionar cada día y deben actualizarse todos los días. Por ejemplo, si el modelo de AA para La Búsqueda de Google Play no está actualizada, puede tener una impacto negativo en menos de un mes. Algunos modelos para la sección Lo más interesante de Google+ no tiene un identificador de publicación en su modelo, pueden exportar estos modelos con poca frecuencia. Otros modelos que tienen identificadores de publicaciones se actualizan con mucha más frecuencia. Además, ten en cuenta que la actualidad puede cambiar con el tiempo especialmente cuando se agregan columnas de atributos al modelo o se quitan de él.
Regla n.o 9: Detecta los problemas antes de exportar los modelos.
Muchos sistemas de aprendizaje automático tienen una etapa en la que exportas el modelo de Google Cloud. Si hay un problema con un modelo exportado, es un modelo para el usuario. problema.
Realiza verificaciones de estado justo antes de exportar el modelo. Específicamente, asegúrate de que de que el rendimiento del modelo sea razonable para los datos conservados. O bien, si tienes las inquietudes persistentes con los datos, no exportes un modelo. Muchos equipos la implementación continua de modelos verifica el área bajo el Curva ROC (o AUC) antes de realizar la exportación. Los problemas relacionados con los modelos que no se exportaron requieren una alerta por correo electrónico, pero los problemas en un modelo para el usuario pueden requerir una página. Así que mejor que espere y se asegure de afectar a los usuarios.
Regla n.o 10: Busca fallas silenciosas.
Este es un problema que ocurre con más frecuencia en los sistemas de aprendizaje automático que en otras tipos de sistemas. Supongamos que una tabla concreta que se está uniendo no es ya se están actualizando. El sistema de aprendizaje automático se ajustará y el comportamiento seguirán siendo de buena calidad y disminuyan gradualmente. A veces encuentras tablas que están desactualizadas durante meses, y una simple actualización mejora el rendimiento más que cualquier otro lanzamiento durante ese trimestre. La cobertura de un La función puede cambiar debido a los cambios en la implementación (por ejemplo, una columna de atributos). podría propagarse en el 90% de los ejemplos y, de repente, caer al 60% ejemplos. Una vez, Play tenía una mesa que estaba inactiva durante 6 meses y era renovada solo la tabla generó un aumento del 2% en el porcentaje de instalaciones. Si realizas un seguimiento de las estadísticas así como inspeccionarlos manualmente de vez en cuando, puedes reducir este tipo de fallas.
Regla n.o 11: Otorga propietarios y documentación a las columnas de atributos.
Si el sistema es grande y hay muchas columnas de atributos, debes saber quién creó o es mantener cada columna de atributos. Si notas que la persona que entiende una columna de atributos, asegúrate de que alguien tenga información. Aunque muchas columnas de atributos tienen nombres descriptivos, es recomendable para tener una descripción más detallada de la característica, de dónde proviene y cómo se espera que ayude.
Tu primer objetivo
Tienes muchas métricas o mediciones sobre el sistema que te interesan pero tu algoritmo de aprendizaje automático suele requerir un objetivo único, un que tu algoritmo está “intentando” para optimizar el rendimiento. Me distingo aquí entre objetivos y métricas: una métrica es cualquier número al que tu sistema que pueden o no ser importantes. Consulta también 2a regla:
Regla n.o 12: No pienses demasiado qué objetivo eliges optimizar directamente.
Quieres ganar dinero, hacer felices a tus usuarios y mejorar el mundo. en un lugar específico. Hay muchas métricas que te interesan y deberías medir con todos ellos (consulta la regla n.o 2). Sin embargo, en las primeras etapas del proceso del aprendizaje automático, notarás que todos suben y las que no optimiza directamente. Por ejemplo, supongamos que te interesa la cantidad de clics y el tiempo en el sitio. Si optimizas para obtener es probable que el tiempo dedicado aumente.
Por lo tanto, simplifique el proceso y no tenga que pensar demasiado en equilibrar las distintas métricas cuando puedes aumentar fácilmente todas las métricas. No tomes esta regla también pero no confundas tu objetivo con la salud final sistema (consulta regla n.o 39). Además, si aumentas directamente pero si decides no lanzarla, quizás debas realizar una revisión objetiva como en los productos necesarios.
Regla n.o 13: Elige una métrica simple, observable y con atributos para tu primer objetivo.
Por lo general, no sabes cuál es el verdadero objetivo. Piensas que sí, pero luego, observas los datos y el análisis en paralelo de tu sistema anterior y el nuevo AA del sistema, te das cuenta de que quieres ajustar el objetivo. Además, un equipo diferente los miembros a menudo no se ponen de acuerdo con el verdadero objetivo. El objetivo del AA debe ser algo que sea fácil de medir y que represente lo "verdadero" objetivo. De hecho, a menudo no hay objetivo (consulta regla n.o 39). De esta manera, entrenar con el objetivo simple de AA y considerar tener una “capa de políticas” en la cima que te permite agregar lógica adicional (con suerte, una lógica muy simple) para hacer la clasificación final.
Lo más fácil de modelar es el comportamiento del usuario que se observa directamente y que se puede atribuir a un acción del sistema:
- ¿Se hizo clic en este vínculo clasificado?
- ¿Se descargó este objeto clasificado?
- ¿Se reenvió o envió respuesta o correo electrónico a este objeto clasificado?
- ¿Se calificó este objeto clasificado?
- ¿Este objeto que se mostró se marcó como ofensivo, spam o pornografía?
Al principio, evita los efectos indirectos del modelado:
- ¿El usuario lo visitó al día siguiente?
- ¿Cuánto tiempo pasó el usuario visitando el sitio?
- ¿Cuáles fueron los usuarios activos por día?
Los efectos indirectos generan excelentes métricas y pueden usarse durante las pruebas A/B y el lanzamiento. decisiones.
Por último, no intentes hacer que el aprendizaje automático descubra lo siguiente:
- ¿El usuario está feliz con el producto?
- ¿El usuario está satisfecho con la experiencia?
- ¿El producto mejora el bienestar general del usuario?
- ¿Cómo afectará esto al estado general de la empresa?
Todos estos son importantes, pero también increíblemente difíciles de medir. En cambio, usa proxies: si el usuario está feliz, permanecerá en el sitio por más tiempo. Si el usuario está satisfecho, volverá a visitar el sitio mañana. En cuanto al bienestar y la salud de la empresa, se requiere el juicio humano para conectar cualquier objetivo del aprendizaje automático a la naturaleza del producto que vende tu plan de negocios.
Regla n.o 14: Comenzar con un modelo interpretable facilita la depuración.
La regresión lineal, la regresión logística y la regresión de Poisson están motivadas por un modelo probabilístico. Cada predicción se interpreta como un probabilidad o un valor esperado. Esto las hace más fáciles de depurar que los modelos. que usan objetivos (pérdida cero, varias pérdidas de bisagra, etc.) que intentan para optimizar directamente la precisión o el rendimiento de la clasificación. Para ejemplo, si las probabilidades en el entrenamiento se desvían de las probabilidades predichas en en paralelo o inspeccionando el sistema de producción, esta desviación podría revelar un problema.
Por ejemplo, en la regresión lineal, logística o de Poisson, hay subconjuntos de los datos donde la expectativa promedio predicha es igual a la etiqueta promedio (1- momento calibrado o solo calibrado). Esto es así suponiendo que no tienes regularización, y de que tu algoritmo se ha convergido, y es alrededor cierto en general. Si tienes un atributo que es 1 o 0 en cada ejemplo, entonces el conjunto de 3 ejemplos en el que ese atributo es 1 está calibrado. Además, si tienen un atributo que es 1 para cada ejemplo, entonces el conjunto de todos los ejemplos se calibrado.
Con modelos simples, es más fácil lidiar con los ciclos de reacción (consulta regla n.o 36). A menudo, usamos estas predicciones probabilísticas para tomar una decisión: p.ej., clasificación publicaciones en el valor esperado decreciente (es decir, probabilidad de clics/descarga/etc.). Sin embargo, recuerden que cuando debe elegir qué modelo usar, la decisión importa más que la probabilidad de los datos según el modelo (consulta regla n.o 27).
Regla n.o 15: Separa el filtro de spam y la clasificación de calidad en una capa de política.
La clasificación de calidad es un arte, pero el filtrado de spam es una guerra. Los indicadores que para determinar las publicaciones de alta calidad, será evidente en tu sistema, y modificarán sus publicaciones para que tengan estas propiedades. Por lo tanto, Tu clasificación de calidad debe centrarse en el contenido de clasificación que se publica en buen estado. fe. No debes desestimar al aprendiz de clasificación de calidad como spam. mucho. De modo similar, "subido de tono" el contenido debe manejarse por separado de la calidad Clasificación El filtro de spam es una historia diferente. Debes esperar que el los atributos que debes generar cambiarán constantemente. A menudo, hay serán reglas obvias que ingreses al sistema (si una publicación tiene más de tres votos de spam, no recuperarlos, etcétera). Todo modelo aprendido tendrá se actualicen diariamente o de forma más rápida. La reputación del creador del contenido desempeñará un papel muy importante.
En algún nivel, la salida de estos dos sistemas tendrá que estar integrada. Conservar Ten en cuenta que filtrar el spam en los resultados de la búsqueda debería ser más estricto que filtrar el spam en los mensajes de correo electrónico. Además, es una práctica estándar eliminar de los datos de entrenamiento para el clasificador de calidad.
Fase II de AA: Ingeniería de atributos
En la primera fase del ciclo de vida de un sistema de aprendizaje automático, importantes son obtener los datos de entrenamiento en el sistema de aprendizaje, obtener cualquier y métricas de interés instrumentadas y crear una infraestructura de entrega. Después Tienes un sistema funcional de extremo a extremo con pruebas de unidades y sistemas instrumentadas. Comienza la fase II.
En la segunda fase, hay muchas recompensas a corto plazo. Hay una gran variedad de atributos obvios que podrían ingresarse al sistema. Así, el segundo del aprendizaje automático implica incorporar tantos atributos como sea posible y combinarlos de forma intuitiva. Durante esta fase, todas las métricas deben siguen en aumento. Habrá muchos lanzamientos, y es un buen momento para muchos ingenieros que pueden unir todos los datos que necesitas para para crear un sistema de aprendizaje verdaderamente increíble.
Regla n.o 16: Planifica el lanzamiento y la iteración.
No esperes que el modelo en el que estás trabajando ahora sea el último que lanzarás, o incluso dejarás de lanzar modelos. Por lo tanto, considera si la complejidad que agregas con este lanzamiento se ralentizará en los lanzamientos futuros. Muchos equipos han lanzado un modelo por trimestre o más para años. Existen tres razones básicas para lanzar modelos nuevos:
- Tienes nuevas funciones.
- Estás ajustando la regularización y combinando atributos antiguos de formas nuevas.
- Deseas ajustar el objetivo.
A pesar de todo, darle un poco de amor a un modelo puede ser bueno: revisar los datos puede ayudar a encontrar indicadores nuevos y los recursos, especialmente aquellos sensibles. Así que, a medida que creas tu modelo, piensa en lo fácil que es agregar o quitar o recombinar atributos. Piensa en lo fácil que es crear una copia nueva de de la canalización y verificar que sea correcta. Piensa si es posible tener dos o tres copias ejecutándose en paralelo. Por último, no te preocupes por si la función 16 de 35 llega a esta versión de la canalización. Deberás para el trimestre que viene.
Regla n.o 17: Comienza con los atributos directamente observados e informados en lugar de los atributos aprendidos.
Este puede ser un punto controvertido, pero evita muchos errores. Primero de describamos qué es un atributo aprendido. Un atributo aprendido es un atributo generados por un sistema externo (como una agrupación o el propio alumno (p.ej., mediante un modelo factorizado o aprendizaje profundo). Ambas opciones pueden ser útiles, pero pueden tener muchos problemas, por lo que y no estar en el primer modelo.
Si usas un sistema externo para crear un atributo, recuerda que sistema operativo tiene su propio objetivo. Es posible que el objetivo del sistema externo sea débilmente correlacionado con tu objetivo actual. Si tomas una instantánea sistema, puede quedar desactualizada. Si actualizas los atributos desde el sistema externo, los significados pueden cambiar. Si usas un sistema externo para proporcionan una función, ten en cuenta que este enfoque requiere mucho cuidado.
El principal problema con los modelos factorizados y los modelos profundos es que son y no convexa. Por lo tanto, no hay garantía de que se pueda usar una solución óptima aproximado o encontrado, y el mínimo local encontrado en cada iteración se puede es diferente. Esta variación hace que sea difícil juzgar si el impacto de un cambio en tu sistema es significativo o aleatorio. Con la creación de un modelo sin puedes obtener un excelente rendimiento de referencia. Después de esto mientras se logra la línea base, puedes probar enfoques más esotéricos.
Regla n.o 18: Explora con funciones de contenido que generalicen en todos los contextos.
Con frecuencia, un sistema de aprendizaje automático es una pequeña parte de un panorama mucho más amplio. Para Por ejemplo, si te imaginas que una publicación podría usarse en Lo más interesante, muchas personas hará +1 en una publicación, la compartirá o comentará antes de que aparezca en Caliente. Si proporcionas esas estadísticas al alumno, se pueden promocionar publicaciones nuevas. para los que no tiene datos en el contexto que está optimizando. YouTube Watch Next podría usar la cantidad de reproducciones, o bien Reproducciones (recuento de cuántas veces se miró un video tras otro vistos) en la búsqueda de YouTube. También puedes usar de los usuarios. Por último, si tienes una acción del usuario que utilizas como etiqueta, ver esa acción en el documento en un contexto diferente puede ser . Todas estas funciones te permiten aportar nuevo contenido al contexto. Ten en cuenta que esto no se trata de personalización: descubre si a alguien le gusta el contenido en este contexto primero y, luego, descubrir a quién le gusta más o menos.
Regla n.o 19: Usa funciones muy específicas cuando puedas.
Con toneladas de datos, es más fácil aprender millones de atributos simples que un algunas funciones complejas. Los identificadores de los documentos que se recuperan y las consultas canónicas no ofrecen mucha generalización, pero alinean con tus etiquetas en las consultas principales. Por lo tanto, no le temas a los grupos de atributos en los que cada atributo se aplica a una fracción muy pequeña de tus datos, pero la cobertura general es superior al 90%. Puedes usar la regularización para eliminar que se aplican a muy pocos ejemplos.
Regla n.o 20: Combina y modifica los atributos existentes para crear otros de formas que los usuarios puedan comprender.
Existen varias formas de combinar y modificar los atributos. Aprendizaje automático como TensorFlow, te permiten preprocesar tus datos mediante de transformación. Los dos enfoques estándar son las “discretizaciones” y “combinaciones”.
La discretización consiste en tomar un atributo continuo y crear muchos atributos discretos del mismo. Considera un atributo continuo como la edad. Puedes crear un atributo que es 1 cuando la edad es menor de 18, otro atributo que es 1 cuando la edad tiene entre 18 y 35 años, etcétera. No pienses demasiado en los límites estos histogramas: los cuantiles básicos darán la mayor parte del impacto.
Las combinaciones combinan dos o más columnas de atributos. Una columna de atributos, en el terminología, es un conjunto de características homogéneas (p.ej., {masculino, femenino}, {US, Canadá, México, etcétera). Una combinación es una nueva columna de atributos, por ejemplo, {masculino, femenino} × {EE.UU., Canadá, México}. Esta nueva columna de atributos contendrá el atributo (hombre, Canadá). Si usas TensorFlow y que cree esta combinación, con este atributo (hombre, Canadá) presente en ejemplos que representen a hombres canadienses. Ten en cuenta que se necesita una gran cantidades de datos para aprender modelos con combinaciones de tres, cuatro o más bases en las columnas de atributos.
Las combinaciones que producen columnas de atributos muy grandes pueden sobreajustarse. Por ejemplo: imagine que está haciendo algún tipo de búsqueda y tiene una columna de atributos con palabras en la consulta, y tienes una columna de atributos con palabras en la . Puedes combinarlos con una cruz, pero terminarás con un montón de (consulta la regla n.o 21).
Cuando trabajas con texto, existen dos alternativas. La más draconiana es una producto punto. En su forma más sencilla, un producto escalar simplemente cuenta el número de palabras en común entre la consulta y el documento. Luego, esta función se puede se discretizan. Otro enfoque es una intersección: entonces, habrá un atributo que está presente solo si la palabra “poni” está en el documento y en la consulta, y otro atributo que está presente si y solo si la palabra "el" está en el documento y la consulta.
Regla n.o 21: La cantidad de ponderaciones de atributos que puedes aprender en un modelo lineal es casi proporcional a la cantidad de datos que tienes.
Hay fascinantes resultados de la teoría del aprendizaje estadístico relacionados con el nivel de complejidad adecuado para un modelo, pero esta regla es básicamente que necesitas saber. He tenido conversaciones en las que las personas dudan de se puede aprender algo de mil ejemplos, o que alguna vez necesitan más de un millón de ejemplos, porque se atascan en un método de aprendizaje. La clave es escalar tu aprendizaje al tamaño de tus datos:
- Si trabajas en un sistema de clasificación de búsqueda y hay millones de diferentes palabras en los documentos y en la consulta, y tienes 1,000 ejemplos etiquetados, debes usar un producto punto entre los documentos y las funciones de consulta, TF-IDF, y media docena de otros ingenieros altamente atributos. 1,000 ejemplos, una docena de funciones.
- Si tienes un millón de ejemplos, cruza el documento y la consulta. en las columnas de atributos con la regularización y, posiblemente, la selección de atributos. Esto te dará un millón de atributos, pero, con la regularización, tendrán menos. Diez millones de ejemplos, tal vez cien mil atributos.
- Si tienes miles o cientos de miles de millones de ejemplos, puedes cruzar las columnas de atributos con tokens de documentos y de consulta, con la selección de atributos y regularización. Tendrás mil millones de ejemplos y diez millones atributos. La teoría del aprendizaje estadístico rara vez establece límites rígidos, pero brinda una gran guía para un punto de partida.
Al final, usa Regla n.o 28 para decidir qué funciones usar.
Regla n.o 22: Borra los atributos que ya no uses.
Los atributos sin usar crean deuda técnica. Si descubres que no estás usando un atributo y que combinarlo con otros atributos no funciona, entonces fuera de tu infraestructura. Debes mantener limpia tu infraestructura para probar los atributos más prometedores lo más rápido posible. Si si es necesario, alguien puede volver a agregar tu función en cualquier momento.
Ten en cuenta la cobertura cuando consideres qué funciones agregarás o conservarás. Cantidad de resultados ejemplos de estas características? Por ejemplo, si tienes algunos funciones de personalización, pero solo el 8% de los usuarios las personaliza no será muy eficaz.
Al mismo tiempo, algunas funciones podrían superar su peso. Por ejemplo, tienes un atributo que cubre solo el 1% de los datos, pero el 90% de los ejemplos que tienen el atributo son positivos, entonces será un gran atributo para agregar.
Análisis humano del sistema
Antes de pasar a la tercera fase del aprendizaje automático, enfocarse en algo que no se enseña en ninguna clase de aprendizaje automático: analizar un modelo existente y mejorarlo. Esto es más un arte que un ciencia y, aun así, existen varios antipatrones que ayuda a evitar.
Regla n.o 23: No eres el típico usuario final.
Esta es quizás la forma más fácil de que un equipo se enrede. Si bien hay muchos beneficios de la prueba interna restringida (usar un prototipo dentro de tu equipo) y prueba interna (con un prototipo dentro de su empresa), los empleados deben revisar si el rendimiento es correcto. Si bien un cambio que es obviamente malo no debe usarse, todo lo que parezca razonablemente cercano a producción se somete a más pruebas, ya sea pagando a personas no profesionales para que respondan preguntas sobre un de participación colectiva o mediante experimentos en vivo con usuarios reales.
Hay dos razones para ello. La primera es que estás muy cerca código. Es posible que estés buscando un aspecto concreto de las publicaciones o que está demasiado involucrado emocionalmente (por ejemplo, sesgo de confirmación). La segunda es que tu tiempo es demasiado valioso. Considera el costo de nueve ingenieros trabajando en un mismo equipo y piensa en cuántas etiquetas personales contratadas compra en un de participación colectiva.
Si realmente quieres recibir comentarios de los usuarios, usa la experiencia del usuario y de programación de aplicaciones. Crear arquetipos de usuario (una descripción está en el documento de Bill Buxton Dibujar experiencias del usuario) al principio del proceso y hacer pruebas de usabilidad (una está en el álbum de Steve Krug No me hagas pensar) más adelante. Personas de usuario implican crear un usuario hipotético. Por ejemplo, si tu equipo está compuesto solo por hombres, puede ser útil diseñar una persona usuaria femenina de 35 años (completa con atributos) y observa los resultados que genera en lugar de los 10 resultados Hombres de 25 a 40 años. Atraer a personas reales para que miren sus reacciones tu sitio (de forma local o remota) en las pruebas de usabilidad también puede brindarte una desde una perspectiva responsable.
Regla n.o 24: Mide el delta entre los modelos.
Una de las mediciones más fáciles y, a veces, más útiles que puedes tomar antes cualquier usuario que miró tu modelo nuevo es calcular qué tan diferente resultados nuevos son de producción. Por ejemplo, si tienes un problema de clasificación, ejecutar ambos modelos en una muestra de consultas en todo el sistema y observar el tamaño de la diferencia simétrica de los resultados (ponderados por la clasificación de posición). Si la diferencia es muy pequeña, entonces puedes saberlo sin ejecutar un experimento de que habrá pocos cambios. Si la diferencia es muy debe ser grande, entonces debe asegurarse de que el cambio sea bueno. Mirando consultas en las que la diferencia simétrica es alta puede ayudarte a comprender cualitativamente cómo fue el cambio. Sin embargo, asegúrate de que el sistema esté sea estable. Cuando compares un modelo consigo mismo, asegúrate de que tenga una baja (idealmente cero) simétrica.
Regla n.o 25: A la hora de elegir modelos, el rendimiento utilitario prevalece por sobre el poder predictivo.
Tu modelo puede intentar predecir la tasa de clics. Sin embargo, al final, la clave es lo que haces con esa predicción. Si lo usas para clasificar la calidad de la clasificación final importa más que la la predicción del modelo. Si predices la probabilidad de que un documento sea spam y luego hay un corte en lo que está bloqueado, luego la precisión de lo que se permite a través de los asuntos más. La mayoría de las veces, estos dos elementos deberían estar a un acuerdo: si no está de acuerdo, probablemente será en una pequeña ganancia. Por lo tanto, si hay algún cambio que mejora la pérdida logística, pero degrada el rendimiento del sistema, busca otro atributo. Cuando esto comienza a suceder con más frecuencia, es hora de revisar el objetivo del modelo.
Regla n.o 26: Busca patrones en los errores medidos y crea atributos nuevos.
Supongamos que ves un ejemplo de entrenamiento que el modelo “equivocó”. En una de clasificación, este error podría ser un falso positivo o un falso negativo. En una tarea de clasificación, el error puede ser un par en el que un positivo tiene una clasificación más baja. en lugar de una negativa. Lo más importante es que este es un ejemplo que de aprendizaje automático sabe que cometió un error y quiere corregirlo si, oportunidades. Si le das al modelo un atributo que le permite corregir el error el modelo intentará usarlos.
Por otro lado, si intentas crear un atributo basado en ejemplos, el sistema no ve como errores, la función será ignorada. Por ejemplo: supongamos que, en la búsqueda de apps de Play, alguien busca "juegos gratuitos". Supongamos Uno de los resultados principales es una app de bromas menos relevante. Entonces, creas un atributo para “apps de bromas”. Sin embargo, si maximiza la cantidad de instalaciones y usuarios instalar una app de bromas cuando buscan juegos gratuitos, las "apps de bromas" atributo no tendrá el efecto que deseas.
Una vez que tengas ejemplos de que el modelo se equivocó, busca tendencias que sean fuera del conjunto actual de atributos. Por ejemplo, si el sistema parece estar descender de nivel las publicaciones más largas y, luego, agregar la longitud de la publicación No seas demasiado específico y las funciones nuevas que agregues. Si vas a agregar la longitud de la publicación, no intentes adivinar qué a largo plazo, solo debes agregar una docena de atributos y permitir que el modelo descubra qué hacer con ellos (consulta Regla n.o 21 ). Esa es la forma más fácil de obtener lo que quieres.
Regla n.o 27: Intenta cuantificar el comportamiento no deseado observado.
Algunos miembros de tu equipo comenzarán a frustrarse con las propiedades de la que no les gustan y que no son capturadas por la función de pérdida existente. En en este punto, deben hacer lo que sea necesario para ser sólidos por sus quejas y números de serie. Por ejemplo, si creen que hay demasiadas "apps de bromas" se muestran en la búsqueda de Play, podrían hacer que evaluadores humanos identifiquen apps de bromas. (Puedes datos etiquetados por humanos en este caso, ya que una cantidad relativamente de las consultas representan una gran fracción del tráfico). Si el problemas son medibles, entonces puedes comenzar a usarlos como funciones, objetivos, o métricas. La regla general es "medir primero, optimizar después".
Regla n.o 28: Ten en cuenta que el comportamiento idéntico a corto plazo no implica un comportamiento idéntico a largo plazo.
Imagina que tienes un nuevo sistema que revisa cada doc_id y exact_query, y calcula la probabilidad de clic en cada documento para cada consulta. Descubres que su comportamiento es casi idéntico al de tu sistema actual en ambos casos, en paralelo y con pruebas A/B, así que, dada su simplicidad, se inicia. Sin embargo, notas que no se muestran apps nuevas. ¿Por qué? Bueno, ya que tu el sistema solo muestra un documento basado en su propio historial con esa consulta, no hay para saber que se debe mostrar un documento nuevo.
La única forma de entender cómo funcionaría un sistema a largo plazo solo se entrena con los datos adquiridos cuando el modelo estaba activo. Esto es muy difícil.
Sesgo entre el entrenamiento y la entrega
La desviación entre el entrenamiento y la deriva es la diferencia entre el rendimiento durante el entrenamiento y rendimiento durante la publicación. Estos sesgos pueden deberse a los siguientes motivos:
- Una discrepancia entre cómo manejas los datos en las canalizaciones de entrenamiento y de entrega
- Es un cambio en los datos entre el momento del entrenamiento y el de entrega.
- Un ciclo de retroalimentación entre el modelo y el algoritmo.
Hemos observado sistemas de aprendizaje automático de producción en Google de publicación que afecta el rendimiento de forma negativa. La mejor solución supervisarla explícitamente para que los cambios en el sistema y en los datos no introduzcan sesgos pasar desapercibido.
Regla n.o 29: La mejor manera de asegurarte de que el entrenamiento sea similar al de publicación es guardar el conjunto de atributos que se usan en el momento de la publicación y, luego, canalizarlos a un registro para usarlos durante el entrenamiento.
Aunque no lo puedas hacer en todos los ejemplos, hazlo para una fracción pequeña, como que puedas verificar la coherencia entre la entrega y el entrenamiento (consulta regla n.o 37). Equipos que lograron esto mediciones en Google a veces se sorprendían con los resultados. Página principal de YouTube pasó a las funciones de registro al momento de la entrega con una calidad mejoras y una reducción en la complejidad del código, y muchos equipos están cambiando su infraestructura.
Regla n.o 30: ¡No los quites arbitrariamente!
Cuando tiene demasiados datos, es tentador tomar los archivos del 1 al 12, y ignorar los archivos del 13 al 99. Esto es un error. Aunque los datos que estaban que nunca se muestran al usuario pueden eliminarse, la ponderación por importancia es la mejor opción el resto. Ponderación de importancia significa que, si decides que ejemplo de muestra X con una probabilidad del 30%, luego le damos un peso de 10/3. Con ponderación de importancia, todas las propiedades de calibración analizadas en Regla n.o 14 mantengártelo.
Regla n.o 31: Ten en cuenta que si unes datos de una tabla durante el entrenamiento y la entrega, los datos en la tabla pueden cambiar.
Digamos que unes IDs de documentos con una tabla que contiene atributos para esos documentos (como la cantidad de comentarios o clics). Entre el entrenamiento y la entrega, los atributos la tabla se puede cambiar. La predicción de tu modelo para el mismo documento puede entonces difieren entre el entrenamiento y la entrega. La forma más fácil de evitar este orden problema es registrar los atributos en el momento de la entrega (consulta Regla 32 ). Si la tabla es pero cambian lentamente, también puede obtener una instantánea de la tabla cada hora o cada día cerrar los datos de manera razonable. Ten en cuenta que esto no resuelve por completo el problema.
Regla n.o 32: Reutiliza el código entre la canalización de entrenamiento y la canalización de entrega siempre que sea posible.
El procesamiento por lotes es diferente del procesamiento en línea. En el procesamiento en línea, Debes manejar cada solicitud a medida que llega (p.ej., debes hacer una búsqueda por separado) para cada consulta), mientras que, en el procesamiento por lotes, puedes combinar tareas (p.ej., hacer una unión). En la entrega, se realiza el procesamiento en línea, mientras que el entrenamiento es una tarea de procesamiento por lotes. Sin embargo, hay algunas cosas que puedes hacer para reutilizar el código. Por ejemplo, puedes crear un objeto que es particular para tu sistema donde el resultado de cualquier consulta o unión puede ser de una forma legible por humanos, y los errores pueden probarse fácilmente. Luego, Una vez que hayas recopilado toda la información, durante la entrega o el entrenamiento, ejecutar un método común para establecer un puente entre el objeto legible por humanos que específicas de tu sistema y cualquier formato en el que el sistema espera. Esto elimina una fuente de desviación entre el entrenamiento y la entrega. Como corolario, intenta no usar dos lenguajes de programación diferentes entre el entrenamiento y entrega. Esa decisión hará que sea casi imposible que compartas código.
Regla n.o 33: Si produces un modelo basado en los datos hasta el 5 de enero, prueba el modelo con los datos a partir del 6 de enero.
En general, se mide el rendimiento de un modelo con los datos recopilados después de los datos con el que entrenaste el modelo, ya que refleja mejor lo que hará tu sistema en producción. Si produce un modelo basado en los datos hasta el 5 de enero, pruebe el modelo a partir de los datos del 6 de enero. Es de esperar que el rendimiento no será tan bueno con los nuevos datos, pero no debería ser mucho peor. Dado que puede tener efectos diarios, es posible que no prediga el promedio de clics o el porcentaje de conversiones, pero el área bajo la curva, que representa probabilidad de darle al ejemplo positivo una puntuación más alta que a una negativa ejemplo, deben ser razonablemente cercanas.
Regla n.o 34: En la clasificación binaria para filtrado (como la detección de spam o la determinación de correos electrónicos interesantes), haz pequeños sacrificios a corto plazo en el rendimiento para obtener datos muy limpios.
En una tarea de filtrado, los ejemplos que se marcan como negativos no se muestran a del usuario. Supongamos que tienes un filtro que bloquea el 75% de los ejemplos negativos. al momento de la publicación. Es posible que sientas la tentación de extraer datos de entrenamiento adicionales que se muestran a los usuarios. Por ejemplo, si un usuario marca un correo electrónico como spam que dejar pasar el filtro, es posible que quieras aprender de eso.
Pero este enfoque introduce un sesgo del muestreo. Puedes recopilar datos más limpios si en su lugar, durante la publicación, etiqueta el 1% de todo el tráfico como “retenido” le ofreció ejemplos al usuario. Ahora el filtro bloquea al menos el 74% de la ejemplos negativos. Los ejemplos retenidos pueden convertirse en tus datos de entrenamiento.
Ten en cuenta que si tu filtro bloquea el 95% o más de los ejemplos negativos, enfoque se vuelve menos viable. Aun así, si quieres medir la publicación rendimiento, puede hacer una muestra aún más pequeña (por ejemplo, 0.1% o 0.001%). Diez mil ejemplos es suficiente para estimar el rendimiento con bastante precisión.
Regla n.o 35: Ten cuidado con el sesgo inherente a los problemas de clasificación.
Si cambias el algoritmo de clasificación demasiado para generar resultados diferentes has cambiado los datos a los que va a tu algoritmo ver en el futuro. Este tipo de desviación aparecerá, y debes diseñar tu en torno a él. Existen varios enfoques diferentes. Estos enfoques son todas las formas de favorecer los datos que tu modelo ya vio.
- Tienen una regularización más alta en los atributos que cubren más consultas, a diferencia del con esos atributos que están activados para una sola consulta. De esta manera, el modelo favorecerá que son específicas de una o varias consultas, generalizar a todas las consultas. Este enfoque puede ayudar a evitar que los usuarios resultados de filtraciones en consultas irrelevantes. Ten en cuenta que esto es opuesto al más consejos convencionales de tener más regularización en las columnas de atributos con valores más únicos.
- Solo permite que los atributos tengan ponderaciones positivas. Por lo tanto, cualquier buen atributo será es mejor que un atributo que es “desconocido”.
- No uses atributos solo de documentos. Esta es una versión extrema de la regla n.o 1. Para ejemplo, incluso si una aplicación determinada es una descarga popular, independientemente de la es que no debes mostrarla en todas partes. No hay solo documentos y atributos simplifica esa tarea. El motivo por el que no quieres mostrar un popular en todo el mundo tiene que ver con la importancia de lo que permite el acceso a todas las aplicaciones deseadas. Por ejemplo, si alguien busca "app para observar pájaros", podrían descargar "Angry Birds", pero eso pero otra no era su intención. Mostrar una app de este tipo podría mejorar la tasa de descarga, pero dejar las necesidades del usuario en última instancia insatisfechas.
Regla n.o 36: Evita los ciclos de reacción con atributos posicionales.
La posición del contenido afecta drásticamente la probabilidad de que el usuario interactúe. con él. Si colocas una app en la primera posición, recibirás clics con más frecuencia. y te convencerás de que es más probable que se haga clic. Una forma de lidiar con esto es para agregar atributos posicionales, es decir, atributos acerca de la posición de la contenido de la página. El modelo se entrena con atributos posicionales, aprende a ponderar, por ejemplo, el atributo "1stposition" en gran medida. Tu modelo por lo tanto, da menos importancia a otros factores para ejemplos con “1stposition=true”. En la entrega, no asignas instancias el atributo posicional. todos con la misma función predeterminada, ya que se califican candidatos antes de han decidido el orden en el que deben exhibirse.
Es importante mantener los atributos de posición separados el resto del modelo debido a la asimetría entre el entrenamiento y las pruebas. Hacer que el modelo sea la suma de una función de los atributos posicionales y un del resto de los atributos es ideal. Por ejemplo, no cruces de posición con cualquier atributo del documento.
Regla n.o 37: Mide la desviación entre el entrenamiento y la entrega.
En el sentido más general, hay varios factores que pueden causar sesgo. Además, puedes dividirlo en varias partes:
- Diferencia entre el rendimiento en los datos de entrenamiento y los datos de exclusión de datos no estructurados. En general, esto siempre existirá y no siempre es malo.
- Diferencia entre el rendimiento de los datos de exclusión y el "día siguiente" de datos no estructurados. De nuevo, esta información siempre existirá. Deberías ajustar la regularización maximizar el rendimiento al día siguiente. Sin embargo, las caídas importantes en el rendimiento entre los datos de exclusión y del día siguiente puede indicar que algunos atributos en un entorno que puede afectar el tiempo y posiblemente degradar el rendimiento del modelo.
- Diferencia entre el rendimiento del "día siguiente" los datos y las transmisiones de datos no estructurados. Si aplicas un modelo a un ejemplo en los datos de entrenamiento y los mismos ejemplo al momento de la publicación, debería obtener el mismo resultado (consulte 5a regla ). Por lo tanto, una discrepancia aquí probablemente indica un error de ingeniería.
Fase III de AA: Crecimiento reducido, refinamiento de la optimización y modelos complejos
Existen ciertos indicios de que la segunda fase está llegando a su fin. En primer lugar, tus ganancias mensuales comenzarán a disminuir. Comenzarás a tener las compensaciones entre las métricas: verás que algunas aumentan y otras disminuyen experimentos. Aquí es donde se vuelve interesante. Dado que las ganancias son más difíciles de para lograr, el aprendizaje automático debe volverse más sofisticado. Una salvedad: tiene más reglas de cielo azul que las anteriores. Hemos visto a muchos equipos y atravesar los momentos felices de la fase I y la fase II del aprendizaje automático. Fase Una vez III, los equipos tienen que encontrar su propio camino.
Regla n.o 38: No pierdas tiempo en atributos nuevos si los objetivos no alineados son el problema.
A medida que las mediciones se estancan, el equipo comenzará a analizar los problemas fuera del alcance de los objetivos de su sistema de aprendizaje automático actual. Como indicada anteriormente, si los objetivos del producto no están cubiertos por el modelo de código objetivo, debes cambiar tu objetivo o las metas del producto. Para Por ejemplo, puede optimizar los clics, los +1 o las descargas, pero decisiones basadas en parte en evaluadores humanos.
Regla n.o 39: Las decisiones de lanzamiento representan los objetivos a largo plazo del producto.
Alice tiene una idea para reducir la pérdida logística de la predicción de instalaciones. Ella agrega una función. Se reduce la pérdida logística. Cuando hace un experimento en vivo, aumenta la tasa de instalación. Sin embargo, cuando vaya a la revisión del lanzamiento, alguien señala que la cantidad de usuarios activos por día disminuye en un 5%. El equipo decide no lanzar el modelo. Alicia está decepcionada, pero ahora se da cuenta de que las decisiones de lanzamiento dependen de varios criterios, solo algunos de los cuales pueden optimizarse directamente con el AA.
La verdad es que el mundo real no es mazmorras y dragones: no hay "golpear" puntos" e identificar el estado del producto. El equipo tiene que usar la estadísticas que reúne para intentar predecir con eficacia qué tan bueno será el sistema en el futuro. Necesitan la participación, usuarios activos en 1 día (DAU), 30 DAU, ingresos y retorno de la inversión del anunciante. Estas métricas que son medibles en pruebas A/B en sí mismas son solo un sustituto para objetivos: satisfacer a los usuarios, aumentar los usuarios, satisfacer a los socios y obtener ganancias, incluso en ese caso, podrías considerar proxies por tener una política útil y de alta calidad y una empresa próspera dentro de cinco años.
Las únicas decisiones de lanzamiento fáciles se toman cuando todas las métricas mejoran (o al menos no empeorar). Si el equipo tiene la opción de elegir entre un modelo de aprendizaje automático y una simple, si esta tiene mejor en todas estas métricas, debería elegir la heurística. Además, hay no es una clasificación explícita de todos los valores de métricas posibles. Específicamente, considera con estas dos situaciones:
Experimento | Usuarios activos por día | Ingresos/día |
---|---|---|
A | 1 millón | USD 4 millones |
B | 2 millones | USD 2 millones |
Si el sistema actual es A, es poco probable que el equipo cambie a B. Si el sistema actual es B, entonces es poco probable que el equipo cambie a A. Esta parece estar en conflicto con el comportamiento racional; sin embargo, las predicciones de cambios las métricas pueden o no se lleven a cabo y, por lo tanto, existe un gran riesgo en cambio. Cada métrica abarca una cierta cantidad de riesgo que preocupa al equipo.
Además, ninguna métrica abarca la preocupación final del equipo, "¿dónde está mi producto dentro de cinco años”?
Las personas, por otro lado, tienden a favorecer un objetivo por el que pueden hacer optimizaciones directamente. La mayoría de las herramientas de aprendizaje automático favorecen ese entorno. Los un ingeniero que incorpora funciones nuevas puede obtener un flujo constante de lanzamientos en un en un entorno de nube. Existe un tipo de aprendizaje automático: que comienza a solucionar este problema. Por ejemplo, se puede formular un un problema de satisfacción de restricción que tiene límites inferiores en cada métrica y optimiza alguna combinación lineal de métricas. Sin embargo, aún así, no todos las métricas se definen fácilmente como objetivos de aprendizaje automático: si un documento se se hace clic en él o se instala una app, es porque se mostró el contenido. Sin embargo, es mucho más difícil averiguar por qué un usuario visita tu sitio. Cómo predecir el el éxito futuro de un sitio en su conjunto es IA completa: tan difícil como la computadora o el procesamiento de lenguaje natural.
Regla n.o 40: Usa los ensambles simples.
Los modelos unificados que toman atributos sin procesar y clasifican contenido directamente son modelos más fáciles de depurar y comprender. Sin embargo, un ensamble de modelos (una “modelo” que combina las puntuaciones de otros modelos) pueden funcionar mejor. Para conservar cada modelo debe ser un ensamble que solo tome la entrada de otros modelos o un modelo base que acepta muchos atributos, pero no ambos. Si tienes modelos por encima de otros que se entrenan por separado y, luego, combinarlos puede dar como resultado un comportamiento inadecuado.
Usa un modelo simple para el ensamblaje que solo tome la salida de tu “base” modelos como entradas. También debes aplicar propiedades en estos modelos de ensamble. Por ejemplo, un aumento en la puntuación producido por un modelo base no debería disminuir la puntuación del ensamble. Además, es mejor que los modelos nuevos sean semánticamente interpretables (por ejemplo, calibrado), de modo que los cambios de la los modelos subyacentes no confunden el modelo de ensamble. Además, debes asegurarte de que un archivo el aumento en la probabilidad predicha de un clasificador subyacente disminuir la probabilidad predicha del ensamble.
Regla n.o 41: Cuando el rendimiento se estanca, busca fuentes de información cualitativamente nuevas para agregar en lugar de definir mejor los indicadores existentes.
Agregaste información demográfica sobre el usuario. Agregaste algunas información sobre las palabras del documento. Ya analizaste la plantilla exploración y ajustó la regularización. No viste un lanzamiento con más a una mejora del 1% en tus métricas clave en algunos trimestres. ¿Qué sigue?
Es hora de empezar a crear la infraestructura para un entorno funciones, como el historial de documentos a los que accedió este usuario en la último día, semana, año, o bien datos de otra propiedad. Usa wikidatos entidades o algo interno de su empresa (como gráfico de conocimiento). Usar automático. Comience a ajustar sus expectativas sobre el retorno. esperas en la inversión y amplía tus iniciativas en consecuencia. Como en cualquier de ingeniería de atributos, tienes que sopesar el beneficio de agregar características nuevas contra el costo de una mayor complejidad.
Regla n.o 42: No esperes que la diversidad, personalización o relevancia se correlacionen con la popularidad.
La diversidad en un conjunto de contenidos puede significar muchas cosas, que la fuente del contenido es una de las más comunes. La personalización implica el usuario obtiene sus propios resultados. La relevancia implica que los resultados para una búsqueda consulta son más apropiadas para ella que para cualquier otra. Por lo tanto, los tres estas propiedades se definen como diferentes de lo común.
El problema es que lo común tiende a ser difícil de superar.
Ten en cuenta que si tu sistema mide clics, el tiempo dedicado, reproducciones, +1, la opción para compartir, etc., mides la popularidad del contenido. Equipos a veces intentan aprender un modelo personal con diversidad. Para personalizarlo, agrega funciones que permitirían que el sistema personalice (algunas funciones que representan interés del usuario) o diversificar (funciones que indican si el documento tiene características en común con otros documentos mostrados, como el autor o el contenido), y descubres que esas características tienen menos peso (o a veces un signo diferente) de lo que esperaban.
Esto no significa que la diversidad, la personalización o la relevancia no sean valiosas. Como se indicó en la regla anterior, puedes hacer un procesamiento posterior para aumentar diversidad o relevancia. Si observa que los objetivos a largo plazo aumentan, puede declaran que la diversidad/relevancia es valiosa, más allá de la popularidad. Puedes y, luego, continuar usando el procesamiento posterior o modificar directamente objetivo basado en la diversidad o relevancia.
Regla n.o 43: Tus amigos suelen ser iguales en diferentes productos. Tus intereses no suelen ser así.
Los equipos de Google han tenido mucha aceptación tras tomar un modelo que predice la la cercanía de una conexión con un producto y hacer que funcione bien en otro. Tus amigos son quienes son. Por otro lado, he visto a varios equipos luchan contra las funciones de personalización entre las divisiones de productos. Sí, parece como si debería funcionar. Por ahora, no parece que así sea. Lo que a veces trabajado es usar datos sin procesar de una propiedad para predecir el comportamiento en otra. Además, recuerda que incluso saber que un usuario tiene un historial en otra propiedad puede ayuda. Por ejemplo, la presencia de actividad del usuario en dos productos puede ser indicativo en sí mismo.
Trabajo relacionado
Existen muchos documentos sobre aprendizaje automático en Google y de forma externa.
- Curso intensivo de aprendizaje automático: una introducción al aprendizaje automático aplicado.
- Aprendizaje automático: Un enfoque probabilístico por Kevin Murphy para comprender el campo del aprendizaje automático.
- Análisis de datos correctos: un enfoque de ciencia de datos para pensar en los conjuntos de datos.
- Aprendizaje profundo de Ian Goodfellow et al, para aprender modelos no lineales.
- Informe de Google sobre deuda técnica, que tiene un muchos consejos generales.
- Documentación de TensorFlow.
Agradecimientos
Gracias a David Westbrook, Peter Brandt, Samuel Ieong, Chenyu Zhao, Li Wei, Michalis Potamias, Evan Rosen, Barry Rosenberg, Christine Robson, James Pine Tal Shaked, Tushar Chandra, Mustafa Ispir, Jeremiah Harmsen y Konstantinos Katsiapis, Glen Anderson, Dan Duckworth, Shishir Birmiwal, Gal Elidan y Su Lin Wu, Jaihui Liu, Fernando Pereira y Hrishikesh Aradhye por hacer muchas correcciones, y ejemplos útiles para este documento. Además, gracias a Kristen Lefevre, Suddha Basu y Chris Berg quienes ayudaron con una versión anterior. Cualquiera errores, omisiones u (¡sí!) opiniones impopulares son mis propias.
Apéndice
Existen diversas referencias a productos de Google en este documento. Para proporcionar más contexto, proporcionaré una descripción breve de los ejemplos más comunes a continuación.
Descripción general de YouTube
YouTube es un servicio de video en streaming. Tanto la página principal de YouTube como la sección Ver a continuación de YouTube Los equipos de páginas usan modelos de AA para clasificar las recomendaciones de videos. Recomendaciones de Ver a continuación videos para ver después del que se está reproduciendo, mientras que en la página principal se recomienda videos para los usuarios que navegan por la página principal.
Descripción general de Google Play
Google Play tiene muchos modelos que resuelven una gran variedad de problemas. Búsqueda de Play, Play Todas las recomendaciones personalizadas en la página principal y las apps con la opción “Los usuarios también instalaron” aprendizaje automático.
Descripción general de Google+
Google+ utilizó el aprendizaje automático en diversas situaciones: clasificación de las publicaciones en la "transmisión" de publicaciones vistas por el usuario, clasificadas como "Lo más interesante" entradas que son muy populares actualmente), clasificar a las personas que conoces, etcétera. Google+ cerró todas las cuentas personales en 2019 y fue reemplazada por Google Currents para las cuentas comerciales el 6 de julio de 2020.