Regeln des maschinellen Lernens:

Best Practices für ML-Entwicklung

Martin Zinkevich

Dieses Dokument richtet sich an Nutzer mit Grundkenntnissen in Maschinenbau. die Best Practices von Google für maschinelles Lernen zu nutzen. Es stellt einen Stil für maschinelles Lernen dar, ähnlich dem Google C++ Style Guide. und andere beliebte Leitfäden zur praktischen Programmierung. Wenn Sie an einem Kurs teilgenommen haben oder ein ML-Modell aufgebaut oder daran gearbeitet haben, über den erforderlichen Hintergrund zum Lesen dieses Dokuments verfügen.

Martin Zinkevich stellt zehn seiner Lieblingsregeln vor des maschinellen Lernens. Hier findest du alle 43 Regeln.

Terminologie

Die folgenden Begriffe werden in unserer Diskussion über effektive maschinelles Lernen:

  • Instanz: Die Sache, für die ein eine Vorhersage treffen. Beispiel: Die Instanz könnte eine Webseite sein, als „über Katzen“ klassifizieren oder „nicht über Katzen“.
  • Label: Eine Antwort für eine Vorhersageaufgabe, entweder die von einem oder die richtige Antwort in den Trainingsdaten. Für Das Label für eine Webseite könnte beispielsweise „über Katzen“ sein.
  • Funktion: Ein Attribut einer Instanz, das in einer Vorhersageaufgabe verwendet wird. Für Beispielsweise könnte eine Webseite die Funktion „enthält das Wort ‚Katze‘“ haben.
  • Funktionsspalte: Eine Reihe zugehöriger Merkmale, z. B. alle möglichen Ländern, in denen Nutzer leben könnten. Ein Beispiel kann ein oder mehrere Merkmale haben. in einer Featurespalte vorkommen. „Featurespalte“ ist die Google-spezifische Terminologie. Eine Featurespalte wird als „Namespace“ bezeichnet. im VW-System (bei Yahoo/Microsoft) Feld ein.
  • Beispiel: eine Instanz (mit ihren Funktionen) und ein Label.
  • Modell: Eine statistische Darstellung einer Vorhersageaufgabe. Sie trainieren ein Modell auf Anhand der Beispiele wird das Modell dann für Vorhersagen verwendet.
  • Messwert: Eine für Sie relevante Zahl. Kann direkt optimiert werden.
  • Ziel: Ein Messwert, den der Algorithmus zu optimieren versucht.
  • Pipeline: Die Infrastruktur, die einen Algorithmus für maschinelles Lernen umgibt. Dazu gehört das Erfassen der Daten aus dem Frontend und das Einbinden in die Trainingsdaten Dateien, Trainieren eines oder mehrerer Modelle und Exportieren der Modelle in die Produktion.
  • Klickrate: Der Prozentsatz der Besucher einer Webseite, die auf eine Link in einer Anzeige.

Übersicht

So stellen Sie großartige Produkte her:

maschinelles Lernen nicht wie der großartige Techniker, aber Sie sind kein echter Experte für maschinelles Lernen.

Die meisten Probleme, mit denen Sie konfrontiert werden, sind in Wirklichkeit technische Probleme. Gleichmäßig mit den Ressourcen eines großartigen Fachleutes für maschinelles Lernen zusammenbringt, auf großartigen Funktionen und nicht auf erstklassigen Algorithmen für maschinelles Lernen. Die grundlegende Ansatz lautet:

  1. Achten Sie darauf, dass Ihre Pipeline durchgängig stabil ist.
  2. Beginnen Sie mit einem vernünftigen Ziel.
  3. Einfache Funktionen für gesunden Menschenverstand hinzufügen
  4. Achten Sie darauf, dass Ihre Pipeline stabil bleibt.

Dieser Ansatz eignet sich gut für lange Zeit verbringen. Sie sollten nur von diesem Ansatz abweichen, mit einfachen Tricks weiterkommen. Mehr Komplexität verlangsamt zukünftige Releases.

Sobald Sie diese einfachen Tricks gemeistert haben, in der Zukunft liegen. Weitere Informationen finden Sie im Abschnitt Phase III Machine Learning-Projekten.

Dieses Dokument ist wie folgt aufgebaut:

  1. Im ersten Teil können Sie ermitteln, ist der richtige Zeitpunkt, ein ML-System zu entwickeln.
  2. Im zweiten Teil geht es um die Bereitstellung der für die erste Pipeline.
  3. Im dritten Teil geht es um die Markteinführung Iterationen vornehmen und neue Funktionen zu Ihrer Pipeline hinzufügen, Modelle bewerten und Abweichungen zwischen Training und Bereitstellung.
  4. Die Letzter Teil was zu tun ist, wenn Sie ein Plateau erreichen.
  5. Danach gibt es eine Liste mit ähnlichen Arbeiten und eine Anhang mit einigen Hintergrundinformationen zu den Systemen, die in diesem Dokument häufig als Beispiele verwendet werden.

Vor dem maschinellen Lernen

Regel Nr. 1: Scheuen Sie sich nicht, ein Produkt ohne maschinelles Lernen auf den Markt zu bringen.

Maschinelles Lernen ist cool, erfordert aber Daten. Theoretisch können Sie aus Daten Problem lösen und das Modell dann für ein neues Produkt optimieren. wahrscheinlich weniger gute Ergebnisse Heuristik. Wenn Sie glauben, Maschinelles Lernen bringt Ihnen 100% mehr, eine Heuristik bringt Sie 50 %. auf dem Weg dorthin.

Beim Ranking von Apps auf einem App-Marktplatz könnten Sie zum Beispiel die Funktion oder die Anzahl der Installationen als Heuristik ansehen. Wenn Sie Spam entdecken, um Publisher herauszufiltern, die bereits Spam versendet haben. Scheuen Sie sich nicht, auch beim Bearbeiten. Sortieren Sie Kontakte, die zuletzt verwendet wurden. am höchsten (oder in alphabetischer Reihenfolge). Wenn maschinelles Lernen nicht unbedingt die für Ihr Produkt erforderlich sind, verwenden Sie es erst, wenn Sie Daten haben.

Regel 2: Erstens: Messwerte entwerfen und implementieren

Bevor Sie festlegen, was Ihr ML-System tun soll, in Ihrem aktuellen System möglich. Das kann folgende Gründe haben:

  1. Es ist einfacher, zuvor die Berechtigung von den Systemnutzern einzuholen.
  2. Wenn Sie glauben, dass etwas in Zukunft ein Problem darstellen könnte, jetzt besser, um Verlaufsdaten zu erhalten.
  3. Wenn Sie Ihr System mit metrischen Instrumentierung entwerfen, für Ihr Unternehmen zu erhalten. Vor allem möchten Sie nicht, dass nach Strings in Logs, um Ihre Messwerte zu instrumentieren.
  4. Sie werden feststellen, was sich ändert und was gleich bleibt. Beispiel: Sie möchten die an einem Tag aktiven Nutzer direkt optimieren. Sie können jedoch bereits früh im System sind, werden Sie feststellen, dramatische Änderungen an der User Experience ändern, Messwert.

Das Google Plus-Team misst die Ausweitung pro Lesevorgang, Erneutes Teilen pro Lesevorgang, plus eins pro gelesen, kommentiert/gelesen, Kommentare pro Nutzer, erneut geteilt pro Nutzer usw. bei der Berechnung der Vorteile eines Beitrags. Beachten Sie außerdem, Test-Framework, in dem Sie Nutzer in Buckets gruppieren und statistische Daten pro Test. Weitere Informationen finden Sie unter Regel 12:

Wenn Sie beim Erfassen von Messwerten großzügiger vorgehen, erhalten Sie ein umfassenderes Bild Ihres Systems. Ist ein Problem aufgetreten? Fügen Sie einen Messwert hinzu, um ihn zu verfolgen. Begeistert über einige Quantitative Änderungen beim letzten Release? Fügen Sie einen Messwert hinzu, um ihn zu verfolgen.

Regel 3: Maschinelles Lernen ist besser als eine komplexe Heuristik.

Eine einfache Heuristik kann Ihr Produkt zum Kauf bringen. Eine komplexe Heuristik ist nicht gepflegt werden. Sobald Sie über die Daten und eine grundlegende Vorstellung davon verfügen, was Sie machen, dann mit maschinellem Lernen weitermachen. Wie in den meisten Ihre Herangehensweise aktualisieren, egal ob es sich um eine oder einem maschinenlernten Modell, und Sie werden feststellen, ML-Modell ist einfacher zu aktualisieren und zu pflegen (siehe Regel 16).

ML-Phase I: Ihre erste Pipeline

Konzentrieren Sie sich bei Ihrer ersten Pipeline auf die Systeminfrastruktur. Es macht zwar Spaß, über all das fantasievolle maschinelle Lernen nachzudenken, lässt sich nur schwer einordnen, was passiert, wenn Sie Ihren zu erstellen.

Regel 4: Halten Sie das erste Modell einfach und achten Sie auf die richtige Infrastruktur.

