Erstellen Sie taxonomiebasiertes Kontext-Targeting mit AWS Media Intelligence und Hugging Face BERT PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Erstellen Sie taxonomiebasiertes Kontext-Targeting mit AWS Media Intelligence und Hugging Face BERT

Da neue Datenschutzbestimmungen wie die DSGVO (Datenschutz-Grundverordnung, 2017) in Kraft getreten sind, stehen Kunden unter erhöhtem Druck, Medieninhalte zu monetarisieren und gleichzeitig die neuen Regeln einzuhalten. Die Monetarisierung von Medien unter Einhaltung der Datenschutzbestimmungen erfordert die Fähigkeit, granulare Metadaten automatisch aus Assets wie Text, Bildern, Video- und Audiodateien im Internetmaßstab zu extrahieren. Es erfordert auch eine skalierbare Möglichkeit, Medienbestände Branchentaxonomien zuzuordnen, die die Entdeckung und Monetarisierung von Inhalten erleichtern. Dieser Anwendungsfall ist für die Werbebranche von besonderer Bedeutung, da Datenschutzbestimmungen eine Abkehr vom Behavioral Targeting mit Cookies von Drittanbietern bewirken.

Cookies von Drittanbietern dabei helfen, personalisierte Werbung für Webbenutzer zu aktivieren und es Werbetreibenden zu ermöglichen, ihre beabsichtigte Zielgruppe zu erreichen. Eine traditionelle Lösung, um Anzeigen ohne Cookies von Drittanbietern zu schalten, ist kontextbezogene Werbung, die Anzeigen auf Webseiten basierend auf den auf den Seiten veröffentlichten Inhalten platziert. Kontextbezogene Werbung stellt jedoch die Herausforderung dar, Kontext aus Medieninhalten in großem Umfang zu extrahieren und diesen Kontext ebenfalls zur Monetarisierung der Vermögenswerte zu verwenden.

In diesem Beitrag erörtern wir, wie Sie eine Lösung für maschinelles Lernen (ML) erstellen können, die wir Contextual Intelligence Taxonomy Mapper (CITM) nennen, um Kontext aus digitalen Inhalten zu extrahieren und ihn Standardtaxonomien zuzuordnen, um Mehrwert zu generieren. Obwohl wir diese Lösung auf kontextbezogene Werbung anwenden, können Sie sie auch für andere Anwendungsfälle verwenden. Beispielsweise können Bildungstechnologieunternehmen damit ihre Inhalte Branchentaxonomien zuordnen, um adaptives Lernen zu erleichtern, das personalisierte Lernerfahrungen basierend auf den individuellen Bedürfnissen der Schüler bietet.

Lösungsüberblick

Die Lösung besteht aus zwei Komponenten: AWS Media Intelligence (AWS MI)-Funktionen für die Kontextextraktion aus Inhalten auf Webseiten und CITM für die intelligente Zuordnung von Inhalten zu einer Branchentaxonomie. Sie können auf die Lösungen zugreifen Code-Repository für eine detaillierte Ansicht, wie wir seine Komponenten implementieren.

AWS Media Intelligence

AWS MI-Funktionen ermöglichen die automatische Extraktion von Metadaten, die ein kontextbezogenes Verständnis des Inhalts einer Webseite ermöglichen. Sie können ML-Techniken wie Computer Vision, Sprache zu Text und Verarbeitung natürlicher Sprache (NLP) kombinieren, um automatisch Metadaten aus Text, Videos, Bildern und Audiodateien zur Verwendung in der nachgelagerten Verarbeitung zu generieren. Verwaltete KI-Dienste wie z Amazon-Anerkennung, Amazon Transcribe, Amazon verstehen und Amazontext Machen Sie diese ML-Techniken mithilfe von API-Aufrufen zugänglich. Dadurch entfällt der Overhead, der zum Trainieren und Erstellen von ML-Modellen von Grund auf erforderlich ist. In diesem Beitrag sehen Sie, wie die Verwendung von Amazon Comprehend und Amazon Rekognition für Medienintelligenz die Extraktion von Metadaten in großem Maßstab ermöglicht.

Kontextbezogener Taxonomie-Mapper

Nachdem Sie Metadaten aus Medieninhalten extrahiert haben, benötigen Sie eine Möglichkeit, diese Metadaten einer Branchentaxonomie zuzuordnen, um kontextbezogenes Targeting zu erleichtern. Dazu erstellen Sie den Contextual Intelligence Taxonomy Mapper (CITM), der von einem BERT-Satztransformator von Hugging Face unterstützt wird.

