Delen via


Aanbeveling voor Matchbox trainen

Belangrijk

De ondersteuning voor Azure Machine Learning-studio (klassiek) eindigt op 31 augustus 2024. U wordt aangeraden om vóór die datum over te stappen naar Azure Machine Learning.

Vanaf 1 december 2021 kunt u geen nieuwe resources voor Azure Machine Learning-studio (klassiek) meer maken. Tot en met 31 augustus 2024 kunt u de bestaande resources van Azure Machine Learning-studio (klassiek) blijven gebruiken.

De documentatie van ML-studio (klassiek) wordt buiten gebruik gesteld en wordt in de toekomst mogelijk niet meer bijgewerkt.

Traint een Bayesiaanse aanbevelingser met behulp van het Matchbox-algoritme

Categorie: Machine Learning/trainen

Notitie

Van toepassing op: Machine Learning Studio (klassiek)

Vergelijkbare modules voor slepen en neerzetten zijn beschikbaar in Azure Machine Learning designer.

Moduleoverzicht

In dit artikel wordt beschreven hoe u de module Train Matchbox Recommender in Machine Learning Studio (klassiek) gebruikt om een aanbevelingsmodel te trainen.

Het aanbevelingsalgoritme in Machine Learning is gebaseerd op het Matchbox-model, ontwikkeld door Microsoft Research. Als u een document wilt downloaden waarin het algoritme in detail wordt beschreven, klikt u op deze koppeling op de site Microsoft Research.

De module Train Matchbox Recommender leest een gegevensset met drie keer de classificatie van gebruikersitem en, optioneel, enkele functies voor gebruikers en items. Er wordt een getrainde Matchbox-aanbevelingser retourneert. Vervolgens kunt u het getrainde model gebruiken om aanbevelingen te genereren, gerelateerde gebruikers te zoeken of gerelateerde items te zoeken met behulp van de module Score Matchbox Recommender .

Tip

Ontdek alles wat u moet weten over de end-to-end ervaring van het bouwen van een aanbevelingssysteem in deze zelfstudie van het .NET-ontwikkelteam. Bevat voorbeeldcode en discussie over het aanroepen van Machine Learning vanuit een toepassing.

Aanbevelingsent engine bouwen voor .NET-toepassingen met Machine Learning

Meer informatie over aanbevelingsmodellen en de Matchbox-aanbeveling

Het belangrijkste doel van een aanbevelingssysteem is het aanbevelen van een of meer itemsaan gebruikers van het systeem. Voorbeelden van een item zijn een film, restaurant, boek of nummer. Een gebruiker kan een persoon, groep personen of een andere entiteit met itemvoorkeuren zijn.

Er zijn twee belangrijke benaderingen voor aanbevelingssystemen.

  • De eerste is de op inhoud gebaseerde benadering, waarbij gebruik wordt gemaakt van functies voor zowel gebruikers als items. Gebruikers kunnen worden beschreven door eigenschappen zoals leeftijd en geslacht, en items kunnen worden beschreven door eigenschappen zoals auteur en fabrikant. Typische voorbeelden van op inhoud gebaseerde aanbevelingssystemen vindt u op sites voor sociale matchmaking.
  • De tweede benadering is filteren in samenwerkingsverband, waarbij alleen id's van de gebruikers en de items worden gebruikt en impliciete informatie over deze entiteiten wordt verkrijgen uit een (sparse) matrix van beoordelingen die de gebruikers aan de items hebben gegeven. We kunnen meer te weten komen over een gebruiker van de items die ze hebben beoordeeld en van andere gebruikers die dezelfde items hebben beoordeeld.

De Matchbox-aanbevelingser combineert deze benaderingen met behulp van gezamenlijke filtering met een benadering op basis van inhoud. Het wordt daarom beschouwd als een hybride aanbeveling.

Hoe dit werkt: Wanneer een gebruiker relatief nieuw is in het systeem, worden voorspellingen verbeterd door gebruik te maken van de functie-informatie over de gebruiker, waardoor het bekende 'cold-start'-probleem wordt aangepakt. Zodra u echter voldoende beoordelingen van een bepaalde gebruiker hebt verzameld, is het mogelijk om volledig gepersonaliseerde voorspellingen te doen op basis van hun specifieke beoordelingen in plaats van alleen op basis van hun functies. Daarom is er een soepele overgang van op inhoud gebaseerde aanbevelingen naar aanbevelingen op basis van gezamenlijke filtering. Zelfs als er geen functies voor gebruikers of items beschikbaar zijn, werkt Matchbox nog steeds in de modus voor samenwerking met filteren.

Meer informatie over de Matchbox-aanbevelingser en het onderliggende probabilistische algoritme vindt u in het relevante onderzoeksdocument: Matchbox: Large Scale Bayesian Aanbevelingen Aanbevelingen. Daarnaast bevat de Machine Learning Blog een artikel met de titel Aanbevelingen Everywhere dat een inleiding op aanbevelingsalgoritmen op hoog niveau biedt.

Train Matchbox Recommender configureren

Gegevens voorbereiden

Voordat u de module gaat gebruiken, is het essentieel dat uw gegevens de indeling hebben die door het aanbevelingsmodel wordt verwacht. Een set trainingsgegevens met drie keer de classificatie van gebruikersitem is vereist, maar u kunt ook gebruikersfuncties en itemfuncties (indien beschikbaar) opnemen in afzonderlijke gegevenssets.

Als u brongegevens wilt onderverdelen in trainings- en testgegevenssets, gebruikt u de optie Recommender Split in de module Split Data .

Vereiste gegevensset van user-item-ratings

Het is heel belangrijk dat de invoergegevens die worden gebruikt voor training, het juiste type gegevens in de juiste indeling bevatten:

  • De eerste kolom moet gebruikers-id's bevatten.
  • De tweede kolom moet item-id's bevatten.
  • De derde kolom bevat de classificatie voor het gebruikersitempaar. Classificatiewaarden moeten numeriek of categorisch zijn.

Tijdens de training kunnen de classificatiewaarden niet allemaal hetzelfde zijn. Bovendien moet, indien numeriek, het verschil tussen de minimum- en maximumclassificatiewaarden kleiner zijn dan 100 en idealiter niet groter zijn dan 20.

De gegevensset restaurantbeoordelingen in Machine Learning Studio (klassiek) (klik op Opgeslagen gegevenssets en vervolgens op Voorbeelden) toont de verwachte indeling:

userID placeID rating
U1077 135085 2
U1077 135038 2

In dit voorbeeld ziet u dat één gebruiker twee afzonderlijke restaurants heeft beoordeeld.

Gegevensset voor gebruikersfuncties (optioneel)

De gegevensset met gebruikersfuncties moet id's voor gebruikers bevatten en dezelfde id's gebruiken die zijn opgegeven in de eerste kolom van de gegevensset users-items-ratings. De resterende kolommen kunnen een groot aantal functies bevatten die de gebruikers beschrijven.

Zie de gegevensset Restaurant customer in Machine Learning Studio (klassiek) voor een voorbeeld. Een typische set gebruikersfuncties ziet er als volgende uit:

userID Sfeer Dress_preference Vervoer Roker
U1004 gezin Informele Te voet FALSE
U1005 Vrienden Geen voorkeur Auto-eigenaar TRUE

Gegevensset voor itemfuncties (optioneel)

De gegevensset met itemfuncties moet item-id's bevatten in de eerste kolom. De resterende kolommen kunnen een groot aantal beschrijvende functies voor de items bevatten.

Zie voor een voorbeeld de gegevensset restaurantfunctie, die is opgegeven in Machine Learning Studio (klassiek) (klik op Opgeslagen gegevenssets en vervolgens op Voorbeelden). Een typische set itemfuncties (in dit geval is het item een restaurant) kan er als volgende uitzien:

placeID Alcohol Smoking_area price Rambience
135106 Wine-Beer geen Lage gezin
132667 No_Alcohol_Served Toegestaan gemiddeld Casual

Het model trainen

  1. Voeg de module Train Matchbox Recommender toe aan uw experiment in Studio (klassiek) en koppel deze aan de trainingsgegevens.

  2. Als u een afzonderlijke gegevensset van gebruikersfuncties en/of itemfuncties hebt, verbindt u deze met de module Train Matchbox Recommender .

    • Gegevensset met gebruikersfuncties: Verbinding maken gegevensset die gebruikers beschrijft voor de tweede invoer.

    • Gegevensset voor itemfuncties: Verbinding maken de gegevensset die items beschrijft voor de derde invoer.

  3. Bij Aantal trainingsbatchs typt u het aantal batches voor het delen van de gegevens tijdens de training.

    Op basis van deze waarde wordt de gegevensset met drie keer dezelfde gebruikersitemclassificatie onderverdeeld in meerdere onderdelen of batches tijdens de training.

    Omdat Train Matchbox Recommender batches parallel wordt uitgevoerd, wordt u aangeraden het aantal trainingsbatchs in te stellen op het aantal beschikbare kernen, als de volledige trainingsgegevens in het geheugen passen. Anders moet het aantal trainingsbatchs worden ingesteld op het laagste veelvoud van het aantal beschikbare kernen waarvoor de trainingsgegevens wel in het geheugen passen.

    Standaard worden de trainingsgegevens gesplitst in vier (4) batches. Alleen de gegevensset met drie keer een gebruikersitemclassificatie wordt gesplitst. Gebruikers- of itemfuncties worden niet gesplitst omdat functies niet hoeven te worden gesplitst.

  4. Bij Aantal eigenschappen typt u het aantal latente eigenschappen dat moet worden geleerd voor elke gebruiker en elk item.

    Hoe hoger het aantal eigenschappen, hoe nauwkeuriger de voorspellingen doorgaans zijn; De training verloopt echter langzamer. Het aantal eigenschappen ligt meestal binnen het bereik van 2 tot 20.

  5. Geef bij Aantal iteraties van aanbevelingsalgoritmen aan hoe vaak de invoergegevens moeten worden verwerkt met het algoritme.

    De Matchbox-aanbeveling wordt getraind met behulp van een message-passing algoritme dat meerdere keren kan worden itereren over de invoergegevens. Hoe hoger dit aantal, hoe nauwkeuriger de voorspellingen; De training is echter langzamer. Meestal ligt het aantal iteraties binnen het bereik van 1 tot 10.

  6. Voer het experiment uit of selecteer alleen de module Train Matchbox Recommender en selecteer Uitvoeren geselecteerd.

