좋은 기능 선택하기
Decisioning Studio Pro 모델은 고객 기능을 입력으로 사용하여 개인화된 추천을 제공합니다. 의사 결정 공간에 잘 맞는 고품질 기능은 모델 성능을 개선하는 데 가장 영향력 있는 요소 중 하나입니다. 이 문서에서는 제공할 수 있는 기능의 유형, 이를 잘 구성하는 방법, 그리고 에이전트가 선택하게 될 행동과 기능을 어떻게 정렬할지에 대해 다룹니다.
내부 데이터 사이언스 또는 데이터 엔지니어링 팀이 있다면, 데이터에서 어떤 신호가 의미 있는지에 대한 맥락을 가장 잘 파악하고 있으므로 기능을 구성하고 큐레이트하는 데 가장 적합합니다.

Braze 고객의 경우, 고객 기능은 일반적으로 고객 프로필의 커스텀 속성을 통해 Decisioning Studio Pro에 전달됩니다. 커스텀 속성과 커스텀 이벤트 및 각각의 업데이트 전략에 대한 자세한 내용은 스냅샷 대 이벤트 스트림을 참조하세요.
고객 기능 유형
고객 기능은 일반적으로 다음 네 가지 범주로 나뉩니다.
| 기능 유형 | 포착하는 정보 | 예시 |
|---|---|---|
| 사용자 프로파일링 | 고객 상태에 관한 객관적인 사실 | age, loyalty_tier, days_enrolled, city, acquisition_channel |
| 사용자 성향 | 고객이 특정 행동을 할 가능성을 나타내는 모델 기반 점수 | churn_risk_score, purchase_intent_score, upsell_affinity |
| 사용자 행동 | 일정 기간 동안의 고객 활동 요약 | clicks_past_30d, purchases_past_7d, app_logins_past_14d |
| 환경 | 고객 외부의 상황별 신호 | is_promotional_period, is_holiday, regional_economic_index |
이러한 기능 유형을 함께 활용하면 모델이 Segments를 식별하고, 고객을 구분하고, 그에 맞게 추천을 조정하는 데 필요한 정보를 얻을 수 있습니다.
일반 가이드라인
기능을 선택하고 구성할 때 다음 사항을 염두에 두세요.
- 적용 범위: 기능은 타겟 오디언스의 모든 고객을 포괄해야 합니다. 오디언스의 상당 부분에서 값이 없거나 null인 기능은 해당 고객에 대해 모델이 활용할 수 있는 정보가 줄어듭니다.
- 세분성: 모든 기능은 고객 수준으로 집계해야 합니다. 실제로 “고객 수준”이 무엇을 의미하는지에 대한 안내는 Braze 외부 ID 사용을 참조하세요.
- 최신성: 새로운 활동이 없는 고객을 포함하여 오디언스의 모든 고객에 대해 매일과 같이 시간 기반 스케줄로 기능을 업데이트하세요. 이것이 중요한 이유는 스냅샷과 이벤트 스트림 비교를 참조하세요.
- 유효성: 기능 값은 정의에 비추어 타당한 범위 내에 있어야 합니다. “최근 30일간 구매 횟수” 기능은 절대 음수가 되어서는 안 됩니다.
- 희소성: 명확한 비즈니스상의 이유가 없는 한, 대다수 고객에게 0 또는 null인 기능은 피하세요. 희소한 기능은 유의미한 신호 없이 노이즈만 더합니다.
- 상관관계: 서로 상관관계가 높은 기능을 함께 포함하지 마세요. 중복된 기능은 예측을 개선하지 못한 채 편향을 유발하고 교육 속도를 늦출 수 있습니다.
행동 기능 구성
행동 기능은 정의된 기간 동안 고객이 수행한 행동 이력을 요약합니다(예: “최근 28일간 구매 횟수”). 행동 기능은 고객이 실제로 어떻게 행동하는지를 포착하므로 추천 시스템에서 가장 가치 있는 기능 중 하나입니다. 정적인 프로필 특성이 고객이 누구인지를 설명한다면, 행동 기능은 고객이 무엇을 하는지를 설명합니다.
기간 선택
적절한 기간은 측정하려는 행동을 고객이 얼마나 자주 수행하는지에 따라 달라집니다.
- 짧은 기간(7–28일): 앱 로그인, 이메일 열람, 웹사이트 방문처럼 빈도가 높은 활동에 사용합니다.
- 긴 기간(90–365일): 제품 구매, 가입 갱신, 고객 서비스 문의처럼 빈도가 낮은 활동에 사용합니다.
유용한 진단 방법이 있습니다. 기능 값 중 상당 비율이 0이라면 기간이 너무 짧을 가능성이 높습니다. 고객 간에 의미 있는 편차가 보일 때까지 기간을 넓혀 보세요.
집계 방식 선택
- 값이 없는 이벤트(발생했거나 발생하지 않은 경우)에는 개수(count) 집계를 사용합니다. 예:
email_opens_past_30d. - 관련 값이 있는 이벤트(매출, 지속 시간, 수량)에는 합계(sum)와 평균(average) 집계를 모두 사용합니다. 예:
purchase_value_sum_past_90d및purchase_value_avg_past_90d. 이 두 집계는 전체 규모와 이벤트당 크기에 대해 서로 보완적인 정보를 제공합니다.
기능을 액션 공간에 맞추기
Decisioning Studio Pro는 순위 지정 시스템입니다. 이 시스템의 목표는 각 고객에 대해 정의된 옵션 집합 중 어떤 액션이 최상의 성과를 낼 가능성이 가장 높은지 파악하는 것입니다. 따라서 한 가지 구체적인 요구 사항이 생깁니다. 기능은 가능한 한 특정 고객에게 제공할 수 있는 옵션들을 모델이 서로 구별하는 데 도움이 되는 정보를 제공해야 합니다.
이것이 중요한 이유
예를 들어, 에이전트의 액션 공간이 커피, 홍차, 버블티라는 세 가지 메뉴 항목 중 하나를 추천하는 것이라고 가정해 보겠습니다.
기능이 고객을 높은 수준에서 설명한다면(“음료를 자주 주문함” 또는 “이메일 인게이지먼트가 높음”), 모델은 고객을 넓은 그룹으로 나눌 수 있습니다. 하지만 특정 고객에 대해 커피와 버블티의 순위를 정할 때는 이런 넓은 범위의 기능이 별로 도움이 되지 않습니다. 두 고객이 높은 수준의 기능에서는 똑같아 보여도 선호도는 완전히 반대일 수 있기 때문입니다.
비슷해 보이는 두 고객에게 커피를 추천했는데 한 명만 전환하는 경우처럼 모델이 상반된 신호를 받으면 효과적으로 학습할 수 없습니다. 이러한 노이즈로 인해 정확한 순위를 매기는 능력이 떨어집니다.
액션 공간에 맞는 기능 구축하기
액션 공간과 같은 세분성으로 매핑되는 기능은 모델에 훨씬 더 강력한 순위 신호를 제공합니다. 카페 예시에서 coffee_orders_past_14d 같은 기능은 고객이 커피를 선호하는지 모델에 직접 알려줍니다. black_tea_orders_past_14d 같은 기능은 홍차에 대해 같은 역할을 합니다. 이제 모델은 충분한 정보를 바탕으로 순위를 결정할 수 있습니다.
액션에 맞춘 기능을 사용하면 모델이 포화 상태와 피로도도 감지할 수 있습니다. 고객의 coffee_orders_past_14d 값이 높은데도 최근 커피 추천에서 전환하지 않았다면, 모델은 커피를 다시 추천하는 것이 최선이 아닐 수 있다는 점을 학습하고 다른 대안을 테스트하기 시작합니다.
정확하게 맞출 수 없는 경우
기능과 액션을 정확하게 맞추는 것이 이상적이지만, 데이터 가용성 때문에 제약을 받는 경우가 많습니다. 완벽하게 맞춘 기능을 구축할 수 없을 때는 다음 두 가지 접근 방식이 도움이 될 수 있습니다.
데이터 요약: 홍차와 버블티 구매를 구별할 수 없다면 집계된 tea_orders_past_14d 기능을 사용하세요. 정밀도는 다소 떨어지지만, 차를 선호하는 고객과 커피를 선호하는 고객을 모델이 구별하는 데 여전히 도움이 됩니다.
간접 신호: 액션 공간에 직접 포함되지 않는 기능이라도 액션 공간과 논리적인 관계가 있다면 여전히 유용할 수 있습니다. 예를 들어, dessert_purchased_past_30d는 단 음식에 대한 선호도를 나타내는 적절한 대리 지표이며, 이는 버블티 선호도와 상관관계가 있을 가능성이 높습니다. 모델은 직접 일치하는 기능이 없어도 이러한 간접 신호로부터 학습할 수 있습니다.
기본 원칙은 더 관련성 높고 세분화된 정보가 항상 도움이 되지만, 모델은 불완전한 기능으로도 학습할 수 있다는 것입니다. 지금 가지고 있는 것부터 시작하고, 더 많은 데이터를 사용할 수 있게 되면 시간을 두고 개선해 나가세요.