Funcionament de l'aprenentatge automàtic a Mail.ru Mail

Funcionament de l'aprenentatge automàtic a Mail.ru Mail

Basat en els meus discursos a Highload++ i DataFest Minsk 2019.

Per a molts avui, el correu és una part integral de la vida en línia. Amb la seva ajuda, fem correspondència comercial, emmagatzemem tot tipus d'informació important relacionada amb finances, reserves d'hotels, comandes i molt més. A mitjans del 2018, vam formular una estratègia de producte per al desenvolupament de correu. Com hauria de ser el correu modern?

El correu ha de ser intel·ligent, és a dir, ajudar els usuaris a navegar pel volum creixent d'informació: filtrar, estructurar i proporcionar-la de la manera més còmoda. Ella deu ser útil, que us permet resoldre diverses tasques directament a la vostra bústia de correu, per exemple, pagar multes (una funció que, malauradament, faig servir). I al mateix temps, és clar, el correu ha de proporcionar protecció de la informació, tallant el correu brossa i protegint contra la pirateria, és a dir, ser Caixa forta.

Aquestes àrees defineixen una sèrie de problemes clau, molts dels quals es poden resoldre de manera eficaç mitjançant l'aprenentatge automàtic. A continuació es mostren exemples de funcions ja existents desenvolupades com a part de l'estratègia: una per a cada direcció.

  • Resposta intel·ligent. El correu té una funció de resposta intel·ligent. La xarxa neuronal analitza el text de la carta, n'entén el significat i la finalitat i, en conseqüència, ofereix les tres opcions de resposta més adequades: positiva, negativa i neutra. Això ajuda a estalviar molt temps a l'hora de respondre cartes, i també sovint respon d'una manera no estàndard i divertida.
  • Agrupació de correus electrònicsrelacionades amb les comandes a les botigues en línia. Sovint comprem en línia i, per regla general, les botigues poden enviar diversos correus electrònics per a cada comanda. Per exemple, des d'AliExpress, el servei més gran, entren moltes cartes per a una comanda, i hem calculat que en el cas del terminal el seu nombre podria arribar fins a 29. Per tant, utilitzant el model de reconeixement d'entitats amb nom, extreim el número de comanda. i altra informació del text i agrupa totes les lletres en un sol fil. També mostrem informació bàsica sobre la comanda en un quadre a part, cosa que facilita el treball amb aquest tipus de correu electrònic.

    Funcionament de l'aprenentatge automàtic a Mail.ru Mail

  • Antiphishing. El phishing és un tipus de correu electrònic fraudulent especialment perillós, amb l'ajuda del qual els atacants intenten obtenir informació financera (incloses les targetes bancàries de l'usuari) i els inicis de sessió. Aquestes cartes imiten les reals enviades pel servei, fins i tot visualment. Per tant, amb l'ajuda de Computer Vision, reconeixem els logotips i l'estil de disseny de cartes de grans empreses (per exemple, Mail.ru, Sber, Alfa) i ho tenim en compte juntament amb el text i altres característiques dels nostres classificadors de correu brossa i pesca. .

Aprenentatge automàtic

Una mica sobre l'aprenentatge automàtic al correu electrònic en general. El correu és un sistema molt carregat: una mitjana de 1,5 milions de cartes al dia passen pels nostres servidors per a 30 milions d'usuaris de DAU. Uns 30 sistemes d'aprenentatge automàtic admeten totes les funcions i característiques necessàries.

Cada lletra passa per tot un canal de classificació. Primer tallem el correu brossa i deixem bons correus electrònics. Els usuaris sovint no noten el treball de l'antispam, perquè el 95-99% del correu brossa ni tan sols acaba a la carpeta adequada. El reconeixement de correu brossa és una part molt important del nostre sistema, i la més difícil, ja que en l'àmbit de l'anti-spam hi ha una constant adaptació entre els sistemes de defensa i d'atac, la qual cosa suposa un repte d'enginyeria continu per al nostre equip.

A continuació, separem lletres de persones i robots. Els correus electrònics de les persones són els més importants, de manera que els oferim funcions com la resposta intel·ligent. Les cartes dels robots es divideixen en dues parts: transaccionals: són cartes importants dels serveis, per exemple, confirmacions de compres o reserves d'hotels, finances i informatives: es tracta de publicitat comercial, descomptes.

Creiem que els correus electrònics transaccionals tenen la mateixa importància que la correspondència personal. Haurien d'estar a mà, perquè sovint necessitem trobar ràpidament informació sobre una comanda o reserva de bitllet d'avió, i dediquem temps a buscar aquestes cartes. Per això, per comoditat, els dividim automàticament en sis categories principals: viatges, comandes, finances, bitllets, inscripcions i, finalment, multes.

Les cartes informatives són el grup més gran i probablement menys important, que no requereixen una resposta immediata, ja que res significatiu canviarà en la vida de l'usuari si no llegeix aquesta carta. A la nostra nova interfície, els despleguem en dos fils: xarxes socials i butlletins, netejant així visualment la safata d'entrada i deixant només visibles els missatges importants.

Funcionament de l'aprenentatge automàtic a Mail.ru Mail

Aprofitament

Un gran nombre de sistemes provoca moltes dificultats en el funcionament. Al cap i a la fi, els models es degraden amb el temps, com qualsevol programari: les característiques es trenquen, les màquines fallen, el codi es torna tort. A més, les dades canvien constantment: s'afegeixen de noves, es transformen els patrons de comportament dels usuaris, etc., de manera que un model sense el suport adequat funcionarà cada cop pitjor amb el temps.

No hem d'oblidar que com més profundament penetra l'aprenentatge automàtic a les vides dels usuaris, més gran és l'impacte que tenen sobre l'ecosistema i, per tant, més pèrdues financeres o beneficis poden rebre els actors del mercat. Per tant, en un nombre creixent d'àmbits, els jugadors s'estan adaptant al treball dels algorismes ML (exemples clàssics són la publicitat, la cerca i el ja esmentat antispam).

A més, les tasques d'aprenentatge automàtic tenen una particularitat: qualsevol canvi, fins i tot menor, en el sistema pot generar molta feina amb el model: treball amb dades, reciclatge, desplegament, que pot trigar setmanes o mesos. Per tant, com més ràpid canvia l'entorn en què operen els vostres models, més esforç requerirà per mantenir-los. Un equip pot crear molts sistemes i estar content amb això, però després gastar gairebé tots els seus recursos mantenint-los, sense l'oportunitat de fer res de nou. Una vegada ens vam trobar amb una situació així a l'equip antispam. I van arribar a la conclusió òbvia que cal automatitzar el suport.

Automatització

Què es pot automatitzar? Gairebé tot, de fet. He identificat quatre àrees que defineixen la infraestructura d'aprenentatge automàtic:

  • recopilació de dades;
  • formació addicional;
  • desplegar;
  • proves i seguiment.

Si l'entorn és inestable i canvia constantment, llavors tota la infraestructura al voltant del model resulta ser molt més important que el model en si. Pot ser un bon classificador lineal antic, però si l'alimenteu amb les funcions adequades i obteniu bons comentaris dels usuaris, funcionarà molt millor que els models d'última generació amb totes les campanes i xiulets.

Bucle de realimentació

Aquest cicle combina la recollida de dades, la formació addicional i el desplegament; de fet, tot el cicle d'actualització del model. Per què és important? Consulta el calendari d'inscripció al correu:

Funcionament de l'aprenentatge automàtic a Mail.ru Mail

Un desenvolupador d'aprenentatge automàtic ha implementat un model anti-bot que impedeix que els robots es registrin al correu electrònic. El gràfic baixa a un valor on només queden usuaris reals. Tot és genial! Però passen quatre hores, els robots retoquen els seus scripts i tot torna a la normalitat. En aquesta implementació, el desenvolupador va passar un mes afegint funcions i recuperant el model, però el spammer es va poder adaptar en quatre hores.

Per no ser tan insoportablement dolorós i no haver de refer-ho tot més endavant, hem de pensar inicialment com serà el bucle de retroalimentació i què farem si canvia l'entorn. Comencem per recollir dades: aquest és el combustible dels nostres algorismes.

Recopilació de dades

És evident que per a les xarxes neuronals modernes, com més dades, millor i, de fet, les generen els usuaris del producte. Els usuaris ens poden ajudar marcant dades, però no podem abusar d'això, perquè en algun moment els usuaris es cansaran de completar els vostres models i canviaran a un altre producte.

Un dels errors més comuns (aquí faig una referència a Andrew Ng) és centrar-se massa en les mètriques del conjunt de dades de prova, i no en el feedback de l'usuari, que en realitat és la mesura principal de la qualitat del treball, ja que creem un producte per a l'usuari. Si l'usuari no entén o no li agrada el treball del model, tot està arruïnat.

