Condividi tramite


Train Matchbox Recommender

Importante

Il supporto dello studio di Azure Machine Learning (versione classica) terminerà il 31 agosto 2024. È consigliabile passare ad Azure Machine Learning entro tale data.

A partire dal 1° dicembre 2021 non sarà possibile creare nuove risorse dello studio di Azure Machine Learning (versione classica). Fino al 31 agosto 2024 sarà possibile continuare a usare le risorse dello studio di Azure Machine Learning (versione classica).

La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.

Esegue il training di un sistema di raccomandazione bayesiano usando l'algoritmo Matchbox

Categoria: Machine Learning/Train

Nota

Si applica a: Machine Learning Studio (versione classica)

Nella finestra di progettazione sono disponibili moduli simili Azure Machine Learning trascinamento della selezione.

Panoramica del modulo

Questo articolo descrive come usare il modulo Train Matchbox Recommender in Machine Learning Studio (versione classica) per eseguire il training di un modello di raccomandazione.

L'algoritmo di raccomandazione Machine Learning è basato sul modello Matchbox, sviluppato da Microsoft Research. Per scaricare un documento che descrive in dettaglio l'algoritmo, fare clic su questo collegamento nel sito Microsoft Research.

Il modulo Train Matchbox Recommender legge un set di dati di triple utente-elemento-classificazione e, facoltativamente, alcune funzioni utente ed elemento. Restituisce una raccomandazione Matchbox con training. È quindi possibile usare il modello con training per generare raccomandazioni, trovare utenti correlati o trovare elementi correlati usando il modulo Score Matchbox Recommender .

Suggerimento

Informazioni sull'esperienza end-to-end di creazione di un sistema di raccomandazione in questa esercitazione del team di sviluppo .NET. Include codice di esempio e informazioni su come chiamare Machine Learning da un'applicazione.

Compilazione del motore di raccomandazione per le applicazioni .NET con Machine Learning

Altre informazioni sui modelli di raccomandazione e sulla raccomandazione Matchbox

L'obiettivo principale di un sistema di raccomandazione è quello di consigliare uno o più elementiagli utenti del sistema. Esempi di elemento possono essere un film, un ristorante, un libro o un brano musicale. Un utente può essere una persona, un gruppo di persone o un'altra entità con preferenze per determinati elementi.

Esistono due approcci principali ai sistemi di raccomandazione.

  • Il primo è l'approccio basato sul contenuto che si avvale sia di funzioni utente sia di funzioni elemento. Gli utenti possono essere descritti da proprietà quali età e sesso, mentre gli elementi possono essere descritti da proprietà quali autore e produttore. Esempi tipici di sistemi di raccomandazione basati sul contenuto sono disponibili nei siti di social matchmaking.
  • Il secondo approccio è il filtro collaborativo, che usa solo identificatori degli utenti e degli elementi e ottiene implicite informazioni su queste entità da una matrice di classificazioni (di tipo sparse) fornita dagli utenti agli elementi. È possibile apprendere informazioni su un utente dagli elementi che ha classificato e dagli altri utenti che hanno classificato gli stessi elementi.

Lo strumento di raccomandazione Matchbox combina questi approcci, usando il filtro collaborativo con un approccio basato sul contenuto. Per questo motivo, viene considerato un sistema di raccomandazione ibrido.

Come funziona: quando un utente è relativamente nuovo al sistema, le stime vengono migliorate usando le informazioni sulle funzionalità relative all'utente, affrontando così il noto problema di "avvio a freddo". Tuttavia, una volta raccolto un numero sufficiente di classificazioni eseguite da un particolare utente, è possibile eseguire stime completamente personalizzate per tale utente in base alle sue specifiche classificazioni piuttosto che in base alle sole funzioni. Di conseguenza, esiste una transizione graduale da raccomandazioni basate sul contenuto a raccomandazioni basate sul filtro collaborativo. Anche se non sono disponibili funzioni utente o elemento, Matchbox continuerà a funzionare in modalità di filtro collaborativo.

Per altre informazioni sul sistema di raccomandazione Matchbox e sull'algoritmo probabilistico sottostante, vedere il documento di ricerca pertinente Matchbox: Large Scale Bayesian Consigli Consigli. Inoltre, il blog Machine Learning include un articolo intitolato Consigli Everywhere che fornisce un'introduzione generale agli algoritmi di raccomandazione.

Come configurare Train Matchbox Recommender

Preparazione dei dati

