Beaufsichtigte Ähnlichkeitsmessung

Anstatt manuell kombinierte Merkmalsdaten zu vergleichen, können Sie die Merkmalsdaten mit Darstellungen von sogenannten Einbettungen reduzieren und die Einbettungen dann vergleichen. Einbettungen werden generiert, indem ein beaufsichtigtes tiefes neuronales Netzwerk (DNN) mit den Featuredaten selbst trainiert wird. Die Einbettungen ordnen die Merkmalsdaten einem Vektor in einem Einbettungsbereich zu. Normalerweise hat der Einbettungsraum weniger Dimensionen als die Merkmalsdaten in einer Weise, die eine latente Struktur des Merkmalssatzes erfasst. Die Einbettungsvektoren für ähnliche Beispiele, z. B. YouTube-Videos, die sich dieselben Nutzer angesehen haben, sind im Einbettungsbereich eng beieinander zu finden. Wir sehen uns an, wie die Ähnlichkeitsmessung diese „Nähe“ verwendet, um die Ähnlichkeit für Paarbeispiele zu quantifizieren.

Denken Sie daran, dass wir das beaufsichtigte Lernen nur beschreiben, um unsere Ähnlichkeitsmessung zu erstellen. Die Ähnlichkeitsmessung, ob manuell oder überwacht, wird dann von einem Algorithmus verwendet, um nicht überwachtes Clustering durchzuführen.

Manuelle und beaufsichtigte Maßnahmen vergleichen

In dieser Tabelle wird beschrieben, wann Sie je nach Ihren Anforderungen eine manuelle oder überwachte Ähnlichkeitsmessung verwenden sollten.

AnforderungManuellMit Elternaufsicht
Redundante Informationen in korrelierten Features eliminieren Nein, Sie müssen die Korrelationen zwischen den Features separat prüfen. Ja, DNN verhindert redundante Informationen.
Informationen zu berechneten Ähnlichkeiten liefern Ja Nein, Einbettungen können nicht entschlüsselt werden.
Geeignet für kleine Datasets mit wenigen Features. Ja, es ist ganz einfach, eine manuelle Maßnahme mit einigen Funktionen festzulegen. Nein, kleine Datasets liefern nicht genügend Trainingsdaten für einen DNN.
Geeignet für große Datasets mit vielen Features. Nein, es ist sehr schwierig, redundante Informationen aus mehreren Features manuell zu entfernen und dann zusammenzuführen. Ja, der DNN entfernt automatisch redundante Informationen und kombiniert Features.

Verfahren für gemeinsam überwachte Ähnlichkeitsmaßnahmen

Die folgende Abbildung zeigt, wie Sie eine Gemeinsamkeitsmaßnahme für überwachte Ähnlichkeiten erstellen:

Eingabefunktionsdaten. Wählen Sie DNN: Autoencoder oder Predictor.
      Extrahiert Einbettungen. Wählen Sie die Messung aus: Punktprodukt, Kosinus oder euklidischer Abstand.
Abbildung 1: Schritte zum Erstellen eines beaufsichtigten Ähnlichkeitsmesswerts

Sie haben bereits den ersten Schritt gelernt. Auf dieser Seite werden der nächste Schritt und die folgenden Schritte auf den nächsten Schritten beschrieben.

DNN auf Basis von Trainingslabels auswählen

Sie können Merkmalsdaten auf Einbettungen reduzieren, indem Sie einen DNN trainieren, der dieselben Merkmalsdaten sowohl als Eingabe als auch als Labels verwendet. Bei hausinternen Daten würde der DNN beispielsweise die Merkmale wie Preis, Größe und Postleitzahl verwenden, um diese Merkmale selbst vorherzusagen. Damit die Featuredaten zur Vorhersage derselben Featuredaten verwendet werden können, wird der DNN gezwungen, die Eingabefeaturedaten für Einbettungen zu reduzieren. Sie verwenden diese Einbettungen, um die Ähnlichkeit zu berechnen.

