Amazon SageMaker Clarify를 사용하여 Bundesliga Match Facts xGoals 설명
가장 흥미로운 AWS re:Invent 2020 공지사항 중 하나는 기계 학습(ML) 모델의 바이어스를 감지하고 모델 예측을 설명하도록 돕기 위해 고안된 새로운 Amazon SageMaker 기능인 Amazon SageMaker Clarify입니다. 기계 학습 알고리즘을 통해 대규모 예측이 이루어지는 현대 환경에서 대규모 기술 조직이 기계 학습 모델의 예측을 기반으로 특정 결정을 내린 이유를 고객에게 설명하는 것이 점점 더 중요해지고 있습니다. 결정적으로 이는 입력과 출력은 알지만 내부에서 어떻게 처리되는지 알 수 없는 폐쇄적인 모델로부터 멀어지는 직접적인 변화로 볼 수 있습니다. 이는 추가 분석의 길을 열어 모델 구성을 반복하고 더욱 개선할 수 있을 뿐만 아니라, 이전에는 볼 수 없었던 수준의 모델 예측 분석을 고객에게 제공합니다.
Clarify에 대한 특히 흥미로운 사용 사례 중 하나는 XGoals 모델 예측에 대한 흥미로운 통찰력을 발견하기 위해 AWS에서 제공하는 Bundesliga Match Facts의 DFL(Deutsche Fußball Liga)입니다. AWS에서 제공하는 Bundesliga Match Facts는 전 세계 분데스리가 팬들을 위해 축구 경기 중 더욱 매력적인 팬 경험을 제공합니다. 시청자에게 슛의 난이도와 좋아하는 선수의 성적에 관한 정보를 제공하고 팀의 공격 및 수비 추세를 설명할 수 있습니다.
이제 DFL은 Clarify를 사용하여 기계 학습 모델이 특정 XGoals 값을 예측하게 된 원인을 파악하는 데 필요한 주요 기본 특성이 무엇인지 대화식으로 설명할 수 있습니다. xGoal(Expected Goals(예상 골 수)의 약어)은 선수가 경기장의 어느 위치에서 슈팅할 때 골을 기록할 것으로 계산된 확률입니다. 해당 특성을 알고 결과를 설명하면 모델 디버깅에 도움이 되며, 결과적으로 더 높은 품질의 예측이 가능합니다. 어쩌면 가장 중요한 점은 이러한 향상된 투명성이 기계 학습 모델에 대한 신뢰를 구축하여 협력과 혁신을 전개할 수많은 기회를 열어준다는 것입니다. 해석 능력이 향상될수록 채택률이 높아집니다. 좀 더 구체적으로 알아보겠습니다.
Bundesliga Match Facts
AWS에서 제공하는 Bundesliga Match Facts는 분데스리가 경기에 대해 공식 경기 데이터에서 실시간으로 생성되는 고급 실시간 통계와 심층적 인사이트를 제공합니다. 이러한 통계는 국내 및 국제 방송사와 DFL의 플랫폼, 채널 및 앱을 통해 시청자에게 전달됩니다. 이를 통해 전 세계 5억 명 이상의 분데스리가 팬들이 선수, 팀 및 리그에 대한 고급 인사이트를 얻고 더욱 개인화된 경험과 차세대 통계를 제공 받습니다.
Bundesliga Match Fact xGoals를 통해 DFL은 선수가 경기장의 어느 위치에서 슈팅할 때 득점할 확률을 평가할 수 있습니다. 모든 슛에 대해 득점 확률이 실시간으로 계산되어 시청자가 슛의 난이도와 득점 확률을 파악할 수 있습니다. XGoals 값이 높을수록(모든 값은 0~1 사이에 놓임) 득점할 확률이 커집니다. 이 게시물에서는 이 xGoals 지표를 자세히 조사하여, 기본 기계 학습 모델에서 개별 슛과 전체 축구 시즌 데이터 모두에 대해 특정 예측을 내린 이유를 파악하기 위해 내부적으로 수행되는 작업에 대해 살펴보겠습니다.
훈련 데이터 준비 및 검사
Bundesliga XGoals ML 모델은 25Hz 프레임 속도로 고급 추적 기술에서 수집하는 고정밀 데이터와 유효 슈팅 이벤트 데이터를 결합한다는 점에서 이전 XGoals 모델을 능가합니다. 맞춤형 모델에서는 실시간 볼 및 선수 위치를 활용하여 골문 각도, 선수와 골문까지 거리, 선수의 속도, 골 라인의 수비수 수, 골키퍼 수비 범위 등과 같은 다양한 특성을 결정할 수 있습니다. ROC 곡선 아래 영역(AUC)을 훈련 작업에 대한 객관적인 지표로 사용하고, Amazon SageMaker XGBoost 알고리즘을 사용하여 2017년 이후 분데스리가에서 기록된 40,000개 이상의 유효 슈팅을 XGoals 모델에 교육했습니다. Amazon SageMaker Python SDK 및 XGBoost 하이퍼파라미터 최적화를 사용한 xGoals 교육 프로세스에 대한 자세한 내용은 Bundesliga Match Facts xGoals의 배경 기술: 기계 학습이 축구에서 데이터 중심 인사이트를 촉진하는 방법을 참조하십시오.
원본 훈련 데이터 집합의 일부 행을 살펴보면 여기서 다루고 있는 특성, 즉, 시도한 유효 슈팅의 대규모 데이터 집합에서 이진, 범주 및 연속 값이 혼합된 특성 유형에 대해 알 수 있습니다. 다음 스크린샷은 모델 훈련과 설명 가능성 처리에 사용되는 17개 특성 중 8개를 보여줍니다.
SageMaker Clarify
SageMaker는 초보 데이터 사이언티스트와 숙련된 기계 학습 학자가 모두 데이터 집합을 준비하고 사용자 지정 모델을 구축하여 교육한 다음 의료, 미디어, 엔터테인먼트, 금융 등 다양한 산업 분야의 프로덕션 환경에 배포하는 데 중요한 역할을 했습니다.
대부분의 기계 학습 도구와 마찬가지로 해당 모델의 결과를 자세히 분석하여 설명하거나 잠재적 바이어스에 대한 교육 데이터 집합을 조사하는 방법이 누락되었습니다. 반복 및 확장 가능한 방식으로 바이어스를 감지하고 모델 설명 가능성을 구현할 수 있는 Clarify가 발표되면서 모든 것이 변경되었습니다.
설명 가능성이 부족하면 조직에서 기계 학습을 채택하는 데 장벽이 될 수 있습니다. 이러한 모델 설명 가능성 부족을 해결하기 위한 이론적 접근법은 최근 몇 년 동안 크게 향상되었으며, SHAP(ShaPLey Additive Explations)라는 탁월한 프레임워크가 설명 가능한 AI 환경에서 중요한 도구로 자리잡았습니다. 이 방법에 대한 자세한 내용은 이번 게시물의 범위를 벗어나지만 핵심 SHAP에서 “모델에서 특정 특성을 제거하면 예측이 어떻게 변경됩니까?”라는 질문을 게시하여 모델 설명을 보완합니다. SHAP 값은 이 질문에 대한 답변입니다. 즉, SHAP 값은 크기와 방향의 모든 측면에서 특성이 예측에 미치는 기여도를 직접 계산합니다. 연합 게임 이론에 근거하는 SHAP 값은 데이터 인스턴스의 특성 값을 연합의 플레이어로서 특성화하는 데 목표를 두고, 이후 다양한 특성 중에서 지급액(예측)을 공정하게 분배하는 방법을 알려줍니다. 기품 있는 SHAP 프레임워크는 모델에 구애받지 않고 확장성이 뛰어나므로, 단순한 선형 모델과 수백 개 계층을 포괄하는 깊고 복잡한 신경망 모두에서 작동합니다.
Clarify를 사용하여 Bundesliga xGoals 모델 동작 설명
지금까지 데이터 집합과 기계 학습 설명 가능성에 대해 살펴보았으므로 이제 원하는 SHAP 값을 계산하는 Clarify 프로세서를 초기화할 수 있습니다. 이 프로세서의 모든 인수는 일반적이며 현재 프로덕션 환경과 마음대로 이용 가능한 AWS 리소스에만 관련됩니다.
먼저 다음 코드를 사용하여 SageMaker 세션, AWS Identity and Access Management(IAM) 실행 역할, Amazon Simple Storage Service(Amazon S3) 버킷과 함께 Clarify 처리 작업을 정의해 보겠습니다.
CSV 교육 파일을 Amazon S3에 저장한 후 다음과 같이 Clarify 작업에 대한 교육 데이터 및 결과 경로를 지정할 수 있습니다.
이제 Clarify 프로세서를 인스턴스화하고 설명 가능성 교육 데이터 집합을 정의했으므로 문제별 실험 구성을 지정할 수 있습니다.
이전 관련 코드 조각에서 살펴본 바와 같이 중요한 입력 파라미터는 다음과 같습니다.
- BASELINE – 이러한 기준은 모델 설명을 계산하는 데 매우 중요합니다. 기준 값은 특성마다 하나씩 있습니다. 이 실험에서는 연속하는 숫자 특성에 평균을 사용하고 범주형 특성에 모드를 사용합니다. 자세한 내용은 설명 가능성에 대한 SHAP 기준을 참조하십시오.
- NBR_SAMPLES – SHAP 알고리즘에 사용할 샘플 수입니다.
- AGG_METHOD – 전역 SHAP 값을 계산하는 데 사용되는 집계 메서드이며, 여기서는 모든 인스턴스에 대한 절대 SHAP 값의 평균입니다.
- TARGET_NAME – 기본 XGBost 모델이 예측하려고 시도하는 대상 특성의 이름입니다.
- 모델_이름 – (이전에) 훈련된 SageMaker XGBost 모델 엔드포인트 이름입니다.
중요 파라미터를 clarify.ModelConfig
, clarify.SHAPConfig
및 clarify.DataConfig
인스턴스에 직접 전달합니다. 다음 코드를 실행하면 처리 작업이 진행 중으로 설정됩니다.
전역적 설명
xGoals 교육 세트 전체에 대해 Clarify 설명 가능성 분석을 실행한 후 글로벌 SHAP 값과 각 특성별 분포를 빠르고 쉽게 확인할 수 있으므로 해당 특성 값의 양수 또는 음수 변화가 최종 예측에 미치는 영향을 매핑할 수 있습니다. 오픈 소스 SHAP 라이브러리를 사용하여 처리 작업 내에서 계산되는 SHAP 값을 그래프로 작성합니다.
다음 그래프는 여러 데이터 포인트에 대해 모델과 해당 특성 조합을 종합적으로 이해할 수 있는 전역적 설명의 예입니다. AngleToGoal
, DistanceToGoal
및 DistanceToGoalClosest
특성은 목표 변수, 즉 목표 득점 여부를 예측하는 데 가장 중요한 역할을 합니다.
이러한 유형의 그래프는 막대 차트보다 더 많은 컨텍스트와 각 특성의 SHAP 값 분포에 대한 더 자세한 인사이트(주어진 특성 값의 변화가 최종 예측에 어떤 영향을 미치는지 매핑 가능)를 제공하여 훨씬 더 효율적일 수 있습니다. 다음 그래프의 모든 데이터 포인트는 목표에 대한 단일 시도를 나타냅니다.
그래프의 오른쪽에 있는 세로 축에 제안된 대로 빨간색 데이터 포인트는 특성의 더 높은 값을 나타내고 파란색 데이터 포인트는 더 낮은 값을 나타냅니다. 골 예측 값에 대한 긍정적 영향과 부정적 영향은 SHAP 값에서 파생된 x축에 표시됩니다. 예를 들어, 여기서는 골문 각도가 커질수록 예측에 대한 로그 오즈(log odds)가 높아진다는 것을 추론할 수 있습니다(득점 여부에 대한 True
예측과 연관됨).
결과의 수직 분산이 증가한 리전의 경우 겹치는 데이터 포인트의 집중도가 높기 때문에 특성당 샤플리 값의 분포를 알 수 있습니다.
특성은 중요도에 따라 내림차순으로 정렬됩니다. 세 시즌(2017~2018, 2018~2019, 2019~2020)에 걸쳐 이 그래프를 비교하면 특성 중요도와 관련 SHAP 값 분포 모두에 변화가 거의 없거나 전혀 없습니다. 분데스리가 대회의 모든 개별 클럽에서도 마찬가지입니다. 단, 몇 개 클럽만 표준에서 벗어났습니다.
페널티는 경기 중에 발생하지 않더라도(특성 값 = 1
인 모든 경우) 원래 XGBoost 모델 훈련에 포함되어 있기 때문에 Clarify 처리 작업에도 포함되어야 합니다. 모델 훈련과 Clarify 처리를 위한 두 특성 집합 간에 일관성을 유지해야 합니다.
xGoals 특성 의존성
가장 간단한 전역적 해석인 SHAP 특성 의존성 그래프를 자세히 살펴볼 수 있습니다. 특성을 선택한 다음 x축에 특성 값 그래프를 그리고, y축에 해당 SHAP 값 그래프를 그리면 됩니다. 다음 그래프는 가장 중요한 특성에 대한 관계를 보여줍니다.
- AngleToGoal – 각도가 작을수록(25도 미만) 득점 확률이 낮고, 각도가 클수록 득점 확률이 높습니다.
- DistanceToGoal – 골문 중심에서 멀어질수록 득점 확률이 급격하게 하락합니다(로그 감소 함수를 모방). 특정 거리를 초과하면 SHAP 값에 영향을 미치지 않습니다. 모든 다른 조건이 동일할 경우 20미터에서 슛할 때와 40미터에서 슛할 때의 득점 확률이 동일합니다. 이 범위 내에 있는 선수들은 골키퍼가 라인을 벗어나거나 근처에 선수를 막고 슛을 차단할 수비수가 없는 등 득점 확률이 높다는 한 가지 특별한 이유 때문에 슛을 할 것이라는 사실로 이 관찰을 설명할 수 있습니다.
- DistanceToGoalClosest – 당연히 여기서는 DistanceToGoal과 큰 상관관계가 존재하지만, 선형적인 관계가 훨씬 더 큽니다. 골문에서 가장 가까운 지점까지 거리가 증가하면 SHAP 값은 단순 감소합니다.
영향력이 적은 두 가지 범주형 변수를 자세히 살펴보면 다른 모든 조건이 동일할 때 헤딩은 항상 득점 가능성을 낮추는 반면에, 프리킥은 득점 확률을 높입니다. FootShot=Yes
및 FreeKick=No
에 대해 0 SHAP 값 주위에 수직 분산이 주어질 경우 득점 예측에 미치는 영향을 결정할 필요가 없습니다.
xGoals 특성 상호 작용
개별 특성 효과를 고려한 후 특성 간 상호 작용, 즉 추가적인 효과를 강조하여 의존성 그래프를 개선할 수 있습니다. 게임 이론의 샤플리 상호 작용 인덱스를 통해 모든 특성에 대한 SHAP 상호 작용 값을 계산하여 차원이 F X F
인 행렬을 인스턴스당 하나씩 구합니다. 여기서 F는 특성 수입니다. 그런 다음 이 상호 작용 인덱스를 사용하여 상호 작용이 가장 강력한 SHAP 특성 의존성 그래프에 색상을 지정할 수 있습니다.
예를 들어 DistanceToGoal
및 PressureSum
변수가 상호 작용하는 방식과 이들 변수가 DistanceToGoal
의 SHAP 값에 미치는 영향을 알고 싶다고 가정합니다. PressureSum
은 단순히 슈팅 게임에서 상대 플레이어의 모든 개별 압박을 합산하여 계산됩니다. DistanceToGoal
과 목표 변수 사이에 부정적인 관계가 있다는 것을 알 수 있습니다. 즉, 골문에 가까워질수록 득점 확률이 높아집니다. 당연히 득점 예측치가 높은 경기일수록 DistanceToGoal
과 PressureSum
사이에 강한 반비례 관계가 존재합니다. 즉, 한 변수가 감소하면 다른 변수는 증가합니다.
골문 근처에서 득점되는 거의 모든 골은 45도 이상의 각도로 슈팅됩니다. 골문에서 멀어질수록 각도가 감소됩니다. 이는 당연한 이치입니다. 40미터 밖 사이드라인에서 득점하는 선수를 얼마나 자주 보셨습니까?
앞의 결과에 따르면 골문 각도가 클수록 득점할 확률이 높아집니다. 수비수 수의 SHAP 값을 살펴보면 이는 공격수 근처에 한 명 또는 두 명의 수비수가 있는 경우에만 해당된다는 것을 알 수 있습니다.
초기 글로벌 요약 그래프를 다시 자세히 살펴보면 PressureSum
및 PressureMax
특성에 대한 약간의 불확실성(0 SHAP 값 표시 주위에 고밀도 클러스터링으로 표시됨)을 확인할 수 있습니다. 상호 작용 그래프를 사용하여 이러한 값을 자세히 살펴보고 분석하여 원인이 무엇인지 파악할 수 있습니다.
살펴보면 두 특성이 아무리 중요하더라도 PressureSum
의 SHAP 값을 변경하는 데 최소한의 영향만 미친다는 것을 알 수 있습니다. 여기서 중요한 점은 선수에게 압박이 거의 없거나 전혀 없을 경우 DistanceToGoal
이 낮을수록 득점 확률이 높아지고, 반대로 골문 근처에서 압박이 클수록 선수의 득점 가능성은 낮아집니다. AngleToGoal
의 경우 이러한 영향이 반전됩니다. 즉, 압박이 증가하여 AngleToGoal
이 커질수록 PressureSum
의 SHAP 값이 감소하는 것을 알 수 있습니다. 특성 상호 작용 그래프를 통해 게임에 대한 선입견을 확인하고 다양한 플레이 능력을 정량화할 수 있어서 다행입니다.
당연히 25도 미만의 각도로 득점된 헤더 골은 거의 없습니다. 하지만 헤더 또는 FootShot
이 득점 가능성에 미치는 영향을 비교할 때 각도가 25~75도 범위 이내일 경우 헤더가 득점 가능성에 미치는 영향이 감소됩니다. 간단히 말해서 좋아하는 선수가 골문 각도가 넓은 상태에서 볼을 받은 경우 볼을 허공으로 날릴 가능성보다 득점할 확률이 더 높습니다.
반대로 25도를 초과하는 각도에서 선수가 골문을 향해 느린 속도로 움직일 경우 더 빠르게 움직일 때에 비해 득점할 확률이 낮아집니다. 두 그래프에서 알 수 있듯이 AngleToGoal < 25
및 AngleToGoal > 25
가 득점 예측에 미치는 영향 간에는 현저한 차이가 있습니다. SHAP 값을 사용하여 시즌 데이터를 분석하면 데이터의 보편적 추세가 빠르게 파악되므로 그 가치를 알 수 있습니다.
지엽적 설명
지금까지 분석에서는 전체 데이터 집합에 대한 설명 가능성 결과에만 초점을 맞추었으므로(전역적 설명) 이제 특히 흥미로운 일부 경기와 득점 상황을 살펴보겠습니다(지엽적 설명).
2020년 2월 8일에 바이엘 04 레버쿠젠이 보루시아 도르트문트를 4-3으로 짜릿하게 이겼던 2019~2020 시즌의 가장 흥미로운 게임 중 하나를 되돌아 보면 각 특성이 xGoals 값(가로 축에 표시되는 모델 출력 값)에 미치는 다양한 영향을 살펴볼 수 있습니다. 아래에서 위로 갈수록 특성이 최종 예측에 미치는 영향이 점점 커지는 것을 알 수 있습니다. 일부 극단적인 경우 AngleToGoal
, DistanceToGoalClosest
및 DistanceToGoal
에 따라 XGBoost 모델의 최종 확률 예측이 달라집니다. 점선은 득점이 발생한 경기입니다.
모델에서 상대적으로 쉽게 예측했던 레온 베일리가 득점한 여섯 번째 골을 살펴보면, 다음 힘 그래프에서 0.36이라는 상대적으로 높은 xGoals 값에서 알 수 있듯이 많은 주요 특성 값이 평균을 초과하여 득점 가능성이 매우 높았습니다.
표시되는 기본 값은 이전 세 시즌 동안 분데스리가에서 시도된 전체 슈팅에 대한 평균 XGoals 값(0.0871)입니다. XGBoost 모델은 이 기준선에서 예측을 시작하며 양수 힘과 음수 힘에 따라 예측치가 증가하거나 감소합니다. 그래프에서 특성의 SHAP 값은 예측 값을 증가(양수 값) 또는 감소(음수 값)시키는 화살표 역할을 합니다. 앞의 경우 이 유효 슈팅에 대해 높은 AngleToGoal
(56.37), 낮은 AmountOfDefenders
(1.0) 및 낮은 DistanceToGoal
(6.63)에 대응할 수 있는 특성은 없습니다. 모든 정성적 설명(예: 작음, 낮음, 큼)은 각 특성에 대한 데이터 집합의 평균 값과 관련이 있습니다.
다른 쪽 극단에는 XGBost 모델이 예측할 수 없고 SHAP 값으로 설명할 수 없는 특정 골이 있습니다. 분데스리가 시청자의 22%가 투표하여 2019-2020 시즌 베스트 골로 선정된 엠레 잔의 드롭 슛은 약 30m에 이르는 골문까지 거리와 거의 나오지 않는 각도(11.55도)를 고려할 때 득점 확률이 거의 0(3%)에 가까웠습니다. 득점 확률을 높이는 데 작용한 유일한 특성은 당시 그의 주위에 그를 막을 선수가 두 명 밖에 없어서 압박이 매우 적었다는 사실뿐입니다. 하지만 이 정도로는 잔을 멈추기에 충분하지 않았습니다. 축구에서 항상 그래왔듯이 고급 기계 학습 모델은 커녕 누구도 결과를 예측할 수 없을 정도로 슛의 모든 측면이 너무도 완벽할 수 있습니다.
이제 득점 시점의 위치 추적 데이터를 사용하여 잔의 골 장면을 2D 애니메이션으로 재현하여 살펴보겠습니다.
결론: Bundesliga Match Facts에 대한 의미
AWS가 Bundesliga Match Facts에 대해 제공하는 주요 의미는 두 가지입니다. 이 게시물의 실험 결과는 다음과 같은 사실을 보여줍니다.
- 새로운 방식으로 대규모로 득점 예측 데이터를 탐색하고 분석하는 프로세스 자동화 시작
흥미롭고 중요한 슛 패턴을 추가로 캡처할 수 있도록 개선 가능한 모델 설명 가능성 및 바이어스 플랫폼 제공 - 축구 경기처럼 복잡한 실제 시나리오에서 기존 또는 로직별 규칙 기반 시스템은 애플리케이션을 분석하기 시작하여 경기가 생성된 방법에 대한 자세한 설명은 커녕 어떠한 경기 예측도 제공하지 못합니다. Clarify를 적용하면 골 예측 모델을 개선하고 축구 경기를 플레이별로 맥락화할 수 있습니다.
최근 몇 년 동안 축구 데이터를 캡처하는 기술이 급격히 발전함에 따라 이렇게 증가하는 데이터를 모델링하는 데 사용할 수 있는 모델도 크게 증가하고 있습니다. Bundesliga Match Facts 데이터 집합이 점점 더 복잡하고, 깊이 있고, 풍부해짐에 따라 팀은 통찰력 있는 설명 가능성 결과에 비추어 최고의 생산 모델을 조정할 수 있는 방법과 추가적인 경기 관련 사실에 대한 새롭고 흥미로운 아이디어 지속적으로 모색하고 있습니다. 이는 불가피하고 지속적인 Clarify 업데이트 및 개선과 함께 XGoals 및 Bundesliga Match Facts에 대한 흥미진진한 길을 열어줍니다.
“Amazon SageMaker1633 Clarify는 설명 가능한 최신 AI 알고리즘의 강력한 기능을 단 몇 분 만에 개발자에게 제공하여 Bundesliga Match Facts 디지털 플랫폼과 원활하게 통합할 수 있습니다. 이는 Amazon SageMaker에서 기계 학습 워크플로를 표준화하려는 당사 장기 전략의 핵심 부분입니다.“라고 AWS 제공 Bundesliga Match Facts의 핵심 파트너 조직인 Sportec Solutions(STS)의 데이터 사이언티스트 Gabriel Anzer는 보고합니다.
이 솔루션을 통해 판타지 축구 선수가 지역 리그에서 우위를 확보하던, 관리자에게 선수의 현재 성과와 예상 미래 성과에 대한 객관적인 평가를 제공하던, 특정 선수와 팀의 공격 및 수비 성향을 파악하는 데 있어서 저명한 축구 전문가와 대화의 포문을 여는 데 역할을 하던, Clarify를 Bundesliga Match Facts에 적용하여 축구 생태계의 모든 영역에서 생성되는 가시적 가치를 이미 이해할 수 있습니다.
작성자 소개
Source: Amazon SageMaker Clarify를 사용하여 Bundesliga Match Facts xGoals 설명