Zgradite kontekstualno ciljanje na podlagi taksonomije z uporabo AWS Media Intelligence in Hugging Face BERT PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Zgradite kontekstualno ciljanje na podlagi taksonomije z uporabo AWS Media Intelligence in Hugging Face BERT

Ko so začeli veljati novi predpisi o zasebnosti podatkov, kot je GDPR (Splošna uredba o varstvu podatkov, 2017), so stranke pod večjim pritiskom, da monetizirajo medijska sredstva ob spoštovanju novih pravil. Monetizacija medijev ob spoštovanju predpisov o zasebnosti zahteva zmožnost samodejnega ekstrahiranja zdrobljenih metapodatkov iz sredstev, kot so besedilo, slike, video in zvočne datoteke, v internetnem merilu. Potrebuje tudi razširljiv način za preslikavo medijskih sredstev v taksonomije industrije, ki olajša odkrivanje in monetizacijo vsebine. Ta primer uporabe je še posebej pomemben za oglaševalsko industrijo, saj pravila o zasebnosti podatkov povzročajo premik od vedenjskega ciljanja z uporabo piškotkov tretjih oseb.

Piškotki tretjih oseb pomagajo omogočiti prilagojene oglase za spletne uporabnike in omogočijo oglaševalcem, da dosežejo ciljno občinstvo. Tradicionalna rešitev za prikazovanje oglasov brez piškotkov tretjih oseb je kontekstualno oglaševanje, ki umešča oglase na spletne strani glede na vsebino, objavljeno na straneh. Vendar kontekstualno oglaševanje predstavlja izziv pridobivanja konteksta iz medijskih sredstev v velikem obsegu in uporabe tega konteksta za monetizacijo sredstev.

V tej objavi razpravljamo o tem, kako lahko zgradite rešitev strojnega učenja (ML), ki jo imenujemo Contextual Intelligence Taxonomy Mapper (CITM), da iz digitalne vsebine izvlečete kontekst in ga preslikate v standardne taksonomije, da ustvarite vrednost. Čeprav to rešitev uporabljamo za kontekstualno oglaševanje, jo lahko uporabite za reševanje drugih primerov uporabe. Podjetja, ki se ukvarjajo z izobraževalno tehnologijo, jo lahko na primer uporabijo za preslikavo svoje vsebine v taksonomije industrije, da olajšajo prilagodljivo učenje, ki zagotavlja prilagojene učne izkušnje na podlagi individualnih potreb študentov.

Pregled rešitev

Rešitev je sestavljena iz dveh komponent: AWS Media Intelligence (AWS MI) zmogljivosti za ekstrakcijo konteksta iz vsebine na spletnih straneh in CITM za inteligentno preslikavo vsebine v taksonomijo industrije. Lahko dostopate do rešitev skladišče kode za podroben vpogled v to, kako izvajamo njegove komponente.

AWS Media Intelligence

Zmogljivosti AWS MI omogočajo samodejno pridobivanje metapodatkov, ki zagotavljajo kontekstualno razumevanje vsebine spletne strani. Kombinirate lahko tehnike ML, kot so računalniški vid, govor v besedilo in obdelava naravnega jezika (NLP), da samodejno ustvarite metapodatke iz besedila, videoposnetkov, slik in zvočnih datotek za uporabo v nadaljnji obdelavi. Upravljane storitve AI, kot je npr Amazonsko ponovno vžiganje, Amazonski prepis, Amazonsko razumevanjein Amazonovo besedilo narediti te tehnike ML dostopne s klici API-ja. To odpravlja režijske stroške, potrebne za usposabljanje in izdelavo modelov ML iz nič. V tej objavi vidite, kako uporaba Amazon Comprehend in Amazon Rekognition za medijsko obveščanje omogoča pridobivanje metapodatkov v velikem obsegu.

Kartograf taksonomije kontekstne inteligence

Ko iz medijske vsebine izvlečete metapodatke, potrebujete način za preslikavo teh metapodatkov v taksonomijo panoge, da olajšate kontekstualno ciljanje. Če želite to narediti, zgradite Contextual Intelligence Taxonomy Mapper (CITM), ki ga poganja pretvornik stavkov BERT podjetja Hugging Face.

