Delovanje strojnega učenja v Mail.ru Mail

Delovanje strojnega učenja v Mail.ru Mail

Na podlagi mojih govorov na Highload++ in DataFest Minsk 2019.

Danes je pošta za mnoge sestavni del spletnega življenja. Z njegovo pomočjo vodimo poslovno korespondenco, hranimo vse vrste pomembnih informacij v zvezi s financami, rezervacijami hotelov, oddajo naročil in še veliko več. Sredi leta 2018 smo oblikovali produktno strategijo za razvoj pošte. Kakšna naj bo sodobna pošta?

Pošta mora biti pameten, to je pomoč uporabnikom pri navigaciji med naraščajočim obsegom informacij: filtriranje, strukturiranje in zagotavljanje na najprimernejši način. Mora biti uporabno, ki vam omogoča reševanje različnih nalog kar v vašem nabiralniku, na primer plačilo kazni (funkcija, ki jo na žalost uporabljam). Hkrati pa mora pošta seveda zagotavljati informacijsko zaščito, preprečevati neželeno pošto in ščititi pred vdori, tj. varno.

Ta področja določajo številne ključne probleme, od katerih jih je veliko mogoče učinkovito rešiti s strojnim učenjem. Tukaj so primeri že obstoječih funkcij, razvitih kot del strategije – ena za vsako smer.

  • Pametni odgovor. Mail ima funkcijo pametnega odgovora. Nevronska mreža analizira besedilo pisma, razume njegov pomen in namen ter posledično ponudi tri najprimernejše možnosti odgovora: pozitivno, negativno in nevtralno. To pomaga znatno prihraniti čas pri odgovarjanju na pisma in pogosto odgovarjati na nestandarden in zabaven način.
  • Združevanje e-poštnih sporočilpovezanih z naročili v spletnih trgovinah. Pogosto nakupujemo preko spleta in praviloma lahko trgovine pošljejo več e-poštnih sporočil za vsako naročilo. Iz AliExpressa, največje storitve, na primer pride veliko pisem za eno naročilo in izračunali smo, da bi lahko v terminalskem ohišju njihovo število doseglo do 29. Zato z uporabo modela Named Entity Recognition izluščimo številko naročila. in druge informacije iz besedila ter združite vse črke v eno nit. Osnovne podatke o naročilu prikažemo tudi v posebnem oknu, kar olajša delo s tovrstno elektronsko pošto.

    Delovanje strojnega učenja v Mail.ru Mail

  • Antiphishing. Lažno predstavljanje je posebej nevarna vrsta goljufive e-pošte, s pomočjo katere poskušajo napadalci pridobiti finančne podatke (vključno z bančnimi karticami uporabnika) in prijave. Takšna pisma posnemajo resnična pisma, ki jih pošilja storitev, tudi vizualno. Zato s pomočjo Computer Vision prepoznamo logotipe in slog oblikovanja pisem velikih podjetij (na primer Mail.ru, Sber, Alfa) in to skupaj z besedilom in drugimi značilnostmi upoštevamo v naših klasifikatorjih neželene pošte in lažnega predstavljanja. .

Strojno učenje

Malo o strojnem učenju v e-pošti na splošno. Pošta je zelo obremenjen sistem: povprečno 1,5 milijarde pisem na dan gre skozi naše strežnike za 30 milijonov DAU uporabnikov. Približno 30 sistemov za strojno učenje podpira vse potrebne funkcije in značilnosti.

Vsaka črka gre skozi celoten klasifikacijski sistem. Najprej odstranimo vsiljeno pošto in pustimo dobra e-poštna sporočila. Uporabniki pogosto ne opazijo delovanja antispama, saj 95-99% spama sploh ne konča v ustrezni mapi. Prepoznavanje neželene pošte je zelo pomemben del našega sistema in najtežji, saj na področju zaščite pred neželeno pošto poteka nenehno prilagajanje med obrambnimi in napadalnimi sistemi, kar predstavlja stalen inženirski izziv za našo ekipo.

Nato ločimo črke od ljudi in robotov. E-poštna sporočila ljudi so najpomembnejša, zato jim nudimo funkcije, kot je pametni odgovor. Pisma robotov so razdeljena na dva dela: transakcijska - to so pomembna pisma služb, na primer potrdila o nakupih ali hotelskih rezervacijah, finance, in informativna - to so poslovno oglaševanje, popusti.

Verjamemo, da so transakcijska e-poštna sporočila enako pomembna kot osebna korespondenca. Morale bi biti pri roki, saj moramo pogosto na hitro najti informacije o naročilu ali rezervaciji letalske karte in porabimo čas za iskanje teh črk. Zato jih zaradi udobja samodejno razdelimo v šest glavnih kategorij: potovanja, naročila, finance, vozovnice, registracije in na koncu globe.

Največja in verjetno manj pomembna skupina so informativna pisma, ki ne zahtevajo takojšnjega odziva, saj se v življenju uporabnika ne bo nič bistvenega spremenilo, če takšnega pisma ne prebere. V našem novem vmesniku jih strnemo v dve niti: družbena omrežja in glasila, s čimer vizualno očistimo mapo »Prejeto« in pustimo vidna samo pomembna sporočila.

Delovanje strojnega učenja v Mail.ru Mail

Izkoriščanje

Veliko število sistemov povzroča veliko težav pri delovanju. Navsezadnje se modeli sčasoma poslabšajo, tako kot vsaka programska oprema: funkcije se pokvarijo, stroji odpovejo, koda postane ukrivljena. Poleg tega se podatki nenehno spreminjajo: dodajajo se novi, spreminjajo vzorci vedenja uporabnikov ipd., zato bo model brez ustrezne podpore sčasoma deloval vse slabše.

Ne smemo pozabiti, da globlje ko strojno učenje prodre v življenja uporabnikov, večji vpliv ima na ekosistem in posledično več finančnih izgub ali dobičkov lahko prejmejo igralci na trgu. Zato se na vse več področjih igralci prilagajajo delu algoritmov ML (klasični primeri so oglaševanje, iskanje in že omenjeni antispam).

Poleg tega imajo naloge strojnega učenja posebnost: vsaka, tudi manjša sprememba v sistemu lahko povzroči veliko dela z modelom: delo s podatki, prekvalificiranje, uvajanje, kar lahko traja tedne ali mesece. Zato se hitreje spreminja okolje, v katerem delujejo vaši modeli, več truda je potrebno za njihovo vzdrževanje. Ekipa lahko ustvari veliko sistemov in je zadovoljna s tem, a potem porabi skoraj vse svoje vire za njihovo vzdrževanje, brez možnosti, da naredi kaj novega. Enkrat smo naleteli na takšno situacijo v skupini za zaščito pred neželeno pošto. Prišli so do očitnega zaključka, da je treba podporo avtomatizirati.

Avtomatizacija

Kaj je mogoče avtomatizirati? Pravzaprav skoraj vse. Identificiral sem štiri področja, ki opredeljujejo infrastrukturo strojnega učenja:

  • Zbiranje podatkov;
  • dodatno usposabljanje;
  • razmestiti;
  • testiranje in spremljanje.

Če je okolje nestabilno in se nenehno spreminja, potem se celotna infrastruktura okoli modela izkaže za veliko pomembnejšo od modela samega. Morda je stari dobri linearni klasifikator, a če mu namenite prave funkcije in dobite dobre povratne informacije uporabnikov, bo deloval veliko bolje kot najsodobnejši modeli z vsemi prednostmi.

Povratna zanka

Ta cikel združuje zbiranje podatkov, dodatno usposabljanje in uvajanje – pravzaprav celoten cikel posodabljanja modela. Zakaj je pomembno? Oglejte si urnik prijav na mail:

Delovanje strojnega učenja v Mail.ru Mail

Razvijalec strojnega učenja je uvedel model proti botom, ki botom preprečuje registracijo v e-pošti. Graf pade na vrednost, kjer ostanejo samo pravi uporabniki. Vse je super! Toda štiri ure minejo, roboti prilagodijo svoje skripte in vse se vrne v normalno stanje. Pri tej izvedbi je razvijalec porabil mesec dni za dodajanje funkcij in ponovno usposabljanje modela, vendar se je pošiljatelj neželene pošte lahko prilagodil v štirih urah.

Da ne bi bilo tako neznosno boleče in da nam ne bi bilo treba kasneje vsega ponavljati, moramo najprej pomisliti, kako bo izgledala povratna zanka in kaj bomo storili, če se okolje spremeni. Začnimo z zbiranjem podatkov – to je gorivo za naše algoritme.

Zbiranje podatkov

Jasno je, da za sodobne nevronske mreže velja več podatkov, tem bolje, ustvarijo pa jih pravzaprav uporabniki izdelka. Uporabniki nam lahko pomagajo z označevanjem podatkov, vendar tega ne moremo zlorabiti, saj se bodo uporabniki na neki točki naveličali dokončanja vaših modelov in bodo prešli na drug izdelek.

Ena najpogostejših napak (tukaj se sklicujem na Andrewa Nga) je prevelika osredotočenost na metrike na testnem naboru podatkov in ne na povratne informacije od uporabnika, ki so pravzaprav glavno merilo kakovosti dela, saj ustvarjamo izdelek za uporabnika. Če uporabnik ne razume ali mu ni všeč delo modela, potem je vse uničeno.

Zato mora imeti uporabnik vedno možnost glasovanja in mora imeti orodje za povratne informacije. Če menimo, da je v nabiralnik prispelo pismo v zvezi s financami, ga moramo označiti s »finance« in narisati gumb, na katerega lahko uporabnik klikne in pove, da to niso finance.

Kakovost povratnih informacij

Pogovorimo se o kakovosti povratnih informacij uporabnikov. Prvič, vi in ​​uporabnik lahko v isti koncept vnesete različne pomene. Na primer, vi in ​​vaši produktni vodje mislite, da "finance" pomeni pisma banke, uporabnik pa meni, da se pismo babice o njeni pokojnini prav tako nanaša na finance. Drugič, obstajajo uporabniki, ki brezglavo radi pritiskajo na gumbe brez kakršne koli logike. Tretjič, uporabnik se lahko v svojih sklepih močno moti. Osupljiv primer iz naše prakse je implementacija klasifikatorja Nigerijska neželena pošta, zelo smešna vrsta neželene pošte, kjer uporabnika prosijo, naj vzame več milijonov dolarjev od nenadoma najdenega daljnega sorodnika v Afriki. Po uvedbi tega klasifikatorja smo preverili klike »Ni neželena pošta« na teh e-poštnih sporočilih in izkazalo se je, da je 80 % teh e-poštnih sporočil sočna nigerijska neželena pošta, kar nakazuje, da so lahko uporabniki izjemno lahkoverni.

In ne pozabimo, da lahko gumbe kliknejo ne samo ljudje, ampak tudi vse vrste robotov, ki se pretvarjajo, da so brskalnik. Surove povratne informacije torej niso dobre za učenje. Kaj lahko storite s temi informacijami?

Uporabljamo dva pristopa:

  • Povratne informacije iz povezanega ML. Imamo na primer spletni anti-bot sistem, ki se, kot sem omenil, hitro odloči na podlagi omejenega števila znakov. In obstaja drugi, počasen sistem, ki deluje naknadno. Ima več podatkov o uporabniku, njegovem vedenju itd. Posledično je sprejeta najbolj informirana odločitev, zato ima večjo natančnost in popolnost. Razliko v delovanju teh sistemov lahko usmerite na prvega kot podatke za usposabljanje. Tako se bo enostavnejši sistem vedno poskušal približati zmogljivosti bolj zapletenega.
  • Kliknite klasifikacijo. Vsak uporabniški klik lahko enostavno razvrstite, ocenite njegovo veljavnost in uporabnost. To naredimo v antispam pošti z uporabo uporabniških atributov, njegove zgodovine, atributov pošiljatelja, samega besedila in rezultatov klasifikatorjev. Kot rezultat dobimo samodejni sistem, ki preverja povratne informacije uporabnikov. In ker ga je treba veliko redkeje prekvalificirati, lahko njegovo delo postane osnova za vse ostale sisteme. Glavna prioriteta v tem modelu je natančnost, saj je usposabljanje modela na netočnih podatkih polno posledic.

