[토크ON세미나] 추천시스템 분석 입문하기 (2021.01.25)
1강 [토크ON세미나] 추천시스템 분석 입문하기 1강 - 추천시스템의 이해 (연관분석, Apriori, FP-Growth) | T아카데미 https://www.youtube.com/watch?v=43gb7WK56Sk
추천 시스템 역사
연관분석
상품과 상품사이의 연관성을 찾는 알고리즘 (장바구니 분석)
연관의 정의?
- 얼마나 같이 구매가 되는가? (A,B 상품구매의 선후가 없음)
- A아이템을 구매하는 사람이 B아이템을 구매하는가? (A,B 상품구매의 선후가 있음)
ex)
월마트 맥주, 기저귀 사례. - 맥주를 구매하는 사람들이 기저귀를 함께 구매하는 경향성을 확인하고 기저귀 옆에 맥주를 전시하여 구매를 끌어올린 전략
규칙평가지표 - 연관규칙분석
Support(지지도)
For the Rule A → B, support(A) = P(A)
Confidence(신뢰도)
confidence(A→B) = P(A,B) / P(A)
Lift(향상도)
lift(A→B) = P(A,B) / P(A)*P(B)
두 사건이 동시에 얼마나 발생하는지 비율, 독립성 측정
규칙생성
가능한 모든 경우의 수를 탐색하여 지지도, 신뢰도, 향상도가 높은 규칙을 찾아내는 방식.
문제점
아이템의 증가에 따라 규칙의 수의 증가가 기하급수적으로 증가.
Apriori 알고리즘
빈번하지 않은 아이템 셋은 하위 아이템셋 또한 빈번할 것이다. 즉, 빈번하지 않은 아이템셋은 하위 아이템셋 또한 빈번하지 않다.
{2,3}의 지지도가 낮다면 {0,2,3}, {1,2,3},{0,1,2,3}의 지지도도 낮을 것이다.
- k개의 item 단일항목집단 생성(ont-item frequent set)
- 단일항목집단에서 최소 지지도(support) 이상의 항목만 선택
- 2에서 선택된 항목만을 대상으로 2개항목집단 생성
- 2개항목집단에서 최소 지지도 혹은 신뢰도 이상의 항목만 선택
- 위 과정을 k개의 k-item frequent set을 생성할 때까지 반복
장점
원리가 간단하여 사용자가 쉽게 이해하고 의미를 파악할 수 있음.
유의한 연관성을 갖는 구매패턴을 찾아줌
단점
데이터가 클 경우 속도가 느리고 연산량이 많음
지나치게 많은 연관상품들이 나타나는 단점. 상관관계는 있더라도 인과관계(연관성)를 파악하기에 한계가 있다.
FP-Growth
FP Tree라는 구조를 사용하여 Apriorlil의 속도측면의 단점을 개선한 알고리즘. 여전히 연관성 한계.
- 모든 거래를 확인하여, 각 아이템마다 지지도(support)를 계산, 최소 지지도 이상의 아이템만 선택
- 모든 거래에서 빈도가 높은 아이템 순서대로 순서를 정렬
- 부모노드를 중심으로 거래를 자식노드로 추가해주면서 tree를 생성
- 새로운 아이템이 나올 경우에는 부모노드부터 시작하고, 그렇지 않으면 기존 노드에서 확장
- 위 과정을 모든 거래에 반복하여 FP Tree를 만들고 최소 지지도 이상의 패턴만 추출
장점
Apriori 알고리즘보다 빠르고 2번의 탐색만 필요함.
후보 itemsets 생성할 필요 없음
단점
대용량의 데이터셋에서 메모리를 효율적으로 사용하지 않음
Apriori알고리즘에 비해 설계가 어려움
지지도 계산이 FP TREE를 만들어야 가능.
아래 링크를 통해 Python에서 어떻게 위 알고리즘을 구현하고 사용하는지 확인할 수 있다.