SNA Hackathon 2019

I Pepeluali-Malaki 2019, ua mālama ʻia kahi hoʻokūkū e hoʻokūkū i ka hānai pūnaewele SNA Hackathon 2019, kahi i noho mua ai ko makou hui. Ma ka ʻatikala e kamaʻilio wau e pili ana i ka hoʻonohonoho ʻana o ka hoʻokūkū, nā ʻano hana a mākou i hoʻāʻo ai, a me nā hoʻonohonoho catboost no ke aʻo ʻana i ka ʻikepili nui.

SNA Hackathon 2019

SNA Hackathon

ʻO ke kolu kēia o ka manawa i mālama ʻia ai kahi hackathon ma lalo o kēia inoa. Hoʻonohonoho ʻia e ka ʻoihana pūnaewele ok.ru, kēlā me kēia, pili pono ka hana a me ka ʻikepili i kēia ʻoihana pūnaewele.
ʻO ka SNA (ka nānā ʻana i ka ʻoihana pūnaewele) i kēia hihia, ʻoi aku ka pololei o ka hoʻomaopopo ʻana ʻaʻole ma ke ʻano he loiloi o ka pakuhi kaiapili, akā ma ke ʻano he loiloi o kahi ʻoihana pūnaewele.

  • I ka makahiki 2014, ʻo ka hana ka wānana i ka nui o nā makemake e loaʻa i kahi pou.
  • I ka makahiki 2016 - ka hana VVZ (hiki paha iā ʻoe ke kamaʻāina), kokoke i ka nānā ʻana o ka pakuhi kaiapili.
  • Ma 2019, hoʻonohonoho i ka meaʻai a ka mea hoʻohana ma muli o ka makemake o ka mea hoʻohana i ka pou.

ʻAʻole hiki iaʻu ke ʻōlelo e pili ana i ka makahiki 2014, akā i ka 2016 a me 2019, ma kahi o ka hiki ke hoʻopaʻa inoa ʻikepili, koi pū ʻia nā mākau hana me ka ʻikepili nui. Manaʻo wau ʻo ka hui pū ʻana o ka mīkini aʻo a me nā pilikia hoʻoili ʻikepili nui i huki iaʻu i kēia mau hoʻokūkū, a ua kōkua koʻu ʻike ma kēia mau wahi iaʻu e lanakila.

mlbootcamp

Ma 2019, ua hoʻonohonoho ʻia ka hoʻokūkū ma ka paepae https://mlbootcamp.ru.

Ua hoʻomaka ka hoʻokūkū ma ka pūnaewele ma ka lā 7 Pepeluali a he 3 mau hana. Hiki i kekahi ke hoʻopaʻa inoa ma ka pūnaewele, hoʻoiho ka hopena a hoʻouka i kāu kaʻa no kekahi mau hola. I ka pau ʻana o ke kahua pūnaewele ma Malaki 15, ua kono ʻia nā 15 kiʻekiʻe o kēlā me kēia hanana lele i ke keʻena Mail.ru no ka pae waho, i mālama ʻia mai Malaki 30 a ʻApelila 1.

Nń Pahuhopu

Hāʻawi ka ʻikepili kumu i nā ID mea hoʻohana (userId) a me nā ID post (objectId). Inā hōʻike ʻia ka mea hoʻohana i kahi pou, a laila aia i ka ʻikepili kahi laina i loaʻa ka userId, objectId, nā pane o ka mea hoʻohana i kēia pou (manaʻo) a me kahi pūʻulu o nā hiʻohiʻona like ʻole a i ʻole nā ​​loulou i nā kiʻi a me nā kikokikona.

userId objectId nonaId manaʻo kiʻi
3555 22 5677 [makemake, kaomi] [hash1]
12842 55 32144 [makemake ʻole] [hash2, hash3]
13145 35 5677 [kaomi, kaʻana like] [hash2]

Loaʻa i ka pūʻulu ʻikepili hoʻāʻo kekahi ʻano like, akā nalo ka kahua manaʻo. ʻO ka hana, ʻo ia ke wānana i ka hiki ʻana mai o ka 'like' pane ma ke kahua manaʻo.
Aia ke ʻano o ka waihona hoʻouna:

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

ʻO ka metric ka awelika ROC AUC no nā mea hoʻohana.

Hiki ke loaʻa kahi wehewehe kikoʻī o ka ʻikepili ma pūnaewele ʻaha kūkā. Hiki iā ʻoe ke hoʻoiho i ka ʻikepili ma laila, me nā hoʻokolohua a me nā kiʻi.

Paena pūnaewele

Ma ka pae pūnaewele, ua māhele ʻia ka hana i 3 mau ʻāpana

  • Pūnaehana hui — komo nā hiʻohiʻona a pau koe nā kiʻi a me nā kikokikona;
  • Nā kiʻi - loaʻa wale nā ​​ʻike e pili ana i nā kiʻi;
  • ʻ .lelo — loaʻa nā ʻike e pili ana i nā kikokikona.

Ke kahua pahemo

Ma ka pae waho, ua komo ka ʻikepili i nā hiʻohiʻona a pau, ʻoiai kakaʻikahi nā kikokikona a me nā kiʻi. He 1,5 manawa hou aʻe nā lālani i loko o ka waihona, a ua nui nā lālani.

ʻO ka hopena o ka pilikia

Ma muli o kaʻu hana CV ma ka hana, hoʻomaka wau i kaʻu huakaʻi i kēia hoʻokūkū me ka hana "Kiʻi". ʻO ka ʻikepili i hāʻawi ʻia ʻo userId, objectId, ownerId (ka hui i paʻi ʻia ai ka pou), nā manawa no ka hana ʻana a hōʻike i ka pou, a, ʻoiaʻiʻo, ke kiʻi no kēia pou.
Ma hope o ka hana ʻana i kekahi mau hiʻohiʻona e pili ana i nā timestamp, ʻo ka manaʻo aʻe e lawe i ka papa penultimate o ka neuron i hoʻomaʻamaʻa mua ʻia ma ka imagenet a hoʻouna i kēia mau hoʻopili e hoʻonui.

SNA Hackathon 2019

ʻAʻole maikaʻi nā hopena. ʻAʻole pili ka hoʻopili ʻana mai ka neuron imagenet, manaʻo wau, pono wau e hana i kaʻu autoencoder ponoʻī.

SNA Hackathon 2019

Ua lōʻihi ka manawa a ʻaʻole maikaʻi ka hopena.

Hanau hiʻona

ʻO ka hana ʻana me nā kiʻi he nui ka manawa, no laila ua hoʻoholo wau e hana i kahi mea maʻalahi.
E like me kāu e ʻike koke ai, aia kekahi mau hiʻohiʻona categorical i ka dataset, a i ʻole e pilikia nui, lawe wau i ka catboost. Ua maikaʻi loa ka hopena, me ka ʻole o nā hoʻonohonoho i hele koke wau i ka laina mua o ka papa alakaʻi.

Nui loa ka ʻikepili a waiho ʻia ma ke ʻano parquet, no laila me ka noʻonoʻo ʻole ʻelua, lawe wau i ka scala a hoʻomaka wau e kākau i nā mea āpau me ka spark.

ʻO nā hiʻohiʻona maʻalahi i hāʻawi i ka ulu aʻe ma mua o nā hoʻopili kiʻi:

  • ehia mau manawa i puka mai ai ka objectId, userId a me ownerId i ka ʻikepili (pono e hoʻopili me ka kaulana);
  • ehia mau pou i ʻike ʻia e userId mai ownerId (pono e hoʻopili me ka hoihoi o ka mea hoʻohana i ka hui);
  • ehia mau mea hoʻohana kūikawā i nānā i nā pou mai ownerId (e hōʻike ana i ka nui o ka lehulehu o ka hui).

Mai nā timestamp hiki ke loaʻa ka manawa o ka lā i nānā ai ka mea hoʻohana i ka hānai (kakahiaka / ahiahi / ahiahi / pō). Ma ka hoʻohui ʻana i kēia mau ʻāpana, hiki iā ʻoe ke hoʻomau i ka hana ʻana i nā hiʻohiʻona:

  • ehia manawa i komo ai ka userId i ke ahiahi;
  • i ka manawa hea e hōʻike pinepine ʻia ai kēia pou (objectId) a pēlā aku.

Ua hoʻomaikaʻi mālie kēia mau mea a pau i nā ana. Akā ʻo ka nui o ka ʻikepili hoʻomaʻamaʻa ma kahi o 20M mau moʻolelo, no laila ʻo ka hoʻohui ʻana i nā hiʻohiʻona i hoʻolōʻihi i ka hoʻomaʻamaʻa.

Ua noʻonoʻo hou au i kaʻu ala e hoʻohana ai i ka ʻikepili. ʻOiai ke hilinaʻi nei ka ʻikepili i ka manawa, ʻaʻole wau i ʻike i nā leaks ʻike maopopo "i ka wā e hiki mai ana", akā naʻe, inā ʻaʻole wau i uhaʻi e like me kēia:

SNA Hackathon 2019

Ua māhele ʻia ka papa hoʻomaʻamaʻa i hāʻawi ʻia iā mākou (Pepeluali a me 2 mau pule o Malaki) i ʻelua ʻāpana.
Ua aʻo ʻia ke kumu hoʻohālike i ka ʻikepili mai nā lā N i hala. Ua kūkulu ʻia nā hōʻuluʻulu i hōʻike ʻia ma luna ma nā ʻikepili āpau, me ka hoʻāʻo. I ka manawa like, ua ʻike ʻia ka ʻikepili kahi e hiki ai ke kūkulu i nā ʻano hoʻopili like ʻole o ka ʻano hoʻololi. ʻO ke ala maʻalahi, ʻo ia ka hoʻohana hou ʻana i ke code e hana nei i nā hiʻohiʻona hou, a e hānai wale iā ia i ka ʻikepili kahi e hoʻomaʻamaʻa ʻole ʻia ai a me ka pahuhopu = 1.

No laila, loaʻa iā mākou nā hiʻohiʻona like:

  • ʻEhia mau manawa i ʻike ai ʻo userId i kahi pou ma ka hui ownerId;
  • Ehia mau manawa a userId i makemake ai i ka pou ma ka group ownerId;
  • Ka pākēneka o nā memo i makemake ʻia e userId mai ownerId.

ʻO ia hoʻi, ua ʻike ʻia mean target encoding ma kahi ʻāpana o ka ʻikepili no nā hui like ʻole o nā hiʻohiʻona categorical. Ma ke kumu, kūkulu pū ka catboost i ka hoʻopili ʻana i ka pahuhopu a mai kēia manaʻo ʻaʻohe pōmaikaʻi, akā, no ka laʻana, ua hiki ke helu i ka helu o nā mea hoʻohana kūikawā i makemake i nā pou i kēia hui. I ka manawa like, ua hoʻokō ʻia ka pahuhopu nui - ua hoʻemi ʻia kaʻu mau ʻikepili i nā manawa he nui, a ua hiki ke hoʻomau i ka hana ʻana i nā hiʻohiʻona.

ʻOiai hiki i ka catboost ke kūkulu i ka hoʻopili wale ʻana ma muli o ka hopena i makemake ʻia, aia nā manaʻo ʻē aʻe: kaʻana like, makemake ʻole, makemake ʻole, kaomi, nānā ʻole, hiki ke hana me ka lima. Ua helu hou au i nā ʻano hui like ʻole a kāpae i nā hiʻohiʻona me ke koʻikoʻi haʻahaʻa i ʻole e hoʻonui i ka ʻikepili.

I kēlā manawa ua kū au i ka mua ma kahi ākea ākea. ʻO ka mea huikau wale nō ʻo ia ʻaʻole i hōʻike ʻia nā hoʻopili kiʻi. Ua hiki mai ka manaʻo e hāʻawi i nā mea āpau i catboost. Hoʻopili mākou i nā kiʻi Kmeans a loaʻa i kahi kiʻi kiʻi categorical hou.

Eia kekahi mau papa ma hope o ka kānana lima a me ka hoʻohui ʻana i nā pūʻulu i loaʻa mai KMeans.

SNA Hackathon 2019

Ma muli o imageCat mākou e hana ai:

  • Nā hiʻohiʻona hou:
    • ʻO wai imageCat i ʻike pinepine ʻia e ka userId;
    • ʻO wai imageCat e hōʻike pinepine ana i ka ownerId;
    • ʻO wai ka imageCat i makemake pinepine ʻia e ka userId;
  • Nā helu like ʻole:
    • Ehia kiʻi kūʻokoʻa i nānā i ka userId;
    • Ma kahi o 15 mau hiʻohiʻona like a me ka hoʻopili ʻana i ka pahuhopu e like me ka mea i wehewehe ʻia ma luna.

ʻ .lelo

Ua kūpono nā hopena o ka hoʻokūkū kiʻi iaʻu a ua hoʻoholo wau e hoʻāʻo i koʻu lima ma nā kikokikona. ʻAʻole wau i hana nui me nā kikokikona ma mua a, me ka naʻaupō, ua pepehi wau i ka lā ma tf-idf a me svd. A laila ʻike wau i ka baseline me doc2vec, e hana pololei i kaʻu mea e pono ai. Ma hope o ka hoʻololi iki ʻana i nā ʻāpana doc2vec, loaʻa iaʻu nā hoʻopili kikokikona.

A laila hoʻohana hou wau i ke code no nā kiʻi, kahi aʻu i hoʻololi ai i nā hoʻopili kiʻi me nā kikokikona. ʻO ka hopena, ua loaʻa iaʻu ka wahi ʻelua ma ka hoʻokūkū kikokikona.

Pūnaehana hui

He hoʻokahi hoʻokūkū i koe ʻaʻole au i "poi" me ka lāʻau, a ke hoʻoholo ʻia e ka AUC ma ka papa alakaʻi, ʻo nā hopena o kēia hoʻokūkū kūikawā i loaʻa ka hopena nui loa ma ka pae waho.
Ua lawe au i nā hiʻohiʻona a pau i loko o ka ʻikepili kumu, nā mea i koho ʻia a helu ʻia i nā hui like me nā kiʻi, koe wale nā ​​hiʻohiʻona e pili ana i nā kiʻi ponoʻī. ʻO ka hoʻokomo wale ʻana i kēia i ka catboost ua loaʻa iaʻu i kahi 2nd.

ʻO nā ʻanuʻu mua o ka catboost optimization

Ua hauʻoli wau i kahi mua a me ʻelua mau wahi, akā aia ka hoʻomaopopo ʻana ʻaʻole wau i hana i kekahi mea kūikawā, ʻo ia ka mea hiki iaʻu ke manaʻo i ka nalowale o nā kūlana.

ʻO ka hana o ka hoʻokūkū ka hoʻonohonoho ʻana i nā pou i loko o ka mea hoʻohana, a i kēia manawa āpau wau e hoʻoponopono nei i ka pilikia hoʻohālikelike, ʻo ia hoʻi, ka hoʻonui ʻana i ka metric hewa.

E hāʻawi wau iā ʻoe i kahi laʻana maʻalahi:

userId objectId ka olelo wanana a ʻoiaʻiʻo honua
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

E hoʻonohonoho hou kāua

userId objectId ka olelo wanana a ʻoiaʻiʻo honua
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

Loaʻa iā mākou nā hopena aʻe:

Ke kŘkohu AUC Mea hoʻohana1 AUC Mea hoʻohana2 AUC manaʻo AUC
Kō koho 1 0,8 1,0 0,0 0,5
Kō koho 2 0,7 0,75 1,0 0,875

E like me kāu e ʻike ai, ʻo ka hoʻomaikaʻi ʻana i ka metric AUC holoʻokoʻa ʻaʻole ia he hoʻomaikaʻi i ka awelika AUC metric i loko o kahi mea hoʻohana.

Catboost ʻike i ka hoʻonui ʻana i nā metric ranking mai ka pahu. Heluhelu au e pili ana i nā metric ranking, moʻolelo holomua i ka hoʻohana ʻana i ka catboost a hoʻonohonoho iā YetiRankPairwise e hoʻomaʻamaʻa i ka pō. ʻAʻole maikaʻi ka hopena. I ka hoʻoholo ʻana ua hoʻomaʻamaʻa ʻia au, ua hoʻololi au i ka hana hewa i QueryRMSE, ka mea, e hoʻoholo ana i ka palapala catboost, e hoʻohuli wikiwiki. I ka hopena, ua loaʻa iaʻu nā hopena like me ka wā e hoʻomaʻamaʻa ai no ka hoʻomaʻamaʻa ʻana, akā ʻo nā hui o kēia mau hiʻohiʻona ʻelua ua hāʻawi maikaʻi i ka hoʻonui maikaʻi ʻana, i lawe mai iaʻu i kahi mua ma nā hoʻokūkū ʻekolu.

5 mau minuke ma mua o ka pau ʻana o ka pae pūnaewele o ka hoʻokūkū "Collaborative Systems", ua hoʻoneʻe ʻo Sergey Shalnov iaʻu i kahi lua. Hele pū mākou i ke ala hou aku.

E hoʻomākaukau ana no ka pae hoʻopahemo

Ua hōʻoiaʻiʻo ʻia mākou i ka lanakila ma ka pae pūnaewele me kahi kāleka wikiō RTX 2080 TI, akā ʻo ka makana nui o 300 rubles a, ʻoi aku paha, ʻo ka wahi mua loa i koi iā mākou e hana no kēia mau pule 000.

E like me ka mea i ʻike ʻia, ua hoʻohana pū ʻo Sergey i ka catboost. Ua hoʻololi mākou i nā manaʻo a me nā hiʻohiʻona, a aʻo wau e pili ana hōʻike e Anna Veronica Dorogush i loaʻa nā pane i ka nui o kaʻu mau nīnau, a me nā nīnau aʻu i loaʻa ʻole ai i kēlā manawa.

ʻO ka nānā ʻana i ka hōʻike i alakaʻi iaʻu i ka manaʻo e pono mākou e hoʻihoʻi i nā ʻāpana āpau i ka waiwai paʻamau, a hana pono i nā hoʻonohonoho a ma hope wale nō o ka hoʻoponopono ʻana i kahi pūʻulu o nā hiʻohiʻona. I kēia manawa ua lawe ʻia kahi hoʻomaʻamaʻa ma kahi o 15 mau hola, akā hoʻokahi kumu hoʻohālike i loaʻa ka wikiwiki ma mua o ka mea i loaʻa i ka hui me ka pae.

Hanau hiʻona

Ma ka hoʻokūkū Collaborative Systems, helu ʻia ka nui o nā hiʻohiʻona i mea nui no ke kumu hoʻohālike. ʻo kahi laʻana, loiloi_spark_svd - ka hōʻailona nui loa, akā ʻaʻohe ʻike e pili ana i ke ʻano. Manaʻo wau he mea kūpono ke helu ʻana i nā hui like ʻole e pili ana i nā hiʻohiʻona koʻikoʻi. No ka laʻana, ka awelika auditweights_spark_svd e ka mea hoʻohana, ma ka hui, ma ka mea. Hiki ke helu like me ka hoʻohana ʻana i ka ʻikepili kahi i hana ʻole ʻia ai ke aʻo ʻana a me ka pahuhopu = 1, ʻo ia hoʻi, ka awelika loiloi_spark_svd e ka mea hoʻohana ma nā mea āna i makemake ai. ʻO nā hōʻailona koʻikoʻi ma waho loiloi_spark_svd, ua nui. Eia kekahi o lākou:

  • nā kaupaona hoʻoponoponoCtrGender
  • nā luna hoʻoponoponoCtrHigh
  • userOwnerCounterCreateLikes

No ka laʻana, ka awelika nā kaupaona hoʻoponoponoCtrGender e like me ka userId ua lilo ia i mea nui, e like me ka awelika waiwai userOwnerCounterCreateLikes na userId+ownerId. Pono kēia e noʻonoʻo pono ʻoe e hoʻomaopopo i ke ʻano o nā māla.

ʻO nā hiʻohiʻona koʻikoʻi kekahi auditweightsLikesCount и hoʻopaʻi paonaShowsCount. Ma ka mahele ʻana i kekahi me kekahi, ua loaʻa kahi hiʻohiʻona nui loa.

Leka ʻikepili

ʻO ka hoʻokūkū a me ka hana hoʻohālike hana he mau hana ʻokoʻa loa. I ka hoʻomākaukau ʻana i ka ʻikepili, paʻakikī loa ka noʻonoʻo ʻana i nā kikoʻī āpau a ʻaʻole hoʻi e haʻi i kekahi ʻike non-trivial e pili ana i ka hoʻololi ʻana i ka hoʻāʻo. Inā mākou e hana nei i kahi hopena hana, e hoʻāʻo mākou e pale i ka hoʻohana ʻana i nā leaks data i ke aʻo ʻana i ke kumu hoʻohālike. Akā inā makemake mākou e lanakila i ka hoʻokūkū, a laila ʻo ka leaks data nā hiʻohiʻona maikaʻi loa.

Ke aʻo ʻana i ka ʻikepili, hiki iā ʻoe ke ʻike e like me nā waiwai objectId auditweightsLikesCount и hoʻopaʻi paonaShowsCount hoʻololi, ʻo ia hoʻi ka lakio o nā koina kiʻekiʻe o kēia mau hiʻohiʻona e hōʻike i ka hoʻololi ʻana o ka post ma mua o ka ratio i ka manawa o ka hōʻike.

ʻO ka leak mua a mākou i ʻike ai auditweightsLikesCountMax/auditweightsShowsCountMax.
Akā pehea inā mākou e nānā pono i ka ʻikepili? E hoʻokaʻawale kākou ma ka lā hōʻike a loaʻa:

objectId userId hoʻopaʻi paonaShowsCount auditweightsLikesCount pahuhopu (makemake ʻia)
1 1 12 3 ʻaʻole paha
1 2 15 3 ʻae paha
1 3 16 4

He mea kāhāhā i ka wā i loaʻa ai iaʻu ka hiʻohiʻona mua loa a ʻike ʻia ʻaʻole i hoʻokō ʻia kaʻu wānana. Akā, e noʻonoʻo ana i ka piʻi ʻana o nā waiwai kiʻekiʻe o kēia mau ʻano i loko o ka mea, ʻaʻole mākou moloā a hoʻoholo e ʻimi. nā loiloi hoʻopaʻa ʻanaShowsCountNext и auditweightsLikesCountNext, ʻo ia hoʻi, nā waiwai i ka manawa aʻe o ka manawa. Ma ka hoʻohui ʻana i kahi hiʻohiʻona
(auditweightsShowsCountNext-auditweightsShowsCount)/(auditweightsLikesCount-auditweightsLikesCountNext) lele koke mākou.
Hiki ke hoʻohana ʻia nā leaks like ma ka ʻimi ʻana i nā waiwai aʻe no userOwnerCounterCreateLikes i loko o userId+ownerId a, no ka laʻana, nā kaupaona hoʻoponoponoCtrGender i loko o objectId+userGender. Ua loaʻa iā mākou he 6 mau māla like me nā leaks a unuhi i ka ʻike e like me ka hiki.

I kēlā manawa, ua ʻoki mākou i ka ʻike e like me ka hiki mai nā hiʻohiʻona hui, akā ʻaʻole i hoʻi i nā hoʻokūkū kiʻi a me nā kikokikona. He manaʻo maikaʻi koʻu e nānā: pehea ka nui o nā hiʻohiʻona e pili pono ana i nā kiʻi a i ʻole nā ​​kikokikona e hāʻawi i nā hoʻokūkū kūpono?

ʻAʻohe leaks i ke kiʻi a me nā hoʻokūkū kikokikona, akā i kēlā manawa ua hoʻihoʻi au i nā palena catboost paʻamau, hoʻomaʻemaʻe i ke code a hoʻohui i kekahi mau hiʻohiʻona. ʻO ka huina:

olelo hooholo koke
Ka nui me nā kiʻi 0.6411
ʻAʻohe kiʻi kiʻekiʻe 0.6297
Ka hopena o ka lua 0.6295

olelo hooholo koke
Loaʻa me nā kikokikona 0.666
Ka nui me ka ʻole o nā kikokikona 0.660
Ka hopena o ka lua 0.656

olelo hooholo koke
ʻOi loa ma ka laulima 0.745
Ka hopena o ka lua 0.723

Ua ʻike ʻia ʻaʻole hiki iā mākou ke ʻoki nui i nā kikokikona a me nā kiʻi, a ma hope o ka hoʻāʻo ʻana i kekahi mau manaʻo hoihoi loa, ua hoʻōki mākou i ka hana pū me lākou.

ʻAʻole i hāʻawi ka hoʻonui hou ʻana o nā hiʻohiʻona i nā ʻōnaehana hui, a ua hoʻomaka mākou i ka pae. Ma ka pae pūnaewele, ua hāʻawi mai iaʻu i kahi hoʻonui liʻiliʻi o ka hoʻokaʻawale ʻana a me ka papa inoa, no ka mea, ua hoʻomaʻamaʻa au i ka hoʻohālikelike. ʻAʻohe o nā hana hewa, me YetiRanlPairwise, i hana ma kahi kokoke i ka hopena a LogLoss i hana ai (0,745 vs. 0,725). Loaʻa ka manaʻolana no QueryCrossEntropy, ʻaʻole hiki ke hoʻokuʻu ʻia.

Ke kahua pahemo

Ma ka pae hoʻopahemo, ua mau ke ʻano o ka ʻikepili, akā he mau hoʻololi liʻiliʻi:

  • ua hoʻololi hou ʻia nā mea hoʻohana mea hoʻohana, objectId, ownerId;
  • ua wehe ʻia kekahi mau hōʻailona a ua kapa hou ʻia kekahi mau hōʻailona;
  • ua hoʻonui ʻia ka ʻikepili ma kahi o 1,5 manawa.

Ma kahi o nā pilikia i helu ʻia, aia kekahi mea nui: ua hoʻokaʻawale ʻia ka hui i kahi kikowaena nui me kahi RTX 2080TI. Ua hauʻoli wau i ka htop no ka manawa lōʻihi.
SNA Hackathon 2019

Hoʻokahi wale nō manaʻo - e hana hou i nā mea i loaʻa. Ma hope o ka hoʻolilo ʻana i ʻelua mau hola i ka hoʻonohonoho ʻana i ke kaiapuni ma ke kikowaena, ua hoʻomaka mālie mākou e hōʻoia i hiki ke hana hou ʻia nā hopena. ʻO ka pilikia nui a mākou e kū nei ʻo ka hoʻonui ʻana i ka nui o ka ʻikepili. Ua hoʻoholo mākou e hoʻemi liʻiliʻi i ka ukana a hoʻonohonoho i ka ʻāpana catboost ctr_complexity=1. Hoʻohaʻahaʻa iki kēia i ka wikiwiki, akā hoʻomaka kaʻu kumu hoʻohālike e hana, maikaʻi ka hopena - 0,733. ʻO Sergey, ʻaʻole like me aʻu, ʻaʻole i hoʻokaʻawale i ka ʻikepili i 2 mau ʻāpana a aʻo ʻia i nā ʻikepili āpau, ʻoiai ua hāʻawi kēia i nā hopena maikaʻi loa ma ka pae pūnaewele, ma ka pae waho he nui nā pilikia. Inā lawe mākou i nā hiʻohiʻona a mākou i hana ai a hoʻāʻo e kiola iā lākou i catboost, a laila ʻaʻohe mea e hana ma ka pae pūnaewele. Ua hana ʻo Sergey i ka loiloi ʻana, no ka laʻana, hoʻololi i nā ʻano float64 i float32. Ma keia 'atikala, Hiki iā ʻoe ke ʻike i ka ʻike e pili ana i ka loiloi hoʻomanaʻo ma nā pandas. ʻO ka hopena, ua aʻo ʻo Sergey i ka CPU me ka hoʻohana ʻana i nā ʻikepili āpau a loaʻa iā 0,735.

Ua lawa kēia mau hopena i ka lanakila, akā ua hūnā mākou i ko mākou wikiwiki maoli a ʻaʻole hiki ke maopopo ʻaʻole e hana like nā hui ʻē aʻe.

E hakakā a hiki i ka hope

Hoʻokani ʻo Catboost

Hoʻopuka piha ʻia kā mākou hoʻonā, hoʻohui mākou i nā hiʻohiʻona o ka ʻikepili kikokikona a me nā kiʻi, no laila ʻo nā mea i koe e hoʻoponopono i nā ʻāpana catboost. Ua hoʻomaʻamaʻa ʻo Sergey i ka CPU me kahi helu liʻiliʻi o nā mea hou, a ua aʻo au ma ka mea me ctr_complexity=1. Hoʻokahi lā i koe, a inā ʻoe e hoʻohui i nā mea hou a hoʻonui paha i ka ctr_complexity, a laila ma ke kakahiaka hiki iā ʻoe ke loaʻa ka wikiwiki a ʻoi aku ka maikaʻi o ka hele ʻana i ka lā āpau.

Ma ka pae waho, hiki ke hūnā ʻia nā wikiwiki ma ke koho wale ʻana i ka hopena maikaʻi loa ma ka pūnaewele. Manaʻo mākou i nā loli nui i ka papa alakaʻi i nā minuke hope loa ma mua o ka pani ʻana o ka waiho ʻana a hoʻoholo ʻaʻole e hoʻōki.

Mai ka wikiō a Anna, ua aʻo wau e hoʻomaikaʻi i ka maikaʻi o ke kumu hoʻohālike, ʻoi aku ka maikaʻi o ke koho ʻana i kēia mau ʻāpana:

  • hoʻonaʻauao — Ua helu ʻia ka waiwai paʻamau ma muli o ka nui o ka waihona. ʻO ka hoʻonui ʻana i ka learning_rate pono e hoʻonui i ka helu o nā ʻike.
  • l2_leaf_reg — Ka helu hoʻoponopono, ka waiwai paʻamau 3, koho maikaʻi mai ka 2 a hiki i ka 30. ʻO ka emi ʻana o ka waiwai e alakaʻi i ka hoʻonui ʻana i ka overfit.
  • bagging_temperature - hoʻohui i ka randomization i nā paona o nā mea i loko o ka hāpana. ʻO ka waiwai paʻamau ʻo 1, kahi e huki ʻia ai nā kaupaona mai kahi puʻunaue exponential. ʻO ka emiʻana o ka waiwai e alakaʻi i ka hoʻonui i ka overfit.
  • ikaika_kahiki - Hoʻopili i ke koho ʻana o nā māhele i kahi hoʻololi kikoʻī. ʻOi aku ka kiʻekiʻe o ka random_strength, ʻoi aku ka kiʻekiʻe o ke koho ʻana i kahi mahele haʻahaʻa haʻahaʻa. I kēlā me kēia hoʻololi hou ʻana, e emi ana ka randomness. ʻO ka emiʻana o ka waiwai e alakaʻi i ka hoʻonui i ka overfit.

Loaʻa ka hopena liʻiliʻi o nā ʻāpana ʻē aʻe i ka hopena hope, no laila ʻaʻole wau i hoʻāʻo e koho iā lākou. Hoʻokahi hoʻomaʻamaʻa hoʻomaʻamaʻa ʻana ma kaʻu ʻikepili GPU me ctr_complexity=1 i lawe i 20 mau minuke, a ua ʻokoʻa iki nā ʻāpana i koho ʻia ma ka waihona i hoʻemi ʻia mai nā mea maikaʻi loa ma ka ʻikepili piha. I ka hopena, ua hana au ma kahi o 30 iterations ma 10% o ka ʻikepili, a laila ma kahi o 10 mau mea hou aʻe ma nā ʻikepili āpau. Ua like me kēia:

  • hoʻonaʻauao Ua hoʻonui au i ka 40% mai ka paʻamau;
  • l2_leaf_reg waiho like;
  • bagging_temperature и ikaika_kahiki hoemi i ka 0,8.

Hiki iā mākou ke hoʻoholo ua hoʻomaʻamaʻa ʻia ke kumu hoʻohālike me nā ʻāpana paʻamau.

Pīhoihoi loa au i koʻu ʻike ʻana i ka hopena ma ka papa alakaʻi:

Ke kŘkohu Hōʻike 1 Hōʻike 2 Hōʻike 3 hui
Me ke kani ʻole 0.7403 0.7404 0.7404 0.7407
Me ke kani ʻana 0.7406 0.7405 0.7406 0.7408

Ua hoʻoholo wau noʻu iho inā ʻaʻole pono ka hoʻohana wikiwiki ʻana i ke kumu hoʻohālike, a laila ʻoi aku ka maikaʻi o ka hoʻololi ʻana i ke koho ʻana o nā ʻāpana me kahi hui o nā hiʻohiʻona me ka hoʻohana ʻana i nā ʻāpana i hoʻopaʻa ʻole ʻia.

Hoʻolālā ʻo Sergey i ka nui o ka ʻikepili e holo ai ma ka GPU. ʻO ka koho maʻalahi ka ʻoki ʻana i kahi hapa o ka ʻikepili, akā hiki ke hana i kēia ma nā ʻano he nui:

  • wehe mālie i ka ʻikepili kahiko loa (e hoʻomaka ana o Pepeluali) a hiki i ka hoʻomaka ʻana o ka ʻikepili i ka hoʻomanaʻo;
  • wehe i nā hiʻohiʻona me ka haʻahaʻa haʻahaʻa;
  • e wehe i ka userId i hoʻokahi wale nō komo;
  • waiho wale i nā mea hoʻohana i loko o ka hoʻāʻo.