Das erste Modell bietet den größten Boosts für Ihr Produkt, daher ist es schick gemacht. Aber Sie werden auf viel mehr Infrastrukturprobleme stoßen als Sie zu erwarten ist. Bevor jemand Ihr neues ML-System einsetzen kann, um Folgendes zu bestimmen:

  • So erhalten Sie Beispiele für Ihren Lernalgorithmus.
  • Ein erster Blick auf das, was „gute“ und „schlecht“ für Ihr System bedeuten.
  • Hier erfahren Sie, wie Sie Ihr Modell in Ihre Anwendung einbinden. Sie können entweder das Modell live oder Das Modell wird offline mit Beispielen vorausberechnet und die Ergebnisse in einer Tabelle gespeichert. Sie können beispielsweise Webseiten vorab klassifizieren und die Ergebnisse speichern. in einer Tabelle, aber vielleicht möchten Sie Chatnachrichten live klassifizieren.

Durch die Auswahl einfacher Funktionen kann Folgendes einfacher sichergestellt werden:

  • Die Funktionen erreichen Ihren Lernalgorithmus korrekt.
  • Das Modell lernt angemessene Gewichtungen.
  • Die Funktionen erreichen Ihr Modell korrekt auf dem Server.

Sobald Sie ein System haben, das diese drei Dinge zuverlässig erledigt, die meiste Arbeit zu erledigen. Ihr einfaches Modell bietet grundlegende Messwerte mit dem Sie komplexere Modelle testen können. Einige Teams zielen darauf ab für ein „neutrales“ Ersteinführung: eine erste Einführung, bei der die Priorität maschinelles Lernen vorantreibt, um nicht abgelenkt zu werden.

Regel 5: Die Infrastruktur unabhängig vom maschinellen Lernen testen.

Stellen Sie sicher, dass die Infrastruktur testbar ist dass das System gekapselt ist, damit Sie alles um das System herum testen können. Im Detail:

  1. Testen Sie, wie Daten in den Algorithmus einfließen. Prüfen Sie, ob Funktionsspalten, ausgefüllt werden sollen. Soweit es Datenschutz erlaubt, manuell die Eingabe für den Trainingsalgorithmus prüfen. Prüfen Sie nach Möglichkeit, Statistiken in Ihrer Pipeline im Vergleich zu Statistiken für dieselben Daten an anderer Stelle verarbeitet werden.
  2. Testen Sie, wie Sie Modelle aus dem Trainingsalgorithmus herausholen. Achten Sie darauf, dass der Modell in Ihrer Trainingsumgebung dieselbe Punktzahl wie das Modell in Ihrer Bereitstellungsumgebung (siehe Regel 37).

Maschinelles Lernen ist ein Element der Unvorhersehbarkeit. Tests für den Code zum Erstellen von Beispielen für Training und Bereitstellung haben und das Sie während der Bereitstellung laden und verwenden können. Außerdem ist es wichtig, wie Sie Ihre Daten besser verstehen können: Praxistipps für die Analyse großer, komplexer Datensätze.

Regel 6: Gehen Sie beim Kopieren von Pipelines vorsichtig vor, wenn Daten gelöscht werden.

Häufig erstellen wir eine Pipeline, indem wir eine vorhandene Pipeline kopieren (d.h. Cargo-Kultprogrammierung ) und die alte Pipeline löscht Daten, die wir für die neue Pipeline benötigen. Ein Beispiel wäre die Pipeline für Google+ "Angesagte Beiträge". ältere Posts verwirft, da versucht wird, neue Posts im Ranking zu ermitteln. Diese Pipeline wurde kopiert zur Verwendung für Google Plus Stream, wo ältere Beiträge sind nach wie vor wichtig, aber alte Beiträge wurden verworfen. Anderes gängige Muster darin, nur Daten zu protokollieren, die die Nutzenden gesehen haben. Daher sind diese Daten nutzlos, wenn wir modellieren wollen, warum ein bestimmter Post von den Nutzenden nicht gesehen wurde. da alle negativen Beispiele verworfen wurden. Ein ähnliches Problem ist in Spielen. Während der Arbeit an der Play Apps-Startseite wurde eine neue Pipeline erstellt, die auch Beispiele von der Landingpage für Play Spiele ohne damit klar wird, woher die einzelnen Beispiele stammen.

Regel 7: Heuristiken in Funktionen umwandeln oder extern behandeln

Normalerweise sind die Probleme, die das maschinelle Lernen zu lösen versucht, völlig neu. Es gibt bereits ein System zum Ranking, zur Klassifizierung welches Problem Sie zu lösen versuchen. Das bedeutet, dass es eine Menge Regeln und Heuristiken. Mit denselben Heuristiken können Sie mit maschinellem Lernen. Deine Heuristik sollte für alles geminkt sein, Informationen, die sie haben, und zwar aus zwei Gründen. Erstens: Der Übergang zu einer Maschine erlernten System reibungsloser. Zweitens enthalten diese Regeln die Intuition des Systems zu vermitteln, das Sie nicht wegwerfen möchten. Es gibt vier Möglichkeiten, eine vorhandene Heuristik zu verwenden:

  • Vorverarbeiten mithilfe der Heuristik Wenn die Funktion unglaublich toll ist, ist das eine Option. Wenn z. B. der Absender in einem Spamfilter auf der schwarzen Liste steht, versuchen Sie nicht, . Sie können die Nachricht blockieren. Dieser Ansatz ist im Binärformat am sinnvollsten Klassifizierungsaufgaben.
  • Erstellen Sie eine Funktion. Es ist großartig, ein Feature direkt aus der Heuristik zu erstellen. Wenn Sie beispielsweise eine Heuristik verwenden, um einen Relevanzwert für eine Abfrage zu berechnen, können Sie die Bewertung als Wert einer Funktion angeben. Später mit Techniken des maschinellen Lernens den Wert (Beispiel: Umwandlung des Werts in einen endlichen Satz diskreter oder mit anderen Funktionen kombinieren), beginnen Sie jedoch mit der Wert, der von der Heuristik erzeugt wird.
  • Die Roheingaben der Heuristik analysieren. Ob es eine Heuristik für Apps gibt, Dieser Wert ergibt sich aus der Anzahl der Installationen, der Anzahl der Zeichen im Feld Text und den Wochentag auswählen, sollten Sie diese Teile auseinanderziehen, und fließen diese Eingaben separat in das Lernen ein. Einige Techniken die für Ensembles gelten, gelten hier (siehe Regel 40).
  • Ändern Sie das Label. Dies ist eine Option, wenn Sie der Meinung sind, dass die Heuristik erfasst Informationen, die derzeit nicht im Label enthalten sind. Beispiel: wenn Sie die Anzahl der Downloads maximieren möchten, aber auch Dann ist es vielleicht die Lösung, das Label mit dem durchschnittliche Anzahl der Sterne, die die App erhalten hat Hier gibt es viel Spielraum. Siehe Ihr erstes Ziel.

Beachten Sie die zusätzliche Komplexität bei der Verwendung von Heuristiken in einem ML. System. Wenn Sie alte Heuristiken in Ihrem neuen Algorithmus für maschinelles Lernen verwenden, sorgen für einen reibungslosen Übergang. Sie sollten sich jedoch überlegen, um denselben Effekt zu erzielen.

Monitoring

Achten Sie im Allgemeinen auf eine gute Benachrichtigungshygiene, z. B. indem Sie Benachrichtigungen umsetzbar machen. und eine Dashboard-Seite zu haben.

Regel 8: Die Anforderungen an die Aktualität Ihres Systems kennen

Wie stark verschlechtert sich die Leistung, wenn Sie ein Modell haben, das einen Tag alt ist? Eine Woche alt? Ein Viertel alt? Diese Informationen können Ihnen helfen, die Prioritäten Ihres Monitorings. Wenn Sie ein wichtiges Produkt verlieren Qualität, wenn das Modell nicht aktualisiert wird einen Tag lang von einem Techniker beobachtet werden. Meiste Anzeigen Serverliefersysteme müssen jeden Tag neue Anzeigen verarbeiten und müssen entsprechend aktualisiert werden. täglich. Wenn beispielsweise das ML-Modell für Google Play-Suche nicht aktualisiert wurde, kann eine negative Auswirkungen in weniger als einem Monat. Einige Modelle für "Angesagte Beiträge" Das Modell von Google Plus enthält keine Beitrags-ID. sie können diese Modelle nur selten exportieren. Andere Modelle mit Beitrags-IDs sind häufiger aktualisiert werden. Beachten Sie auch, dass sich die Aktualität im Laufe der Zeit ändern kann, insbesondere wenn Featurespalten hinzugefügt oder aus Ihrem Modell entfernt werden.

Regel 9: Probleme vor dem Exportieren von Modellen erkennen

Viele ML-Systeme haben eine Phase, in der Sie das Modell der Auslieferung. Wenn bei einem exportierten Modell ein Problem auftritt, handelt es sich um ein Problem für den Nutzer. Problem.

Führen Sie Integritätsprüfungen durch, bevor Sie das Modell exportieren. Achten Sie insbesondere darauf, dass die Leistung des Modells bei zurückgehaltenen Daten angemessen ist. Oder, wenn Sie kein Modell exportieren. Viele Teams Modelle kontinuierlich bereitstellen, sehen Sie sich den Bereich an, ROC-Kurve (oder AUC) bevor Sie sie exportieren. Bei Problemen mit nicht exportierten Modellen ist ein E-Mail-Benachrichtigung erhalten. Bei Problemen mit einem Modell für Nutzer ist jedoch möglicherweise eine Seite erforderlich. Besser und sich sicher sein, bevor sie Auswirkungen auf die Nutzenden haben.

