Wettbewerb VK Sup. Track ML. 4. Platz. Wie?

Bild

Bei diesem Wettbewerb, der im Rahmen der Qualifikationsrunde von VK up 2020 , Track ML , stattfand, musste der Anteil potenzieller Zuschauer vorhergesagt werden, die Anzeigen auf mehreren Werbeplattformen mehrmals sehen wĂŒrden: 1,2,3 in der Zukunft.

Dies war kein klassischer Wettbewerb fĂŒr das Senden endgĂŒltiger Vorhersagen an bekannte Testdaten, sondern eine Vorhersage fĂŒr völlig unbekannte Daten, die an das auf der Wettbewerbswebsite gestartete Docker-Modell ĂŒbermittelt wurden.

Im Allgemeinen gleicht eine solche Lösung die Chancen der Teilnehmer aus und ermöglicht es nicht, dass diejenigen, die gerne auf den Test gucken, den Trainingsdatensatz mit ihnen anreichern und das Modell an die Verteilung der Testdaten anpassen. Hier waren alle gleichberechtigt, da nicht klar ist, was in den Daten enthalten sein könnte: Junk-Daten, sporadische Ausreißer, ungĂŒltige Begrenzer usw. Aber all diese Nuancen lassen uns gleichzeitig ĂŒber den Umgang mit Ausnahmen nachdenken.

Bei diesem Wettbewerb habe ich einen unauffÀlligen 4. Platz belegt und möchte sagen, wie es möglich war.

DatenĂŒbersicht


Die anfÀnglichen Daten wurden in der folgenden Form dargestellt:

  1. users.tsv – : , , . , , , . ( ), .
  2. history.tsv — "-", ( ) . , , .
  3. Die Datei validate.tsv ist eine Validierungsdatei zum Trainieren des Modells. Sie enthĂ€lt lediglich Daten zu welchem ​​Zeitintervall und zu welchem ​​Preis eine Anzeige fĂŒr eine bestimmte Zielgruppe (Plattform und Benutzer) geschaltet wurde. Benutzer und Websites wurden in Zeichenfolgenform des Formulars (1,5,7,3,14,6) angegeben.
  4. Datei validate_answers.tsv - Eine Antwortdatei besteht aus drei Spalten: Wie viel Prozent (Werte von 0 bis 1) sieht das Publikum 1, 2, 3 Mal klassifiziert aus. Dementsprechend nehmen diese Sequenzen nicht zu.

Der Zweck des Wettbewerbs : Vorhersage von drei WertesĂ€tzen fĂŒr neue Daten aus der Zukunft (im Format der Datei validate.tsv ) - welcher Anteil des Publikums wird eine Anzeige 1,2, 3-mal sehen.

Weitere Details zur Aufgabe finden Sie auf der Website des Wettbewerbs .

PrÀdiktoren


Die letzten PrÀdiktoren, die ich verwendet habe, sind zwei Komplexe:

  • PrĂ€diktoren basierend auf der Geschichte und ihrem Vergleich mit neuen Daten
  • PrĂ€diktoren nur auf Daten aus der Zukunft

Unter dem ersten Komplex wurden basierend auf der Verlaufsdatei grundlegende Statistiken fĂŒr die gruppierten Benutzer-Standort- Paare und anschließend deren Aggregation zum Benutzer-Standort- Paar in den Validierungs- und Testdateien generiert . Darauf folgte die Auswahl von PrĂ€diktoren auf unterschiedliche Weise - sowohl basierend auf der HĂ€ufigkeit der Verwendung von PrĂ€diktoren in den Phasen der Partitionierung und Verwendung im Modell selbst als auch auf Validierungen von oben nach unten und von unten nach oben. Trotz der unterschiedlichen Auswahlschemata kam es im Allgemeinen auf einen Satz von PrĂ€diktoren an, und infolgedessen gab es sieben davon.

Die Interpretation der PrĂ€diktoren des zweiten Komplexes (ĂŒberraschenderweise waren es auch sieben) ist im Allgemeinen viel einfacher:

