Створіть контекстне націлювання на основі таксономії за допомогою AWS Media Intelligence та Hugging Face BERT PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Створіть контекстне націлювання на основі таксономії за допомогою AWS Media Intelligence та Hugging Face BERT

Оскільки набули чинності нові правила конфіденційності даних, як-от GDPR (Загальний регламент захисту даних, 2017), клієнти опинилися під підвищеним тиском щодо монетизації медіа-активів, дотримуючись нових правил. Монетизація медіа з дотриманням правил конфіденційності вимагає можливості автоматично витягувати детальні метадані з активів, таких як текст, зображення, відео та аудіофайли, в масштабі Інтернету. Це також вимагає масштабованого способу відображення медіа-активів у галузевих таксономіях, що полегшує пошук і монетизацію вмісту. Цей варіант використання особливо важливий для рекламної індустрії, оскільки правила конфіденційності даних призводять до переходу від поведінкового націлювання за допомогою сторонніх файлів cookie.

Файли cookie третіх сторін допомогти увімкнути персоналізовану рекламу для веб-користувачів і дозволити рекламодавцям охопити цільову аудиторію. Традиційним рішенням для показу реклами без сторонніх файлів cookie є контекстна реклама, яка розміщує рекламу на веб-сторінках на основі вмісту, опублікованого на сторінках. Однак контекстна реклама ставить перед собою завдання вилучення контексту з медіа-активів у масштабі та використання цього контексту для монетизації активів.

У цій публікації ми обговорюємо, як створити рішення машинного навчання (ML), яке ми називаємо Contextual Intelligence Taxonomy Mapper (CITM), щоб витягувати контекст із цифрового вмісту та зіставляти його зі стандартними таксономіями, щоб створювати цінність. Хоча ми застосовуємо це рішення для контекстної реклами, ви можете використовувати його для вирішення інших випадків використання. Наприклад, компанії, що займаються освітніми технологіями, можуть використовувати його для зіставлення свого контенту з таксономіями галузі, щоб сприяти адаптивному навчанню, яке забезпечує персоналізований досвід навчання на основі індивідуальних потреб учнів.

Огляд рішення

Рішення складається з двох компонентів: AWS Media Intelligence (AWS MI) для вилучення контексту з вмісту на веб-сторінках і CITM для інтелектуального зіставлення вмісту з таксономією галузі. Ви можете отримати доступ до рішення сховище коду для детального огляду того, як ми реалізуємо його компоненти.

AWS Media Intelligence

Можливості AWS MI дозволяють автоматично витягувати метадані, що забезпечує контекстне розуміння вмісту веб-сторінки. Ви можете об’єднати такі методи машинного навчання, як комп’ютерне бачення, перетворення мови в текст і обробку природної мови (NLP), щоб автоматично генерувати метадані з тексту, відео, зображень і аудіофайлів для подальшої обробки. Керовані служби ШІ, такі як Amazon Rekognition, Амазонська розшифровка, «Амазонка» та Текст Amazon зробити ці методи ML доступними за допомогою викликів API. Це усуває накладні витрати, необхідні для навчання та створення моделей машинного навчання з нуля. У цій публікації ви побачите, як використання Amazon Comprehend і Amazon Rekognition для медіарозвідки дозволяє видобувати метадані в масштабі.

Картограф таксономії контекстного інтелекту

Після вилучення метаданих із медіа-контенту вам потрібен спосіб зіставити ці метадані з таксономією галузі, щоб полегшити контекстне націлювання. Для цього ви створюєте Contextual Intelligence Taxonomy Mapper (CITM), який працює на базі трансформатора речень BERT від Hugging Face.

Перетворювач речень BERT дозволяє CITM класифікувати веб-вміст за контекстно пов’язаними ключовими словами. Наприклад, він може класифікувати веб-статтю про здоровий спосіб життя за ключовими словами з галузевої таксономії, як-от «Здорове приготування їжі та харчування», «Біг і біг підтюпцем» тощо на основі написаного тексту та зображень, використаних у статті. CITM також надає можливість вибирати нанесені таксономічні терміни для використання в процесі призначення ставок на основі ваших критеріїв.

Наступна діаграма ілюструє концептуальний погляд на архітектуру з CITM.

Таксономія вмісту IAB (Бюро інтерактивної реклами).

Для цього допису ми використовуємо Таксономія вмісту IAB Tech Lab як галузева стандартна таксономія для контекстної реклами. За своєю думкою таксономія IAB допомагає творцям вмісту точніше описувати свій вміст і забезпечує спільну мову для всіх сторін у процесі програмної реклами. Використання спільної термінології має вирішальне значення, оскільки вибір реклами для веб-сторінки, яку відвідує користувач, має відбуватися протягом мілісекунд. Таксономія IAB служить стандартизованим способом класифікації вмісту з різних джерел, а також є галузевим протоколом, який платформи призначення ставок у реальному часі використовують для вибору оголошень. Він має ієрархічну структуру, яка забезпечує деталізацію термінів таксономії та розширений контекст для рекламодавців.

Робочий процес рішення

Наступна діаграма ілюструє робочий процес рішення.

Огляд рішення CITM

Ці кроки є наступними:

  1. Служба простого зберігання Amazon (Amazon S3) зберігає таксономію вмісту IAB і витягнутий веб-вміст.
  2. Amazon Comprehend виконує тематичне моделювання, щоб виділити загальні теми з колекції статей.
  3. Визнання Amazon 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 виконує тематичне моделювання, щоб виділити загальні теми з колекції статей

За допомогою API моделювання тем Amazon Comprehend ви аналізуєте всі тексти статей за допомогою моделі латентного розподілу Діріхле (LDA). Модель аналізує кожну статтю в корпусі та групує ключові слова в одну тему на основі контексту та частоти, в якій вони з’являються в усій колекції статей. Щоб переконатися, що модель LDA виявляє високоузгоджені теми, ви виконуєте етап попередньої обробки перед викликом Amazon Comprehend API. Ви можете використовувати бібліотека Gensim 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.

API міток об’єктів 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. Ми отримуємо доступ до моделі трансформатора речення з Amazon 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 з низькою затримкою доступу до цієї інформації. У програмному призначенні ставок для реклами низький час відповіді та високий паралелізм відіграють важливу роль у монетизації вмісту. Схема для сховища даних має бути гнучкою, щоб розмістити додаткові метадані, коли це необхідно для розширення запитів ставок. Amazon DynamoDB може відповідати шаблонам доступу до даних і робочим вимогам для такої служби.

Висновок

У цій публікації ви дізналися, як створити рішення контекстного націлювання на основі таксономії за допомогою Contextual Intelligence Taxonomy Mapper (CITM). Ви навчилися використовувати Amazon Comprehend і Amazon Rekognition для отримання детальних метаданих із ваших медіа-активів. Потім, використовуючи CITM, ви зіставляєте активи зі стандартною таксономією галузі, щоб полегшити програмне призначення ставок для контекстно пов’язаних оголошень. Ви можете застосувати цю структуру до інших випадків використання, які потребують використання стандартної таксономії для підвищення цінності існуючих медіа-активів.

Щоб експериментувати з CITM, ви можете отримати доступ до його сховище коду і використовуйте його з набором даних тексту та зображень на ваш вибір.

Ми рекомендуємо дізнатися більше про компоненти рішення, представлені в цій публікації. Дізнайтеся більше про AWS Media Intelligence для отримання метаданих із медіаконтенту. Також дізнайтеся більше про те, як використовувати Моделі Hugging Face для НЛП за допомогою Amazon SageMaker.


Про авторів

Створіть контекстне націлювання на основі таксономії за допомогою AWS Media Intelligence та Hugging Face BERT PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Арамід Кехінде є старшим партнером-архітектором рішень в AWS у сфері машинного навчання та штучного інтелекту. Її кар’єрний шлях охоплював сфери бізнес-аналітики та передової аналітики в багатьох галузях. Вона працює над тим, щоб надати партнерам можливість створювати рішення за допомогою сервісів AWS AI/ML, які відповідають потребам клієнтів в інноваціях. Їй також подобається створювати перетин ШІ та творчих арен і проводити час із сім’єю.

Створіть контекстне націлювання на основі таксономії за допомогою AWS Media Intelligence та Hugging Face BERT PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Анудж Гупта є головним архітектором рішень, який працює з компаніями, що швидко розвиваються, на шляху до хмарних технологій. Він захоплений використанням технологій для вирішення складних проблем і працював із клієнтами над розробкою високо розподілених програм із низькою затримкою. Він робить внесок у безсерверні та машинне навчання з відкритим кодом. Поза роботою він любить подорожувати з родиною, писати вірші та філософські блоги.

Часова мітка:

Більше від AWS Машинне навчання