MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

Balstīts uz manām runām Highload++ un DataFest Minsk 2019.

MÅ«sdienās daudziem pasts ir neatņemama tieÅ”saistes dzÄ«ves sastāvdaļa. Ar tās palÄ«dzÄ«bu mēs veicam biznesa korespondenci, glabājam visa veida svarÄ«gu informāciju, kas saistÄ«ta ar finansēm, viesnÄ«cu rezervācijām, pasÅ«tÄ«jumu veikÅ”anu un daudz ko citu. 2018. gada vidÅ« mēs formulējām produktu stratēģiju pasta izstrādei. Kādam jābÅ«t mÅ«sdienu pastam?

Pastam jābÅ«t gudrs, tas ir, palÄ«dzot lietotājiem orientēties pieaugoÅ”ajā informācijas apjomā: filtrēt, strukturēt un nodroÅ”ināt to visērtākajā veidā. Viņai jābÅ«t noderÄ«ga, ļaujot atrisināt dažādus uzdevumus tieÅ”i savā pastkastÄ«tē, piemēram, samaksāt soda naudu (funkcija, kuru diemžēl izmantoju). Un tajā paŔā laikā, protams, pastam ir jānodroÅ”ina informācijas aizsardzÄ«ba, izslēdzot surogātpastu un aizsargājot pret uzlauÅ”anu, tas ir, droÅ”i.

Å Ä«s jomas nosaka vairākas galvenās problēmas, no kurām daudzas var efektÄ«vi atrisināt, izmantojot maŔīnmācÄ«Å”anos. Å eit ir jau esoÅ”o funkciju piemēri, kas izstrādāti kā daļa no stratēģijas ā€” viens katram virzienam.

  • Viedā atbilde. Pastam ir viedās atbildes funkcija. Neironu tÄ«kls analizē vēstules tekstu, izprot tā nozÄ«mi un mērÄ·i, kā rezultātā piedāvā trÄ«s vispiemērotākās atbildes iespējas: pozitÄ«vu, negatÄ«vu un neitrālu. Tas palÄ«dz ievērojami ietaupÄ«t laiku, atbildot uz vēstulēm, kā arÄ« bieži atbildēt nestandarta un smieklÄ«gi.
  • E-pasta ziņojumu grupÄ“Å”anakas saistÄ«ti ar pasÅ«tÄ«jumiem interneta veikalos. Mēs bieži iepērkamies tieÅ”saistē, un, kā likums, veikali var nosÅ«tÄ«t vairākus e-pasta ziņojumus par katru pasÅ«tÄ«jumu. Piemēram, no lielākā pakalpojuma AliExpress par vienu pasÅ«tÄ«jumu ienāk ļoti daudz vēstuļu, un mēs aprēķinājām, ka termināļa gadÄ«jumā to skaits varētu sasniegt pat 29. Tāpēc, izmantojot Named Entity Recognition modeli, izvelkam pasÅ«tÄ«juma numuru. un citu informāciju no teksta un sagrupējiet visus burtus vienā pavedienā. AtseviŔķā lodziņā attēlojam arÄ« pamatinformāciju par pasÅ«tÄ«jumu, kas atvieglo darbu ar Ŕāda veida e-pastu.

    MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

  • AntipikŔķerÄ“Å”ana. PikŔķerÄ“Å”ana ir Ä«paÅ”i bÄ«stams krāpniecisks e-pasta veids, ar kura palÄ«dzÄ«bu uzbrucēji mēģina iegÅ«t finanÅ”u informāciju (tostarp lietotāja bankas kartes) un pieteikÅ”anos. Šādas vēstules atdarina Ä«stās dienesta sÅ«tÄ«tās vēstules, tostarp vizuāli. Tāpēc ar Computer Vision palÄ«dzÄ«bu mēs atpazÄ«stam lielo uzņēmumu (piemēram, Mail.ru, Sber, Alfa) logotipus un vēstuļu dizaina stilu un ņemam to vērā kopā ar tekstu un citām funkcijām savos surogātpasta un pikŔķerÄ“Å”anas klasifikatoros. .

MaŔīnmācīŔanās

Mazliet par maŔīnmācÄ«Å”anos e-pastā kopumā. Pasts ir ļoti noslogota sistēma: vidēji 1,5 miljardi vēstuļu dienā iziet caur mÅ«su serveriem 30 miljoniem DAU lietotāju. Aptuveni 30 maŔīnmācÄ«Å”anās sistēmas atbalsta visas nepiecieÅ”amās funkcijas un funkcijas.

Katrs burts iet cauri visai klasifikācijas cauruļvadam. Vispirms mēs nogriežam surogātpastu un atstājam labus e-pastus. Lietotāji bieži nepamana antispama darbu, jo 95-99% surogātpasta pat nenonāk attiecÄ«gajā mapē. Surogātpasta atpazÄ«Å”ana ir ļoti svarÄ«ga mÅ«su sistēmas sastāvdaļa un vissarežģītākā, jo pretsurogātpasta jomā notiek pastāvÄ«ga pielāgoÅ”anās starp aizsardzÄ«bas un uzbrukuma sistēmām, kas nodroÅ”ina nepārtrauktu inženiertehnisko izaicinājumu mÅ«su komandai.

