KDD2019: Actions Speak Louder than Goals: Valuing Player Actions in Soccer まとめ
今月の頭にアラスカのアンカレッジで開催されたKDD2019に参加してきました。 KDDはデータマイニングに関する国際会議で、この分野では最難関と位置づけられています。 アルゴリズムや手法を対象とするResearch Trackと実問題への応用を対象とするApplied Data Science Trackに分かれており、今年はApplied Data Science Trackのベストペーパーをサッカーにおけるアクションの評価に関する論文が獲得しました。 今回は自分の理解を深める目的でそちらの論文をまとめようと思います。
- KDD2019 | Actions Speak Louder Than Goals: Valuing Player Actions in Soccer
- GitHub - ML-KULeuven/socceraction: Convert existing soccer event stream data to SPADL and value player actions
- KDDの発表Slide
はじめに
サッカーは連続的にアクションが行われるうえに、あまり点が入らず多くのアクションがスコアに直接影響を及しません。そのような難しさから、個々のアクションを評価するということは行われていませんでした。そこで本論文では、個々のアクションを評価するため、次の5つについて書かれています。
- 試合中のアクションを説明するデータ形式(SPADL)
- アクションを評価するフレームワーク(VAEP)
- 機械学習による得点/失点確率の予測
- 実際の試合結果を用いたユースケースの紹介
- Pythonパッケージの公開
SPADL: A LANGUAGE FOR DESCRIBING PLAYER ACTIONS
本論文ではドメイン知識と専門家からのフィードバックを元にSPADL(Soccer Player Action Description Language)というフォーマットを定義しています。 SPADLでは、試合中のボールに絡んだ選手のアクションを時系列順に[ ]とし、それぞれのアクションを次の情報で説明しています。
- StartTime: アクションの開始時間
- EndTime: アクションの終了時間
- StartLoc: アクションの開始位置
- EndLoc: アクションの終了位置
- Player: アクションを行なった選手
- Team: 選手の所属チーム
- ActionType: アクションの種類(パス、シュート、ドリブルなど)
- BodyPart: 体のどの箇所でアクションを行なったか
- Result: アクションの成否
つまり、いつどこで誰がどんなアクションをしたか(とその成否)を説明するフォーマットとなっています。 ActionTypeはパス、クロス、ドリブルなどの21種類が定義されています。
また、Opta/Wyscout/StatsBombのデータならこちらのPythonパッケージでSPADLに変換できるようです。
VAEP: A FRAMEWORK FOR VALUING PLAYER ACTIONS
次に選手のアクションを評価するフレームワークについてです。本論文ではVAEP: Valuing Actions by Estimating Probabilitiesというフレームワークを提案しています。
サッカーにおけるアクションの目的は、自分たちがゴールする確率を増やす(オフェンス)と相手がゴールする確率を減らす(デフェンス)の2つに分けられると考えられます。VAEPでは、アクションがどのくらいチームの得点確率を増やしたか及び失点確率を減らしたかでそのアクションを評価しています。
試合開始から回のアクションが行われた時点の状況を[ ]、
ボールを持っているチームが10アクション以内に得点する確率、失点する確率をそれぞれ、とします。
その時、アクションがチームの得点確率に与えた影響は、失点に与えた影響はと考えられます。
それらから、得点と失点に与えた影響度をアクションの価値(VAEP Value)と定義しています。(マイナスなのは失点確率を減らすのがデフェンスの目的のため)
ESTIMATING SCORING AND CONCEDING PROBABILITIES
VAEPではとから各アクションの価値を求めています。となれば如何にしてそれらを求めるかが重要となります。 本論文では機械学習を用いて以下の特徴量とラベルから予測しています。
特徴量
- SPADLをそのまま利用した特徴量
- Action Type, Result, BodyPart, Start&End Location, StartTime
- SPADLから求めた特徴量
- ゴールまでの距離と角度、1アクション間の位置変化(StartLoc - EndLoc?)、ボールを保持しているチームが変わったかのフラグ、アクションとアクション間の時間と位置変化
- 試合経過に関する特徴量
- 各チームのスコアとその差分
- SPADLをそのまま利用した特徴量
ラベル
- 10アクション以内にゴールが入った場合は1、それ以外は0
アルゴリズムはCatBoost、ロジスティック回帰、ランダムフォレスト、XGBoostを検証しており、予測した確率を評価するのにBrier Scoreを、不均衡なデータに対してのモデルの性能を評価するのにROC AUCを用いています。(両指標において最もよかったCatBoostを採用)
Experiments
ヨーロッパのトップリーグ(イングランド、スペイン、ドイツなど)の2012/2013シーズンから2017/2018シーズンの全11565試合のデータを使って実験を行なっています。
結果のグラフや表はたくさんあってまとめきれないので、論文やスライドをご覧下さい。 本手法ではActionType毎のレーティングを求めることも可能なので、選手がどういったタイプなのかもわかって面白いです。
また、論文中のDiscussion of remaining challengesでも述べられているのですが、VAEPのフレームワークだとボールに絡んだアクションしか評価されません。そのため、敵を引きつける動きだったり相手のパスコースを消すといった動きは評価されていない点は考慮して結果を見る必要があるとは思います。
おわりに
こちらのツイートにあるように、Sport Analyst Meetup#4で本論文についてのLTをやる予定です。面白い発表になるよう頑張ります。
個人的には、本論文で提案されているVAEPはさることながら、目的に合ったデータ形式を定義するところから実際のデータでの検証及び考察まで、データサイエンスのプロセスをしっかりと行なっている点がとても勉強になりました。
余談ですが、タイトルのActions Speak Louder than Goalsは、Actions Speak Louder Than Words:「行動は言葉より雄弁だ」という諺が元となっているようです。かっこいいですね! Actions speak louder than words.の意味・使い方 - 英和辞典 WEBLIO辞書