ኤስኤንኤ ሃካቶን 2019

እ.ኤ.አ. በየካቲት-መጋቢት 2019 የማህበራዊ አውታረመረብ ምግብ ደረጃ ውድድር ተካሄዷል ኤስኤንኤ ሃካቶን 2019ቡድናችን የመጀመሪያውን ቦታ የያዘበት. በአንቀጹ ውስጥ ስለ ውድድሩ አደረጃጀት ፣ ስለሞከርናቸው ዘዴዎች እና ስለ ትልቅ መረጃ ስልጠና ስለ catboost መቼቶች እናገራለሁ ።

ኤስኤንኤ ሃካቶን 2019

ኤስኤንኤ ሃካቶን

በዚህ ስም ስር ያለው hackathon ለሶስተኛ ጊዜ ተይዟል. እሱ በማህበራዊ አውታረመረብ ok.ru የተደራጀ ነው ፣ በቅደም ተከተል ፣ ተግባሩ እና ውሂቡ ከዚህ ማህበራዊ አውታረ መረብ ጋር በቀጥታ የተገናኙ ናቸው።
የኤስኤንኤ (የማህበራዊ አውታረመረብ ትንተና) በዚህ ጉዳይ ላይ የበለጠ በትክክል የተረዳው እንደ ማህበራዊ ግራፍ ትንታኔ ሳይሆን እንደ ማህበራዊ አውታረ መረብ ትንተና ነው።

  • እ.ኤ.አ. በ2014፣ ፈተናው አንድ ልጥፍ የሚያገኛቸውን መውደዶች ብዛት መተንበይ ነበር።
  • በ 2016, የ VVZ ተግባር (እርስዎ ሊያውቁት ይችላሉ), ወደ ማህበራዊ ግራፍ ትንተና ቅርብ ነው.
  • እ.ኤ.አ. በ2019 የተጠቃሚውን ምግብ አንድ ተጠቃሚ ልጥፍ ሊወደው በሚችልበት ሁኔታ ላይ በመመስረት ደረጃ መስጠት።

ስለ 2014 ማለት አልችልም ፣ ግን በ 2016 እና 2019 ፣ መረጃን የመተንተን ችሎታ በተጨማሪ ፣ ከትልቅ መረጃ ጋር የመሥራት ችሎታዎችም ያስፈልጉ ነበር። ወደነዚህ ውድድሮች የሳበኝ የማሽን መማሪያ እና ትላልቅ ዳታ ስራዎች ጥምረት ነው ብዬ አስባለሁ፣ እና በእነዚህ አካባቢዎች ያገኘሁት ልምድ ለማሸነፍ ረድቶኛል።

mlbootcamp

እ.ኤ.አ. በ 2019 ውድድሩ የተደራጀው በመድረክ ላይ ነው። https://mlbootcamp.ru.

ውድድሩ በፌብሩዋሪ 7 በመስመር ላይ የጀመረ ሲሆን 3 ተግባራትን ያቀፈ ነበር። ማንም ሰው በጣቢያው ላይ መመዝገብ ይችላል, ያውርዱ መነሻ መስመር እና መኪናዎን ለጥቂት ሰዓታት ይጫኑ. በማርች 15 ላይ በመስመር ላይ መድረክ መጨረሻ ላይ ፣ ከማርች 15 እስከ ኤፕሪል 30 ባለው ጊዜ ውስጥ ለተደረገው የሁሉም ትርኢት ዝላይ 1 ከፍተኛዎቹ ከመስመር ውጭ መድረክ ወደ Mail.ru ቢሮ ተጋብዘዋል።

ዓላማ

የምንጭ ውሂቡ የተጠቃሚ መታወቂያዎችን (userId) እና የፖስታ መታወቂያዎችን (objectId) ያቀርባል። ተጠቃሚው ልጥፍ ከታየ ውሂቡ የተጠቃሚ መታወቂያ ፣ objectId ፣ ለዚህ ​​ልጥፍ የተጠቃሚ ምላሽ (ግብረመልስ) እና የተለያዩ ባህሪዎችን ወይም የስዕሎችን እና ጽሑፎችን አገናኞችን የያዘ መስመር ይይዛል።

የተጠቃሚው መለያ objectId ባለቤትነት መታወቂያ ግብረ መልስ ምስሎች
3555 22 5677 [ወደዱ፣ ጠቅ ተደርጓል] [ሀሽ1]
12842 55 32144 [አልወደደም] [ሀሽ2፣ሀሽ3]
13145 35 5677 [ጠቅ ተደርጓል፣ እንደገና ተጋርቷል] [ሀሽ2]

የሙከራው መረጃ ስብስብ ተመሳሳይ መዋቅር ይዟል፣ ነገር ግን የግብረመልስ መስኩ ይጎድላል። ተግባሩ በግብረመልስ መስኩ ውስጥ 'የተወደደ' ምላሽ መኖሩን መተንበይ ነው።
የማስረከቢያው ፋይል የሚከተለው መዋቅር አለው፡-

የተጠቃሚው መለያ የተደረደሩ ዝርዝር[ነገርአይድ]
123 78,13,54,22
128 35,61,55
131 35,68,129,11

ሜትሪክ - አማካይ ROC AUC በተጠቃሚዎች።

የመረጃው የበለጠ ዝርዝር መግለጫ በ ላይ ይገኛል። ተዛማጅ ጣቢያ. እንዲሁም እዚያ ሙከራዎችን እና ስዕሎችን ጨምሮ ውሂብ ማውረድ ይችላሉ።

የመስመር ላይ ደረጃ

በመስመር ላይ ደረጃ, ተግባሩ በ 3 ክፍሎች ተከፍሏል

ከመስመር ውጭ መድረክ

ከመስመር ውጭ ደረጃ ላይ፣ ውሂቡ ሁሉንም ባህሪያት አካቷል፣ ጽሑፎች እና ምስሎች ግን ትንሽ ነበሩ። በውሂብ ስብስብ ውስጥ ያሉት ረድፎች ቀድሞውንም ብዙ ነበሩ፣ 1,5 እጥፍ የበለጠ ሆነዋል።

ችግር መፍታት

በሥራ ቦታ cv ስለምሠራ፣ በዚህ ውድድር ላይ በ‹‹ምስል›› ሥራ ጉዞዬን ጀመርኩ። የቀረበው ዳታ userId፣ objectId፣ ownerId (ልጥፉ የሚታተምበት ቡድን)፣ ልጥፉን ለመፍጠር እና ለማሳየት የጊዜ ማህተሞች እና፣ በእርግጥ የዚህ ልጥፍ ምስል ነው።
ጥቂት የጊዜ ማህተም ላይ የተመሰረቱ ባህሪያትን ካመነጨ በኋላ፣ የሚቀጥለው ሀሳብ በምስልኔት ላይ አስቀድሞ የሰለጠነውን የነርቭ አውታረ መረብ ንጣፍ ወስዶ እነዚህን መክተቻዎች ወደማሳደግ መላክ ነበር።

ኤስኤንኤ ሃካቶን 2019

ውጤቶቹ አስደናቂ አልነበሩም። ከምስልኔት ኒዩሮን መክተት አግባብነት የለውም፣ ብዬ አሰብኩ፣ የራሴን አውቶኢንኮደር ማስገባት አለብኝ።

ኤስኤንኤ ሃካቶን 2019

ብዙ ጊዜ ወስዶ ውጤቱ አልተሻሻለም.

የባህሪ ማመንጨት

በምስሎች መስራት ብዙ ጊዜ ይወስዳል, እና አንድ ቀላል ነገር ለማድረግ ወሰንኩ.
ወዲያውኑ እንደሚመለከቱት ፣ በመረጃ ቋቱ ውስጥ ብዙ ፈርጅካዊ ባህሪዎች አሉ ፣ እና ከመጠን በላይ ላለመጨነቅ ፣ በቃ ካትቦስትን ወሰድኩ። መፍትሄው በጣም ጥሩ ነበር ፣ ያለምንም ቅንጅቶች ፣ ወዲያውኑ ወደ መሪ ሰሌዳው የመጀመሪያ መስመር ገባሁ።

ብዙ መረጃዎች አሉ እና እነሱ በፓርኩ ቅርጸት ተዘርግተዋል, ስለዚህ ሁለት ጊዜ ሳላስብ, ስካላ ወስጄ ሁሉንም ነገር በብልጭታ ውስጥ መጻፍ ጀመርኩ.

ከምስል መክተት የበለጠ እድገትን የሰጡ በጣም ቀላሉ ባህሪዎች

  • በመረጃው ውስጥ ስንት ጊዜ objectId፣ userId እና ownerId ተከስተዋል (ከታዋቂነት ጋር መዛመድ አለበት)።
  • ምን ያህል ልጥፎች userId ከባለቤትአይድ አይቷል (ከተጠቃሚው ቡድን ፍላጎት ጋር የተዛመደ መሆን አለበት)።
  • ስንት ልዩ ተጠቃሚ መታወቂያዎች በባለቤትአይድ ልጥፎችን አይተዋል (የቡድኑን ታዳሚ መጠን ያንፀባርቃል)።

ከጊዜ ማህተሞች ተጠቃሚው ምግቡን (ጥዋት / ከሰዓት / ምሽት / ምሽት) የተመለከተውን የቀን ሰዓት ማግኘት ተችሏል. እነዚህን ምድቦች በማጣመር ባህሪያትን ማፍራት መቀጠል ትችላለህ፡-

  • ምን ያህል ጊዜ ተጠቃሚId በምሽት እንደገባ;
  • ይህ ልጥፍ ብዙ ጊዜ በምን ሰዓት ይታያል (objectId) እና የመሳሰሉት።

ይህ ሁሉ ቀስ በቀስ መለኪያውን አሻሽሏል. ነገር ግን የሥልጠናው መረጃ ስብስብ መጠን ወደ 20M መዝገቦች ነው፣ ስለዚህ ባህሪያትን መጨመር ስልጠናን በእጅጉ ቀንሷል።

መረጃን የመጠቀም አካሄዴን አሻሽያለሁ። ምንም እንኳን ውሂቡ በጊዜ ላይ የተመሰረተ ቢሆንም "ለወደፊቱ" ምንም ግልጽ የሆነ የመረጃ ፍሰት አላየሁም, ሆኖም ግን, ልክ እንደ ሁኔታው, እንዲህ አድርጌዋለሁ.

ኤስኤንኤ ሃካቶን 2019

የተሰጠን የሥልጠና ስብስብ (የካቲት እና መጋቢት 2 ሳምንታት) በ2 ተከፍሎ ነበር።
ሞዴሉን በመጨረሻዎቹ N ቀናት መረጃ ላይ አሰልጥኗል። ከላይ የተገለጹት ስብስቦች ፈተናውን ጨምሮ በሁሉም መረጃዎች ላይ የተገነቡ ናቸው። በተመሳሳይ ጊዜ የዒላማው ተለዋዋጭ የተለያዩ ኢንኮዲንግ መገንባት የሚቻልበት መረጃ ታየ። በጣም ቀላሉ አካሄድ አዲስ ባህሪያትን እየፈጠረ ያለውን ኮድ እንደገና መጠቀም እና ያልሰለጠነ እና ኢላማ ያልሆነ መረጃ ብቻ መመገብ ነው = 1.

ስለዚህ, ተመሳሳይ ባህሪያት አግኝተናል-

  • userId በባለቤትነት መታወቂያ ቡድን ውስጥ ስንት ጊዜ ልጥፉን አይቷል፤
  • ምን ያህል ጊዜ ተጠቃሚ ልጥፉን ለቡድኑ ባለቤት መታወቂያ ወደውታል፤
  • ተጠቃሚ መታወቂያ ከባለቤትአይድ የወደዳቸው ልጥፎች መቶኛ።

ማለትም ተገኘ አማካኝ ዒላማ ኢንኮዲንግ ለተለያዩ የምድብ ባህሪያት ጥምረት በመረጃ ስብስብ አንድ ክፍል ላይ። በመርህ ደረጃ ፣ catboost እንዲሁ ኢላማ ኢንኮዲንግ ይገነባል እና ከዚህ እይታ ምንም ጥቅም የለም ፣ ግን ለምሳሌ ፣ በዚህ ቡድን ውስጥ ልጥፎችን የወደዱ ልዩ ተጠቃሚዎችን ቁጥር መቁጠር ተችሏል። በተመሳሳይ ጊዜ ዋናው ግብ ተሳክቷል - የእኔ የውሂብ ስብስብ ብዙ ጊዜ ቀንሷል, እና ባህሪያትን ማመንጨት መቀጠል ተችሏል.

ካትቦስት በተወደደው ምላሽ ላይ ብቻ ኢንኮዲንግ መገንባት ቢችልም፣ ግብረመልስ ሌሎች ግብረመልሶች አሉት፡- ዳግም የተጋራ፣ ያልተወደደ፣ ያልተፈለገ፣ ጠቅ የተደረገ፣ ችላ የተባለ፣ እሱም በእጅ ሊገለበጥ ይችላል። ሁሉንም አይነት ድምር ቆጥሬአለሁ እና የውሂብ ስብስቡን ላለማስፋት ሲሉ ዝቅተኛ ጠቀሜታ ያላቸውን ባህሪያት አጣራሁ።

ያኔ በሰፊ ልዩነት አንደኛ ነበርኩ። ብቸኛው አሳፋሪው ነገር የምስል መክተት ምንም ጭማሪ አለመስጠቱ ነበር። ሀሳቡ ሁሉንም ነገር በ catboost ምህረት ለመስጠት መጣ። እኛ የክሜንስ ምስሎችን ሰብስበናል እና አዲስ የምድብ ባህሪ ምስልCat እናገኛለን።

ከKMeans የተገኙ ስብስቦችን በእጅ ካጣራ እና ካዋሃዱ በኋላ አንዳንድ ክፍሎች እዚህ አሉ።

ኤስኤንኤ ሃካቶን 2019

በምስል ካት ላይ በመመስረት የሚከተሉትን እናመነጫለን

  • አዲስ ምድብ ባህሪያት፡-
    • የትኛው ምስል ካት ብዙውን ጊዜ በተጠቃሚ መታወቂያ ይታይ ነበር;
    • የትኛው ምስል ካት ብዙውን ጊዜ የባለቤትነት መታወቂያን ያሳያል;
    • የትኛው ምስል ካት ብዙውን ጊዜ በተጠቃሚ መታወቂያ ይወድ ነበር;
  • የተለያዩ ቆጣሪዎች;
    • ምን ያህል ልዩ ምስል ካት የተጠቃሚ መታወቂያ ታየ።
    • ከላይ እንደተገለጸው ወደ 15 የሚጠጉ ተመሳሳይ ባህሪያት እና የዒላማ ኢንኮዲንግ።

ጽሑፎች

በምስሉ ውድድር ውስጥ ያሉት ውጤቶች ለእኔ ተስማሚ ናቸው እና በጽሑፎቹ ውስጥ ራሴን ለመሞከር ወሰንኩ. ከዚህ በፊት በፅሁፍ ብዙ አልሰራም ነበር እና በሞኝነት አንድ ቀን በ tf-idf እና svd ላይ ገድያለሁ። ከዛም ከdoc2vec ጋር መነሻ አየሁ፣ እሱም በትክክል የሚያስፈልገኝን ያደርጋል። የdoc2vec መለኪያዎችን ትንሽ ካስተካከልኩ በኋላ፣ የጽሑፍ መክተቻዎች አግኝቻለሁ።

እና ከዚያ በቀላሉ የምስሎች ኮድን እንደገና ተጠቀምኩኝ ፣ በዚህ ውስጥ የምስል መክተቶችን በጽሑፍ መክተቶች ተክቻለሁ። በውጤቱም, በጽሑፍ ውድድር ውስጥ 2 ኛ ደረጃ አገኘሁ.

የትብብር ስርዓት

እስካሁን “በዱላ ያልነቀስኩት” አንድ ውድድር ቀርቷል፣ እና በመሪዎች ሰሌዳው ላይ በAUC ሲመዘን የዚህ ውድድር ውጤት ከመስመር ውጭ መድረክ ላይ ከፍተኛ ተጽዕኖ ማሳደር ነበረበት።
በዋናው መረጃ ውስጥ ያሉትን ሁሉንም ባህሪያት ወስጃለሁ, ምድብ የሆኑትን መረጥኩ እና እንደ ምስሎች ተመሳሳይ ድምርን አስላለሁ, ለምስሎቹ እራሳቸው ባህሪያት ካልሆነ በስተቀር. በቃ ካትቦስት ውስጥ ማስቀመጡ 2ኛ ደረጃ ላይ እንድገኝ አድርጎኛል።

የ catboost ማመቻቸት የመጀመሪያ ደረጃዎች

አንድ አንደኛ እና ሁለት ሰከንድ አስደሰተኝ ነገር ግን ምንም የተለየ ነገር እንዳላደረግኩ ተረዳሁ ይህም ማለት የስራ መደቦችን ማጣት እንጠብቃለን ማለት ነው።

የውድድሩ ተግባር በተጠቃሚው ውስጥ ልጥፎችን ደረጃ መስጠት ነው ፣ እና በዚህ ጊዜ ሁሉ የምደባ ችግሩን እየፈታሁ ነበር ፣ ማለትም ፣ የተሳሳተ መለኪያ አመቻችቻለሁ።

አንድ ቀላል ምሳሌ እሰጣለሁ፡-

የተጠቃሚው መለያ 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

ትንሽ ለውጥ ማድረግ

የተጠቃሚው መለያ 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

የሚከተሉትን ውጤቶች እናገኛለን:

ሞዴል AUC ተጠቃሚ1AUC ተጠቃሚ2AUC ማለት 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 ዶክመንቴሽን በመመዘን በፍጥነት ይሰበሰባል። በውጤቱም, ለምድብ ስልጠና በምሰጥበት ጊዜ ተመሳሳይ ውጤት አግኝቻለሁ, ነገር ግን የእነዚህ ሁለት ሞዴሎች ስብስቦች ጥሩ ጭማሪ ሰጡኝ, ይህም በሶስቱም ውድድሮች ውስጥ የመጀመሪያ ደረጃ ላይ እንድደርስ አድርሶኛል.

በትብብር ሲስተም ውድድር የመስመር ላይ መድረክ ከመዘጋቱ 5 ደቂቃዎች በፊት ሰርጌይ ሻልኖቭ ወደ ሁለተኛ ደረጃ አንቀሳቅሶኛል። ቀሪውን መንገድ አብረን ተጓዝን።

ከመስመር ውጭ ደረጃ ዝግጅት

በኦንላይን መድረክ ላይ ያለው ድል በ RTX 2080 TI ቪዲዮ ካርድ የተረጋገጠ ቢሆንም ዋናው የ 300 ሩብልስ ሽልማት እና ይልቁንም የመጨረሻው የመጀመሪያ ቦታ ለእነዚህ 000 ሳምንታት እንድንሰራ አድርጎናል.

እንደ ተለወጠ ፣ ሰርጌይ እንዲሁ ካትቦስትን ተጠቅሟል። ሃሳቦችን እና ባህሪያትን ተለዋወጥን, እና ስለ ተማርኩኝ ዘገባው በአና ቬሮኒካ ዶሮጉሽ ነው። ለብዙዎቹ ጥያቄዎቼ እና እስከዚያ ጊዜ ድረስ ላልታዩኝም ጭምር መልሶች ነበሩ።

ሪፖርቱን መመልከቴ ሁሉንም መመዘኛዎች ወደ ነባሪው እሴት መመለስ አስፈላጊ ነው ወደሚለው ሀሳብ አመራኝ, እና ቅንብሮቹን በጥንቃቄ እና የባህሪዎችን ስብስብ ካስተካከለ በኋላ ብቻ ነው. አሁን አንድ ስልጠና 15 ሰአታት ያህል የፈጀ ሲሆን አንድ ሞዴል ግን በስብስብ ደረጃ ከተመዘገበው የተሻለ ውጤት ማግኘት ችሏል።

የባህሪ ማመንጨት

በ "የጋራ ስርዓቶች" ውድድር ውስጥ ብዙ ቁጥር ያላቸው ባህሪያት ለአምሳያው አስፈላጊ እንደሆኑ ይገመገማሉ. ለምሳሌ, የኦዲት ክብደት_ስፓርክ_svd - በጣም አስፈላጊው ምልክት, ምን ማለት እንደሆነ ምንም መረጃ ባይኖርም. በአስፈላጊ ባህሪያት ላይ በመመስረት የተለያዩ ድምርን መቁጠር ጠቃሚ ነው ብዬ አስቤ ነበር. ለምሳሌ አማካኝ የኦዲት ክብደት_spark_svd በተጠቃሚ ፣በቡድን ፣በነገር። ተመሳሳይ ስልጠና በማይሰጥበት መረጃ ላይ ሊሰላ ይችላል እና ዒላማ = 1, ማለትም, አማካይ የኦዲት ክብደት_ስፓርክ_svd በተጠቃሚው በሚወዷቸው ነገሮች. በተጨማሪ ጠቃሚ ባህሪያት የኦዲት ክብደት_ስፓርክ_svd፣ በርካታ ነበሩ። ጥቂቶቹ እነኚሁና፡-

  • የኦዲት ክብደት CtrlGender
  • የኦዲት ክብደት CtrHigh
  • የተጠቃሚ ባለቤት ቆጣሪ መውደዶችን ይፍጠሩ

ለምሳሌ, አማካይ ዋጋ የኦዲት ክብደት CtrlGender በተጠቃሚ መታወቂያው ልክ እንደ አማካኝ እሴት አስፈላጊ ባህሪ ሆኖ ተገኝቷል የተጠቃሚ ባለቤት ቆጣሪ መውደዶችን ይፍጠሩ በተጠቃሚId+ownerId። ይህ ቀደም ሲል የሜዳዎችን ትርጉም ለመቋቋም አስፈላጊነት እንዲያስቡ ማድረግ ነበረበት።

እንዲሁም ጠቃሚ ባህሪያት ነበሩ የኦዲት ክብደት የተወደዱ ቆጠራ и auditweightsShowsCount. አንዱን ወደ ሌላ በመከፋፈል፣ የበለጠ ጠቃሚ ባህሪ አግኝተናል።

የውሂብ መፍሰስ

የውድድር እና የምርት ሞዴሎች በጣም የተለያዩ ስራዎች ናቸው. መረጃን በሚዘጋጅበት ጊዜ ሁሉንም ዝርዝሮች ግምት ውስጥ ማስገባት እና በፈተናው ላይ ስላለው ተለዋዋጭ ተለዋዋጭ አንዳንድ ቀላል ያልሆኑ መረጃዎችን ላለማስተላለፍ በጣም ከባድ ነው. የምርት መፍትሄ እየፈጠርን ከሆነ, ሞዴሉን በሚያሠለጥንበት ጊዜ የውሂብ ፍሳሾችን ከመጠቀም ለመቆጠብ እንሞክራለን. ነገር ግን ውድድሩን ማሸነፍ ከፈለግን የውሂብ ፍንጣቂዎች ምርጥ ባህሪያት ናቸው.

ውሂቡን ከመረመርክ በኋላ፣ በእሴቱ ዓላማኢድ መሰረት ያንን ማየት ትችላለህ የኦዲት ክብደት የተወደዱ ቆጠራ и auditweightsShowsCount ለውጥ ፣ ይህ ማለት የእነዚህ ባህሪዎች ከፍተኛ እሴቶች ጥምርታ በእይታ ጊዜ ካለው ሬሾ የበለጠ የልጥፉን መለወጥ ያንፀባርቃል።

እኛ ያገኘነው የመጀመሪያው መፍሰስ ነው። ኦዲት ሚዛን መውደዶችCountMax/auditweightsShowsCountMax.
መረጃውን ጠለቅ ብለን ብናየውስ? በትዕይንት ቀን ደርድር እና አግኝ፡-

objectId የተጠቃሚው መለያ auditweightsShowsCount የኦዲት ክብደት የተወደዱ ቆጠራ ኢላማ (የተወደደ)
1 1 12 3 ምናልባት አይደለም
1 2 15 3 ምናልባት አዎ
1 3 16 4

ለመጀመሪያ ጊዜ እንዲህ ዓይነቱን ምሳሌ ሳገኝ በጣም አስገራሚ ነበር እና የእኔ ትንበያ እውን ሊሆን አልቻለም። ነገር ግን በእቃው ውስጥ ያሉት የእነዚህ ባህሪዎች ከፍተኛ ዋጋ ጨምሯል ፣ እኛ በጣም ሰነፍ አልነበርንም እና ለማግኘት ወሰንን ። auditweightsShowsCountNext и ኦዲት ሚዛን የመውደድ CountNext፣ ማለትም ፣ በሚቀጥለው ጊዜ ዋጋዎች። ባህሪ በማከል
(auditweightsShowsCountNext-auditweightsShowsCount)/(auditweightsLikesCount-auditweightsLikesCountNext) ወደ ፊት ስለታም ዝለል አድርገናል።
የሚከተሉትን እሴቶች በማግኘት ተመሳሳይ ፍንጣቂዎች ጥቅም ላይ ሊውሉ ይችላሉ። የተጠቃሚ ባለቤት ቆጣሪ መውደዶችን ይፍጠሩ በuserId+ownerId ውስጥ እና ለምሳሌ፣ የኦዲት ክብደት CtrlGender በ objectId+userGender ውስጥ። 6 ተመሳሳይ መስኮች ከውሃ መፍሰስ ጋር አግኝተናል እና በተቻለ መጠን ብዙ መረጃዎችን ከነሱ አውጥተናል።

በዚያን ጊዜ፣ ከፍተኛውን መረጃ ከትብብር ባህሪያት አውጥተናል፣ ነገር ግን ወደ ምስሎች እና ጽሑፎች ውድድር አልተመለስንም። ለመፈተሽ ጥሩ ሀሳብ ነበር፡ ባህሪያት በተዛማጅ ውድድሮች ውስጥ በቀጥታ ለምስሎች ወይም ጽሑፎች ምን ያህል ይሰጣሉ?

በምስሉ እና በፅሁፍ ውድድሮች ውስጥ ምንም ፍሰቶች አልነበሩም ፣ ግን በዚያን ጊዜ የ catboost ነባሪ መለኪያዎችን መለስኩ ፣ ኮዱን አጸዳ እና ጥቂት ባህሪዎችን ጨምሬያለሁ። ጠቅላላ ተገኘ፡-

ዉሳኔ በቅርቡ
ከፍተኛው በምስሎች 0.6411
ከፍተኛው ያለ ምስሎች 0.6297
ሁለተኛ ቦታ ውጤት 0.6295

ዉሳኔ በቅርቡ
ከፍተኛው ከጽሁፎች ጋር 0.666
ከፍተኛው ያለ ጽሑፎች 0.660
ሁለተኛ ቦታ ውጤት 0.656

ዉሳኔ በቅርቡ
ከፍተኛው በትብብር 0.745
ሁለተኛ ቦታ ውጤት 0.723

ከጽሁፎች እና ምስሎች ብዙ መጭመቅ የምንችልበት እድል እንደሌለ ግልጽ ሆነ፣ እና ሁለት በጣም አስደሳች ሀሳቦችን ከሞከርን በኋላ ከእነሱ ጋር መስራት አቆምን።

በትብብር ስርዓቶች ውስጥ ያሉ ተጨማሪ ማመንጨት ባህሪያት መጨመር አልሰጡም, እና ደረጃ መስጠት ጀመርን. በኦንላይን መድረክ ላይ የምደባ እና የደረጃ አሰጣጡ ስብስብ ትንሽ ጭማሪ ሰጠኝ ፣ እንደ ተለወጠ ፣ ምክንያቱም ምደባውን ስላሰለጠነሁ። YetiRanlPairwiseን ጨምሮ የትኛውም የስህተት ተግባራት ሎግሎስስ ካደረገው ውጤት ጋር አልቀረበም (0,745 vs. 0,725)። ለQueryCrossEntropy ተስፋ ነበረ፣ እሱም ሊጀመር አልቻለም።

ከመስመር ውጭ መድረክ

ከመስመር ውጭ ደረጃ፣ የውሂብ አወቃቀሩ ተመሳሳይ ነው፣ ነገር ግን ትናንሽ ለውጦች ነበሩ፦

  • መለያዎች userId, objectId, ownerId እንደገና በዘፈቀደ ተደርገዋል;
  • ጥቂት ባህሪያት ተወግደዋል እና ጥቂቶች እንደገና ተሰይመዋል;
  • መረጃው በ1,5 ጊዜ ያህል ጨምሯል።

ከላይ ከተዘረዘሩት ችግሮች በተጨማሪ አንድ ትልቅ ፕላስ ነበር፡ RTX 2080TI ያለው ትልቅ አገልጋይ ለቡድኑ ተመድቧል። በ htop ለረጅም ጊዜ እወዳለሁ.
ኤስኤንኤ ሃካቶን 2019

ሀሳቡ አንድ ነበር - ቀድሞውንም ያለውን ብቻ ይድገሙት። አካባቢውን በአገልጋዩ ላይ በማዘጋጀት ለሁለት ሰዓታት ካሳለፍን በኋላ ውጤቶቹ ሊባዙ የሚችሉ መሆናቸውን ቀስ በቀስ ማረጋገጥ ጀመርን። የገጠመን ዋናው ችግር የመረጃው መጠን መጨመር ነው። ጭነቱን በትንሹ ለመቀነስ እና የ catboost መለኪያ ctr_complexity=1 ለማዘጋጀት ወሰንን. ይህ ፍጥነቱን በትንሹ ይቀንሳል, ነገር ግን የእኔ ሞዴል መስራት ጀመረ, ውጤቱም ጥሩ ነበር - 0,733. ሰርጌይ, ከእኔ በተለየ መልኩ, መረጃውን በ 2 ክፍሎች አልተከፋፈለም እና በሁሉም መረጃዎች ላይ የሰለጠኑ, ምንም እንኳን ይህ በመስመር ላይ መድረክ ላይ ምርጡን ውጤት ቢሰጥም, ከመስመር ውጭ መድረክ ላይ ብዙ ችግሮች ነበሩ. የፈጠርናቸውን ሁሉንም ባህሪያት ወስደን ወደ catboost ጭንቅላት ላይ ለማስቀመጥ ከሞከርን, በመስመር ላይ መድረክ ላይ ምንም ነገር አይከሰትም ነበር. ሰርጌይ ማመቻቸትን ታይፕ ሰርቷል፡ ለምሳሌ፡ float64 ን ወደ float32 አይነት በመቀየር። በዚህ ርዕስ ውስጥ, በፓንዳዎች ውስጥ የማህደረ ትውስታ ማመቻቸት ላይ መረጃ ማግኘት ይችላሉ. በውጤቱም, ሰርጌይ በሁሉም መረጃዎች ላይ በሲፒዩ ላይ ተማረ እና ወደ 0,735 አግኝቷል.

እነዚህ ውጤቶች ለማሸነፍ በቂ ነበሩ ነገርግን ትክክለኛ ውጤታችንን ደብቀን ሌሎች ቡድኖችም ተመሳሳይ እንቅስቃሴ እንዳላደረጉ እርግጠኛ መሆን አልቻልንም።

እስከ መጨረሻው ድረስ ይዋጉ

መቃኛ catboost

የእኛ መፍትሔ ሙሉ በሙሉ ተባዝቷል፣ የጽሑፍ ውሂብን እና የምስል ባህሪያትን ጨምረናል፣ ስለዚህ የ catboost መለኪያዎችን ለማስተካከል ብቻ ይቀራል። ሰርጌይ በሲፒዩ ላይ የሰለጠነው በትንሽ ድግግሞሾች ነው፣ እና እኔ በctr_complexity=1 ላይ ስልጠና ሰጠሁ። አንድ ቀን ቀርቷል፣ እና ድግግሞሾችን ካከሉ ​​ወይም ctr_complexity ከጨመሩ፣ በማለዳ የተሻለ ፍጥነት ማግኘት እና ቀኑን ሙሉ በእግር መሄድ ይችላሉ።

ከመስመር ውጭ ደረጃ ላይ፣ ውጤቶቹ በቀላሉ ሊደበቁ ይችላሉ፣ በቀላሉ በጣቢያው ላይ የተሻለውን መፍትሄ አለመምረጥ። ማስገባቱ ከመዘጋቱ በፊት በመጨረሻዎቹ ደቂቃዎች ውስጥ በመሪዎች ሰሌዳው ላይ አስገራሚ ለውጦችን ጠብቀን እና ላለማቆም ወስነናል።

ከአና ቪዲዮ ፣ የአምሳያው ጥራት ለማሻሻል የሚከተሉትን መለኪያዎች መምረጥ የተሻለ እንደሆነ ተማርኩ ።

  • የትምህርት ደረጃ - ነባሪው ዋጋ በመረጃ ቋቱ መጠን ላይ ተመስርቶ ይሰላል. የመማር_መጠን መጨመር የድግግሞሽ ብዛት መጨመር ያስፈልገዋል።
  • l2_ቅጠል_ሬግ - Regularization Coefficient, ነባሪ እሴት 3, ከ 2 እስከ 30 ለመምረጥ የሚፈለግ ነው. እሴቱን መቀነስ ከመጠን በላይ መጨመርን ያመጣል.
  • የከረጢት_ሙቀት - በናሙናው ውስጥ ባሉ ዕቃዎች ክብደት ላይ የዘፈቀደነትን ይጨምራል። ነባሪው እሴቱ 1 ነው፣ በዚህ ውስጥ ክብደቶቹ ከአርቢ ስርጭት የሚመረጡበት። እሴቱን መቀነስ ከመጠን በላይ መጨመርን ያመጣል.
  • የዘፈቀደ_ጥንካሬ - በተወሰነ ድግግሞሽ ላይ የመከፋፈል ምርጫ ላይ ተጽዕኖ ያሳድራል. የዘፈቀደ_ጥንካሬው ከፍ ባለ መጠን ዝቅተኛ ጠቀሜታ ያለው የመከፋፈል እድሉ ከፍ ያለ ይሆናል። በእያንዳንዱ ቀጣይ ድግግሞሽ, የዘፈቀደነቱ ይቀንሳል. እሴቱን መቀነስ ከመጠን በላይ መጨመርን ያመጣል.

ሌሎች መለኪያዎች በመጨረሻው ውጤት ላይ በጣም ያነሰ ተጽእኖ አላቸው, ስለዚህ እነሱን ለመምረጥ አልሞከርኩም. በእኔ የጂፒዩ ዳታ ስብስብ ctr_complexity=1 ላይ አንድ ተደጋጋሚ ስልጠና 20 ደቂቃ ፈጅቷል፣ እና በተቀነሰው የውሂብ ስብስብ ላይ የተመረጡት መመዘኛዎች ሙሉ የውሂብ ስብስብ ላይ ካሉት ጥሩ ከሚባሉት በመጠኑ የተለየ ነበር። በውጤቱም, በ 30% መረጃ ላይ ወደ 10 ገደማ ድግግሞሽ, እና ከዚያም በሁሉም መረጃዎች ላይ ወደ 10 ተጨማሪ ድግግሞሽ አደረግሁ. እንደዚህ ያለ ነገር ሆነ።

  • የትምህርት ደረጃ ከነባሪው በ 40% ጨምሬያለሁ;
  • l2_ቅጠል_ሬግ ተመሳሳይ ትቶ;
  • የከረጢት_ሙቀት и የዘፈቀደ_ጥንካሬ ወደ 0,8 ቀንሷል.

ሞዴሉ በነባሪ መለኪያዎች ያልሰለጠነ ነበር ብሎ መደምደም ይቻላል።

ውጤቱን በመሪዎች ሰሌዳው ላይ ሳየው በጣም ተገረምኩ፡-

ሞዴል ሞዴል 1 ሞዴል 2 ሞዴል 3 ሰብስብ
ሳይስተካከል 0.7403 0.7404 0.7404 0.7407
በማስተካከል 0.7406 0.7405 0.7406 0.7408

እኔ ለራሴ ደመደምኩ ፣ የአምሳያው ፈጣን መተግበሪያ ካላስፈለገዎት የመለኪያዎችን ምርጫ ባልተመቻቹ መለኪያዎች ላይ በበርካታ ሞዴሎች ስብስብ መተካት የተሻለ ነው።

ሰርጌይ በጂፒዩ ላይ ለማስኬድ የውሂብ ስብስብ መጠንን በማመቻቸት ላይ ተሳትፏል። በጣም ቀላሉ አማራጭ የመረጃውን ክፍል መቁረጥ ነው ፣ ግን ይህ በብዙ መንገዶች ሊከናወን ይችላል-

  • የመረጃ ቋቱ ወደ ማህደረ ትውስታ መገጣጠም እስኪጀምር ድረስ ቀስ በቀስ የድሮውን ውሂብ (ከየካቲት ወር መጀመሪያ) ያስወግዱ።
  • በዝቅተኛ ጠቀሜታ ባህሪያትን ያስወግዱ;
  • አንድ ግቤት ብቻ ያለበትን የተጠቃሚ መታወቂያ ያስወግዱ;
  • በሙከራ ውስጥ ያለውን የተጠቃሚ መታወቂያ ብቻ ይተዉት።

እና በመጨረሻ - የሁሉንም አማራጮች ስብስብ ለመሥራት.

የመጨረሻው ስብስብ

በመጨረሻው ቀን ምሽት ፣የእኛን ሞዴሎች ስብስብ ለጥፈናል ፣ እሱም 0,742 ሰጠ። ማታ ላይ ሞዴሌን በctr_complexity=2 ሮጥኩ እና ከ30 ደቂቃ ይልቅ ለ5 ሰአታት ሰልጥኗል። ከጠዋቱ 4 ሰዓት ላይ ብቻ ቆጥራለች እና የመጨረሻውን ስብስብ ሰራሁ ፣ ይህም በህዝብ መሪ ሰሌዳ ላይ 0,7433 ሰጠ።

ችግሩን ለመፍታት በተለያዩ መንገዶች ምክንያት, የእኛ ትንበያዎች በጠንካራ ሁኔታ አልተጣመሩም, ይህም በስብስቡ ውስጥ ጥሩ ጭማሪ አሳይቷል. ጥሩ ስብስብ ለማግኘት፣ የጥሬ ሞዴል ትንበያዎችን መጠቀም የተሻለ ነው(prediction_type='RawFormulaVal') እና ሚዛን_pos_weight=neg_count/pos_count።

ኤስኤንኤ ሃካቶን 2019

በጣቢያው ላይ ማየት ይችላሉ የመጨረሻ ውጤቶች በግል የመሪዎች ሰሌዳ ላይ.

ሌሎች መፍትሄዎች

ብዙ ቡድኖች የአማካሪ ስልተ ቀመሮችን ቀኖናዎች ተከትለዋል። እኔ, በዚህ አካባቢ ኤክስፐርት ሳልሆን, እነሱን መገምገም አልችልም, ግን 2 አስደሳች መፍትሄዎችን አስታውሳለሁ.

  • የኒኮላይ አኖኪን ውሳኔ. ኒኮላይ የ Mail.ru ተቀጣሪ በመሆኑ ምንም አይነት ሽልማቶችን አልጠየቀም, ስለዚህ እራሱን ከፍተኛውን ፍጥነት ላለማግኘት ግቡን አስቀምጧል, ነገር ግን በቀላሉ ሊሰፋ የሚችል መፍትሄ ለማግኘት.
  • የጁሪ ሽልማትን የተቀበለው ቡድን ውሳኔ, ላይ የተመሰረተ ይህ መጣጥፍ ከፌስቡክያለ በእጅ ሼል ምስሎችን በደንብ ለመሰብሰብ አስችሏል።

መደምደሚያ

በእኔ ትውስታ ውስጥ በጣም የሚይዘው ምንድን ነው?

  • በመረጃው ውስጥ ምድብ ባህሪያት ካሉ እና የዒላማ ኢንኮዲንግ በትክክል እንዴት እንደሚሠሩ ካወቁ አሁንም ካትቦስትን መሞከሩ የተሻለ ነው።
  • በውድድር ላይ እየተሳተፈ ከሆነ፣ ከመማር_መጠን እና ከመደጋገም ውጭ መለኪያዎችን በመምረጥ ጊዜ ማጥፋት የለብዎትም። ፈጣን መፍትሄ የበርካታ ሞዴሎች ስብስብ መፍጠር ነው.
  • ማበረታቻዎች በጂፒዩ ላይ መማር ይችላሉ። ካትቦስት በጂፒዩ ላይ በፍጥነት መማር ይችላል፣ነገር ግን ብዙ ማህደረ ትውስታን ይበላል።
  • ሃሳቦችን በማዳበር እና በመሞከር ጊዜ ትንሽ rsm~=0.2 (ሲፒዩ ብቻ) እና ctr_complexity=1 ማዘጋጀት የተሻለ ነው።
  • ከሌሎች ቡድኖች በተለየ የእኛ ሞዴሎች ስብስብ ትልቅ ጭማሪ አሳይቷል። ሃሳብ ተለዋውጠን በተለያዩ ቋንቋዎች ብቻ ጻፍን። የውሂብ ክፍፍልን በተመለከተ የተለየ አቀራረብ ነበረን እና ሁሉም ሰው የራሳቸው ስህተቶች ያሉት ይመስለኛል።
  • የደረጃ ማሻሻያ ከምድብ ማሻሻያ የከፋ የሆነው ለምን እንደሆነ ግልጽ አይደለም።
  • በጽሁፎች እና በአማካሪ ስርዓቶች እንዴት እንደሚፈጠሩ ግንዛቤ አግኝቻለሁ።

ኤስኤንኤ ሃካቶን 2019

ለስሜቶች, ለእውቀት እና ለሽልማቶች አዘጋጆቹ እናመሰግናለን.

ምንጭ: hab.com

አስተያየት ያክሉ