인공지능 AI/추천시스템

[AI/추천시스템/RecSys] 추천 시스템의 성능 평가방법

넷플릭스가 우리에게 컨텐츠를 추천해줄때, 추천을 잘 하고 있는지 어떻게 평가할 수 있을까?

 

 

평점 예측 

연속된 숫자 형태의 평점을 예측하는 방법입니다.

보통 관측되지 않는 데이터에 대해서는 평가하지 않습니다.

 

평가 함수로 주로 RMSE나 MAE를 사용하고, 모델의 손실 함수로는 주로 MSE를 사용합니다.

순위 예측

사용자가 관심있는 아이템 k개를 예측하고, 이 중에서 얼마나 실제로 관심을 가졌는지 확인하는 것입니다.

- 가능한 전체 사용자-아이템 쌍 중에서 관측된것이 얼마인지 확인

- k에 따라 값이 변하기 때문에 일반적으로 k를 같이 표시합니다.

 

Precision@k

추천한 k개 중에서 실제로 관심이 있는 아이템 비율

Recall@k

사용자가 관심을 가진 모든 아이템들 중 추천한 아이템 비율

AP@k (Average Precision at k)

Precision@k는 추천된 랭킹을 고려하지 않지만, 관심을 가질 만한 아이템을 상위에 추천하는 것이 중요합니다.

 

AP@k = 1~k까지에 대해서 Precison@k에 사용자 선호를 곱한 평균

MAP@k(Mean Average Precision at k)

모든 사용자에 대한 AP@k의 평균

CG@k(Cumulative Gain @k)

추천한 k에 대한 relevance score의 합

(relevance score: 사용자와 아이템 사이의 관련성 정도, 1/0이나 구체적인 평점으로 표현 가능)

랭킹 개념을 쓰지 않음.

DCG@k(Discounted CG@k)

CG에 순서에 따른 가중치를 곱한 값.

따라서 아이템과의 interaction이 많은 사용자에게 좋은 계산법.

nDCG@k(Normalized DGC@k)

DCG를 Ideal DCG(최선의 DCG)로 나누어 계산한 값.

이상적인 추천 조합 대비 얼마나 추천을 잘했는지 평가. 

HR@k(hit-rate at k)

k개의 추천 목록 중에 사용자가 실제로 관심있는 아이템이 포함된 비율

test set의 모든 아이템 대상으로 계산.

(LOO)HR@k(leave-one-out hit-rate at k)

각 사용자에 대해 하나의 아이템만 남겨 테스트셋을 구성.