Ricetta di personalizzazione dell'utente - Amazon Personalize

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ricetta di personalizzazione dell'utente

Importante

Ti consigliamo di utilizzare la ricetta User-Personalization-v2. Può prendere in considerazione fino a 5 milioni di articoli con un addestramento più rapido e generare consigli più pertinenti con una latenza inferiore.

La ricetta User-Personalization (aws-user-personalization) è ottimizzata per tutti gli scenari di raccomandazione personalizzati. Prevede gli elementi con cui un utente molto probabilmente interagirà. Puoi utilizzare User-Personalization per generare consigli personalizzati sui film per un'app di streaming o consigli personalizzati sui prodotti per un'app di vendita al dettaglio.

Con User-Personalization, Amazon Personalize genera consigli basati principalmente sui dati di interazione degli elementi utente in un set di dati sulle interazioni degli articoli. Può anche utilizzare qualsiasi elemento e metadato utente nei set di dati Items and Users. Per ulteriori informazioni sui dati che utilizza, consulta. Set di dati obbligatori e opzionali

Caratteristiche della ricetta

La personalizzazione degli utenti utilizza le seguenti funzionalità di ricetta di Amazon Personalize per generare consigli sugli articoli:

  • Personalizzazione in tempo reale: con la personalizzazione in tempo reale, Amazon Personalize aggiorna e adatta i consigli sugli articoli in base all'evoluzione dell'interesse dell'utente. Per ulteriori informazioni, consulta Personalizzazione in tempo reale.

  • Esplorazione: con l'esplorazione, i consigli includono nuovi articoli o articoli con meno dati sulle interazioni. Ciò migliora la scoperta e il coinvolgimento degli articoli quando si dispone di un catalogo in rapida evoluzione o quando nuovi articoli, come notizie o promozioni, sono più pertinenti per gli utenti quando sono freschi. Per ulteriori informazioni sull'esplorazione, consulta. Esplorazione

  • Aggiornamenti automatici: con gli aggiornamenti automatici, Amazon Personalize aggiorna automaticamente il modello più recente (versione della soluzione) ogni due ore per prendere in considerazione nuovi elementi da consigliare. Per ulteriori informazioni, consulta Aggiornamenti automatici.

Set di dati obbligatori e opzionali

Per utilizzare la personalizzazione utente, è necessario creare un set di dati sulle interazioni tra elementi e importare almeno 1000 interazioni tra elementi. Amazon Personalize genera consigli basati principalmente sui dati di interazione tra gli articoli.

Con User-Personalization, Amazon Personalize può utilizzare i dati sulle interazioni degli articoli che includono quanto segue:

  • Dati sul tipo di evento e sul valore dell'evento: Amazon Personalize utilizza dati sui tipi di evento, come i tipi di eventi click or watch, per identificare l'intento e l'interesse degli utenti attraverso qualsiasi modello di comportamento. Inoltre, puoi utilizzare i dati sul tipo di evento e sul valore dell'evento per filtrare i record prima dell'allenamento. Per ulteriori informazioni, consulta Dati sul tipo e sul valore dell'evento.

  • Metadati contestuali: i metadati contestuali sono dati di interazione raccolti nell'ambiente dell'utente al momento di un evento, ad esempio la posizione o il tipo di dispositivo. Per ulteriori informazioni, consulta Metadati contestuali.

  • Dati sulle impressioni: le impressioni sono elenchi di elementi che erano visibili a un utente quando interagiva con (faceva clic, guardava, acquistava e così via) un determinato elemento. Per ulteriori informazioni, consulta Dati sulle impressioni.

I seguenti set di dati sono facoltativi e possono migliorare i consigli:

  • Set di dati degli utenti: Amazon Personalize può utilizzare i dati del set di dati degli utenti per comprendere meglio gli utenti e i loro interessi. Puoi anche utilizzare i dati in un set di dati Users per filtrare i consigli. Per informazioni sui dati utente che puoi importare, consultaMetadati utente.

  • Set di dati sugli articoli: Amazon Personalize può utilizzare i dati del set di dati Items per identificare connessioni e modelli nel loro comportamento. Questo aiuta Amazon Personalize a comprendere i tuoi utenti e i loro interessi. Puoi anche utilizzare i dati in un set di dati Items per filtrare i consigli. Per informazioni sui dati degli articoli che puoi importare, consultaMetadati degli articoli.

Proprietà e iperparametri

La ricetta User-Personalization ha le seguenti proprietà:

  • Nome: aws-user-personalization

  • Nome risorsa Amazon della ricetta (ARN)arn:aws:personalize:::recipe/aws-user-personalization

  • Algoritmo ARNarn:aws:personalize:::algorithm/aws-user-personalization

Per ulteriori informazioni, consulta Scegliere una ricetta.

La tabella seguente descrive gli iperparametri per la ricetta di personalizzazione dell'utente. Un iperparametro è un parametro di algoritmo che puoi regolare per migliorare le prestazioni del modello. Gli iperparametri dell'algoritmo controllano le prestazioni del modello. Gli iperparametri di funzionalità controllano come filtrare i dati da utilizzare nel training. Il processo di scelta del valore migliore per un iperparametro è chiamato ottimizzazione degli iperparametri (). HPO Per ulteriori informazioni, consulta Iperparametri e HPO.

La tabella fornisce le seguenti informazioni per ogni iperparametro:

  • Range: [limite inferiore, limite superiore]

  • Value type: Integer, Continuous (float), Categorical (booleano, elenco, stringa)

  • HPOtunable: Il parametro può partecipare? HPO

Nome Descrizione
Iperparametri dell'algoritmo
hidden_dimension

Il numero di variabili nascoste utilizzate nel modello. Le variabili nascoste ricreano la cronologia degli acquisti degli utenti e le statistiche degli articoli per generare punteggi di classifica. Specificate un numero maggiore di dimensioni nascoste quando il set di dati sulle interazioni degli elementi include modelli più complicati. L'utilizzo di dimensioni più nascoste richiede un set di dati più grande e più tempo per l'elaborazione. Per decidere il valore migliore, usaHPO. Per utilizzarloHPO, imposta performHPO su true quando chiami CreateSolution e CreateSolutionVersion operi.

Valore predefinito: 149

Intervallo: [32, 256]

Tipo di valore: Integer

HPOsintonizzabile: Sì

bptt

Determina se utilizzare la tecnica di propagazione back-through-time. La propagazione back-through-time è una tecnica che aggiorna i pesi in algoritmi basati su reti neurali ricorrenti. Utilizza bptt per i crediti a lungo termine per collegare ricompense ritardate ai primi eventi. Ad esempio, una ricompensa ritardata può essere un acquisto effettuato dopo diversi clic. Un evento iniziale può essere un clic iniziale. Anche all'interno degli stessi tipi di eventi, ad esempio un clic, è consigliabile considerare gli effetti a lungo termine e massimizzare le ricompense totali. Per considerare gli effetti a lungo termine, utilizza valori bptt più grandi. L'utilizzo di un valore bptt maggiore richiede set di dati più grandi e più tempo per l'elaborazione.

Valore predefinito: 32

Intervallo: [2, 32].

Tipo di valore: Integer

HPOsintonizzabile: Sì

recency_mask

Determina se il modello deve considerare le ultime tendenze di popolarità nel set di dati sulle interazioni tra oggetti. Le ultime tendenze di popolarità potrebbero includere improvvisi cambiamenti nei modelli sottostanti degli eventi di interazione. Per eseguire il training di un modello che posiziona più peso sugli eventi recenti, imposta recency_mask su true. Per addestrare un modello che pesa ugualmente tutte le interazioni passate, imposta recency_mask su false. Per ottenere buone raccomandazioni utilizzando lo stesso peso, potrebbe essere necessario un set di dati di training più grande.

Valore predefinito: True

Intervallo: True o False

Tipo di valore: booleano

HPOsintonizzabile: Sì

Iperparametri di caratterizzazione
min_user_history_length_percentile

Il percentile minimo delle lunghezze della cronologia degli utenti da includere nell’addestramento del modello. La lunghezza della cronologia è la quantità totale di dati relativi a un utente. Utilizza min_user_history_length_percentile per escludere una percentuale di utenti con brevi periodi di cronologia. Gli utenti con una breve cronologia spesso mostrano modelli basati sulla popolarità dell'articolo anziché le esigenze o i desideri personali dell'utente. La loro rimozione può addestrare modelli con maggiore attenzione sui modelli sottostanti nei dati. Scegli un valore appropriato dopo aver esaminato le lunghezze della cronologia degli utenti, utilizzando un istogramma o uno strumento simile. Ti consigliamo di impostare un valore che conservi la maggior parte degli utenti, ma rimuove i casi limite.

Ad esempio, l'impostazione di min_user_history_length_percentile to 0.05 e max_user_history_length_percentile to 0.95 include tutti gli utenti tranne quelli con lunghezze della cronologia nella parte inferiore o superiore del 5%.

Valore predefinito: 0.0

Intervallo: [0.0, 1.0]

Tipo di valore: float

HPOsintonizzabile: No

max_user_history_length_percentile

Il percentile massimo delle lunghezze della cronologia degli utenti da includere nell’addestramento del modello. La lunghezza della cronologia è la quantità totale di dati relativi a un utente. Utilizza max_user_history_length_percentile per escludere una percentuale di utenti con lunghi periodi di cronologia perché i dati per questi utenti tendono a contenere rumore. Ad esempio, un robot potrebbe avere un lungo elenco di interazioni automatizzate. La rimozione di questi utenti limita il rumore durante il training. Scegli un valore appropriato dopo aver esaminato le lunghezze della cronologia degli utenti utilizzando un istogramma o uno strumento simile. Ti consigliamo di impostare un valore che conservi la maggior parte degli utenti ma rimuove i casi limite.

Ad esempio, l'impostazione di min_user_history_length_percentile to 0.05 e max_user_history_length_percentile to 0.95 include tutti gli utenti tranne quelli con lunghezze della cronologia nella parte inferiore o superiore del 5%.

Valore predefinito: 0,99

Intervallo: [0.0, 1.0]

Tipo di valore: float

HPOsintonizzabile: No

Iperparametri di configurazione della campagna di esplorazione degli articoli
exploration_weight

Determina la frequenza con cui i consigli includono elementi con meno dati o rilevanza sull'interazione tra gli elementi. Più il valore si avvicina a 1,0, maggiore è l'esplorazione. A zero, non viene effettuata alcuna esplorazione e le raccomandazioni si basano sui dati correnti (pertinenza). Per ulteriori informazioni, consulta CampaignConfig.

Valore predefinito: 0.3

Intervallo: [0.0, 1.0]

Tipo di valore: float

HPOsintonizzabile: No

exploration_item_age_cut_off

Specificate l'età massima dell'articolo in giorni dall'ultima interazione tra tutti gli elementi nel set di dati sulle interazioni tra gli elementi. Questo definisce l'ambito dell'esplorazione degli articoli in base alla loro età. Amazon Personalize determina l'età di un articolo in base al timestamp di creazione o, se mancano dati relativi al timestamp di creazione, ai dati di interazione tra gli articoli. Per ulteriori informazioni su come Amazon Personalize determina l'età di un articolo, consulta. Dati relativi al timestamp di creazione

Per aumentare il numero di articoli che Amazon Personalize considera durante l'esplorazione, inserisci un valore maggiore. Il minimo è 1 giorno e il valore predefinito è 30 giorni. I consigli potrebbero includere articoli più vecchi della data limite di età specificata per l'articolo. Questo perché questi elementi sono pertinenti per l'utente e l'esplorazione non li ha identificati.

Valore predefinito: 30.0

Intervallo: float positivi

Tipo di valore: float

HPOsintonizzabile: No

Formazione con la ricetta di personalizzazione dell'utente (console)

Per utilizzare la ricetta di personalizzazione degli utenti per generare consigli nella console, devi prima addestrare una nuova versione della soluzione utilizzando la ricetta. Quindi distribuisci una campagna utilizzando la versione della soluzione e utilizza la campagna per ottenere consigli.

