Looge taksonoomiapõhine kontekstuaalne sihtimine, kasutades AWS Media Intelligence'i ja Hugging Face BERT PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Looge taksonoomiapõhine kontekstuaalne sihtimine, kasutades AWS Media Intelligence'i ja Hugging Face BERTi

Kuna uued andmekaitsemäärused, nagu GDPR (General Data Protection Regulation, 2017), on jõustunud, on klientidel suurem surve meediavarade monetiseerimiseks, järgides samal ajal uusi eeskirju. Meedia monetiseerimine privaatsuseeskirjadest kinni pidades nõuab võimalust automaatselt eraldada üksikasjalikud metaandmed sellistest varadest nagu tekst, pildid, videod ja helifailid Internetis. See nõuab ka skaleeritavat viisi meediavarade vastendamiseks tööstuse taksonoomiatega, mis hõlbustavad sisu avastamist ja monetiseerimist. See kasutusjuhtum on eriti oluline reklaamitööstuse jaoks, kuna andmete privaatsusreeglid põhjustavad nihke käitumispõhiselt sihtimiselt, kasutades kolmandate osapoolte küpsiseid.

Kolmanda osapoole küpsised aidata võimaldada veebikasutajate jaoks isikupärastatud reklaame ja võimaldada reklaamijatel jõuda nende sihtrühmani. Traditsiooniline lahendus reklaamide esitamiseks ilma kolmandate osapoolte küpsisteta on kontekstuaalne reklaam, mis paigutab veebilehtedele reklaame lehtedel avaldatud sisu alusel. Kontekstuaalne reklaam esitab aga väljakutse meediavaradest ulatuslikult konteksti eraldamiseks ja samamoodi selle konteksti kasutamiseks varade monetiseerimiseks.

Selles postituses arutleme, kuidas saate luua masinõppe (ML) lahenduse, mida kutsume kontekstuaalse luure taksonoomia kaardistamiseks (CITM), et eraldada digitaalsest sisust kontekst ja kaardistada see väärtuse loomiseks standardsete taksonoomiatega. Kuigi me rakendame seda lahendust kontekstuaalsele reklaamile, saate seda kasutada muude kasutusjuhtude lahendamiseks. Näiteks saavad haridustehnoloogia ettevõtted seda kasutada oma sisu kaardistamiseks tööstuse taksonoomiatega, et hõlbustada adaptiivset õppimist, mis pakub õpilaste individuaalsetest vajadustest lähtuvaid isikupärastatud õppimiskogemusi.

Lahenduse ülevaade

Lahendus koosneb kahest komponendist: AWS Media Intelligence (AWS MI) võimalused veebilehtede sisust konteksti eraldamiseks ja CITM sisu intelligentseks kaardistamiseks tööstuse taksonoomiaga. Saate juurdepääsu lahendusele koodihoidla üksikasjaliku ülevaate saamiseks selle komponentide rakendamisest.

AWS Media Intelligence

AWS MI võimalused võimaldavad metaandmete automaatset ekstraktimist, mis annab veebilehe sisu kontekstipõhise mõistmise. Saate kombineerida ML-tehnikaid, nagu arvutinägemine, kõne tekstiks ja loomuliku keele töötlemine (NLP), et automaatselt genereerida tekstist, videotest, piltidest ja helifailidest metaandmeid, mida kasutatakse järgnevas töötlemises. Hallatavad AI-teenused nagu Amazon Rekognitsioon, Amazoni transkribeerimine, Amazoni mõistmineja Amazoni tekst muuta need ML-tehnikad API-kutsete abil juurdepääsetavaks. See välistab ML-mudelite nullist koolitamiseks ja ehitamiseks vajalikud üldkulud. Selles postituses näete, kuidas Amazon Comprehendi ja Amazon Rekognitioni kasutamine meedia luureks võimaldab metaandmete ulatuslikku ekstraheerimist.

Kontekstuaalse intelligentsuse taksonoomia kaardistaja

Pärast metaandmete eraldamist meediumisisust on teil vaja viisi, kuidas need metaandmed valdkonna taksonoomiaga seostada, et hõlbustada kontekstipõhist sihtimist. Selleks loote kontekstuaalse intelligentsuse taksonoomia kaardistamise (CITM), mille toiteallikaks on Hugging Face'i BERT-i lausemuundur.