1. Delta- Zeitunterschied. Ist es logisch? Logischerweise: Je grĂ¶ĂŸer das Intervall, desto wahrscheinlicher sind die Ansichten. NatĂŒrlich gibt es keine direkte AbhĂ€ngigkeit, aber physikalisch sollte es so sein, außerdem ist dies einer der stĂ€rksten PrĂ€diktoren, wenn wir sie getrennt betrachten.

2. Delta2 ist ebenfalls ein Zeitunterschied, wird jedoch pro Tag umgerechnet ( dh eine ganzzahlige Division durch 24). Das heißt, wir verwandeln eine lineare AbhĂ€ngigkeit in eine stĂŒckweise. Die Idee hier ist einfach: Wir unterscheiden nicht zwischen Stunden, aber sehr lange Intervalle (Tage) setzen ihren eigenen Trend.

3. cpm - der Preis selbst, Ă€hnlich: Je teurer der Preis, desto wahrscheinlicher ist es, dass es wiederum keine direkte AbhĂ€ngigkeit gibt, aber beim „Flirten“ mit anderen PrĂ€diktoren, die auf der Geschichte basieren, wird die AbhĂ€ngigkeit klar verfolgt.

4-7. Dies sind die SĂŒnden und Kosten der Start- und Endzeiten der Anzeigen, die auch in die 24-Stunden-Zeitleiste ĂŒbersetzt werden. Die Verwendung dieser Funktionen ermöglicht es Ihnen im Gegensatz zur linearen Zeit, Zeitintervalle zu berĂŒcksichtigen, die den Tag durchlaufen. Die Verwendung dieser PrĂ€diktoren ergab sofort eine Verbesserung von 1,5 Prozentpunkten.

Metrik und Antwort


Die von den Organisatoren vorgelegte Metrik fĂŒr das geglĂ€ttete mittlere ProtokollgenauigkeitsverhĂ€ltnis (im Folgenden: SMLAR ).

Bild

Wenn die erste Antwort in dem Anteil der Zielgruppe dargestellt wird, die die Anzeige 1,2,3-mal angesehen hat, dh in den Werten im Bereich [0,1].

Übrigens gibt der KDPV das Verhalten dieser Metrik oder vielmehr nicht der gesamten Metrik an, sondern ihres Teils ( MAE fĂŒr den Logarithmus der Vorhersageverzerrungen) fĂŒr alle Kombinationen der Vorhersage und des wahren Werts ĂŒber den gesamten Bereich [0,1].

Wenn Sie sich die Formel der Metrik genau ansehen, dann: Diese Metrik entspricht zum einen in etwa dem geometrischen Mittelwert der VerhÀltnisse der Vorhersagen und dem wahren Wert (mit Verzerrung), der deutlich besser ist als der arithmetische Mittelwert (aufgrund des niedrigeren Endergebnisses). Wenn wir dagegen den Exponenten weglassen, der sich bei niedrigen Werten fast wie der Exponent seines Grades verhÀlt, wird die Metrik durch den Logarithmus der Antwort mit einem Offset in MAE umgewandelt. Um ideologisch korrekte Modelle zu konstruieren, war es daher erforderlich, die anfÀngliche Antwort mit einem Versatz und die Verlustfunktion, in der es einen Logarithmus in expliziter Form gibt, zu verwenden, oder umgekehrt zuerst den Logarithmus der Versatzantwort und eine lineare Verlustfunktion ( MAE , eps) zu verwenden) Angesichts meines Modells (in dem die Verlustfunktion nicht explizit angegeben ist) habe ich jedoch die optimale Transformation der Antwort basierend auf den Ergebnissen des Validierungsmodells ausgewÀhlt.

Ich habe die folgenden Antwortoptionen in Betracht gezogen - ursprĂŒngliche Freigaben, Logarithmus der Freigaben, Übergang zu absoluten Werten der Anzahl der Benutzer, deren Logarithmus mit unterschiedlichen Offsets (hier wurde versucht, einen einheitlichen Offset zu verwenden, wenn zu absoluten Werten gewechselt wird, da der Offset von 0,005 fĂŒr die Freigaben angegeben ist und das Publikum war unterschiedlich, von 300 bis 2500, daher sollte der Offset im Bereich von 1 bis 12 liegen, aber ich habe nur die Werte 1 und 10) und die Wurzel des absoluten Werts der angezeigten Personen ĂŒberprĂŒft.

Bild

Das obige Bild zeigt die Ergebnisse fĂŒr zwei Modelle, die fĂŒr eine unterschiedliche Reaktion trainiert haben: die anfĂ€nglichen Zielgruppenanteile und die absolute Anzahl der Teilnehmer.

Das obere Diagramm zeigt die sortierten Werte der tatsĂ€chlichen Antwort (nach Anteilen der ersten Ansicht) und die vorhergesagten Werte fĂŒr beide Modelle. Es ist sofort klar, dass die meisten Antwortwerte recht klein sind, sodass der Medianwert etwa 5% betrĂ€gt, und dies gilt nur fĂŒr den ersten Scan (fĂŒr den zweiten Scan betrĂ€gt der Median bereits weniger als 1% und fĂŒr den dritten Scan fast 0% und fĂŒr diese Metrik kleine Werte und Fehler sie sind sehr unangenehm). In diesem Diagramm ist auch deutlich zu erkennen, dass das Modell nach absoluten Werten qualitativ besser ist, die Streuung der SchĂ€tzungen recht gering ist und trotz der Tatsache, dass die Abweichungen bei kleinen Werten in der Grafik fast nicht sichtbar sind, die Fehler bei diesen kleinen Werten stark beeinflusst werden Endergebnis. Gleiches gilt fĂŒr KDPVsehr starke KrĂŒmmung bei niedrigen Werten, insbesondere nahe Null.

Das Durchschnittsdiagramm zeigt den Fehler jeder sortierten Vorhersage, starke Fehler bei kleinen Werten und deren Abnahme mit zunehmenden Antwortwerten sind sichtbar.

Im unteren Diagramm wird bereits das Diagramm der direkt anvisierten Metrik mit der akkumulierten Summe fĂŒr alle sortierten Werte erstellt. Was sind die Schlussfolgerungen aus all dem? Die erste ist, dass die ausgewĂ€hlte Antwort die Ergebnisse des Modells stark beeinflusst, aber mehr dazu, die zweite Schlussfolgerung, besondere Aufmerksamkeit gilt kleinen Werten, insbesondere nahe Null. Es ist offensichtlich, dass Modelle nicht immer in der Lage sind, eine reine Null vorherzusagen, weshalb Korrekturen erforderlich sind. Und Fehler bei großen Werten sind nicht so wichtig, zum einen sind sie relativ klein, und zum anderen ist der prozentuale Fehler bei großen Werten gering, und gleichzeitig wird ein minimaler Gesamtbeitrag zur Metrik geleistet.

Infolgedessen war nach den Ergebnissen zahlreicher Experimente der Gewinner mit einem klaren Spielraum die Antwort - die Wurzel der absoluten Werte der Benutzer. Gleichzeitig haben bei verschiedenen Vorhersagen (nach 1, 2, 3 Ansichten) manchmal auch Modelle mit einem Logarithmus von Absolutwerten gewonnen, was auf die eindeutige PrĂ€valenz von 0 in den Antworten zurĂŒckzufĂŒhren ist, und infolgedessen war der Logarithmus mit einer gewissen Verzerrung besser. Aber wenn Sie es mitteln, dann zeigte eine einfache Wurzel ohne Verzerrung gute stabile Ergebnisse, sodass ich die Entscheidung nicht komplizieren wollte, sondern bei einer einfachen einheitlichen Methode aufhören wollte - nur der Wurzel der Menschen.

Was ist der Grund fĂŒr die Tatsache, dass der Übergang zu Menschen das Ergebnis im Vergleich zu den Aktien signifikant verbessert (fast zweimal)?

Anscheinend ist die Tatsache, dass wir uns Menschen zuwenden, den Anteil mit dem Publikum multiplizieren oder alle PrĂ€diktoren durch dasselbe Publikum teilen, in die Dimension relativ zu „einer Person“ gehen und bedenken, dass die Grundlage meines Modells die Regression ist. Die endgĂŒltige SchĂ€tzung ist eine Art gewichtete WahrscheinlichkeitsschĂ€tzung in Bezug auf jeden PrĂ€diktor. Es ist möglich, dass, wenn wir nur einen Teil der PrĂ€diktoren fĂŒr das Publikum normalisieren, zum Beispiel von den PrĂ€diktoren der ersten Gruppe (zum Beispiel die Summe ĂŒber alle Paare), diese Normalisierung dadurch die Dimensionen aller PrĂ€diktoren einem einzigen Berichtssystem (pro Person) und der endgĂŒltigen Regression nĂ€her bringt wĂ€re seine Antwort nichts anderes als die durchschnittliche gewichtete Summe der BeitrĂ€ge jedes PrĂ€diktors (die eine Person charakterisieren) zur Gesamtwahrscheinlichkeit des Sehens, dann wĂ€re das Ergebnis vielleicht besser.Aber zum Zeitpunkt der Entscheidung des Wettbewerbs nĂ€herte ich mich nicht von dieser Seite und arbeitete ausschließlich mit einer transformierten Antwort.

Modell


TatsĂ€chlich musste dieser Abschnitt höher gelegt werden, da wir aufgrund dieses Modells die Art der Antwort und die dafĂŒr verwendeten PrĂ€diktoren auswĂ€hlen mussten (das Modell wurde an die Daten angepasst) und es auf die eine oder andere Weise möglich war, mit verschiedenen PrĂ€diktoren einen akzeptablen zu erreichen das Ergebnis ist ungefĂ€hr 15%. Ich wollte jedoch, dass es im Durchschnitt eine Rechtfertigung fĂŒr die Auswahl spezifischer PrĂ€diktoren gibt. Daher wurden Kombinationen von PrĂ€diktoren zur Validierung ausgewĂ€hlt.

Ich habe ein Modell aus einer Familie von RegressionsmodellbĂ€umen verwendet, nĂ€mlich das kubistische Modell ( Modell von 1992!) Und dessen Implementierung in das gleichnamige Paket in R.. Das Endergebnis ist vielmehr das geometrische Mittel zweier SĂ€tze von Modellen, von denen jeder aus drei getrennten Modellen bestand, jedoch in Kaskade: Die Vorhersage des vorherigen Modells (fĂŒr 1 Ansicht) wurde als PrĂ€diktor fĂŒr das zweite und dritte Modell und die endgĂŒltige Vorhersage fĂŒr die zweite Ansicht als PrĂ€diktor fĂŒr das dritte Modell verwendet Modell. Beide Modellpaare unterschieden sich geringfĂŒgig in PrĂ€diktoren und Zwischenanpassungen, und ihr geometrisches Mittel wurde auf der Grundlage des gesunden Menschenverstandes (also Validierungen mit einem öffentlichen Kurs) verwendet, und die Bedeutung ist einfach: Wie ich oben schrieb, wird besonderes Augenmerk auf Nullvorhersagen und im Allgemeinen auf Minimal gelegt und das geometrische Mittel ist genau das, was es tut: Es verschwindet die Vorhersage, wenn eines von ihnen bereits Null ist (und dies ist logisch, wenn eines der Modelle Null zeigte, also lass es bleiben,als wir die Vorhersage von Null "verzögern" werden).

Und dank der Kaskade von Modellen „verstand“ das Modell indirekt (seit Regressionen), dass jede nachfolgende Antwort an dieser zuvor vorhergesagten Antwort der vorherigen SchĂ€tzung „festhĂ€lt“, und die verbleibenden PrĂ€diktoren korrigieren die Antwort, die nicht mehr als die vorherige sein sollte. Ich habe auch drei separate Modelle getestet, die die Antworten einzeln vorhersagten. Das Ergebnis war aufgrund der FĂŒlle von Nullen im zweiten und dritten Scan schwĂ€cher, die Familie der Regressionen konnte nicht ganz auf 0 gehen, und wenn wir der vorherigen SchĂ€tzung einen „Leitfaden“ hinzufĂŒgen, der bereits 0 oder nahe daran liegt, fĂ€llt auch die resultierende Familie der Regressionen in die NĂ€he dieser bewertet und passt nur die Reaktion auf die zweite und dritte Anzeige an.

Was ist gut an diesem Modell?

Als ich die Aufgabe sah, erinnerte ich mich sofort an dieses Modell, da es bei einem der vorherigen Wettbewerbe in einem vergleichbaren Problem (lineare Beziehungen und deren Korrekturen) auch eines der besten war, und im Allgemeinen haben wir hier ziemlich lineare Daten, es gibt eine offensichtliche Beziehung zwischen den GrĂ¶ĂŸen Ansichten (die zweite ist kleiner als die erste, die dritte ist kleiner als die zweite), es gibt wenig Daten - nur 1008 Beobachtungen, es gibt eine kleine Anzahl von PrĂ€diktoren, wahrscheinlich eine Art linear gebrochene AbhĂ€ngigkeiten. DarĂŒber hinaus ist dieses Modell sehr schnell, die Konstruktion dauerte einige Sekunden, so dass es fĂŒr sie praktisch war, viele Hypothesen zu testen. Und doch hat sie keine Hyperparameter (mit Ausnahme der Nachbarn (ein anderer Parameter ist eine Korrekturprognose), die ich nicht verwendet habe), an denen ich mich weiterbilden konnte.

Wie ist die Vorhersage in diesem Modell fĂŒr einen Baum?
, , 100 ( , , 10-20 ), , , , : ( ), , ( , ) .

, , .

Anpassungen


DarĂŒber hinaus wurden kleine Anpassungen von Vorhersagen verwendet, nĂ€mlich: Beim Wechsel von der absoluten Anzahl von Personen zu ihren Anteilen traten möglicherweise Situationen mit sehr kleinen Werten (positiv, etwas mehr als 0 oder mehr als 1) auf, und wenn bei Werten ĂŒber 1 eine grĂ¶ĂŸere Rolle spielte, spielte ihre Anpassung keine grĂ¶ĂŸere Rolle (wahrscheinlich gab es nur wenige solcher FlĂŒge, und wenn ja, dann nicht signifikant), aber bei kleinen Werten war dies relativ kritisch. Mit der BegrĂŒndung wurde angenommen, dass, wenn ich zum Beispiel 1 Person (oder 0,5 Personen, Rundung wurde nicht durchgefĂŒhrt) voraussage, dann mit einer maximalen Zielgruppe von 2500 (dies ist bei den bekannten Daten im Zug völlig unbekannt, was bei den Testdaten tatsĂ€chlich der Fall ist) 0,0004 (ĂŒbrigens und im Zug ist der Mindestwert 0,0004),Dies bedeutet, dass irgendwo in der NĂ€he dieses Werts niedrigere Werte auf 0 gesetzt werden mĂŒssen. Da meine Modelle in einer Kette aufgebaut sind, hĂ€ngt die Konstruktion des nĂ€chsten Modells und seine Vorhersagen von der vorhergesagten Null usw. ab. es hat ziemlich viel beeinflusst.

Es war nicht sehr sinnvoll, einen Schwellenwert fĂŒr die Validierung auszuwĂ€hlen (da sich das Modell ohnehin an diese Daten anpasst und ich die Verteilung kenne), also habe ich einen Blick auf die Öffentlichkeit geworfen (fĂŒr einige ausgewĂ€hlte Werte), aber am Ende bin ich zu einem der drei Modelle gegangen eine schöne Rundungsschwelle von 0,0005 und fĂŒr die zweite theoretische 0,0004.

