광고 예측 시스템의 아키텍처 구성요소를 살펴보자.
광고주는 자신의 콘텐츠와 타겟팅(예: 광고를 실행하려는 시나리오)을 포함하는 광고를 만든다.
몇 가지 예시는 다음과 같다.
쿼리 기반 타겟팅(Query-based targeting):
이 방법은 검색어를 기반으로 사용자에게 광고를 표시한다.
쿼리 용어는 부분 일치(partial match), 전체 일치(full match), 확장(expansion) 등이 될 수 있다.
예를 들어 사용자가 "기계 학습 과정"이라는 검색어를 입력할 때마다 시스템은 educative.io에 ML 과정을 표시한다.
사용자 기반 타겟팅(User-based targeting):
광고는 특정 지역, 인구통계, 성별, 연령 등에 따라 사용자에게 주관적이다.
관심 기반 타겟팅(Interest-based targeting):
이 방법은 관심을 기반으로 광고를 표시한다.
Facebook에서 광고주가 특정 관심 계층에 따라 광고를 표시하기를 원할 수 있다고 가정해보자.
예를 들어 광고주는 스포츠에 관심이 있는 사람들에게 스포츠 관련 광고를 게재하고 싶어할 수 있다.
군집/그룹 기반 타겟팅(Set-based targeting):
이 유형은 광고주가 선택한 사용자 군집(집합)에게 광고를 표시한다.
예를 들어 이전 구매자이거나 웹사이트에서 10분 이상 머물렀던 사람들에게 광고를 표시한다.
여기에서 군집/그룹을 확장하고 "seed audience"를 확장할 수 있다.
'seed audience' : 광고 캠페인에서 초기에 설정한 작은 그룹의 대상 고객
플랫폼 사용자가 시스템에 쿼리하면 시스템은 광고주가 사용하는 다양한 타겟팅 기준을 기반으로 이 사용자에게 표시될 수 있는 모든 잠재적 광고를 찾는다.
해당 정보의 흐름은 아래에 설명된 대로 두 가지 주요 단계로 구성된다.
(1) 광고주는 타겟팅 정보를 제공하는 광고를 만들고, 광고는 광고 인덱스에 저장된다.
(2) 사용자가 플랫폼에 쿼리하면 해당 정보(예: 인구통계, 관심분야 등)를 기반으로 인덱스에서 광고를 선택하고 광고 예측 시스템을 통해 실행된다.

[그림] 광고 예측 시스템의 아키텍처 다이어그램
위 다이어그램에서의 각 구성 요소를 간략하게 살펴보자.
광고 선택 구성요소는 관련성(사용자 상황에 따라 다름)을 기준으로 상위 k개 광고를 가져오고 광고 인덱스에서 입찰합니다.
광고 예측 구성요소는 광고, 광고주, 사용자 및 맥락을 고려하여 광고에 대한 사용자 참여(광고가 표시될 경우 광고에 대해 조치가 취해질 확률)를 예측한다.
그런 다음 관련성 점수와 입찰가를 기준으로 광고 순위를 매긴다.
경매 메커니즘은 이러한 상위 K개 관련 광고가 사용자에게 표시되는지 여부와, 표시 순서, 광고에 대한 조치가 취해질 경우 광고주가 지불하는 가격을 결정한다.
모든 광고 요청에 대해 게재할 광고를 결정하기 위해 경매가 진행된다.
광고 예측 시스템에 의해 선택된 관련성 높은 광고는 경매에 대한 입력으로 제공된다.
그런 다음 경매에서는 광고의 입찰가와 관련성 점수를 기준으로 총 가치를 고려한다.
총 가치가 가장 높은 광고가 경매에서 낙찰된다.
총 가치는 다음 요소에 따라 달라진다.
입찰(Bid) :
광고주가 해당 광고에 대해 제시하는 입찰가격
즉, 클릭이나 구매와 같은 특정 행동에 대해 광고주가 지불할 의사가 있는 금액
사용자 참여율(User engagement rate)
광고에 대한 사용자 참여의 추정치
광고 품질 점수(Ad quality score)
광고를 보거나 숨기는 사람들의 피드백을 고려하여 광고 품질을 평가
예산(Budget)
광고주의 광고 예산
순위 순서는 예측 광고 점수(광고 예측 구성요소의 점수)에 입찰가를 곱한 값을 기준으로 계산된다.
이를 광고 순위 점수(ad rank score)라고 한다면,