Regel 10: Achten Sie auf Fehler ohne Ton.

Dieses Problem tritt häufiger bei ML-Systemen auf als bei anderen Arten von Systemen. Angenommen, eine bestimmte Tabelle, die verknüpft wird, auf dem neuesten Stand sind. Das ML-System passt sich an bleibt gut und fällt allmählich ab. Manchmal finden Sie Tabellen veraltet sind, und eine einfache Aktualisierung verbessert die Leistung mehr als jede andere Einführung in diesem Quartal! Die Abdeckung eines Feature kann sich aufgrund von Implementierungsänderungen ändern, z. B. eine Featurespalte. in 90% der Beispiele dargestellt sein, und plötzlich auf 60 % Beispiele. Play hatte einmal eine Tabelle, die 6 Monate lang veraltet war und sich allein anhand der Tabelle stieg die Installationsrate um 2 %. Wenn Sie Statistiken zu und die Daten gelegentlich manuell prüfen, können Sie Fehler zu vermeiden.

Regel 11: Weisen Sie Featurespalten Inhaber und Dokumentation zu.

Wenn das System groß ist und viele Featurespalten vorhanden sind, sollten Sie wissen, wer oder die einzelnen Featurespalten beibehalten. Wenn Sie feststellen, dass die Person, eine Featurespalte verlässt, sollten Sie sicherstellen, Informationen. Obwohl viele Featurespalten aussagekräftige Namen haben, ist es sinnvoll, um ausführlichere Beschreibungen der Funktion und ihrer Herkunft zu erhalten. und wie sie hilfreich sein wird.

Ihr erstes Ziel

Sie haben viele Messwerte oder Messungen in dem System, die Ihnen wichtig sind, Aber der Algorithmus für maschinelles Lernen braucht oft ein einziges Ziel: Zahl, die Ihr Algorithmus versucht zu optimieren. Ich bin hier zwischen Zielen und Messwerten: Ein Messwert ist eine beliebige Zahl, ob sie wichtig sind oder nicht. Siehe auch Regel 2:

Regel 12: Überdenken Sie nicht zu lange, welches Ziel Sie direkt optimieren möchten.

Sie möchten Geld verdienen, Ihre Nutzer zufriedenstellen und die Welt ein Stück besser machen. Es gibt unzählige Metriken, die Ihnen wichtig sind, und Sie sollten (siehe Regel 2). Sie können jedoch im ML-Prozess beginnen, werden Sie feststellen, dass sie alle steigen, selbst wenn die nicht direkt optimiert werden. Angenommen, Sie interessieren sich für die Anzahl der Klicks und die auf der Website verbrachte Zeit. Wenn Sie im Hinblick auf die Anzahl der erhöht sich die Nutzungsdauer wahrscheinlich.

Halten Sie es einfach und denken Sie nicht zu lange darüber nach, ein Gleichgewicht zwischen verschiedenen Messwerten zu schaffen. wenn es noch einfacher ist, alle Messwerte zu steigern. Diese Regel nicht übernehmen Verwechseln Sie Ihre Zielsetzung jedoch nicht mit dem ultimativen Zielwert des (siehe Regel 39). Und wenn Sie die Leistung Ihrer Kampagne optimierten Messwert jedoch nicht einführen, kann eine objektive Überarbeitung erforderlich.

Regel 13: Wählen Sie für Ihr erstes Ziel einen einfachen, beobachtbaren und zuordenbaren Messwert aus.

Oft wissen Sie nicht, was das wahre Ziel ist. Sie glauben, das zu tun, aber dann Sie blicken auf die Daten und die parallelen Analysen Ihres alten Systems und Ihres neuen ML-Modells. stellen Sie fest, dass Sie das Ziel optimieren möchten. Ein anderes Team können sich die Mitglieder oft nicht auf das wahre Ziel einig sind. Das ML-Ziel sollte etwas, das einfach zu messen ist und ein Stellvertreter für das „wahre“ ist, Ziel erreichen können. Oft gibt es keine „wahren“ (siehe Regel 39). Also Trainieren Sie mit dem einfachen ML-Ziel und ziehen Sie eine „Richtlinienebene“ in Betracht. oben mit der Sie zusätzliche (hoffentlich einfache Logik) hinzufügen können, das endgültige Ranking.

Am einfachsten lässt sich ein Nutzerverhalten modellieren, das direkt beobachtet wird und einem Systemaktion:

  • Wurde auf diesen bewerteten Link geklickt?
  • Wurde dieses eingestufte Objekt heruntergeladen?
  • Wurde dieses eingestufte Objekt weitergeleitet/beantwortet/per E-Mail gesendet?
  • Wurde dieses eingestufte Objekt bewertet?
  • Wurde dieses angezeigte Objekt als Spam/Pornografie oder beleidigend markiert?

Indirekte Effekte vermeiden:

  • War die nutzende Person am nächsten Tag auf der Website?
  • Wie lange hat der Nutzer die Website besucht?
  • Wie viele aktive Nutzer pro Tag waren dies?

Indirekte Effekte sind hervorragende Messwerte und können bei A/B-Tests und während der Markteinführung genutzt werden. Entscheidungen zu treffen.

Schließlich sollten Sie nicht versuchen, mithilfe des maschinellen Lernens herauszufinden,

  • Sind die Nutzenden zufrieden mit dem Produkt?
  • Ist die nutzende Person mit dem Erlebnis zufrieden?
  • Verbessert das Produkt das allgemeine Wohlbefinden der Nutzenden?
  • Wie wird sich dies auf die allgemeine Gesundheit des Unternehmens auswirken?

Das alles ist wichtig, aber auch unglaublich schwer zu messen. Verwenden Sie stattdessen Proxys: Wenn der Nutzer zufrieden ist, bleibt er länger auf der Website. Wenn der Nutzer zufrieden ist, kommen sie morgen wieder. Im Hinblick auf das Wohlbefinden und die Gesundheit des Unternehmens besorgt ist, ist ein menschliches Urteil erforderlich, um mit Machine Learning-Funktionen in Bezug auf die Art des Produkts, das Sie verkaufen, für Ihren Businessplan.

Regel 14: Mit einem interpretierbaren Modell zu beginnen, erleichtert das Debugging.

Lineare, logistische Regression und Poisson-Regression lassen sich direkt die auf einem probabilistischen Modell basieren. Jede Vorhersage ist interpretierbar als die Wahrscheinlichkeit oder einen erwarteten Wert. Das macht sie einfacher zu debuggen als Modelle mit Zielen (z. B. Null-1-Verlust, verschiedene Scharnierverluste usw.) um die Klassifizierungsgenauigkeit oder die Rankingleistung direkt zu optimieren. Für wenn die Wahrscheinlichkeiten im Training von den in Produktionssystem zu vergleichen, kann diese Abweichung ein Problem aufzudecken.

Zum Beispiel gibt es bei der linearen, logistischen oder der Poisson-Regression Teilmengen von die Daten, bei denen die durchschnittliche vorhergesagte Erwartung dem durchschnittlichen Label (1– kalibriert oder nur kalibriert). Dies gilt unter der Annahme, und dass der Algorithmus konvergiert ist. im Allgemeinen gilt. Wenn Sie eine Funktion haben, die für jedes Beispiel den Wert 1 oder 0 hat, dann wird der Satz von 3 Beispielen, bei denen diese Funktion den Wert 1 hat, kalibriert. Wenn Sie eine Funktion haben, die für jedes Beispiel 1 ist, ist die Menge aller Beispiele kalibriert ist.

Bei einfachen Modellen ist es einfacher, mit Feedback Loops umzugehen (siehe Regel 36). Häufig nutzen wir diese probabilistischen Vorhersagen, um eine Entscheidung zu treffen, z.B. Rang Beiträge mit sinkendem erwartetem Wert (d.h. Wahrscheinlichkeit eines Klicks, eines Downloads usw.). Denken Sie bei der Wahl des Modells jedoch daran, ist wichtiger als die Wahrscheinlichkeit, dass die Daten angesichts des Modells (siehe Regel 27).

Regel Nr. 15: Separate Spamfilterung und Qualitäts-Ranking in einer Richtlinienebene.

Qualitätsbewertung ist eine Kunst, aber Spam-Filter sind ein Krieg. Die Signale, die die Sie zur Bestimmung hochwertiger Beiträge verwenden, und optimiert seine Beiträge entsprechend. Das heißt: sollte sich das Qualitäts-Ranking auf das Ranking von Inhalten konzentrieren, Glaube. Sie sollten den Lerner für das Qualitäts-Ranking beim Ranking von Spam nicht ausschließen sehr wichtig. Auch „nicht jugendfrei“ sollte unabhängig von der Qualitätsstufe gehandhabt werden, Ranking Beim Spamfilter funktioniert es anders. Sie müssen davon ausgehen, und Funktionen, die generiert werden müssen, ändern sich ständig. Häufig gibt es sind offensichtliche Regeln, die in das System eingegeben werden (wenn ein Beitrag mehr als drei Spam-Stimmen erhalten, diese nicht zurückholen usw.) Jedes erlernte Modell hat täglich aktualisiert werden, falls nicht schneller. Der Ruf des Creators spielen Inhalte eine große Rolle.