Medtem ko čistimo podatke in izobražujemo svoje ML sisteme, ne smemo pozabiti na uporabnike, saj je za nas na tisoče, milijone napak na grafu statistika, za uporabnika pa je vsaka napaka tragedija. Poleg tega, da mora uporabnik nekako živeti z vašo napako v izdelku, po prejeti povratni informaciji pričakuje, da bo podobna situacija v prihodnje odpravljena. Zato je vedno vredno dati uporabnikom ne le možnost glasovanja, ampak tudi popraviti vedenje sistemov ML, ustvariti na primer osebno hevristiko za vsak klik povratne informacije; v primeru pošte je to lahko možnost filtriranja takšna pisma po pošiljatelju in naslovu za tega uporabnika.

Prav tako morate zgraditi model, ki temelji na nekaterih poročilih ali zahtevah za podporo v polavtomatskem ali ročnem načinu, tako da drugi uporabniki ne trpijo zaradi podobnih težav.

Hevristika za učenje

S temi hevristikami in berglami sta dve težavi. Prvi je ta, da je vedno večje število bergel težko vzdrževati, kaj šele njihovo kakovost in zmogljivost na dolgi rok. Druga težava je, da napaka morda ni pogosta in nekaj klikov za nadaljnje usposabljanje modela ne bo dovolj. Zdi se, da je ta dva nepovezana učinka mogoče znatno nevtralizirati, če uporabimo naslednji pristop.

  1. Izdelamo začasno berglo.
  2. Podatke iz njega pošiljamo modelu, ta se redno posodablja, tudi na prejetih podatkih. Pri tem je seveda pomembno, da ima hevristika visoko natančnost, da ne zmanjšamo kakovosti podatkov v učnem nizu.
  3. Nato nastavimo spremljanje, da sproži berglo in če po določenem času bergla ne deluje več in je v celoti pokrita z modelom, jo ​​lahko varno odstranite. Zdaj se ta težava verjetno ne bo ponovila.

Vojska bergel je torej zelo uporabna. Glavno, da je njihova storitev nujna in ne stalna.

Dodatno usposabljanje

Preusposabljanje je proces dodajanja novih podatkov, pridobljenih kot rezultat povratne informacije uporabnikov ali drugih sistemov, in usposabljanje obstoječega modela na njih. Pri dodatnem usposabljanju je lahko več težav:

  1. Model morda preprosto ne podpira dodatnega usposabljanja, ampak se uči le iz nič.
  2. Nikjer v knjigi narave ne piše, da bo dodatno izobraževanje zagotovo izboljšalo kakovost dela v proizvodnji. Pogosto se zgodi nasprotno, to je, da je možno samo poslabšanje.
  3. Spremembe so lahko nepredvidljive. To je precej subtilna točka, ki smo jo ugotovili sami. Tudi če nov model v A/B testu pokaže podobne rezultate kot trenutni, to ne pomeni, da bo deloval enako. Njihovo delo se lahko razlikuje le v odstotku, kar lahko prinese nove napake ali vrne stare, ki so že bile popravljene. Tako mi kot uporabniki že znamo živeti s trenutnimi napakami in ko se pojavi veliko število novih napak, lahko uporabnik tudi ne razume, kaj se dogaja, saj pričakuje predvidljivo vedenje.

Zato je pri dodatnem izobraževanju najpomembnejše zagotoviti, da se model izboljša ali vsaj ne poslabša.

Prva stvar, na katero pomislimo, ko govorimo o dodatnem izobraževanju, je pristop aktivnega učenja. Kaj to pomeni? Na primer, klasifikator določi, ali je e-poštno sporočilo povezano s financami, okoli njegove meje odločitve pa dodamo vzorec označenih primerov. To se dobro obnese na primer pri oglaševanju, kjer je povratnih informacij veliko in lahko modela treniraš na spletu. In če je povratnih informacij malo, potem dobimo zelo pristranski vzorec glede na porazdelitev proizvodnih podatkov, na podlagi katerega je nemogoče oceniti obnašanje modela med delovanjem.

