Funcionamento da aprendizaxe automática en Mail.ru Mail

Funcionamento da aprendizaxe automática en Mail.ru Mail

Baseado nos meus discursos en Highload++ e DataFest Minsk 2019.

Para moitos hoxe en día, o correo é unha parte integral da vida en liña. Coa súa axuda, realizamos correspondencia comercial, almacenamos todo tipo de información importante relacionada coas finanzas, as reservas de hoteis, a realización de pedidos e moito máis. A mediados de 2018, formulamos unha estratexia de produtos para o desenvolvemento do correo. Como debería ser o correo moderno?

O correo debe ser intelixente, é dicir, axudar aos usuarios a navegar polo crecente volume de información: filtrala, estruturala e proporcionala do xeito máis cómodo. Ela debe ser útil, o que che permite resolver varias tarefas directamente na túa caixa de correo, por exemplo, pagar multas (función que, por desgraza, uso). E ao mesmo tempo, por suposto, o correo debe proporcionar protección da información, cortando o spam e protexendo contra a piratería, é dicir, ser seguro.

Estas áreas definen unha serie de problemas clave, moitos dos cales poden resolverse de forma eficaz mediante a aprendizaxe automática. Aquí tes exemplos de funcións xa existentes desenvolvidas como parte da estratexia: unha para cada dirección.

  • Responder intelixente. O correo ten unha función de resposta intelixente. A rede neuronal analiza o texto da carta, comprende o seu significado e propósito e, como resultado, ofrece as tres opcións de resposta máis adecuadas: positiva, negativa e neutra. Isto contribúe a aforrar moito tempo ao responder cartas, e tamén a miúdo responde dun xeito non estándar e divertido.
  • Agrupación de correos electrónicosrelacionados cos pedidos en tendas en liña. Adoitamos mercar en liña e, por regra xeral, as tendas poden enviar varios correos electrónicos por cada pedido. Por exemplo, desde AliExpress, o servizo máis grande, chegan moitas cartas por un mesmo pedido, e calculamos que no caso do terminal o seu número podería chegar ata o 29. Por iso, utilizando o modelo de Recoñecemento de Entidade Nomeada, extraemos o número de pedido. e outra información do texto e agrupa todas as letras nun mesmo fío. Tamén mostramos información básica sobre o pedido nunha caixa separada, o que facilita o traballo con este tipo de correo electrónico.

    Funcionamento da aprendizaxe automática en Mail.ru Mail

  • Anti-phishing. O phishing é un tipo de correo electrónico fraudulento especialmente perigoso, coa axuda do cal os atacantes tentan obter información financeira (incluídas as tarxetas bancarias do usuario) e inicios de sesión. Tales cartas imitan as reais enviadas polo servizo, incluso visualmente. Polo tanto, coa axuda de Computer Vision, recoñecemos os logotipos e o estilo de deseño das cartas de grandes empresas (por exemplo, Mail.ru, Sber, Alfa) e témolo en conta xunto co texto e outras funcións nos nosos clasificadores de spam e phishing. .

Aprendizaxe automática

Un pouco sobre a aprendizaxe automática no correo electrónico en xeral. O correo é un sistema moi cargado: unha media de 1,5 millóns de cartas ao día pasan polos nosos servidores para 30 millóns de usuarios de DAU. Uns 30 sistemas de aprendizaxe automática admiten todas as funcións e funcións necesarias.

Cada letra pasa por todo un pipeline de clasificación. Primeiro cortamos o spam e deixamos bos correos electrónicos. Os usuarios moitas veces non notan o traballo do antispam, porque o 95-99% do spam nin sequera acaba no cartafol apropiado. O recoñecemento de spam é unha parte moi importante do noso sistema, e a máis difícil, xa que no ámbito do anti-spam existe unha constante adaptación entre os sistemas de defensa e de ataque, o que supón un continuo reto de enxeñería para o noso equipo.

A continuación, separamos as letras das persoas e dos robots. Os correos electrónicos das persoas son os máis importantes, polo que ofrecémoslles funcións como Resposta intelixente. As cartas dos robots divídense en dúas partes: transaccionais: estas son cartas importantes dos servizos, por exemplo, confirmacións de compras ou reservas de hoteis, finanzas e informativas: estas son publicidade empresarial, descontos.