Irgendwie muss die Ausgabe dieser beiden Systeme integriert werden. Notizen sollte die Spam-Filterung in den Suchergebnissen vermutlich strenger sein. als Spam in E-Mails zu filtern. Außerdem ist es üblich, Spam aus den Trainingsdaten für den Qualitätsklassifikator zu erhalten.

ML-Phase II: Feature Engineering

In der ersten Phase des Lebenszyklus eines ML-Systems sind die Trainingsdaten in das Lernsystem, und eine Bereitstellungsinfrastruktur erstellen. Nachher haben Sie ein funktionierendes End-to-End-System mit Instrumenten- und Systemtests, Phase II beginnt.

In der zweiten Phase gibt es viele leicht umzusetzende Früchte. Es gibt eine Vielzahl von die in das System übernommen werden können. Daher entspricht die zweite in der Phase des maschinellen Lernens so viele Features wie möglich auf intuitive Weise kombinieren. In dieser Phase sollten alle Messwerte immer noch steigen. Es wird viele Markteinführungen geben, und jetzt ist ein guter Zeitpunkt, viele Fachleute hinzuziehen, die alle Daten zusammenführen können, ein tolles Lernsystem zu schaffen.

Regel Nr. 16: Einführung und Iteration planen.

Erwarten Sie nicht, dass das Modell, an dem Sie gerade arbeiten, oder gar keine Modelle mehr einführen werden. Das heißt: Überlegen Sie, ob die mit dieser Einführung hinzugefügte Komplexität zukünftigen Markteinführungen. Viele Teams haben pro Quartal oder häufiger ein Modell für Jahren. Es gibt drei grundlegende Gründe für die Einführung neuer Modelle:

  • Sie haben sich für neue Funktionen entschieden.
  • Sie optimieren die Regularisierung und kombinieren alte Features auf neue Weise.
  • Sie stimmen das Ziel ab.

Unabhängig davon kann es gut sein, einem Modell etwas Aufmerksamkeit zu geben: die Daten zu betrachten, Wenn Sie das Beispiel einfließen lassen, können sowohl neue als auch alte, fehlerhafte Signale gefunden werden. zu erhalten. Überlegen Sie beim Erstellen Ihres Modells, wie einfach es ist, oder Elemente neu kombinieren. Es ist ganz einfach, und ihre Richtigkeit verifizieren. Überlegen Sie, ob es möglich ist, zwei oder drei Kopien parallel ausführen. Zu guter Letzt: Machen Sie sich keine Sorgen, ob Feature 16 von 35 es in diese Version der Pipeline schafft. Sie werden bekommen Sie es im nächsten Quartal.

Regel 17: Beginnen Sie mit direkt beobachteten und gemeldeten Funktionen, nicht mit gelernten Funktionen.

Dies mag ein kontroverser Punkt sein, aber so werden viele Fallstricke vermieden. Erster von beschreiben wir nun, was eine erlernte Funktion ist. Eine erlernte Funktion ist eine Funktion, die entweder von einem externen System generiert werden (z. B. einem nicht überwachten Clustering). System) oder durch den Lernenden selbst (z.B. durch ein faktorisiertes Modell oder Deep Learning). Beides kann nützlich sein, aber es gibt viele Probleme. nicht im ersten Modell sein.

Wenn Sie zum Erstellen einer Funktion ein externes System verwenden, denken Sie daran, dass das externe System hat ein eigenes Ziel. Das Ziel des externen Systems ist möglicherweise nur schwach mit Ihrem aktuellen Ziel korrelieren. Wenn Sie einen Snapshot der externen kann es veraltet sein. Wenn Sie die Funktionen über die fremdes System ist, können sich die Bedeutungen ändern. Wenn Sie ein externes System verwenden, bieten eine Funktion, sollten Sie sich darüber im Klaren sein, dass dieser Ansatz viel Sorgfalt erfordert.

Das Hauptproblem bei faktorisierten und tiefen Modellen besteht darin, nicht konvex. Daher gibt es keine Garantie, dass eine optimale Lösung geschätzt oder gefunden. Die lokalen Minima bei jeder Iteration können unterscheiden. Durch diese Abweichung lässt sich nur schwer beurteilen, oder zufällige Änderungen an Ihrem System. Durch Erstellen eines Modells ohne können Sie eine hervorragende Basisleistung erzielen. Danach erreicht wurde, können Sie esoterischere Ansätze ausprobieren.

Regel 18: Mit Inhaltsmerkmalen, die kontextübergreifend verallgemeinern, explorieren.

Oft ist ein ML-System nur ein kleiner Teil eines viel größeren Ganzen. Für Wenn Sie sich beispielsweise einen Beitrag vorstellen, der in "Angesagte Beiträge" verwendet werden könnte, gibt einem Beitrag +1, wird ihn erneut teilen oder kommentieren, bevor er in den Beiträgen angezeigt wird. Heiß. Wenn Sie den Lernenden diese Statistiken zur Verfügung stellen, können dadurch neue Beiträge beworben werden. dass für den Kontext, für den sie optimiert wird, keine Daten vorliegen. YouTube könnte eine bestimmte Anzahl an Aufrufen oder das gemeinsame Wiedergaben: Gibt an, wie oft ein Video angesehen wurde, nachdem ein anderes angesehen) über die YouTube-Suche. Sie können auch explizite Nutzerbewertungen. Wenn Sie eine Nutzeraktion als Label verwenden, Es kann sehr hilfreich sein, in einem anderen Kontext Aktionen für ein Dokument . All diese Funktionen ermöglichen es Ihnen, neue Inhalte in einen Kontext zu bringen. Dabei geht es nicht um Personalisierung. Finden Sie heraus, ob die Person und dann herausfinden, wem sie mehr oder weniger gefallen.

Regel 19: Nutze möglichst spezifische Funktionen.

Bei Unmengen an Daten ist es einfacher, Millionen einfacher Funktionen zu erlernen einige komplexe Funktionen. IDs der abgerufenen und abgerufenen Dokumente kanonische Abfragen bieten weniger Verallgemeinerungen, sollten aber Ranking mit Ihren Labels bei Head-Suchanfragen. Haben Sie also keine Angst vor Gruppen bei denen sich jede Funktion auf einen sehr kleinen Teil Ihrer Daten bezieht, liegt die Gesamtabdeckung bei über 90%. Mithilfe der Regularisierung können Sie die auf zu wenige Beispiele zutreffen.

Regel Nr. 20: Kombinieren und verändern Sie vorhandene Merkmale, um neue Merkmale auf für Menschen verständliche Weise zu erstellen.

Es gibt verschiedene Möglichkeiten, Elemente zu kombinieren und zu ändern. Machine Learning wie TensorFlow, ermöglichen Ihnen die Vorverarbeitung Ihrer Daten durch Transformationen. Die beiden Standardansätze sind die „Diskretisierung“ und „Kreuze“.

Diskretisierung besteht aus einem fortlaufenden Feature und eigenständige Merkmale. Ziehen Sie eine fortlaufende Funktion wie das Alter in Betracht. Sie können erstellen Sie ein Feature mit 1, wenn Sie noch keine 18 Jahre alt sind. „1“, wenn das Alter zwischen 18 und 35 Jahren liegt usw. Denken Sie nicht über die Grenzen Histogramme: Mit einfachen Quantilen lässt sich die meiste Wirkung erzielen.

Kreuze kombinieren zwei oder mehr Featurespalten. Eine Featurespalte in der Terminologie, eine Reihe homogener Merkmale (z.B. {male, weibliche}, {US, Canada, Mexico} usw.). Ein Kreuz ist eine neue Featurespalte mit Features in Beispiel: {männlich, weiblich} × {USA,Kanada, Mexiko}. Diese neue Featurespalte enthält das Element (männlich, Kanada). Wenn Sie TensorFlow verwenden und anweisen, dieses Kreuz für Sie zu erstellen. in Beispielen für männliche Kanadier vorkommen. Es braucht sehr viel Datenmengen, um Modelle mit Kreuzen aus drei, vier oder mehr Base zu erlernen Featurespalten.

Kreuze, die sehr große Featurespalten erzeugen, können überpassen. Beispiel: Stellen Sie sich vor, Sie führen eine Art Suche durch und Sie haben eine Featurespalte mit Wörtern in der Abfrage und Sie haben eine Featurespalte mit Wörtern in der Abfrage Dokument. Sie können diese mit einer Kreuzfahrt kombinieren, aber am Ende erhalten Sie Elemente (siehe Regel 21).

Beim Arbeiten mit Text gibt es zwei Alternativen. Am drakonischsten ist ein von Google. Ein Punktprodukt zählt in seiner einfachsten Form einfach die Anzahl Wörter, die in der Suchanfrage und im Dokument gemeinsam sind. Diese Funktion kann dann diskretisiert werden. Ein weiterer Ansatz ist die Schnittmenge. Wir haben also eine Funktion, die nur dann vorhanden ist, wenn das Wort sowohl im Dokument als auch im und eine andere Funktion, die nur dann vorhanden ist, ist in das Dokument und die Abfrage.

Regel 21: Die Anzahl der Featuregewichtungen, die Sie in einem linearen Modell ermitteln können, ist in etwa proportional zur Datenmenge, die Ihnen zur Verfügung steht.

Es gibt faszinierende Ergebnisse der statistischen Lerntheorie angemessene Komplexität für ein Modell, aber diese Regel ist im Grunde die Sie wissen müssen. Ich hatte Gespräche, bei denen die Leute zweifeln, kann aus tausend Beispielen gelernt werden mehr als eine Million Beispiele benötigen, da sie bei einer bestimmten Methode des Lernens. Wichtig ist, das Erlernte auf die Größe Ihrer Daten zu skalieren:

  1. Wenn Sie an einem Ranking-System für die Suche arbeiten, Wörter in den Dokumenten und der Abfrage und Sie haben 1.000 sollten Sie zwischen den Dokumenten und Abfragefunktionen, TF-IDF, und ein halbes Dutzend weiterer hochentwickelter Funktionen. 1.000 Beispiele, ein Dutzend Funktionen.
  2. Bei einer Million Beispielen schneiden Sie das Dokument und die Abfrage Featurespalten mit Regularisierung und möglicherweise Featureauswahl. Dadurch erhalten Sie Millionen von Funktionen, aber mit der Regularisierung erhalten Sie weniger haben. Zehn Millionen Beispiele, vielleicht hunderttausend Funktionen.
  3. Wenn es mehrere Milliarden Beispiele gibt, Die Featurespalten mit Dokument- und Abfragetokens unter Verwendung der Featureauswahl und Regularisierung. Sie haben 1 Milliarde Beispiele und 10 Millionen Funktionen. Die statistische Lerntheorie gibt selten enge Grenzen, eine gute Orientierungshilfe als Ausgangspunkt.

Verwenden Sie abschließend Regel 28 um zu entscheiden, welche Funktionen geeignet sind.

Regel 22: Bereinigen Sie Funktionen, die Sie nicht mehr verwenden.

Nicht verwendete Funktionen verursachen technische Altlasten. Wenn Sie feststellen, dass Sie und dass die Kombination mit anderen Funktionen nicht funktioniert, aus Ihrer Infrastruktur herausholen. Achten Sie auf eine saubere Infrastruktur, dass die vielversprechendsten Funktionen so schnell wie möglich ausprobiert werden können. Wenn Ihr Element kann jederzeit wieder hinzugefügt werden.

Berücksichtige die Abdeckung, wenn du überlegst, welche Funktionen du hinzufügen oder behalten solltest. Wie viele werden von der Funktion abgedeckt? Wenn Sie zum Beispiel Personalisierungsfunktionen nutzen, aber nur 8% der Nutzer nicht sehr effektiv ist.

Gleichzeitig kann es vorkommen, dass einige Funktionen ihr Gewicht übersteigen. Beispiel: Sie haben eine Funktion, die nur 1% der Daten abdeckt, aber 90% der Beispiele. die eine positive Funktion aufweisen, ist es sinnvoll, diese Funktion hinzuzufügen.

Menschliche Analyse des Systems

Bevor wir mit der dritten Phase des maschinellen Lernens fortfahren, sich auf etwas zu konzentrieren, das in keinem ML-Kurs behandelt wird: ein vorhandenes Modell betrachten und es verbessern können. Dies ist mehr eine Kunst als eine wissenschaftlicher Natur gesprochen. Dennoch gibt es einige Antimuster, die vermieden werden sollten.

Regel 23: Sie sind kein typischer Endnutzer.

Dies ist wahrscheinlich der einfachste Weg für ein Team, ins Stocken zu kommen. Es gibt zwar viele Vorteile für Fishfooding (Nutzung eines Prototyps innerhalb Ihres Teams) und Dogfooding (mithilfe eines Prototyps innerhalb Ihres Unternehmens), sollten sich Mitarbeitende ob die Leistung stimmt. Zwar ist eine Änderung, die natürlich schlecht ist, sollte nicht verwendet werden. Alles, was vernünftigerweise produktionsnah erscheint, indem sie Laien für die Beantwortung von Fragen zu einem Crowdsourcing-Plattform oder im Rahmen eines Live-Experiments mit echten Nutzenden.

Dafür gibt es zwei Gründe. Zum einen befinden Sie sich zu nah am Code. Vielleicht suchen Sie nach einem bestimmten Aspekt der Beiträge oder einfach zu emotional involviert (z.B. Bestätigungsverzerrung). Zweitens: ist Ihre Zeit zu kostbar. Wie viel kostet es, wenn neun Ingenieure in einem Arbeitszimmer sitzen würden? einstündiges Treffen ein und überlegen Sie, wie viele menschliche Labels Crowdsourcing-Plattform.

Wenn Sie wirklich Feedback von Nutzern geben möchten, verwenden Sie die Nutzererfahrung Methoden beschrieben. User Personas erstellen (eine Beschreibung befindet sich in Bill Buxtons Sketching User Experiences) in einem Prozess und führen Usability-Tests durch (eine ist die Beschreibung in Steve Krugs Lass mich nicht nachdenken) . User Personas die Erstellung hypothetischer Nutzenden. Wenn Ihr Team beispielsweise nur männlich ist, kann es hilfreich sein, eine 35-jährige weibliche User Persona (mit Funktionen) und sehen Sie sich die generierten Ergebnisse an und nicht nur zehn Ergebnisse für Männer im Alter von 25 bis 40 Jahren. Menschen einbeziehen, um ihre Reaktionen auf Ihrer Website (lokal oder remote) bei Usability-Tests können Ihnen ebenfalls Perspektive.

Regel 24: Das Delta zwischen Modellen messen.

Eine der einfachsten und manchmal nützlichsten Messungen vor dem alle Nutzenden sich Ihr neues Modell angesehen haben, besteht darin, zu berechnen, neue Ergebnisse aus der Produktion. Bei einem Ranking-Problem beide Modelle anhand einer Stichprobe von Abfragen im gesamten System ausführen Größe der symmetrischen Differenz der Ergebnisse (gewichtet nach Rangfolge Position). Wenn der Unterschied sehr gering ist, können Sie das feststellen, ein Experiment, das sich nur geringfügig ändert. Wenn der Unterschied möchten Sie sichergehen, dass die Änderung gut ist. Überschaut mit denen die symmetrische Differenz hoch ist, können Sie wie die Veränderung aussah. Stellen Sie jedoch sicher, dass das System stabil sein. Stellen Sie sicher, dass ein Modell im Vergleich zu sich selbst einen niedrigen Null) symmetrische Differenz.

Regel 25: Bei der Auswahl von Modellen hat Nützlichkeit Vorrang vor Vorhersagekraft.

Ihr Modell versucht möglicherweise, die Klickrate vorherzusagen. Letztendlich sollte jedoch was Sie mit dieser Vervollständigung tun. Wenn Sie es für die Rangfolge ist die Qualität des endgültigen Rankings wichtiger als die die Vorhersage selbst. Wenn Sie die Wahrscheinlichkeit vorhersagen, dass es sich bei einem Dokument um Spam handelt, einen Grenzwert für das, was blockiert wird, und die Genauigkeit der zulässigen mehr mit Dingen zu tun. Meistens sollten diese beiden Dinge Einigung: Wenn sie nicht zustimmen, ist die Wahrscheinlichkeit gering, dass sie davon profitieren. Wenn also Es gibt eine Änderung, die den logarithmischen Verlust verbessert, aber die Leistung der suchen Sie nach einer anderen Funktion. Wenn das häufiger vorkommt, ist es an der Zeit, das Ziel Ihres Modells zu überdenken.

Regel 26: Nach Mustern in den gemessenen Fehlern suchen und neue Funktionen erstellen.

Angenommen, Sie sehen ein Trainingsbeispiel, dass das Modell „falsch“ ist. In einer zu klassifizieren, kann dieser Fehler falsch-positiv oder falsch-negativ sein. Bei einer Rankingaufgabe könnte der Fehler ein Paar sein, bei dem ein positives Ergebnis niedriger eingestuft wurde. als ein negatives Ergebnis. Der wichtigste Punkt ist, dass dies ein Beispiel ist, Maschinelles Lernen weiß, dass ein Fehler vorliegt, und möchte ihn korrigieren, Geschäftschancen. Wenn Sie dem Modell eine Funktion zur Behebung des Fehlers geben, versucht das Modell, sie zu verwenden.

Wenn Sie andererseits versuchen, eine Funktion auf der Grundlage von Beispielen zu erstellen, nicht als Fehler wahrnimmt, wird die Funktion ignoriert. Beispiel: Angenommen, jemand sucht in der Play-App-Suche nach „kostenlose Spiele“. Angenommen, eines der Top-Ergebnisse ist eine weniger relevante Gag-App. Sie erstellen also eine Funktion für „Gag-Apps“. Wenn Sie jedoch die Anzahl der Installationen maximieren eine Gag-App installieren, wenn sie nach kostenlosen Spielen suchen, Funktion nicht den gewünschten Effekt erzielen.

Sobald Sie Beispiele haben, bei denen das Modell falsch war, suchen Sie nach Trends, die nicht im aktuellen Feature-Set liegen. Wenn das System z. B. längere Beiträge abwerten und anschließend die Länge des Beitrags festlegen. Seien Sie auch nicht zu spezifisch die Sie hinzufügen. Wenn ihr die Länge eines Beitrags festlegen möchtet, Fügen Sie einfach ein Dutzend Funktionen hinzu, damit das Modell herausfinden kann, was zu tun ist. (siehe Regel 21 ). Das ist der einfachste Weg, das zu bekommen, was Sie wollen.

Regel 27: Versuchen Sie, das beobachtete unerwünschte Verhalten zu quantifizieren.

Einige Mitglieder Ihres Teams werden frustriert über die Eigenschaften der die ihnen nicht gefallen und die nicht von der vorhandenen Verlustfunktion erfasst werden. Bei sollten sie alles tun, um ihre Griffe zu festigen, Zahlen. Wenn sie z. B. denken, dass zu viele „Gag-Apps“ werden eingeblendet in der Play-Suche von Prüfern finden lassen. (Sie können Menschen mit Labeln beschriftete Daten in diesem Fall durchführbar, da eine relativ kleine Suchanfragen machen einen großen Teil der Zugriffe aus.) Wenn Ihr Probleme messbar sind, können Sie sie als Funktionen, Zielsetzungen oder Metriken. Die allgemeine Regel lautet: Zuerst messen, dann optimieren.

Regel 28: Identisches kurzfristiges Verhalten bedeutet nicht dasselbe langfristiges Verhalten.

Stellen Sie sich vor, Sie haben ein neues System, und berechnet dann die Klickwahrscheinlichkeit für jedes Dokument und jede Abfrage. Sie stellen fest, dass das Verhalten in beiden Fällen nahezu identisch mit Ihrem aktuellen System ist. Parallele Tests und A/B-Tests durchführen. Aufgrund seiner Einfachheit führen Sie die Lösung daher ein. Es werden jedoch keine neuen Apps angezeigt. Warum? Da Ihre nur ein Dokument auf Basis seines eigenen Verlaufs bei dieser Suchanfrage anzeigt, dass ein neues Dokument angezeigt werden sollte.

Um zu verstehen, wie ein solches System langfristig funktionieren würde, wird nur mit Daten trainiert, die bei der Live-Version des Modells erfasst wurden. Das ist sehr schwierig.

Training und Servierabweichung

Abweichungen zwischen Training und Bereitstellung sind Unterschiede zwischen der Leistung während des Trainings die Leistung während der Auslieferung steigern. Diese Verzerrung kann folgende Ursachen haben:

  • Eine Diskrepanz zwischen der Verarbeitung von Daten in den Trainings- und Bereitstellungspipelines.
  • Eine Änderung der Daten zwischen dem Training und der Bereitstellung.
  • Eine Feedbackschleife zwischen Ihrem Modell und Ihrem Algorithmus.

Wir haben bei Google die Produktionssysteme von maschinellem Lernen beobachtet, Abweichungen bei der Auslieferung auftreten, die sich negativ auf die Leistung auswirken. Die beste Lösung besteht darin, überwachen, damit System- und Datenänderungen keine Verzerrungen verursachen. und unbemerkt bleiben.

Regel 29: Um sicherzustellen, dass das Training wie vorgesehen funktioniert, sollten Sie den Satz von Features speichern, die zum Zeitpunkt der Bereitstellung verwendet wurden, und diese Funktionen dann in ein Log übertragen, um sie zum Zeitpunkt des Trainings zu verwenden.

Auch wenn Sie das nicht für jedes Beispiel tun können, tun Sie dies nur für einen kleinen Bruchteil, dass Sie die Konsistenz zwischen Bereitstellung und Training überprüfen können (siehe Regel 37). Teams, die das geschafft haben waren von den Ergebnissen manchmal überrascht. YouTube-Startseite Umstellung auf Protokollierungsfunktionen zum Zeitpunkt der Bereitstellung mit erheblicher Qualität und eine geringere Codekomplexität. Viele Teams wechseln ihre Infrastruktur, wie wir sprechen.

Regel Nr. 30: Stichprobendaten nach Wichtigkeit – lassen Sie sie nicht willkürlich weg.

Bei zu vielen Daten besteht die Versuchung, die Dateien 1 bis 12 die Dateien 13–99 ignorieren. Und genau das ist das Problem. Obwohl Daten, die Nutzern nie angezeigt werden kann, ist die Gewichtung der Wichtigkeit für die Ruhe. Die Gewichtung bedeutet, dass Sie Beispiel X mit einer Wahrscheinlichkeit von 30% und gewichten Sie dann 10/3. Mit die Gewichtung der Wichtigkeit, alle Kalibrierungseigenschaften, die in Regel 14 halten.

Regel 31: Wenn Sie zum Zeitpunkt des Trainings und der Bereitstellung Daten aus einer Tabelle zusammenführen, können sich die Daten in der Tabelle ändern.

Angenommen, Sie führen Dokument-IDs mit einer Tabelle zusammen, die Funktionen für diese Dokumente enthält, z. B. Kommentare oder Klicks). Zwischen dem Training und der Bereitstellung werden Funktionen in kann die Tabelle geändert werden. Die Vorhersage Ihres Modells für dasselbe Dokument unterscheiden sich dann zwischen Training und Bereitstellung. Das lässt sich am einfachsten vermeiden, Das Problem besteht darin, Features zum Zeitpunkt der Bereitstellung zu protokollieren (siehe Regel 32 ). Wenn die Tabelle sich nur langsam ändern, können Sie auch einen stündlichen oder täglichen Snapshot der Tabelle erstellen, um bzw. relativ nah an Daten. Bitte beachten Sie, dass das Problem dadurch immer noch nicht vollständig behoben wird. Problem.

Regel 32: Verwenden Sie nach Möglichkeit Code zwischen der Trainingspipeline und der Bereitstellungspipeline mehrfach.

Die Batch-Verarbeitung unterscheidet sich von der Online-Verarbeitung. Bei der Onlineverarbeitung Sie müssen jede Anfrage beim Eintreffen verarbeiten (z.B. müssen Sie eine separate Suche durchführen, für jede Abfrage), während Sie bei der Batchverarbeitung Aufgaben (z.B. eines Joins). Bei der Auslieferung erfolgt die Onlineverarbeitung, Training ist eine Batch-Verarbeitungsaufgabe. Es gibt jedoch einige Dinge, um Code wiederverwenden zu können. Sie können beispielsweise ein Objekt erstellen, in Ihrem System, bei dem das Ergebnis von Abfragen oder Joins menschenlesbar gespeichert sind, und Fehler können leicht getestet werden. Gehen Sie dann so vor: Sobald Sie alle Informationen gesammelt haben, führen Sie eine gängige Methode aus, um eine Brücke zwischen dem menschenlesbaren Objekt und das Format des ML-Systems, zu erwarten ist. Dadurch wird eine Ursache für Abweichungen zwischen Training und Bereitstellung beseitigt. Als Daher sollten Sie darauf achten, dass Sie zwischen dem Training und die Anzeigenbereitstellung. Diese Entscheidung wird es Ihnen fast unmöglich machen, Code.

Regel 33: Wenn Sie ein Modell basierend auf den Daten bis zum 5. Januar erstellen, testen Sie es an den Daten vom 6. Januar und danach.

Im Allgemeinen wird die Leistung eines Modells anhand der Daten gemessen, die nach den Daten gesammelt wurden. mit denen Sie das Modell trainiert haben, da dies besser widerspiegelt, was Ihr System in für die Produktion. Wenn Sie bis zum 5. Januar ein Modell basierend auf den Daten erstellen, mit den Daten vom 6. Januar. Sie werden erwarten, dass die Leistung nicht so gut mit den neuen Daten, aber es sollte nicht radikal schlechter sein. Da es tägliche Auswirkungen geben kann, können Sie den durchschnittlichen Klick -Rate oder Conversion-Rate, sondern der Bereich unterhalb der Kurve, der die Wahrscheinlichkeit, dass dem positiven Beispiel eine höhere Punktzahl als ein negatives Ergebnis sollten ziemlich nah sein.

Regel Nr. 34: Gehen Sie bei der binären Klassifizierung für die Filterung (z. B. Spamerkennung oder das Ermitteln interessanter E-Mails) kleine kurzfristige Leistungseinbußen für sehr saubere Daten ein.

Beim Filtern werden als negativ markierte Beispiele für Nutzenden. Angenommen, Sie haben einen Filter, der 75% der negativen Beispiele bei der Auslieferung. Sie könnten versucht sein, zusätzliche Trainingsdaten aus dem Instanzen, die Nutzern angezeigt werden. Wenn ein Nutzer z. B. eine E-Mail als Spam markiert, Ihr Filter durchlassen hat, können Sie daraus etwas lernen.

Dieser Ansatz führt jedoch zu Stichprobenverzerrungen. Sie können sauberere Daten sammeln, wenn Stattdessen kennzeichnen Sie 1% der Zugriffe während der Auslieferung als "ausgesetzt" und senden der Nutzenden anhand von Beispielen. Jetzt blockiert Ihr Filter mindestens 74% der negative Beispiele. Diese Beispiele können Sie als Trainingsdaten verwenden.

Wenn Ihr Filter mindestens 95% der negativen Beispiele blockiert, weniger realisierbar ist. Wenn Sie die Auslieferung Ihrer Anzeigen können Sie eine noch winzigere Stichprobe erstellen (z.B.0,1% oder 0,001%). Zehn um die Leistung ziemlich genau einschätzen zu können.

Regel Nr. 35: Achten Sie auf die inhärente Verzerrung bei Rankingproblemen.

Wenn Sie Ihren Ranking-Algorithmus so grundlegend ändern, dass unterschiedliche Ergebnisse dass Ihr Algorithmus die Daten, die Ihr Algorithmus verarbeitet, effektiv in der Zukunft sehen werden. Diese Art von Verzerrungen treten auf. Sie sollten Ihre um sie herum. Es gibt mehrere unterschiedliche Ansätze. Diese Ansätze sind alle Möglichkeiten, um Daten zu bevorzugen, die Ihr Modell bereits kennt.

  1. Sie haben eine höhere Regularisierung für Funktionen, die mehr Abfragen abdecken, die nur für eine Abfrage aktiviert sind. Auf diese Weise bevorzugt das Modell zu Funktionen, die sich auf bestimmte Suchanfragen beziehen, auf alle Abfragen generalisieren. Dieser Ansatz kann dazu beitragen, bei irrelevanten Suchanfragen gefunden werden. Beachten Sie, dass dies gegenüber der Die konventionellere Empfehlung einer stärkeren Regularisierung für Featurespalten mit eindeutigen Werten.
  2. Nur Elemente dürfen eine positive Gewichtung haben. Daher ist jede gute Funktion besser als eine „unbekannte“ Funktion.
  3. Sie haben keine Funktionen, die nur für Dokumente vorgesehen sind. Dies ist eine Extremversion von Nr. 1. Für selbst wenn eine bestimmte App ein beliebter Download ist, unabhängig davon, nicht überall angezeigt werden sollen. Ohne „Nur Dokument“ ist das ganz einfach. Warum möchten Sie, dass ein bestimmter immer etwas mit der Bedeutung von sodass alle gewünschten Apps erreichbar sind. Wenn ein Nutzer z. B. nach z. B. „wütende Vögel“ herunterladen. nicht ihre Absicht war. Durch das Präsentieren einer solchen App kann die Downloadrate verbessert werden, die Bedürfnisse der Nutzenden letztendlich unzufrieden.

Regel 36: Vermeiden Sie Rückkopplungsschleifen mit Positionsmerkmalen.

Die Position der Inhalte wirkt sich maßgeblich darauf aus, wie wahrscheinlich es ist, dass Nutzende mit der App interagieren. damit nichts. Wenn Sie eine App an erster Position platzieren, wird sie häufiger angeklickt. und Sie sind davon überzeugt, dass es wahrscheinlicher ist, dass darauf geklickt wird. Eine Möglichkeit, Dabei werden Positionsmerkmale hinzugefügt, d.h. Merkmale über die Position des Inhalt auf der Seite. Sie trainieren Ihr Modell mit Positionsmerkmalen und lernt das Gewichten, zum Beispiel das Feature „1stposition“ . Ihr Modell damit andere Faktoren bei Beispielen mit „1stposition=true“ weniger gewichtet werden. Bei der Bereitstellung geben Sie keinen Instanzen das Positionsmerkmal oder Sie geben haben alle dieselbe Standardfunktion, da Sie Kandidaten bewerten, bevor Sie in welcher Reihenfolge sie angezeigt werden.

Es ist wichtig, Positionsmerkmale etwas von anderen getrennt zu halten. des Modells aufgrund dieser Asymmetrie zwischen Training und Tests. Wenn das Modell die Summe einer Funktion der Positionsmerkmale und einer Funktion der übrigen Funktionen ist ideal. Überqueren Sie beispielsweise nicht das Positionsmerkmale mit beliebigen Dokumentfunktionen kombinieren.

Regel 37: Trainings-/Bereitstellungsabweichung messen

Es gibt mehrere Gründe, die ganz allgemein zu Verzerrungen führen können. Darüber hinaus können Sie sie in mehrere Teile unterteilen:

  • Der Unterschied zwischen der Leistung gemäß den Trainingsdaten und dem Holdout Daten. So etwas wird im Allgemeinen immer bestehen und nicht unbedingt schlecht sein.
  • Die Differenz zwischen der Leistung der Holdout-Daten und der Leistung am nächsten Tag. Daten. Auch dies wird immer bestehen. Sie sollten Ihre Regularisierung auf die Leistung am nächsten Tag zu maximieren. Allerdings gibt es deutliche Leistungsrückgänge zwischen Holdout- und Next-Tag-Daten ein Hinweis darauf sein, dass einige Funktionen und sich möglicherweise nachteilig auf die Modellleistung auswirken.
  • Unterschied zwischen der Leistung am „nächsten Tag“ Daten und die Live- Daten. Wenn Sie ein Modell auf ein Beispiel in den Trainingsdaten anwenden, sollte das bei der Auslieferung genau das gleiche Ergebnis liefern (siehe Regel 5 ). Daher weist eine Diskrepanz hier wahrscheinlich auf einen technischen Fehler hin.

ML-Phase III: Verlangsamtes Wachstum, Optimierung der Optimierung und komplexe Modelle

Es gibt gewisse Anzeichen dafür, dass die zweite Phase ihren Abschluss erreicht. Zunächst einmal werden deine monatlichen Gewinne sinken. Sie werden beginnen, Kompromisse zwischen Messwerten: Einige Werte werden steigen, andere sinken zu testen. An dieser Stelle wird es interessant. Da die Gewinne schwerer zu erkennen sind, muss das maschinelle Lernen komplexer werden. Ein wichtiger Hinweis: enthält mehr Regeln für den blauen Himmel als frühere Abschnitte. Viele Teams Phase I und Phase 2 des maschinellen Lernens. Einmalige Phase III erreicht wurde, müssen die Teams ihren eigenen Weg finden.

Regel 38: Verschwenden Sie keine Zeit mit neuen Funktionen, wenn nicht übereinstimmende Ziele zum Problem geworden sind.

Ihr Team beginnt, sich mit Problemen zu befassen, die außerhalb der Zielsetzungen Ihres aktuellen ML-Systems liegen. Als die zuvor genannten Kriterien erfüllt werden, falls die Produktziele nicht durch den bestehenden Algorithmus müssen Sie entweder Ihr Ziel oder Ihre Produktziele ändern. Für Sie können beispielsweise Klicks, +1 oder Downloads optimieren, Entscheidungen zum Teil auf menschlichen Prüfern basieren.

Regel Nr. 39: Entscheidungen zur Markteinführung sind Proxy für langfristige Produktziele.

Alice hat eine Idee, wie man den logistischen Verlust bei der Vorhersage von Installationen reduzieren kann. Sie eine Funktion hinzufügt. Der logistische Verlust sinkt. Bei einem Live-Experiment steigt die Installationsrate. Wenn sie jedoch eine Überprüfung eine Person darauf hinweist, dass die Anzahl der täglich aktiven Nutzenden um 5 % zurückgeht. Das Team beschließt, das Modell nicht auf den Markt zu bringen. Alice ist enttäuscht, aber jetzt stellt fest, dass Entscheidungen zur Markteinführung von mehreren Kriterien abhängen, von denen nur einige lassen sich direkt mit ML optimieren.

Die Wahrheit ist, dass die reale Welt keine Verliese und Drachen ist: Es gibt keine Treffer Punkte“ den Zustand des Produkts identifizieren. Das Team muss die die gesammelten Statistiken, um effektiv vorherzusagen, wie gut das System sein wird. zu erhalten. Sie müssen Wert auf Interaktionen legen, Nutzer, die an einem Tag aktiv waren, 30 Aktive Nutzer pro Tag, Umsatz und Return on Investment des Werbetreibenden Diese Metriken, die die in A/B-Tests an sich gemessen werden können, sind nur Anhaltspunkte für längerfristige Ziele: zufriedene Nutzer, mehr Nutzer, zufriedene Partner und Gewinn, und selbst dann könnten Sie Proxys in Betracht ziehen, um eine nützliche, qualitativ hochwertige und einem florierenden Unternehmen in fünf Jahren.

Die einzigen einfachen Entscheidungen bei der Markteinführung sind, wenn alle Messwerte verbessert werden (oder nicht schlimmer wird). Wenn das Team die Wahl zwischen einem hochentwickelten Gerät hat, Lernalgorithmus und eine einfache Heuristik, wenn diese einfache Heuristik eine alle Metriken besser verstehen, sollte sie die Heuristik wählen. Außerdem gibt es ist keine explizite Rangfolge aller möglichen Messwerte. Berücksichtigen Sie dabei insbesondere die folgenden zwei Szenarien:

Test Täglich aktive Nutzer Umsatz/Tag
A 1 Million 4 Mio. $
B 2 Millionen 2 Mio. $

Wenn das aktuelle System A ist, wird das Team wahrscheinlich nicht zu B wechseln. Wenn wenn das aktuelle System B ist, wird das Team wahrscheinlich nicht zu A wechseln. Dieses scheint mit rationalem Verhalten im Konflikt zu stehen; Vorhersagen über sich ändernde Metriken können oder nicht ganz ausfallen, und daher besteht ein großes Risiko ändern können. Jede Metrik deckt ein bestimmtes Risiko ab, mit dem sich das Team befasst.

Darüber hinaus deckt keine Metrik das eigentliche Problem des Teams ab: "Wo ist mein Produkt? wird es in fünf Jahren sein“?

Einzelpersonen hingegen neigen dazu, ein Ziel zu bevorzugen, das sie direkt optimieren. Die meisten Tools für maschinelles Lernen bevorzugen eine solche Umgebung. Eine neue Funktionen zu entwickeln, kann in einem solch großen Raum zu verbessern. Es gibt eine Art von maschinellem Lernen, mehrfach objektives Lernen, der dieses Problem angeht. Zum Beispiel kann eine Problem mit der Einschränkungszufriedenheit, das Untergrenzen für jede Metrik hat, und optimiert eine lineare Kombination von Messwerten. Aber selbst dann haben nicht alle können die Messwerte einfach als Ziele des maschinellen Lernens bezeichnet werden: angeklickt wurde oder eine App installiert wurde, wurde der Inhalt angezeigt. Aber ist es viel schwieriger, herauszufinden, warum ein Nutzer Ihre Website besucht. So lässt sich der der zukünftige Erfolg einer Website als Ganzes KI-kompatibel: so hart wie ein Computer Vision oder Natural Language Processing.

Regel Nr. 40: Halte Ensembles einfach.

Vereinheitlichte Modelle, die Rohmerkmale aufnehmen und Inhalte direkt einstufen, sind die und wie sie am einfachsten zu beseitigen und zu verstehen sind. Ein Ensemble von Modellen (ein „Modell“ das die Bewertungen anderer Modelle kombiniert), funktioniert besser. Um Jedes Modell sollte entweder ein Ensemble sein, das nur die Eingabe andere Modelle oder ein Basismodell mit vielen Features, aber nicht beides. Wenn Sie auf anderen, separat trainierten Modellen, und kombinieren diese zu unerwünschtem Verhalten führen.

Verwenden Sie für die Zusammensetzung ein einfaches Modell, das nur die Ausgabe Ihrer „Basis“ verwendet Modelle als Eingaben nutzen. Außerdem möchten Sie Eigenschaften für diese Ensemblemodelle erzwingen. So sollte beispielsweise eine von einem Basismodell erzeugte Steigerung des Scores nicht die Partitur des Ensembles verringern. Außerdem ist es am besten, wenn die eingehenden Modelle semantisch interpretierbar (z. B. kalibriert) sind, sodass Änderungen des zugrunde liegende Modelle verwirren das Ensemblemodell nicht. Außerdem erzwingen Sie, dass ein der vorhergesagten Wahrscheinlichkeit eines zugrunde liegenden Klassifikators die vorhergesagte Wahrscheinlichkeit des Ensembles verringern.

Regel 41: Bei Leistungseinbußen sollten Sie nach qualitativ neuen Informationsquellen suchen, die Sie hinzufügen können, anstatt vorhandene Signale zu optimieren.

Sie haben einige demografische Informationen über den Nutzer hinzugefügt. Sie haben einige Informationen zu den Wörtern im Dokument. Sie haben die Vorlage durchlaufen der explorativen Datenanalyse und stimmten die Regularisierung ab. Du hast noch keine Markteinführung mit mehr innerhalb weniger Quartale um über 1% bei den wichtigsten Messwerten zu steigern. Was heißt das für die Zukunft?

Jetzt ist es an der Zeit, die Infrastruktur für radikal andere z. B. den Verlauf der Dokumente, auf die dieser Nutzer im den letzten Tag, die letzte Woche oder das letzte Jahr oder Daten aus einer anderen Property. Verwenden Sie Wikidata Rechtspersönlichkeiten oder unternehmensinternen Elementen (z. B. Knowledge Graph). Tiefe zu lernen. Passen Sie die Erwartungen in Bezug auf den Return on Investment (ROI) an. von Ihren Investitionen erwarten, und Ihre Bemühungen entsprechend ausweiten. Wie bei jedem Engineering-Projekt zu testen, müssen Sie den Nutzen abwägen, der durch das Hinzufügen neuer Funktionen gegen die Kosten einer höheren Komplexität.

Regel 42: Erwarte nicht, dass Vielfalt, Personalisierung oder Relevanz so stark mit Beliebtheit zusammenhängen, wie du denkst.

Vielfalt kann viele Bedeutungen haben. Die Vielfalt der Inhalte die am häufigsten vorkommen. Personalisierung bedeutet, die Nutzenden ihre eigenen Ergebnisse. Relevanz bedeutet, dass die Ergebnisse für eine bestimmte für diese Suchanfrage geeigneter sind als alle anderen. Daher sind alle drei vom Gewöhnlichen abweichen.

Das Problem ist, dass das Gewöhnliche schwer zu schlagen ist.

Wenn Ihr System Klicks, Verweildauer, Wiedergaben, +1-Empfehlungen, erneut geteilte Inhalte usw. messen, wird dadurch die Beliebtheit der Inhalte gemessen. Mannschaften versuchen manchmal, ein persönliches Modell mit Vielfalt zu erlernen. Zur Personalisierung Funktionen, die eine Personalisierung ermöglichen (einige Funktionen, die für Interessen der Nutzenden) oder diversifizieren (Funktionen, die angeben, ob dieses Dokument Funktionen, die mit anderen zurückgegebenen Dokumenten gemeinsam sind (z. B. Autor oder Inhalt), und feststellen, dass diese Merkmale weniger Gewicht erhalten (oder manchmal ein anderes Zeichen) als erwartet.

Das bedeutet aber nicht, dass Vielfalt, Personalisierung oder Relevanz keinen Wert haben. Wie in der vorherigen Regel erwähnt, können Sie durch die Nachverarbeitung Vielfalt oder Relevanz. Wenn sich die längerfristigen Ziele erhöhen, erklären, dass Vielfalt/Relevanz neben der Beliebtheit wertvoll ist. Sie können Nutzen Sie dann entweder die Nachbearbeitung weiter oder ändern Sie die auf Diversität oder Relevanz basiert.

Regel Nr. 43: Ihre Freunde sind bei verschiedenen Produkten oft identisch. In der Regel sind es eher weniger Interessen.

Die Teams bei Google erhielten viel Aufmerksamkeit davon, ein Modell zur Vorhersage Nähe einer Verbindung in einem Produkt und auch in einem anderen gut funktioniert. Deine Freunde sind, wer sie sind. Andererseits habe ich mir mehrere Teams angesehen, mit Personalisierungsfunktionen über mehrere Produktaufteilungen zu kämpfen haben. Ja, anscheinend als ob es funktionieren sollte. Im Moment sieht das nicht so aus. Was manchmal Rohdaten aus einer Property zu verwenden, um das Verhalten einer anderen Property vorherzusagen. Außerdem Selbst wenn Sie wissen, dass ein Nutzer bereits einen Verlauf für eine andere Property hat, Hilfe. Zum Beispiel kann das Vorhandensein von User-Aktivitäten für zwei Produkte für sich genommen bedeutungsvoll ist.

Es gibt viele Dokumente zum Thema maschinelles Lernen bei Google und auch extern.

Danksagungen

Dank David Westbrook, Peter Brandt, Samuel Ieong, Chenyu Zhao, Li Wei Michalis Potamias, Evan Rosen, Barry Rosenberg, Christine Robson, James Pine Tal Shaked, Tushar Chandra, Mustafa Ispir, Jeremiah Harmsen, Konstantinos Katsiapis, Glen Anderson, Dan Duckworth, Shishir Birmiwal, Gal Elidan und Su Lin Wu, Jaihui Liu, Fernando Pereira und Hrishikesh Aradhye für viele Korrekturen, Vorschläge und hilfreiche Beispiele für dieses Dokument. Vielen Dank auch an Kristen Lefevre, Suddha Basu und Chris Berg, die bei einer früheren Version mitgeholfen haben. Beliebig Fehler, Auslassungen oder (atmen!) unbeliebte Meinungen gehören mir.

Anhang

Dieses Dokument enthält zahlreiche Verweise auf Google-Produkte. Bis um mehr Kontext zu geben. Ich beschreibe kurz die häufigsten Beispiele, unten.

YouTube im Überblick

YouTube ist ein Streaming-Videodienst. Sowohl „Empfohlene Videos“ als auch die YouTube-Startseite Die Page-Teams setzen ML-Modelle ein, um die Videoempfehlungen zu bewerten. Empfehlungen für „Als Nächstes ansehen“ nach dem aktuell wiedergegebenen Video ansehen. Auf der Startseite wird empfohlen, den Nutzern, die auf der Startseite stöbern.

Google Play – Übersicht

Bei Google Play gibt es viele Modelle, die eine Vielzahl von Problemen lösen. Google Play-Suche Für personalisierte Empfehlungen auf der Startseite und Apps, die von Nutzern ebenfalls installiert wurden, wird Folgendes verwendet: maschinelles Lernen.

Google Plus – Übersicht

Google Plus setzte maschinelles Lernen in einer Vielzahl von Situationen ein: beim Ranking von Beiträgen in der „Stream“ von Beiträgen, die für den Nutzer sichtbar sind, im Ranking der angesagten Beiträge Posts (Beiträge die derzeit sehr beliebt sind), eine Rangfolge von Personen, die Sie kennen, usw. Google+ alle privaten Konten wurden 2019 geschlossen und durch Google Currents ersetzt. für Geschäftskonten.