Az AWS Media Intelligence és a Hugging Face BERT PlatoBlockchain Data Intelligence segítségével taxonómia alapú kontextuális célzást hozhat létre. Függőleges keresés. Ai.

Taxonómia alapú kontextus szerinti célzás az AWS Media Intelligence és Hugging Face BERT segítségével

Az új adatvédelmi szabályozások, például a GDPR (General Data Protection Regulation, 2017) életbe lépésével az ügyfelek fokozott nyomás alatt állnak, hogy az új szabályok betartása mellett pénzt szerezzenek a médiaeszközökből. A médiából az adatvédelmi szabályok betartása melletti bevételszerzéshez képesnek kell lennie a részletes metaadatok automatikus kinyerésére olyan eszközökből, mint a szövegek, képek, video- és hangfájlok internetes méretekben. Ezenkívül méretezhető módra van szükség a médiaeszközök iparági taxonómiákhoz való hozzárendeléséhez, amelyek megkönnyítik a tartalom felfedezését és bevételszerzését. Ez a felhasználási eset különösen fontos a reklámipar számára, mivel az adatvédelmi szabályok elmozdulást okoznak a harmadik féltől származó cookie-k használatával történő viselkedés szerinti célzástól.

Harmadik fél cookie-k lehetővé teszi a személyre szabott hirdetések megjelenítését a webfelhasználók számára, és lehetővé teszi a hirdetők számára a célközönség elérését. A harmadik féltől származó cookie-k nélküli hirdetések megjelenítésének hagyományos megoldása a kontextus szerinti hirdetés, amely az oldalakon közzétett tartalom alapján helyez el hirdetéseket a weboldalakon. A kontextus szerinti reklám azonban kihívást jelent a kontextus nagyarányú kinyerése a médiaelemekből, és ennek a kontextusnak a felhasználása az eszközök bevételszerzésére.

Ebben a bejegyzésben megvitatjuk, hogyan építhet fel egy gépi tanulási (ML) megoldást, amelyet Contextual Intelligence Taxonomy Mapper (CITM) néven hívunk, hogy kontextust vonjon ki a digitális tartalomból, és leképezi azt szabványos taxonómiákra, hogy értéket generáljon. Bár ezt a megoldást a kontextus szerinti hirdetésekre alkalmazzuk, más felhasználási esetek megoldására is használhatja. Például az oktatástechnológiai vállalatok felhasználhatják tartalmuk iparági taxonómiákhoz való leképezésére, hogy megkönnyítsék az adaptív tanulást, amely személyre szabott tanulási tapasztalatokat biztosít a tanulók egyéni igényei alapján.

Megoldás áttekintése

A megoldás két összetevőből áll: AWS Media Intelligence (AWS MI) képességek a weboldalak tartalmából kontextus kinyerésére, a CITM pedig a tartalom intelligens leképezésére egy iparági taxonómiára. Hozzáférhet a megoldáshoz kódtár hogy részletes képet kapjon arról, hogyan valósítjuk meg az összetevőit.

AWS Media Intelligence

Az AWS MI képességei lehetővé teszik a metaadatok automatikus kinyerését, amely lehetővé teszi a weboldal tartalmának kontextus szerinti megértését. Kombinálhatja az ML technikákat, például a számítógépes látást, a beszéd szöveggé alakítását és a természetes nyelvi feldolgozást (NLP), hogy automatikusan metaadatokat hozzon létre szövegekből, videókból, képekből és hangfájlokból a későbbi feldolgozáshoz. Felügyelt AI szolgáltatások, mint pl Amazon felismerés, Amazon átirat, Amazon Comprehendés Amazon szöveg ezeket az ML technikákat API-hívások segítségével elérhetővé tenni. Ez kiküszöböli az ML modellek képzéséhez és a semmiből történő felépítéséhez szükséges többletköltséget. Ebből a bejegyzésből megtudhatja, hogy az Amazon Comprehend és az Amazon Rekognition használata a médiaintelligencia érdekében hogyan teszi lehetővé a metaadatok nagyarányú kinyerését.

Kontextuális intelligencia taxonómia-leképező

Miután metaadatokat kinyert a médiatartalomból, a kontextus szerinti célzás megkönnyítése érdekében szükség van egy módra, amellyel leképezheti ezeket a metaadatokat egy iparági taxonómiára. Ehhez létre kell hoznia a Contextual Intelligence Taxonomy Mappert (CITM), amelyet a Hugging Face BERT mondattranszformátora táplál.