Addestramento di una nuova versione della soluzione con la ricetta di personalizzazione degli utenti (console)
  1. Apri la console Amazon Personalize a https://console.aws.amazon.com/personalize/casa e accedi al tuo account.

  2. Crea un gruppo di set di dati personalizzato con un nuovo schema e carica il tuo set di dati con i dati sulle impressioni. Facoltativamente, includi CREATION_ TIMESTAMP e Metadati di testo non strutturati dati nel set di dati Items in modo che Amazon Personalize possa calcolare con maggiore precisione l'età di un articolo e identificare gli articoli freddi.

    Per ulteriori informazioni sull'importazione di dati, consulta. Importazione di dati di formazione nei set di dati di Amazon Personalize

  3. Nella pagina Gruppi di set di dati, scegli il nuovo gruppo di set di dati che contiene il set di dati o i set di dati con dati sulle impressioni.

  4. Nel riquadro di navigazione, scegli Soluzioni e ricette e scegli Crea soluzione.

  5. Nella pagina Crea soluzione, per il nome della soluzione, inserisci il nome della nuova soluzione.

  6. Per Tipo di soluzione, scegli Raccomandazione dell'articolo per ottenere consigli sugli articoli per i tuoi utenti.

  7. Per Ricetta, scegli aws-user-personalization. Viene visualizzata la sezione Configurazione della soluzione che fornisce diverse opzioni di configurazione.

  8. Nella configurazione aggiuntiva, se il set di dati sulle interazioni tra articoli contiene EVENT _ TYPE o entrambe le VALUE colonne EVENT _ TYPE e EVENT _, utilizza facoltativamente i campi Tipo di evento e Soglia del valore dell'evento per scegliere i dati di interazione tra gli elementi che Amazon Personalize utilizza per addestrare il modello. Per ulteriori informazioni, consulta Scelta dei dati di interazione tra gli oggetti utilizzati per l'allenamento.

  9. Facoltativamente, configura gli iperparametri per la tua soluzione. Per un elenco delle proprietà e degli iperparametri della ricetta di personalizzazione degli utenti, vedere. Proprietà e iperparametri

  10. Scegli la soluzione Create and Train per iniziare l'allenamento. Viene visualizzata la pagina Dashboard.

    È possibile accedere alla pagina dei dettagli della soluzione per tenere traccia dei progressi della formazione nella sezione Versioni della soluzione. Quando l'allenamento è completo, lo stato è Attivo.

Creazione di una campagna e ricezione di consigli (console)

