Filmempfehlungen in AzureMovie recommendations on Azure

In diesem Beispielszenario wird gezeigt, wie ein Unternehmen mithilfe von maschinellem Lernen Produktempfehlungen für Kunden automatisieren kann.This example scenario shows how a business can use machine learning to automate product recommendations for their customers. Eine Azure DSVM-Instanz (Data Science Virtual Machine) wird verwendet, um ein Modell in Azure zu trainieren, das Benutzern Filme auf der Grundlage von Filmbewertungen empfiehlt.An Azure Data Science Virtual Machine (DSVM) is used to train a model on Azure that recommends movies to users based on ratings that have been given to movies.

Empfehlungen sind in verschiedensten Branchen hilfreich – vom Einzelhandel über Nachrichten bis hin zu Medien.Recommendations can be useful in various industries from retail to news to media. Zu den möglichen Anwendungen zählen unter anderem Empfehlungen für Produkte in einem virtuellen Store, Empfehlungen für Nachrichten oder Beiträge sowie Musikempfehlungen.Potential applications include providing product recommendations in a virtual store, providing news or post recommendations, or providing music recommendations. In der Vergangenheit mussten Unternehmen Assistenten einstellen und schulen, die personalisierte Empfehlungen für Kunden erstellen.Traditionally, businesses had to hire and train assistants to make personalized recommendations to customers. Heutzutage können wir dagegen mithilfe von Azure Modelle trainieren und die Präferenzen von Kunden untersuchen, um maßgeschneiderte Empfehlungen bereitzustellen.Today, we can provide customized recommendations at scale by using Azure to train models to understand customer preferences.

Relevante AnwendungsfälleRelevant use cases

Erwägen Sie dieses Szenario für folgende Anwendungsfälle:Consider this scenario for the following use cases:

  • Filmempfehlungen auf einer WebsiteMovie recommendations on a website.
  • Produktempfehlungen für Verbraucher in einer mobilen AppConsumer product recommendations in a mobile app.
  • Nachrichtenempfehlungen in StreamingmedienNews recommendations on streaming media.

AufbauArchitecture

Architektur eines Machine Learning-Modells zum Trainieren von Filmempfehlungen

Dieses Szenario behandelt das Trainieren und Auswerten des Machine Learning-Modells mit dem ALS-Algorithmus (Alternating Least Squares) von Spark auf der Grundlage eines Datasets mit Filmbewertungen.This scenario covers the training and evaluating of the machine learning model using the Spark alternating least squares (ALS) algorithm on a dataset of movie ratings. Das Szenario umfasst folgende Schritte:The steps for this scenario are:

  1. Das Front-End (Website oder App-Dienst) sammelt historische Daten zu den Filminteraktionen von Benutzern – dargestellt in einer Tabelle mit Benutzer, Element und numerischen Bewertungstupeln.The front-end website or app service collects historical data of user-movie interactions, which are represented in a table of user, item, and numerical rating tuples.

  2. Die gesammelten historischen Daten werden in Blob Storage gespeichert.The collected historical data is stored in a blob storage.

  3. Eine DSVM-Instanz wird häufig verwendet, um ein Spark-ALS-Empfehlungsmodell für Experimente oder zur Produktentwicklung zu nutzen.A DSVM is often used to experiment with or productize a Spark ALS recommender model. Das ALS Modell wird mithilfe eines Trainingsdatasets trainiert, das auf der Grundlage des Gesamtdataset unter Anwendung einer geeigneten Datenaufteilungsstrategie erstellt wird.The ALS model is trained using a training dataset, which is produced from the overall dataset by applying the appropriate data splitting strategy. Das Dataset kann je nach geschäftlichen Anforderungen beispielsweise nach dem Zufallsprinzip, chronologisch oder geschichtet aufgeteilt werden.For example, the dataset can be split into sets randomly, chronologically, or stratified, depending on the business requirement. Ein Empfehlungssystem wird ähnlich wie bei anderen Machine Learning-Aufgaben anhand von Auswertungsmetriken (precision@k, recall@k, MAP, nDCG@k und Ähnliches) überprüft.Similar to other machine learning tasks, a recommender is validated by using evaluation metrics (for example, precision@k, recall@k, MAP, nDCG@k).

  4. Zur Koordinierung der Experimente (wie etwa Hyperparameter-Sweeping und Modellverwaltung) wird Azure Machine Learning verwendet.Azure Machine Learning is used for coordinating the experimentation, such as hyperparameter sweeping and model management.

  5. Ein trainiertes Modell wird in Azure Cosmos DB gespeichert und kann später zur Empfehlung der besten k Filme für einen bestimmten Benutzer verwendet werden.A trained model is preserved on Azure Cosmos DB, which can then be applied for recommending the top k movies for a given user.

  6. Das Modell wird dann mithilfe von Azure Container Instances oder Azure Kubernetes Service in einem Web- oder App-Dienst bereitgestellt.The model is then deployed onto a web or app service by using Azure Container Instances or Azure Kubernetes Service.

