“이 고객에게 왜 이 상품인가?”를 벡터로 설명하는 법
들어가며
고객 페르소나 벡터를 만들었다면, 다음 질문은 피할 수 없다.
“그럼 이 페르소나에
어떤 상품을, 왜 추천해야 할까?”
여기서 핵심은 단순한 유사도가 아니다.
중요한 것은 페르소나 벡터와 상품 벡터가 같은 의미 좌표계에 있는가,
즉 정합성(alignment) 이다.
한 문장 요약
정합성이란,
고객과 상품이 ‘같은 의미 축 위에서’
서로를 이해할 수 있는 상태다.
1.왜 단순 코사인 유사도만으로는 부족한가?
많은 시스템이 이렇게 시작한다.
score = cosine(user_embedding, product_embedding)문제는 이 질문이다.
“이 두 벡터는 무엇을 기준으로 가까운가?”
- 고객 벡터: 행동·의도·라이프스타일
- 상품 벡터: 스펙·가격·카테고리
→ 의미 기준이 다르면, 유사도는 우연이 된다
2.정합성의 핵심: “공유된 의미 축”
정합성이란 다음 조건을 만족하는 상태다.
- 고객 페르소나 벡터 = 의미 축의 조합
- 상품 벡터 역시 같은 의미 축에 투영 가능
즉,
“이 상품은 어떤 페르소나에게 맞는가?”
를 같은 좌표계에서 답할 수 있어야 한다.
3. 상품 벡터는 어떻게 만들어야 할까?
3-1. 나쁜 예: 스펙 나열 벡터
[용량, 무게, 소비전력, 가격, 색상]→ 고객 페르소나 축과 직접 연결되지 않음
3-2. 좋은 예: 의미 축 기반 상품 벡터
상품도 의미 축에 투영한다.
예시 축:
- 프리미엄 성향
- 가격 민감도 대응
- 가족 적합도
- 설치 복잡도
- 유지관리 부담
Product Vector =
[
프리미엄↑,
가격민감도↓,
가족적합↑,
설치난이도↓,
유지관리↓
]→ 고객 페르소나 벡터와 동일한 축 구조
4.정합성 설계의 기본 구조
고객 행동 → 고객 임베딩 → 페르소나 벡터
↓
정합성 스코어
↑
상품 정보 → 상품 임베딩 → 상품 페르소나 벡터→ 핵심은 중간의 ‘의미 축 공간’
5. 정합성 스코어 설계 방법 3가지
방법 1. 축별 매칭 점수 합산
가장 직관적인 방식.
score = Σ_i ( persona_i × product_i × weight_i )- persona_i: 고객의 성향
- product_i: 상품의 성향
- weight_i: 비즈니스 중요도
→ “어디서 잘 맞고, 어디서 안 맞는지” 설명 가능
방법 2. 코사인 유사도 (축 공간에서)
- 페르소나 벡터 ↔ 상품 벡터
- 이미 의미 축으로 정렬된 공간
→ 이때의 코사인은 ‘의미적으로 맞는다’는 뜻
방법 3. 제약 조건 기반 정합성
추천 전에 탈락 조건부터 적용.
- 설치 난이도 > 고객 허용치 (X)
- 가격 민감도 × 가격 > 임계값 (X)
→ 정합성 = “좋음” 이전에 “가능함”
6.예시로 보는 정합성 해석
고객 페르소나
[구매의사↑, 가격민감↓, 프리미엄↑, 가족성향↑]상품 A
[프리미엄↑, 고가, 대용량, 설치복잡]→ 가족 중심 프리미엄 고객에게 정합성 높음
상품 B
[가성비↑, 소형, 기본 기능]→ 가격 민감 고객에게는 적합
→ 위 고객에게는 정합성 낮음
“왜 추천/비추천인가?”를 축 단위로 설명 가능
7.정합성 설계가 주는 실무적 이점
설명 가능 추천 (Explainable Recommendation)
- “이 고객은 프리미엄 성향이 높아서…”
전략적 제어 가능
- 특정 축 가중치 조절
- 캠페인 목적에 맞는 추천
데이터가 바뀌어도 견고함
- 축 기반 구조는 유지
- 값만 업데이트
8.흔한 실패 패턴
(X) 고객 벡터만 고도화
(X) 상품 벡터는 카테고리 원-핫
(X) 의미 축 정의 없이 코사인만 사용
→ 결과:
- 이유 없는 추천
- 튜닝 불가
- 비즈니스 설명 불가능
한 문장으로 정리하면
좋은 추천이란
“가까워서”가 아니라
“같은 기준으로 맞아서” 나온다.
마치며
페르소나 벡터와 상품 벡터의 정합성 설계는
추천 시스템을 모델 문제 → 해석 가능한 구조 문제로 바꾼다.
- 고객은 어떤 사람인가?
- 상품은 어떤 성향을 만족시키는가?
- 이 둘은 어디에서 만나는가?
이 질문에 벡터로 답할 수 있다면,
그 추천 시스템은 이미 한 단계 위에 있다.