본문 바로가기

데이터 분석

Spark - Ranking systems (1) - 이론

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


□ 목적


▶ Ranking Systems의 목표는 각 사용자에 대해 가장 관련성 높은 문서 집합을 만들어서 제공하는 것이다.


검색 or 추천 등에 사용








□ 측정 항목


Ranking System의


1.집합의 관련성


2.알고리즘의 효율성의 측정 항목에


대해서 먼저 설명이 필요하다.

 







□ Spark Documents


▶ 우선 Spark Documents의 예제를 보자.


▶ 설명에 아래 내용이 적혀 있다. 무슨 말인지 모르겠다. 뭔지 알아보자.











□ Precision at K


▶top의 k개 결과로 Precision(정밀도)계산


▶예시: 검색 결과 페이지들의 관련(relevant)이 있는 것은 O로 없는 것은 X라고 표현했을 경우



O, X, O, O, O, X 이라면


Precision 3의 값은 O, X, O중에 O의 갯수 2/3


Precision 4의 값은 O, X, O, O 임으로 3/4


Precision 5의 값은 4/5 이 된다.



※ Precision 3은 3개 중에 2개가 관련 있고 1개는 관련이 없는 내용 임으로 정밀도는 2/3이 된다.

 







□ Mean Average Precision


▶평균 정밀도의 평균을 취하여 여러 쿼리의 순위를 요약


▶예시:




첫번째 검색 결과가 Ranking #1이라고 한다면 O, X, O, X, X, O, X, X, O, O으로 0.62가 되고


두번째 검색 결과인 Ranking #2는 0.44로




※ Mean Average Precision (MAP)은 0.53 이 된다.








Normalizing Discounted Cumulative Gain (NDCG)


▶검색 사용자의 대부분이 결과의 1,2 페이지 정도만 참고함에 따라 정확한 성능 평가가 어려움

▶추천에 경우에도 사용자가 상위 추천에서 참고한다.


▶이에, 기존의 precision, recall 방법 측정의 한계로 Normalizing Discounted Cumulative Gain를 측정한다.


검색 결과 상위 1,2위 사이는 큰 차이지만 낯은 순위는 차이가 거의 없다.





▶예시


검색엔진의 순위대로 rel 등급이 4, 2, 0, 1로 나왔다면


ideal vector는 4, 2, 1, 0이 된다.


 

이에,


CG는 4, 4+2=6, 4+2+1=7, 4+2+1+0=7 이 되고


ICG는 4, 6, 7, 7이다.




DCG는 4 + (2÷ log₂ 2) + (0÷ log₂ 3) + (1÷ log₂ 4) = 6.5 이고


IDCG4 + (2÷ log₂ 2) + (1÷ log₂ 3) + (0÷ log₂ 4) = 6.64 이다.



결과


NDCG =>  DCG / IDCG = 6.5 / 6.64 = 0.979이 된다.


 





위의 내들은 모델 정확성 평가 항목이 되며 Spark MLlib을 통해 구할 수 있다.