Train Matchbox Recommender

Wichtig

Der Support für Machine Learning Studio (klassisch) endet am 31. August 2024. Es wird empfohlen, bis zu diesem Datum auf Azure Machine Learning umzustellen.

Ab dem 1. Dezember 2021 können Sie keine neuen Ressourcen in Machine Learning Studio (klassisch) mehr erstellen. Bis zum 31. August 2024 können Sie die vorhandenen Ressourcen in Machine Learning Studio (klassisch) weiterhin verwenden.

Die Dokumentation zu ML Studio (klassisch) wird nicht mehr fortgeführt und kann künftig nicht mehr aktualisiert werden.

Trainiert ein Bayessches Empfehlungssystem mit dem Matchbox-Algorithmus

Kategorie: Machine Learning/Trainieren

Hinweis

Gilt nur für: Machine Learning Studio (klassisch)

Ähnliche Drag & Drop-Module sind im Azure Machine Learning-Designer verfügbar.

Modulübersicht

In diesem Artikel wird beschrieben, wie Sie das Modul Train Matchbox Recommender in Machine Learning Studio (klassisch) verwenden, um ein Empfehlungsmodell zu trainieren.

Der Empfehlungsalgorithmus in Machine Learning basiert auf dem Matchbox-Modell, das von Microsoft Research entwickelt wurde. Klicken Sie zum Herunterladen eines Whitepapers, in dem der Algorithmus ausführlich beschrieben wird, auf diesen Link auf der Microsoft Research-Website.

Das Train Matchbox Recommender-Modul liest ein Dataset mit Benutzer-Element-Bewertung-Tripeln und optional einige Benutzer- und Elementfunktionen. Es gibt eine qualifizierte Matchbox-Empfehlung zurück. Sie können dann das trainierte Modell verwenden, um Empfehlungen zu generieren, verwandte Benutzer oder verwandte Elemente zu suchen, indem Sie das Modul Score Matchbox Recommender verwenden.

Tipp

Erfahren Sie alles, was Sie über die End-to-End-Erfahrung beim Erstellen eines Empfehlungssystems in diesem Tutorial vom .NET-Entwicklungsteam wissen müssen. Enthält Beispielcode und Erläuterungen zum Aufrufen von Machine Learning aus einer Anwendung.

Erstellen einer Empfehlungs-Engine für .NET-Anwendungen mit Machine Learning

Weitere Informationen zu Empfehlungsmodellen und der Matchbox-Empfehlung

Das Hauptziel eines Empfehlungssystems besteht darin, Benutzern des Systems Elemente zu empfehlen. Beispiele für Elemente sind Filme, Restaurants, Bücher oder Songs. Ein Benutzer kann eine Person, eine Gruppe von Personen oder eine andere Entität mit Elementeinstellungen sein.

Es gibt zwei grundlegende Ansätze für Empfehlungssysteme.

  • Der erste ist der inhaltsbasierte Ansatz, der Features für Benutzer und Elemente nutzt. Benutzer können durch Eigenschaften wie Alter und Geschlecht beschrieben werden und Elemente durch Eigenschaften wie Autor und Hersteller. Typische Beispiele für inhaltsbasierte Empfehlungssysteme finden Sie auf Partnersuche-Websites.
  • Der zweite Ansatz ist die kollaborative Filterung, bei der nur Bezeichner der Benutzer und Elemente verwendet werden und implizite Informationen zu diesen Entitäten aus einer (Sparse-)Matrix von Bewertungen abgerufen werden, die von den Benutzern für die Elemente abgegeben wurden. Wir können etwas über einen Benutzer von den bewerteten Elementen und von anderen Benutzern erfahren, die dieselben Elemente bewertet haben.

Die Matchbox-Empfehlung kombiniert diese Ansätze mithilfe der gemeinsamen Filterung mit einem inhaltsbasierten Ansatz. Es handelt sich dabei somit um ein hybrides Empfehlungsmodul.

