{"id":53143,"date":"2019-11-24T00:00:00","date_gmt":"2019-11-23T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/ekspluatatsiya-mashinnogo-obucheniya-v-pochte-mail-ru"},"modified":"2020-02-18T14:01:00","modified_gmt":"2020-02-18T11:01:00","slug":"ekspluatatsiya-mashinnogo-obucheniya-v-pochte-mail-ru","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/ekspluatatsiya-mashinnogo-obucheniya-v-pochte-mail-ru","title":{"rendered":"The utilization of machine learning in Mail.ru","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"The utilization of machine learning in Mail.ru\" src=\"\/wp-content\/uploads\/2019\/11\/ee5728dccb94b849ad3bfd9cf84ad74d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Minu esinemiste k\u00f5rvale Highload++ ja DataFest Minsk 2019.<\/i><\/p>\n<p>Paljude jaoks on postiteenus t\u00e4na lahutamatu osa veebielust. Selle abil viime l\u00e4bi \u00e4ritegevust, salvestame erinevat olulist teavet, mis on seotud rahanduse, hotellide broneerimise, tellimuste t\u00e4itmise ja paljuga muuga. 2018. aasta keskpaiku s\u00f5nastasime postiteenuse arendamise tootestriateegia. Milline peaks olema t\u00e4nap\u00e4evane postiteenus?<\/p>\n<p>Postiteenus peab olema <b>nutikas<\/b>, see t\u00e4hendab, et ta peab aitama kasutajatel orienteeruda kasvavas informatsiooni mahus: filtreerima, struktureerima ja esitama seda k\u00f5ige mugavamal viisil. Ta peab olema <b>kasulikuks<\/b>, v\u00f5imaldades otse postkastis lahendada erinevaid probleeme, nagu n\u00e4iteks trahvide maksmine (funktsioon, mida ma, oma kahjuks, kasutan). Ja sellega peab postiteenus samuti tagama informatsioonilise kaitse, blokeerides r\u00e4mpsposti ja kaitstes h\u00e4kkimise eest, see t\u00e4hendab olema <b>ohutust<\/b>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nNeed suunad m\u00e4\u00e4ravad mitmeid p\u00f5hi\u00fclesandeid, millest paljusid saab t\u00f5husalt lahendada masin\u00f5ppe abil. Siin on n\u00e4idised juba toimivatest funktsioonidest, mis on v\u00e4lja t\u00f6\u00f6tatud strateegia raames \u2013 iga suuna kohta \u00fcks.<\/p>\n<ul>\n<li><b>Nutika vastuse funktsioon<\/b>. Postiteenuses on nutika vastuse funktsioon. Neuralv\u00f5rk anal\u00fc\u00fcsib kirja sisu, m\u00f5istab selle t\u00e4hendust ja eesm\u00e4rki ning pakub seej\u00e4rel kolme k\u00f5ige sobivamat vastusevarianti: positiivne, negatiivne ja neutraalne. See aitab oluliselt s\u00e4\u00e4sta aega kirjadele vastamisel ning sageli vastata ebatavaliselt ja naljakalt.\n<\/li>\n<li><b>Kirjade gruppeerimine<\/b>, mis on seotud Interneti-poodide tellimustega. Me sageli ostame veebist, ja tavaliselt saadavad kauplused iga tellimuse kohta mitu kirja. N\u00e4iteks tuleb AliExpressilt, suurimalt teenuselt, palju kirju \u00fche tellimuse kohta, ja me oleme leidnud, et l\u00f5pliku juhul v\u00f5ivad need arvud ulatuda kuni 29-ni. Seet\u00f5ttu kasutame nimetuste tuvastamise mudelit, et selgitada v\u00e4lja tellimuse number ja muu teave tekstist ning gruppeerida k\u00f5ik kirjad \u00fchte teema. N\u00e4itame ka tellimuse p\u00f5hiteavet eraldi ribas, mis lihtsustab selle t\u00fc\u00fcpi kirjadega tegelemist.\n<p><img decoding=\"async\" alt=\"The utilization of machine learning in Mail.ru\" src=\"\/wp-content\/uploads\/2019\/11\/8b37b0bf0c0d152498027bc25d476128.jpg\" style=\"display:block;margin: 0 auto;\" \/>\n<\/li>\n<li><b>Anti-phishing<\/b>. Phishing on ohtlik petuskeem, mille abil p\u00fc\u00fcavad kurjategijad saada k\u00e4tte finantsandmeid (sealhulgas kasutajate pangakaarditeavet) ja sisselogimisi. Sellised kirjad j\u00e4ljendavad t\u00f5elisi, mida saadab teenus, sealhulgas visuaalselt. Seet\u00f5ttu tunnustame Computer Vision abil suurte ettev\u00f5tete (n\u00e4iteks Mail.ru, Sber, Alfa) logo ja kirjade kujundust ning arvestame seda koos teksti ja muude tunnustega meie r\u00e4mpsposti ja phishingu klassifikaatorites.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>Masin\u00f5pe<\/h2>\n<p>\nVeidi masin\u00f5ppest e-kirjade kontekstis. E-post on k\u00f5rgelt koormatud s\u00fcsteem: meie serverite kaudu l\u00e4bib keskmiselt 1,5 miljardit kirja p\u00e4evas 30 miljoni aktiivse kasutaja kohta. K\u00f5iki vajalikke funktsioone ja omadusi haldab umbes 30 masin\u00f5ppe s\u00fcsteemi. <\/p>\n<p>Iga kiri l\u00e4bib kogu klassifitseerimise protsessi. Esiteks filtreerime r\u00e4mpsposti ja j\u00e4tame head kirjad alles. Kasutajad ei m\u00e4rka sageli r\u00e4mpsposti t\u00f5rje t\u00f6\u00f6d, sest 95\u201399% r\u00e4mpspostist ei j\u00f5ua isegi vastavasse kausta. R\u00e4mpsposti tuvastamine on meie s\u00fcsteemi v\u00e4ga oluline ja samas keeruline osa, kuna r\u00e4mpsposti t\u00f5rje valdkonnas toimub pidev kohandumine kaitse- ja r\u00fcnnakeskuste vahel, mis esitab meie meeskonnale pideva insenerliku v\u00e4ljakutse.<\/p>\n<p>Seej\u00e4rel eristame inimeste ja robotite kirju. Inimeste kirjad on k\u00f5ige olulisemad, seega pakume nende jaoks funktsioone nagu Smart Reply. Robotite kirjad jagunevad kaheks: tehingulised - need on t\u00e4htsad kirjad teenustest, n\u00e4iteks ostude v\u00f5i hotellide broneeringute kinnitused, finantsandmed, ja teavitavad - need on \u00e4ritooted, allahindlused. <\/p>\n<p>Peame, et tehingulised kirjad on sama olulised kui isiklikud vestlused. Need peavad olema k\u00e4ep\u00e4rast, kuna sageli on vaja kiiresti leida teavet tellimuse v\u00f5i lennupileti broneeringu kohta, ja me kulutame aega nende kirjade otsimisele. Seet\u00f5ttu jagame me mugavuse huvides need automaatselt kuue p\u00f5hikategooriasse: reisid, tellimused, finantsid, piletid, registreerimised ja l\u00f5puks karistused.<\/p>\n<p>Teabesid on k\u00f5ige enam levinud ja t\u00f5en\u00e4oliselt v\u00e4hem oluline r\u00fchm, mis ei n\u00f5ua 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\u00e4ttes n\u00e4htavale vaid olulised kirjad.<\/p>\n<p><img decoding=\"async\" alt=\"The utilization of machine learning in Mail.ru\" src=\"\/wp-content\/uploads\/2019\/11\/175773879daaa29d1542a98070cb7972.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>K\u00e4itus<\/h3>\n<p>\nSuur arv s\u00fcsteeme tekitab palju raskusi kasutamises. Aja jooksul degradeeruvad mudelid, nagu iga tarkvara: murravad funktsioonid, masinad eba\u00f5nnestuvad, tuleb ette t\u00f5rkeid koodis. Lisaks muutuvad pidevalt andmed: lisatakse uusi, muudetakse kasutajate k\u00e4itumismustreid jne, seet\u00f5ttu hakkab mudel ilma vajaliku hoolduseta aja jooksul \u00fcha halvemini toimima. <\/p>\n<p>Ei saa unustada ka seda, et mida s\u00fcgavamale masin\u00f5pe siseneb kasutajate ellu, seda suuremat m\u00f5ju see avaldab \u00f6kos\u00fcsteemile ning sellest tulenevalt, seda suuremaid rahalisi kaotus v\u00f5i kasumit saavad turu m\u00e4ngijad. Seet\u00f5ttu adaptiirivad \u00fcha enamates valdkondades m\u00e4ngijad ML-algoritmide kasutamisele (klassikalised n\u00e4ited - reklaam, otsing ja juba mainitud r\u00e4mpsposti t\u00f5rje).<\/p>\n<p>Kuna masin\u00f5ppe \u00fclesannetel on ka erip\u00e4ra: iga, olgu see siis v\u00e4ike, muudatus s\u00fcsteemis v\u00f5ib tekitada palju t\u00f6\u00f6d mudeliga: andmetega t\u00f6\u00f6tamine, uuesti koolitamine, juurutamine, mis v\u00f5ib v\u00f5tta n\u00e4dalaid v\u00f5i isegi kuid. Seet\u00f5ttu, mida kiiremini keskkond, kus teie mudelid tegutsevad, muutub, seda rohkem ressursse n\u00f5uab nende hooldus. Tiim v\u00f5ib luua palju s\u00fcsteeme ja nende \u00fcle r\u00f5\u00f5mustada, kuid seej\u00e4rel kulutada peaaegu k\u00f5ik ressursid nende hooldamiseks, ilma et oleks v\u00f5imalust midagi uut teha. Me olime kunagi sellise olukorraga silmitsi, kui t\u00f6\u00f6tasime r\u00e4mpsposti t\u00f5rje tiimis. Ja j\u00f5udsime ilmselgele j\u00e4reldusele, et hooldust tuleb automatiseerida.<\/p>\n<h3>Automatiseerimine<\/h3>\n<p>\nMida saab automatiseerida? Tegelikult peaaegu k\u00f5ike. Olen v\u00e4lja toonud neli suunda, mis m\u00e4\u00e4ravad masin\u00f5ppe infrastruktuuri:<\/p>\n<ul>\n<li>andmete kogumine;\n<\/li>\n<li>t\u00e4iendav koolitus;\n<\/li>\n<li>juurutamine;\n<\/li>\n<li>testimine ja j\u00e4lgimine.\n<\/li>\n<\/ul>\n<p>\nKui keskkond on ebastabiilne ja pidevalt muutuv, on kogu infrastruktuur mudeli \u00fcmber olulisem kui mudel ise. See v\u00f5ib olla vana hea lineaarne klassifikaator, aga kui sellele \u00f5igesti tunnuseid esitletakse ja tagasiside kasutajatelt on h\u00e4sti organiseeritud, toimib see palju paremini kui k\u00f5ikv\u00f5imalike vingetega State-Of-The-Art mudelid.<\/p>\n<h4>Tagasiside ring<\/h4>\n<p>\nSee ring h\u00f5lmab andmete kogumist, t\u00e4iend\u00f5pet ja juurutamist \u2014 p\u00f5him\u00f5tteliselt kogu mudeli uuendamise ts\u00fckkel. Miks see oluline on? Vaadake postal \u0111\u0103ngi graafikut:<\/p>\n<p><img decoding=\"async\" alt=\"The utilization of machine learning in Mail.ru\" src=\"\/wp-content\/uploads\/2019\/11\/f3c98bd49a101754cf299821a40e2b8e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMasin\u00f5ppe arendaja rakendas antiboti mudelit, mis takistab botide registreerumist postis. Graafik langeb v\u00e4\u00e4rtusele, kus j\u00e4\u00e4vad alles ainult p\u00e4ris kasutajad. K\u00f5ik on suurep\u00e4rane! Kuid neli tundi hiljem kohendavad botimeistrid oma skripte, ja k\u00f5ik naaseb algsesse seisundisse. Selles rakenduses kulutas arendaja kuu aega, lisades tunnuseid ja t\u00e4iendades mudelit, kuid sp\u00e4mmija suudab nelja tunni jooksul kohaneda.<\/p>\n<p>Kuna v\u00f5ib olla nii valus ja hiljem k\u00f5ik uuesti teha, tuleks alguses m\u00f5elda, milline tagasiside ring v\u00e4lja n\u00e4eb ja mida me teeme, kui keskkond muutub. Alustame andmete kogumisest \u2014 see on k\u00fctus meie algoritmidele.<\/p>\n<h2>Andmete kogumine<\/h2>\n<p>\nSelge on, et t\u00e4nap\u00e4evaste n\u00e4rviv\u00f5rkude puhul on andmete hulk alati parem, ja neid genereerivad sisuliselt toote kasutajad. Kasutajad v\u00f5ivad meid aidata andmete m\u00e4rgistamisel, aga seda ei saa kuritarvitada, sest kasutajatele v\u00f5ib mingil hetkel t\u00fckkida teie mudelite t\u00e4iustamine ja nad v\u00f5ivad minna teise toote juurde. <\/p>\n<p>\u00dcks k\u00f5ige sagedasemaid vigu (siin viitan Andrew Ng-le) \u2014 liigne keskendumine m\u00f5\u00f5dikutele testandmestikus, mitte kasutajate tagasisidele, mis on tegelikult peamine kvaliteedi m\u00f5\u00f5dik, kuna loome toodet kasutajale. Kui kasutajale ei ole mudeli t\u00f6\u00f6 arusaadav v\u00f5i ei meeldi, siis on k\u00f5ik asjatu. <\/p>\n<p>Seet\u00f5ttu peab kasutajal alati olema v\u00f5imalus h\u00e4\u00e4letada, peaksime talle andma tagasiside t\u00f6\u00f6riista. Kui arvame, et kasti on saabunud kiri, mis kuulub finantseerimise alla, tuleks see markeerida 'finantseerimine', ja joonistada nupp, mida kasutaja v\u00f5ib vajutada ja \u00f6elda, et see ei ole finantseerimine.<\/p>\n<h3>Tagasiside kvaliteet<\/h3>\n<p>\nR\u00e4\u00e4gime kasutajate tagasiside kvaliteedist. Esiteks, teil ja kasutajal v\u00f5ib olla erinev arusaam samast m\u00f5isted. N\u00e4iteks, teie ja tootearendajatega peetakse \"rahandust\" pangakirjadeks, samas kui kasutaja arvab, et ka vanaema kiri pensionist kuulub rahanduse alla. Teiseks, on kasutajaid, kes m\u00f5tlematult vajutavad nuppudele ilma igasuguse loogikata. Kolmandaks, kasutaja v\u00f5ib oma j\u00e4reldustes tugevalt eksida. \u00dcks selge n\u00e4ide meie praktikast on klassifikaatori juurutamine <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9D%D0%B8%D0%B3%D0%B5%D1%80%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B5_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%B0\">Nigeeria sp\u00e4mm<\/a><\/noindex>, \u00fcsna naljakas sp\u00e4mmiliik, kus kasutajale pakutakse v\u00f5imalust saada mitmeid miljoneid dollareid \u00e4kitselt leitud kauges sugulasest Aafrikas. P\u00e4rast selle klassifikaatori juurutamist kontrollisime nuppu \"Ei ole sp\u00e4mm\" nende kirjade puhul ja selgus, et 80% neist on mahlane Nigeeria sp\u00e4mm, mis n\u00e4itab, et kasutajad v\u00f5ivad olla \u00e4\u00e4rmiselt usaldavad.<\/p>\n<p>Ja \u00e4ra unustagem, et nuppe v\u00f5ivad vajutada mitte ainult inimesed, vaid ka igasugused robotid, mis teesklevad olevat brauserid. Nii et too tagasiside ei sobi \u00f5petamiseks. Mida saaks sellega teavet teha?<\/p>\n<p>Kasutame kahte l\u00e4henemist: <\/p>\n<ul>\n<li><b>Kasutajate tagasiside seoses ML<\/b>. N\u00e4iteks meil on online-antiboti s\u00fcsteem, mis, nagu ma juba mainisin, teeb kiire otsuse piiratud hulga tunnuste p\u00f5hjal. Ja on teiseks, aeglane s\u00fcsteem, mis t\u00f6\u00f6tab tagantj\u00e4rele. Sellel on rohkem andmeid kasutaja, tema k\u00e4itumise jne kohta. Selle tulemusena tehakse tasakaalustatud otsus, mist\u00f5ttu on selle t\u00e4psus ja t\u00e4ielikkus k\u00f5rgemad. Erinevuse t\u00f6\u00f6 nendel s\u00fcsteemidel saab suunata esimesse kui \u00f5ppeandmed. Nii et lihtsam s\u00fcsteem p\u00fc\u00fcab alati l\u00e4heneda keerukama j\u00f5udlusele.\n<\/li>\n<li><b>Klikkide klassifitseerimine<\/b>Iga kasutaja kliki saab lihtsalt klassifitseerida, hinnata selle kehtivust ja kasutusv\u00f5imet. Me teeme seda e-posti sp\u00e4mmivastaselt, kasutades kasutaja tunnuseid, tema ajalugu, saatja omadusi, teksti ning klassifikaatorite t\u00f6\u00f6 tulemust. Tulemusena saame automaatse s\u00fcsteemi, mis valideerib kasutaja tagasisidet. Kuna seda tuleb oluliselt harvem uuesti \u00f5petada, v\u00f5ib selle t\u00f6\u00f6 saada aluseks k\u00f5igile teistele s\u00fcsteemidele. Selles mudelis on peamine prioriteet t\u00e4psus, kuna mudeli \u00f5petamine ebat\u00e4psete andmete p\u00f5hjal v\u00f5ib kaasa tuua tagaj\u00e4rgi. \n<\/li>\n<\/ul>\n<p>\nKuni me puhastame andmeid ja \u00f5petame meie masin\u00f5ppimise s\u00fcsteeme, ei tohi unustada kasutajaid. Sajad ja miljonid vead graafikus on statistika, kuid iga veakogemus kasutaja jaoks on trag\u00f6\u00f6dia. Lisaks sellele, et kasutaja peab elama teie tootearenduse vea t\u00f5ttu, ootab ta tagasisidestamise j\u00e4rel, et sellised olukorrad ei korduks. Seega tasub alati anda kasutajatele v\u00f5imalus mitte ainult h\u00e4\u00e4letada, vaid ka m\u00f5jutada masin\u00f5ppimise s\u00fcsteemide k\u00e4itumist, luues n\u00e4iteks iga tagasiside kliki jaoks isiklikke heuristilisi meetodeid; n\u00e4iteks v\u00f5ib see e-posti puhul t\u00e4hendada v\u00f5imalust filtreerida sarnaseid kirju saatja ja pealkirja alusel.<\/p>\n<p>Samuti on vajalik, et mingite aruannete v\u00f5i tugip\u00f6\u00f6rdumiste p\u00f5hjal pooleautomaatsetes v\u00f5i k\u00e4sitsi moodustatud s\u00fcsteemides kohandatakse mudelit, et teised kasutajad ei kannataks sarnaste probleemide all.<\/p>\n<h3>Heuristikad \u00f5ppimiseks<\/h3>\n<p>\nNende andmete heuristikate ja kohandustega on kaks probleemi. Esiteks on pidevalt kasvava arvu kohanduste hooldamine keeruline, r\u00e4\u00e4kimata nende kvaliteedist ja pikaajalise t\u00f6\u00f6kindluse tagamisest. Teiseks, viga ei pruugi olla sagedane ning mitmed klikkimised mudeli \u00fcmber\u00f5petamiseks v\u00f5ivad olla ebapiisavad. Tundub, et neid kahte mitteseotud efekti on v\u00f5imalik tunduvalt v\u00e4hendada, kui rakendada j\u00e4rgmist l\u00e4henemist.<\/p>\n<ol>\n<li>Loome ajutise kohanduse. \n<\/li>\n<li>Suuname andmed sellest mudelisse, mis \u00f5pib regulaarselt ka saadud andmete p\u00f5hjal. Siin on muidugi oluline, et heuristika oleks k\u00f5rge t\u00e4psusega, et mitte v\u00e4hendada treeningandmete kvaliteeti. \n<\/li>\n<li>Seej\u00e4rel paneme j\u00e4lgimise takisti aktiveerimisele ja kui mingi aja p\u00e4rast takisti enam ei aktiveeru ja katab t\u00e4ielikult mudeli, siis v\u00f5ib selle julgelt eemaldada. N\u00fc\u00fcd on see probleem ebat\u00f5en\u00e4oline, et kordub.\n<\/li>\n<\/ol>\n<p>\nSeega on takistite armee v\u00e4ga kasulik. Peamine on, et nende teenus oleks ajutine, mitte p\u00fcsiv. <\/p>\n<h2>J\u00e4tkamine<\/h2>\n<p>\nJ\u00e4tkamine on uusandmete lisamise protsess, mis saadakse kasutajatelt v\u00f5i teistelt s\u00fcsteemidelt tagasiside kaudu, ning olemasoleva mudeli nende p\u00f5hjal koolitamine. J\u00e4tkamisega v\u00f5ib kaasneda mitmeid probleeme:<\/p>\n<ol>\n<li>Mudel ei pruugi lihtsalt toetada j\u00e4tkamist ning peab \u00f5ppima ainult nullist. \n<\/li>\n<li>Looduse raamatus ei ole kirjas, et j\u00e4tkamine paratamatult parandab toimetulekut tootmises. Tihti juhtub vastupidi, see t\u00e4hendab, et olukord v\u00f5ib ainult halveneda.\n<\/li>\n<li>Muutused v\u00f5ivad olla ettearvamatud. See on piisavalt \u00f5rn teema, mille oleme endale avastanud. Isegi kui uus mudel A\/B-testimisel n\u00e4itab sarnaseid tulemusi kui praegune, ei t\u00e4henda see sugugi, et see t\u00f6\u00f6tab identselt. Nende t\u00f6\u00f6 v\u00f5ib erineda isegi m\u00f5nes protsendis, mis v\u00f5ib tuua uusi vigu v\u00f5i taastada juba parandatud vanad. Praeguste vigadega oskame me ja kasutajad juba elada ning kui uusi vigu tuleb hulgi, v\u00f5ib ka kasutaja mitte m\u00f5ista, mis toimub, kuna ta ootab ettearvatavat k\u00e4itumist.\n<\/li>\n<\/ol>\n<p>\nSeega on j\u00e4tkamise juures k\u00f5ige olulisem garanteerida mudeli parandamine v\u00f5i v\u00e4hemalt mitte halvendamine. <\/p>\n<p>Esimene asi, mis p\u00e4he tuleb, kui r\u00e4\u00e4gime j\u00e4tkamisest, on aktiiv\u00f5ppe l\u00e4henemine. Mida see t\u00e4hendab? N\u00e4iteks klassifikaator m\u00e4\u00e4rab, kas kiri kuulub rahandusse, ja tema otsustuspiiri \u00fcmber lisame valimi m\u00e4rgistatud n\u00e4idetest. See toimib h\u00e4sti, n\u00e4iteks reklaamides, kus tagasisidet tuleb palju ja mudelit saab koolitada reaalajas. Kuid kui tagasisidet on v\u00e4he, saame tugevalt moonutatud valimi, mis ei vasta tootmisandmete jaotusele, mille p\u00f5hjal on v\u00f5imatu hinnata mudeli k\u00e4itumist kasutamise ajal.<\/p>\n<p><img decoding=\"async\" alt=\"The utilization of machine learning in Mail.ru\" src=\"\/wp-content\/uploads\/2019\/11\/fd1b3e07bfaf896dde3248e43537f61a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMeie eesm\u00e4rk on s\u00e4ilitada vanad mustrid, tuttavad mudelid, ja omandada uusi. J\u00e4tkusuutlikkus on siin oluline. Mudel, mida me sageli suure vaevaga arendasime, t\u00f6\u00f6tab juba h\u00e4sti, seet\u00f5ttu saame toetuda selle j\u00f5udlusele. <\/p>\n<p>Postitustes kasutatakse erinevaid mudeleid: puud, lineaarsed, n\u00e4rviv\u00f5rgud. Iga\u00fche jaoks loome oma t\u00e4iendamisalgoritmi. T\u00e4iendamisprotsessis tekivad meil uued andmed, kuid sageli ka uued tunnused, mida arvestame allpool k\u00f5igis algoritmides.<\/p>\n<h3>Lineaarmudelid<\/h3>\n<p>\nOletame, et meil on logistiline regressioon. Koostame mudeli kaotuse j\u00e4rgmiste komponentide p\u00f5hjal:<\/p>\n<ul>\n<li>LogLoss uute andmete p\u00f5hjal;\n<\/li>\n<li>reguleerime uute tunnuste kaalusid (vanaid ei puutu);\n<\/li>\n<li>\u00f5pime ka vanade andmete p\u00f5hjal, et s\u00e4ilitada vanu mustreid;\n<\/li>\n<li>ja mis veelgi olulisem: rakendame Harmoonilise Regulaarimise, mis tagab, et kaalude muutus v\u00f5rreldes vana mudeliga on minimaalne.\n<\/li>\n<\/ul>\n<p>\nKuna iga kaotuse komponendi puhul on koefitsiendid, saame valida meie \u00fclesande jaoks optimaalsed v\u00e4\u00e4rtused ristvalideerimise v\u00f5i toote n\u00f5uete alusel.<\/p>\n<p><img decoding=\"async\" alt=\"The utilization of machine learning in Mail.ru\" src=\"\/wp-content\/uploads\/2019\/11\/00ae86d23afb780f5e260e61f833d4bd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Puud<\/h3>\n<p>\nLiigume edasi otsustuspuude juurde. Oleme v\u00e4lja t\u00f6\u00f6tanud j\u00e4rgmise puude t\u00e4iendamisalgoritmi:<\/p>\n<ol>\n<li>T\u00f6\u00f6s on 100\u2013300 puu mets, mis on koolitatud vanal andmestikul.\n<\/li>\n<li>Eemaldame l\u00f5puks M = 5 t\u00fckki ja lisame 2M = 10 uut, mis on koolitatud kogu andmestiku p\u00f5hjal, kuid uute andmete k\u00f5rge kaalu t\u00f5ttu, mis loomulikult tagab mudeli j\u00e4rkj\u00e4rgulise muutumise.\n<\/li>\n<\/ol>\n<p>\nOn ilmne, et aja jooksul kasvab puude arv m\u00e4rkimisv\u00e4\u00e4rselt ja neid tuleb perioodiliselt v\u00e4hendada, et mahtuda ajaraamidesse. Selleks kasutame igap\u00e4evarutiini n\u00fc\u00fcd juba laialdaselt kasutatavat Teadmiste Destilleerimist (KD). L\u00fchidalt selle t\u00f6\u00f6p\u00f5him\u00f5ttest.<\/p>\n<ol>\n<li>Meil on praegune \u201ekeeruline\u201c mudel. K\u00e4ivitame selle treeningandmestikul ja saame klasside t\u00f5en\u00e4osuste jaotuse v\u00e4ljundiks.\n<\/li>\n<li>Seej\u00e4rel koolitame \u00f5pilasmudelit (antud juhul madalama puude arvuga mudel) kordama mudeli t\u00f6\u00f6 tulemusi, kasutades klasside jaotust sihimuutujana.\n<\/li>\n<li>Siin on oluline m\u00e4rkida, et me ei kasuta andmekogude struktuuri ja seet\u00f5ttu v\u00f5ime kasutada suvalisi andmeid. Loomulikult kasutame aktiivse vooluga seotud andmete proovide komplekti, et koolitada \u00f5pikmodelli. Seega v\u00f5imaldab treeningkomplekt tagada mudeli t\u00e4psuse, samas kui vooluprognoos tagab sarnase j\u00f5udluse tootmisjaotuses, tasandades treeningkomplekti kallutatusi.\n<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"The utilization of machine learning in Mail.ru\" src=\"\/wp-content\/uploads\/2019\/11\/3fdfcb9b1e5a6fa824226a429afc475a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNende kahe meetodi (puude lisamine ja nende arvu perioodiline v\u00e4hendamine teadlikkuse destilleerimise kaudu) kombinatsioon tagab uute mustrite sissetoomise ja t\u00e4ieliku j\u00e4rjepidevuse.<\/p>\n<p>KD abil saame ka teostada erinevusi mudeli tunnuste operatsioonides, n\u00e4iteks tunnuste eemaldamist ja puuduolevate andmete t\u00f6\u00f6tlemist. Meil on rida olulisi statistilisi tunnuseid (saatjate, tekstih\u00e4kkide, URL-ide jms kohta), mis on salvestatud andmebaasi, millel on eba\u00f5nnestumise omadus. T\u00f5sise j\u00e4rgnevuse saavutamiseks ei ole mudel selliste olukordadega harjunud, kuna treeningkomplektis ei esine eba\u00f5nnestumise olukordi. Sarnastes olukordades kombineerime KD ja andmete suurendamise tehnikaid: andmete treenimise k\u00e4igus eemaldame teatud tunnuseid v\u00f5i nullime need ning mudeli l\u00e4htem\u00e4rgid (moodulite v\u00e4ljundid) j\u00e4\u00e4vad algseteks, \u00f5ppija mudel \u00f5pib neid jaotusi kordama.<\/p>\n<p><img decoding=\"async\" alt=\"The utilization of machine learning in Mail.ru\" src=\"\/wp-content\/uploads\/2019\/11\/5e1f5af9a359646a49f4fe88ffed1025.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMe oleme m\u00e4rganud, et mida t\u00f5sisemaid manipuleerimisi mudelitega tehakse, seda rohkem on vaja vooluprognoosi protsendi j\u00e4rgi.<\/p>\n<p>Tunnuste eemaldamiseks, k\u00f5ige lihtsamale operatsioonile, on vajalik vaid v\u00e4ike osa voolust, kuna muutub vaid m\u00f5ned tunnused ja k\u00e4esolev mudel on \u00f5ppinud samal komplekis \u2013 erinevus on minimaalne. Mudeli lihtsustamiseks (puude arvu v\u00e4hendamiseks mitu korda) on siiski vajalik 50:50. Oluliste statistiliste tunnuste, mis t\u00f5siselt m\u00f5jutavad mudeli j\u00f5udlust, puuduolekute korral on vajalik veelgi rohkem voolude, et tasakaalustada uue puuduste suhtes vastupidava mudeli toimimist k\u00f5ikide kirjade t\u00fc\u00fcpide peal. <\/p>\n<p><img decoding=\"async\" alt=\"The utilization of machine learning in Mail.ru\" src=\"\/wp-content\/uploads\/2019\/11\/8f3729cfff43be9ecdc47d532daa8d6f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>FastText<\/h3>\n<p>\nLiigume edasi FastText'i juurde. Meeles pidada, et s\u00f5na esitus (Embedding) koosneb s\u00f5na enda embedding'ist ja k\u00f5igist selle t\u00e4heline N-gram'ist, tavaliselt kolmigrammidest. Kuna kolmigrameid v\u00f5ib olla \u00fcsna palju, kasutatakse Bucket Hashing'ut, st kogu ruumi teisendamist kindlaks hachimepiks. Tulemuseks on kaalu maatriks, mille suurus on sisemise kihi ja s\u00f5nade + bucketite arv. <\/p>\n<p>T\u00e4iend\u00f5ppes ilmnevad uued tunnused: s\u00f5nad ja kolmigrammid. Facebooki standardse t\u00e4iend\u00f5ppe k\u00e4igus ei toimu midagi olulist. T\u00e4iendatakse ainult vanu kaalu, kasutades rist-entropiat uute andmete peal. Seega uusi tunnuseid ei kasutata, loomulikult on see l\u00e4henemine k\u00f5igi \u00fclaltoodud puudustega, mis on seotud mudeli ettearvamatuses tootmises. Seet\u00f5ttu oleme teinud FastText'ile m\u00f5ned t\u00e4iendused. Lisame k\u00f5ik uued kaalu (s\u00f5nad ja kolmigrammid), t\u00e4iustame kogu maatriksit rist-entropiaga ja lisame harmoonilise regulatsiooni sarnane lineaarse mudeliga, mis tagab vanade kaalu v\u00e4henematu muutumise.<\/p>\n<p><img decoding=\"async\" alt=\"The utilization of machine learning in Mail.ru\" src=\"\/wp-content\/uploads\/2019\/11\/4491639587d1c91ac91d77b587ee0111.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>CNN<\/h3>\n<p>\nKonvolutsiooniliste v\u00f5rkudega on veidi keerulisem. Kui CNN'i viimaseid kihte t\u00e4iustatakse, saab loomulikult kasutada harmoonilist regulatsiooni ja tagada j\u00e4rjepidevuse. Kuid juhul, kui on vajalik kogu v\u00f5rgu t\u00e4iustamine, siis sellist regulatsiooni ei saa rakendada k\u00f5igile kihtidele. Siiski on olemas v\u00f5imalus koolitada komplementaarseid embedding'e Triplet Loss'i kaudu (<noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/abs\/1503.03832\">originaalne artikkel<\/a><\/noindex>).<\/p>\n<h4>Triplet Loss<\/h4>\n<p>\nVaatame Triplet Loss'i kaudu antifishingu \u00fclesande n\u00e4itel. V\u00f5tame meie logo ning positiivseid ja negatiivseid n\u00e4iteid teiste ettev\u00f5tete logodest. Minimeerime vahemaa esimeste vahel ja maksimeerime teise vahel, tehes seda v\u00e4ikese varuga, et tagada klasside suurem kompaktsus. <\/p>\n<p><img decoding=\"async\" alt=\"The utilization of machine learning in Mail.ru\" src=\"\/wp-content\/uploads\/2019\/11\/dc8547fa042286798eb5c2f0887c4da6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKui me t\u00e4iustame v\u00f5rku, siis meie m\u00f5\u00f5tmisruum muutub t\u00e4ielikult ja see muutub eelneva suhtes t\u00e4iesti \u00fchildumatuks. See on t\u00f5sine probleem \u00fclesannetes, mis kasutavad vektoreid. Selle probleemi v\u00e4ltimiseks hakkame koolitamise k\u00e4igus vanu embedding'e segama.<\/p>\n<p>Oleme lisanud uut teavet treeningkomplekti ja \u00f5petame mudeli teise versiooni nullist. Teises etapis t\u00e4iustame meie v\u00f5rku (Finetuning): esmalt \u00f5petatakse viimane kiht, seej\u00e4rel avatakse kogu v\u00f5rk. Tripletide koostamise protsessis arvutame vaid osa embeddings'eid \u00f5petatava mudeli abil, \u00fclej\u00e4\u00e4nud aga vana mudeli abil. Nii tagame t\u00e4iustamisprotsessi k\u00e4igus, et v1 ja v2 m\u00f5\u00f5tmisruumid oleksid \u00fchilduvad. See on omamoodi harmoonilise regulatsiooniga variant.<\/p>\n<p><img decoding=\"async\" alt=\"The utilization of machine learning in Mail.ru\" src=\"\/wp-content\/uploads\/2019\/11\/854d4fcc97775b24e6863cc38743cd27.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Arhitektuur tervikuna<\/h3>\n<p>\nKui vaadata kogu s\u00fcsteemi tervikuna n\u00e4iteks r\u00e4mpsposti kontekstis, siis mudelid ei ole isoleeritud, vaid \u00fcksteisesse integreeritud. V\u00f5tame pildid, teksti ja muud omadused, kasutame CNN-i ja Fast Text'i, et saada embeddings'eid. Edasi rakendatakse embeddings'ide peal klassifikaatoreid, mis v\u00e4ljastavad skoorid erinevate klasside jaoks (kirjade t\u00fc\u00fcbid, r\u00e4mpspost, logo olemasolu). Skoorid ja omadused satuvad puude metsadesse, kus tehakse l\u00f5plik otsus. Erinevad klassifikaatorid selles skeemis v\u00f5imaldavad paremini t\u00f5lgendada s\u00fcsteemi t\u00f6\u00f6 tulemusi ja sihip\u00e4rasemalt t\u00e4iustada komponente probleemide korral, mitte aga esitada k\u00f5iki andmeid toorelt otsustuspuusse.<\/p>\n<p><img decoding=\"async\" alt=\"The utilization of machine learning in Mail.ru\" src=\"\/wp-content\/uploads\/2019\/11\/30effc5ef7398db5f085b6dd415647d3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKokkuv\u00f5ttes tagame j\u00e4rjepidevuse igal tasandil. Alumisel tasemel kasutame CNN-is ja Fast Text-is harmoonilist regulatsiooni, keskmises klassifikaatorites samuti harmoonilist regulatsiooni ja skoori kalibreerimist t\u00f5en\u00e4osusjaotuse \u00fchilduvuse tagamiseks. Boosting puid aga koolitatakse inkrementaalselt v\u00f5i kasutades Knowledge Distillation'i.<\/p>\n<p>\u00dcldiselt toob sellise pesustatud masin\u00f5ppes\u00fcsteemi tugi sageli kaasa valusaid hetki, kuna iga alamkomponent toob endaga kaasa kogu \u00fclemise s\u00fcsteemi uuendamise. Kuid kuna meie seadistuses muutub iga komponent vaid v\u00e4he ja on eelneva versiooniga \u00fchilduv, saab kogu s\u00fcsteemi uuendada osade kaupa ilma vajaduseta kogu struktuuri uuesti koolitada, mis v\u00f5imaldab seda toetada ilma t\u00f5siste \u00fclekoormusteta. <\/p>\n<h2>K\u00e4ivitamine<\/h2>\n<p>\nOleme arutanud andmete kogumist ja erinevat t\u00fc\u00fcpi mudelite t\u00e4iustamist, seega liigume edasi nende juurutamise juurde tootmiskeskkonda.<\/p>\n<h3>A\/B-testimine<\/h3>\n<p>\nNagu ma varem \u00fctlesin, andmete kogumise protsessis saame me tavaliselt moonutatud valimi, mille p\u00f5hjal ei ole v\u00f5imalik mudeli tootmisv\u00f5imet hinnata. Seet\u00f5ttu tuleb mudeli juurutamisel v\u00f5rrelda seda eelneva versiooniga, et m\u00f5ista, kuidas asjad tegelikult on, st l\u00e4bi viia A\/B-testid. Tegelikult on mudeli v\u00e4ljalaskmisprotsess ja graafikute anal\u00fc\u00fcs \u00fcsna rutinne ning h\u00e4sti automatiseeritav. Me vabastame oma mudelid j\u00e4rk-j\u00e4rgult 5%, 30%, 50% ja 100% kasutajatest, samal ajal kogudes k\u00f5iki saadaval olevaid m\u00f5\u00f5dikuid mudeli vastuste ja kasutajate tagasiside kohta. Kui esineb t\u00f5siseid k\u00f5rvalekaldeid, tagastame mudeli automaatselt, kuid muude juhtumite korral, kui oleme kogunud piisavalt kasutajate klikke, teeme otsuse protsendi suurendamise kohta. L\u00f5ppkokkuv\u00f5ttes viime uue mudeli automaatselt 50% kasutajateni, ja kogu publiku vabastamise heakskiidab inimene, kuigi ka selle sammu saab automatiseerida.<\/p>\n<p>K\u00fcll aga pakub A\/B-testimise protsess optimeerimise v\u00f5imalusi. Asi on selles, et iga A\/B-test on piisavalt pikk (meie puhul kestab see 6 kuni 24 tundi, s\u00f5ltuvalt tagasiside arvust), mis teeb selle \u00fcsna kulukaks ja piiratud ressurssidega. Lisaks on vajalik testimiseks piisavalt suur liiklusprotsent, et sisuliselt kiirendada A\/B-testi \u00fcldist aega (statistiliselt olulise valimi kogumine v\u00e4hese protsendi kohta v\u00f5ib v\u00f5tta v\u00e4ga kaua aega), mis v\u00e4hendab A\/B-slotide arvu \u00e4\u00e4rmiselt piiratud. On ilmne, et peame testimiseks valima ainult k\u00f5ige paljut\u00f5otavamad mudelid, mida me t\u00e4iend\u00f5ppe protsessis saame v\u00e4ga palju.<\/p>\n<p>Selle probleemi lahendamiseks oleme koolitanud eraldi klassifitseerijat, mis ennustab A\/B-testi tulemuslikkust. Selleks v\u00f5tame tunnusteks otsuste vastuv\u00f5tmise statistika, t\u00e4psuse (Precision), tagasikutsumise (Recall) ja muud m\u00f5\u00f5dikud koolituskomplektis, k\u00f5rvale j\u00e4etud andmetes ja voogudest v\u00f5etavas valimis. Samuti v\u00f5rreldame mudelit praeguse tootmismudeliga, heuristikaga, ja arvestame mudeli keerukust (Complexity). Kasutades k\u00f5iki neid tunnuseid, hindab ajalooga testidel koolitatud klassifitseerija kandidaatmudeleid, milleks meie puhul on puude mets, ja teeb otsuse, millist neist A\/B-testi lasta. <\/p>\n<p><img decoding=\"async\" alt=\"The utilization of machine learning in Mail.ru\" src=\"\/wp-content\/uploads\/2019\/11\/41b121987209a663075be399e83f5a50.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSelle l\u00e4henemise rakendamise hetkel v\u00f5imaldas see mitme korra v\u00f5rra suurendada edukaid A\/B teste.<\/p>\n<h3>Testimine &amp; j\u00e4lgimine<\/h3>\n<p>\nTestimine ja j\u00e4lgimine, imelik k\u00fcll, ei kahjusta meie tervist, vaid vastupidi, parandavad ja vabastavad liigsetest stressidest. Testimine v\u00f5imaldab ennetada t\u00f5rkeid, j\u00e4lgimine aga tuvastada need \u00f5igel ajal, et v\u00e4hendada m\u00f5ju kasutajatele.<\/p>\n<p>Siin on oluline m\u00f5ista, et varem v\u00f5i hiljem teeb teie s\u00fcsteem alati vigu \u2014 see on seotud igasuguse tarkvara arendamise ts\u00fckliga. Arenduse alguses on s\u00fcsteemis alati palju vigu, alles siis, kui k\u00f5ik on stabiilne ja peamine uuenduste etapp on l\u00f5ppenud, saab k\u00f5ik korda. Kuid aja jooksul v\u00f5tab entropia oma, ja vead ilmuvad taas \u2014 komponentide degradatsiooni ja andmete muutumise t\u00f5ttu, millest ma alguses r\u00e4\u00e4kisin.<\/p>\n<p>Siin tahaksin m\u00e4rkida, et iga masin\u00f5ppes\u00fcsteemi tuleb vaadata selle kasu seisukohast kogu eluts\u00fckli v\u00e4ltel. Alloleval graafikul on toodud n\u00e4ide s\u00fcsteemi t\u00f6\u00f6st, mis p\u00fc\u00fcab kinni haruldasi r\u00e4mpskirju (graafikul joon on nulli l\u00e4hedal). \u00dcks kord, vale vahem\u00e4lu t\u00f5ttu, l\u00e4ks ta hulluks. Kahjuks polnud anomaalia j\u00e4lgimist, mille tulemusena hakkas s\u00fcsteem salvestama kirju kausta \"r\u00e4mps\" otsuste piiril suures koguses. Hoolimata tagaj\u00e4rgede parandamisest on s\u00fcsteem juba nii palju kordi eksinud, et ei tasu end tagasi isegi viie aasta jooksul. See on t\u00e4ielik eba\u00f5nnestumine mudeli eluts\u00fckli seisukohast. <\/p>\n<p><img decoding=\"async\" alt=\"The utilization of machine learning in Mail.ru\" src=\"\/wp-content\/uploads\/2019\/11\/65efd799537ceea3761cabc3a764ba90.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSeega v\u00f5ib selline lihtne asi nagu j\u00e4lgimine olla mudeli elus v\u00f5tmet\u00e4htsusega. Lisaks standardsetele ja ilmselgetele m\u00f5\u00f5dikutele arvestame me ka mudeli vastuste ja skooride jaotust ning v\u00f5tmeomaduste v\u00e4\u00e4rtuste jaotust. KL-eralduse abil saame v\u00f5rrelda praegust jaotust ajaloolise v\u00f5i A\/B-testimise teiste voogudega, mis v\u00f5imaldab m\u00e4rgata mudeleid anomaaliaid ja \u00f5igel ajal muudatusi tagasi p\u00f6\u00f6rata.<\/p>\n<p>Enamasti k\u00e4ivitame oma s\u00fcsteemide esimesed versioonid lihtsate heuristikute v\u00f5i mudelite abil, mida kasutame tulevikus j\u00e4lgimiseks. N\u00e4iteks j\u00e4lgime NER mudeli toimivust v\u00f5rreldes regulaarsete v\u00e4ljenditega teatud veebipoodides ning kui klassifikaatori katvus langeb nende v\u00f5rdluses, anal\u00fc\u00fcsime p\u00f5hjuseid. Veel \u00fcks kasulik heuristikute rakendus!<\/p>\n<h2>Summary<\/h2>\n<p>\nK\u00e4ime j\u00e4lle l\u00e4bi artikli peamised m\u00f5tted.<\/p>\n<ul>\n<li><b>Fibd\u00e4k<\/b>. M\u00f5tleme 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\u00fcsteemide abil. Kui pole v\u00f5imalik koguda signaali kasutajalt, siis otsime alternatiivseid tagasiside allikaid, n\u00e4iteks seotud s\u00fcsteemid. \n<\/li>\n<li><b>J\u00e4tkamine<\/b>. Siin on peamine j\u00e4rjepidevus, seega toetume praegusele tootmisn\u00e4idisemale. Uute mudelite koolitamine toimub nii, et need ei erineks oluliselt eelmisest, kasutades harmoonilist regulatsiooni ja sarnaseid nippe.<\/li>\n<li><b>K\u00e4ivitamine<\/b>. Automaatne juurutamine m\u00f5\u00f5dikute p\u00f5hjal v\u00e4hendab mudelite juurutamise aega oluliselt. Statistika ja otsuste vastuv\u00f5tmise jaotuse j\u00e4lgimine, samuti kasutajate valeotsuste arv on vajalik teie rahuliku une ja tootlike n\u00e4dalavahetuste jaoks.\n<\/li>\n<\/ul>\n<p>\nLoodan, et see, mida lugesite, aitab teil oma ML-s\u00fcsteeme kiiremini t\u00e4iustada, kiirendab nende turule toomist ja muudab need usaldusv\u00e4\u00e4rsemaks, v\u00e4hendades t\u00f6\u00f6 stressi.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/476714\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e \u043c\u043e\u0442\u0438\u0432\u0430\u043c \u043c\u043e\u0438\u0445 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0439 \u043d\u0430 Highload++ \u0438 DataFest Minsk 2019 \u0433. \u0414\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u043e\u0447\u0442\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0442\u044a\u0435\u043c\u043b\u0435\u043c\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u0436\u0438\u0437\u043d\u0438 \u0432 \u0441\u0435\u0442\u0438. \u0421 \u0435\u0435 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u044b \u0432\u0435\u0434\u0435\u043c \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0443, \u0445\u0440\u0430\u043d\u0438\u043c \u0432\u0441\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0443\u044e \u0432\u0430\u0436\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0443\u044e \u0441 \u0444\u0438\u043d\u0430\u043d\u0441\u0430\u043c\u0438, \u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u0442\u0435\u043b\u0435\u0439, \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u043a\u0430\u0437\u043e\u0432 \u0438 \u043c\u043d\u043e\u0433\u0438\u043c \u0434\u0440\u0443\u0433\u0438\u043c. \u0412 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 2018 \u0433\u043e\u0434\u0430 \u043c\u044b \u0441\u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u043f\u043e\u0447\u0442\u044b. \u041a\u0430\u043a\u043e\u0439 \u0436\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-53143","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e \u043c\u043e\u0442\u0438\u0432\u0430\u043c \u043c\u043e\u0438\u0445 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0439 \u043d\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/ekspluatatsiya-mashinnogo-obucheniya-v-pochte-mail-ru\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u042d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044f \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0432 \u041f\u043e\u0447\u0442\u0435 Mail.ru | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e \u043c\u043e\u0442\u0438\u0432\u0430\u043c \u043c\u043e\u0438\u0445 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0439 \u043d\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/ekspluatatsiya-mashinnogo-obucheniya-v-pochte-mail-ru\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-23T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:01:00+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Masin\u00f5ppe rakendamine Mail.ru-s | ProHoster","description":"Minu esitluste p\u00f5hjal.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/ekspluatatsiya-mashinnogo-obucheniya-v-pochte-mail-ru","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u042d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044f \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u0432 \u041f\u043e\u0447\u0442\u0435 Mail.ru | ProHoster","og:description":"\u041f\u043e \u043c\u043e\u0442\u0438\u0432\u0430\u043c \u043c\u043e\u0438\u0445 \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0439 \u043d\u0430.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/ekspluatatsiya-mashinnogo-obucheniya-v-pochte-mail-ru","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-11-23T21:00:00+00:00","article:modified_time":"2020-02-18T11:01:00+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53143","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 06:14:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:30:25","updated":"2026-01-24 06:14:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/53143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=53143"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/53143\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=53143"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=53143"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=53143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}