Large Hadron Collider eta Odnoklassniki

HabrΓ©-n ikaskuntza automatikoko lehiaketen gaiari jarraituz, irakurleei beste bi plataforma aurkeztu nahi dizkiegu. Zalantzarik gabe, ez dira kaggle bezain handiak, baina arreta merezi dute zalantzarik gabe.

Large Hadron Collider eta Odnoklassniki

Pertsonalki, kaggle ez zait gehiegi gustatzen hainbat arrazoirengatik:

  • lehenik, hango lehiaketek hainbat hilabete irauten dute askotan, eta parte-hartze aktiboa esfortzu handia eskatzen du;
  • bigarrenik, nukleo publikoak (soluzio publikoak). Kaggle-ko kideek tibeteko monjeen lasaitasunarekin tratatzea gomendatzen dute, baina, egia esan, pena handia da hilabete bat edo bitan lanean aritu zaren zerbait bat-batean guztiontzat zilarrezko plater batean jartzen denean.

Zorionez, ikaskuntza automatikoko lehiaketak beste plataforma batzuetan egiten dira, eta lehiaketa horietako pare bat eztabaidatuko dira.

IDAO SNA Hackathon 2019
Hizkuntza ofiziala: ingelesa,
antolatzaileak: Yandex, Sberbank, HSE
Errusiako hizkuntza ofiziala,
antolatzaileak: Mail.ru Taldea
Lineako txanda: 15ko urtarrilak 11 - otsailaren 2019;
Lekuko finala: 4ko apirilaren 6tik 2019ra
sarean - otsailaren 7tik martxoaren 15era;
lineaz kanpo - martxoaren 30etik apirilaren 1era.
Hadron Talkagailu Handiko partikula bati buruzko datu multzo jakin bat erabiliz (ibilbidea, momentua eta beste parametro fisiko nahiko konplexuak), zehaztu muoia den ala ez.
Adierazpen honetatik 2 zeregin identifikatu dira:
- batean zure iragarpena bidali behar izan zenuen,
- eta bestean - iragarpenerako kode eta eredu osoa, eta exekuzioa exekutatzeko denboraren eta memoriaren erabileraren murrizketa nahiko zorrotzen mende zegoen.
SNA Hackathon lehiaketarako, 2018ko otsaila-martxorako erabiltzaileen albisteen jarioetan talde irekietako edukien bistaratzeko erregistroak bildu ziren. Proba multzoak martxoaren azken aste eta erdia dauka. Erregistroko sarrera bakoitzak erakutsitakoari eta nori buruzko informazioa jasotzen du, baita erabiltzaileak nola erreakzionatu duen eduki horren aurrean: baloratu, iruzkindu, ez ikusi egin edo jariotik ezkutatu.
SNA Hackathonen zereginen funtsa Odnoklassniki sare sozialeko erabiltzaile bakoitza bere jarioa sailkatzea da, "klase" bat jasoko duten mezuak ahalik eta gehien igoz.
Lineako fasean, zeregina 3 zatitan banatu zen:
1. Lankidetza-ezaugarri ezberdinen arabera postuak sailkatzea
2. Sailkatu mezuak dituzten irudien arabera
3. postuak sailkatzea, daukaten testuaren arabera
Neurri pertsonalizatu konplexuak, ROC-AUC bezalako zerbait Batez besteko ROC-AUC erabiltzaileen arabera
Lehen faserako sariak - N plazako kamisetak, bigarren faserako pasabidea, lehiaketan ostatua eta otorduak ordaintzen ziren.
Bigarren fasea -??? (Zenbait arrazoirengatik, sari banaketan ez nintzen egon eta azkenean ezin izan nuen jakin zeintzuk ziren sariak). Ordenagailu eramangarriak agindu zizkieten talde irabazleko kide guztiei
Lehen faserako sariak - 100 parte hartzaile onenen kamisetak, bigarren etapara igarotzea, non Moskura bidaia, ostatua eta otorduak ordaintzen ziren lehiaketan zehar. Gainera, lehen etaparen amaiera aldera, 3. etapako 1 zereginetan onenaren sariak iragarri ziren: guztiek RTX 2080 TI bideo-txartel bat irabazi zuten!
Bigarren fasea taldekako fasea izan zen, 2 eta 5 lagun arteko taldeak, sariak:
1. postua - 300 errublo
2. postua - 200 errublo
3. postua - 100 errublo
epaimahaiaren saria - 100 errublo
Telegram talde ofiziala, ~190 parte-hartzaile, ingelesez komunikazioa, galderak egun batzuk itxaron behar izan zituzten erantzuna lortzeko Talde ofiziala telegraman, ~1500 parte-hartzaile, parte-hartzaileen eta antolatzaileen arteko zereginen eztabaida aktiboa
Antolatzaileek oinarrizko bi irtenbide eman zituzten, sinplea eta aurreratua. Sinpleak 16 GB RAM baino gutxiago behar zituen eta memoria aurreratua ez zen 16an sartzen. Aldi berean, apur bat aurrera begira, parte-hartzaileek ezin izan zuten irtenbide aurreratua nabarmen gainditu. Irtenbide hauek abian jartzeko zailtasunik ez zegoen. Kontuan izan behar da adibide aurreratuan iruzkin bat zegoela konponbidea hobetzen hasteko iradokizun batekin. Zeregin bakoitzerako oinarrizko irtenbide primitiboak eman ziren, parte hartzaileek erraz gainditu zituztenak. Lehiaketaren hasierako egunetan, parte-hartzaileek hainbat zailtasun aurkitu zituzten: lehenik, datuak Apache Parquet formatuan ematen ziren, eta Pythonen eta parquet paketearen konbinazio guztiek ez zuten hutsik egin. Bigarren zailtasuna posta-hodeitik argazkiak deskargatzea izan zen; momentuz ez dago datu asko aldi berean deskargatzeko modu errazik. Ondorioz, arazo hauek parte hartzaileak pare bat egun atzeratu zituzten.

