Luo taksonomiaan perustuva asiayhteyteen kohdistus käyttämällä AWS Media Intelligence- ja Hugging Face BERT PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.

Luo taksonomiaan perustuva asiayhteyteen kohdistus AWS Media Intelligencen ja Hugging Face BERTin avulla

Kun uudet tietosuojasäännökset, kuten GDPR (General Data Protection Regulation, 2017), ovat tulleet voimaan, asiakkaisiin kohdistuu lisääntyviä paineita kaupallistaa mediavarat uusien sääntöjen mukaisesti. Median ansaitseminen yksityisyyttä koskevia sääntöjä noudattaen edellyttää kykyä poimia automaattisesti yksityiskohtaisia ​​metatietoja resursseista, kuten tekstistä, kuvista, videoista ja äänitiedostoista Internetin mittakaavassa. Se vaatii myös skaalautuvan tavan kartoittaa mediavarat alan taksonomioihin, mikä helpottaa sisällön löytämistä ja kaupallistamista. Tämä käyttötapaus on erityisen tärkeä mainosalalle, koska tietosuojasäännöt aiheuttavat siirtymisen käyttäytymiseen perustuvasta kohdistamisesta kolmannen osapuolen evästeiden avulla.

Kolmannen osapuolen evästeet auttaa mahdollistamaan räätälöityjä mainoksia verkkokäyttäjille ja mahdollistaa mainostajien tavoittaa kohdeyleisönsä. Perinteinen ratkaisu mainosten näyttämiseen ilman kolmannen osapuolen evästeitä on kontekstuaalinen mainonta, joka sijoittaa mainoksia verkkosivuille sivuilla julkaistun sisällön perusteella. Asiayhteyteen perustuva mainonta asettaa kuitenkin haasteen kontekstin poimimisessa mediaresursseista laajassa mittakaavassa ja myös kontekstin käyttämisessä resurssien kaupallistamiseen.

Tässä viestissä keskustelemme siitä, kuinka voit rakentaa koneoppimisratkaisun (ML), jota kutsumme Contextual Intelligence Taxonomy Mapperiksi (CITM), jolla poimitaan konteksti digitaalisesta sisällöstä ja kartoitetaan se tavallisiin taksonomioihin arvon luomiseksi. Vaikka käytämme tätä ratkaisua kontekstuaaliseen mainontaan, voit käyttää sitä muiden käyttötapausten ratkaisemiseen. Esimerkiksi koulutusteknologiayritykset voivat käyttää sitä kartoittaakseen sisältöään alan taksonomioihin helpottaakseen mukautuvaa oppimista, joka tuottaa yksilöllisiä oppimiskokemuksia opiskelijoiden yksilöllisten tarpeiden mukaan.

Ratkaisun yleiskatsaus

Ratkaisu koostuu kahdesta osasta: AWS Media Intelligence (AWS MI) -ominaisuudet kontekstin poimimiseen verkkosivujen sisällöstä ja CITM sisällön älykkääseen kartoittamiseen alan taksonomiaan. Pääset käsiksi ratkaisuun koodivarasto saadaksesi yksityiskohtaisen kuvan siitä, kuinka toteutamme sen komponentit.

AWS Media Intelligence

AWS MI -ominaisuudet mahdollistavat metatietojen automaattisen purkamisen, joka tarjoaa kontekstuaalisen ymmärryksen verkkosivun sisällöstä. Voit yhdistää ML-tekniikoita, kuten tietokonenäön, puheen tekstiksi ja luonnollisen kielen käsittelyn (NLP), luodaksesi automaattisesti metatietoja tekstistä, videoista, kuvista ja äänitiedostoista käytettäväksi jatkokäsittelyssä. Hallitut tekoälypalvelut, kuten Amazonin tunnistus, Amazonin transkriptio, Amazonin käsitysja Amazonin teksti tehdä näistä ML-tekniikoista saataville API-kutsujen avulla. Tämä eliminoi ylimääräiset kustannukset, joita tarvitaan ML-mallien kouluttamiseen ja rakentamiseen tyhjästä. Tässä viestissä näet, kuinka Amazon Comprehendin ja Amazon Rekognitionin käyttäminen mediaälyyn mahdollistaa metatietojen poimimisen laajassa mittakaavassa.

Kontekstuaalisen älykkyyden taksonomiakartoittaja

Kun olet poiminut metatiedot mediasisällöstä, tarvitset tavan yhdistää metatiedot alan taksonomiaan, jotta asiayhteyteen kohdistus helpottuu. Tätä varten rakennat Contextual Intelligence Taxonomy Mapperin (CITM), jonka virtalähteenä on Hugging Facen BERT-lausemuuntaja.

