Twórz targetowanie kontekstowe oparte na taksonomii za pomocą AWS Media Intelligence i Hugging Face BERT PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Twórz targetowanie kontekstowe oparte na taksonomii za pomocą AWS Media Intelligence i Hugging Face BERT

Wraz z wejściem w życie nowych przepisów dotyczących prywatności danych, takich jak RODO (ogólne rozporządzenie o ochronie danych, 2017), klienci są pod coraz większą presją, aby zarabiać na zasobach medialnych przy jednoczesnym przestrzeganiu nowych zasad. Zarabianie na mediach przy jednoczesnym poszanowaniu przepisów dotyczących prywatności wymaga możliwości automatycznego wyodrębniania szczegółowych metadanych z zasobów, takich jak tekst, obrazy, pliki wideo i audio na skalę internetową. Wymaga również skalowalnego sposobu mapowania zasobów medialnych do taksonomii branżowych, które ułatwiają odkrywanie i monetyzację treści. Ten przypadek użycia jest szczególnie istotny dla branży reklamowej, ponieważ zasady prywatności danych powodują odejście od targetowania behawioralnego z wykorzystaniem plików cookie stron trzecich.

Pliki cookie innych firm pomagają włączyć spersonalizowane reklamy dla użytkowników internetu i umożliwić reklamodawcom dotarcie do docelowych odbiorców. Tradycyjnym rozwiązaniem do wyświetlania reklam bez plików cookie stron trzecich jest reklama kontekstowa, która umieszcza reklamy na stronach internetowych na podstawie treści publikowanych na stronach. Jednak reklama kontekstowa stanowi wyzwanie polegające na wyodrębnieniu kontekstu z zasobów medialnych na dużą skalę, a także wykorzystaniu tego kontekstu do zarabiania na zasobach.

W tym poście omawiamy, w jaki sposób można zbudować rozwiązanie do uczenia maszynowego (ML), które nazywamy Contextual Intelligence Taxonomy Mapper (CITM), aby wyodrębnić kontekst z treści cyfrowych i zmapować go do standardowych taksonomii w celu wygenerowania wartości. Chociaż stosujemy to rozwiązanie do reklamy kontekstowej, możesz go używać do rozwiązywania innych przypadków użycia. Na przykład firmy zajmujące się technologiami edukacyjnymi mogą używać go do mapowania swoich treści do taksonomii branżowych w celu ułatwienia adaptacyjnego uczenia się, które zapewnia spersonalizowane doświadczenia edukacyjne oparte na indywidualnych potrzebach uczniów.

Omówienie rozwiązania

Rozwiązanie składa się z dwóch elementów: Analiza mediów AWS (AWS MI) możliwości ekstrakcji kontekstu z treści na stronach internetowych oraz CITM do inteligentnego mapowania treści do taksonomii branżowej. Możesz uzyskać dostęp do rozwiązania repozytorium kodu aby uzyskać szczegółowy obraz tego, jak wdrażamy jego komponenty.

Analiza mediów AWS

Możliwości AWS MI umożliwiają automatyczne wyodrębnianie metadanych, które zapewniają kontekstowe zrozumienie zawartości strony internetowej. Możesz łączyć techniki ML, takie jak widzenie komputerowe, mowa na tekst i przetwarzanie języka naturalnego (NLP), aby automatycznie generować metadane z tekstu, filmów, obrazów i plików audio do wykorzystania w dalszym przetwarzaniu. Zarządzane usługi AI, takie jak Amazon Rekognition, Amazon Transcribe, Amazon Comprehend, Ekstrakt z amazonki udostępnij te techniki ML za pomocą wywołań API. Eliminuje to narzuty potrzebne do trenowania i budowania modeli ML od podstaw. W tym poście zobaczysz, jak wykorzystanie Amazon Comprehend i Amazon Rekognition do analizy mediów umożliwia ekstrakcję metadanych na dużą skalę.

Maper taksonomii inteligencji kontekstowej

Po wyodrębnieniu metadanych z treści multimedialnych potrzebujesz sposobu na mapowanie tych metadanych do taksonomii branżowej, aby ułatwić kierowanie kontekstowe. Aby to zrobić, budujesz Contextual Intelligence Taxonomy Mapper (CITM), który jest zasilany przez transformator zdań BERT firmy Hugging Face.