Delovanje strojnega učenja v Mail.ru Mail

Pravzaprav je naš cilj ohraniti stare vzorce, že znane modele in pridobiti nove. Tukaj je pomembna kontinuiteta. Model, pri katerem smo se pogosto zelo potrudili, že deluje, zato se lahko osredotočimo na njegovo delovanje.

V pošti se uporabljajo različni modeli: drevesa, linearne, nevronske mreže. Za vsakega izdelamo svoj algoritem dodatnega usposabljanja. V procesu dodatnega usposabljanja ne dobimo le novih podatkov, temveč pogosto tudi nove lastnosti, ki jih bomo upoštevali v vseh spodnjih algoritmih.

Linearni modeli

Recimo, da imamo logistično regresijo. Izdelamo model izgube iz naslednjih komponent:

  • LogLoss pri novih podatkih;
  • uredimo uteži novih funkcij (starih se ne dotikamo);
  • učimo se tudi iz starih podatkov, da ohranimo stare vzorce;
  • in morda najpomembnejše: dodamo Harmonic Regularization, ki zagotavlja, da se uteži glede na stari model glede na normo ne bodo veliko spreminjale.

Ker ima vsaka komponenta izgube koeficiente, lahko izberemo optimalne vrednosti za našo nalogo z navzkrižno validacijo ali na podlagi zahtev izdelka.

Delovanje strojnega učenja v Mail.ru Mail

Деревья

Pojdimo k odločitvenim drevesom. Za dodatno usposabljanje dreves smo sestavili naslednji algoritem:

  1. Proizvodnja upravlja gozd s 100–300 drevesi, ki se usposablja na podlagi starega nabora podatkov.
  2. Na koncu odstranimo M = 5 kosov in dodamo 2M = 10 novih, usposobljenih na celotnem nizu podatkov, vendar z visoko težo za nove podatke, kar seveda zagotavlja postopno spremembo modela.

Očitno je, da se sčasoma število dreves močno poveča in jih je treba občasno zmanjšati, da bi dosegli čase. Za to uporabljamo zdaj vseprisotno destilacijo znanja (KD). Na kratko o principu njegovega delovanja.

  1. Imamo trenutni "kompleksni" model. Zaženemo ga na naboru podatkov o usposabljanju in na izhodu dobimo porazdelitev verjetnosti razreda.
  2. Nato usposobimo študentski model (v tem primeru model z manj drevesi), da ponovi rezultate modela z uporabo porazdelitve razreda kot ciljne spremenljivke.
  3. Tukaj je pomembno opozoriti, da na noben način ne uporabljamo oznak nabora podatkov, zato lahko uporabimo poljubne podatke. Seveda uporabimo vzorec podatkov iz bojnega toka kot učni vzorec za študentski model. Tako nam učni nabor omogoča, da zagotovimo natančnost modela, tokovni vzorec pa zagotavlja podobno zmogljivost pri distribuciji proizvodnje, s čimer kompenzira pristranskost učnega nabora.

Delovanje strojnega učenja v Mail.ru Mail

Kombinacija teh dveh tehnik (dodajanje dreves in občasno zmanjševanje njihovega števila s pomočjo destilacije znanja) zagotavlja uvajanje novih vzorcev in popolno kontinuiteto.

S pomočjo KD izvajamo tudi različne operacije na funkcijah modela, kot so odstranjevanje funkcij in obdelava vrzeli. V našem primeru imamo v zbirki podatkov shranjenih več pomembnih statističnih značilnosti (po pošiljateljih, zgoščenih besedilih, URL-jih itd.), ki ponavadi odpovejo. Model seveda ni pripravljen na takšen razvoj dogodkov, saj v vadbenem nizu ne pride do okvar. V takšnih primerih kombiniramo KD in tehnike povečanja: pri usposabljanju za del podatkov odstranimo ali ponastavimo potrebne funkcije in vzamemo izvirne oznake (izhode trenutnega modela), študentski model pa se nauči ponoviti to porazdelitev .

