Mail.ru Mail-də maşın öyrənməsinin işləməsi

Mail.ru Mail-də maşın öyrənməsinin işləməsi

Highload++ və DataFest Minsk 2019-da çıxışlarım əsasında.

Bu gün çoxları üçün poçt onlayn həyatın ayrılmaz hissəsidir. Onun köməyi ilə biz işgüzar yazışmalar aparırıq, maliyyə, mehmanxana sifarişləri, sifarişlərin yerləşdirilməsi və s. ilə bağlı hər cür vacib məlumatları saxlayırıq. 2018-ci ilin ortalarında biz poçtun inkişafı üçün məhsul strategiyasını tərtib etdik. Müasir poçt necə olmalıdır?

Poçt olmalıdır ağıllı, yəni istifadəçilərə artan məlumat həcmində naviqasiyada kömək etmək: filtrasiya etmək, strukturlaşdırmaq və ən rahat şəkildə təmin etmək. O olmalıdır faydalı, müxtəlif vəzifələri birbaşa poçt qutunuzda həll etməyə imkan verir, məsələn, cərimələri ödəyin (təəssüf ki, istifadə etdiyim bir funksiya). Və eyni zamanda, əlbəttə ki, poçt informasiyanın qorunmasını təmin etməli, spamları kəsməli və hakerlikdən qorumalıdır, yəni təhlükəsiz.

Bu sahələr bir sıra əsas problemləri müəyyənləşdirir, onların çoxu maşın öyrənməsi ilə effektiv şəkildə həll edilə bilər. Burada strategiyanın bir hissəsi kimi hazırlanmış artıq mövcud funksiyaların nümunələri verilmişdir - hər bir istiqamət üçün bir.

  • Smart cavab. Poçtda ağıllı cavab funksiyası var. Neyroşəbəkə məktubun mətnini təhlil edir, onun mənasını və məqsədini anlayır və nəticədə üç ən uyğun cavab variantını təklif edir: müsbət, mənfi və neytral. Bu, məktublara cavab verərkən vaxta qənaət etməyə kömək edir, həm də tez-tez qeyri-standart və gülməli şəkildə cavab verir.
  • E-poçtların qruplaşdırılmasıonlayn mağazalardakı sifarişlərlə bağlıdır. Biz tez-tez onlayn alış-veriş edirik və bir qayda olaraq, mağazalar hər sifariş üçün bir neçə e-poçt göndərə bilər. Məsələn, ən böyük xidmət olan AliExpress-dən bir sifariş üçün çoxlu məktublar gəlir və biz hesabladıq ki, terminal halda onların sayı 29-a çata bilər. Buna görə də Adlandırılmış Müəssisənin Tanınması modelindən istifadə edərək sifariş nömrəsini çıxarırıq. və mətndəki digər məlumatlar və bütün hərfləri bir mövzuda qruplaşdırın. Biz həmçinin sifariş haqqında əsas məlumatları ayrıca qutuda göstəririk ki, bu da bu tip e-poçtla işləməyi asanlaşdırır.

    Mail.ru Mail-də maşın öyrənməsinin işləməsi

  • Antifishing. Fişinq xüsusilə təhlükəli fırıldaq e-poçt növüdür, onun köməyi ilə təcavüzkarlar maliyyə məlumatlarını (istifadəçinin bank kartları daxil olmaqla) və girişləri əldə etməyə çalışırlar. Bu cür məktublar xidmətin göndərdiyi real məktubları, o cümlədən vizual olaraq təqlid edir. Buna görə də, Computer Vision-un köməyi ilə biz böyük şirkətlərin (məsələn, Mail.ru, Sber, Alfa) loqolarını və məktublarının dizayn tərzini tanıyırıq və bunu spam və fişinq təsnifatçılarımızda mətn və digər xüsusiyyətlərlə birlikdə nəzərə alırıq. .

Maşın öyrənmə

Ümumiyyətlə e-poçtda maşın öyrənməsi haqqında bir az. Poçt yüksək yüklənmiş sistemdir: 1,5 milyon DAU istifadəçisi üçün serverlərimizdən gündə orta hesabla 30 milyard məktub keçir. Təxminən 30 maşın öyrənmə sistemi bütün lazımi funksiyaları və xüsusiyyətləri dəstəkləyir.

Hər bir məktub bütün təsnifat boru kəmərindən keçir. Əvvəlcə spamları kəsdik və yaxşı e-poçtlar buraxdıq. İstifadəçilər çox vaxt antispamın işini görmürlər, çünki spamın 95-99%-i hətta müvafiq qovluğa düşmür. Spamın tanınması sistemimizin çox vacib hissəsidir və ən çətini, çünki antispam sahəsində müdafiə və hücum sistemləri arasında daimi uyğunlaşma mövcuddur ki, bu da komandamız üçün davamlı mühəndislik problemini təmin edir.

Sonra insanlardan və robotlardan məktubları ayırırıq. İnsanlardan gələn e-poçtlar ən vacibdir, ona görə də biz onlar üçün Ağıllı Cavab kimi funksiyaları təqdim edirik. Robotlardan gələn məktublar iki hissəyə bölünür: tranzaksiya - bunlar xidmətlərdən vacib məktublardır, məsələn, satınalmaların və ya otel rezervasiyalarının təsdiqi, maliyyə və məlumat xarakterli - bunlar biznes reklamları, endirimlərdir.

Hesab edirik ki, tranzaksiya e-poçtları şəxsi yazışmalarla eyni əhəmiyyətə malikdir. Onlar əlimizin altında olmalıdır, çünki biz tez-tez sifariş və ya aviabilet bronu haqqında məlumatı tez tapmalıyıq və biz bu məktubları axtarmağa vaxt sərf edirik. Buna görə də, rahatlıq üçün biz onları avtomatik olaraq altı əsas kateqoriyaya ayırırıq: səyahət, sifarişlər, maliyyə, biletlər, qeydiyyatlar və nəhayət, cərimələr.

Məlumat məktubları dərhal cavab tələb etməyən ən böyük və ehtimal ki, daha az vacib qrupdur, çünki istifadəçi belə bir məktubu oxumasa, onun həyatında əhəmiyyətli heç nə dəyişməyəcək. Yeni interfeysimizdə onları iki mövzuya yığırıq: sosial şəbəkələr və xəbər bülletenləri, beləliklə, gələnlər qutusunu vizual olaraq təmizləyirik və yalnız vacib mesajları görünən buraxırıq.

Mail.ru Mail-də maşın öyrənməsinin işləməsi

Istismar

Çox sayda sistem əməliyyatda bir çox çətinliklərə səbəb olur. Axı, modellər, hər hansı bir proqram kimi, zaman keçdikcə pisləşir: funksiyalar pozulur, maşınlar sıradan çıxır, kod əyri olur. Bundan əlavə, məlumatlar daim dəyişir: yeniləri əlavə olunur, istifadəçi davranış nümunələri dəyişdirilir və s., buna görə də lazımi dəstəyi olmayan model zamanla daha pis və pis işləyəcəkdir.

Unutmamalıyıq ki, maşın öyrənməsi istifadəçilərin həyatına nə qədər dərindən nüfuz edərsə, onların ekosistemə təsiri bir o qədər çox olar və nəticədə bazar oyunçuları bir o qədər çox maliyyə itkiləri və ya mənfəət əldə edə bilər. Buna görə, artan sayda sahələrdə oyunçular ML alqoritmlərinin işinə uyğunlaşırlar (klassik nümunələr reklam, axtarış və artıq qeyd olunan antispamdır).

Həmçinin, maşın öyrənmə tapşırıqlarının özünəməxsusluğu var: sistemdəki hər hansı, hətta cüzi dəyişiklik də modellə çox iş yarada bilər: məlumatlarla işləmək, yenidən hazırlıq, yerləşdirmə, həftələr və ya aylar çəkə bilər. Buna görə də, modellərinizin işlədiyi mühit nə qədər tez dəyişirsə, onları saxlamaq üçün bir o qədər çox səy tələb olunur. Komanda bir çox sistem yarada və bundan məmnun ola bilər, lakin sonra demək olar ki, bütün resurslarını yeni bir şey etmək imkanı olmadan onları saxlamağa sərf edə bilər. Bir dəfə antispam komandasında belə bir vəziyyətlə qarşılaşdıq. Və onlar dəstəyin avtomatlaşdırılmasının lazım olduğu aydın nəticəyə gəldilər.

Avtomatlaşdırma

Nə avtomatlaşdırıla bilər? Demək olar ki, hər şey, əslində. Mən maşın öyrənmə infrastrukturunu müəyyən edən dörd sahəni müəyyən etdim:

  • məlumatların toplanması;
  • əlavə təlim;
  • yerləşdirmək;
  • sınaq və monitorinq.

Ətraf mühit qeyri-sabitdirsə və daim dəyişirsə, modelin ətrafındakı bütün infrastruktur modelin özündən daha vacib olur. Bu, yaxşı köhnə xətti təsnifat ola bilər, lakin siz onu düzgün xüsusiyyətlərlə bəsləsəniz və istifadəçilərdən yaxşı rəy alsanız, o, bütün zəng və fit səsləri ilə ən müasir modellərdən daha yaxşı işləyəcək.

Əlaqə Döngüsü

Bu dövr məlumatların toplanması, əlavə təlim və yerləşdirməni birləşdirir - əslində, bütün model yeniləmə dövrü. Niyə vacibdir? Poçtda qeydiyyat cədvəlinə baxın:

Mail.ru Mail-də maşın öyrənməsinin işləməsi

Maşın öyrənmə tərtibatçısı botların e-poçtda qeydiyyatdan keçməsinə mane olan anti-bot modeli tətbiq etdi. Qrafik yalnız real istifadəçilərin qaldığı bir dəyərə enir. Hər şey əladır! Ancaq dörd saat keçir, botlar skriptlərini düzəldir və hər şey normala qayıdır. Bu tətbiqdə, tərtibatçı funksiyalar əlavə etmək və modeli yenidən hazırlamaq üçün bir ay sərf etdi, lakin spamer dörd saat ərzində uyğunlaşa bildi.

Bu qədər dözülməz dərəcədə ağrılı olmamaq və sonradan hər şeyi yenidən etmək məcburiyyətində qalmamaq üçün əvvəlcə geribildirim dövrəsinin necə görünəcəyini və ətraf mühit dəyişərsə, nə edəcəyimizi düşünməliyik. Məlumatların toplanması ilə başlayaq - bu, alqoritmlərimiz üçün yanacaqdır.

Məlumatların toplanması

Aydındır ki, müasir neyron şəbəkələri üçün nə qədər çox məlumat olarsa, bir o qədər yaxşıdır və onlar, əslində, məhsulun istifadəçiləri tərəfindən yaradılır. İstifadəçilər məlumatları işarələməklə bizə kömək edə bilər, lakin biz bundan sui-istifadə edə bilmərik, çünki bir anda istifadəçilər modellərinizi tamamlamaqdan yorulacaq və başqa məhsula keçəcəklər.

Ən çox yayılmış səhvlərdən biri (burada mən Andrew Ng-ə istinad edirəm) istifadəçinin rəyinə deyil, test məlumat dəstinə həddən artıq diqqət yetirməkdir ki, bu da əslində iş keyfiyyətinin əsas ölçüsüdür. istifadəçi üçün məhsuldur. İstifadəçi modelin işini başa düşmürsə və ya bəyənmirsə, hər şey xarab olur.

Buna görə də istifadəçi həmişə səs verə bilməlidir və ona rəy bildirmək üçün alət verilməlidir. Əgər poçt qutusuna maliyyə ilə bağlı məktubun gəldiyini düşünsək, onu “maliyyə” qeyd etməli və istifadəçinin vura biləcəyi düyməni çəkməli və bunun maliyyə olmadığını söyləməliyik.

Əlaqə keyfiyyəti

Gəlin istifadəçi rəyinin keyfiyyətindən danışaq. Birincisi, siz və istifadəçi bir anlayışa müxtəlif mənalar qoya bilərsiniz. Məsələn, siz və məhsul menecerləriniz düşünürsünüz ki, “maliyyə” bankdan gələn məktublar deməkdir və istifadəçi nənənin pensiyası ilə bağlı məktubunun da maliyyəyə aid olduğunu düşünür. İkincisi, elə istifadəçilər var ki, heç bir məntiq olmadan düymələri basmağı ağılsızcasına sevirlər. Üçüncüsü, istifadəçi öz qənaətlərində dərindən yanıla bilər. Təcrübəmizdən parlaq bir nümunə təsnifatçının tətbiqidir Nigeriya spam, istifadəçidən Afrikada qəfil tapılan uzaq qohumundan bir neçə milyon dollar götürməsi istənən çox gülməli spam növü. Bu təsnifatı tətbiq etdikdən sonra biz bu e-poçtlarda "Spam deyil" kliklərini yoxladıq və məlum oldu ki, onların 80% -i Nigeriya spamlarıdır ki, bu da istifadəçilərin son dərəcə inandırıcı ola biləcəyini göstərir.

Unutmayaq ki, düymələr təkcə insanlar tərəfindən deyil, həm də brauzer kimi görünən hər cür botlar tərəfindən kliklana bilər. Beləliklə, xam rəy öyrənmək üçün yaxşı deyil. Bu məlumatla nə edə bilərsiniz?

Biz iki yanaşmadan istifadə edirik:

  • Əlaqədar ML-dən rəy. Məsələn, bizim onlayn anti-bot sistemimiz var, qeyd etdiyim kimi, məhdud sayda işarələrə əsaslanaraq tez qərar verir. Və faktdan sonra işləyən ikinci, yavaş bir sistem var. İstifadəçi, onun davranışı və s. haqqında daha çox məlumat var. Nəticədə, ən məlumatlı qərar qəbul edilir, müvafiq olaraq daha yüksək dəqiqliyə və tamlığa malikdir. Bu sistemlərin işindəki fərqi təlim məlumatları kimi birinciyə yönəldə bilərsiniz. Beləliklə, daha sadə bir sistem həmişə daha mürəkkəb olanın performansına yaxınlaşmağa çalışacaqdır.
  • Təsnifat klikləyin. Siz sadəcə olaraq hər bir istifadəçi klikini təsnif edə, etibarlılığını və yararlılığını qiymətləndirə bilərsiniz. Biz bunu antispam poçtunda istifadəçi atributlarından, onun tarixçəsindən, göndərici atributlarından, mətnin özündən və təsnifatçıların nəticələrindən istifadə edərək edirik. Nəticədə istifadəçi rəyini təsdiqləyən avtomatik sistem əldə edirik. Və daha az tez-tez yenidən hazırlanmalı olduğundan, onun işi bütün digər sistemlər üçün əsas ola bilər. Bu modeldə əsas prioritet dəqiqlikdir, çünki modeli qeyri-dəqiq məlumatlar üzərində öyrətmək nəticələrlə doludur.

