협업 (상호협동) 필터링, Recommender System이라고도 불림. ProjectPrometheus에서 사용한다.
Approaches to Collaborative Filtering ¶
problem space가 2차원 matrix 의 형태를 생각해본다. 행에 대해서는 item을, 열에 대해서는 user를 두고, 그에 따른 rating 을 값으로 둔다. 이 matrix 를 이용, CollaborativeFiltering 은 특정 사용자(user) i 에 대해서 rating 을 예측하고, item 들을 추천한다.
보통 다음의 과정을 가진다.
- user인 i 와 비슷한 흥미나 선호도를 가지는 사용자 집합(user set)을 선택한다.
- 1 에서 선택된 user set 으로부터 user i 에게 적합한 추천 item 을 예측해낸다.
ex) 이 user set 에서 item j 에 대해서 높은 점수 (rating)을 주었을 경우, user i 에게 item j 를 추천한다.
Algorithms ¶
- 현재 이용중인 user 와 비슷한 취향의 사용자 집합을 선택 - calculate user correlation
- 1에서 선택된 사용자 집합중 예측을 위한 부분집합 선택 - neighbourhood selection
- 선택된 neighbours 들과 자료를 근거로 예측 - generate a prediction
Calculate user correlation ¶
- Pearson correlation
- Constrained Pearson correlation
- The Spearman rank correlation
- The Vector similarity
- Emtropy-based uncertainty measure
- Mean-square difference algorithm
Neighbourhood Selection ¶
- Correlation thresholding
- Best-n correlations
Generate a prediction ¶
Metrics ¶
CollaborativeFiltering 의 유용성을 평가하는 기준.
- Coverage - 시스템이 추어진 item으로부터 추천 item 을 제공해주는 능력. (아마도 추천item품목수/전체item품목수 에 대한 퍼센트이려나. 수정 필요)
- Accuracy - 시스템이 추천한 item 에 대한 정확성 (추천 item에 대한 사용자의 점수)
관련 자료들 ¶
개론
구현 시스템 예/논문
- PrincipiaCybernetica에 있는 아주 간단한 개론(처음 보는 사람에게 추천) http://pespmc1.vub.ac.be/COLLFILT.html
- Overview on various CF algorithms (recommended) http://www.research.microsoft.com/users/breese/cfalgs.html
- 한글 개론
- http://www.ecminer.com/m3_webBrain.html
- CACM 1997 Mar
- http://citeseer.nj.nec.com/483304.html
- Personalization on the Web
구현 시스템 예/논문