Tālāk mēs atdalām vēstules no cilvēkiem un robotiem. Personu e-pasta ziņojumi ir vissvarīgākie, tāpēc mēs viņiem piedāvājam tādas funkcijas kā viedā atbilde. Vēstules no robotiem ir sadalītas divās daļās: darījumu - tās ir svarīgas vēstules no pakalpojumiem, piemēram, pirkumu vai viesnīcu rezervācijas apstiprinājumi, finanses un informatīvās - tās ir biznesa reklāma, atlaides.

Mēs uzskatām, ka darÄ«jumu e-pasta ziņojumi ir lÄ«dzvērtÄ«gi personiskajai sarakstei. Tiem jābÅ«t pa rokai, jo bieži vien ātri jāatrod informācija par pasÅ«tÄ«jumu vai aviobiļeÅ”u rezervāciju, un mēs veltām laiku Å”o vēstuļu meklÄ“Å”anai. Tāpēc ērtÄ«bas labad mēs tos automātiski sadalām seŔās galvenajās kategorijās: ceļojumi, pasÅ«tÄ«jumi, finanses, biļetes, reÄ£istrācija un, visbeidzot, naudas sodi.

InformatÄ«vās vēstules ir lielākā un, iespējams, mazāk svarÄ«ga grupa, kas neprasa tÅ«lÄ«tēju atbildi, jo lietotāja dzÄ«vē nekas bÅ«tisks nemainÄ«sies, ja viņŔ Ŕādu vēstuli neizlasÄ«s. MÅ«su jaunajā saskarnē mēs tos sakļaujam divos pavedienos: sociālajos tÄ«klos un informatÄ«vajos izdevumos, tādējādi vizuāli notÄ«rot iesÅ«tni un atstājot redzamus tikai svarÄ«gus ziņojumus.

MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

Ekspluatācija

Liels skaits sistēmu rada daudz grÅ«tÄ«bu darbÄ«bā. Galu galā modeļi laika gaitā degradējas, tāpat kā jebkura programmatÅ«ra: funkcijas sabojājas, maŔīnas neizdodas, kods kļūst greizs. Turklāt dati nepārtraukti mainās: tiek pievienoti jauni, pārveidoti lietotāju uzvedÄ«bas modeļi utt., tāpēc modelis bez atbilstoÅ”a atbalsta laika gaitā darbosies arvien sliktāk.

Mēs nedrÄ«kstam aizmirst, ka, jo dziļāk maŔīnmācÄ«ba iekļūst lietotāju dzÄ«vē, jo lielāka ir to ietekme uz ekosistēmu, un rezultātā tirgus dalÄ«bnieki var gÅ«t lielākus finansiālus zaudējumus vai peļņu. Tāpēc arvien vairāk jomās spēlētāji pielāgojas ML algoritmu darbam (klasiski piemēri ir reklāma, meklÄ“Å”ana un jau pieminētais antispam).

ArÄ« maŔīnmācÄ«Å”anās uzdevumiem ir sava Ä«patnÄ«ba: jebkuras, pat nelielas, sistēmas izmaiņas var radÄ«t lielu darbu ar modeli: darbs ar datiem, pārkvalifikācija, izvietoÅ”ana, kas var ilgt nedēļas vai mēneÅ”us. Tāpēc, jo ātrāk mainās vide, kurā jÅ«su modeļi darbojas, jo vairāk pūļu ir nepiecieÅ”ams to uzturÄ“Å”anai. Komanda var izveidot daudz sistēmu un priecāties par to, bet pēc tam tērēt gandrÄ«z visus savus resursus to uzturÄ“Å”anai, bez iespējas darÄ«t neko jaunu. Ar Ŕādu situāciju reiz saskārāmies antispama komandā. Un viņi izdarÄ«ja acÄ«mredzamu secinājumu, ka atbalsts ir jāautomatizē.

Automatizācija

Ko var automatizēt? PatiesÄ«bā gandrÄ«z viss. Esmu identificējis četras jomas, kas nosaka maŔīnmācÄ«Å”anās infrastruktÅ«ru:

  • datu vākÅ”ana;
  • papildu apmācÄ«ba;
  • izvietot;
  • testÄ“Å”ana un uzraudzÄ«ba.

Ja vide ir nestabila un pastāvÄ«gi mainās, tad visa infrastruktÅ«ra ap modeli izrādās daudz svarÄ«gāka par paÅ”u modeli. Tas var bÅ«t vecs, labs lineārais klasifikators, taču, ja pabarosit to ar pareizām funkcijām un saņemsiet labas atsauksmes no lietotājiem, tas darbosies daudz labāk nekā modernākie modeļi ar visiem zvaniņiem un svilpēm.

Atsauksmes cilpa

Å is cikls apvieno datu vākÅ”anu, papildu apmācÄ«bu un izvietoÅ”anu ā€“ faktiski visu modeļa atjaunināŔanas ciklu. Kāpēc tas ir svarÄ«gi? Apskatiet reÄ£istrācijas grafiku pa pastu:

MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

MaŔīnmācÄ«Å”anās izstrādātājs ir ieviesis anti-bot modeli, kas neļauj robotiem reÄ£istrēties e-pastā. Diagramma samazinās lÄ«dz vērtÄ«bai, kurā paliek tikai reāli lietotāji. Viss ir lieliski! Bet paiet četras stundas, robotprogrammatÅ«ra uzlabo savus skriptus, un viss atgriežas normālā stāvoklÄ«. Å ajā ievieÅ”anā izstrādātājs pavadÄ«ja mēnesi, pievienojot funkcijas un pārkvalificējot modeli, bet surogātpasta izplatÄ«tājs spēja pielāgoties četru stundu laikā.

