본문으로 바로가기
반응형

T아카데미에서 오픈된 토크ON세미나 강연 동영상을 보고 정리해보았다.

 

 

평가함수

평가함수는 추천시스템의 모델을 생성하고 해당 모델이 얼마나 잘 추천하고 있는지에 대해서 평가를 도와주는 함수이다.

도메인이나 목적에 따라서 다른 평가 함수를 도입해서 얼마나 잘 추천이 되는지 평가하는게 중요하다.

예를 들어, 영화평점의 경우에서는 두가지 형태로 평가를 할 수 있다.

- 내가 추천해준 영화를 고객이 봤나?

- 내가 추천해준 영화를 고객이 높은 점수로 평점을 줬나?

분명 위 2가지는 다르다. 1번의 경우 단순히 보기만하면 추천에 성공했다고 하지만, 실제 고객의 만족도는 낮을 수도 있다. 반대로 2의 경우는 고객의 만족도까지 고려해서 평가를 한 것이다. 이러한 성질은 추천을 진행할때에도 차이가 생긴다.

유투브를 클릭했다가 바로 나가는 경우도 있어서 체류시간 등을 다양하게 활용해야 정확하게 측정할 수 있다.

 

 

Accuracy

- 내가 추천해준 영화를 고객이 봤나? vs 보지 않았나?

- 내가 추천해주는 영화를 많이 볼수록 추천하지 않은 영화를 보지 않을수록 정확도는 상승

- 하지만, 추천하지 않은 영화의 수는 추천한 영화의 수에 비해 굉장히 많고 편향된 결과를 얻을 수 있다.

그래서, 추천해준 영화 중 본 영화로만 평가를 매겨줘야한다. 하지만, 이렇게해도 문제가 있다. 모든 상품을 추천해주면 정확도는 무조건 1이 나온다. 상위 n개의 상품만 추천한다고 했을때 어느정도의 정확도를 얻는지 판단하는게 제일 정확한 값을 얻을 수 있다.

 

 

MAP

1개만 추천을 하는 것이 아니라 여러개를 추천하게 되는데 추천 정도가 다를 수 있다. MAP의 경우 추천의 순서에 따라서 값이 차이가 난다. 또한, 상위 k개의 추천에 대해서만 평가하기에 k를 바꿔가면서 상위 몇 개를 추천하는게 좋을지도 결정할 수가 있다.

- Recommendations : 추천을 했는데 맞은 경우 1, 틀리면 0

- Precision @k's : 첫번째까지 맞은 확률, 두번째까지 맞은 확률, ... (첫번째 두번째 순서에 따라 가중치를 낼 수 있게 된다)

- AP : Precision @k's를 평균낸 값 (추천한 K개의 영화의 Precision을 평균)

- MAP@4 : 4명의 사용자의 AP를 평균낸 값 (Precision을 평균낸 AP를 4명의 사용자에 대해 평균)

 

 

NDCG

Normalized Discounted Cumulative Gain : ranking quality measure, 검색 알고리즘에서 성과를 측정하는 평가 메트릭이다.

추천엔진은 user와 연관있는 documents의 집합을 추천해주기 때문에, 단순히 문서 검색 작업을 수행한다고 생각할 수 있다. (검색과 관련있는 문서들을 추천) 따라서 NDCG를 사용하여 추천엔진을 평가할 수 있다.

NDCG를 이해하기 위해서는 Cumulative Gain (CG)과 Discounted Cumulative Gain (DCG)을 이해해야한다.

 

- CG

추천해줬을때 얼마만큼 맞았는지 순서를 합한다. ( [2, 3, 3, 1, 2] => 11 )

- DCG

정규화과정을 거쳐서 CG가 같더라도 가중치가 적용될 수 있도록 한다.

앞에 있을수록 분모값이 작아지게 된다.

 

DCG는 추천결과의 위치를 고려할 때 좋은 척도로 보이지만 완벽하지는 않다. 그 이유는 다양한 요인에 따라 권장 사항 수가 사용자마다 다를 수 있는데, DCG는 권장 사항의 수에 따라 결과가 달라지기 때문이다. 그에 따라 상한과 하한이 적절한 점수가 필요하므로 모든 추천 점수를 평균하여 최종 점수를 보고 정규화 할 필요가 있다. 이를 반영한 것이 NDCG이다.

- 사람마다 추천해주는 개수가 다를 수 있으니 이를 반영해줘야한다.

- DCG에 Normalize를 수행해서 NDCG를 사용한다.

 

 

 

 

 

Reference : 

https://www.youtube.com/watch?v=m4SNL-ZUTaA 

 

반응형