온라인 쇼핑에서 "이 상품을 구매한 고객이 함께 구매한 상품", 넷플릭스의 "당신이 좋아할 만한 콘텐츠" --
이 추천은 어떻게 만들어질까요?
이 장에서는 두 가지 핵심 기법을 배웁니다.
연관규칙(Association Rules)은 "A를 사면 B도 산다"는 패턴을 찾고,
협업 필터링(Collaborative Filtering)은 "나와 취향이 비슷한 사람이 좋아하는 것"을 추천합니다.
비즈니스 임팩트 -- 추천이 곧 매출이다:
아마존 매출의 약 35%가 추천 시스템에서 발생하며,
넷플릭스 시청의 80%가 추천에서 시작됩니다.
편의점의 상품 배치는 연관규칙 분석 결과를 반영하여
함께 사는 상품을 가까이 진열합니다.
"맥주 옆에 기저귀"라는 유명한 이야기도 장바구니 분석에서 나왔습니다.
추천 시스템은 단순한 편의 기능이 아니라, 현대 이커머스의 핵심 수익 엔진입니다.
연관규칙의 세 가지 핵심 지표
연관규칙은 트랜잭션(거래) 데이터에서 "함께 구매되는 패턴"을 찾습니다.
규칙의 유용성을 평가하는 세 가지 지표가 있습니다.
쉽게 말하면 -- 마트 계산대 데이터에서 패턴 찾기:
편의점 사장님이 1년치 영수증을 쌓아놓고 이런 질문을 합니다.
"삼각김밥 사는 사람이 컵라면도 같이 사는 경우가 얼마나 되지?"
이것이 연관규칙 분석의 출발점입니다.
수만 건의 영수증에서 "A를 사면 B도 산다"는 패턴을 자동으로 찾아내고,
그 패턴이 얼마나 의미 있는지를 수치로 평가합니다.
지지도 (Support)
A와 B가 함께 나타나는 거래 비율
P(A and B)
신뢰도 (Confidence)
A를 산 사람 중 B도 산 비율
P(B | A) = P(A,B) / P(A)
향상도 (Lift)
독립일 때보다 얼마나 더 함께 나타나는가
P(A,B) / (P(A) * P(B))
해석:
Lift = 1이면 A와 B는 독립 (관계 없음).
Lift > 1이면 양의 연관 (함께 사는 경향).
Lift < 1이면 음의 연관 (하나를 사면 다른 건 안 사는 경향).
실무에서는 지지도 > 1%, 신뢰도 > 30%, Lift > 1.5를 임계값으로 사용하는 경우가 많습니다.
실습 1: 편의점 장바구니 분석
한국 편의점 영수증 200건을 분석합니다.
지지도와 신뢰도 슬라이더를 조절하면 규칙이 나타나거나 사라집니다.
네트워크 그래프에서 상품 간 관계를 시각적으로 확인하세요.
해보기:
(1) "데이터 생성"으로 영수증 데이터를 생성하세요.
(2) 지지도와 신뢰도 슬라이더를 조절해보세요.
(3) 네트워크 그래프에서 허브 상품(연결이 많은 상품)을 찾으세요.
5%30%
총 영수증
-
발견된 규칙
-
최고 Lift
-
규칙
지지도
신뢰도
Lift
실습 2: Support / Confidence / Lift 직접 계산
전체 거래 수와 각 항목의 거래 수를 입력하면
세 가지 지표를 자동 계산합니다. 벤 다이어그램으로 시각적으로 확인하세요.
해보기:
숫자를 바꿔가며 세 지표가 어떻게 변하는지 관찰하세요.
Lift가 1보다 크면 함께 사는 경향, 1이면 독립입니다.
Support
-
Confidence (A->B)
-
Lift
-
해석
-
협업 필터링: 취향이 비슷한 사람 찾기
연관규칙은 상품 간 관계를 찾지만, 협업 필터링(Collaborative Filtering)은
사용자 간 유사도를 기반으로 추천합니다.
쉽게 말하면 -- 나와 취향이 비슷한 사람이 좋아한 것을 추천:
친구 A가 나와 영화 취향이 90% 일치합니다.
A가 재미있게 본 영화 중 내가 아직 안 본 것이 있다면?
높은 확률로 나도 좋아할 것입니다.
이것이 사용자 기반 협업 필터링의 핵심입니다.
핵심 전제는 "과거에 취향이 비슷했다면, 미래에도 비슷할 것이다"입니다.
사용자 유사도 (코사인): sim(u,v) = sum(r_u * r_v) / (||r_u|| * ||r_v||)
예측 평점 = 유사 사용자들의 가중 평균
사용자 기반 (User-based)
"나와 취향이 비슷한 사용자가 좋아하는 것을 추천"
장점: 직관적. 단점: 사용자 수가 많으면 느림.
아이템 기반 (Item-based)
"내가 좋아한 것과 비슷한 아이템을 추천"
장점: 안정적, 확장 가능. 아마존이 사용.
실습 3: 영화 추천 시스템
20편의 한국 영화가 있습니다. 5편에 별점을 매기면
시스템이 유사 사용자를 찾아 나머지 영화의 예측 평점을 계산합니다.
해보기:
(1) 5편의 영화에 별점(1-5)을 매기세요.
(2) "추천 받기"를 누르면 유사 사용자를 찾고 추천합니다.
(3) 별점을 바꿔서 추천이 어떻게 달라지는지 확인하세요.
별점을 매겨주세요 (5편 이상):
당신을 위한 추천 영화 (예측 평점순):
유사 사용자:
실습 4: 콘텐츠 기반 vs 협업 필터링 비교
같은 사용자에 대해 두 방식의 추천 결과를 나란히 비교합니다.
콘텐츠 기반은 영화 장르를, 협업은 다른 사용자 평점을 사용합니다.
해보기:
(1) 두 방식을 토글하며 추천 결과를 비교하세요.
(2) 콜드 스타트 문제: 새 사용자에게는 어떤 방식이 유리할까요?
콘텐츠 기반
먼저 위에서 별점을 매기고 추천을 실행하세요.
협업 필터링
먼저 위에서 별점을 매기고 추천을 실행하세요.
콜드 스타트 문제 -- 신규 사용자/신규 상품에 대한 데이터가 없다:
새로 가입한 사용자에게는 평점 데이터가 전혀 없습니다. 비교할 "취향 이력"이 없으니 추천이 불가능합니다.
마찬가지로 새로 등록된 상품도 아무도 평가하지 않았으므로 협업 필터링의 사각지대에 놓입니다.
콘텐츠 기반은 아이템 속성(장르, 카테고리 등)만 있으면 추천 가능하므로 콜드 스타트에 상대적으로 강합니다.
실무에서는 두 방식을 결합한 하이브리드 추천을 사용합니다.
추천 시스템의 진화
1세대: 규칙 기반
연관규칙, 인기 순위. 단순하지만 개인화 부족.
2세대: 협업 필터링
행렬 분해(SVD), ALS. 넷플릭스 프라이즈 우승 기법.
3세대: 딥러닝
임베딩, Transformer, GPT 기반. 텍스트/이미지까지 활용.
윤리적 고려:
추천 시스템은 "필터 버블(filter bubble)"을 만들 수 있습니다.
내가 좋아하는 것만 계속 보여주면 시야가 좁아지고,
편향이 강화됩니다.
다양성(diversity)과 공정성(fairness)을 추천에 포함시키는 것이 최신 연구 트렌드입니다.