Bedöma modulen Wide and Deep Recommender

Den här artikeln beskriver hur du använder komponenten Poängbredd och Djuprekommendator i Azure Machine Learning-designern för att skapa förutsägelser baserat på en tränad rekommendationsmodell baserat på Bred och Djupinlärning från Google.

Den breda och djupa rekommenderaren kan generera två olika typer av förutsägelser:

När du skapar den senare typen av förutsägelser kan du arbeta i antingen produktionsläge eller utvärderingsläge.

  • Produktionsläget tar hänsyn till alla användare eller objekt och används vanligtvis i en webbtjänst. Du kan skapa poäng för nya användare, inte bara användare som visas under träningen.

  • Utvärderingsläget fungerar på en reducerad uppsättning användare eller objekt som kan utvärderas och används vanligtvis under experimenteringen.

Mer information om den breda och djupa rekommenderaren och dess underliggande teori finns i relevant forskningsdokument: Wide & Deep Learning for Recommender Systems.

Så här konfigurerar du poängbredd och djuprekommendator

Den här komponenten stöder olika typer av rekommendationer, var och en med olika krav. Klicka på länken för den typ av data du har och vilken typ av rekommendation du vill skapa.

Förutsäga klassificeringar

När du förutsäger klassificeringar beräknar modellen hur en viss användare kommer att reagera på ett visst objekt med tanke på träningsdata. Därför måste indata för bedömning tillhandahålla både en användare och objektet att betygsätta.

  1. Lägg till en tränad bred och djup rekommendationsmodell i experimentet och anslut den till rekommendationsmodellen Tränad bred och djup. Du måste skapa modellen med hjälp av Train Wide och Deep Recommender.

  2. Förutsägelsetyp för rekommenderare: Välj Omdömesförutsägelse. Inga ytterligare parametrar krävs.

  3. Lägg till de data som du vill göra förutsägelser för och anslut dem till Datauppsättning för att göra poäng.

    För att förutsäga klassificeringar måste indatauppsättningen innehålla användarobjektpar.

    Datauppsättningen kan innehålla en valfri tredje kolumn med klassificeringar för användarobjektparet i de första och andra kolumnerna, men den tredje kolumnen ignoreras under förutsägelsen.

  4. (valfritt). Om du har en datauppsättning med användarfunktioner ansluter du den till användarfunktioner.

    Datamängden för användarfunktioner ska innehålla användaridentifieraren i den första kolumnen. De återstående kolumnerna bör innehålla värden som kännetecknar användarna, till exempel deras kön, inställningar, plats osv.

    Funktioner för användare som har betygsatt objekt i träningsdatauppsättningen ignoreras av Poäng wide och djuprekommendator, eftersom de redan har lärt sig under träningen. Filtrera därför datauppsättningen i förväg så att den endast innehåller kallstartsanvändare eller användare som inte har betygsatt några objekt.

    Varning

    Om modellen har tränats utan att använda användarfunktioner kan du inte introducera användarfunktioner under bedömning.

  5. Om du har en datamängd med objektfunktioner kan du ansluta den till objektfunktioner.

    Datauppsättningen för objektfunktioner måste innehålla en objektidentifierare i den första kolumnen. De återstående kolumnerna ska innehålla värden som kännetecknar objekten.

    Funktioner för klassificerade objekt i träningsdatauppsättningen ignoreras av Poäng wide och djuprekommendator eftersom de redan har lärts under träningen. Begränsa därför din bedömningsdatauppsättning till kallstartsobjekt eller objekt som inte har klassificerats av några användare.

    Varning

    Om modellen har tränats utan att använda objektfunktioner kan du inte introducera objektfunktioner under bedömning.

  6. Kör experimentet.

Resultat för omdömesförutsägelser

Utdatauppsättningen innehåller tre kolumner som innehåller användaren, objektet och den förutsagda klassificeringen för varje indataanvändare och objekt.

Dessutom tillämpas följande ändringar under bedömning:

  • För en numerisk funktionskolumn för användare eller objekt ersätts saknade värden automatiskt med medelvärdet för dess träningsuppsättningsvärden som inte saknas. För kategoriska funktioner ersätts saknade värden med samma kategoriska värde förutom eventuella värden för den här funktionen.
  • Ingen översättning tillämpas på funktionsvärdena för att bibehålla deras gleshet.

