Aanbevelingsfunctie voor wide en deep learning-scores

In dit artikel wordt beschreven hoe u het onderdeel Score Wide en Deep Recommender in Azure Machine Learning Designer gebruikt om voorspellingen te maken op basis van een getraind aanbevelingsmodel op basis van het Wide & Deep Learning-onderdeel van Google.

De wide- en deep-aanbeveling kan twee verschillende soorten voorspellingen genereren:

Wanneer u het laatste soort voorspellingen maakt, kunt u werken in de productiemodus of evaluatiemodus.

  • De productiemodus houdt rekening met alle gebruikers of items en wordt meestal gebruikt in een webservice. U kunt scores maken voor nieuwe gebruikers, niet alleen gebruikers die tijdens de training worden gezien.

  • De evaluatiemodus werkt op een beperkte set gebruikers of items die kunnen worden geëvalueerd en wordt meestal gebruikt tijdens het experimenteren.

Meer informatie over de Wide and Deep recommender en de onderliggende theorie vindt u in het relevante onderzoeksdocument: Wide & Deep Learning for Recommender Systems.

Score Wide and Deep Recommender configureren

Dit onderdeel ondersteunt verschillende soorten aanbevelingen, elk met verschillende vereisten. Klik op de koppeling voor het type gegevens dat u hebt en het type aanbeveling dat u wilt maken.

Classificaties voorspellen

Wanneer u beoordelingen voorspelt, berekent het model hoe een bepaalde gebruiker reageert op een bepaald item, op basis van de trainingsgegevens. Daarom moeten de invoergegevens voor scoren zowel een gebruiker als het item bieden om te beoordelen.

  1. Voeg een getraind Wide & Deep-aanbevelingsmodel toe aan uw experiment en verbind het met het getrainde wide- en deep-aanbevelingsmodel. U moet het model maken met behulp van Train Wide en Deep Recommender.

  2. Type aanbevelingsvoorspelling: Selecteer Beoordelingsvoorspelling. Er zijn geen verdere parameters vereist.

  3. Voeg de gegevens toe waarvoor u voorspellingen wilt doen en koppel deze aan gegevensset om te scoren.

    Als u beoordelingen wilt voorspellen, moet de invoergegevensset paren van gebruikersitems bevatten.

    De gegevensset kan een optionele derde kolom met classificaties bevatten voor het paar gebruikersitems in de eerste en tweede kolommen, maar de derde kolom wordt tijdens de voorspelling genegeerd.

  4. (Optioneel). Als u een gegevensset met gebruikersfuncties hebt, verbindt u deze met gebruikersfuncties.

    De gegevensset met gebruikersfuncties moet de gebruikers-id in de eerste kolom bevatten. De resterende kolommen moeten waarden bevatten die de gebruikers karakteriseren, zoals hun geslacht, voorkeuren, locatie, enzovoort.

    Functies van gebruikers die items in de trainingsgegevensset hebben beoordeeld, worden genegeerd door Score Wide en Deep Recommender, omdat ze al zijn geleerd tijdens de training. Filter uw gegevensset daarom van tevoren zodat alleen cold-startgebruikers of gebruikers die geen items hebben beoordeeld, worden opgenomen.

    Waarschuwing

    Als het model is getraind zonder gebruikersfuncties te gebruiken, kunt u tijdens het scoren geen gebruikersfuncties introduceren.

  5. Als u een gegevensset met itemfuncties hebt, kunt u deze verbinden met itemfuncties.

    De gegevensset met itemfuncties moet een item-id in de eerste kolom bevatten. De resterende kolommen moeten waarden bevatten die de items karakteriseren.

    Functies van geclassificeerde items in de trainingsgegevensset worden genegeerd door Score Wide en Deep Recommender , omdat ze al zijn geleerd tijdens de training. Beperk uw scoregegevensset daarom tot koudstartitems of items die niet door gebruikers zijn beoordeeld.

    Waarschuwing

    Als het model is getraind zonder itemfuncties te gebruiken, kunt u geen itemfuncties introduceren tijdens het scoren.

  6. Voer het experiment uit.

Resultaten voor beoordelingsvoorspellingen

De uitvoergegevensset bevat drie kolommen met de gebruiker, het item en de voorspelde waardering voor elke invoergebruiker en elk item.

Daarnaast worden de volgende wijzigingen toegepast tijdens het scoren:

  • Voor een kolom met numerieke gebruikers- of itemfuncties worden ontbrekende waarden automatisch vervangen door het gemiddelde van de niet-ontbrekende trainingssetwaarden. Voor categorische functies worden ontbrekende waarden vervangen door dezelfde categorische waarde dan alle mogelijke waarden van deze functie.
  • Er wordt geen vertaling toegepast op de functiewaarden om hun spaarzaamheid te behouden.

Items aanbevelen

