グラフニューラルネットワークでNBA選手の相性を予測してみた話
こんにちわ、sea_turt1eです。
今回は私が大好きなアメリカのプロバスケットボールNBAのプレイヤーの相性を予測する機械学習モデルを作成したので、その結果と過程についてお話しします。
概要
- 相性予測にグラフニューラルネットワーク(Graph Neural Network, GNN)を使用。
- 予測の指標としてAUC(Area Under the Curve)を採用。
- 学習が収束した際のAUCは約0.73。
- 使用したデータは、1996-97シーズンから2021-22シーズンを学習用、2022-23シーズンをテスト用に分割。
相性予測結果
まずは、予測結果をご覧いただきます。その後、データセットや工夫した点など技術的な詳細を解説します。
スタープレイヤーの相性予測
以下はスタープレイヤー同士の相性予測結果です。今まで同じチームになったことがない選手感のグラフを描いています。
同じチームでプレーしたことがないスタープレイヤーの相性予測を見ると、結果の妥当性が直感的には分かりにくいかもしれません。
例えば、レブロンジェームズとステフィンカリーはオリンピックでも良い連携を見せていたので相性が良さそうですが、ニコラヨキッチが他プレイヤーと相性が悪いと予測されるのは納得しづらい結果です。
2022-23シーズンの大型トレードで起きた選手感の相性予測
スタープレイヤー同士だけでは分かりづらいので、2022-23シーズンに実際にトレードで同じチームになった選手同士の相性予測を試してみました。
2022-23シーズンは学習データに含めていないため、予測結果が現実の印象に近い場合、モデルの学習がうまくいっていると考えられます。
2022-23シーズンでは大型トレードがいくつか起こりました。
以下はその中でも、ケビン・デュラント、カイリー・アービング、我らが八村塁に焦点を当てた予測結果です。
それぞれの移籍先での組み合わせと予測結果は以下の通りです:
- レイカーズ: 八村塁 – レブロンジェームズ(数値=0.961, 赤線: 相性良い)
- サンズ: ケビンデュラント – クリスポール(数値=0.942, 黒線: 相性まあまあ)
- マーベリックス: カイリーアービング – ルカドンチッチ(数値=0.874, 青線: 相性イマイチ)
2022-23シーズンの印象を考えると、この結果は比較的妥当と言えるのではないでしょうか?
(その後のシーズンではサンズとマーベリックスの状況は変わりましたが)
技術詳細
ここからは、GNNの概要やデータ処理の工夫点など、技術的な側面について解説します。
GNNとは
GNN(Graph Neural Network)は、グラフ構造を持つデータに適用できるニューラルネットワークです。
本モデルでは、選手間の「相性」をグラフのエッジとして表現し、以下のように学習を行いました:
- ポジティブなエッジ: アシストが多い選手同士。
- ネガティブなエッジ: アシストが少ない選手同士。
また、ネガティブエッジには「同じチーム内でアシストが少ない選手同士」を重視する比率設定を行い、「異なるチームの選手同士」の比率を下げました。
AUCとは
AUC(Area Under the Curve)は、ROC曲線の下の面積を指し、モデルの性能を評価する指標です。AUCが1に近いほど精度が高く、今回の学習ではAUCを約0.73に到達させました。
(ぼちぼちの精度といったところでしょうか)
学習曲線とAUCの推移
今回の学習では以下の様な学習曲線とAUCの推移がありました。
データセット
一番の工夫点はデータセットの構築です。
選手間の相性を表現するため、「アシストの多さ」を相性の良さの指標としました。この仮説を基に以下のデータ構造を作成しました:
- ポジティブエッジ: アシストが多い選手同士。
- ネガティブエッジ: アシストが少ない選手同士。
さらに、同じチーム内でアシストが少ない場合は相性が悪いと仮定し、学習に反映させました。
コード詳細
GitHubに使用したコード全てが置いてあります。
READMEに書かれている手順で行っていただければ、学習から上で書いた様なグラフのプロットまでできるはずです。
今後の展望
まだ改善すべき点は多く、以下を目標としています:
-
相性の定義の拡張
- アシスト以外の要素を考慮し、選手間の関係性をより精密に定義。
-
精度向上
- AUCのさらなる改善を目指し、学習方法やデータセットの拡充を図る。
-
自然言語処理の導入
- 選手のインタビューやSNS投稿をモデルに組み込むことで、新たな視点を加えたい。
-
英語記事の執筆
- NBAの国際的な人気を考慮し、英語でも記事を公開予定。
-
GUIによるグラフの表示
- サイトを作成し、GUIで自由に選手感の相性を表示できる様にしたい。
おわりに
今回はNBAプレイヤーの相性予測に挑戦した結果をご紹介しました。
まだ発展途上のモデルですが、今後の改善でさらに面白い結果が得られることを期待しています。
ご意見やアドバイスがありましたら、ぜひコメントで教えていただけると嬉しいです!
Discussion