이미지의 Memory-based Collaborative Filtering 시스템을 단계별로 설명하겠습니다.
원본 데이터:
- 사용자 243이 아이템 2904에 5점 부여
- 사용자 243이 아이템 23985에 3점 부여
- 사용자 65가 아이템 235에 3점 부여
변환 후 행렬 R:
item1 item2 item3 item4 item5
u1: 5 . . 2 3
u2: . 4 1 . .
u3: . 5 5 3 .
u4: 5 . 4 . 4
u5: 1 1 . 4 5
핵심: 점(.)은 평가하지 않은 아이템을 의미하며, 이를 예측하는 것이 목표입니다.
행렬 R에서:
- 사용자 u3의 벡터: [., 5, 5, 3, .]
- 아이템 item3의 벡터: [., 1, 5, ., .]
핵심: Memory-based 방식은 원본 평점 데이터를 "기억"하여 직접 사용합니다.
코사인 유사도 공식:
cos(θ) = (A·B) / (||A|| ||B||)
사용자 u1: [5, ., ., 2, 3]
사용자 u3: [., 5, 5, 3, .]
공통으로 평가한 아이템: item4
u1의 item4 평점: 2
u3의 item4 평점: 3
Sim(u1, u3) = cos(θ) 계산
아이템 i2: [., 4, 5, ., 1]
아이템 i3: [., 1, 5, 4, .]
공통으로 평가받은 사용자: u2, u3
Sim(i2, i3) 계산
핵심 원리: 점 A와 B 사이의 각도 θ가 작을수록 유사도가 높음
r(u,i) = Σ[j∈Iᵤ\{i}] Rᵤ,ⱼ · Sim(i,j) / Σ[j∈Iᵤ\{i}] Sim(i,j)
목표: 사용자 u1이 아이템 i2에 부여할 평점 예측
1. u1이 평가한 아이템: i1(5점), i4(2점), i5(3점)
2. 각 아이템과 i2의 유사도 계산:
- Sim(i2, i1) = 0.8
- Sim(i2, i4) = 0.3
- Sim(i2, i5) = 0.6
3. 예측 계산:
r(u1, i2) = (5×0.8 + 2×0.3 + 3×0.6) / (0.8 + 0.3 + 0.6)
= (4.0 + 0.6 + 1.8) / 1.7
= 6.4 / 1.7
≈ 3.76점
4. 결과: 사용자 u1은 아이템 i2를 약 3.8점으로 평가할 것으로 예측
Memory-based CF의 장점:
단점: