Rad mašinskog učenja u Mail.ru Mail

Rad mašinskog učenja u Mail.ru Mail

Na osnovu mojih govora na Highload++ i DataFest Minsk 2019.

Za mnoge je danas pošta sastavni dio života na mreži. Uz njegovu pomoć vodimo poslovnu korespondenciju, pohranjujemo sve vrste važnih informacija vezanih za finansije, rezervacije hotela, naručivanje i još mnogo toga. Sredinom 2018. godine formulirali smo strategiju proizvoda za razvoj pošte. Kakva bi trebala biti moderna pošta?

Pošta mora biti pametan, odnosno pomaže korisnicima da se snalaze u sve većem obimu informacija: filtriraju, strukturiraju i pružaju ih na najprikladniji način. Mora biti korisno, koji vam omogućava rješavanje raznih zadataka izravno u vašem poštanskom sandučiću, na primjer, plaćanje kazni (funkcija koju, nažalost, koristim). A u isto vrijeme, naravno, pošta mora pružati zaštitu informacija, odsijecanje neželjene pošte i zaštitu od hakovanja, tj. sigurno.

Ova područja definiraju niz ključnih problema, od kojih se mnogi mogu efikasno riješiti korištenjem mašinskog učenja. Evo primjera već postojećih karakteristika razvijenih kao dio strategije – po jedna za svaki smjer.

  • Pametan odgovor. Mail ima funkciju pametnog odgovora. Neuronska mreža analizira tekst pisma, razumije njegovo značenje i svrhu i kao rezultat nudi tri najprikladnije opcije odgovora: pozitivan, negativan i neutralan. Ovo pomaže da se značajno uštedi vrijeme prilikom odgovaranja na pisma, a često odgovara na nestandardan i zabavan način.
  • Grupisanje emailovavezano za narudžbe u online trgovinama. Često kupujemo preko interneta, a trgovine po pravilu mogu poslati nekoliko e-poruka za svaku narudžbu. Na primjer, od AliExpress-a, najveće usluge, za jednu narudžbu dolazi mnogo pisama, a mi smo izračunali da bi u terminalnom slučaju njihov broj mogao doseći i do 29. Stoga, koristeći model prepoznavanja imenovanih entiteta, izdvajamo broj narudžbe i druge informacije iz teksta i grupirati sva slova u jednu nit. Osnovne informacije o narudžbi također prikazujemo u posebnom okviru, što olakšava rad s ovom vrstom e-pošte.

    Rad mašinskog učenja u Mail.ru Mail

  • Anti-phishing. Phishing je posebno opasna vrsta lažne e-pošte, uz pomoć koje napadači pokušavaju doći do financijskih informacija (uključujući korisnikove bankovne kartice) i prijavljivanja. Takva pisma oponašaju prava pisma koja šalje usluga, uključujući i vizuelno. Stoga, uz pomoć Computer Vision-a, prepoznajemo logotipe i stil dizajna pisama velikih kompanija (na primjer, Mail.ru, Sber, Alfa) i uzimamo to u obzir zajedno s tekstom i drugim karakteristikama u našim klasifikatorima neželjene pošte i phishinga. .

Mašinsko učenje

Malo o mašinskom učenju u e-pošti općenito. Pošta je visoko opterećen sistem: prosječno 1,5 milijardi pisama dnevno prođe kroz naše servere za 30 miliona DAU korisnika. Oko 30 sistema za mašinsko učenje podržava sve potrebne funkcije i karakteristike.

Svako slovo prolazi kroz čitavu klasifikaciju. Prvo uklanjamo neželjenu poštu i ostavljamo dobre mejlove. Korisnici često ne primjećuju rad antispam-a, jer 95-99% neželjene pošte ne završi ni u odgovarajućem folderu. Prepoznavanje neželjene pošte je veoma važan dio našeg sistema, i najteži, jer u oblasti anti-spam-a postoji stalna adaptacija između odbrambenih i napadačkih sistema, što predstavlja kontinuirani inženjerski izazov za naš tim.