Delovanje strojnega učenja v Mail.ru Mail

Opazili smo, da bolj ko pride do resne manipulacije modela, večji odstotek vzorca niti je potreben.

Odstranjevanje funkcij, najpreprostejša operacija, zahteva le majhen del toka, saj se spremeni le nekaj funkcij, trenutni model pa je bil uren na istem nizu - razlika je minimalna. Za poenostavitev modela (večkratno zmanjšanje števila dreves) je že potrebnih 50 proti 50. In za izpustitev pomembnih statističnih značilnosti, ki bodo resno vplivale na delovanje modela, je potreben še večji pretok za izravnavo dela nov model, odporen na izpuščanje, na vseh vrstah črk.

Delovanje strojnega učenja v Mail.ru Mail

FastText

Preidimo na FastText. Naj vas spomnim, da je predstavitev (Embedding) besede sestavljena iz vsote vdelanosti same besede in vseh njenih črkovnih N-gramov, običajno trigramov. Ker je lahko trigramov kar veliko, se uporablja Bucket Hashing, torej pretvorba celotnega prostora v določeno fiksno hashmapo. Posledično se dobi matrika teže z dimenzijo notranje plasti na število besed + vedra.

Z dodatnim usposabljanjem se pojavijo novi znaki: besede in trigrami. Pri standardnem nadaljnjem usposabljanju s Facebooka se ne zgodi nič pomembnega. Samo stare uteži z navzkrižno entropijo se ponovno usposobijo za nove podatke. Tako se novosti ne uporabljajo, seveda pa ima ta pristop vse zgoraj opisane slabosti, povezane z nepredvidljivostjo modela v proizvodnji. Zato smo FastText nekoliko spremenili. Dodamo vse nove uteži (besede in trigrame), razširimo celotno matriko z navzkrižno entropijo in dodamo harmonično regulacijo po analogiji z linearnim modelom, ki zagotavlja nepomembno spremembo starih uteži.

Delovanje strojnega učenja v Mail.ru Mail

CNN

Konvolucijska omrežja so nekoliko bolj zapletena. Če so zadnji sloji dokončani v CNN, potem lahko seveda uporabite harmonično regulacijo in zagotovite kontinuiteto. Če pa je potrebno dodatno usposabljanje celotnega omrežja, potem takega urejanja ni več mogoče uporabiti za vse plasti. Vendar pa obstaja možnost za usposabljanje komplementarnih vdelav prek Triplet Loss (izvirni članek).

Trojna izguba

Na primeru naloge za preprečevanje lažnega predstavljanja si poglejmo Trojno izgubo na splošno. Vzamemo naš logotip ter pozitivne in negativne primere logotipov drugih podjetij. Minimiziramo razdaljo med prvim in maksimiziramo razdaljo med drugim, to naredimo z majhno vrzeljo, da zagotovimo večjo kompaktnost razredov.

Delovanje strojnega učenja v Mail.ru Mail

Če omrežje dodatno treniramo, se naš metrični prostor popolnoma spremeni in postane popolnoma nekompatibilen s prejšnjim. To je resen problem pri problemih, ki uporabljajo vektorje. Da bi se izognili tej težavi, bomo med usposabljanjem vmešali stare vdelave.

Dodali smo nove podatke v nabor za usposabljanje in usposabljamo drugo različico modela iz nič. Na drugi stopnji dodatno urimo naše omrežje (Finetuning): najprej dokončamo zadnji sloj, nato pa odmrznemo celotno omrežje. V procesu sestavljanja trojčkov izračunamo le del vdelav z uporabo usposobljenega modela, ostalo - z uporabo starega. Tako v procesu dodatnega usposabljanja zagotavljamo kompatibilnost metričnih prostorov v1 in v2. Edinstvena različica harmonične regulacije.

Delovanje strojnega učenja v Mail.ru Mail

Celotna arhitektura