Məlumatları təmizləyərkən və ML sistemlərimizi daha da öyrədərkən biz istifadəçiləri də unutmamalıyıq, çünki bizim üçün qrafikdəki minlərlə, milyonlarla səhv statistikadır, istifadəçi üçün isə hər bir səhv faciədir. İstifadəçinin məhsuldakı səhvinizlə bir şəkildə yaşamalı olması ilə yanaşı, rəy aldıqdan sonra gələcəkdə oxşar vəziyyətin aradan qaldırılacağını gözləyir. Buna görə də, istifadəçilərə yalnız səs vermək deyil, həm də ML sistemlərinin davranışını düzəltmək, məsələn, hər bir rəy klik üçün şəxsi evristika yaratmaq həmişə dəyərlidir; poçt vəziyyətində bu, filtrləmə qabiliyyəti ola bilər. bu istifadəçi üçün göndərici və başlığa görə bu cür məktublar.

Digər istifadəçilərin oxşar problemlərdən əziyyət çəkməməsi üçün siz həmçinin bəzi hesabatlar və ya yarı avtomatik və ya əl rejimində dəstək üçün sorğular əsasında model qurmalısınız.

Öyrənmək üçün evristika

Bu evristika və qoltuqaltılarla iki problem var. Birincisi odur ki, getdikcə artan sayı qoltuqağaqların uzun müddət ərzində keyfiyyətini və performansını bir yana qoyaq, saxlamaq çətindir. İkinci problem, səhv tez-tez olmaya bilər və modeli daha da öyrətmək üçün bir neçə klik kifayət etməyəcəkdir. Belə görünür ki, aşağıdakı yanaşma tətbiq olunarsa, bu iki əlaqəsiz təsir əhəmiyyətli dərəcədə zərərsizləşdirilə bilər.

  1. Müvəqqəti qoltuqağacı yaradırıq.
  2. Ondan modelə məlumat göndəririk, o, alınan məlumatlar da daxil olmaqla, mütəmadi olaraq özünü yeniləyir. Burada, əlbəttə ki, təlim toplusunda məlumatların keyfiyyətini aşağı salmamaq üçün evristikanın yüksək dəqiqliyə malik olması vacibdir.
  3. Sonra qoltuqağacı işə salmaq üçün monitorinqi təyin etdik və bir müddət sonra qoltuqağacı artıq işləmirsə və model tərəfindən tamamilə örtülürsə, onu təhlükəsiz şəkildə çıxara bilərsiniz. İndi bu problemin təkrarlanması çətin ki.

Beləliklə, qoltuqaltılar ordusu çox faydalıdır. Əsas odur ki, onların xidməti təcili və daimi deyil.

Əlavə təlim

Yenidən hazırlıq, istifadəçilərin və ya digər sistemlərin rəyi nəticəsində əldə edilmiş yeni məlumatların əlavə edilməsi və onun üzərində mövcud modelin öyrədilməsi prosesidir. Əlavə təlimlə bağlı bir neçə problem ola bilər:

  1. Model sadəcə əlavə təlimi dəstəkləməyə bilər, ancaq sıfırdan öyrənə bilər.
  2. Təbiət kitabının heç bir yerində yazılmayıb ki, əlavə təlim mütləq istehsalda işin keyfiyyətini artıracaq. Çox vaxt bunun əksi baş verir, yəni yalnız pisləşmə mümkündür.
  3. Dəyişikliklər gözlənilməz ola bilər. Bu, özümüz üçün müəyyən etdiyimiz olduqca incə bir məqamdır. A/B testində yeni model indiki ilə müqayisədə oxşar nəticələr göstərsə belə, bu onun eyni şəkildə işləyəcəyi demək deyil. Onların işi yalnız bir faizlə fərqlənə bilər ki, bu da yeni səhvlər gətirə və ya artıq düzəldilmiş köhnələri qaytara bilər. Həm biz, həm də istifadəçilər artıq mövcud səhvlərlə necə yaşamağı bilirik və çoxlu sayda yeni səhvlər yarandıqda istifadəçi də nə baş verdiyini anlamaya bilər, çünki o, proqnozlaşdırıla bilən davranışı gözləyir.

Buna görə də, əlavə təlimdə ən vacib şey modelin təkmilləşdirilməsini və ya ən azı pisləşməməsini təmin etməkdir.

Əlavə təlim dedikdə ağlımıza gələn ilk şey Aktiv Öyrənmə yanaşmasıdır. Bu nə deməkdir? Məsələn, təsnifat e-poçtun maliyyə ilə bağlı olub-olmadığını müəyyən edir və onun qərar sərhəddi ətrafında etiketli nümunələr əlavə edirik. Bu, məsələn, çoxlu rəylərin olduğu və modeli onlayn öyrədə biləcəyiniz reklamda yaxşı işləyir. Bir az geribildirim varsa, istehsal məlumatlarının paylanmasına nisbətən yüksək qərəzli bir nümunə alırıq, bunun əsasında əməliyyat zamanı modelin davranışını qiymətləndirmək mümkün deyil.

Mail.ru Mail-də maşın öyrənməsinin işləməsi

Əslində bizim məqsədimiz köhnə naxışları, artıq məlum olan modelləri qorumaq və yenilərini əldə etməkdir. Burada davamlılıq vacibdir. Tez-tez təqdim etmək üçün çox əziyyət çəkdiyimiz model artıq işləyir, buna görə də onun performansına diqqət yetirə bilərik.

Poçtda müxtəlif modellərdən istifadə olunur: ağaclar, xətti, neyron şəbəkələri. Hər biri üçün öz əlavə məşq alqoritmimizi düzəldirik. Əlavə təlim prosesində biz yalnız yeni məlumatları deyil, həm də tez-tez yeni funksiyaları alırıq ki, biz aşağıda bütün alqoritmlərdə nəzərə alacağıq.

Xətti modellər

Tutaq ki, logistik reqressiyamız var. Aşağıdakı komponentlərdən itki modeli yaradırıq:

  • Yeni məlumatlarda LogLoss;
  • yeni funksiyaların çəkilərini nizamlayırıq (köhnələrə toxunmuruq);
  • köhnə nümunələri qorumaq üçün köhnə məlumatlardan da öyrənirik;
  • və bəlkə də ən vacib şey: biz normaya uyğun olaraq çəkilərin köhnə modelə nisbətən çox dəyişməyəcəyinə zəmanət verən Harmonik Tənzimləməni əlavə edirik.

Hər bir Zərər komponentinin əmsalları olduğundan, çarpaz doğrulama və ya məhsul tələblərinə əsaslanaraq vəzifəmiz üçün optimal dəyərləri seçə bilərik.

Mail.ru Mail-də maşın öyrənməsinin işləməsi

Ağaclar

Gəlin qərar ağaclarına keçək. Ağacların əlavə təlimi üçün aşağıdakı alqoritmi tərtib etdik:

  1. İstehsal köhnə məlumat dəsti ilə öyrədilmiş 100-300 ağacdan ibarət meşəni idarə edir.
  2. Sonda M = 5 ədədi çıxarırıq və bütün məlumat dəstində öyrədilmiş, lakin yeni məlumatlar üçün yüksək çəki ilə 2M = 10 yenisini əlavə edirik ki, bu da təbii olaraq modeldə artımlı dəyişikliyə zəmanət verir.

Aydındır ki, zaman keçdikcə ağacların sayı çox artır və vaxta uyğun gəlmək üçün vaxtaşırı azaldılmalıdır. Bunun üçün biz hazırda hər yerdə yayılmış Bilik Distilləsindən (KD) istifadə edirik. Onun fəaliyyət prinsipi haqqında qısaca.

  1. Bizdə indiki “mürəkkəb” model var. Biz onu təlim məlumat dəstində işlədirik və çıxışda sinif ehtimalının paylanmasını əldə edirik.
  2. Sonra, hədəf dəyişən kimi sinif paylanmasından istifadə edərək, modelin nəticələrini təkrarlamaq üçün tələbə modelini (bu halda daha az ağacı olan model) öyrədirik.
  3. Burada qeyd etmək vacibdir ki, biz heç bir şəkildə məlumat dəsti işarələməsindən istifadə etmirik və buna görə də ixtiyari verilənlərdən istifadə edə bilərik. Əlbəttə ki, biz tələbə modeli üçün təlim nümunəsi kimi döyüş axınından məlumat nümunəsindən istifadə edirik. Beləliklə, təlim dəsti bizə modelin düzgünlüyünü təmin etməyə imkan verir və axın nümunəsi təlim toplusunun qərəzliyini kompensasiya edərək istehsalın paylanması üzrə oxşar performansa zəmanət verir.

Mail.ru Mail-də maşın öyrənməsinin işləməsi

Bu iki texnikanın birləşməsi (ağacların əlavə edilməsi və Bilik Distilləsindən istifadə edərək onların sayını vaxtaşırı azaldılması) yeni nümunələrin tətbiqini və tam davamlılığı təmin edir.

KD-nin köməyi ilə biz model xüsusiyyətləri üzərində də müxtəlif əməliyyatları yerinə yetiririk, məsələn, funksiyaları silmək və boşluqlar üzərində işləmək. Bizim vəziyyətimizdə verilənlər bazasında saxlanılan, uğursuzluğa düçar olan bir sıra mühüm statistik xüsusiyyətlərə (göndərənlər, mətn hashləri, URL-lər və s.) malikik. Model, əlbəttə ki, hadisələrin belə inkişafına hazır deyil, çünki təlim dəstində uğursuzluq halları baş vermir. Belə hallarda biz KD və artırma üsullarını birləşdiririk: verilənlərin bir hissəsi üçün məşq edərkən biz lazımi funksiyaları çıxarırıq və ya sıfırlayırıq və orijinal etiketləri (cari modelin çıxışları) götürürük və tələbə modeli bu paylanmanı təkrarlamağı öyrənir. .

Mail.ru Mail-də maşın öyrənməsinin işləməsi

Biz gördük ki, daha ciddi model manipulyasiyası baş verərsə, tələb olunan ip nümunəsinin faizi daha çox olur.

