Создавайте контекстный таргетинг на основе таксономии с помощью AWS Media Intelligence и Hugging Face BERT PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Создавайте контекстный таргетинг на основе таксономии с помощью AWS Media Intelligence и Hugging Face BERT.

По мере вступления в силу новых правил конфиденциальности данных, таких как GDPR (Общее положение о защите данных, 2017 г.), клиенты все чаще вынуждены монетизировать медиаактивы, соблюдая новые правила. Монетизация мультимедиа с соблюдением правил конфиденциальности требует возможности автоматического извлечения метаданных из таких ресурсов, как текст, изображения, видео и аудиофайлы, в масштабе Интернета. Кроме того, требуется масштабируемый способ сопоставления медиаактивов с отраслевыми таксономиями, что облегчает обнаружение и монетизацию контента. Этот вариант использования особенно важен для рекламной индустрии, поскольку правила конфиденциальности данных вызывают переход от поведенческого таргетинга с использованием сторонних файлов cookie.

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

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

Обзор решения

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

Медиа-аналитика AWS

Возможности AWS MI позволяют автоматически извлекать метаданные, обеспечивающие контекстуальное понимание содержимого веб-страницы. Вы можете комбинировать методы машинного обучения, такие как компьютерное зрение, преобразование речи в текст и обработку естественного языка (NLP), чтобы автоматически генерировать метаданные из текста, видео, изображений и аудиофайлов для использования в последующей обработке. Услуги управляемого ИИ, такие как Апостол, Amazon транскрибировать, Amazon Comprehendкачества Амазонка Текст сделать эти методы машинного обучения доступными с помощью вызовов API. Это устраняет накладные расходы, необходимые для обучения и создания моделей машинного обучения с нуля. В этом посте вы увидите, как использование Amazon Comprehend и Amazon Rekognition для анализа мультимедиа позволяет извлекать метаданные в любом масштабе.

Картограф таксономии контекстного интеллекта

После того, как вы извлечете метаданные из медиаконтента, вам понадобится способ сопоставить эти метаданные с отраслевой таксономией, чтобы упростить контекстный таргетинг. Для этого вы создаете картограф таксономии контекстного интеллекта (CITM), который работает на преобразователе предложений BERT от Hugging Face.

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

Следующая диаграмма иллюстрирует концептуальное представление архитектуры с CITM.

Таксономия контента IAB (Бюро интерактивной рекламы)

Для этого поста мы используем Таксономия контента IAB Tech Lab в качестве стандартной отраслевой таксономии для случая использования контекстной рекламы. По своему замыслу таксономия IAB помогает создателям контента более точно описывать свой контент и обеспечивает общий язык для всех участников процесса программной рекламы. Использование общей терминологии имеет решающее значение, поскольку выбор рекламы для веб-страницы, которую посещает пользователь, должен происходить в течение миллисекунд. Таксономия IAB служит стандартизированным способом категоризации контента из различных источников, а также является отраслевым протоколом, который платформы ставок в реальном времени используют для выбора рекламы. Он имеет иерархическую структуру, которая обеспечивает детализацию терминов таксономии и расширенный контекст для рекламодателей.

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

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

Обзор решения CITM

Эти шаги заключаются в следующем:

  1. Простой сервис хранения Amazon (Amazon S3) хранит таксономию контента IAB и извлеченный веб-контент.
  2. Amazon Comprehend выполняет тематическое моделирование, чтобы выделить общие темы из коллекции статей.
  3. Признание Амазонки 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 выявляет очень согласованные темы, вы выполняете шаг предварительной обработки перед вызовом API Amazon Comprehend. Вы можете использовать библиотека 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. Мы получаем доступ к модели преобразователя предложений из Создатель мудреца Амазонки. В этом посте мы используем перефразировать-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 для извлечения метаданных из медиаконтента. Кроме того, узнайте больше о том, как использовать Модели обнимающих лиц для НЛП с использованием Amazon SageMaker.


Об авторах

Создавайте контекстный таргетинг на основе таксономии с помощью AWS Media Intelligence и Hugging Face BERT PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Арамид Кехинде является старшим партнером-архитектором решений в AWS в области машинного обучения и искусственного интеллекта. Ее карьерный путь охватывает области бизнес-аналитики и расширенной аналитики в различных отраслях. Она помогает партнерам создавать решения с помощью сервисов AWS AI/ML, которые удовлетворяют потребности клиентов в инновациях. Ей также нравится создавать пересечение ИИ и творческих арен и проводить время со своей семьей.

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

Отметка времени:

Больше от Машинное обучение AWS