בנה מיקוד הקשרי מבוסס טקסונומיה באמצעות AWS Media Intelligence ו-Huging Face BERT PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

בנה מיקוד לפי הקשר מבוסס טקסונומיה באמצעות AWS Media Intelligence ו- Hugging Face BERT

כאשר תקנות פרטיות מידע חדשות כמו GDPR (General Data Protection Regulation, 2017) נכנסו לתוקף, הלקוחות נמצאים תחת לחץ מוגבר לייצר רווחים מנכסי מדיה תוך ציות לכללים החדשים. מונטיזציה של מדיה תוך כיבוד תקנות הפרטיות מחייבת את היכולת לחלץ אוטומטית מטא נתונים פרטניים מנכסים כמו טקסט, תמונות, וידאו וקבצי אודיו בקנה מידה אינטרנטי. זה גם דורש דרך ניתנת להרחבה למיפוי נכסי מדיה לטקסונומיות בתעשייה המאפשרות גילוי ומונטיזציה של תוכן. מקרה שימוש זה משמעותי במיוחד עבור תעשיית הפרסום מכיוון שכללי פרטיות הנתונים גורמים לשינוי ממיקוד התנהגותי באמצעות קובצי Cookie של צד שלישי.

קובצי cookie של צד שלישי לעזור לאפשר מודעות מותאמות אישית עבור משתמשי אינטרנט, ולאפשר למפרסמים להגיע לקהל המיועד להם. פתרון מסורתי להצגת מודעות ללא קובצי Cookie של צד שלישי הוא פרסום קונטקסטואלי, המציב מודעות בדפי אינטרנט על סמך התוכן המתפרסם בדפים. עם זאת, פרסום קונטקסטואלי מציב את האתגר של חילוץ הקשר מנכסי מדיה בקנה מידה, וכמו כן שימוש בהקשר זה כדי לייצר רווח מהנכסים.

בפוסט זה, אנו דנים כיצד ניתן לבנות פתרון למידת מכונה (ML) שאנו מכנים Contextual Intelligence Taxonomy Mapper (CITM) כדי לחלץ הקשר מתוכן דיגיטלי ולמפות אותו לטקסונומיות סטנדרטיות על מנת לייצר ערך. למרות שאנו מיישמים פתרון זה על פרסום הקשרי, אתה יכול להשתמש בו כדי לפתור מקרי שימוש אחרים. לדוגמה, חברות טכנולוגיות חינוך יכולות להשתמש בו כדי למפות את התוכן שלהן לטקסונומיות בתעשייה כדי להקל על למידה אדפטיבית המספקת חוויות למידה מותאמות אישית המבוססות על הצרכים האישיים של התלמידים.

סקירת פתרונות

הפתרון מורכב משני מרכיבים: מודיעין המדיה של AWS יכולות (AWS MI) לחילוץ הקשר מתוכן בדפי אינטרנט, ו-CITM למיפוי חכם של תוכן לטקסונומיה של התעשייה. אתה יכול לגשת לפתרונות מאגר קוד לתצוגה מפורטת של האופן שבו אנו מיישמים את מרכיביו.

מודיעין המדיה של AWS

יכולות AWS MI מאפשרות חילוץ אוטומטי של מטא נתונים המספקים הבנה הקשרית של תוכן דף אינטרנט. אתה יכול לשלב טכניקות ML כמו ראייה ממוחשבת, דיבור לטקסט ועיבוד שפה טבעית (NLP) כדי ליצור אוטומטית מטא נתונים מטקסט, סרטונים, תמונות וקובצי אודיו לשימוש בעיבוד במורד הזרם. שירותי AI מנוהלים כגון אמזון, אמזון תעתיק, אמזון להתבונן, ו טקסטורה באמזון להפוך את טכניקות ה-ML הללו לנגישות באמצעות קריאות API. זה מבטל את התקורה הדרושה לאימון ובניית דגמי ML מאפס. בפוסט זה, אתה רואה כיצד השימוש ב-Amazon Comprehend וב-Amazon Rekognition עבור מודיעין מדיה מאפשר חילוץ מטא נתונים בקנה מידה.

מיפוי טקסונומיה של אינטליגנציה קונטקסטואלית

לאחר חילוץ מטא נתונים מתוכן מדיה, אתה צריך דרך למפות את המטא נתונים האלה לטקסונומיה של התעשייה כדי להקל על מיקוד לפי הקשר. לשם כך, אתה בונה Contextual Intelligence Taxonomy Mapper (CITM), המופעל על ידי שנאי משפטי BERT מבית Hugging Face.

שנאי המשפטים של BERT מאפשר ל-CITM לסווג תוכן אינטרנט עם מילות מפתח הקשורות להקשר. לדוגמה, הוא יכול לסווג מאמר אינטרנט על אורח חיים בריא עם מילות מפתח מהטקסונומיה של התעשייה, כגון "בישול ואכילה בריא", "ריצה וריצה" ועוד, בהתבסס על הטקסט שנכתב והתמונות המשמשות במאמר. CITM מספקת גם את היכולת לבחור את מונחי הטקסונומיה הממופים לשימוש עבור תהליך הגשת הצעות המודעה שלך על סמך הקריטריונים שלך.

התרשים הבא ממחיש את ההשקפה הרעיונית של הארכיטקטורה עם CITM.

טקסונומיית התוכן של IAB (Interactive Advertising Bureau).

לפוסט זה אנו משתמשים ב- טקסונומיית התוכן של IAB Tech Lab כטקסונומיה הסטנדרטית בתעשייה עבור מקרה השימוש בפרסום הקשרי. בתכנון, הטקסונומיה של IAB עוזרת ליוצרי תוכן לתאר בצורה מדויקת יותר את התוכן שלהם, והיא מספקת שפה משותפת לכל הצדדים בתהליך הפרסום הפרוגרמטי. השימוש בטרמינולוגיה נפוצה הוא חיוני מכיוון שהבחירה של מודעות עבור דף אינטרנט שמשתמש מבקר בו צריכה להתרחש תוך אלפיות שניות. הטקסונומיה של IAB משמשת כדרך סטנדרטית לסווג תוכן ממקורות שונים, תוך שהיא גם פרוטוקול תעשייתי שפלטפורמות הגשת הצעות בזמן אמת משתמשות בו לבחירת מודעות. יש לו מבנה היררכי, המספק פירוט של מונחי טקסונומיה והקשר משופר למפרסמים.

זרימת עבודה של פתרון

התרשים הבא ממחיש את זרימת העבודה של הפיתרון.

פתרון CITM כולל

השלבים הם כדלקמן:

  1. שירות אחסון פשוט של אמזון (Amazon S3) מאחסן את טקסונומיית התוכן של IAB ואת תוכן האינטרנט שחולץ.
  2. Amazon Comprehend מבצעת מודלים של נושאים כדי לחלץ נושאים נפוצים מאוסף המאמרים.
  3. ההכרה של אמזון API של תווית אובייקט מזהה תוויות בתמונות.
  4. CITM ממפה תוכן לטקסונומיה סטנדרטית.
  5. לחלופין, אתה יכול לאחסן תוכן למיפוי טקסונומיה במאגר מטא נתונים.

בסעיפים הבאים, נעבור על כל שלב בפירוט.

אמזון S3 מאחסנת את טקסונומיית התוכן של IAB ותוכן אינטרנט שחולץ

אנו מאחסנים טקסט ותמונות שחולצו מאוסף מאמרי אינטרנט בדלי S3. אנו מאחסנים גם את טקסונומיית התוכן של IAB. כצעד ראשון, אנו משרשרים שכבות שונות בטקסונומיה כדי ליצור מונחי טקסונומיה משולבים. גישה זו עוזרת לשמור על המבנה ההיררכי של הטקסונומיה כאשר מתמר המשפטים BERT יוצר הטבעות עבור כל מילת מפתח. ראה את הקוד הבא:

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)

התרשים הבא ממחיש את טקסונומיית ההקשר של IAB עם שכבות משולבות.

טקסונומיית תוכן של IAB עם שכבות משורשרות

Amazon Comprehend מבצעת מודלים של נושאים כדי לחלץ נושאים נפוצים מאוסף המאמרים

עם ה-API למודלים של נושאים של Amazon Comprehend, אתה מנתח את כל טקסטי המאמר באמצעות מודל הקצאת Dirichlet Latent (LDA). המודל בוחן כל מאמר בקורפוס ומקבץ מילות מפתח לאותו נושא בהתבסס על ההקשר והתדירות שבה הן מופיעות על פני כל אוסף המאמרים. כדי להבטיח שמודל ה-LDA יזהה נושאים מאוד קוהרנטיים, אתה מבצע שלב עיבוד מקדים לפני הקריאה ל-Amazon Comprehend API. אתה יכול להשתמש ב ספריית גנסים CoherenceModel לקביעת המספר האופטימלי של נושאים לזיהוי מאוסף המאמרים או קבצי הטקסט. ראה את הקוד הבא:

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)

לאחר שתקבל את המספר האופטימלי של נושאים, אתה משתמש בערך זה עבור עבודת הדוגמנות של Amazon Comprehend. מתן ערכים שונים לפרמטר NumberOfTopics ב-Amazon Comprehend פעולת StartTopicsDetectionJob גורם לשינוי בהתפלגות מילות המפתח המוצבות בכל קבוצת נושאים. ערך אופטימלי עבור הפרמטר NumberOfTopics מייצג את מספר הנושאים המספקים את הקיבוץ הקוהרנטי ביותר של מילות מפתח עם רלוונטיות הקשרית גבוהה יותר. אתה יכול לאחסן את פלט דוגמנות הנושא מ- Amazon Comprehend בפורמט הגולמי שלו באמזון S3.

ה-API של תווית האובייקטים של Amazon Rekognition מזהה תוויות בתמונות

אתה מנתח כל תמונה שחולצה מכל דפי האינטרנט באמצעות ה פעולת Amazon Rekognition DetectLabels. עבור כל תמונה, הפעולה מספקת תגובת JSON עם כל התוויות שזוהו בתוך התמונה, יחד עם ציון ביטחון עבור כל אחת מהן. במקרה השימוש שלנו, אנו בוחרים באופן שרירותי ציון ביטחון של 60% ומעלה כסף לשימוש בתוויות אובייקטים בשלב הבא. אתה מאחסן תוויות אובייקט בפורמט הגולמי שלהם באמזון S3. ראה את הקוד הבא:

"""
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 ממפה תוכן לטקסונומיה סטנדרטית

CITM משווה מטא נתונים של תוכן שחולצו (נושאים מטקסט ותוויות מתמונות) עם מילות מפתח בטקסונומיה של IAB, ולאחר מכן ממפה את המטא נתונים של התוכן למילות מפתח מהטקסונומיה הקשורות סמנטי. עבור משימה זו, CITM משלים את שלושת השלבים הבאים:

  1. צור הטבעות עצביות עבור טקסונומיית התוכן, מילות מפתח בנושא ותוויות תמונה באמצעות שנאי המשפטים BERT של Hugging Face. אנו ניגשים למודל שנאי המשפט מ אמזון SageMaker. בפוסט זה אנו משתמשים ב- פרפרזה-MiniLM-L6-v2 מודל, אשר ממפה מילות מפתח ותוויות למרחב וקטור צפוף של 384 ממדים.
  2. חשב את ציון הדמיון הקוסינוס בין מילות מפתח בטקסונומיה למילות מפתח בנושא באמצעות ההטמעות שלהן. זה גם מחשב דמיון קוסינוס בין מילות המפתח בטקסונומיה לבין תוויות אובייקט התמונה. אנו משתמשים בדמיון קוסינוס כמנגנון ניקוד כדי למצוא התאמות דומות מבחינה סמנטית בין המטא נתונים של התוכן והטקסונומיה. ראה את הקוד הבא:
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. זהה זיווגים עם ציוני דמיון שהם מעל סף שהוגדר על ידי המשתמש והשתמש בהם כדי למפות את התוכן למילות מפתח הקשורות מבחינה סמנטית בטקסונומיית התוכן. במבחן שלנו, אנו בוחרים את כל מילות המפתח מתוך זיווגים בעלות ציון דמיון קוסינוס של 0.5 ומעלה. ראה את הקוד הבא:
#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]:

אתגר נפוץ בעבודה עם ייצוג שפה בקנה מידה אינטרנט (כמו במקרה השימוש הזה) הוא שאתה צריך מודל שיכול להתאים לרוב התוכן - במקרה זה, מילים בשפה האנגלית. שנאי BERT של Hugging Face עבר הכשרה מוקדמת באמצעות קורפוס גדול של פוסטים בוויקיפדיה בשפה האנגלית כדי לייצג את המשמעות הסמנטית של מילים ביחס זו לזו. אתה מכוונן את המודל שהוכשר מראש באמצעות מערך הנתונים הספציפי שלך של מילות מפתח בנושא, תוויות תמונה ומילות מפתח בטקסונומיה. כאשר אתה מציב את כל ההטמעות באותו מרחב תכונה ומדמיין אותן, אתה רואה ש-BERT מייצג מבחינה לוגית דמיון סמנטי בין מונחים.

הדוגמה הבאה מציגה את מילות המפתח של טקסונומיית התוכן של IAB עבור המחלקה Automotive המיוצגת כווקטורים באמצעות BERT. BERT ממקמת מילות מפתח לרכב מהטקסונומיה קרובה למונחים דומים מבחינה סמנטית.

הדמיה של הטמעות BERT עבור מילות מפתח בטקסונומיה

וקטורי התכונה מאפשרים ל-CITM להשוות את תוויות המטא נתונים ומילות המפתח של הטקסונומיה באותו מרחב תכונה. במרחב תכונה זה, CITM מחשבת דמיון קוסינוס בין כל וקטור תכונה עבור מילות מפתח בטקסונומיה וכל וקטור תכונה עבור מילות מפתח בנושא. בשלב נפרד, CITM משווה וקטורים של תכונה טקסונומית ווקטורי תכונה עבור תוויות תמונה. זיווגים עם ציוני קוסינוס הקרובים ביותר ל-1 מזוהים כדומים מבחינה סמנטית. שים לב שהתאמה יכולה להיות מילת מפתח בנושא ומילת מפתח טקסונומית, או תווית אובייקט ומילת מפתח טקסונומית.

צילום המסך הבא מציג צימודים לדוגמה של מילות מפתח בנושא ומילות מפתח בטקסונומיה באמצעות דמיון קוסינוס המחושב עם הטבעות BERT.

צמדי מילות מפתח בנושא לטקסונומיה

כדי למפות תוכן למילות מפתח בטקסונומיה, CITM בוחר מילות מפתח מתוך זיווג עם ציוני קוסינוס העומדים בסף שהוגדר על ידי המשתמש. אלו הן מילות המפתח שישמשו בפלטפורמות למתן הצעות בזמן אמת לבחירת מודעות למלאי של דף האינטרנט. התוצאה היא מיפוי עשיר של תוכן מקוון לטקסונומיה.

אופציונלי לאחסן תוכן למיפוי טקסונומיה במאגר מטא נתונים

לאחר שתזהה מונחי טקסונומיה דומים מבחינה הקשרית מ-CITM, אתה צריך דרך עבור ממשקי API עם אחזור נמוך לגשת למידע הזה. בהצעת הצעות פרוגרמטית לפרסומות, זמן תגובה נמוך ובהקדמות גבוהה משחקים תפקיד חשוב במונטיזציה של התוכן. הסכימה של מאגר הנתונים צריכה להיות גמישה כדי להכיל מטא נתונים נוספים בעת הצורך כדי להעשיר בקשות להצעות מחיר. אמזון דינמו יכול להתאים לדפוסי הגישה לנתונים ולדרישות התפעול עבור שירות כזה.

סיכום

בפוסט זה, למדת כיצד לבנות פתרון מיקוד לפי הקשר מבוסס טקסונומיה באמצעות Contextual Intelligence Taxonomy Mapper (CITM). למדת כיצד להשתמש ב-Amazon Comprehend וב-Amazon Rekognition כדי לחלץ מטא נתונים מפורטים מנכסי המדיה שלך. לאחר מכן, באמצעות CITM מיפית את הנכסים לטקסונומיה סטנדרטית בתעשייה כדי להקל על הגשת הצעות מודעות פרוגרמטיות עבור מודעות הקשורות להקשר. אתה יכול להחיל מסגרת זו על מקרי שימוש אחרים הדורשים שימוש בטקסונומיה סטנדרטית כדי לשפר את הערך של נכסי מדיה קיימים.

כדי להתנסות עם CITM, אתה יכול לגשת אליו מאגר קוד והשתמש בו עם מערך נתונים של טקסט ותמונה לבחירתך.

אנו ממליצים ללמוד עוד על רכיבי הפתרון שהוצגו בפוסט זה. גלה עוד על מודיעין המדיה של AWS כדי לחלץ מטא נתונים מתוכן מדיה. כמו כן, למד עוד על אופן השימוש דגמי חיבוק פנים עבור NLP באמצעות Amazon SageMaker.


על הכותבים

בנה מיקוד הקשרי מבוסס טקסונומיה באמצעות AWS Media Intelligence ו-Huging Face BERT PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ארמיד קהיינדה הוא ארכיטקט פתרונות Sr. Partner ב-AWS בלמידת מכונה ובינה מלאכותית. מסע הקריירה שלה השתרע על תחומי הבינה העסקית והאנליטיקה המתקדמת במגוון תעשיות. היא פועלת כדי לאפשר לשותפים לבנות פתרונות עם שירותי AWS AI/ML המשרתים את צרכי הלקוחות לחדשנות. היא גם נהנית לבנות את ההצטלבות של AI וזירות יצירתיות ולבלות עם משפחתה.

בנה מיקוד הקשרי מבוסס טקסונומיה באמצעות AWS Media Intelligence ו-Huging Face BERT PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.אנוג 'גופטה הוא ארכיטקט פתרונות ראשי שעובד עם חברות היפר-צמיחה במסע המקור שלהן לענן. הוא נלהב משימוש בטכנולוגיה כדי לפתור בעיות מאתגרות ועבד עם לקוחות כדי לבנות יישומים מפוזרים מאוד ועם חביון נמוך. הוא תורם לפתרונות ללא שרת ולמידת מכונה בקוד פתוח. מחוץ לעבודה, הוא אוהב לטייל עם משפחתו ולכתוב שירים ובלוגים פילוסופיים.

בול זמן:

עוד מ למידת מכונות AWS