본문 바로가기

Tech Story

추천 시스템의 유사도에 대한 심화이해 (PR시리즈.17)

이 글은 이전에 다뤘던 글들에 비해서 조금 더 관념적이면서 기술적인 글을 담고 있습니다. 그렇다고 해서 수식이나 프로그래밍 코드가 포함된 것은 아닙니다.

추천 시스템 (CF방식)에서 어떤 유사도 similarity measure를 사용하느냐에 따라서 추천 시스템의 성능에 큰 영향을 준다고 설명했습니다. 일반적으로 Euclidean distance, jacard index, correlation coefficient, cosine 등의 유사도를 많이 사용하고 있다고 말했습니다. 그리고, 추천 시스템에 따른 예측값과 실측값의 Error term이나 이들의 correlation의 정도로 추천 시스템의 정확도를 평가한다고 말씀 드렸습니다. (하단 링크 참조)

이 글에서는 유사도 또는 성능평가 측도에 대해서 좀더 깊게 생각해볼까 합니다.

유사도 또는 성능평가 측도는 간격 Gap 또는 경향성 Tendency 두가지 term으로 구성되어있습니다. 현재 대부분의 측도들은 한가지 term으로만 유사도를 측정하고 있습니다. Euclidean distance, cosine, 또는 Error 합 (MAE, RSME)은 두 샘플값 (e.g., 실측값과 예측값) 사이의 간격을 수치화한 것이고, correlation coefficient는 경향성의 동조 정도를 수치화했습니다. 결론적으로 말하면 간격과 경향성은 모두 나름의 (존재) 이유가 있지만, 결국 이 둘을 하나로 합친 measure가 필요하다는 것입니다.

많은 경우 실측값과 예측값의 유사정도를 측정하기 위해서 이들의 에러값 Error 또는 잔차 residual를 구하는 것은 합리적입니다. 많은 샘플에서 실측값과 예측값 사이의 간격이 평균적으로 좁다는 것은 이 두 값이 거의 같다는 얘기가 됩니다. 그러나 실제 이 두 값들을 산포도를 그려보면 생각보다 분산/산포도가 심하다는 것을 확인할 수 있습니다. 평균적으로는 시스템이 잘 예측하는데, 각각의 샘플을 보면 전혀 엉뚱한 값으로 예측했다는 의미가 됩니다. 아래 그림은 학교에서 논문을 적으면서 CF방식의 정확도를 측정한 것입니다. 붉은 선이 실측값이고 푸른점들이 예측값인데, 평균적으로 MAE가 괜찮게 나왔지만 그림만을 얼핏 보면 엉터리 시스템인 듯 보입니다. 그래서 분산도를 고려해서 시스템을 평가해야 된다는 논문을 적은 적이 있습니다. 참고로 아래 그림은 샘플들의 레이팅값이 고르게 퍼져있지 않기 때문에 정확한 예측 시스템을 만들고 평가하는데 문제가 있다는 점도 함께 보여주는 그래프입니다.


두번째로 경향성 즉 correlation을 측정하는 것도 매우 합리적입니다. 위의 간격을 측정한 것에서 보여줬던 평균은 비슷하지만 분산이 심한 경우는 나쁜 시스템이다라고 말할 수 있습니다. 그런데 순전히 경향성만을 판단하면 둘 사이의 간격을 고려하지 못합니다. 예를들어, A = { 1 2 3}, B = { 4 5 6 }, C = { 5 5 5}, D = { 4 4 6}으로 세개의 샘플을 측정했다고 가정해봅니다. 이 중에서 B가 실측값이라고 봤을 때, 경향성만 따지면 A가 B와 가장 가깝게 측정됩니다. 그런데 A와 B의 평균 간격이 3으로 매우 넓기 때문에 정확한 값을 예측하지 못했다고 볼 수 있습니다. D의 경우 A보다는 경향성은 약하지만, 간격을 생각해보면 D가 A보다 더 정확한 예측값입니다. (간격만을 고려한다면 위의 그림에서도 보여지듯이 C와 비슷한 예측값이 나올 가능성이 높습니다.)

결론적으로 정확한 유사도 또는 성능평가측도는 실측값과 예측값 사이의 간격과 경향성/동조성을 동시에 최적화하는 것이 필요합니다. 저의 논문에서는 Sim 또는 Err = '간격 * 분산'으로 구해야 한다고 적었습니다. 잠시 생각해보니, 간격보정 bias correction이 확실하게 이뤄진다면 간격보다는 경향성이 비슷한 것이 더 나을 수도 있다는 생각이 듭니다.

추천시스템 전체 목록

  1. 추천 시스템과의 조우 (PR시리즈.1)
  2. 추천 시스템을 위한 데이터 준비 (PR시리즈.2)
  3. 추천대상에 따른 추천 시스템의 분류 (PR시리즈.3)
  4. 알고리즘에 따른 추천 시스템의 분류 (PR시리즈.4)
  5. 추천 시스템을 위한 유사도 측정 방법 (PR시리즈.5)
  6. 추천 시스템의 성능 평가방법 및 고려사항 (PR시리즈.6)
  7. 추천 시스템에서의 랭킹과 필터링 문제 (PR시리즈.7)
  8. 추천 시스템의 쇼핑하우 적용예 (PR시리즈.8)
  9. 개인화 추천 시스템에 대하여 (PR시리즈.9)
  10. 추천 시스템의 부작용 - 필터버블 (PR시리즈.10)
  11. 추천 시스템의 레퍼런스 (PR시리즈.11)
  12. 추천 시스템에 대한 잡다한 생각들 (PR시리즈.12)
  13. 추천 시스템을 위한 하둡 마훗 사용하기 (PR시리즈.13)
  14. 추천 시스템에 대해서 여전히 남은 이야기들 (PR시리즈.14)
  15. 추천 시스템과 머신러닝 (PR시리즈.15)
  16. 추천 시스템과 다중인격 (PR시리즈.16)
  17. 추천 시스템의 유사도에 대한 심화 (PR시리즈.17)

==

페이스북 페이지: https://www.facebook.com/unexperienced

반응형