Crea targeting contestuale basato sulla tassonomia utilizzando AWS Media Intelligence e Hugging Face BERT PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Crea un targeting contestuale basato sulla tassonomia utilizzando AWS Media Intelligence e Hugging Face BERT

Con l'entrata in vigore di nuove normative sulla privacy dei dati come il GDPR (Regolamento generale sulla protezione dei dati, 2017), i clienti sono sottoposti a una maggiore pressione per monetizzare le risorse multimediali nel rispetto delle nuove regole. La monetizzazione dei media nel rispetto delle normative sulla privacy richiede la capacità di estrarre automaticamente metadati granulari da risorse come testo, immagini, video e file audio su scala Internet. Richiede anche un modo scalabile per mappare le risorse multimediali alle tassonomie del settore che facilitino la scoperta e la monetizzazione dei contenuti. Questo caso d'uso è particolarmente significativo per il settore pubblicitario poiché le norme sulla privacy dei dati causano un passaggio dal targeting comportamentale utilizzando cookie di terze parti.

cookie di terze parti aiuta ad abilitare annunci personalizzati per gli utenti web e consente agli inserzionisti di raggiungere il pubblico previsto. Una soluzione tradizionale per pubblicare annunci senza cookie di terze parti è la pubblicità contestuale, che inserisce annunci nelle pagine Web in base al contenuto pubblicato nelle pagine. Tuttavia, la pubblicità contestuale pone la sfida di estrarre il contesto dalle risorse multimediali su larga scala e, allo stesso modo, di utilizzare quel contesto per monetizzare le risorse.

In questo post, discutiamo di come creare una soluzione di machine learning (ML) che chiamiamo Contextual Intelligence Taxonomy Mapper (CITM) per estrarre il contesto dal contenuto digitale e mapparlo su tassonomie standard al fine di generare valore. Sebbene applichiamo questa soluzione alla pubblicità contestuale, puoi utilizzarla per risolvere altri casi d'uso. Ad esempio, le aziende di tecnologia dell'istruzione possono utilizzarlo per mappare i propri contenuti alle tassonomie del settore al fine di facilitare l'apprendimento adattivo che offre esperienze di apprendimento personalizzate in base alle esigenze individuali degli studenti.

Panoramica della soluzione

La soluzione comprende due componenti: Informazioni sui media di AWS (AWS MI) per l'estrazione del contesto dal contenuto delle pagine Web e CITM per la mappatura intelligente del contenuto in una tassonomia del settore. Puoi accedere alle soluzioni repository di codice per una visione dettagliata di come implementiamo i suoi componenti.

Informazioni sui media di AWS

Le funzionalità di AWS MI consentono l'estrazione automatica dei metadati che forniscono una comprensione contestuale del contenuto di una pagina web. Puoi combinare tecniche di ML come la visione artificiale, la sintesi vocale e l'elaborazione del linguaggio naturale (NLP) per generare automaticamente metadati da testo, video, immagini e file audio da utilizzare nell'elaborazione a valle. Servizi di intelligenza artificiale gestiti come Rekognition di Amazon, Amazon Transcribe, Amazon Comprehende Testo Amazon rendere accessibili queste tecniche di ML utilizzando le chiamate API. Ciò elimina il sovraccarico necessario per addestrare e creare modelli ML da zero. In questo post, vedrai come l'utilizzo di Amazon Comprehend e Amazon Rekognition per l'intelligence multimediale consente l'estrazione di metadati su larga scala.

Mappatore tassonomia dell'intelligenza contestuale

Dopo aver estratto i metadati dai contenuti multimediali, è necessario un modo per mappare tali metadati a una tassonomia di settore per facilitare il targeting contestuale. Per fare ciò, costruisci il Contextual Intelligence Taxonomy Mapper (CITM), che è alimentato da un trasformatore di frasi BERT di Hugging Face.

Il trasformatore di frasi BERT consente a CITM di classificare i contenuti web con parole chiave contestualmente correlate. Ad esempio, può classificare un articolo web sulla vita sana con parole chiave della tassonomia del settore, come "Cucinare e mangiare sani", "Correre e fare jogging" e altro, in base al testo scritto e alle immagini utilizzate all'interno dell'articolo. CITM offre anche la possibilità di scegliere i termini della tassonomia mappati da utilizzare per il processo di offerta degli annunci in base ai criteri.

Il diagramma seguente illustra la visione concettuale dell'architettura con CITM.

