2019幎2æãã3æã«ãããŠã SNA Hackathon 2019ãœãŒã·ã£ã«ãããã¯ãŒã¯ãã£ãŒããã©ã³ã¯ââä»ãããã³ã³ãã¹ããéå¬ãããããã§ç§ãã¡ã®ããŒã ã1äœã«ãªããŸããã ãã®èšäºã§ã¯ãã³ã³ãã¹ãã®çµç¹ãç§ãã¡ãè©Šã¿ãæ¹æ³ãããã°ããŒã¿ã®ãã¬ãŒãã³ã°ã®ããã®catboostèšå®ã«ã€ããŠã話ããŸãã
SNAããã«ãœã³
ãã®ååã®ããã«ãœã³ã¯3åéå¬ãããŸãã ok.ruãœãŒã·ã£ã«ãããã¯ãŒã¯ã«ãã£ãŠããããç·šæãããã¿ã¹ã¯ãšããŒã¿ã¯ãã®ãœãŒã·ã£ã«ãããã¯ãŒã¯ã«çŽæ¥é¢é£ããŠããŸãã
ãã®å Žåã®SNAïŒãœãŒã·ã£ã«ãããã¯ãŒã¯åæïŒã¯ããœãŒã·ã£ã«ã°ã©ãã®åæãšããŠã§ã¯ãªãããœãŒã·ã£ã«ãããã¯ãŒã¯ã®åæãšããŠããæ£ç¢ºã«ç解ãããŸãã
- 2014幎ã®ç®æšã¯ãæçš¿ãç²åŸãããããã®æ°ãäºæž¬ããããšã§ããã
- 2016幎ããœãŒã·ã£ã«ã°ã©ãã®åæã«ããè¿ããVVZã®ç®æšïŒããããããªãã¿ã§ãïŒã
- 2019幎-ãŠãŒã¶ãŒãæçš¿ã奜ãã«ãªãå¯èœæ§ã«ããããŠãŒã¶ãŒã®ãã£ãŒãã®ã©ã³ãã³ã°ã
2014幎ã«ã€ããŠã¯èšããŸãããã2016幎ãš2019幎ã«ã¯ãããŒã¿ãåæããæ©èœã«å ããŠãããã°ããŒã¿ãæ±ãã¹ãã«ãå¿ èŠã§ããã ãããã®ã³ã³ãã¹ãã«ç§ãæ¹ãã€ããã®ã¯ãæ©æ¢°åŠç¿ãšããã°ããŒã¿åŠçã¿ã¹ã¯ã®çµã¿åããã§ããããããã®åéã§ã®çµéšãåã€å©ãã«ãªã£ããšæããŸãã
mlbootcamp
2019幎ãã³ã³ãã¹ãã¯ãã©ãããã©ãŒã https://mlbootcamp.ruã§éå¬ãããŸããã
ã³ã³ãã¹ãã¯2æ7æ¥ã«ãªã³ã©ã€ã³ã§å§ãŸãã3ã€ã®ã¿ã¹ã¯ã§æ§æãããŸããã 誰ãããµã€ãã«ç»é²ãã ããŒã¹ã©ã€ã³ãããŠã³ããŒãããŠãæ°æéè»ãã¢ããããŒãã§ããŸããã 3æ15æ¥ã®ãªã³ã©ã€ã³ã¹ããŒãžã®çµããã«ãåã·ã§ãŒã®ããã15ãã3æ30æ¥ãã4æ1æ¥ã«è¡ããããªãã©ã€ã³ã¹ããŒãžã®Mail.ruãªãã£ã¹ã«æåŸ ãããŸããã
ææŠãã
ãœãŒã¹ããŒã¿ã¯ããŠãŒã¶ãŒèå¥åïŒuserIdïŒãšæçš¿èå¥åïŒobjectIdïŒãæäŸããŸãã ãŠãŒã¶ãŒã«æçš¿ã衚瀺ãããå ŽåãããŒã¿ã«ã¯ãuserIdãobjectIdããã®æçš¿ã«å¯ŸãããŠãŒã¶ãŒã®åå¿ïŒãã£ãŒãããã¯ïŒãããŸããŸãªæšèã®ã»ããããŸãã¯åçãããã¹ããžã®ãªã³ã¯ãå«ãè¡ãå«ãŸããŸãã
userId | objectId | ownerId | ãã£ãŒããã㯠| ç»å |
---|---|---|---|---|
3555 | 22 | 5677 | [ããããã¯ãªãã¯] | [hash1] |
12842 | 55 | 32144 | [å«ã] | [hash2ãhash3] |
13145 | 35 | 5677 | [ã¯ãªãã¯ãåå ±æ] | [hash2] |
ãã¹ãããŒã¿ã»ããã«ã¯åæ§ã®æ§é ãå«ãŸããŠããŸããããã£ãŒãããã¯ãã£ãŒã«ãããããŸããã ç®çã¯ããã£ãŒãããã¯åéã§ã®ãããããåå¿ã®ååšãäºæž¬ããããšã§ãã
éä¿¡ãã¡ã€ã«ã®æ§é ã¯æ¬¡ã®ãšããã§ãã
userId | SortedList [objectId] |
---|---|
123 | 78.13.54.22 |
128 | 35.61.55 |
131 | 35,68,129,11 |
ã¡ããªãã¯-ãŠãŒã¶ãŒã«ããå¹³åROC AUCã
ããŒã¿ã®ãã詳现ãªèª¬æã¯å®å šãªãµã€ãã§èŠã€ããããšãã§ããŸãã ãã¹ããåçãªã©ã®ããŒã¿ãããŠã³ããŒãããããšãã§ããŸãã
ãªã³ã©ã€ã³ã¹ããŒãž
ãªã³ã©ã€ã³æ®µéã§ã¯ãã¿ã¹ã¯ã¯3ã€ã®éšåã«åå²ãããŸãã
- å ±åã·ã¹ãã -ç»åãšããã¹ããé€ããã¹ãŠã®æšèãå«ãŸããŸãã
- ç»å -ç»åã«é¢ããæ å ±ã®ã¿ãå«ãŸããŸãã
- ããã¹ã -ããã¹ãã«é¢ããæ å ±ã®ã¿ãå«ãŸããŸãã
ãªãã©ã€ã³ã¹ããŒãž
ãªãã©ã€ã³æ®µéã§ã¯ãããŒã¿ã«ã¯ãã¹ãŠã®å±æ§ãå«ãŸããŠããŸããããããã¹ããšç»åã¯ãŸã°ãã§ããã ããŒã¿ã»ããå ã®è¡ã¯ããã§ã«å€ããããŸãããã1.5åã«ãªããŸããã
åé¡è§£æ±º
ä»äºã§cvããã£ãŠããã®ã§ããã®ã³ã³ãã¹ãã®æ
ã¯ãç»åãã¿ã¹ã¯ããå§ããŸããã æäŸãããããŒã¿ã¯ãuserIdãobjectIdãownerIdïŒæçš¿ãå
¬éãããŠããã°ã«ãŒãïŒãæçš¿ã®äœæããã³è¡šç€ºã®ã¿ã€ã ã¹ã¿ã³ãããããŠãã¡ãããã®æçš¿ã®ç»åã§ãã
ã¿ã€ã ã¹ã¿ã³ãã«åºã¥ããŠããã€ãã®æ©èœãçæããåŸã次ã®ã¢ã€ãã¢ã¯ãimagenetã§äºåã«ãã¬ãŒãã³ã°ããããã¥ãŒãã³ã®æåŸãã2çªç®ã®ã¬ã€ã€ãŒãååŸãããããã®åã蟌ã¿ãåŸæŒãããããšã§ããã
çµæã¯å°è±¡çã§ã¯ãããŸããã§ããã imagenetãã¥ãŒãã³ããã®åã蟌ã¿ã¯ç¡é¢ä¿ã§ããèªåãšã³ã³ãŒããŒããã¡ã€ã«ããå¿ èŠããããšæããŸããã
æéãããããçµæã¯æ¹åããŸããã§ããã
æ©èœã®çæ
ç»åã®æäœã«ã¯å€ãã®æéãããããç§ã¯ãã£ãšç°¡åãªããšãããããšã«ããŸããã
ããã«ãããããã«ãããŒã¿ã»ããã«ã¯ããã€ãã®ã«ããŽãªã«ã«ãµã€ã³ããããŸããããŸãæ°ã«ããªãããã«ãç§ã¯catboostã䜿çšããŸããã 解決çã¯çŽ æŽããããèšå®ãªãã§ãããã«ãªãŒããŒããŒãã®æåã®è¡ã«å°éããŸããã
ããããã®ããŒã¿ãããããããã¯å¯æšçŽ°å·¥ã®ãã©ãŒãããã§ã¬ã€ã¢ãŠããããŠããã®ã§ãäºåºŠèããããšãªããç§ã¯scalaãåãããã¹ãŠãã¹ããŒã¯ã§æžãå§ããŸããã
ç»åã®åã蟌ã¿ãããå€ãã®æé·ããããããæãåçŽãªæ©èœïŒ
- ããŒã¿å ã§objectIdãuserIdãownerIdãåºäŒã£ãåæ°ïŒäººæ°ãšçžé¢ããã¯ãã§ãïŒã
- ownerIdãèŠãuserIdã®æçš¿æ°ïŒã°ã«ãŒãã«å¯ŸãããŠãŒã¶ãŒã®é¢å¿ãšçžé¢ããã¯ãã§ãïŒ;
- ownerIdã«ãã£ãŠæçš¿ãèŠèŽãããŠããŒã¯ãŠãŒã¶ãŒIDã®æ°ïŒã°ã«ãŒãã®ãªãŒãã£ãšã³ã¹ã®ãµã€ãºãåæ ïŒã
ã¿ã€ã ã¹ã¿ã³ãããããŠãŒã¶ãŒãããŒããèŠèŽããæå»ïŒæ/æ¥/å€/å€ïŒãååŸã§ããŸããã ãããã®ã«ããŽãªãçµã¿åãããããšã«ãããåŒãç¶ãæ©èœãçæã§ããŸãã
- å€æ¹ã«userIdããã°ã€ã³ããåæ°ã
- ãã®æçš¿ãé »ç¹ã«è¡šç€ºãããæéïŒobjectIdïŒãªã©ã
ããã«ãããã¡ããªãã¯ãåŸã ã«æ¹åãããŸããã ãã ãããã¬ãŒãã³ã°ããŒã¿ã»ããã®ãµã€ãºã¯çŽ2,000äžã¬ã³ãŒãã§ãããããæ©èœãè¿œå ãããšåŠç¿ãå€§å¹ ã«é ããªããŸãã
ããŒã¿äœ¿çšæ¹æ³ãåå®çŸ©ããŸããã ããŒã¿ã¯æéã«äŸåããŸãããå°æ¥çã«ã¯æ瀺çãªæ å ±æŒæŽ©ã¯èŠãããŸããã§ããããäžãäžã«åããŠã次ã®ããã«ç ŽããŸããã
æäŸããããã¬ãŒãã³ã°ã»ããïŒ2æãš3æã®2é±éïŒã¯2ã€ã®ããŒãã«åãããŠããŸããã
éå»Næ¥éã®ããŒã¿ã«ã€ããŠã圌ã¯ã¢ãã«ããã¬ãŒãã³ã°ããŸããã äžèšã®éèšã¯ããã¹ããå«ããã¹ãŠã®ããŒã¿ã«åºã¥ããŠæ§ç¯ãããŸããã åæã«ãã¿ãŒã²ããå€æ°ã®ããŸããŸãªãšã³ã³ãŒããæ§ç¯ã§ããããŒã¿ãç»å ŽããŸããã æãç°¡åãªã¢ãããŒãã¯ããã§ã«æ°ããæ©èœãäœæããŠããã³ãŒããåå©çšãããã¬ãŒãã³ã°ãããŠãããã¿ãŒã²ãã= 1ã®ããŒã¿ãéä¿¡ããããšã§ãã
ãããã£ãŠãåæ§ã®æ©èœãåŸãããŸããã
- userIdãownerIdã°ã«ãŒãã®æçš¿ãèŠãåæ°ã
- userIdãownerIdãžã®æçš¿ã«ãããããåæ°ã
- userIdãownerIdãæ°ã«å ¥ã£ãæçš¿ã®å²åã
ã€ãŸããã«ããŽãªæ©èœã®ããŸããŸãªçµã¿åããã«å¿ããŠãããŒã¿ã»ããã®äžéšã§ã¿ãŒã²ããã®ãšã³ã³ãŒããæå³ããããšãå€æããŸããã ååãšããŠãcatboostã¯ã¿ãŒã²ãããšã³ã³ãŒãã£ã³ã°ãæ§ç¯ããŸãããã®èŠ³ç¹ããã¯å©ç¹ã¯ãããŸããããããšãã°ããã®ã°ã«ãŒãã®æçš¿ã奜ããªãŠããŒã¯ãŠãŒã¶ãŒã®æ°ãã«ãŠã³ãããããšãå¯èœã«ãªããŸããã åæã«ãäž»ãªç®æšãéæãããŸãã-ç§ã®ããŒã¿ã»ããã¯æ°åæžå°ããç¹åŸŽã®çæãç¶ããããšãã§ããŸããã
catboostã¯ã奜ãŸããåå¿ã«å¿ããŠã®ã¿ãšã³ã³ãŒããŒãæ§ç¯ã§ããŸããããã£ãŒãããã¯ã«ã¯ä»ã®åå¿ããããŸãïŒåå ±æãå«ããå«ããã¯ãªãã¯ãç¡èŠãããã¯æåã§è¡ãããšãã§ããŸãã ããŒã¿ã»ãããèšåŒµãããªãããã«ãããããçš®é¡ã®éèšãåéèšããéèŠåºŠã®äœãæ©èœããµããã«ãããŸããã
ãã®æãŸã§ã«ç§ã¯å€§ããªå·®ã§äžäœã«ãªããŸããã å¯äžã®æ¥ããããã¯ãç»åã®åã蟌ã¿ãã»ãšãã©å©çããããããªãããšã§ããã ãã®ã¢ã€ãã¢ã¯ãcatboostã«ãã¹ãŠãäžããããã«ãªããŸããã ã¯ã©ã¹ã¿Kã¯ç»åãæå³ããæ°ããã«ããŽãªãã£ãŒãã£imageCatãååŸããŸãã
KMeansããååŸããã¯ã©ã¹ã¿ãŒãæåã§ãã£ã«ã¿ãªã³ã°ããã³ããŒãžããåŸã®ã¯ã©ã¹ã次ã«ç€ºããŸãã
imageCatã«åºã¥ããŠã以äžãçæããŸãã
- æ°ããã«ããŽãªæ©èœïŒ
- imageCatãæãé »ç¹ã«èŠãuserId;
- ã©ã®imageCatãownerIdã§æãé »ç¹ã«è¡šç€ºããããã
- æãé »ç¹ã«userIdãæ°ã«å ¥ã£ãimageCatã
- ããŸããŸãªã«ãŠã³ã¿ãŒïŒ
- userIdãç£èŠããäžæã®imageCatã®æ°ã
- äžèšã®ã¿ãŒã²ãããšã³ã³ãŒãã£ã³ã°ã«å ããŠãçŽ15ã®åæ§ã®æ©èœã
ããã¹ã
ç»åã³ã³ãã¹ãã®çµæã¯ç§ã«åã£ãŠããã®ã§ãããã¹ããè©ŠããŠã¿ãããšã«ããŸããã 以åãç§ã¯ããã¹ããããŸã䜿ããŸããã§ããããããŠæããã§ãç§ã¯tf-idfãšsvdã§1æ¥ã殺ããŸããã 次ã«ãdoc2vecã䜿çšããããŒã¹ã©ã€ã³ã確èªããŸããã doc2vecã®ãã©ã¡ãŒã¿ãŒããããã«èª¿æŽããŠãããã¹ãã®åã蟌ã¿ãååŸããŸããã
ãããŠã圌ã¯åã«ç»åã®ã³ãŒããåå©çšããç»åã®åã蟌ã¿ãããã¹ãã®åã蟌ã¿ã«çœ®ãæããŸããã ãã®çµæãããã¹ãã³ã³ãã¹ãã§2äœã«ãªããŸããã
å ±åã·ã¹ãã
ãŸã ãæ£ãçªããããšã®ãªã競æã¯1ã€ãããããŸããã§ãããããªãŒããŒããŒãã®AUCããå€æãããšããã®ç¹å®ã®ç«¶æã®çµæã¯ãªãã©ã€ã³ã¹ããŒãžã«æã圱é¿ãäžãããã§ããã
ãœãŒã¹ããŒã¿ã«å«ãŸãããã¹ãŠã®å
åãåããã«ããŽãªã«ã«ãªå
åãéžæããç»åèªäœã®ç¹åŸŽãé€ããç»åãšåãéèšãèšç®ããŸããã ãã£ããããŒã¹ãã«å
¥ããã ãã§2äœã«ãªããŸããã
catboostãæé©åããæåã®ã¹ããã
æåã®1äœãš2çªç®ã®2äœã¯ç§ãåã°ããŸããããç¹å¥ãªããšã¯äœãããªãã£ããšããç解ããããŸããã
ã³ã³ãã¹ãã®ã¿ã¹ã¯ã¯ããŠãŒã¶ãŒã®ãã¬ãŒã ã¯ãŒã¯å ã§æçš¿ãã©ã³ã¯ä»ãããããšã§ãããã®éãåé¡åé¡ã解決ããŠããŸãããã€ãŸããééã£ãã¡ããªãã¯ãæé©åããŸããã
ç°¡åãªäŸã瀺ããŸãã
userId | objectId | äºèš | ã°ã©ãŠã³ããã¥ã«ãŒã¹ |
---|---|---|---|
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 |
å°ããªçœ®æãè¡ããŸã
userId | objectId | äºèš | ã°ã©ãŠã³ããã¥ã«ãŒã¹ |
---|---|---|---|
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 |
次ã®çµæãåŸãããŸãã
ã¢ãã« | ãªãŒã¯ | User1 AUC | User2 AUC | å¹³åAUC |
---|---|---|---|---|
ãªãã·ã§ã³1 | 0.8 | 1,0 | 0,0 | 0.5 |
ãªãã·ã§ã³2 | 0.7 | 0.75 | 1,0 | 0.875 |
ã芧ã®ãšãããAUCã¡ããªãã¯å šäœãæ¹åããŠãããŠãŒã¶ãŒå ã®å¹³åAUCã¡ããªãã¯ãæ¹åãããããã§ã¯ãããŸããã
Catboostã¯ãããã«ã©ã³ãã³ã°ææšãæé©åã§ããŸãã ã©ã³ãã³ã°ã¡ããªãã¯ãcatboostã䜿çšããå Žåã®æåäºäŸã«ã€ããŠèªã¿ãYetiRankPairwiseãèšå®ããŠå€éåŠç¿ãè¡ããŸãã çµæã¯å°è±¡çã§ã¯ãããŸããã§ããã ç§ã¯ããå匷ããŠããªããšå€æããã®ã§ããšã©ãŒé¢æ°ãQueryRMSEã«å€æŽããŸãããããã¯ãcatboostã®ããã¥ã¡ã³ãããå€æãããšãããéãåæããŸãã ãã®çµæãåé¡ã®ãã¬ãŒãã³ã°äžãšåãçµæãåŸãããŸããããããã2ã€ã®ã¢ãã«ã®ã¢ã³ãµã³ãã«ãå€§å¹ ã«å¢å ãã3ã€ãã¹ãŠã®å€§äŒã§1äœã«ãªããŸããã
Collaborative Systemsã³ã³ããã£ã·ã§ã³ã®ãªã³ã©ã€ã³ã¹ããŒãžãçµäºãã5ååã«ãSergey Shalnovã¯ç§ã2äœã«ç§»ããŸããã ç§ãã¡ãäžç·ã«è¡ã£ããããªãæ¹æ³ã
ãªãã©ã€ã³æ®µéã®æºå
ãªã³ã©ã€ã³ã¹ããŒãžã§ã®åå©ã¯RTX 2080 TIãããªã«ãŒãã§ä¿èšŒãããŠããŸãããã300,000ã«ãŒãã«ã®äž»ãªè³ã§ãããæçµçã«ã¯1äœã ã£ãããããã®2é±éã§ä»äºãã§ããŸããã
çµå±ã®ãšãããã»ã«ã²ã€ã¯ãã£ããããŒã¹ãã䜿çšããŸããã ç§ãã¡ã¯ã¢ã€ãã¢ãæ©èœã亀æããã¢ã³ããããã«ããã°ã·ã¥ã®ã¬ããŒãã«ã€ããŠåŠã³ãŸãããããã§ã¯ãç§ã®è³ªåã®å€ããããã«ã¯ãŸã åºãŠããªã質åã«å¯ŸããŠãçãããããŸããã
ã¬ããŒãã衚瀺ãããšããã¹ãŠã®ãã©ã¡ãŒã¿ãŒãããã©ã«ãå€ã«æ»ãå¿ èŠããããèšå®ãéåžžã«æ éã«èª¿æŽããå¿ èŠããããšããèãããäžé£ã®æšèãä¿®æ£ããåŸã§ã®ã¿åŸãããŸããã çŸåšã1ã€ã®ãã¬ãŒãã³ã°ã«ã¯çŽ15æéããããŸãããã1ã€ã®ã¢ãã«ã§ã¯ãã©ã³ãã³ã°ã®ã¢ã³ãµã³ãã«ãããé床ãåäžããŸããã
æ©èœã®çæ
競äºãã³ã©ãã¬ãŒã·ã§ã³ã·ã¹ãã ãã§ã¯ãå€æ°ã®æ©èœãã¢ãã«ã«ãšã£ãŠéèŠã§ãããšè©äŸ¡ãããŠããŸãã ããšãã°ã auditweights_spark_svdã¯æãéèŠãªå±æ§ã§ããããã®æå³ã«ã€ããŠã®æ å ±ã¯ãããŸããã éèŠãªå åã«åºã¥ããŠããŸããŸãªãŠããããæ°ãã䟡å€ããããšæããŸããã ããšãã°ããŠãŒã¶ãŒããšãã°ã«ãŒãããšããªããžã§ã¯ãããšã®å¹³åauditweights_spark_svdã åãããšã¯ããã¬ãŒãã³ã°ãå®è¡ãããŠããããã¿ãŒã²ãã= 1ã®ããŒã¿ãã€ãŸããŠãŒã¶ãŒãæ°ã«å ¥ã£ããªããžã§ã¯ãã®ãŠãŒã¶ãŒããšã®å¹³åauditweights_spark_svdããèšç®ã§ããŸãã auditweights_spark_svd以å€ã«ããããã€ãã®éèŠãªå åããããŸãã ã ãããã®ããã€ãã次ã«ç€ºããŸãã
- auditweightsCtrGender
- auditweightsCtrHigh
- userOwnerCounterCreateLikes
ããšãã°ãuserIdã«ããauditweightsCtrGenderã®å¹³åå€ã¯ãuserId + ownerIdã«ããuserOwnerCounterCreateLikesã®å¹³åå€ãšåæ§ã«éèŠãªæ©èœã§ããããšãå€æããŸããã ããã«ããããã£ãŒã«ãã®æå³ãç解ããå¿ èŠæ§ã«ã€ããŠèããå¿ èŠããããŸããã
ä»ã®éèŠãªæ©èœã¯auditweightsLikesCountãšauditweightsShowsCountã§ãã ã äžæ¹ãä»æ¹ã«åå²ãããšãããã«éèŠãªæ©èœãåŸãããŸããã
ããŒã¿æŒæŽ©
競äºã¢ãã«ãšçç£ã¢ãã«ã¯éåžžã«ç°ãªãã¿ã¹ã¯ã§ãã ããŒã¿ãæºåããéããã¹ãŠã®è©³çŽ°ãèæ ®ãããã¹ãã®ã¿ãŒã²ããå€æ°ã«é¢ããéèŠãªæ å ±ã転éããªãããšã¯éåžžã«å°é£ã§ãã å®çšŒåãœãªã¥ãŒã·ã§ã³ãäœæããå Žåãã¢ãã«ã®ãã¬ãŒãã³ã°æã«ããŒã¿ãªãŒã¯ã®äœ¿çšãåé¿ããããšããŸãã ããããã³ã³ãã¹ãã«åã¡ããå Žåã¯ãããŒã¿ãªãŒã¯ãæè¯ã®æ©èœã§ãã
ããŒã¿ã調ã¹ããšãobjectIdã«åŸã£ãŠã auditweightsLikesCountãšauditweightsShowsCountã®å€ãå€åããŠããããšãããããŸããã€ãŸãããããã®èšå·ã®æ倧å€ã®æ¯çã¯ãé ä¿¡æã®æ¯çãããå€æåŸãã¯ããã«ããåæ ããŠããŸãã
æåã«èŠã€ãã£ããªãŒã¯ã¯auditweightsLikesCountMax / auditweightsShowsCountMaxã§ãã ã
ããããããŒã¿ããã詳ããèŠããšã©ããªããŸããïŒ é
éæ¥ã§äžŠã¹æ¿ããŠååŸïŒ
objectId | userId | auditweightsShowsCount | auditweightsLikesCount | ã¿ãŒã²ããïŒãããïŒïŒ |
---|---|---|---|---|
1 | 1 | 12 | 3 | ãããããªã |
1 | 2 | 15 | 3 | ããããã¯ã |
1 | 3 | 16 | 4 |
æåã®ãã®ãããªäŸãèŠã€ããã®ã¯é©ãã¹ãããšã§ãããç§ã®äºæž¬ãå®çŸããªãã£ãããšãå€æããŸããã ãããããªããžã§ã¯ãã®ãã¬ãŒã ã¯ãŒã¯å
ã®ãããã®èšå·ã®æ倧å€ãå¢å ãããšããäºå®ãèãããšãããŸãã«ãæ notã§ã¯ãªãã auditweightsShowsCountNextãšauditweightsLikesCountNext ãã€ãŸã次ã®ç¬éã®å€ãèŠã€ããããšã«ããŸããã æ©èœãè¿œå ãã
ïŒauditweightsShowsCountNext-auditweightsShowsCountïŒ/ïŒauditweightsLikesCount-auditweightsLikesCountNextïŒ 24æéãæ¥æ¿ã«ãžã£ã³ãããŸããã
userId + ownerIdå
ã®userOwnerCounterCreateLikesãããšãã°ãobjectId + userGenderå
ã®auditweightsCtrGenderã§æ¬¡ã®å€ãèŠã€ãã£ãå Žåãåæ§ã®ãªãŒã¯ã䜿çšãããå¯èœæ§ããããŸãã æŒãã®ãããã®ãããªãã£ãŒã«ãã6ã€èŠã€ããå¯èœãªéãæ
å ±ãåŒãåºããŸããã
ãã®æãŸã§ã«ãç§ãã¡ã¯å ±åã®å±æ§ããæ倧éã®æ å ±ãçµã蟌ãã§ããããç»åãšããã¹ãã®ã³ã³ãã¹ãã«ã¯æ»ã£ãŠããªãã£ãã 確èªãã¹ãçŽ æŽãããã¢ã€ãã¢ããããŸããïŒå¯Ÿå¿ãã競æäŒã§ãç»åãããã¹ãã«æ©èœãã©ãã ãçŽæ¥äžãããïŒ
ç»åãããã¹ãã«é¢ããã³ã³ãã¹ãã§ã®ãªãŒã¯ã¯ãããŸããã§ãããããããŸã§ã«catboostã®ããã©ã«ããã©ã¡ãŒã¿ãè¿ããã³ãŒããã³ãŒãã³ã°ããããã€ãã®æ©èœãè¿œå ããŸããã åèšçµæïŒ
解決ç | ã¹ããŒã |
---|---|
ç»åã§æ倧 | 0.6411 |
æ倧ç»åãªã | 0.6297 |
2äœçµæ | 0.6295 |
解決ç | ã¹ããŒã |
---|---|
ããã¹ãã§æ倧 | 0.666 |
ããã¹ããªãã®æ倧 | 0.660 |
2äœçµæ | 0.656 |
解決ç | ã¹ããŒã |
---|---|
ã³ã©ãã¬ãŒãã£ãã§æ倧 | 0.745 |
2äœçµæ | 0.723 |
å€ãã®ããã¹ããç»åãçµãåºãããå¯èœæ§ã¯äœãããšãæããã«ãªããããã€ãã®æãèå³æ·±ãã¢ã€ãã¢ãè©ŠããåŸãããããšã®äœæ¥ããããŸããã
ã³ã©ãã¬ãŒã·ã§ã³ã·ã¹ãã ã§ã®æ©èœã®ãããªãçæã¯æé·ãããããããã©ã³ãã³ã°ãéå§ããŸããã ãªã³ã©ã€ã³ã®æ®µéã§ã¯ãåé¡ãšã©ã³ãã³ã°ã®ã¢ã³ãµã³ãã«ã¯ãããã«å¢å ããŸããããããã¯åé¡ã®èšç·Žãäžååã ã£ãããã§ããã YetiRanlPairwiseãå«ããšã©ãŒé¢æ°ã¯ã©ãããLogLossã®çµæã«è¿ã¥ããŸããã§ããïŒ0.745察0.725ïŒã èµ·åã§ããªãã£ãQueryCrossEntropyã«åžæããããŸããã
ãªãã©ã€ã³ã¹ããŒãž
ãªãã©ã€ã³æ®µéã§ã¯ãããŒã¿æ§é ã¯åããŸãŸã§ãããå°ããªå€æŽããããŸãã
- èå¥åuserIdãobjectIdãownerIdãåã©ã³ãã åãããŸããã
- ããã€ãã®æšèãåé€ãããããã€ãã®ååãå€æŽãããŸããã
- ããŒã¿ã¯çŽ1.5åã«ãªããŸããã
ãªã¹ããããå°é£ã«å ããŠã倧ããªãã©ã¹ã1ã€ãããŸãããRTX2080TIãåãã倧èŠæš¡ãµãŒããŒãããŒã ã«å²ãåœãŠãããŸããã ç§ã¯é·ãéhtopã楜ããã§ããŸããã
ã¢ã€ãã¢ã¯1ã€ã§ãã-ãã§ã«ããã«ãããã®ãåçŸããã ãã§ãã ãµãŒããŒã«ç°å¢ãã»ããã¢ããããã®ã«æ°æéãè²»ãããåŸãçµæãåçŸãããŠããããšãåŸã ã«ç¢ºèªãå§ããŸããã ç§ãã¡ãçŽé¢ããŠããäž»ãªåé¡ã¯ãããŒã¿éã®å¢å ã§ãã è² è·ããããã«æžããããã©ã¡ãŒã¿catboost ctr_complexity = 1ãèšå®ããããšã«ããŸããã ããã«ããé床ã¯å°ãäœäžããŸãããç§ã®ã¢ãã«ã¯åäœãå§ããçµæã¯è¯å¥œã§ãã-0.733ã ç§ãšã¯ç°ãªããã»ã«ã²ã€ã¯ããŒã¿ã2ã€ã®éšåã«åå²ããããã¹ãŠã®ããŒã¿ããã¬ãŒãã³ã°ããŸããããããã¯ãªã³ã©ã€ã³æ®µéã§æé«ã®çµæããããããŸãããããªãã©ã€ã³æ®µéã§ã¯å€ãã®å°é£ããããŸããã çæãããã¹ãŠã®æ©èœã䜿çšããŠããé¡ã«ããã£ããããŒã¹ããé 眮ããããšãããšããªã³ã©ã€ã³æ®µéã§ã¯äœââãèµ·ãããŸããã§ããã Sergeyã¯ãããšãã°float64åãfloat32ã«å€æãããªã©ãåã®æé©åãè¡ããŸããã ãã®èšäºã§ã¯ããã³ãã®ã¡ã¢ãªã®æé©åã«é¢ããæ å ±ãèŠã€ããããšãã§ããŸãã ãã®çµæãSergeyã¯ãã¹ãŠã®ããŒã¿ã«ã€ããŠCPUã®ãã¬ãŒãã³ã°ãè¡ããçŽ0.735ã«ãªããŸããã
ãããã®çµæã¯åã€ã«ã¯ååã§ããããå®éã®ã¹ããŒããé ããä»ã®ããŒã ãåãããšãããŠããªãããšã確信ã§ããŸããã§ããã
æåŸãŸã§ã®æŠã
catboostã®ãã¥ãŒãã³ã°
ãœãªã¥ãŒã·ã§ã³ã¯å®å šã«åçŸãããããã¹ãããŒã¿ãšç»åã®æ©èœãè¿œå ããããããæ®ãã¯catboostãã©ã¡ãŒã¿ãŒã調æŽããããšã ãã§ããã Sergeyã¯å°æ°ã®å埩ã§CPUãç 究ããctr_complexity = 1ã§ç 究ããŸããã ããš1æ¥ãããããŸããã§ãããç¹°ãè¿ããè¿œå ããããctr_complexityãå¢ããã ãã§ãååäžã¯ããã«é«éã«ãªãã1æ¥äžæ©ãããšãã§ããŸããã
ãªãã©ã€ã³ã®æ®µéã§ã¯ãã¹ã³ã¢ã¯é衚瀺ã«ããã®ãéåžžã«ç°¡åã§ããµã€ãã§æé©ãªãœãªã¥ãŒã·ã§ã³ã§ã¯ãªããã®ãéžæããã ãã§ãã æåºã®ç· ãåãåã®æåŸã®æ°åéã«ãªãŒããŒããŒãã®æ¥æ¿ãªå€åãäºæ³ãããåæ¢ããªãããšã«æ±ºããŸããã
ã¢ã³ãã®ãããªãããã¢ãã«ã®å質ãåäžãããã«ã¯ã次ã®ãã©ã¡ãŒã¿ãŒãéžæããã®ãæåã§ããããšãåŠã³ãŸããã
- learning_rate-ããã©ã«ãå€ã¯ãããŒã¿ã»ããã®ãµã€ãºã«åºã¥ããŠèšç®ãããŸãã learning_rateã®æžå°ã«ãããå質ãç¶æããã«ã¯ãå埩åæ°ãå¢ããå¿ èŠããããŸãã
- l2_leaf_reg-æ£ååä¿æ°ãããã©ã«ãå€ã¯3ãã§ããã°2ã30 ãå€ãå°ãããããšãªãŒããŒãã£ãããå¢å ããŸãã
- bagging_temperature-éžæç¯å²å ã®ãªããžã§ã¯ãã®éã¿ã«ã©ã³ãã åãè¿œå ããŸãã ããã©ã«ãå€ã¯1ã§ãææ°ååžããéã¿ãéžæãããŸãã å€ã®æžå°ã¯ãéå°é©åã®å¢å ã«ã€ãªãããŸãã
- random_strength-ç¹å®ã®å埩ã®åå²ã®éžæã«åœ±é¿ããŸãã random_strengthãé«ãã»ã©ãéèŠåºŠã®äœãã¹ããªãããéžæãããå¯èœæ§ãé«ããªããŸãã åŸç¶ã®åå埩ã§ãã©ã³ãã æ§ãäœäžããŸãã å€ã®æžå°ã¯ãéå°é©åã®å¢å ã«ã€ãªãããŸãã
ä»ã®ãã©ã¡ãŒã¿ãŒã¯æçµçµæã«ããŸã圱é¿ãäžããªããããããããéžæããããšããŸããã§ããã ctr_complexity = 1ã®GPUããŒã¿ã»ããã§ã®ãã¬ãŒãã³ã°ã®1åã®å埩ã«ã¯20åããããçž®å°ãããããŒã¿ã»ããã§éžæããããã©ã¡ãŒã¿ãŒã¯ãå®å šãªããŒã¿ã»ããã§ã®æé©ãªãã©ã¡ãŒã¿ãŒãšãããã«ç°ãªããŸããã ãã®çµæãããŒã¿ã®10ïŒ ã§çŽ30åã®å埩ãè¡ãããã¹ãŠã®ããŒã¿ã§ããã«çŽ10åã®å埩ãè¡ããŸããã ããã次ã®ããšãå€æããŸããã
- learning_rateãããã©ã«ããã40ïŒ å¢ãããŸããã
- l2_leaf_regã¯åããŸãŸã§ãã
- bagging_temperatureãšrandom_strengthã0.8ã«æžå°ããŸããã
ããã©ã«ãã®ãã©ã¡ãŒã¿ãŒã§ã¯ãã¢ãã«ã¯ååã«ãã¬ãŒãã³ã°ãããŠããªããšçµè«ä»ããããšãã§ããŸãã
ãªãŒããŒããŒãã§çµæãèŠããšããç§ã¯éåžžã«é©ããŸããïŒ
ã¢ãã« | ã¢ãã«1 | ã¢ãã«2 | ã¢ãã«3 | ã¢ã³ãµã³ãã« |
---|---|---|---|---|
ãã¥ãŒãã³ã°ãªã | 0.7403 | 0.7404 | 0.7404 | 0.7407 |
ãã¥ãŒãã³ã°ãã | 0.7406 | 0.7405 | 0.7406 | 0.7408 |
ã¢ãã«ããã°ããé©çšããå¿ èŠããªãå Žåã¯ããã©ã¡ãŒã¿ãŒã®éžæããæé©åãããŠããªããã©ã¡ãŒã¿ãŒã®è€æ°ã®ã¢ãã«ã®ã¢ã³ãµã³ãã«ã«çœ®ãæããããšããå§ãããŸãã
Sergeyã¯ãããŒã¿ã»ããã®ãµã€ãºãæé©åããŠGPUã§å®è¡ããããšã«åŸäºããŠããŸããã æãç°¡åãªãªãã·ã§ã³ã¯ããŒã¿ã®äžéšãåãæšãŠãããšã§ããããããè¡ãæ¹æ³ã¯ããã€ããããŸãã
- ããŒã¿ã»ãããã¡ã¢ãªã«åãŸãå§ãããŸã§ãæãå€ãããŒã¿ïŒ2æåæ¬ïŒãåŸã ã«åé€ããŸãã
- éèŠåºŠãæãäœãæ©èœãåé€ããŸãã
- ãšã³ããªã1ã€ãããªãuserIdãåé€ããŸãã
- ãã¹ãäžã®userIdã®ã¿ãæ®ããŸãã
ãããŠæåŸã«-ãã¹ãŠã®ãªãã·ã§ã³ã®ã¢ã³ãµã³ãã«ãäœæããŸãã
æåŸã®ã¢ã³ãµã³ãã«
æçµæ¥ã®å€é ããŸã§ã«ãã¢ãã«ã®ã¢ã³ãµã³ãã«ãæçš¿ãã0.742ãåŸãããŸããã å€ãctr_complexity = 2ã§ã¢ãã«ãèµ·åãã30åã§ã¯ãªã5æéãã¬ãŒãã³ã°ããŸããã åå4æã«ã®ã¿åœŒå¥³ã¯ã«ãŠã³ãããç§ã¯æåŸã®ã¢ã³ãµã³ãã«ãè¡ããŸããã
åé¡ã解決ããããã®ããŸããŸãªã¢ãããŒãã«ãããäºæž¬ã¯åŒ·ãçžé¢ãããã¢ã³ãµã³ãã«ãå€§å¹ ã«å¢å ããŸããã é©åãªã¢ã³ãµã³ãã«ãååŸããã«ã¯ãäºæž¬ã¢ãã«ã®çã®äºæž¬ã䜿çšããŠïŒprediction_type = 'RawFormulaVal'ïŒãscale_pos_weight = neg_count / pos_countãèšå®ããããšããå§ãããŸãã
ãã®ãµã€ãã§ã¯ããã©ã€ããŒããªãŒããŒããŒãã§æçµçµæãèŠãããšãã§ããŸãã
ãã®ä»ã®è§£æ±ºç
å€ãã®ããŒã ãã¬ã³ã¡ã³ããŒã·ã¹ãã ã¢ã«ãŽãªãºã ã®èŠç¯ã«åŸããŸããã ç§ã¯ããã®åéã®å°é家ã§ã¯ãªããããããããè©äŸ¡ããããšã¯ã§ããŸãããã2ã€ã®èå³æ·±ã決å®ãèšæ¶ãããŸããã
- ãã³ã©ã€ã»ã¢ããã³ã®æ±ºå® ã Mail.ruã®åŸæ¥å¡ã§ããNikolaiã¯è³éãè«æ±ââããªãã£ãããã圌ã®ç®æšã¯æé«é床ãåŸãã®ã§ã¯ãªããç°¡åã«ã¹ã±ãŒã©ãã«ãªãœãªã¥ãŒã·ã§ã³ãåŸãããšã§ããã
- facebookã®ãã®èšäºã«åºã¥ãã審æ»å¡ããŒã ã®æ±ºå®ã«ãããæäœæ¥ãªãã§ç»åãéåžžã«ããŸãã¯ã©ã¹ã¿ãŒåããããšãã§ããŸããã
ãããã«
ã¡ã¢ãªã«æãå€ãä¿ç®¡ããããã®ïŒ
- ããŒã¿ã«ã«ããŽãªæ©èœããããã¿ãŒã²ãããšã³ã³ãŒãã£ã³ã°ãæ£ããè¡ãæ¹æ³ãç¥ã£ãŠããå Žåã¯ããšã«ããcatboostãè©ŠããŠã¿ãããšããå§ãããŸãã
- ã³ã³ãã¹ãã«åå ããå Žåãlearning_rateãšã€ãã¬ãŒã·ã§ã³ãé€ãããã©ã¡ãŒã¿ãŒã®éžæã«æéãç¡é§ã«ããªãã§ãã ããã ããé«éãªãœãªã¥ãŒã·ã§ã³ã¯ãè€æ°ã®ã¢ãã«ã®ã¢ã³ãµã³ãã«ãäœæããããšã§ãã
- Boostingsã¯GPUã§åŠç¿ã§ããŸãã Catboostã¯GPUã§éåžžã«ãã°ããåŠç¿ã§ããŸãããå€ãã®ã¡ã¢ãªãæ¶è²»ããŸãã
- ã¢ã€ãã¢ã®éçºããã³ãã¹ãäžã¯ãå°ããªrsmã= 0.2ïŒCPUã®ã¿ïŒããã³ctr_complexity = 1ãèšå®ããããšããå§ãããŸãã
- ä»ã®ããŒã ãšã¯ç°ãªããã¢ãã«ã®ã¢ã³ãµã³ãã«ã¯å€§å¹ ã«å¢å ããŸããã ã¢ã€ãã¢ã亀æããç°ãªãèšèªã§æžããã ãã§ãã ããŒã¿ãåå²ããããã®å¥ã®ã¢ãããŒããããã誰ããç¬èªã®ãã°ãæ±ããŠãããšæããŸãã
- ã©ã³ãã³ã°ã®æé©åãã©ã³ãã³ã°ã®æé©åãããæªãçµæããããããçç±ã¯æããã§ã¯ãããŸããã
- ç§ã¯ããã¹ãã«ã€ããŠå°ãçµéšããæšå¥šã·ã¹ãã ãã©ã®ããã«äœãããŠããããç解ããŸããã
åãåã£ãææ ãç¥èãè³åã«ã€ããŠäž»å¬è ã«æè¬ããŸãã