Transformator zdań BERT umożliwia CITM kategoryzowanie treści internetowych za pomocą kontekstowo powiązanych słów kluczowych. Na przykład może kategoryzować artykuł internetowy na temat zdrowego stylu życia za pomocą słów kluczowych z taksonomii branżowej, takich jak „Zdrowe gotowanie i jedzenie”, „Bieganie i jogging” i nie tylko, na podstawie napisanego tekstu i obrazów użytych w artykule. CITM zapewnia również możliwość wyboru zmapowanych terminów taksonomii, które będą używane w procesie licytowania reklam na podstawie Twoich kryteriów.

Poniższy diagram ilustruje koncepcyjny widok architektury z CITM.

Taksonomia treści IAB (Interactive Advertising Bureau)

Do tego postu używamy Taksonomia treści IAB Tech Lab jako standardową taksonomię branżową dla przypadku użycia reklamy kontekstowej. Z założenia taksonomia IAB pomaga twórcom treści dokładniej opisywać ich treść i zapewnia wspólny język dla wszystkich stron w procesie reklamowania programatycznego. Użycie wspólnej terminologii ma kluczowe znaczenie, ponieważ wybór reklam dla odwiedzanej przez użytkownika strony musi nastąpić w ciągu milisekund. Taksonomia IAB służy jako ustandaryzowany sposób kategoryzowania treści z różnych źródeł, będąc jednocześnie protokołem branżowym używanym przez platformy do ustalania stawek w czasie rzeczywistym do wyboru reklam. Ma strukturę hierarchiczną, która zapewnia szczegółowość terminów taksonomicznych i rozszerzony kontekst dla reklamodawców.

Przepływ pracy rozwiązania

Poniższy schemat ilustruje przepływ pracy rozwiązania.

Przegląd rozwiązań CITM

Kroki są następujące:

  1. Usługa Amazon Simple Storage (Amazon S3) przechowuje taksonomię treści IAB i wyodrębnioną treść internetową.
  2. Amazon Comprehend przeprowadza modelowanie tematyczne w celu wyodrębnienia wspólnych tematów ze zbioru artykułów.
  3. Uznanie Amazonii API etykiet obiektów wykrywa etykiety na obrazach.
  4. CITM mapuje zawartość do standardowej taksonomii.
  5. Opcjonalnie możesz przechowywać zawartość do mapowania taksonomii w magazynie metadanych.

W kolejnych sekcjach szczegółowo omówimy każdy krok.

Amazon S3 przechowuje taksonomię treści IAB i wyodrębnione treści internetowe

Przechowujemy wyodrębniony tekst i obrazy z kolekcji artykułów internetowych w wiadrze S3. Przechowujemy również taksonomię treści IAB. W pierwszym kroku łączymy różne poziomy taksonomii, aby utworzyć połączone terminy taksonomii. Takie podejście pomaga zachować hierarchiczną strukturę taksonomii, gdy transformator zdań BERT tworzy osadzania dla każdego słowa kluczowego. Zobacz następujący kod:

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)

Poniższy diagram ilustruje taksonomię kontekstową IAB z połączonymi warstwami.

Taksonomia treści IAB z połączonymi warstwami

Amazon Comprehend przeprowadza modelowanie tematów, aby wyodrębnić wspólne tematy ze zbioru artykułów

Za pomocą interfejsu API modelowania tematów Amazon Comprehend analizujesz wszystkie teksty artykułów przy użyciu modelu Latent Dirichlet Allocation (LDA). Model analizuje każdy artykuł w korpusie i grupuje słowa kluczowe w ten sam temat na podstawie kontekstu i częstotliwości ich pojawiania się w całym zbiorze artykułów. Aby upewnić się, że model LDA wykrywa wysoce spójne tematy, przed wywołaniem API Amazon Comprehend wykonujesz etap wstępnego przetwarzania. Możesz użyć biblioteka gensim CoherenceModel do określenia optymalnej liczby tematów do wykrycia ze zbioru artykułów lub plików tekstowych. Zobacz następujący kod:

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)

Po uzyskaniu optymalnej liczby tematów używasz tej wartości do zadania modelowania tematów Amazon Comprehend. Dostarczanie różnych wartości dla parametru NumberOfTopics w Amazon Comprehend StartTematyWykrywanie Operacja zadania powoduje zmiany w rozkładzie słów kluczowych umieszczonych w każdej grupie tematycznej. Zoptymalizowana wartość parametru NumberOfTopics reprezentuje liczbę tematów, które zapewniają najbardziej spójne grupowanie słów kluczowych o wyższym znaczeniu kontekstowym. Możesz przechowywać dane wyjściowe modelowania tematu z Amazon Comprehend w jego surowym formacie w Amazon S3.

Interfejs API etykiet obiektów Amazon Rekognition wykrywa etykiety na obrazach

Analizujesz każdy obraz wyodrębniony ze wszystkich stron internetowych za pomocą Działanie Amazon Rekognition DetectLabels. Dla każdego obrazu operacja zapewnia odpowiedź JSON ze wszystkimi etykietami wykrytymi w obrazie, w połączeniu z oceną ufności dla każdego z nich. W naszym przypadku użycia arbitralnie wybieramy wynik ufności wynoszący 60% lub wyższy jako próg dla etykiet obiektów do użycia w następnym kroku. Przechowujesz etykiety obiektów w ich surowym formacie w Amazon S3. Zobacz następujący kod:

"""
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 mapuje zawartość do standardowej taksonomii

CITM porównuje wyodrębnione metadane treści (tematy z tekstu i etykiety z obrazów) ze słowami kluczowymi w taksonomii IAB, a następnie mapuje metadane treści do słów kluczowych z taksonomii, które są ze sobą powiązane semantycznie. W tym celu CITM wykonuje następujące trzy kroki:

  1. Generuj osadzania neuronowe dla taksonomii treści, słów kluczowych tematów i etykiet obrazów za pomocą transformatora zdań BERT firmy Hugging Face. Dostęp do modelu transformatora zdań uzyskujemy z Amazon Sage Maker. W tym poście używamy parafraza-MiniLM-L6-v2 model, który odwzorowuje słowa kluczowe i etykiety na 384-wymiarową gęstą przestrzeń wektorową.
  2. Oblicz wynik podobieństwa cosinusów między słowami kluczowymi taksonomii a słowami kluczowymi tematycznymi, korzystając z ich osadzeń. Oblicza również podobieństwo cosinusowe między słowami kluczowymi taksonomii a etykietami obiektów obrazu. Używamy podobieństwa kosinusowego jako mechanizmu punktacji, aby znaleźć semantycznie podobne dopasowania między metadanymi treści a taksonomią. Zobacz następujący kod:
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. Zidentyfikuj pary z wynikami podobieństwa, które przekraczają próg zdefiniowany przez użytkownika, i użyj ich do odwzorowania treści na powiązane semantycznie słowa kluczowe w taksonomii treści. W naszym teście wybieramy wszystkie słowa kluczowe z par, które mają cosinusowy wynik podobieństwa równy co najmniej 0.5. Zobacz następujący kod:
#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]:

Częstym wyzwaniem podczas pracy z reprezentacją języka w skali internetowej (na przykład w tym przypadku użycia) jest to, że potrzebny jest model, który może pasować do większości treści — w tym przypadku słów w języku angielskim. Transformator BERT Hugging Face został wstępnie przeszkolony przy użyciu dużego zbioru postów z Wikipedii w języku angielskim, aby przedstawić semantyczne znaczenie słów w odniesieniu do siebie. Dostrajasz wstępnie wytrenowany model za pomocą określonego zestawu danych zawierającego słowa kluczowe tematyczne, etykiety obrazów i słowa kluczowe taksonomii. Kiedy umieścisz wszystkie osadzania w tej samej przestrzeni funkcji i zwizualizujesz je, zobaczysz, że BERT logicznie reprezentuje semantyczne podobieństwo między terminami.

Poniższy przykład wizualizuje słowa kluczowe taksonomii treści IAB dla klasy Automotive reprezentowane jako wektory przy użyciu BERT. BERT umieszcza słowa kluczowe Automotive z taksonomii blisko podobnych semantycznie terminów.

Wizualizacja osadzeń BERT dla słów kluczowych taksonomii

Wektory cech umożliwiają CITM porównywanie etykiet metadanych i słów kluczowych taksonomii w tej samej przestrzeni cech. W tej przestrzeni cech CITM oblicza podobieństwo cosinusów między każdym wektorem cech dla słów kluczowych taksonomii i każdym wektorem cech dla słów kluczowych tematu. W osobnym kroku CITM porównuje wektory cech taksonomii i wektory cech dla etykiet obrazów. Pary z wynikami cosinus najbliższymi 1 są identyfikowane jako semantycznie podobne. Zwróć uwagę, że połączenie może być albo słowem kluczowym tematu i słowem kluczowym taksonomii, albo etykietą obiektu i słowem kluczowym taksonomii.

Poniższy zrzut ekranu przedstawia przykładowe pary słów kluczowych tematów i słów kluczowych taksonomii przy użyciu podobieństwa cosinus obliczonego za pomocą osadzania BERT.

Temat do parowania słów kluczowych w taksonomii

Aby odwzorować treść na słowa kluczowe taksonomii, CITM wybiera słowa kluczowe z par z wynikami cosinusowymi, które spełniają próg zdefiniowany przez użytkownika. Są to słowa kluczowe, które będą używane na platformach do ustalania stawek w czasie rzeczywistym do wybierania reklam do zasobów witryny. Rezultatem jest bogate mapowanie treści online do taksonomii.

Opcjonalnie przechowuj zawartość do mapowania taksonomii w magazynie metadanych

Gdy zidentyfikujesz kontekstowo podobne terminy taksonomiczne z CITM, potrzebujesz sposobu, aby interfejsy API o niskim opóźnieniu mogły uzyskać dostęp do tych informacji. W zautomatyzowanym licytowaniu reklam, krótki czas odpowiedzi i wysoka współbieżność odgrywają ważną rolę w zarabianiu na treści. Schemat magazynu danych musi być elastyczny, aby pomieścić dodatkowe metadane w razie potrzeby wzbogacenia zapytań ofertowych. Amazon DynamoDB może dopasować wzorce dostępu do danych i wymagania operacyjne dla takiej usługi.

Wnioski

W tym poście dowiedziałeś się, jak zbudować oparte na taksonomii rozwiązanie do kierowania kontekstowego przy użyciu narzędzia Contextual Intelligence Taxonomy Mapper (CITM). Dowiedziałeś się, jak używać Amazon Comprehend i Amazon Rekognition do wyodrębniania szczegółowych metadanych z zasobów multimedialnych. Następnie za pomocą CITM zmapowałeś zasoby do standardowej taksonomii branżowej, aby ułatwić zautomatyzowane określanie stawek dla reklam powiązanych kontekstowo. Możesz zastosować te ramy do innych przypadków użycia, które wymagają użycia standardowej taksonomii w celu zwiększenia wartości istniejących zasobów multimedialnych.

Aby poeksperymentować z CITM, możesz uzyskać dostęp do jego repozytorium kodu i użyj go z wybranym zestawem danych tekstowych i graficznych.

Zalecamy zapoznanie się z komponentami rozwiązania przedstawionymi w tym poście. Dowiedz się więcej o Analiza mediów AWS do wyodrębniania metadanych z treści multimedialnych. Dowiedz się również więcej o tym, jak używać Modele Hugging Face dla NLP przy użyciu Amazon SageMaker.


O autorach

Twórz targetowanie kontekstowe oparte na taksonomii za pomocą AWS Media Intelligence i Hugging Face BERT PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.aramidowy kehinde jest starszym architektem rozwiązań partnerskich w AWS w dziedzinie uczenia maszynowego i sztucznej inteligencji. Jej kariera obejmowała obszary Business Intelligence i Advanced Analytics w wielu branżach. Pracuje, aby umożliwić partnerom tworzenie rozwiązań z usługami AWS AI/ML, które zaspokajają potrzeby klientów w zakresie innowacji. Lubi też budować skrzyżowanie AI i kreatywnych aren oraz spędzać czas z rodziną.

Twórz targetowanie kontekstowe oparte na taksonomii za pomocą AWS Media Intelligence i Hugging Face BERT PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Anuj Gupta jest głównym architektem rozwiązań współpracującym z firmami hiperrozwojowymi w ich natywnej podróży do chmury. Pasjonuje go wykorzystywanie technologii do rozwiązywania trudnych problemów i współpracował z klientami przy tworzeniu aplikacji o dużej dystrybucji i niskich opóźnieniach. Wnosi wkład w rozwiązania typu open source Serverless i Machine Learning. Poza pracą uwielbia podróżować z rodziną oraz pisać wiersze i blogi filozoficzne.

Znak czasu:

Więcej z Uczenie maszynowe AWS