AIは陣営コメントを読ませると賢くなるのか|「状態は良いです」を競馬AIはどう理解する?

陣営コメントを読む分析家 競馬データの基礎

競馬新聞や競馬サイトを見ていると、馬柱の近くに陣営コメントが掲載されています。

「状態は上向いています」

「前走以上です」

「距離延長はプラスだと思います」

「展開がかみ合えば」

「使いつつ良くなっています」

競馬を予想する人なら、一度は読んだことがある情報だと思います。

一方、競馬AIを作るときには、こうした文章を使わず、着順、タイム、上がり3F、距離、競馬場、騎手、枠順など、数値化しやすいデータを中心に学習させることが多いです。

ここで一つ疑問が出てきます。

AIにも陣営コメントを読ませたら、もっと賢くなるのでしょうか。

最近は文章を扱うAIも急速に進歩しています。

以前なら「コメントを機械学習へ入れる」と言われても、文章をどのように数値化するかが大きな壁でした。

しかし今なら、

「状態は良い」

「距離に不安」

「叩き良化型」

「逃げたい」

といった意味を文章から抽出し、数値やカテゴリへ変換することもできます。

そう考えると、競馬AIにとって陣営コメントはまだ利用していない情報の宝庫にも見えます。

ただ、少し考えると問題もあります。

陣営コメントは本当に馬の状態を正確に表しているのでしょうか。

「具合はいいです」と言った馬が普通に惨敗することもあります。

逆に、

「もう少し使ってから」

という雰囲気だった馬がいきなり勝つこともあります。

今回は、陣営コメントを競馬AIへ読ませることに本当に意味があるのかを考えてみます。

  1. 陣営コメントには数値データにない情報がある
  2. 特にAIが欲しいのは「今回だけ」の情報
  3. 「状態は良いです」問題
  4. コメントは「何を言ったか」より「どう言ったか」が重要かもしれない
  5. 「強気コメント指数」を作ることはできそう
  6. LLMを「競馬予想家」にする必要はない
  7. 実は「ネガティブコメント」の方が価値がある可能性
  8. 「今回は叩き台」は本当に存在するのか
  9. 「コメント通りに走った馬」だけを見ると危険
  10. コメントの価値は「人気に織り込まれているか」でも変わる
  11. 陣営コメントが人気を作っている可能性もある
  12. 「人気を超えて走るか」で見ると面白そう
  13. 誰のコメントなのかも重要かもしれない
  14. 「いつも強気な調教師」の強気コメントには価値がない?
  15. コメントの時系列は絶対に管理したい
  16. 文章データは再現性の確保も難しい
  17. LLMの判定自体も固定しないと検証できない
  18. コメント全部を一つの「強気度」にするのも惜しい
  19. コメントと当日条件を掛け合わせる
  20. 「陣営コメントが正しいか」をAIに学習させる方法もある
  21. 数値データと文章データはどちらが強いのか
  22. コメントあり・なしモデルを比較してみたい
  23. コメントを入れたらバックテストだけ強くなった、は警戒したい
  24. 「コメントを読むAI」は人間に近づくのか
  25. 陣営コメントを「信じる」のではなく「測る」
  26. まとめ

陣営コメントには数値データにない情報がある

競馬新聞から発見する様子

まず、利用する価値そのものはかなりありそうです。

普通の競馬データには、結果として残ったものが多く含まれています。

前走5着。

上がり34.5秒。

4コーナー3番手。

馬体重480kg。

こうした情報です。

しかし馬が次走へ向かう過程については、必ずしも数字だけで表現されていません。

例えば前走後に少し疲れが出た。

今回は調整が予定より順調だった。

距離を延ばすために折り合いを意識して調教した。

前走は逃げたが今回は控える予定。

休み明けを一度使って反応が良くなった。

こうした情報は、厩舎関係者のコメントに含まれる可能性があります。

もしAIがそれを読み取れるなら、

過去の結果だけでは分からない「今回どう変わるか」

を予測できるかもしれません。

これはかなり魅力的です。

特にAIが欲しいのは「今回だけ」の情報

競馬AIが苦手になりやすいのは、過去データから見れば同じような馬なのに、今回は状態が違うケースです。

例えば同じ馬が同じ競馬場、同じ距離へ出走するとします。

過去データから見れば適性も能力も変わりません。

しかし現実の馬は生き物です。

今回は絶好調。

今回は少し疲れている。

今回は脚元に不安がある。

今回は気性面が改善した。

こうした変化はあります。

普通の機械学習モデルでは、入力データにその情報がなければ知りようがありません。

一方、陣営コメントに、

「前走後より明らかに動きが良くなった」

という情報があれば、AIにとって重要な追加情報になる可能性があります。

つまりコメントの最大の価値は、

馬そのものの固定的な能力ではなく、今回の状態変化を捉えられること

なのだと思います。

「状態は良いです」問題

余裕そうな表情

ただし、陣営コメントを読んでいるとすぐに気付く問題があります。

みんな結構前向きです。

「状態は悪いです」

「今回は無理だと思います」

「勝負にならないでしょう」

と、はっきり言うケースは多くありません。

当然といえば当然です。

馬主、調教師、騎手、厩舎スタッフなど多くの関係者が関わっています。

メディア向けコメントとして、

「全然ダメです」

と言い切るのは難しいでしょう。

そのため、

「状態はいい」

「順調です」

「力は出せる」

といった似た表現が大量に並びます。

もしAIが文章をそのまま信じれば、

ほぼ全馬好調

になってしまいます。

これでは特徴量になりません。

コメントは「何を言ったか」より「どう言ったか」が重要かもしれない

そこで面白いのが表現の違いです。

例えば、

「状態はいいです」

と、

「前走以上の状態です」

では少し意味が違います。

さらに、

「動きはかなり良くなっています。ここは楽しみです」

なら、より強い前向き表現に見えます。

反対に、

「状態自体は悪くありません」

という言葉は、一見ポジティブですが微妙です。

「悪くない」としか言っていません。

「展開がかみ合えば」

「自分の競馬ができれば」

「どこまでやれるか」

という表現にも、少し慎重なニュアンスがあります。

人間はこうした微妙な言い回しを何となく読み取ります。

AIなら逆に、それを大量のコメントから統計的に検証できます。

例えば、

「楽しみ」

という表現が出た馬。

「悪くない」

という表現が出た馬。

「展開次第」

という表現が出た馬。

それぞれの人気以上の好走率を調べる。

こうすると、「競馬記者のコメント読み」のようなものをデータ化できるかもしれません。

「強気コメント指数」を作ることはできそう

強い子供

文章をそのままLightGBMへ入れることはできません。

しかし一度文章を構造化すれば使えます。

例えば陣営コメントから、

状態評価。

前走比。

距離適性。

馬場適性。

展開希望。

位置取り希望。

気性。

調教評価。

不安材料。

陣営自信度。

といった情報を抽出します。

そして、

状態評価+2。

前走比+1。

距離変更+1。

不安材料-1。

自信度+2。

のように数値化する。

こうすれば、通常の競馬データと組み合わせられます。

AIに文章そのものから勝ち馬を予想させるというより、

文章から特徴量を作るAIと、レースを予測するAIを分ける

イメージです。

これは現在のモデルにも比較的追加しやすそうです。

LLMを「競馬予想家」にする必要はない

ここは重要だと思います。

陣営コメントを扱うとなると、

「生成AIに全部読ませて本命を決めてもらう」

という方法を想像しやすいです。

しかし、それでは評価が難しくなります。

例えばLLMへ馬柱とコメントを渡して、

「最も勝ちそうな馬を選んでください」

とお願いする。

答えは出ます。

しかし、なぜその馬を選んだのか、どの情報をどの程度評価したのかを再現しにくくなります。

それよりも、