A i ka hopena, e hana i kahi hui mai nā koho a pau.

ʻO ka hui hope loa

Ma ke ahiahi o ka lā hope, ua hoʻonohonoho mākou i kahi hui o kā mākou mau hiʻohiʻona i loaʻa ka 0,742. I ka pō ua hoʻomaka wau i kaʻu kumu hoʻohālike me ctr_complexity=2 a ma kahi o 30 mau minuke ua aʻo ʻia no 5 mau hola. Ma ka hola 4 wale nō i helu ʻia, a ua hana au i ka hui hope loa, nāna i hāʻawi i ka 0,7433 ma ka papa alakaʻi lehulehu.

Ma muli o nā ala like ʻole i ka hoʻoponopono ʻana i ka pilikia, ʻaʻole i hoʻopili ikaika ʻia kā mākou wānana, i hāʻawi i ka hoʻonui maikaʻi i ka hui. No ka loaʻa ʻana o kahi hui maikaʻi, ʻoi aku ka maikaʻi o ka hoʻohana ʻana i nā wānana wanana maka (prediction_type='RawFormulaVal') a hoʻonohonoho i ka scale_pos_weight=neg_count/pos_count.

SNA Hackathon 2019

Ma ka pūnaewele hiki iā ʻoe ke ʻike nā hopena hope loa ma ka papa alakaʻi pilikino.

ʻO nā hopena ʻē aʻe

Nui nā hui i hahai i nā canons o nā algorithms system recommender. ʻAʻole wau he loea i kēia kahua, ʻaʻole hiki iaʻu ke loiloi iā lākou, akā hoʻomanaʻo wau i 2 mau hopena hoihoi.

  • ʻO ka hopena a Nikolay Anokhin. ʻO Nikolay, he limahana o Mail.ru, ʻaʻole ia i noi no nā makana, no laila ʻaʻole kāna pahuhopu e hoʻokō i ka wikiwiki kiʻekiʻe, akā no ka loaʻa ʻana o kahi hopena maʻalahi.
  • Ma muli o ka manaʻo o ka hui lanakila i ka makana Jury kēia ʻatikala mai facebook, ʻae ʻia no ka hui ʻana kiʻi maikaʻi loa me ka hana lima ʻole.

hopena

ʻO ka mea i paʻa loa i loko o koʻu hoʻomanaʻo:

  • Inā loaʻa nā hiʻohiʻona categorical i ka ʻikepili, a ʻike ʻoe i ka hana ʻana i ka hoʻopili pololei ʻana, ʻoi aku ka maikaʻi o ka hoʻāʻo ʻana i ka catboost.
  • Inā ʻoe e komo ana i ka hoʻokūkū, ʻaʻole pono ʻoe e hoʻopau manawa i ke koho ʻana i nā ʻāpana ʻokoʻa ma mua o ka learning_rate a me nā hoʻololi. ʻO kahi hoʻonā wikiwiki ka hana ʻana i kahi hui o kekahi mau hiʻohiʻona.
  • Hiki ke aʻo ʻia nā Boostings ma ka GPU. Hiki i ka Catboost ke aʻo wikiwiki loa ma ka GPU, akā ʻai nui ia i ka hoʻomanaʻo.
  • I ka wā o ka hoʻomohala ʻana a me ka hoʻāʻo ʻana i nā manaʻo, ʻoi aku ka maikaʻi o ka hoʻonohonoho ʻana i kahi rsm liʻiliʻi~=0.2 (CPU wale nō) a me ctr_complexity=1.
  • ʻAʻole like me nā hui ʻē aʻe, ua hāʻawi ka hui o kā mākou mau hiʻohiʻona i ka piʻi nui. Ua hoʻololi wale mākou i nā manaʻo a kākau i nā ʻōlelo like ʻole. He ʻokoʻa kā mākou i ka hoʻokaʻawale ʻana i ka ʻikepili a, manaʻo wau, ua loaʻa i kēlā me kēia me kāna mau kikoʻī.
  • ʻAʻole maopopo i ke kumu i ʻoi aku ka maikaʻi o ka hoʻonui ʻana ma mua o ka hoʻohālikelike ʻana.
  • Ua loaʻa iaʻu kekahi ʻike i ka hana ʻana me nā kikokikona a me ka hoʻomaopopo ʻana i ke ʻano o ka hana ʻia ʻana o nā ʻōnaehana paipai.

SNA Hackathon 2019

Mahalo i nā mea hoʻonohonoho no ka manaʻo, ka ʻike a me nā makana i loaʻa.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka