References
- [토크ON세미나] 추천시스템 분석 입문(https://www.youtube.com/watch?v=43gb7WK56Sk&t=138s)
- https://rfriend.tistory.com/191
0. 글 쓰기에 앞서
데이콘 대회를 처음으로 참가하면서 추천시스템에 대한 공부를 해봤다.
참가한 대회는 "잡케어 추천 알고리즘 경진대회"로 추천 시스템과 관련된 대회였는데, 데이터를 보면 볼 수록 추천이라기 보단 예측에 가깝다고 느껴졌다. 그래도 추천 알고리즘은 한번 정리해보면 좋을 것 같아 SKpanet Tacademy의 추천시스템 분석 입문하기를 보며 공부 내용을 정리해보았다.
1. 추천 시스템 개요
정의 : 추천 시스템은 사용자(user)에게 상품(item)을 제안하는 소프트웨어 도구이자 기술
목표 : 어떤 사용자에게 어떤 상품을 추천할 것인가
2. 기업에서의 추천 시스템
- 당근마켓 : 비슷한 상품을 구매하려는 다른 사람들이 같이 본 상품 추천
- 넷플릭스 : 사용자의 취향을 분석해 좋아할만한 컨텐츠 추천
- 카카오 (브런치) : 사용자가 자주 읽은 혹은 관심있는 글과 유사한 글을 추천
- 유튜브, 구글, 페이스북 등등
3. 과거의 추천 시스템
3-1. 연관분석(Association Analysis)
연관분석 : 상품과 상품 사이에어 어떤 연관이 있는지 찾아내는 알고리즘
- 지지도(Support) : X, Y를 같이 구매할 확률
- 신뢰도(Confidence) : X라는 상품을 구매했을 때, Y의 구매까지 이어질 확률
- 향상도(Lift) : 두 사건이 동시에 얼마나 발생하는지 비율, 독립성을 측정
ex) 월마트에서 맥주를 구매할 때 기저귀를 같이 구매하는 경향이 크다는 것을 밝혀 둘을 함께 진열함
연관 분석의 단점 : 아이템의 증가에 따른 규칙의 수의 증가가 기하급수적으로 증가 → Apriori 알고리즘의 등장
3-2. Apriori 알고리즘
Apriori 알고리즘 : 비슷한 사용자가 같이 구매하는 상품 등을 추천하는 알고리즘
→ 연관분석의 아이템셋 기하 급수적인 아이템 셋의 증가를 줄이기 위한 방법
💡 IDEA : “빈번한 아이템셋은 하위 아이템셋 또한 빈번할 것이다”
<Apriori 알고리즘>
- K개의 item을 가지고 단일항목집단 생성(one-item frequent set) (아이템을 한개씩 구매하는 경우)
- 단일항목집단에서 최소 지지도 (support) 이상의 항목만 선택
- 2에서 선택된 항목만을 대상으로 2개 항목 집단 생성
- 2개 항목 집단에서 최소 지지도 혹은 신뢰도 이상의 항목만 선택
- 위의 과정을 k개의 k-item frequent set을 생성할 때 까지 반복
연관 상품들이 상관관계는 의미할 수 있어도 인과관계는 의미하지 않는다.
ex) 치킨무와 치킨의 경우 치킨무를 구매하여서 치킨을 구매한 것이 아니고 치킨을 구매하여서 치킨무를 구매한 것이다.
- 장점 : 원리가 간단하여 사용자가 이해하기 쉽다, 유의한 연관성을 갖는 구매 패턴을 찾아줌 → 의미 파악이 쉬움
- 단점 : 데이터가 클 경우 (item이 많은 경우)에 속도가 느리고 연산량이 많다, 실사용시 많은 연관상품이 나타남 → FP Grwoth 알고리즘의 등장
3-3. FP-Growth
-> Apriori의 속도 측면의 단점을 개선
<FP-Growth 알고리즘>
- 모든 거래를 확인하여, 각 아이템마다 지지도를 계산하고 최소 지지도 이상의 아이템만 선택
- 모든 거래에서 빈도가 높은 아이템 순서대로 순서를 정렬
- 부모 노드를 중심으로 거래를 자식 노드로 추가해주면서 tree 생성
- 새로운 아이템이 나올 경우에는 부모 노드부터 시작하고 그렇지 않으면 기존의 노드에서 확장
- 위의 과정을 모든 거래에 대해 반복하여 FP Tree를 만들고 최소 지지도 이상의 패턴만을 추출
장점
- Apriori 알고리즘보다 빠르고 2번의 탐색만 필요로함
- 후보 Itemsets을 생성할 필요없이 진행 가능
단점
- 대용량의 데이터셋에서 메모리를 효율적으로 사용하지 않음
- Apriori 알고리즘에 비해서 설계하기 어려움
- 지지도의 계산이 FP-Tree가 만들어지고 나서야 가능함
💡 과거의 추천시스템들은(Apriori,FP-Growth) 메모리, 시간 효율이 너무 비효율적이고 생성하는 규칙이 너무 많다. → 딥러닝 기반의 알고리즘 사용
4. 정리
이번 포스팅에서는 추천시스템의 전반적인 개요와 어떻게 발전해왔는지를 알아보았다.
추천시스템은 크게 컨텐츠 기반 추천과 협업 필터링으로 나뉘는데 다음 포스팅에서는 컨텐츠 기반 추천에 대해 정리 할 것이다.
'AI Theory > Recsys' 카테고리의 다른 글
03) 나도 이해한 추천시스템 알고리즘 _ 협업필터링 (0) | 2022.02.06 |
---|---|
02) 나도 이해한 추천시스템 알고리즘 _ 컨텐츠 기반 모델 (0) | 2022.01.27 |
댓글