Zatim odvajamo pisma od ljudi i robota. E-poruke od ljudi su najvažnije, pa za njih nudimo funkcije poput Pametnog odgovora. Pisma robota podijeljena su u dva dijela: transakcijska - to su važna pisma usluga, na primjer, potvrde o kupovini ili rezervaciji hotela, financije i informativne - to su poslovno oglašavanje, popusti.

Vjerujemo da su transakcijske e-poruke po važnosti jednake ličnoj korespondenciji. Oni bi trebali biti pri ruci, jer često moramo brzo pronaći informacije o narudžbi ili rezervaciji avio karte, a trošimo vrijeme tražeći ova pisma. Stoga ih, radi praktičnosti, automatski dijelimo u šest glavnih kategorija: putovanja, narudžbe, finansije, karte, prijave i, na kraju, kazne.

Informativna pisma su najveća i vjerovatno manje važna grupa, koja ne zahtijevaju hitan odgovor, jer se ništa bitno neće promijeniti u životu korisnika ako takvo pismo ne pročita. U našem novom sučelju sažimamo ih u dvije niti: društvene mreže i biltene, čime vizualno čistimo inbox i ostavljamo vidljivim samo važne poruke.

Rad mašinskog učenja u Mail.ru Mail

Eksploatacija

Veliki broj sistema uzrokuje dosta poteškoća u radu. Na kraju krajeva, modeli degradiraju tokom vremena, kao i svaki softver: funkcije se pokvare, mašine ne rade, kod postaje kriv. Osim toga, podaci se stalno mijenjaju: dodaju se novi, transformiraju se obrasci ponašanja korisnika itd., tako da će model bez odgovarajuće podrške raditi sve lošije s vremenom.

Ne smijemo zaboraviti da što dublje strojno učenje prodire u živote korisnika, to je veći utjecaj koji imaju na ekosistem, a kao rezultat toga, više financijskih gubitaka ili profita igrači na tržištu mogu dobiti. Stoga se u sve većem broju područja igrači prilagođavaju radu ML algoritama (klasični primjeri su oglašavanje, pretraga i već spomenuti antispam).

Takođe, zadaci mašinskog učenja imaju posebnost: svaka, čak i manja promena u sistemu može generisati mnogo posla sa modelom: rad sa podacima, preobuka, implementacija, što može potrajati nedeljama ili mesecima. Stoga, što se brže mijenja okruženje u kojem vaši modeli rade, to je potrebno više napora da se oni održe. Tim može kreirati mnogo sistema i biti sretan zbog toga, ali onda potrošiti gotovo sve svoje resurse na njihovo održavanje, bez mogućnosti da uradi nešto novo. Jednom smo se susreli sa takvom situacijom u antispam timu. I donijeli su očigledan zaključak da podršku treba automatizirati.

Automatizacija

Šta se može automatizovati? U stvari, skoro sve. Identifikovao sam četiri oblasti koje definišu infrastrukturu mašinskog učenja:

  • prikupljanje podataka;
  • dodatna obuka;
  • razviti;
  • testiranje i praćenje.

Ako je okruženje nestabilno i stalno se mijenja, onda se cjelokupna infrastruktura oko modela pokazuje mnogo važnijom od samog modela. Možda je to dobar stari linearni klasifikator, ali ako mu date prave karakteristike i dobijete dobre povratne informacije od korisnika, radit će mnogo bolje od vrhunskih modela sa svim značajkama.

Petlja povratnih informacija

Ovaj ciklus kombinuje prikupljanje podataka, dodatnu obuku i implementaciju – u stvari, čitav ciklus ažuriranja modela. Zašto je to važno? Pogledajte raspored upisa na mail:

Rad mašinskog učenja u Mail.ru Mail

Programer za mašinsko učenje implementirao je anti-bot model koji sprečava botove da se registruju u e-pošti. Grafikon pada na vrijednost gdje ostaju samo stvarni korisnici. Sve je super! Ali prođu četiri sata, botovi podese svoje skripte i sve se vrati u normalu. U ovoj implementaciji, programer je proveo mjesec dana dodajući funkcije i preobučavajući model, ali je spamer mogao da se prilagodi za četiri sata.

Kako ne bismo bili tako strašno bolni i ne bismo morali sve ponavljati kasnije, u početku moramo razmisliti kako će izgledati povratna sprega i šta ćemo učiniti ako se okruženje promijeni. Počnimo sa prikupljanjem podataka – to je gorivo za naše algoritme.

Prikupljanje podataka

Jasno je da za moderne neuronske mreže, što više podataka, to bolje, a zapravo ih generiraju korisnici proizvoda. Korisnici nam mogu pomoći označavanjem podataka, ali to ne možemo zloupotrijebiti, jer će se korisnici u jednom trenutku umoriti od kompletiranja vaših modela i preći će na drugi proizvod.

Jedna od najčešćih grešaka (ovdje se pozivam na Andrew Ng) je prevelik fokus na metriku na skupu podataka testa, a ne na povratnu informaciju od korisnika, što je zapravo glavno mjerilo kvaliteta rada, budući da kreiramo proizvod za korisnika. Ako korisnik ne razumije ili ne voli rad modela, onda je sve upropašteno.

Stoga bi korisnik uvijek trebao imati mogućnost glasanja i trebao bi mu dati alat za povratnu informaciju. Ako smatramo da je u poštansko sanduče stiglo pismo vezano za finansije, potrebno je da ga označimo kao „finansije“ i nacrtamo dugme na koje korisnik može da klikne i kaže da to nisu finansije.

Kvalitet povratnih informacija

Razgovarajmo o kvaliteti povratnih informacija korisnika. Prvo, vi i korisnik možete staviti različita značenja u jedan koncept. Na primjer, vi i vaši menadžeri proizvoda smatrate da „finansije“ znači pisma iz banke, a korisnik misli da se pismo bake o njenoj penziji odnosi i na finansije. Drugo, postoje korisnici koji bezumno vole da pritiskaju dugmad bez ikakve logike. Treće, korisnik može duboko pogriješiti u svojim zaključcima. Upečatljiv primjer iz naše prakse je implementacija klasifikatora Nigerijski spam, vrlo smiješna vrsta neželjene pošte gdje se od korisnika traži da uzme nekoliko miliona dolara od iznenada pronađenog daljeg rođaka u Africi. Nakon implementacije ovog klasifikatora, provjerili smo klikove „Not Spam“ na ove mejlove i pokazalo se da je 80% njih sočni nigerijski neželjeni sadržaj, što sugerira da korisnici mogu biti izuzetno lakovjerni.

I ne zaboravimo da dugmad mogu kliknuti ne samo ljudi, već i razne vrste botova koji se pretvaraju da su pretraživač. Dakle, sirove povratne informacije nisu dobre za učenje. Šta možete učiniti s ovim informacijama?

Koristimo dva pristupa:

  • Povratne informacije od povezanog ML-a. Na primjer, imamo online anti-bot sistem, koji, kao što sam spomenuo, donosi brzu odluku na osnovu ograničenog broja znakova. A postoji i drugi, spor sistem koji radi nakon činjenice. Ima više podataka o korisniku, njegovom ponašanju itd. Kao rezultat toga, donosi se najinformiranija odluka, shodno tome ima veću tačnost i potpunost. Razliku u radu ovih sistema možete usmjeriti na prvi kao podatke za obuku. Dakle, jednostavniji sistem će uvijek nastojati da se približi performansama složenijeg.
  • Kliknite na klasifikaciju. Možete jednostavno klasificirati svaki klik korisnika, procijeniti njegovu valjanost i upotrebljivost. To radimo u antispam mailovima, koristeći atribute korisnika, njegovu istoriju, atribute pošiljaoca, sam tekst i rezultat klasifikatora. Kao rezultat, dobijamo automatski sistem koji potvrđuje povratne informacije korisnika. A s obzirom da ga mnogo rjeđe treba doobuvati, njegov rad može postati osnova za sve ostale sisteme. Glavni prioritet u ovom modelu je preciznost, jer je obuka modela na netačnim podacima bremenita posljedicama.

Dok čistimo podatke i dodatno obučavamo naše ML sisteme, ne smijemo zaboraviti na korisnike, jer su za nas hiljade, milioni grešaka na grafikonu statistika, a za korisnika je svaka greška tragedija. Pored toga što korisnik mora nekako živjeti s vašom greškom u proizvodu, nakon što dobije povratnu informaciju, očekuje da će slična situacija biti otklonjena u budućnosti. Stoga uvijek vrijedi dati korisnicima ne samo priliku da glasaju, već i da isprave ponašanje ML sistema, kreirajući, na primjer, ličnu heuristiku za svaki klik na povratnu informaciju; u slučaju pošte, to bi mogla biti mogućnost filtriranja ova pisma po pošiljaocu i naslovu za ovog korisnika.

Također morate izgraditi model zasnovan na nekim izvještajima ili zahtjevima za podršku u poluautomatskom ili ručnom načinu rada kako drugi korisnici ne bi imali sličnih problema.

Heuristika za učenje

Postoje dva problema sa ovim heuristikama i štakama. Prvi je da je sve veći broj štaka teško održavati, a kamoli njihov kvalitet i performanse na duge staze. Drugi problem je što greška možda neće biti česta, a nekoliko klikova za daljnju obuku modela neće biti dovoljno. Čini se da se ova dva nepovezana efekta mogu značajno neutralizirati ako se primijeni sljedeći pristup.

  1. Stvaramo privremenu štaku.
  2. Šaljemo podatke iz njega u model, on se redovno ažurira, uključujući i primljene podatke. Ovdje je, naravno, važno da heuristika ima visoku tačnost kako ne bi umanjila kvalitet podataka u skupu za obuku.
  3. Zatim postavljamo nadzor da aktivira štaku, a ako nakon nekog vremena štaka više ne radi i potpuno je pokrivena modelom, onda je možete sigurno ukloniti. Sada je malo vjerovatno da će se ovaj problem ponoviti.

Dakle, vojska štaka je veoma korisna. Glavna stvar je da je njihova usluga hitna, a ne trajna.

Dodatna obuka

Preobuka je proces dodavanja novih podataka dobijenih kao rezultat povratnih informacija od korisnika ili drugih sistema, i obučavanje postojećeg modela na tome. Može postojati nekoliko problema sa dodatnom obukom:

  1. Model jednostavno ne podržava dodatnu obuku, već uči samo od nule.
  2. Nigde u knjizi prirode ne piše da će dodatna obuka sigurno poboljšati kvalitet rada u proizvodnji. Često se dešava suprotno, odnosno moguće je samo pogoršanje.
  3. Promjene mogu biti nepredvidive. Ovo je prilično suptilna tačka koju smo sami identifikovali. Čak i ako novi model u A/B testu pokaže slične rezultate u odnosu na trenutni, to ne znači da će raditi identično. Njihov rad se može razlikovati za samo jedan posto, što može donijeti nove greške ili vratiti stare koje su već ispravljene. I mi i korisnici već znamo kako da živimo sa trenutnim greškama, a kada se pojavi veliki broj novih grešaka, korisnik takođe može da ne razume šta se dešava, jer očekuje predvidljivo ponašanje.

Stoga je najvažnije u dodatnoj obuci osigurati da se model poboljša ili barem ne pogorša.

Prvo što vam padne na pamet kada govorimo o dodatnoj obuci je pristup aktivnog učenja. Šta to znači? Na primjer, klasifikator određuje da li je e-pošta povezana s financijama, a oko njegove granice odlučivanja dodajemo uzorak označenih primjera. Ovo dobro funkcionira, na primjer, u oglašavanju, gdje postoji mnogo povratnih informacija i možete trenirati model online. A ako ima malo povratnih informacija, onda dobijamo veoma pristrasan uzorak u odnosu na distribuciju proizvodnih podataka, na osnovu kojeg je nemoguće proceniti ponašanje modela tokom rada.

Rad mašinskog učenja u Mail.ru Mail

Naime, naš cilj je da sačuvamo stare obrasce, već poznate modele, i nabavimo nove. Ovdje je važan kontinuitet. Model, za koji smo se često trudili da ga izbacimo, već radi, tako da se možemo fokusirati na njegove performanse.

U pošti se koriste različiti modeli: stabla, linearne, neuronske mreže. Za svaki pravimo svoj dodatni algoritam za obuku. U procesu dodatne obuke dobijamo ne samo nove podatke, već i često nove funkcije, koje ćemo uzeti u obzir u svim algoritmima u nastavku.

Linearni modeli

Recimo da imamo logističku regresiju. Model gubitka kreiramo od sljedećih komponenti:

  • LogLoss na novim podacima;
  • regulišemo težinu novih karakteristika (ne diramo stare);
  • učimo i iz starih podataka kako bismo sačuvali stare obrasce;
  • i, možda, najvažnija stvar: dodajemo Harmonic Regularization, koja garantuje da se težine neće mnogo promeniti u odnosu na stari model prema normi.

Budući da svaka komponenta gubitka ima koeficijente, možemo odabrati optimalne vrijednosti za naš zadatak kroz unakrsnu validaciju ili na osnovu zahtjeva proizvoda.

Rad mašinskog učenja u Mail.ru Mail

Drveće

Pređimo na stabla odluka. Sastavili smo sljedeći algoritam za dodatnu obuku stabala:

  1. Proizvodnja vodi šumu od 100-300 stabala, koja je obučena na starom skupu podataka.
  2. Na kraju uklanjamo M = 5 komada i dodajemo 2M = 10 novih, obučenih na čitav skup podataka, ali sa velikom težinom za nove podatke, što prirodno garantuje inkrementalnu promjenu modela.

Očigledno je da se s vremenom broj stabala uvelike povećava i moraju se periodično smanjivati ​​kako bi se ispoštovali vremenski rokovi. Da bismo to učinili, koristimo sada sveprisutnu destilaciju znanja (KD). Ukratko o principu njegovog rada.

  1. Imamo sadašnji "složeni" model. Pokrećemo ga na skupu podataka za obuku i na izlazu dobijamo distribuciju vjerovatnoće klase.
  2. Zatim treniramo studentski model (model sa manje stabala u ovom slučaju) da ponovi rezultate modela koristeći distribuciju klasa kao ciljnu varijablu.
  3. Ovdje je važno napomenuti da ni na koji način ne koristimo oznake skupa podataka, te stoga možemo koristiti proizvoljne podatke. Naravno, koristimo uzorak podataka iz borbenog toka kao uzorak obuke za studentski model. Dakle, skup za obuku nam omogućava da osiguramo tačnost modela, a uzorak toka garantuje sličan učinak na distribuciji proizvodnje, kompenzujući pristrasnost skupa za obuku.

Rad mašinskog učenja u Mail.ru Mail

Kombinacija ove dvije tehnike (dodavanje stabala i periodično smanjenje njihovog broja pomoću destilacije znanja) osigurava uvođenje novih obrazaca i potpuni kontinuitet.

Uz pomoć KD-a, također izvodimo različite operacije na karakteristikama modela, kao što je uklanjanje karakteristika i rad na prazninama. U našem slučaju imamo niz važnih statističkih karakteristika (po pošiljaocima, tekstualnim hashovima, URL-ovima, itd.) koje su pohranjene u bazi podataka, a koje imaju tendenciju da propadnu. Model, naravno, nije spreman za takav razvoj događaja, jer se situacije kvara ne događaju u setu za obuku. U takvim slučajevima kombinujemo KD i tehnike povećanja: prilikom obuke za dio podataka uklanjamo ili resetujemo potrebne karakteristike i uzimamo originalne oznake (izlazi trenutnog modela), a studentski model uči da ponovi ovu distribuciju .

