Share via


Skapa en bred och djup modell i ett rekommenderande system

Med hjälp av exempelanteckningsböcker vägleder den här artikeln dig genom att skapa ett rekommenderande system med en bred och djup modell. När du skapar en maskininlärningspipeline för ett brett och djupt rekommenderande system ingår de steg som visas i det här diagrammet:

Workflow for a wide-and-deep recommender

Den här referenslösningen omfattar de steg som visas i blått:

  • Träning och utvärdering av modeller
  • Modellexport och versionshantering
  • Slutsatsdragning för Batch-modell
  • Onlinemodellservering

Information om de steg som inte omfattas finns i Projektfaser som inte omfattas.

Vad är en bred och djup modell?

En bred och djup modell är ett effektivt val för ett rekommenderande system och kombinerar en linjär modell med funktionerna i en djupinlärningsmodell. Den linjära modellen analyserar historiska data relaterade till kundval, medan djupinlärningsfunktionerna generaliseras för att utöka valet av relevanta rekommendationer.

Mer information finns i den här akademiska artikeln: Wide & Deep Learning for Recommender Systems.

Markeringar av Databricks-verktyg

Notebook-filen omfattar flera verktyg som tillhandahålls i Azure Databricks som förenklar skapandet av en maskininlärningspipeline:

  1. SparkDatasetConverter
  2. MLflow-modellregister
  3. MLflow-modellservering

Notebook-fil som beskriver användardatauppsättning

Datauppsättningen som används i den här notebook-filen består av följande Delta-tabeller:

  • user_profile: innehåller user_id värdena och deras statiska profiler
  • item_profile: innehåller item_id värdena och deras statiska profiler
  • user_item_interaction: innehåller händelser där en användare interagerar med ett objekt. Den här tabellen delas slumpmässigt upp i tre Delta-tabeller för att skapa och utvärdera modellen: train, validationoch test.

Det här dataformatet är vanligt för rekommendationsproblem. Några exempel är:

  • För annonsrekommendare är objekten annonser och användarobjektinteraktioner är poster för användare som klickar på annonserna.
  • För online-shoppingrekommendare är objekten produkter och användarobjektinteraktioner är poster för användare som granskar eller beställer historik.

När du anpassar den här notebook-filen till din datauppsättning behöver du bara spara dina data i Delta-tabellerna och ange tabellnamnen och platserna. Koden för inläsning av data kan främst återanvändas.

Mer information finns i notebook-filen för datauppsättningsgenerering.

Generera och spara notebook-filen för datauppsättningen

Hämta notebook-fil

Notebook-exempel: bred och djup modell

En bred och djup modell kombinerar en bred linjär modell med ett djupt neuralt nätverk för att hantera memorering och generalisering som krävs för bra rekommendationer.

Den här modellen är bara ett exempel på många djupinlärningsmodeller för rekommendationsproblemet eller för alla maskininlärningspipelines i allmänhet. Fokus här visar hur du skapar arbetsflödet. Du kan växla i olika modeller för ditt eget användningsfall och justera modellen för bättre utvärderingsmått.

Skapa och hantera en bred och djup modell i en rekommenderad systemanteckningsbok

Hämta notebook-fil

Projektfaser omfattas inte

För att hålla notebook-filen fokuserad på att visa hur du implementerar ett rekommenderande system omfattas inte följande steg. De här stegen visas som grå block i arbetsflödesdiagrammet.

  1. Datainsamling och undersökande dataanalys. Se Kör din första ETL-arbetsbelastning på Azure Databricks.
  2. Funktionsutveckling. Funktionsutveckling är en viktig del av ett rekommenderande system, och mycket information finns om det här ämnet. Den här notebook-filen förutsätter att du har en kuraterad datamängd som innehåller interaktion med användarobjekt. Mer information om datauppsättningen som används i den här notebook-filen finns i Notebook som beskriver användardatauppsättningen. Mer information om funktionsutveckling finns i följande resurser:
  3. Modelljustering. Modelljustering innebär att ändra koden för den befintliga pipelinen, inklusive funktionsutveckling, modellstruktur, modellhyperparametrar eller till och med uppdatering av datainsamlingssteget, för att förbättra modellens prestanda. Mer information om verktyg för modelljustering i Azure Databricks finns i Hyperparameterjustering.