RS3 - collaborate filtering(1)
Collaborative filtering (CF)
- : 협업 필터링
-
많은 유저들로부터 얻은 기호 정보를 이용해 유저의 관심사를 자동으로 예측
(다른 고객이 함께 구매한 상품)
최종 목적 : 유저 u가 아이템 i에 부여할 평점을 예측하는 것
유저-아이템 행렬의 빈칸을 채우기!
아이템 속성을 사용하지 않으면서도 좋은 성능을 보임
NBCF
User-based CF (UBCF)
유저 기반 협업 필터링
-> 두 유저가 얼마나 유사한 아이템을 선호하는가?
=> 유저간 유사도 구함, 유사도 높은 유저들이 선호하는 아이템 추천
Item-based CF (IBCF)
=> 아이템간 유사도 구함, 유사도 높은 아이템 중 선호도 큰 아이템 추천
Neighborhood-based CF (NBCF)
최종 목적 : 유저 u가 아이템 i에 부여할 평점을 예측하는 것
특징
- 구현 간단 이해 쉽다
- Scalability : 유저, 아이템 늘어날 수록 확장성 떨어짐
- Sparsity : 주어진 평점/선호도 데이터가 적으면, 성능 떨어짐
Sparsity
주어진 데이터를 활용해 유저-아이템 행렬을 만듦 -> 대부분의 원소가 비어있게 됨
(sparse matrix, 희소 행렬)
NBCF 적용하려면 적어도 sparsity ratio가 99.5%를 넘지 않는 것이 좋음
NBCF의 한계
KNN CF & Similarity Measures
k-nearest neighbors CF
: $\ohm_i$ 에 속한 유저 가운데 유저 u와 가장 유사한 K명의 유저 이용해 평점 예측
K값은 하이퍼파라미터 (보통 25~50)
Similarity Measures(유사도 측정법)
: 두 개체 간의 유사성을 수량화하는 실수 값 함수 혹은 척도
다양한 정의가 있지만
일반적으로 거리의 역수 개념을 사용
-> 거리 측정 방법에 따라 유사성 측정방법이 달라짐.
Mean Squared Difference similarity(msd)
주어진 user-item rating에 대하여
유사도는 주로 유클리드 거리에 반비례
분모가 0이 되는 것을 방지하기 위해 1을 더함
Cosine similarity
두 벡터의 각도를 이용하여, 두 벡터가 가리키는 방향이 얼마나 유사한지
Pearson Similarity
각 벡터를 정규화 한 뒤에 코사인 유사도를 구한 값
Jaccard Similarity
집합의 개념을 사용한 유사도
같은 아이템을 얼마나 공유하고 있는지
Rating Prediction
CF를 이용한 평점 예측
UBCF - absolute rating
동일하게 반영하는게 맞을까?
- Weighted Average
유사도를 반영하여 평점 예측!
- Absolute Rating Formula
전체 유저 U, 아이템 I 평점 데이터 존재할 때
유저 u의 아이템 i에 대한 평점 $\hat{r}(u,i)$ 예측하기
-> 한계 : 유저가 평점을 주는 기준이 제각기 다름
UBCF - Relative rating
상대적 평점의 개념
유저 평균 평점에서 편차를 사용함.
모든 평점 데이터를 deviation값으로 바꾼 뒤 원래 rating 이 아닌 deviation을 예측
predict rating = 유저 평균 rating + predicted devitation
UBCF 비교
IBCF
도 마찬가지로 absolute rating, relative rating 적용
댓글남기기