BERT-i lausemuundur võimaldab CITM-il kategoriseerida veebisisu kontekstuaalselt seotud märksõnadega. Näiteks võib see kategoriseerida tervislikku eluviisi käsitleva veebiartikli tööstuse taksonoomia märksõnadega, nagu „Tervislik toiduvalmistamine ja söömine”, „Jooksmine ja sörkimine” ja palju muud, lähtudes artiklis kirjutatud tekstist ja kasutatud piltidest. CITM pakub ka võimalust valida oma kriteeriumide põhjal kaardistatud taksonoomia termineid, mida reklaami pakkumisprotsessis kasutada.

Järgmine diagramm illustreerib CITM-i arhitektuuri kontseptuaalset vaadet.

IAB (Interactive Advertising Bureau) sisu taksonoomia

Selle postituse jaoks kasutame IAB Tech Labi sisu taksonoomia kui tööstusharu standardne taksonoomia kontekstuaalse reklaami kasutamise puhul. IAB taksonoomia aitab sisuloojatel oma sisu täpsemalt kirjeldada ja pakub programmilise reklaamimise protsessi kõikidele osapooltele ühist keelt. Ühise terminoloogia kasutamine on ülioluline, sest kasutaja külastatava veebilehe reklaamide valimine peab toimuma millisekundite jooksul. IAB taksonoomia on standardiseeritud viis erinevatest allikatest pärit sisu kategoriseerimiseks, olles samas valdkonna protokoll, mida reaalajas pakkumisplatvormid kasutavad reklaamide valimiseks. Sellel on hierarhiline struktuur, mis pakub reklaamijatele taksonoomiaterminite detailsust ja täiustatud konteksti.

Lahenduse töövoog

Järgmine diagramm illustreerib lahenduse töövoogu.

CITM-i lahenduse ülevaade

Sammud on järgmised:

  1. Amazoni lihtne salvestusteenus (Amazon S3) salvestab IAB sisu taksonoomia ja ekstraheeritud veebisisu.
  2. Amazon Comprehend teostab teemade modelleerimist, et saada artiklikogust levinud teemad.
  3. Amazoni äratundmine objekti sildi API tuvastab piltidel sildid.
  4. CITM kaardistab sisu standardse taksonoomiaga.
  5. Soovi korral saate metaandmete poodi salvestada sisu taksonoomia kaardistamiseks.

Järgmistes osades käsitleme iga sammu üksikasjalikult.

Amazon S3 salvestab IAB sisu taksonoomia ja ekstraheeritud veebisisu

Talletame veebiartiklite kogust ekstraheeritud teksti ja pilte S3 ämbrisse. Samuti salvestame IAB sisu taksonoomia. Esimese sammuna ühendame taksonoomia erinevad tasemed, et luua kombineeritud taksonoomiaterminid. See lähenemisviis aitab säilitada taksonoomia hierarhilist struktuuri, kui BERT-i lausemuundur loob iga märksõna jaoks manuseid. Vaadake järgmist koodi:

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)

Järgmine diagramm illustreerib IAB konteksti taksonoomiat kombineeritud tasanditega.

IAB sisu taksonoomia ühendatud tasanditega

Amazon Comprehend teostab teemade modelleerimist, et saada artiklikogust levinud teemad

Amazon Comprehendi teemade modelleerimise API abil analüüsite kõiki artiklitekste, kasutades Latent Dirichlet Allocation (LDA) mudelit. Mudel uurib iga korpuse artiklit ja rühmitab märksõnad samasse teemasse, lähtudes nende esinemise kontekstist ja sagedusest kogu artiklikogus. Tagamaks, et LDA mudel tuvastab väga sidusad teemad, sooritate enne Amazon Comprehend API kutsumist eeltöötlusetapi. Võite kasutada gensim raamatukogu CoherenceModel, et määrata artiklite või tekstifailide kogust tuvastatavate teemade optimaalne arv. Vaadake järgmist koodi:

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)

Kui olete saanud optimaalse arvu teemasid, kasutate seda väärtust Amazon Comprehendi teemade modelleerimise töö jaoks. Erinevate väärtuste pakkumine parameetri NumberOfTopics jaoks rakenduses Amazon Comprehend StartTeemadTuvastamineTöö toiming tulemuseks on varieerumine igasse teemarühma paigutatud märksõnade jaotuses. Parameetri NumberOfTopics optimeeritud väärtus tähistab teemade arvu, mis pakuvad kõige sidusamat märksõnade rühmitamist ja suurema kontekstuaalse asjakohasusega. Saate Amazon Comprehendi teemamodelleerimise väljundi toorvormingus Amazon S3-s salvestada.

Amazon Rekognitioni objektisildi API tuvastab piltidel sildid

Analüüsite iga pilti, mis on eraldatud kõigilt veebilehtedelt, kasutades Amazon Rekognition DetectLabelsi toiming. Iga pildi puhul annab toiming JSON-vastuse koos kõigi pildil tuvastatud siltidega, millele on lisatud igaühe usaldusskoor. Meie kasutusjuhtumi puhul valime järgmises etapis kasutatavate objektisiltide läveks meelevaldselt usaldusskoori 60% või rohkem. Objektisildid salvestatakse Amazon S3-s nende töötlemata kujul. Vaadake järgmist koodi:

"""
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 kaardistab sisu standardse taksonoomiaga

CITM võrdleb eraldatud sisu metaandmeid (teemad tekstist ja sildid piltidelt) IAB taksonoomia märksõnadega ja seejärel vastendab sisu metaandmed semantiliselt seotud taksonoomia märksõnadega. Selle ülesande jaoks teeb CITM järgmised kolm sammu:

  1. Looge Hugging Face'i BERT-lausemuunduri abil sisu taksonoomia, teemade märksõnade ja pildisiltide jaoks närvimanustused. Saame juurdepääsu lausetrafo mudelile aadressilt Amazon SageMaker. Selles postituses kasutame parafraas-MiniLM-L6-v2 mudel, mis kaardistab märksõnad ja sildid 384-mõõtmelisse tihedasse vektorruumi.
  2. Arvutage taksonoomia märksõnade ja teema märksõnade koosinussarnasuse skoor, kasutades nende manuseid. Samuti arvutab see taksonoomia märksõnade ja pildiobjekti siltide koosinussarnasuse. Kasutame koosinussarnasust hindamismehhanismina, et leida semantiliselt sarnaseid vasteid sisu metaandmete ja taksonoomia vahel. Vaadake järgmist koodi:
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. Tuvastage sarnasusskooridega paarid, mis on üle kasutaja määratud läve, ja kasutage neid sisu vastendamiseks sisu taksonoomias semantiliselt seotud märksõnadega. Meie testis valime kõik märksõnad paaridest, mille koosinussarnasuse skoor on 0.5 või kõrgem. Vaadake järgmist koodi:
#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]:

Interneti-mastaabis keeleesitlusega töötamisel (nagu see kasutusjuhtum) on tavaline väljakutse see, et vajate mudelit, mis mahutaks suurema osa sisust – antud juhul ingliskeelsete sõnadega. Hugging Face'i BERT-trafot on eelkoolitatud, kasutades suurt ingliskeelsete Vikipeedia postituste korpust, et esindada sõnade semantilist tähendust üksteise suhtes. Te viimistlete eelkoolitatud mudelit, kasutades oma konkreetset teema märksõnade, pildisiltide ja taksonoomia märksõnade andmekogumit. Kui asetate kõik manused samasse funktsiooniruumi ja visualiseerite need, näete, et BERT esindab loogiliselt terminite semantilist sarnasust.

Järgmine näide visualiseerib IAB sisu taksonoomia märksõnu klassi Automotive jaoks, mis on esitatud BERT-i kasutades vektoritena. BERT asetab taksonoomiast pärit autotööstuse märksõnad semantiliselt sarnaste terminite lähedusse.

BERT-i manustamiste visualiseerimine taksonoomia märksõnade jaoks

Funktsioonivektorid võimaldavad CITM-il võrrelda metaandmete silte ja taksonoomia märksõnu samas funktsiooniruumis. Selles funktsiooniruumis arvutab CITM taksonoomia märksõnade iga tunnusvektori ja teema märksõnade funktsioonivektori koosinussarnasuse. Eraldi etapis võrdleb CITM taksonoomia funktsioonivektoreid ja kujutise siltide vektoreid. Paarid koosinusskooridega, mis on kõige lähemal 1-le, on semantiliselt sarnased. Pange tähele, et sidumine võib olla kas teema märksõna ja taksonoomia märksõna või objekti silt ja taksonoomia märksõna.

Järgmisel ekraanipildil on näide teema- ja taksonoomia märksõnade paaridest, kasutades koosinussarnasust, mis on arvutatud BERT-i manustega.

Teema ja taksonoomia märksõnade paarid

Sisu vastendamiseks taksonoomia märksõnadega valib CITM märksõnad paaridest koosinusskooridega, mis vastavad kasutaja määratud lävele. Need on märksõnad, mida kasutatakse reaalajas pakkumisplatvormidel veebilehe reklaamikohtade jaoks reklaamide valimiseks. Tulemuseks on veebisisu rikkalik kaardistamine taksonoomiaga.

Soovi korral salvestage sisu metaandmete poodi taksonoomia kaardistamiseks

Pärast kontekstuaalselt sarnaste taksonoomiaterminite tuvastamist CITM-ist vajate väikese latentsusega API-de juurdepääsu sellele teabele. Reklaamide programmilise pakkumise puhul mängivad sisu monetiseerimisel olulist rolli madal reageerimisaeg ja kõrge samaaegsus. Andmesalve skeem peab olema paindlik, et mahutada pakkumistaotluste rikastamiseks vajadusel täiendavaid metaandmeid. Amazon DynamoDB võib sobitada sellise teenuse andmetele juurdepääsu mustrite ja töönõuetega.

Järeldus

Selles postituses õppisite, kuidas luua taksonoomiapõhist kontekstipõhise sihtimise lahendust, kasutades kontekstuaalse luure taksonoomia kaardistamist (CITM). Õppisite, kuidas kasutada Amazon Comprehendi ja Amazon Rekognitioni oma meediumivaradest üksikasjalike metaandmete eraldamiseks. Seejärel vastendasite CITM-i abil varad valdkonna standardse taksonoomiaga, et hõlbustada kontekstipõhiselt seotud reklaamide programmilist reklaamipakkumist. Saate seda raamistikku rakendada muudele kasutusjuhtudele, mis nõuavad olemasolevate meediumivarade väärtuse suurendamiseks standardse taksonoomia kasutamist.

CITM-iga katsetamiseks pääsete sellele juurde koodihoidla ja kasutage seda oma valitud teksti- ja pildiandmestikuga.

Soovitame selles postituses tutvustatud lahenduskomponentide kohta lisateavet. Avasta lähemalt AWS Media Intelligence Meediumisisu metaandmete eraldamiseks. Samuti saate lisateavet selle kasutamise kohta Kallistavad näomudelid NLP jaoks, kasutades Amazon SageMakerit.


Autoritest

Looge taksonoomiapõhine kontekstuaalne sihtimine, kasutades AWS Media Intelligence'i ja Hugging Face BERT PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.Aramide Kehinde on masinõppe ja tehisintellekti alal AWS-i vanempartnerlahenduste arhitekt. Tema karjääritee on hõlmanud äriteabe ja täiustatud analüüsi valdkondi mitmes tööstusharus. Ta töötab selle nimel, et partnerid saaksid luua AWS AI/ML teenustega lahendusi, mis rahuldavad klientide innovatsioonivajadusi. Samuti meeldib talle ehitada tehisintellekti ja loominguliste areenide ristumiskohta ning veeta aega oma perega.

Looge taksonoomiapõhine kontekstuaalne sihtimine, kasutades AWS Media Intelligence'i ja Hugging Face BERT PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.Anuj Gupta on peamine lahenduste arhitekt, kes töötab nende pilvepõhisel teekonnal hüperkasvuettevõtetega. Ta on kirglik tehnoloogia kasutamise vastu keeruliste probleemide lahendamiseks ning on töötanud koos klientidega, et luua kõrgelt hajutatud ja madala latentsusajaga rakendusi. Ta panustab avatud lähtekoodiga serverita ja masinõppe lahendustesse. Väljaspool tööd armastab ta perega reisida ning luuletusi ja filosoofilisi ajaveebe kirjutada.

Ajatempel:

Veel alates AWS-i masinõpe