Amplitude
Amplitude Recommend 기능의 알고리즘에 대해서
2021-05-25
By
Minah Lee
Amplitude
Amplitude Recommend 기능의 알고리즘에 대해서
May 25, 2021
By
Minah Lee

얼마 전 Amplitude에서 발표한 새로운 기능인, Recommend 기능이 머신 러닝과 k-평균 클러스터링(k-means clustering)을 활용하여 대규모 디지털 개인화를 작동시키는 방법을 소개합니다.

‘개인화’라는 과제

모든 마케터들은 개인화의 중요성을 잘 알고 있습니다. 유저가 요청하기 전에 원하는 것을 인지하고 제공하는 능력은 마법과도 같죠. 이번에 Amplitude에서 새롭게 선보인 Recommend 기능은, Amplitude를 사용하는 고객이라면 누구나 편리하게 사용할 수 있는 규격 형태의 서비스로, 비즈니스 목표에 따른 ‘개인화된 추천’을 제공할 수 있습니다.

양질의 추천 시스템을 만드는 것은 대부분의 비즈니스에서 실현하기 어려운 과제입니다. 하지만 Amplitude Recommend는 규격 형태의 시스템으로, 이전에 발생한 각 유저들과의 상호 작용 및 지식을 기반으로, 미리 정해진 아이템 목록 중 유저별로 다른 추천 아이템을 제공할 수 있습니다. Recommend 팀은 고객사들에게 과도하게 많은 시간 투자나 고급 도메인 지식을 요구하지 않으면서도, 전반적인 품질을 보장하는 시스템을 구축하고 반복적으로 개선하고자 대대적인 노력을 기울여 왔습니다.

그렇다면, Recommend 기능의 기저는 어떻게 구성되어 있을까요? 이번 포스트를 통해 Amplitude가 개인화를 작동시키는 기술을 살펴보겠습니다.

Recommend 기능의 유저 모델링

Amplitude의 Recommend 시스템은 전환 이벤트와 관련한 문제를 구체적으로 체계화합니다. 유저에게 추천 콘텐츠 항목을 제시할 때, 어떤 항목이 유저의 전환을 유도할 가능성이 가장 높을 것이라고 생각하시나요?

유저들의 선호도를 모델링하려면, 우선 해당 유저를 잘 표현할 수 있는 feature들을 선택해야 합니다. 마침 고객들은 Amplitude에 귀중한 데이터 소스를 제공하는데요. 바로 이러한 feature를 수집할 수 있는 유저 이벤트와 플랫폼 및 로케일(locale)과 같은 유저 속성(property)들입니다.

우선 각 고객들에 대해, 지정된 기간 동안 가장 일반적인 이벤트들을 수집합니다. 그리고, 유저들이 해당 이벤트를 수행한 횟수와 그 이벤트가 처음 및 마지막으로 발생한 시간 등과 같은 각 유저에 대한 해당 이벤트의 통계를 수집합니다. 이러한 데이터와 속성들 사이에서, Amplitude는 유저를 표현하기 위해 광범위한 feature들을 수집합니다.

Amplitude에서 feature engineering은 Nova AutoML 시스템을 사용하여, Nova Query 데이터 저장소에서 유지 관리되는 이벤트 데이터를, 모델링을 위한 관련 feature로 처리합니다. Recommend의 경우 AutoML에 퍼널 분석을 위해 유저 수준의 데이터를 제공하는 기능을 추가했습니다. 이를 통해 특정 콘텐츠 항목과 결과로 초래된 전환 이벤트 간의 연결을 더 잘 식별할 수 있습니다. 예를 들어 고객이 제품 X, Y, Z를 구매한 다음 Y만 구매한다면, 이 전환은 Y와의 상호 작용에 특히 기여한다는 것을 파악하는 데에 도움을 줍니다.

Amplitude Recommend: Behind The Algorithm

Recommend 기능의 머신 러닝

Recommend 기능은 유저들 간의 관계를 학습하는 비지도 학습 기술(Unsupervised Learning)을 사용합니다. 가장 일반적인 비지도 학습 기법은 클러스터링으로, 각각의 사례들이 feature들의 유사도에 따라 별개의 그룹으로 분리됩니다. Amplitude는 이 클러스터링 기술을 사용하여 유저를 그룹화하고, 고객의 유저 기반에서 주목할만한 세그먼트를 인식할 수 있습니다.

Amplitude Recommend: Behind The Algorithm