Cremos que os correos electrónicos transaccionais teñen a mesma importancia que a correspondencia persoal. Deben estar a man, porque moitas veces necesitamos atopar rapidamente información sobre un pedido ou unha reserva de billetes de avión, e pasamos tempo buscando estas letras. Por iso, por comodidade, dividímolos automaticamente en seis categorías principais: viaxes, pedidos, finanzas, billetes, inscricións e, finalmente, multas.

As cartas de información son o grupo máis grande e probablemente menos importante, que non requiren unha resposta inmediata, xa que nada significativo cambiará na vida do usuario se non le esa carta. Na nosa nova interface, colaprámolos en dous fíos: redes sociais e boletíns, co que limpamos visualmente a caixa de entrada e deixamos só as mensaxes importantes visibles.

Funcionamento da aprendizaxe automática en Mail.ru Mail

Explotación

Un gran número de sistemas provoca moitas dificultades de funcionamento. Despois de todo, os modelos degrádanse co paso do tempo, como calquera software: as funcións rompen, as máquinas fallan, o código vólvese torcido. Ademais, os datos cambian constantemente: engádense outros novos, transfórmanse os patróns de comportamento dos usuarios, etc., polo que un modelo sen o apoio adecuado funcionará cada vez peor co paso do tempo.

Non debemos esquecer que canto máis profunda penetra a aprendizaxe automática nas vidas dos usuarios, maior é o impacto que teñen no ecosistema e, como resultado, máis perdas financeiras ou beneficios poden recibir os actores do mercado. Por iso, nun número crecente de áreas, os xogadores están a adaptarse ao traballo dos algoritmos de ML (exemplos clásicos son a publicidade, a busca e o xa mencionado antispam).

Ademais, as tarefas de aprendizaxe automática teñen unha peculiaridade: calquera cambio, aínda menor, no sistema pode xerar moito traballo co modelo: traballo con datos, reciclaxe, despregamento, que pode levar semanas ou meses. Polo tanto, canto máis rápido cambie o ambiente no que operan os seus modelos, máis esforzo requirirá para mantelos. Un equipo pode crear moitos sistemas e estar contento con iso, pero despois gasta case todos os seus recursos en mantelos, sen a oportunidade de facer nada novo. Unha vez atopamos unha situación así no equipo antispam. E fixeron a conclusión obvia de que o soporte debe ser automatizado.

Automatización

Que se pode automatizar? Case todo, en realidade. Identifiquei catro áreas que definen a infraestrutura de aprendizaxe automática:

  • recollida de datos;
  • formación adicional;
  • despregar;
  • proba e seguimento.

Se o ambiente é inestable e cambia constantemente, toda a infraestrutura arredor do modelo resulta ser moito máis importante que o propio modelo. Pode ser un bo clasificador lineal antigo, pero se lle proporcionas as funcións correctas e recibes bos comentarios dos usuarios, funcionará moito mellor que os modelos de última xeración con todas as súas características.

Bucle de comentarios

Este ciclo combina a recollida de datos, a formación adicional e a implantación; de feito, todo o ciclo de actualización do modelo. Por que é importante? Consulta o calendario de inscrición no correo:

Funcionamento da aprendizaxe automática en Mail.ru Mail

Un programador de aprendizaxe automática implementou un modelo anti-bot que impide que os bots se rexistren no correo electrónico. O gráfico cae ata un valor onde só quedan usuarios reais. Todo é xenial! Pero pasan catro horas, os bots axustan os seus guións e todo volve á normalidade. Nesta implementación, o programador pasou un mes engadindo funcións e reciclando o modelo, pero o spammer puido adaptarse en catro horas.

Para non ser tan insoportablemente doloroso e non ter que refacer todo despois, debemos pensar inicialmente en como será o bucle de retroalimentación e que faremos se o ambiente cambia. Comecemos coa recollida de datos: este é o combustible para os nosos algoritmos.

Recollida de datos

Está claro que para as redes neuronais modernas, cantos máis datos, mellor, e son, de feito, xerados polos usuarios do produto. Os usuarios poden axudarnos marcando datos, pero non podemos abusar diso, porque nalgún momento os usuarios cansaranse de completar os teus modelos e cambiarán a outro produto.

