Ба мо пирӯзӣ дар марҳилаи онлайн бо корти видеоии RTX 2080 TI кафолат дода шуд, аммо ҷоизаи асосии 300 000 рубл ва эҳтимолан ҳатто ҷои аввал моро маҷбур кард, ки дар ин 2 ҳафта кор кунем.
Тавре маълум шуд, Сергей инчунин catboost-ро истифода бурд. Мо мубодилаи афкор ва хусусиятҳои, ва ман дар бораи гузориши Анна Вероника Дорогуш ки дар он ба бисьёр саволхои ман ва хатто ба саволхое, ки то он вакт ман хануз нагирифта будам, чавоб медоданд.
Намоиши гузориш маро ба он овард, ки мо бояд ҳамаи параметрҳоро ба арзиши пешфарз баргардонем ва танзимотро хеле бодиққат ва танҳо пас аз ислоҳ кардани маҷмӯи хусусиятҳо иҷро кунем. Акнун як машқ тақрибан 15 соат тӯл кашид, аммо як модел тавонист суръати беҳтареро аз суръате, ки дар ансамбл бо рейтинг ба даст оварда буд, ба даст орад.
Насли хусусият
Дар озмуни системаҳои муштарак шумораи зиёди хусусиятҳо барои модел муҳим арзёбӣ мешаванд. Барои намуна, auditweights_spark_svd - аломати муҳимтарин, аммо дар бораи чӣ маънояш маълумот нест. Ман фикр мекардам, ки агрегатҳои гуногунро дар асоси хусусиятҳои муҳим ҳисоб кардан бамаврид аст. Масалан, ба ҳисоби миёна auditweights_spark_svd аз рӯи корбар, аз рӯи гурӯҳ, аз рӯи объект. Ҳаминро метавон бо истифода аз маълумоте ҳисоб кард, ки дар он ҳеҷ гуна омӯзиш гузаронида нашудааст ва ҳадаф = 1, яъне миёна auditweights_spark_svd аз ҷониби корбар аз рӯи объектҳои ба ӯ маъқул. Илова бар ин, аломатҳои муҳим auditweights_spark_svd, якчанд нафар буданд. Дар ин ҷо баъзе аз онҳо ҳастанд:
AudiweightsCtrGender
вазнҳои аудитӣCtrHigh
userOwnerCounterCreateLikes
Масалан, миёна AudiweightsCtrGender мувофиқи userId он як хусусияти муҳим ба мисли арзиши миёна баромад userOwnerCounterCreateLikes аз ҷониби userId+ownerId. Ин аллакай шуморо водор мекунад, ки шумо бояд маънои майдонҳоро фаҳмед.
Хусусиятҳои муҳим низ буданд auditweightsLikesCount и Аудит вазнҳоShowsCount. Якеро ба дигар таксим карда, хусусияти боз хам мухимтар ба даст омад.
Ихроҷи маълумот
Рақобат ва моделсозии истеҳсолот вазифаҳои хеле гуногун мебошанд. Ҳангоми омода кардани маълумот, ба инобат гирифтани тамоми ҷузъиёт ва нарасонидани баъзе маълумоти ғайриоддӣ дар бораи тағирёбандаи ҳадаф дар санҷиш хеле душвор аст. Агар мо як ҳалли истеҳсолӣ эҷод кунем, мо кӯшиш хоҳем кард, ки ҳангоми омӯзиши модел аз истифодаи ихроҷи маълумот худдорӣ кунем. Аммо агар мо хоҳем, ки дар рақобат ғолиб шавем, пас ихроҷи маълумот беҳтарин хусусиятҳост.
Аввалин ихроҷе, ки мо ёфтем, ин аст auditweightsLikesCountMax/auditweightsShowsCountMax.
Аммо чӣ мешавад, агар мо ба маълумот бодиққат назар кунем? Биёед аз рӯи санаи намоиш ҷудо кунем ва ба даст орем:
объект ID
Шаҳодатномаи Корбар
Аудит вазнҳоShowsCount
auditweightsLikesCount
ҳадаф (писанд аст)
1
1
12
3
шояд не
1
2
15
3
шояд ҳа
1
3
16
4
Вакте ки аввалин чунин мисолро ёфтам, тааччубовар буд ва маълум шуд, ки пешгуии ман ба амал наомадааст. Аммо, бо назардошти он, ки арзишҳои максималии ин хусусиятҳо дар дохили объект афзоиш ёфтанд, мо танбал набудем ва тасмим гирифтем, ки вазнҳои аудиторӣShowsCountNext и auditweightsLikesCountNext, яъне арзишҳо дар лаҳзаи оянда. Бо илова кардани хусусият (аудитвазнҳоShowsCount-auditWightsShowsCount)/(auditweightsLikesCount-auditweightsLikesCountNext) мо тез чахида баромадем.
Ихроҷҳои шабеҳро тавассути дарёфти арзишҳои зерин истифода бурдан мумкин аст userOwnerCounterCreateLikes дар дохили userId+ownerId ва, масалан, AudiweightsCtrGender дар дохили objectId+userGender. Мо 6 майдони шабеҳро бо ихроҷ пайдо кардем ва аз онҳо ба қадри имкон маълумоти бештар гирифтем.
То он вақт, мо аз хусусиятҳои муштарак ҳарчи бештар маълумотро фишурда будем, аммо ба озмунҳои тасвирӣ ва матнӣ барнагаштем. Ман як фикри олиҷаноб доштам, ки тафтиш кунам: хусусиятҳо дар мусобиқаҳои дахлдор чӣ қадар ба тасвирҳо ё матнҳо асос ёфтаанд?
Дар озмунҳои тасвирҳо ва матн ҳеҷ гуна ихроҷ набуд, аммо то он вақт ман параметрҳои пешфарзии catboost-ро баргардондам, рамзро тоза кардам ва чанд хусусият илова кардам. Ҳамагӣ ин буд:
ҳалли
зуд
Максимум бо тасвирҳо
0.6411
Максимум бе тасвирҳо
0.6297
Натиҷаи ҷои дуюм
0.6295
ҳалли
зуд
Максимум бо матнҳо
0.666
Максимум бидуни матн
0.660
Натиҷаи ҷои дуюм
0.656
ҳалли
зуд
Максимум дар ҳамкорӣ
0.745
Натиҷаи ҷои дуюм
0.723
Маълум шуд, ки мо гумон аст, ки аз матнҳо ва тасвирҳо чизи зиёдеро фишурда тавонем ва пас аз кӯшиши якчанд идеяҳои ҷолибтарин кор бо онҳо қатъ карда шуд.
Насли минбаъдаи хусусиятҳо дар системаҳои муштарак афзоиш надод ва мо ба рейтинг оғоз кардем. Дар марҳилаи онлайн, тасниф ва рейтинг ба ман каме афзоиш дод, зеро маълум шуд, ки ман таснифро аз ҳад зиёд омӯхтам. Ҳеҷ яке аз функсияҳои хатогӣ, аз ҷумла YetiRanlPairwise, дар наздикии натиҷае, ки LogLoss кардааст (0,745 бар зидди 0,725) тавлид нашудааст. Ҳанӯз ҳам умед ба QueryCrossEntropy вуҷуд дошт, ки онро оғоз кардан мумкин нест.
Марҳилаи офлайн
Дар марҳилаи офлайнӣ, сохтори додаҳо бетағйир монд, аммо тағироти ночиз ба амал омад:
идентификаторҳои userId, objectId, ownerId аз нав тасодуфӣ карда шуданд;
якчанд аломатҳо бардошта шуданд ва чанде аз онҳо дигар номгузорӣ шуданд;
маълумот такрибан 1,5 баробар афзуд.
Илова ба мушкилоти номбаршуда, як плюси калон вуҷуд дошт: ба даста сервери калон бо RTX 2080TI ҷудо карда шуд. Ман муддати тӯлонӣ аз htop лаззат мебарам.
Фақат як идея вуҷуд дошт - он чизеро, ки аллакай вуҷуд дорад, дубора тавлид кунад. Пас аз чанд соат сарф кардани муҳит дар сервер, мо тадриҷан ба тафтиш кардани он шурӯъ кардем, ки натиҷаҳо такроршавандаанд. Мушкилоти асосие, ки мо бо он рӯ ба рӯ мешавем, афзоиши ҳаҷми маълумот аст. Мо тасмим гирифтем, ки сарбориро каме кам кунем ва параметри catboost ctr_complexity=1-ро муқаррар кунем. Ин суръатро каме паст мекунад, аммо модели ман ба кор шурӯъ кард, натиҷа хуб буд - 0,733. Сергей, бар хилофи ман, маълумотро ба 2 қисм тақсим накард ва дар бораи ҳама маълумот омӯзонида шуд, гарчанде ки ин дар марҳилаи онлайн натиҷаҳои беҳтарин дод, дар марҳилаи офлайнӣ душвориҳои зиёд ба амал омад. Агар мо тамоми хусусиятҳоеро, ки тавлид кардем, гирифта бошем ва кӯшиш кунем, ки онҳоро ба catboost тела диҳем, пас дар марҳилаи онлайн ҳеҷ чиз кор намекунад. Сергей намуди оптимизатсияро анҷом дод, масалан, намудҳои float64-ро ба float32 табдил дод. Дар ин мақола, Шумо метавонед маълумотро дар бораи оптимизатсияи хотира дар pandas пайдо кунед. Дар натиҷа, Сергей бо истифода аз тамоми маълумот дар CPU таълим дод ва тақрибан 0,735 гирифт.