Prima di provare a usare il modulo, è essenziale che i dati siano nel formato previsto dal modello di raccomandazione. È necessario un set di dati di training con tripli di classificazione utente-elemento , ma è anche possibile includere funzionalità utente e funzionalità degli elementi (se disponibili) in set di dati separati.

Per dividere i dati di origine in set di dati di training e di test, usare l'opzione Recommender Split (Divisione raccomandazione) nel modulo Split Data (Dividi dati).

Set di dati obbligatorio di user-item-ratings

È molto importante che i dati di input usati per il training contengano il tipo di dati corretto nel formato corretto:

  • La prima colonna deve contenere identificatori utente.
  • La seconda colonna deve contenere identificatori di elemento.
  • La terza colonna contiene la classificazione per la coppia utente-elemento. I valori di classificazione devono essere numerici o categorici.

Durante il training, i valori di classificazione non possono essere tutti uguali. Inoltre, se numerica, la differenza tra i valori di classificazione minimo e massimo deve essere minore di 100 e idealmente non maggiore di 20.

Il set di dati Restaurant ratings in Machine Learning Studio (versione classica) (fare clic su Saved Datasets (Set di dati salvati) e quindi su Samples (Esempi) dimostra il formato previsto:

userID placeID rating
U1077 135085 2
U1077 135038 2

Da questo esempio è possibile vedere che un singolo utente ha valutato due ristoranti separati.

Set di dati delle funzionalità utente (facoltativo)

Il set di dati delle funzionalità utente deve contenere identificatori per gli utenti e usare gli stessi identificatori forniti nella prima colonna del set di dati users-items-ratings. Le colonne rimanenti possono contenere un numero qualsiasi di funzionalità che descrivono gli utenti.

Per un esempio, vedere il set di dati del cliente Restaurant in Machine Learning Studio (versione classica). Un set tipico di funzionalità utente è simile al seguente:

userID Atmosfera Dress_preference transport Fumatore
U1004 famiglia informal A piedi FALSE
U1005 friends Nessuna preferenza Proprietario dell'auto true

Set di dati delle funzionalità degli elementi (facoltativo)

Il set di dati delle funzioni elemento deve contenere gli identificatori elemento nella prima colonna. Le colonne rimanenti possono contenere un numero qualsiasi di caratteristiche descrittive per gli elementi.

Per un esempio, vedere il set di dati della funzionalità Restaurant, disponibile in Machine Learning Studio (versione classica) (fare clic su Saved Datasets (Set di dati salvati) e quindi su Samples (Esempi). Un set tipico di funzionalità degli elementi (in questo caso, l'elemento è un ristorante) potrebbe essere simile al seguente:

placeID Alcool Smoking_area price Rambience
135106 Wine-Beer Nessuno low famiglia
132667 No_Alcohol_Served Consentito media informale

Eseguire il training del modello

  1. Aggiungere il modulo Train Matchbox Recommender all'esperimento in Studio (versione classica) e connetterlo ai dati di training.

  2. Se si dispone di un set di dati separato di funzionalità utente e/o funzionalità dell'elemento, connetterle al modulo Train Matchbox Recommender ( Train Matchbox Recommender ).

    • Set di dati delle funzionalità utente: Connessione set di dati che descrive gli utenti nel secondo input.

    • Set di dati delle funzionalità Connessione elemento: il set di dati che descrive gli elementi al terzo input.

  3. In Numero di batch di training digitare il numero di batch per dividere i dati durante il training.

    In base a questo valore, il set di dati delle triple user-item-rating è suddiviso in più parti o batch durante il training.

    Poiché Train Matchbox Recommender esegue batch in parallelo, è consigliabile impostare il numero di batch di training sul numero di core disponibili, se tutti i dati di training si adattano alla memoria. In caso contrario, il numero di batch di training deve essere impostato sul multiplo più basso del numero di core disponibili per cui i dati di training rientrano nella memoria.

    Per impostazione predefinita, i dati di training sono suddivisi in quattro (4) batch. Viene suddiviso solo il set di dati delle triple user-item-rating. Le funzionalità dell'utente o dell'elemento non vengono suddivise perché non è necessario suddividere le funzionalità.

  4. In Numero di tratti digitare il numero di tratti latenti che devono essere appresi per ogni utente e elemento.

    Maggiore è il numero di tratti, più accurate saranno in genere le stime. Tuttavia, il training sarà più lento. Il numero di tratti è in genere compreso nell'intervallo da 2 a 20.

  5. Per Numero di iterazioni dell'algoritmo di raccomandazione, indicare quante volte l'algoritmo deve elaborare i dati di input.

    Lo strumento di raccomandazione Matchbox viene addestrato usando un algoritmo di passaggio dei messaggi in grado di scorrere più volte i dati di input. Più alto è questo numero, più accurate sono le stime; Tuttavia, il training è più lento. In genere, il numero di iterazioni è compreso nell'intervallo da 1 a 10.

  6. Eseguire l'esperimento oppure selezionare solo il modulo Train Matchbox Recommender (Train Matchbox Recommender) e selezionare Run selected (Esegui selezionato).

Esempio

Per esempi di come vengono usati i modelli di raccomandazione Machine Learning, vedere questi esperimenti di esempio nel Azure AI Gallery:

Note tecniche

Questa sezione contiene informazioni dettagliate sull'implementazione, suggerimenti e risposte alle domande frequenti.

Suggerimenti per l'uso

  • Se una colonna di funzionalità contiene valori mancanti, la modalità dei valori non mancanti verrà usata come sostituzione dei valori mancanti.

  • Tutte le funzionalità utente ed elemento vengono ridimensionate per ottenere la lunghezza unità, in modo che il valore assoluto massimo sia 1. Ai valori delle funzioni non viene applicata alcuna conversione, in modo che mantengano la loro densità.

Restrizioni

L'aggiornamento online (o training continuo) di un modello di raccomandazione non è attualmente supportato in Machine Learning. Se si vogliono acquisire le risposte degli utenti alle raccomandazioni e usarle per migliorare il modello, è consigliabile eseguire periodicamente il training del modello completo. Il training incrementale non è possibile, ma è possibile applicare una finestra scorrevole ai dati di training per assicurarsi che il volume dei dati sia ridotto a icona durante l'uso dei dati più recenti.

Stima dell'utilizzo della memoria consigliata

Attualmente, il limite inferiore del footprint 16 * N\(4\T + 2\R) di memoria di Matchbox è byte, dove N fa riferimento al numero di triple user-item-rating nel set di dati di training, T al numero di tratti latenti e R alla differenza tra la classificazione minima e massima (nel set di dati di training).

Le dimensioni di un modello di raccomandazione Matchbox 16 * T\(U\R + I + X + Y) serializzato sono approssimativamente byte, dove U fa riferimento al numero di utenti, I al numero di elementi, X al numero di funzionalità utente e Y al numero di funzionalità dell'elemento.

Input previsti

Nome Tipo Descrizione
Training dataset of user-item-rating triples Tabella dati Classificazioni degli elementi per utenti, espresse come una tripla (utente, elemento, classificazione)
Training dataset of user features Tabella dati Set di dati contenente funzionalità che descrivono gli utenti (facoltativo)
Training dataset of item features Tabella dati Set di dati contenente funzionalità che descrivono gli elementi (facoltativo)

Parametri del modulo

Nome Intervallo Type Predefinito Descrizione
Number of traits >=0 Integer 10 Specificare il numero di tratti da usare con la raccomandazione (facoltativo)
Number of recommendation algorithm iterations >=1 Integer 5 Specificare il numero massimo di iterazioni da eseguire durante il training del modello di raccomandazione (facoltativo)
Numero di batch di training >=1 Integer 4 Specificare il numero di batch di training da usare con la raccomandazione (facoltativo)

Output

Nome Tipo Descrizione
Sistema di raccomandazione Matchbox con training ILearner interface Sistema di raccomandazione Matchbox con training

Eccezioni

Eccezione Descrizione
Errore 0022 L'eccezione si verifica se il numero di colonne selezionate nel set di dati di input non corrisponde al numero previsto.
Errore 0036 L'eccezione si verifica se sono stati specificati più vettori della funzionalità per un determinato utente o elemento.
Errore 0018 L'eccezione si verifica se il set di dati di input non è valido.
Errore 0035 L'eccezione si verifica se non sono state specificate funzioni per un determinato utente o elemento.
Errore 0034 L'eccezione si verifica se esiste più di una classificazione per una determinata coppia utente-elemento.
Errore 0053 Si verifica un'eccezione in assenza di elementi o funzioni utente per le raccomandazioni Matchbox.
Errore 0003 L'eccezione si verifica se uno o più input sono null o vuoti.

Per un elenco degli errori specifici dei moduli di Studio (versione classica), vedere Machine Learning codici di errore.

Per un elenco delle eccezioni API, vedere Machine Learning di errore dell'API REST.

Vedi anche

Cross-Validate Model
Evaluate Recommender (Valuta modelo di raccomandazione)
Esecuzione del training
Score Matchbox Recommender