나는🛫 PM

주니어 PM의 알고리즘 개발기_part 2

awesomey 2024. 8. 22. 23:41

이전 글)

 

주니어 PM의 알고리즘 개발기_part 1

Part 1: 문제 정의와 상황 분석 0. 서비스 소개 문토(Munto)는 관심사 기반의 소셜 네트워킹 플랫폼입니다. 문토에서는 누구나 원하는 주제와 일정 및 지역을 선택하여 소셜링(Socialing/원데이 모임)

awesomey.tistory.com

 

 

 


Part 2: 알고리즘 설계와 문제 해결을 위한 접근

*일부 내용은 공개 가능한 범위 내에서 실제 현황과 데이터를 바탕으로 재구성되었습니다.

 

1. 알고리즘 설계에서 고려해야 할 점

- 유저 및 비즈니스 측면의 균형 찾기

새로운 알고리즘을 설계할 때 가장 중요한 점은 유저의 만족도와 회사의 이익을 균형 있게 반영하는 것입니다. 유저가 매력적으로 느끼는 모임을 상단에 노출하여 탐색 피로도를 줄이고, 신청율을 높이는 것이 중요한 목표였습니다. 동시에, 회사는 수익성을 극대화하기 위해 잠재 수익이 높은 모임을 적절히 노출해야 했습니다. 이 두 가지 목표를 달성하기 위해 우리는 다양한 팩터를 설정하고, 이를 기준으로 알고리즘을 설계했습니다.


2. 유저 니즈 반영이 비즈니스 성과에 미치는 영향 평가

이제 유저의 니즈를 알고리즘에 반영하는 것이 비즈니스 성과로 직접적으로 이어지는지를 평가하는 단계입니다.

 

유저의 요구를 이해하고 이를 제품이나 서비스에 반영하는 것은 비즈니스의 성공에 필수적이지만, 이러한 변화가 항상 즉각적인 성과로 연결되는 것은 아닙니다. 유저가 원하는 기능이나 개선이 단기적으로는 고객의 관심을 끌지만, 비즈니스 성과에 미치는 임팩트가 다소 크지 않거나 간접적일 수도 있기 때문입니다.

 

따라서, 유저의 니즈를 반영하는 것이 언제나 중요한 전략이지만 비즈니스 목표와의 균형을 맞추는 것도 중요한 고려 사항입니다. 

 

1. 인기 있는 모임

- 참여자가 많은 모임은 더 많은 참여자를 끌어들인다

가장 많은 탐색이 이루어지는 '인기 모임' 탭

'인기 있는 모임'은 곧 신청자가 많은 모임입니다.

이는 '밴드왜건 효과(Bandwagon Effect)'로 설명할 수 있습니다.

사람들이 이미 참여하고 있는 모임은 새로운 참가자에게 더 매력적으로 보이며, 결과적으로 신청율이 높아집니다.

 

우리는 데이터를 통해서도 이 효과를 검증했습니다.

전체 신청 데이터를 확인해 본 결과 아무도 참여중이지 않은 모임보다 2명 이상의 참여자가 있는 모임의 신청율이 더 높고, 참여자가 많을수록 추가 신청이 더 많이 발생하는 데이터를 확인할 수 있었습니다.

또한 과거 앱 내에서 가장 높은 탐색 시간을 기록한 정렬이 '참여 인원 내림차순 정렬'이었다는 점도 주목할 만합니다.

 

이 데이터를 바탕으로, 우리는 다른 유저가 많이 신청한 모임이 더 매력적으로 느껴진다는 명확한 결론을 내렸습니다. 따라서 새로운 알고리즘에서는 '인기도'를 중요한 팩터로 설정하여 신청자가 많은 모임이 상단에 노출될 수 있도록 해야 한다고 판단했습니다.

 

결론적으로 인기 있는 모임을 상단에 노출하면 다른 사람들이 이미 참여하고 있다는 사실이 유저에게 신뢰와 매력을 제공하여 신청을 유도합니다. 이로 인해 전체적인 모임 신청율이 상승하고, 이는 다시 추가적인 신청을 촉진하는 긍정적인 순환이 이루어져 플랫폼의 활성화에 기여합니다.

 

 

2. 신뢰할 수 있는 모임

- 부정적인 경험은 재구매율을 떨어뜨린다

앱 내 신고 화면

유저가 모임에서 부정적인 경험을 하게 되면 그 유저는 해당 플랫폼을 다시 이용할 가능성이 낮아집니다.

이는 데이터를 통해 명확히 확인되었습니다.

모임 참여 후 '유저 신고' 기능을 이용한 유저의 재구매율이 그렇지 않은 유저보다 23% 이상 낮았고, 모임 평가에서 '별로였어요'를 선택한 한 유저의 재구매율이 '즐거웠어요' 항목을 선택한 유저보다 17% 이상 낮았습니다.

 

이러한 데이터를 바탕으로 우리는 신뢰할 수 있는 모임을 상단에 노출하는 것이 매우 중요하다는 결론을 내렸습니다.

 

신뢰할 수 있는 모임을 상단에 노출하면 유저가 긍정적인 경험을 할 가능성이 높아지고, 그 결과 플랫폼을 믿고 더 자주 이용하게 됩니다. 이는 궁극적으로 플랫폼의 리텐션을 높이고 더 많은 수익을 창출하는 데 기여합니다. 

 

3. 승인이 잘 이루어지는 모임

- 승인이 잘 이루어지는 모임의 필요성

플랫폼에서의 구매 전환은 호스트가 신청자를 승인하는 과정에서 이루어집니다. 결제를 통한 신청이 이루어졌지만 호스트의 승인이 지연되거나 거절되면 유저가 결제한 금액은 전액 환불됩니다. 승인이 이루어지지 않는 모임은 결국 구매 완료로 이어지지 않기 때문에 이는 플랫폼과 유저 모두에게 부정적인 결과를 초래합니다.

 

특히 인기 있는 모임에서 호스트가 신청을 승인하지 않고 대기만 쌓아두거나 계속해서 신청을 거절하는 경우가 발생했습니다. 이는 정원이 이미 마감되었음에도 불구하고 자신을 계속 홍보하고 싶어하는 호스트들의 니즈에서 비롯된 현상임을 확인했습니다. 이러한 모임은 상단에 노출되지 않도록 하여 추가적인 신청이 발생하지 않도록 알고리즘을 설계하는 것이 중요했습니다.

 

- 빠른 구매 전환이 이루어지지 않는 모임의 문제점

빠른 승인이 이루어지지 않는 모임은 유저에게 불확실성을 제공합니다. 이는 모임 참여 및 플랫폼 자체에 대한 신뢰를 떨어뜨리고, 결국 신청 취소로 이어질 수 있습니다.

이에 우리는 알고리즘에 승인률을 중요한 팩터로 포함시켜 승인이 원활히 이루어지는 모임이 상단에 노출되도록 했습니다. 이를 통해 유저는 모임에 대한 확신을 가지고 신청할 수 있으며, 호스트는 신청자가 빠르게 구매 전환을 이룰 수 있도록 돕게 됩니다.

 

 

이로써 우리는 '유저의 니즈를 반영한 알고리즘이 비즈니스 성과를 달성할 수 있도록 한다'는 것을 입증할 수 있었습니다. 이제, 이러한 니즈를 알고리즘의 어떤 요소로 반영할지 구체적인 전략을 세우기 시작했습니다.


3. 각 요소별 팩터 설정

알고리즘을 설계하기 위해, 우리는 다양한 팩터에 대한 기준 데이터를 수집하고 이를 바탕으로 수식을 설정했습니다. 각 팩터는 앞선 알고리즘 설계 사전 준비 단계에서 확인한 모임의 매력도, 신뢰도, 수익성 등을 종합적으로 평가할 수 있도록 구성하였습니다.

*아래 팩터는 기밀 유지에 따라 유저에게 공개된 범위 내에서만 기재되었습니다.

  1. 인기도
    • CVR(조회 대비 신청율):
      인기도를 측정하기 위해 CVR을 사용했습니다. 단순 조회 대비 클릭율(CTR) 대신, 실제로 신청으로 이어진 비율을 활용한 이유는 클릭만으로는 모임의 진정한 매력도를 평가하기 어렵다고 판단했기 때문입니다. 또한 앞선 내용에서 데이터를 통해 확인한 '유저가 특정 모임을 매력적으로 느꼈다고 판단하는 기준'은 실제로 신청이 이루어진 경우였습니다. 
      추가로, CVR은 동일한 모임이 계속 노출되지 않고 순환되도록 하는 역할도 합니다. 높은 점수를 받아 상단에 노출된 모임은 계속해서 조회 수가 증가할 가능성이 있지만, 조회 대비 신청이 발생하지 않는다면 자연스럽게 노출 순위가 하락하도록 설정했습니다. 조회는 많이 되지만 신청으로 이어지지 않는 모임은 상단에서 밀려나고, 유효한 신청으로 이어지는 모임이 더 많이 노출되도록 함으로써 알고리즘의 공정성과 효율성을 높이는 중요한 요소로 작용하게 됩니다.
    • 판매율:
      전체 신청 가능 인원 대비 현재 신청 인원을 기준으로 모임의 현재 인기도를 측정했습니다. 판매율이 높을수록 모임의 인기도가 높다고 판단하여 상단에 노출될 가능성을 높였습니다.
  2. 잠재 수익
    • 잔여 자리x모임 단가
      모임의 잠재적인 수익성을 평가하기 위해 잔여 자리 수와 모임 단가를 곱한 값을 기준으로 삼았습니다. 이 수치는 모임이 얼마나 추가적인 수익을 가질 수 있는지를 보여주며, 잠재 수익이 높은 모임이 상단에 노출될 수 있도록 합니다. 이 팩터는 '판매율' 팩터와 상충될 수 있으나 대규모 모임의 경우 판매율이 상대적으로 낮을 가능성이 높아 잠재 수익 팩터를 추가함으로써 이러한 모임도 충분히 노출될 수 있도록 고려된 팩터입니다.
  3. 신뢰도
    • 플랫폼 가이드 위반 경고 점수:
      신뢰도가 낮은 호스트의 모임이 상단에 노출되지 않도록, 플랫폼 가이드를 위반하여 경고 점수가 누적된 호스트의 모임에는 감점을 부여했습니다.
    • 플랫폼 공식 호스트 가산점:
      반대로, 플랫폼에서 공식적적으로 별도 인증을 마친 호스트(셀렉티드 호스트, 공식 클래스 호스트)에게는 가산점을 부여하여 신뢰도가 높은 모임이 비교적 잘 노출될 수 있도록 했습니다.
  4. 무료 소셜링 추가 점수
    • 무료 소셜링 추가 점수:
      무료 소셜링은 '잠재 수익' 팩터에서 점수를 받을 수 없기 때문에, 다양한 모임이 노출될 수 있도록 약간의 추가 점수를 부여했습니다. 이로 인해 유료 모임뿐만 아니라 무료 모임도 적절히 노출될 수 있도록 균형을 맞췄습니다.
  5. 승인률
    • 호스트의 승인을 대기하고 있는 참가자가 많은 모임:
      신청 후 승인을 기다리는 신청자를 빠르게 승인하거나 거절하지 않는 모임에 대해 감점을 부여했습니다.
    • 잔여 인원보다 신청 인원이 많을 경우:
      이 경우, 추가 신청이 발생해도 정원 초과로 인해 승인 전환이 되지 않을 가능성이 높아지기 때문에 감점을 부여했습니다.

4. 초기 알고리즘 설계_Min-Max 스케일링 적용

우리는 설정한 다양한 팩터들을 바탕으로 초기 알고리즘을 설계했습니다.

이 과정에서 Min-Max 스케일링을 적용하여 알고리즘의 공정성과 계산 효율성을 극대화했습니다. 이는 점수 기반 노출 알고리즘이 균형 잡힌 결과를 도출하기 위해 필수적인 단계이며, Min-Max 스케일링을 적용한 상세 이유는 다음과 같습니다.

 

1. 팩터 간의 비교 가능성 향상

  • 알고리즘에서 사용되는 다양한 팩터들은 서로 다른 단위와 범위를 가질 수 있습니다. 예를 들어, 한 팩터는 0~1의 값을 가지는 '클릭률'이고, 다른 한 팩터는 1~100의 값을 가지는 '사용자 평가 점수'일 수 있습니다. 이들을 동일한 스케일에서 비교하지 않으면 범위가 큰 팩터가 더 큰 영향을 미쳐 다른 팩터들의 중요성이 왜곡될 수 있습니다. Min-Max 스케일링은 모든 팩터를 0~1 범위로 조정하여 각 팩터를 동일한 기준에서 평가할 수 있도록 합니다.

2. 각 팩터 간 공정성 및 균형 유지

  • 스케일링은 각 팩터의 기여도를 균등하게 만들어 알고리즘의 공정성을 높입니다. 이를 통해 특정 팩터가 과도하게 영향을 미치거나 반대로 너무 적게 영향을 미치는 것을 방지할 수 있으며, 모든 팩터가 공평하게 기여할 수 있게 합니

3. 계산의 안정성 향상

  • 0~1 범위의 값들은 계산의 안정성을 높여줍니다. 큰 값이나 매우 작은 값이 포함된 경우 발생할 수 있는 오버플로우나 언더플로우 같은 문제를 방지할 수 있으며, 이러한 안정성은 알고리즘의 성능과 정확성을 향상시키는 데 기여합니다.

4. 유연한 가중치 조정 가능

  • 스케일링된 데이터를 사용하면 각 팩터의 중요도(가중치)를 조정하기가 훨씬 용이해집니다. 가중치를 곱해 특정 팩터의 중요성을 높이거나 낮출 수 있어 알고리즘의 성능을 꾸준히 최적화할 수 있고, 추후 확장성을 높이는 데도 기여합니다.

5. 결론

 

이 글에서는 문제 해결을 위한 다양한 접근과 알고리즘 설계 과정을 다루었습니다. 인기도가 높은 모임, 신뢰할 수 있는 모임, 그리고 빠르게 구매 전환이 이루어지는 모임을 상단에 노출함으로써 유저가 매력적인 모임을 쉽게 찾을 수 있도록 하고, 플랫폼의 수익성을 극대화하는 것을 목표로 했습니다.

 

다음 글인 Part 3에서는 POC(Proof of Concept) 과정에서 발견된 문제와 그 해결 방안, 그리고 최종 알고리즘 적용 후의 성과와 변화에 대해 다루겠습니다. 새로운 알고리즘이 어떻게 실제로 적용되었고, 어떤 결과를 가져왔는지에 대한 이야기를 기대해 주세요.

 

 

 


다음 글)

 

주니어 PM의 알고리즘 개발기_part 3

이전글) 주니어 PM의 알고리즘 개발기_part 2이전 글) 주니어 PM의 알고리즘 개발기_part 1Part 1: 문제 정의와 상황 분석 0. 서비스 소개 문토(Munto)는 관심사 기반의 소셜 네트워킹 플랫폼입니다. 

awesomey.tistory.com