추천의 원리 더 깊게 보기 클러스터링, 협업필터링, 프로파일링
 view github

Summary:

저번 글에서 끝내기 아쉬웠던 추천의 더 깊은 이야기를 담았습니다.


추천의 상세원리

이쯤되면 궁금해진다. 어떻게 하면 적절한 시기에 적절한 상품을 고객 개개인에 맞춰 보여줄 수 있을까? 어떻게 사용자의 취향, 성향을 알고 어떻게 영향요소들을 종합적으로 판단하여 딱 맞는 제품을 추천는걸까?

저번 글에서 이어가자면 추천을 ‘어떻게’ 하냐에 대한 두번째 해결책은 알고리즘이었다. 영업부서의 추천상품에 의존하지 않고 알고리즘을 설계하여 추천을 고도화하는 것이다. 추천에 활용되는 알고리즘에는 클러스터링과 협업필터링, 프로파일링이 대표적이다. 오늘은 이 세 가지를 소개한다.


알고리즘과 모델링

1) 알고리즘

먼저 친해져야 할 용어가 있다. 알고리즘이 뭘까? 알고리즘은 문제를 해결하기까지의 순차적 과정을 말한다. 요리를 만들기 위한 레시피, 신호등이 있는 횡단보도를 건너는 절차 모두 알고리즘이라 할 수 있다.

‘친구를 만났다. 친구가 화가 나 있다. 나 때문인가? 아니다. 남자친구와 싸웠단다. 친구가 뭘 좋아하지? 먹는 것. 어떤 음식을 먹으러 가자고 할까? 단 것. 수플레케이크를 먹자고 해야겠다.’고 생각하는 절차도 알고리즘이다.

flowchart 연관성

단골 쇼핑몰 앱에 접속했을 때 내가 살 만한 상품을 바로 추천해준다면 이건 추천 알고리즘 덕분일 가능성이 크다. 수많은 상품 중 이미 사버렸거나 상세페이지에 몇 번 들어가봤지만 흥미가 없었던 제품이 아니라 마음에 염두해 뒀던 제품을 골라서 보여줬다고 가정해보자.

쇼핑몰은 내 모든 행동을 지켜봤을 것이다. 내가 어떤 특성을 지닌 상품을 유심히 살펴보는지, 여러 번 특정 상품상세에 접속했는지, 할인혜택 화면을 자주 돌아다녔는지, 확고한 쇼핑 성향이 있는지, 장바구니나 위시에 어떤 상품을 담는지 등을 들여다보고 근거로 삼아서 취향에 맞을만한 상품을 추론한다. 이 일련의 절차는 쇼핑몰의 알고리즘에 의한 것이다.

(Algorithms to Live By: 알고리즘을 생활 속 소재로 풀어쓴 책. 별이 다섯 개.)

2) 모델링

추천의 시작은 가지고 있는 데이터를 활용해서 적절한 모델을 만드는 것이다. 모델은 다양하고 복잡한 현상들로부터 특징을 뽑아내 간략하게 표현한 모형을 말한다. 이런 모형을 만들어나가는 과정을 모델링이라고 한다.

사이즈를 예로 들어보자. 사람의 체형은 다 다르다. 키와 몸무게, 근력, 체지방량의 정도에 따라 몸의 형태가 셀 수 없이 많다. 이런 복잡한 대상을 일정한 틀에 맞춰 6개 체형 크기로 단순화한 것이 사이즈표다. 여기서 더 대표적인 특징을 뽑아내 간략하게 1개 사이즈로 체형을 표현한 것이 마네킹이다. 사이즈표와 마네킹은 체형을 모델링한 결과물이라고 할 수 있다.

앤아더스토리즈의 사이즈가이드(왼쪽), 네이버쇼핑 전시상품 마네킹(오른쪽)

위 모델링 과정에 쓰인 알고리즘은 이렇다. 신체 사이즈 데이터가 들어왔을 때 가슴둘레가 76 이하이면 32, 76과 80 사이면 34, 80과 84 사이면 36, 84와 88 사이면 38 등의 신체사이즈로 단순화된다.

가슴둘레만 반영

클러스터링

클러스터링(Clustering, 군집화)은 비슷한 데이터를 묶어 그룹화하는 알고리즘이다. 비슷한 구매자나 비슷한 상품을 묶어 새로운 사용자에게 추천상품을 제안할 때 쓰인다.

분류(Classification) 개념과 헷갈릴 수 있다. 분류는 레이블을 지정하는 것이고 클러스터링은 같은 종류로 보이는 것들을 그룹화한 것이다. 어려운 말로 클러스터링은 라벨링되어 있지 않은 데이터를 그루핑하는 비지도학습에 속한다. 분류는 지도학습이다.

분류(왼쪽)과 클러스터링(오른쪽)

원피스(레이블)가 잘 팔린다는 사실을 알고 있을 때 원피스와 티셔츠 중 어떤 상품을 더 등록하는 게 매출을 올라갈 지 예측하는 것이 분류 알고리즘에 의한 것이라면, 레이블 없이 흩뿌려진 옷들을 가지고 비슷한 것들끼리 모아 이건 도트, 이건 꽃무늬, 이건 무지, .. 이렇게 유사한 특성에 따라 다수 개의 클래스로 나누는 것이 클러스터링이다. 클래스 수는 사전에 정해지지 않는다.

(더 읽기: 마이크로소프트 클러스터링 알고리즘, 스프레드시트로 쉽게 설명한 머신러닝 분류와 클러스터링의 차이점)


협업필터링

협업필터링(Collaborative Filtering)은 클러스터링과 이어지는 개념이다. 협업필터링 프로세스 중에 클러스터링이 동반되는 경우가 많다. 비슷한 특성을 가진 고객들이 좋아하는 항목을 새로운 고객에게 추천하는 User-based CF, 상품 간 유사도를 측정하여 고객이 특정 상품을 조회했을 때 연관 상품을 추천하는 Item-based CF로 나뉜다.

예를 들어 고객 A가 좋아할 만한 영화를 추천해야 한다고 해보자. 가장 먼저 떠올릴 수 있는 방식은 A와 영화 취향이 비슷한 사람들이 평가한 별점을 바탕으로 A가 좋아할 만한 영화를 예측하고 추천하는 것이다. 취향이 비슷한 사람들을 클러스터화했고 유사 사용자를 기반으로 추천이 이뤄졌다.

‘이 상품을 구매한 고객이 함께 구매한 상품’ 영역이 대부분 협업필터링에 의한 추천상품이며 아마존, 왓챠 등에서 사용 중이다.

협업필터링에 의한 추천상품

넷플릭스 역시 협업필터링을 활용한 알고리즘을 사용한다. 사용하는 데이터는 사용자의 콘텐츠 시청 기록이다. 여성과 남성, 미국인, 한국인, 혹은 20대, 30대 등에 따라 사용자를 분류하여 그에 맞는 콘텐츠를 추천하지 않고 이용자의 콘텐츠 시청기록에 따라 취향 집단(Taste Cluster, Taste Group)으로 나누는데 그 클러스터의 숫자는 정확하게 밝혀지지 않았다.

클러스터는 시시각각 변화하며 고객 한 명당 클러스터가 여러 개로 구성될 수도 있다. 액션 장르과 배우 나탈리 포트먼을 동시에 좋아하는 사람 A와 스릴러와 나탈리 포트먼을 좋아하는 사람 B는 나탈리 포트먼이 등장하는 영화을 선호하는 사용자 클러스터에 속함과 동시에 각각 또 다른 취향의 클러스터 군에 속하게 된다.

고객이 블랙스완을 시청했다면 블랙스완의 장르, 배우, 음악, 분위기, 평점 등 세부 클러스터들을 분석하여 이 고객이 블랙스완을 선호하는 근거가 되는 영역을 찾고 비슷한 클러스터에 속한 새 영화를 추천한다.

넷플릭스는 비슷한 콘텐츠 취향을 가진 회원그룹을 찾아 콘텐츠를 추천한다. (TECH G)

스포티파이도 협업필터링 알고리즘을 이용해 비슷한 음악 취향을 가진 고객들을 알아내고 새로운 음악을 추천해준다. 한 사용자가 저스틴 비버의 2개 음악을 듣고 저스틴 팀버레이크의 새 음반을 좋아하며 이 음악들을 저스틴 플레이리스트에 저장한다면, 다른 사용자가 같은 저스틴 비버의 2가지 노래를 즐겨들을 때 협업필터링 알고리즘이 저스틴 팀버레이크의 새 음반도 다른 사용자에게 추천하는 방식이다.


프로파일링

프로파일링은 고객 개인이나 고객 그룹에 대해 특징, 특성을 뽑아내는 작업을 말한다. 고객에 대한 모델링 방법 중 하나인데 UX방법론 중 페르소나와 유사하다.

고객의 구매상품과 최근 본 관심상품이 뭔지, 어떤 기기에서 어떤 행동을 하는지, 어느 주기마다 어떤 수단으로 결제하는지, 불만을 적극적으로 표현하는지, 구매 후 공유가 활발한지 등 고객의 여러 흔적들을 모아 고객의 특성을 추론하고 이를 바탕으로 고객의 니즈에 맞는 상품이나 서비스를 추천할 수 있다.

스포티파이는 소리의 특성, 청취자의 특성, 청취 형태 3가지를 결합해서 사용자의 프로필을 생성한다. 생성되는 프로필 속 사용자 특징은 모험심, 다양성, 참신성, 지역성, 주류성으로 5가지다. 스포티파이의 상품과 연관된 지표로 사용자의 프로필을 만들고 이를 실제 추천 서비스와 연계하고 있다.

스포티파이의 프로파일링 지표들

스포티파이는 음향의 특성, 템포, 소리 크기, 가사의 양 등 11개 항목별로 음악(소리)의 특성을 추출한 프로파일과 5개로 나눈 청취자의 특성 프로파일을 비교하면서 유사성을 측정한다. 그 후 평소 사용자가 음악을 듣는 행태를 연결시켜 각 지표를 분석하고 결합하여 최적의 음악을 추천하는 것이다.

프로파일링 데이터를 이용하면 사용자가 서비스에 얼마나 애착이 있는지 평가하고 예측할 수 있다. 열성 사용자 그룹에 맞춤 경험을 제공하는 서비스들의 특성을 발굴하기도 하고 타겟 그룹의 심리적 특성 파악, 선호 음악가 관련 최신 정보 제공 등 고객 관리에 다방면으로 활용하고 있다.

스포티파이의 노래 추천 프로세스

고객 프로파일링 데이터는 사용자를 세밀하게 이해하고 적절하게 대응할 수 있게 하는 기반이 된다. 단순 조회수, 판매수로 판단할 수 없는 구체적인 항목들을 파악함으로써 자사 서비스를 더욱 적극적으로 제공할 수 있는 것이다.