「このコメントから前走比、状態、自信度、不安要素を0~2で分類してください」

と使う方が検証しやすいです。

LLMは予想するのではなく、

文章を機械学習で使える形へ翻訳する役割

にします。

この使い方なら、AI同士の役割分担も明確です。

実は「ネガティブコメント」の方が価値がある可能性

個人的に気になるのは、前向きコメントより慎重なコメントです。

ポジティブな表現は多くの馬に使われます。

そのため情報量が小さいかもしれません。

一方、

「まだ重い」

「距離が少し長いかもしれない」

「良化途上」

「使ってからの方がいい」

といった慎重な内容は、わざわざ言及されている分だけ情報価値が高い可能性があります。

例えば陣営が弱気コメントを出した馬について、

人気別勝率。

単勝回収率。

前走比。

を集計する。

本当に成績が悪くなるなら、有効な特徴量になります。

逆に全く関係がなければ、

「陣営コメントの弱気表現は馬券には使えない」

という発見になります。

どちらでも面白いです。

「今回は叩き台」は本当に存在するのか

競馬ファンがよく使う表現に、

「今回は叩き台」

があります。

休み明け。

目標は次走のGⅠ。

今回は仕上げ途上。

こうした考え方です。

これも陣営コメントから拾えそうです。

例えば、

「まだ余裕があります」

「次につながる競馬を」

「使いつつ良くなれば」

といった表現です。

本当にこうしたコメントが出た馬の勝率が下がるなら、数値データだけでは分からない重要情報になります。

一方、能力上位馬なら仕上げ途上でも普通に勝つかもしれません。

そこで、

陣営弱気 × 1番人気。

陣営弱気 × 休み明け。

陣営弱気 × 前哨戦。

のような組み合わせを見ると面白そうです。

単体では弱い特徴でも、条件と組み合わせると効く可能性があります。

「コメント通りに走った馬」だけを見ると危険

馬の影

ここで注意したいのが後知恵です。

例えばレース後、

「陣営も『良くなっている』と言っていた。やっぱり買うべきだった」

と思います。

しかし同じ日に、

「良くなっている」

と言われて惨敗した馬が何頭いたでしょうか。

人間は結果と一致したコメントだけを覚えやすいです。

そのため、

「陣営コメントは当たる」

という印象が実際以上に強くなる可能性があります。

AIで検証するなら、勝った馬のコメントを読むだけでは意味がありません。

その日に出走した全馬のコメントを取得し、同じ基準で評価する必要があります。

外れたコメントも全部残す。

ここは競馬AIの強みです。

コメントの価値は「人気に織り込まれているか」でも変わる

仮に陣営コメントが本当に有効だとします。

それだけで馬券的に価値があるとは限りません。

例えば有力馬について、

「追い切り後の状態は抜群」

というコメントが公開された。

競馬新聞でも大きく取り上げられた。

SNSでも拡散された。

すると、その情報を見た人が馬券を買います。

単勝4倍だった馬が3倍になる。

こうなると、予測精度には役立っても期待値は消える可能性があります。

これは騎手成績や人気馬と同じです。

重要なのは、

コメントが好走を予測できるか

だけではなく、

市場がそのコメントをどこまで価格へ反映しているか

です。

陣営コメントが人気を作っている可能性もある

人気星をなぞる様子

さらに厄介なのは、コメントと人気の因果関係です。

AIが、

「強気コメントの馬は好走率が高い」

と学習したとします。

しかし実際には、

能力の高い馬だから陣営も強気。

能力が高いから競馬ファンも買う。

そして実際によく走る。

というだけかもしれません。

つまりコメントが新しい情報なのではなく、すでに他のデータで分かる能力を言い直しているだけです。

そこで比較したいのが、

通常モデル。

通常モデル+陣営コメント。

です。

コメントを追加して予測性能が改善するなら、何らかの追加情報を持っている可能性があります。

改善しなければ、コメントは既存特徴量と重複しているのかもしれません。