Xüsusiyyətlərin çıxarılması, ən sadə əməliyyat, axının yalnız kiçik bir hissəsini tələb edir, çünki yalnız bir neçə xüsusiyyət dəyişir və mövcud model eyni dəstdə öyrədilir - fərq minimaldır. Modeli sadələşdirmək üçün (ağacların sayını bir neçə dəfə azaltmaqla) artıq 50-dən 50-yə qədər tələb olunur.Və modelin işinə ciddi təsir edəcək mühüm statistik xüsusiyyətlərin buraxılması üçün, işini düzəltmək üçün daha çox axın tələb olunur. bütün növ hərflərdə buraxılmaya davamlı yeni model.

Mail.ru Mail-də maşın öyrənməsinin işləməsi

Sürətli mətn

Gəlin FastText-ə keçək. Nəzərinizə çatdırım ki, sözün təsviri (yerləşdirilməsi) sözün özünün və onun bütün hərf N-qramlarının, adətən triqramların daxil edilməsinin cəmindən ibarətdir. Kifayət qədər çox triqram ola biləcəyi üçün, Bucket Hashing istifadə olunur, yəni bütün məkanı müəyyən bir sabit hasshmapa çevirmək. Nəticədə çəki matrisi sözlərin sayı + vedrələr üçün daxili təbəqənin ölçüsü ilə əldə edilir.

Əlavə təlimlə yeni əlamətlər görünür: sözlər və triqramlar. Facebook-dan standart təqib təlimində əhəmiyyətli heç nə baş vermir. Yalnız çarpaz entropiyaya malik köhnə çəkilər yeni məlumatlar əsasında yenidən hazırlanır. Beləliklə, yeni xüsusiyyətlərdən istifadə edilmir, təbii ki, bu yanaşma modelin istehsalda gözlənilməzliyi ilə bağlı yuxarıda təsvir edilən bütün çatışmazlıqlara malikdir. Buna görə də biz FastText-i bir az dəyişdirdik. Bütün yeni çəkiləri (sözlər və triqramlar) əlavə edirik, bütün matrisi çarpaz entropiya ilə genişləndiririk və köhnə çəkilərdə əhəmiyyətsiz dəyişikliyə zəmanət verən xətti modelə bənzətməklə harmonik nizamlanma əlavə edirik.

Mail.ru Mail-də maşın öyrənməsinin işləməsi

CNN

Konvolutional şəbəkələr bir az daha mürəkkəbdir. CNN-də son təbəqələr tamamlanırsa, əlbəttə ki, harmonik tənzimləmə tətbiq edə və davamlılığa zəmanət verə bilərsiniz. Ancaq bütün şəbəkənin əlavə hazırlığı tələb olunarsa, bu cür nizamlama artıq bütün təbəqələrə tətbiq edilə bilməz. Bununla belə, Triplet Loss (Triplet Loss) vasitəsilə tamamlayıcı yerləşdirmələri öyrətmək variantı var (orijinal məqalə).

Üçqat itki

Nümunə olaraq anti-fişinq tapşırığından istifadə edərək, ümumi mənada Triplet Loss-a baxaq. Biz öz loqotipimizlə yanaşı, digər şirkətlərin loqolarının müsbət və mənfi nümunələrini də götürürük. Birincisi arasındakı məsafəni minimuma endiririk və ikincisi arasındakı məsafəni maksimuma çatdırırıq, siniflərin daha çox kompaktlığını təmin etmək üçün bunu kiçik bir boşluqla edirik.

Mail.ru Mail-də maşın öyrənməsinin işləməsi

Şəbəkəni daha da məşq etdirsək, metrik məkanımız tamamilə dəyişir və əvvəlki ilə tamamilə uyğun gəlmir. Bu vektorlardan istifadə edən problemlərdə ciddi problemdir. Bu problemin öhdəsindən gəlmək üçün məşq zamanı köhnə yerləşdirmələri qarışdıracağıq.

Biz təlim dəstinə yeni məlumatlar əlavə etdik və modelin ikinci versiyasını sıfırdan öyrədirik. İkinci mərhələdə şəbəkəmizi daha da məşq edirik (İncə tənzimləmə): əvvəlcə sonuncu təbəqə tamamlanır, sonra isə bütün şəbəkə dondurulur. Üçlüklərin tərtibi prosesində, öyrədilmiş modeldən istifadə edərək, yerləşdirmənin yalnız bir hissəsini, qalan hissəsini köhnəsini istifadə edərək hesablayırıq. Beləliklə, əlavə təlim prosesində biz v1 və v2 metrik fəzalarının uyğunluğunu təmin edirik. Harmonik nizamlamanın unikal versiyası.

Mail.ru Mail-də maşın öyrənməsinin işləməsi

Bütün memarlıq

Nümunə olaraq antispamdan istifadə edən bütün sistemi nəzərdən keçirsək, modellər təcrid olunmur, lakin bir-birinin içərisində yuvalanır. Şəkillər, mətn və digər funksiyalar çəkirik, CNN və Fast Text istifadə edərək daxiletmələr əldə edirik. Sonra, müxtəlif siniflər üçün xalları (hərflərin növləri, spam, loqotipin olması) təmin edən əlavələrin üstünə təsnifatçılar tətbiq olunur. Son qərarın verilməsi üçün siqnallar və işarələr artıq ağaclar meşəsinə daxil olur. Bu sxemdəki fərdi təsnifatçılar, bütün məlumatları xam formada qərar ağaclarına daxil etməkdənsə, sistemin nəticələrini daha yaxşı şərh etməyə və problem yarandıqda komponentləri daha dəqiq şəkildə yenidən hazırlamağa imkan verir.

Mail.ru Mail-də maşın öyrənməsinin işləməsi

Nəticədə, biz hər səviyyədə davamlılığa zəmanət veririk. CNN və Fast Text-də aşağı səviyyədə harmonik nizamlamadan istifadə edirik, ortadakı təsnifatçılar üçün ehtimal paylanmasının ardıcıllığı üçün harmonik nizamlama və dərəcə kalibrləməsindən də istifadə edirik. Yaxşı, ağacın artırılması tədricən və ya Bilik Distilləsindən istifadə etməklə öyrədilir.

Ümumiyyətlə, belə bir yuvalanmış maşın öyrənmə sistemini saxlamaq adətən ağrıdır, çünki aşağı səviyyədə olan hər hansı bir komponent yuxarıdakı bütün sistemin yenilənməsinə səbəb olur. Lakin bizim konfiqurasiyamızda hər bir komponent bir qədər dəyişdiyindən və əvvəlki ilə uyğunlaşdığından, bütün strukturun yenidən hazırlanmasına ehtiyac olmadan bütün sistem hissə-hissə yenilənə bilər ki, bu da onu ciddi əlavə xərclər olmadan dəstəkləməyə imkan verir.

Yerləşdirmək

Biz müxtəlif növ modellər üçün məlumatların toplanması və əlavə təlimi müzakirə etdik, ona görə də onların istehsal mühitində tətbiqinə keçirik.

A/B testi

Daha əvvəl dediyim kimi, məlumatların toplanması prosesində biz adətən qərəzli bir nümunə alırıq, ondan modelin istehsal göstəricilərini qiymətləndirmək mümkün deyil. Buna görə də, yerləşdirmə zamanı işlərin əslində necə getdiyini başa düşmək üçün modeli əvvəlki versiya ilə müqayisə etmək, yəni A/B testlərini aparmaq lazımdır. Əslində, diaqramların yayılması və təhlili prosesi olduqca müntəzəmdir və asanlıqla avtomatlaşdırıla bilər. Model cavabları və istifadəçi rəyləri üzrə bütün mövcud ölçüləri toplayarkən, biz modellərimizi tədricən istifadəçilərin 5%, 30%, 50% və 100%-nə çatdırırıq. Bəzi ciddi kənarlaşmalar halında, biz avtomatik olaraq modeli geri qaytarırıq və digər hallarda, kifayət qədər sayda istifadəçi klikləri toplayıb, faizi artırmaq qərarına gəlirik. Nəticədə, biz yeni modeli istifadəçilərin 50%-nə tamamilə avtomatik çatdırırıq və bu addım avtomatlaşdırıla bilsə də, bütün auditoriyaya təqdimat şəxs tərəfindən təsdiqlənəcək.

Bununla belə, A/B test prosesi optimallaşdırma üçün yer təklif edir. Fakt budur ki, hər hansı bir A/B testi kifayət qədər uzundur (bizim vəziyyətimizdə rəyin miqdarından asılı olaraq 6 ilə 24 saat arasında vaxt tələb olunur), bu da onu kifayət qədər baha və məhdud resurslara çevirir. Bundan əlavə, A/B testinin ümumi vaxtını əhəmiyyətli dərəcədə sürətləndirmək üçün test üçün kifayət qədər yüksək axın faizi tələb olunur (kiçik faizlə ölçüləri qiymətləndirmək üçün statistik əhəmiyyətli nümunənin cəlb edilməsi çox uzun vaxt apara bilər), bu da A/B yuvalarının sayı son dərəcə məhduddur. Aydındır ki, biz yalnız ən perspektivli modelləri sınaqdan keçirməliyik, onlardan əlavə təlim zamanı kifayət qədər çox şey alırıq.

Bu problemi həll etmək üçün biz A/B testinin uğurunu proqnozlaşdıran ayrıca təsnifat hazırladıq. Bunu etmək üçün biz xüsusiyyətlər kimi təlim toplusunda, təxirə salınmışda və axındakı nümunədə qərar qəbul etmə statistikasını, Dəqiqlik, Geri çağırma və digər ölçüləri götürürük. Biz həmçinin modeli hazırkı istehsalda olan, evristika ilə müqayisə edirik və modelin Mürəkkəbliyini nəzərə alırıq. Bütün bu xüsusiyyətlərdən istifadə edərək, test tarixçəsi üzrə təlim keçmiş təsnifatçı namizəd modelləri qiymətləndirir, bizim vəziyyətimizdə bunlar ağac meşələridir və A/B testində hansının istifadə olunacağına qərar verir.

