Object2Vec-Algorithmus - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Object2Vec-Algorithmus

Der Amazon SageMaker-Object2Vec-Algorithmus ist ein neuronal-einbettender Allzweck-Algorithmus, der hochgradig anpassbar ist. Er kann dichte Einbettungen mit geringer Dimensionalität hochdimensionaler Objekte lernen. Die Einbettungen werden so gelernt, dass die Semantik der Beziehung zwischen Paaren von Objekten im ursprünglichen Raum im Einbettungsraum beibehalten werden. Sie können die gelernten Einbettungen z. B. zum effizienten Berechnen der nächsten Nachbarn von Objekten und zum Visualisieren natürlicher Cluster verwandter Objekte im Raum mit geringer Dimensionalität verwenden. Außerdem können Sie die Einbettungen als Funktionen der entsprechende Objekten in nachgelagerten überwachten Aufgaben, wie z. B. Klassifizierung oder Regression, einsetzen.

Object2Vec verallgemeinert die bekannte Word2Vec-Einbettungstechnik für Wörter, die im SageMaker BlazingText-Algorithmus optimiert wird. Einen Blogbeitrag, in dem beschrieben wird, wie Object2Vec auf einige praktische Anwendungsfälle angewendet werden kann, finden Sie unter Introduction to Amazon SageMaker Object2Vec.

E/A-Schnittstelle für den Object2Vec-Algorithmus

Sie können den Object2Vec-Algorithmus für viele Eingabedatentypen nutzen, z. B. folgende:

Eingabedatentyp Beispiel

Satz-Satz Paare

„Ein Fußballspiel, bei dem mehrere Männer spielen.“ und „Manche Männer treiben Sport.“

Bezeichnungen-Sequenz-Paare

Die Genre-Tags des Films "Titanic", z. B. "Romanze" und "Drama", und dessen Kurzbeschreibung: "Bei Titanic von James Cameron handelt es sich um eine epische, actionreiche Romanze vor dem Hintergrund der verhängnisvollen Jungfernfahrt der R.M.S. Titanic. Die Titanic war das luxuriöseste Kreuzfahrtschriff seiner Zeit, ein wahres Traumschiff, das in den frühen Morgenstunden des 15. April 1912 1 500 Menschen in den eiskalten Gewässern des Nordatlantik in den Tod riss."

Kunde-Kunde-Paare

Die Kunden-ID von Jane und die Kunden-ID von Jackie.

Produkt-Produkt-Paare

Die Produkt-ID des Fußballs und Produkt-ID des Basketballs.

Artikelrezension-Benutzerartikel-Paare

Eine Benutzer-ID und die gekauften Artikel, z. B. Apfel, Birne und Orange.

Zum Umwandeln der Eingabedaten in die unterstützten Formate müssen Sie sie vorverarbeiten. Derzeit unterstützt Object2Vec nativ zwei Arten von Eingaben:

  • Ein diskretes Token, das als Liste einer einzigen integer-id dargestellt wird. Zum Beispiel [10].

  • Sequenzen diskreter Token, die als Liste von integer-ids dargestellt werden. Zum Beispiel [0,12,10,13].

Das Objekt in jedem Paar kann asymmetrisch sein. Beispiel: Die Paare können (Token, Sequenz) oder (Token, Token) oder (Sequenz, Sequenz) sein. Für Tokeneingaben unterstützt der Algorithmus einfache Einbettungen als kompatible Encoder. Für Sequenzen von Tokenvektoren unterstützt der Algorithmus die folgenden Encoder:

  • Einbettungen mit Durchschnitts-Pooling

  • Hierarchische Convolutional Neural Networks (CNNs)

  • Mehrstufiger bidirektionaler Langzeit-Kurzzeitspeicher (Multi-layered Bidirectional Long Short-term Memory (BiLSTMs))

Die Eingabebezeichnung für jedes Paar kann eine der folgenden sein:

  • Eine kategorische Bezeichnung, die die Beziehung zwischen den Objekten im Paar ausdrückt

  • Eine Punktzahl, die die Stärke der Ähnlichkeit zwischen den beiden Objekten ausdrückt

Für kategorische Bezeichnungen, die in der Klassifizierung verwendet werden, unterstützt der Algorithmus die Kreuz-Entropie Verlustfunktion. Für Bewertungen/ergebnisbasierte Bezeichnungen, die in der Regression genutzt werden, unterstützt der Algorithmus die MSE-Verlustfunktion (Mean Squared Error, mittlerer quadratischer Fehler). Geben Sie diese Verlustfunktionen mit dem Hyperparameter output_layer an, wenn Sie den Modellschulungsauftrag erstellen.

EC2-Instance-Empfehlung für den Object2Vec-Algorithmus

Welchen Elastic Compute Cloud (Amazon EC2)-Instance-Typ Sie verwenden, hängt davon ab, ob Sie Inferenzen trainieren oder ausführen.

Wenn Sie ein Modell mit dem Object2Vec-Algorithmus auf einer CPU schulen, starten Sie mit einer ml.m5.2xlarge-Instance. Bei Schulungen auf einer GPU-Instance starten Sie mit einer ml.p2.xlarge-Instance. Wenn die Schulung auf dieser Instanz zu lange dauert, können Sie eine größere Instanz verwenden. Derzeit können Sie den Object2Vec-Algorithmus nur auf einer einzelnen Maschine trainieren. Es wird jedoch auch Unterstützung für mehrere GPUs angeboten. Object2Vec unterstützt die GPU-Instance-Familien P2, P3, G4dn und G5 für Schulung und Inferenz.

Für Inferenzen mit dem trainierten Object2Vec-Modell, das über ein tiefes neuronalen Netz verfügt, empfehlen wir die Verwendung der ml.p3.2xlarge-GPU-Instance. Aufgrund der GPU-Speicherknappheit kann die Umgebungsvariable INFERENCE_PREFERRED_MODE zur Optimierung angegeben werden, ob das Inferenznetzwerk GPU-Optimierung: Klassifizierung oder Regression oder GPU-Optimierung: Encoder-Einbettungen in die GPU geladen wird.

Object2Vec-Beispiel-Notebooks

Anmerkung

Um die Notebooks auf einer Notebook-Instance auszuführen, siehe Beispiel-Notebooks. Um die Notebooks in Studio auszuführen, siehe Erstellen oder Öffnen eines Amazon SageMaker Studio Classic Notebooks.