{"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":"Masin\u00f5ppe rakendamine Mail.ru-s","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Masin\u00f5ppe rakendamine Mail.ru-s\" src=\"\/wp-content\/uploads\/2019\/11\/ee5728dccb94b849ad3bfd9cf84ad74d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Minu ettekannete p\u00f5hjal Highload++ ja DataFest Minsk 2019.<\/i><\/p>\n<p>Paljude jaoks on t\u00e4na e-post eluliselt oluline osa veebielust. Selle abil peame \u00e4rikirjavahetust, hoiame erinevat olulist teavet seoses rahanduse, hotellide broneerimise, tellimuste vormistamise ja muu sellisega. 2018. aasta keskpaiku formuleerisime meiliteenuse arendamise tootestrateegia. Milline peaks olema kaasaegne e-post?<\/p>\n<p>E-post peab olema <b>nutikas<\/b>, ehk see peab aitama kasutajatel navigeerida kasvavas infohulgas: filtreerima, struktureerima ja esitama seda k\u00f5ige mugavamal viisil. Samuti peab see olema <b>kasulik<\/b>, v\u00f5imaldades lahendada erinevaid \u00fclesandeid otse postkastis, n\u00e4iteks trahvide maksmine (funktsioon, mida ma, kahjuks, kasutan). Samuti peab e-post tagama informatiivse kaitse, filtreerides sp\u00e4mm ja kaitstes h\u00e4kkimiste eest, ehk olema <b>turvalisest<\/b>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nNeed suunad m\u00e4\u00e4ravad hulga p\u00f5hieesm\u00e4rke, millest paljusid saab t\u00f5husalt lahendada masin\u00f5ppe abil. Siin on n\u00e4ited juba rakendatud funktsioonidest, mis on v\u00e4lja t\u00f6\u00f6tatud strateegia raames \u2013 iga suuna kohta \u00fcks.<\/p>\n<ul>\n<li><b>Nutikas vastus<\/b>. E-postis on nutika vastamise funktsioon. Neuraalv\u00f5rk anal\u00fc\u00fcsib kirja sisu, m\u00f5istab selle t\u00e4hendust ja eesm\u00e4rki ning pakub seej\u00e4rel v\u00e4lja kolm sobivaimat vastusevarianti: positiivne, negatiivne ja neutraalne. See aitab oluliselt s\u00e4\u00e4sta aega kirjadele vastamisel ning sageli ka vastata ebatavalistel ja l\u00f5busatel viisidel.\n<\/li>\n<li><b>Kirjade r\u00fchmitamine<\/b>, mis on seotud internetipoodidest tehtud tellimustega. Me teeme tihti oste internetis ja tavaliselt saadavad poed igale tellimusele mitu kirja. N\u00e4iteks AliExpressilt, suurimalt teenusest, tuleb \u00fche tellimuse kohta palju kirju, ja me oleme arvestanud, et sellisel juhul v\u00f5ib nende koguarv ulatuda 29. Seet\u00f5ttu kasutame nime m\u00e4rgendamise mudelit, et eristada tellimuse numbrit ja muud teavet tekstist ning r\u00fchmitada k\u00f5ik kirjad \u00fche niidi alla. Samuti kuvame p\u00f5hiteabe tellimuse kohta eraldi kastis, mis lihtsustab t\u00f6\u00f6tamist selle t\u00fc\u00fcpi kirjadega.\n<p><img decoding=\"async\" alt=\"Masin\u00f5ppe rakendamine Mail.ru-s\" src=\"\/wp-content\/uploads\/2019\/11\/8b37b0bf0c0d152498027bc25d476128.jpg\" style=\"display:block;margin: 0 auto;\" \/>\n<\/li>\n<li><b>Antifishing<\/b>. Phishing on eriti ohtlik petmisviis, millega \u00fcritavad kurjategijad saada k\u00e4tte finantsteavet (sealhulgas kasutaja pangakaarditeavet) ja kasutajatunnuseid. Sellised kirjad j\u00e4ljendavad t\u00f5elisi, teenuse poolt saadetud kirju, sealhulgas visuaalselt. Seet\u00f5ttu tuvastame Computer Vision abil suurte ettev\u00f5tete (n\u00e4iteks Mail.ru, Sber, Alfa) logod ja stiili ning arvestame neid koos teksti ja muude tunnustega oma sp\u00e4mm- ja phishingu klassifitseerijates.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>Masin\u00f5pe<\/h2>\n<p>\nVeidi masin\u00f5ppest e-kirjade raames. E-post on k\u00f5rge koormusega s\u00fcsteem: meie serverite kaudu l\u00e4bib keskmiselt 1,5 miljardit kirja p\u00e4evas 30 miljoni DAU kasutaja kohta. K\u00f5iki vajalikke funktsioone ja funktsioone teenindab umbes 30 masin\u00f5ppimise s\u00fcsteemi. <\/p>\n<p>Iga kiri l\u00e4bib terve klassifitseerimise konveieri. Esiteks filtreerime v\u00e4lja sp\u00e4mmi ja j\u00e4tame alles head kirjad. Kasutajad ei m\u00e4rka tihti antisp\u00e4mmifunktsiooni, kuna 95\u201399% sp\u00e4mmi ei j\u00f5ua isegi vastava kausta. Sp\u00e4mmi tuvastamine on meie s\u00fcsteemi v\u00e4ga oluline ja samas ka k\u00f5ige keerulisem osa, kuna antispam valdkonnas toimub pidev kohandamine kaitses\u00fcsteemide ja r\u00fcnnakute vahel, mis esitab meie meeskonnale pideva inseneriv\u00e4ljakutse.<\/p>\n<p>Seej\u00e4rel jagame kirjad inimeste ja robotite vahel. Inimeste poolt saadetud kirjad on k\u00f5ige olulisemad, seet\u00f5ttu pakume neile funktsioone nagu Nutikas vastus. Robotite saadetud kirjad jagatakse kaheks: tehingulised \u2014 need on olulised kirjad teenustelt, n\u00e4iteks ostude v\u00f5i hotellibroneeringute kinnitused, finantskirjad, ja informatiivsed \u2014 need on \u00e4rireklaam, allahindlused. <\/p>\n<p>Me arvame, et tehinguliste kirjade olulisus on v\u00f5rreldav isiklike kirjadega. Need peavad olema k\u00e4ep\u00e4rast, kuna sageli on vajalik kiiresti leida teavet tellimuse v\u00f5i lennupileti broneeringu kohta, ja me kulutame aega nende kirjade otsimisele. Seet\u00f5ttu jagame need mugavuse huvides automaatselt kuue peamise kategooria vahel: reisid, tellimused, finantsid, piletid, registreerimised ja l\u00f5puks trahvid.<\/p>\n<p>Informatiivsed kirjad on k\u00f5ige arvukam ja t\u00f5en\u00e4oliselt v\u00e4hem oluline r\u00fchm, mis ei n\u00f5ua kohest reageerimist, kuna midagi olulist ei muutu kasutaja elus, kui ta sellist teadet ei loe. Meie uues liideses koondame need kahte niidi: sotsiaalmeedia ja uudiskirjad, puhastades visuaalselt postkasti ja j\u00e4ttes n\u00e4htavale vaid olulised kirjad.<\/p>\n<p><img decoding=\"async\" alt=\"Masin\u00f5ppe rakendamine Mail.ru-s\" src=\"\/wp-content\/uploads\/2019\/11\/175773879daaa29d1542a98070cb7972.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>T\u00f6\u00f6tamine<\/h3>\n<p>\nPaljusid s\u00fcsteeme on keeruline hallata. Mudelid kuluvad aja jooksul, nagu igasugune tarkvara: s\u00fcmptomid murduvad, masinad eba\u00f5nnestuvad ja tekivad vigased koodid. Lisaks muutuvad andmed pidevalt: lisatakse uusi, kasutajate k\u00e4itumismustrid muutuvad jne, seega mudel, mida ei toetata piisavalt, hakkab aja jooksul \u00fcha halvemini toimima. <\/p>\n<p>\u00c4ra unusta, et mida s\u00fcgavamale masin\u00f5pe tungib kasutajate ellu, seda suurem m\u00f5ju on neil \u00f6kos\u00fcsteemile ja seet\u00f5ttu v\u00f5ivad turu m\u00e4ngijad saada suuremaid rahalisi kaotusi v\u00f5i kasumeid. Seet\u00f5ttu kohanduvad j\u00e4rjest enam valdkondi tegijad ML-algoritmidega (klassikalised n\u00e4ited \u2014 reklaam, otsing ja juba mainitud r\u00e4mpsposti t\u00f5rje).<\/p>\n<p>Masin\u00f5ppe \u00fclesannetel on ka omadused: \u00fcksk\u00f5ik milline, isegi v\u00e4ike, muudatus s\u00fcsteemis v\u00f5ib tekitada palju t\u00f6\u00f6d mudeliga: andmet\u00f6\u00f6tlus, \u00fcmber\u00f5pe, juurutamine, mis v\u00f5ib kesta n\u00e4dal v\u00f5i isegi kuu. Seet\u00f5ttu, mida kiiremini muutub keskkond, milles teie mudelid t\u00f6\u00f6tavad, seda rohkem pingutusi nende toetamine n\u00f5uab. Meeskond v\u00f5ib luua palju s\u00fcsteeme ja r\u00f5\u00f5mustada, aga seej\u00e4rel kulutada peaaegu k\u00f5ik ressursid nende hooldamiseks, ilma et oleks v\u00f5imalik midagi uut teha. Sarnase olukorraga silmitsi seisisime kunagi r\u00e4mpsposti t\u00f5rjeteamiga. Ja tegime ilmselge j\u00e4relduse, et hooldus 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>\u00fcmber\u00f5pe;\n<\/li>\n<li>juurutamine;\n<\/li>\n<li>testimine &amp; monitooring.\n<\/li>\n<\/ul>\n<p>\nKui keskkond on ebastabiilne ja pidevalt muutub, siis kogu infrastruktuur mudeli \u00fcmber osutub palju olulisemaks kui mudel ise. See v\u00f5ib olla vana hea lineaarne klassifikaator, kuid kui sinna \u00f5igesti sisestada omadused ja luua hea tagasiside kasutajatelt, t\u00f6\u00f6tab see palju paremini kui State-Of-The-Art mudelid koos k\u00f5ikide toimingutega.<\/p>\n<h4>Tagasiside ts\u00fckkel<\/h4>\n<p>\nSee ts\u00fckkel \u00fchendab andmete kogumise, \u00fcmber\u00f5ppe ja juurutamise \u2014 sisuliselt kogu mudeli uuendamise ts\u00fckli. Miks see oluline on? Vaata meiliregistreerimise graafikut:<\/p>\n<p><img decoding=\"async\" alt=\"Masin\u00f5ppe rakendamine Mail.ru-s\" src=\"\/wp-content\/uploads\/2019\/11\/f3c98bd49a101754cf299821a40e2b8e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMasin\u00f5ppe arendaja rakendas r\u00e4mpspostivastase mudeli, mis ei luba botidel postkasti registreeruda. Graafik langeb tasemeni, kus j\u00e4\u00e4vad vaid t\u00f5elised kasutajad. K\u00f5ik on suurep\u00e4rane! Kuid neli tundi hiljem kohandavad r\u00e4mpspostitajad oma skripte ja k\u00f5ik naaseb tagasi tasemele, kust alustas. Antud rakenduses kulutas arendaja kuu, lisades omadusi ja koolitades mudelit, kuid r\u00e4mpspostitaja suutis nelja tunni jooksul kohanduda.<\/p>\n<p>Et mitte tunda hiljem piinavat valu ega pidada k\u00f5ike uuesti tegema, tuleb alguses m\u00f5elda, kuidas tagasiside ts\u00fckkel v\u00e4lja n\u00e4eb ja mida me teeme, kui keskkond muutub. Alustame andmete kogumisest \u2014 see on meie algoritmide k\u00fctus.<\/p>\n<h2>Andmete kogumine<\/h2>\n<p>\nOn selge, et kaasaegsetele n\u00e4rviv\u00f5rkudele kehtib reegel: mida rohkem andmeid, seda parem, ja need genereerivad sisuliselt toote kasutajad. Kasutajad v\u00f5ivad meid aidata andmeid m\u00e4rgistades, kuid seda ei tohi liialdada, sest kasutajad v\u00e4sivad mingil hetkel teie mudelite koolitamisest ja l\u00e4hevad teiste toodete juurde. <\/p>\n<p>\u00dcks levinumaid vigu (siin viitan Andrew Ng-le) \u2014 liiga tugev orienteerumine testdatalaste metrikatele, mitte kasutajate tagasisidele, mis on tegelikult kvaliteedi peamine m\u00f5\u00f5dupuu, kuna loome toodet kasutajale. Kui kasutajale ei meeldi v\u00f5i ei m\u00f5ista mudeli t\u00f6\u00f6d, siis pole asjal m\u00f5tet. <\/p>\n<p>Seet\u00f5ttu peab kasutajal alati olema v\u00f5imalus h\u00e4\u00e4letada, talle tuleb anda t\u00f6\u00f6riist tagasiside andmiseks. Kui me arvame, et postkasti on saabunud e-kiri, mis kuulub finantsdomeenisse, tuleb see m\u00e4rgistada kui 'finants' ning joonistada nupp, mida kasutaja saab vajutada ja \u00f6elda, et see ei ole finants.<\/p>\n<h3>Tagasiside kvaliteet<\/h3>\n<p>\nR\u00e4\u00e4gime kasutajate tagasiside kvaliteedist. Esiteks, teil ja kasutajal v\u00f5ivad olla erinevad t\u00e4hendused samale m\u00f5istele. N\u00e4iteks teie ja tootemanagerid arvavad, et 'finants' t\u00e4hendab panku, samas kui kasutaja arvab, et kirja pensionist, mis tuli vanaemalt, v\u00f5ib samuti klassifitseerida finantsina. Teiseks, on kasutajaid, kes meelevaldsetelt vajutavad nuppudele, ilma igasuguse loogikata. Kolmandaks, kasutaja v\u00f5ib oma j\u00e4reldustes s\u00fcgavalt eksida. Hea n\u00e4ide meie praktikast \u2014 klassifikaatori rakendamine nigeri r\u00e4mpspostile. <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\">Teiseks, m\u00f5ned kasutajad vajavad nuppude vajutamisel, ilma igasuguse loogikata. Kolmandaks, kasutaja v\u00f5ib oma j\u00e4reldustes s\u00fcgavalt eksida. Hea n\u00e4ide meie praktikast \u2014 klassifikaatori juurutamine<\/a><\/noindex>, \u00fcsna naljakas r\u00e4mps, kus kasutajale pakutakse, et ta saab k\u00e4tte mitmeid miljoneid dollareid j\u00e4rsku leitud kaugelt sugulase k\u00e4est Aafrikas. P\u00e4rast selle klassifikaatori rakendamist kontrollisime klikke \u201eEi ole r\u00e4mps\u201d, ja selgus, et 80% neist on mahukas nigeeria r\u00e4mps, mis n\u00e4itab, et kasutajad v\u00f5ivad olla \u00e4\u00e4rmiselt usaldavad.<\/p>\n<p>Ja \u00e4rgem unustagem, et nuppudele v\u00f5ivad kl\u00f5psida mitte ainult inimesed, vaid ka igasugused robotid, kes teesklevad olevat brauserid. Nii et too t\u00fchi tagasiside ei sobi koolituseks. Mida nende andmetega siis teha?<\/p>\n<p>Kasutame kahte l\u00e4henemist: <\/p>\n<ul>\n<li><b>Seotud ML tagasiside<\/b>. N\u00e4iteks on meil veebip\u00f5hine antir\u00e4mpsus\u00fcsteem, mis, nagu ma juba mainisin, teeb kiire otsuse piiratud arvu tunnuste p\u00f5hjal. Ja on teine, aeglane s\u00fcsteem, mis t\u00f6\u00f6tab p\u00e4rast fakti. Sellel on rohkem andmeid kasutaja kohta, tema k\u00e4itumise kohta jne. Tulemusena teeb see k\u00f5ige m\u00f5istlikuma otsuse, seega on selle t\u00e4psus ja t\u00e4ielikkus k\u00f5rgem. Selle s\u00fcsteemi t\u00f6\u00f6 erinevust saab suunata esimesse s\u00fcsteemi \u00f5ppimiseks. Nii p\u00fc\u00fcab lihtsam s\u00fcsteem alati l\u00e4heneda keerukama s\u00fcsteemi tulemusele.\n<\/li>\n<li><b>Kl\u00f5psude klassifitseerimine<\/b>. V\u00f5ime lihtsalt klassifitseerida iga kasutaja kliki, hinnata selle kehtivust ja kasutatavust. Me teeme seda e-kirjade antir\u00e4mpsus, kasutades kasutaja tunnuseid, tema ajalugu, saatja tunnuseid, teksti ning klassifikaatorite t\u00f6\u00f6 tulemust. Tulemuseks on automaatne s\u00fcsteem, mis valideerib kasutaja tagasisidet. Ja kuna seda tuleb koolitada oluliselt harvemini, v\u00f5ib selle t\u00f6\u00f6 saada \u00fclej\u00e4\u00e4nud s\u00fcsteemide aluseks. Selle mudeli p\u00f5hiprioriteet on t\u00e4psus, kuna mudeli koolitamine ebat\u00e4psete andmete peal toob kaasa negatiivseid tagaj\u00e4rgi. \n<\/li>\n<\/ul>\n<p>\nKuna me puhastame andmeid ja koolitame meie ML-s\u00fcsteeme, ei tohi unustada kasutajaid, sest tuhandeid, miljoneid vigu diagrammil \u2013 see on statistika, aga iga veak\u00fcsimuse puhul on kasutajale tegemist trag\u00f6\u00f6diaga. Peale selle, et kasutajal tuleb elada teie toote vea t\u00f5ttu, ootab ta tagasiside j\u00e4rel, et sarnase olukorra kordumist tulevikus v\u00e4ltida. Seet\u00f5ttu tuleks alati anda kasutajatele mitte ainult v\u00f5imalus h\u00e4\u00e4letada, vaid ka parandada ML-s\u00fcsteemide k\u00e4itumist, luues n\u00e4iteks isiklikud heuristikad igaks tagasiside klikiks, kui tegemist on e-kirjadega, see v\u00f5ib t\u00e4hendada v\u00f5imalust filtreerida sarnaseid kirju saatja ja pealkirja alusel antud kasutaja jaoks.<\/p>\n<p>Samuti tuleb mingite raportite v\u00f5i tugiteenusega seotud p\u00e4ringute p\u00f5hjal poolautomaatsete v\u00f5i k\u00e4sitsi meetoditega mudelit parandada, et ka teised kasutajad ei kannataks sarnaste probleemide all.<\/p>\n<h3>Heuristikad koolitamiseks<\/h3>\n<p>\nHeuristikatest ja parandustest on kaks probleemi. Esiteks, pidevalt kasvava arvu paranduste hooldamine on keeruline, r\u00e4\u00e4kimata nende kvaliteedist ja pikaajalistest toimingutest. Teine probleem on see, et viga ei pruugi esineda sageli ja m\u00f5ni klikk mudeli koolitamiseks ei pruugi olla piisav. Tundub, et neid kahte mitte seotud efekti on v\u00f5imalik m\u00e4rkimisv\u00e4\u00e4rselt tasakaalustada, kui rakendada j\u00e4rgmist l\u00e4henemist.<\/p>\n<ol>\n<li>Loome ajutise paranduse. \n<\/li>\n<li>Suuname andmed sellest mudelisse, see koolitub regulaarselt, sealhulgas saadud andmete p\u00f5hjal. Siin on loomulikult oluline, et heuristika oleks k\u00f5rge t\u00e4psusega, et mitte v\u00e4hendada andmete kvaliteeti treeningkomplektis. \n<\/li>\n<li>Seej\u00e4rel paneme j\u00e4lgimise sellele, kas parandust hakatakse rakendama, ja kui mingil hetkel enam parandust ei rakendata ja see on t\u00e4iesti kaetud mudeli poolt, siis saab selle julgelt eemaldada. N\u00fc\u00fcd ei esine t\u00f5en\u00e4oliselt seda probleemi enam.\n<\/li>\n<\/ol>\n<p>\nNii et paranduste armee on v\u00e4ga kasulik. Peamine on see, et nende teenus oleks ajutine, mitte p\u00fcsi. <\/p>\n<h2>Uuendus<\/h2>\n<p>\nUuendamine on protsess, mille k\u00e4igus lisatakse uusi andmeid, saadud kasutajatelt tagasiside v\u00f5i teistest s\u00fcsteemidest, ning vanale mudelile nende p\u00f5hjal. Uuendamisel v\u00f5ib olla mitmeid probleeme:<\/p>\n<ol>\n<li>Mudel ei pruugi lihtsalt toetada uuendamist, vaid \u00f5ppida ainult nullist. \n<\/li>\n<li>Looduse raamatus ei ole kirjutatud, et uuendamine t\u00f6\u00f6 kvaliteeti produktsioonis tingimata parandab. Tihti juhtub hoopis vastupidine, see t\u00e4hendab, et v\u00f5imalik on ainult halvenemine.\n<\/li>\n<li>Muudatused v\u00f5ivad olla ettearvamatud. See on \u00fcsna delikaatne aspekt, mille oleme enda jaoks v\u00e4lja selgitanud. Isegi kui uus mudel A\/B-testimisel n\u00e4itab sarnaseid tulemusi v\u00f5rreldes praegusega, ei t\u00e4henda see, et see toimiks sama moodi. Nende t\u00f6\u00f6 v\u00f5ib erinev olla isegi \u00fches protsendipunktis, mis v\u00f5ib p\u00f5hjustada uusi vigu v\u00f5i tuua tagasi juba lahendatud vanad vead. Praeguste vigadega oleme \u00f5ppinud elama, ja kui tekivad paljud uued vead, ei pruugi kasutaja ka m\u00f5ista, mis toimub, kuna ta ootab ettearvatavat k\u00e4itumist.\n<\/li>\n<\/ol>\n<p>\nSeet\u00f5ttu on k\u00f5ige olulisem uue koolituse puhul garantii, et mudelit t\u00f5eliselt parendada v\u00f5i v\u00e4hemalt mitte halvendada. <\/p>\n<p>Esimene asi, mis meelde tuleb, kui r\u00e4\u00e4gime uue koolituse teemal, on l\u00e4henemine, mida nimetatakse aktiivseks \u00f5ppimiseks. Mida see t\u00e4hendab? N\u00e4iteks klassifkaator m\u00e4\u00e4rab, kas kiri kuulub rahandusse, ning selle otsuste piiril lisame proovide valimi, mis on m\u00e4rgistatud. See t\u00f6\u00f6tab h\u00e4sti n\u00e4iteks reklaami puhul, kus tagasisidet on palju ning mudelit saab koolitada online-re\u017eiimis. Kui aga tagasiside on v\u00e4he, saame v\u00e4ga kallutatud valimi, mis ei peegelda andmete tootmisjaotust ja mille p\u00f5hjal ei saa mudeli k\u00e4itumist hindada.<\/p>\n<p><img decoding=\"async\" alt=\"Masin\u00f5ppe rakendamine Mail.ru-s\" src=\"\/wp-content\/uploads\/2019\/11\/fd1b3e07bfaf896dde3248e43537f61a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTegelikult on meie eesm\u00e4rk s\u00e4ilitada vanad mustrid, mis mudelile juba teada, ja omandada uusi. Siin on oluline j\u00e4rjepidevus. Mudel, mille oleme suure vaevaga v\u00e4lja t\u00f6\u00f6tanud, t\u00f6\u00f6tab juba, seega saame tugineda selle tulemuslikkusele. <\/p>\n<p>E-mails kasutatakse erinevaid mudeleid: puud, lineaarsed, tehisintellektid. Iga\u00fche jaoks koostame oma uue koolituse algoritmi. Uue koolituse k\u00e4igus saame mitte ainult uusi andmeid, vaid tihti ka uusi tunnuseid, mida arvestame k\u00f5igis allpool olevates 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 osas;\n<\/li>\n<li>regulaarime uute tunnuste kaalu (vanaid ei puuduta);\n<\/li>\n<li>\u00f5ppime ka vanade andmete p\u00f5hjal, et s\u00e4ilitada vanad mustrid;\n<\/li>\n<li>ja t\u00f5en\u00e4oliselt k\u00f5ige olulisem: rakendame harmoonilist regulaarimist, mis tagab, et kaalude muutus ei oleks liiga suur v\u00f5rreldes vana mudeliga normi j\u00e4rgi.\n<\/li>\n<\/ul>\n<p>\nKuna iga kaotuse komponendil on koefitsiendid, saame oma \u00fclesande jaoks optimaalsed v\u00e4\u00e4rtused leida ristvalideerimise k\u00e4igus v\u00f5i l\u00e4htuda tootmisn\u00f5uetest.<\/p>\n<p><img decoding=\"async\" alt=\"Masin\u00f5ppe rakendamine Mail.ru-s\" src=\"\/wp-content\/uploads\/2019\/11\/00ae86d23afb780f5e260e61f833d4bd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Puud<\/h3>\n<p>\nLiigume lahenduspuideni. Oleme v\u00e4lja t\u00f6\u00f6tanud j\u00e4rgmise puudega koolituse algoritmi:<\/p>\n<ol>\n<li>T\u00f6\u00f6 k\u00e4ib 100\u2013300 puu metsaga, mis on koolitatud vana andmestiku p\u00f5hjal.\n<\/li>\n<li>Eemaldame l\u00f5pus M = 5 t\u00fckki ja lisame 2M = 10 uut, mis on koolitatud kogu andmestiku p\u00f5hjal, kuid uute andmete puhul k\u00f5rge kaalu seadistusega, mis loogiliselt tagab mudeli j\u00e4rkj\u00e4rgulise muutmise.\n<\/li>\n<\/ol>\n<p>\nOn ilmne, et aja jooksul puude arv suureneb, ning neid tuleb perioodiliselt v\u00e4hendada, et ajaraamid p\u00fcsiksid. Selleks kasutame laialdaselt tuntud teadmiste destilleerimist (KD). L\u00fchidalt selle t\u00f6\u00f6p\u00f5him\u00f5ttest.<\/p>\n<ol>\n<li>Meil on praegune \"keeruline\" mudel. K\u00e4ivitame selle treeningu andmestikul ja saame v\u00e4ljundiks klasside t\u00f5en\u00e4osuste jaotuse.\n<\/li>\n<li>Seej\u00e4rel \u00f5petame \u00f5pilasmudelit (antud juhul mudelit, kus on v\u00e4hem puid) kordama mudeli tulemusi, kasutades klasside jaotust sihimuutuja nagu.\n<\/li>\n<li>Siin on oluline m\u00e4rkida, et me ei kasuta mingisugust andmestiku m\u00e4rgistamist, seega saame kasutada mistahes andmeid. Loomulikult kasutame voogude andmesampla, kui koolitusvalimi jaoks mudeli \u00f5pilasi. Seega tagab koolitusv\u00f5rk meie mudeli t\u00e4psuse, ning voogude proov tagab sarnase t\u00f6\u00f6tluse tootmisjaotuses, kompenseerides koolitusvalimi kallutatuse.\n<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Masin\u00f5ppe rakendamine Mail.ru-s\" src=\"\/wp-content\/uploads\/2019\/11\/3fdfcb9b1e5a6fa824226a429afc475a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNende kahe tehnika (puude lisamine ja nende arvu perioodiline v\u00e4hendamine rakendades teadmiste destilleerimist) kombinatsioon tagab uute mustrite sisenemise ja t\u00e4ieliku j\u00e4rjepidevuse.<\/p>\n<p>KD abil eristame ka mudeli tunnuste operatsioone, n\u00e4iteks tunnuste kustutamist ja puuduva infoga t\u00f6\u00f6tamist. Meie juhul on meil olemas hulk olulisi statistilisi tunnuseid (saajate, tekstihashide, URL-ide jne kohta), mis salvestatakse andmebaasi, kellel on t\u00f5rke omadus. Tootja, loomulikult, ei ole selliseks arengu suunaks valmis, kuna treeningkomplektis ei esine t\u00f5rkeolukordi. Sel puhul kombineerime KD ja uue andmete laiendamise tehnikate: treeningu ajal eemaldame v\u00f5i nullime vajalikud tunnused, samas peame etiketid (praeguse mudeli v\u00e4ljundid) algsetena, mudel-\u00f5pilane \u00f5pib seda jaotust kordama.<\/p>\n<p><img decoding=\"async\" alt=\"Masin\u00f5ppe rakendamine Mail.ru-s\" src=\"\/wp-content\/uploads\/2019\/11\/5e1f5af9a359646a49f4fe88ffed1025.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOleme m\u00e4rganud, et mida t\u00f5sisemalt manipuleeritakse mudelitega, seda suurem on protsentuaalne vajadus voolu proovide j\u00e4rele.<\/p>\n<p>Tunnuste eemaldamiseks, k\u00f5ige lihtsama operatsiooni jaoks, on vajalik vaid v\u00e4ike osa voolust, kuna muudetakse vaid paar tunnust, ja praegune mudel on \u00f5ppinud samas andmekogus \u2014 erinevus on minimaalne. Mudeli lihtsustamiseks (puude arvu v\u00e4hendamine mitu korda) on vajalik juba 50 protsenti voolust. Oluliste statistiliste tunnuste, mis t\u00f5siselt m\u00f5jutavad mudeli tulemuslikkust, puudumise korral on vaja veelgi rohkem voolu, et tasakaalustada uue kadudele vastupidava mudeli t\u00f6\u00f6d k\u00f5ikide kirjat\u00fc\u00fcpide puhul. <\/p>\n<p><img decoding=\"async\" alt=\"Masin\u00f5ppe rakendamine Mail.ru-s\" 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 FastTexti juurde. Meenutame, et s\u00f5na esindus (Embedding) koosneb s\u00f5na enda embedding'ist ja k\u00f5igist tema kirjalikest N-gramm'idest, tavaliselt trigrammidest. Kuna trigramme v\u00f5ib olla \u00fcsna palju, kasutatakse Bucket Hashingut, st kogu ruumi muundamine mingiks fikseeritud hash-mapi. L\u00f5ppkokkuv\u00f5ttes saab kaalumatriis sisemise kihi suurusest s\u00f5nade arvu + bakettide arvu. <\/p>\n<p>T\u00e4iend\u00f5ppe k\u00e4igus ilmnevad uued tunnused: s\u00f5nad ja trigrammid. Facebooki standardsetel t\u00e4iend\u00f5pingutel ei toimu midagi olulist. T\u00e4iendatakse vaid vanu kaalu uudse krosseentroopia t\u00f5ttu uutes andmetes. Seega ei kasutata uusi tunnuseid, loomulikult on sellel l\u00e4henemisel k\u00f5ik eelnevalt mainitud puudused, mis on seotud mudeli ettearvamatusega tootmises. Seet\u00f5ttu oleme FastTexti veidi edasi arendanud. Lisame k\u00f5ik uued kaalu (s\u00f5nad ja trigrammid), \u00f5pime kogu matriisi krosseentroopia p\u00f5hjal ning lisame harmoonilise regulariseerimise, nagu lineaarse mudeli puhul, mis tagab, et vanad kaalu ei muutu oluliselt.<\/p>\n<p><img decoding=\"async\" alt=\"Masin\u00f5ppe rakendamine Mail.ru-s\" 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-is t\u00e4iendatakse viimaseid kihtide, siis loomulikult saab rakendada harmoonilist regulariseerimist ja tagada j\u00e4rjepidevuse. Kuid juhul, kui vajalik on kogu v\u00f5rgustiku t\u00e4iendamine, siis sellist regulariseerimist ei saa k\u00f5igile kihtidele rakendada. Siiski on v\u00f5imalik treenida t\u00e4iendavaid embeddinge l\u00e4bi Triplet Loss (<noindex><a rel=\"nofollow\" href=\"https:\/\/arxiv.org\/abs\/1503.03832\">originaalartikkel<\/a><\/noindex>).<\/p>\n<h4>Triplet Loss<\/h4>\n<p>\nVaatleme Triplet Loss'i n\u00e4itel antifishingu \u00fclesannet \u00fcldiselt. V\u00f5tame meie logosid, samuti positiivseid ja negatiivseid n\u00e4iteid teiste ettev\u00f5tete logo kohta. Minimeerime kauguse esimeste vahel ja maksimeerime kauguse teiste vahel, tehes seda v\u00e4ikese varuga, et tagada klasside suurem kompaktne. <\/p>\n<p><img decoding=\"async\" alt=\"Masin\u00f5ppe rakendamine Mail.ru-s\" src=\"\/wp-content\/uploads\/2019\/11\/dc8547fa042286798eb5c2f0887c4da6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKui me t\u00e4iendame v\u00f5rku, siis muutub meie meetriline ruum t\u00e4ielikult ja see muutub absoluutse \u00fchilduvuse puudumisega eelnevatega. See on t\u00f5sine probleem \u00fclesannetes, kus kasutatakse vektoreid. Selle probleemi v\u00e4ltimiseks segame \u00f5ppe k\u00e4igus vanu embeddinge.<\/p>\n<p>Olemegi lisanud uusi andmeid treeningkomplekti ja koolitame teise mudeli versiooni nullist. Teises etapis t\u00e4iendame meie v\u00f5rgustikku (Finetuning): esmalt t\u00e4iendatakse viimane kiht ja seej\u00e4rel vabastatakse kogu v\u00f5rk. Kolmnurkade koostamise k\u00e4igus arvutame vaid osa embeddinge, kasutades koolitatavat mudelit, \u00fclej\u00e4\u00e4nud \u2014 kasutades vana. Nii tagame t\u00e4iendamise k\u00e4igus v1 ja v2 meetriliste ruumide \u00fchilduvuse. Omap\u00e4rane variant harmoonilisest regulariseerimisest.<\/p>\n<p><img decoding=\"async\" alt=\"Masin\u00f5ppe rakendamine Mail.ru-s\" src=\"\/wp-content\/uploads\/2019\/11\/854d4fcc97775b24e6863cc38743cd27.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Terve arhitektuur<\/h3>\n<p>\nKui vaadata kogu s\u00fcsteemi antispammimise n\u00e4ite p\u00f5hjal, siis mudelid ei ole isoleeritud, vaid \u00fcksteise sisse ehitatud. V\u00f5tame pildid, teksti ja muud tunnused, saades CNN-i ja FastTexti abil embeddinge. Edasi, embeddinge peal rakendatakse klassifikaatoreid, mis annavad punkte eri klassidele (kirjat\u00fc\u00fcpide, spami, logo olemasolu). Punktid ja tunnused liiguvad puude metsa, et langetada l\u00f5plik otsus. Erilised klassifikaatorid selle skeemi raames v\u00f5imaldavad paremini t\u00f5lgendada s\u00fcsteemi t\u00f6\u00f6 tulemusi ja sihip\u00e4raselt t\u00e4iendama komponente probleemide ilmnemisel, kui k\u00f5ik andmed toimetatakse puuotsusele.<\/p>\n<p><img decoding=\"async\" alt=\"Masin\u00f5ppe rakendamine Mail.ru-s\" src=\"\/wp-content\/uploads\/2019\/11\/30effc5ef7398db5f085b6dd415647d3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKokkuv\u00f5ttes tagame sujuvuse igas etapis. Alumises kihis kasutame CNN-i ja Fast Text-i jaoks harmoonilist regulatsiooni, keskastme klassifikaatorite puhul samuti harmoonilist regulatsiooni ja skooride kalibreerimist t\u00f5en\u00e4osuse jaotuse \u00fchtlustamiseks. Boostimise puuduj\u00e4\u00e4kide \u00f5petamine toimub j\u00e4rk-j\u00e4rgult v\u00f5i Knowledge Distillation'i meetodil.<\/p>\n<p>Tavaliselt toob sellise keeruka masin\u00f5ppe s\u00fcsteemi tugi kaasa probleeme, kuna iga alumise kihi komponent n\u00f5uab \u00fclej\u00e4\u00e4nud s\u00fcsteemi uuendamist. Kuid meie seadistuses muutub iga komponent minimaalselt ja see on eelnevaga \u00fchilduv, seega saab kogu s\u00fcsteemi ajakohastada osade kaupa ilma, et peaksime kogu struktuuri uuesti \u00f5petama, v\u00f5imaldades selle toetamist ilma suuremate kuludeta. <\/p>\n<h2>Juhtimist\u00f6\u00f6<\/h2>\n<p>\nOleme arutanud andmete kogumist ja erinevat liiki mudelite t\u00e4iend\u00f5pet, seega liigume nende juurutamise juurde tootmiskeskkonnas.<\/p>\n<h3>A\/B-testimine<\/h3>\n<p>\nNagu juba varem mainisin, saame andmete kogumise protsessis tavaliselt kallutatud valimi, mille alusel ei ole v\u00f5imalik mudeli tootmisv\u00f5imet hinnata. Seet\u00f5ttu tuleb mudeli juurutamisel kindlasti v\u00f5rrelda seda eelneva versiooniga, et m\u00f5ista, kuidas asjad tegelikult on, ja seega viia l\u00e4bi A\/B teste. Tegelikult on mudelite v\u00e4lja panemine ja graafikute anal\u00fc\u00fcs piisavalt rutiinne ja h\u00e4sti automatiseeritav protsess. Me juurutame oma mudeleid j\u00e4rk-j\u00e4rgult 5%, 30%, 50% ja 100% kasutajateni, samal ajal kogudes k\u00f5iki saadaval olevaid m\u00f5\u00f5dikuid mudeli vastuste ja kasutajate tagasiside kohta. T\u00f6\u00f6tame automaatselt tagasi mudeli, kui ilmnevad t\u00f5sised k\u00f5rvalekalded, ja teiste olukordade korral, kui saavutame piisava arvu kasutaja klikke, teeme otsuse protsendi suurendamiseks. L\u00f5ppkokkuv\u00f5ttes viime uue mudeli 50% kasutajateni t\u00e4iesti automaatselt, samas kui \u00fclej\u00e4\u00e4nud auditooriumi heakskiitmiseks on vajalik inimese sekkumine, kuigi ka see samm on automatiseeritav.<\/p>\n<p>Kuid A\/B-testimise protsess pakub 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 mahust), mis muudab selle suhteliselt kalliks ja piiratud ressurssidega. Lisaks sellele on vajalik testimiseks piisavalt k\u00f5rge l\u00e4bivoolu protsent, et p\u00f5him\u00f5tteliselt kiirendada kogu A\/B-testimise aega (statistiliselt olulise valimi kogumine v\u00e4ikse protsendi korral v\u00f5ib v\u00f5tta v\u00e4ga kaua aega), mis teeb A\/B slotid \u00e4\u00e4rmiselt piiratud. On ilmne, et me peame testima ainult k\u00f5ige lootustandvamaid mudeleid, millest me t\u00e4iend\u00f5ppe k\u00e4igus palju leiame.<\/p>\n<p>Selle probleemi lahendamiseks oleme koolitanud eraldi klassifikaatori, mis ennustaks A\/B-testimise edukust. Selleks v\u00f5tame tunnustena arvesse otsuste vastuv\u00f5tmise statistikat, Precisionit, Recalli ja muid m\u00f5\u00f5dikuid \u00f5ppe komplektis, eraldi komplektis ja voos oleva n\u00e4idisega. Samuti v\u00f5rdleme mudelit tootmises oleva mudeliga, h\u00fcpoteesidega ning arvestame mudeli keerukust (Complexity). Kasutades k\u00f5iki neid tunnuseid, hindab ajalooliste testide p\u00f5hjal koolitatud klassifikaator kandidaadimudeleid, meie puhul siis puude metsi, ja teeb otsuse, millise neist saata A\/B-testimisele. <\/p>\n<p><img decoding=\"async\" alt=\"Masin\u00f5ppe rakendamine Mail.ru-s\" src=\"\/wp-content\/uploads\/2019\/11\/41b121987209a663075be399e83f5a50.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSelle l\u00e4henemise rakendamine on v\u00f5imaldanud mitmekordselt suurendada edukate A\/B-testide arvu.<\/p>\n<h3>Testimine &amp; j\u00e4lgimine<\/h3>\n<p>\nTestimine ja j\u00e4lgimine ei kahjusta meie tervist, vaid pigem vastupidi, parandavad seda ja vabastavad tarbetutest stressidest. Testimine aitab v\u00e4ltida t\u00f5rkeid ja j\u00e4lgimine tuvastab need \u00f5igeaegselt, 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 arenduse ts\u00fckliga. S\u00fcsteemi arendamise alguses on alati palju vigu, kuni k\u00f5ik stabiliseerub ja peamine uuenduste etapp l\u00f5ppenud. Kuid aja jooksul haarab entropia taas v\u00f5imu ning vead tekivad uuesti \u2014 komponentide degradeerimise ja andmete muutuste t\u00f5ttu, millest ma esialgselt r\u00e4\u00e4kisin.<\/p>\n<p>Siin tahaksin r\u00f5hutada, et igat masin\u00f5ppes\u00fcsteemi tuleks vaadata selle kasulikkuse kontekstis kogu eluts\u00fckli v\u00e4ltel. Alltoodud graafikul on n\u00e4idatud haruldase r\u00e4mpsposti tuvastamise s\u00fcsteemi t\u00f6\u00f6 n\u00e4ide (graafik n\u00e4itab nulli \u00fcmbrust). Kord tekkis probleem vale vahem\u00e4lu t\u00f5ttu, mist\u00f5ttu s\u00fcsteem eksis. Kahjuks polnud anomaaliate j\u00e4lgimiseks monitooringut, mis viis olukorrani, et s\u00fcsteem hakkas salvestama kirju spami kausta suurel hulgal. Kuigi tagaj\u00e4rjed parandati, ei suuda s\u00fcsteem juba nii palju vigu teha, et end isegi viie aasta jooksul tasa teenida. See on t\u00e4ielik eba\u00f5nnestumine mudeli eluts\u00fckli kontekstis. <\/p>\n<p><img decoding=\"async\" alt=\"Masin\u00f5ppe rakendamine Mail.ru-s\" src=\"\/wp-content\/uploads\/2019\/11\/65efd799537ceea3761cabc3a764ba90.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSeet\u00f5ttu v\u00f5ib selline lihtne asi nagu monitooring osutuda mudeli jaoks kriitiliseks. Lisaks tavap\u00e4rastele ja ilmsetele m\u00f5\u00f5dikutele vaatleme ka mudeli vastuste ja skooride jaotust ning v\u00f5tmeomaduste v\u00e4\u00e4rtuste jaotust. KL-divergenssi abil saame v\u00f5rrelda hetkejaotust ajaloolise jaotusega v\u00f5i A\/B-testimise tulemusi \u00fclej\u00e4\u00e4nud vooluga, mis v\u00f5imaldab mudelis tuvastada anomaaliaid ja aegsasti muudatusi tagasi v\u00f5tta.<\/p>\n<p>Enamikul juhtudel k\u00e4ivitame oma esimesed s\u00fcsteemiversioonid lihtsate heuristikute v\u00f5i mudelite abil, mida hiljem kasutame monitooringuks. N\u00e4iteks j\u00e4lgime NER-mudelit v\u00f5rreldes regulaarsete v\u00e4ljenditega teatud e-kauplustes ning kui klassifikaatori katvust v\u00f5rreldes nendega saab v\u00e4hendatud, uurime p\u00f5hjuseid. Veel \u00fcks kasulik heuristikute rakendamine!<\/p>\n<h2>Kokkuv\u00f5te<\/h2>\n<p>\nK\u00e4ime veel kord \u00fcle artikli peamised m\u00f5tted.<\/p>\n<ul>\n<li><b>Fibd\u00e4k<\/b>. Alati m\u00f5tleme kasutajale: kuidas nad saavad elada meie vigadega ja kuidas nad saavad neist teada anda. \u00c4rge unustage, et kasutajad ei ole puhta tagasiside allikas mudelite koolitamiseks, ning seda tuleks puhastada t\u00e4iendavate ML-s\u00fcsteemide abil. Kui kasutaja signaalide kogumiseks pole v\u00f5imalusi, otsime alternatiivseid tagasiside allikaid, n\u00e4iteks seotud s\u00fcsteeme. \n<\/li>\n<li><b>Uuendus<\/b>. Siin on oluline j\u00e4rjepidevus, seega toetume praegusele tootmis mudelile. Uusi mudeleid koolitame nii, et need ei erineks oluliselt eelmisest, kasutades harmoonilist reguleerimist ja sarnaseid trikke.<\/li>\n<li><b>Juhtimist\u00f6\u00f6<\/b>. Automaatne juurutamine m\u00f5\u00f5dikute p\u00f5hjal v\u00e4hendab oluliselt mudelite juurutamise aega. Statistika ja otsuste vastuv\u00f5tmise jaotuse j\u00e4lgimine, kasutajatelt saadud tagasiside arvu j\u00e4lgimine on kohustuslik, et suudaksite rahulikult magada ja produktiivseid puhkep\u00e4evi nautida.\n<\/li>\n<\/ul>\n<p>\nLoodetavasti aitab see, mida lugesite, teil kiiremini parandada teie ML-s\u00fcsteeme, kiirendada nende turule toomist ja muuta need usaldusv\u00e4\u00e4rsemaks, v\u00e4hendades t\u00f6\u00f6st tingitud 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.0.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.0.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 postis | ProHoster","description":"Minu ettekannete 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}]}}