IDAO. Lehenengo etapa

Eginkizuna muoien/ez-muoien partikulak haien ezaugarrien arabera sailkatzea zen. Zeregin horren funtsezko ezaugarria entrenamendu-datuetan pisu-zutabe bat egotea zen, antolatzaileek beraiek lerro honen erantzunaren konfiantza gisa interpretatu zutena. Arazoa zen errenkada gutxi batzuek pisu negatiboak dituztela.

Large Hadron Collider eta Odnoklassniki

Iradokizuna duen lerroan minutu batzuk pentsatu ondoren (iradokizunak pisu-zutabearen ezaugarri honi arreta jarri zion) eta grafiko hau eraiki ondoren, 3 aukera egiaztatzea erabaki genuen:

1) Pisu negatiboak dituzten lerroen helburua alderantzikatu (eta horren arabera pisuak)
2) aldatu pisuak balio minimora, 0tik hasi daitezen
3) ez erabili hari pisurik

Hirugarren aukera txarrena izan zen, baina lehen biek emaitza hobetu zuten, onena 1. aukera izan zen, eta berehala lehen atarian egungo bigarren postura eraman gintuen eta bigarrenean lehenengo.
Large Hadron Collider eta Odnoklassniki
Gure hurrengo urratsa falta ziren balioen datuak berrikustea izan zen. Antolatzaileek datu orraztuak eman zizkiguten, non balio dezente falta ziren, eta -9999rekin ordezkatu zituzten.

MatchedHit_{X,Y,Z}[N] eta MatchedHit_D{X,Y,Z}[N] zutabeetan falta diren balioak aurkitu ditugu, eta N=2 edo 3 denean bakarrik. Ulertzen dugunez, partikula batzuk ez ziren. 4 detektagailu guztiak pasatu eta 3. edo 4. plakan gelditu. Datuek Lextra_{X,Y}[N] zutabeak ere baziren, itxuraz MatchedHit_{X,Y,Z}[N] bezalako gauza bera deskribatzen dutenak, baina nolabaiteko estrapolazioa erabiliz. Asmatze eskas hauek Lextra_{X,Y}[N] MatchedHit_{X,Y,Z}[N]-n falta diren balioen ordez ordezkatu litekeela (X eta Y koordenatuetarako soilik). MatchedHit_Z[N] ondo bete zen medianarekin. Manipulazio hauei esker, bi zereginetan tarteko 1. postua lortu genuen.

Large Hadron Collider eta Odnoklassniki

Lehen etapa irabazteagatik ez zutela ezer eman kontuan izanda, hor gelditu gintezkeen, baina jarraitu genuen, irudi ederrak egin eta ezaugarri berriak asmatu genituen.

Large Hadron Collider eta Odnoklassniki

Esate baterako, aurkitu dugu partikula baten ebakidura-puntuak lau detektagailu-plaketako bakoitzarekin marrazten baditugu, plaka bakoitzeko puntuak 5 eta 4 arteko aspektu-erlazioa duten 5 laukizuzenetan multzokatuta daudela ikus dezakegu eta zentroan zentratuta. puntua (0,0), eta lehenengo laukizuzenean ez dago punturik.

Plakaren zenbakia / laukizuzen neurriak 1 2 3 4 5
1. plaka 500 Γ— 625 1000 Γ— 1250 2000 Γ— 2500 4000 Γ— 5000 8000 Γ— 10000
2. plaka 520 Γ— 650 1040 Γ— 1300 2080 Γ— 2600 4160 Γ— 5200 8320 Γ— 10400
3. plaka 560 Γ— 700 1120 Γ— 1400 2240 Γ— 2800 4480 Γ— 5600 8960 Γ— 11200
4. plaka 600 Γ— 750 1200 Γ— 1500 2400 Γ— 3000 4800 Γ— 6000 9600 Γ— 12000

Dimentsio hauek zehaztuta, 4 ezaugarri kategoriko berri gehitu genituen partikula bakoitzeko: plaka bakoitza ebakitzen duen laukizuzenaren zenbakia.

Large Hadron Collider eta Odnoklassniki

Gainera, ohartu ginen partikulak erdialdetik aldeetara barreiatzen zirela eta sakabanaketa horren β€œkalitatea” nolabait ebaluatzeko ideia sortu zen. Egokiena, ziurrenik, posible izango litzateke aireratze-puntuaren arabera parabolta "ideal" moduko bat egitea eta horren desbiderapena kalkulatzea, baina lerro zuzen "idealera" mugatu ginen. Sarrera-puntu bakoitzerako halako zuzen idealak eraikita, partikula bakoitzaren ibilbidearen desbideratze estandarra kalkulatu ahal izan dugu zuzen horretatik. Helburua = 1eko batez besteko desbideratzea 152 zenez eta helburu = 0rako 390 zenez, behin-behinean ezaugarri hau ona dela baloratu dugu. Eta hain zuzen ere, ezaugarri hau berehala iritsi zen erabilgarrienen artean.

Poz-pozik geratu ginen eta partikula bakoitzerako 4 ebakidura puntuen desbideratzea lerro zuzen idealetik 4 ezaugarri gehigarri gisa gehitu genuen (eta ondo funtzionatu zuten).

Antolatzaileek eman dizkiguten lehiaketaren gaiari buruzko artikulu zientifikoetarako estekek, arazo hori konpontzen lehenengoetatik urrun gaudela eta, beharbada, badago nolabaiteko software espezializatu bat pentsatu zuten. IsMuonSimple, IsMuon, IsMuonLoose metodoak ezarri ziren github-en biltegi bat aurkitu ondoren, gure gunera transferitu genituen aldaketa txikiekin. Metodoak berez oso sinpleak ziren: adibidez, energia atalase jakin bat baino txikiagoa bada, orduan ez da muoia, bestela muoia da. Ezaugarri sinple hauek, jakina, ezin izan dute igoerarik eman gradientearen areagotzea erabiltzearen kasuan, beraz, beste "distantzia" esanguratsu bat gehitu genion atalaseari. Ezaugarri hauek ere zertxobait hobetu dira. Beharbada, lehendik dauden metodoak sakonago aztertuta, posible izan zen metodo indartsuagoak aurkitzea eta seinaleei gehitzea.

Lehiaketa amaitzean, bigarren arazoaren konponbide "bizkorra" apur bat moldatu genuen; azkenean, oinarri-lerrotik desberdina zen puntu hauetan:

  1. Pisu negatiboa zuten errenkadetan helburua alderantzikatu zen
  2. MatchedHit_{X,Y,Z}[N] atalean falta diren balioak bete dira
  3. Sakonera murriztua 7ra
  4. Ikaskuntza-tasa 0.1era murriztu da (0.19 zen)

Ondorioz, funtzio gehiago probatu genituen (ez oso arrakastaz), parametroak hautatu eta catboost, lightgbm eta xgboost trebatu, iragarpenen nahasketa desberdinak probatu eta pribatua ireki aurretik ziur irabazi genuen bigarren zereginean, eta lehenengoan artean egon ginen. buruzagiak.

Pribatua ireki ondoren 10. postuan geunden 1. zereginerako eta 3. bigarrenean. Buruzagi guztiak nahastu ziren, eta pribatuan abiadura libboardean baino handiagoa zen. Badirudi datuak gaizki estratifikatu zirela (edo, adibidez, ez zegoen pisu negatiboko errenkadarik pribatuan) eta hori pixka bat frustrantea izan zen.

