Hallo!
Viele der Leser wissen bereits, dass wir ständig versuchen, verschiedene IT-Meisterschaften zu verschiedenen Themen durchzuführen. Allein im letzten Jahr fanden mehr als 10 verschiedene große Wettbewerbe statt (
russischer AI Cup ,
ML Boot Camp ,
Technocub und andere). Mindestens 25.000 Menschen nahmen daran teil und seit 2011 mehr als 150.000.
Wenn Sie gerade davon erfahren haben, dann herzlichen Glückwunsch: Von diesem Moment an wurden Sie Teil einer großen Gemeinschaft von Menschen, die an unseren Wettbewerben teilnahmen und Erfahrungen miteinander austauschten. Bereits jetzt können Sie sich den Telegrammgruppen von Communities zu
künstlicher Intelligenz ,
Sportprogrammierung ,
Hochlastprojekten und -verwaltung ,
maschinellem Lernen und Datenanalyse anschließen . Dies wird Ihnen helfen, sich schnell auf eine ernsthafte Party einzulassen!

Kommen wir also zur Sache. Heute, am 7. Februar, freuen wir uns, die neue Saison der Meisterschaften 2019 zu eröffnen. Und wir beginnen mit dem achten Wettbewerb für maschinelles Lernen und Datenanalyse, der auf der speziellen
ML Boot Camp- Plattform (unserem Kaggle-Analogon) stattfindet -
SNA Hackathon oder ML Boot Camp 8 (wie Sie es bevorzugen).
Die Organisatoren dieser Meisterschaft sind Mail.ru Group und Odnoklassniki. Wir empfehlen nach diesem Artikel, eine
kurze Geschichte des Smartbands zu lesen, in der
Dmitry Bugaychenko über die Algorithmen zum Ranking des Bandes in Odnoklassniki spricht. Es gibt viele nützliche Informationen.
Und jetzt werden wir die Mechanik der Meisterschaft, ihren Zeitplan, ihre Aufgaben und die vorgeschlagenen Daten mitteilen.
Meisterschaftsmechanik
Alles ist einfach. Nach der Eröffnung der Meisterschaft im
ML Boot Camp müssen Sie:
- Lesen Sie die Bedingungen der Aufgaben (sie sind bereits in diesem Artikel enthalten).
- Wählen Sie eine oder mehrere Aufgaben aus, die Sie lösen möchten.
- Daten herunterladen;
- Modelle erstellen und Vorhersagen treffen;
- Laden Sie Ihre Antworten (reguläre Datei) in das Testsystem hoch.
Jeden Tag können Sie Ihre Antwortdateien bis zu fünf Mal zu uns hochladen. Das System überprüft nur die Antworten für 50% der Stichprobe (öffentlich), daher sind die Ergebnisse vorläufig. Die endgültigen Ergebnisse für den Rest der Stichprobe (privat) werden den Teilnehmern nach Beendigung des Wettbewerbs angezeigt.
Wenn Sie noch nie an solchen Wettbewerben teilgenommen haben, gibt es keinen Grund zur Sorge. Lesen Sie den
Artikel und Sie werden Erfolg haben :)
Zeitplan
Die Meisterschaft wird in zwei Phasen ausgetragen:
- online - vom 7. Februar bis 15. März;
- offline - vom 30. März bis 1. April.
Nach dem 15. März werden die Zwischenergebnisse zusammengefasst und 15 Personen der obersten Führungskräfte für jede der Aufgaben erhalten Einladungen zur zweiten Phase, die im Moskauer Büro der Mail.ru Group stattfinden wird. Darüber hinaus erhält die Einladung zur Endphase Ende Februar drei Personen, die an der Spitze der Rangliste stehen.
Aufgabenbeschreibung
Für den SNA Hackathon-Wettbewerb wurden Protokolle für die Anzeige von Inhalten offener Gruppen in Benutzer-Newsfeeds für Februar bis März 2018 gesammelt. Das Test-Set hat die letzten anderthalb Märzwochen versteckt. Jeder Protokolleintrag enthält Informationen darüber, was und wem er angezeigt wurde und wie der Benutzer auf diesen Inhalt reagiert hat: Setzen Sie "Klasse", kommentieren, ignorieren oder aus dem Feed ausblenden.
Das Wesentliche des Problems besteht darin, die Kandidaten für jeden Benutzer des Testsatzes zu bewerten und so viele wie möglich diejenigen zu ermitteln, die die „Klasse“ erhalten.
Normalerweise gaben wir eine Aufgabe, aber diesmal beschlossen wir, drei auf einmal zu geben. Sie müssen nicht alle lösen, nur eine reicht aus. Da der Benutzer-Feed verschiedene Arten von Inhalten kombiniert, sind bei der Einstufung Fähigkeiten aus verschiedenen Bereichen erforderlich - Computer Vision, Arbeiten mit Texten und Empfehlungssystemen.
Im Rahmen der Online-Phase bieten wir drei Datensätze an, von denen jeder nur einen Informationstyp enthält: Bild, Text oder Daten zu verschiedenen Attributen für die Zusammenarbeit.
Erst in der zweiten Phase, in der Experten auf verschiedenen Gebieten zusammenkommen, wird der allgemeine Datensatz angezeigt, sodass Sie Punkte für die Synergie verschiedener Methoden finden können.
Nachdem die Meisterschaft auf der Plattform geöffnet wurde, sehen Sie eine Beschreibung der Aufgaben und erhalten die Möglichkeit, die für die Teilnahme erforderlichen Daten herunterzuladen.
Datenbeschreibung
Die Informationen werden im
Apache Parquet- Format dargestellt, das das Hauptformat für das Spark-Framework ist. Um mit diesem Format aus Python arbeiten zu können, empfehlen wir die Verwendung der
Apache Arrow- Bibliothek. Zum besseren Verständnis wurden Baselines im
GitHub- Repository veröffentlicht. Benutze es!
Im Trainingssatz werden die Daten nach Tag angeordnet und innerhalb des Tages nach Benutzer-ID in 6 Teile unterteilt (derselbe Benutzer fällt immer in den gleichen Teil). Dieses Layout ermöglicht es den Teilnehmern, nicht alle Daten gleichzeitig zu analysieren, sondern sich auf bestimmte Tage und / oder Untergruppen von Benutzern zu beschränken.
Die Trainingssätze sind in drei getrennte Gruppen unterteilt: mit Texten, mit Bildern und mit Funktionen für die Zusammenarbeit. In jeder Gruppe enthalten die Daten die folgenden Felder:
instanceId_userId
- Benutzer-ID (anonymisiert);instanceId_objectType
- Objekttyp;instanceId_objectId
- Objektkennung (anonymisiert);feedback
- ein Array mit Arten von Benutzerreaktionen (das Vorhandensein eines Liked-Tokens im Array zeigt an, dass das Objekt eine "Klasse" vom Benutzer erhalten hat);audit_clientType
- Der Plattformtyp, bei dem sich der Benutzer angemeldet hat.audit_timestamp
- Zeit, zu der das Band erstellt wurde;metadata_ownerId
- Autor des angezeigten Objekts (anonymisiert);metadata_createdAt
- Erstellungsdatum des angezeigten Objekts.
Verwandte Objekte im Apache Parquet-Format werden zusätzlich für Objekte aus dem Trainingstext bereitgestellt:
objectId
- Objektkennung;lang
- Textsprache (basierend auf dem Odnoklassniki Sprachdetektor);text
- Rohtext, der dem Objekt zugeordnet ist;preprocessed
- eine Reihe von Token, die nach dem Filtern von Interpunktion und Stemming erhalten wurden.
Die Daten für die Rangfolge nach Bildern enthalten zusätzlich ein
ImageId
Array-
ImageId
mit MD5-Hashes, die Bildobjekten zugeordnet sind. Bildkörper sind abhängig vom ersten Buchstaben des Hash in separaten Teerdateien angeordnet.
In dem Block mit kollaborativen Merkmalen werden verschiedene zusätzliche Informationen dargestellt:
audit_*
- erweiterte Informationen zum Kontext des audit_*
;metadata_*
- erweiterte Informationen über das Objekt selbst;userOwnerCounters_*
- Informationen zu früheren Interaktionen zwischen dem Benutzer und dem Autor des Inhalts;ownerUserCounters_*
- Informationen zu früheren Interaktionen zwischen dem Autor des Inhalts und dem Benutzer;membership_*
- Informationen über die Mitgliedschaft des Benutzers in der Gruppe, in der der Inhalt veröffentlicht wird;user_*
- detaillierte Informationen über den Benutzer;auditweights_*
- Eine große Anzahl von Laufzeitattributen, die vom aktuellen System abgerufen werden.
Die Strukturen von Testsätzen entsprechen der Struktur von Trainingssätzen, sind jedoch nicht nach Tag angelegt und enthalten keine
feedback
.
Punktzahl
Meisterschaftsteilnehmer müssen das Band so sortieren, dass Objekte mit einer hohen Wahrscheinlichkeit von "Klasse" oben sind. Die Sortierung wird für jeden Benutzer einzeln durchgeführt, wonach der Text der Übermittlung des folgenden Formulars gebildet wird (das Format entspricht dem Export aus dem Pandas-Datenrahmen mit Spalten vom
int[]
int
und
int[]
):
User_id_1,"[object_id_1_1, object_id_1_2]" User_id_2,"[object_id_2_1, object_id_2_2, object_id_2_3]"
Die Übermittlung muss für jeden Benutzer der Testsuite eine Zeile enthalten, und die Zeilen sind nach aufsteigender ID sortiert. Objekte für jeden Benutzer sollten in absteigender Reihenfolge ihrer Relevanz sortiert werden.
Bei der Bewertung der Übermittlung für jeden Benutzer wird seine persönliche ROC-AUC berechnet, wonach der Durchschnitt für alle Benutzer berechnet und mit 100 multipliziert wird.
Geschenke
Die zweite Phase findet im Teamformat statt und die Gewinner erhalten wertvolle Geschenke, Sticker-Packs und andere Preise:
- 300.000 Rubel an das Team, das den ersten Platz gewonnen hat;
- 200 000 Rubel an das zweitplatzierte Team;
- 100 000 Rubel an das Team, das den dritten Platz belegte;
- 100.000 Rubel an das Team, das die Lösung mit den besten Aussichten für die Umsetzung vorgeschlagen hat, so die Jury.
Darüber hinaus erhalten die Gewinner der Online-Phase (Top 33 der Führungskräfte für jede Aufgabe) coole T-Shirts.
Bonus! Der beste und aktivste Teilnehmer in der Online-Phase erhält die PlayStation / XBox zur Auswahl. Die Kriterien sind einfach: Es gibt viele Diagramme im Chat-Fall, interessante Betrügereien auf und ab und etwas anderes. Der Gewinner wird durch Volksabstimmung gewählt.
Registrierung und Community
Es ist nicht erforderlich, sich speziell für die Teilnahme am Wettbewerb anzumelden. Es reicht aus, einmal auf der
Plattform registriert zu sein, und alle Wettbewerbe und Sandkästen vergangener Meisterschaften stehen Ihnen sofort zur Verfügung.
Verschwenden Sie nicht Ihre Zeit. Die Community wartet auf neue Helden.
Willkommen !