취향의 유사성은 상관 계수(Correlation Coefficient) 를 통해 측정
사용자 𝑥 𝑥 x 의 상품 𝑠 𝑠 s 에 대한 평점을 𝑟 𝑥 𝑠 𝑟_{𝑥𝑠} r x s 라고 하자
사용자 𝑥 𝑥 x 가 매긴 평균 평점을 r x ˉ \bar{r_x} r x ˉ 라고 하자
사용자 𝑥 𝑥 x 와 𝑦 𝑦 y 가 공동 구매한 상품들을 $S_{𝑥𝑦}라고 하자
사용자 𝑥 𝑥 x 와 𝑦 𝑦 y 의 취향의 유사도 는 아래 수식으로 계산한다
s i m ( x , y ) = ∑ s ∈ S x y ( r x s − r x ˉ ) ( r y s − r y ˉ ) ∑ s ∈ S x y ( r x s − r x ˉ ) 2 ∑ s ∈ S x y ( r y s − r y ˉ ) 2 sim(x,y) = \cfrac{\sum_{s \in S_{xy}} (r_{xs} - \bar{r_x})(r_{ys}-\bar{r_y})}{\sqrt{\sum_{s \in S_{xy}}(r_{xs}-\bar{r_x})^2} \sqrt{\sum_{s \in S_{xy}} (r_{ys} - \bar{r_y})^2}} s i m ( x , y ) = ∑ s ∈ S x y ( r x s − r x ˉ ) 2 ∑ s ∈ S x y ( r y s − r y ˉ ) 2 ∑ s ∈ S x y ( r x s − r x ˉ ) ( r y s − r y ˉ )
즉, 통계에서의 상관 계수(Correlation Coefficient)를 사용해 취향의 유사도를 계산한다
예시에서 취향의 유사도 를 계산해보자
둘이 함께 본 영화만을 고려한다
지수와 제니의 취향의 유사도는 0.88 이다
( 4 − 3 ) ( 5 − 3 ) + ( 1 − 3 ) ( 1 − 3 ) + ( 5 − 3 ) ( 4 − 3 ) ( 4 − 3 ) 2 + ( 1 − 3 ) 2 + ( 5 − 3 ) 2 ( 5 − 3 ) 2 + ( 1 − 3 ) 2 + ( 4 − 3 ) 2 \frac{(4-3)(5-3)+(1-3)(1-3)+(5-3)(4-3)}{\sqrt{(4-3)^2+(1-3)^2+(5-3)^2}\sqrt{(5-3)^2+(1-3)^2+(4-3)^2}} ( 4 − 3 ) 2 + ( 1 − 3 ) 2 + ( 5 − 3 ) 2 ( 5 − 3 ) 2 + ( 1 − 3 ) 2 + ( 4 − 3 ) 2 ( 4 − 3 ) ( 5 − 3 ) + ( 1 − 3 ) ( 1 − 3 ) + ( 5 − 3 ) ( 4 − 3 )
즉 둘의 취향은 매우 유사 하다
지수와 로제의 취향의 유사도는 -0.94 이다
( 4 − 3 ) ( 2 − 4 ) + ( 1 − 3 ) ( 5 − 4 ) + ( 2 − 3 ) ( 5 − 4 ) ( 4 − 3 ) 2 + ( 1 − 3 ) 2 + ( 2 − 3 ) 2 ( 2 − 4 ) 2 + ( 5 − 4 ) 2 + ( 5 − 4 ) 2 \frac{(4-3)(2-4)+(1-3)(5-4)+(2-3)(5-4)}{\sqrt{(4-3)^2+(1-3)^2+(2-3)^2}\sqrt{(2-4)^2+(5-4)^2+(5-4)^2}} ( 4 − 3 ) 2 + ( 1 − 3 ) 2 + ( 2 − 3 ) 2 ( 2 − 4 ) 2 + ( 5 − 4 ) 2 + ( 5 − 4 ) 2 ( 4 − 3 ) ( 2 − 4 ) + ( 1 − 3 ) ( 5 − 4 ) + ( 2 − 3 ) ( 5 − 4 )
즉 둘의 취향은 매우 상이 하다
따라서, 지수의 취향을 추정할 때는 제니의 취향을 참고하게 된다
예를 들면, 지수는 미녀와 야수를 좋아할 확률이 낮다
지수와 제니의 취향은 유사하고, 제니는 미녀와 야수를 좋아하지 않기 때문이다
구체적으로 취향의 유사도를 가중치로 사용한 평점의 가중 평균 을 통해 평점을 추정 한다
사용자 𝑥 𝑥 x 의 상품 𝑠 𝑠 s 에 대한 평점을 𝑟 𝑥 𝑠 𝑟_{𝑥𝑠} r x s 를 추정하는 경우를 생각해보자
앞서 설명한 상관 계수를 이용하여 상품 𝑠 𝑠 s 를 구매한 사용자 중에 𝑥 𝑥 x 와 취향이 가장 유사한 𝑘명 의 사용자 𝑁 ( 𝑥 ; 𝑠 ) 𝑁(𝑥; 𝑠) N ( x ; s ) 를 뽑는다
평점 𝑟 𝑥 𝑠 𝑟_{𝑥𝑠} r x s 는 아래의 수식을 이용해 추정한다
r x s ^ = ∑ y ∈ N ( x ; s ) s i m ( x , y ) ⋅ r y s ∑ y ∈ N ( x ; s ) s i m ( x , y ) \hat{r_{xs}} = \cfrac{\sum_{y \in N(x;s)}sim(x,y) \cdot r_{ys}}{\sum_{y \in N(x;s)}sim(x,y)} r x s ^ = ∑ y ∈ N ( x ; s ) s i m ( x , y ) ∑ y ∈ N ( x ; s ) s i m ( x , y ) ⋅ r y s
즉, 취향의 유사도를 가중치로 사용한 평점의 가중 평균을 계산한다
마지막 단계는 추정한 평점이 가장 높은 상품을 추천 하는 단계이다
추천의 대상 사용자를 𝑥 𝑥 x 라고 하자
앞서 설명한 방법을 통해, 𝑥 𝑥 x 가 아직 구매하지 않은 상품 각각에 대해 평점을 추정한다
추정한 평점이 가장 높은 상품 들을 𝑥 𝑥 x 에게 추천한다