SNA Hackathon 2019 - Testuak. Lehenengo etapa

Eginkizuna Odnoklassniki sare sozialeko erabiltzaileen argitalpenak zeuzkaten testuaren arabera sailkatzea zen; testuaz gain, mezuaren ezaugarri batzuk gehiago zeuden (hizkuntza, jabea, sortze-data eta ordua, ikusteko eguna eta ordua). ).

Testuarekin lan egiteko planteamendu klasiko gisa, bi aukera nabarmenduko nituzke:

  1. Hitz bakoitza n dimentsioko espazio bektorial batean mapatzea, antzeko hitzek antzeko bektoreak izan ditzaten (irakurri gehiago atalean gure artikulua), ondoren testuaren batez besteko hitza aurkitzeko edo hitzen posizio erlatiboa kontuan hartzen duten mekanismoak erabiliz (CNN, LSTM/GRU).
  2. Esaldi osoekin berehala funtziona dezaketen ereduak erabiliz. Adibidez, Bert. Teorian, ikuspegi honek hobeto funtzionatu beharko luke.

Testuekin nire lehenengo esperientzia izan zenez, norbaiti irakastea gaizki egongo litzateke, beraz, neuk irakatsiko dut. Hauek dira lehiaketaren hasieran neure buruari emango nizkiokeen aholkuak:

  1. Zerbait irakasteko korrika egin aurretik, begiratu datuak! Testuaz gain, datuek hainbat zutabe zituzten eta nik baino askoz gehiago ateratzeko aukera zen. Errazena zutabe batzuen xede-kodeketa egitea da.
  2. Ez ikasi datu guztietatik! Datu asko zeuden (17 milioi errenkada inguru) eta ez zen guztiz beharrezkoa denak erabiltzea hipotesiak egiaztatzeko. Prestakuntza eta aurreprozesaketa nahiko motelak ziren, eta, jakina, hipotesi interesgarriagoak probatzeko denbora izango nukeen.
  3. <Aholku polemikoak> Ez dago eredu hiltzailerik bilatu beharrik. Denbora luzea eman nuen Elmo eta Bert asmatzen, berehala leku altu batera eramango nindutelakoan, eta, ondorioz, errusiar hizkuntzarako aurrez prestatutako FastText txertaketak erabili nituen. Elmorekin ezin nuen abiadura hoberik lortu, eta oraindik ez nuen denborarik izan Bertekin asmatzeko.
  4. <Aholku polemikoak> Ez da hiltzaile funtzio bat bilatu beharrik. Datuak ikusita, ohartu naiz testuen ehuneko 1 inguruk ez dutela testurik! Baina baliabide batzuetarako estekak zeuden, eta gunea ireki eta izenburua eta deskribapena atera zituen analizatzaile soil bat idatzi nuen. Ideia ona iruditu zitzaidan, baina gero eraman egin nuen eta testu guztien esteka guztiak analizatzea erabaki nuen eta berriro denbora asko galdu nuen. Horrek guztiak ez zuen hobekuntza nabarmenik eman azken emaitzan (nahiz eta asmatu nuen, adibidez).
  5. Ezaugarri klasikoek funtzionatzen dute. Google dugu, adibidez, "testu ezaugarriak kaggle", irakurri eta dena gehitzen dugu. TF-IDF-k hobekuntza bat eman zuen, hala nola, testuaren luzera, hitzak eta puntuazio-kopurua bezalako ezaugarri estatistikoak.
  6. DateTime zutabeak badaude, merezi du hainbat ezaugarri bereizitan analizatzea (orduak, asteko egunak, etab.). Zein ezaugarri nabarmendu behar diren grafiko/neurri batzuk erabiliz aztertu behar dira. Hemen, kapritxo batean, dena ondo egin nuen eta beharrezko ezaugarriak nabarmendu nituen, baina azterketa normal batek ez zuen minik egingo (adibidez, finalean egin genuen bezala).

Large Hadron Collider eta Odnoklassniki

Lehiaketaren ondorioz, keras eredu bat hitz konboluzioarekin landu nuen, eta LSTM eta GRUn oinarritutako beste bat. Biek aldez aurretik trebatutako FastText txertaketak erabili zituzten errusiar hizkuntzarako (beste txertaketa batzuk probatu nituen, baina hauek izan ziren ondoen funtzionatzen zutenak). Iragarpenen batez bestekoa egin ondoren, 7 parte-hartzaileetatik azken 76. postua hartu nuen.

