[추천알고리즘] 협업필터링,Collaborative Filtering(CF)
추천알고리즘(Recommender Algorithm) : 어떤 아이템에 대한 사용자의 선호도를 바탕으로 예측하여 다른 아이템을 알려주는 방법
데이터수집 -> 데이터가공 -> 추천계산 -> 결과도출
데이터수집 : 말 그대로 추천에 사용할 유저행동 데이터를 수집하는것
데이터가공 : 현실속 데이터는 개판이기 때문에..어느정도 가공할 필요성은 있다
추천계산 : 본포스팅에서 주로 다룰 추천계산방법....CF기준
결과도출 : 유사도를 뽑아낸뒤 sort하여 최상위 N개를 뽑아내면 완료
협업필터링,Collaborative Filtering(CF)
1. 나와 가장 유사한 성향지닌 사람을 기반으로 그 사람이 들은 아이템을 추천해주는 것
2. 내가 선호하는 아이템을 기반으로 가장 유사한 성향의 아이템을 추천해주는 것
[그림1] 행위기반 추천 예제
자 이제 유사한(similarity) 성향이라는것은 어떻게 가늠할까?
추천해줄 대상(아이템)의 선호도를 바탕으로 계산된다.
각각의 선호도, 그림1에서 과일들을 구매한횟수, 먹은횟수 가장 최근에 접한 날짜에 대한 데이터 등을 바탕으로 집계한 선호도를 바탕으로
아래의 공식에 적용시킨다
피어슨상관관계(Pearson product-moment correlation coefficient) : -1부터 1의 값을 가지며 -1은 역으로 동일 , 0 데이터끼리 관계가 전혀 없음, 1은 완전 동일
[공식1]
사용자x와 사용자y의 유사도를 구하는 공식
cosine similarity : 0에서 1까지 값을 가지며 0은 관계없음 1은 완전히 동일
[공식2]
사용자A와 사용자B의 유사도를 구하는 공식
하지만 실제 현실에선 횟수라던지 최근치라던지 그런 데이터들은 집계되지않는 경우가 많다, 집계될시 Y/N, 유무만 기록되기 때문에 합집합의 교집합을 집계로 하는 유사도 상관계수인 타니모토계수를 사용하기도한다
Tanimoto(jaccard) : 0에서 1까지 값을 가지며 0은 관계없음 1은 완전히 동일
[공식3]
사용자A와 사용자B의 유사도를 구하는 공식
그외 유클리디언 상관계수..는 생략
이렇게 열심히 유사도를 계산해도..
data는 sparse하기 때문에 두드러진 유사도를 찾기 힘들다, 이렇기 때문에 클러스터링이 추가되고......분류가 시작되고....거기에서 또 필터링을 시작하고....
'프로그래밍 > 빅데이터' 카테고리의 다른 글
[잡담] 데이터 사이언티스트(data scientist) (312) | 2015.09.20 |
---|---|
[데이터분석] 탐색적 데이터 분석 vs 확증적 데이터 분석 (615) | 2015.09.20 |
Cloud & 빅데이터 (4) | 2015.06.21 |
자연어처리와 오피니언마이닝 (6) | 2015.04.12 |