🎾

論文紹介 / テニスの1ショットの価値を測る

2022/12/28に公開

初めまして、ヒロト(https://twitter.com/satou8282)です。
この記事は、「スポーツアナリティクス Advent Calendar 2022」の12/24です。

はじめに

画像認識技術が発達するとともに、プレイヤーの動作を細かく記録できるようになり、
サッカー・バスケ・野球といったスポーツでは、データに基づいた戦術解析の研究が盛に行われています。

テニスはやや遅れているものの、最近では面白い戦術解析の研究が行われ始めています。
そこで本記事では、「テニスの戦術を1ショット単位で評価する論文」紹介します。

モチベーション

なぜ「1ショット単位」で分析する必要があるのか説明します。

テニスではスタッツと呼ばれる集計値を用いた分析が主流です。
スタッツとは、相手のミスショットの本数、サービスエースの本数、など、試合単位で結果を集計した値です。
テレビで見かけるこれです。

しかしスタッツは粒度が荒く、戦術の評価を行うには不十分です。
テニスでは1ポイントの間に複数のショットがあるので、それぞれのショットがどの程度ポイントの勝敗に寄与したのかが知りたいです。

囲碁・将棋を想像してもらうとわかりやすいと思いますが、投了した手と敗因となった手は異なります。
テニスも同様で、あるショットw(t)を打ってミスをしたとしても、実はそのn打前のw(t-n)こそが真の悪手だった、、!みたいなことはよくあります。

Space-Time VON CRAMM: Evaluating Decision-Making in Tennis with Variational generatiON of Complete Resolution Arcs via Mixture Modeling

1本目に紹介する論文です。
https://arxiv.org/abs/2005.12853

概要

「ショットの生成モデル」を実データから構築し、期待ショット価値(Expected Shot Value)と呼ばれる指標を提案した研究です。
あるショットを打った時の、その後のプレイヤーの動き、ボールの動きを全て生成するモデルを作っています。(凄すぎます、、!)
ショットの生成モデルを構築するのに使ったデータは、全豪オープンで計測されたプレイヤーの2次元座標の軌跡と、ボールの3次元座標の軌跡です。

またESVから派生して3つの戦術評価指標を提案し、2019全米オープンの試合データを使って有効性を検証しています。

  • VAST(Value Added Shot Taking): 相手の強さに依存しないショットの価値
  • Shot IQ: ショットの配球の良さ
  • VACC(Value Added due to Court Coverage): ポジショニングの良さに伴うディフェンス能力

余談ですがVONN CRAMMは昔のテニス選手の名前です。
著者がVONN CRAMMさんのファンなのだと思います笑

著者
Stephanie Kovalchikさん + 他3人。最近よく見かける気がします。
Zelus Analyticsという会社でテニスの分析を専門にされているそうです。
https://zelusanalytics.com/

手法

期待ショット価値(Expected Shot Value)のモデル化

ESVとは、ある状態であるショットを打った時に得点できる確率のことです。

本論文では「ショット」を下図のようにモデル化しています。

ざっくり言うと
状態:X(t)みたいなシチュエーションで
行動:ショットωを打つと
遷移:A(ω)みたいなシチュエーションに変化して
報酬:結果W(ω)が起こる
ということです。

このモデルを用いて、ESVを定式化すると下図のようになります。

A(ω)は確率的なので期待値を取ることでショットの総合的な価値を計算します。

P(A(ω)|X(t))のモデル化


ベイジアンガウス混合分布でモデル化しています。(詳細は割愛します🙇)

Fittingした結果を下図に載せています。
サーブの前後におけるプレイヤーとボールの動きがかなりリアルに再現できていて驚きました。

P(W(ω)|A(ω))のモデル化

一般化加法モデル(GAM)を用いて、A(ω)からW(ω)を予測しています。

  • ボールの速度
  • ボールの最高到達点
  • ボールのバウンド位置
  • ボールのバウンド位置と相手プレイヤーとの距離
  • プレイヤーの利き腕
    といった特徴量を入力にしているそうです。

結果

ESVによってショット単位で戦術を評価できるようになりました。
ESVから派生して計測できる3つの指標を提案し、2019年全米オープンを分析しています。(モデル構築に使った学習データは全豪オープンなので別のデータです)

VAST(Value Added Shot Taking): 相手の強さに依存しないショットの価値

ESVの問題点は対戦相手の動きに依存するところです。
一般的なプレイヤーには有効なショットでも、脚力がとんでもない選手(例えばナダル)が相手だとESVが不当に低い評価になってしまいます。

ESVを対戦相手の動作について周辺化したのがVASTです。

A(ω)を

  • A_S(ω):ショットを打ったプレイヤー側
  • A_R(ω):ショットを受けるプレイヤー側
    に分解し、
    平均的なプレイヤーに対してそのショットを打った時のESVを推定します。


2019年USオープン決勝、メドべデフが打ったファーストサーブは121マイルでした。
ナダルに対して計算されたESVは10%程度ですが、VASTは95%となっています。
他の相手であればほぼサービスエースとなっていたはずということが定量的に分かって面白いです。

Shot IQ: ショットの配球の良さ

Shot IQは、「ショットを打つ場所を決める能力」と「ショットを打つ能力」を分離するための指標です。
Shot IQの計算方法は基本VASTと同じ式ですが、A(ω)の分解の仕方が異なります。

  • A_S(ω):ショットを打った瞬間の2人のプレイヤーの位置 + ボールのバウンド位置
  • A_R(ω):それ以外(ショットの種類・ショットを打った後のボールの軌跡・ショットを打った後のプレイヤーの軌跡)

A_S(ω)には、ショットを打つ場所を決めるために最低限必要な情報のみを選んでいます。


2019 USオープン男子シングルス ベスト16に残った選手のShot IQを計算した結果は以下のようになりました。感覚と大体合っているのがすごい、、感動です。

  • 1st サーブの狙いが良い
    • ワウリンカ
    • ゴフィン
  • 2nd サーブの狙いが良い
    • ジョコビッチ
    • シュワルツマン
  • ポイント終了直前のフォアハンドの狙いが良い
    • フェデラー
    • チリッチ
  • ポイント終了直前のバックハンドの狙いが良い
    • フェデラー
    • ナダル

シュワルツマンは身長170cmで、サーブのスタッツが低く出ることが多いです。
しかし、Shot IQを見ると2ndサーブの配球がとても上手いことがわかります。

フェデラー先生は予想通り、フォアバック共にストロークの戦術的な配球力が高いです。

ジョコビッチのバックハンドのShot IQが低いことが意外です。調子が悪かったのでしょうか?

VACC(Value Added due to Court Coverage): ポジショニングの良さに伴うディフェンス能力

視点をショットを打つ側から受ける側に変えます。
VACCは、ポジショニングの良さから生まれるディフェンス能力を評価することを目的にした指標で、
「平均的なレシーバーに対するショットの得点率」- 「現在のレシーバーに対する同じショットの得点率」
と定義します。

コートカバーでショットを無力化できるほどVACCは大きくなります。

USオープンでのVACCから、ナダルは、テニスで最も強力なショットであるファーストサーブに対して平均してVACC 7.5%でした。
ナダルのポジショニングと動きによって、サーブでポイントを獲得する確率が平均で7.5%減少させていることを意味します。
驚異的です、、!

A Markov process approach to untangling intention versus execution in tennis

2本目に紹介する論文です。
https://arxiv.org/pdf/2110.01527.pdf

概要

untangling intention versus executionとあるように、
意図(intention)した通りに実行(execution)できない環境におけるプレイヤーの最適行動について分析した研究です。

簡単に言うと
(現実ではあり得ないですが)狙った場所に完璧のボールを打てる時と、狙った場所とボールの落下点がずれる時とで、プレイヤーが取るべき行動(=狙うべきコース)は変わってくるよね
という意味です。

「狙った場所にボールを行かない率」をexecution errorと定義し、
execution errorを変化させた時、プレイヤーの価値関数がどう変化するか、マルコフ決定過程に基づいてシミュレーションしています。

実験の結果、以下4点がわかったそうです。

  1. Execution Errorを増やすと、保守的な戦術(ex コート中央にボール集める)の価値が高くなった
  2. サーブは不正確でもそこまで問題ない
  3. 不正確なバックハンドは、不正確なフォアハンドよりも悪い
  4. サーブリターンを正確に打つのが最もコスパよく得点率が上がる

プレイヤーとしての肌感覚と一致していて、とても興味深いです!!!!
この分析をもう一段階深くできれば、実戦で使える知見が見つかりそうだなと感じました。

著者
トロント大学のTimothy Chanさん他
Zelus AnalyticsのKovalchikさん

手法

テニスにおける逐次的意思決定問題をマルコフ決定過程(MDP)とマルコフ報酬過程(MRP)として定式化し、状態価値と最適方策を実データから推定します。

  • 状態価値V(S)
    状態Sにおいて、これ以降プレイヤーAが方策Πに従い行動した時に得点できる確率。
    つまり、ある状況でプレイヤーAがどれくらい有利かを表した数値です。
  • 最適方策Π(A|S)
    状態Sにおいて、次の状態価値を最も高くする行動Aを決めるルール。
    つまり、どこを狙ってどれくらいのスピードのボールを打てばいいかの戦術です。

MDPとMRPについてはご存知の前提で話を進めます🙇
下記の記事が分かりやすかったです。
https://agirobots.com/markov-rl/

データ

「VON CRAMM」論文のモデルを使って生成した仮想的なショットを利用しています。
具体的には

  • ボールの3次元座標の軌跡
  • プレイヤーの2次元座標の軌跡
  • ショットの結果(win, error, in-play)
    といったデータを生成しているようです。

JeffSackmannが提供しているATPのスタッツデータも利用しています。
https://github.com/JeffSackmann

状態空間S(States)

状態のイメージは下図のようになります。

プレイヤーの位置は、テニスコートを84分割した空間で表現します。

42通り(プレイヤーAの位置) * 42通り(プレイヤーBの位置) * 3通り(ショットの種類) = 5292
の状態がありえますが、
現実的にほぼ起こり得ない状態(ex. レシーバーがネット側に立っている)を除いた3600の状態を利用しています。

また吸収状態(遷移の終着点)として、プレイヤーAがそのポイントを獲得したかどうか
W: win
L: lose
の2状態を定義します。

行動空間A(Actions)

プレイヤーAがどこを狙ってショットを打つかを表します。

ショットがサーブの時:6通り
ショットがサーブ以外の時:39通り
となっています。
ネット近くは殆ど狙われないため、空間を大きめに設定しているそうです。

遷移確率T(S2|S1, A)

遷移確率Tは、

  • 状態S1で(プレイヤーAがxxにいて、プレイヤーBがxxにいる時)
  • 行動Aをしたときに(プレイヤーAがxxを狙ってショットを打とうとした)
  • 状態S2(ある場所にボールがバウンドした)
    に遷移できる確率です。

プレイヤーは狙った場所に打てるわけではないので確率になっています。

報酬R(s1, a, s2)

プレイヤーAが勝利状態Wに到達したら報酬R=1
それ以外の状態は報酬R=0
とします。

マルコフ報酬過程を用いた方策評価


f_s: 論文内ではintention分布と呼ばれています。実データのショット配球に基づいた方策のことだと思います。

マルコフ決定過程を用いた方策の最適化

結果

Execution Errorと状態価値との関係

右側のコートのマスの中の数値は、プレイヤーBがそのマスにいる時の状態価値V(S)を表しています。

Execution Errorを変化させた時の状態価値の変化を下図にまとめます。
プレイヤーAのExecution Errorが小さいほど、オープンコートのある状況で状態価値V(S)が高くなっています。

経験と一致する結果が定量的に示されていて興味深いです。
ボールコントロールに自信がない人は、センターラリーを続けた方が勝てるってことですね笑

特定のショットのExecution Errorを変えると状態価値はどう変わるか

デュースサイドサーブ、アドサイドラリー、といった特定のショットについてミスしやすさを変えると、得点のしやすさ(状態価値)がどう変化するのか実験しています。

Total Error = サーブ + リターン + ラリー
All Rally Error = デュースサイドラリー + アドサイドラリー
のように複数ショットのExecution Errorを変えたシナリオも実験しています。

アドサイドラリーがミスしやすいと致命的なようです。
プロの90%が右利きなので、アドサイドラリーはバックハンドラリーとも言えます。
バックはフォアよりも威力が低い場合が多いため、コントロールの甘いショットを打つと相手から逆撃を喰らいやすいということでしょうか。

またサーブはコースのずれがあっても状態価値にほぼ影響していません。
サーブは3コースに分類されているだけなので、「センターに打つつもりがワイドに入った」としても大して影響がないというのは感覚と合っています。

Execution Errorを、コースだけでなく球速・スピン量も含めたものに拡張すれば、サーブも状態価値が変化するのではないかと思います。

Execution Errorがプレースタイルに与える影響

intention分布を調整することで

  • 50%多く保守的なショットを打つプレイヤー:Conservative Play Style
  • 50%多く攻撃的なショットを打つプレイヤー:Aggressive Play Style
    をモデル化します。
    プレイスタイル毎にExecution Errorを変化させたところ、下図のように状態価値が変化しました。

Execution Errorがある時の最適な方策

完璧に直感と一致する結果になっています。

個別の対戦相手ごとに最適な方策がわかると面白いですね。
また自分のその日の調子(Execution Error)によって最適な方策を変えたりできたらとても楽しそうです。

終わりに

ずいぶん長い記事になってしまいました。
1ショットの価値がわかることで分析の幅が格段に広くなりますね。
今後10年くらいでテニスの戦術解析は大きく発展するのではないかと思いました。

最後に、未来はこんな世界になっているかも?という予想を書き綴っておきます。

  • プロの試合観戦
    • スーパーショットを喜ぶだけではなくなる
    • 形勢のリアルタイムな可視化
    • どのショットが最もポイントに寄与したかわかる
    • そのショットが持つ意味もわかる. 相手の時間を奪った. 相手の態勢を崩した. 相手のポジションを下げた.
    • 顕在化していない駆引きもわかる. もしこの手を選択していたら、何手先で詰んでいたかわかる.
  • プロの練習環境
    • 自分と相手のゲームAIを仮想的に対戦させて、自分が有利になる展開を事前に調査する

Discussion