Če za primer upoštevamo celoten sistem z antispamom, potem modeli niso izolirani, ampak ugnezdeni drug v drugem. Posnamemo slike, besedila in druge funkcije, z uporabo CNN in Fast Text dobimo vdelave. Nato se na vrhu vdelav uporabijo klasifikatorji, ki zagotavljajo ocene za različne razrede (vrste črk, vsiljena pošta, prisotnost logotipa). Signali in oznake že vstopajo v gozd dreves, da se sprejme končna odločitev. Posamezni klasifikatorji v tej shemi omogočajo boljšo interpretacijo rezultatov sistema in natančneje prekvalificiranje komponent v primeru težav, namesto da bi vnašali vse podatke v odločitvena drevesa v surovi obliki.

Delovanje strojnega učenja v Mail.ru Mail

Posledično zagotavljamo kontinuiteto na vseh ravneh. Na spodnji ravni v CNN in Fast Text uporabljamo harmonično regulacijo, za klasifikatorje na sredini pa prav tako uporabljamo harmonično regulacijo in kalibracijo stopnje za skladnost porazdelitve verjetnosti. No, spodbujanje dreves se usposablja postopoma ali z uporabo destilacije znanja.

Na splošno je vzdrževanje takšnega ugnezdenega sistema strojnega učenja običajno težava, saj vsaka komponenta na nižji ravni povzroči posodobitev celotnega sistema zgoraj. Ker pa se v naši postavitvi vsaka komponenta nekoliko spremeni in je združljiva s prejšnjo, je mogoče celoten sistem posodobiti del za delom brez potrebe po ponovnem usposabljanju celotne strukture, kar omogoča njegovo podporo brez resnih stroškov.

Razporedi

Pogovarjali smo se o zbiranju podatkov in dodatnem izobraževanju različnih vrst modelov, zato prehajamo na njihovo uvajanje v produkcijsko okolje.

A/B testiranje

Kot sem že povedal, v procesu zbiranja podatkov običajno dobimo pristranski vzorec, iz katerega ni mogoče oceniti produkcijske uspešnosti modela. Zato je treba pri uvajanju model primerjati s prejšnjo različico, da bi razumeli, kako stvari dejansko potekajo, torej opraviti A/B teste. Pravzaprav je postopek uvajanja in analiziranja grafikonov precej rutinski in ga je mogoče zlahka avtomatizirati. Naše modele postopoma uvajamo pri 5 %, 30 %, 50 % in 100 % uporabnikov, pri tem pa zbiramo vse razpoložljive meritve o odzivih modelov in povratnih informacijah uporabnikov. V primeru nekaterih resnih izstopov samodejno vrnemo model nazaj, v drugih primerih pa se, ko zberemo zadostno število uporabniških klikov, odločimo za povečanje odstotka. Posledično popolnoma samodejno ponudimo nov model 50 % uporabnikov, uvedbo za celotno občinstvo pa bo odobrila oseba, čeprav je ta korak mogoče avtomatizirati.

Vendar pa postopek A/B testiranja ponuja prostor za optimizacijo. Dejstvo je, da je vsak A/B test precej dolg (v našem primeru traja od 6 do 24 ur, odvisno od količine povratnih informacij), zaradi česar je precej drag in z omejenimi sredstvi. Poleg tega je potreben dovolj visok odstotek pretoka za preskus, da se bistveno pospeši skupni čas testa A/B (zaposlitev statistično pomembnega vzorca za oceno meritev pri majhnem odstotku lahko traja zelo dolgo), zaradi česar število A/B rež izjemno omejeno. Očitno je, da moramo testirati le najbolj obetavne modele, ki jih v procesu dodatnega usposabljanja prejmemo precej.

Da bi rešili to težavo, smo usposobili ločen klasifikator, ki napoveduje uspešnost A/B testa. Da bi to naredili, kot funkcije vzamemo statistiko odločanja, natančnost, priklic in druge meritve na vadbenem nizu, na odloženem in na vzorcu iz toka. Model tudi primerjamo s trenutnim v izdelavi, s hevristiko in upoštevamo Kompleksnost modela. Z uporabo vseh teh funkcij klasifikator, usposobljen za zgodovino testiranja, oceni kandidatne modele, v našem primeru so to gozdovi dreves, in se odloči, katerega bo uporabil v A/B testu.

