D041

1 minute read

Evaluating Recommender SystemsPermalink

다음과 같은 데이터가 주어졌다고 가정해봅시다.

image-20200721232952132

일반적으로 데이터에 일부를 테스트셋으로 둡니다.

image-20200721233151987

이 테스트셋은 행렬에서 비어진 부분과 동일하게, unknown 으로 두고
알고리즘을 수행합니다.

알고리즘의 결과(예측)와 실제 테스트셋의 데이터를 비교하여 성능을 측정합니다.

일반적으로 성능 측정에는 RMSE(=Root mean square erro) 가 많이 사용됩니다. (추후 포스팅 예정)
예측으로 얻어낸 점수와 실제 점수의 편차의 제곱으로 에러가 얼마나 있는지 확인할 수 있습니다.

그러나 이 RMSE는 이 상황에서 적합하지 않습니다.

우리가 하려는 것은 점수 값의 정확한 예측이 아니라 높은 유사성을 갖는 아이템을 추천하는 것 입니다.

때문에 단순히 에러 값만 가지고 성능 평가를 한다면
다음과 같은 특성을 반영할 수 없습니다.

  1. Prediction Diversity
    영화 중 해리포터를 좋아하고 그 점수를 높게 준 경우, 예측 점수가 가장 높은, 해리포터의 다른 시리즈 영화만을 추천하게 됩니다. .
  2. Prediction Context
    사용자가 특정 상황에서의 수행한 레이팅으로는 다른 상황에서는 필요없는 추천을 만들 수 있습니다.
    예시로는 한 지역에 대한 여행 정보를 모았고, 여행을 갔다왔는데 그 이후에 계속 그 지역에 관련한 아이템이 추천될 수 있습니다.
  3. Order of Prediction
    영화나 드라마 같은 경우 시리즈 순서대로 보고 싶은데,
    2편보다 4편이 더 높은 점수를 갖고있다면 순서대로 추천이 되지 않습니다.

문제 상황에 따라 평가측도 선택이 다르겠지만
지금 다루는 문제 같은 경우는 precision at k 와 같은 방식을 사용하는 것이 적합합니다.

+ Precision at k
추천을 예측한 결과 상위 5개 안에 실제 유사한 아이템의 수의 비율
(일치하는 것 n, 전체 k 이면 n/k)

Updated:

Comments