Condividi tramite


Score Wide and Deep Recommender

Questo articolo descrive come usare il componente Score Wide e Deep Recommender nella finestra di progettazione di Azure Machine Learning per creare stime basate su un modello di raccomandazione sottoposto a training, in base all'apprendimento wide e avanzato di Google.

Il sistema di raccomandazione Wide e Deep può generare due diversi tipi di stime:

Quando si crea il secondo tipo di stime, è possibile operare in modalità di produzione o in modalità di valutazione.

  • La modalità di produzione considera tutti gli utenti o gli elementi e viene in genere usata in un servizio Web. È possibile creare punteggi per i nuovi utenti, non solo per gli utenti visualizzati durante il training.

  • La modalità di valutazione opera su un set ridotto di utenti o elementi che possono essere valutati e viene in genere usata durante la sperimentazione.

Altri dettagli sul consigliatore Wide e Deep e la sua teoria sottostante sono disponibili nel documento di ricerca pertinente: Wide & Deep Learning for Recommender Systems.More details on the Wide and Deep recommenderory can be found in the relevant research paper: Wide & Deep Learning for Recommender Systems.

Come configurare Score Wide e Deep Recommender

Questo componente supporta diversi tipi di raccomandazioni, ognuno con requisiti diversi. Fare clic sul collegamento per il tipo di dati disponibili e il tipo di raccomandazione da creare.

Stimare le valutazioni

Quando si stimano le classificazioni, il modello calcola il modo in cui un determinato utente reagisce a un determinato elemento, in base ai dati di training. Pertanto, i dati di input per l'assegnazione dei punteggi devono fornire sia un utente che l'elemento da valutare.

  1. Aggiungere un modello di raccomandazione Wide & Deep sottoposto a training all'esperimento e connetterlo al modello di raccomandazione Traininged Wide e Deep. È necessario creare il modello usando Train Wide e Deep Recommender.

  2. Tipo di stima consigliato: selezionare Stima valutazione. Non sono necessari altri parametri.

  3. Aggiungere i dati per i quali si desidera eseguire stime e connetterli al set di dati per assegnare un punteggio.

    Per stimare le classificazioni, il set di dati di input deve contenere coppie di elementi utente.

    Il set di dati può contenere una terza colonna facoltativa di classificazioni per la coppia di elementi utente nelle prime e nelle seconde colonne, ma la terza colonna verrà ignorata durante la stima.

  4. (Passaggio facoltativo). Se si dispone di un set di dati di funzionalità utente, connetterlo alle funzionalità utente.

    Il set di dati delle funzionalità utente deve contenere l'identificatore utente nella prima colonna. Le colonne rimanenti devono contenere valori che caratterizzano gli utenti, ad esempio il sesso, le preferenze, la posizione e così via.

    Le funzionalità degli utenti che hanno valutato gli elementi nel set di dati di training vengono ignorate da Score Wide e Deep Recommender, perché sono già state apprese durante il training. Filtrare quindi in anticipo il set di dati in modo da includere solo utenti con avvio sporadico o utenti che non hanno valutato alcun elemento.

    Avviso

    Se il training del modello è stato eseguito senza usare le funzionalità utente, non è possibile introdurre funzionalità utente durante l'assegnazione dei punteggi.

  5. Se si dispone di un set di dati di funzionalità degli elementi, è possibile connetterlo alle funzionalità dell'elemento.

    Il set di dati delle caratteristiche dell'elemento deve contenere un identificatore di elemento nella prima colonna. Le colonne rimanenti devono contenere valori che caratterizzano gli elementi.

    Le funzionalità degli elementi valutati nel set di dati di training vengono ignorate da Score Wide e Deep Recommender man mano che sono già state apprese durante il training. Pertanto, limitare il set di dati di assegnazione dei punteggi agli elementi di avvio a freddo o agli elementi che non sono stati valutati dagli utenti.

    Avviso

    Se il training del modello è stato eseguito senza usare le funzionalità degli elementi, non è possibile introdurre funzionalità degli elementi durante l'assegnazione dei punteggi.

  6. Eseguire l'esperimento.

Risultati per le stime delle valutazioni

Il set di dati di output contiene tre colonne, contenenti l'utente, l'elemento e la classificazione stimata per ogni utente e elemento di input.

Inoltre, durante l'assegnazione dei punteggi vengono applicate le modifiche seguenti:

  • Per una colonna di funzionalità utente o elemento numerico, i valori mancanti vengono sostituiti automaticamente con la media dei relativi valori del set di training non mancanti. Per la funzionalità categorica, i valori mancanti vengono sostituiti con lo stesso valore categorico diverso da qualsiasi valore possibile di questa funzionalità.
  • Nessuna traduzione viene applicata ai valori delle caratteristiche, per mantenere la loro spaziatura.

Consigliare elementi

Per consigliare gli elementi per gli utenti, fornire un elenco di utenti ed elementi come input. Da questi dati, il modello usa le proprie conoscenze sugli elementi e sugli utenti esistenti per generare un elenco di elementi con probabile interesse per ogni utente. È possibile personalizzare il numero di raccomandazioni restituite e impostare una soglia per il numero di raccomandazioni precedenti necessarie per generare una raccomandazione.

  1. Aggiungere un modello di raccomandazione Wide e Deep sottoposto a training all'esperimento e connetterlo al modello di raccomandazione Traininged Wide e Deep. È necessario creare il modello usando Train Wide e Deep Recommender.

  2. Per consigliare elementi per un determinato elenco di utenti, impostare Recommender prediction kind (Tipo di stima consigliato) su Item Recommendation (Raccomandazione elemento).

  3. Selezione dell'elemento consigliato: indicare se si usa il componente di assegnazione dei punteggi nell'ambiente di produzione o per la valutazione del modello scegliendo uno di questi valori:

    • Da Elementi classificati (per la valutazione del modello): selezionare questa opzione se si sta sviluppando o testando un modello. Questa opzione abilita la modalità di valutazione e il componente fornisce raccomandazioni solo da tali elementi nel set di dati di input valutato.
    • Da Tutti gli elementi: selezionare questa opzione se si configura un esperimento da usare in un servizio Web o in una produzione. Questa opzione abilita la modalità di produzione e il componente fornisce raccomandazioni da tutti gli elementi visualizzati durante il training.
    • Da Elementi non classificati (per suggerire nuovi elementi agli utenti): selezionare questa opzione se si vuole che il componente faccia raccomandazioni solo da tali elementi nel set di dati di training che non sono stati valutati.
  4. Aggiungere il set di dati per il quale si desidera eseguire stime e connetterlo al set di dati per assegnare un punteggio.

    • Se si sceglie l'opzione Da tutti gli elementi, il set di dati di input deve essere costituito da una e una sola colonna, contenente gli identificatori degli utenti per cui effettuare raccomandazioni.

      Il set di dati può includere due colonne aggiuntive di identificatori di elemento e classificazioni, ma queste due colonne vengono ignorate.

    • Se si sceglie l'opzione From Rated Items (per la valutazione del modello), il set di dati di input deve essere costituito da coppie di elementi utente. La prima colonna deve contenere l'identificatore utente . La seconda colonna deve contenere gli identificatori di elemento corrispondenti.

      Il set di dati può includere una terza colonna di classificazioni degli elementi utente, ma questa colonna viene ignorata.

    • Per From Unrated Items (per suggerire nuovi elementi agli utenti), il set di dati di input deve essere costituito da coppie di elementi utente. La prima colonna deve contenere l'identificatore utente. La seconda colonna deve contenere gli identificatori di elemento corrispondenti.

      Il set di dati può includere una terza colonna di classificazioni degli elementi utente, ma questa colonna viene ignorata.

  5. (Passaggio facoltativo). Se si dispone di un set di dati di funzionalità utente, connetterlo alle funzionalità utente.

    La prima colonna del set di dati delle funzionalità utente deve contenere l'identificatore utente. Le colonne rimanenti devono contenere valori che caratterizzano l'utente, ad esempio il sesso, le preferenze, la posizione e così via.

    Le funzionalità degli utenti che hanno valutato gli elementi vengono ignorate da Score Wide e Deep Recommender, perché queste funzionalità sono già state apprese durante il training. Pertanto, è possibile filtrare il set di dati in anticipo per includere solo gli utenti ad accesso sporadico o gli utenti che non hanno valutato alcun elemento.

    Avviso

    Se il training del modello è stato eseguito senza usare le funzionalità utente, non è possibile usare le funzionalità di applicazione durante l'assegnazione dei punteggi.

  6. (Facoltativo) Se si dispone di un set di dati di funzionalità degli elementi, è possibile connetterlo alle funzionalità dell'elemento.

    La prima colonna del set di dati delle funzionalità dell'elemento deve contenere l'identificatore dell'elemento. Le colonne rimanenti devono contenere valori che caratterizzano gli elementi.

    Le funzionalità degli elementi valutati vengono ignorate da Score Wide e Deep Recommender, perché queste funzionalità sono già state apprese durante il training. È quindi possibile limitare il set di dati di assegnazione dei punteggi agli elementi di avvio a freddo o agli elementi che non sono stati valutati dagli utenti.

    Avviso

    Se il modello è stato sottoposto a training senza usare le funzionalità degli elementi, non usare le funzionalità degli elementi durante l'assegnazione dei punteggi.

  7. Numero massimo di elementi da consigliare a un utente: digitare il numero di elementi da restituire per ogni utente. Per impostazione predefinita, sono consigliati 5 elementi.

  8. Dimensioni minime del pool di raccomandazioni per utente: digitare un valore che indica il numero di raccomandazioni precedenti necessarie. Per impostazione predefinita, questo parametro è impostato su 2, ovvero l'elemento deve essere stato consigliato da almeno due altri utenti.

    Questa opzione deve essere usata solo se si esegue l'assegnazione dei punteggi in modalità di valutazione. L'opzione non è disponibile se si seleziona Da tutti gli elementi o Da elementi non classificati (per suggerire nuovi elementi agli utenti).

  9. Per From Unrated Items (to suggest new items to users), use the third input port, named Training Data, to remove items that have already rated from the prediction results.For From Unrated Items (To suggest new items to users), use the third input port, named Training Data, to remove items that have already rated from the prediction results.

    Per applicare questo filtro, connettere il set di dati di training originale alla porta di input.

  10. Eseguire l'esperimento.

