Large Hadron Collider è Odnoklassniki

Cuntinuendu u tema di i cuncorsi di machine learning in Habré, vulemu presentà i lettori à duie altre piattaforme. Di sicuru, ùn sò micca enormi cum'è kaggle, ma certamente meritanu attenzione.

Large Hadron Collider è Odnoklassniki

In modu persunale, ùn mi piace micca troppu kaggle per parechje ragioni:

  • prima, i cuncorsi sò spessu duranu parechji mesi, è a participazione attiva richiede assai sforzu;
  • in segundu, i kernels publichi (soluzioni publiche). L'aderenti di Kaggle cunsiglianu di trattà cù a calma di i monaci tibetani, ma in a realtà hè una vergogna quandu qualcosa chì avete travagliatu per un mesi o dui, di colpu, si trova in un platter d'argentu per tutti.

Fortunatamente, i cuncorsi di apprendimentu automaticu sò tenuti in altre piattaforme, è un paru di sti cuncorsi seranu discututi.

IDAO SNA Hackathon 2019
Lingua ufficiale: inglese,
urganizatori: Yandex, Sberbank, HSE
Lingua ufficiale russa,
urganizatori: Mail.ru Group
Round Online: 15 di ghjennaghju - 11 di ferraghju 2019;
Finale in situ: 4-6 aprile 2019
in linea - da u 7 di ferraghju à u 15 di marzu;
offline - da u 30 di marzu à u 1 d'aprile.
Utilizendu un certu settore di dati nantu à una particella in u Large Hadron Collider (traiettoria, momentum, è altri parametri fisici piuttostu cumplessi), determina s'ellu hè un muone o micca.
Da questa dichjarazione, 2 compiti sò stati identificati:
- in unu avete solu mandà a vostra predizione,
- è in l'altru - u codice cumpletu è u mudellu per a prediczione, è l'esekzione era sottumessu à restrizioni abbastanza strette nantu à u tempu di esecuzione è l'usu di memoria
Per a cumpetizione SNA Hackathon, i logs di mostra di cuntenutu da i gruppi aperti in i nutizie di l'utilizatori per u ferraghju-marzu 2018 sò stati cullati. U set di teste cuntene l'ultima settimana è a mità di marzu. Ogni entrata in u logu cuntene infurmazione nantu à ciò chì hè statu dimustratu è à quale, è ancu cumu l'utilizatore hà reagitu à stu cuntenutu: valutatu, cummentatu, ignoratu, o ammucciatu da u feed.
L'essenza di i travaglii di l'SNA Hackathon hè di classificà ogni utilizatore di a reta suciale Odnoklassniki u so feed, elevendu u più altu pussibule quelli posti chì riceveranu una "classe".
In u stadiu online, u compitu hè statu divisu in 3 parti:
1. classificà i posti secondu e diverse caratteristiche di cullaburazione
2. classificà i posti basatu annantu à l'imaghjini chì cuntenenu
3. classificà i posti secondu u testu chì cuntenenu
Cumplessu metrica persunalizata, qualcosa cum'è ROC-AUC Media ROC-AUC per utilizatori
Premii per a prima tappa - T-shirts per N posti, passaghju à a seconda tappa, induve l'alloghju è i pasti sò stati pagati durante a cumpetizione
Seconda fase - ??? (Per certi mutivi, ùn aghju micca statu presente à a cerimonia di premiazione è ùn aghju micca pussutu sapè ciò chì i premii eranu à a fine). Anu prumessu laptops à tutti i membri di a squadra vincitrice
Premii per a prima tappa - T-shirts per i 100 migliori participanti, passaghju à a seconda tappa, induve u viaghju à Mosca, l'alloghju è i pasti durante a cumpetizione sò stati pagati. Inoltre, versu a fine di a prima tappa, i premii sò stati annunziati per u megliu in 3 compiti in u stadiu 1: tutti vincenu una carta video RTX 2080 TI!
A seconda tappa era una tappa di squadra, squadre custituite da 2 à 5 persone, premii:
1u postu - 300 000 rubles
2u postu - 200 000 rubles
3u postu - 100 000 rubles
premiu di a ghjuria - 100 000 rubles
Gruppu ufficiale di telegramma, ~ 190 participanti, cumunicazione in inglese, dumande anu da aspittà parechji ghjorni per una risposta Gruppu ufficiale in telegramma, ~ 1500 participanti, discussione attiva di i travaglii trà i participanti è l'urganizatori
L'urganizatori furnianu dui suluzioni basi, simplici è avanzati. Semplice necessitava menu di 16 GB di RAM, è a memoria avanzata ùn si adattava micca in 16. À u listessu tempu, fighjendu un pocu avanti, i participanti ùn anu micca pussutu superà significativamente a suluzione avanzata. Ùn ci era micca difficultà à lancià sti suluzioni. Semu devi esse nutatu chì in l'esempiu avanzatu ci era un cummentariu cù un suggerimentu induve cumincià à migliurà a suluzione. Soluzioni primitivi basi sò stati furniti per ognunu di i travaglii, chì eranu facilmente superati da i participanti. In i primi ghjorni di a cumpetizione, i participanti anu scontru parechje difficultà: prima, i dati sò stati dati in u formatu Apache Parquet, è micca tutte e cumminazzioni di Python è u pacchettu di parquet hà travagliatu senza errore. A seconda difficultà era di scaricà l'imaghjini da u nuvulu di mail; à u mumentu ùn ci hè micca un modu faciule per scaricà una grande quantità di dati in una volta. In u risultatu, sti prublemi ritardanu i participanti per un paru di ghjorni.

IDAO. Prima tappa

U compitu era di classificà e particelle muoni / non muoni secondu e so caratteristiche. A funzione chjave di questu compitu era a prisenza di una colonna di pesu in i dati di furmazione, chì l'urganizatori stessi interpretavanu cum'è cunfidenza in a risposta per questa linea. U prublema era chì uni pochi di fila cuntenenu pesi negativi.

Large Hadron Collider è Odnoklassniki

Dopu avè pensatu per uni pochi di minuti nantu à a linea cù u suggerimentu (u suggerimentu simpricimenti attirò l'attenzione à sta funzione di a colonna di pesu) è custruisce stu graficu, avemu decisu di verificà 3 opzioni:

1) invertite u mira di e linee cù pesi negativi (è pesi in cunseguenza)
2) sposta i pesi à u valore minimu in modu chì partenu da 0
3) ùn aduprate micca pesi di corda

A terza opzione hè stata a peghju, ma i primi dui hà migliuratu u risultatu, u megliu era l'opzione N ° 1, chì ci hà purtatu immediatamente à u sicondu postu attuale in u primu compitu è ​​u primu in u sicondu.
Large Hadron Collider è Odnoklassniki
U nostru passu prossimu era di rivisione e dati per i valori mancanti. L'urganizatori ci anu datu dighjà dati pettinati, induve ci eranu uni pochi di valori mancanti, è sò stati rimpiazzati da -9999.

Avemu trovu i valori mancanti in i culonni MatchedHit_{X,Y,Z}[N] è MatchedHit_D{X,Y,Z}[N], è solu quandu N = 2 o 3. Comu avemu capitu, certi particeddi ùn anu micca passà tutti i 4 detectors, è si firmò sia nantu à a 3ª o 4ª piastra. I dati cuntenenu ancu e colonne Lextra_{X,Y}[N], chì apparentemente descrizanu a listessa cosa cum'è MatchedHit_{X,Y,Z}[N], ma aduprendu qualchì tipu d'estrapolazione. Queste scarse ipotesi suggerenu chì Lextra_{X,Y}[N] puderia esse sustituitu per i valori mancanti in MatchedHit_{X,Y,Z}[N] (per coordenate X è Y solu). MatchedHit_Z[N] era ben pienu di a mediana. Queste manipulazioni ci anu permessu di ghjunghje à u 1u postu intermediu in i dui travaglii.

Large Hadron Collider è Odnoklassniki

Cunsiderendu ch'elli ùn anu datu nunda per a vittoria di a prima tappa, avemu pussutu firmà quì, ma avemu cuntinuatu, disegnà qualchi belli ritratti è ghjuntu cù novi funziunalità.

Large Hadron Collider è Odnoklassniki