A BERT mondattranszformátor lehetővé teszi a CITM számára, hogy kategorizálja a webes tartalmat a kontextushoz kapcsolódó kulcsszavakkal. Például kategorizálhat egy egészséges életmódról szóló internetes cikket az iparági taxonómiából származó kulcsszavakkal, például „Egészséges főzés és étkezés”, „Futás és kocogás” stb., a cikkben írt szöveg és a felhasznált képek alapján. A CITM lehetőséget kínál arra is, hogy az Ön kritériumai alapján kiválassza a hirdetési ajánlattételi folyamathoz használt leképezett taxonómiai kifejezéseket.

A következő diagram a CITM architektúra elvi nézetét szemlélteti.

Az IAB (Interactive Advertising Bureau) tartalomtaxonómia

Ehhez a bejegyzéshez a Az IAB Tech Lab tartalomtaxonómiája mint az iparági szabvány taxonómia a kontextuális hirdetéshasználat esetére. Az IAB taxonómia kialakítása révén segít a tartalomkészítőknek pontosabban leírni tartalmukat, és közös nyelvet biztosít az automatizált hirdetési folyamatban részt vevő valamennyi fél számára. A közös terminológia használata kulcsfontosságú, mivel a felhasználók által meglátogatott weboldalak hirdetéseinek kiválasztásának ezredmásodperceken belül kell megtörténnie. Az IAB taxonómia szabványos módszerként szolgál a különféle forrásokból származó tartalmak kategorizálására, ugyanakkor egy iparági protokoll, amelyet a valós idejű ajánlattételi platformok használnak a hirdetések kiválasztásához. Hierarchikus felépítésű, amely a taxonómiai kifejezések részletességét és továbbfejlesztett kontextust biztosít a hirdetők számára.

Megoldás munkafolyamata

A következő ábra a megoldás munkafolyamatát mutatja be.

A CITM megoldás áttekintése

A lépések a következők:

  1. Amazon egyszerű tárolási szolgáltatás (Amazon S3) tárolja az IAB tartalom taxonómiáját és a kivont webes tartalmat.
  2. Az Amazon Comprehend témamodellezést végez, hogy közös témákat vonjon ki a cikkgyűjteményből.
  3. Az Amazon Rekognition objektumcímke API felismeri a címkéket a képeken.
  4. A CITM szabványos taxonómiához rendeli hozzá a tartalmat.
  5. Opcionálisan tárolhat tartalmat a taxonómia-leképezéshez egy metaadattárolóban.

A következő részekben minden lépést részletesen végigjárunk.

Az Amazon S3 tárolja az IAB tartalom taxonómiáját és a kivont webtartalmat

A webes cikkek gyűjteményéből kivont szövegeket és képeket egy S3 tárolóban tároljuk. Tároljuk az IAB tartalom taxonómiáját is. Első lépésként a taxonómia különböző szintjeit összefűzzük, hogy kombinált taxonómiai kifejezéseket hozzunk létre. Ez a megközelítés segít fenntartani a taxonómia hierarchikus szerkezetét, amikor a BERT mondattranszformátor beágyazásokat hoz létre minden kulcsszóhoz. Lásd a következő kódot:

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)

A következő diagram bemutatja az IAB kontextus taxonómiáját kombinált szintekkel.

IAB tartalomtaxonómia összefűzött szintekkel

Az Amazon Comprehend témamodellezést végez, hogy közös témákat vonjon ki a cikkgyűjteményből

Az Amazon Comprehend témamodellező API-val a Latent Dirichlet Allocation (LDA) modell segítségével elemzi az összes cikkszöveget. A modell megvizsgálja a korpusz minden egyes cikkét, és a kulcsszavakat ugyanabba a témába csoportosítja aszerint, hogy milyen kontextusban és gyakorisággal jelennek meg a teljes cikkgyűjteményben. Annak biztosítására, hogy az LDA-modell rendkívül koherens témákat észleljen, egy előfeldolgozási lépést kell végrehajtania az Amazon Comprehend API meghívása előtt. Használhatja a gensim könyvtár CoherenceModel a cikkek vagy szöveges fájlok gyűjteményéből észlelhető témák optimális számának meghatározásához. Lásd a következő kódot:

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)

Miután megszerezte az optimális számú témakört, ezt az értéket használja az Amazon Comprehend témamodellezési feladathoz. Különböző értékek megadása a NumberOfTopics paraméterhez az Amazon Comprehendben StartTopicsDetectionJob művelet eltérést eredményez az egyes témacsoportokban elhelyezett kulcsszavak eloszlásában. A NumberOfTopics paraméter optimalizált értéke azon témakörök számát jelenti, amelyek a kulcsszavak legkoherensebb csoportosítását biztosítják, nagyobb kontextusbeli relevanciával. Az Amazon Comprehend témamodellezési kimenetét nyers formátumban tárolhatja az Amazon S3-ban.

Az Amazon Rekognition objektumcímke API észleli a címkéket a képeken

Az összes weboldalról kinyert képeket elemzi a Amazon Rekognition DetectLabels művelet. A művelet minden egyes képhez JSON-választ ad a képen belül észlelt összes címkével, és mindegyikhez egy megbízhatósági pontszámmal párosul. Használati esetünkben önkényesen 60%-os vagy magasabb megbízhatósági pontszámot választunk a következő lépésben használandó objektumcímkék küszöbértékeként. Az objektumcímkéket nyers formátumukban tárolja az Amazon S3-ban. Lásd a következő kódot:

"""
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

A CITM szabványos taxonómiához rendeli hozzá a tartalmat

A CITM összehasonlítja a kinyert tartalom metaadatokat (témák szövegből és címkék képekből) az IAB taxonómiájának kulcsszavaival, majd leképezi a tartalom metaadatokat a taxonómia szemantikailag kapcsolódó kulcsszavaira. Ehhez a feladathoz a CITM a következő három lépést hajtja végre:

  1. A Hugging Face BERT mondattranszformátorával neurális beágyazásokat hozhat létre a tartalom taxonómiájához, a témakörök kulcsszavaihoz és képcímkéihez. A mondattranszformátor modellt innen érjük el Amazon SageMaker. Ebben a bejegyzésben a parafrázis-MiniLM-L6-v2 modell, amely a kulcsszavakat és címkéket egy 384 dimenziós sűrű vektortérre képezi le.
  2. Számítsa ki a taxonómiai kulcsszavak és a témakörök kulcsszavai közötti koszinusz hasonlósági pontszámot beágyazásaik segítségével. Kiszámolja a taxonómia kulcsszavai és a képobjektum címkéi közötti koszinusz hasonlóságot is. A koszinusz hasonlóságot pontozási mechanizmusként használjuk, hogy szemantikailag hasonló egyezéseket találjunk a tartalom metaadatai és a taxonómia között. Lásd a következő kódot:
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. Azonosítsa azokat a párosításokat, amelyek hasonlósági pontszámai meghaladják a felhasználó által meghatározott küszöbértéket, és használja őket a tartalom leképezésére a tartalomtaxonómia szemantikailag kapcsolódó kulcsszavaihoz. Tesztünkben az összes kulcsszót olyan párosításokból választjuk ki, amelyek koszinusz hasonlósági pontszáma 0.5 vagy magasabb. Lásd a következő kódot:
#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]:

Az internetes méretű nyelvi reprezentációval való munka során (például ebben a használati esetben) gyakori kihívás, hogy olyan modellre van szükség, amely a tartalom nagy részéhez illeszkedik – jelen esetben az angol nyelvű szavakhoz. A Hugging Face BERT-transzformátorát a Wikipédia-bejegyzések nagy tömegével, angol nyelven előre betanították a szavak egymáshoz viszonyított szemantikai jelentésének megjelenítésére. Finomhangolhatja az előre betanított modellt a témakulcsszavak, képcímkék és taxonómiai kulcsszavak speciális adatkészletével. Ha az összes beágyazást ugyanabba a jellemzőtérbe helyezi, és megjeleníti őket, akkor láthatja, hogy a BERT logikailag reprezentálja a kifejezések közötti szemantikai hasonlóságot.

A következő példa az Automotive osztály IAB tartalomtaxonómiai kulcsszavait jeleníti meg vektorként a BERT segítségével. A BERT a taxonómiából származó autóipari kulcsszavakat szemantikailag hasonló kifejezésekhez helyezi.

BERT-beágyazások megjelenítése taxonómiai kulcsszavakhoz

A jellemzővektorok lehetővé teszik a CITM számára, hogy összehasonlítsa a metaadat-címkéket és a taxonómiai kulcsszavakat ugyanabban a jellemzőtérben. Ebben a jellemzőtérben a CITM kiszámítja a koszinusz hasonlóságot a taxonómiai kulcsszavak egyes jellemzővektorai és a témakulcsszavak jellemzővektorai között. Egy külön lépésben a CITM összehasonlítja a taxonómiai jellemzővektorokat és a képcímkék jellemzővektorait. Az 1-hez legközelebbi koszinusz pontszámú párosítások szemantikailag hasonlónak minősülnek. Vegye figyelembe, hogy a párosítás lehet téma kulcsszó és taxonómia kulcsszó, vagy objektumcímke és taxonómia kulcsszó.

A következő képernyőkép a téma és a taxonómiai kulcsszavak párosítását mutatja be, a BERT beágyazásokkal számított koszinusz hasonlóságot használva.

Téma-taxonómia kulcsszópárosítások

A tartalom taxonómiai kulcsszavakhoz való leképezéséhez a CITM a felhasználó által meghatározott küszöbértéket elérő koszinuszpontszámú párosításokból választja ki a kulcsszavakat. Ezek azok a kulcsszavak, amelyeket a valós idejű ajánlattételi platformokon használnak a hirdetések kiválasztásához a weboldal készletéhez. Az eredmény az online tartalom gazdag leképezése a taxonómiához.

Opcionálisan tárolhat tartalmat a taxonómia-leképezéshez egy metaadattárban

Miután azonosította a kontextusban hasonló taxonómiai kifejezéseket a CITM-ből, szüksége van egy módra, hogy az alacsony késleltetésű API-k hozzáférjenek ezekhez az információkhoz. A hirdetésekre vonatkozó automatizált ajánlattételben az alacsony válaszidő és a magas egyidejűség fontos szerepet játszik a tartalom bevételszerzésében. Az adattár sémájának rugalmasnak kell lennie ahhoz, hogy az ajánlatkérések gazdagításához szükség esetén további metaadatokat is befogadhasson. Amazon DynamoDB megfelelhet az ilyen szolgáltatások adathozzáférési mintáinak és működési követelményeinek.

Következtetés

Ebben a bejegyzésben megtanulta, hogyan készíthet taxonómia alapú kontextus szerinti célzási megoldást a Contextual Intelligence Taxonomy Mapper (CITM) segítségével. Megtanulta, hogyan használhatja az Amazon Comprehend és az Amazon Rekognition szolgáltatást, hogy részletezett metaadatokat kinyerhessen a médiaeszközeiből. Ezután a CITM segítségével leképezte az eszközöket egy iparági szabvány szerinti taxonómiához, hogy megkönnyítse az automatizált hirdetési ajánlattételt a kontextus szerint kapcsolódó hirdetésekhez. Ezt a keretrendszert más olyan használati esetekre is alkalmazhatja, amelyek szabványos taxonómiát igényelnek a meglévő médiaeszközök értékének növelése érdekében.

A CITM-mel való kísérletezéshez elérheti azt kódtár és használja az Ön által választott szöveges és képi adatkészlettel.

Javasoljuk, hogy többet tudjon meg az ebben a bejegyzésben bemutatott megoldás-összetevőkről. Fedezzen fel többet a AWS Media Intelligence metaadatok kinyerésére a médiatartalomból. Ezenkívül tudjon meg többet a használatáról Ölelő arcmodellek NLP-hez az Amazon SageMaker segítségével.


A szerzőkről

Az AWS Media Intelligence és a Hugging Face BERT PlatoBlockchain Data Intelligence segítségével taxonómia alapú kontextuális célzást hozhat létre. Függőleges keresés. Ai.Aramide Kehinde az AWS-nél a gépi tanulás és mesterséges intelligencia területén Sr. Partner Solution Architect. Pályafutása az üzleti intelligencia és az Advanced Analytics területét öleli fel több iparágban. Azon dolgozik, hogy a partnerek olyan megoldásokat építhessenek az AWS AI/ML szolgáltatásokkal, amelyek kiszolgálják az ügyfelek innovációs igényeit. Szívesen építi a mesterséges intelligencia és a kreatív színterek metszéspontját, és szereti a családjával tölteni az időt.

Az AWS Media Intelligence és a Hugging Face BERT PlatoBlockchain Data Intelligence segítségével taxonómia alapú kontextuális célzást hozhat létre. Függőleges keresés. Ai.Anuj Gupta a fő megoldások építésze, aki hipernövekvő vállalatokkal dolgozik a felhőalapú natív útjukon. Szenvedélyesen használja a technológiát a kihívást jelentő problémák megoldására, és ügyfeleivel együttműködve magasan elosztott és alacsony késleltetésű alkalmazásokat épített fel. Hozzájárul a nyílt forráskódú szerver nélküli és gépi tanulási megoldásokhoz. Munkán kívül szeret családjával utazni, verseket és filozófiai blogokat írni.

Időbélyeg:

Még több AWS gépi tanulás