Mail.ru Mail-də maşın öyrənməsinin işləməsi

Tətbiq zamanı bu yanaşma bizə uğurlu A/B testlərinin sayını bir neçə dəfə artırmağa imkan verdi.

Test və Monitorinq

Test və monitorinq, qəribə də olsa, sağlamlığımıza zərər vermir, əksinə, onu yaxşılaşdırır və bizi lazımsız stressdən azad edir. Test uğursuzluğun qarşısını almağa, monitorinq isə istifadəçilərə təsirini azaltmaq üçün onu vaxtında aşkar etməyə imkan verir.

Burada başa düşmək vacibdir ki, gec-tez sisteminiz həmişə səhvlər edəcək - bu, hər hansı bir proqram təminatının inkişaf dövrü ilə bağlıdır. Sistemin inkişafının başlanğıcında hər şey qaydasına düşənə və innovasiyanın əsas mərhələsi tamamlanana qədər həmişə çoxlu səhvlər olur. Lakin zaman keçdikcə entropiya öz təsirini göstərir və səhvlər yenidən ortaya çıxır - ətrafdakı komponentlərin deqradasiyası və əvvəldə danışdığım məlumatların dəyişməsi səbəbindən.

Burada qeyd etmək istərdim ki, hər hansı bir maşın öyrənmə sistemi bütün ömrü boyu qazanc baxımından nəzərə alınmalıdır. Aşağıdakı qrafik nadir spam növünü tutmaq üçün sistemin necə işlədiyinə dair bir nümunə göstərir (qrafikdəki xətt sıfıra yaxındır). Bir gün, yanlış keşlənmiş atribut səbəbindən o, dəli oldu. Xoşbəxtlikdən, anormal tetikleme üçün heç bir monitorinq aparılmadı; nəticədə sistem qərar qəbulu sərhədində "spam" qovluğuna böyük miqdarda məktublar saxlamağa başladı. Nəticələri düzəltməsinə baxmayaraq, sistem artıq o qədər səhvlər edib ki, hətta beş ildən sonra da özünü doğrultmayacaq. Və bu, modelin həyat dövrü baxımından tam uğursuzluqdur.

Mail.ru Mail-də maşın öyrənməsinin işləməsi

Buna görə də, monitorinq kimi sadə bir şey bir modelin həyatında əsas ola bilər. Standart və aşkar ölçülərə əlavə olaraq, biz model cavablarının və xalların paylanmasını, həmçinin əsas xüsusiyyət dəyərlərinin paylanmasını nəzərdən keçiririk. KL divergensiyasından istifadə edərək, cari paylanmanı tarixi ilə və ya A/B testindəki dəyərləri axının qalan hissəsi ilə müqayisə edə bilərik ki, bu da modeldəki anomaliyaları görməyə və dəyişiklikləri vaxtında geri qaytarmağa imkan verir.

Əksər hallarda biz sadə evristika və ya gələcəkdə monitorinq kimi istifadə etdiyimiz modellərdən istifadə edərək sistemlərin ilk versiyalarını işə salırıq. Məsələn, biz NER modelini xüsusi onlayn mağazalar üçün adi modellərlə müqayisədə izləyirik və təsnifatlandırıcı əhatə dairəsi onlarla müqayisədə azalırsa, onda səbəbləri başa düşürük. Evristikanın başqa bir faydalı istifadəsi!

Nəticələri

Məqalənin əsas fikirlərini bir daha nəzərdən keçirək.

  • Fibdeck. Biz həmişə istifadəçi haqqında düşünürük: o, bizim səhvlərimizlə necə yaşayacaq, onları necə xəbər verə biləcək. Unutmayın ki, istifadəçilər təlim modelləri üçün təmiz rəy mənbəyi deyillər və bu, köməkçi ML sistemlərinin köməyi ilə təmizlənməlidir. Əgər istifadəçidən siqnal toplamaq mümkün deyilsə, o zaman biz alternativ rəy mənbələrini, məsələn, bağlı sistemləri axtarırıq.
  • Əlavə təlim. Burada əsas şey davamlılıqdır, ona görə də biz hazırkı istehsal modelinə arxalanırıq. Harmonik nizamlanma və buna bənzər fəndlərə görə əvvəlkindən çox da fərqlənməmək üçün yeni modelləri öyrədirik.
  • Yerləşdirmək. Metriklərə əsaslanan avtomatik yerləşdirmə modellərin tətbiqi üçün vaxtı xeyli azaldır. Statistikanın monitorinqi və qərarların verilməsinin paylanması, istifadəçilərdən düşənlərin sayı sizin rahat yuxunuz və məhsuldar həftə sonunuz üçün məcburidir.

Ümid edirəm ki, bu, ML sistemlərinizi daha sürətli təkmilləşdirməyə, onları daha sürətli bazara çıxarmağa və onları daha etibarlı və daha az stressli etməyə kömək edəcək.

Mənbə: www.habr.com

Добавить комментарий