Per tant, l'usuari ha de poder votar sempre i ha de disposar d'una eina per a la retroalimentació. Si pensem que a la bústia ha arribat una carta relacionada amb les finances, hem de marcar-la com a “finançament” i dibuixar un botó que l'usuari pugui clicar i dir que això no és financer.

Qualitat de la retroalimentació

Parlem de la qualitat dels comentaris dels usuaris. En primer lloc, tu i l'usuari pots posar diferents significats en un mateix concepte. Per exemple, tu i els teus gestors de producte penses que "finances" vol dir cartes del banc, i l'usuari pensa que una carta de l'àvia sobre la seva pensió també fa referència a les finances. En segon lloc, hi ha usuaris als quals els encanta prémer botons sense cap lògica. En tercer lloc, l'usuari pot equivocar-se profundament en les seves conclusions. Un exemple sorprenent de la nostra pràctica és la implementació d'un classificador Spam nigerià, un tipus de correu brossa molt divertit on es demana a l'usuari que prengui diversos milions de dòlars d'un parent llunyà trobat de sobte a l'Àfrica. Després d'implementar aquest classificador, vam comprovar els clics "No és brossa" en aquests correus electrònics i va resultar que el 80% d'ells eren suculents correu brossa nigerià, cosa que suggereix que els usuaris poden ser extremadament crédules.

I no oblidem que els botons es poden fer clic no només per persones, sinó també per tota mena de bots que pretenen ser un navegador. Per tant, el feedback en brut no és bo per aprendre. Què pots fer amb aquesta informació?

Utilitzem dos enfocaments:

  • Comentaris de ML enllaçat. Per exemple, tenim un sistema anti-bot en línia que, com he comentat, pren una decisió ràpida basant-se en un nombre limitat de senyals. I hi ha un segon sistema lent que funciona després del fet. Té més dades sobre l'usuari, el seu comportament, etc. Com a resultat, es pren la decisió més informada; en conseqüència, té una major precisió i exhaustivitat. Podeu dirigir la diferència en el funcionament d'aquests sistemes al primer com a dades d'entrenament. Així, un sistema més senzill sempre intentarà apropar-se al rendiment d'un de més complex.
  • Feu clic a classificació. Simplement podeu classificar cada clic de l'usuari, avaluar-ne la validesa i usabilitat. Ho fem en el correu antispam, utilitzant els atributs de l'usuari, el seu historial, els atributs del remitent, el propi text i el resultat dels classificadors. Com a resultat, obtenim un sistema automàtic que valida els comentaris dels usuaris. I com que s'ha de reciclar amb molta menys freqüència, el seu treball pot esdevenir la base de tots els altres sistemes. La prioritat principal d'aquest model és la precisió, perquè entrenar el model amb dades inexactes està ple de conseqüències.

Mentre netegem les dades i continuem entrenant els nostres sistemes ML, no ens hem d'oblidar dels usuaris, perquè per a nosaltres, milers, milions d'errors al gràfic són estadístiques, i per a l'usuari, cada error és una tragèdia. A més del fet que l'usuari ha de conviure d'alguna manera amb el vostre error al producte, després de rebre comentaris, espera que una situació similar s'elimini en el futur. Per tant, sempre val la pena donar als usuaris no només l'oportunitat de votar, sinó també de corregir el comportament dels sistemes de ML, creant, per exemple, heurístiques personals per a cada clic de feedback; en el cas del correu, aquesta podria ser la capacitat de filtrar. aquestes cartes per remitent i títol per a aquest usuari.

També cal construir un model basat en alguns informes o peticions de suport en mode semiautomàtic o manual perquè altres usuaris no pateixin problemes similars.

Heurística per a l'aprenentatge

Hi ha dos problemes amb aquestes heurístiques i crosses. El primer és que el nombre cada cop més gran de crosses és difícil de mantenir, i molt menys la seva qualitat i rendiment a llarg termini. El segon problema és que l'error pot ser que no sigui freqüent i que uns quants clics per entrenar més el model no seran suficients. Sembla que aquests dos efectes no relacionats es poden neutralitzar significativament si s'aplica el següent enfocament.

  1. Creem una crossa temporal.
  2. Enviem dades d'ell al model, s'actualitza periòdicament, fins i tot sobre les dades rebudes. Aquí, per descomptat, és important que les heurístiques tinguin una alta precisió per no reduir la qualitat de les dades del conjunt d'entrenament.
  3. A continuació, configurem el control per activar la crossa, i si al cap d'un temps la crossa ja no funciona i està completament coberta pel model, podeu treure-la amb seguretat. Ara és poc probable que aquest problema torni a passar.