Ein DNN, der das Einbetten von Eingabedaten durch Vorhersage der Eingabedaten selbst lernt, wird als Autoencoder bezeichnet. Da die verborgenen Ebenen eines Autoencoders kleiner als die Eingabe- und Ausgabeebenen sind, wird der Autoencoder gezwungen, eine komprimierte Darstellung der Eingabemerkmaldaten zu lernen. Nachdem das DNN trainiert wurde, extrahieren Sie die Einbettungen aus der letzten verborgenen Ebene, um die Ähnlichkeit zu berechnen.

Ein Vergleich zwischen einem Autoencoder und einer Vorhersage-DNN.
       Die Starteingaben und die ausgeblendeten Ebenen sind identisch, aber die Ausgabe wird nach dem Schlüsselmerkmal im Prädikatsmodell gefiltert.
Abbildung 2: Ein Vergleich zwischen einem Autoencoder und einem Predictor.

Ein Autoencoder ist die einfachste Wahl, um Einbettungen zu generieren. Ein Autoencoder ist jedoch nicht die optimale Wahl, wenn bestimmte Merkmale beim Ermitteln der Ähnlichkeit wichtiger sein könnten als andere. Bei Hausdaten wäre beispielsweise „Preis“ wichtiger als „Postleitzahl“. Verwenden Sie in solchen Fällen nur die wichtige Funktion als Trainingslabel für den DNN. Da dieser DNN ein bestimmtes Eingabemerkmal sagt, anstatt alle Eingabemerkmale vorherzusagen, wird er als Vorhersage-DN bezeichnet. Beachten Sie die folgenden Richtlinien, um ein Feature als Label auszuwählen:

  • Ordnen Sie numerische Merkmale kategorischen Merkmalen als Labels zu, da der Verlust für numerische Merkmale einfacher zu berechnen und zu interpretieren ist.

  • Verwenden Sie keine kategorischen Merkmale mit Kardinalität \(\lesssim\) 100 als Labels. In diesem Fall wird der DNN nicht gezwungen, Ihre Eingabedaten auf Einbettungen zu reduzieren, da ein DNN einfach kategoriale Labels mit niedriger Kardinalität vorhersagen kann.

  • Entfernen Sie das Feature, das Sie als Label verwenden, aus der Eingabe für den DNN. Andernfalls prognostiziert der DNN die Ausgabe perfekt.

Abhängig von Ihrer Auswahl von Labels ist die daraus resultierende DNN entweder eine Autoencoder-DNN oder eine Prädiktor-DNN.

Verlustfunktion für DNN

Um das DNN zu trainieren, müssen Sie eine Verlustfunktion erstellen, indem Sie die folgenden Schritte ausführen:

  1. Berechnen Sie den Verlust für jede Ausgabe des DNN. Für Ausgaben, die so aussehen:
    • Verwenden Sie einen numerischen Wert, verwenden Sie den mittleren quadratischen Fehler (MSE).
    • Verwenden Sie für universale Kategorien den Log-Verlust. Sie müssen den Logverlust nicht selbst implementieren, da Sie ihn mit einer Bibliotheksfunktion berechnen können.
    • Verwenden Sie für kategoriale Kreuzentropie den Verlust. Sie müssen den Softmax-Kreuzentropieverlust nicht selbst implementieren, da Sie ihn mit einer Bibliotheksfunktion berechnen können.
  2. Berechnen Sie den Gesamtverlust, indem Sie den Verlust für jede Ausgabe addieren.

Achten Sie beim Addieren der Verluste darauf, dass jedes Feature proportional zum Verlust beiträgt. Wenn Sie beispielsweise Farbdaten in RGB-Werte konvertieren, haben Sie drei Ausgaben. Wenn Sie jedoch den Verlust für drei Ausgaben addieren, wird der Verlust für die Farbe dreimal so gewichtet wie andere Features. Multiplizieren Sie stattdessen jede Ausgabe mit 1/3.

DNN in einem Onlinesystem verwenden

Ein Onlinesystem für maschinelles Lernen erfasst kontinuierlich neue Eingabedaten. Du musst deinen DNN mit den neuen Daten trainieren. Wenn Sie jedoch Ihr DNN neu trainieren, unterscheiden sich Ihre Einbettungen, da DNN mit zufälligen Gewichtungen initialisiert werden. Stattdessen sollten Sie den DNN immer mit den vorhandenen Gewichtungen starten und ihn dann mit neuen Daten aktualisieren.