Lai nebÅ«tu tik mokoÅ”i sāpÄ«gi un vēlāk viss nebÅ«tu jāpārtaisa, sākotnēji ir jādomā, kā izskatÄ«sies atgriezeniskā saite un ko darÄ«sim, ja mainÄ«sies vide. Sāksim ar datu vākÅ”anu ā€“ tā ir mÅ«su algoritmu degviela.

Datu vākŔana

Ir skaidrs, ka mÅ«sdienu neironu tÄ«kliem, jo ā€‹ā€‹vairāk datu, jo labāk, un tos faktiski Ä£enerē produkta lietotāji. Lietotāji var mums palÄ«dzēt, atzÄ«mējot datus, taču mēs nevaram to ļaunprātÄ«gi izmantot, jo kādā brÄ«dÄ« lietotājiem apniks pabeigt jÅ«su modeļus un viņi pārslēgsies uz citu produktu.

Viena no visbiežāk pieļautajām kļūdām (Å”eit es atsaucos uz EndrjÅ« Ng) ir pārāk liela koncentrÄ“Å”anās uz metriku testa datu kopā, nevis uz lietotāja atsauksmēm, kas patiesÄ«bā ir galvenais darba kvalitātes rādÄ«tājs, jo mēs veidojam produkts lietotājam. Ja lietotājam nav saprotams vai nepatÄ«k modeļa darbs, tad viss tiek sabojāts.

Tāpēc lietotājam vienmēr ir jābÅ«t iespējai balsot, un viņam ir jādod rÄ«ks atsauksmju sniegÅ”anai. Ja mums Ŕķiet, ka pastkastÄ«tē ir nonākusi ar finansēm saistÄ«ta vēstule, tai jāatzÄ«mē ā€œfinansesā€ un jāuzzÄ«mē poga, uz kuras lietotājs var noklikŔķināt un pateikt, ka tās nav finanses.

Atsauksmes kvalitāte

Parunāsim par lietotāju atsauksmju kvalitāti. Pirmkārt, jÅ«s un lietotājs vienā jēdzienā varat ievietot dažādas nozÄ«mes. Piemēram, jÅ«s un jÅ«su produktu vadÄ«tāji domā, ka ā€œfinansesā€ nozÄ«mē vēstules no bankas, un lietotājs domā, ka vecmāmiņas vēstule par viņas pensiju attiecas arÄ« uz finansēm. Otrkārt, ir lietotāji, kuriem bez prāta patÄ«k spiest pogas bez jebkādas loÄ£ikas. TreÅ”kārt, lietotājs var bÅ«t dziļi kļūdÄ«jies savos secinājumos. Spilgts piemērs no mÅ«su prakses ir klasifikatora ievieÅ”ana Nigērijas surogātpasts, ļoti smieklÄ«gs surogātpasta veids, kurā lietotājam tiek lÅ«gts paņemt vairākus miljonus dolāru no pēkŔņi atrasta attāla radinieka Āfrikā. Pēc Ŕī klasifikatora ievieÅ”anas mēs pārbaudÄ«jām klikŔķus ā€œNav mēstulesā€ uz Å”iem e-pastiem, un izrādÄ«jās, ka 80% no tiem bija sulÄ«gs Nigērijas surogātpasts, kas liecina, ka lietotāji var bÅ«t ļoti lētticÄ«gi.

Un neaizmirsÄ«sim, ka uz pogām var noklikŔķināt ne tikai cilvēki, bet arÄ« visa veida robotprogrammatÅ«ras, kas izliekas par pārlÅ«kprogrammu. Tātad neapstrādāta atgriezeniskā saite nav laba mācÄ«bām. Ko jÅ«s varat darÄ«t ar Å”o informāciju?

Mēs izmantojam divas pieejas:

  • Atsauksmes no saistÄ«tā ML. Piemēram, mums ir tieÅ”saistes anti-bot sistēma, kas, kā jau minēju, ātri pieņem lēmumu, pamatojoties uz ierobežotu zÄ«mju skaitu. Un ir otra, lēna sistēma, kas darbojas pēc fakta. Tajā ir vairāk datu par lietotāju, viņa uzvedÄ«bu utt. Rezultātā tiek pieņemts pārdomātākais lēmums, attiecÄ«gi tam ir augstāka precizitāte un pilnÄ«ba. Å o sistēmu darbÄ«bas atŔķirÄ«bu varat novirzÄ«t uz pirmo kā apmācÄ«bas datus. Tādējādi vienkārŔāka sistēma vienmēr centÄ«sies pietuvoties sarežģītākas sistēmas veiktspējai.
  • NoklikŔķiniet uz klasifikācijas. JÅ«s varat vienkārÅ”i klasificēt katru lietotāja klikŔķi, novērtēt tā derÄ«gumu un lietojamÄ«bu. Mēs to darām antispam pastā, izmantojot lietotāja atribÅ«tus, viņa vēsturi, sÅ«tÄ«tāja atribÅ«tus, paÅ”u tekstu un klasifikatoru rezultātu. Rezultātā mēs iegÅ«stam automātisku sistēmu, kas apstiprina lietotāju atsauksmes. Un tā kā tas ir jāpārkvalificē daudz retāk, tā darbs var kļūt par pamatu visām pārējām sistēmām. Galvenā prioritāte Å”ajā modelÄ« ir precizitāte, jo modeļa apmācÄ«ba uz neprecÄ«ziem datiem ir saistÄ«ta ar sekām.

