추천 기능 구현을 위한 데이터와 모델

상품(콘텐츠) 추천 기능 구현하기: (1) 필요한 데이터의 종류

요즘은 모바일 디바이스가 대중화되었는데요, 그 중에서도 스마트폰이 ‘기본’이 되며 오프라인 플랫폼들이 온라인으로 대거 이동하는 흐름이 나타났습니다. 배달, 부동산, 쇼핑, 영화 감상, 교육, 운동 등 셀 수없이 방대하죠.


화해(이미지 출처 화해 블로그), 롯데마트, 넷플릭스에서 제공하는 다양한 추천 기능들

앱/웹 플랫폼 안에서 다양한 상품과 미디어 콘텐츠를 제공하기 위해 ‘추천’ 기능이 제공됩니다.

뷰저블은 이번 글에서 추천 기능을 구현하기 위해서는 어떤 ‘정보(데이터)’가 필요하며, 여러분이 향후 신규 도입하거나 고도화하기 위해서는 어떤 모델을 채용해야 하는지 소개하고자 합니다.



추천 받을 사람과 연관은 없지만 추천에 필요한 3가지 데이터와 UX


추천 기능의 기본은 ‘상품(미디어 콘텐츠) 데이터, 사용자의 행동이력 데이터, 전문가 또는 직원의 지식’ 크게 3가지입니다. 어떤 개념인지 설명드리겠습니다.



사물 기반 Attribute

‘사람은 사물의 각기 다른 속성을 평가하여 해당 사물을 종합적으로 평가한다.’는 사고방식에 근거하여 제안하는 기법입니다. 해당 상품의 기본적인 스펙이나 규격, 특징(캐릭터 패키지나 한정판 등) 데이터를 사용합니다.

수집되는 상품 데이터가 얼마나 상세하고 고도화되어 있는지에 따라 추천 수준이 나뉘는데요, 이 때문에 상품 데이터를 쉽게 표현하여 수집할 수 있어야 합니다. 상품의 특징을 DB화 시키기 어렵다면 올바른 추천이 어렵겠죠? ‘매운 맛’, ‘무가당’, ‘유아용’, ‘거실용’, ‘액션’, ‘로맨스’ 등을 예로 들 수 있습니다.


사람 기반 Consumers

‘유사한 특징을 지는 사람 혹은 과거 구매이력이 비슷한 사람은 동일한 상품을 선호한다’, ‘많은 사람들이 동시에 검토하거나 구매한 상품 또는 콘텐츠는 해당 고객에게 굉장히 가치 있는 상품에 해당한다.’라는 사고방식에 근거하여 제안하는 기법입니다.

추천 대상 이외의 ‘사람’이 얼마나 구매행동 또는 탐색행동을 하였는 가에 대한 상세 데이터가 필요합니다. 검색이나 상품을 장바구니에 담는 행위, 수량을 조정하는 행위, 상세 페이지나 리뷰를 보는 행위 등이 있겠죠. 갓 출시한 신상품은 행동 이력 데이터가 없기 때문에 추천이 불가능하다는 제약이 있습니다. ‘고객이 많은 본 혹은 담은 상품’, ‘고객이 많이 구매한 상품’, ‘리뷰가 많은 상품’ 등이 있습니다.


지식 기반 Knowledge

제 3자의 지식과 경험에 기반하여 해당 상품의 가치를 평가하고 제안하는 기법입니다. 해당 제 3자의 영향력과 신뢰도가 굉장히 중요합니다. ‘MD가 추천하는 상품’, ‘모 프로그램에 나와 화제를 모은 상품’, ‘유튜브 화제’, ‘의학 논문에 소개된 슈퍼 푸드’ 등이 있겠죠.


사물기반 데이터의 대표적인 적용 예시는 이마트몰에서 찾아볼 수 있었습니다.

‘비상식량’이라는 태그를 검색하자, 873개의 상품들이 검색결과에 노출되었는데요, 해당하는 873개의 상품 속성에 ‘비상식량’이라는 태그가 속해있기 때문입니다.



무신사 검색창에 ‘검은색’이라고 검색하니 검은색 관련 상품들이 나열되었습니다. 마찬가지로 나열된 상품들에는 검은색이라는 속성이 데이터로 저장되어 있음을 이해할 수 있습니다.



지식 기반 데이터의 예시는 유튜브나 블로그에서 쉽게 볼 수 있습니다. ‘봉준호 감독이 추천한 베스트 영화 TOP3’나 ‘승무원이 추천하는 미스트’처럼 영향력있는 제 3자나 어느 집단에 의해 추천하는 상품과 콘텐츠라고 이해할 수 있습니다.




추천받을 사람과 연관있으면서도 추천에 필요한 3가지 데이터와 UX


그렇다면 추천받을 대상자와 연관있는 데이터들은 어떤 것이 있고 어떻게 활용될까요?

추천 받는 사용자가 일으킨 행동 데이터(상품 클릭, 구매 등), 사용자의 과거 행동이력 데이터(과거 특정 기간동안의 상품 상세 페이지 확인 이력, 구매 이력 등), 설문조사에 기반한 마케팅 데이터처럼 활용하고자 하는 데이터를 분류할 수 있습니다.


먼저 추천받을 대상자의 데이터가 없다면 어떻게 해야할까요? 네, 아무런 추천을 할 수 없습니다. 성별 등의 최소한의 정보만을 가지고 추천하는 방법도 있지만 그렇지 않다면 이러한 사용자에게는 ‘동일한 상품’과 화면을 노출해야 합니다.


그렇다면 대상자의 데이터가 충분하다면 어떻게 추천할 수 있을까요?


행동 데이터

추천받을 사람이 사이트에서 일으키는 행동들에 따라 제안될 상품이 정해집니다.

특정 상품을 구매하려고 상세 페이지를 방문하였다면, 해당 상품과 연관되는 상품을 함께 노출시키는 방법으로 표현할 수 있습니다.


과거 행동이력 데이터

추천받을 사람이 구매하려고 하는 상품에 대한 과거 구매 이력이나 행동이력(클릭, 상세 페이지 보기 등)을 종합적으로 검토하여 학습합니다.

예를 들어 영화 한 편을 추천할 때, 과거의 영화 감상 이력과 상세 페이지 보기 이력, 시청시간, 영화에 대한 평점 등 과거에 일으켰던 행동 이력 데이터를 활용합니다. 굉장히 개인적인 추천이 가능하나 대규모 이력 데이터가 필요하여 고도화된 추천을 위해서는 시간이 걸리는 편입니다.

예전에 왓챠를 처음 가입하면 20~30개 정도의 영화 별점을 매기도록 제안하였는데요, 이러한 행동이력 데이터를 수집하기까지는 시간이 걸리기 때문에 빠르게 데이터를 축적한 것으로 보입니다. 반면 주의해야할 점이 있습니다. 커머스나 배달앱의 경우 누군가에게 ‘선물’할 용도로 구매하였다면 개인의 취향과 상관없는 추천이 이뤄질 가능성이 있습니다.


설문조사 등 마케팅 데이터

추천대상자의 프로필(직업, 성별, 연령, 관심사, 피부타입, 키, 체형 등)을 기반으로 추천이 이뤄집니다.

구매이력이나 상품 클릭 등과 상관없이 오로지 프로필에 기반하여 추천이 이루어지며 화장품이나 의류 서비스들이 많이 채택하는 방식입니다.


행동 데이터의 대표적인 예시는 무엇이 있을까요? 이마트몰과 아마존을 살펴보면 답을 알 수 있습니다. 상품 상세 페이지를 보면 기본적인 설명 바로 하단에 ‘이 상품과 함께 구매한 상품’, ‘카테고리 인기상품’을 노출시킵니다.

고객이 현재 어떤 행동을 일으키고 있는지, 맥락이 굉장히 중요한대요, 상품 상세 페이지에서는 이렇게 함께 구매하면 좋을 상품들을 추천하면 좋겠지만, 메인 페이지 또는 장바구니 페이지라면 제안하는 상품의 내용이 달라지겠죠.



과거 행동이력 데이터는 위 표에서도 언급한 것처럼 오래전 왓챠 UI가 대표적입니다. 예전에, 왓챠 서비스에서는 데이터를 쌓는 시간을 대폭 줄이기 위해 이렇게 앱을 다운로드 받으면 수십 개의 영화를 메시지를 통해 독려하며(예: 어떤 영화를 좋아하실지 조금씩 감이 와요!) 별점을 남기도록 유도하였습니다.

이렇게 쌓은 데이터를 기반으로 자신이 좋아하는 영화 장르가 무엇인지를 알 수 있고 비슷한 유형의 영화도 추천받을 수 있었습니다.




수집 데이터에 기반한 12가지 상품 추천 유형


이렇게 쌓은 데이터를 가지고 그럼 어떤 추천 모델을 활용해야할까요? 뷰저블은 12가지로 구분하였습니다.

크게 사물 기반 A군(상품 속성 랭킹 유형, 연관 상품 유형, 상품 선호 유형, 상품 니즈 유형)과 사람 기반 C군(인기도 랭킹 유형, 유사 행동 유형, 협업 필터링, 설문 기반 유형), 지식 기반 K군(공인/유명인 추천 유형, 개인 추천 유형, 의견 제안 유형, 상품 니즈 분석 제안 유형)으로 나뉩니다. 감이 오시나요?



협업 필터링 이외에 쉬운 설명을 위해 정확한 알고리즘명을 적기보다 뷰저블이 임의로 정의내린 이름을 작성하였습니다. 각기 다른 유형별로 어떤 특징이 있고 어떻게 적용할 수 있을까요?

상세한 내용은 다음 글에서 안내드리겠습니다. 기대해 주세요!



Share This Post

Share on facebook
Share on linkedin
Share on twitter
Share on email