Rad mašinskog učenja u Mail.ru Mail

Primijetili smo da što se ozbiljnije manipulira modelom, to je potreban veći postotak uzorka niti.

Uklanjanje karakteristika, najjednostavnija operacija, zahteva samo mali deo toka, pošto se menja samo nekoliko karakteristika, a trenutni model je obučen na istom setu - razlika je minimalna. Da bi se model pojednostavio (smanjenje broja stabala nekoliko puta), već je potrebno 50 do 50. A za izostavljanje važnih statističkih karakteristika koje će ozbiljno uticati na performanse modela, potreban je još veći protok kako bi se izjednačio rad sistema. novi model otporan na izostavljanje na svim vrstama slova.

Rad mašinskog učenja u Mail.ru Mail

FastText

Pređimo na FastText. Dozvolite mi da vas podsjetim da se reprezentacija (Embedding) riječi sastoji od sume ugradnje same riječi i svih njenih N-grama slova, obično trigrama. Pošto trigrama može biti dosta, koristi se Bucket Hashing, odnosno pretvaranje cijelog prostora u određenu fiksnu hashmapu. Kao rezultat, dobiva se matrica težine s dimenzijom unutrašnjeg sloja po broju riječi + kantica.

Uz dodatnu obuku pojavljuju se novi znakovi: riječi i trigrami. Ništa značajno se ne dešava u standardnoj pratećoj obuci sa Facebooka. Samo stari ponderi sa unakrsnom entropijom se ponovo obučavaju na novim podacima. Dakle, nove karakteristike se ne koriste; naravno, ovaj pristup ima sve gore opisane nedostatke povezane sa nepredvidivosti modela u proizvodnji. Zato smo malo modificirali FastText. Dodajemo sve nove pondere (riječi i trigrame), proširujemo cijelu matricu unakrsnom entropijom i dodajemo harmonsku regularizaciju po analogiji sa linearnim modelom, što garantuje beznačajnu promjenu starih težina.

Rad mašinskog učenja u Mail.ru Mail

CNN

Konvolucijske mreže su malo složenije. Ako su zadnji slojevi završeni u CNN-u, onda, naravno, možete primijeniti harmonsku regularizaciju i garantirati kontinuitet. Ali ako je potrebna dodatna obuka cijele mreže, tada se takva regularizacija više ne može primijeniti na sve slojeve. Međutim, postoji mogućnost treniranja komplementarnih ugradnji kroz Triplet Loss (originalni članak).

Triple Loss

Koristeći anti-phishing zadatak kao primjer, pogledajmo Triplet Loss općenito. Uzimamo naš logo, kao i pozitivne i negativne primjere logotipa drugih kompanija. Minimiziramo razmak između prvog i maksimiziramo udaljenost između drugog, činimo to s malim razmakom kako bismo osigurali veću kompaktnost klasa.

Rad mašinskog učenja u Mail.ru Mail

Ako dalje treniramo mrežu, tada se naš metrički prostor potpuno mijenja i postaje potpuno nekompatibilan s prethodnim. Ovo je ozbiljan problem u problemima koji koriste vektore. Da bismo zaobišli ovaj problem, mi ćemo miješati stare ugradnje tokom treninga.

Dodali smo nove podatke u set za obuku i obučavamo drugu verziju modela od nule. U drugoj fazi dalje treniramo našu mrežu (Finetuning): prvo je završen zadnji sloj, a zatim se cijela mreža odmrzava. U procesu sastavljanja trojki samo dio ugrađivanja izračunavamo po obučenom modelu, a ostatak - po starom. Tako u procesu dodatne obuke osiguravamo kompatibilnost metričkih prostora v1 i v2. Jedinstvena verzija harmonijske regularizacije.

Rad mašinskog učenja u Mail.ru Mail

Cijela arhitektura

