속성을 활용한 추천 고도화 : Part 2. 무신사가 개인화 추천을 하는 방법

JeeYoon Kim
MUSINSA tech
Published in
14 min readJul 24, 2024

안녕하세요. 무신사 추천프로덕트팀 PM 김지윤입니다. 추천프로덕트팀은 무신사 고객에게 최적화된 쇼핑 경험을 제공하기 위해 개인화된 상품 추천을 기획하고 운영합니다.

우리 모두 한 번쯤은 옷장을 열어보며 “왜 입을 옷이 하나도 없지?” 생각하며 쇼핑 앱에 들어갔지만, 원하는 옷을 찾지 못해 빈손으로 앱을 닫은 경험 있지 않으신가요?

무신사 추천프로덕트팀과 데이터프로덕트팀에서는 여러분이 “좋아하는 스타일의 옷”과 “이맘때 구매할 만한 옷”을 쉽고 빠르게 찾을 수 있도록 2가지 추천 서비스를 오픈했습니다. 파트 1 글에 소개된 무신사 패션 택소노미를 추천에 활용한 과정을 공유해 보려 합니다.

1. 고객 맞춤 스타일 옷 추천

무신사에 다양한 상품과 브랜드가 입점하면서 “제 취향에 맞는 옷을 찾기 힘들어요”라는 고객의 의견이 증가했습니다. 이를 해결하기 위해 먼저 “옷 취향”을 정의했습니다.

취향이란?

누군가 “너의 옷 취향은 뭐야?”라고 묻는다면, 여러분은 어떻게 대답하실 건가요? 저희 팀 내에서는 “깔끔하고 걸리시한 스타일이요”, “그냥 뭐.. 무난한 거요”, “놈코어를 표방하면서 스트릿을 가미한 거요”, “뉴진스요” 등 다양한 답변이 나왔습니다. 이처럼 취향은 주관적이고 감성적인 영역이죠. 하지만, 파트 1 글에 소개된 스트릿, 미니멀, 걸리시와 같은 감성적 속성인 ‘스타일’은 상품의 객관적인 특징과 감성적인 무드를 함께 반영하기 때문에 취향의 많은 부분을 설명해 줍니다. 실제로 “제 스타일 옷 추천해 주세요”처럼 스타일과 취향을 혼용한 고객의 의견도 많았습니다. 따라서, 이번 프로젝트에서는 고객이 말하는 취향을 스타일로 정의했습니다.

무엇이 문제일까?

왜 고객은 관심 있는 스타일의 옷을 찾기 힘들어할까요? 지난 에서 VoC 수집 과정을 공유해 주신 제품경험분석팀의 리서치 결과를 참고하여 2가지 문제점을 도출했습니다.

문제 1. 상품의 스타일 분류가 세밀하지 않아 고객이 다양한 스타일을 찾기 어렵다.

리서치에 따르면 무신사는 캐주얼과 스트릿 중심의 “힙한” 스타일을 추구하는 플랫폼으로 인식되고 있으며, 로맨틱과 걸리시 패션 스타일을 추구하는 사람들은 무신사의 패션 스타일과 본인의 스타일이 일치한다는 응답이 현저히 적었습니다.

무신사의 기존 상품 시스템 체계에서는 상품을 총 5가지 스타일로 분류하고, 고객이 최근 본 상품과 동일한 스타일의 상품을 추천하고 있었습니다. 하지만, 전체 상품의 80%가 캐주얼과 스트릿 스타일로 분류되어 있어, 세분화되지 않은 분류로 인해 고객이 다른 스타일의 상품을 보더라도 주로 캐주얼 스타일의 인기 상품이 추천되는 현상이 발생했습니다. 이로 인해 고객이 원하는 스타일의 상품을 찾기 힘들 것으로 판단했습니다.

문제 2. 고객이 본 상품 1개의 스타일이 고객이 관심 있는 스타일을 대표하지는 않는다.

기존 추천 서비스에서는 고객의 최근 행동에 초점을 맞추어 최근 본 상품 1개를 기준으로 상품을 추천하고 있었는데요. 나를 위한 추천이 아닌 “기계적인 최근 본 상품 추천” 같아 아쉽다는 의견이 종종 있었습니다. 또한, 최근 본 상품에는 “어쩌다 한 번”, “실수로”, “선물하려고” 본 상품들이 포함되므로 본인의 스타일에 맞는 추천이 제공되지 않았다고 느낀 고객들도 있었습니다. 따라서, 고객이 본 상품 1개의 스타일과 평소 관심 있는 스타일은 다를 수 있음을 확인했습니다.

해결 — 속성을 재료로 고객의 관심 스타일 개인화 추천

STEP 1. ‘걸리시’부터 ‘미니멀’까지! 스타일 12개로 세분화하기

가설 1. 상품의 스타일을 세분화하여 각 상품이 더 적합한 스타일로 분류되면 고객은 본인 스타일에 맞는 상품을 찾기 쉬울 것이다.

가설에 따라 파트 1 글에 소개한 감성적 속성인 ‘스타일’ 15개 중에서 추천에 유의미한 상품 수와 카테고리 분포를 가진 12개의 스타일을 상품 추천 시에 적용했습니다. 스타일이 5개에서 12개로 늘어남에 따라 기존에 캐주얼 스타일로 분류되었던 상품의 약 40%가 걸리시, 미니멀, 시크, 프레피 스타일 등으로 세분화되었습니다.

STEP 2. 고객이 좋아하는 스타일 찾기! 서비스에 남긴 시그널 수집

가설 2. 고객이 반응한 상품들의 스타일을 모으면 고객이 관심 있는 스타일을 알 수 있을 것이다.

상품의 스타일을 세분화했다면, 이제는 고객이 좋아하는 스타일을 찾아야 합니다. 상품의 스타일을 집계하여 고객의 관심 스타일을 파악해 보기로했습니다.

고객 별로 최근 무신사 서비스 내에서 본, 좋아요한, 구매한 상품의 스타일을 집계한 뒤, 스타일 별 관심도 점수를 계산했습니다. 단, “어쩌다 본 상품”의 스타일을 배제하기 위해 특정 개수 이상의 상품을 본 경우만 포함했습니다. 집계된 스타일을 확인한 결과, 무신사 고객은 평균 6개 스타일의 상품을 보고, 그중에서 3개 스타일의 상품을 좋아요하고, 그중에서 2개 스타일의 상품을 구매하고 있었는데요. 따라서, 구매한 상품의 스타일을 더 강한 관심도로 판단해 구매, 좋아요, 본 순으로 행동 별 가중치를 주었습니다. 또한, 시기에 따라 고객이 선호하는 스타일은 변화할 수 있으므로 가장 최근 행동에 더 많은 가중치를 주었습니다.

이렇게 세분화된 상품 스타일 분류 체계 덕분에 고객의 선호 스타일을 집계할 수 있었습니다.

잠깐! 관심 스타일이 1개로 나타난 고객들도 있었는데요. 이 그룹의 점수를 분석한 결과, 상품 탐색량 자체가 적은 고객이었습니다. 따라서, 특정 1가지 스타일을 강하게 선호한다고 판단하기보다는 동일한 성연령대이면서 관심 스타일이 1개 이상 겹치는 고객의 탐색으로부터 좋아할 것 같은 스타일을 추가로 예측하기로 했습니다.

먼저, 성별과 연령대에 관계없이 대다수의 고객이 '캐주얼' 스타일에 대한 관심도가 높았기 때문에, '캐주얼' 스타일을 좋아할 것 같은 스타일에 포함했습니다. 반면, 캐주얼을 제외한 나머지 스타일은 고객의 1순위 관심 스타일에 따라 2, 3순위 관심 스타일이 달랐는데요. 예를 들어, ‘걸리시’ 스타일을 좋아하는 20대 여성 고객 중에서는 ‘스트릿’ 스타일을 좋아하는 고객이 가장 많았지만, ‘미니멀’ 스타일을 좋아하는 고객은 ‘클래식’ 스타일을 함께 가장 선호했습니다.

따라서, 상품 탐색량이 적은 고객의 경우에는 비슷한 고객이 함께 많이 찾은 스타일을 그 고객의 관심 스타일에 추가했습니다. 좋아할 것 같은 스타일을 제공함으로써 상품의 추가적인 탐색을 돕고자 했으며 이를 무신사에서는 “추천 커버리지”를 높였다고 표현합니다. 1명의 고객에게 추천되는 상품의 수와 다양성, 그리고 가능한 많은 고객에게 해당 추천이 제공될 수 있는지를 중요하게 고려하고 있답니다.

STEP 3. 스타일 별 상품을 어떻게 보여줄까? 인기 카테고리 인기 상품 추천하기!

가설 3. 스타일마다 인기 있는 상품 카테고리가 다를 것이다.

스타일 별 상품을 인기 순으로 정렬하면 특정 카테고리의 상품만 상위에 노출되는 현상이 발생했습니다. 따라서, 스타일별로 인기 카테고리를 탭 ui로 나누어 상품을 더 다양하게 보여주기로 했습니다. 기존에는 스타일에 상관없이 고객의 성별 및 연령대별로 인기 있는 카테고리를 동일하게 노출하고 있었었는데요. 스타일이 12개로 세분화됨에 따라 가설 3을 세운 뒤, 구매 데이터를 분석해 스타일 별 인기 카테고리에 차이가 있음을 검증했습니다.

따라서, 고객이 좋아하는 스타일별로 성별과 연령대에 맞는 최근 인기 카테고리를 추출하여 스타일과 카테고리 조합에 해당하는 인기 상품을 추천했습니다. 추가로, 고객별로 가장 좋아할 스타일과 카테고리의 조합을 첫 번째 탭에 노출시켰답니다.

결과

짜잔! 이렇게 고객이 좋아하는 스타일에 따라 맞춤형 추천이 나타나고 있습니다. 기존 추천 서비스에서는 잘 보이지 않던 ‘걸리시’와 ‘미니멀’과 같은 스타일의 상품들이 노출되게 되었답니다. 결과적으로, 기존 추천 로직(최근 본 상품 기반) 대비 상품 전환율(CTR)이 41% 증가, 인당 상품 클릭수가 54% 증가한 유의미한 성과가 있었습니다.

또한, 관심 스타일에 따라 아래와 같이 동일한 ‘민소매 티셔츠’ 서브 카테고리여도 스타일에 맞는 다른 인기 상품들이 추천되고 있답니다.

흥미로운 점은 “걸리시”와 “로맨틱” 스타일 추천이 전체 여성 고객은 물론 모든 성별과 연령대에서 추천된 스타일 중 가장 높은 상품 전환율(CTR)을 보였다는 것입니다. 기존 “캐주얼” 스타일 상품들과 섞여 있어 무신사 추천 서비스에서 잘 보이지 않았던 “걸리시”와 “로맨틱”한 스타일의 상품들을 정확하게 분류하고 맞춤 추천을 제공함으로써, 이 스타일을 선호하는 고객들의 니즈에 맞는 상품 탐색에 도움이 되었다는 점이 굉장히 뿌듯했습니다.

2. 이맘때 구매할 만한 옷 추천

무신사 서비스에 대한 고객의 또 다른 주요 의견은 “매번 비슷한 상품만 보이는 것 같아요.” “새롭고 다양한 상품 보고 싶어요!”였습니다. 추천 서비스에 대한 직접적인 불만은 아니었지만, 새로운 상품 탐색에 대한 고객의 니즈를 확인해 추천 영역에서도 개선할 수 있는 점을 찾기로 했습니다.

무엇이 문제일까?

기존 추천 서비스는 주로 고객의 최근 행동과 연관된 상품을 추천하기 때문에 비슷해 보이는 상품만 보일 수 있다는 가설을 세웠습니다. 따라서, 문제 해결을 위해서는 보던 것을 더 보여주는 개인화된 추천보다는 대중적인 추천이 필요하다고 판단했습니다.

어떤 추천이 필요한지 고민하던 중, 고객들이 “요즘 인기 있는” 상품을 알고 싶어 한다는 VoC를 확인하여 이맘때 사기 좋은 상품을 추천하기로 했습니다. 따라서, “이맘때”, “인기”, “새로운”, “다양한” 4가지 요소에 적합한 추천을 제공하는 것이 가장 중요했습니다. 우선, 다양한 카테고리의 상품을 추천하면 자연스럽게 노출되는 상품이 다양해질 것이라고 판단했습니다.