Als u items voor gebruikers wilt aanbevelen, geeft u een lijst met gebruikers en items op als invoer. Op basis van deze gegevens gebruikt het model zijn kennis over bestaande items en gebruikers om een lijst met items te genereren met waarschijnlijke aantrekkingskracht op elke gebruiker. U kunt het aantal geretourneerde aanbevelingen aanpassen en een drempelwaarde instellen voor het aantal eerdere aanbevelingen dat is vereist om een aanbeveling te genereren.

  1. Voeg een getraind wide en deep aanbevelingsmodel toe aan uw experiment en verbind het met het getrainde wide- en deep-aanbevelingsmodel. U moet het model maken met behulp van Train Wide en Deep Recommender.

  2. Als u items wilt aanbevelen voor een bepaalde lijst met gebruikers, stelt u het voorspellingstypeAanbeveling van de aanbeveling voor aanbevolen aanbevelingen in.

  3. Aanbevolen itemselectie: Geef aan of u het scoreonderdeel in productie of voor modelevaluatie gebruikt door een van deze waarden te kiezen:

    • Van geclassificeerde items (voor modelevaluatie): selecteer deze optie als u een model ontwikkelt of test. Met deze optie schakelt u de evaluatiemodus in en het onderdeel doet alleen aanbevelingen van die items in de invoergegevensset die zijn beoordeeld.
    • Selecteer deze optie als u een experiment instelt voor gebruik in een webservice of productie. Met deze optie schakelt u de productiemodus in en het onderdeel doet aanbevelingen van alle items die tijdens de training worden gezien.
    • Van Niet-geclassificeerde items (om nieuwe items aan gebruikers voor te stellen): selecteer deze optie als u wilt dat het onderdeel alleen aanbevelingen doet van die items in de trainingsgegevensset die niet zijn beoordeeld.
  4. Voeg de gegevensset toe waarvoor u voorspellingen wilt doen en koppel deze aan gegevensset om te scoren.

    • Als u de optie kiest, moet de invoergegevensset uit één en slechts één kolom bestaan, met daarin de id's van gebruikers waarvoor aanbevelingen moeten worden gemaakt.

      De gegevensset kan extra twee kolommen met item-id's en classificaties bevatten, maar deze twee kolommen worden genegeerd.

    • Als u de optie kiest, moet de invoergegevensset uit geclassificeerde items (voor modelevaluatie) bestaan uit gebruikersitemparen. De eerste kolom moet de gebruikers-id bevatten. De tweede kolom moet de bijbehorende item-id's bevatten.

      De gegevensset kan een derde kolom met classificaties voor gebruikersitems bevatten, maar deze kolom wordt genegeerd.

    • Voor Niet-geclassificeerde items (om nieuwe items voor te stellen aan gebruikers), moet de invoergegevensset bestaan uit paren van gebruikersitems. De eerste kolom moet de gebruikers-id bevatten. De tweede kolom moet de bijbehorende item-id's bevatten.

      De gegevensset kan een derde kolom met classificaties voor gebruikersitems bevatten, maar deze kolom wordt genegeerd.

  5. (Optioneel). Als u een gegevensset met gebruikersfuncties hebt, verbindt u deze met gebruikersfuncties.

    De eerste kolom in de gegevensset met gebruikersfuncties moet de gebruikers-id bevatten. De resterende kolommen moeten waarden bevatten die de gebruiker karakteriseren, zoals hun geslacht, voorkeuren, locatie, enzovoort.

    Functies van gebruikers die items hebben beoordeeld, worden genegeerd door Score Wide en Deep Recommender, omdat deze functies al zijn geleerd tijdens de training. Daarom kunt u uw gegevensset van tevoren filteren om alleen cold-startgebruikers of gebruikers die geen items hebben beoordeeld, op te nemen.

    Waarschuwing

    Als het model is getraind zonder gebruikersfuncties te gebruiken, kunt u tijdens het scoren geen functies toepassen.

  6. (Optioneel) Als u een gegevensset met itemfuncties hebt, kunt u deze verbinden met itemfuncties.

    De eerste kolom in de gegevensset met itemfuncties moet de item-id bevatten. De resterende kolommen moeten waarden bevatten die de items karakteriseren.

    Functies van geclassificeerde items worden genegeerd door Score Wide en Deep Recommender, omdat deze functies al zijn geleerd tijdens de training. Daarom kunt u uw scoregegevensset beperken tot koudstartitems of items die niet door gebruikers zijn beoordeeld.

    Waarschuwing

    Als het model is getraind zonder itemfuncties te gebruiken, moet u geen itemfuncties gebruiken bij het scoren.

  7. Maximum aantal items dat aan een gebruiker moet worden aanbevolen: typ het aantal items dat moet worden geretourneerd voor elke gebruiker. Standaard worden vijf items aanbevolen.

  8. Minimale grootte van de aanbevelingsgroep per gebruiker: typ een waarde die aangeeft hoeveel eerdere aanbevelingen vereist zijn. Deze parameter is standaard ingesteld op 2, wat betekent dat het item moet zijn aanbevolen door ten minste twee andere gebruikers.

    Deze optie moet alleen worden gebruikt als u scoren in de evaluatiemodus. De optie is niet beschikbaar als u Van alle items of Van niet-geclassificeerde items selecteert (om nieuwe items aan gebruikers voor te stellen).

  9. Voor Niet-geclassificeerde items (om nieuwe items aan gebruikers voor te stellen), gebruikt u de derde invoerpoort, met de naam Trainingsgegevens, om items te verwijderen die al zijn beoordeeld uit de voorspellingsresultaten.

    Als u dit filter wilt toepassen, verbindt u de oorspronkelijke trainingsgegevensset met de invoerpoort.

  10. Voer het experiment uit.

Resultaten van aanbeveling voor items

De gescoorde gegevensset die wordt geretourneerd door Score Wide en Deep Recommender bevat de aanbevolen items voor elke gebruiker.

  • De eerste kolom bevat de gebruikers-id's.
  • Er worden een aantal extra kolommen gegenereerd, afhankelijk van de waarde die u hebt ingesteld voor Maximum aantal items dat aan een gebruiker moet worden aanbevolen. Elke kolom bevat een aanbevolen item (op id). De aanbevelingen worden gerangschikt op gebruikersitemaffiniteit, met het item met de hoogste affiniteit in kolom Item 1.

Technische notities

Deze sectie bevat antwoorden op enkele veelgestelde vragen over het gebruik van de Wide & Deep-aanbeveling om voorspellingen te maken.

Koude start-gebruikers en aanbevelingen

Voor het maken van aanbevelingen vereist het onderdeel Score Wide en Deep Recommender doorgaans dezelfde invoer die u hebt gebruikt bij het trainen van het model, inclusief een gebruikers-id. Dat komt doordat het algoritme moet weten of het iets heeft geleerd over deze gebruiker tijdens de training.

Voor nieuwe gebruikers hebt u echter mogelijk geen gebruikers-id, maar slechts enkele gebruikersfuncties, zoals leeftijd, geslacht, enzovoort.

U kunt nog steeds aanbevelingen maken voor gebruikers die geen toegang hebben tot uw systeem, door ze te verwerken als koude gebruikers. Voor dergelijke gebruikers gebruikt het aanbevelingsalgoritmen geen eerdere geschiedenis of eerdere classificaties, alleen gebruikersfuncties.

Voor voorspellingsdoeleinden wordt een koude-startgebruiker gedefinieerd als een gebruiker met een id die niet is gebruikt voor training. Als u ervoor wilt zorgen dat id's niet overeenkomen met id's die in de training worden gebruikt, kunt u nieuwe id's maken. U kunt bijvoorbeeld willekeurige id's binnen een opgegeven bereik genereren of een reeks id's vooraf toewijzen voor cold-startgebruikers.

Als u echter geen gezamenlijke filtergegevens hebt, zoals een vector van gebruikersfuncties, kunt u beter een classificatie- of regressieleerder gebruiken.

Productiegebruik van de Wide and Deep-aanbeveling

Als u hebt geëxperimenteerd met de Wide and Deep-aanbeveling en vervolgens het model naar productie verplaatst, moet u rekening houden met deze belangrijke verschillen wanneer u de aanbevelingsfunctie gebruikt in de evaluatiemodus en in de productiemodus:

  • Evaluatie vereist per definitie voorspellingen die kunnen worden geverifieerd op basis van de grondwaar in een testset. Wanneer u de aanbevelingsfunctie evalueert, moet deze daarom alleen items voorspellen die in de testset zijn beoordeeld. Dit beperkt noodzakelijkerwijs de mogelijke waarden die worden voorspeld.

    Wanneer u het model echter operationeel maakt, wijzigt u doorgaans de voorspellingsmodus om aanbevelingen te doen op basis van alle mogelijke items, om de beste voorspellingen te krijgen. Voor veel van deze voorspellingen is er geen overeenkomstige grondwaar, dus de nauwkeurigheid van de aanbeveling kan niet op dezelfde manier worden geverifieerd als tijdens experimenten.

  • Als u geen gebruikers-id in productie opgeeft en alleen een functievector opgeeft, krijgt u mogelijk een lijst met alle aanbevelingen voor alle mogelijke gebruikers. Zorg ervoor dat u een gebruikers-id opgeeft.

    Als u het aantal geretourneerde aanbevelingen wilt beperken, kunt u ook het maximum aantal geretourneerde items per gebruiker opgeven.

Volgende stappen

Bekijk de set onderdelen die beschikbaar zijn voor Azure Machine Learning.