이커머스 PM 필독: AI 상품추천 성과 제대로 확인하는 법

적절한 지표 설정과 AB 테스트를 통해 성과 검증하기
May 03, 2024
이커머스 PM 필독: AI 상품추천 성과 제대로 확인하는 법

이런 분들이 읽으시면 좋아요!

  • PM으로서 UX 개선 프로젝트의 성과를 측정하는 방법에 관심이 있으신 분

  • AB 테스트를 어떻게 잘 할 수 있을지, 결과를 어떻게 해석해야할 지 궁금하신 분

  • 블럭스가 AI 상품 추천의 성과를 구체적으로 어떻게 파악하는지 알고싶으신분


인트로

안녕하세요, 블럭스의 초개인화 AI 상품추천 솔루션 Blux Recommendation의 PM 김현지입니다. 오늘은 PM의 중요한 역할 중 하나인 ‘프로젝트의 성과 측정’을 제대로 잘 하는 법에 대해 블럭스에서의 경험을 바탕으로 이야기해보려고 합니다.

AI 상품추천 알고리즘을 도입하는 프로젝트를 성공적으로 관리하기 위해서는, 도입 이전에 비해 우리 커머스에서 얼마나 성과를 낼 수 있는지 정확하게 잘 측정하고 이를 검증할 수 있어야 합니다. 이를 위해서는 크게 두 가지가 중요한데,

  1. 어떤 지표를 볼지 잘 설정하기 (잘 측정하기)

  2. AB 테스트를 잘 설계하기 (올바르게 검증하기)

로 나누어 생각할 수 있습니다. 의미 없는 지표를 본다면 열심히 성과를 트래킹해도 큰 의미가 없을 것이고 AB 테스트를 올바르게 설계하지 않으면 잘못된 해석과 결론이 도출될 수 있기 때문이죠.

지표 설정하기

AI 상품추천의 성과를 제대로 파악하기 위해서는 어떤 지표를 봐야할까요? 성과 지표를 설정할 때는 해당 프로젝트를 통해서 달성하고자 하는 핵심적인 목표가 무엇인지 우선 정의하고, 그 목표를 가장 잘 수치화할 수 있는 지표를 찾는 것이 좋습니다.

AI 상품추천의 주요 목표는 다음과 같이 생각할 수 있습니다.

고객이 좋아할 만한 상품을 잘 추천해줘서 고객 만족도 높이기, 더 많이 구매하게 하기

이를 달성했는지 확인하기 위한 지표로, 클릭률을 통해 정말 좋아할 걸 잘 추천했지를, 구매전환율을 통해 더 많이 구매하게 했는지를 확인할 수 있습니다.

핵심적인 주요 목표를 측정하는 KPI 이외에도, 상품 추천과 관련하여 더 다양한 관점에서 생각하기 위해 보조지표를 파악하기도 합니다. 예를 들면 추천 기여 매출액을 계산하여 AI 추천이 매출에 얼마만큼 기여했는지 파악합니다. 추천 기여 매출액은 추천된 상품을 클릭한 후 일정 시간 이내에 구매로 이어진 경우의 거래액을 합산하여 측정할 수 있습니다.

또한, 유저당 평균 방문 횟수를 측정하여 유저 리텐션에 미치는 영향을 측정할 수 있습니다. 한 명의 유저가 평균적으로 몇 번 방문했는지를 의미하므로, 이 횟수가 증가한다면 유저 리텐션에 긍정적인 영향을 주는 것을 의미합니다.

AB 테스트 설계하기

위와 같이 어떤 지표를 통해 성과를 측정할지 확정해두었다면, 이제 성과를 검증할 차례입니다. 보통 새로운 알고리즘이나 UI/UX의 성능을 테스트하기 위해서 AB 테스트를 진행하게 되는데요, 대조군과 실험군을 나누어 대조군 대비 실험군에서 실제로 성과가 있는지를 확인할 수 있습니다.

도입 이후 기존에 비해 개선되었는지를 비교하는 Before-After 방식에 비해, AB테스트는 제3의 변수가 개입될 여지를 최소화할 수 있다는 장점이 있습니다. 일반적으로 A/B군을 나누는 방법으로 두 가지 방식이 이용됩니다.

  1. 매 이벤트마다 A,B 노출이 랜덤하게 달라지도록 설정: 이 방식은 통계적 유의성이 높지만 유저가 매번 다른 경험을 하게 되어 서비스 이용에 혼란을 야기할 수 있습니다.

  2. 유저를 랜덤하게 각각 A, B군으로 분할하여 고정된 세팅을 노출: 한 유저가 계속해서 동일한 UX에 노출되므로 보다 안정적으로 실험 대상의 UX 효용을 측정할 수 있지만, outlier 유저의 영향을 받을 위험이 존재합니다.

블럭스에서는 어떻게 할까요?

블럭스에서는 2번 방식으로 AB 테스트를 진행합니다. 연동된 행동데이터를 바탕으로 각각의 유저를 랜덤으로 절반씩 분할하고 실험군(blux_group)인지 여부를 전달합니다. 실험군으로 분류된 유저에게는 Blux AI 추천을 노출시키고, 대조군으로 분류된 유저에게는 기존 구좌를 노출시키도록 설정합니다.

모든 설정이 완료되면, 테스트를 시작하여 비교 대상이 되는 구좌에서의 클릭률, 구매 전환율을 메인 지표로 측정하고 그 외에도 전체 매출액이나 유저당 방문 횟수 등의 보조지표를 확인하며 두 유저군의 지표를 비교합니다.

저희는 단순히 Blux AI 추천의 성능을 기존 구좌와 비교하여 증명하기 위한 목적 이외에도, 저희 AI 모델을 고객사의 도메인에 맞게 최적화하기 위해 자체적인 A/C 테스트를 진행하기도 합니다. 도메인 특성, 커머스 플랫폼 내에서도 어느 지면에 삽입된 추천 구좌인지, Customer Journey 상 어느 위치에 해당하는 곳인지 등에 따라 다른 추천 UX가 필요할 수 있습니다.

따라서 보다 최적화된 추천 모델을 찾아내기 위해 실험군(A군) 내의 유저들을 또 둘로 쪼개어 A, C군으로 나누는 A/C 테스트를 진행합니다. 각 유저군에 다른 알고리즘 또는 다른 커스터마이징 처리를 적용하여 더 성능이 좋은 모델을 개발하는 것이지요.

이때 가장 고민이 되는 지점은 “이 결과가 정말 유의미한 차이가 있는 것인지 어떻게 알 수 있을까?”라는 부분일 것입니다. 사실 100%의 확률로 완벽하게 신뢰할 수 있는 결과를 얻기란 어렵습니다. 아무리 엄밀한 통계적 방법론을 쓰더라도 결국엔 분포 가정을 포함해야 하는 등 결과 해석에 대해 일정 부분의 가정은 필요하기 때문이죠.

그럼에도 가능한 선에서 다양한 방법을 시도하며 결과의 신뢰도를 높이는 것이 중요한데요, 제가 주로 이용했던 방법을 소개해드리고자 합니다. 신뢰도를 높인다는 것은 결국 “우연에 의한 결과일 가능성”을 최대한 제거하는 것이라는 관점에서 이용한 방법입니다.

AB 테스트 결과의 신뢰도 높이기

  1. 유저군 switch하기

    유저군이 랜덤하게 분할되었다고 해도, 유저군 bias를 완전히 무시하기는 어렵습니다. 유저군을 바꾸어 똑같은 실험을 다시 집행했을 때도 유사한 결과가 나온다면, 실험의 결과가 유저군 bias에 의한 결과였을 위험을 제거할 수 있습니다.

  2. 일자별 데이터의 일관성 확인하기
    누적된 하나의 결과만 보는 것이 아닌, 일자별 데이터를 확인함으로써 결과의 일관성을 확인할 수 있습니다. 만약 일자별 데이터가 일정한 방향의 결과를 보이지 않는다면, 테스트 종료시점을 언제로 설정했는지에 따라 종료시점의 누적 지표가 긍정적일 수도, 부정적일 수도 있게 됩니다. 시계열적 우연을 최소화하기 위해 일자별 (데이터가 충분하다면 시간대별) 데이터를 함께 파악하는 것이 좋습니다.

  3. p-value 구하기

    p-value의 통계적인 의미는 ‘내가 관측한 값보다 더 극단적인 값이 존재할 확률’이라고 생각할 수 있습니다. 이 값이 작을수록 중심으로부터 극단값이 더 멀리 떨어져있다는 것을 의미합니다.

    다시 말해, 중심으로 가정했던 것이 참이라면 발견하기 아주 힘든 결과를 발견했다는 것을 의미하고, 중심으로 가정했던 가설을 기각할 수 있음을 나타냅니다.

    일반적으로 이러한 가설을 귀무가설이라고 부르며, AB 테스트처럼 각 유저군에서의 결과값이 차이가 있는지를 확인하고 싶을 때 주로 사용되는 귀무가설은 “두 값이 같다”는 것입니다. p-value가 충분히 낮게 나온다면 두 집단에서의 차이가 통계적으로 유의하게 차이가 난다는 의미입니다. 다만 올바른 분포 가정을 해야 하고, 통계 모형 적용을 위한 가정이 현실에서는 잘 해당되지 않을 수 있음에 유의해야 합니다.


마무리하며

오늘은 블럭스에서의 ‘AI 상품추천 도입’ 프로젝트를 바탕으로 성과를 올바르게 측정하는 법에 대해 이야기해보았습니다. 이렇게 AB 테스트를 수행하고 성과를 검증하는 과정은 단순한 숫자를 넘어서서, 실제로 고객에게 가치를 제공하고 있는지를 파악하고 우리 제품에 시장의 고객들은 어떻게 반응하는지, 또 어떻게 개선할 수 있는지에 대한 통찰을 얻을 수 있는 중요한 과정임을 배울 수 있었습니다.

블럭스의 솔루션이 여러분의 비즈니스에 어떻게 도움이 될 수 있을지 앞으로도 새로운 인사이트와 함께 찾아뵙겠습니다. 감사합니다🙂

Share article
Subscribe Newsletter
Stay connected for the latest news and insights.
RSSPowered by inblog