Lehenengo etaparen ostean argitaratu zen Nikolai Anokhin-en artikulua, bigarren postua lortu zuen (lehiaketaz kanpo parte hartu zuen), eta bere soluzioak etapa bateraino errepikatu zuen nirea, baina harago joan zen kontsulta-gako-balioaren arreta mekanismoari esker.

Bigarren etapa OK & IDAO

Lehiaketen bigarren faseak ia jarraian egin ziren eta, beraz, elkarrekin aztertzea erabaki nuen.

Lehenik eta behin, nik eta erosi berri den taldeak Mail.ru konpainiaren bulego ikusgarrian amaitu genuen, non gure zeregina lehen faseko hiru pisten ereduak konbinatzea zen: testua, irudiak eta elkarlana. 2 egun baino apur bat gehiago eman ziren horretarako, oso gutxi izan zen. Izan ere, lehen faseko emaitzak errepikatu ahal izan genituen bat-egitetik irabazirik jaso gabe. Azkenean, 5. postua lortu dugu, baina ezin izan dugu testu eredua erabili. Beste parte-hartzaileen irtenbideak aztertu ondoren, badirudi merezi zuela testuak bildu eta elkarlan eredura gehitzea. Etapa honen albo-ondorio bat inpresio berriak izan ziren, parte-hartzaile eta antolatzaile politekin elkartu eta komunikatzea, baita lo falta larria ere, IDAOren azken fasearen emaitzan eragina izan zezakeen.

IDAO 2019 Azken faseko zeregina Yandex-eko taxi-gidarientzako eskaera baten itxarote-denbora aurreikustea zen aireportuan. 2. fasean, 3 zeregin = 3 aireportu identifikatu ziren. Aireportu bakoitzeko, minutuz minutuko datuak ematen dira sei hilabeteko taxi-eskaerak. Eta probaren datu gisa, hurrengo hilabeteko eta azken 2 asteetako eskaeren minutuz minutuko datuak eman ziren. Denbora gutxi zegoen (1,5 egun), zeregina nahiko zehatza zen, taldeko pertsona bakarra etorri zen lehiaketara -eta ondorioz, leku tristea zen amaiera aldera-. Ideia interesgarriak kanpoko datuak erabiltzeko saiakerak izan ziren: eguraldia, auto-ilarak eta Yandex taxi-eskaeraren estatistikak. Antolatzaileek aireportu horiek zeintzuk ziren esan ez arren, parte-hartzaile askok Sheremetyevo, Domodedovo eta Vnukovo zirela suposatu zuten. Lehiaketa ondoren hipotesi hori gezurtatu bazen ere, Moskuko eguraldiaren datuek adibidez, emaitzak hobetu zituzten bai baliozkotzean, bai sailkapenean.

Ondorioa

  1. ML lehiaketak politak eta interesgarriak dira! Hemen datuen analisian, eta eredu eta teknika maltzuretan trebetasunen erabilera aurkituko duzu, eta sen ona ongi etorria da.
  2. ML dagoeneko esponentzialki hazten ari dela dirudien jakintza handi bat da. Arlo desberdinak ezagutzea (seinaleak, irudiak, taulak, testua) helburu bat jarri nuen eta dagoeneko konturatu nintzen zenbat dagoen aztertzeko. Esaterako, lehiaketa hauen ondoren aztertzea erabaki nuen: clustering algoritmoak, gradienteak sustatzeko liburutegiekin lan egiteko teknika aurreratuak (bereziki, CatBoost-ekin GPUan lan egitea), kapsula sareak, kontsulta-gako-balioaren arreta mekanismoa.
  3. Ez kagglez bakarrik! Badira beste hainbat lehiaketa non errazagoa den kamiseta bat lortzea behintzat, eta beste sari batzuk eskuratzeko aukera gehiago dago.
  4. Komunikatu! Dagoeneko komunitate handi bat dago ikaskuntza automatikoaren eta datuen analisiaren alorrean, talde tematikoak daude telegrametan, slack-en eta Mail.ru, Yandex eta beste konpainietako jende serioak galderak erantzuten eta hasiberriei eta eremu honetan bidea jarraitzen dutenei laguntzen diete. ezagutzaren.
  5. Aurreko puntuan inspiratutako guztiei bisita egiteko gomendatzen diet datafest β€” Maiatzaren 10etik 11n egingo den Moskun doako konferentzia garrantzitsu bat.

Iturria: www.habr.com

Gehitu iruzkin berria