The utilization of machine learning in Mail.ru

The utilization of machine learning in Mail.ru

Minu esinemiste kÔrvale Highload++ ja DataFest Minsk 2019.

Paljude jaoks on postiteenus tÀna lahutamatu osa veebielust. Selle abil viime lÀbi Àritegevust, salvestame erinevat olulist teavet, mis on seotud rahanduse, hotellide broneerimise, tellimuste tÀitmise ja paljuga muuga. 2018. aasta keskpaiku sÔnastasime postiteenuse arendamise tootestriateegia. Milline peaks olema tÀnapÀevane postiteenus?

Postiteenus peab olema nutikas, see tÀhendab, et ta peab aitama kasutajatel orienteeruda kasvavas informatsiooni mahus: filtreerima, struktureerima ja esitama seda kÔige mugavamal viisil. Ta peab olema kasulikuks, vÔimaldades otse postkastis lahendada erinevaid probleeme, nagu nÀiteks trahvide maksmine (funktsioon, mida ma, oma kahjuks, kasutan). Ja sellega peab postiteenus samuti tagama informatsioonilise kaitse, blokeerides rÀmpsposti ja kaitstes hÀkkimise eest, see tÀhendab olema ohutust.

Need suunad mÀÀravad mitmeid pĂ”hiĂŒlesandeid, millest paljusid saab tĂ”husalt lahendada masinĂ”ppe abil. Siin on nĂ€idised juba toimivatest funktsioonidest, mis on vĂ€lja töötatud strateegia raames – iga suuna kohta ĂŒks.

  • Nutika vastuse funktsioon. Postiteenuses on nutika vastuse funktsioon. NeuralvĂ”rk analĂŒĂŒsib kirja sisu, mĂ”istab selle tĂ€hendust ja eesmĂ€rki ning pakub seejĂ€rel kolme kĂ”ige sobivamat vastusevarianti: positiivne, negatiivne ja neutraalne. See aitab oluliselt sÀÀsta aega kirjadele vastamisel ning sageli vastata ebatavaliselt ja naljakalt.
  • Kirjade gruppeerimine, mis on seotud Interneti-poodide tellimustega. Me sageli ostame veebist, ja tavaliselt saadavad kauplused iga tellimuse kohta mitu kirja. NĂ€iteks tuleb AliExpressilt, suurimalt teenuselt, palju kirju ĂŒhe tellimuse kohta, ja me oleme leidnud, et lĂ”pliku juhul vĂ”ivad need arvud ulatuda kuni 29-ni. SeetĂ”ttu kasutame nimetuste tuvastamise mudelit, et selgitada vĂ€lja tellimuse number ja muu teave tekstist ning gruppeerida kĂ”ik kirjad ĂŒhte teema. NĂ€itame ka tellimuse pĂ”hiteavet eraldi ribas, mis lihtsustab selle tĂŒĂŒpi kirjadega tegelemist.

    The utilization of machine learning in Mail.ru

  • Anti-phishing. Phishing on ohtlik petuskeem, mille abil pĂŒĂŒavad kurjategijad saada kĂ€tte finantsandmeid (sealhulgas kasutajate pangakaarditeavet) ja sisselogimisi. Sellised kirjad jĂ€ljendavad tĂ”elisi, mida saadab teenus, sealhulgas visuaalselt. SeetĂ”ttu tunnustame Computer Vision abil suurte ettevĂ”tete (nĂ€iteks Mail.ru, Sber, Alfa) logo ja kirjade kujundust ning arvestame seda koos teksti ja muude tunnustega meie rĂ€mpsposti ja phishingu klassifikaatorites.

MasinÔpe

Veidi masinĂ”ppest e-kirjade kontekstis. E-post on kĂ”rgelt koormatud sĂŒsteem: meie serverite kaudu lĂ€bib keskmiselt 1,5 miljardit kirja pĂ€evas 30 miljoni aktiivse kasutaja kohta. KĂ”iki vajalikke funktsioone ja omadusi haldab umbes 30 masinĂ”ppe sĂŒsteemi.

Iga kiri lĂ€bib kogu klassifitseerimise protsessi. Esiteks filtreerime rĂ€mpsposti ja jĂ€tame head kirjad alles. Kasutajad ei mĂ€rka sageli rĂ€mpsposti tĂ”rje tööd, sest 95–99% rĂ€mpspostist ei jĂ”ua isegi vastavasse kausta. RĂ€mpsposti tuvastamine on meie sĂŒsteemi vĂ€ga oluline ja samas keeruline osa, kuna rĂ€mpsposti tĂ”rje valdkonnas toimub pidev kohandumine kaitse- ja rĂŒnnakeskuste vahel, mis esitab meie meeskonnale pideva insenerliku vĂ€ljakutse.

SeejÀrel eristame inimeste ja robotite kirju. Inimeste kirjad on kÔige olulisemad, seega pakume nende jaoks funktsioone nagu Smart Reply. Robotite kirjad jagunevad kaheks: tehingulised - need on tÀhtsad kirjad teenustest, nÀiteks ostude vÔi hotellide broneeringute kinnitused, finantsandmed, ja teavitavad - need on Àritooted, allahindlused.

Peame, et tehingulised kirjad on sama olulised kui isiklikud vestlused. Need peavad olema kÀepÀrast, kuna sageli on vaja kiiresti leida teavet tellimuse vÔi lennupileti broneeringu kohta, ja me kulutame aega nende kirjade otsimisele. SeetÔttu jagame me mugavuse huvides need automaatselt kuue pÔhikategooriasse: reisid, tellimused, finantsid, piletid, registreerimised ja lÔpuks karistused.

Teabesid on kĂ”ige enam levinud ja tĂ”enĂ€oliselt vĂ€hem oluline rĂŒhm, mis ei nĂ”ua kohest reaktsiooni, kuna kasutaja elus ei muutu midagi olulist, kui ta sellist kirja ei loe. Meie uues liideseosas koondame need kahte teema: sotsiaalmeedia ja uudiskirjad, visuaalselt puhastades postkasti ja jĂ€ttes nĂ€htavale vaid olulised kirjad.

The utilization of machine learning in Mail.ru

KĂ€itus

Suur arv sĂŒsteeme tekitab palju raskusi kasutamises. Aja jooksul degradeeruvad mudelid, nagu iga tarkvara: murravad funktsioonid, masinad ebaĂ”nnestuvad, tuleb ette tĂ”rkeid koodis. Lisaks muutuvad pidevalt andmed: lisatakse uusi, muudetakse kasutajate kĂ€itumismustreid jne, seetĂ”ttu hakkab mudel ilma vajaliku hoolduseta aja jooksul ĂŒha halvemini toimima.

Ei saa unustada ka seda, et mida sĂŒgavamale masinĂ”pe siseneb kasutajate ellu, seda suuremat mĂ”ju see avaldab ökosĂŒsteemile ning sellest tulenevalt, seda suuremaid rahalisi kaotus vĂ”i kasumit saavad turu mĂ€ngijad. SeetĂ”ttu adaptiirivad ĂŒha enamates valdkondades mĂ€ngijad ML-algoritmide kasutamisele (klassikalised nĂ€ited - reklaam, otsing ja juba mainitud rĂ€mpsposti tĂ”rje).

Kuna masinĂ”ppe ĂŒlesannetel on ka eripĂ€ra: iga, olgu see siis vĂ€ike, muudatus sĂŒsteemis vĂ”ib tekitada palju tööd mudeliga: andmetega töötamine, uuesti koolitamine, juurutamine, mis vĂ”ib vĂ”tta nĂ€dalaid vĂ”i isegi kuid. SeetĂ”ttu, mida kiiremini keskkond, kus teie mudelid tegutsevad, muutub, seda rohkem ressursse nĂ”uab nende hooldus. Tiim vĂ”ib luua palju sĂŒsteeme ja nende ĂŒle rÔÔmustada, kuid seejĂ€rel kulutada peaaegu kĂ”ik ressursid nende hooldamiseks, ilma et oleks vĂ”imalust midagi uut teha. Me olime kunagi sellise olukorraga silmitsi, kui töötasime rĂ€mpsposti tĂ”rje tiimis. Ja jĂ”udsime ilmselgele jĂ€reldusele, et hooldust tuleb automatiseerida.

Automatiseerimine

Mida saab automatiseerida? Tegelikult peaaegu kÔike. Olen vÀlja toonud neli suunda, mis mÀÀravad masinÔppe infrastruktuuri:

  • andmete kogumine;
  • tĂ€iendav koolitus;
  • juurutamine;
  • testimine ja jĂ€lgimine.

Kui keskkond on ebastabiilne ja pidevalt muutuv, on kogu infrastruktuur mudeli ĂŒmber olulisem kui mudel ise. See vĂ”ib olla vana hea lineaarne klassifikaator, aga kui sellele Ă”igesti tunnuseid esitletakse ja tagasiside kasutajatelt on hĂ€sti organiseeritud, toimib see palju paremini kui kĂ”ikvĂ”imalike vingetega State-Of-The-Art mudelid.

Tagasiside ring

See ring hĂ”lmab andmete kogumist, tĂ€iendĂ”pet ja juurutamist — pĂ”himĂ”tteliselt kogu mudeli uuendamise tsĂŒkkel. Miks see oluline on? Vaadake postal đăngi graafikut:

The utilization of machine learning in Mail.ru

MasinÔppe arendaja rakendas antiboti mudelit, mis takistab botide registreerumist postis. Graafik langeb vÀÀrtusele, kus jÀÀvad alles ainult pÀris kasutajad. KÔik on suurepÀrane! Kuid neli tundi hiljem kohendavad botimeistrid oma skripte, ja kÔik naaseb algsesse seisundisse. Selles rakenduses kulutas arendaja kuu aega, lisades tunnuseid ja tÀiendades mudelit, kuid spÀmmija suudab nelja tunni jooksul kohaneda.

Kuna vĂ”ib olla nii valus ja hiljem kĂ”ik uuesti teha, tuleks alguses mĂ”elda, milline tagasiside ring vĂ€lja nĂ€eb ja mida me teeme, kui keskkond muutub. Alustame andmete kogumisest — see on kĂŒtus meie algoritmidele.

Andmete kogumine

Selge on, et tĂ€napĂ€evaste nĂ€rvivĂ”rkude puhul on andmete hulk alati parem, ja neid genereerivad sisuliselt toote kasutajad. Kasutajad vĂ”ivad meid aidata andmete mĂ€rgistamisel, aga seda ei saa kuritarvitada, sest kasutajatele vĂ”ib mingil hetkel tĂŒkkida teie mudelite tĂ€iustamine ja nad vĂ”ivad minna teise toote juurde.

Üks kĂ”ige sagedasemaid vigu (siin viitan Andrew Ng-le) — liigne keskendumine mÔÔdikutele testandmestikus, mitte kasutajate tagasisidele, mis on tegelikult peamine kvaliteedi mÔÔdik, kuna loome toodet kasutajale. Kui kasutajale ei ole mudeli töö arusaadav vĂ”i ei meeldi, siis on kĂ”ik asjatu.

SeetÔttu peab kasutajal alati olema vÔimalus hÀÀletada, peaksime talle andma tagasiside tööriista. Kui arvame, et kasti on saabunud kiri, mis kuulub finantseerimise alla, tuleks see markeerida 'finantseerimine', ja joonistada nupp, mida kasutaja vÔib vajutada ja öelda, et see ei ole finantseerimine.

Tagasiside kvaliteet

RÀÀgime kasutajate tagasiside kvaliteedist. Esiteks, teil ja kasutajal vĂ”ib olla erinev arusaam samast mĂ”isted. NĂ€iteks, teie ja tootearendajatega peetakse "rahandust" pangakirjadeks, samas kui kasutaja arvab, et ka vanaema kiri pensionist kuulub rahanduse alla. Teiseks, on kasutajaid, kes mĂ”tlematult vajutavad nuppudele ilma igasuguse loogikata. Kolmandaks, kasutaja vĂ”ib oma jĂ€reldustes tugevalt eksida. Üks selge nĂ€ide meie praktikast on klassifikaatori juurutamine Nigeeria spĂ€mm, ĂŒsna naljakas spĂ€mmiliik, kus kasutajale pakutakse vĂ”imalust saada mitmeid miljoneid dollareid Ă€kitselt leitud kauges sugulasest Aafrikas. PĂ€rast selle klassifikaatori juurutamist kontrollisime nuppu "Ei ole spĂ€mm" nende kirjade puhul ja selgus, et 80% neist on mahlane Nigeeria spĂ€mm, mis nĂ€itab, et kasutajad vĂ”ivad olla ÀÀrmiselt usaldavad.

Ja Àra unustagem, et nuppe vÔivad vajutada mitte ainult inimesed, vaid ka igasugused robotid, mis teesklevad olevat brauserid. Nii et too tagasiside ei sobi Ôpetamiseks. Mida saaks sellega teavet teha?

Kasutame kahte lÀhenemist:

  • Kasutajate tagasiside seoses ML. NĂ€iteks meil on online-antiboti sĂŒsteem, mis, nagu ma juba mainisin, teeb kiire otsuse piiratud hulga tunnuste pĂ”hjal. Ja on teiseks, aeglane sĂŒsteem, mis töötab tagantjĂ€rele. Sellel on rohkem andmeid kasutaja, tema kĂ€itumise jne kohta. Selle tulemusena tehakse tasakaalustatud otsus, mistĂ”ttu on selle tĂ€psus ja tĂ€ielikkus kĂ”rgemad. Erinevuse töö nendel sĂŒsteemidel saab suunata esimesse kui Ă”ppeandmed. Nii et lihtsam sĂŒsteem pĂŒĂŒab alati lĂ€heneda keerukama jĂ”udlusele.
  • Klikkide klassifitseerimineIga kasutaja kliki saab lihtsalt klassifitseerida, hinnata selle kehtivust ja kasutusvĂ”imet. Me teeme seda e-posti spĂ€mmivastaselt, kasutades kasutaja tunnuseid, tema ajalugu, saatja omadusi, teksti ning klassifikaatorite töö tulemust. Tulemusena saame automaatse sĂŒsteemi, mis valideerib kasutaja tagasisidet. Kuna seda tuleb oluliselt harvem uuesti Ă”petada, vĂ”ib selle töö saada aluseks kĂ”igile teistele sĂŒsteemidele. Selles mudelis on peamine prioriteet tĂ€psus, kuna mudeli Ă”petamine ebatĂ€psete andmete pĂ”hjal vĂ”ib kaasa tuua tagajĂ€rgi.

Kuni me puhastame andmeid ja Ă”petame meie masinĂ”ppimise sĂŒsteeme, ei tohi unustada kasutajaid. Sajad ja miljonid vead graafikus on statistika, kuid iga veakogemus kasutaja jaoks on tragöödia. Lisaks sellele, et kasutaja peab elama teie tootearenduse vea tĂ”ttu, ootab ta tagasisidestamise jĂ€rel, et sellised olukorrad ei korduks. Seega tasub alati anda kasutajatele vĂ”imalus mitte ainult hÀÀletada, vaid ka mĂ”jutada masinĂ”ppimise sĂŒsteemide kĂ€itumist, luues nĂ€iteks iga tagasiside kliki jaoks isiklikke heuristilisi meetodeid; nĂ€iteks vĂ”ib see e-posti puhul tĂ€hendada vĂ”imalust filtreerida sarnaseid kirju saatja ja pealkirja alusel.

Samuti on vajalik, et mingite aruannete vĂ”i tugipöördumiste pĂ”hjal pooleautomaatsetes vĂ”i kĂ€sitsi moodustatud sĂŒsteemides kohandatakse mudelit, et teised kasutajad ei kannataks sarnaste probleemide all.

Heuristikad Ôppimiseks

Nende andmete heuristikate ja kohandustega on kaks probleemi. Esiteks on pidevalt kasvava arvu kohanduste hooldamine keeruline, rÀÀkimata nende kvaliteedist ja pikaajalise töökindluse tagamisest. Teiseks, viga ei pruugi olla sagedane ning mitmed klikkimised mudeli ĂŒmberĂ”petamiseks vĂ”ivad olla ebapiisavad. Tundub, et neid kahte mitteseotud efekti on vĂ”imalik tunduvalt vĂ€hendada, kui rakendada jĂ€rgmist lĂ€henemist.

  1. Loome ajutise kohanduse.
  2. Suuname andmed sellest mudelisse, mis Ôpib regulaarselt ka saadud andmete pÔhjal. Siin on muidugi oluline, et heuristika oleks kÔrge tÀpsusega, et mitte vÀhendada treeningandmete kvaliteeti.
  3. SeejĂ€rel paneme jĂ€lgimise takisti aktiveerimisele ja kui mingi aja pĂ€rast takisti enam ei aktiveeru ja katab tĂ€ielikult mudeli, siis vĂ”ib selle julgelt eemaldada. NĂŒĂŒd on see probleem ebatĂ”enĂ€oline, et kordub.

Seega on takistite armee vĂ€ga kasulik. Peamine on, et nende teenus oleks ajutine, mitte pĂŒsiv.

JĂ€tkamine

JĂ€tkamine on uusandmete lisamise protsess, mis saadakse kasutajatelt vĂ”i teistelt sĂŒsteemidelt tagasiside kaudu, ning olemasoleva mudeli nende pĂ”hjal koolitamine. JĂ€tkamisega vĂ”ib kaasneda mitmeid probleeme:

  1. Mudel ei pruugi lihtsalt toetada jÀtkamist ning peab Ôppima ainult nullist.
  2. Looduse raamatus ei ole kirjas, et jÀtkamine paratamatult parandab toimetulekut tootmises. Tihti juhtub vastupidi, see tÀhendab, et olukord vÔib ainult halveneda.
  3. Muutused vÔivad olla ettearvamatud. See on piisavalt Ôrn teema, mille oleme endale avastanud. Isegi kui uus mudel A/B-testimisel nÀitab sarnaseid tulemusi kui praegune, ei tÀhenda see sugugi, et see töötab identselt. Nende töö vÔib erineda isegi mÔnes protsendis, mis vÔib tuua uusi vigu vÔi taastada juba parandatud vanad. Praeguste vigadega oskame me ja kasutajad juba elada ning kui uusi vigu tuleb hulgi, vÔib ka kasutaja mitte mÔista, mis toimub, kuna ta ootab ettearvatavat kÀitumist.

Seega on jÀtkamise juures kÔige olulisem garanteerida mudeli parandamine vÔi vÀhemalt mitte halvendamine.

Esimene asi, mis pĂ€he tuleb, kui rÀÀgime jĂ€tkamisest, on aktiivĂ”ppe lĂ€henemine. Mida see tĂ€hendab? NĂ€iteks klassifikaator mÀÀrab, kas kiri kuulub rahandusse, ja tema otsustuspiiri ĂŒmber lisame valimi mĂ€rgistatud nĂ€idetest. See toimib hĂ€sti, nĂ€iteks reklaamides, kus tagasisidet tuleb palju ja mudelit saab koolitada reaalajas. Kuid kui tagasisidet on vĂ€he, saame tugevalt moonutatud valimi, mis ei vasta tootmisandmete jaotusele, mille pĂ”hjal on vĂ”imatu hinnata mudeli kĂ€itumist kasutamise ajal.

The utilization of machine learning in Mail.ru

Meie eesmÀrk on sÀilitada vanad mustrid, tuttavad mudelid, ja omandada uusi. JÀtkusuutlikkus on siin oluline. Mudel, mida me sageli suure vaevaga arendasime, töötab juba hÀsti, seetÔttu saame toetuda selle jÔudlusele.

Postitustes kasutatakse erinevaid mudeleid: puud, lineaarsed, nĂ€rvivĂ”rgud. IgaĂŒhe jaoks loome oma tĂ€iendamisalgoritmi. TĂ€iendamisprotsessis tekivad meil uued andmed, kuid sageli ka uued tunnused, mida arvestame allpool kĂ”igis algoritmides.

Lineaarmudelid

Oletame, et meil on logistiline regressioon. Koostame mudeli kaotuse jÀrgmiste komponentide pÔhjal:

  • LogLoss uute andmete pĂ”hjal;
  • reguleerime uute tunnuste kaalusid (vanaid ei puutu);
  • Ă”pime ka vanade andmete pĂ”hjal, et sĂ€ilitada vanu mustreid;
  • ja mis veelgi olulisem: rakendame Harmoonilise Regulaarimise, mis tagab, et kaalude muutus vĂ”rreldes vana mudeliga on minimaalne.

Kuna iga kaotuse komponendi puhul on koefitsiendid, saame valida meie ĂŒlesande jaoks optimaalsed vÀÀrtused ristvalideerimise vĂ”i toote nĂ”uete alusel.

The utilization of machine learning in Mail.ru

Puud

Liigume edasi otsustuspuude juurde. Oleme vÀlja töötanud jÀrgmise puude tÀiendamisalgoritmi:

  1. Töös on 100–300 puu mets, mis on koolitatud vanal andmestikul.
  2. Eemaldame lĂ”puks M = 5 tĂŒkki ja lisame 2M = 10 uut, mis on koolitatud kogu andmestiku pĂ”hjal, kuid uute andmete kĂ”rge kaalu tĂ”ttu, mis loomulikult tagab mudeli jĂ€rkjĂ€rgulise muutumise.

On ilmne, et aja jooksul kasvab puude arv mĂ€rkimisvÀÀrselt ja neid tuleb perioodiliselt vĂ€hendada, et mahtuda ajaraamidesse. Selleks kasutame igapĂ€evarutiini nĂŒĂŒd juba laialdaselt kasutatavat Teadmiste Destilleerimist (KD). LĂŒhidalt selle tööpĂ”himĂ”ttest.

  1. Meil on praegune „keeruline“ mudel. KĂ€ivitame selle treeningandmestikul ja saame klasside tĂ”enĂ€osuste jaotuse vĂ€ljundiks.
  2. SeejÀrel koolitame Ôpilasmudelit (antud juhul madalama puude arvuga mudel) kordama mudeli töö tulemusi, kasutades klasside jaotust sihimuutujana.
  3. Siin on oluline mÀrkida, et me ei kasuta andmekogude struktuuri ja seetÔttu vÔime kasutada suvalisi andmeid. Loomulikult kasutame aktiivse vooluga seotud andmete proovide komplekti, et koolitada Ôpikmodelli. Seega vÔimaldab treeningkomplekt tagada mudeli tÀpsuse, samas kui vooluprognoos tagab sarnase jÔudluse tootmisjaotuses, tasandades treeningkomplekti kallutatusi.

The utilization of machine learning in Mail.ru

Nende kahe meetodi (puude lisamine ja nende arvu perioodiline vÀhendamine teadlikkuse destilleerimise kaudu) kombinatsioon tagab uute mustrite sissetoomise ja tÀieliku jÀrjepidevuse.

KD abil saame ka teostada erinevusi mudeli tunnuste operatsioonides, nÀiteks tunnuste eemaldamist ja puuduolevate andmete töötlemist. Meil on rida olulisi statistilisi tunnuseid (saatjate, tekstihÀkkide, URL-ide jms kohta), mis on salvestatud andmebaasi, millel on ebaÔnnestumise omadus. TÔsise jÀrgnevuse saavutamiseks ei ole mudel selliste olukordadega harjunud, kuna treeningkomplektis ei esine ebaÔnnestumise olukordi. Sarnastes olukordades kombineerime KD ja andmete suurendamise tehnikaid: andmete treenimise kÀigus eemaldame teatud tunnuseid vÔi nullime need ning mudeli lÀhtemÀrgid (moodulite vÀljundid) jÀÀvad algseteks, Ôppija mudel Ôpib neid jaotusi kordama.

The utilization of machine learning in Mail.ru

Me oleme mÀrganud, et mida tÔsisemaid manipuleerimisi mudelitega tehakse, seda rohkem on vaja vooluprognoosi protsendi jÀrgi.

Tunnuste eemaldamiseks, kĂ”ige lihtsamale operatsioonile, on vajalik vaid vĂ€ike osa voolust, kuna muutub vaid mĂ”ned tunnused ja kĂ€esolev mudel on Ă”ppinud samal komplekis – erinevus on minimaalne. Mudeli lihtsustamiseks (puude arvu vĂ€hendamiseks mitu korda) on siiski vajalik 50:50. Oluliste statistiliste tunnuste, mis tĂ”siselt mĂ”jutavad mudeli jĂ”udlust, puuduolekute korral on vajalik veelgi rohkem voolude, et tasakaalustada uue puuduste suhtes vastupidava mudeli toimimist kĂ”ikide kirjade tĂŒĂŒpide peal.

The utilization of machine learning in Mail.ru

FastText

Liigume edasi FastText'i juurde. Meeles pidada, et sĂ”na esitus (Embedding) koosneb sĂ”na enda embedding'ist ja kĂ”igist selle tĂ€heline N-gram'ist, tavaliselt kolmigrammidest. Kuna kolmigrameid vĂ”ib olla ĂŒsna palju, kasutatakse Bucket Hashing'ut, st kogu ruumi teisendamist kindlaks hachimepiks. Tulemuseks on kaalu maatriks, mille suurus on sisemise kihi ja sĂ”nade + bucketite arv.

TĂ€iendĂ”ppes ilmnevad uued tunnused: sĂ”nad ja kolmigrammid. Facebooki standardse tĂ€iendĂ”ppe kĂ€igus ei toimu midagi olulist. TĂ€iendatakse ainult vanu kaalu, kasutades rist-entropiat uute andmete peal. Seega uusi tunnuseid ei kasutata, loomulikult on see lĂ€henemine kĂ”igi ĂŒlaltoodud puudustega, mis on seotud mudeli ettearvamatuses tootmises. SeetĂ”ttu oleme teinud FastText'ile mĂ”ned tĂ€iendused. Lisame kĂ”ik uued kaalu (sĂ”nad ja kolmigrammid), tĂ€iustame kogu maatriksit rist-entropiaga ja lisame harmoonilise regulatsiooni sarnane lineaarse mudeliga, mis tagab vanade kaalu vĂ€henematu muutumise.

The utilization of machine learning in Mail.ru

CNN

Konvolutsiooniliste vÔrkudega on veidi keerulisem. Kui CNN'i viimaseid kihte tÀiustatakse, saab loomulikult kasutada harmoonilist regulatsiooni ja tagada jÀrjepidevuse. Kuid juhul, kui on vajalik kogu vÔrgu tÀiustamine, siis sellist regulatsiooni ei saa rakendada kÔigile kihtidele. Siiski on olemas vÔimalus koolitada komplementaarseid embedding'e Triplet Loss'i kaudu (originaalne artikkel).

Triplet Loss

Vaatame Triplet Loss'i kaudu antifishingu ĂŒlesande nĂ€itel. VĂ”tame meie logo ning positiivseid ja negatiivseid nĂ€iteid teiste ettevĂ”tete logodest. Minimeerime vahemaa esimeste vahel ja maksimeerime teise vahel, tehes seda vĂ€ikese varuga, et tagada klasside suurem kompaktsus.

The utilization of machine learning in Mail.ru

Kui me tĂ€iustame vĂ”rku, siis meie mÔÔtmisruum muutub tĂ€ielikult ja see muutub eelneva suhtes tĂ€iesti ĂŒhildumatuks. See on tĂ”sine probleem ĂŒlesannetes, mis kasutavad vektoreid. Selle probleemi vĂ€ltimiseks hakkame koolitamise kĂ€igus vanu embedding'e segama.

Oleme lisanud uut teavet treeningkomplekti ja Ă”petame mudeli teise versiooni nullist. Teises etapis tĂ€iustame meie vĂ”rku (Finetuning): esmalt Ă”petatakse viimane kiht, seejĂ€rel avatakse kogu vĂ”rk. Tripletide koostamise protsessis arvutame vaid osa embeddings'eid Ă”petatava mudeli abil, ĂŒlejÀÀnud aga vana mudeli abil. Nii tagame tĂ€iustamisprotsessi kĂ€igus, et v1 ja v2 mÔÔtmisruumid oleksid ĂŒhilduvad. See on omamoodi harmoonilise regulatsiooniga variant.

The utilization of machine learning in Mail.ru

Arhitektuur tervikuna

Kui vaadata kogu sĂŒsteemi tervikuna nĂ€iteks rĂ€mpsposti kontekstis, siis mudelid ei ole isoleeritud, vaid ĂŒksteisesse integreeritud. VĂ”tame pildid, teksti ja muud omadused, kasutame CNN-i ja Fast Text'i, et saada embeddings'eid. Edasi rakendatakse embeddings'ide peal klassifikaatoreid, mis vĂ€ljastavad skoorid erinevate klasside jaoks (kirjade tĂŒĂŒbid, rĂ€mpspost, logo olemasolu). Skoorid ja omadused satuvad puude metsadesse, kus tehakse lĂ”plik otsus. Erinevad klassifikaatorid selles skeemis vĂ”imaldavad paremini tĂ”lgendada sĂŒsteemi töö tulemusi ja sihipĂ€rasemalt tĂ€iustada komponente probleemide korral, mitte aga esitada kĂ”iki andmeid toorelt otsustuspuusse.

The utilization of machine learning in Mail.ru

KokkuvĂ”ttes tagame jĂ€rjepidevuse igal tasandil. Alumisel tasemel kasutame CNN-is ja Fast Text-is harmoonilist regulatsiooni, keskmises klassifikaatorites samuti harmoonilist regulatsiooni ja skoori kalibreerimist tĂ”enĂ€osusjaotuse ĂŒhilduvuse tagamiseks. Boosting puid aga koolitatakse inkrementaalselt vĂ”i kasutades Knowledge Distillation'i.

Üldiselt toob sellise pesustatud masinĂ”ppesĂŒsteemi tugi sageli kaasa valusaid hetki, kuna iga alamkomponent toob endaga kaasa kogu ĂŒlemise sĂŒsteemi uuendamise. Kuid kuna meie seadistuses muutub iga komponent vaid vĂ€he ja on eelneva versiooniga ĂŒhilduv, saab kogu sĂŒsteemi uuendada osade kaupa ilma vajaduseta kogu struktuuri uuesti koolitada, mis vĂ”imaldab seda toetada ilma tĂ”siste ĂŒlekoormusteta.

KĂ€ivitamine

Oleme arutanud andmete kogumist ja erinevat tĂŒĂŒpi mudelite tĂ€iustamist, seega liigume edasi nende juurutamise juurde tootmiskeskkonda.

A/B-testimine

Nagu ma varem ĂŒtlesin, andmete kogumise protsessis saame me tavaliselt moonutatud valimi, mille pĂ”hjal ei ole vĂ”imalik mudeli tootmisvĂ”imet hinnata. SeetĂ”ttu tuleb mudeli juurutamisel vĂ”rrelda seda eelneva versiooniga, et mĂ”ista, kuidas asjad tegelikult on, st lĂ€bi viia A/B-testid. Tegelikult on mudeli vĂ€ljalaskmisprotsess ja graafikute analĂŒĂŒs ĂŒsna rutinne ning hĂ€sti automatiseeritav. Me vabastame oma mudelid jĂ€rk-jĂ€rgult 5%, 30%, 50% ja 100% kasutajatest, samal ajal kogudes kĂ”iki saadaval olevaid mÔÔdikuid mudeli vastuste ja kasutajate tagasiside kohta. Kui esineb tĂ”siseid kĂ”rvalekaldeid, tagastame mudeli automaatselt, kuid muude juhtumite korral, kui oleme kogunud piisavalt kasutajate klikke, teeme otsuse protsendi suurendamise kohta. LĂ”ppkokkuvĂ”ttes viime uue mudeli automaatselt 50% kasutajateni, ja kogu publiku vabastamise heakskiidab inimene, kuigi ka selle sammu saab automatiseerida.

KĂŒll aga pakub A/B-testimise protsess optimeerimise vĂ”imalusi. Asi on selles, et iga A/B-test on piisavalt pikk (meie puhul kestab see 6 kuni 24 tundi, sĂ”ltuvalt tagasiside arvust), mis teeb selle ĂŒsna kulukaks ja piiratud ressurssidega. Lisaks on vajalik testimiseks piisavalt suur liiklusprotsent, et sisuliselt kiirendada A/B-testi ĂŒldist aega (statistiliselt olulise valimi kogumine vĂ€hese protsendi kohta vĂ”ib vĂ”tta vĂ€ga kaua aega), mis vĂ€hendab A/B-slotide arvu ÀÀrmiselt piiratud. On ilmne, et peame testimiseks valima ainult kĂ”ige paljutĂ”otavamad mudelid, mida me tĂ€iendĂ”ppe protsessis saame vĂ€ga palju.

Selle probleemi lahendamiseks oleme koolitanud eraldi klassifitseerijat, mis ennustab A/B-testi tulemuslikkust. Selleks vÔtame tunnusteks otsuste vastuvÔtmise statistika, tÀpsuse (Precision), tagasikutsumise (Recall) ja muud mÔÔdikud koolituskomplektis, kÔrvale jÀetud andmetes ja voogudest vÔetavas valimis. Samuti vÔrreldame mudelit praeguse tootmismudeliga, heuristikaga, ja arvestame mudeli keerukust (Complexity). Kasutades kÔiki neid tunnuseid, hindab ajalooga testidel koolitatud klassifitseerija kandidaatmudeleid, milleks meie puhul on puude mets, ja teeb otsuse, millist neist A/B-testi lasta.

The utilization of machine learning in Mail.ru

Selle lÀhenemise rakendamise hetkel vÔimaldas see mitme korra vÔrra suurendada edukaid A/B teste.

Testimine & jÀlgimine

Testimine ja jĂ€lgimine, imelik kĂŒll, ei kahjusta meie tervist, vaid vastupidi, parandavad ja vabastavad liigsetest stressidest. Testimine vĂ”imaldab ennetada tĂ”rkeid, jĂ€lgimine aga tuvastada need Ă”igel ajal, et vĂ€hendada mĂ”ju kasutajatele.

Siin on oluline mĂ”ista, et varem vĂ”i hiljem teeb teie sĂŒsteem alati vigu — see on seotud igasuguse tarkvara arendamise tsĂŒkliga. Arenduse alguses on sĂŒsteemis alati palju vigu, alles siis, kui kĂ”ik on stabiilne ja peamine uuenduste etapp on lĂ”ppenud, saab kĂ”ik korda. Kuid aja jooksul vĂ”tab entropia oma, ja vead ilmuvad taas — komponentide degradatsiooni ja andmete muutumise tĂ”ttu, millest ma alguses rÀÀkisin.

Siin tahaksin mĂ€rkida, et iga masinĂ”ppesĂŒsteemi tuleb vaadata selle kasu seisukohast kogu elutsĂŒkli vĂ€ltel. Alloleval graafikul on toodud nĂ€ide sĂŒsteemi tööst, mis pĂŒĂŒab kinni haruldasi rĂ€mpskirju (graafikul joon on nulli lĂ€hedal). Üks kord, vale vahemĂ€lu tĂ”ttu, lĂ€ks ta hulluks. Kahjuks polnud anomaalia jĂ€lgimist, mille tulemusena hakkas sĂŒsteem salvestama kirju kausta "rĂ€mps" otsuste piiril suures koguses. Hoolimata tagajĂ€rgede parandamisest on sĂŒsteem juba nii palju kordi eksinud, et ei tasu end tagasi isegi viie aasta jooksul. See on tĂ€ielik ebaĂ”nnestumine mudeli elutsĂŒkli seisukohast.

The utilization of machine learning in Mail.ru

Seega vÔib selline lihtne asi nagu jÀlgimine olla mudeli elus vÔtmetÀhtsusega. Lisaks standardsetele ja ilmselgetele mÔÔdikutele arvestame me ka mudeli vastuste ja skooride jaotust ning vÔtmeomaduste vÀÀrtuste jaotust. KL-eralduse abil saame vÔrrelda praegust jaotust ajaloolise vÔi A/B-testimise teiste voogudega, mis vÔimaldab mÀrgata mudeleid anomaaliaid ja Ôigel ajal muudatusi tagasi pöörata.

Enamasti kĂ€ivitame oma sĂŒsteemide esimesed versioonid lihtsate heuristikute vĂ”i mudelite abil, mida kasutame tulevikus jĂ€lgimiseks. NĂ€iteks jĂ€lgime NER mudeli toimivust vĂ”rreldes regulaarsete vĂ€ljenditega teatud veebipoodides ning kui klassifikaatori katvus langeb nende vĂ”rdluses, analĂŒĂŒsime pĂ”hjuseid. Veel ĂŒks kasulik heuristikute rakendus!

Summary

KÀime jÀlle lÀbi artikli peamised mÔtted.

  • FibdĂ€k. MĂ”tleme alati kasutajale: kuidas ta elab meie vigadega, kuidas ta saab neist teatada. Ei tohi unustada, et kasutajad ei ole puhta tagasiside allikas mudelite koolitamiseks ning seda tuleb puhastada abistavate ML-sĂŒsteemide abil. Kui pole vĂ”imalik koguda signaali kasutajalt, siis otsime alternatiivseid tagasiside allikaid, nĂ€iteks seotud sĂŒsteemid.
  • JĂ€tkamine. Siin on peamine jĂ€rjepidevus, seega toetume praegusele tootmisnĂ€idisemale. Uute mudelite koolitamine toimub nii, et need ei erineks oluliselt eelmisest, kasutades harmoonilist regulatsiooni ja sarnaseid nippe.
  • KĂ€ivitamine. Automaatne juurutamine mÔÔdikute pĂ”hjal vĂ€hendab mudelite juurutamise aega oluliselt. Statistika ja otsuste vastuvĂ”tmise jaotuse jĂ€lgimine, samuti kasutajate valeotsuste arv on vajalik teie rahuliku une ja tootlike nĂ€dalavahetuste jaoks.

Loodan, et see, mida lugesite, aitab teil oma ML-sĂŒsteeme kiiremini tĂ€iustada, kiirendab nende turule toomist ja muudab need usaldusvÀÀrsemaks, vĂ€hendades töö stressi.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster