진폭 추천: 알고리즘 비하인드
게시 됨: 2021-05-10"충분히 발전된 기술은 마법과 구별할 수 없습니다."
– Arthur C. Clarke, 미래의 프로필
개인화의 과제
모든 마케터는 개인화의 가치를 이해하고 있습니다. 사용자가 요청하기 전에 원하는 것을 인식하는 기능은 진정으로 마법과 구별할 수 없는 힘처럼 느껴질 수 있습니다. 여기 Amplitude에서 새로운 Recommend 제품은 고객에게 편리한 기성품 서비스를 제공하여 공통 비즈니스 목표를 기반으로 개인화된 권장 사항을 제공합니다.
많은 기업에서 품질 추천 시스템을 만드는 것이 쉽지 않을 수 있습니다. Amplitude Recommend는 해당 사용자와의 사전 상호 작용 및 해당 사용자에 대한 지식을 기반으로 사전 정의된 항목 카탈로그에서 개별 사용자에 대한 권장 사항을 고객에게 제공하는 기성품 시스템을 제공합니다. Recommend 팀은 과도한 입력이나 고객의 고급 도메인 지식을 요구하지 않고 일반적인 품질을 위한 시스템을 구축하고 반복적으로 개선하기 위해 광범위한 노력을 기울였습니다. Recommend의 후드 아래에는 무엇이 있습니까? 여기에서 Amplitude의 개인화 접근 방식을 지원하는 기술을 살펴보겠습니다.
Recommend에서 사용자 모델링
추천 시스템의 경우 특히 전환 이벤트 의 관점에서 문제를 프레임화합니다. 사용자가 추천 콘텐츠 항목을 제시할 때 사용자가 전환을 유도할 가능성이 가장 높은 항목은 무엇이라고 생각합니까? 사용자의 기본 설정을 모델링하려면 먼저 해당 사용자에 대한 의미 있는 정보 집합을 나타내는 기능 집합으로 사용자의 적절한 표현을 선택해야 합니다. 고객은 두 가지 귀중한 데이터 소스를 제공합니다. 하나는 이러한 기능을 수집하는 데 사용할 수 있는 사용자 활동의 이벤트 스트림이고, 다른 하나는 기술 플랫폼 및 로케일과 같은 사용자와 관련된 속성 집합입니다.
각 고객에 대해 지정된 기간 내에 가장 일반적인 이벤트를 수집하고 사용자가 해당 이벤트를 수행한 횟수, 해당 이벤트가 처음 및 마지막으로 발생한 횟수와 같은 각 사용자에 대한 해당 이벤트에 대한 통계를 수집합니다. 이 속성과 속성 집합 사이에서 사용자 표현을 위해 많은 기능 집합을 수집합니다.
우리의 기능 엔지니어링은 Amplitude의 Nova AutoML 시스템을 사용하여 Nova Query 데이터 저장소에서 유지 관리하는 이벤트 데이터를 모델링을 위한 관련 기능으로 처리합니다. Recommend의 경우 깔때기 분석을 위한 사용자 수준 데이터를 제공하는 기능을 AutoML에 추가했습니다. 이를 통해 특정 콘텐츠 항목과 결과 전환 이벤트 간의 연결을 더 잘 식별할 수 있습니다. 이는 예를 들어 고객이 제품 X, Y 및 Z를 쇼핑했지만 Y만 구매하는 경우 특히 Y와의 상호작용에 대한 전환에 기여하도록 보장하는 데 도움이 됩니다.

Amplitude Recommend의 기계 학습
Recommend는 사용자 집합 간의 관계 를 학습하는 비지도 학습 기술을 사용합니다. 가장 일반적인 비지도 학습 기술은 클러스터링 으로, 여기에서 예제는 기능의 유사성을 기반으로 별개의 그룹으로 분리됩니다. 우리의 맥락에서 클러스터링 기술을 사용하여 사용자를 그룹화하여 고객 사용자 기반의 주목할만한 세그먼트를 인식할 수 있습니다.

Amplitude Recommend는 k-means 클러스터링 으로 알려진 기술을 사용하여 비지도 학습을 사용합니다. 고객은 로케일 및 기술 플랫폼과 같은 해당 사용자에 특정한 속성과 함께 사용자의 이벤트 데이터 스트림을 제공합니다. 수집된 데이터를 일련의 사용자 기능으로 처리합니다. K-평균 클러스터링은 이러한 사용자 기능을 사용하고 이러한 기능에 대해 유사한 값(예: 특정 이벤트의 유사한 빈도 및 유사한 속성)을 가진 사용자를 함께 클러스터링합니다.
사용할 클러스터 수를 선택합니다. k-means의 "k"는 이 클러스터 수를 나타냅니다. k에 대해 다양한 숫자 범위에 대해 클러스터링을 생성한 다음 "가장 조밀한" 클러스터를 제공하는 클러스터링을 선택합니다. . 여기서 타이트함은 클러스터 내 사용자 유사도 대 클러스터 간 사용자 유사도의 비율로 정의됩니다. 이상적으로는 클러스터 내 유사도가 높고 클러스터 간 유사도가 낮습니다. 이 측정에 의한 최상의 클러스터링이 최종 클러스터링으로 선택됩니다.

그런 다음 이러한 클러스터를 사용하여 해당 클러스터 내의 사용자 사이에서 특히 인기 있는 콘텐츠 항목을 인식할 수 있으므로 해당 클러스터의 사용자에 대한 고유한 콘텐츠 항목 순위를 제공할 수 있습니다. 중요한 것은 새로운 사용자 또는 많은 콘텐츠 항목과 상호 작용하지 않은 사용자에 대해 유사한 분석을 수행하여 이전에 "유사한" 사용자가 선호도를 보인 것을 기반으로 이러한 사용자가 무엇을 좋아할 수 있는지 인식할 수 있다는 것입니다.
클러스터링 기술이 직면하는 한 가지 일반적인 문제는 노이즈가 있는 기능입니다. 기능 세트는 무작위로 뒤섞인 통계일 수 있습니다. 일부는 사용자 및 사용자의 선호도에 대한 중요한 신호를 포함하고 일부는 문제와 관련이 없고 주의를 산만하게 합니다. 우리 모델에 시끄럽고 관련 없는 기능을 추가하면 컴퓨팅 리소스가 낭비될 뿐만 아니라 사용자가 무의미하고 단순히 우연의 유사점으로 뭉칠 수 있습니다.
클러스터링에서 노이즈가 있는 기능의 문제를 피하기 위해 목표 이벤트와 상관 관계의 최소 임계값을 갖는 항목을 인식하여 잠재적으로 의미 있는 기능의 하위 집합을 식별하고 나머지 기능을 필터링합니다. 이 임계값은 덜 중요한 연관성을 수집하거나 더 작은 집단을 수집하기 위해 낮게 설정되지만 관련성이 없을 가능성이 있는 기능을 제거하기에 충분히 큽니다.
기능 필터링 및 클러스터링은 기능 엔지니어링을 위한 사용자 지정 Apache Spark 코드를 사용하여 수행되며 효율성 향상을 위해 Amazon EMR에서 실행됩니다. 또한 이 Spark 코드는 클러스터링 품질에 대한 비정상적인 기능 데이터의 영향을 줄이기 위한 기능 확장 및 이상값 제거를 포함하여 기능 데이터를 보다 쉽게 관리할 수 있도록 몇 가지 추가 후처리를 수행합니다.

최적의 사용자 클러스터링을 선택한 다음 해당 항목과의 기존 상호 작용을 기반으로 해당 클러스터 내 상대적인 인기도를 기반으로 각 클러스터에 항목 순위를 제공합니다. 각 클러스터에 대해 수정된 조건부 전환율(항목과의 상호 작용이 주어진 전환 확률)을 항목 순위 지정의 기본 요소로 사용합니다. 결과에 대한 신뢰도를 나타내기 위해 전환율을 약간 수정합니다. 일부 항목은 클러스터에서 상호 작용이 거의 없었을 수 있으므로(예: 비교적 최근에 추가되었기 때문에) 이러한 항목에 대한 신뢰도가 낮음을 나타냅니다. 이는 데이터가 적은 콘텐츠 항목에 대해 "평균" 동작의 가능성을 가정하는 이전 모델의 추가를 사용하여 수행됩니다.
최종 순위 지정은 Python 코드와 Google의 TensorFlow 기술을 사용하여 수행됩니다. 기계 학습 작업 관리 전용 클라우드 플랫폼인 Amazon Sagemaker에서 이 코드를 실행합니다.
개인화, 뜨거운 파이핑
우리는 파이프라인을 실행하여 2시간마다 고객이 선택한 사용자 집단에 대한 새로운 순위를 생성합니다. 파이프라인의 다른 모든 구성 요소가 원활하게 상호 작용할 수 있도록 파이프라인 관리에 Apache Airflow를 사용하여 최적화된 방식으로 다양한 플랫폼의 컴퓨팅 작업을 통합할 수 있습니다. 실행할 때마다 기능과 모델을 재생성하고 항목의 순위 및 분포에 대한 통계를 수집하고 키-값 저장소에서 순위를 새로 고쳐 고객이 쉽게 액세스할 수 있는 API를 통해 효율적으로 제공됩니다. API는 선택한 값 N에 대해 사용자당 항목의 상위 N 순위를 제공하는 JSON 데이터를 제공합니다.
이 게시물이 게시된 시점에서 우리는 Recommend를 통해 매일 수십억 명의 고객에게 25억 개 이상의 개인화된 추천 데이터베이스를 제공하고 있습니다. Recommend에 대해 현재 계획된 개선 사항 중 일부는 다음과 같습니다.
- 개인화를 더욱 개선하기 위해 신경망과 같은 지도 학습 기술을 사용합니다.
- 관련 이벤트 데이터가 거의 또는 전혀 없는 상태에서 콘텐츠 항목 간의 관계를 인식하고 새로운 콘텐츠 항목에 대한 적절한 청중을 찾는 개선된 기능을 제공하는 콘텐츠 기반 항목 기능 그리고
- Recommend가 전환을 최대화하면서 매우 큰 콘텐츠 세트(>1000개 항목)로 확장할 수 있도록 하는 스마트 항목 검색.
우리는 추천 품질을 개선하고 고객에게 향상된 개인화를 제공하는 방법을 매일 반복하고 있습니다. 오늘 Amplitude Recommend에 대해 자세히 알아보십시오.