Un dos erros máis comúns (aquí fago unha referencia a Andrew Ng) é centrarse demasiado nas métricas do conxunto de datos de proba, e non nos comentarios do usuario, que é en realidade a principal medida da calidade do traballo, xa que creamos un produto para o usuario. Se o usuario non entende ou non lle gusta o traballo do modelo, entón todo está arruinado.

Polo tanto, o usuario sempre debería poder votar e debería ter unha ferramenta para o feedback. Se pensamos que chegou á caixa de correo unha carta relacionada coas finanzas, cómpre marcala como “financiar” e debuxar un botón no que o usuario poida premer e dicir que non se trata de finanzas.

Calidade da retroalimentación

Falemos da calidade dos comentarios dos usuarios. En primeiro lugar, ti e o usuario podes poñer diferentes significados nun concepto. Por exemplo, ti e os teus xestores de produtos pensas que "finanzas" significa cartas do banco, e o usuario pensa que unha carta da avoa sobre a súa pensión tamén se refire ás finanzas. En segundo lugar, hai usuarios aos que lles encanta presionar botóns sen ningunha lóxica. En terceiro lugar, o usuario pode estar profundamente equivocado nas súas conclusións. Un exemplo rechamante da nosa práctica é a implementación dun clasificador Spam nixeriano, un tipo de spam moi divertido no que se lle pide ao usuario que tome varios millóns de dólares dun parente afastado que se atopa de súpeto en África. Despois de implementar este clasificador, comprobamos os clics de "Non spam" nestes correos electrónicos e resultou que o 80% deles eran un suculento spam nixeriano, o que suxire que os usuarios poden ser extremadamente crédulos.

E non esquezamos que os botóns poden facer clic non só por persoas, senón tamén por todo tipo de bots que pretenden ser un navegador. Polo tanto, o feedback bruto non é bo para aprender. Que podes facer con esta información?

Usamos dous enfoques:

  • Comentarios de ML ligado. Por exemplo, temos un sistema anti-bot en liña que, como dixen, toma unha decisión rápida baseándose nun número limitado de sinais. E hai un segundo sistema lento que funciona despois do feito. Ten máis datos sobre o usuario, o seu comportamento, etc. Como resultado, tómase a decisión máis informada; polo tanto, ten unha maior precisión e integridade. Pode dirixir a diferenza no funcionamento destes sistemas ao primeiro como datos de adestramento. Así, un sistema máis sinxelo sempre tentará achegarse ao rendemento doutro máis complexo.
  • Fai clic en clasificación. Podes simplemente clasificar cada clic do usuario, avaliar a súa validez e usabilidade. Facémolo no correo antispam, utilizando os atributos do usuario, o seu historial, os atributos do remitente, o propio texto e o resultado dos clasificadores. Como resultado, obtemos un sistema automático que valida os comentarios dos usuarios. E como é necesario reciclar con moita menos frecuencia, o seu traballo pode converterse na base de todos os demais sistemas. A principal prioridade neste modelo é a precisión, porque adestrar o modelo en datos inexactos está cheo de consecuencias.

Mentres estamos limpando os datos e adestrando os nosos sistemas de ML, non debemos esquecernos dos usuarios, porque para nós, miles, millóns de erros no gráfico son estatísticas e para o usuario, cada erro é unha traxedia. Ademais do feito de que o usuario debe vivir dalgún xeito co teu erro no produto, despois de recibir comentarios, espera que se elimine unha situación similar no futuro. Polo tanto, sempre paga a pena dar aos usuarios non só a oportunidade de votar, senón tamén de corrixir o comportamento dos sistemas de ML, creando, por exemplo, heurísticas persoais para cada clic de comentarios; no caso do correo, esta podería ser a capacidade de filtrar. tales cartas por remitente e título para este usuario.

Tamén cómpre construír un modelo baseado nalgúns informes ou solicitudes de soporte en modo semiautomático ou manual para que outros usuarios non sufran problemas similares.

Heurística para aprender

Hai dous problemas con estas heurísticas e muletas. O primeiro é que o número cada vez maior de muletas é difícil de manter, e moito menos a súa calidade e rendemento a longo prazo. O segundo problema é que o erro pode non ser frecuente e uns poucos clics para adestrar aínda máis o modelo non serán suficientes. Parece que estes dous efectos non relacionados poden neutralizarse significativamente se se aplica o seguinte enfoque.

  1. Creamos unha muleta temporal.
  2. Enviamos datos deste ao modelo, actualízase regularmente, incluídos os datos recibidos. Aquí, por suposto, é importante que as heurísticas teñan unha alta precisión para non reducir a calidade dos datos do conxunto de adestramento.
  3. A continuación, configuramos a monitorización para activar a muleta e, se despois dun tempo a muleta xa non funciona e está completamente cuberta polo modelo, podes retirala con seguridade. Agora é pouco probable que este problema volva ocorrer.

