유사성 기반 학습이란 무엇인가요?
유사성 기반 학습이란 사전에 몇 샘플로 학습(Train) 한 후, 찾으려고 하는 테스트 샘플의 결과를 사전에 학습된 샘플과의 유사도를 기반으로 판단/분류하는 방법입니다.
많은 사람들이 알게 모르게 무의식적으로 일상생활에서 자주 접하는 기법 중 하나이고, 우리는 이런 유사성을 기반으로 수많은 의사결정과 문제 해결을 하고 있습니다.
설명을 위해 단순한 예를 들면, 아이가 엄마한테 본인이 공원에 놀러 가서 발견한 처음 보는 곤충에 대해서 묘사하는데, 그 곤충이 어떤 곤충인지를 맞추기 위해 여러 곤충 후보들과 특징 비교를 하면서 찾아내는 경우가 많습니다. 아이가 본 곤충은 다리가 6개, 참나무에서 발견되었고, 긴 뿔이 있었다고 하는데 다른 후보 곤충들과 유사점을 비교, 점수화해서 장수풍뎅이라는 점을 쉽게 맞출 수 있습니다.
이렇게 우리는 다른 후보들과의 유사도 비교를 통해서 우리가 찾는 곤충에 접근할 수 있습니다. 위 예제에서의 다른 곤충과의 유사도를 측정하기 위해서 스코어링을 활용했는데 이 방식은 매우 단순하고 직관적이지만 더 복잡한 문제도 이런 원리를 이용해서 손쉽게 해결할 수 있습니다.
유사성 기반 학습은 어디에 사용되나요?
광고를 할 때도 마찬가지로 활용되고 있고, 여러분도 이와 비슷한 작업을 이미 하고 있을 것입니다. 캠페인을 효율적으로 운영하기 위해 비슷한 특성을 가진 타깃을 분류하는 segmentation을 하실 텐데, segmentation 작업도 이와 크게 다르지 않습니다.
관리하는 캠페인이나 타깃 고객이 많아지면 문제가 더 복잡해지고 혼란스러워지는 경향이 있습니다. 사용자나 상품은 시간이 지나면서 급증할 수 있는 반면 이를 세밀하게 개별적으로 분석해서 기획하는 데에는 한계가 있습니다.
비슷한 사용자끼리 묶으면 이런 복잡한 문제가 쉽게 풀립니다. 흔히 고객 segmentation에서는 유사한 고객으로 묶어서 세그먼트별로 적절한 전략을 실행하면 캠페인을 성공적으로 운영할 수 있습니다. 예를 들면 충성도가 높은 그룹과 그렇지 그룹을 나눠서 관리하면 비용이나 수익 면에서 유리한데, 각 세그먼트별로 거기에 맞는 전략과 KPI를 적용하는 방법은 여러분도 많이 활용하셨을 것입니다.
유사도 계산 방식
위의 곤충 예제에서는 스코어링 방식으로 유사도를 평가했는데 이를 좀 더 수학적인 개념으로 풀어볼 수 있을까요? 유사성을 측정할 수 있는 방법만 있으면 컴퓨터에서 각 데이터 간 유사성 비교를 하는 것은 어렵지 않습니다.
유사성을 찾는데 가장 많이 이용하는 방법은 거리를 계산하는 방법입니다. 거리는 유사성의 반대되는 개념으로, 거리를 계산함으로써 유사성을 수치화할 수 있습니다. 이를 일반화한 개념으로 n개 특성을 가지고 거리를 구할 때 흔히 유클리드의 거리(Euclidean Distance)를 사용합니다.
사람의 특성이 키(x축)와 체중(y축)만 있다고 가정하면 2차원 공간에서의 두 점(p점과 q점)의 거리로 표현될 수 있습니다. 이런 개념으로 2차원을 n차원으로 확대하면 각 데이터는 이 n차원 공간 상에서 하나의 점으로 표현되고, 각 점 사이의 거리를 반복적으로 계산함으로써 유사도를 측정할 수 있습니다.
위와 같이 거리 계산의 경우 외에도, 참과 거짓에 대한 이분법적인 유사도 비교하는 방법으로는 자카드 유사도(Jaccard Similarity)를 이용합니다. 자카드 유사도는 간단하게 설명하면 공통되는 부분의 비율을 이용한 유사도 계산 방법입니다.
그리고 두 점간 거리를 계산하는 것이 아닌 두 점의 원점에서의 각도를 이용하여 유사도를 추정하는 코사인 유사도(Cosine Similarity)를 측정하는 방법도 존재하는데, 주로 문서 간 유사도 측정에 널리 사용됩니다.
크리테오에서의 유사성
크리테오에서 유사성에 대한 metric은 다양한 상품군에서 응용이 됩니다. 이런 개념은 모두 크리테오 엔진에 녹아있습니다.
Lookalike Finder (Similar Audience Targeting):
크리테오에서는 현 사이트 방문자와 유사한 사용자를 찾기 위해 lookalike finder를 이용합니다. Lookalike finder는 엔진에서 제휴 매체사와 광고주 고객의 120가지 이상의 소비자 구매의도 신호와 4500개+ 매체사 시그널을 평가하여 고객 판별 하고 신규 고객에 210억 상품 관련 상호작용 데이터를 활용해 광고주의 우수 고객 대비 점수를 부여하는 방법으로 유사한 고객을 가려내고 있습니다. 이중 웹사이트를 방문할 가능성이 있는 점수가 높은 고객을 타겟팅 하는 방식입니다.
Commerce Audience:
크리테오에서는 타겟팅 할 특정 카테고리를 지정해서 타겟팅 할 수 있는데, 800여 개 이상의 특정 카테고리 및 성별/이벤트/구매금액/브랜드 등 선택해서 선택이 가능합니다. 선택된 카테고리 혹은 항목에 대해 최근 방문자와 유사한 성향을 보이는 잠재고객을 타겟팅 하도록 구성되어 있습니다.
Product Recommendation Engine:
크리테오 엔진에서 상품 추천을 할 때 여러 요인에 대한 유사도를 기반으로 추천을 하게 됩니다. 유사도 계산에 포함되는 변수는 유저 사이트 내 이동패턴, 가장 최근의 행동 패턴 및 활동 빈도, 광고주 사이트 내 인기상품 및 전환율이 높은 상품, 상품 타입/가격/카테고리 흥미도 등이 있습니다. 이런 요인들의 유사한 정도를 계산하는 알고리즘에 의해 70% 이상의 구매가 크리테오 엔진 추천 상품을 통해 발생합니다.
마무리하며…
유사성은 위에서 설명드린 것과 같이 일상생활에서 유용하게 응용되고 있고 크리테오 엔진에도 적용되어 광범위하게 활용되고 있습니다. 계산하기 쉽고 원리가 단순한 특성상 다른 k-Nearest Neighbor나 Clustering 기계학습 알고리즘에 응용되어 발전해왔습니다.
크리테오에서는 유사성뿐만 아니라 다양한 기계학습 기법들을 적용, 발전시켜서 개인화되고 지능적인 배너 광고를 제공하고 있고 앞으로도 고객의 니즈에 맞춰서 엔진을 개선해 나갈 예정입니다.