Delovanje strojnega učenja v Mail.ru Mail

V času implementacije nam je ta pristop omogočil večkratno povečanje števila uspešnih A/B testov.

Testiranje in spremljanje

Testiranje in spremljanje, nenavadno, ne škodujeta našemu zdravju, temveč, nasprotno, izboljšata ga in nas razbremenita nepotrebnega stresa. Testiranje vam omogoča, da preprečite napako, spremljanje pa vam omogoča, da jo pravočasno odkrijete in zmanjšate vpliv na uporabnike.

Tukaj je pomembno razumeti, da bo vaš sistem prej ali slej vedno delal napake - to je posledica razvojnega cikla katere koli programske opreme. Na začetku razvoja sistema je vedno veliko hroščev, dokler se vse ne umiri in ni končana glavna faza inovacije. A sčasoma entropija naredi svoje in napake se spet pojavijo – zaradi degradacije komponent okoli in sprememb podatkov, o katerih sem govoril na začetku.

Tukaj bi rad opozoril, da je treba vsak sistem strojnega učenja obravnavati z vidika njegovega dobička skozi celoten življenjski cikel. Spodnji graf prikazuje primer delovanja sistema za prestrezanje redke vrste neželene pošte (črta na grafu je blizu ničle). Nekega dne se ji je zaradi nepravilno predpomnjenega atributa zmešalo. Po sreči ni bilo nadzora za nenormalno proženje; posledično je sistem začel shranjevati velike količine pisem v mapo »neželena pošta« na meji odločanja. Kljub odpravljanju posledic je sistem naredil že toliko napak, da se niti v petih letih ne bo povrnil. In to je popolna polomija z vidika življenjskega cikla modela.

Delovanje strojnega učenja v Mail.ru Mail

Zato lahko tako preprosta stvar, kot je spremljanje, postane ključna v življenju modela. Poleg standardnih in očitnih meritev upoštevamo porazdelitev odzivov in rezultatov modela ter porazdelitev vrednosti ključnih značilnosti. Z uporabo KL divergence lahko primerjamo trenutno porazdelitev z zgodovinsko ali vrednosti v A/B testu s preostalim tokom, kar nam omogoča, da opazimo anomalije v modelu in pravočasno vrnemo spremembe.

V večini primerov zaženemo svoje prve različice sistemov z uporabo preprostih hevristik ali modelov, ki jih bomo v prihodnosti uporabljali kot nadzor. Model NER na primer spremljamo v primerjavi z običajnimi za določene spletne trgovine in če pokritost klasifikatorja v primerjavi z njimi pade, razumemo razloge. Še ena koristna uporaba hevristike!

Rezultati

Ponovno preglejmo ključne ideje članka.

  • Fibdeck. Vedno razmišljamo o uporabniku: kako bo živel z našimi napakami, kako jih bo lahko prijavil. Ne pozabite, da uporabniki niso vir čistih povratnih informacij za modele usposabljanja in jih je treba očistiti s pomočjo pomožnih sistemov ML. Če ni mogoče zbrati signala od uporabnika, potem iščemo alternativne vire povratnih informacij, na primer povezane sisteme.
  • Dodatno usposabljanje. Glavna stvar pri tem je kontinuiteta, zato se zanašamo na trenutni model proizvodnje. Nove modele usposobimo tako, da se zaradi harmonične regulacije in podobnih trikov ne razlikujejo veliko od prejšnjih.
  • Razporedi. Samodejna uvedba na podlagi metrik močno zmanjša čas za implementacijo modelov. Spremljanje statistike in porazdelitev odločanja, števila padcev uporabnikov je obvezno za vaš miren spanec in produktiven konec tedna.

No, upam, da vam bo to pomagalo hitreje izboljšati vaše sisteme ML, jih hitreje spraviti na trg ter narediti bolj zanesljive in manj stresne.

Vir: www.habr.com

Dodaj komentar