해결 — 속성을 재료로 이맘때 인기 카테고리의 인기 상품 추천

STEP 1. 가장 “다양한” 카테고리 체계 고르기

먼저, 무신사의 여러 상품 카테고리 분류 체계 중에서 어떤 체계를 사용할지 결정이 필요했습니다. 파트 1 글에서 소개한 상품의 물리적 속성인 ‘서브 카테고리’가 상품의 카테고리를 가장 세밀하게 분류하기 때문에 다양성을 보장하는 데 가장 적합했습니다. 예를 들어, 다른 체계에서는 짧은 기장의 아우터를 모두 ‘숏 헤비 아우터’로 통합하는 반면, 서브 카테고리 체계를 활용하면 ‘패딩 점퍼’, ‘무스탕’, ‘파카’ 등의 개별 카테고리로 세분화할 수 있었습니다. 따라서, 서브 카테고리를 사용하기로 결정했습니다.

STEP 2. “이맘때” 구매할 만한 “인기” 서브 카테고리 찾기

가설 1. 고객이 작년과 재작년 이맘때 많이 구매한 카테고리가 올해도 인기 있을 것이다.

“작년에 이맘때 뭘 입었더라?” 하며 작년에 찍었던 사진을 둘러본 저의 경험으로 위 가설을 세웠습니다. 최근 3년간 특정 주에 특정 성 연령대 고객이 가장 많이 구매한 서브 카테고리를 분석한 결과, 상위 인기 서브 카테고리의 70%가 동일했습니다.

하지만, 서브 카테고리 항목은 제 기대와 달랐습니다. 집계된 서브 카테고리에는 '무스탕’과 ‘더플코트'처럼 특정 시기에 많이 찾는 카테고리도 있었지만, 구매량이 높았던 서브 카테고리들은 모두 ‘후드집업’처럼 사계절 내내 인기가 있는 카테고리였습니다.

따라서, 두 번째 과제는 사계절 내내 인기 있는 서브 카테고리 상품 중에서 이맘때 인기 있는 상품을 찾는 것이었습니다. 단순히 현재 인기 있는 후드집업을 추천할 수도 있지만, 이는 고객에게 자주 노출된 상품들로 새로운 탐색에 도움이 되지 않으므로 문제 해결에 더 적합한 방법을 고려해야 했습니다.

STEP 3. 속성을 카테고리와 조합해 “이맘때” 와 “다양성" 강화하기

가설 2. 상품의 카테고리와 물리적 속성을 조합하면 시의성과 다양성이 반영될 것이다.

사계절 내내 니트를 구매하더라도 여름에는 “반소매”나 “크롭” 속성을, 겨울에는 “긴 소매”나 “울” 속성의 니트를 찾게 됩니다. 따라서, 인기 서브 카테고리만 집계하는 것보다 파트 1 글에서 소개한 상품의 물리적 속성과 서브 카테고리를 조합하면 이맘때 찾는 상품을 더 잘 대표할 것이라고 판단했습니다.

실제로 작년 10월에는 “울”과 “코듀로이”가 “코튼” 스커트보다 구매량이 높았고, “패딩”, “브이넥” 베스트가 “니트” 베스트보다 구매량이 높았습니다. 또한, 연령대별로도 반응하는 속성에 차이가 있었는데요. 연령대가 높아질수록 코트 중에서 “캐시미어” 소재와 “벨티드” 장식이 들어간 코트의 구매량이 높았으며, 패딩 류에서도 30대 중반으로 갈수록 “숏” 보다 “레귤러” 기장의 패딩이 구매량이 더 높았습니다.

속성과 서브 카테고리의 조합은 다양한 상품을 보여주는 데에도 적합했습니다. 예를 들어, ‘카고팬츠’ 서브 카테고리의 인기 상품을 추천하는 것보다 ‘나일론’ 카고팬츠, ‘데님’ 카고팬츠, ‘코튼’ 카고팬츠처럼 속성을 조합했을 때 다양한 상품이 추천될 수 있었습니다.

따라서, 성 연령대별로 최근 3년 이번 주에 구매량이 높았던 속성과 서브 카테고리의 조합의 인기 상품을 추천했답니다.

STEP 4. “새로운” 발견을 위해 매 분 다른 조합 추천하기

새로운 상품을 보고 싶다는 고객의 니즈를 반영하여 매일 새로운 이맘때 인기 있는 속성x서브 카테고리 조합을 추출했고, 이를 매 분마다 다르게 노출했습니다. 추가로, 고객이 “왜 이 상품이 추천되었는지”를 이해할 수 있도록 요즘 스타일링에 적합한 점을 강조했습니다. 각 속성의 특징에 어울리는 문구를 부여했는데요. 예를 들어, “울” 속성에는 “고급스러운”, “경량패딩” 속성에는 “가볍고 따뜻한”, “나일론” 속성에는 “탄탄한” 형용사를 붙여 추천 상품에 대한 설명을 더했습니다.

결과

짠! 이렇게 매일 매 분마다 다양한 속성x서브카테고리 조합의 상품들이 노출되고 있답니다. 실제 추천된 상품의 카테고리의 수가 이전 대비 평균 2.32% 더 늘어났습니다. 흥미로운 분석 결과도 있었는데요. ‘이맘때 사기 좋은 옷 추천’으로 상품을 많이 클릭하는 고객은 무신사 내 구매력이 높은 고객들이었습니다. 따라서, 이들은 새로운 상품 탐색에 대한 니즈가 높다는 인사이트를 얻을 수 있었습니다.

마치며

첫 번째 프로젝트에서는 상품의 스타일을 사용해서 고객이 관심 있는 스타일을 정의하고, 이에 맞는 개인화 추천을 제공했습니다. 이번 스타일 추천을 시작으로 고객의 취향을 구성하는 브랜드, 카테고리, 상품의 속성 등 다양한 요소를 고려하여 개인화 추천을 고도화할 계획입니다. 또한, 보던 것을 더 잘 보여줄 뿐만 아니라 이맘때 사기 좋은 옷 추천과 같이 새로운 상품도 더 많이 발견할 수 있도록 할 예정입니다.

무엇보다, 오늘 소개한 2가지 추천과 앞으로의 개선이 가능한 건 파트 1 글에 소개된 무신사만의 패션 텍소노미가 존재했기 때문입니다. 앞으로도 데이터프로덕트팀은 속성 확장 및 예측 정확도를 높이고, 추천 프로덕트팀에서는 속성을 재료로 추천 서비스를 고도화할 방안을 기획하여 좋은 시너지를 낼 예정입니다.

마지막으로, 든든한 팀원분들 덕분에 짧은 시간 안에 프로젝트를 성공적으로 마무리할 수 있었습니다. 개발하시느라 가장 많이 고생해 주신 두섭님과 영민님 정말 감사합니다! 또한, 좋은 속성 기반을 마련해 주신 정민님과 일호님, 편하게 qa 하도록 데모 만들어주신 건희님, api json 질문 폭탄에 매번 칼답해주신 두석님, 성과 분석에 도움 주신 의린님, 신규 서비스 배포에 기반을 마련해 주신 혜윤님, 타이틀 워싱에 도움 주신 성현님, 옆에서 조언 주신 준호님과 원지님까지 모두 감사합니다! 무신사 추천 서비스가 즐거운 쇼핑 경험을 제공하도록 아주 열심히 달려가고 있으니 앞으로의 발전을 기대해주세요!

Musinsa CAREER

함께할 동료를 찾습니다.

추천프로덕트팀은 무신사 고객에게 최적화된 쇼핑 경험을 제공하기 위해 개인화된 상품 추천을 기획하고 운영합니다. 데이터프로덕트팀은 데이터사이언티스트, 데이터애널리스트, ML엔지니어, API개발자가 한 팀으로 구성되어 무신사 및 그룹사 플랫폼 데이터를 활용해 추천, 검색 등 다양한 데이터 프로덕트를 제공합니다. 전국민이 사용하는 1위 패션 플랫폼 무신사에서 기술로 비즈니스를 성장시키는 경험을 함께하고 싶으시다면 아래 채용 페이지를 통해 지원해 주세요!

🚀 무신사 채용 페이지 : https://corp.musinsa.com/ko/career

--

--