-
[RecSys] 3-1. 추천 시스템 Basic - 추천 시스템 기법과 연관분석인공지능/부스트캠프 Ai Tech 2022. 3. 10. 14:15728x90In [1]:
from IPython.core.display import display, HTML display(HTML("<style>.container { width:90% !important; }</style>"))
추천 시스템의 기법¶
새로 적용한 추천 시스템/모델의 성능 평가는 어떻게 해야하는가?
연관 분석¶
연관 규칙 분석과 탐색 알고리즘을 알아보자.
연관 규칙 분석(Association Rule Analysis, Association Rule Mining)¶
흔히 장바구니 분석이나 서열 분석으로 불린다.
- 상품의 구매, 조회 등 하나의 연속된 거래들 사이의 규칙을 발견하기 위해 적용한다.
주어진 transaction(거래) 데이터에 대해 하나의 상품이 등장하면 다른 상품이 같이 등장하는 규칙을 찾는 것이다.
연관 규칙과 Itemset¶
규칙 : IF (condition) THEN (result) : {condition} -> {result}의 형식으로 표현
연관 규칙 : IF (antecedent) THEN (consequent) : 특정 사건이 발생했을 때 함께 빈번하게( frequently) 발생하는 또 다른 사건의 규칙을 의미한다.
- Itemset : antecendent와 consequent 각각을 구성하는 상품들의 집합
- antencedent와 consequent는 disjoint(서로소, 겹치는게 없어야 함)를 만족한다.
- antecendent : {빵, 버터}, consequent: {우유}
빈발 집합(Frequent Itemset)¶
- itemset : 1개 이상의 item의 집합(set) ex) {빵, 우유, 기저귀}
- k-itemset : k개의 item으로 이루어진 itemset
- support count(${\sigma}$) : 전체 transaction data에서 itemset이 등장하는 횟수
ex) ${\sigma}$({빵,우유}) = 3
- support : itemset이 전체 transaction data에서 등장하는 비율
ex) support({빵, 우유}) = 3 / 5 = 0.6
- frequent itemset : 유저가 선택한 minimum support 값 이상의 itemset
- infrequent itemset은 반대로 유저 지정한 minimum support보다 작은 itemset
연관 규칙의 척도¶
연관 규칙의 척도는 support, confidence, lift가 있다. frequent itemset들 사이의 연관 규칙을 만들기 위해서는 measurement가 필요하다.
$${X \rightarrow Y}$$가 존재할때, (X, Y : itemset, N : 전체 transaction 수)
- support
두 itemset X,Y 를 모두 포함하는 transaction의 비율. 즉 전체 transaction에 대한 itemset의 확률값, 좋은(빈도가 높거나, 구성 비율이 높은)규칙을 찾거나, 불필요한 연산을 줄일때 사용한다.
$${s(X) = {n(X) \over N} = P(X) , \geqslant s(X \rightarrow Y) = {n(X \cup Y)\over N} = P(X \cap Y)}$$- ${X \cup Y}$ = X와 Y가 함께 있는 경우
- confidence
X가 포함된 transaction 가운데 Y도 포함하는 transaction의 비율(Y의 X에 대한 조건부 확률), confidence가 높을 수록 유용한 규칙이다.
$${c(X \rightarrow Y) = {n(X \cup Y) \over n(X)} = {s(X \rightarrow Y )\over s(X)} = {P(X \cap Y) \over P(X)} = P(Y|X)}$$- lift
X가 포함된 transaction 가운데 Y가 등장될 확률 / Y가 등장할 확률
- lift = 1 -> X, Y는 독립
- lift > 1 -> X, Y가 양의 상관관계, lift < 1 -> X, Y가 음의 상관관계
연관 규칙은 item의 수가 많아질수록 가능한 itemset의 수가 기하급수적으로 많아지므로, 유의미한 rule만 사용해야 한다.
사용법¶
- minimum support/confidence 로 의미 없는 rule을 screen out : 임계 값을 두고 날린다.
- lift 값으로 내림차순 정렬 하여 의미 있는 rule을 평가한다. : 상관관계가 높은 것부터 선택하겠다.
위와 같은 방법으로 조건을 만족하는 transaction을 찾는데, 연관 규칙을 찾기 위해선 Brute-Force 방식으로 모두 나열해야 한다. 하지만 엄청나게 많은 계산량이 필요하다.
- itemset 개수를 줄이거나 : Apriori
- 탐색하는 transaction의 숫자를 줄이거나 : DHP(Direct Hashing & Pruning)
- 탐색 횟수를 줄인다 : FP-Growth
In [ ]:'인공지능 > 부스트캠프 Ai Tech' 카테고리의 다른 글
[RecSys] 4-1. Collaborative Filtering (0) 2022.03.11 [RecSys] 3-2. 추천 시스템 Basic - TF-IDF (0) 2022.03.11 [RecSys] 2. 추천시스템 Basic - 평가지표와 인기도 기반 추천 (0) 2022.03.10 [RecSys] 1. 추천시스템 Basic - 추천시스템이란 (0) 2022.03.10 [Ai-Services] Docker (0) 2022.02.21