Automatisierte Profilbildmoderation bei BlaBlaCar mittels Deep Learning

Mar 09 2023
Eine Geschichte darüber, wie wir die manuelle Moderation von Profilbildern bei BlaBlaCar drastisch reduziert haben. Profilbildmoderation bei BlaBlaCar Im Jahr 2022 wurden mehr als 19 Millionen Profilbilder auf die Mitfahrplattform BlaBlaCar hochgeladen.

Eine Geschichte darüber, wie wir die manuelle Moderation von Profilbildern bei BlaBlaCar drastisch reduziert haben.

Profilbildmoderation bei BlaBlaCar

Im Jahr 2022 wurden mehr als 19 Millionen Profilbilder auf die Mitfahrplattform BlaBlaCar hochgeladen. Das entspricht etwa 53.000 Bildern pro Tag.

Diese Profilbilder tragen dazu bei, Vertrauen in unsere Fahrgemeinschaftsgemeinschaft aufzubauen. Sie helfen Fahrgemeinschaften dabei, zu wissen, mit wem sie Fahrgemeinschaften bilden , und sich am Treffpunkt gegenseitig zu erkennen.

Mithilfe von Profilbildern wissen Sie, mit wem Sie eine Fahrgemeinschaft bilden, und können sie am Treffpunkt leicht erkennen.

Unser Community Relations-Team moderiert seit der Gründung von BlaBlaCar Bilder. Sie tragen dazu bei, das höchste Qualitätsniveau auf der Plattform aufrechtzuerhalten, indem sie sicherstellen, dass Profilbilder bestimmte Regeln einhalten. Von den 53.000 täglich moderierten Bildern werden etwa 25 % abgelehnt.

Die Moderation von Profilbildern erfolgt anhand einer Reihe von Regeln, die in dieser Tabelle aufgeführt sind.

Bis Ende 2021 erfolgte die gesamte Moderation von Profilbildern manuell . Der Arbeitsaufwand war erheblich (ungefähr 12 VZÄ) und führte zu erheblichen Verzögerungen bei der Genehmigung von Profilbildern während der Spitzenzeiten auf der Plattform. Beispielsweise betrug die Verzögerung während der französischen Streiks im Dezember 2019 fast drei Tage, während sie normalerweise nur ein paar Stunden betrug.

Entwerfen einer automatisierten Pipeline

Das Data Services-Team schlug den Entwurf einer automatisierten Pipeline für die Moderation von Profilbildern vor. Unser Ziel war es, den Großteil der Profilbildmoderationsarbeit zu automatisieren, ohne Kompromisse bei unseren Qualitätsstandards einzugehen.

Die Pipeline nimmt ein Bild als Eingabe und gibt Folgendes zurück:

  • Ein Etikett : entweder „ablehnen“, „annehmen“ oder „zur manuellen Etikettierung senden“
  • Koordinaten : Bei einem akzeptierten Bild führen wir einen Bildausschnitt um das Gesicht herum durch.
  1. Gesichter im Bild erkennen und zuschneiden: Allgemein. Wenn es nicht genau ein Gesicht gibt, lehnen Sie das Bild ab. Andernfalls schneiden Sie das Bild um die Gesichtskoordinaten herum zu. Um diese Aufgabe auszuführen, haben wir eine Open-Source-Bibliothek namens face-detection verwendet . Es ermöglichte uns, mithilfe eines einzeiligen Python-Codes Gesichter auf Bildern zu lokalisieren, mit einer geschätzten Genauigkeit von mehr als 99 %.
  2. Sagen Sie voraus, ob das Bild angenommen oder abgelehnt werden soll: Spezifisch. Dies erfordert das Training eines Klassifikators, um die Moderationsregeln von BlaBlaCar zu lernen. Auf diese Aufgabe werden wir uns im nächsten Abschnitt konzentrieren.
  3. Prominente erkennen: Allgemein. In einigen Ländern ist das Hochladen des Bildes einer Berühmtheit als Profilbild gängige Praxis. In solchen Ländern müssen wir Bilder von Prominenten erkennen und sie ablehnen. Das ist eine komplexe Aufgabe: Gesichter zu erkennen ist eine Sache, Gesichter zu erkennen eine andere. Glücklicherweise ist es nicht spezifisch für unseren Anwendungsfall. Für diese Aufgabe haben wir uns für die Verwendung von AWS Rekognition entschieden , einer kostenpflichtigen API, mit der weniger als 5 Codezeilen ausreichten, um zu erkennen, ob es sich bei einem Bild um das einer Berühmtheit handelte oder nicht.

Wir haben einen Klassifikator entwickelt, dessen Zweck darin besteht, vorherzusagen, ob ein Bild, das um genau ein Gesicht herum zugeschnitten ist, angesichts der Moderationsregeln von BlaBlaCar akzeptiert werden sollte oder nicht.

Erstellen des Datensatzes

Wir haben die Daten mithilfe manueller Profilbild-Moderationsprotokolle gesammelt, die uns Zugriff sowohl auf das vom Benutzer hochgeladene Rohbild (vor dem Zuschneiden) als auch auf die zugehörige Kennzeichnung („Akzeptieren“ oder „Ablehnen“) ermöglichten.

