Precision, Recall, Accuracy는 예측값의 비율을 측정합니다.
순서 정보에 대한 가중치가 반영되지 않기 때문에 한 Information Retrieval 에는 적절한 평가 지표가 아닙니다.
이번 게시글은 순서 정보에 가중치를 반영한 평가지표인 MRR 에 관한 글 입니다.
이진적으로 좋은 추천인지 나쁜 추천인지를 가려내는 지표로 Binary Relevance Based Metrics입니다.
추천시스템에서는 MRR 평가지표를 사용하게 된다면 "유관 상품이 최초로 등장한 곳의 위치"를 측정함으로써 평가 지표를 계산합니다.
user1은 첫번째, 두번째의 상표는 Non-Relevant Item 으로 사용자와 관련없는 상품이며 세번째에 위치한 상품이 Relevant Rank 로 사용자가 관련 있는 상품입니다. 유관 상품이 최초로 등장한 곳의 위치는 3번째이므로 Reciprocal Rank 는 1/3 입니다.
user2는 두번째에서 유관 상품이 최초로 등장해서 Reciprocal Rank는 1/2 입니다.
user3는 첫번째에 유관 상품이 최초로 등장해서 Reciprocal Rank 는 1/1 입니다.
Mean Reciprocal Rank는 N개의 평균 값을 구하는 것으로 위 그림의 예시에서는 (1/3 + 1/2 + 1) / 3 = 0.61 값이 나오게 됩니다.
MRR의 계산이 쉽고, 해석이 간단합니다.
또한, 유저가 최적상품을 찾고 있을 때 가장 정합한 평가지표입니다.
하지만 추천 리스트 이외의 제품에 대해서는 평가를 하지 않기 때문에 유관 상품의 목록을 원할 경우에는 좋은 지표는 아니라는 특징이 있습니다.
proc sql;
select mean(1/rank) as MRR
from (
select Make,
recommended_type,
actual_type,
monotonic() as rank
from table1
where hit = 1
group by Make
);
quit;
위의 코드는 MRR을 계산하는 SQL 예시입니다.
select mean(1/rank) as MRR: Reciprocal Rank를 평균화한 MRR 이라는 칼럼으로 저장합니다.
그 안에 서브쿼리가 있습니다.
table1으로 추천 리스트와 실제 결과값을 비교한 결과를 포함한 테이블로
where hit = 1: 추천이 적중한 경우만 선택하여 적중한 추천에 대해서만 순위를 계산압니다.
monotonic() as rank : 행 번호를 생성하는 함수로 적중된 항목의 추천 순위를 나타냅니다.
첫번째 추천 항목이 적중했다면 rank = 1 입니다.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!