أنشئ استهدافًا سياقيًا قائمًا على التصنيف باستخدام AWS Media Intelligence و Hugging Face BERT PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

أنشئ استهدافًا سياقيًا قائمًا على التصنيف باستخدام AWS Media Intelligence و Hugging Face BERT

نظرًا لأن لوائح خصوصية البيانات الجديدة مثل GDPR (اللائحة العامة لحماية البيانات ، 2017) قد دخلت حيز التنفيذ ، فإن العملاء يتعرضون لضغوط متزايدة لتحقيق الدخل من أصول الوسائط مع الالتزام بالقواعد الجديدة. يتطلب تحقيق الدخل من الوسائط مع احترام لوائح الخصوصية القدرة على استخراج البيانات الوصفية الدقيقة تلقائيًا من الأصول مثل النصوص والصور والفيديو والملفات الصوتية على نطاق الإنترنت. كما يتطلب أيضًا طريقة قابلة للتطوير لتعيين أصول الوسائط لتصنيفات الصناعة التي تسهل اكتشاف المحتوى وتحقيق الدخل منه. تعتبر حالة الاستخدام هذه مهمة بشكل خاص لصناعة الإعلانات حيث تتسبب قواعد خصوصية البيانات في حدوث تحول عن الاستهداف السلوكي باستخدام ملفات تعريف ارتباط الطرف الثالث.

ملفات تعريف ارتباط الطرف الثالث تساعد في تمكين الإعلانات المخصصة لمستخدمي الويب ، وتسمح للمعلنين بالوصول إلى الجمهور المستهدف. الحل التقليدي لعرض الإعلانات بدون ملفات تعريف ارتباط الطرف الثالث هو الإعلانات السياقية ، والتي تضع الإعلانات على صفحات الويب بناءً على المحتوى المنشور على الصفحات. ومع ذلك ، يشكل الإعلان السياقي تحديًا يتمثل في استخراج السياق من أصول الوسائط على نطاق واسع ، وكذلك استخدام هذا السياق لتحقيق الدخل من الأصول.

في هذا المنشور ، نناقش كيف يمكنك بناء حل التعلم الآلي (ML) الذي نسميه مخطط تصنيف الذكاء السياقي (CITM) لاستخراج السياق من المحتوى الرقمي وتعيينه إلى التصنيفات القياسية من أجل توليد القيمة. على الرغم من أننا نطبق هذا الحل على الإعلانات السياقية ، إلا أنه يمكنك استخدامه لحل حالات الاستخدام الأخرى. على سبيل المثال ، يمكن لشركات تكنولوجيا التعليم استخدامها لتعيين محتواها لتصنيفات الصناعة من أجل تسهيل التعلم التكيفي الذي يقدم تجارب تعليمية مخصصة بناءً على الاحتياجات الفردية للطلاب.

حل نظرة عامة

يتكون الحل من مكونين: ذكاء الوسائط في AWS (AWS MI) لاستخراج السياق من المحتوى على صفحات الويب ، و CITM للتعيين الذكي للمحتوى إلى تصنيف الصناعة. يمكنك الوصول إلى ملفات مستودع التعليمات البرمجية للحصول على عرض تفصيلي لكيفية تنفيذ مكوناته.

ذكاء الوسائط في AWS

تتيح إمكانيات AWS MI الاستخراج التلقائي للبيانات الوصفية التي توفر فهمًا سياقيًا لمحتوى صفحة الويب. يمكنك الجمع بين تقنيات ML مثل رؤية الكمبيوتر والكلام إلى النص ومعالجة اللغة الطبيعية (NLP) لإنشاء البيانات الوصفية تلقائيًا من النصوص ومقاطع الفيديو والصور والملفات الصوتية لاستخدامها في المعالجة النهائية. خدمات الذكاء الاصطناعي المدارة مثل الأمازون إعادة الاعتراف, الأمازون النسخ, فهم الأمازونو أمازون تيكستراك اجعل تقنيات ML هذه قابلة للوصول باستخدام استدعاءات API. هذا يزيل العبء اللازم لتدريب وبناء نماذج ML من البداية. في هذا المنشور ، سترى كيف يتيح استخدام Amazon Comprehend و Amazon Rekognition لذكاء الوسائط إمكانية استخراج البيانات الوصفية على نطاق واسع.

مخطط تصنيف الذكاء السياقي

بعد استخراج البيانات الوصفية من محتوى الوسائط ، تحتاج إلى طريقة لتعيين تلك البيانات الوصفية إلى تصنيف صناعي من أجل تسهيل استهداف المحتوى. للقيام بذلك ، يمكنك إنشاء مخطط تصنيف الذكاء السياقي (CITM) ، والذي يتم تشغيله بواسطة محول جملة BERT من Hugging Face.

يمكّن محول جملة BERT CITM من تصنيف محتوى الويب باستخدام كلمات رئيسية مرتبطة بالسياق. على سبيل المثال ، يمكنه تصنيف مقالة ويب حول الحياة الصحية باستخدام كلمات رئيسية من تصنيف الصناعة ، مثل "الطبخ الصحي وتناول الطعام" و "الجري والركض" وغير ذلك ، استنادًا إلى النص المكتوب والصور المستخدمة في المقالة. توفر CITM أيضًا القدرة على اختيار مصطلحات التصنيف المعينة لاستخدامها في عملية عرض تسعير إعلانك بناءً على المعايير الخاصة بك.

يوضح الرسم البياني التالي وجهة النظر المفاهيمية للهندسة المعمارية باستخدام CITM.

تصنيف المحتوى IAB (مكتب الإعلان التفاعلي)

لهذا المنصب ، نستخدم تصنيف المحتوى في IAB Tech Lab باعتباره التصنيف القياسي للصناعة لحالة استخدام الإعلانات السياقية. حسب التصميم ، يساعد تصنيف IAB منشئي المحتوى في وصف المحتوى الخاص بهم بدقة أكبر ، ويوفر لغة مشتركة لجميع الأطراف في عملية الإعلان الآلي. يعد استخدام المصطلحات الشائعة أمرًا بالغ الأهمية لأن اختيار الإعلانات لصفحة ويب يزورها المستخدم يجب أن يتم في غضون أجزاء من الثانية. يعمل تصنيف IAB كطريقة معيارية لتصنيف المحتوى من مصادر مختلفة مع كونه أيضًا بروتوكولًا صناعيًا تستخدمه منصات عروض الأسعار في الوقت الفعلي لاختيار الإعلانات. يحتوي على هيكل هرمي يوفر دقة في مصطلحات التصنيف وسياقًا محسنًا للمعلنين.

سير عمل الحل

يوضح الرسم البياني التالي سير عمل الحل.

الإفراط في حل CITM

والخطوات هي كما يلي:

  1. خدمة تخزين أمازون البسيطة (Amazon S3) يخزن تصنيف محتوى IAB ومحتوى الويب المستخرج.
  2. ينفذ Amazon Comprehend نمذجة الموضوعات لاستخراج السمات المشتركة من مجموعة المقالات.
  3. الأمازون Rekognition كائن تسمية API بالكشف عن التسميات في الصور.
  4. تقوم CITM بتعيين المحتوى إلى تصنيف قياسي.
  5. اختياريًا ، يمكنك تخزين المحتوى لتعيين التصنيف في مخزن البيانات الوصفية.

في الأقسام التالية ، نتصفح كل خطوة بالتفصيل.

يخزن Amazon 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 نمذجة الموضوعات لاستخراج السمات المشتركة من مجموعة المقالات

باستخدام واجهة برمجة التطبيقات لنمذجة الموضوعات Amazon Comprehend ، يمكنك تحليل جميع نصوص المقالات باستخدام نموذج تخصيص Latent Dirichlet Allocation (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 بتنسيقه الأولي في Amazon S3.

تكتشف واجهة برمجة تطبيقات تسمية الكائن Amazon Rekognition العلامات في الصور

تقوم بتحليل كل صورة مستخرجة من جميع صفحات الويب باستخدام ملف عملية Amazon Rekognition DetectLabels. لكل صورة ، توفر العملية استجابة JSON مع جميع التسميات المكتشفة داخل الصورة ، إلى جانب درجة الثقة لكل منها. بالنسبة لحالة الاستخدام الخاصة بنا ، نحدد بشكل تعسفي درجة ثقة تبلغ 60٪ أو أعلى كحد أدنى لتسميات الكائنات لاستخدامها في الخطوة التالية. تقوم بتخزين تسميات الكائنات بتنسيقها الأولي في Amazon 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 مسبقًا باستخدام مجموعة كبيرة من منشورات Wikipedia باللغة الإنجليزية لتمثيل المعنى الدلالي للكلمات فيما يتعلق ببعضها البعض. يمكنك ضبط النموذج المدرَّب مسبقًا باستخدام مجموعة البيانات المحددة الخاصة بك من الكلمات الأساسية للموضوع وتسميات الصور والكلمات الأساسية للتصنيف. عندما تضع جميع الزخارف في نفس مساحة الميزة وتتخيلها ، ترى أن BERT يمثل منطقيًا التشابه الدلالي بين المصطلحات.

يوضح المثال التالي الكلمات الأساسية لتصنيف محتوى IAB لفئة السيارات الممثلة كمتجهات باستخدام BERT. يضع BERT الكلمات الرئيسية الخاصة بالسيارات من التصنيف قريبة من المصطلحات المتشابهة لغويًا.

تصور حفلات الزفاف BERT للكلمات الأساسية للتصنيف

تسمح متجهات الميزات لـ CITM بمقارنة تسميات البيانات الوصفية والكلمات الأساسية للتصنيف في نفس مساحة الميزة. في مساحة الميزة هذه ، تحسب CITM تشابه جيب التمام بين كل متجه ميزة للكلمات الأساسية للتصنيف وكل متجه ميزة للكلمات الأساسية للموضوع. في خطوة منفصلة ، يقارن CITM متجهات ميزات التصنيف ونواقل الميزات لتسميات الصور. يتم تحديد عمليات الاقتران مع درجات جيب التمام الأقرب إلى 1 على أنها متشابهة لغويًا. لاحظ أن الاقتران يمكن أن يكون إما كلمة رئيسية للموضوع وكلمة أساسية للتصنيف ، أو تسمية كائن وكلمة أساسية للتصنيف.

تُظهر لقطة الشاشة التالية أمثلة على أزواج الكلمات المفتاحية للموضوعات والكلمات الأساسية للتصنيف باستخدام تشابه جيب التمام المحسوب مع التضمينات BERT.

موضوع لتصنيف أزواج الكلمات الرئيسية

لتعيين محتوى إلى كلمات رئيسية للتصنيف ، تختار CITM الكلمات الرئيسية من عمليات الاقتران مع درجات جيب التمام التي تلبي حدًا محددًا من قبل المستخدم. هذه هي الكلمات الرئيسية التي سيتم استخدامها في منصات عروض الأسعار في الوقت الفعلي لاختيار الإعلانات لمخزون صفحة الويب. والنتيجة هي تعيين منسق للمحتوى عبر الإنترنت للتصنيف.

قم بتخزين المحتوى اختياريًا لرسم الخرائط التصنيفية في مخزن البيانات الوصفية

بعد تحديد مصطلحات التصنيف المتشابهة من حيث السياق من CITM ، فإنك تحتاج إلى طريقة لواجهات برمجة التطبيقات ذات زمن الاستجابة المنخفض للوصول إلى هذه المعلومات. في عروض الأسعار الآلية للإعلانات ، يلعب وقت الاستجابة المنخفض والتزامن العالي دورًا مهمًا في تحقيق الدخل من المحتوى. يجب أن يكون مخطط مخزن البيانات مرنًا لاستيعاب البيانات الوصفية الإضافية عند الحاجة لإثراء طلبات العطاء. الأمازون DynamoDB يمكن أن تتطابق مع أنماط الوصول إلى البيانات والمتطلبات التشغيلية لمثل هذه الخدمة.

وفي الختام

في هذا المنشور ، تعلمت كيفية إنشاء حل استهداف سياقي قائم على التصنيف باستخدام مخطط تصنيف الذكاء السياقي (CITM). لقد تعلمت كيفية استخدام Amazon Comprehend و Amazon Rekognition لاستخراج البيانات الوصفية الدقيقة من أصول الوسائط الخاصة بك. بعد ذلك ، باستخدام CITM ، قمت بتعيين الأصول لتصنيف معياري صناعي لتسهيل عروض تسعير الإعلانات الآلية للإعلانات ذات الصلة بالسياق. يمكنك تطبيق إطار العمل هذا على حالات الاستخدام الأخرى التي تتطلب استخدام تصنيف قياسي لتحسين قيمة أصول الوسائط الموجودة.

لتجربة CITM ، يمكنك الوصول إلى ملف مستودع التعليمات البرمجية واستخدمها مع مجموعة بيانات نصية وصورة من اختيارك.

نوصي بمعرفة المزيد حول مكونات الحل المقدمة في هذا المنشور. اكتشف المزيد حول ذكاء الوسائط في AWS لاستخراج البيانات الوصفية من محتوى الوسائط. أيضا ، تعرف على المزيد حول كيفية الاستخدام نماذج Hugging Face لـ البرمجة اللغوية العصبية باستخدام Amazon SageMaker.


حول المؤلف

أنشئ استهدافًا سياقيًا قائمًا على التصنيف باستخدام AWS Media Intelligence و Hugging Face BERT PlatoBlockchain Data Intelligence. البحث العمودي. عاي.اراميد كيهينده هو مهندس حلول شريك كبير في AWS في مجال التعلم الآلي والذكاء الاصطناعي. امتدت رحلتها المهنية إلى مجالات ذكاء الأعمال والتحليلات المتقدمة عبر العديد من الصناعات. تعمل على تمكين الشركاء من بناء حلول باستخدام خدمات AWS AI / ML التي تخدم احتياجات العملاء للابتكار. تستمتع أيضًا ببناء تقاطع الذكاء الاصطناعي والساحات الإبداعية وقضاء الوقت مع عائلتها.

أنشئ استهدافًا سياقيًا قائمًا على التصنيف باستخدام AWS Media Intelligence و Hugging Face BERT PlatoBlockchain Data Intelligence. البحث العمودي. عاي.أنوج جوبتا هو مهندس حلول رئيسي يعمل مع شركات فائقة النمو في رحلتهم السحابية الأصلية. إنه متحمس لاستخدام التكنولوجيا لحل المشكلات الصعبة وقد عمل مع العملاء لبناء تطبيقات موزعة بشكل كبير وزمن انتقال منخفض. يساهم في حلول التعلم الآلي و Serverless مفتوحة المصدر. خارج العمل ، يحب السفر مع أسرته وكتابة القصائد والمدونات الفلسفية.

الطابع الزمني:

اكثر من التعلم الآلي من AWS