상품추천기술은 개인화 기술이라고 불리며 그 핵심 기술인 협업 필터링은 아래와 같은 특징을 가진다


협업필터링(Collaborative filtering) 

  • 공동여과기법 
  • 기호가 유사한 다른 사람이 좋아하는 상품을 추천하는 기법 
  • 자동화된 구전효과


글로만 보면 잘 이해가 안될텐데, 아래 사진을 같이 보자.



아래는 새로운 고객인 10번 고객과 기존 고객들간의 유사도를 계산하여 선호도를 계산하는 과정이다.

표에 있는 검은색 숫자가 기존에 유자10이 가지고 있던 선호도이고, 빨갠색 글자가 기존 고객과 비교를 통해

유사한 고객들과의 연관성을 바탕으로 예상되는 추천도를 계산한 것이다.


이 때 사용되는 계산법이 피어슨스 계수(Parson correlation coefficient) 이다.



이런식으로 특정 유저 두 명간 상관관계(유사도)를 피어슨스 계수를 통해 측정하는데,

이 때 나타난 그래프의 기울기가 1에 가까울수록 유사하다고 할 수 있우며, 최저는 당연히 0이다.


이러한 협업 필터링은 다시 두 가지로 분류할 수 있다.


유저 기반(UBCF)

  • 해당 유저와 취향이(성향) 비슷한 유저가 좋게 평가한 것을 추천 

  • 더 정교함

  • 유저가 신규 진입할때마다 계산해야 해서 구현에 시간이 더 걸린다

상품 기반(IBCF)

  • 상품간 유사도 바탕

  • 신규 진입할때마다 계산할 필요가 없음(미리 계산해놓을수 있음) 


UBCF를 그림으로 표시해보면 아래와 같다.





이 때 중요한건 수치가 중요한게 아니고, 그래프의 모양이 비슷해야 유사도가 높다는 것이다.

즉 유저 1과 Alice는 점수의 절대치에 있어서는 유사도를 찾기 힘들지만, 그 패턴은 동일하기 때문에 (유저1을 위로 2점씩 끌어올리면 Alice와 겹친다) 유사하다고 판단할수 있다.



이론상으로 유저들간 유사도를 계산하는 공식은 위와 같은데, 엑셀을 사용하면 비교적 쉽게 할 수 있다.




위 유사도를 구한 결과에서 상위 두 개의 유저를 선택하여(이 경우에는 U1, U2) 이 둘이 평가한 것을 바탕으로 Alice가 U5를 어떻게 평가할지 

그 추정치를 구하는 공식은 위와 같다. 

즉 우리는 UBCF기법을 사용하면 Alice가 아이템 5의 평가를 4.87로 할 것이라는걸 추측할 수 있다. 



다음은 IBCF를 알아보도록 하자. 아래 그림을 참고하면 된다.


IBCF는 코사인 유사도를 바탕으로 그 유사도를 계산한다. 


마찬가지로 엑셀로 유사도를 계산하도록 한다.


위와 같은 추천시스템의 평가지표로는 아래와 같은 지표들이 있다.


정확도(precision, accuracy) 

사용자가 실제 선택한 아이템 수  / 전체 측정된 아이템 수 


재현율(recall) 

맞는 추천 아이템 수 / 사용자가 선택한 전체 아이템 수 


F측정치 (F measure) 

(2*정확도*재현율) / (정확도 + 재현율) 


범위(coverage)

추천이 가능한 사용자 수(or 아이템 수) / 전체 사용자 수 (or 아이템 수) 





+ Recent posts