Así que un exército de muletas é moi útil. O principal é que o seu servizo é urxente e non permanente.

Formación complementaria

A reciclaxe é o proceso de engadir novos datos obtidos como resultado da retroalimentación dos usuarios ou doutros sistemas, e formar un modelo existente sobre el. Pode haber varios problemas coa formación adicional:

  1. É posible que o modelo simplemente non admita formación adicional, pero só aprende desde cero.
  2. En ningún lugar do libro da natureza está escrito que a formación adicional seguramente mellorará a calidade do traballo na produción. Moitas veces ocorre o contrario, é dicir, só é posible o deterioro.
  3. Os cambios poden ser imprevisibles. Este é un punto bastante sutil que identificamos por nós mesmos. Aínda que un novo modelo nunha proba A/B amose resultados similares en comparación co actual, isto non significa que funcione de forma idéntica. O seu traballo pode diferir só nun por cento, o que pode traer novos erros ou devolver antigos que xa foron corrixidos. Tanto nós como os usuarios xa sabemos como convivir cos erros actuais, e cando xurden un gran número de novos erros, o usuario tamén pode non entender o que está a suceder, porque espera un comportamento previsible.

Polo tanto, o máis importante na formación complementaria é garantir que o modelo mellore, ou polo menos non empeore.

O primeiro que se nos ocorre cando falamos de formación adicional é o enfoque de Aprendizaxe Activa. Que significa isto? Por exemplo, o clasificador determina se un correo electrónico está relacionado coas finanzas e ao redor do seu límite de decisión engadimos unha mostra de exemplos etiquetados. Isto funciona ben, por exemplo, na publicidade, onde hai moitos comentarios e podes adestrar o modelo en liña. E se hai pouco feedback, obtemos unha mostra moi sesgada en relación coa distribución de datos de produción, en base á cal é imposible avaliar o comportamento do modelo durante a operación.

Funcionamento da aprendizaxe automática en Mail.ru Mail

De feito, o noso obxectivo é conservar patróns antigos, modelos xa coñecidos, e adquirir outros novos. Aquí é importante a continuidade. O modelo, que moitas veces nos esforzamos en lanzar, xa está funcionando, polo que podemos centrarnos no seu rendemento.

No correo utilízanse diferentes modelos: árbores, lineais, redes neuronais. Para cada un creamos o noso propio algoritmo de adestramento adicional. No proceso de adestramento adicional, non só recibimos datos novos, senón tamén moitas veces novas funcións, que teremos en conta en todos os algoritmos seguintes.

Modelos lineais

Digamos que temos regresión loxística. Creamos un modelo de perdas a partir dos seguintes compoñentes:

  • LogLoss en novos datos;
  • regularizamos os pesos das novas funcionalidades (non tocamos as antigas);
  • tamén aprendemos de datos antigos para conservar patróns antigos;
  • e, quizais, o máis importante: engadimos a Regularización Harmónica, que garante que os pesos non cambiarán moito en relación ao modelo antigo segundo a norma.

Dado que cada compoñente de perda ten coeficientes, podemos seleccionar os valores óptimos para a nosa tarefa mediante validación cruzada ou en función dos requisitos do produto.

Funcionamento da aprendizaxe automática en Mail.ru Mail

Árbores

Pasemos ás árbores de decisión. Compilamos o seguinte algoritmo para o adestramento adicional das árbores:

  1. A produción executa un bosque de 100-300 árbores, que está adestrado nun conxunto de datos antigos.
  2. Ao final eliminamos M = 5 pezas e engadimos 2M = 10 novas, adestradas sobre todo o conxunto de datos, pero cun alto peso para os novos datos, o que naturalmente garante un cambio incremental no modelo.