Funktionsweise: Bei einem neuen Benutzer im System werden Vorhersagen mithilfe von Featureinformationen über den Benutzer verbessert. Auf diese Weise wird das allgemein bekannte „Kaltstart“-Problem in Angriff genommen. Wenn jedoch eine ausreichende Menge von Bewertungen eines bestimmten Benutzers vorhanden ist, können vollständig personalisierte Vorhersagen für diesen basierend auf seinen spezifischen Bewertungen und nicht allein seinen Features formuliert werden. Der Übergang von inhaltsbasierten Empfehlungen zu Empfehlungen, die auf kollaborativem Filtern basieren, ist daher nahtlos. Selbst wenn Benutzer- oder Elementmerkmale nicht verfügbar sind, funktioniert Matchbox immer noch im kollaborativen Filtermodus.

Weitere Informationen zum Matchbox-Empfehlungsgeber und dem zugrunde liegenden probabilistischen Algorithmus finden Sie im entsprechenden Forschungsartikel: Matchbox: Large Scale Bayesian Empfehlungen Empfehlungen. Darüber hinaus enthält der Machine Learning Blog einen Artikel mit dem Titel Empfehlungen Everywhere, der eine einführung in Empfehlungsalgorithmen bietet.

Konfigurieren von Train Matchbox Recommender

Vorbereiten von Daten

Vor der Verwendung des Moduls ist es von entscheidender Bedeutung, dass Ihre Daten in dem vom Empfehlungsmodell erwarteten Format vorliegen. Ein Trainingsdataset mit Benutzer-Element-Bewertung-Tripeln ist erforderlich. Sie können jedoch auch Benutzerfeatures und Elementfeatures (sofern verfügbar) in separate Datasets einbeziehen.

Um Quelldaten in Trainings- und Testdatasets aufzuteilen, verwenden Sie die Option Recommender Split im Modul Split Data .

Erforderliches Dataset von user-item-rating-Elementen

Es ist sehr wichtig, dass die für das Training verwendeten Eingabedaten den richtigen Datentyp im richtigen Format enthalten:

  • Die erste Spalte muss Benutzer-IDs enthalten.
  • Die zweite Spalte muss Element-IDs enthalten.
  • Die dritte Spalte enthält die Bewertung für das Benutzer-Element-Paar. Bewertungswerte müssen entweder numerisch oder kategorisch sein.

Während des Trainings können die Bewertungswerte nicht alle identisch sein. Darüber hinaus muss bei numerischen Werten der Unterschied zwischen dem minimalen und dem maximalen Bewertungswert kleiner als 100 und idealerweise nicht größer als 20 sein.

Das Dataset restaurant ratings in Machine Learning Studio (klassisch) (klicken Sie auf Gespeicherte Datasets und dann auf Beispiele) veranschaulicht das erwartete Format:

userID placeID rating
U1077 135085 2
U1077 135038 2

In diesem Beispiel können Sie sehen, dass ein einzelner Benutzer zwei separate Restaurants bewertet hat.

Benutzerfeatures-Dataset (optional)

Das Dataset Benutzerfeatures muss Bezeichner für Benutzer enthalten und die gleichen Bezeichner verwenden, die in der ersten Spalte des Benutzer-Element-Bewertungen-Datasets bereitgestellt wurden. Die übrigen Spalten enthalten eine beliebige Anzahl an Features, die den Benutzer beschreiben.

Ein Beispiel finden Sie im Dataset Restaurant customer in Machine Learning Studio (klassisch). Ein typischer Satz von Benutzerfeatures sieht wie folgt aus:

userID Ambiente Dress_preference Transport Raucher
U1004 family informell Zu Fuß FALSE
U1005 friends Keine Einstellung Autobesitzer true

Elementfeatures-Dataset (optional)

Das Dataset mit Elementfeatures muss in der ersten Spalte Elementbezeichner enthalten. Die übrigen Spalten enthalten eine beliebige Anzahl an beschreibenden Features für die Elemente.

Ein Beispiel finden Sie im Dataset Restaurant feature data (Restaurantfunktionsdaten), das in Machine Learning Studio (klassisch) bereitgestellt wird (klicken Sie auf Gespeicherte Datasets und dann auf Beispiele). Ein typischer Satz von Elementfeatures (in diesem Fall ist das Element ein Restaurant) könnte wie folgt aussehen:

placeID Alkohol Smoking_area Preis Rambience
135106 Wine-Beer Keine niedrig family
132667 No_Alcohol_Served Zulässig mittel ungezwungen

Trainieren des Modells

  1. Fügen Sie ihrem Experiment in Studio (klassisch) das Modul Train Matchbox Recommender hinzu, und verbinden Sie es mit den Trainingsdaten.

  2. Wenn Sie über ein separates Dataset mit Benutzerfeatures und/oder Elementfeatures verfügen, verbinden Sie diese mit dem Modul Train Matchbox Recommender .

    • User features dataset (Benutzerfeatures-Dataset): Stellen Sie eine Verbindung des Datasets, das Benutzer beschreibt, mit der zweiten Eingabe her.

    • Item features dataset (Elementfeatures-Dataset): Stellen Sie eine Verbindung des Datasets, das Elemente beschreibt, mit der dritten Eingabe her.

  3. Geben Sie unter Anzahl der Trainingsbatches die Anzahl der Batches ein, um die Daten während des Trainings aufzuteilen.

    Basierend auf diesem Wert wird das Dataset der Dreier für Benutzer-/Elementbewertungen während des Trainings in mehrere Teile oder Batches unterteilt.

    Da Train Matchbox Recommender Batches parallel ausführt, wird empfohlen, die Anzahl der Trainingsbatches auf die Anzahl der verfügbaren Kerne festzulegen, wenn die gesamten Trainingsdaten in den Arbeitsspeicher passen. Andernfalls sollte die Anzahl der Trainingsbatches auf das niedrigste Vielfache der Anzahl der verfügbaren Kerne festgelegt werden, für die die Trainingsdaten in den Arbeitsspeicher passen.

    Standardmäßig werden die Trainingsdaten in vier (4) Batches aufgeteilt. Nur das Dataset mit drei Dreiern für Benutzer-/Elementbewertungen wird geteilt. Benutzer- oder Elementfeatures werden nicht aufgeteilt, da Features nicht aufgeteilt werden müssen.

  4. Geben Sie für Number of traits (Anzahl von Merkmalen) die Anzahl der latenten Merkmale ein, die für jeden Benutzer und jedes Element erlernt werden sollen.

    Je höher die Anzahl der Merkmale ist, desto genauer sind die Vorhersagen in der Regel. Das Training ist jedoch langsamer. Die Anzahl der „Merkmale“ liegt in der Regel im Bereich von 2 bis 20.

  5. Geben Sie unter Anzahl der Iterationen von Empfehlungsalgorithmen an, wie oft der Algorithmus die Eingabedaten verarbeiten soll.

    Die Matchbox-Empfehlung wird mit einem Algorithmus für die Nachrichtenübergabe trainiert, der die Eingabedaten mehrmals durchlaufen kann. Je höher diese Zahl ist, desto genauer sind die Vorhersagen. Das Training ist jedoch langsamer. Normalerweise liegt die Anzahl der Iterationen im Bereich von 1 bis 10.

  6. Führen Sie das Experiment aus, oder wählen Sie nur das Modul Train Matchbox Recommender (Train Matchbox Recommender ) und dann Run selected (Ausgewählte Ausführen) aus.

Beispiele

Beispiele für die Verwendung von Empfehlungsmodellen in Machine Learning finden Sie in den folgenden Beispielexperimenten im Azure KI-Katalog:

  • Filmempfehlungsbeispiel: Veranschaulicht das Trainieren, Auswerten und Bewerten mithilfe eines Empfehlungsmodells.

Technische Hinweise

Dieser Abschnitt enthält Implementierungsdetails, Tipps und Antworten auf häufig gestellte Fragen.

Verwendungstipps

  • Wenn eine Featurespalte fehlende Werte enthält, wird der Modus der nicht fehlenden Werte als Ersatz für die fehlenden Werte verwendet.

  • Alle Benutzer- und Elementfeatures werden so neu skaliert, dass sie eine Einheitenlänge aufweisen, sodass ihr maximaler absoluter Wert 1 ist. Bei Merkmalwerten wird keine Übersetzung angewendet, um eine geringe Datendichte aufrechtzuerhalten.

Beschränkungen