Amplitude의 Recommend는 K- 평균 클러스터링(K-means clustering)이라는 기술을 이용하여 비지도 학습을 합니다. 고객들이 로케일(locale) 및 플랫폼과 같은 유저의 속성들과 이벤트 데이터를 제공하면, Amplitude는 이 수집한 데이터를 유저 feature들로 처리합니다. K- 평균 클러스터링은 이 유저의 feature들을 가지고, 비슷한 값을 갖는 유저들을 묶어서 클러스터링 합니다. 예를 들어, 특정 이벤트의 빈도가 유사하거나, 유사한 속성을 갖는 경우가 될 수 있습니다.

다음은 사용할 클러스터의 수를 선택합니다. k- 평균의 "k"는 이 클러스터의 수를 나타냅니다. k에 대해 서로 다른 숫자 범위에 걸쳐 클러스터링을 한 후, "가장 유대가 강한" 클러스터를 제공하는 클러스터링을 선택합니다. 여기서 ‘유대가 강하다는 것’은 클러스터 내 유저의 유사도와 클러스터 간 유저의 유사도 비율로 정의됩니다. 이상적인 비율은 클러스터 내의 유사도는 높고 클러스터 간의 유사도는 낮은 것입니다. 이 측정에 의해 최상의 클러스터링이 최종 클러스터링으로 선택됩니다.

이러한 클러스터를 사용하여 해당 클러스터 내의 유저들에게 특히 인기있는 콘텐츠 항목을 인식하여 해당 클러스터의 유저에게 고유한 콘텐츠 항목의 순위를 제공할 수 있습니다. 중요한 점은, 새로운 유저 또는 많은 콘텐츠 항목과 상호 작용하지 않았던 유저에 대해서도 비슷한 분석을 수행하여 이전에 "유사한" 유저가 선호도를 보인 것을 기반으로 이러한 유저가 무엇을 좋아할지 확인할 수 있다는 것입니다.

클러스터링 기술이 직면하는 일반적인 문제 중 하나는 노이즈 feature들이 섞일 수 있다는 점입니다. feature들은 통계가 무작위로 뒤죽박죽 섞여 있을 수 있습니다. 일부는 유저 및 유저의 선호도에 대한 중요한 신호를 포함하고, 또 어떤 일부는 문제와는 상관 없이 주의를 산만하게 할 수 있습니다. 노이즈와 더불어 관련없는 feature들이 모델에 추가되면 컴퓨팅 리소스가 낭비 될 뿐만 아니라, 유저들이 의미 없고 우연한 유사도에 의해 클러스터링 될 수 있습니다.

클러스터링에서 노이즈 feature 문제를 막기 위해서 Amplitude는 목표 이벤트와 최소한의 상관 계수를 가진 feature를 인식하고 나머지 feature는 필터링해서 잠재적으로 의미있는 feature들의 부분 집합을 명확하게 식별합니다. 이 상관 계수는 덜 의미 있는 연관성 또는 더 작은 코호트를 수집하기 위해 낮게 설정되지만 관련성이 없을 가능성이 있는 feature를 제거할 만큼 충분히 크게 설정됩니다.

이 feature 필터링과 클러스터링은 feature engineering을 위한 커스텀 Apache Spark 코드를 사용하여 수행되며 효율성 향상을 위해 Amazon EMR에서 실행됩니다. 또한 이 Spark 코드는 feature 데이터를 보다 쉽게 관리하고자, 클러스터링 품질에 비정상적인 feature 데이터의 영향을 줄이는 이상값 제거와 feature scaling 같은 몇 가지 추가적인 후처리 가공을 수행합니다.

Amplitude Recommend: Behind The Algorithm

최적의 유저 클러스터링을 선택한 후, 해당 항목들과의 기존 상호 작용을 기반으로 해당 클러스터 내에서 상대적인 인기도에 따라 각각 다른 항목 순위를 제공하는데요. 각 클러스터에 대해 조정된 조건부 전환율 (항목과의 상호 작용에 따른 전환 가능성)을 항목의 순위를 매기기 위한 주요 요인으로 사용합니다. 결과에서 신뢰도를 보여주기 위해 전환율을 약간 조정합니다. 일부 항목은 클러스터에서 상호 작용이 거의 없을 수 있으므로 (예: 비교적 최근에 추가 되었기 때문에) 이러한 항목에 대한 신뢰도가 낮을 수 있습니다. 이럴 경우, 데이터가 적은 콘텐츠 항목에 대해 "일반적인" 행동이 발생할 가능성을 가정하는 이전 모델을 추가하여 수행됩니다.

순위의 최종 배치는 Python 코드와 Google의 TensorFlow 기술을 사용하여 수행됩니다. 그리고 이 코드는 머신 러닝 작업 관리 전용 클라우드 플랫폼인 Amazon Sagemaker에서 실행 됩니다.

따끈따끈한 기술, 개인화

Amplitude는 파이프라인을 작동시켜서 고객이 선택한 유저 코호트에 대해 2시간마다 새로운 순위를 생성합니다. 파이프라인의 모든 다른 구성 요소가 원활하게 상호 작용할 수 있도록, 파이프라인 관리에 Apache Airflow를 사용하여 최적화된 방식으로 서로 다른 플랫폼의 컴퓨팅 작업을 통합할 수 있습니다. 작동할 때마다 feature와 모델을 재생성하고, 항목의 순위 및 분포에 대한 통계를 수집하고, 고객이 쉽게 액세스 할 수 있는 API를 통해 효율적으로 제공하도록 키-값 저장소에서의 순위를 새로 고칩니다. Amplitude의 API는 선택한 값 N에 대해 유저 당 항목의 상위 N 순위를 제공하는 JSON 데이터를 제공합니다.

이 포스트를 읽으시는 지금 이 순간, Amplitude는 Recommend 기능을 통해 매일 수십의 고객에게 2억 5천 개 이상의 맞춤형 추천 데이터베이스를 제공하고 있습니다. 그리고 다음과 같이 Recommend 기능을 개선해갈 예정입니다.

  • 신경망과 같은 지도 학습 기술을 사용하여 개인화를 더욱 향상시키기
  • 콘텐츠 기반 항목 feature 추가 (관련 이벤트 데이터가 거의 또는 전혀 없더라도, 콘텐츠 항목 간의 관계를 인식하고 새로운 콘텐츠 항목에 대해 적절한 오디언스를 찾는 능력을 향상시킴)
  • Recommend 기능을 통해 전환을 최대화하면서도 1000개가 넘는 항목을 포함하는 매우 큰 콘텐츠 세트 규모로 확장할 수 있는 스마트한 항목 검색 기능

Amplitude는 고객을 위해, 더 나은 개인화를 제공하고 추천의 질을 개선하는 작업을 매일 반복하고 있습니다. 여기에서 Amplitude의 Recommend 기능에 대해 더 자세히 알아보세요!


(원문 - Amplitude Recommend: Behind The Algorithm)

Minah Lee
Product Marketing Manager
AB180에서 프로덕트 마케팅을 담당하고 있습니다. AB180의 성장을 위해 콘텐츠 제작과 다양한 마케팅 캠페인을 진행하며 팀, 고객 및 파트너와 협력합니다.
더 알아보기
원티드랩, “데이터가 흐르는 원티드, 누구나 직접 데이터를 확인하고 분석하며 일해요”
채용을 넘어 소셜 커리어 플랫폼으로 진화하고 있는 ‘원티드’ 서비스를 만들고 있는 원티드랩(Wantedlab)을 인터뷰했습니다. 원티드랩의 데이터 드리븐 조직문화에 대한 자세한 이야기를 지금 확인하세요!
성공 사례 보러가기
스퀘어랩, “타겟 맞춤 푸시 알림으로 고객 관계 개선부터 성공적인 온보딩과 매출 성장까지 이루었습니다.”
특가 알림 서비스 ‘플레이윙즈’를 운영하는 스퀘어랩을 인터뷰했습니다. 마케팅 자동화 솔루션 브레이즈(Braze)를 긴 시간 사용해 온 경험과 A/B 테스트 및 세그먼트를 통한 타겟팅 등 CRM 개선 팁을 공유합니다.
성공 사례 보러가기
15,000명 이상의 업계 관계자들이 구독하고 있는 뉴스레터를 통해 업계 최신 트렌드를 가장 먼저 만나보세요.
응답이 제출되었습니다. 감사합니다.
잘못된 메일주소입니다.
주식회사 에이비일팔공
서울특별시 서초구 강남대로 61길 17, 3층, 4층 (서초동)
사업자등록번호: 550-88-00196
대표이사: 남성필
Copyright ⓒ 2023 AB180 Inc. All Rights Reserved.
개인정보 처리방침