1. 인구 통계 기반 필터링
- 연령별, 성별, 직업, 위치 등 특성이 유사한 사용자는 선호도와 관심사가 비슷할 가능성이 큼
- 단순함, cold start 문제 줄어듦
- 개인화X, 고정관념 등 전문적이지 않을 수 있음 -> 논문을 인용하여 근거 강화
2. 인기도 기반 추천
- 직관적, 상품의 인기도 기준으로 추천(멜론 순위)
- 좋아요, 조회수, 클릭, 평점 등을 바탕으로
- 단점: 개인화 X, long tail, cold start, 필터버블
- 구현이 쉽고 확장성 뛰어남
필터 버블이란??
- 개인화 알고리즘으로 사용제가 제한된 정보나 추천에 노출
- 인기많은 제품에서만 계속 해서 추천되는 문제 발생
- 유사한 컨테츠만 계속 추천 / 일부 사용률이 높은 사용자에 의해 추천 알고리즘 고착화 될 가능성이 있음
3. 연관규칙 추천
- A를 사면 B를 샀다. -> B를 샀으면 A를 샀을 것이다(A추천)
ex) e커머스
- MBA라고도 불림
- 단 A와 B에 속성값이 겹치면 안됨!!! 상호베타적
방법
1) 브루트 포스
2) A priori : 많이 등장하는 아이템 셋에서만 고려
3) Anti-monotone property : a의 지지도가 1일때 a가 포함된 부분집합의 지지도는 1을 넘을 수 없음
4. 협업필터링
개념 : 자기와 비슷한 애들이 좋아하는 물건 추천
나와 비슷한 사람들을 찾는 방법
1) 유저 선호패턴 수치화
2) 유저 유사도 계산
- 수치형태로 표현하기
| 사과 | 바나나 | 오렌지 | 쿠키 |
---|
가 | 0 | 2 | 2 | 1 |
나 | 4 | 0 | 3 | 0 |
다 | 3 | 5 | 0 | 0 |
라 | 0 | 2 | 5 | 4 |
- 코사인 유사도 계산 - 유사한 사람 찾기!!
협업 필터랑 구현 절차
1) 유저 - 아이템 상호작용
- 유저를 행, 아이템 열로 행렬 만듦
- 각 유저 아이템 평가/클릭/구매 등의 상호작용으로 값채움
2) 유사도 계산
- 유저기반 협업 필터링일 시 평가한 아이템의 값이 속성
- 아이템 기반 협업 필터링 시 각 아이템을 평가한 유저들의 값이 속성
- 각 유저별/ 아이템별 유사도 계산하기
3) 이웃 설정
- 추천 대상 스코어를 생성할 이웃 유저 및 아이템 설정
- 이웃 수는 고정 or 자율화
- 높은 유사도의 유저 n명 사용전략
4) 랭킹
- 이웃들 상호작용 정보를 토대로 추천스코어 계산
협업필터링 장단점
장점 : 집단지성 개인화, 잠재적 특징활용, 데이터가 쌓이면 추천확률 높아짐
단점 : cold start, 낮은 확장성
5. 컨텐츠 기반 필터링
개념 : 아이템 A를 좋아했으면 A와 비슷한 B를 좋아할 것이다
유사한 아이템 찾는 법
1) 유사항 형태로 표현
1. 각 아이템의 특성을 feature로 나타냄
2. 변수의 종류에 따라 다른 처리 필요
i. 연속형변수
ii. 범주형 - one-hot가공방식
| 면 유무 | 소스유무 | 짠맛 유무 | 가격 |
---|
짜장면 | 1 | 1 | 0 | 700 |
스파게티 | 1 | 1 | 1 | 1000 |
볶음밥 | 0 | 0 | 1 | 1200 |
2) 유사도 계산
a. 코사인 유사도
b. 유클리드 거리
c. 피어슨 상관계수
컨텐츠 필터링 구현 절차
1) 피처 추출
- 아이템 특성 추출과정 필요 (유사성계산에 이용)
- 텍스트 경우 TF-IDF기법 사용가능
- 일반적 아이템 경우 상품의 특징을 담은 tabular feature사용가능
2) 사용자 프로필 정보 생성
- 유저가 상호작용한 아이템의 특징 집계해 생성
- 유저 선호도 나타내는 역할
3) 유사도 계싼
- 아이템과 사용자 프로필 벡터 사이의 유사도 계싼
- 유사도 함수 사용 가능(주로 코사인)
4) 랭킹
- 유사도스코어에 따라 순위 매겨 상위 아이템 사용자 추천