Pretvornik stavkov BERT omogoča CITM kategorizacijo spletne vsebine s kontekstualno povezanimi ključnimi besedami. Spletni članek o zdravem življenju lahko na primer kategorizira s ključnimi besedami iz panožne taksonomije, kot so »Zdravo kuhanje in prehranjevanje«, »Tek in tek« in več, na podlagi napisanega besedila in slik, uporabljenih v članku. CITM ponuja tudi možnost izbire preslikanih taksonomskih izrazov, ki jih boste uporabili za postopek zbiranja oglasov na podlagi vaših meril.

Naslednji diagram ponazarja konceptualni pogled na arhitekturo s CITM.

Taksonomija vsebine IAB (Interactive Advertising Bureau).

Za to objavo uporabljamo Taksonomija vsebin IAB Tech Lab kot industrijsko standardno taksonomijo za kontekstno oglaševanje. Taksonomija IAB po zasnovi pomaga ustvarjalcem vsebin natančneje opisati njihovo vsebino in zagotavlja skupni jezik za vse strani v procesu programskega oglaševanja. Uporaba skupne terminologije je ključnega pomena, saj se mora izbor oglasov za spletno stran, ki jo uporabnik obišče, zgoditi v milisekundah. Taksonomija IAB služi kot standardiziran način za kategoriziranje vsebine iz različnih virov, hkrati pa je industrijski protokol, ki ga platforme za ponudbe v realnem času uporabljajo za izbiro oglasov. Ima hierarhično strukturo, ki zagotavlja razdrobljenost taksonomskih izrazov in izboljšan kontekst za oglaševalce.

Potek dela rešitve

Naslednji diagram prikazuje potek dela rešitve.

Pregled rešitve CITM

Koraki so naslednji:

  1. Preprosta storitev shranjevanja Amazon (Amazon S3) shranjuje taksonomijo vsebine IAB in izvlečeno spletno vsebino.
  2. Amazon Comprehend izvaja modeliranje tem, da iz zbirke člankov izlušči pogoste teme.
  3. Amazonsko priznanje API oznake objekta zazna oznake na slikah.
  4. CITM preslika vsebino v standardno taksonomijo.
  5. Po želji lahko shranite vsebino za preslikavo taksonomije v shrambi metapodatkov.

V naslednjih razdelkih se podrobno sprehodimo skozi vsak korak.

Amazon S3 shranjuje taksonomijo vsebin IAB in izvlečeno spletno vsebino

Izvlečeno besedilo in slike iz zbirke spletnih člankov shranjujemo v vedro S3. Hranimo tudi taksonomijo vsebine IAB. Kot prvi korak združimo različne stopnje taksonomije, da ustvarimo kombinirane termine taksonomije. Ta pristop pomaga ohranjati hierarhično strukturo taksonomije, ko pretvornik stavkov BERT ustvari vdelave za vsako ključno besedo. Oglejte si naslednjo kodo:

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)

Naslednji diagram ponazarja taksonomijo konteksta IAB s kombiniranimi plastmi.

Taksonomija vsebine IAB s povezanimi plastmi

Amazon Comprehend izvaja modeliranje tem, da iz zbirke člankov izlušči pogoste teme

Z API-jem za modeliranje tem Amazon Comprehend analizirate vsa besedila člankov z uporabo modela Latent Dirichlet Allocation (LDA). Model pregleda vsak članek v korpusu in združi ključne besede v isto temo glede na kontekst in pogostost, v kateri se pojavljajo v celotni zbirki člankov. Da zagotovite, da model LDA zazna zelo koherentne teme, izvedete korak predprocesiranja, preden pokličete Amazon Comprehend API. Lahko uporabite knjižnica gensim CoherenceModel za določitev optimalnega števila tem za zaznavanje iz zbirke člankov ali besedilnih datotek. Oglejte si naslednjo kodo:

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)

Ko dobite optimalno število tem, to vrednost uporabite za nalogo modeliranja teme Amazon Comprehend. Zagotavljanje različnih vrednosti za parameter NumberOfTopics v Amazon Comprehend Operacija StartTopicsDetectionJob povzroči variacijo v porazdelitvi ključnih besed v vsaki skupini tem. Optimizirana vrednost za parameter NumberOfTopics predstavlja število tem, ki zagotavljajo najbolj skladno skupino ključnih besed z večjo kontekstualno ustreznostjo. Izhod modeliranja teme iz Amazon Comprehend lahko shranite v neobdelani obliki v Amazon S3.

API za oznake predmetov Amazon Rekognition zazna oznake na slikah

Vsako sliko, izvlečeno iz vseh spletnih strani, analizirate z uporabo Operacija Amazon Rekognition DetectLabels. Za vsako sliko operacija zagotovi odziv JSON z vsemi oznakami, zaznanimi v sliki, skupaj z oceno zaupanja za vsako. Za naš primer uporabe poljubno izberemo oceno zaupanja 60 % ali več kot prag za oznake predmetov, ki jih bomo uporabili v naslednjem koraku. Oznake predmetov shranjujete v njihovi surovi obliki v Amazon S3. Oglejte si naslednjo kodo:

"""
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 preslika vsebino v standardno taksonomijo

CITM primerja izvlečene metapodatke vsebine (teme iz besedila in oznake iz slik) s ključnimi besedami v taksonomiji IAB in nato preslika metapodatke vsebine v ključne besede iz taksonomije, ki so pomensko povezane. Za to nalogo CITM opravi naslednje tri korake:

  1. Ustvarite nevronske vdelave za taksonomijo vsebine, ključne besede tem in oznake slik z uporabo pretvornika stavkov BERT Hugging Face. Dostopamo do modela transformatorja stavkov iz Amazon SageMaker. V tej objavi uporabljamo parafraza-MiniLM-L6-v2 model, ki ključne besede in oznake preslika v 384-dimenzionalni zgoščeni vektorski prostor.
  2. Izračunajte rezultat kosinusne podobnosti med ključnimi besedami taksonomije in ključnimi besedami teme z uporabo njihovih vdelav. Izračuna tudi kosinusno podobnost med ključnimi besedami taksonomije in oznakami slikovnih objektov. Kosinusno podobnost uporabljamo kot mehanizem točkovanja za iskanje pomensko podobnih ujemanj med metapodatki vsebine in taksonomijo. Oglejte si naslednjo kodo:
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. Identificirajte pare z rezultati podobnosti, ki so nad uporabniško določenim pragom, in jih uporabite za preslikavo vsebine v pomensko povezane ključne besede v taksonomiji vsebine. V našem preizkusu izberemo vse ključne besede iz parov, ki imajo oceno kosinusne podobnosti 0.5 ali več. Oglejte si naslednjo kodo:
#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]:

Pogost izziv pri delu z jezikovno predstavitvijo v internetnem merilu (kot je v tem primeru uporabe) je, da potrebujete model, ki se lahko prilega večini vsebine – v tem primeru besedam v angleškem jeziku. Transformator BERT podjetja Hugging Face je bil predhodno usposobljen z uporabo velikega korpusa objav Wikipedije v angleškem jeziku, da predstavlja semantični pomen besed v medsebojni povezavi. Vnaprej usposobljeni model natančno prilagodite z uporabo svojega specifičnega nabora podatkov o ključnih besedah ​​teme, oznak slik in taksonomskih ključnih besed. Ko postavite vse vdelave v isti prostor funkcij in jih vizualizirate, vidite, da BERT logično predstavlja semantično podobnost med izrazi.

Naslednji primer vizualizira ključne besede taksonomije vsebine IAB za razred Automotive, predstavljene kot vektorji z uporabo BERT. BERT uvršča avtomobilske ključne besede iz taksonomije blizu pomensko podobnih izrazov.

Vizualizacija vdelav BERT za ključne besede taksonomije

Vektorji funkcij omogočajo CITM primerjavo oznak metapodatkov in ključnih besed taksonomije v istem prostoru funkcij. V tem prostoru funkcij CITM izračuna podobnost kosinusa med vsakim vektorjem značilnosti za ključne besede taksonomije in vsakim vektorjem značilnosti za ključne besede teme. V ločenem koraku CITM primerja vektorje značilnosti taksonomije in vektorje značilnosti za oznake slik. Pari s kosinusnimi rezultati, ki so najbližji 1, so prepoznani kot pomensko podobni. Upoštevajte, da je par lahko ključna beseda teme in taksonomska ključna beseda ali oznaka predmeta in taksonomska ključna beseda.

Naslednji posnetek zaslona prikazuje primere parov tematskih ključnih besed in taksonomskih ključnih besed z uporabo kosinusne podobnosti, izračunane z vdelavami BERT.

Pari ključnih besed med temo in taksonomijo

Za preslikavo vsebine v ključne besede taksonomije CITM izbere ključne besede iz parov s kosinusnimi rezultati, ki ustrezajo pragu, ki ga določi uporabnik. To so ključne besede, ki bodo uporabljene na platformah za ponudbe v realnem času za izbiro oglasov za inventar spletne strani. Rezultat je bogato preslikavo spletne vsebine v taksonomijo.

Izbirno shranite vsebino za preslikavo taksonomije v shrambo metapodatkov

Ko identificirate kontekstualno podobne taksonomske izraze iz CITM, potrebujete način za API-je z nizko zakasnitvijo za dostop do teh informacij. Pri programskem ponujanju za oglase imata kratek odzivni čas in visoka sočasnost pomembno vlogo pri monetizaciji vsebine. Shema za shrambo podatkov mora biti prilagodljiva, da lahko sprejme dodatne metapodatke, kadar so potrebni za obogatitev zahtevkov za ponudbe. Amazon DynamoDB lahko ustreza vzorcem dostopa do podatkov in operativnim zahtevam za takšno storitev.

zaključek

V tej objavi ste se naučili, kako zgraditi rešitev za kontekstualno ciljanje, ki temelji na taksonomiji, z uporabo Contextual Intelligence Taxonomy Mapper (CITM). Naučili ste se uporabljati Amazon Comprehend in Amazon Rekognition za ekstrahiranje zrnatih metapodatkov iz vaših medijskih sredstev. Nato ste z uporabo CITM preslikali sredstva v standardno panožno taksonomijo, da bi olajšali ponujanje programskih oglasov za kontekstualno povezane oglase. To ogrodje lahko uporabite za druge primere uporabe, ki zahtevajo uporabo standardne taksonomije za povečanje vrednosti obstoječih medijskih sredstev.

Če želite eksperimentirati s CITM, lahko dostopate do njega skladišče kode in ga uporabite z naborom besedilnih in slikovnih podatkov po vaši izbiri.

Priporočamo, da izveste več o komponentah rešitve, predstavljenih v tej objavi. Odkrijte več o AWS Media Intelligence za pridobivanje metapodatkov iz medijske vsebine. Izvedite tudi več o uporabi Modeli objemajočih se obrazov za NLP z uporabo Amazon SageMaker.


O avtorjih

Zgradite kontekstualno ciljanje na podlagi taksonomije z uporabo AWS Media Intelligence in Hugging Face BERT PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Aramid Kehinde je starejši arhitekt partnerskih rešitev pri AWS na področju strojnega učenja in umetne inteligence. Njena karierna pot je zajemala področja poslovne inteligence in napredne analitike v več panogah. Dela, da bi partnerjem omogočila izgradnjo rešitev s storitvami AWS AI/ML, ki izpolnjujejo potrebe strank po inovacijah. Uživa tudi v gradnji presečišča umetne inteligence in ustvarjalnih prizorišč ter preživlja čas s svojo družino.

Zgradite kontekstualno ciljanje na podlagi taksonomije z uporabo AWS Media Intelligence in Hugging Face BERT PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.Anuj Gupta je glavni arhitekt rešitev, ki sodeluje s hitro rastočimi podjetji na njihovi domači poti v oblaku. Navdušen je nad uporabo tehnologije za reševanje zahtevnih problemov in je sodeloval s strankami pri izdelavi visoko porazdeljenih aplikacij z nizko zakasnitvijo. Prispeva k odprtokodnim rešitvam brez strežnikov in strojnega učenja. Zunaj dela rad potuje z družino ter piše pesmi in filozofske bloge.

Časovni žig:

Več od Strojno učenje AWS