Kamēr mēs tÄ«rām datus un tālāk apmācām savas ML sistēmas, nedrÄ«kst aizmirst par lietotājiem, jo ā€‹ā€‹mums tÅ«kstoÅ”iem, miljoniem kļūdu grafikā ir statistika, bet lietotājam katra kļūda ir traģēdija. Papildus tam, ka lietotājam kaut kā jāsadzÄ«vo ar jÅ«su kļūdu produktā, pēc atsauksmes saņemÅ”anas viņŔ sagaida, ka nākotnē lÄ«dzÄ«ga situācija tiks novērsta. Tāpēc vienmēr ir vērts dot lietotājiem iespēju ne tikai balsot, bet arÄ« koriģēt ML sistēmu uzvedÄ«bu, izveidojot, piemēram, personÄ«go heiristiku katram atsauksmju klikŔķim, pasta gadÄ«jumā tā varētu bÅ«t iespēja filtrēt Ŕādas vēstules pēc sÅ«tÄ«tāja un nosaukuma Å”im lietotājam.

Ir arī jāizveido modelis, pamatojoties uz dažiem ziņojumiem vai atbalsta izsaukumiem pusautomātiskā vai manuālā režīmā, lai citi lietotāji neciestu no līdzīgām problēmām.

Mācību heiristika

Ar Å”iem heiristikas un kruÄ·iem ir divas problēmas. Pirmais ir tas, ka arvien pieaugoÅ”o kruÄ·u skaitu ir grÅ«ti uzturēt, nemaz nerunājot par to kvalitāti un veiktspēju ilgtermiņā. Otra problēma ir tā, ka kļūda var nebÅ«t bieža, un ar dažiem klikŔķiem, lai turpinātu modeļa apmācÄ«bu, nepietiks. Å Ä·iet, ka Ŕīs divas nesaistÄ«tās sekas var ievērojami neitralizēt, ja tiek izmantota Ŕāda pieeja.

  1. Mēs izveidojam pagaidu kruķi.
  2. Mēs nosūtām datus no tā uz modeli, tas regulāri atjauno sevi, tostarp par saņemtajiem datiem. Šeit, protams, ir svarīgi, lai heiristikai būtu augsta precizitāte, lai nesamazinātu apmācību kopas datu kvalitāti.
  3. Pēc tam mēs iestatām uzraudzÄ«bu, lai iedarbinātu kruÄ·i, un, ja pēc kāda laika kruÄ·is vairs nedarbojas un ir pilnÄ«bā pārklāts ar modeli, tad varat to droÅ”i noņemt. Tagad Ŕī problēma, visticamāk, neatkārtosies.

Tātad kruķu armija ir ļoti noderīga. Galvenais, lai viņu pakalpojums būtu steidzams, nevis pastāvīgs.

Papildu apmācība

Pārkvalifikācija ir process, kurā tiek pievienoti jauni dati, kas iegÅ«ti lietotāju vai citu sistēmu atgriezeniskās saites rezultātā, un esoÅ”a modeļa apmācÄ«ba uz tiem. Papildu apmācÄ«bā var rasties vairākas problēmas:

  1. Modelis var vienkārŔi neatbalstīt papildu apmācību, bet mācīties tikai no nulles.
  2. Nekur dabas grāmatā nav rakstÄ«ts, ka papildus apmācÄ«ba noteikti uzlabos darba kvalitāti ražoÅ”anā. Bieži notiek pretējais, tas ir, ir iespējama tikai pasliktināŔanās.
  3. Izmaiņas var bÅ«t neparedzamas. Tas ir diezgan smalks punkts, ko esam identificējuÅ”i paÅ”i. Pat ja jauns modelis A/B testā uzrāda lÄ«dzÄ«gus rezultātus salÄ«dzinājumā ar paÅ”reizējo, tas nenozÄ«mē, ka tas darbosies identiski. Viņu darbs var atŔķirties tikai par vienu procentu, kas var radÄ«t jaunas kļūdas vai atgriezt vecās, kas jau ir izlabotas. Gan mēs, gan lietotāji jau zinām, kā sadzÄ«vot ar aktuālajām kļūdām, un, uzrodoties lielam skaitam jaunu kļūdu, lietotājs var arÄ« nesaprast, kas notiek, jo sagaida paredzamu uzvedÄ«bu.

Tāpēc svarÄ«gākais papildu apmācÄ«bās ir nodroÅ”ināt, lai modelis tiktu uzlabots vai vismaz nepasliktināts.

Pirmā lieta, kas nāk prātā, runājot par papildu apmācÄ«bu, ir aktÄ«vās mācÄ«Å”anās pieeja. Ko tas nozÄ«mē? Piemēram, klasifikators nosaka, vai e-pasts ir saistÄ«ts ar finansēm, un ap tā lēmuma robežu mēs pievienojam iezÄ«mētu piemēru paraugu. Tas labi darbojas, piemēram, reklāmā, kur ir daudz atsauksmju un jÅ«s varat apmācÄ«t modeli tieÅ”saistē. Un, ja atgriezeniskās saites ir maz, mēs iegÅ«stam ļoti neobjektÄ«vu paraugu attiecÄ«bā pret ražoÅ”anas datu sadalÄ«jumu, uz kura pamata nav iespējams novērtēt modeļa uzvedÄ«bu darbÄ«bas laikā.

MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

PatiesÄ«bā mÅ«su mērÄ·is ir saglabāt vecos modeļus, jau zināmos modeļus un iegÅ«t jaunus. Å eit svarÄ«ga ir nepārtrauktÄ«ba. Modelis, kura ievieÅ”anai mēs bieži piepÅ«lējāmies, jau darbojas, tāpēc varam koncentrēties uz tā veiktspēju.

Pastā tiek izmantoti dažādi modeļi: koki, lineārie, neironu tÄ«kli. Katram mēs izveidojam savu papildu apmācÄ«bas algoritmu. PapildapmācÄ«bas procesā mēs saņemam ne tikai jaunus datus, bet bieži arÄ« jaunas funkcijas, kuras ņemsim vērā visos zemāk esoÅ”ajos algoritmos.

Lineārie modeļi

Pieņemsim, ka mums ir loÄ£istikas regresija. Mēs izveidojam zaudējumu modeli no Ŕādām sastāvdaļām:

  • LogLoss par jauniem datiem;
  • regulējam jauno funkciju svarus (vecos neaiztiekam);
  • mēs arÄ« mācāmies no veciem datiem, lai saglabātu vecos modeļus;
  • un, iespējams, vissvarÄ«gākais: mēs pievienojam harmonisko regulāciju, kas garantē, ka svari nemainÄ«sies salÄ«dzinājumā ar veco modeli atbilstoÅ”i normai.

Tā kā katram Loss komponentam ir koeficienti, mēs varam izvēlēties optimālās vērtības savam uzdevumam, veicot savstarpēju validāciju vai pamatojoties uz produkta prasībām.

MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

Š”ŠµŃ€ŠµŠ²ŃŒŃ

Pāriesim pie lēmumu kokiem. Mēs esam apkopojuÅ”i Ŕādu algoritmu koku papildu apmācÄ«bai:

  1. Ražotnē darbojas 100-300 koku mežs, kas tiek apmācīts uz vecas datu kopas.
  2. Beigās mēs noņemam M = 5 gabalus un pievienojam 2M = 10 jaunus, kas apmācīti uz visu datu kopu, bet ar lielu nozīmi jaunajiem datiem, kas, protams, garantē pakāpeniskas izmaiņas modelī.

AcÄ«mredzot laika gaitā koku skaits ievērojami palielinās, un tie periodiski jāsamazina, lai atbilstu termiņiem. Lai to izdarÄ«tu, mēs izmantojam tagad visuresoÅ”o zināŔanu destilāciju (KD). ÄŖsumā par tā darbÄ«bas principu.

  1. Mums ir paÅ”reizējais "kompleksais" modelis. Mēs to izpildām apmācÄ«bas datu kopā un izejā iegÅ«stam klases varbÅ«tÄ«bas sadalÄ«jumu.
  2. Tālāk mēs apmācām studenta modeli (Å”ajā gadÄ«jumā modeli ar mazāk koku), lai atkārtotu modeļa rezultātus, izmantojot klases sadalÄ«jumu kā mērÄ·a mainÄ«go.
  3. Å eit ir svarÄ«gi atzÄ«mēt, ka mēs nekādā veidā neizmantojam datu kopas marķējumu, un tāpēc mēs varam izmantot patvaļīgus datus. Protams, mēs izmantojam datu paraugu no kaujas plÅ«smas kā apmācÄ«bu paraugu studentu modelim. Tādējādi apmācÄ«bas komplekts ļauj mums nodroÅ”ināt modeļa precizitāti, un straumes paraugs garantē lÄ«dzÄ«gu veiktspēju ražoÅ”anas sadalÄ«jumā, kompensējot apmācÄ«bas komplekta novirzes.

MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

Å o divu paņēmienu kombinācija (koku pievienoÅ”ana un periodiska to skaita samazināŔana, izmantojot zināŔanu destilāciju) nodroÅ”ina jaunu modeļu ievieÅ”anu un pilnÄ«gu nepārtrauktÄ«bu.

Ar KD palÄ«dzÄ«bu mēs veicam arÄ« dažādas darbÄ«bas ar modeļa iezÄ«mēm, piemēram, noņemam lÄ«dzekļus un apstrādājam nepilnÄ«bas. MÅ«su gadÄ«jumā mums ir vairākas svarÄ«gas statistikas pazÄ«mes (pēc sÅ«tÄ«tājiem, teksta jaucējkodiem, URL utt.), kas tiek glabāti datu bāzē un kuriem ir tendence neizdoties. Modelis, protams, nav gatavs Ŕādai notikumu attÄ«stÄ«bai, jo neveiksmju situācijas treniņu komplektā nenotiek. Šādos gadÄ«jumos mēs apvienojam KD un palielināŔanas paņēmienus: apmācot daļu datu, mēs noņemam vai atiestatām nepiecieÅ”amās funkcijas, un mēs ņemam oriÄ£inālās etiÄ·etes (paÅ”reizējā modeļa izvades), un studenta modelis iemācās atkārtot Å”o sadalÄ«jumu. .

MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

Mēs pamanÄ«jām, ka jo nopietnākas modeļa manipulācijas notiek, jo lielāks ir nepiecieÅ”ams vÄ«tnes parauga procents.

Funkcijas noņemÅ”ana, visvienkārŔākā darbÄ«ba, prasa tikai nelielu plÅ«smas daļu, jo mainās tikai dažas funkcijas, un paÅ”reizējais modelis tika apmācÄ«ts vienā un tajā paŔā komplektā - atŔķirÄ«ba ir minimāla. Lai vienkārÅ”otu modeli (vairākas reizes samazinot koku skaitu), jau ir nepiecieÅ”ami 50 lÄ«dz 50. Un svarÄ«gu statistikas pazÄ«mju izlaiÅ”anai, kas nopietni ietekmēs modeļa veiktspēju, ir nepiecieÅ”ama vēl lielāka plÅ«sma, lai izlÄ«dzinātu koku darbu. jauns pret izlaidumiem izturÄ«gs modelis uz visu veidu burtiem.

MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

FastText

Pārejam pie FastText. AtgādināŔu, ka vārda attēlojums (IegulÅ”ana) sastāv no paÅ”a vārda un visu tā burtu N-gramu, parasti trigrammu, iegulÅ”anas summas. Tā kā trigrammu var bÅ«t diezgan daudz, tiek izmantota Bucket Hashing, tas ir, visas telpas pārvērÅ”ana noteiktā fiksētā hashmapā. Rezultātā tiek iegÅ«ta svara matrica ar iekŔējā slāņa izmēru uz vārdu skaitu + spaiņiem.

Ar papildu apmācÄ«bu parādās jaunas zÄ«mes: vārdi un trigrammas. Facebook standarta papildu apmācÄ«bās nenotiek nekas bÅ«tisks. Tikai vecie svari ar krustentropiju tiek atkārtoti apmācÄ«ti uz jauniem datiem. Tādējādi netiek izmantotas jaunas iespējas, protams, Å”ai pieejai ir visi iepriekÅ” aprakstÄ«tie trÅ«kumi, kas saistÄ«ti ar modeļa neparedzamÄ«bu ražoÅ”anā. Tāpēc mēs nedaudz modificējām FastText. Mēs pievienojam visus jaunos svarus (vārdus un trigrammas), paplaÅ”inām visu matricu ar krustentropiju un pievienojam harmonisko regularizāciju pēc analoÄ£ijas ar lineāro modeli, kas garantē nenozÄ«mÄ«gas izmaiņas vecajos svaros.

MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

CNN

KonvolÅ«cijas tÄ«kli ir nedaudz sarežģītāki. Ja CNN ir pabeigti pēdējie slāņi, tad, protams, var pielietot harmonisko regularizāciju un garantēt nepārtrauktÄ«bu. Bet, ja ir nepiecieÅ”ama visa tÄ«kla papildu apmācÄ«ba, tad Ŕādu regularizāciju vairs nevar attiecināt uz visiem slāņiem. Tomēr ir iespēja apmācÄ«t papildu iegulÅ”anu, izmantojot Triplet Loss (oriÄ£ināls raksts).

TrÄ«skārÅ”s zaudējums

Izmantojot pretpikŔķerÄ“Å”anas uzdevumu kā piemēru, apskatÄ«sim Triplet Loss vispārÄ«gos terminos. Mēs ņemam savu logotipu, kā arÄ« pozitÄ«vos un negatÄ«vos citu uzņēmumu logotipu piemērus. Mēs minimizējam attālumu starp pirmo un maksimāli palielinām attālumu starp otro, mēs to darām ar nelielu atstarpi, lai nodroÅ”inātu lielāku klaÅ”u kompaktumu.

MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

Ja mēs tālāk apmācām tÄ«klu, tad mÅ«su metriskā telpa pilnÄ«bā mainās, un tā kļūst pilnÄ«gi nesaderÄ«ga ar iepriekŔējo. Tā ir nopietna problēma problēmās, kas izmanto vektorus. Lai apietu Å”o problēmu, apmācÄ«bas laikā mēs sajaucam vecos iegultos elementus.

Mēs esam pievienojuÅ”i jaunus datus apmācÄ«bas komplektam un apmācām modeļa otro versiju no nulles. Otrajā posmā mēs tālāk apmācām mÅ«su tÄ«klu (Finetuning): vispirms tiek pabeigts pēdējais slānis, un pēc tam viss tÄ«kls tiek atsaldēts. TrÄ«skārÅ”u sastādÄ«Å”anas procesā mēs aprēķinām tikai daļu iegulto, izmantojot apmācÄ«to modeli, pārējos - izmantojot veco. Tādējādi papildus apmācÄ«bu procesā nodroÅ”inām metrisko telpu v1 un v2 savietojamÄ«bu. Unikāla harmonikas regularizācijas versija.

MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

Visa arhitektūra

Ja mēs uzskatām visu sistēmu, izmantojot antispam kā piemēru, tad modeļi nav izolēti, bet ligzdoti viens otrā. Mēs uzņemam attēlus, tekstu un citas funkcijas, izmantojot CNN un Fast Text, mēs iegÅ«stam iegulÅ”anu. Tālāk uz iegulumiem tiek uzlikti klasifikatori, kas nodroÅ”ina dažādu klaÅ”u punktu skaitu (vēstuļu veidi, surogātpasts, logotipa klātbÅ«tne). Signāli un zÄ«mes jau ienāk koku mežā, lai pieņemtu galÄ«go lēmumu. AtseviŔķi klasifikatori Å”ajā shēmā ļauj labāk interpretēt sistēmas rezultātus un precÄ«zāk pārkvalificēt komponentus problēmu gadÄ«jumā, nevis ievadÄ«t visus datus lēmumu kokos neapstrādātā veidā.

MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

Rezultātā mēs garantējam nepārtrauktÄ«bu visos lÄ«meņos. ApakŔējā lÄ«menÄ« CNN un Fast Text mēs izmantojam harmonisko regularizāciju, vidusdaļā esoÅ”ajiem klasifikatoriem izmantojam arÄ« harmonisko regularizāciju un ātruma kalibrÄ“Å”anu, lai nodroÅ”inātu varbÅ«tÄ«bas sadalÄ«juma konsekvenci. Koku palielināŔana tiek apmācÄ«ta pakāpeniski vai izmantojot zināŔanu destilāciju.

Parasti Ŕādas ligzdotas maŔīnmācÄ«Å”anās sistēmas uzturÄ“Å”ana parasti ir sāpÄ«ga, jo jebkurÅ” komponents zemākā lÄ«menÄ« noved pie visas iepriekÅ” minētās sistēmas atjaunināŔanas. Bet, tā kā mÅ«su iestatÄ«jumos katrs komponents nedaudz mainās un ir saderÄ«gs ar iepriekŔējo, visu sistēmu var atjaunināt pa gabalam bez nepiecieÅ”amÄ«bas pārkvalificēt visu struktÅ«ru, kas ļauj to atbalstÄ«t bez nopietnām papildu izmaksām.

Izvietot

Mēs esam apsprieduÅ”i datu vākÅ”anu un dažādu modeļu papildu apmācÄ«bu, tāpēc mēs pārejam pie to ievieÅ”anas ražoÅ”anas vidē.

A/B testēŔana

Kā jau teicu iepriekÅ”, datu vākÅ”anas procesā mēs parasti iegÅ«stam neobjektÄ«vu paraugu, no kura nav iespējams novērtēt modeļa ražoÅ”anas veiktspēju. Tāpēc, izvietojot, modelis ir jāsalÄ«dzina ar iepriekŔējo versiju, lai saprastu, kā lietas patiesÄ«bā notiek, tas ir, jāveic A/B testi. Faktiski diagrammu izvērÅ”anas un analÄ«zes process ir diezgan ikdieniŔķs, un to var viegli automatizēt. Mēs pakāpeniski izlaižam savus modeļus 5%, 30%, 50% un 100% lietotāju, vienlaikus apkopojot visu pieejamo metriku par modeļu atbildēm un lietotāju atsauksmēm. Dažu nopietnu novirzes gadÄ«jumā mēs automātiski atceļam modeli, un citos gadÄ«jumos, kad ir savākts pietiekams lietotāju klikŔķu skaits, mēs nolemjam palielināt procentuālo daļu. Tā rezultātā mēs pilnÄ«bā automātiski piedāvājam jauno modeli 50% lietotāju, un izlaiÅ”anu visai auditorijai apstiprinās persona, lai gan Å”o darbÄ«bu var automatizēt.

Tomēr A/B testÄ“Å”anas process piedāvā optimizācijas iespējas. Fakts ir tāds, ka jebkurÅ” A/B tests ir diezgan garÅ” (mÅ«su gadÄ«jumā tas aizņem no 6 lÄ«dz 24 stundām atkarÄ«bā no atsauksmju daudzuma), kas padara to diezgan dārgu un ar ierobežotiem resursiem. Turklāt testam ir nepiecieÅ”ams pietiekami liels plÅ«smas procents, lai bÅ«tiski paātrinātu A/B testa kopējo laiku (statistiski nozÄ«mÄ«ga parauga komplektÄ“Å”ana, lai novērtētu metriku nelielā procentuālā daudzumā, var aizņemt ļoti ilgu laiku), kas padara A/B laika niÅ”u skaits ārkārtÄ«gi ierobežots. AcÄ«mredzot ir jātestē tikai perspektÄ«vākie modeļi, no kuriem diezgan daudz saņemam papildus apmācÄ«bu procesā.

Lai atrisinātu Å”o problēmu, mēs apmācÄ«jām atseviŔķu klasifikatoru, kas prognozē A/B testa panākumus. Lai to izdarÄ«tu, kā lÄ«dzekļus mēs izmantojam lēmumu pieņemÅ”anas statistiku, precizitāti, atsaukÅ”anu un citus rādÄ«tājus apmācÄ«bas kopā, atliktajā un straumes paraugā. Mēs arÄ« salÄ«dzinām modeli ar paÅ”reizējo ražoÅ”anas modeli, ar heiristiku un ņemam vērā modeļa sarežģītÄ«bu. Izmantojot visas Ŕīs funkcijas, testÄ“Å”anas vēsturē apmācÄ«ts klasifikators novērtē kandidātu modeļus, mÅ«su gadÄ«jumā tie ir koku meži, un izlemj, kuru izmantot A/B testā.

MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

IevieŔanas laikā Ŕī pieeja ļāva mums vairākas reizes palielināt veiksmīgo A/B testu skaitu.

TestēŔana un uzraudzība

Pārbaudes un uzraudzÄ«ba, dÄ«vainā kārtā, nekaitē mÅ«su veselÄ«bai, drÄ«zāk, gluži pretēji, uzlabo to un atbrÄ«vo mÅ«s no nevajadzÄ«ga stresa. TestÄ“Å”ana ļauj novērst kļūmi, un uzraudzÄ«ba ļauj to laikus atklāt, lai samazinātu ietekmi uz lietotājiem.

Šeit ir svarīgi saprast, ka agrāk vai vēlāk jūsu sistēma vienmēr kļūdīsies - tas ir saistīts ar jebkuras programmatūras izstrādes ciklu. Sistēmas izstrādes sākumā vienmēr ir daudz kļūdu, līdz viss nokārtojas un galvenais inovāciju posms ir pabeigts. Bet laika gaitā entropija dara savu, un atkal parādās kļūdas - apkārtējo komponentu degradācijas un datu izmaiņu dēļ, par ko es runāju sākumā.

Å eit es vēlos atzÄ«mēt, ka jebkura maŔīnmācÄ«Å”anās sistēma ir jāaplÅ«ko no tās peļņas viedokļa visā tās dzÄ«ves ciklā. Tālāk esoÅ”ajā diagrammā ir parādÄ«ts piemērs tam, kā sistēma darbojas, lai uztvertu retu surogātpasta veidu (lÄ«nija diagrammā ir tuvu nullei). Kādu dienu nepareizi saglabāta atribÅ«ta dēļ viņa kļuva traka. LaimÄ«gā kārtā netika novērota neparastas palaiÅ”anas iespēja; rezultātā sistēma sāka lielos daudzumos saglabāt vēstules ā€œsurogātpastaā€ mapē pie lēmumu pieņemÅ”anas robežas. Neskatoties uz seku laboÅ”anu, sistēma jau ir kļūdÄ«jusies tik daudz reižu, ka neatpelnÄ«sies pat piecu gadu laikā. Un tā ir pilnÄ«ga neveiksme no modeļa dzÄ«ves cikla viedokļa.

MaŔīnmācīŔanās darbība pakalpojumā Mail.ru Mail

Tāpēc tāda vienkārÅ”a lieta kā monitorings var kļūt par atslēgu modeļa dzÄ«vē. Papildus standarta un acÄ«mredzamajiem rādÄ«tājiem mēs ņemam vērā modeļa atbilžu un punktu sadalÄ«jumu, kā arÄ« galveno funkciju vērtÄ«bu sadalÄ«jumu. Izmantojot KL novirzi, mēs varam salÄ«dzināt paÅ”reizējo sadalÄ«jumu ar vēsturisko vai A/B testā esoŔās vērtÄ«bas ar pārējo straumi, kas ļauj pamanÄ«t anomālijas modelÄ« un savlaicÄ«gi atsaukt izmaiņas.

Vairumā gadÄ«jumu mēs izlaižam savas pirmās sistēmu versijas, izmantojot vienkārÅ”u heiristiku vai modeļus, kurus turpmāk izmantosim kā uzraudzÄ«bu. Piemēram, mēs uzraugām NER modeli, salÄ«dzinot ar parastajiem konkrētiem tieÅ”saistes veikaliem, un, ja klasifikatora pārklājums salÄ«dzinājumā ar tiem samazinās, tad mēs saprotam iemeslus. Vēl viens noderÄ«gs heiristikas lietojums!

Rezultāti

Vēlreiz apskatīsim galvenās raksta idejas.

  • Fibdeck. Mēs vienmēr domājam par lietotāju: kā viņŔ sadzÄ«vos ar mÅ«su kļūdām, kā viņŔ varēs par tām ziņot. Neaizmirstiet, ka lietotāji nav tikai atgriezeniskās saites avots apmācÄ«bas modeļiem, un tas ir jādzÄ“Å” ar ML palÄ«gsistēmu palÄ«dzÄ«bu. Ja nav iespējams savākt signālu no lietotāja, tad meklējam alternatÄ«vus atgriezeniskās saites avotus, piemēram, pieslēgtas sistēmas.
  • Papildu apmācÄ«ba. Å eit galvenais ir nepārtrauktÄ«ba, tāpēc mēs paļaujamies uz paÅ”reizējo ražoÅ”anas modeli. Mēs apmācām jaunos modeļus, lai tie daudz neatŔķirtos no iepriekŔējā harmonikas regularizācijas un tamlÄ«dzÄ«gu triku dēļ.
  • Izvietot. Automātiskā izvietoÅ”ana, kuras pamatā ir metrika, ievērojami samazina modeļu ievieÅ”anas laiku. Statistikas uzraudzÄ«ba un lēmumu pieņemÅ”anas sadalÄ«jums, lietotāju kritienu skaits ir obligāts jÅ«su mierÄ«gam miegam un produktÄ«vai nedēļas nogalei.

Es ceru, ka tas palīdzēs jums ātrāk uzlabot ML sistēmas, ātrāk tās laist tirgū un padarīt tās uzticamākas un mazāk stresa.

Avots: www.habr.com

Pievieno komentāru