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.
- 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.
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 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
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.
- MÄs izveidojam pagaidu kruÄ·i.
- 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.
- 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:
- Modelis var vienkÄrÅ”i neatbalstÄ«t papildu apmÄcÄ«bu, bet mÄcÄ«ties tikai no nulles.
- 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.
- 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Ä.
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.
ŠŠµŃŠµŠ²ŃŃ
PÄriesim pie lÄmumu kokiem. MÄs esam apkopojuÅ”i Å”Ädu algoritmu koku papildu apmÄcÄ«bai:
- RažotnÄ darbojas 100-300 koku mežs, kas tiek apmÄcÄ«ts uz vecas datu kopas.
- 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.
- 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.
- 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.
- Å 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.
Å 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. .
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.
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.
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 (
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.
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.
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Ä.
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Ä.
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.
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