BERT-lausemuuntajan avulla CITM voi luokitella verkkosisällön asiayhteyteen liittyvillä avainsanoilla. Se voi esimerkiksi luokitella terveellistä elämäntapaa käsittelevän verkkoartikkelin alan taksonomian avainsanoilla, kuten "Terveellinen ruoanlaitto ja syöminen", "Juoksu ja lenkkeily" kirjoitetun tekstin ja artikkelissa käytettyjen kuvien perusteella. CITM tarjoaa myös mahdollisuuden valita kartoitetut taksonomiatermit, joita käytetään mainoksesi hintatarjousprosessissa kriteerisi perusteella.

Seuraava kaavio havainnollistaa käsitteellistä näkymää CITM:n arkkitehtuurista.

IAB (Interactive Advertising Bureau) -sisältöluokitus

Tähän viestiin käytämme IAB Tech Labin sisällön taksonomia alan standardi taksonomia kontekstuaalisen mainonnan käyttötapaukselle. Suunniteltu IAB:n taksonomia auttaa sisällöntuottajia kuvaamaan sisältöään tarkemmin, ja se tarjoaa yhteisen kielen kaikille ohjelmallisen mainonnan osapuolille. Yhteisen terminologian käyttö on ratkaisevan tärkeää, koska mainosten valinnan käyttäjän vierailemalle verkkosivulle on tapahduttava millisekunnissa. IAB:n taksonomia toimii standardoituna tapana luokitella eri lähteistä peräisin olevaa sisältöä, mutta se on myös alan protokolla, jota reaaliaikaiset hintatarjousalustat käyttävät mainosten valintaan. Sillä on hierarkkinen rakenne, joka tarjoaa taksonomian termien tarkkuuden ja paremman kontekstin mainostajille.

Ratkaisun työnkulku

Seuraava kaavio kuvaa ratkaisun työnkulkua.

CITM-ratkaisun yleiskatsaus

Vaiheet ovat seuraavat:

  1. Amazonin yksinkertainen tallennuspalvelu (Amazon S3) tallentaa IAB:n sisällön taksonomian ja poimitun verkkosisällön.
  2. Amazon Comprehend suorittaa aihemallinnuksen poimiakseen yleisiä teemoja artikkelikokoelmasta.
  3. Amazon Rekognition objektitunniste API tunnistaa kuvissa olevat tarrat.
  4. CITM kartoittaa sisällön tavalliseen taksonomiaan.
  5. Valinnaisesti voit tallentaa sisällön taksonomiakartoitukseen metatietosäilöön.

Seuraavissa osioissa käymme läpi jokaisen vaiheen yksityiskohtaisesti.

Amazon S3 tallentaa IAB-sisällön taksonomian ja puretun verkkosisällön

Tallennamme poimittua tekstiä ja kuvia verkkoartikkelikokoelmasta S3-ämpäriin. Tallennamme myös IAB-sisällön taksonomian. Ensimmäisenä vaiheena yhdistämme taksonomian eri tasoja luodaksemme yhdistettyjä taksonomiatermejä. Tämä lähestymistapa auttaa säilyttämään taksonomian hierarkkisen rakenteen, kun BERT-lausemuuntaja luo upotteita kullekin avainsanalle. Katso seuraava 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)

Seuraava kaavio havainnollistaa IAB-kontekstin taksonomiaa yhdistetyillä tasoilla.

IAB-sisällön taksonomia ketjutetuilla tasoilla

Amazon Comprehend suorittaa aihemallinnuksen poimiakseen yleisiä teemoja artikkelikokoelmasta

Amazon Comprehend -aihemallinnussovellusliittymän avulla analysoit kaikki artikkelitekstit käyttämällä Latent Dirichlet Allocation (LDA) -mallia. Malli tarkastelee jokaisen artikkelin artikkelia ja ryhmittelee avainsanat samaan aiheeseen kontekstin ja esiintymistiheyden perusteella koko artikkelikokoelmassa. Varmistaaksesi, että LDA-malli havaitsee erittäin johdonmukaiset aiheet, suoritat esikäsittelyvaiheen ennen Amazon Comprehend API:n kutsumista. Voit käyttää gensim-kirjasto CoherenceModel määrittää optimaalisen määrän aiheita, jotka tunnistetaan artikkelikokoelmasta tai tekstitiedostoista. Katso seuraava 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)

