비전공자도 이해할 수 있는 AI지식 -추천시스템의 밑바탕에는 장바구니분석이 있었다-

1. 맥주와 기저귀는 함께 팔린다

 

데이터 과학 분야에서 오랫동안 전설처럼 회자되는 얘기가 있습니다.

 

1990년대 미국의 한 슈퍼마켓 체인에서 맥주와 기저귀간에 강한 상관관계가 있다는 사실을 발견했습니다.

 

전혀 관련이 없어보이는 두 제품에 어떤 상관관계가 있는 걸까요?

 

알고 보니 수많은 남편이 퇴근길에 아내의 심부름으로 마트에 들러 기저귀를 사면서 맥주도 함께 구매했기 때문입니다.

 

뿐만 아니라 어떤 때는 맥주를 사기 위해 아내에게 일부러 "기저귀 사러 다녀올게"라고 핑계를 대면서 마트로 왔다는 거죠

 

이 사실을 발견한 이후에 기저귀 근처에 맥주를 진열하기 시작해서 매출을 더 높일 수 있었습니다.

 

이처럼 고객의 구매 내역을 분석하는 방식을 장바구니 분석(market basket analysis)이라고 합니다.

 

꽤 잘 어울리는 이름인데, 상품 간의 연관성을 분석했다고 하여 연관성 분석이라고 합니다.

 

이는 데이터 마이닝(data mining)이라는 학문의 기반이 됩니다.

 

마이닝이 거대한 광산에서 원재료를 추출하는 것을 의미하듯, 데이터 마이닝은 대규모 데이터에서 어떤 특정한 패턴을 발견하고 추출하는 행위를 말합니다.

 

또한 마이닝이 금과 같은 소량의 유용한 가치를 발굴하는 것처럼 데이터 마이닝 또한 데이터에서 의미 있는 핵심 가치를 발굴해냅니다.

 

1993년 IBM에 근무하던 라케시 아그라왈 박사는 장바구니 분석을 처음 시도해 기념비적인 논문을 내놓았고, 이는 데이터 관련 논문 중 가장 영향력 있는 논문으로 평가받으며 데이터 마이닝이라는 본격적인 학문의 시작을 알렸습니다.

 

Fast Algorithms for Mining Association Rules (vldb.org)

 

 

(읽어보고싶기는 한데 읽어보고 싶지 않다..)

 

아마존의 "이 상품을 구매한 사람이 함께 구매한 상품" 추천은 장바구니 분석을 활용하는 대표적인 사례입니다.

 

그렇다면 장바구니 분석으로 기저귀와 맥주의 관계를 살펴보죠

 

먼저 마트에서 상품이 판매된 내역을 표로 정리했습니다.

 

구매자는 번호로 표현했고, 전체 구매내역은 다음과 같습니다.

 

 

정말 기저귀를 구매한 사람이 맥주도 함께 구매했을까요?

 

바나나나 우유도 많이 구매했는데, 혹시 잘못안 것은 아닐까요?

 

우리는 이미 정답을 알고 있지만, 데이터를 보면서 직접 계산해보도록 하겠습니다.

 

기저귀를 구매한 내역은 총 5건이고 전체 8건 중에서 5건이니 구매 비율은 62%입니다.

 

맥주, 바나나, 우유의 구매비율은 각각 62%, 87%, 50%입니다.

 

기저귀와 함께 팔린 상품을 살펴볼 차례네요.

 

맥주가 4건, 바나나가 4건, 우유가 2건으로 맥주와 바나나가 공동으로 가장 높습니다.

 

기저귀와 맥주만큼 바나나도 구매가 많으니 상관관계가 아직 명확하지는 않네요

 

좀 더 구체적으로 숫자로 표현해보겠습니다. 숫자로 표현하는 것은 매우 중요합니다. 컴퓨터가 빠르게 계산해낼 수 있기 때문이죠.

 

그렇다면 숫자로 어떻게 표현할까요? 연관성을 분석할때는 '신뢰도(confidence)'라는 지표를 활용합니다.

 

신뢰도 값이 높은 상품을 연관성이 높은 상품이라고 할 수 있죠.

 

신뢰도를 구하는 방법은 어렵지 않습니다. 기저귀와 맥주가 함께 팔리는 신뢰도를 구하는 공식은 다음과 같습니다

 

 

신뢰도(기저귀 > 맥주)를 먼저 구해보죠. 기저귀의 구매 비율은 62%입니다.

 

구매 비율(기저귀, 맥주)은 기저귀와 맥주를 함께 구매한 비율을 의미합니다.

 

전체 8건 중에서 기저귀와 맥주를 함께 구매한 내역은 4건이므로 50%입니다.

 

그렇다면 50%/62% = 0.8이네요.

 

이러한 방식으로 다른 품목도 모두 계산해보면 전체 신뢰도는...

 

신뢰도(기저귀 > 맥주) : 0.8

신뢰도(기저귀 > 바나나) : 0.8

신뢰도(기저귀 > 우유) : 0.4

 

맥주가 신뢰도가 가장 높고 바나나도 신뢰도가 같습니다. 정말로 바나나도 맥주만큼이나 기저귀와 함께 잘 팔리는 상품일까요?

 

신뢰도에는 한 가지 맹점이 있습니다.

 

바나나가 원래 자주 판매되는 상품이라면 애초에 기저귀를 사는 고객이 바나나도 살 가능성이 높으므로 연관성을 정확히 판단하기 힘든 거죠

 

실제로 구매 내역을 살펴보면 바나나는 전체 구매 내역 8건 중 7건에 포함될 정도로 원래부터 잘 팔리는 상품입니다.

 

기저귀 때문에 팔리는 게 아니라는 거죠.

 

때문에 실제로는 연관성이 낮더라도 연관성이 높다고 잘못 판단할 수 있습니다.

 

그렇다면 두 상품의 판매 빈도까지 고려하는 지표가 있을까요?

 

'향상도(lift)'라는 지표가 있습니다. 기저귀와 맥주의 향상도는 기저귀의 구매 비율뿐만 아니라 맥주의 구매비율도 함께 계산에 포함합니다.

 

향상도를 계산하는 방식은..

 

 

향상도를 구해보겠습니다.

 

기저귀와 맥주를 함께 구매하는 비율은 50%이고 기저귀의 구매 비율은 62%, 맥주의 구매 비율은 50%입니다.

 

50%/(62%*50%) = 1.6이 나옵니다. 마찬가지 방식으로 전체 상품의 향상도를 구해보면..

 

향상도(기저귀 > 맥주) : 1.6

향상도(기저귀 > 바나나) : 0.91

향상도(기저귀 > 우유) : 0.8

 

이번에는 결과가 어떤가요? 신뢰도(기저귀 > 맥주)와 신뢰도(기저귀 > 바나나)는 동일했지만 

 

향상도(기저귀 > 맥주)가 향상도(기저귀 > 바나나)보다 훨씬 더 높게 나왔습니다.

 

정리해보면 바나나도 맥주만큼이나 기저귀와 함께 잘 팔리는 상품이었습니다. 그래서 신뢰도가 높게 나왔죠

 

하지만 애초에 바나나는 잘 팔리는 상품이었습니다. 기저귀 때문에 잘 팔리는게 아니었던 거죠

 

그래서 향상도는 그다지 높지 않게 나왔습니다.

 

보통 향상도가 1보다 크다면 함께 팔릴 가능성이 높다고 보고, 1보다 작으면 함께 팔릴 가능성이 낮다고 봅니다.

 

맥주는 1.6이므로 함께 팔릴 가능성이 높은 상품이고, 바나나는 0.91이므로 함께 팔릴 가능성이 낮은 상품입니다.

 

따라서 바나나는 기저귀 때문에 잘 팔리는 상품이라고 할 수 없습니다.

 

기저귀와 함께 팔리는 상품은 바로 맥주입니다.

 

이것이 연관성 분석입니다. 연관성 분석을 거치면 이처럼 숫자로 표현하여 계산할 수 있습니다.

 

계산 결과에 따르면 기저귀와 맥주는 함께 잘 팔리는 상품이므로, 기저귀 옆에 맥주를 진열해두는게 당연하겠죠?

 

마찬가지로 아마존의 '이 상품을 구매한 사람이 함께 구매한 상품'도 동일한 방식으로 연관성을 파악한 결과입니다.

 

이번에는 연관성 분석의 또 다른 사례를 알아보죠. 구매 패턴으로 고객의 성향을 예측한 사례입니다.

 

 

2. 10대 소녀의 임신을 예측한 알고리즘

 

2012년 미네소타주의 한 남성은 미국의 대형마트로부터 우편물을 받아보고는 깜짝 놀랐습니다.

 

임산부 용품 할인 쿠폰이 들어 있었던 것이죠.

 

게다가 수신인은 고작 열일곱 살에 불과한 10대 딸이었습니다.

 

아버지는 분노를 참을 수 없었고 당장 마트를 찾아가 점장에게 면담을 요구하고 불같이 화를 냈습니다.

 

점장은 그 자리에서 정중히 사과했고, 며칠 뒤 다시 한번 사과를 하기 위해 전화를 걸었습니다.

 

그런데 이후의 스토리가 실린 <뉴욕타임스> 기사가 매우 흥미롭습니다.

 

전화를 받은 아버지가 오히려 죄송하다며 사과를 했기 때문이죠. 

 

10대 소녀인 딸이 정말로 임신을 했기 때문입니다. 부모도 알아차리지 못한 임신 사실을 대형마트 판촉 알고리즘이 누구보다 먼저 알아차린 셈입니다. 

 

과연 무슨 일이 있었을까요?

 

이것은 연관성 분석의 결과였습니다. 마트를 찾은 딸이 어느 날부터 향이 없는 로션이나 튼살방지 크림, 마그네슘 보충제 같은 제품을 구매했던 거죠.

 

이들 상품은 모두 임신한 여성이 주로 구매하는 품목이었고 알고리즘은 이를 통해 고객이 임신했을 것이라 예측해 할인 쿠폰을 발송했던 것입니다.

 

앞에서 봤던 맥주와 기저귀 사례에도 적용할 수 있습니다.

 

만약 고객이 맥주와 기저귀를 함께 사간다면 분명히 기혼 남성일테고 기혼 남성 고객이 관심을 둘 만한 자동차 용품 할인 쿠폰등을 보낸다면 효과가 크겠죠

 

이처럼 간단한 연관성 분석이 매우 효율적으로 예측하고 고객 만족도를 높일 수 있습니다.

 

그렇다면 연관성 분석에서 한단계 더 나아가 실시간 추천 시스템, 그러니까 내가 좋아할 만한 유튜브 영상이나 영화를 과연 어떻게 실시간으로 추천해주는 걸까요? 

 

 

 

TAGS.

Comments