Per esempiu, avemu trovu chì, se tracemu i punti di intersezzione di una particella cù ognuna di e quattru piastri di detettore, pudemu vede chì i punti nantu à ognuna di e piastre sò raggruppati in 5 rectanguli cù un rapportu d'aspettu di 4 à 5 è centrati à u puntu (0,0), è in Ùn ci sò punti in u primu rettangulu.

Num. piastra / dimensioni rectangulu 1 2 3 4 5
piastra 1 500x625 1000x1250 2000x2500 4000x5000 8000x10000
piastra 2 520x650 1040x1300 2080x2600 4160x5200 8320x10400
piastra 3 560x700 1120x1400 2240x2800 4480x5600 8960x11200
piastra 4 600x750 1200x1500 2400x3000 4800x6000 9600x12000

Dopu avè determinatu queste dimensioni, aghjustemu 4 novi caratteristiche categuriche per ogni particella - u numeru di u rectangulu in quale intersecte ogni platu.

Large Hadron Collider è Odnoklassniki

Avemu ancu nutatu chì e particeddi parevanu sparghje à i lati da u centru è l'idea hè ghjunta per evaluà in qualchì manera a "qualità" di sta scattering. Ideale, puderia esse prubabilmente pussibule di cullà cù una parabola "ideale" secondu u puntu di partenza è stima a deviazione da questu, ma avemu limitatu à a linea recta "ideale". Dopu avè custruitu tali linee dritte ideali per ogni puntu di entrata, pudemu calculà a deviazione standard di a trajectoria di ogni particella da questa linea retta. Siccomu a deviazione media per u target = 1 era 152, è per u target = 0 era 390, avemu tentativamente valutatu sta funzione cum'è bona. È veramente, sta funzione hà subitu subitu à a cima di i più utili.

Eramu felici è aghjunghjenu a deviazione di tutti i punti di intersezzione 4 per ogni particella da a linea retta ideale cum'è 4 funzioni supplementari (è anu ancu travagliatu bè).

Ligami à articuli scientifichi nantu à u tema di u cuncorsu, datu à noi da l'urganizatori, hà incitatu l'idea chì simu luntanu da i primi per risolve stu prublema è, forsi, ci hè un tipu di software specializatu. Dopu avè scupertu un repository in github induve i metudi IsMuonSimple, IsMuon, IsMuonLoose sò stati implementati, avemu trasferitu à u nostru situ cù mudificazioni minori. I metudi stessi eranu assai sèmplice: per esempiu, se l'energia hè menu di un certu limitu, ùn hè micca un muone, altrimente hè un muon. Tali caratteristiche simplici ovviamente ùn puderanu micca dà un aumentu in u casu di l'usu di l'incrementu di gradiente, cusì avemu aghjustatu una altra "distanza" significativa à u sogliu. Queste caratteristiche sò ancu ligeramente migliurate. Forsi, analizendu i metudi esistenti più in fondu, era pussibule di truvà metudi più forti è aghjunghje à i segni.

À a fine di a cuncurrenza, avemu aghjustatu un pocu a suluzione "rapida" per u sicondu prublema; à a fine, hè sfarente da a basa in i seguenti punti:

  1. In fila cù pesu negativu u mira hè stata invertita
  2. Riempite i valori mancanti in MatchedHit_{X,Y,Z}[N]
  3. Prufundità ridutta à 7
  4. A rata di apprendimentu ridutta à 0.1 (era 0.19)

In u risultatu, avemu pruvatu più funzioni (micca assai successu), paràmetri selezziunati è catboost furmatu, lightgbm è xgboost, pruvatu diversi mischi di predizioni è prima di apre u privatu avemu vintu cunfidenza nantu à a seconda tarea, è in u primu eramu trà i capi.

Dopu avè apertu u privatu eramu in u 10u postu per u 1u compitu è ​​3u per u sicondu. Tutti i capi si mischianu, è a velocità in privatu era più altu ch'è in u libboard. Sembra chì i dati eranu pocu stratificati (o per esempiu ùn ci era micca fila cù pesi negativi in ​​u privatu) è questu era un pocu frustrante.

SNA Hackathon 2019 - Testi. Prima tappa

