AWS Media Intelligence 및 Hugging Face BERT PlatoBlockchain Data Intelligence를 사용하여 분류 기반 컨텍스트 타겟팅을 구축합니다. 수직 검색. 일체 포함.

AWS Media Intelligence 및 Hugging Face BERT를 사용하여 분류 기반 컨텍스트 타겟팅 구축

GDPR(일반 데이터 보호 규정, 2017)과 같은 새로운 데이터 개인 정보 보호 규정이 시행됨에 따라 고객은 새로운 규칙을 준수하면서 미디어 자산을 수익화해야 하는 압박을 받고 있습니다. 개인 정보 보호 규정을 준수하면서 미디어에서 수익을 창출하려면 인터넷 규모의 텍스트, 이미지, 비디오 및 오디오 파일과 같은 자산에서 세분화된 메타데이터를 자동으로 추출하는 기능이 필요합니다. 또한 미디어 자산을 콘텐츠 검색 및 수익 창출을 용이하게 하는 산업 분류에 매핑하는 확장 가능한 방법이 필요합니다. 이 사용 사례는 데이터 개인 정보 보호 규칙이 제XNUMX자 쿠키를 사용하는 행동 타겟팅에서 전환을 야기하기 때문에 광고 산업에 특히 중요합니다.

제 3 자 쿠키 웹 사용자를 위한 개인 맞춤 광고를 활성화하고 광고주가 의도한 잠재고객에게 도달할 수 있도록 합니다. 타사 쿠키 없이 광고를 제공하는 기존 솔루션은 페이지에 게시된 콘텐츠를 기반으로 웹페이지에 광고를 게재하는 문맥 광고입니다. 그러나 컨텍스트 광고는 미디어 자산에서 대규모로 컨텍스트를 추출하고 해당 컨텍스트를 사용하여 자산을 수익화해야 하는 과제를 안고 있습니다.

이 게시물에서는 CITM(Contextual Intelligence Taxonomy Mapper)이라고 하는 기계 학습(ML) 솔루션을 구축하여 디지털 콘텐츠에서 컨텍스트를 추출하고 이를 표준 분류에 매핑하여 가치를 생성하는 방법에 대해 설명합니다. 이 솔루션을 문맥 광고에 적용하지만 다른 사용 사례를 해결하는 데 사용할 수 있습니다. 예를 들어, 교육 기술 회사는 이를 사용하여 학생의 개별 요구에 따라 개인화된 학습 경험을 제공하는 적응 학습을 촉진하기 위해 콘텐츠를 산업 분류에 매핑할 수 있습니다.

솔루션 개요

솔루션은 두 가지 구성 요소로 구성됩니다. AWS 미디어 인텔리전스 (AWS MI) 웹 페이지의 콘텐츠에서 컨텍스트 추출을 위한 기능 및 산업 분류에 대한 콘텐츠의 지능적 매핑을 위한 CITM. 솔루션에 액세스할 수 있습니다. 코드 저장소 구성 요소를 구현하는 방법에 대한 자세한 내용은

AWS 미디어 인텔리전스

AWS MI 기능을 사용하면 웹 페이지 콘텐츠에 대한 컨텍스트 이해를 제공하는 메타데이터를 자동으로 추출할 수 있습니다. 컴퓨터 비전, 음성을 텍스트로 변환, 자연어 처리(NLP)와 같은 ML 기술을 결합하여 다운스트림 처리에 사용할 텍스트, 비디오, 이미지 및 오디오 파일에서 메타데이터를 자동으로 생성할 수 있습니다. 다음과 같은 관리형 AI 서비스 아마존 인식, 아마존 전사, 아마존 이해아마존 텍사스 API 호출을 사용하여 이러한 ML 기술에 액세스할 수 있도록 합니다. 이렇게 하면 ML 모델을 처음부터 훈련하고 구축하는 데 필요한 오버헤드가 제거됩니다. 이 게시물에서는 미디어 인텔리전스를 위해 Amazon Comprehend 및 Amazon Rekognition을 사용하여 대규모 메타데이터 추출을 지원하는 방법을 알아봅니다.

컨텍스트 인텔리전스 분류 매퍼

미디어 콘텐츠에서 메타데이터를 추출한 후에는 컨텍스트 타겟팅을 용이하게 하기 위해 해당 메타데이터를 산업 분류에 매핑하는 방법이 필요합니다. 이를 위해 Hugging Face의 BERT 문장 변환기로 구동되는 CITM(Contextual Intelligence Taxonomy Mapper)을 구축합니다.

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. 선택적으로 메타데이터 저장소의 분류 매핑에 콘텐츠를 저장할 수 있습니다.

다음 섹션에서는 각 단계를 자세히 살펴봅니다.

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 주제 모델링 API를 사용하면 LDA(Latent Dirichlet Allocation) 모델을 사용하여 모든 기사 텍스트를 분석할 수 있습니다. 이 모델은 말뭉치의 각 기사를 검사하고 전체 기사 컬렉션에서 키워드가 나타나는 컨텍스트와 빈도를 기반으로 키워드를 동일한 주제로 그룹화합니다. 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 주제 모델링 작업에 해당 값을 사용합니다. Amazon Comprehend에서 NumberOfTopics 파라미터에 다른 값 제공 StartTopicsDetectionJob 작업 결과적으로 각 주제 그룹에 배치된 키워드 분포의 변형이 발생합니다. NumberOfTopics 매개변수에 대한 최적화된 값은 문맥 관련성이 더 높은 가장 일관된 키워드 그룹을 제공하는 주제의 수를 나타냅니다. Amazon Comprehend의 주제 모델링 출력을 Amazon S3에 원시 형식으로 저장할 수 있습니다.

Amazon Rekognition 객체 레이블 API는 이미지에서 레이블을 감지합니다.

당신은 사용하여 모든 웹 페이지에서 추출한 각 이미지를 분석합니다 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. Hugging Face의 BERT 문장 변환기를 사용하여 콘텐츠 분류, 주제 키워드 및 이미지 레이블에 대한 신경 임베딩을 생성합니다. 우리는 다음에서 문장 변환기 모델에 액세스합니다. 아마존 세이지 메이커. 이 포스트에서 우리는 의역-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]:

인터넷 규모의 언어 표현(예: 이 사용 사례)으로 작업할 때 일반적인 문제는 대부분의 콘텐츠(이 경우 영어 단어)에 맞는 모델이 필요하다는 것입니다. Hugging Face의 BERT 변환기는 서로 관련하여 단어의 의미론적 의미를 나타내기 위해 영어로 된 방대한 Wikipedia 게시물을 사용하여 사전 훈련되었습니다. 주제 키워드, 이미지 레이블 및 분류 키워드의 특정 데이터 세트를 사용하여 사전 훈련된 모델을 미세 조정합니다. 모든 임베딩을 동일한 기능 공간에 배치하고 시각화하면 BERT가 용어 간의 의미론적 유사성을 논리적으로 나타내는 것을 알 수 있습니다.

다음 예제는 BERT를 사용하여 벡터로 표현되는 Automotive 클래스에 대한 IAB 콘텐츠 분류 키워드를 시각화합니다. BERT는 분류 체계의 Automotive 키워드를 의미상 유사한 용어에 가깝게 배치합니다.

분류 키워드에 대한 BERT 임베딩 시각화

기능 벡터를 사용하면 CITM이 동일한 기능 공간에서 메타데이터 레이블과 분류 키워드를 비교할 수 있습니다. 이 특성 공간에서 CITM은 분류 키워드에 대한 각 특성 벡터와 주제 키워드에 대한 각 특성 벡터 간의 코사인 유사성을 계산합니다. 별도의 단계에서 CITM은 이미지 레이블에 대한 분류 특징 벡터와 특징 벡터를 비교합니다. 1에 가장 가까운 코사인 점수를 갖는 쌍은 의미상 유사한 것으로 식별됩니다. 쌍은 주제 키워드와 분류법 키워드 또는 개체 레이블과 분류법 키워드가 될 수 있습니다.

다음 스크린샷은 BERT 임베딩으로 계산된 코사인 유사도를 사용하여 주제 키워드와 분류 키워드의 예시 쌍을 보여줍니다.

분류 키워드 쌍에 대한 주제

콘텐츠를 분류 키워드에 매핑하기 위해 CITM은 사용자 정의 임계값을 충족하는 코사인 점수가 있는 쌍에서 키워드를 선택합니다. 실시간 입찰 플랫폼에서 웹페이지 인벤토리에 대한 광고를 선택하는 데 사용되는 키워드입니다. 결과는 분류 체계에 대한 온라인 콘텐츠의 풍부한 매핑입니다.

선택적으로 메타데이터 저장소의 분류 매핑에 대한 콘텐츠 저장

CITM에서 문맥상 유사한 분류 용어를 식별한 후에는 대기 시간이 짧은 API가 이 정보에 액세스할 수 있는 방법이 필요합니다. 광고에 대한 프로그래밍 방식 입찰에서 낮은 응답 시간과 높은 동시성은 콘텐츠 수익 창출에 중요한 역할을 합니다. 데이터 저장소의 스키마는 입찰 요청을 보강해야 할 때 추가 메타데이터를 수용할 수 있도록 유연해야 합니다. 아마존 DynamoDB 이러한 서비스에 대한 데이터 액세스 패턴 및 운영 요구 사항을 일치시킬 수 있습니다.

결론

이 게시물에서는 CITM(Contextual Intelligence Taxonomy Mapper)을 사용하여 분류 기반 컨텍스트 타겟팅 솔루션을 구축하는 방법을 배웠습니다. Amazon Comprehend 및 Amazon Rekognition을 사용하여 미디어 자산에서 세분화된 메타데이터를 추출하는 방법을 배웠습니다. 그런 다음 CITM을 사용하여 자산을 산업 표준 분류에 매핑하여 문맥 관련 광고에 대한 프로그래매틱 광고 입찰을 용이하게 했습니다. 기존 미디어 자산의 가치를 향상시키기 위해 표준 분류법을 사용해야 하는 다른 사용 사례에 이 프레임워크를 적용할 수 있습니다.

CITM을 실험하기 위해 CITM에 액세스할 수 있습니다. 코드 저장소 원하는 텍스트 및 이미지 데이터 세트와 함께 사용하십시오.

이 게시물에 소개된 솔루션 구성 요소에 대해 자세히 알아보는 것이 좋습니다. 자세히 알아보기 AWS 미디어 인텔리전스 미디어 콘텐츠에서 메타데이터를 추출합니다. 또한 사용 방법에 대해 자세히 알아보십시오. Amazon SageMaker를 사용하는 NLP용 포옹 얼굴 모델.


저자에 관하여

AWS Media Intelligence 및 Hugging Face BERT PlatoBlockchain Data Intelligence를 사용하여 분류 기반 컨텍스트 타겟팅을 구축합니다. 수직 검색. 일체 포함.아라미드 케힌데 기계 학습 및 AI 분야 AWS의 선임 파트너 솔루션 설계자입니다. 그녀의 경력 여정은 여러 산업에 걸쳐 비즈니스 인텔리전스 및 고급 분석 영역에 걸쳐 있습니다. 그녀는 파트너가 고객의 혁신 요구 사항을 충족하는 AWS AI/ML 서비스로 솔루션을 구축할 수 있도록 지원합니다. 그녀는 또한 AI와 창의적인 경기장의 교차점을 만들고 가족과 함께 시간을 보내는 것을 즐깁니다.

AWS Media Intelligence 및 Hugging Face BERT PlatoBlockchain Data Intelligence를 사용하여 분류 기반 컨텍스트 타겟팅을 구축합니다. 수직 검색. 일체 포함.아누 즈 굽타 클라우드 네이티브 여정에서 초고속 성장 기업과 협력하는 주요 솔루션 아키텍트입니다. 그는 기술을 사용하여 어려운 문제를 해결하는 데 열정적이며 고객과 협력하여 고도로 분산되고 대기 시간이 짧은 애플리케이션을 구축했습니다. 그는 오픈 소스 서버리스 및 머신 러닝 솔루션에 기여하고 있습니다. 직장 외에는 가족과 함께 여행하고 시와 철학 블로그를 쓰는 것을 좋아합니다.

타임 스탬프 :

더보기 AWS 기계 학습