-
협업 필터링 (Collaborative Filtering, CF) : 많은 유저들로부터 얻은 아이템의 기호 정보를 이용해 유저의 관심사를 예측하는 방법, 아이템이 가진 성능은 활용하지 않는다.
-
NEighborhood-based Collaborative Filtering (NBCF)
- 유저 기반 협업 필터링(User-based CF, UBCF) : 두 유저간의 선호도를 가지고 유사도를 구한 뒤 타겟 유저에게 추천을 한다.
한 아이템에 대해 예측하기 위해서는 아이템을 평가한 유저 집합에 속한 모든 유저와의 유사도를 구해야 하기 때문에, 유저가 많을 경우 비효율적이다.
- 아이템 기반 협업 필터링 (Item-based CF, IBCF) : 아이템과 아이템 사이의 유사도 비교
-
K-Nearest Neighbors CF (KNN CF)
NBCF에서 시작된 아이디어
어떤 타겟과 가장 가까운 K명의 이웃의 데이터를 참고하는 방법
K = 25~50을 많이 사용하지만 자동으로 학습되는 파라미터가 아니라, 직접 튜닝해야 하는 하이퍼파라미터
-
유사도 측정법(Similarity Measure)
두 개체간의 유사성을 수치화해서 나타낼 수 있는 함수나 척도
- Mean Squared Difference Similarity
msd(u,v)=∣Iuv∣1⋅i∈Iuv∑(rui−rvi)2,msd_sim(u,v)=msd(u,v)+11 smooting이 적용됨 (smoothing : 분모가 0이 되는 것을 방지하기 위해 분모에 1을 더함)
- Cosine Similarity : 같은 차원을 가진 두 벡터의 각도를 이용, 두 벡터가 가리키는 방향이 유사할수록 값이 커짐
- Pearson Similarity (Pearson Correlation) : 같은 차원을 가진 두 벡터를 각각의 표본평균으로 정규화한 뒤 그 정규화한 벡터를 cosine 유사도 값을 구한 것, 어떤 도메인에서도 무난하게 추천 성능을 낼 수 있다는 장점이 있다고 알려져 있다.
- Jaccard Similarity : 집합에 대한 유사도, 따라서 차원이 달라도 계산 가능
J(A,B)=∣A∪B∣∣A∩B∣=∣A∣+∣B∣−∣A∩B∣∣A∩B∣