Der BERT-Satztransformator ermöglicht es CITM, Webinhalte mit kontextbezogenen Schlüsselwörtern zu kategorisieren. Beispielsweise kann es einen Webartikel über ein gesundes Leben mit Schlüsselwörtern aus der Branchentaxonomie wie „Gesundes Kochen und Essen“, „Laufen und Joggen“ und mehr kategorisieren, basierend auf dem geschriebenen Text und den im Artikel verwendeten Bildern. CITM bietet auch die Möglichkeit, die zugeordneten Taxonomiebegriffe auszuwählen, die für Ihren Anzeigengebotsprozess basierend auf Ihren Kriterien verwendet werden sollen.

Das folgende Diagramm veranschaulicht die konzeptionelle Ansicht der Architektur mit CITM.

Inhaltstaxonomie des IAB (Interactive Advertising Bureau).

Für diesen Beitrag verwenden wir die Inhaltstaxonomie des IAB Tech Lab als branchenübliche Taxonomie für den Anwendungsfall kontextbezogene Werbung. Die IAB-Taxonomie hilft Inhaltserstellern, ihre Inhalte genauer zu beschreiben, und bietet eine gemeinsame Sprache für alle Parteien im programmatischen Werbeprozess. Die Verwendung einer gemeinsamen Terminologie ist entscheidend, da die Auswahl von Anzeigen für eine Webseite, die ein Benutzer besucht, innerhalb von Millisekunden erfolgen muss. Die IAB-Taxonomie dient als standardisierte Methode zur Kategorisierung von Inhalten aus verschiedenen Quellen und ist gleichzeitig ein Branchenprotokoll, das Echtzeit-Gebotsplattformen für die Anzeigenauswahl verwenden. Es hat eine hierarchische Struktur, die eine Granularität der Taxonomiebegriffe und einen erweiterten Kontext für Werbetreibende bietet.

Lösungs-Workflow

Das folgende Diagramm veranschaulicht den Lösungsworkflow.

CITM-Lösung im Überblick

Die Schritte sind wie folgt:

  1. Amazon Simple Storage-Service (Amazon S3) speichert die IAB-Inhaltstaxonomie und extrahierte Webinhalte.
  2. Amazon Comprehend führt eine Themenmodellierung durch, um allgemeine Themen aus der Sammlung von Artikeln zu extrahieren.
  3. Die Amazon-Erkennung Objektlabel-API erkennt Beschriftungen in Bildern.
  4. CITM ordnet Inhalte einer Standardtaxonomie zu.
  5. Optional können Sie die Zuordnung von Inhalt zu Taxonomie in einem Metadatenspeicher speichern.

In den folgenden Abschnitten gehen wir jeden Schritt im Detail durch.

Amazon S3 speichert die IAB-Inhaltstaxonomie und extrahierte Webinhalte

Wir speichern extrahierten Text und Bilder aus einer Sammlung von Webartikeln in einem S3-Bucket. Wir speichern auch die IAB-Content-Taxonomie. In einem ersten Schritt verketten wir verschiedene Ebenen der Taxonomie, um kombinierte Taxonomiebegriffe zu erstellen. Dieser Ansatz hilft, die hierarchische Struktur der Taxonomie beizubehalten, wenn der BERT-Satztransformator Einbettungen für jedes Schlüsselwort erstellt. Siehe folgenden Code:

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)

Das folgende Diagramm veranschaulicht die IAB-Kontexttaxonomie mit kombinierten Schichten.

IAB-Inhaltstaxonomie mit verketteten Ebenen

Amazon Comprehend führt eine Themenmodellierung durch, um allgemeine Themen aus der Sammlung von Artikeln zu extrahieren

Mit der Themenmodellierungs-API von Amazon Comprehend analysieren Sie alle Artikeltexte mithilfe des Latent Dirichlet Allocation (LDA)-Modells. Das Modell untersucht jeden Artikel im Korpus und gruppiert Schlüsselwörter basierend auf dem Kontext und der Häufigkeit, in der sie in der gesamten Artikelsammlung erscheinen, in dasselbe Thema. Um sicherzustellen, dass das LDA-Modell sehr kohärente Themen erkennt, führen Sie vor dem Aufrufen der Amazon Comprehend-API einen Vorverarbeitungsschritt durch. Du kannst den ... benutzen gensim-Bibliothek CoherenceModel, um die optimale Anzahl von Themen zu bestimmen, die aus der Sammlung von Artikeln oder Textdateien erkannt werden sollen. Siehe folgenden Code:

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)

Nachdem Sie die optimale Anzahl von Themen erhalten haben, verwenden Sie diesen Wert für den Amazon Comprehend-Themenmodellierungsauftrag. Bereitstellen unterschiedlicher Werte für den NumberOfTopics-Parameter im Amazon Comprehend StartTopicsDetectionJob-Vorgang führt zu einer unterschiedlichen Verteilung der in jeder Themengruppe platzierten Schlüsselwörter. Ein optimierter Wert für den NumberOfTopics-Parameter stellt die Anzahl der Themen dar, die die kohärenteste Gruppierung von Schlüsselwörtern mit höherer Kontextrelevanz bieten. Sie können die Themenmodellierungsausgabe von Amazon Comprehend im Rohformat in Amazon S3 speichern.

Die Objektlabel-API von Amazon Rekognition erkennt Labels in Bildern

Sie analysieren jedes aus allen Webseiten extrahierte Bild mit der Amazon Rekognition DetectLabels-Vorgang. Für jedes Bild liefert die Operation eine JSON-Antwort mit allen im Bild erkannten Labels, gekoppelt mit einem Konfidenzwert für jedes. Für unseren Anwendungsfall wählen wir willkürlich einen Konfidenzwert von 60 % oder höher als Schwellenwert für die im nächsten Schritt zu verwendenden Objektkennzeichnungen aus. Sie speichern Objektetiketten in ihrem Rohformat in Amazon S3. Siehe folgenden Code:

"""
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 ordnet Inhalte einer Standardtaxonomie zu

CITM vergleicht extrahierte Inhaltsmetadaten (Themen aus Text und Bezeichnungen aus Bildern) mit Schlüsselwörtern der IAB-Taxonomie und ordnet dann die Inhaltsmetadaten Schlüsselwörtern aus der Taxonomie zu, die semantisch verwandt sind. Für diese Aufgabe führt CITM die folgenden drei Schritte aus:

  1. Generieren Sie neuronale Einbettungen für die Inhaltstaxonomie, Themenschlüsselwörter und Bildetiketten mit dem BERT-Satztransformator von Hugging Face. Wir greifen auf das Satztransformatormodell von zu Amazon Sage Maker. In diesem Beitrag verwenden wir die Paraphrase-MiniLM-L6-v2 Modell, das Schlüsselwörter und Labels auf einen 384-dimensionalen dichten Vektorraum abbildet.
  2. Berechnen Sie den Kosinus-Ähnlichkeitswert zwischen Taxonomie-Stichwörtern und Themen-Stichwörtern unter Verwendung ihrer Einbettungen. Es berechnet auch die Kosinus-Ähnlichkeit zwischen den Taxonomie-Schlüsselwörtern und den Bildobjektetiketten. Wir verwenden Kosinusähnlichkeit als Bewertungsmechanismus, um semantisch ähnliche Übereinstimmungen zwischen den Inhaltsmetadaten und der Taxonomie zu finden. Siehe folgenden Code:
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. Identifizieren Sie Paarungen mit Ähnlichkeitswerten, die über einem benutzerdefinierten Schwellenwert liegen, und verwenden Sie sie, um den Inhalt semantisch verwandten Schlüsselwörtern in der Inhaltstaxonomie zuzuordnen. In unserem Test wählen wir alle Keywords aus Paarungen aus, die einen Cosinus-Ähnlichkeitswert von 0.5 oder höher aufweisen. Siehe folgenden Code:
#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]:

Eine häufige Herausforderung bei der Arbeit mit Sprachdarstellungen im Internetmaßstab (wie in diesem Anwendungsfall) besteht darin, dass Sie ein Modell benötigen, das für die meisten Inhalte geeignet ist – in diesem Fall Wörter in englischer Sprache. Der BERT-Transformator von Hugging Face wurde mit einem großen Korpus von Wikipedia-Beiträgen in englischer Sprache vortrainiert, um die semantische Bedeutung von Wörtern in Bezug zueinander darzustellen. Sie optimieren das vortrainierte Modell mithilfe Ihres spezifischen Datensatzes von Themen-Keywords, Bildlabels und Taxonomie-Keywords. Wenn Sie alle Einbettungen im selben Merkmalsraum platzieren und visualisieren, sehen Sie, dass BERT die semantische Ähnlichkeit zwischen Begriffen logisch darstellt.

Das folgende Beispiel visualisiert Schlüsselwörter der IAB-Inhaltstaxonomie für die Klasse Automotive, dargestellt als Vektoren mit BERT. BERT platziert Automotive-Keywords aus der Taxonomie nahe an semantisch ähnlichen Begriffen.

Visualisierung von BERT-Einbettungen für Taxonomie-Keywords

Die Merkmalsvektoren ermöglichen es CITM, die Metadatenkennzeichnungen und Taxonomieschlüsselwörter im selben Merkmalsraum zu vergleichen. In diesem Merkmalsraum berechnet CITM die Kosinusähnlichkeit zwischen jedem Merkmalsvektor für Taxonomieschlüsselwörter und jedem Merkmalsvektor für Themenschlüsselwörter. In einem separaten Schritt vergleicht CITM Taxonomie-Merkmalsvektoren und Merkmalsvektoren für Bildetiketten. Paarungen mit Kosinuswerten, die am nächsten bei 1 liegen, werden als semantisch ähnlich identifiziert. Beachten Sie, dass eine Paarung entweder ein Themen-Stichwort und ein Taxonomie-Stichwort oder ein Objektlabel und ein Taxonomie-Stichwort sein kann.

Der folgende Screenshot zeigt beispielhafte Paarungen von Themen-Keywords und Taxonomie-Keywords unter Verwendung der mit BERT-Einbettungen berechneten Kosinus-Ähnlichkeit.

Keyword-Paarungen zwischen Thema und Taxonomie

Um Inhalte Taxonomie-Schlüsselwörtern zuzuordnen, wählt CITM Schlüsselwörter aus Paarungen mit Kosinuswerten aus, die einen benutzerdefinierten Schwellenwert erfüllen. Dies sind die Schlüsselwörter, die auf Echtzeit-Gebotsplattformen verwendet werden, um Anzeigen für das Inventar der Webseite auszuwählen. Das Ergebnis ist eine reichhaltige Zuordnung von Online-Inhalten zur Taxonomie.

Speichern Sie optional Inhalte zur Taxonomiezuordnung in einem Metadatenspeicher

Nachdem Sie kontextuell ähnliche Taxonomiebegriffe von CITM identifiziert haben, benötigen Sie eine Möglichkeit für APIs mit geringer Latenz, um auf diese Informationen zuzugreifen. Beim programmatischen Bieten für Werbeanzeigen spielen eine geringe Antwortzeit und eine hohe Gleichzeitigkeit eine wichtige Rolle bei der Monetarisierung der Inhalte. Das Schema für den Datenspeicher muss flexibel sein, um bei Bedarf zusätzliche Metadaten aufzunehmen, um Gebotsanfragen anzureichern. Amazon DynamoDB den Datenzugriffsmustern und Betriebsanforderungen für einen solchen Dienst entsprechen kann.

Zusammenfassung

In diesem Beitrag haben Sie gelernt, wie Sie mit Contextual Intelligence Taxonomy Mapper (CITM) eine taxonomiebasierte kontextbezogene Targeting-Lösung erstellen. Sie haben gelernt, wie Sie Amazon Comprehend und Amazon Rekognition verwenden, um granulare Metadaten aus Ihren Medienressourcen zu extrahieren. Anschließend ordneten Sie die Assets mithilfe von CITM einer branchenüblichen Taxonomie zu, um programmatische Anzeigengebote für kontextbezogene Anzeigen zu erleichtern. Sie können dieses Framework auf andere Anwendungsfälle anwenden, die die Verwendung einer Standardtaxonomie erfordern, um den Wert bestehender Medienressourcen zu steigern.

Um mit CITM zu experimentieren, können Sie darauf zugreifen Code-Repository und verwenden Sie es mit einem Text- und Bilddatensatz Ihrer Wahl.

Wir empfehlen, mehr über die in diesem Beitrag vorgestellten Lösungskomponenten zu erfahren. Erfahren Sie mehr über AWS Media Intelligence um Metadaten aus Medieninhalten zu extrahieren. Erfahren Sie auch mehr über die Verwendung Hugging Face-Modelle für NLP mit Amazon SageMaker.


Über die Autoren

Erstellen Sie taxonomiebasiertes Kontext-Targeting mit AWS Media Intelligence und Hugging Face BERT PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Aramid Kehinde ist Sr. Partner Solution Architect bei AWS im Bereich maschinelles Lernen und KI. Ihre Karriere umfasste die Bereiche Business Intelligence und Advanced Analytics in mehreren Branchen. Sie arbeitet daran, Partner in die Lage zu versetzen, Lösungen mit AWS AI/ML-Services zu entwickeln, die den Kundenbedürfnissen nach Innovation entsprechen. Sie genießt es auch, die Schnittstelle zwischen KI und kreativen Arenen aufzubauen und Zeit mit ihrer Familie zu verbringen.

Erstellen Sie taxonomiebasiertes Kontext-Targeting mit AWS Media Intelligence und Hugging Face BERT PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Anuj Gupta ist ein Principal Solutions Architect, der mit stark wachsenden Unternehmen auf ihrer Cloud-nativen Reise zusammenarbeitet. Er setzt sich leidenschaftlich für den Einsatz von Technologie zur Lösung anspruchsvoller Probleme ein und hat mit Kunden zusammengearbeitet, um hochgradig verteilte Anwendungen mit geringer Latenz zu entwickeln. Er trägt zu serverlosen Open-Source- und maschinellen Lernlösungen bei. Außerhalb der Arbeit reist er gerne mit seiner Familie und schreibt Gedichte und philosophische Blogs.

Zeitstempel:

Mehr von AWS Maschinelles Lernen