Böyük Adron Kollayderi və Odnoklassniki

Habré-də maşın öyrənməsi müsabiqələrinin mövzusunu davam etdirərək, oxucuları daha iki platforma ilə tanış etmək istərdik. Onlar əlbəttə ki, kaggle qədər böyük deyillər, lakin mütləq diqqətə layiqdirlər.

Böyük Adron Kollayderi və Odnoklassniki

Şəxsən mən bir neçə səbəbə görə kaggle-ni çox sevmirəm:

  • birincisi, orada yarışlar çox vaxt bir neçə ay davam edir və aktiv iştirak çox səy tələb edir;
  • ikincisi, ictimai nüvələr (ictimai həllər). Kaggle tərəfdarları onlara Tibet rahiblərinin sakitliyi ilə yanaşmağı məsləhət görürlər, amma əslində bir və ya iki ay ərzində çalışdığınız bir şeyin qəfildən hər kəs üçün gümüş nimçəyə qoyulması çox ayıbdır.

Xoşbəxtlikdən başqa platformalarda maşın öyrənmə yarışmaları keçirilir və bu yarışlardan bir neçəsi müzakirə olunacaq.

IDAO SNA Hackathon 2019
Rəsmi dil: İngilis,
təşkilatçılar: Yandex, Sberbank, HSE
Rəsmi rus dili,
təşkilatçılar: Mail.ru Group
Onlayn raund: 15 yanvar - 11 fevral 2019-cu il;
Yerində Final: 4-6 aprel 2019-cu il
onlayn - fevralın 7-dən martın 15-dək;
oflayn - martın 30-dan aprelin 1-dək.
Böyük Adron Kollayderindəki hissəcik haqqında müəyyən məlumat toplusundan (trayektoriya, impuls və digər kifayət qədər mürəkkəb fiziki parametrlər) istifadə edərək, onun muon olub-olmadığını müəyyənləşdirin.
Bu bəyanatdan 2 vəzifə müəyyən edildi:
- birində sadəcə proqnozunuzu göndərməli idiniz,
- və digərində - proqnozlaşdırma üçün tam kod və model və icra iş vaxtı və yaddaşdan istifadə ilə bağlı kifayət qədər ciddi məhdudiyyətlərə məruz qaldı.
SNA Hackathon müsabiqəsi üçün 2018-ci ilin fevral-mart ayları üçün istifadəçi xəbər lentlərindəki açıq qruplardan məzmun nümayişi qeydləri toplanıb. Test dəstində martın son həftəsi və yarısı var. Jurnaldakı hər bir girişdə nələrin və kimə göstərildiyi, həmçinin istifadəçinin bu məzmuna necə reaksiya verməsi haqqında məlumatlar var: onu qiymətləndirdi, şərh etdi, məhəl qoymadı və ya lentdən gizlətdi.
SNA Hackathon-un vəzifələrinin mahiyyəti Odnoklassniki sosial şəbəkəsinin hər bir istifadəçisini "sinif" alacaq yazıları mümkün qədər yuxarı qaldırmaqla öz lentini sıralamaqdır.
Onlayn mərhələdə tapşırıq 3 hissəyə bölündü:
1. vəzifələri müxtəlif əməkdaşlıq xüsusiyyətlərinə görə sıralayın
2. yazıları ehtiva etdikləri şəkillərə əsasən sıralayın
3. yazıları ehtiva etdikləri mətnə ​​görə sıralayın
Kompleks fərdi metrik, ROC-AUC kimi bir şey İstifadəçi tərəfindən orta ROC-AUC
Birinci mərhələ üçün mükafatlar - N yerlər üçün köynəklər, yarış zamanı yaşayış və yeməklərin ödənildiyi ikinci mərhələyə keçid
İkinci mərhələ - ??? (Müəyyən səbəblərdən mükafatlandırma mərasimində iştirak etmədim və sonda mükafatların nə olduğunu öyrənə bilmədim). Qalib komandanın bütün üzvlərinə noutbuk vəd etdilər
Birinci mərhələ üçün mükafatlar - 100 ən yaxşı iştirakçı üçün köynəklər, Moskvaya səyahət, yarış zamanı yaşayış və yeməklərin ödənildiyi ikinci mərhələyə keçid. Həmçinin, birinci mərhələnin sonuna yaxın 3-ci mərhələdə 1 tapşırıq üzrə ən yaxşılar üçün mükafatlar elan edildi: hər kəs RTX 2080 TI video kartı qazandı!
İkinci mərhələ komanda mərhələsi idi, komandalar 2-5 nəfərdən ibarət idi, mükafatlar:
1-ci yer - 300 rubl
2-ci yer - 200 rubl
3-ci yer - 100 rubl
münsiflər heyətinin mükafatı - 100 rubl
Rəsmi teleqram qrupu, ~190 iştirakçı, ingilis dilində ünsiyyət, suallar cavab üçün bir neçə gün gözləməli oldu Teleqramda rəsmi qrup, ~1500 iştirakçı, iştirakçılar və təşkilatçılar arasında tapşırıqların aktiv müzakirəsi
Təşkilatçılar sadə və təkmil iki əsas həll yolu təqdim etdilər. Sadə üçün 16 GB-dan az RAM tələb olunur, qabaqcıl yaddaş isə 16 GB-a sığmırdı. Eyni zamanda, bir az irəliyə baxaraq, iştirakçılar qabaqcıl həlli əhəmiyyətli dərəcədə üstələyə bilmədilər. Bu həllərin işə salınmasında heç bir çətinlik yox idi. Qeyd etmək lazımdır ki, qabaqcıl nümunədə həlli təkmilləşdirməyə haradan başlamaq lazım olduğuna işarə edən bir şərh var idi. İştirakçılar tərəfindən asanlıqla keçilən tapşırıqların hər biri üçün əsas primitiv həllər təqdim edildi. Müsabiqənin ilk günlərində iştirakçılar bir sıra çətinliklərlə üzləşiblər: birincisi, məlumatlar Apache Parket formatında verilib və Python və parket paketinin bütün kombinasiyaları səhvsiz işləməyib. İkinci çətinlik poçt buludundan şəkilləri yükləmək idi; hazırda çoxlu məlumatı bir anda yükləməyin asan yolu yoxdur. Nəticədə bu problemlər iştirakçıları bir-iki gün gecikdirdi.

IDAO. Birinci mərhələ

Tapşırıq müon/qeyri-müon hissəciklərini xüsusiyyətlərinə görə təsnif etmək idi. Bu tapşırığın əsas xüsusiyyəti təlim məlumatlarında çəki sütununun olması idi, təşkilatçıların özləri bu sətirin cavabına inam kimi şərh etdilər. Problem onda idi ki, bir neçə sıra mənfi çəkilərdən ibarət idi.

Böyük Adron Kollayderi və Odnoklassniki

İpucu ilə xətt haqqında bir neçə dəqiqə düşündükdən sonra (işarə sadəcə çəki sütununun bu xüsusiyyətinə diqqət çəkdi) və bu qrafiki qurduqdan sonra 3 variantı yoxlamaq qərarına gəldik:

1) mənfi çəkiləri olan xətlərin hədəfini çevirin (və müvafiq olaraq çəkilər)
2) çəkiləri minimum dəyərə köçürün ki, onlar 0-dan başlasınlar
3) simli çəkilərdən istifadə etməyin

Üçüncü variant ən pis oldu, lakin ilk ikisi nəticəni yaxşılaşdırdı, ən yaxşı variant №1 idi ki, bu da bizi dərhal birinci tapşırıqda hazırkı ikinci, ikincidə isə birinci yerə gətirdi.
Böyük Adron Kollayderi və Odnoklassniki
Növbəti addımımız itkin dəyərlər üçün məlumatları nəzərdən keçirmək idi. Təşkilatçılar bizə çoxlu çatışmayan dəyərlərin olduğu artıq daranmış məlumatları verdilər və onlar -9999 ilə əvəz olundu.

MatchedHit_{X,Y,Z}[N] və MatchedHit_D{X,Y,Z}[N] sütunlarında çatışmayan dəyərləri və yalnız N=2 və ya 3 olduqda tapdıq. Anladığımız kimi, bəzi hissəciklər yox idi. bütün 4 detektoru keçin və ya 3-cü və ya 4-cü lövhədə dayandı. Məlumatda həmçinin Lextra_{X,Y}[N] sütunları var idi ki, bunlar da görünür MatchedHit_{X,Y,Z}[N] ilə eyni şeyi təsvir edir, lakin bir növ ekstrapolyasiyadan istifadə edir. Bu cüzi təxminlər Lextra_{X,Y}[N]-nin MatchedHit_{X,Y,Z}[N]-də çatışmayan dəyərlərlə əvəz edilə biləcəyini təklif etdi (yalnız X və Y koordinatları üçün). MatchedHit_Z[N] medianla yaxşı dolduruldu. Bu manipulyasiyalar bizə hər iki tapşırıqda 1-ci aralıq yeri tutmağa imkan verdi.

Böyük Adron Kollayderi və Odnoklassniki

Nəzərə alsaq ki, birinci mərhələdə qalib gəlmək üçün heç nə vermədilər, biz orada dayana bilərdik, amma davam etdik, gözəl şəkillər çəkdik və yeni xüsusiyyətlər əldə etdik.

Böyük Adron Kollayderi və Odnoklassniki

Məsələn, biz müəyyən etdik ki, dörd detektor plitəsinin hər biri ilə bir hissəciyin kəsişmə nöqtələrini çəksək, görə bilərik ki, plitələrin hər birindəki nöqtələr tərəf nisbəti 5 ilə 4 arasında olan 5 düzbucaqlıda qruplaşdırılıb və mərkəzləşib. nöqtəsi (0,0) və birinci düzbucaqlıda heç bir nöqtə yoxdur.

Plitənin nömrəsi / düzbucaqlı ölçüləri 1 2 3 4 5
Lövhə 1 500 × 625 1000 × 1250 2000 × 2500 4000 × 5000 8000 × 10000
Lövhə 2 520 × 650 1040 × 1300 2080 × 2600 4160 × 5200 8320 × 10400
Lövhə 3 560 × 700 1120 × 1400 2240 × 2800 4480 × 5600 8960 × 11200
Lövhə 4 600 × 750 1200 × 1500 2400 × 3000 4800 × 6000 9600 × 12000

Bu ölçüləri təyin etdikdən sonra hər bir hissəcik üçün 4 yeni kateqoriyalı xüsusiyyət əlavə etdik - hər bir lövhə ilə kəsişdiyi düzbucaqlıların sayı.

Böyük Adron Kollayderi və Odnoklassniki

Biz də müşahidə etdik ki, hissəciklər sanki mərkəzdən yanlara səpilir və bu səpələnmənin “keyfiyyətini” hansısa yolla qiymətləndirmək ideyası yaranır. İdeal olaraq, yəqin ki, uçuş nöqtəsindən asılı olaraq bir növ "ideal" parabola tapmaq və ondan kənarlaşmanı qiymətləndirmək mümkün olardı, lakin biz özümüzü "ideal" düz xəttlə məhdudlaşdırdıq. Hər bir giriş nöqtəsi üçün belə ideal düz xətlər quraraq, biz bu düz xəttdən hər bir hissəciyin trayektoriyasının standart kənarlaşmasını hesablaya bildik. Hədəf = 1 üçün orta sapma 152, hədəf = 0 üçün isə 390 olduğundan, biz bu xüsusiyyəti şərti olaraq yaxşı kimi qiymətləndirdik. Və həqiqətən də, bu xüsusiyyət dərhal ən faydalı olanların üstünə çıxdı.

Biz sevindik və əlavə 4 xüsusiyyət kimi hər bir hissəcik üçün ideal düz xəttdən bütün 4 kəsişmə nöqtəsinin sapmasını əlavə etdik (və onlar da yaxşı işlədilər).

Təşkilatçılar tərəfindən müsabiqənin mövzusuna dair elmi məqalələrin bizə verdiyi keçidlər belə bir fikrə sövq etdi ki, biz bu problemi həll edən ilklərdən çox uzağıq və ola bilsin ki, hansısa xüsusi proqram təminatı var. Github-da IsMuonSimple, IsMuon, IsMuonLoose metodlarının tətbiq olunduğu anbar aşkar edərək, onları kiçik dəyişikliklərlə saytımıza köçürdük. Metodların özləri çox sadə idi: məsələn, enerji müəyyən bir hədddən azdırsa, o, müon deyil, əks halda müondur. Bu cür sadə xüsusiyyətlər açıq-aydın gradient gücləndirilməsinin istifadəsi vəziyyətində artım verə bilmədi, buna görə də biz eşikə daha bir əhəmiyyətli "məsafə" əlavə etdik. Bu xüsusiyyətlər də bir qədər təkmilləşdirilmişdir. Ola bilsin ki, mövcud üsulları daha dərindən təhlil etməklə daha güclü üsullar tapmaq və işarələrə əlavə etmək mümkün olub.

Müsabiqənin sonunda biz ikinci problemin “sürətli” həllini bir az dəyişdirdik; sonda o, aşağıdakı məqamlarda əsas xəttdən fərqləndi:

  1. Mənfi çəkisi olan cərgələrdə hədəf tərsinə çevrildi
  2. MatchedHit_{X,Y,Z}[N]-də çatışmayan dəyərlər dolduruldu
  3. Dərinlik 7-ə endirildi
  4. Öyrənmə dərəcəsi 0.1-ə endirildi (0.19 idi)

Nəticədə, biz daha çox funksiyanı sınadıq (çox uğurlu deyil), parametrləri seçdik və catboost, lightgbm və xgboost-u öyrətdik, müxtəlif proqnozlar qarışmasını sınadıq və şəxsi açmazdan əvvəl ikinci tapşırığı inamla qazandıq və birincidə biz ən yaxşılardan biri olduq. liderlər.

Şəxsi açdıqdan sonra 10-ci tapşırığa görə 1-cu, ikinciyə görə 3-cü yerdə olduq. Bütün liderlər bir-birinə qarışdı və təkbətəkdə sürət libboarddan daha yüksək idi. Görünür, məlumatlar zəif təbəqələşdirilib (və ya məsələn, özəl bölmədə mənfi çəkiləri olan sətirlər yox idi) və bu, bir az əsəbi idi.

SNA Hackathon 2019 - Mətnlər. Birinci mərhələ

Tapşırıq Odnoklassniki sosial şəbəkəsindəki istifadəçi yazılarını ehtiva edən mətnə ​​əsasən sıralamaq idi; mətndən əlavə, yazının daha bir neçə xüsusiyyətləri (dil, sahibi, yaradılma tarixi və vaxtı, baxılma tarixi və vaxtı) ).

Mətnlə işləməyə klassik yanaşma kimi iki variantı qeyd edərdim:

  1. Oxşar sözlərin oxşar vektorları olması üçün hər bir sözü n ölçülü vektor fəzasına çəkmək (daha ətraflı bizim məqalə), sonra ya mətn üçün orta sözü tapmaq, ya da sözlərin nisbi mövqeyini nəzərə alan mexanizmlərdən istifadə etmək (CNN, LSTM/GRU).
  2. Dərhal bütün cümlələrlə işləyə bilən modellərdən istifadə. Məsələn, Bert. Teorik olaraq, bu yanaşma daha yaxşı işləməlidir.

Bu, mətnlərlə ilk təcrübəm olduğu üçün kiməsə öyrətmək düzgün olmazdı, ona görə də özüm öyrədəcəm. Müsabiqənin əvvəlində özümə verəcəyim məsləhətlər bunlardır:

  1. Bir şey öyrətmək üçün qaçmazdan əvvəl məlumatlara baxın! Mətnin özündən əlavə, məlumatların bir neçə sütunu var idi və onlardan məndən daha çox sıxmaq mümkün idi. Ən sadə şey, bəzi sütunlar üçün nəzərdə tutulan hədəf kodlamasını etməkdir.
  2. Bütün məlumatlardan öyrənməyin! Çoxlu məlumat (təxminən 17 milyon sıra) var idi və fərziyyələri yoxlamaq üçün onların hamısından istifadə etmək qətiyyən lazım deyildi. Təlim və ilkin emal olduqca ləng gedirdi və mənim daha maraqlı fərziyyələri sınamağa vaxtım olardı.
  3. <Mübahisəli məsləhət> Qatil modeli axtarmağa ehtiyac yoxdur. Mən uzun müddət Elmo və Berti tapmağa sərf etdim, ümid edirəm ki, onlar məni dərhal yüksək yerə aparacaqlar və nəticədə rus dili üçün FastText-in əvvəlcədən öyrədilmiş əlavələrindən istifadə etdim. Elmo ilə daha yaxşı sürət əldə edə bilmədim və hələ də Bertlə bunu anlamağa vaxtım yox idi.
  4. <Mübahisəli məsləhət> Bir öldürücü xüsusiyyət axtarmağa ehtiyac yoxdur. Məlumatlara baxanda gördüm ki, mətnlərin təxminən 1 faizində əslində mətn yoxdur! Ancaq bəzi mənbələrə keçidlər var idi və mən saytı açan və başlıq və təsviri çıxaran sadə bir analizator yazdım. Bu, yaxşı bir fikir kimi görünürdü, amma sonra özümü tutdum və bütün mətnlər üçün bütün bağlantıları təhlil etmək qərarına gəldim və yenidən çox vaxt itirdim. Bütün bunlar yekun nəticədə əhəmiyyətli bir irəliləyiş təmin etmədi (baxmayaraq ki, mən məsələn, kök salmağı başa düşdüm).
  5. Klassik xüsusiyyətlər işləyir. Biz Google, məsələn, “mətn xüsusiyyətləri kaggle”, hər şeyi oxuyub əlavə edirik. TF-IDF, mətn uzunluğu, sözlər və durğu işarələrinin miqdarı kimi statistik xüsusiyyətləri təkmilləşdirməyi təmin etdi.
  6. DateTime sütunları varsa, onları bir neçə ayrı xüsusiyyətə (saat, həftənin günləri və s.) təhlil etməyə dəyər. Hansı xüsusiyyətlərin vurğulanmalı olduğu qrafiklərdən/bəzi ölçülərdən istifadə etməklə təhlil edilməlidir. Burada, bir şıltaqlıqla, mən hər şeyi düzgün etdim və lazımi xüsusiyyətləri vurğuladım, amma normal analiz zərər verməzdi (məsələn, finalda etdiyimiz kimi).

Böyük Adron Kollayderi və Odnoklassniki

Müsabiqənin nəticəsi olaraq bir keras modelini söz konvertasiyası ilə, digərini isə LSTM və GRU əsasında hazırladım. Onların hər ikisi rus dili üçün əvvəlcədən öyrədilmiş FastText daxiletmələrindən istifadə etdi (mən bir sıra başqa yerləşdirmələri sınadım, lakin bunlar ən yaxşı işləyənlər idi). Proqnozları ortalaşdırdıqdan sonra 7 iştirakçı arasında son 76-ci yeri tutdum.

Birinci mərhələdən sonra nəşr olundu Nikolay Anokhinin məqaləsi, ikinci yeri tutdu (o, müsabiqədən kənarda iştirak etdi) və onun həlli müəyyən mərhələyə qədər mənimkini təkrarladı, lakin sorğu-əsas-dəyər diqqət mexanizmi sayəsində daha da irəli getdi.

İkinci mərhələ OK & IDAO

Yarışların ikinci mərhələləri demək olar ki, ardıcıl olaraq keçdi, ona görə də onlara birlikdə baxmaq qərarına gəldim.