「人気を超えて走るか」で見ると面白そう

陣営コメントの価値を調べるなら、単純な勝率だけでなく人気との関係を見たいです。

例えば1番人気で強気コメント。

これは勝率が高くて当然かもしれません。

一方、

7番人気なのに非常に強気。

そして実際に好走する。

こういうケースが多ければ面白いです。

つまり、

市場評価に対して陣営コメントが追加情報を持っているか

を見ます。

人気以上に走ったか。

オッズから想定される勝率を上回ったか。

AI本来のp_winより結果が良かったか。

このあたりを比較すれば、コメント独自の価値を測れそうです。

誰のコメントなのかも重要かもしれない

陣営コメントと一括りにしていますが、発言者によって意味が違う可能性があります。

調教師。

騎手。

助手。

厩務員。

それぞれ馬を見ている立場が違います。

騎手なら、

「前走より反応が良かった」

という走行感覚を持っているかもしれません。

調教師なら全体的な調整過程を見ています。

厩舎スタッフなら日常的な馬の変化に気付きやすいでしょう。

さらに、人によってコメントの癖もありそうです。

いつも強気な人。

常に慎重な人。

勝負気配があると急に表現が強くなる人。

もし十分なデータが取れるなら、

発言者ごとの基準値

まで持たせると面白そうです。

「いつも強気な調教師」の強気コメントには価値がない?

SNSの的中報告を疑う様子

例えばA調教師は、どの馬についても、

「期待しています」

と言う。

B調教師は普段かなり慎重で、

「まずはどこまで」

という表現が多い。

そのB調教師が珍しく、

「かなり楽しみです」

と言った。

文章だけ見れば両方ポジティブです。

しかし情報価値は違うかもしれません。

これは人間の会話と同じです。

普段から褒める人の「良いですね」と、ほとんど褒めない人の「これは良い」は意味が違います。

AIなら、

その人物の過去コメント。

その表現の出現頻度。

コメント後の成績。

を大量に持てます。

すると、

絶対的な文章評価ではなく、その人にしては強気か

という特徴量を作れそうです。

これはかなり面白いと思います。

コメントの時系列は絶対に管理したい

競馬AIへ文章データを入れるなら、かなり注意したい点があります。

情報リークです。

例えばレース後の記事には、

「調教師はレース前から状態の良さに自信を持っていた」

という文章が掲載されることがあります。

これを学習データへ誤って入れると、結果を知った後の情報が混ざる可能性があります。

さらにウェブ記事は更新されることがあります。

取得した時点ではレース後でも、文章自体にはレース前コメントが含まれている。

逆にコメント欄の一部が後から追記されている。

こうなるとかなり危険です。

競馬AIで使うなら、

発走時刻より前に公開されていた文章だけを利用する

というルールを徹底する必要があります。

コメントを入れてモデルが急に強くなったら、まず情報リークを疑うくらいでもよさそうです。

文章データは再現性の確保も難しい

数値データなら比較的安定しています。

前走着順5着。

馬体重480kg。

単勝オッズ5.2倍。

これは後から確認しても基本的に変わりません。

しかし文章データは少し違います。

媒体によってコメントが違う。

同じ発言でも編集される。

要約される。

表現が変わる。

掲載されない馬もいる。

こうした問題があります。

例えば調教師が同じ内容を話しても、

媒体Aでは「状態は上向き」。

媒体Bでは「前走以上」。

と掲載されるかもしれません。

AIに使うなら、この揺れまで考える必要があります。

LLMの判定自体も固定しないと検証できない

Chat-GPTのイメージ

生成AIを使ってコメントを構造化する場合、もう一つ問題があります。

同じ文章でも、毎回少し違う評価になる可能性があります。

例えば、

「状態は悪くない。展開ひとつ」

というコメントを、

あるときは状態+1。

別のときは状態0。

と判定してしまう。

これでは特徴量が安定しません。

そのため、

判定基準を明文化する。