광고 순위 점수가 가장 높은 광고가 경매에서 낙찰되어 사용자에게 표시된다.
광고가 경매에서 낙찰되면 참여당 비용(CPE) 또는 클릭당 비용(CPC)은 광고 순위 점수와 바로 아래 광고의 순위 순위 점수에 따라 달라진다.

CPE = (광고 순위 / 광고 순위 점수) + 0.01
일반적인 원칙은 광고가 경매에서 낙찰될 수 있는 최소 가격으로 책정된다는 것이다.
: 광고 캠페인이 일정한 속도로 광고 예산을 소비하도록 하는 것
광고 간격을 조정한다는 것은 캠페인 시작 시 광고 예산을 모두 지출하는 것이 아니라 선택한 기간 동안 광고 예산을 균등하게 지출한다는 의미이다.
사용자가 광고에 참여할 때마다 광고주에게 다음 광고의 입찰 금액이 청구된다.
페이싱(Pacing)은 광고 세트가 하루 종일 고르게 분산되고 광고주가 캠페인에 대해 최대 투자 수익(ROI)을 얻을 수 있도록 입찰가를 동적으로 변경하여 이 문제를 극복한다.
이는 또한 하루 시작 시 전체 시스템의 부하가 크게 높아지는 것을 방지하고 캠페인 전반에 걸쳐 예산이 균등하게 지출되도록 한다.
이러한 광고에 대해 취한 조치를 기록해야 하는데, 이 구성요소는 광고(경매 후 표시됨)에 대한 사용자 작업을 수행하고 광고 예측 구성요소에 대한 긍정적 및 부정적 학습 예제를 생성한다.
대규모 광고 예측 시스템의 경우 검색어 및/또는 사용자 관심분야를 기반으로 사용자를 위한 광고를 빠르게 선택하는 것이 중요하다.
시스템의 광고 수와 플랫폼의 사용자 수 측면에서 규모가 클 수 있는데, 따라서 광고 품질을 저하시키지 않으면서 확장성이 뛰어나고 성능 효율성이 매우 높은 방식으로 시스템을 설계하는 것이 중요하다.
위의 목표를 달성하려면 퍼널 접근 방식을 사용하는 것이 합리적이다.
퍼널의 다음 단계를 위해 대규모 광고 세트에서 보다 정확한 세트로 점진적으로 이동합니다.

[그림] 퍼널 접근 방식: 사용자에게 관련성 높은 광고 제공
다이어그램에 표시된 것처럼 퍼널 아래로 내려갈수록 모델의 복잡성은 높아지고 모델에서 실행되는 광고 세트는 작아진다. 또한 초기 레이어는 주로 광고 선택을 담당한다.
반면, 광고 예측은 잘 조정된 광고 참여 및 품질 점수를 예측하는 역할을 한다.
이 예측점수는 경매(auction)에도 활용된다.
이러한 구성 요소가 검색 시나리오에서 어떻게 상호 작용하는지 알아보기 위해 예를 살펴보자.
30세 남성 사용자가 '머신러닝'이라는 검색어를 작성했다.
광고 선택 구성요소는 타겟팅 기준(사용자 인구통계 및 쿼리)과 일치하는 모든 광고를 선택하고 간단한 모델을 사용하여 광고의 관련성 점수를 예측할 것이다.
다음 포스팅에서 피처엔지니어링으로 각 세그먼트를 탐색하면서 이 다이어그램의 다양한 세그먼트를 확인해보자.