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:
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:
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ålleruser_id
värdena och deras statiska profileritem_profile
: innehålleritem_id
värdena och deras statiska profileruser_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
,validation
ochtest
.
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
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
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.
- Datainsamling och undersökande dataanalys. Se Kör din första ETL-arbetsbelastning på Azure Databricks.
- 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:
- Notebook-filer för Databricks Solution Accelerators Anpassar kundupplevelsen med Rekommendationer visar exempel på funktionsutveckling i ett rekommenderande system.
- Förbearbeta data för maskininlärning och djupinlärning för exempel på funktionsutveckling med scikit-learn, MLlib och överföringsinlärning.
- 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.