Die Anpassung von oben war einfacher, Werte von mehr als 0,95, die in 0,95 zu zahlen waren, 0,95 wurden basierend auf dem maximalen Anteil der mit a verwendeten Testdaten vorgenommenMit der grĂ¶ĂŸten Marge (maximal 0,93 im Zug) hatte diese Anpassung praktisch keine Auswirkungen auf die Öffentlichkeit (einzelne Abfahrten sind offenbar in der Öffentlichkeit), sie wurde ausschließlich der privaten Sicherheit ĂŒberlassen. Und eine Korrektur in Bezug auf Nullen wurde hinzugefĂŒgt, wenn die Vorhersage beim ersten Scan Null ist, dann gehen ihre Vorhersagen trotz der Vorhersagen der Modelle beim zweiten und dritten Scan ebenfalls auf 0, was nicht viel Einfluss hatte, irgendwo das zweite Vorzeichen (das Modell ist praktisch immer und so tat es selbst (weniger als das vorherige und auf Null), aber fĂŒr die Sicherheit privat gelassen.

Ergebnisse


Die Ergebnisse waren sehr abhĂ€ngig von der Art der Antwort und den ausgewĂ€hlten PrĂ€diktoren. Selbst wenn Sie beispielsweise BrĂŒche vorhergesagt haben oder sogar besser als deren Logarithmus, können Sie andere PrĂ€diktoren auswĂ€hlen, und das Ergebnis liegt bei etwa 16%. Wenn Sie zu absoluten Werten gehen und auch PrĂ€diktoren erneut auswĂ€hlen, dann fing alles zu ungefĂ€hr 15% an, also war dies meine Basislinie.

Übrigens waren diese Ergebnisse bereits ausreichend, um in den Top 5 zu bleiben, aber es war interessant, mehr zu „steigern“.

Was hat diese 15% dramatisch verbessert?

Im Allgemeinen ergab das HinzufĂŒgen von Stunden, nur Stunden (Start- und Endzeiten) sofort 13,97%, das Ändern in Sinus-Cosinus verbesserte sich auf 13,44%, und das anschließende Verbessern auf 13,25% rundete kleine Werte auf Null und das geometrische Mittel Der Durchschnitt der beiden Modelle, das heißt, es war bereits mehr Abstimmung fĂŒr den Test (öffentlich), und aus diesem Grund bin ich mit der Öffentlichkeit immer noch ein wenig ĂŒber Bord gegangen.

In diesem Wettbewerb musste eine Lösung ausgewĂ€hlt werden. Wenn ich jetzt in den LC schaue, sehe ich, dass sich meine gewĂ€hlte Lösung auch privat als fast die beste herausstellte (der Ort hat sich nicht geĂ€ndert) (der beste private ist weniger als 0,02 Prozentpunkte), aber wenn Sie Sendungen annehmen, bei denen die Antwort nicht so gerundet war, dann privat Sie waren etwas schlechter - 13,6%, das heißt, es gab keine starke Umschulung fĂŒr die Öffentlichkeit, aber diese Nachabstimmung spielte auch keine sehr große Rolle.

Als Ergebnis der Hauptreserve success: PrÀdiktoren unter einem ausgewÀhlten Antwortmodell ausgewÀhlt kubistisch , Cascade - Modelle (1-> 2> 3) und zeitlichen s e PrÀdiktoren ( sin , cos ).

Fazit


Trotz der Tatsache, dass die Gewinner der ersten fĂŒnf PlĂ€tze verschiedene Modelle verwendeten, darunter moderne (1 Platz - SVR , 2 Platz - Catboost , 3 Platz - neuronales Netz , 5 Platz - Lightgbm , obwohl diese Gewinner viel komplexere PrĂ€diktoren hatten). Ich belegte den 4. Platz mit einem der Ă€ltesten klassischen Modelle von 1992 (sogar SVR- Ideen erschienen spĂ€ter) mit ziemlich einfachen und offensichtlichen PrĂ€diktoren, was erneut bestĂ€tigt: Es reicht nicht immer aus, mit generierten PrĂ€diktoren zu arbeiten (diese AnsĂ€tze waren in der endgĂŒltigen Bewertung viel niedriger). etwa 20%), der gesunde Menschenverstand der PrĂ€diktoren und die Transformation der Reaktion sowie die Wahl der Verlustfunktion in den Modellen (falls vorhanden) spielen hier eine bedeutende Rolle.

Im Allgemeinen erwies sich der Wettbewerb als interessant und kreativ mit relevanten Schlussfolgerungen.

Ich hoffe, dass die Aufgabe in der letzten (Vollzeit-) Phase des Wettbewerbs nicht weniger interessant sein wird.

All Articles