Obviamente, co paso do tempo, o número de árbores aumenta moito, debendo reducirse periodicamente para cumprir cos tempos. Para iso, utilizamos a agora omnipresente Knowledge Distillation (KD). Brevemente sobre o principio do seu funcionamento.

  1. Temos o modelo "complexo" actual. Executámolo no conxunto de datos de adestramento e obtemos a distribución de probabilidade da clase na saída.
  2. A continuación, adestramos o modelo do alumno (o modelo con menos árbores neste caso) para repetir os resultados do modelo utilizando a distribución de clases como variable obxectivo.
  3. É importante ter en conta aquí que non usamos o marcado do conxunto de datos de ningún xeito e, polo tanto, podemos usar datos arbitrarios. Por suposto, usamos unha mostra de datos do fluxo de combate como mostra de adestramento para o modelo de estudantes. Así, o conxunto de adestramento permítenos garantir a precisión do modelo e a mostra do fluxo garante un rendemento similar na distribución da produción, compensando o sesgo do conxunto de adestramento.

Funcionamento da aprendizaxe automática en Mail.ru Mail

A combinación destas dúas técnicas (engadindo árbores e reducindo periodicamente o seu número mediante a Destilación do Coñecemento) garante a introdución de novos patróns e unha continuidade total.

Coa axuda de KD, tamén realizamos diferentes operacións sobre funcións do modelo, como eliminar funcións e traballar en lagoas. No noso caso, temos unha serie de características estatísticas importantes (por remitentes, hash de texto, URL, etc.) que se almacenan na base de datos, que tenden a fallar. O modelo, por suposto, non está preparado para tal desenvolvemento de eventos, xa que as situacións de fallo non se producen no conxunto de adestramento. Nestes casos, combinamos técnicas de KD e de aumento: cando adestramos parte dos datos, eliminamos ou restablecemos as funcións necesarias e tomamos as etiquetas orixinais (saídas do modelo actual) e o modelo do alumno aprende a repetir esta distribución. .

Funcionamento da aprendizaxe automática en Mail.ru Mail

Observamos que canto máis grave se produce a manipulación do modelo, maior é a porcentaxe de mostra de fíos necesaria.

A eliminación de funcións, a operación máis sinxela, require só unha pequena parte do fluxo, xa que só cambian un par de funcións e o modelo actual foi adestrado no mesmo conxunto: a diferenza é mínima. Para simplificar o modelo (reducindo o número de árbores varias veces), xa se precisa de 50 a 50. E para as omisións de características estatísticas importantes que afectarán seriamente o rendemento do modelo, é necesario aínda máis fluxo para nivelar o traballo do novo modelo resistente a omisións en todo tipo de letras.

Funcionamento da aprendizaxe automática en Mail.ru Mail

FastText

Pasemos a FastText. Permíteme lembrar que a representación (Incrustación) dunha palabra consiste na suma da incrustación da propia palabra e de todas as súas letras N-gramas, normalmente trigramas. Dado que pode haber bastantes trigramas, utilízase Bucket Hashing, é dicir, converte todo o espazo nun determinado mapa hash fixo. Como resultado, a matriz de peso obtense coa dimensión da capa interna por número de palabras + baldes.

Cun adestramento adicional, aparecen novos signos: palabras e trigramas. Non ocorre nada significativo na formación de seguimento estándar de Facebook. Só se adestran os pesos antigos con entropía cruzada en novos datos. Así, non se utilizan novas funcións; por suposto, este enfoque ten todas as desvantaxes descritas anteriormente asociadas á imprevisibilidade do modelo en produción. Por iso modificamos un pouco FastText. Engadimos todos os novos pesos (palabras e trigramas), ampliamos toda a matriz con entropía cruzada e engadimos regularización harmónica por analoxía co modelo lineal, o que garante un cambio insignificante nos antigos pesos.

Funcionamento da aprendizaxe automática en Mail.ru Mail

CNN

As redes convolucionais son un pouco máis complicadas. Se as últimas capas se completan na CNN, entón, por suposto, pode aplicar a regularización harmónica e garantir a continuidade. Pero se é necesario un adestramento adicional de toda a rede, esa regularización xa non se pode aplicar a todas as capas. Non obstante, hai unha opción para adestrar incrustacións complementarias mediante Triplet Loss (artigo orixinal).

Triple Perda

Usando unha tarefa anti-phishing como exemplo, vexamos Triplet Loss en termos xerais. Tomamos o noso logotipo, así como exemplos positivos e negativos de logotipos doutras empresas. Minimizamos a distancia entre os primeiros e maximizamos a distancia entre os segundos, facémolo cun pequeno oco para garantir unha maior compacidade das clases.

Funcionamento da aprendizaxe automática en Mail.ru Mail

Se adestramos aínda máis a rede, entón o noso espazo métrico cambia completamente e tórnase completamente incompatible co anterior. Este é un problema grave nos problemas que usan vectores. Para evitar este problema, mesturaremos incrustacións antigas durante o adestramento.

Engadimos novos datos ao conxunto de adestramento e estamos adestrando a segunda versión do modelo desde cero. Na segunda etapa, adestramos aínda máis a nosa rede (Finetuning): primeiro complétase a última capa e, a continuación, desconxela toda a rede. No proceso de composición de trillizos, calculamos só unha parte das incrustacións usando o modelo adestrado, o resto usando o antigo. Así, no proceso de formación adicional, garantimos a compatibilidade dos espazos métricos v1 e v2. Unha versión única da regularización harmónica.

Funcionamento da aprendizaxe automática en Mail.ru Mail

Arquitectura enteira

Se consideramos todo o sistema usando antispam como exemplo, entón os modelos non están illados, senón aniñados uns dentro dos outros. Facemos fotos, texto e outras funcións, usando CNN e Fast Text obtemos incorporacións. A continuación, aplícanse clasificadores enriba das incrustacións, que proporcionan puntuacións para varias clases (tipos de letras, spam, presenza dun logotipo). Os sinais e sinais xa están entrando no bosque de árbores para que se tome a decisión final. Os clasificadores individuais deste esquema permiten interpretar mellor os resultados do sistema e, máis concretamente, volver adestrar os compoñentes en caso de problemas, en lugar de alimentar todos os datos en árbores de decisión en forma bruta.

Funcionamento da aprendizaxe automática en Mail.ru Mail

Como resultado, garantimos a continuidade en todos os niveis. No nivel inferior en CNN e Fast Text usamos a regularización harmónica, para os clasificadores do medio tamén usamos a regularización harmónica e a calibración da taxa para a coherencia da distribución de probabilidade. Ben, o impulso de árbores adestrase de forma incremental ou mediante a destilación do coñecemento.

En xeral, manter un sistema de aprendizaxe automática deste tipo aniñado adoita ser unha dor, xa que calquera compoñente do nivel inferior leva a unha actualización de todo o sistema anterior. Pero dado que na nosa configuración cada compoñente cambia lixeiramente e é compatible co anterior, todo o sistema pódese actualizar peza a peza sen necesidade de reciclar toda a estrutura, o que permite apoialo sen sobrecargas graves.

Implantar

Discutimos a recollida de datos e a formación adicional de diferentes tipos de modelos, polo que pasamos á súa implantación no contorno de produción.

Probas A/B

Como dixen anteriormente, no proceso de recollida de datos, adoitamos obter unha mostra sesgada, da que é imposible avaliar o rendemento de produción do modelo. Polo tanto, ao implementar, o modelo debe compararse coa versión anterior para comprender como están indo realmente as cousas, é dicir, realizar probas A/B. De feito, o proceso de lanzamento e análise de gráficos é bastante rutinario e pódese automatizar facilmente. Lanzamos os nosos modelos gradualmente ao 5 %, 30 %, 50 % e 100 % dos usuarios, mentres recollemos todas as métricas dispoñibles sobre as respostas dos modelos e os comentarios dos usuarios. No caso dalgúns valores atípicos graves, revertimos automaticamente o modelo e, noutros casos, tendo recollido un número suficiente de clics dos usuarios, decidimos aumentar a porcentaxe. Como resultado, levamos o novo modelo ao 50% dos usuarios de forma totalmente automática, e o lanzamento a toda a audiencia será aprobado por unha persoa, aínda que este paso pode ser automatizado.

Non obstante, o proceso de proba A/B ofrece espazo para a optimización. O caso é que calquera proba A/B é bastante longa (no noso caso leva de 6 a 24 horas dependendo da cantidade de feedback), o que a fai bastante cara e con recursos limitados. Ademais, requírese unha porcentaxe de fluxo suficientemente alta para a proba para acelerar esencialmente o tempo global da proba A/B (reclutar unha mostra estatisticamente significativa para avaliar as métricas nunha pequena porcentaxe pode levar moito tempo), o que fai que o número de slots A/B moi limitado. Obviamente, necesitamos probar só os modelos máis prometedores, dos cales recibimos bastante durante o proceso de formación adicional.