Risultati della raccomandazione dell'elemento

Il set di dati con punteggio restituito da Score Wide e Deep Recommender elenca gli elementi consigliati per ogni utente.

  • La prima colonna contiene gli identificatori utente.
  • Vengono generate diverse colonne aggiuntive, a seconda del valore impostato per Numero massimo di elementi da consigliare a un utente. Ogni colonna contiene un elemento consigliato (per identificatore). Le raccomandazioni vengono ordinate in base all'affinità utente-elemento, con l'elemento con l'affinità più elevata inserita nella colonna Item 1.

Note tecniche

Questa sezione contiene le risposte ad alcune domande comuni sull'uso del consiglio Wide & Deep per creare stime.

Utenti e consigli per l'avvio sporadico

In genere, per creare raccomandazioni, il componente Score Wide e Deep Recommender richiede gli stessi input usati durante il training del modello, incluso un ID utente. Ciò è dovuto al fatto che l'algoritmo deve sapere se ha appreso qualcosa su questo utente durante il training.

Tuttavia, per i nuovi utenti, potrebbe non essere presente un ID utente, ma solo alcune funzionalità utente, ad esempio età, sesso e così via.

È comunque possibile creare raccomandazioni per gli utenti nuovi del sistema, gestendoli come utenti ad accesso sporadico. Per tali utenti, l'algoritmo di raccomandazione non usa la cronologia precedente o le classificazioni precedenti, ma solo le funzionalità utente.

Ai fini della stima, un utente a avvio sporadico viene definito come utente con un ID che non è stato usato per il training. Per assicurarsi che gli ID non corrispondano agli ID usati nel training, è possibile creare nuovi identificatori. Ad esempio, è possibile generare ID casuali all'interno di un intervallo specificato o allocare in anticipo una serie di ID per gli utenti con avvio sporadico.

Tuttavia, se non si dispone di dati di filtro collaborativi, ad esempio un vettore di funzionalità utente, è preferibile usare uno learner di classificazione o regressione.

Uso di produzione dell'utilità di raccomandazione Wide e Deep

Se si è usata la raccomandazione Wide e Deep e quindi si sposta il modello nell'ambiente di produzione, tenere presente queste differenze principali quando si usa il consigliatore in modalità di valutazione e in modalità di produzione:

  • La valutazione, per definizione, richiede stime che possono essere verificate in base alla verità sul terreno in un set di test. Pertanto, quando si valuta il metodo di raccomandazione, è necessario prevedere solo gli elementi che sono stati valutati nel set di test. Ciò limita necessariamente i valori possibili stimati.

    Tuttavia, quando si operazionalizza il modello, in genere si modifica la modalità di stima per fare raccomandazioni in base a tutti gli elementi possibili, per ottenere le stime migliori. Per molte di queste stime, non esiste alcuna verità di base corrispondente, quindi l'accuratezza della raccomandazione non può essere verificata nello stesso modo di durante la sperimentazione.

  • Se non si specifica un ID utente nell'ambiente di produzione e si fornisce solo un vettore di funzionalità, è possibile ottenere come risposta un elenco di tutte le raccomandazioni per tutti gli utenti possibili. Assicurarsi di specificare un ID utente.

    Per limitare il numero di raccomandazioni restituite, è anche possibile specificare il numero massimo di elementi restituiti per utente.

Passaggi successivi

Vedere il set di componenti disponibili in Azure Machine Learning.