Shapley value 라는 처음 들어보는 개념이 나오길래 뭔지 궁금해서 가볍게 찾아보았다. 뭐 공정하게 기여도를 계산하는 방법이라길래 봤더니 수식으로 설명한 부분이 이해가 안되었다.... 그래서 갑자기 확 꽂혀서 한번 수식 없이 이해해보자 생각했고, 정리했다....Shapley value는 말그대로 값이다. 그럼 어떤 값일까?
가능한 수식 없이 예시로 이해해보자
집단에 A, B, C가 있다. 이때 각각이 혼자서 창출하는 가치가 다음과 같다고 가정해보자
| 플레이어 | 가치 |
|---|---|
| A | 10 |
| B | 20 |
| C | 0 |
이때 A, B, C 들이 서로 팀을 이뤘을때 창출하는 가치는 다음과 같다고 가정해보자
| 팀원 | 가치 |
|---|---|
| 없음 | 0 |
| A, B | 50 |
| A, C | 20 |
| B, C | 30 |
| A, B, C | 80 |
이때 모두 같이 일해서 창출한 가치 80에서 A의 기여도는 얼마일까? 라는 의문이 생긴다.
Shapley Value 방법은 여기서 A가 조직에 합류하는 시점까지 담은 모든 경우의 수에 대해서 A의 한계 기여도를 구해고 이를 평균내서 계산한다.
이해가 어려우니 차근차근 따라가보자
한계 기여도 = 가치(기존 팀 + A) - 가치(기존 팀) 로 계산 한다A의 한계 기여도 = 가치(B, A) - 가치(B) = 50 - 20 = 30 이다2번의 값을 평균 내면 이 값이 바로 A의 평균 기여도이고 Shapley Value 다! 이를 표로 나타내면 다음과 같다
| 순서 | A 기여도 | B 기여도 | C 기여도 |
|---|---|---|---|
| A → B → C | 10 | 50 - 10 = 40 | 80 - 50 = 30 |
| A → C → B | 10 | 80 - 20 = 60 | 20 - 10 = 10 |
| B → A → C | 50 - 20 = 30 | 20 | 80 - 50 = 30 |
| B → C → A | 80 - 30 = 50 | 20 | 30 - 20 = 10 |
| C → A → B | 20 - 0 = 20 | 80 - 20 = 60 | 0 |
| C → B → A | 80 - 30 = 50 | 30 - 0 = 30 | 0 |
| Shapley Value | = 170 / 6 = 약 28.3 | = 230 / 6 = 약 38.3 | = 80 / 6 = 약 13.3 |
그래서 Shapley Value가 공정한 분배방식인가?
Efficiency, 전체 배분 조건A + B + C의 전체 가치가 80이면,
A의 몫 + B의 몫 + C의 몫도 정확히 80이어야 한다.Symmetry, 대칭 조건A의 Shapley Value = B의 Shapley ValueDummy, 무의미한 요소 조건v(S ∪ {A}) - v(S) = 0
위 식이 헷갈리면 위에서 사용한 A의 한계 기여도 = 가치(B, A) - 가치(B) 표현을 기억해보자!A의 Shapley Value = 0Additivity, 덧셈 조건 게임 1: 구매 전환 증가(가치)
게임 2: 재방문 증가(가치)구매 전환에서 A 기여도 = 10
재방문에서 A 기여도 = 5 라면, 두 성과를 합친 전체 가치에서 A의 기여도는:10 + 5 = 15 처럼 일관되게 계산되어야 한다는 뜻이야.