Para resolver este problema, adestramos un clasificador separado que predice o éxito dunha proba A/B. Para iso, tomamos como características estatísticas de toma de decisións, Precision, Recall e outras métricas sobre o conxunto de adestramento, sobre o diferido e sobre a mostra do fluxo. Tamén comparamos o modelo co actual en produción, con heurísticas, e temos en conta a Complexidade do modelo. Usando todas estas características, un clasificador adestrado no historial de probas avalía modelos candidatos, no noso caso son bosques de árbores, e decide cal usar na proba A/B.

Funcionamento da aprendizaxe automática en Mail.ru Mail

No momento da implementación, este enfoque permitiunos aumentar varias veces o número de probas A/B exitosas.

Probas e seguimento

As probas e a vixilancia, curiosamente, non prexudican a nosa saúde, senón que, pola contra, a melloran e alivannos do estrés innecesario. As probas permítenche previr un fallo e a monitorización permítelle detectalo a tempo para reducir o impacto nos usuarios.

É importante entender aquí que tarde ou cedo o seu sistema sempre cometerá erros - isto débese ao ciclo de desenvolvemento de calquera software. Ao comezo do desenvolvemento do sistema sempre hai moitos erros ata que todo se acomoda e se completa a etapa principal da innovación. Pero co paso do tempo, a entropía pasa factura e os erros aparecen de novo, debido á degradación dos compoñentes e aos cambios nos datos, dos que falei ao principio.

Aquí gustaríame sinalar que calquera sistema de aprendizaxe automática debe considerarse desde o punto de vista do seu beneficio ao longo de todo o seu ciclo de vida. O seguinte gráfico mostra un exemplo de como funciona o sistema para detectar un tipo raro de spam (a liña do gráfico está preto de cero). Un día, debido a un atributo caché incorrectamente, volveuse tola. Por sorte, non houbo control de activación anormal; como resultado, o sistema comezou a gardar cartas en grandes cantidades no cartafol de "spam" no límite de toma de decisións. Malia corrixir as consecuencias, o sistema xa cometeu tantas veces erros que non se pagará nin en cinco anos. E este é un completo fracaso desde o punto de vista do ciclo de vida do modelo.

Funcionamento da aprendizaxe automática en Mail.ru Mail

Polo tanto, unha cousa tan sinxela como o seguimento pode converterse en clave na vida dun modelo. Ademais das métricas estándar e obvias, consideramos a distribución das respostas e puntuacións do modelo, así como a distribución dos valores das características clave. Usando a diverxencia KL, podemos comparar a distribución actual coa histórica ou os valores da proba A/B co resto do fluxo, o que nos permite notar anomalías no modelo e retrotraer os cambios de forma oportuna.

Na maioría dos casos, lanzamos as nosas primeiras versións de sistemas utilizando heurísticas sinxelas ou modelos que utilizamos como monitorización no futuro. Por exemplo, monitorizamos o modelo NER en comparación cos habituais de tendas en liña específicas e, se a cobertura do clasificador cae en comparación con eles, entendemos as razóns. Outro uso útil da heurística!

Resultados de

Repasemos as ideas clave do artigo de novo.

  • Fibdeck. Sempre pensamos no usuario: como vivirá cos nosos erros, como poderá denuncialos. Non esquezas que os usuarios non son unha fonte de comentarios puros para os modelos de adestramento e hai que limpalo coa axuda de sistemas auxiliares de ML. Se non é posible recoller un sinal do usuario, buscamos fontes alternativas de feedback, por exemplo, sistemas conectados.
  • Formación complementaria. O principal aquí é a continuidade, polo que confiamos no modelo de produción actual. Adestramos novos modelos para que non se diferencien moito do anterior pola regularización harmónica e trucos similares.
  • Implantar. A implantación automática baseada en métricas reduce moito o tempo de implementación de modelos. Seguimento das estatísticas e distribución da toma de decisións, o número de caídas dos usuarios é obrigatorio para o seu sono reparador e fin de semana produtivo.

Ben, espero que isto che axude a mellorar os teus sistemas de ML máis rápido, a sacalos ao mercado máis rápido e a facelos máis fiables e menos estresantes.

Fonte: www.habr.com

Engadir un comentario