Onlineupdates (oder kontinuierliches Training) eines Empfehlungsmodells werden in Machine Learning derzeit nicht unterstützt. Wenn Sie Benutzerantworten auf Empfehlungen erfassen und diese zur Verbesserung des Modells verwenden möchten, wird empfohlen, das vollständige Modell in regelmäßigen Abständen erneut zu trainingen. Inkrementelles Training ist nicht möglich, aber Sie können ein gleitendes Fenster auf die Trainingsdaten anwenden, um sicherzustellen, dass das Datenvolumen minimiert wird, während die neuesten Daten verwendet werden.

Schätzen der Arbeitsspeicherauslastung des Empfehlungsmoduls

Derzeit ist 16 * N\(4\T + 2\R) die untere Grenze des Speicherbedarfs von Matchbox Bytes, wobei N sich auf die Anzahl der Dreier der Benutzer-/Elementbewertung im Trainingsdataset, T auf die Anzahl der latenten Merkmale und R auf den Unterschied zwischen der minimalen und der maximalen Bewertung (im Trainingsdataset) bezieht.

Die Größe eines serialisierten Matchbox-Empfehlungsmodells beträgt ungefähr 16 * T\(U\R + I + X + Y) Bytes, wobei U sich auf die Anzahl der Benutzer, I auf die Anzahl der Elemente, X auf die Anzahl der Benutzerfeatures und Y auf die Anzahl der Elementfeatures bezieht.

Erwartete Eingaben

Name Type Beschreibung
Trainingsdataset mit Benutzer-Element-Bewertung-Tripeln Datentabelle Bewertungen von Elementen durch Benutzer, ausgedrückt als Tripel (Benutzer, Element, Bewertung)
Trainingsdataset mit Benutzermerkmalen Datentabelle Dataset mit Features, die Benutzer beschreiben (optional)
Trainingsdataset mit Elementmerkmalen Datentabelle Dataset mit Features, die Elemente beschreiben (optional)

Modulparameter

Name Range type Standard Beschreibung
Number of traits >=0 Integer 10 Angeben der Anzahl von Merkmalen, die mit der Empfehlung verwendet werden sollen (optional)
Number of recommendation algorithm iterations >=1 Integer 5 Angeben der maximalen Anzahl von Iterationen, die beim Trainieren des Empfehlungsmodells ausgeführt werden sollen (optional)
Anzahl der Trainingsbatches >=1 Integer 4 Angeben der Anzahl von Trainingsbatches, die mit der Empfehlung verwendet werden sollen (optional)

Ausgaben

Name Type Beschreibung
Trainiertes Matchbox-Empfehlungssystem ILearner-Schnittstelle Trainiertes Matchbox-Empfehlungssystem

Ausnahmen

Ausnahme Beschreibung
Fehler 0022 Eine Ausnahme tritt auf, wenn die Anzahl der ausgewählten Spalten im Eingabedataset nicht mit der erwarteten Anzahl übereinstimmt.
Fehler 0036 Eine Ausnahme tritt auf, wenn mehrere Featurevektoren für einen bestimmten Benutzer oder ein bestimmtes Element bereitgestellt wurden.
Fehler 0018 Eine Ausnahme tritt auf, wenn das Eingabedataset nicht gültig ist.
Fehler 0035 Eine Ausnahme tritt auf, wenn für einen bestimmten Benutzer oder ein bestimmtes Element keine Features bereitgestellt wurden.
Fehler 0034 Eine Ausnahme tritt auf, wenn mehr als eine Bewertung für ein bestimmtes Benutzer-Element-Paar vorhanden ist.
Fehler 0053 Die Ausnahme tritt auf, wenn keine Benutzermerkmale oder Elemente für Matchbox-Empfehlungen vorhanden sind.
Fehler 0003 Eine Ausnahme tritt auf, wenn mindestens eine Eingabe NULL oder leer ist.

Eine Liste der Fehler, die für Studio-Module (klassisch) spezifisch sind, finden Sie unter Machine Learning Fehlercodes.

Eine Liste der API-Ausnahmen finden Sie unter Machine Learning REST-API-Fehlercodes.

Siehe auch

Cross-Validate Model
Evaluate Recommender
Trainieren
Score Matchbox Recommender (Matchbox Recommender bewerten)