ኤስኤንኤ ሃካቶን 2019

በየካቲት-መጋቢት 2019 የማህበራዊ አውታረ መረብ ምግብን ደረጃ ለመስጠት ውድድር ተካሂዷል። ኤስኤንኤ ሃካቶን 2019ቡድናችን የመጀመሪያውን ቦታ የያዘበት። በዚህ ጽሑፍ ውስጥ የውድድሩን አደረጃጀት፣ የሞከርናቸውን ዘዴዎች እና ለትልቅ የውሂብ ስልጠና የካትቡስት ቅንብሮችን እወያያለሁ።

ኤስኤንኤ ሃካቶን 2019

ኤስኤንኤ ሃካቶን

ይህ በዚህ ስም ስር ሦስተኛው ሃካቶን ነው። በማህበራዊ አውታረ መረብ ok.ru የተደራጀ ነው፣ ስለዚህ ተግባሩ እና መረጃው በቀጥታ ከዚህ ማህበራዊ አውታረ መረብ ጋር የተያያዙ ናቸው።
በዚህ ሁኔታ፣ SNA (የማህበራዊ አውታረ መረብ ትንተና) እንደ ማህበራዊ ግራፍ ትንተና ሳይሆን እንደ ማህበራዊ አውታረ መረብ ትንተና በትክክል ይገነዘባል።

  • በ2014፣ ተግባሩ አንድ ልጥፍ የሚያገኘውን የመውደዶች ብዛት መተንበይ ነበር።
  • በ2016፣ የVVZ ተግባር (እርስዎ ያውቁት ይሆናል) ከማህበራዊ ግራፍ ትንተና ጋር የቀረበ ነበር።
  • በ2019፣ የተጠቃሚውን feed ደረጃ መስጠት ተጠቃሚው አንድን ልጥፍ ሊወደው በሚችለው ዕድል ላይ የተመሠረተ ነው።

ለ2014 መናገር አልችልም፣ ነገር ግን በ2016 እና 2019 ከውሂብ ትንተና ክህሎቶች በተጨማሪ ትላልቅ የውሂብ ክህሎቶችም ያስፈልጋሉ። ወደ እነዚህ ውድድሮች የሳበኝ የማሽን መማሪያ እና ትላልቅ የውሂብ ማቀነባበሪያ ጥምረት ነው ብዬ አስባለሁ፣ እና በእነዚህ ዘርፎች ያለኝ ልምድ እንዳሸንፍ ረድቶኛል።

mlbootcamp

በ2019 ውድድሩ በመድረኩ ላይ ተካሂዷል። https://mlbootcamp.ru.

ውድድሩ የተጀመረው የካቲት 7 ቀን በመስመር ላይ ሲሆን ሶስት ችግሮችን ያካተተ ነበር። ማንኛውም ፍላጎት ያለው ሰው በድረ-ገጹ ላይ መመዝገብ፣ ማውረድ እና ማውረድ ይችላል። መነሻ መስመር እና መኪናዎን ለጥቂት ሰዓታት ይጫኑ። መጋቢት 15 ላይ ከተደረገው የመስመር ላይ መድረክ በኋላ፣ በእያንዳንዱ ውድድር ውስጥ ከፍተኛ 15 ተወዳዳሪዎች ከመጋቢት 30 እስከ ኤፕሪል 1 ድረስ ለሚካሄደው የመስመር ውጪ መድረክ ወደ Mail.ru ቢሮ ተጋብዘዋል።

ዓላማ

የምንጭ መረጃው የተጠቃሚ መታወቂያዎችን (userId) እና የፖስታ መታወቂያዎችን (objectId) ይይዛል። አንድ ተጠቃሚ ልጥፍ ከታየ፣ መረጃው userId፣ objectId፣ የተጠቃሚው ለልጥፉ የሰጠውን ምላሽ (ግብረመልስ) እና የተለያዩ ባህሪያትን ወይም ወደ ምስሎች እና ጽሑፍ የሚወስዱ አገናኞችን የያዘ ረድፍ ይይዛል።

የተጠቃሚው መለያየ objectIdየባለቤት መታወቂያግብረ መልስምስሎች
3555225677[ወድጄዋለሁ፣ ጠቅ አድርጌዋለሁ][ሃሽ1]
128425532144[አልተወደደም][hash2,hash3]
13145355677[ጠቅ ተደርጓል፣ እንደገና ተጋርቷል][ሃሽ2]

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

የተጠቃሚው መለያየተደረደረ ዝርዝር[objectId]
12378,13,54,22
12835,61,55
13135,68,129,11

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

የውሂቡን የበለጠ ዝርዝር መግለጫ በሚከተለው ላይ ማግኘት ይቻላል የስብሰባው ድህረ ገጽእንዲሁም ሙከራዎችን እና ምስሎችን ጨምሮ ውሂብ እዚያ ማውረድ ይችላሉ።

የመስመር ላይ መድረክ

በኦንላይን ደረጃ፣ ስራው በ3 ክፍሎች ተከፍሏል

ከመስመር ውጭ መድረክ

ከመስመር ውጭ ደረጃ ላይ፣ መረጃው ሁሉንም ባህሪያት ያካተተ ቢሆንም፣ ጽሑፍና ምስሎች በጣም ጥቂት ነበሩ። በውሂብ ስብስቡ ውስጥ ያሉት ረድፎች ብዛት በ1,5 ጊዜ ጨምሯል።

ለችግሩ መፍትሄ

በስራ ቦታ በሲቪዎች ላይ ስለምሰራ፣ በዚህ ውድድር ጉዞዬን የጀመርኩት በ"ምስሎች" ተግባር ነው። የሰጠሁት መረጃ የተጠቃሚ መታወቂያ፣ የ objectID፣ የownerID (ልጥፉ የታተመበት ቡድን)፣ የድህረ-ፍጥረት እና የጊዜ ማህተሞችን የእይታ እና በእርግጥ የልጥፉ ምስልን ያካትታል።
በርካታ የጊዜ ማህተም ላይ የተመሰረቱ ባህሪያትን ከፈጠሩ በኋላ፣ የሚቀጥለው ሀሳብ አስቀድሞ የሰለጠነውን የምስልኔት የነርቭ አውታረ መረብ የመጨረሻ ደረጃ ወስደን እነዚህን ኢሜዲንግዎች ወደ ማበልጸጊያ ማዋሃድ ነበር።

ኤስኤንኤ ሃካቶን 2019

ውጤቶቹ አስደናቂ አልነበሩም። ከImageNet የነርቭ አውታረ መረብ የተገኙት ኢሜጅኔት ኢሜጅቶች ምንም ፋይዳ የሌላቸው ስለነበሩ የራሴን አውቶኢንኮደር መገንባት እንዳለብኝ አሰብኩ።

ኤስኤንኤ ሃካቶን 2019

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

የባህሪ ማመንጨት

ከምስሎች ጋር መስራት ብዙ ጊዜ ስለሚወስድ፣ ቀለል ያለ ነገር ለማድረግ ወሰንኩ።
እንደምታዩት፣ የውሂብ ስብስቡ በርካታ የምድብ ባህሪያትን ይዟል፣ ስለዚህ ከመጠን በላይ ላለማሰብ፣ በቀላሉ ካትቡስትን ተጠቀምኩ። ጥሩ መፍትሄ ነበር፤ ምንም አይነት ማስተካከያ ሳላደርግ ወዲያውኑ ወደ መሪ ሰሌዳው አናት ሄድኩ።

ብዙ መረጃዎች አሉ እና በፓርኬት ቅርጸት ተቀምጠዋል፣ ስለዚህ ሁለት ጊዜ ሳላስብ፣ ስካላን ወስጄ ሁሉንም ነገር በስፓርክ መጻፍ ጀመርኩ።

ከምስል ኢንክዲንግ የበለጠ ትርፍ ያስገኙ በጣም ቀላሉ ባህሪያት፡

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

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

  • የተጠቃሚ መታወቂያው ስንት ጊዜ ምሽት ላይ እንደገባ፤
  • ይህ ልጥፍ በብዛት የሚታየው በየትኛው ሰዓት ነው (objectId)፣ ወዘተ።

ይህ ሁሉ መለኪያውን ቀስ በቀስ አሻሽሏል። ሆኖም፣ የስልጠናው የውሂብ ስብስብ ወደ 20 ሚሊዮን የሚጠጉ መዝገቦች ስለነበር ባህሪያትን መጨመር ስልጠናውን በእጅጉ አዝጋሚ ያደርገዋል።

የውሂብ አጠቃቀምን በተመለከተ የነበረኝን አቀራረብ እንደገና አጤንኩት። መረጃው ጊዜን የሚነካ ቢሆንም፣ “ወደፊት” ምንም አይነት ግልጽ የሆነ የመረጃ መፍሰስ አላየሁም ነገር ግን ምናልባት እንዲህ ገልጬዋለሁ፡

ኤስኤንኤ ሃካቶን 2019

የተሰጠን የሥልጠና ስብስብ (የካቲት እና የመጋቢት 2 ሳምንታት) በሁለት ክፍሎች የተከፈለ ነበር።
ሞዴሉን ባለፉት N ቀናት ውስጥ በተገኘ መረጃ አሰልጥኜዋለሁ። ከላይ የተገለጹትን ስብስቦች በሁሉም መረጃዎች ላይ ገንብቻለሁ፣ የሙከራ ውሂቡን ጨምሮ። ይህ የተለያዩ የዒላማ ተለዋዋጭ ኮዶችን ለመገንባት ሊያገለግል የሚችል ውሂብ ፈጥሯል። ቀላሉ አቀራረብ አስቀድሞ አዳዲስ ባህሪያትን የሚፈጥር ኮድን እንደገና መጠቀም እና ለስልጠና እና ለዒላማ = 1 ጥቅም ላይ የማይውል ውሂብን በቀላሉ መመገብ ነው።

ስለዚህ የሚከተሉት ባህሪያት ተገኝተዋል:

  • የተጠቃሚ መታወቂያው በቡድኑ ባለቤት አይዲ ውስጥ ስንት ጊዜ ልጥፍ አይቷል፤
  • የተጠቃሚ መታወቂያው ከቡድን ባለቤት አይዲ የተላከ ልጥፍ ስንት ጊዜ ወደደው፤
  • የተጠቃሚ መታወቂያ ከ ownerId የወደደው የልጥፎች መቶኛ።

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

ካትቡስት "የተወደደ" ምላሽን መሰረት በማድረግ ኢንኮዲንግ ማመንጨት የሚችለው ቢሆንም፣ ግብረመልስ ሌሎች ምላሾችን ያካትታል፡ እንደገና የተጋራ፣ ያልተወደደ፣ ያልተወደደ፣ ጠቅ የተደረገ እና ችላ የተባለ ሲሆን ይህም በእጅ ሊቀረጽ ይችላል። የውሂብ ስብስቡን ላለማስፋት ሁሉንም ሊሆኑ የሚችሉ ድምር እና ባህሪያትን በዝቅተኛ ጠቀሜታ እንደገና አስልቻለሁ።

በዚያን ጊዜ፣ በሰፊው ልዩነት ቀድሞ አንደኛ ደረጃ ላይ ነበርኩ። ያስጨነቀኝ ብቸኛው ነገር የምስል ኢሜዲንግ ምንም አይነት የአፈጻጸም ጭማሪ አለመስጠቱ ነበር። ሁሉንም ለካትቡስት ለማስረከብ ወሰንኩ። የKmeans ምስሎችን ሰብስበን አዲስ የምድብ ባህሪ አገኘን፣ imageCat።

ከKMeans የተገኙ ክላስተሮችን በእጅ ከማጣራት እና ከማዋሃድ በኋላ አንዳንድ ክፍሎች እነሆ።

ኤስኤንኤ ሃካቶን 2019

በ imageCat ላይ በመመስረት የሚከተሉትን እናመነጫለን፦

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

ጽሑፎች

በምስል ውድድር በተገኘው ውጤት ረክቼ ስለነበር ጽሑፍን ለመሞከር ወሰንኩ። ከዚህ በፊት ብዙ ጊዜ በጽሑፍ አልሰራሁም ነበር፣ እና በሞኝነት፣ በ tf-idf እና svd ላይ አንድ ቀን አጠፋሁ። ከዚያም በ doc2vec የተሰራ መሰረታዊ ነገር አየሁ፣ እሱም የሚያስፈልገኝን በትክክል ያደርጋል። የ doc2vecን መለኪያዎች ትንሽ ካስተካከልኩ በኋላ የጽሑፍ ኢሜዲንግ አገኘሁ።

ከዚያም የምስል ኮዱን እንደገና ተጠቀመበት፣ የምስል ኢሜዲንግን በጽሑፍ ኢሜዲንግ ተክቼዋለሁ። በዚህም ምክንያት በጽሑፍ ውድድር ሁለተኛ ደረጃን ያዝኩ።

የትብብር ስርዓት

እስካሁን ያልሞከርኩት አንድ ውድድር ቀርቶኝ ነበር፣ እና በAUC የመሪዎች ሰሌዳ ላይ ባለው ግምገማ መሰረት፣ የዚህ ውድድር ውጤቶች ከመስመር ውጭ መድረክ ላይ ከፍተኛ ተጽዕኖ እንደሚያሳድሩ ይጠበቃል።
ከመጀመሪያው መረጃ ውስጥ ያሉትን ሁሉንም ባህሪያት ወስጄ፣ የምድብ የሆኑትን መርጬ፣ እና ለምስሎቹ ተመሳሳይ ድምርዎችን አስልቼ፣ ለምስሎቹ እራሳቸው ያሉትን ባህሪያት ሳይጨምር። ይህንን ከካትቡስት ጋር ብቻ በማያያዝ፣ ሁለተኛ ደረጃ አገኘሁ።

የካትቡስትን ማመቻቸት የመጀመሪያ እርምጃዎች

በአንድ የመጀመሪያ እና በሁለት ሁለተኛ ደረጃዎች ደስተኛ ነበርኩ፣ ነገር ግን ምንም ልዩ ነገር እንዳላደረግኩ ተረድቻለሁ፣ ይህም ማለት ቦታዎችን ማጣት እችላለሁ ማለት ነው።

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

አንድ ቀላል ምሳሌ ልስጥህ፦

የተጠቃሚው መለያየ objectIdመገመቻየመሬት እውነት
1100.91
1110.81
1120.71
1130.61
1140.50
2150.40
2160.31

ትንሽ ዳግም ማስተካከያ እናድርግ

የተጠቃሚው መለያየ objectIdመገመቻየመሬት እውነት
1100.91
1110.81
1120.71
1130.60
2160.51
2150.40
1140.31

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

ሞዴልAUCየተጠቃሚ 1 AUCየተጠቃሚ 2 AUCአማካይ AUC
አማራጭ 10,81,00,00,5
አማራጭ 20,70,751,00,875

እንደሚታየው፣ አጠቃላይ የAUC መለኪያን ማሻሻል ማለት በተጠቃሚ ውስጥ ያለውን አማካይ የAUC መለኪያ ማሻሻል ማለት አይደለም።

ካትቡስት የደረጃ አሰጣጥ መለኪያዎችን ማመቻቸት ይችላል ከሳጥኑ ውጪ። ስለ ደረጃ አሰጣጥ መለኪያዎች አነበብኩ፣ የስኬት ታሪኮች ካትቡስትን ተጠቅሜ በአንድ ሌሊት YetiRankPairwiseን አሰልጥኜ ነበር። ውጤቶቹ አስደናቂ አልነበሩም። በቂ ስልጠና እንዳልወሰድኩ በመደምደም፣ የስህተት ተግባሩን ወደ QueryRMSE ቀይሬዋለሁ፣ ይህም በካትቡስት ሰነዶች መሠረት በፍጥነት ይገናኛል። በመጨረሻም፣ ለምደባ ስሰለጥን እንደነበረው ተመሳሳይ ውጤቶችን አግኝቻለሁ፣ ነገር ግን የእነዚህ ሁለት ሞዴሎች ስብስቦች ጉልህ የሆነ ትርፍ አስገኝተዋል፣ ይህም በሦስቱም ውድድሮች የመጀመሪያ ደረጃ ላይ እንድገኝ አነሳስቶኛል።

የ"Collaborative Systems" ውድድር የመስመር ላይ መድረክ ከመጠናቀቁ አምስት ደቂቃዎች በፊት ሰርጌይ ሻልኖቭ ወደ ሁለተኛ ደረጃ አዛወረኝ። የቀረውን መንገድ አብረን ቀጠልን።

ከመስመር ውጭ መድረክን በማዘጋጀት ላይ

የመስመር ላይ መድረክን ማሸነፍ የ RTX 2080 TI ግራፊክስ ካርድ እንድናገኝ ዋስትና ሰጥቶናል፣ ነገር ግን የ300,000 ሩብልስ ታላቅ ሽልማት እና ምናልባትም በመጨረሻው ውድድር የመጀመሪያ ደረጃ ላይ እንድንገኝ አድርጎናል፣ ይህም ባለፉት ሁለት ሳምንታት ጠንክረን እንድንሠራ አድርጎናል።

ሰርጌይም ካትቡስትንም እየተጠቀመ ነበር። ሀሳቦችን እና ባህሪያትን ተለዋወጥን፣ እናም ስለዚህ ጉዳይ ተማርኩ ዘገባ በአና ቬሮኒካ ዶሮጉሽ ለብዙ ጥያቄዎቼ እና በወቅቱ እስካሁን ያላጋጠሙኝን እንኳን መልሶች የያዘ ነበር።

ሪፖርቱን ከገመገምኩ በኋላ፣ ሁሉንም መለኪያዎች ወደ ነባሪ እሴቶቻቸው እንደገና ለማስጀመር እና የባህሪ ስብስቡን ካስተካከልኩ በኋላ በጥንቃቄ ለማስተካከል ወሰንኩ። አሁን፣ ስልጠናው ብቻውን 15 ሰዓታት ያህል ፈጅቶብኛል፣ ነገር ግን ደረጃ አሰጣጥን በመጠቀም ከስብስቡ ይልቅ በአንድ ሞዴል የተሻለ ውጤት ማስመዝገብ ችያለሁ።

የባህሪ ማመንጨት

በጋራ ሲስተምስ ውድድር ውስጥ፣ በርካታ ባህሪያት ለሞዴሉ አስፈላጊ እንደሆኑ ይቆጠራሉ። ለምሳሌ፣ auditweights_spark_svd — በጣም አስፈላጊው ባህሪ፣ ነገር ግን ምን ማለት እንደሆነ ምንም መረጃ የለም። በአስፈላጊ ባህሪያት ላይ ተመስርተው የተለያዩ ድምርዎችን ማስላት ጠቃሚ እንደሆነ አስቤ ነበር። ለምሳሌ፣ አማካይ auditweights_spark_svd በተጠቃሚ፣ በቡድን፣ በነገር። ተመሳሳይ ለመረጃ ያለ ስልጠና እና ኢላማ = 1፣ ማለትም አማካይ ሊሰላ ይችላል። auditweights_spark_svd በተጠቃሚው በሚወዷቸው ነገሮች። በተጨማሪም አስፈላጊ ባህሪያት auditweights_spark_svd፣ በርካታ ነበሩ። ከእነዚህ ውስጥ ጥቂቶቹ እነሆ፡

  • የኦዲትዌጅስCtrGender
  • ኦዲትዌጅስሲቲአርሃይ
  • ተጠቃሚየተጠቃሚCounterCreateላይክስ

ለምሳሌ፣ አማካይ እሴት የኦዲትዌጅስCtrGender በ userId አስፈላጊ ባህሪ እንዲሁም አማካይ እሴት ሆኖ ተገኝቷል ተጠቃሚየተጠቃሚCounterCreateላይክስ በ userId+ownerId። ይህ የመስኮችን ትርጉም የመረዳት አስፈላጊነት አስቀድሞ እንዲያስቡ ሊያደርጋችሁ ይገባል።

እንዲሁም አስፈላጊ ባህሪያት ነበሩ የኦዲትዌጅስላይክስ и auditweightsShowsCountአንዱን በሌላኛው መከፋፈል የበለጠ አስፈላጊ የሆነ ባህሪ ያስገኛል።

የውሂብ መፍሰስ

ውድድር እና የምርት ሞዴል በጣም የተለያዩ ተግባራት ናቸው። ውሂብን በማዘጋጀት ጊዜ ሁሉንም ዝርዝሮች ግምት ውስጥ ማስገባት እና በሙከራ ጊዜ ስለ ዒላማው ተለዋዋጭ ማንኛውንም ተራ ያልሆነ መረጃ ከማስተላለፍ መቆጠብ በጣም ከባድ ነው። የምርት መፍትሄ እየገነባን ከሆነ፣ በሞዴል ስልጠና ወቅት የውሂብ ፍሳሾችን ከመጠቀም ለመቆጠብ እንሞክራለን። ነገር ግን ውድድርን ማሸነፍ ከፈለግን፣ የውሂብ ፍሳሾች ሊኖሩን የሚገቡ ምርጥ ባህሪያት ናቸው።

ውሂቡን ከመረመሩ በኋላ፣ የ objectId እሴቶችን ማየት ይችላሉ። የኦዲትዌጅስላይክስ и auditweightsShowsCount ለውጥ፣ ይህም ማለት የእነዚህ ባህሪያት ከፍተኛ እሴቶች ጥምርታ የልጥፉን ልወጣ በማሳያው ጊዜ ካለው ጥምርታ በጣም በተሻለ ሁኔታ ያንፀባርቃል ማለት ነው።

ያገኘነው የመጀመሪያው ዝርፊያ ነበር የኦዲትዌጅስላይክስላይክስማክስ/ኦዲትዌጅስላይክስማክስ.
መረጃውን በቅርበት ብንመረምርስ? በትርኢት ቀን እንመድበዋለን እና የሚከተለውን እናገኛለን፦

የ objectIdየተጠቃሚው መለያauditweightsShowsCountየኦዲትዌጅስላይክስዒላማ (ተወዳጅ)
11123ምናልባት ላይሆን ይችላል
12153ምናልባት አዎ
13164

የመጀመሪያውን እንዲህ አይነት ምሳሌ ሳገኝ እና ትንበያዬ እውን አለመሆኑ ተገለጠ። ነገር ግን፣ በነገሩ ውስጥ ያሉት የእነዚህ ባህሪያት ከፍተኛ እሴቶች ጭማሪ ስላስገኙ፣ ለማግኘት ጥረቱን ወሰድን። auditweightsShowsCountNext и ኦዲትዌጅስላይክስኮይንቀጣይማለትም፣ በሚቀጥለው ጊዜ ላይ ያሉ እሴቶች። ባህሪውን በማከል
(auditweightsShowsCountNext-auditweightsShowsCount)/(auditweightsLikesCount-auditweightsLikesCountNext) በፍጥነቱ ላይ ከፍተኛ ዝላይ ፈጠርን።
ተመሳሳይ የሆኑ ፍሳሾች የሚከተሉትን እሴቶች በማግኘት ጥቅም ላይ ሊውሉ ይችላሉ ተጠቃሚየተጠቃሚCounterCreateላይክስ ለምሳሌ በተጠቃሚ መታወቂያ+ownerId ውስጥ የኦዲትዌጅስCtrGender በ objectId+userGender ውስጥ። ስድስት ተመሳሳይ የተፈቱ መስኮችን አግኝተናል እና በተቻለ መጠን ብዙ መረጃዎችን ከእነሱ አውጥተናል።

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

በምስልና በጽሑፍ ውድድሮች ውስጥ ምንም ፍንጣቂዎች አልነበሩም፣ ነገር ግን በዚያን ጊዜ ካትቡስትን ወደ ነባሪ ቅንብሮቹ መልሼዋለሁ፣ ኮዱን አጽድቼ ጥቂት ባህሪያትን ጨምሬያለሁ። ውጤቱ፡

ዉሳኔፈጣን
ከፍተኛ ከምስሎች ጋር0.6411
ያለ ምስሎች ከፍተኛ0.6297
የሁለተኛ ደረጃ ውጤት0.6295

ዉሳኔፈጣን
ከጽሑፎች ጋር ከፍተኛ0.666
ያለ ጽሑፎች ከፍተኛ0.660
የሁለተኛ ደረጃ ውጤት0.656

ዉሳኔፈጣን
በትብብር ውስጥ ከፍተኛ0.745
የሁለተኛ ደረጃ ውጤት0.723

ከጽሑፍና ከምስሎች ብዙ ጥቅም እንደማናገኝ ግልጽ ሆነልን፣ ስለዚህ በጣም አስደሳች የሆኑትን ሁለት ሀሳቦች ከሞከርን በኋላ ተስፋ ቆርጠን ነበር።

በትብብር ስርዓቶች ውስጥ ተጨማሪ የባህሪ ማመንጨት ምንም ትርፍ ስላላገኘን ወደ ደረጃ አሰጣጥ ዞርን። በኦንላይን ደረጃ፣ የምደባ እና የደረጃ አሰጣጥ ስብስብ ትንሽ ትርፍ አስገኝቷል፣ ይህም የምደባ ስርዓቱን በቂ ስልጠና ባለማግኘቴ ምክንያት ሆነ። የYetiRanlPairwiseን ጨምሮ ከስህተት ተግባራት ውስጥ አንዳቸውም ቢሆኑ LogLossን (0,745 ከ 0,725 ጋር በማዛመድ) ለማዛመድ እንኳን አልተቃረቡም። QueryCrossEntropy ብቸኛው ተስፋችን ሆኖ ቆይቷል፣ ነገር ግን እንዲሰራ ማድረግ አልቻልንም።

ከመስመር ውጭ መድረክ

ከመስመር ውጭ ደረጃ ላይ፣ የውሂብ አወቃቀሩ ተመሳሳይ ሆኖ ቆይቷል፣ ነገር ግን አንዳንድ ጥቃቅን ለውጦች ነበሩ፡

  • የተጠቃሚ መለያ ቁጥር፣ የ objectId፣ የባለቤት መለያ ቁጥር መለያዎች እንደገና በዘፈቀደ ተቀይረዋል፤
  • በርካታ ምልክቶች ተወግደዋል እና ብዙዎቹ እንደገና ተሰይመዋል፤
  • የመረጃው መጠን በግምት 1,5 ጊዜ ጨምሯል።

ከላይ ከተዘረዘሩት ችግሮች በተጨማሪ አንድ ትልቅ ጥቅም ነበረው፤ ቡድኑ RTX 2080TI ያለው ትልቅ አገልጋይ ተመድቦለታል። ለረጅም ጊዜ htop ን ወድጄዋለሁ።
ኤስኤንኤ ሃካቶን 2019

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

እነዚህ ውጤቶች ለድል በቂ ነበሩ፣ ነገር ግን እውነተኛ ፍጥነታችንን ደብቀን ሌሎች ቡድኖችም ተመሳሳይ ነገር እያደረጉ እንዳልሆነ እርግጠኛ መሆን አልቻልንም።

እስከ መጨረሻው ድረስ ታገሉ

የካትቡስት ማስተካከያ

መፍትሄችን ሙሉ በሙሉ ሊባዛ የሚችል ነበር፣ የጽሑፍ እና የምስል ባህሪያትን ጨምረናል፣ ስለዚህ የካትቡስት መለኪያዎችን ማስተካከል ብቻ ነበር የቀረው። ሰርጄይ በሲፒዩ ላይ በትንሽ ድግግሞሽ ሰልጥኗል፣ እኔም በctr_complexity=1 ስልጠና ሰጥቻለሁ። አንድ ቀን ቀርቶናል፣ እና ተጨማሪ ድግግሞሽ ወይም የ ctr_complexity ጭማሪ ብናክል፣ ጠዋት የተሻለ አፈፃፀም ማግኘት እንችላለን፣ ከዚያም ቀኑን ሙሉ እንጫወታለን።

ከመስመር ውጭ መድረክ ላይ፣ በድረ-ገጹ ላይ ከምርጥ ያነሰ መፍትሄ በመምረጥ ውጤቶችን መደበቅ በጣም ቀላል ነበር። ማስረከቢያዎቹ ከመዘጋታቸው በፊት በመጨረሻዎቹ ደቂቃዎች በመሪ ሰሌዳው ላይ ከፍተኛ ለውጦችን ጠብቀን ለመቀጠል ወሰንን።

ከአና ቪዲዮ፣ የሞዴልን ጥራት ለማሻሻል የሚከተሉትን መለኪያዎች መምረጥ የተሻለ እንደሆነ ተምሬያለሁ፡

  • የመማሪያ_ደረጃ — ነባሪው እሴት የሚሰላው በውሂብ ስብስቡ መጠን ላይ በመመስረት ነው። የመማሪያ_ፍጥነት መጨመር የድግግሞሾችን ብዛት መጨመር ይጠይቃል።
  • l2_leaf_reg — የመደበኛነት ኮፊሸንት፣ ነባሪው እሴት 3 ነው፣ ከ2 እስከ 30 መካከል መምረጥ ይመከራል። እሴቱን መቀነስ ከመጠን በላይ መልበስን ያስከትላል።
  • bagging_temperature — በናሙናው ውስጥ ባሉት የነገሮች ክብደት ላይ የዘፈቀደነት ለውጥን ይጨምራል። ነባሪው እሴት 1 ሲሆን ክብደቶቹን ከኤክስፖኔንታል ስርጭት ይመርጣል። ይህንን እሴት መቀነስ ከመጠን በላይ መልበስን ይጨምራል።
  • የዘፈቀደ_ጥንካሬ — በተወሰነ ድግግሞሽ ላይ ያለውን የመከፋፈል ምርጫ ላይ ተጽዕኖ ያሳድራል። የዘፈቀደ_ጥንካሬ ከፍ ባለ ቁጥር፣ ዝቅተኛ ጠቀሜታ ያለው ክፍፍል የመመረጥ እድሉ ከፍ ያለ ነው። የዘፈቀደነት በእያንዳንዱ ቀጣይ ድግግሞሽ ይቀንሳል። እሴቱን መቀነስ ከመጠን በላይ መገጣጠምን ያስከትላል።

ሌሎች መለኪያዎች በመጨረሻው ውጤት ላይ በእጅጉ ያነሰ ተጽእኖ ስላላቸው ለማስተካከል አልሞከርኩም። በ ctr_complexity=1 በጂፒዩ የውሂብ ስብስብ ላይ አንድ የስልጠና ድግግሞሽ 20 ደቂቃዎችን ፈጅቷል፣ እና በተቀነሰው የውሂብ ስብስብ ላይ የተመረጡት መለኪያዎች በሙሉ የውሂብ ስብስብ ላይ ካሉት ምርጥ መለኪያዎች በትንሹ የተለዩ ነበሩ። በመጨረሻም፣ በ10% የውሂብ ስብስብ ላይ ወደ 30 የሚጠጉ ድግግሞሽዎችን እና ከዚያም በጠቅላላው የውሂብ ስብስብ ላይ ወደ 10 የሚጠጉ ተጨማሪ ድግግሞሽዎችን አስኬድኩ። ውጤቶቹ በግምት እንደሚከተለው ነበሩ፡

  • የመማሪያ_ደረጃ ከመደበኛው በ40% ጨምሬዋለሁ፤
  • l2_leaf_reg ያው ተወው፤
  • bagging_temperature и የዘፈቀደ_ጥንካሬ ወደ 0,8 ቀንሷል።

ሞዴሉ በነባሪ መለኪያዎች በቂ ሥልጠና እንዳላገኘ መደምደም ይቻላል።

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

ሞዴልሞዴል 1ሞዴል 2ሞዴል 3ስብስብ
ያለ ማስተካከያ0.74030.74040.74040.7407
ከማስተካከያ ጋር0.74060.74050.74060.7408

ሞዴሉን በፍጥነት መጠቀም አስፈላጊ ካልሆነ የፓራሜትር ምርጫን ባልተሻሻሉ መለኪያዎች ላይ በበርካታ ሞዴሎች ስብስብ መተካት የተሻለ ነው ብዬ ደምድሜያለሁ።

ሰርጌይ ለጂፒዩ አፈፃፀም የውሂብ ስብስብ መጠንን በማመቻቸት ላይ እየሰራ ነበር። በጣም ቀላሉ አማራጭ አንዳንድ መረጃዎችን መቁረጥ ነው፣ ነገር ግን ይህ በብዙ መንገዶች ሊከናወን ይችላል፡

  • የውሂብ ስብስቡ ወደ ማህደረ ትውስታ ውስጥ መግባት እስኪጀምር ድረስ በጣም ጥንታዊውን ውሂብ (የካቲት መጀመሪያ) ቀስ በቀስ ያስወግዱ፤
  • ዝቅተኛ ጠቀሜታ ያላቸውን ባህሪያት ያስወግዱ፤
  • አንድ መዝገብ ብቻ ያላቸውን የተጠቃሚ መታወቂያዎችን ያስወግዱ፤
  • በሙከራው ውስጥ ያሉትን የተጠቃሚ መታወቂያዎች ብቻ ይተዉ።

እና በመጨረሻም፣ ከሁሉም አማራጮች ስብስብ ይፍጠሩ።

የመጨረሻው ስብስብ

በመጨረሻው ቀን ምሽት ላይ፣ የሞዴሎቻችንን ስብስብ ለቀን 0,742 አስገኝተናል። በዚያ ምሽት፣ ሞዴሌን በ ctr_complexity=2 አስኬድኩኝ፣ እና ለ30 ደቂቃዎች ከመሆን ይልቅ ለ5 ሰዓታት አሰልጥኖታል። እስከ 4 ሰዓት ድረስ ማስላት አልጨረሰም፣ እና የመጨረሻውን ስብስብ ፈጠርኩ፣ ይህም በሕዝብ መሪ ሰሌዳ ላይ 0,7433 አስገኝቷል።

ችግሩን ለመፍታት በተለያዩ አቀራረቦች ምክንያት፣ ትንበያዎቻችን ብዙም አልተዛመዱም፣ ይህም በስብስቡ ውስጥ ጉልህ ጭማሪ አስገኝቷል። ጥሩ ስብስብ ለማግኘት የሞዴሉን ጥሬ ትንበያዎች predik(prediktion_type='RawFormulaVal') መጠቀም እና scale_pos_weight=neg_count/pos_count ማዘጋጀት የተሻለ ነው።

ኤስኤንኤ ሃካቶን 2019

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

ሌሎች መፍትሄዎች

ብዙ ቡድኖች የአስተያየት ሰጪ ስርዓት ስልተ ቀመሮችን ተከትለዋል። በዚህ መስክ ባለሙያ ስላልሆንኩ፣ መገምገም አልችልም፣ ነገር ግን ሁለት አስደሳች መፍትሄዎች ጎልተው ወጥተዋል።

  • የኒኮላይ አኖኪን ውሳኔኒኮላይ፣ እንደ Mail.ru ሰራተኛ፣ ለማንኛውም ሽልማት ተወዳዳሪ አልነበረም፣ ስለዚህ ግቡ ከፍተኛውን ፍጥነት ማሳካት ሳይሆን በቀላሉ ሊሰፋ የሚችል መፍትሄ መፍጠር ነበር።
  • የዳኞችን ሽልማት ያሸነፈው ቡድን ውሳኔ፣ በ ይህ ጽሑፍ ከፌስቡክ የተገኘ, በእጅ ሳይሰሩ ምስሎችን በጥሩ ሁኔታ እንድንሰበስብ አስችሎናል።

መደምደሚያ

በትዝታዬ ውስጥ በጣም የተቀረጸው ነገር፡-

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

ኤስኤንኤ ሃካቶን 2019

ለስሜቶች፣ ለእውቀት እና ለሽልማቶች ለአዘጋጆቹ ምስጋና ይግባው።

ምንጭ: hab.com

አስተያየት ያክሉ