出力形式を固定する。

モデルやプロンプトのバージョンを保存する。

同じ過去データは同じ条件で再処理する。

といった管理が必要になります。

競馬AIの学習モデルだけでなく、文章を特徴量に変換する部分も一つのモデルとして扱うわけです。

コメント全部を一つの「強気度」にするのも惜しい

最初はコメントを、

強気。

普通。

弱気。

の3段階にするだけでもよいと思います。

ただ、最終的には少し粗いかもしれません。

なぜなら、同じ弱気でも理由が違うからです。

状態が悪い。

距離が長い。

馬場が不安。

展開待ち。

相手が強い。

気性が課題。

これらは別の情報です。

例えば「距離が不安」というコメントなら、今回距離延長時だけ効くかもしれません。

「馬場が悪いとダメ」というコメントなら、当日雨が降ったときだけ重要になります。

文章の面白さは、

条件付きの弱点を抽出できること

にあります。

コメントと当日条件を掛け合わせる

ここまでできると、かなり競馬AIらしくなります。

例えば陣営コメントに、

「良馬場の方がいい」

とある。

当日は重馬場。

ならマイナス。

逆に、

「時計がかかった方がいい」

とある。

雨が降って時計のかかる馬場になった。

ならプラス。

「前に馬を置いた方がいい」

というコメントなら、枠や想定展開と組み合わせられます。

「距離延長は歓迎」

なら距離変化量と掛け合わせる。

単純な強気・弱気より、こうした情報の方がモデルに新しいものを与える可能性があります。

「陣営コメントが正しいか」をAIに学習させる方法もある

さらに一歩進めると、陣営コメント自体を予想に使うのではなく、

誰のコメントがどんな条件で当たりやすいか

を学習させることもできます。

例えば過去の発言について、

状態良化コメント。

実際のパフォーマンス上昇。

を比較します。

すると、

A厩舎の状態良化コメントは実際によく走る。

B厩舎は強気コメントが多すぎてあまり関係ない。

C厩舎は弱気コメントのときだけ成績が大きく落ちる。

といった違いが見つかるかもしれません。

つまりAIは、馬だけでなくコメント発信者の信頼度まで学習できます。

人間が長年競馬を見て、

「あの厩舎がここまで言うなら買いたい」

と感じる経験を、データで再現するイメージです。

数値データと文章データはどちらが強いのか

ここで気になるのは、結局どちらが重要なのかです。

私は基本的には数値データが土台になると思います。

過去走。

距離。

馬場。

脚質。

騎手。

斤量。

枠。

こうした情報から能力を推定する。

その上で文章データを、

最後の微調整情報

として加えるのが自然です。

陣営コメントだけで予想すると、表現の曖昧さや建前に振り回されます。

一方、数値データだけでは今回の体調や作戦変更を捉えられない。

両者は競合するというより役割が違います。

数値から「この馬はどれくらい強いか」を推定し、文章から「今回は普段と何か違うか」を探す。

この組み合わせなら意味がありそうです。

コメントあり・なしモデルを比較してみたい

最終的には、これも実験すればよいと思います。

現在の数値特徴量だけで学習したモデルをA。

そこへ陣営コメント由来の特徴量を追加したモデルをB。

として比較します。

見るのは的中率だけではありません。

Log Loss。

Brier Score。

キャリブレーション。

人気別成績。

単勝回収率。

人気薄での改善。

などです。

もしBモデルがわずかでも安定して改善するなら、コメントには数値データに含まれない情報がある可能性があります。

逆にほとんど変わらなければ、

「人間には意味があるように見えるが、既存データ以上の予測力はなかった」

という結果になります。

それも十分面白い発見です。

コメントを入れたらバックテストだけ強くなった、は警戒したい

文章特徴量を大量に作れるようになると、いくらでも試せます。

強気度。

弱気度。

状態評価。

距離評価。

馬場評価。

騎手評価。

勝負気配。

不安度。

コメント文字数。

「楽しみ」の出現。

「良化」の出現。

どんどん特徴量が増えます。

そうすると、過去データでは偶然成績が良くなる組み合わせが見つかります。

しかし将来も同じとは限りません。

これは通常の特徴量開発と同じです。

コメントという新しい情報源が面白いからこそ、過学習には注意したいところです。

「コメントを読むAI」は人間に近づくのか

競馬AIを作っていると、人間が見ている情報を少しずつ追加したくなります。

血統。

騎手。

馬場。

オッズ。

そして陣営コメント。

コメントまで読めるようになると、かなり人間の予想に近づいたように感じます。

しかし、AIの強みは人間そっくりになることではないと思います。

人間はコメントを読んで、

「今回は勝負気配ありそう」

と直感的に判断します。

AIなら、

過去5年間で同じ表現が出た馬を全部集める。

人気別に分ける。

結果を見る。

再現性を確認する。

ことができます。

つまり人間と同じ情報を見ながら、人間とは違う方法で評価できることに価値があります。

陣営コメントを「信じる」のではなく「測る」

競馬新聞見る人

最初の疑問に戻ります。

AIは陣営コメントを読ませると賢くなるのでしょうか。

可能性はあると思います。

特に、

今回の状態。

前走からの変化。

距離や馬場への評価。

作戦変更。

気性面。

といった数値化しにくい情報が含まれているからです。

ただし、

「状態はいいです」

という文章をそのまま信じても意味はありません。

大切なのは、

その表現がどれくらい頻繁に使われるのか。

誰が言ったのか。

どの条件で言ったのか。

実際にその後どれくらい走ったのか。

人気やオッズへどこまで織り込まれていたのか。

まで確認することです。

AIにコメントを読ませる目的は、競馬関係者の言葉を信じさせることではありません。

その言葉に本当に予測力があるのかを測らせること

なのだと思います。

まとめ

競馬AIへ陣営コメントを追加するというアイデアは、かなり面白いと思います。

通常の競馬データは、過去に何が起きたかを詳しく教えてくれます。

一方、陣営コメントには、

今回の状態。

前走からの変化。

距離変更への感触。

馬場適性。

作戦。

不安材料。

といった、「次のレースへ向けて何が変わったか」が含まれている可能性があります。

この情報をAIが使えれば、数値データだけでは捉えられない部分を補完できるかもしれません。

ただし、陣営コメントには建前もあります。

「状態はいい」

「順調」

「期待している」

という言葉だけを数えれば、ほとんどの馬が高評価になってしまいます。

だから単純なポジティブ・ネガティブ判定だけでは足りません。

誰が言ったのか。

普段どれくらい強気な人なのか。

前走比について何を言っているのか。

どんな条件付きの不安があるのか。

まで分解する必要があります。

そして何より重要なのは、バックテストです。

コメントなしモデル。

コメントありモデル。

を同じ条件で比較する。

もしコメントを加えることで将来データでも予測性能が改善するなら、陣営の言葉には本当に追加情報があったことになります。

逆に改善しないなら、それも一つの答えです。

人間には重要そうに見える情報でも、すでに人気や過去成績に織り込まれているのかもしれません。

個人的には、

「陣営コメントを読ませればAIが競馬通になる」

というより、

「人間がなんとなく感じていた“陣営の強気・弱気”を、AIなら本当に意味があるのか検証できる」

ところに価値があるように思います。

そしてもし、

「この調教師が『状態は悪くない』と言ったときは実はかなり弱気」

のような癖までAIが発見し始めたら、かなり面白いです。

競馬AIが陣営コメントを読む。

その目的は、人間のようにコメントを信じることではありません。

大量の過去コメントと結果を並べて、

「その一言、本当に馬券に使えるんですか?」

と検証することです。

そう考えると、陣営コメントはまだ競馬AIが十分に触れていない、かなり大きな未開拓データなのかもしれません。

コメント

タイトルとURLをコピーしました