Eine ausführliche Anleitung für die Erstellung und Skalierung eines Empfehlungsdiensts finden Sie unter Erstellen einer Echtzeitempfehlungs-API in Azure.For an in-depth guide to building and scaling a recommender service, see Build a real-time recommendation API on Azure.

KomponentenComponents

  • Data Science Virtual Machine (DSVM) ist ein virtueller Computer mit Deep Learning-Frameworks und Tools für Machine Learning und Data Science.Data Science Virtual Machine (DSVM) is an Azure virtual machine with deep learning frameworks and tools for machine learning and data science. Die DSVM-Instanz verfügt über eine eigenständige Spark-Umgebung, die zum Ausführen von ALS verwendet werden kann.The DSVM has a standalone Spark environment that can be used to run ALS.

  • Azure Blob Storage wird zum Speichern des Datasets für Filmempfehlungen verwendet.Azure Blob storage stores the dataset for movie recommendations.

  • Azure Machine Learning wird verwendet, um die Erstellung, Verwaltung und Bereitstellung von Machine Learning-Modellen zu beschleunigen.Azure Machine Learning is used to accelerate the building, managing, and deploying of machine learning models.

  • Azure Cosmos DB ermöglicht die Verwendung eines global verteilten Multimodell-Datenbankspeichers.Azure Cosmos DB enables globally distributed and multi-model database storage.

  • Azure Container Instances wird verwendet, um die trainierten Modelle für Web- oder App-Dienste bereitzustellen (optional unter Verwendung von Azure Kubernetes Service).Azure Container Instances is used to deploy the trained models to web or app services, optionally using Azure Kubernetes Service.

AlternativenAlternatives

Azure Databricks ist ein verwalteter Spark-Cluster, in dem Modelle trainiert und ausgewertet werden.Azure Databricks is a managed Spark cluster where model training and evaluating is performed. Eine verwaltete Spark-Umgebung ist in wenigen Minuten eingerichtet und automatisch skalierbar, was zur Reduzierung des Ressourcenbedarfs und der Kosten beiträgt, die mit manueller Clusterskalierung einhergehen.You can set up a managed Spark environment in minutes, and autoscale up and down to help reduce the resources and costs associated with scaling clusters manually. Zur Ressourcenschonung können Sie auch festlegen, dass inaktive Cluster automatisch beendet werden sollen.Another resource-saving option is to configure inactive clusters to terminate automatically.

ÜberlegungenConsiderations

VerfügbarkeitAvailability

Machine Learning-basierte Apps sind in zwei Ressourcenkomponenten unterteilt: Trainingsressourcen und Bereitstellungsressourcen.Machine-learning-built apps are split into two resource components: resources for training, and resources for serving. Für Trainingsressourcen ist in der Regel keine Hochverfügbarkeit erforderlich, da diese Ressourcen nicht direkt von Liveanforderungen aus der Produktionsumgebung betroffen sind.Resources required for training generally do not need high availability, as live production requests do not directly hit these resources. Bereitstellungsrelevante Ressourcen müssen hochverfügbar sein, um Kundenanforderungen bedienen zu können.Resources required for serving need to have high availability to serve customer requests.

Zu Trainingszwecken ist die DSVM-Instanz in mehreren Regionen weltweit verfügbar und erfüllt die Anforderungen der Vereinbarung zum Servicelevel (Service Level Agreement, SLA) für virtuelle Computer.For training, the DSVM is available in multiple regions around the globe and meets the service level agreement (SLA) for virtual machines. Für die Bereitstellung bietet Azure Kubernetes Service eine hochverfügbare Infrastruktur.For serving, Azure Kubernetes Service provides a highly available infrastructure. Agent-Knoten erfüllen ebenfalls die Anforderungen der SLA für virtuelle Computer.Agent nodes also follow the SLA for virtual machines.

SkalierbarkeitScalability

Bei großen Daten kann die DSVM-Instanz skaliert werden, um die Trainingsdauer zu verkürzen.If you have a large data size, you can scale your DSVM to shorten training time. Sie können einen virtuellen Computer zentral hoch- oder herunterskalieren, indem Sie die VM-Größe ändern.You can scale a VM up or down by changing the VM size. Wählen Sie die Größe des Arbeitsspeichers so, dass Ihr Dataset hineinpasst, und verwenden Sie eine höhere vCPU-Anzahl, um das Training zu beschleunigen.Choose a memory size large enough to fit your dataset in-memory and a higher vCPU count in order to decrease the amount of time that training takes.

SicherheitSecurity

In diesem Szenario können Benutzer für den Zugriff auf die DSVM-Instanz, die Ihren Code, Ihre Modelle und Ihre Daten (im Arbeitsspeicher) enthält, mithilfe von Azure Active Directory authentifiziert werden.This scenario can use Azure Active Directory to authenticate users for access to the DSVM, which contains your code, models, and (in-memory) data. Daten werden vor dem Laden in eine DSVM-Instanz in Azure Storage gespeichert, wo sie automatisch unter Verwendung der Speicherdienstverschlüsselung verschlüsselt werden.Data is stored in Azure Storage prior to being loaded on a DSVM, where it is automatically encrypted using Storage Service Encryption. Berechtigungen können über die Azure Active Directory-Authentifizierung oder mithilfe der rollenbasierten Zugriffssteuerung verwaltet werden.Permissions can be managed via Azure Active Directory authentication or role-based access control.

Bereitstellen dieses SzenariosDeploy this scenario

Voraussetzungen: Sie benötigen ein bestehendes Azure-Konto.Prerequisites: You must have an existing Azure account. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

Der gesamte Code für dieses Szenario steht im Microsoft Recommenders-Repository zur Verfügung.All the code for this scenario is available in the Microsoft Recommenders repository.

Gehen Sie wie folgt vor, um das ALS-Schnellstartnotebook auszuführen:Follow these steps to run the ALS quickstart notebook:

  1. Erstellen Sie eine DSVM-Instanz über das Azure-Portal.Create a DSVM from the Azure portal.

  2. Klonen Sie das Repository im Ordner „Notebooks“:Clone the repo in the Notebooks folder:

    cd notebooks
    git clone https://github.com/Microsoft/Recommenders
    
  3. Installieren Sie die Conda-Abhängigkeiten gemäß der Anleitung in der Datei SETUP.md.Install the conda dependencies following the steps described in the SETUP.md file.

  4. Öffnen Sie in einem Browser Ihren virtuellen jupyterlab-Computer, und navigieren Sie zu notebooks/00_quick_start/als_pyspark_movielens.ipynb.In a browser, go to your jupyterlab VM and navigate to notebooks/00_quick_start/als_pyspark_movielens.ipynb.

  5. Führen Sie das Notebook aus.Execute the notebook.

Eine ausführliche Anleitung für die Erstellung und Skalierung eines Empfehlungsdiensts finden Sie unter Erstellen einer Echtzeitempfehlungs-API in Azure.For an in-depth guide to building and scaling a recommender service, see Build a real-time recommendation API on Azure. Tutorials und Beispiele für Empfehlungssysteme finden Sie im Microsoft-Repository „Recommenders“.For tutorials and examples of recommendation systems, see Microsoft Recommenders repository.