Kun olet saanut optimaalisen määrän aiheita, käytät tätä arvoa Amazon Comprehend -aihemallinnustyössä. Erilaisten arvojen tarjoaminen NumberOfTopics-parametrille Amazon Comprehendissä AloitaTopicsDetectionJob-toiminto johtaa vaihteluun kuhunkin aiheryhmään sijoitettujen avainsanojen jakautumisessa. NumberOfTopics-parametrin optimoitu arvo edustaa niiden aiheiden määrää, jotka tarjoavat johdonmukaisimman ja asiayhteyden kannalta merkityksellisemmän avainsanojen ryhmittelyn. Voit tallentaa Amazon Comprehendin aihemallinnustulosten raakamuodossa Amazon S3:een.

Amazon Rekognition -objektietiketin API havaitsee kuvissa olevat tarrat

Analysoit jokaista kaikilta verkkosivuilta poimittua kuvaa käyttämällä Amazon Rekognition DetectLabels -toiminto. Toiminto tarjoaa jokaiselle kuvalle JSON-vastauksen, jossa on kaikki kuvassa havaitut tunnisteet sekä kunkin kuvan luottamuspisteet. Käyttötapauksessamme valitsemme mielivaltaisesti 60 %:n tai korkeamman luotettavuuspisteen kynnysarvoksi objektitunnisteille, joita käytetään seuraavassa vaiheessa. Tallennat objektien etiketit raakamuodossaan Amazon S3:ssa. Katso seuraava 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 kartoittaa sisällön tavalliseen taksonomiaan

CITM vertaa poimittuja sisällön metatietoja (aiheita tekstistä ja tunnisteita kuvista) IAB:n taksonomian avainsanoihin ja kartoittaa sitten sisällön metatiedot taksonomian avainsanoihin, jotka liittyvät semanttisesti. Tätä tehtävää varten CITM suorittaa seuraavat kolme vaihetta:

  1. Luo hermoupotuksia sisällön taksonomiaa, aiheen avainsanoja ja kuvatunnisteita varten käyttämällä Hugging Facen BERT-lausemuuntajaa. Pääsemme lausemuuntajamalliin osoitteesta Amazon Sage Maker. Tässä viestissä käytämme parafraasi-MiniLM-L6-v2 malli, joka kartoittaa avainsanat ja tunnisteet 384-ulotteiseen tiheään vektoriavaruuteen.
  2. Laske taksonomian avainsanojen ja aiheen avainsanojen kosinin samankaltaisuuspisteet käyttämällä niiden upotuksia. Se myös laskee kosinin samankaltaisuuden taksonomian avainsanojen ja kuvaobjektien tunnisteiden välillä. Käytämme kosinin samankaltaisuutta pisteytysmekanismina löytääksemme semanttisesti samankaltaisia ​​vastaavuuksia sisällön metatietojen ja taksonomian välillä. Katso seuraava 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. Tunnista parit, joiden samankaltaisuuspisteet ylittävät käyttäjän määrittämän kynnyksen, ja käytä niitä sisällön yhdistämiseen semanttisesti liittyviin avainsanoihin sisällön taksonomiassa. Testissämme valitsemme kaikki avainsanat pareista, joiden kosinin samankaltaisuuspisteet ovat 0.5 tai korkeammat. Katso seuraava 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]:

Yleinen haaste Internet-mittakaavaisen kieliesityksen parissa (kuten tässä käyttötapauksessa) on, että tarvitset mallin, joka sopii suurimmalle osalle sisällöstä – tässä tapauksessa englannin kielen sanoista. Hugging Facen BERT-muuntaja on esikoulutettu käyttämällä laajaa englanninkielistä Wikipedia-viestien kokoelmaa edustamaan sanojen semanttista merkitystä suhteessa toisiinsa. Hienosäädä esikoulutettua mallia käyttämällä erityistä aiheen avainsanojen, kuvatunnisteiden ja taksonomian avainsanojen tietojoukkoasi. Kun sijoitat kaikki upotukset samaan ominaisuustilaan ja visualisoit ne, näet, että BERT edustaa loogisesti termien semanttista samankaltaisuutta.

Seuraava esimerkki visualisoi IAB-sisällön taksonomian avainsanoja luokassa Automotive, joka esitetään vektoreina BERT:n avulla. BERT sijoittaa taksonomian Automotive-avainsanat lähelle semanttisesti samankaltaisia ​​termejä.

BERT-upotusten visualisointi taksonomian avainsanoille

Piirrevektorit antavat CITM:lle mahdollisuuden verrata metatietotunnisteita ja taksonomian avainsanoja samassa ominaisuustilassa. Tässä ominaisuustilassa CITM laskee kosinin samankaltaisuuden taksonomian avainsanojen kunkin piirrevektorin ja aiheen avainsanojen kunkin piirrevektorin välillä. Erillisessä vaiheessa CITM vertaa taksonomian piirrevektoreita ja piirrevektoreita kuvatarroille. Parit, joiden kosinipisteet ovat lähimpänä yhtä, tunnistetaan semanttisesti samanlaisiksi. Huomaa, että pariliitos voi olla joko aiheen avainsana ja taksonomian avainsana tai objektinimike ja taksonomian avainsana.

Seuraavassa kuvakaappauksessa on esimerkkipareja aiheen avainsanoista ja taksonomian avainsanoista käyttämällä kosinin samankaltaisuutta, joka on laskettu BERT-upotuksilla.

Aiheesta taksonomiaan avainsanaparit

Kartoittaakseen sisällön taksonomian avainsanoihin CITM valitsee avainsanat pareittain kosinipisteillä, jotka täyttävät käyttäjän määrittämän kynnyksen. Nämä ovat avainsanoja, joita käytetään reaaliaikaisissa hintatarjousalustoissa mainosten valitsemiseen verkkosivun mainosjakaumaan. Tuloksena on rikas verkkosisällön kartoitus taksonomiaan.

Valinnaisesti tallenna sisältöä taksonomian kartoitukseen metatietosäilöön

Kun olet tunnistanut kontekstuaalisesti samankaltaiset taksonomiatermit CITM:stä, tarvitset tavan, jolla alhaisen viiveen sovellusliittymät voivat käyttää näitä tietoja. Mainosten ohjelmallisissa hintatarjouksissa alhaisella vasteajalla ja korkealla samanaikaisuudella on tärkeä rooli sisällön kaupallistamisessa. Tietosäilön skeeman on oltava joustava, jotta siihen voidaan sisällyttää lisää metatietoja, kun niitä tarvitaan tarjouspyyntöjen rikastamiseksi. Amazon DynamoDB voi vastata tällaisen palvelun tiedonkäyttömalleja ja toimintavaatimuksia.

Yhteenveto

Tässä viestissä opit luomaan taksonomiaan perustuvan asiayhteyteen kohdistusratkaisun Contextual Intelligence Taxonomy Mapperin (CITM) avulla. Opit käyttämään Amazon Comprehendia ja Amazon Rekognitionia rakeisen metadatan poimimiseen mediasisällöstäsi. Tämän jälkeen CITM:n avulla määritit resurssit alan standardinmukaiseen taksonomiaan helpottaaksesi ohjelmallista mainosten hinnoittelua asiayhteyteen liittyville mainoksille. Voit soveltaa tätä viitekehystä muihin käyttötapauksiin, jotka edellyttävät vakiotaksonomian käyttöä olemassa olevien mediaresurssien arvon lisäämiseksi.

Voit kokeilla CITM:ää käyttämällä sitä koodivarasto ja käytä sitä valitsemasi teksti- ja kuvatietojoukon kanssa.

Suosittelemme oppimaan lisää tässä viestissä esitellyistä ratkaisukomponenteista. Tutustu lisää aiheesta AWS Media Intelligence poimimaan metatietoja mediasisällöstä. Lue myös lisää käytöstä Halaavat kasvomallit NLP:lle Amazon SageMakerin avulla.


Tietoja Tekijät

Luo taksonomiaan perustuva asiayhteyteen kohdistus käyttämällä AWS Media Intelligence- ja Hugging Face BERT PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.Aramide Kehinde on vanhempi kumppaniratkaisuarkkitehti AWS:ssä koneoppimisessa ja tekoälyssä. Hänen uransa on kattanut Business Intelligencen ja Advanced Analyticsin alueet useilla toimialoilla. Hän pyrkii siihen, että kumppanit voivat rakentaa AWS AI/ML -palveluilla ratkaisuja, jotka palvelevat asiakkaiden innovaatiotarpeita. Hän nauttii myös tekoälyn ja luovien areenoiden risteyksen rakentamisesta ja ajan viettämisestä perheensä kanssa.

Luo taksonomiaan perustuva asiayhteyteen kohdistus käyttämällä AWS Media Intelligence- ja Hugging Face BERT PlatoBlockchain Data Intelligenceä. Pystysuuntainen haku. Ai.Anuj Gupta on pääratkaisuarkkitehti, joka työskentelee hyperkasvuyritysten kanssa heidän pilvipohjaisella matkallaan. Hän on intohimoinen teknologian käyttämiseen haastavien ongelmien ratkaisemiseen ja on työskennellyt asiakkaiden kanssa erittäin hajautettujen ja alhaisen latenssin sovellusten rakentamiseksi. Hän osallistuu avoimen lähdekoodin palvelimettomiin ja koneoppimisratkaisuihin. Työn ulkopuolella hän rakastaa matkustamista perheensä kanssa ja kirjoittaa runoja ja filosofisia blogeja.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen