SNA Hackathon 2019

Bishii Febraayo-Maarso 2019, tartan ayaa la qabtay si loo qiimeeyo quudinta shabakada bulshada SNA Hackathon 2019, oo kooxdayadu ay kaalinta koowaad ka gashay. Maqaalka waxaan ka hadli doonaa abaabulka tartanka, hababka aan isku daynay, iyo goobaha catboost ee tababarka xogta weyn.

SNA Hackathon 2019

SNA Hackathon

Waa markii saddexaad ee hackathon magacan lagu qabto. Waxaa soo abaabulay shabakada bulshada ok.ru, siday u kala horreeyaan, hawsha iyo xogta waxay si toos ah ula xiriiraan shabakadan bulshada.
SNA (falanqaynta shabakada bulshada) kiiskan si sax ah ayaa loo fahmay ma aha falanqaynta garaaf bulsheed, laakiin waa falanqaynta shabakada bulshada.

  • 2014, hawshu waxay ahayd in la saadaaliyo tirada jecel ee boostada heli doonto.
  • 2016 - hawsha VVZ (laga yaabee inaad taqaan), oo u dhow falanqaynta garaafka bulshada.
  • Sannadka 2019, qiimaynta quudka isticmaalaha iyada oo ku saleysan suurtogalnimada in isticmaaluhu uu jeclaan doono boostada.

Ma sheegi karo 2014, laakiin 2016 iyo 2019, marka lagu daro awoodaha falanqaynta xogta, xirfadaha la shaqeynta xogta weyn ayaa sidoo kale loo baahan yahay. Waxaan u maleynayaa inay ahayd isku-darka barashada mashiinka iyo dhibaatooyinka habaynta xogta weyn ee igu soo jiitay tartamadan, waayo-aragnimadayda meelahan ayaa iga caawisay inaan ku guuleysto.

mlbootcamp

2019, tartanka waxaa lagu soo agaasimay madasha https://mlbootcamp.ru.

Tartanku waxa uu si toos ah u bilaabmay 7-dii bishii February waxaanu ka koobnaa 3 hawlood. Qof kastaa wuu iska diiwaan gelin karaa goobta, soo dejiso saldhigga oo ku shub baabuurkaaga dhowr saacadood. Dhammaadka marxaladda khadka tooska ah ee Maarso 15, 15ka ugu sarreeya ee dhacdo kasta oo boodbood ah ayaa lagu martiqaaday xafiiska Mail.ru ee masraxa khadka tooska ah, kaasoo dhacay Maarso 30 ilaa Abriil 1.

Ujeeddo

Xogta isha ayaa bixisa aqoonsiga isticmaalaha (userId) iyo aqoonsiga boostada (objectId). Haddii isticmaaluhu la tuso boosto, markaa xogtu waxay ka kooban tahay xariiq ka kooban userId, objectId, falcelinta isticmaale ee boostadan ( jawaab celin) iyo astaamo kala duwan ama isku xirka sawirrada iyo qoraallada.

userId objectId mulkiilahaId -celin images
3555 22 5677 [jeclay, guji] [xash1]
12842 55 32144 [aan jeclayn] [xash2, hash3]
13145 35 5677 [riix, la wadaago] [xash2]

Qalabka xogta tijaabada waxa ku jira qaab la mid ah, laakiin goobta jawaab celinta ayaa maqan. Hawshu waa in la saadaaliyo joogitaanka falcelinta 'jecel' ee goobta jawaab celinta.
Galka soo gudbintu waxa uu leeyahay qaab-dhismeedkan soo socda:

userId LasoocayList[objectId]
123 78,13,54,22
128 35,61,55
131 35,68,129,11

Halbeeggu waa celceliska ROC AUC isticmaalayaasha.

Faahfaahin dheeraad ah oo ku saabsan xogta waxaa laga heli karaa at website golaha. Waxa kale oo aad soo dejisan kartaa xogta halkaas, oo ay ku jiraan imtixaanno iyo sawirro.

Marxaladda internetka

Marxaladda internetka, hawshu waxay u qaybsantay 3 qaybood

  • Nidaamka iskaashiga - waxaa ku jira dhammaan sifooyinka marka laga reebo sawirada iyo qoraallada;
  • Sawirro - waxaa ku jira kaliya macluumaadka ku saabsan sawirada;
  • Qoraallada - waxaa ku jira macluumaadka ku saabsan qoraallada oo keliya.

Marxaladda khadka tooska ah

Marxaladda khadka tooska ah, xogta waxaa ku jiray dhammaan sifooyinka, halka qoraallada iyo sawiradu ay ahaayeen kuwo aad u yar. Waxaa jiray 1,5 jeer saf ka badan oo ku jira xogta, kuwaas oo ay horeba u jireen wax badan.

Xalka dhibaatada

Tan iyo markii aan CV-ga ku sameeyo shaqada, waxaan bilaabay safarkayga tartankan hawsha "Sawirro". Xogta la bixiyay waxay ahayd userId, objectId, ownerId (kooxda boostada lagu daabacay), shaambada wakhtiyada abuurista iyo soo bandhigida boostada, iyo, dabcan, sawirka boostada.
Ka dib markii la soo saaray dhowr astaamood oo ku salaysan timestamps, fikradda xigta waxay ahayd in la qaato lakabka ugu hooseeya ee neuron-ka horay loogu tababaray imagenet oo u dir kuwan gunnada si kor loogu qaado.

SNA Hackathon 2019

Natiijadu ma ahayn mid cajiib ah. Ku-xidhka ka yimaadda neerfaha imagenet waa kuwo aan khusayn, waxaan u maleeyay, waxaan u baahanahay inaan sameeyo autoencoder ii gaar ah.

SNA Hackathon 2019

Waxay qaadatay waqti badan, natiijaduna ma soo hagaagin.

Jiilka muuqaalka

Ku shaqeynta sawirada waxay qaadataa waqti badan, sidaas darteed waxaan go'aansaday inaan sameeyo wax ka fudud.
Sida aad isla markiiba arki karto, waxaa jira dhowr astaamood oo kala duwan oo ku jira dataset-ka, iyo si aanan aad u dhibin, waxaan kaliya qaatay catboost. Xalku wuxuu ahaa mid aad u fiican, iyada oo aan wax dejin ah lahayn isla markiiba waxaan gaadhay xariiqda ugu horeysa ee hogaanka.

Waxaa jira xog aad u badan oo waxaa loo dejiyey qaab parquet, sidaa darteed aniga oo aan ka fikirin laba jeer, waxaan qaatay scala oo waxaan bilaabay in wax walba ku qoro dhimbiil.

Tilmaamaha ugu fudud ee bixiyay koritaan ka badan kuwa sawirka ku dhejisan:

  • immisa jeer ayaa objectId, userId iyo ownerId ka soo muuqday xogta (waa inay xidhiidh la leedahay caannimada);
  • immisa farood ayaa isticmaalaId ka arkay mulkiilahaId (waa in ay la xidhiidhaa xiisaha isticmaalaha kooxda);
  • immisa isticmaaleIds gaar ah ayaa ka daawaday qoraallada mulkiilahaId (waxay ka tarjumaysaa cabbirka dhagaystayaasha kooxda).

Laga soo bilaabo timestamps waxaa suurtagal ah in la helo wakhtiga maalinta kaas oo isticmaaluhu uu daawaday quudinta (subaxda / galabtii / fiidkii / habeenka). Marka la isku daro qaybahan, waxaad sii wadi kartaa abuurista sifooyinka:

  • imisa jeer userId ayaa galay fiidkii;
  • Waqtigee ayaa boostadani inta badan la muujiyaa (objectId) iyo wixii la mid ah.

Waxaas oo dhami waxay si tartiib tartiib ah u wanaajiyeen cabbirada. Laakiin cabbirka xogta tababarka ayaa ah ilaa 20M diiwaan, marka lagu daro sifooyinka ayaa si weyn hoos ugu dhigay tababarka.

Waxaan dib uga fikiray habka aan u isticmaalo xogta. In kasta oo xogtu ay waqti-ku-xiran tahay, maan arag wax macluumaad ah oo muuqda β€œmustaqbalka”, si kastaba ha ahaatee, haddii ay dhacdo, waxaan u burburiyay sidan:

SNA Hackathon 2019

Jadwalka tababbarka naloo fidiyay (February iyo 2-dii toddobaad ee March) waxa loo qaybiyay 2 qaybood.
Qaabka waxaa lagu tababaray xogta maalmihii N ee ugu dambeysay. Isku darka kor lagu sharaxay ayaa lagu dhisay dhammaan xogta, oo ay ku jirto imtixaanka. Isla mar ahaantaana, xogta ayaa soo baxday taas oo ay suurtagal tahay in la dhiso codad kala duwan oo doorsoomaha bartilmaameedka ah. Habka ugu fudud ayaa ah in dib loo isticmaalo koodka hore u abuuraya sifooyin cusub, oo si fudud loogu quudiyo xogta aan loo tababarin oo aan la beegsan doonin = 1.

Haddaba, waxaanu helnay astaamo isku mid ah:

  • Immisa jeer ayuu isticmaalaId ku arkay boostada kooxda milkiileyaashaId;
  • Immisa jeer ayaa isticmaalaId ka helay boostada kooxda lehId;
  • Boqolkiiba qoraallada uu isticmaaluhuId ka helay ownerId.

Taasi waa, way soo baxday codaynta bartilmaameedka ah qayb ka mid ah xog-ururinta ee isku-dhafka kala duwan ee sifooyin gaar ah. Mabda 'ahaan, catboost waxay sidoo kale dhistaa encoding bartilmaameedka oo laga soo bilaabo aragtidan ma jirto wax faa'iido ah, laakiin, tusaale ahaan, waxaa suurtagal ah in la tiriyo tirada isticmaalayaasha gaarka ah ee jecel posts ee kooxdan. Isla mar ahaantaana, yoolka ugu weyn ayaa la gaaray - xogtayda ayaa la dhimay dhowr jeer, waxaana suurtagal ah in la sii wado abuurista sifooyinka.

Iyadoo catboost ay dhisi karto codeeyn kaliya iyada oo ku saleysan falcelinta la jecel yahay, jawaab celinta waxay leedahay falcelino kale: dib loo wadaagay, aan jeclayn, aan la jeclayn, la gujiyay, la iska indhotiray, codaynta kuwaas oo gacanta lagu samayn karo. Waxaan dib u xisaabiyay dhammaan noocyada isku-darka oo aan tirtiray sifooyin muhiimad hoose leh si aanan u kicin xogta.

Waqtigaas waxa aan ku jiray kaalinta koowaad si aad u ballaadhan. Waxa kaliya ee jahawareer ku ahaa waxay ahayd in sawir-ku-galka sawirku aanu muujin wax koritaan ah. Fikradda ayaa timid in wax walba la siiyo si loo kobciyo. Waxaanu ururinay sawirada Kmeans oo aanu helnaa muuqaal muuqaal cusub oo muuqaal ahCat.

Waa kuwan qaar ka mid ah fasallo ka dib shaandhaynta gacanta iyo isku darka kooxaha laga helay KMeans.

SNA Hackathon 2019

Iyada oo ku saleysan imageCat waxaan soo saareynaa:

  • Tilmaamo cusub oo gaar ah:
    • SawirkeeCat inta badan uu daalacday userId;
    • SawirkeeCat inta badan muujisa ownerId;
    • SawirkeeCat inta badan uu jeclaa userId;
  • xisaabiyeyaasha kala duwan:
    • Imisa sawir oo gaar ahCat ayaa eegtay userId;
    • Ilaa 15 astaamood oo la mid ah oo lagu daray codaynta bartilmaameedka sida kor lagu sharaxay.

Qoraallada

Natiijooyinka tartanka sawirka ayaa igu habboonaa waxaanan go'aansaday in aan isku dayo inaan gacantayda ku tijaabiyo qoraallada. Wax badan kamaan shaqayn qoraallo hore, nacasnimo, waxaan ku dilay maalinta tf-idf iyo svd. Kadib waxaan arkay gundhig doc2vec, kaas oo si sax ah u sameeya waxa aan u baahanahay. Ka dib markii aan wax yar hagaajiyay xuduudaha doc2vec, waxaan helay qoraallo qoraal ah.

Kadibna waxaan si fudud dib ugu isticmaalay koodhka sawirada, kaas oo aan ku beddelay sawirada sawirada qoraallada qoraalka ah. Sidaas darteed, waxaan galay kaalinta 2aad ee tartanka qoraalka.

Nidaamka iskaashiga

Waxaa jiray hal tartamo oo aanan wali ul ku β€œku dhufan”, iyo ku garsooridda AUC ee hogaanka, natiijadii tartankan gaarka ah waxay ahayd inay saamaynta ugu wayn ku yeelato masraxa khadka tooska ah.
Waxaan qaatay dhammaan sifooyinka ku jiray xogta isha, waxaan doortay kuwa kala duwan oo aan xisaabiyay isku-dar ahaan sida sawirada, marka laga reebo sifooyinka ku salaysan sawirada laftooda. In aan tan ku dhejiyo catboost ayaa iga dhigay kaalinta 2aad.

Tallaabooyinka ugu horreeya ee kobcinta catboost

Hal meel oo hore iyo laba ilbiriqsi ayaa iga farxisay, laakiin waxaa jirtay faham ah inaanan wax gaar ah qaban, taasoo la micno ah inaan filan karo inaan xilka ku waayo.

Hawsha tartanku waa in lagu darajo jagooyinka isticmaalaha dhexdiisa, iyo wakhtigan oo dhan waxaan xalinayay dhibaatada kala soocida, taas oo ah, hagaajinta mitirka khaldan.

Aan ku siiyo tusaale fudud:

userId objectId saadaasha runta dhulka
1 10 0.9 1
1 11 0.8 1
1 12 0.7 1
1 13 0.6 1
1 14 0.5 0
2 15 0.4 0
2 16 0.3 1

Aynu dib u habayn yar samayno

userId objectId saadaasha runta dhulka
1 10 0.9 1
1 11 0.8 1
1 12 0.7 1
1 13 0.6 0
2 16 0.5 1
2 15 0.4 0
1 14 0.3 1

Waxaan helnaa natiijooyinka soo socda:

Tusaalaha AUC Isticmaale1 AUC Isticmaale2 AUC macnaha AUC
Doorashada 1 0,8 1,0 0,0 0,5
Doorashada 2 0,7 0,75 1,0 0,875

Sida aad arki karto, hagaajinta mitirka guud ee AUC macnaheedu maaha hagaajinta celceliska mitirka AUC ee isticmaalaha dhexdiisa.

Catboost wuu yaqaana sida loo hagaajiyo cabbirada darajada ka santuuqa. Waxaan akhriyay wax ku saabsan cabbirada kala saraynta, sheekooyinka guusha markaad isticmaalayso catboost oo dhig YetiRankPairwise si aad u tababarto habeen. Natiijadu ma ahayn mid cajiib ah. Go'aaminta in laygu tababaray, waxaan u bedelay shaqada qaladka QueryRMSE, taas oo, ku xukumaysa dukumeenti catboost, si degdeg ah isugu soo ururaya. Dhammaadkii, waxaan helay natiijooyin la mid ah markii la tababaray kala-saarista, laakiin isku-dhafka labadan nooc ayaa si fiican u kordhay, taas oo keentay inaan kaalinta koowaad ka galo dhammaan saddexda tartan.

5 daqiiqo ka hor xiritaanka marxaladda internetka ee tartanka "Nidaamka Iskaashiga", Sergey Shalnov ayaa ii soo wareejiyay kaalinta labaad. Waddadii dheerayd ayaan isla soconnay.

U diyaargarowga marxaladda qad la'aanta

Waxaa naloo dammaanad qaaday guusha marxaladda khadka tooska ah ee RTX 2080 TI video kaarka, laakiin abaalmarinta ugu weyn ee 300 rubles iyo, waxay u badan tahay, xitaa meesha ugu horeysa ee ugu dambeysa ayaa nagu qasabtay inaan shaqeyno 000 usbuuc.

Sida ay soo baxday, Sergey ayaa sidoo kale isticmaalay catboost. Waxaan isweydaarsannay fikrado iyo astaamo, waanan ka bartay Warbixin ay diyaarisay Anna Veronica Dorogush kuwaas oo ka koobnaa jawaabo badan oo su'aalo ah, iyo xataa kuwa aanan weli helin wakhtigaas.

Daawashada warbixinta ayaa ii horseeday fikradda ah in aan u baahanahay in aan ku soo celino dhammaan xuduudaha qiimaha caadiga ah, oo aan u sameyno goobaha si taxadar leh oo kaliya ka dib marka la hagaajiyo sifooyinka. Hadda hal tababar ayaa qaatay ilaa 15 saacadood, laakiin hal nooc ayaa ku guulaystay inuu helo xawaar ka wanaagsan kan lagu helay isku xidhka darajada.

Jiilka muuqaalka

Tartanka Nidaamyada Iskaashiga, tiro badan oo astaamo ah ayaa lagu qiimeeyay inay muhiim u yihiin moodalka. Tusaale ahaan, hantidhawrka_spark_svd - calaamadda ugu muhiimsan, laakiin ma jiraan wax macluumaad ah oo ku saabsan waxa ay ka dhigan tahay. Waxaan u maleeyay in ay mudan tahay in la tiriyo isku darka kala duwan ee ku salaysan sifooyinka muhiimka ah. Tusaale ahaan, celceliska hantidhawrka_spark_svd isticmaale, koox ahaan, shay. Isla sidaas oo kale ayaa lagu xisaabin karaa iyada oo la adeegsanayo xogta aan tababarka la samaynin iyo bartilmaameed = 1, taas oo ah, celcelis ahaan hantidhawrka_spark_svd isticmaale walxo uu ka helay. Calaamadaha muhiimka ah ka sokow hantidhawrka_spark_svd, waxaa jiray dhowr. Waa kuwan qaar ka mid ah:

  • xisaabinta miisaankaCtrGender
  • xisaabaadka miisaankaCtrHigh
  • userOwnerCounterCreateLikes

Tusaale ahaan, celceliska xisaabinta miisaankaCtrGender marka loo eego userId waxay u noqotay sifo muhiim ah, sida celceliska qiimaha userOwnerCounterCreateLikes by userId+ownerId. Tani waa inay mar hore kaa dhigtaa inaad u baahan tahay inaad fahamto macnaha beeraha.

Sidoo kale sifooyinka muhiimka ah ayaa ahaa xisaabaadka miisaanka Likes ΠΈ auditweightsShowsCount. Kala qaybinta midba midka kale, waxaa la helay sifo ka sii muhiimsan.

Xogta daadato

Tartanka iyo qaabaynta wax soo saarku waa hawlo aad u kala duwan. Marka la diyaarinayo xogta, aad bay u adag tahay in la tixgeliyo dhammaan faahfaahinta oo aan la gudbin qaar ka mid ah macluumaadka aan sahlanayn ee ku saabsan doorsoomaha bartilmaameedka ee imtixaanka. Haddii aan abuureyno xal wax-soo-saarka, waxaan isku dayi doonaa inaan iska ilaalino isticmaalka qulqulka xogta marka la tababarayo qaabka. Laakiin haddii aan rabno inaan ku guuleysano tartanka, ka dib daadinta xogta ayaa ah sifooyinka ugu fiican.

Markaad barato xogta, waxaad arki kartaa taas iyadoo loo eegayo qiyamka objectId xisaabaadka miisaanka Likes ΠΈ auditweightsShowsCount isbeddel, taas oo macnaheedu yahay saamiga ugu sarreeya ee sifooyinkan ayaa ka tarjumaya beddelka boostada si aad uga wanaagsan saamiga wakhtiga bandhigga.

Diidmada ugu horreysa ee aan helnay waa miisaanka xisaabaadka LikesCountMax/auditweightsShowsCountMax.
Laakiin maxaa dhacaya haddii aan si dhow u eegno xogta? Aan ku kala soocno taariikhda bandhiga oo hel:

objectId userId auditweightsShowsCount xisaabaadka miisaanka Likes bartilmaameed (waa la jecel yahay)
1 1 12 3 malaha
1 2 15 3 malaha haa
1 3 16 4

Waxa la yaab noqotay markii aan helay tusaalihii ugu horreeyay ee noocaas ah oo ay ii soo baxday in aanay saadaashayda run noqon. Laakiin, iyada oo la tixgelinayo xaqiiqda ah in qiimaha ugu sarreeya ee sifooyinkaas ku jira shayga ay siiyeen korodhka, ma ahayn caajisnimo oo waxaan go'aansanay inaan helno. auditweightsShowsCountNext ΠΈ xisaabaadka miisaanka LikesCountNext, taas oo ah, qiyamka waqtiga xiga ee waqtiga. Adigoo ku daray sifo
(auditweightsShowsCountNext-auditweightsShowsCount)/(auditweightsLikesCount-auditweightsLikesCountNext) si degdeg ah ayaan u boodnay.
Daadisyo la mid ah ayaa loo isticmaali karaa in la helo qiimayaasha soo socda userOwnerCounterCreateLikes gudaha userId+ownerId iyo, tusaale ahaan, xisaabinta miisaankaCtrGender gudaha objectId+userGender. Waxaan helnay 6 goobood oo isku mid ah oo daadsan waxaana ka soo saarnay macluumaadka ugu badan ee suurtogalka ah iyaga.

Waqtigaas, waxaan ka soo saarnay macluumaadka ugu badan ee suurtogalka ah sifooyin wadashaqeyn, laakiin kuma soo noqonin tartanka sawirada iyo qoraalka. Waxaan lahaa fikrad fiican in aan hubiyo: intee in le'eg ayay sifooyinku si toos ah ugu saleysan yihiin sawirada ama qoraallada ay bixiyaan tartamada khuseeya?

Ma jirin wax daadasho ah oo ku saabsan tartanka sawirka iyo qoraalka, laakiin wakhtigaas waxaan soo celiyay xuduudaha catboost-ka caadiga ah, nadiifiyay koodka oo ku daray dhowr sifooyin. Wadarta guud waxay ahayd:

go'aanka dhawaan
Ugu badnaan sawirro 0.6411
Ugu badnaan wax sawiro ah 0.6297
Natiijada kaalinta labaad 0.6295

go'aanka dhawaan
Ugu badnaan qoraallo leh 0.666
Ugu badnaan qoraalla'aan 0.660
Natiijada kaalinta labaad 0.656

go'aanka dhawaan
Ugu badnaan wada shaqayn 0.745
Natiijada kaalinta labaad 0.723

Waxa ay noqotay wax iska cad in aynaan u badnayn in aan awoodno in aan wax badan ka soo saarno qoraallada iyo sawirada, ka dib markii aan isku daynay dhowr fikradood oo ugu xiisaha badnaa, waxaan joojinay la shaqeynta iyaga.

Jiilka dheeraadka ah ee qaababka hababka iskaashiga ma aysan siinin koror, waxaanan bilownay darajooyin. Marxaladda khadka tooska ah, kala-soocidda iyo isku-darka qiimeynta ayaa i siisay koror yar, sida ay u muuqatay sababtoo ah waxaan hoos u dhigay soocidda. Ma jiro mid ka mid ah shaqooyinka qaladka, oo ay ku jiraan YetiRanlPairwise, oo soo saaray meel kasta oo u dhow natiijada uu LogLoss sameeyay (0,745 vs. 0,725). Weli waxaa jirtay rajo QueryCrossEntropy, taas oo aan la bilaabi karin.

Marxaladda khadka tooska ah

Marxaladda khadka tooska ah, qaab-dhismeedka xogtu sidii hore ayay ahaan jirtay, laakiin waxa jiray isbeddello yaryar:

  • aqoonsiga userId, objectId, ownerId ayaa dib loo kala beddelay;
  • dhowr calaamadood ayaa laga saaray dhowr magacna waa la beddelay;
  • xogta ayaa kordhay ku dhawaad ​​1,5 jeer.

Marka lagu daro dhibaatooyinka liiska, waxaa jiray hal dheeri oo weyn: kooxda waxaa loo qoondeeyay server weyn oo leh RTX 2080TI. Waxaan ku raaxaysanayay htop muddo dheer.
SNA Hackathon 2019

Waxaa jiray hal fikrad oo kaliya - in si fudud loo soo saaro wixii hore u jiray. Ka dib markii aan ku qaadanay dhowr saacadood in lagu dejiyo deegaanka server-ka, waxaan si tartiib tartiib ah u bilownay inaan xaqiijino in natiijadu ay ahaayeen kuwo dib loo soo saari karo. Dhibaatada ugu weyn ee ina haysata waa korodhka mugga xogta. Waxaan go'aansanay inaan yareyno culeyska oo aan dejino cabbirka catboost ctr_complexity=1. Tani waxay hoos u dhigeysaa xawaaraha wax yar, laakiin qaabkaygu wuxuu bilaabay inuu shaqeeyo, natiijadu waxay ahayd mid wanaagsan - 0,733. Sergey, si ka duwan aniga, uma kala qaybin xogta 2 qaybood oo wuxuu u tababaray dhammaan xogta, inkastoo tani ay bixisay natiijooyinka ugu wanaagsan ee marxaladda internetka, marxaladda offline-ka waxaa jiray dhibaatooyin badan. Haddii aan qaadno dhammaan sifooyinka aan soo saarnay oo aan isku daynay inaan ku tuurno catboost, markaa waxba kama shaqeyn doono marxaladda internetka. Sergey waxa uu sameeyay qaab wanaajinta, tusaale ahaan, u beddelaya noocyada float64 una beddelay float32. In this article, Waxaad ka heli kartaa macluumaad ku saabsan hagaajinta xusuusta gudaha pandas. Natiijo ahaan, Sergey wuxuu ku tababaray CPU isagoo isticmaalaya dhammaan xogta wuxuuna helay qiyaastii 0,735.

Natiijooyinkani waxay ahaayeen kuwo ku filan inaan badino, laakiin waxaan qarinay xawaarahayaga dhabta ah, mana aan hubin karno in kooxaha kale aysan samaynin sidaas oo kale.

Dagaal ilaa ugu dambeeya

Daawaynta Catboost

Xalkayaga si buuxda ayaa loo soo saaray, waxaanu ku darnay sifooyinka xogta qoraalka iyo sawirada, sidaas darteed waxa hadhay oo dhan waxay ahayd in la hagaajiyo xuduudaha catboost. Sergey wuxuu ku tababaray CPU tiro yar oo ku celcelin ah, waxaanan ku tababaray midka leh ctr_complexity=1. Hal maalin ayaa ka hartay, oo haddii aad kaliya ku dartay ku celcelin ama aad kordhisay ctr_complexity, markaas subaxda waxaad heli kartaa xawaar ka sii fiican oo aad socon karto maalinta oo dhan.

Marxaladda khadka tooska ah, xawaaruhu si fudud ayaa loo qarin karaa iyadoo si fudud loo dooran xalka ugu fiican ee goobta. Waxaan fileynay isbadello xooggan oo ku yimi guddiga hogaanka daqiiqadihii ugu dambeeyay ka hor inta aan la xirin soo gudbinta oo aan go'aansanay inaanan joojin.

Fiidiyowga Anna, waxaan ka bartay in si loo hagaajiyo tayada qaabka, ay ugu fiican tahay in la doorto xuduudaha soo socda:

  • heerka waxbarashada - Qiimaha caadiga ah waxaa lagu xisaabiyaa iyadoo lagu saleynayo cabbirka xogta. Kordhinta heerka barashada waxay u baahan tahay kordhinta tirada ku celcelinta
  • l2_leaf_reg - Isku-dubarid joogto ah, qiimaha caadiga ah ee 3, door bidaan ka dooro 2 ilaa 30. Hoos u dhigista qiimaha waxay keenaysaa korodhka xad-dhaafka ah.
  • heerkulka bagging - waxay ku daraysaa randomization miisaanka walxaha ku jira muunada. Qiimaha caadiga ah waa 1, halkaasoo miisaannada laga soo qaatay qaybinta jibbaarada. Hoos u dhigista qiimaha waxay keenaysaa korodhka xad-dhaafka ah.
  • xoogga_ random - Waxay saamaysaa doorashada kala qaybsanaantooda wakhti go'an. Markasta oo ay sareeyso xoogga random_ka, waa ay sareeysaa fursada kala qeybsanaanta muhimada hoose ee la xusho. Mar kasta oo soo noqnoqda, kala-sooc la'aanta ayaa hoos u dhacda. Hoos u dhigista qiimaha waxay keenaysaa korodhka xad-dhaafka ah.

Qodobbada kale ayaa saameyn aad u yar ku leh natiijada kama dambaysta ah, markaa iskuma dayin inaan doorto iyaga. Hal mar oo tababar ah oo ku saabsan xogtayda GPU-ga oo leh ctr_complexity=1 waxay qaadatay 20 daqiiqo, iyo cabbirrada la xushay ee kaydka xogta la dhimay ayaa waxyar ka duwanaa kuwa ugu habboon ee kaydinta xogta buuxda. Dhammaadkii, waxaan sameeyay qiyaastii 30 dib-u-eegis ku saabsan 10% xogta, ka dibna 10 kale oo dheeraad ah oo ku saabsan dhammaan xogta. Waxay noqotay sida tan:

  • heerka waxbarashada Waxaan kordhay 40% aan caadiga ahayn;
  • l2_leaf_reg u daayey sidii hore;
  • heerkulka bagging ΠΈ xoogga_ random hoos loo dhigay 0,8.

Waxaan ku soo gabagabeyn karnaa in qaabka uu ahaa mid si hoose loo tababaray oo leh xuduudaha caadiga ah.

Aad baan ula yaabay markii aan natiijada ku arkay sabuuradda hogaanka:

Tusaalaha Qaabka 1 Qaabka 2 Qaabka 3 ururin
Iyadoo aan la hagaajin 0.7403 0.7404 0.7404 0.7407
Iyadoo la hagaajinayo 0.7406 0.7405 0.7406 0.7408

Waxaan naftayda ku soo gabagabeeyey in haddii codsiga degdega ah ee qaabka aan loo baahnayn, markaa way fiicantahay in lagu beddelo xulashada xuduudaha iyada oo la adeegsanayo dhowr nooc oo kala duwan iyadoo la adeegsanayo xuduudaha aan la hagaajin.

Sergey waxa uu hagaajinayey cabbirka xogta xogta si uu ugu socodsiiyo GPU-ga. Doorashada ugu fudud waa in la gooyo qayb ka mid ah xogta, laakiin tan waxaa lagu samayn karaa siyaabo dhowr ah:

  • si tartiib tartiib ah uga saar xogta ugu da'da weyn (bilawga Febraayo) ilaa inta xog-ururinta ay bilaabeyso inay ku habboonaato xusuusta;
  • ka saar sifooyinka leh muhiimada ugu yar;
  • ka saar userIds kaas oo ay jirto hal gelid oo keliya;
  • ka tag kaliya userIds ee ku jira imtixaanka.

Iyo ugu dambeyntii, samee isku dhafka dhammaan xulashooyinka.

Isku dhafka ugu dambeeya

Fiidnimadii dambe ee maalintii u dambaysay, waxaanu dejinay isku-dhafka moodelladayada oo keenay 0,742. Habeenkii waxa aan bilaabay moodelkayga ctr_complexity=2 oo halkii 30 daqiiqo waxa aan tababaray 5 saacadood. Kaliya 4-tii subaxnimo ayaa la tiriyay, waxaanan sameeyay kooxdii ugu dambeysay, taasoo ku siisay 0,7433 hogaanka guud ee dadweynaha.

Sababtoo ah habab kala duwan oo loo xalliyo dhibaatada, saadaashayadu si adag looma xiriirin, taas oo siisay koror wanaagsan oo isku dhafan. Si aad u heshid koox wanaagsan, waxa fiican in la isticmaalo saadaasha moodeelka cayriinka ah (prediction_type='RawFormulaVal') iyo dejinta scale_pos_weight=neg_count/pos_count.

SNA Hackathon 2019

Mareegta waxaad ka arki kartaa Natiijooyinka kama dambaysta ah ee sabuuradda hogaaminta gaarka ah.

Xalalka kale

Kooxo badan ayaa raacay canons-ka nidaamka la-talinta algorithms. Anigu, ma ahan khabiir ku takhasusay goobtan, ma qiimeyn karo iyaga, laakiin waxaan xasuustaa 2 xalal xiiso leh.

  • Xalka Nikolay Anokhin. Nikolay, isagoo shaqaale ka ah Mail.ru, ma dalban abaalmarinno, sidaas darteed hadafkiisu ma ahayn inuu gaaro xawaaraha ugu sarreeya, laakiin si uu u helo xal si fudud loo cabbiri karo.
  • Jury Prize go'aankooda ku salaysan maqaalkan ka facebook, loo oggolaaday isku-ururinta sawirka aad u wanaagsan iyada oo aan la helin shaqo gacanta ah.

gunaanad

Maxaa xusuustayda ugu dhegay:

  • Haddii ay jiraan sifooyin kala duwan oo ku jira xogta, oo aad taqaanid sida loo sameeyo codaynta si sax ah, weli way fiicantahay in la isku dayo catboost.
  • Haddii aad ka qaybgalayso tartan, waa inaadan wakhti ku lumin xulashada cabbirrada aan ka ahayn heerka barashada iyo ku celcelinta. Xalka ugu dhakhsaha badan waa in la sameeyo isku-dhafka dhowr nooc.
  • Kobcinta waxay wax ku baran kartaa GPU-ga. Catboost si dhakhso ah ayey wax uga baran kartaa GPU-ga, laakiin waxay cuntaa xusuusta badan.
  • Inta lagu jiro horumarinta iyo tijaabinta fikradaha, waxaa fiican in la dejiyo rsm ~ 0.2 yar (CPU kaliya) iyo ctr_complexity=1.
  • Si ka duwan kooxaha kale, isku dhafka moodooyinkayagu waxay siiyeen koror weyn. Kaliya fikrado ayaan is weydaarsannay oo waxaan ku qornay luqado kala duwan. Waxaan yeelanay qaab ka duwan sidii loo kala qaybin lahaa xogta, waxaan filayaa, mid kastaa wuxuu lahaa cayayaan u gaar ah.
  • Ma cadda sababta hagaajinta kala-duwanaanshaha ay uga xun tahay hagaajinta kala-soocidda.
  • Waxaan kasbaday xoogaa waayo-aragnimo ah oo ku shaqeynaya qoraallada iyo fahamka sida nidaamyada la-talinta loo sameeyo.

SNA Hackathon 2019

Waxaan u mahadcelinayaa qabanqaabiyeyaasha dareenka, aqoonta iyo abaal-marinnada la helay.

Source: www.habr.com

Add a comment