VKCup 2020 Stufe I. Ein langer Weg



Heute werden wir den VkCup 2020-Wettbewerb und die Aufgabe der ersten Qualifikationsphase betrachten. Die Jungs von Singer haben versprochen, dass es auf allen Etappen schwierig, aber interessant sein wird. Und was wird eigentlich noch benötigt?

Wie Sie wissen, ist der Wunsch nach Spitzenleistungen, die eigenen Fähigkeiten auf eine Schärfe zu bringen, die Damaststahl ähnelt, jedem Spezialisten auf jedem Gebiet eigen. Beispiele für diese Masse. Aus den farbenfrohen Gemälden von Künstlern, von denen jeder einen Teil des Lebens verbrachte (ich würde sogar den besten Teil davon sagen), die ziellos bei gesellschaftlichen Ereignissen verschwendet werden konnten. Vor keygen-Programmen - Softwareaktivatoren, von denen jeder 8-Bit-Musik, einen Aktivierungsalgorithmus und eine Animation enthält, die sorgfältig und sorgfältig in eine Datei gepackt wurden und nur einige zehn Kilobyte messen. Kunst, was auch immer man sagen mag.

Und nein, dies ist kein weiterer Artikel über Selbstentwicklung, ehrlich, ehrlich. Ich in der Tat, was. In jedem von uns besteht der Wunsch, nicht triviale Probleme auf unserem Gebiet zu lösen. Darüber hinaus ist der Wunsch, dies zu tun, besser als die meisten anderen. Es ist natürlich. Und es scheint mir, dass Wettbewerbe für maschinelles Lernen eine großartige Gelegenheit dafür sind. Manchmal ist es notwendig, dem Geist des Wettbewerbs Freiheit zu geben.

Wir werden VKCup 2020 betrachten, die Meisterschaft für Datenanalyse von VKontakte, nämlich ihre drei Etappen, mit dem Finale in St. Petersburg. Beginnen wir mit dem ersten Qualifier. Nun, es gibt Zeit, und Petersburg, obwohl es eine kulturelle Hauptstadt ist, mag keine Verspätungen und Schönheitsfehler. Deshalb bemühen wir uns, die Angelegenheiten so schnell wie möglich zu erledigen, Sir, der Gentleman, von dem der Taxifahrer nicht erwartet wird, und daher ein langer Weg.



Ich denke, dass viele bereits auf NLP-Aufgaben gestoßen sind. In diesem Fall bestand die Aufgabe der ersten Qualifikationsphase, die sich selbst zur Aufgabe machte, 256 Personen auszuwählen, die die zweite durchlaufen hatten, in einer Analyse der Probleme des Clover-Spiels, nämlich der Vorhersage, welche der Fragen von professionellen Redakteuren und welche von normalen Benutzern vorgeschlagen wurden.

Die Datengröße beträgt ungefähr 40.000 Zeilen, von denen 10.000 ein Testdatensatz sind, anhand dessen die Qualität des Modells geschätzt wird, und die anderen 30.000 der verbleibende Datensatz sind. Die Testmetrik ist AUC ROC - der Bereich unter der Fehlerkurve.

Die Daten sahen wie folgt aus,



wobei ID die Kennung der Frage ist. Antwort ist eine binäre Variable, deren Wert vorhergesagt werden muss (1 - die Frage wurde vom Editor vorgeschlagen, Null 0 - vom Benutzer). Frage - die Frage selbst.

Es scheint, dass die Aufgabe recht einfach ist, aber alles ist weit davon entfernt. Standardansätze wie Word2Vec, BERT und andere neue NLP-Modelle liefern eine relativ niedrige Qualität von etwa 0,7, was es nicht einmal in die ersten hundert schaffen würde. Denken Sie daher daran, dass der Teufel wie die LEGO-Leute im Detail lebt, den Datensatz genauer betrachtet und eine Lösung entwickelt, die relativ effizienter ist.

Während der ersten EDA können Sie zunächst feststellen, dass Benutzer häufig atypische Zeichen verwenden, Wörter in Großbuchstaben schreiben, manchmal nicht mit einem Großbuchstaben am Satzanfang, Fragezeichen vergessen und seltsame Anführungszeichen verwenden. Sie kopieren auch die Fragen der Redakteure und geben sie als ihre eigenen weiter. Und andere interessante Funktionen.

Beginnen wir mit der Grundlinie. Mit dem TF-IDF-Maß (Term Frequency - Inverted Document Frequency) erhalten wir die Sparsematrix, die wir dann in den Gradienten-Boost einspeisen.
Nur eine Definition: TF-IDF ist ein statistisches Maß, mit dem die Bedeutung eines Wortes im Kontext eines Dokuments bewertet wird, das Teil einer Sammlung von Dokumenten oder Korpus ist. Das Gewicht eines Wortes ist proportional zur Häufigkeit der Verwendung des Wortes im Dokument und umgekehrt proportional zur Häufigkeit der Verwendung des Wortes in allen Dokumenten der Sammlung.

Um die Umschulung des Modells zu reduzieren, reduzieren wir die maximale Anzahl von Token und erstellen die anfängliche Parametermatrix, die aus einer Kombination von zwei kleineren Token besteht: Ein Teil ist die TF-IDF-Matrix, in der durch Leerzeichen getrennte Symbolsequenzen als Token fungieren, tatsächlich sind dies Wörter, und der andere Der Teil ist eine Matrix, in der Symbolsequenzen einer bestimmten Länge als Token fungieren.



Es sieht ziemlich gut aus, kann und sollte aber besser sein. Dies ist der erste Teil der Pipeline. In diesem Fall ist „P“ eine Abkürzung für „Public“. Dies ist ein Indikator, der angibt, wie viel das Modell auf dem offenen Teil der Testprobe erzielt hat. Und "F" ist eine Abkürzung für "Final", ein Ergebnis für den verborgenen Teil der Daten, die nach dem Ende des Wettbewerbs veröffentlicht wurden.

Als Nächstes fügen wir einen Datendatensatz hinzu, der nach den Regeln im Allgemeinen nicht verboten ist. Und was nicht verboten ist, ist dementsprechend erlaubt. Im Internet finden Sie eine Reihe von Datensätzen mit Quizfragen. Wenn wir sie herunterladen und als Benutzerfragen markieren.



Diese Idee, dies ist ein zweischneidiges Schwert und Fragen der Zwietracht. Wenn Sie Fragen aus einem speziellen Buch beantworten, weist das Modell eine Dissonanz auf. Einerseits ist der Schreibstil dem Editorial sehr ähnlich, andererseits haben listige Benutzer sie lange Zeit mit privaten Nachrichten des öffentlichen Spiels „Clover“ gespammt. Daher werden wir sie nicht verwenden, sondern das Modell vor einer bipolaren Störung der Modellierbarkeit schützen.

Wie ich bereits sagte, haben Benutzer einige Nachlässigkeiten bei der Formatierung ihrer Fragen, und deshalb werden wir sie mit regulären regulären Ausdrücken extrahieren. Wir werden reguläre Ausdrücke schreiben, um das Vorhandensein eines Fragezeichens zu überprüfen, verschiedene Arten von Anführungszeichen zu identifizieren und nach Großbuchstaben zu suchen ,, ,. Und wir werden das Modell auf diesen Zeichen neu trainieren. Darüber hinaus werden die vorherigen Vorhersagen ein zusätzliches Zeichen sein. Dies hilft, die Vorhersagen des vorherigen Modells zu korrigieren.

Daher wurde ein zweistufiges Modell implementiert, bei dem die Ergebnisse der Erhöhung der spärlichen Matrix von TF-IDF durch Erhöhung der tabellarischen Attribute angepasst wurden, die unter Verwendung regulärer Ausdrücke erhalten wurden.



Dies war genug für den 5. Platz in einer privaten Rangliste von 318. Etwas konnte korrigiert und optimiert werden, aber die Zeit lief davon. Auf die eine oder andere Weise reicht dies aus, um noch weiter zu gehen. Und übermäßiger Perfektionismus führt zu Nervosität. Auf jeden Fall bis später, liebe ML, bleib ruhig und bleib dran. Weiter wird es interessanter ...

→ Der Code im Github-Repository

All Articles