Així que un exèrcit de crosses és molt útil. El més important és que el seu servei és urgent i no permanent.

Formació addicional

El reciclatge és el procés d'afegir noves dades obtingudes com a resultat de la retroalimentació dels usuaris o d'altres sistemes, i entrenar-hi un model existent. Pot haver-hi diversos problemes amb la formació addicional:

  1. És possible que el model simplement no admeti formació addicional, però només aprengui des de zero.
  2. En cap lloc del llibre de la natura està escrit que la formació addicional millorarà sens dubte la qualitat del treball en producció. Sovint passa el contrari, és a dir, només el deteriorament és possible.
  3. Els canvis poden ser impredictibles. Aquest és un punt més aviat subtil que hem identificat per nosaltres mateixos. Fins i tot si un model nou en una prova A/B mostra resultats similars en comparació amb l'actual, això no vol dir que funcionarà de manera idèntica. El seu treball pot diferir només en un un per cent, cosa que pot comportar nous errors o tornar-ne d'antics que ja s'han corregit. Tant nosaltres com els usuaris ja sabem com conviure amb els errors actuals, i quan sorgeixen un gran nombre d'errors nous, l'usuari també pot no entendre què està passant, perquè espera un comportament previsible.

Per tant, el més important en la formació addicional és garantir que el model es millora, o almenys no empitjora.

El primer que ens ve al cap quan parlem de formació addicional és l'enfocament d'aprenentatge actiu. Què vol dir això? Per exemple, el classificador determina si un correu electrònic està relacionat amb les finances i al voltant del seu límit de decisió afegim una mostra d'exemples etiquetats. Això funciona bé, per exemple, a la publicitat, on hi ha molts comentaris i es pot entrenar el model en línia. I si hi ha poca retroalimentació, obtenim una mostra molt esbiaixada en relació a la distribució de dades de producció, sobre la base de la qual és impossible avaluar el comportament del model durant el funcionament.

Funcionament de l'aprenentatge automàtic a Mail.ru Mail

De fet, el nostre objectiu és conservar patrons antics, models ja coneguts, i adquirir-ne de nous. La continuïtat és important aquí. El model, que sovint ens hem esforçat molt per desplegar, ja funciona, de manera que podem centrar-nos en el seu rendiment.

Al correu s'utilitzen diferents models: arbres, lineals, xarxes neuronals. Per a cadascun fem el nostre propi algorisme d'entrenament addicional. En el procés de formació addicional, rebem no només dades noves, sinó també moltes funcions noves, que tindrem en compte en tots els algorismes següents.

Models lineals

Suposem que tenim una regressió logística. Creem un model de pèrdua a partir dels components següents:

  • Pèrdua de registre en dades noves;
  • regularitzem els pesos de les noves característiques (no toquem les antigues);
  • també aprenem de dades antigues per tal de preservar patrons antics;
  • i, potser, el més important: afegim la Regularització Harmònica, que garanteix que els pesos no canviaran gaire respecte al model antic segons la norma.

Com que cada component de Pèrdua té coeficients, podem seleccionar els valors òptims per a la nostra tasca mitjançant validació creuada o en funció dels requisits del producte.

Funcionament de l'aprenentatge automàtic a Mail.ru Mail

Деревья

Passem als arbres de decisió. Hem compilat el següent algorisme per a l'entrenament addicional dels arbres:

  1. La producció gestiona un bosc de 100-300 arbres, que s'entrena amb un conjunt de dades antic.
  2. Al final eliminem M = 5 peces i n'afegim 2M = 10 de noves, entrenades sobre tot el conjunt de dades, però amb un gran pes per a les noves dades, la qual cosa garanteix naturalment un canvi incremental en el model.

Òbviament, amb el pas del temps, el nombre d'arbres augmenta molt, i s'han de reduir periòdicament per tal de complir els temps. Per fer-ho, utilitzem l'ara omnipresent Knowledge Distillation (KD). Breument sobre el principi del seu funcionament.

  1. Tenim el model "complex" actual. L'executem al conjunt de dades d'entrenament i obtenim la distribució de probabilitat de classe a la sortida.
  2. A continuació, entrenem el model d'estudiant (el model amb menys arbres en aquest cas) per repetir els resultats del model utilitzant la distribució de classes com a variable objectiu.
  3. És important tenir en compte aquí que no fem servir el marcatge del conjunt de dades de cap manera i, per tant, podem utilitzar dades arbitràries. Per descomptat, fem servir una mostra de dades del flux de combat com a mostra d'entrenament per al model d'estudiant. Així, el conjunt d'entrenament ens permet assegurar la precisió del model, i la mostra de flux garanteix un rendiment similar en la distribució de la producció, compensant el biaix del conjunt d'entrenament.

Funcionament de l'aprenentatge automàtic a Mail.ru Mail

La combinació d'aquestes dues tècniques (afegir arbres i reduir periòdicament el seu nombre mitjançant la destil·lació del coneixement) garanteix la introducció de nous patrons i una continuïtat total.

Amb l'ajuda de KD, també realitzem diferents operacions sobre les característiques del model, com ara eliminar funcions i treballar els buits. En el nostre cas, tenim una sèrie de funcions estadístiques importants (per remitents, hash de text, URL, etc.) que s'emmagatzemen a la base de dades, que solen fallar. El model, per descomptat, no està preparat per a aquest desenvolupament d'esdeveniments, ja que les situacions de fallada no es produeixen al conjunt d'entrenament. En aquests casos, combinem tècniques de KD i d'augment: quan entrenem per a part de les dades, eliminem o reiniciem les característiques necessàries i agafem les etiquetes originals (sortides del model actual) i el model d'estudiant aprèn a repetir aquesta distribució. .

Funcionament de l'aprenentatge automàtic a Mail.ru Mail

Hem observat que com més seriosa es produeix la manipulació del model, més gran és el percentatge de mostra de fil requerit.

L'eliminació de funcions, l'operació més senzilla, requereix només una petita part del flux, ja que només canvien un parell de funcions i el model actual es va entrenar al mateix conjunt: la diferència és mínima. Per simplificar el model (reduint el nombre d'arbres diverses vegades), ja es requereix de 50 a 50. I per a les omissions de característiques estadístiques importants que afectaran greument el rendiment del model, es requereix encara més flux per anivellar el treball del model. nou model resistent a les omissions en tot tipus de lletres.

Funcionament de l'aprenentatge automàtic a Mail.ru Mail

FastText

Passem a FastText. Permeteu-me que us recordi que la representació (Incrustació) d'una paraula consisteix en la suma de la incrustació de la mateixa paraula i tots els seus N-grams de lletra, normalment trigrames. Com que hi pot haver bastants trigrames, s'utilitza Bucket Hashing, és a dir, convertint tot l'espai en un determinat hashmap fix. Com a resultat, la matriu de pes s'obté amb la dimensió de la capa interior per nombre de paraules + galledes.

Amb un entrenament addicional, apareixen nous signes: paraules i trigrames. No passa res significatiu en la formació de seguiment estàndard de Facebook. Només es tornen a entrenar els pesos antics amb entropia creuada amb dades noves. Per tant, no s'utilitzen noves característiques; per descomptat, aquest enfocament té tots els desavantatges descrits anteriorment associats a la imprevisibilitat del model en producció. Per això hem modificat una mica FastText. Afegim tots els pesos nous (paraules i trigrames), ampliem tota la matriu amb entropia creuada i afegim regularització harmònica per analogia amb el model lineal, que garanteix un canvi insignificant en els pesos antics.

Funcionament de l'aprenentatge automàtic a Mail.ru Mail

CNN

Les xarxes convolucionals són una mica més complicades. Si les últimes capes es completen a la CNN, llavors, per descomptat, podeu aplicar la regularització harmònica i garantir la continuïtat. Però si es requereix formació addicional de tota la xarxa, aquesta regularització ja no es pot aplicar a totes les capes. Tanmateix, hi ha una opció per entrenar incrustacions complementàries mitjançant Triplet Loss (article original).

Triple pèrdua

Utilitzant una tasca anti-phishing com a exemple, mirem Triplet Loss en termes generals. Prenem el nostre logotip, així com exemples positius i negatius de logotips d'altres empreses. Minimitzem la distància entre el primer i maximitzem la distància entre el segon, ho fem amb un petit buit per garantir una major compacitat de les classes.

Funcionament de l'aprenentatge automàtic a Mail.ru Mail

Si entrenem més la xarxa, aleshores el nostre espai mètric canvia completament i esdevé completament incompatible amb l'anterior. Aquest és un problema greu en problemes que utilitzen vectors. Per evitar aquest problema, barrejarem incrustacions antigues durant l'entrenament.

Hem afegit noves dades al conjunt d'entrenament i estem entrenant la segona versió del model des de zero. En la segona etapa, entrenem encara més la nostra xarxa (Finetuning): primer es completa l'última capa i després es descongela tota la xarxa. En el procés de composició de triplets, calculem només una part de les incrustacions mitjançant el model entrenat, la resta, utilitzant l'antic. Així, en el procés de formació addicional, assegurem la compatibilitat dels espais mètrics v1 i v2. Una versió única de regularització harmònica.

Funcionament de l'aprenentatge automàtic a Mail.ru Mail

Arquitectura sencera

Si considerem tot el sistema que utilitza antispam com a exemple, aleshores els models no estan aïllats, sinó imbricats entre si. Fem fotos, text i altres funcions, utilitzant CNN i Fast Text obtenim incrustacions. A continuació, s'apliquen classificadors a sobre de les incrustacions, que proporcionen puntuacions per a diferents classes (tipus de lletres, correu brossa, presència d'un logotip). Els senyals i senyals ja estan entrant al bosc d'arbres perquè es prengui la decisió final. Els classificadors individuals d'aquest esquema permeten interpretar millor els resultats del sistema i, més específicament, tornar a entrenar els components en cas de problemes, en lloc d'alimentar totes les dades en arbres de decisió en forma bruta.

Funcionament de l'aprenentatge automàtic a Mail.ru Mail

Com a resultat, garantim continuïtat a tots els nivells. Al nivell inferior a CNN i Fast Text fem servir la regularització harmònica, per als classificadors del mig també fem servir la regularització harmònica i el calibratge de velocitat per a la coherència de la distribució de probabilitat. Bé, l'impuls de l'arbre s'entrena de manera incremental o utilitzant la destil·lació del coneixement.

En general, mantenir un sistema d'aprenentatge automàtic tan imbricat sol ser un dolor, ja que qualsevol component del nivell inferior condueix a una actualització de tot el sistema anterior. Però com que en la nostra configuració cada component canvia lleugerament i és compatible amb l'anterior, tot el sistema es pot actualitzar peça per peça sense necessitat de reentrenar tota l'estructura, la qual cosa permet suportar-lo sense sobrecàrregues greus.

Desplega

Hem parlat de la recollida de dades i la formació addicional de diferents tipus de models, de manera que estem passant al seu desplegament a l'entorn de producció.

Prova A/B

Com he dit abans, en el procés de recollida de dades, normalment obtenim una mostra esbiaixada, de la qual és impossible avaluar el rendiment de producció del model. Per tant, en el desplegament, s'ha de comparar el model amb la versió anterior per entendre com van realment les coses, és a dir, realitzar proves A/B. De fet, el procés de desplegament i anàlisi de gràfics és força rutinari i es pot automatitzar fàcilment. Despleguem els nostres models gradualment al 5%, 30%, 50% i 100% dels usuaris, alhora que recollim totes les mètriques disponibles sobre les respostes dels models i els comentaris dels usuaris. En el cas d'alguns casos atípics greus, retrocedim automàticament el model i, en altres casos, després d'haver recollit un nombre suficient de clics d'usuari, decidim augmentar el percentatge. Com a resultat, portem el nou model al 50% dels usuaris de forma totalment automàtica, i el llançament a tot el públic serà aprovat per una persona, tot i que aquest pas es pot automatitzar.

Tanmateix, el procés de proves A/B ofereix espai per a l'optimització. El cas és que qualsevol prova A/B és força llarga (en el nostre cas triga de 6 a 24 hores en funció de la quantitat de feedback), la qual cosa la fa bastant cara i amb recursos limitats. A més, es requereix un percentatge prou alt de flux per a la prova per accelerar essencialment el temps global de la prova A/B (reclutar una mostra estadísticament significativa per avaluar mètriques en un petit percentatge pot trigar molt de temps), cosa que fa que el nombre de ranures A/B extremadament limitat. Òbviament, només hem de provar els models més prometedors, dels quals rebem bastant durant el procés de formació addicional.

Per resoldre aquest problema, hem entrenat un classificador independent que prediu l'èxit d'una prova A/B. Per fer-ho, prenem com a característiques les estadístiques de presa de decisions, Precisió, Recuperació i altres mètriques sobre el conjunt d'entrenament, sobre el diferit i sobre la mostra del flux. També comparem el model amb l'actual en producció, amb heurístiques, i tenim en compte la Complexitat del model. Amb totes aquestes característiques, un classificador entrenat en l'historial de proves avalua els models candidats, en el nostre cas es tracta de boscos d'arbres, i decideix quin utilitzar en la prova A/B.

Funcionament de l'aprenentatge automàtic a Mail.ru Mail

En el moment de la implementació, aquest enfocament ens va permetre augmentar diverses vegades el nombre de proves A/B reeixides.

Proves i seguiment

Les proves i el seguiment, curiosament, no perjudiquen la nostra salut, sinó que, al contrari, la milloren i ens alleugen de l'estrès innecessari. Les proves permeten prevenir una fallada, i la supervisió permet detectar-la a temps per reduir l'impacte sobre els usuaris.

És important entendre aquí que tard o d'hora el vostre sistema sempre cometrà errors; això es deu al cicle de desenvolupament de qualsevol programari. Al començament del desenvolupament del sistema sempre hi ha molts errors fins que tot s'aconsegueix i s'ha completat l'etapa principal d'innovació. Però amb el temps, l'entropia passa factura i els errors tornen a aparèixer, a causa de la degradació dels components al voltant i dels canvis en les dades, dels quals vaig parlar al principi.

Aquí m'agradaria assenyalar que qualsevol sistema d'aprenentatge automàtic s'ha de considerar des del punt de vista del seu benefici durant tot el seu cicle de vida. El gràfic següent mostra un exemple de com funciona el sistema per capturar un tipus rar de correu brossa (la línia del gràfic és prop de zero). Un dia, a causa d'un atribut en memòria cau incorrectament, es va tornar boja. Per sort, no hi havia cap vigilància per activació anormal; com a resultat, el sistema va començar a desar cartes en grans quantitats a la carpeta "correu brossa" al límit de presa de decisions. Tot i corregir-ne les conseqüències, el sistema ja s'ha equivocat tantes vegades que no es pagarà per si mateix ni en cinc anys. I això és un fracàs total des del punt de vista del cicle de vida del model.

Funcionament de l'aprenentatge automàtic a Mail.ru Mail

Per tant, una cosa tan senzilla com el seguiment pot esdevenir clau en la vida d'un model. A més de les mètriques estàndard i òbvies, considerem la distribució de les respostes i puntuacions del model, així com la distribució dels valors de les característiques clau. Mitjançant la divergència KL, podem comparar la distribució actual amb la històrica o els valors de la prova A/B amb la resta del flux, la qual cosa ens permet notar anomalies en el model i retrocedir els canvis de manera oportuna.

En la majoria dels casos, llancem les nostres primeres versions de sistemes utilitzant heurístiques simples o models que fem servir com a monitoratge en el futur. Per exemple, controlem el model NER en comparació amb els habituals per a botigues en línia específiques, i si la cobertura del classificador disminueix en comparació amb ells, entenem els motius. Un altre ús útil de l'heurística!

Resultats de

Tornem a repassar les idees clau de l'article.

  • Fibdeck. Sempre pensem en l'usuari: com viurà amb els nostres errors, com els podrà denunciar. No oblideu que els usuaris no són una font de comentaris purs per als models d'entrenament, i cal esborrar-los amb l'ajuda de sistemes auxiliars de ML. Si no és possible recollir un senyal de l'usuari, busquem fonts alternatives de feedback, per exemple, sistemes connectats.
  • Formació addicional. El més important aquí és la continuïtat, així que confiem en el model de producció actual. Entrenem nous models perquè no difereixin gaire de l'anterior per regularització harmònica i trucs similars.
  • Desplega. El desplegament automàtic basat en mètriques redueix molt el temps d'implementació dels models. Seguiment de les estadístiques i distribució de la presa de decisions, el nombre de caigudes dels usuaris és obligatori per al vostre son reparador i cap de setmana productiu.

Bé, espero que això us ajudi a millorar els vostres sistemes de ML més ràpidament, a fer-los arribar al mercat més ràpidament i a fer-los més fiables i menys estressants.

Font: www.habr.com

Afegeix comentari