Əvvəlcə mən və yeni əldə edilmiş komanda Mail.ru şirkətinin təsirli ofisində olduq, burada bizim vəzifəmiz birinci mərhələdən üç trekin modellərini birləşdirmək idi - mətn, şəkillər və əməkdaşlıq. Bunun üçün 2 gündən bir az çox vaxt ayrıldı ki, bu da çox az oldu. Əslində biz birləşmədən heç bir qazanc əldə etmədən yalnız birinci mərhələdəki nəticələrimizi təkrarlaya bildik. Sonda 5-ci yeri tutduq, lakin mətn modelindən istifadə edə bilmədik. Digər iştirakçıların həllərinə nəzər saldıqdan sonra belə görünür ki, mətnləri qruplaşdırmağa və onları əməkdaşlıq modelinə əlavə etməyə çalışmağa dəyərdi. Bu mərhələnin əlavə təsiri yeni təəssüratlar, sərin iştirakçılar və təşkilatçılarla görüş və ünsiyyət, habelə IDAO-nun final mərhələsinin nəticələrinə təsir göstərə biləcək ciddi yuxu çatışmazlığı idi.

IDAO 2019-un Final mərhələsində tapşırıq Yandex taksi sürücülərinin hava limanında sifariş gözləmə müddətini proqnozlaşdırmaq idi. 2-ci mərhələdə 3 tapşırıq = 3 hava limanı müəyyən edildi. Hər bir hava limanı üçün altı ay ərzində taksi sifarişlərinin sayı haqqında dəqiqə-dəqiqə məlumat verilir. Və test məlumatları olaraq, son 2 həftə ərzində sifarişlər üzrə növbəti ay və dəqiqə-dəqiqə məlumatları verildi. Vaxt az idi (1,5 gün), tapşırıq kifayət qədər konkret idi, komandadan yalnız bir nəfər yarışa gəldi - və nəticədə sona doğru kədərli bir yer oldu. Maraqlı fikirlərə xarici məlumatlardan istifadə cəhdləri daxildir: hava, tıxaclar və Yandex taksi sifarişi statistikası. Təşkilatçılar bu hava limanlarının nə olduğunu açıqlamasalar da, bir çox iştirakçı onların Şeremetyevo, Domodedovo və Vnukovo olduğunu güman edirdi. Müsabiqədən sonra bu fərziyyə təkzib edilsə də, xüsusiyyətlər, məsələn, Moskva hava məlumatları həm qiymətləndirmədə, həm də liderlər lövhəsində nəticələri yaxşılaşdırdı.

Nəticə

  1. ML yarışları sərin və maraqlıdır! Burada məlumatların təhlili, hiyləgər modellər və üsullarda bacarıqların istifadəsini tapa bilərsiniz və sadəcə sağlam düşüncə xoşdur.
  2. ML artıq eksponent olaraq böyüyən nəhəng biliklər toplusudur. Müxtəlif sahələrlə (siqnallar, şəkillər, cədvəllər, mətn) tanış olmağı qarşıma məqsəd qoydum və artıq öyrənməyə nə qədər ehtiyac olduğunu dərk etdim. Məsələn, bu müsabiqələrdən sonra mən öyrənmək qərarına gəldim: klasterləşdirmə alqoritmləri, gradient gücləndirici kitabxanalarla işləmək üçün qabaqcıl üsullar (xüsusən GPU-da CatBoost ilə işləmək), kapsul şəbəkələri, sorğu-açar-dəyər diqqət mexanizmi.
  3. Tək kaggle ilə deyil! Bir çox başqa müsabiqələr var ki, orada ən azı bir köynək əldə etmək daha asandır və digər mükafatlar üçün daha çox şans var.
  4. Ünsiyyət! Maşın öyrənməsi və məlumatların təhlili sahəsində artıq böyük bir icma var, teleqramda tematik qruplar var, Mail.ru, Yandex və digər şirkətlərdən ciddi insanlar suallara cavab verir və yeni başlayanlara və bu sahədə yolunu davam etdirməyə kömək edir. biliyin.
  5. Əvvəlki nöqtədən ilham alan hər kəsə ziyarət etməyi məsləhət görürəm datafest — mayın 10-11-də Moskvada keçiriləcək böyük pulsuz konfrans.

Mənbə: www.habr.com

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