La tassonomia dei contenuti IAB (Interactive Advertising Bureau).

Per questo post, utilizziamo il Tassonomia dei contenuti di IAB Tech Lab come tassonomia standard del settore per il caso d'uso della pubblicità contestuale. In base alla progettazione, la tassonomia IAB aiuta i creatori di contenuti a descrivere più accuratamente i propri contenuti e fornisce un linguaggio comune a tutte le parti nel processo di pubblicità programmatica. L'uso di una terminologia comune è fondamentale perché la selezione degli annunci per una pagina Web visitata da un utente deve avvenire in pochi millisecondi. La tassonomia IAB funge da metodo standardizzato per classificare i contenuti provenienti da varie fonti, essendo anche un protocollo di settore utilizzato dalle piattaforme di offerte in tempo reale per la selezione degli annunci. Ha una struttura gerarchica, che fornisce granularità dei termini della tassonomia e contesto migliorato per gli inserzionisti.

Flusso di lavoro della soluzione

Il diagramma seguente illustra il flusso di lavoro della soluzione.

Panoramica della soluzione CITM

I passi sono come segue:

  1. Servizio di archiviazione semplice Amazon (Amazon S3) memorizza la tassonomia dei contenuti IAB e i contenuti Web estratti.
  2. Amazon Comprehend esegue la modellazione degli argomenti per estrarre temi comuni dalla raccolta di articoli.
  3. Il riconoscimento amazzonico API etichetta oggetto rileva le etichette nelle immagini.
  4. CITM associa il contenuto a una tassonomia standard.
  5. Facoltativamente, puoi archiviare il contenuto nella mappatura della tassonomia in un archivio di metadati.

Nelle sezioni seguenti, esamineremo ogni passaggio in dettaglio.

Amazon S3 archivia la tassonomia dei contenuti IAB e i contenuti Web estratti

Archiviamo testo e immagini estratti da una raccolta di articoli Web in un bucket S3. Archiviamo anche la tassonomia dei contenuti IAB. Come primo passo, concateniamo diversi livelli sulla tassonomia per creare termini di tassonomia combinati. Questo approccio aiuta a mantenere la struttura gerarchica della tassonomia quando il trasformatore di frase BERT crea incorporamenti per ciascuna parola chiave. Vedere il codice seguente:

def prepare_taxonomy(taxonomy_df):
    
    """
    Concatenate IAB Tech Lab content taxonomy tiers and prepare keywords for BERT embedding. 
    Use this function as-is if using the IAB Content Taxonomy
    
    Parameters (input):
    ----------
    taxonomy_df : Content taxonomy dataframe

    Returns (output):
    -------
    df_clean : Content taxonomy with tiers in the taxonomy concatenated
    keyword_list: List of concatenated content taxonomy keywords
    ids: List of ids for the content taxonomy keywords
    """
    
    df = taxonomy_df[['Unique ID ','Parent','Name','Tier 1','Tier 2','Tier 3']] 
    df_str = df.astype({"Unique ID ": 'str', "Parent": 'str', "Tier 1": 'str', "Tier 2": 'str', "Tier 3": 'str'})
    df_clean = df_str.replace('nan','')
    
    #create a column that concatenates all tiers for each taxonomy keyword
    df_clean['combined']=df_clean[df_clean.columns[2:6]].apply(lambda x: ' '.join(x.dropna().astype(str)),axis=1)
    
    #turn taxonomy keyords to list of strings a prep for encoding with BERT sentence transformer
    keyword_list=df_clean['combined'].to_list()
                       
    #get list of taxonomy ids
    ids = df_clean['Unique ID '].to_list()                  
            
    return df_clean, keyword_list, ids

taxonomy_df, taxonomy_terms, taxonomy_ids = prepare_taxonomy(read_taxonomy)

Il diagramma seguente illustra la tassonomia del contesto IAB con livelli combinati.

Tassonomia dei contenuti IAB con livelli concatenati

Amazon Comprehend esegue la modellazione degli argomenti per estrarre temi comuni dalla raccolta di articoli

Con l'API di modellazione degli argomenti di Amazon Comprehend, analizzi tutti i testi degli articoli utilizzando il modello LDA (Latent Dirichlet Allocation). Il modello esamina ogni articolo nel corpus e raggruppa le parole chiave nello stesso argomento in base al contesto e alla frequenza in cui appaiono nell'intera raccolta di articoli. Per garantire che il modello LDA rilevi argomenti altamente coerenti, esegui una fase di preelaborazione prima di chiamare l'API Amazon Comprehend. Puoi usare il della libreria gensim CoherenceModel per determinare il numero ottimale di argomenti da rilevare dalla raccolta di articoli o file di testo. Vedere il codice seguente:

def compute_coherence_scores(dictionary, corpus, texts, limit, start=2, step=3):
    """
    Compute coherence scores for various number of topics for your topic model. 
    Adjust the parameters below based on your data

    Parameters (input):
    ----------
    dictionary : Gensim dictionary created earlier from input texts
    corpus : Gensim corpus created earlier from input texts
    texts : List of input texts
    limit : The maximum number of topics to test. Amazon Comprehend can detect up to 100 topics in a collection

    Returns (output):
    -------
    models : List of LDA topic models
    coherence_scores : Coherence values corresponding to the LDA model with respective number of topics
    """
    coherence_scores = []
    models = []
    for num_topics in range(start, limit, step):
        model = gensim.models.LdaMulticore(corpus=corpus, num_topics=num_topics, id2word=id2word)
        models.append(model)
        coherencemodel = CoherenceModel(model=model, texts=corpus_words, dictionary=id2word, coherence='c_v')
        coherence_scores.append(coherencemodel.get_coherence())

    return models, coherence_scores

models, coherence_scores = compute_coherence_scores(dictionary=id2word, corpus=corpus_tdf, texts=corpus_words, start=2, limit=100, step=3)

Dopo aver ottenuto il numero ottimale di argomenti, utilizzi quel valore per il processo di modellazione degli argomenti Amazon Comprehend. Fornire valori diversi per il parametro NumberOfTopics in Amazon Comprehend Operazione StartTopicsDetectionJob comporta una variazione nella distribuzione delle parole chiave inserite in ciascun gruppo di argomenti. Un valore ottimizzato per il parametro NumberOfTopics rappresenta il numero di argomenti che forniscono il raggruppamento più coerente di parole chiave con maggiore rilevanza contestuale. Puoi archiviare l'output della modellazione degli argomenti da Amazon Comprehend nel suo formato non elaborato in Amazon S3.

L'API dell'etichetta dell'oggetto Amazon Rekognition rileva le etichette nelle immagini

Analizzi ogni immagine estratta da tutte le pagine web utilizzando il Amazon Rekognition DetectLabels operazione. Per ogni immagine, l'operazione fornisce una risposta JSON con tutte le etichette rilevate all'interno dell'immagine, insieme a un punteggio di affidabilità per ciascuna. Per il nostro caso d'uso, selezioniamo arbitrariamente un punteggio di affidabilità del 60% o superiore come soglia per le etichette degli oggetti da utilizzare nel passaggio successivo. Memorizzi le etichette degli oggetti nel loro formato non elaborato in Amazon S3. Vedere il codice seguente:

"""
Create a function to extract object labels from a given image using Amazon Rekognition
"""

def get_image_labels(image_loc):
    labels = []
    with fs.open(image_loc, "rb") as im:
        response = rekognition_client.detect_labels(Image={"Bytes": im.read()})
    
    for label in response["Labels"]:
        if label["Confidence"] >= 60:   #change to desired confidence score threshold, value between [0,100]:
            object_label = label["Name"]
            labels.append(object_label)
    return labels

CITM associa il contenuto a una tassonomia standard

CITM confronta i metadati del contenuto estratti (argomenti dal testo ed etichette dalle immagini) con le parole chiave nella tassonomia IAB, quindi associa i metadati del contenuto alle parole chiave della tassonomia che sono semanticamente correlate. Per questa attività, CITM completa i tre passaggi seguenti:

  1. Genera incorporamenti neurali per la tassonomia dei contenuti, le parole chiave degli argomenti e le etichette delle immagini utilizzando il trasformatore di frasi BERT di Hugging Face. Accediamo al modello del trasformatore di frasi da Amazon Sage Maker. In questo post, utilizziamo il parafrasi-MiniLM-L6-v2 modello, che mappa parole chiave ed etichette in uno spazio vettoriale denso a 384 dimensioni.
  2. Calcola il punteggio di somiglianza del coseno tra le parole chiave della tassonomia e le parole chiave dell'argomento utilizzando i loro incorporamenti. Calcola anche la somiglianza del coseno tra le parole chiave della tassonomia e le etichette degli oggetti immagine. Usiamo la somiglianza del coseno come meccanismo di punteggio per trovare corrispondenze semanticamente simili tra i metadati del contenuto e la tassonomia. Vedere il codice seguente:
def compute_similarity(entity_embeddings, entity_terms, taxonomy_embeddings, taxonomy_terms):
    """
    Compute cosine scores between entity embeddings and taxonomy embeddings
    
    Parameters (input):
    ----------
    entity_embeddings : Embeddings for either topic keywords from Amazon Comprehend or image labels from Amazon Rekognition
    entity_terms : Terms for topic keywords or image labels
    taxonomy_embeddings : Embeddings for the content taxonomy
    taxonomy_terms : Terms for the taxonomy keywords

    Returns (output):
    -------
    mapping_df : Dataframe that matches each entity keyword to each taxonomy keyword and their cosine similarity score
    """
    
    #calculate cosine score, pairing each entity embedding with each taxonomy keyword embedding
    cosine_scores = util.pytorch_cos_sim(entity_embeddings, taxonomy_embeddings)
    pairs = []
    for i in range(len(cosine_scores)-1):
        for j in range(0, cosine_scores.shape[1]):
            pairs.append({'index': [i, j], 'score': cosine_scores[i][j]})
    
    #Sort cosine similarity scores in decreasing order
    pairs = sorted(pairs, key=lambda x: x['score'], reverse=True)
    rows = []
    for pair in pairs:
        i, j = pair['index']
        rows.append([entity_terms[i], taxonomy_terms[j], pair['score']])
    
    #move sorted values to a dataframe
    mapping_df= pd.DataFrame(rows, columns=["term", "taxonomy_keyword","cosine_similarity"])
    mapping_df['cosine_similarity'] = mapping_df['cosine_similarity'].astype('float')
    mapping_df= mapping_df.sort_values(by=['term','cosine_similarity'], ascending=False)
    drop_dups= mapping_df.drop_duplicates(subset=['term'], keep='first')
    mapping_df = drop_dups.sort_values(by=['cosine_similarity'], ascending=False).reset_index(drop=True)
    return mapping_df
                                               
#compute cosine_similairty score between topic keywords and content taxonomy keywords using BERT embeddings                                               
text_taxonomy_mapping=compute_similarity(keyword_embeddings, topic_keywords, taxonomy_embeddings, taxonomy_terms)

  1. Identificare gli accoppiamenti con punteggi di somiglianza che sono al di sopra di una soglia definita dall'utente e utilizzarli per mappare il contenuto a parole chiave semanticamente correlate nella tassonomia del contenuto. Nel nostro test, selezioniamo tutte le parole chiave dagli accoppiamenti che hanno un punteggio di somiglianza del coseno di 0.5 o superiore. Vedere il codice seguente:
#merge text and image keywords mapped to content taxonomy
rtb_keywords=pd.concat([text_taxonomy_mapping[["term","taxonomy_keyword","cosine_similarity"]],image_taxonomy_mapping]).sort_values(by='cosine_similarity',ascending=False).reset_index(drop=True)

#select keywords with a cosine_similarity score greater than your desired threshold ( the value should be from 0 to 1)
rtb_keywords[rtb_keywords["cosine_similarity"]> 50] # change to desired threshold for cosine score, value between [0,100]:

Una sfida comune quando si lavora con la rappresentazione linguistica su scala Internet (come in questo caso d'uso) è che è necessario un modello che possa adattarsi alla maggior parte del contenuto, in questo caso parole in lingua inglese. Il trasformatore BERT di Hugging Face è stato pre-addestrato utilizzando un ampio corpus di post di Wikipedia in lingua inglese per rappresentare il significato semantico delle parole in relazione l'una con l'altra. Perfezioni il modello pre-addestrato utilizzando il tuo set di dati specifico di parole chiave argomento, etichette di immagini e parole chiave di tassonomia. Quando si posizionano tutti gli incorporamenti nello stesso spazio di funzionalità e li si visualizza, si vede che BERT rappresenta logicamente la somiglianza semantica tra i termini.

L'esempio seguente visualizza le parole chiave della tassonomia del contenuto IAB per la classe Automotive rappresentata come vettori utilizzando BERT. BERT colloca le parole chiave Automotive della tassonomia vicino a termini semanticamente simili.

Visualizzazione degli embedding BERT per le parole chiave della tassonomia

I vettori di funzionalità consentono a CITM di confrontare le etichette dei metadati e le parole chiave della tassonomia nello stesso spazio di funzionalità. In questo spazio di funzionalità, CITM calcola la somiglianza del coseno tra ciascun vettore di funzionalità per le parole chiave della tassonomia e ciascun vettore di funzionalità per le parole chiave dell'argomento. In un passaggio separato, CITM confronta i vettori delle caratteristiche della tassonomia e i vettori delle caratteristiche per le etichette delle immagini. Gli accoppiamenti con punteggi del coseno più vicini a 1 sono identificati come semanticamente simili. Tieni presente che un abbinamento può essere una parola chiave argomento e una parola chiave tassonomia oppure un'etichetta oggetto e una parola chiave tassonomia.

Lo screenshot seguente mostra accoppiamenti di esempio di parole chiave argomento e parole chiave tassonomiche utilizzando la somiglianza del coseno calcolata con incorporamenti BERT.

Argomento per gli accoppiamenti di parole chiave della tassonomia

Per mappare il contenuto alle parole chiave della tassonomia, CITM seleziona le parole chiave dagli accoppiamenti con i punteggi del coseno che soddisfano una soglia definita dall'utente. Queste sono le parole chiave che verranno utilizzate sulle piattaforme di offerte in tempo reale per selezionare gli annunci per l'inventario della pagina web. Il risultato è una ricca mappatura dei contenuti online nella tassonomia.

Facoltativamente, archivia il contenuto nella mappatura della tassonomia in un archivio di metadati

Dopo aver identificato termini di tassonomia contestualmente simili da CITM, è necessario un modo per le API a bassa latenza per accedere a queste informazioni. Nelle offerte programmatiche per annunci pubblicitari, tempi di risposta bassi e concorrenza elevata svolgono un ruolo importante nella monetizzazione del contenuto. Lo schema per l'archivio dati deve essere flessibile per ospitare metadati aggiuntivi quando necessario per arricchire le richieste di offerta. Amazon DynamoDB può corrispondere ai modelli di accesso ai dati e ai requisiti operativi per tale servizio.

Conclusione

In questo post, hai imparato come creare una soluzione di targeting contestuale basata sulla tassonomia utilizzando Contextual Intelligence Taxonomy Mapper (CITM). Hai imparato a utilizzare Amazon Comprehend e Amazon Rekognition per estrarre metadati granulari dalle tue risorse multimediali. Quindi, utilizzando CITM hai mappato le risorse su una tassonomia standard del settore per facilitare l'offerta di annunci programmatici per annunci contestualmente correlati. Puoi applicare questo framework ad altri casi d'uso che richiedono l'uso di una tassonomia standard per aumentare il valore delle risorse multimediali esistenti.

Per sperimentare CITM, puoi accedervi repository di codice e usalo con un set di dati di testo e immagini a tua scelta.

Ti consigliamo di saperne di più sui componenti della soluzione introdotti in questo post. Scopri di più su Informazioni sui media di AWS per estrarre i metadati dai contenuti multimediali. Inoltre, scopri di più su come utilizzarlo Modelli Hugging Face per NLP utilizzando Amazon SageMaker.


Informazioni sugli autori

Crea targeting contestuale basato sulla tassonomia utilizzando AWS Media Intelligence e Hugging Face BERT PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Aramide Kehinde è Sr. Partner Solution Architect presso AWS in Machine Learning e AI. Il suo percorso professionale ha abbracciato le aree di Business Intelligence e Advanced Analytics in più settori. Lavora per consentire ai partner di creare soluzioni con i servizi AWS AI/ML che soddisfano le esigenze di innovazione dei clienti. Le piace anche costruire l'intersezione tra IA e arene creative e trascorrere del tempo con la sua famiglia.

Crea targeting contestuale basato sulla tassonomia utilizzando AWS Media Intelligence e Hugging Face BERT PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Anuj Gupta è un Principal Solutions Architect che lavora con aziende in ipercrescita nel loro percorso cloud native. È appassionato di utilizzare la tecnologia per risolvere problemi complessi e ha collaborato con i clienti per creare applicazioni altamente distribuite ea bassa latenza. Contribuisce a soluzioni open source Serverless e Machine Learning. Al di fuori del lavoro, ama viaggiare con la sua famiglia e scrivere poesie e blog filosofici.

Timestamp:

Di più da Apprendimento automatico di AWS