Voorbeelden

Voor voorbeelden van hoe aanbevelingsmodellen worden gebruikt in Machine Learning, bekijkt u deze voorbeeldexperimenten in de Azure AI Gallery:

Technische opmerkingen

Deze sectie bevat implementatiedetails, tips en antwoorden op veelgestelde vragen.

Gebruikstips

  • Als een functiekolom ontbrekende waarden heeft, wordt de modus van de niet-ontbrekende waarden gebruikt als vervanging voor de ontbrekende waarden.

  • Alle functies van gebruikers en items worden opnieuw geschaald met eenheidslengte, zodat de maximale absolute waarde 1 is. Er wordt geen vertaling toegepast op de functiewaarden, zodat de sparsiteit behouden blijft.

Beperkingen

Online bijwerken (of continue training) van een aanbevelingsmodel wordt momenteel niet ondersteund in Machine Learning. Als u reacties van gebruikers op aanbevelingen wilt vastleggen en deze wilt gebruiken om het model te verbeteren, raden we u aan het volledige model regelmatig opnieuw te trainen. Incrementele training is niet mogelijk, maar u kunt een sliding window toepassen op de trainingsgegevens om ervoor te zorgen dat het gegevensvolume wordt geminimaliseerd tijdens het gebruik van de meest recente gegevens.

Het geheugengebruik van de aanbevelingsgebruiker schatten

Op dit moment is 16 * N\(4\T + 2\R) de ondergrens van de geheugenvoetafdruk van Matchbox bytes, waarbij N verwijst naar het aantal gebruikersitemclassificaties in de trainingsgegevensset, T naar het aantal latente eigenschappen en R naar het verschil tussen de minimum- en maximumclassificatie (in de trainingsgegevensset).

De grootte van een geseraliseerd Matchbox-aanbevelingsmodel is 16 * T\(U\R + I + X + Y) ongeveer bytes, waarbij U verwijst naar het aantal gebruikers, I naar het aantal items, X naar het aantal gebruikersfuncties en Y naar het aantal itemfuncties.

Verwachte invoer

Naam Type Description
Trainingsgegevensset met drie keer de classificatie van gebruikersitem Gegevenstabel Classificaties van items per gebruiker, uitgedrukt als een drievoudig (Gebruiker, Item, Waardering)
Trainingsgegevensset van gebruikersfuncties Gegevenstabel Gegevensset met functies die gebruikers beschrijven (optioneel)
Trainingsset van itemfuncties Gegevenstabel Gegevensset met functies die items beschrijven (optioneel)

Moduleparameters

Name Bereik Type Standaard Beschrijving
Aantal eigenschappen >= 0 Geheel getal 10 Geef het aantal eigenschappen op dat moet worden gebruikt met de aanbevelingsde optie (optioneel)
Aantal iteraties van aanbevelingsalgoritmen >= 1 Geheel getal 5 Geef het maximum aantal iteraties op dat moet worden gebruikt tijdens het trainen van het aanbevelingsmodel (optioneel)
Aantal trainingsbatchs >= 1 Geheel getal 4 Geef het aantal trainingsbatchs op dat moet worden gebruikt met de aanbevelingser (optioneel)

Uitvoerwaarden

Naam Type Description
Getrainde matchbox-aanbeveling ILearner-interface Getrainde matchbox-aanbeveling

Uitzonderingen

Uitzondering Description
Fout 0022 Uitzondering treedt op als het aantal geselecteerde kolommen in de invoerset niet gelijk is aan het verwachte aantal.
Fout 0036 Uitzondering treedt op als er meerdere functievectoren zijn opgegeven voor een bepaalde gebruiker of een bepaald item.
Fout 0018 Er treedt een uitzondering op als de invoerset ongeldig is.
Fout 0035 Uitzondering treedt op als er geen functies zijn opgegeven voor een bepaalde gebruiker of een bepaald item.
Fout 0034 Er treedt een uitzondering op als er meer dan één classificatie bestaat voor een bepaald gebruikersitempaar.
Fout 0053 Uitzondering treedt op in het geval dat er geen gebruikersfuncties of items zijn voor Matchbox-aanbevelingen.
Fout 0003 Uitzondering treedt op als een of meer invoer null of leeg zijn.

Zie Foutcodes voor een lijst met fouten die specifiek zijn Machine Learning voor Studio-modules (klassiek).

Zie Foutcodes voor een lijst Machine Learning REST API API-uitzonderingen.

Zie ook

Model kruis valideren
Aanbevelingsfunctie voor evaluatie
Trainen
Aanbeveling voor scorematchbox