U compitu era di classificà i posti di l'utilizatori nantu à a reta suciale Odnoklassniki secondu u testu chì cuntenenu; in più di u testu, ci era uni pochi di più caratteristiche di u postu (lingua, pruprietariu, data è ora di creazione, data è ora di visualizazione). ).

Cum'è l'avvicinamenti classici di travaglià cù u testu, aghju evidenziate duie opzioni:

  1. Mappatura di ogni parolla in un spaziu vettoriale n-dimensionale cusì chì e parolle simili anu vettori simili (leghjite più in u nostru articulu), dopu sia truvà a parolla media per u testu o utilizendu miccanismi chì piglianu in contu a pusizione relative di e parolle (CNN, LSTM/GRU).
  2. Utilizà mudelli chì ponu travaglià immediatamente cù sentenzi interi. Per esempiu, Bert. In teoria, stu approcciu duveria travaglià megliu.

Siccomu questa era a mo prima sperienza cù i testi, saria sbagliatu per insegnà à qualchissia, cusì mi insigneraghju. Eccu i cunsiglii chì mi daraghju à u principiu di a cumpetizione:

  1. Prima di curriri à insignà qualcosa, fighjate i dati! In più di u testu stessu, i dati avianu parechje culonni è era pussibule di sprimà assai più da elli ch'e aghju fattu. A cosa più simplice hè di fà significà codificazione di destinazione per alcune di e colonne.
  2. Ùn amparà da tutti i dati! Ci era assai dati (circa 17 milioni di fila) è ùn era assolutamente micca necessariu di utilizà tutti per pruvà l'ipotesi. A furmazione è a preprocessazione eranu abbastanza lenti, è ovviamente avissi avutu u tempu di pruvà ipotesi più interessanti.
  3. <Cunsigliu cuntruversu> Ùn ci hè bisognu di circà un mudellu assassinu. Aghju passatu assai tempu per capiscenu Elmo è Bert, sperendu chì mi portanu immediatamente à un locu altu, è in u risultatu aghju utilizatu embeddings pre-furmati FastText per a lingua russa. Ùn pudia micca ottene una velocità megliu cù Elmo, è ùn aghju micca avutu u tempu di capisce cù Bert.
  4. <Cunsigliu cuntruversu> Ùn ci hè bisognu di circà una funzione assassina. Fighjendu i dati, aghju nutatu chì circa 1 per centu di i testi ùn anu micca veramente testu! Ma ci sò stati ligami à qualchi risorse, è aghju scrittu un parser simplice chì hà apertu u situ è ​​hà tiratu u titulu è a descrizzione. Paria una bona idea, ma dopu mi sò purtatu è decisu di analizà tutti i ligami per tutti i testi è torna persu assai tempu. Tuttu chistu ùn hà micca furnitu un migliuramentu significativu in u risultatu finali (ancu se aghju scupertu stemming, per esempiu).
  5. Funzioni classiche funzionanu. Avemu Google, per esempiu, "text features kaggle", leghje è aghjunghje tuttu. TF-IDF hà furnitu una mellura, cum'è e caratteristiche statistiche cum'è a lunghezza di u testu, e parolle è a quantità di puntuazione.
  6. Se ci sò colonne DateTime, vale a pena analizà in parechje funziunalità separati (ore, ghjorni di a settimana, etc.). Quali caratteristiche deve esse evidenziate deve esse analizate cù grafici / alcune metriche. Quì, nantu à un capriccio, aghju fattu tuttu bè è mette in risaltu e caratteristiche necessarie, ma un analisi normale ùn averia micca male (per esempiu, cum'è avemu fattu in a finale).

Large Hadron Collider è Odnoklassniki

In u risultatu di a cuncurrenza, aghju furmatu un mudellu di keras cù cunvoluzione di parolle, è un altru basatu in LSTM è GRU. Tramindui anu utilizatu embeddings FastText pre-furmati per a lingua russa (aghju pruvatu parechje altre incrustazioni, ma questi eranu quelli chì anu travagliatu megliu). Dopu avè una media di e previsioni, aghju pigliatu l'ultimu postu 7th da i participanti 76.

Dopu à a prima tappa hè statu publicatu articulu di Nikolai Anokhin, chì hà pigliatu u sicondu postu (hà participatu fora di a cumpetizione), è a so suluzione finu à qualchì tappa hà ripetutu u mio, ma andò più in là per via di u mecanismu d'attenzione di query-key-value.

Second stage OK & IDAO

A seconda tappa di i cuncorsi si facia quasi consecutivamente, cusì decisu di guardà inseme.

Prima, eiu è a squadra di novu acquistatu finiscinu in l'uffiziu impressiunanti di a cumpagnia Mail.ru, induve u nostru compitu era di cumminà i mudelli di trè piste da a prima tappa - testu, ritratti è collab. Un pocu di più di 2 ghjorni sò stati attribuiti per questu, chì risultava assai pocu. In fatti, avemu statu solu capaci di ripetiri i nostri risultati da a prima tappa senza riceve alcunu guadagnu da a fusione. À a fine, avemu pigliatu u 5u postu, ma ùn pudemu micca aduprà u mudellu di testu. Dopu à fighjulà e suluzioni di l'altri participanti, pare ch'ellu valeva a pena di pruvà à raggruppà i testi è aghjunghje à u mudellu di collab. Un effettu latu di sta tappa era novi impressioni, riunioni è cumunicazione cù i participanti cool è l'urganizatori, è ancu una mancanza severa di sonnu, chì pò avè affettatu u risultatu di u stadiu finali di IDAO.

U compitu in a tappa finale IDAO 2019 era di predichendu u tempu d'attesa per un ordine per i cunduttori di taxi Yandex in l'aeroportu. In u stadiu 2, 3 compiti = 3 aeroporti sò stati identificati. Per ogni aeroportu, dati minuti per minutu nantu à u numeru di ordini di taxi per sei mesi sò datu. È cum'è dati di prova, u prossimu mese è i dati minuti per minutu nantu à l'ordini per l'ultime 2 settimane sò stati dati. Ci era pocu tempu (ghjornu 1,5), u compitu era abbastanza specificu, solu una persona da a squadra hè ghjunta à a cumpetizione - è in u risultatu, era un locu tristu versu a fine. L'idee interessanti includenu i tentativi di utilizà dati esterni: u clima, u trafficu è e statistiche di ordine di taxi Yandex. Ancu l'urganizatori ùn anu micca dettu ciò chì sò questi aeroporti, assai participanti supponenu chì eranu Sheremetyevo, Domodedovo è Vnukovo. Ancu s'è sta supposizione hè stata refutata dopu à a cuncurrenza, e caratteristiche, per esempiu, da i dati climatichi di Mosca anu migliuratu i risultati sia in a validazione sia in a classificazione.

cunchiusioni

  1. I cuncorsi ML sò cool è interessanti! Quì truverete l'usu di cumpetenze in l'analisi di dati, è in mudelli astuti è tecniche, è solu u sensu cumunu hè benvenutu.
  2. ML hè digià un corpu enormu di cunniscenza chì pare chì cresce in modu esponenziale. Aghju stabilitu un scopu di cunniscenze cù e diverse spazii (signali, ritratti, tavule, testu) è digià capitu quantu ci hè da studià. Per esempiu, dopu à sti cuncorsi, decisu di studià: algoritmi di clustering, tecniche avanzate per travaglià cù biblioteche di gradient boosting (in particulare, travagliendu cù CatBoost nantu à a GPU), rete di capsule, u mecanismu d'attenzione di query-key-value.
  3. Micca solu per caggle! Ci hè parechje altre cuncorsi induve hè più faciule per ottene almenu una T-shirt, è ci sò più chance per altri premii.
  4. Comunicate ! Ci hè digià una grande cumunità in u campu di l'apprendimentu di machine è l'analisi di dati, ci sò gruppi tematichi in telegramma, slack, è persone serii da Mail.ru, Yandex è altre cumpagnie rispondenu à e dumande è aiutanu i principianti è quelli chì cuntinueghjanu a so strada in questu campu. di cunniscenza.
  5. Aghju cunsigliatu à tutti quelli chì anu inspiratu da u puntu precedente per visità datafest - una grande cunferenza libera in Mosca, chì si ferà u 10-11 di maghju.

Source: www.habr.com

Add a comment