평가 함수는 추천시스템 모델 생성 및 해당 모델의 추천 성능을 평가해주는 함수로 추천하고자 하는 도메인이나 목적에 따라 다른 평가 함수를 도입하여 얼마나 잘 추천해주는지 평가한다.
일반적인 추천시스템의 평가 형태는 다음과 같이 두가지가 있다.
첫번째 케이스의 경우는 단순하게 추천의 성공 유무를 확인할 수 있지만 실제 사용자의 만족도까지 아는 것을 어렵다. 반면, 두번째 케이스의 경우. 사용자의 만족도까지 고려한 평가이다. 이처럼 사용자들의 아이템에 대한 성향 및 만족도를 파악하기 위하여, 추천하고자 하는 도메인 각각마다 지표(인터넷 기사 체류시간, 클릭 횟수 등)를 만들어서 분석을 할 필요가 있다.
$$ accuracy(y,\hat{y})=\frac{1}{n_{samples}}\sum_{i=0}^{n_{samples - 1}} 1(\hat{y}_i = y_i) $$
정확도는 추천시스템의 추천 아이템을 사용자들이 사용했는지 여부에 대하여 추천시스템의 추천 아이템을 기준으로 정확도를 계산한다. 따라서 추천시스템의 추천 아이템의 사용 횟수가 많아질수록, 그리고 추천하지 않은 아이템을 사용하지 않을수록 정확도가 상승하게 된다. 이러한 경우 추천 시스템이 추천하지 않은 아이템들의 수가 추천된 아이템들에 비해 상대적으로 너무 많아지게 되고 이에 따라 편향된 결과로 이어지게 될 수 있다.
따라서 추천해준 아이템 중 사용한 아이템에 대해서만 평가를 해야 하며, 이때 모든 아이템을 추천해주면 정확도가 항상 1이 나오기 때문에 상위 $k$개의 상품을 추천한 뒤, 정확도를 판단하는 것이 더 정확한 값을 얻을 수 있다.
$F1-score$는 $precision$과 $recall$의 역수를 더한 값을 분모로 2를 분자로 가지는 평가 함수로써 여기서 $precision$은 실제 사용한 아이템 대비 추천했을 때 사용한 아이템의 수를 의미한다. $recall$은 실제 추천한 아이템의 수 대비 추천한 아이템 중 사용한 아이템의 수를 의미한다. 이처럼 $F1-score$은 위 두 함수 $precision$과 $recall$을 모두 고려하여 추천을 통해 맞춘 아이템의 비율과 추천을 하지 않아서 사용하지 않은 아이템의 비율을 조절하여 만은 평가함수라고 할 수 있다.