Ako uzmemo u obzir cijeli sistem koji koristi antispam kao primjer, onda modeli nisu izolirani, već ugniježđeni jedan u drugom. Snimamo slike, tekst i druge funkcije, koristeći CNN i Fast Text dobijamo embeddinge. Zatim, klasifikatori se primjenjuju na vrhu ugradnje, koji daju rezultate za različite klase (vrste pisama, neželjena pošta, prisustvo logotipa). Signali i znakovi već ulaze u šumu drveća za donošenje konačne odluke. Individualni klasifikatori u ovoj šemi omogućavaju bolju interpretaciju rezultata sistema i preciznije preobuku komponenti u slučaju problema, umjesto da unose sve podatke u stabla odlučivanja u sirovom obliku.

Rad mašinskog učenja u Mail.ru Mail

Kao rezultat, garantujemo kontinuitet na svakom nivou. Na donjem nivou u CNN-u i Fast Textu koristimo harmonijsku regularizaciju, za klasifikatore u srednjem takođe koristimo harmonijsku regularizaciju i kalibraciju brzine za konzistentnost distribucije vjerovatnoće. Pa, podizanje stabala se trenira postepeno ili pomoću destilacije znanja.

Općenito, održavanje takvog ugniježđenog sistema mašinskog učenja je obično muka, jer bilo koja komponenta na nižem nivou dovodi do ažuriranja cijelog sistema iznad. Ali pošto se u našem podešavanju svaka komponenta neznatno menja i kompatibilna je sa prethodnom, ceo sistem se može ažurirati deo po deo bez potrebe za ponovnim obučavanjem cele strukture, što omogućava njegovu podršku bez ozbiljnih troškova.

Razviti

Razgovarali smo o prikupljanju podataka i dodatnoj obuci različitih tipova modela, pa prelazimo na njihovu implementaciju u proizvodno okruženje.

A/B testiranje

Kao što sam ranije rekao, u procesu prikupljanja podataka obično dobijemo pristrasan uzorak iz kojeg je nemoguće procijeniti proizvodne performanse modela. Stoga, prilikom implementacije, model se mora uporediti sa prethodnom verzijom kako bi se shvatilo kako stvari zapravo idu, odnosno sprovesti A/B testove. U stvari, proces uvođenja i analize grafikona je prilično rutinski i može se lako automatizirati. Naše modele postepeno uvodimo na 5%, 30%, 50% i 100% korisnika, dok prikupljamo sve dostupne metrike o odgovorima modela i povratnim informacijama korisnika. U slučaju nekih ozbiljnih odstupanja, automatski vraćamo model, au ostalim slučajevima, nakon što prikupimo dovoljan broj klikova korisnika, odlučujemo da povećamo procenat. Kao rezultat, potpuno automatski donosimo novi model do 50% korisnika, a uvođenje cijeloj publici će odobriti osoba, iako se ovaj korak može automatizirati.

Međutim, proces A/B testiranja nudi prostor za optimizaciju. Činjenica je da je svaki A/B test prilično dug (u našem slučaju traje od 6 do 24 sata ovisno o količini povratnih informacija), što ga čini prilično skupim i s ograničenim resursima. Pored toga, potreban je dovoljno visok procenat protoka za test da bi se u suštini ubrzalo ukupno vreme A/B testa (regrutovanje statistički značajnog uzorka za procenu metrike u malom procentu može potrajati veoma dugo), što čini broj A/B slotova je izuzetno ograničen. Očigledno, trebamo testirati samo najperspektivnije modele, kojih dosta dobijamo tokom dodatnog procesa obuke.

Da bismo riješili ovaj problem, obučili smo poseban klasifikator koji predviđa uspjeh A/B testa. Da bismo to uradili, uzimamo statistiku donošenja odluka, preciznost, opoziv i druge metrike na skupu za obuku, na odloženom i na uzorku iz toka kao karakteristike. Takođe poredimo model sa trenutnim u proizvodnji, sa heuristikom i uzimamo u obzir složenost modela. Koristeći sve ove karakteristike, klasifikator obučen za istoriju testiranja procenjuje modele kandidata, u našem slučaju to su šume drveća, i odlučuje koji će koristiti u A/B testu.

Rad mašinskog učenja u Mail.ru Mail

U vrijeme implementacije, ovaj pristup nam je omogućio da nekoliko puta povećamo broj uspješnih A/B testova.

Testiranje i praćenje

Testiranje i praćenje, začudo, ne štete našem zdravlju, već naprotiv, poboljšavaju ga i oslobađaju nas nepotrebnog stresa. Testiranje vam omogućava da spriječite kvar, a praćenje vam omogućava da ga otkrijete na vrijeme kako biste smanjili utjecaj na korisnike.

Ovdje je važno shvatiti da će prije ili kasnije vaš sistem uvijek praviti greške - to je zbog ciklusa razvoja bilo kojeg softvera. Na početku razvoja sistema uvijek ima puno grešaka dok se sve ne sredi i ne završi glavna faza inovacije. Ali s vremenom entropija uzima svoj danak, a greške se opet pojavljuju - zbog degradacije komponenti okolo i promjena u podacima, o čemu sam govorio na početku.

Ovdje bih želio napomenuti da svaki sistem mašinskog učenja treba posmatrati sa stanovišta njegovog profita tokom čitavog životnog ciklusa. Grafikon ispod pokazuje primjer kako sistem radi da uhvati rijetku vrstu neželjene pošte (linija na grafikonu je blizu nule). Jednog dana je, zbog pogrešno keširanog atributa, poludjela. Srećom, nije bilo nadzora za abnormalno okidanje; kao rezultat toga, sistem je počeo da čuva pisma u velikim količinama u fasciklu „spam“ na granici donošenja odluka. I pored ispravljanja posljedica, sistem je već toliko puta napravio greške da se neće isplatiti ni za pet godina. A ovo je potpuni neuspjeh sa stanovišta životnog ciklusa modela.

Rad mašinskog učenja u Mail.ru Mail

Stoga, tako jednostavna stvar kao što je praćenje može postati ključna u životu modela. Uz standardne i očigledne metrike, razmatramo distribuciju odgovora i rezultata modela, kao i distribuciju vrijednosti ključnih karakteristika. Koristeći KL divergenciju, možemo usporediti trenutnu distribuciju s povijesnom ili vrijednosti u A/B testu s ostatkom toka, što nam omogućava da uočimo anomalije u modelu i na vrijeme poništimo promjene.

U većini slučajeva lansiramo naše prve verzije sistema koristeći jednostavne heuristike ili modele koje ćemo koristiti za praćenje u budućnosti. Na primjer, pratimo model NER u usporedbi s uobičajenim za određene online trgovine, a ako pokrivenost klasifikatora padne u poređenju s njima, onda razumijemo razloge. Još jedna korisna upotreba heuristike!

Ishodi

Idemo ponovo preko ključnih ideja članka.

  • Fibdeck. Uvijek razmišljamo o korisniku: kako će živjeti s našim greškama, kako će ih moći prijaviti. Ne zaboravite da korisnici nisu izvor čiste povratne informacije za modele obuke, te ih je potrebno očistiti uz pomoć pomoćnih ML sistema. Ako nije moguće prikupiti signal od korisnika, onda tražimo alternativne izvore povratnih informacija, na primjer, povezane sisteme.
  • Dodatna obuka. Ovdje je glavna stvar kontinuitet, pa se oslanjamo na trenutni proizvodni model. Treniramo nove modele tako da se ne razlikuju mnogo od prethodnog zbog harmonske regularizacije i sličnih trikova.
  • Razviti. Automatska implementacija zasnovana na metrici uvelike smanjuje vrijeme za implementaciju modela. Praćenjem statistike i distribucije donošenja odluka, broj padova od korisnika obavezan je za vaš miran san i produktivan vikend.

Pa, nadam se da će vam ovo pomoći da brže poboljšate svoje ML sisteme, da ih brže plasirate na tržište i učinite ih pouzdanijim i manje stresnim.

izvor: www.habr.com

Dodajte komentar