Um unseren endgültigen Datensatz zu erhalten, haben wir dann die gleiche Vorverarbeitung angewendet, die auch in der Produktion angewendet würde:

  1. Erkennen Sie Gesichter auf allen Bildern mithilfe der oben erwähnten Open-Source-Python-Bibliothek.
  2. Wenn nicht genau ein Gesicht vorhanden ist, schließen Sie es aus dem Trainingsdatensatz aus. Andernfalls schneiden Sie das Bild um die Gesichtskoordinaten herum zu.

Um das Modell zu trainieren, verwendeten wir eine Technik namens Transfer Learning. Laut Wikipedia besteht diese Technik darin, „Wissen, das bei der Lösung eines Problems gewonnen wurde, zu speichern und auf ein anderes, aber verwandtes Problem anzuwenden“.

Konkret sind wir diesen Schritten gefolgt:

  1. Wir haben ein Open-Source-Deep-Learning-Modell verwendet, das auf ImageNet , einer umfangreichen Open-Source-Bilddatenbank, vorab trainiert wurde, um generische Klassifizierungsaufgaben durchzuführen.
  2. Wir haben alle Schichten des Netzwerks eingefroren, mit Ausnahme von zwei vollständig verbundenen Schichten ganz am Ende. Sie bilden das, was wir die „Spezialisierungsschicht“ nennen. Bei der Anpassung des Modells an unseren Profilbilddatensatz passen diese Ebenen das allgemeine Wissen des vorab trainierten Modells an die Besonderheiten der BlaBlaCar-Profilbildmoderationsaufgabe an.
  3. Wir haben ein vorab trainiertes Modell verwendet und es auf BlaBlaCar-Bilder spezialisiert.

Teilautomatisierung der Profilbildmoderation mithilfe des Modells

Die folgende Verteilung zeigt, dass das Modell die Daten sehr gut trennen kann:

Die Daten werden durch unseren Klassifikator gut getrennt.

Allerdings lässt sich in der Mitte des Verteilungsplots ein Bereich beobachten, in dem es etwa gleich viele abgelehnte und angenommene Bilder gibt. Wir nennen dies die „Grauzone“. Dies ist der Teil, in dem es am schwierigsten ist, eine Entscheidung auf der Grundlage der Modellvorhersage zu treffen, da diese weder nahe bei 0 % noch bei 100 % liegt. Dies ist auch der Teil, in dem die Vorhersage des Modells am wenigsten zuverlässig ist.

Um die höchsten Qualitätsstandards auf der Plattform aufrechtzuerhalten, haben wir uns entschieden, die Bilder in der Grauzone der manuellen Moderation zu übergeben, wie die folgende Grafik verdeutlicht:

Die Grauzone wird an die manuelle Moderation gesendet. Der Rest wird automatisch akzeptiert oder abgelehnt.

Darüber hinaus wollten wir die Qualität des Modells kontinuierlich überwachen. Daher haben wir beschlossen, unvoreingenommene Labels zu sammeln, indem wir unabhängig von der Vorhersage des Modells eine Zufallsstichprobe von 5 % aller Bilder zur manuellen Moderation schickten. Dies würde es uns ermöglichen, die Leistung des Modells, insbesondere seine Präzision und seinen Rückruf, kontinuierlich zu messen . Die gesammelten Etiketten (entweder akzeptiert oder abgelehnt) helfen auch bei der Neuschulung des Modells.

Mit diesem Ansatz ist es uns gelungen, 80 % der Bildmoderation zu automatisieren und gleichzeitig die Genauigkeit auf 97 % zu erhöhen (im Vergleich zu 93 % bei manueller Moderation). Die restlichen 20 % werden an die manuelle Moderation gesendet. Die gesammelten Labels werden auch zur Neuschulung des Modells verwendet und tragen dazu bei, dass es komplexe Fälle besser vorhersagen kann, die derzeit nahe an der Entscheidungsgrenze liegen.

Das Modell befindet sich zum Zeitpunkt des Verfassens dieses Artikels bereits seit einem Jahr in Produktion. Es erfordert nur sehr wenig oder gar keine Wartung, da wir bei der Aufgabe keine Drift beobachten.

Die zentralen Thesen

Wenn Sie sich aus dieser Lektüre drei Dinge merken müssten, könnten es diese sein:

  1. Um eine automatisierte Machine-Learning- oder Deep-Learning-Pipeline aufzubauen, teilen Sie die Arbeit in generische und nicht generische Aufgaben auf . Wenn eine Aufgabe generisch ist, ist wahrscheinlich bereits ein Paket vorhanden, das genau das tut, was Sie suchen. Auf diese Weise können Sie Ihre Aufmerksamkeit und Energie auf die Aufgaben konzentrieren, die für Ihren Anwendungsfall spezifisch sind.
  2. Transferlernen hilft Ihnen, mit sehr wenig Aufwand und gekennzeichneten Daten großartige Ergebnisse zu erzielen , indem Sie vorab trainierte Modelle verwenden und diese an Ihre spezifischen Aufgaben anpassen.
  3. Menschlicher Input ist immer noch wertvoll , da er das Rohmaterial für das Training des Modells liefert: Etiketten. Aber durch die Automatisierung der einfachen Entscheidungen können Sie die menschliche Aufmerksamkeit genau dort lenken, wo sie den größten Mehrwert bringt: auf die schwierigen Fälle, näher an der Entscheidungsgrenze und auf die Qualitätsüberwachung.