종류
- 인구통계 기반 필터링 : 연령, 나이, 직업과 같은 정보로 추천을 제공한다.
- 인기도 기반 추천 : 인기 상품을 추천한다.
- 지식 기반 추천 : 전문가의 지식이나, 유저의 입력에 기반한 추천한다.
- 규칙 기반 추천 : 사전에 정의된 규칙에 의해 추천을 제공한다.
1. 인구 통계 기반 필터링
- 가장 단순한 형태의 피처 기반 필터링으로 볼 수 있으며, 연령, 성별, 직업, 위치 등 인구통계학적 특성이 유사한 사용자는 선호도와 관심사가 비슷할 가능성이 높다고 가정한다.
- 장점: 단순하고, 콜드스타트에 대응할 수 있으며, 해석 가능히다. ( 직관적이다. )
- 단점: 개인화되지 않으며, 고정 관념에 기반한 추천이라는 인식을 줄 수 있으며, 민감정보라는 한계가 있다.
2. 인기도 기반 추천
- 가장 직관적인 방법으로, 상품의 인기도를 기준으로 추천 하며, 인기도는 아이템이 받은 조회 수, 좋아요 수, 클릭 수 또는 평점과 같은 다양한 메트릭 활용 가능하다.
- 사용자별 정보나 선호도에 의존하지 않으므로 구현하기 쉽고 확장성이 뛰어나나, 역시 개인화가 되지 않으며, 필터 버블 / 에코 챔버 등의 문제가 있음. 아이템 콜드 스타트라는 한계도 존재한다
3. 연관 규칙 추천
- 연관 규칙 추천은 “A를 사면 B도 산다”는 규칙을 찾는 것이다.
- “A를 사면”은 조건절(Antecedent), “B도 산다”를 결과절(Consequent)이라고 부른다.
- 오직 빈번하게 등장하는 아이템 셋에 대해서만 고려하는 A priori 알고리즘을 적용해 빠른 규칙 생성이 가능하다.
설명
“A를 사는 사람은 B도 산다” 라는 규칙은
- 조건절(antecedent): “A를 사면”에 해당하는 부분. “IF”를 의미한다.
- 결과절(Consequent): “B도 산다”에 해당하는 부분. “THEN”을 의미한다.
- Item Set: 조건절과 결과절을 구성하는 상품의 집합이다.
- 여기서 조건절에 들어가 있는 상품과 결과절에 들어가 있는 상품은 상호 배반적(mutually exclusive, disjoint)이어야 한다.
- (고기, 김치) -> (맥주, 땅콩) : 가능
- (고기, 땅콩) -> (고기, 기저귀) : 불가능
규칙 생성 예제
- 고기, 맥주, 김치가 있는 장바구니의 경우
- 만약 고기가 구매되면, 맥주도 같이 구매된다
- 만약 고기와 맥주가 구매되면, 김치도 같이 구매된다
- 만약 김치가 구매되면, 맥주도 같이 구매된다
규칙 성능 지표(1) 지지도(Support)
아이템 집합이 전체 거래에서 등장하는 빈도를 의미한다.
수식:
$Support(A \Rightarrow B) = \frac{ \text{거래에서 A와 B가 함께 등장한 횟수} }{ \text{전체 거래 수} }$
(2) 신뢰도(Confidence)
A가 발생했을 때 B도 발생할 조건부 확률을 의미한다.
수식:
$Confidence(A \Rightarrow B) = \frac{Support(A \cup B)}{Support(A)}$
(3) 향상도(Lift)
A가 발생했을 때 B가 발생하는 확률이 단순히 B의 발생 확률보다 얼마나 증가하는지를 나타내는 지표이다. 1보다 크면 의미 있는 규칙이다.
수식:
$Lift(A \Rightarrow B) = \frac{Confidence(A \Rightarrow B)}{Support(B)}$
(4) 레버리지(Leverage)
규칙의 우연성을 측정하는 지표. 값이 클수록 유의미한 연관성을 의미한다.
수식:
$Leverage(A \Rightarrow B) = Support(A \cup B) - (Support(A) \times Support(B))$
(5) 확률 차이(Conviction)
A가 발생했을 때 B가 발생하지 않을 확률과 실제로 발생한 비율을 비교하는 지표.
수식:
$Conviction(A \Rightarrow B) = \frac{1 - Support(B)}{1 - Confidence(A \Rightarrow B)}$
연관 규칙 기반 추천 알고리즘
(1) [Apriori 알고리즘
Apriori 알고리즘은 빈번하게 발생하는 아이템 집합을 찾고 이를 기반으로 연관 규칙을 생성하는 방식이다.
작동 방식
- 최소 지지도를 충족하는 빈번한 아이템 집합을 찾는다.
- 후보 아이템 집합을 확장하여 더 긴 아이템 집합을 만든다.
- 최소 신뢰도를 충족하는 규칙을 생성한다.
단점
- 데이터셋이 클 경우 계산량이 증가하여 속도가 느려진다.](<Apriori 알고리즘
Apriori 알고리즘은 자주 등장하는 아이템 셋(Frequent Itemset) 을 찾아 연관 규칙을 생성하는 알고리즘이다.
특징
반복적으로 등장하는 아이템 셋(Frequent Itemset)만 고려하여 연관 관계를 분석한다.
Anti-monotone property(반(反)단조성 속성) 을 활용하여 연산량을 줄인다.
Anti-monotone Property
Anti-monotone 속성이란, 특정 아이템 집합의 지지도(Support) 가 특정 임계값(Threshold) 이하라면, 해당 집합의 모든 상위 집합(Superset) 역시 임계값을 넘을 수 없다는 성질이다.
예제
- 예를 들어, 아이템 "햇반"의 지지도 P(햇반)=0.2 라고 가정하자.
- 그렇다면, "햇반"을 포함하는 더 큰 아이템 집합 {"햇반", "김치"} 의 지지도는 최대 0.2 이하가 된다.
- 이는 지지도는 증가하는 아이템 수에 따라 감소할 수밖에 없다는 지지도 수식(Support Property)의 특성 때문이다.
장점 - Anti-monotone 속성을 활용하면 지지도가 낮은 아이템 집합을 조기에 제거(pruning) 하여 불필요한 조합을 배제할 수 있다.
- 이를 통해 연산량을 크게 줄이고, 대규모 데이터에서도 빠르게 연관 규칙을 탐색할 수 있다.
(2) FP-Growth 알고리즘
FP-Growth는 트리 기반의 방식으로, Apriori보다 빠르게 빈번한 패턴을 탐색하는 알고리즘이다.
작동 방식
- FP-트리(FP-Tree) 생성: 데이터셋을 기반으로 빈번한 항목을 트리 구조로 저장.
- 빈번한 패턴 생성: FP-Tree를 사용하여 최소 지지도를 충족하는 패턴을 탐색.
장점
- Apriori보다 빠르게 동작하며, 대규모 데이터셋에서도 성능이 우수함.
( 3 ) Bruth Force( 무차별 탐색)
- 무식하게 모든 경우의 수를 무차별적으로 대입해 전부 시도해 보는 방식이다.
- 혹시라도 모를 모든 좋은 조합을 찾아낼 수 있다는 장점이지만, 그러나 지나치게 큰 연산량이 드는 것이 문제이다.
- 모든 규칙을 list-up하고, confidence와 support를 계산하여 일정 threshold를 못 넘는 규칙을 제거하는 방식으로 적용 가능하다.
Filter Bubble 현상
- 개인화 알고리즘으로 인해 사용자가 제한된 정보나 추천에 노출되는 현상이며, 기존의 신념, 관심사, 선호도를 확인하는 정보와 의견에 노출될 가능성이 높아져 유사한 콘텐츠의 '거품'이 형성이 되며, 인기도 기반의 추천의 경우, 인기있는 상품에 대한 노출이 반복됨으로써 제한된 다양성의 아이템만 유저에게 노출되는 문제를 발생시킨다.
'추천시스템' 카테고리의 다른 글
추천 품질 평가 지표 정리 (Offline 중심) (0) | 2025.04.23 |
---|---|
Online Evaluation (1) | 2025.04.23 |
추천시스템 성능 지표 (0) | 2025.04.23 |
추천시스템 소개 및 특성 (0) | 2025.03.14 |