Rekommendera objekt

Om du vill rekommendera objekt för användare anger du en lista över användare och objekt som indata. Utifrån dessa data använder modellen sina kunskaper om befintliga objekt och användare för att generera en lista över objekt med sannolikt tilltalande för varje användare. Du kan anpassa antalet rekommendationer som returneras och ange ett tröskelvärde för antalet tidigare rekommendationer som krävs för att generera en rekommendation.

  1. Lägg till en tränad bred och djup rekommendationsmodell i experimentet och anslut den till rekommendationsmodellen Tränad bred och djup. Du måste skapa modellen med hjälp av Train Wide och Deep Recommender.

  2. Om du vill rekommendera objekt för en viss lista över användare anger du Rekommendationsprediktionstyp till Objektrekommendations.

  3. Rekommenderat objektval: Ange om du använder bedömningskomponenten i produktion eller för modellutvärdering genom att välja något av följande värden:

    • Från Klassificerade objekt (för modellutvärdering): Välj det här alternativet om du utvecklar eller testar en modell. Det här alternativet aktiverar utvärderingsläge och komponenten ger endast rekommendationer från de objekt i indatauppsättningen som har klassificerats.
    • Från Alla objekt: Välj det här alternativet om du konfigurerar ett experiment som ska användas i en webbtjänst eller produktion. Det här alternativet aktiverar produktionsläge och komponenten ger rekommendationer från alla objekt som visas under träningen.
    • Från Oklassificerade objekt (för att föreslå nya objekt för användare): Välj det här alternativet om du vill att komponenten endast ska ge rekommendationer från de objekt i träningsdatauppsättningen som inte har klassificerats.
  4. Lägg till den datauppsättning som du vill göra förutsägelser för och anslut den till Datauppsättning för att göra poäng.

    • Om du väljer alternativet Från alla objekt ska indatauppsättningen bestå av en och endast en kolumn, som innehåller identifierarna för användare som ska ge rekommendationer.

      Datamängden kan innehålla ytterligare två kolumner med objektidentifierare och klassificeringar, men dessa två kolumner ignoreras.

    • Om du väljer alternativet Från klassificerade objekt (för modellutvärdering) ska indatauppsättningen bestå av användarobjektpar. Den första kolumnen ska innehålla användaridentifieraren . Den andra kolumnen ska innehålla motsvarande objektidentifierare .

      Datamängden kan innehålla en tredje kolumn med klassificeringar av användarobjekt, men den här kolumnen ignoreras.

    • För Från oklassificerade objekt (för att föreslå nya objekt till användare)bör indatauppsättningen bestå av användarobjektpar. Den första kolumnen ska innehålla användaridentifieraren. Den andra kolumnen ska innehålla motsvarande objektidentifierare.

      Datamängden kan innehålla en tredje kolumn med klassificeringar av användarobjekt, men den här kolumnen ignoreras.

  5. (valfritt). Om du har en datauppsättning med användarfunktioner ansluter du den till användarfunktioner.

    Den första kolumnen i datauppsättningen för användarfunktioner ska innehålla användaridentifieraren. De återstående kolumnerna ska innehålla värden som kännetecknar användaren, till exempel deras kön, inställningar, plats osv.

    Funktioner för användare som har betygsatt objekt ignoreras av Poäng wide och djuprekommendator, eftersom dessa funktioner redan har lärts under träningen. Därför kan du filtrera datamängden i förväg så att den endast omfattar kallstartsanvändare eller användare som inte har betygsatt några objekt.

    Varning

    Om modellen har tränats utan att använda användarfunktioner kan du inte använda tillämpa funktioner under bedömning.

  6. (Valfritt) Om du har en datamängd med objektfunktioner kan du ansluta den till objektfunktioner.

    Den första kolumnen i objektfunktionernas datauppsättning måste innehålla objektidentifieraren. De återstående kolumnerna ska innehålla värden som kännetecknar objekten.

    Funktioner i klassificerade objekt ignoreras av Poäng wide och djuprekommendator, eftersom dessa funktioner redan har lärts under träningen. Därför kan du begränsa din bedömningsdatauppsättning till kallstartsobjekt eller objekt som inte har klassificerats av några användare.

    Varning

    Om modellen har tränats utan att använda objektfunktioner ska du inte använda objektfunktioner vid bedömning.

  7. Maximalt antal objekt att rekommendera till en användare: Ange antalet objekt som ska returneras för varje användare. Som standard rekommenderas 5 objekt.

  8. Minsta storlek på rekommendationspoolen per användare: Ange ett värde som anger hur många tidigare rekommendationer som krävs. Som standard är den här parametern inställd på 2, vilket innebär att objektet måste ha rekommenderats av minst två andra användare.

    Det här alternativet bör endast användas om du bedömer i utvärderingsläge. Alternativet är inte tillgängligt om du väljer Från alla objekt eller Från oklassificerade objekt (för att föreslå nya objekt för användare).

  9. För Från ej klassificerade objekt (för att föreslå nya objekt till användare)använder du den tredje indataporten med namnet Träningsdata för att ta bort objekt som redan har klassificerats från förutsägelseresultatet.

    Om du vill använda det här filtret ansluter du den ursprungliga träningsdatauppsättningen till indataporten.

  10. Kör experimentet.

