Träna Matchbox-rekommenderaren

Viktigt

Stödet för Machine Learning Studio (klassisk) upphör den 31 augusti 2024. Vi rekommenderar att du byter till Azure Machine Learning innan dess.

Från och med den 1 december 2021 kan du inte längre skapa nya Machine Learning Studio-resurser (klassisk). Du kan fortsätta att använda befintliga Machine Learning Studio-resurser (klassisk) till och med den 31 augusti 2024.

Dokumentationen om ML Studio (klassisk) håller på att dras tillbaka och kanske inte uppdateras i framtiden.

Träna en Bayesian-rekommenderare med hjälp av Matchbox-algoritmen

Kategori: Machine Learning/träna

Anteckning

Gäller endast för: Machine Learning Studio (klassisk)

Liknande dra och släpp-moduler är tillgängliga i Azure Machine Learning designer.

Modulöversikt

I den här artikeln beskrivs hur du använder modulen Train Matchbox Recommender i Machine Learning Studio (klassisk) för att träna en rekommendationsmodell.

Rekommendationsalgoritmen i Machine Learning baseras på Matchbox-modellen, som utvecklats av Microsoft Research. Om du vill ladda ned ett dokument som beskriver algoritmen i detalj klickar du på den här länken på Webbplatsen för Microsoft Research.

Modulen Train Matchbox Recommender läser en datamängd med trippelr för användarobjektklassificering och, om du vill, vissa användar- och objektfunktioner. Den returnerar en tränad Matchbox-rekommenderare. Du kan sedan använda den tränade modellen för att generera rekommendationer, hitta relaterade användare eller hitta relaterade objekt med hjälp av modulen Poängmatchning rekommenderare .

Tips

Lär dig allt du behöver veta om upplevelsen från slutet av att skapa ett rekommendationssystem i den här självstudien från .NET-utvecklingsteamet. Innehåller exempelkod och diskussion om hur du anropar Machine Learning från ett program.

Skapa rekommendationsmotor för .NET-program med Machine Learning

Mer om rekommendationsmodeller och Matchbox-rekommenderaren

Huvudsyftet med ett rekommendationssystem är att rekommendera ett eller flera objekttill användare av systemet. Exempel på ett objekt kan vara en film, restaurang, bok eller låt. En användare kan vara en person, grupp med personer eller en annan entitet med objektinställningar.

Det finns två huvudsakliga metoder för att rekommendera system.

  • Den första är den innehållsbaserade metoden , som använder funktioner för både användare och objekt. Användare kan beskrivas av egenskaper som ålder och kön, och objekt kan beskrivas av egenskaper som författare och tillverkare. Vanliga exempel på innehållsbaserade rekommendationssystem finns på webbplatser för sociala matchningar.
  • Den andra metoden är samarbetsfiltrering, som endast använder identifierare för användarna och objekten och hämtar implicit information om dessa entiteter från en (gles) matris med klassificeringar som ges av användarna till objekten. Vi kan lära oss mer om en användare från de objekt som de har klassificerat och från andra användare som har klassificerat samma objekt.

Matchbox-rekommenderaren kombinerar dessa metoder med hjälp av samarbetsfiltrering med en innehållsbaserad metod. Det anses därför vara en hybridrekommendation.

Så här fungerar det här: När en användare är relativt ny i systemet förbättras förutsägelserna genom att funktionsinformationen om användaren används, vilket tar upp det välkända "kallstartsproblemet". Men när du har samlat in ett tillräckligt antal klassificeringar från en viss användare, är det möjligt att göra helt anpassade förutsägelser för dem baserat på deras specifika klassificeringar i stället för enbart deras funktioner. Därför sker en smidig övergång från innehållsbaserade rekommendationer till rekommendationer baserat på samarbetsfiltrering. Även om användar- eller objektfunktioner inte är tillgängliga fungerar Matchbox fortfarande i sitt samarbetsfiltreringsläge.

Mer information om Matchbox-rekommenderaren och dess underliggande probabilistiska algoritm finns i relevant forskning: Matchbox: Large Scale Bayesian Rekommendationer Rekommendationer. Dessutom har Machine Learning blogg en artikel med namnet Rekommendationer Överallt som ger en introduktion på hög nivå till rekommendationsalgoritmer.

Så här konfigurerar du Train Matchbox Recommender

Förbereda data

Innan du försöker använda modulen är det viktigt att dina data har det format som förväntas av rekommendationsmodellen. En uppsättning träningsdata med trippelr av användarobjektklassificering krävs, men du kan även inkludera användarfunktioner och objektfunktioner (om det är tillgängligt) i separata datauppsättningar.

Om du vill dela in källdata i datauppsättningar för träning och testning använder du alternativet Dela rekommenderare i modulen Dela data.

Datauppsättning som krävs för user-item-ratings

Det är mycket viktigt att de indata som används för träning innehåller rätt typ av data i rätt format:

  • Den första kolumnen måste innehålla användaridentifierare.
  • Den andra kolumnen måste innehålla objektidentifierare.
  • Den tredje kolumnen innehåller omdömet för användarobjektparet. Klassificeringsvärdena måste vara numeriska eller kategoriska.

Under träningen kan klassificeringsvärdena inte vara samma. Om det är numeriskt måste dessutom skillnaden mellan minimi- och maxklassificeringsvärdena vara mindre än 100 och helst inte större än 20.

Datamängden Restaurangklassificeringar i Machine Learning Studio (klassisk) (klicka på Sparade datamängder och sedan på Exempel) visar det förväntade formatet:

userID placeID rating
U1077 135085 2
U1077 135038 2

I det här exemplet ser du att en enskild användare har betygsatt två separata restauranger.

Datauppsättning för användarfunktioner (valfritt)

Datauppsättningen med användarfunktioner måste innehålla identifierare för användare och använda samma identifierare som angavs i den första kolumnen i datauppsättningen users-items-ratings. De återstående kolumnerna kan innehålla val av antal funktioner som beskriver användarna.

Ett exempel finns i datamängden Restaurangkund i Machine Learning Studio (klassisk). En typisk uppsättning användarfunktioner ser ut så här:

userID Atmosfär Dress_preference Transport Rökare
U1004 familj Informella Till vänster FALSE
U1005 Vänner Inga inställningar Bilägare TRUE

Datauppsättning för objektfunktioner (valfritt)

Datauppsättningen med objektfunktioner måste innehålla objektidentifierare i den första kolumnen. De återstående kolumnerna kan innehålla val av antal beskrivande funktioner för objekten.

Ett exempel finns i datauppsättningen för restaurangfunktionen som finns i Machine Learning Studio (klassisk) (klicka på Sparade datamängder och sedan på Exempel). En typisk uppsättning objektfunktioner (i det här fallet objektet är en restaurang) kan se ut så här:

placeID Alkohol Smoking_area price Rambience
135106 Wine-Beer inget Låg familj
132667 No_Alcohol_Served Tillåtna medel Casual

Träna modellen

  1. Lägg till modulen Train Matchbox Recommender i experimentet i Studio (klassisk) och anslut den till träningsdata.

  2. Om du har en separat datauppsättning med antingen användarfunktioner och/eller objektfunktioner ansluter du dem till modulen Train Matchbox Recommender (Träna Matchbox-rekommenderare ).

    • Datauppsättning för användarfunktioner: Anslut datauppsättningen som beskriver användare till andra indata.

    • Objektfunktioner för datauppsättning: Anslut datauppsättningen som beskriver objekt till tredje indata.

  3. I Antal träningsbatchar anger du antalet batchar för att dela upp data under träningen.

    Baserat på det här värdet delas datamängden för trippelr av användarobjektklassificering in i flera delar eller batchar under träningen.

    Eftersom Train Matchbox Recommender kör batchar parallellt rekommenderar vi att antalet träningsbatchar anges till antalet tillgängliga kärnor, om hela träningsdata får plats i minnet. I annat fall ska antalet träningsbatchar anges till den lägsta multipeln av det antal tillgängliga kärnor som träningsdata får plats i minnet för.

    Som standard delas träningsdata in i fyra (4) batchar. Endast datauppsättningen för trippelr av användarobjektklassificering delas. Användar- eller objektfunktioner delas inte eftersom funktioner inte behöver delas upp.

  4. I Antal egenskaper anger du antalet latent egenskaper som ska läras in för varje användare och objekt.

    Ju högre antal egenskaper, desto mer exakta blir förutsägelserna vanligtvis; Träningen går dock långsammare. Antalet egenskaper ligger vanligtvis inom intervallet 2–20.

  5. För Antal iterationer av rekommendationsalgoritmer anger du hur många gånger algoritmen ska bearbeta indata.

    Matchbox-rekommenderaren tränas med hjälp av en meddelande passerar-algoritm som kan iterera flera gånger över indata. Ju högre det här talet är, desto mer exakta förutsägelser; Träningen går dock långsammare. Vanligtvis ligger antalet iterationer i intervallet 1–10.

  6. Kör experimentet eller välj bara modulen Train Matchbox Recommender (Träna matchbox-rekommenderare ) och välj Kör valt.

Exempel

Exempel på hur rekommendationsmodeller används i Machine Learning finns i dessa exempelexperiment i Azure AI Gallery:

Teknisk information

Det här avsnittet innehåller implementeringsinformation, tips och svar på vanliga frågor.

Användningstips

  • Om en funktionskolumn saknar värden används läget för de värden som inte saknas som ersättning för de saknade värdena.

  • Alla funktioner för användare och objekt skalas om så att de har enhetslängd, så att det högsta absoluta värdet är 1. Ingen översättning tillämpas på funktionsvärdena för att bibehålla sin sparsitet.

Begränsningar

Onlineuppdatering (eller kontinuerlig träning) av en rekommendationsmodell stöds för närvarande inte i Machine Learning. Om du vill samla in användarsvar på rekommendationer och använda dem för att förbättra modellen rekommenderar vi att du regelbundet omtränar hela modellen. Inkrementell träning är inte möjligt, men du kan använda ett skjutfönster för träningsdata för att säkerställa att datavolymen minimeras när du använder de senaste data.

Uppskatta rekommenderad minnesanvändning

Den nedre gränsen för Matchbox 16 * N\(4\T + 2\R) minnesfotavtryck är för närvarande byte, där N refererar till antalet trippelr för användarobjektklassificering i träningsdatamängden, T till antalet latent egenskaper och R till skillnaden mellan lägsta och högsta omdömet (i träningsdatamängden).

Storleken på en serialiserad Matchbox-rekommenderarmodell 16 * T\(U\R + I + X + Y) är ungefär byte, där U refererar till antalet användare, I till antalet objekt, X till antalet användarfunktioner och Y till antalet objektfunktioner.

Förväntade indata

Namn Typ Description
Träningsdatauppsättning för trippelr med användarobjektklassificering Datatabell Klassificeringar av objekt av användare, uttryckt som en trippel (användare, objekt, klassificering)
Datauppsättning för träning av användarfunktioner Datatabell Datauppsättning som innehåller funktioner som beskriver användare (valfritt)
Träningsdatauppsättning för objektfunktioner Datatabell Datauppsättning som innehåller funktioner som beskriver objekt (valfritt)

Modulparametrar

Name Intervall Typ Standardvärde Description
Antal egenskaper >= 0 Integer 10 Ange antalet egenskaper som ska användas med rekommenderaren (valfritt)
Antal iterationer av rekommendationsalgoritmer >=1 Integer 5 Ange det maximala antalet iterationer som ska utföras vid träning av rekommendationsmodellen (valfritt)
Antal träningsbatchar >=1 Integer 4 Ange antalet träningsbatchar som ska användas med rekommenderaren (valfritt)

Utdata

Namn Typ Description
Tränad Matchbox-rekommenderare ILearner-gränssnitt Tränad Matchbox-rekommenderare

Undantag

Undantag Description
Fel 0022 Undantaget inträffar om antalet valda kolumner i indatauppsättningen inte är lika med det förväntade antalet.
Fel 0036 Undantaget inträffar om flera funktionsvektorer har angetts för en viss användare eller ett visst objekt.
Fel 0018 Undantag inträffar om indatauppsättningen inte är giltig.
Fel 0035 Undantaget inträffar om inga funktioner har angetts för en viss användare eller ett visst objekt.
Fel 0034 Undantag inträffar om det finns fler än en klassificering för ett visst användarobjektpar.
Fel 0053 Undantag inträffar när det inte finns några användarfunktioner eller objekt för Matchbox-rekommendationer.
Fel 0003 Undantag inträffar om en eller flera indata är null eller tomma.

En lista över fel som är specifika för Studio-moduler (klassisk) finns i Machine Learning felkoder.

En lista över API-undantag finns i Machine Learning REST API felkoder.

Se även

Kors validera modell
Utvärdera rekommenderare
Träna
Poängmatchningbox-rekommenderare