Quando lo stato della versione della soluzione è Attivo, sei pronto per creare la tua campagna e ricevere consigli come segue:

  1. Nella pagina dei dettagli della soluzione o nella pagina Campagne, scegli Crea nuova campagna.

  2. Nella pagina Crea nuova campagna, per i dettagli della campagna, fornisci le seguenti informazioni:

    • Nome della campagna: inserisci il nome della campagna. Il testo che inserisci qui viene visualizzato nella dashboard e nella pagina dei dettagli della campagna.

    • Soluzione: scegli la soluzione che hai appena creato.

    • ID della versione della soluzione: scegli l'ID della versione della soluzione che hai appena creato.

    • Transazioni con provisioning minimo al secondo: imposta il numero minimo di transazioni assegnate al secondo supportate da Amazon Personalize. Per maggiori informazioni, vedi l'operazione CreateCampaign.

  3. Per la configurazione di Campaign, fornisci le seguenti informazioni:

    • Peso dell'esplorazione: configura quanto esplorare, dove i consigli includono elementi con meno dati di interazione o rilevanza tra gli elementi, più frequentemente quanto maggiore è l'esplorazione specificata. Più il valore è vicino a 1, maggiore è l'esplorazione. A zero, non viene effettuata alcuna esplorazione e le raccomandazioni si basano sui dati correnti (pertinenza).

    • Data limite dell'elemento di esplorazione: inserisci l'età massima dell'articolo, in giorni dall'ultima interazione, per definire l'ambito dell'esplorazione dell'elemento. Per aumentare il numero di articoli che Amazon Personalize considera durante l'esplorazione, inserisci un valore maggiore.

      Ad esempio, se inserisci 10, durante l'esplorazione vengono presi in considerazione solo gli elementi con dati di interazione tra elementi risalenti ai 10 giorni trascorsi dall'ultima interazione nel set di dati.

      Nota

      I consigli potrebbero includere elementi senza dati di interazione tra elementi provenienti da un periodo di tempo non compreso in questo intervallo di tempo. Questo perché questi elementi sono pertinenti agli interessi dell'utente e non è stata necessaria un'esplorazione per identificarli.

  4. Scegliere Create campaign (Crea campagna).

  5. Nella pagina dei dettagli della campagna, quando lo stato della campagna è Attivo, puoi utilizzare la campagna per ottenere consigli e registrare impressioni. Per ulteriori informazioni, consulta la sezione Fase 5: Ottieni consigli «Guida introduttiva».

    Amazon Personalize aggiorna automaticamente la versione più recente della soluzione ogni due ore per includere nuovi dati. La tua campagna utilizza automaticamente la versione aggiornata della soluzione. Per ulteriori informazioni, consulta Aggiornamenti automatici.

    Per aggiornare manualmente la campagna, devi prima creare e addestrare una nuova versione della soluzione utilizzando la console o l'CreateSolutionVersionoperazione, con trainingMode set toupdate. Quindi aggiorni manualmente la campagna nella pagina Campaign della console o utilizzando l'UpdateCampaignoperazione.

    Nota

    Amazon Personalize non aggiorna automaticamente le versioni della soluzione create prima del 17 novembre 2020.

Formazione con la ricetta di personalizzazione degli utenti (Python) SDK

Dopo aver creato un gruppo di set di dati e caricato i set di dati con i dati sulle impressioni, puoi addestrare una soluzione con la ricetta di personalizzazione degli utenti. Facoltativamente, includi CREATION_ TIMESTAMP e Metadati di testo non strutturati dati nel set di dati Items in modo che Amazon Personalize possa calcolare con maggiore precisione l'età di un articolo e identificare gli articoli freddi. Per ulteriori informazioni sulla creazione di gruppi di set di dati e sul caricamento dei dati di addestramento, consulta. Creazione di JSON file di schema per schemi Amazon Personalize

Per addestrare una soluzione con la ricetta di personalizzazione degli utenti, utilizzare il AWS SDK
  1. Crea una nuova soluzione utilizzando il create_solution metodo.

    Sostituisci solution name con il nome della soluzione e dataset group arn con Amazon Resource Name (ARN) del tuo gruppo di set di dati.

    import boto3 personalize = boto3.client('personalize') print('Creating solution') create_solution_response = personalize.create_solution(name = 'solution name', recipeArn = 'arn:aws:personalize:::recipe/aws-user-personalization', datasetGroupArn = 'dataset group arn', ) solution_arn = create_solution_response['solutionArn'] print('solution_arn: ', solution_arn)

    Per un elenco delle proprietà e degli iperparametri della aws-user-personalization ricetta, consulta. Proprietà e iperparametri

  2. Create una nuova versione della soluzione con i dati di addestramento aggiornati e impostate trainingMode l'FULLutilizzo del seguente frammento di codice. Sostituiscila solution arn con la ARN della tua soluzione.

    import boto3 personalize = boto3.client('personalize') create_solution_version_response = personalize.create_solution_version(solutionArn = 'solution arn', trainingMode='FULL') new_solution_version_arn = create_solution_version_response['solutionVersionArn'] print('solution_version_arn:', new_solution_version_arn)
  3. Quando Amazon Personalize ha finito di creare la versione della tua soluzione, crea la tua campagna con i seguenti parametri:

    • Fornisci una nuova campaign name e quella solution version arn generata nel passaggio 2.

    • Modifica l'iperparametro di configurazione explorationWeight dell'esplorazione degli elementi per configurare quanto esplorare. Gli elementi con meno dati di interazione o rilevanza tra gli elementi sono consigliati più frequentemente quanto più il valore si avvicina a 1,0. Il valore predefinito è 0,3.

    • Modifica il parametro iperparametrico di configurazione explorationItemAgeCutOff dell'esplorazione degli elementi per fornire la durata massima, in giorni, rispetto all'ultima interazione, per la quale gli elementi devono essere esplorati. Maggiore è il valore, maggiore è il numero di elementi considerati durante l'esplorazione.

    Usa il seguente frammento di Python per creare una nuova campagna con un'enfasi sull'esplorazione con limite di esplorazione a 30 giorni. La creazione di una campagna richiede in genere alcuni minuti, ma può richiedere più di un'ora.

    import boto3 personalize = boto3.client('personalize') create_campaign_response = personalize.create_campaign( name = 'campaign name', solutionVersionArn = 'solution version arn', minProvisionedTPS = 1, campaignConfig = {"itemExplorationConfig": {"explorationWeight": "0.3", "explorationItemAgeCutOff": "30"}} ) campaign_arn = create_campaign_response['campaignArn'] print('campaign_arn:', campaign_arn)

    Con User-Personalization, Amazon Personalize aggiorna automaticamente la versione della soluzione ogni due ore per includere nuovi dati. La tua campagna utilizza automaticamente la versione aggiornata della soluzione. Per ulteriori informazioni, consulta Aggiornamenti automatici.

    Per aggiornare manualmente la campagna, devi prima creare e addestrare una nuova versione della soluzione utilizzando la console o l'CreateSolutionVersionoperazione, con trainingMode set toupdate. Quindi aggiorni manualmente la campagna nella pagina Campaign della console o utilizzando l'UpdateCampaignoperazione.

    Nota

    Amazon Personalize non aggiorna automaticamente le versioni della soluzione create prima del 17 novembre 2020.

Ottenere consigli e registrare impressioni (SDKper Python (Boto3))

Una volta creata la campagna, puoi utilizzarla per ottenere consigli per un utente e registrare le impressioni. Per informazioni su come ottenere consigli sui batch, utilizza il AWS SDKsvedereCreazione di un processo di inferenza in batch ()AWS SDKs.

Per ricevere consigli e registrare impressioni
  1. Chiama il metodo get_recommendations. Passa campaign arn al nome ARN della tua nuova campagna e user id a quello userId dell'utente.

    import boto3 rec_response = personalize_runtime.get_recommendations(campaignArn = 'campaign arn', userId = 'user id') print(rec_response['recommendationId'])
  2. Crea un nuovo tracker di eventi per l'invio di PutEvents richieste. Sostituiscilo event tracker name con il nome del tuo event tracker e dataset group arn con il tuo gruppo di set ARN di dati.

    import boto3 personalize = boto3.client('personalize') event_tracker_response = personalize.create_event_tracker( name = 'event tracker name', datasetGroupArn = 'dataset group arn' ) event_tracker_arn = event_tracker_response['eventTrackerArn'] event_tracking_id = event_tracker_response['trackingId'] print('eventTrackerArn:{},\n eventTrackingId:{}'.format(event_tracker_arn, event_tracking_id))
  3. Usa il recommendationId from step 1 e il event tracking id from step 2 per creare una nuova PutEvents richiesta. Questa richiesta registra i nuovi dati di impressione dalla sessione dell'utente. Cambia user id il nome con l'ID dell'utente.

    import boto3 personalize_events.put_events( trackingId = 'event tracking id', userId= 'user id', sessionId = '1', eventList = [{ 'sentAt': datetime.now().timestamp(), 'eventType' : 'click', 'itemId' : rec_response['itemList'][0]['itemId'], 'recommendationId': rec_response['recommendationId'], 'impression': [item['itemId'] for item in rec_response['itemList']], }] )

Notebook Jupyter di esempio

Per un esempio di notebook Jupyter che mostra come utilizzare la ricetta di personalizzazione degli utenti, vedi Personalizzazione degli utenti con Exploration.