Resultat av objektrekommendering

Den poängsatta datamängden som returneras av Score Wide och Deep Recommender listar de rekommenderade objekten för varje användare.

  • Den första kolumnen innehåller användaridentifierarna.
  • Ett antal ytterligare kolumner genereras, beroende på vilket värde du anger för Maximalt antal objekt att rekommendera till en användare. Varje kolumn innehåller ett rekommenderat objekt (efter identifierare). Rekommendationerna sorteras efter mappning mellan användare och objekt, där objektet med högst tillhörighet placeras i kolumnen Objekt 1.

Tekniska anteckningar

Det här avsnittet innehåller svar på några vanliga frågor om hur du använder wide &deep-rekommendationen för att skapa förutsägelser.

Kallstartsanvändare och rekommendationer

För att skapa rekommendationer kräver komponenten Poäng vid och Djuprekommendator vanligtvis samma indata som du använde när du tränade modellen, inklusive ett användar-ID. Det beror på att algoritmen behöver veta om den har lärt sig något om den här användaren under träningen.

Men för nya användare kanske du inte har något användar-ID, bara vissa användarfunktioner som ålder, kön och så vidare.

Du kan fortfarande skapa rekommendationer för användare som är nya i systemet genom att hantera dem som kallstartsanvändare. För sådana användare använder rekommendationsalgoritmen inte tidigare historik eller tidigare klassificeringar, bara användarfunktioner.

I förutsägelsesyfte definieras en kallstartsanvändare som en användare med ett ID som inte har använts för träning. För att säkerställa att ID:n inte matchar ID:n som används i träningen kan du skapa nya identifierare. Du kan till exempel generera slumpmässiga ID:er inom ett angivet intervall eller allokera en serie ID:er i förväg för kallstartsanvändare.

Men om du inte har några samarbetsfiltreringsdata, till exempel en vektor med användarfunktioner, är du bättre på att använda en klassificerings- eller regressionsinlärare.

Produktionsanvändning av den breda och djupa rekommenderaren

Om du har experimenterat med den breda och djupa rekommenderaren och sedan flyttar modellen till produktion bör du vara medveten om dessa viktiga skillnader när du använder rekommendationsverktyget i utvärderingsläge och i produktionsläge:

  • Utvärdering kräver per definition förutsägelser som kan verifieras mot den grundläggande sanningen i en testuppsättning. När du utvärderar rekommendationen måste den därför bara förutsäga objekt som har klassificerats i testuppsättningen. Detta begränsar nödvändigtvis de möjliga värden som förutsägs.

    Men när du operationaliserar modellen ändrar du vanligtvis förutsägelseläget för att ge rekommendationer baserat på alla möjliga objekt för att få bästa möjliga förutsägelser. För många av dessa förutsägelser finns det ingen motsvarande grundsanning, så rekommendationens noggrannhet kan inte verifieras på samma sätt som under experimenteringen.

  • Om du inte anger ett användar-ID i produktion och endast tillhandahåller en funktionsvektor kan du som svar få en lista över alla rekommendationer för alla möjliga användare. Ange ett användar-ID.

    Om du vill begränsa antalet rekommendationer som returneras kan du också ange det maximala antalet objekt som returneras per användare.

Nästa steg

Se den uppsättning komponenter som är tillgängliga för Azure Machine Learning.