自己紹介とアジェンダ

渡辺莉央氏:それでは「netkeibaにおける機械学習を用いた競馬オッズ予測手法の開発とその変革」というタイトルで、私、渡辺が発表します。よろしくお願いします。

簡単に自己紹介をさせてください。私は、開発本部たんぽぽ室たんぽぽグループの渡辺と申します。私の業務内容ですが、プロダクトへの機械学習導入検証やAI関連技術の調査および検証といったものを担当しています。本日は、どうぞよろしくお願いします。

(スライドを示して)本日のお品書きですが、以下のような内容で進められればと思います。まず「netkeiba」と「予想オッズ」の簡単な概要に触れていって、その後、競馬オッズの仕組みについて、こちらも簡単に触れていきたいと思います。

後半は従来の予想オッズについて触れた後、「予想オッズ」から「AIを使った予測オッズ」への変革について軽く紹介できればと思います。

最後に、予測オッズについての詳細な内容ですね。今回の代表的なモデルとして、ベースモデルと現行のモデルの2つを紹介します。最後に精度検証をして、まとめに入れればと思います。

国内最大級の競馬情報サイト「netkeiba」について

最初に、netkeibaと予想オッズということで話を始めていきたいと思います。

このセッションを聞いている方には、もしかしたらnetkeibaについて知っている方も多いかもしれないですが、まずnetkeibaがどういったものかというのを紹介します。

国内最大級の競馬情報サイトということで、弊社のグループ企業であるネットドリーマーズさんが運営しているものとなります。コンテンツとしては、競馬を楽しむためのさまざまな情報やニュースというのを公開していまして、予想オッズもそういったコンテンツの1つとなります。

「予想オッズ」について

(スライドを示して)予想オッズです。こちらは各レースのページ内で提供しているコンテンツの1つとなります。画像にあげていますが、出馬表で出ているのが右側のもので、左側に出ているものが実際の注目レースということで、グレードの高いレースが出ているかたちになります。

こちらは現在はAIオッズに切り替わっているのですが、従来の仕様としては、ユーザーの事前投票を用いた集合知によって算出されていました。

オッズはどのように決められているのか?

概要を今触れていきましたが、次にオッズの仕組みですね。「オッズはどのように決められているのか?」について、Q&A形式で触れていきたいと思います。

オッズですが、簡単に言うと、オッズは投票の比率によって算出されています。(スライドを示して)どういうことかというと、この図の例で言うと、一番上の黄色い馬の投票数が例えば50票だとすると、全体の票は足し合わせると150票になるので、それを使って支持率を計算します。

支持率を計算すると33パーセントということがわかるので、そこから払戻率という定数を使います。単勝オッズの場合は0.8になるので、これを計算して、オッズが算出されています。なので、みなさんの支持率がオッズになっているかたちになります。

オッズがわかることでユーザーにどういったメリットがあるか?

次に、「オッズがわかると、そもそもユーザーにとってどういったメリットがあるか?」。これを2つほど紹介できればと思います。

まず、馬券購入の指標というところでオッズがよく使われます。どういう話かというと、オッズは数値の大小関係になるので、ユーザーが一番わかりやすく、人気や不人気の馬を確認できる指標になります。

ほかにも例えば予想印という、予想家によって印を公開するものがあるのですが、こちらは印の意味が予想家によって違ったりします。

そもそも人によって印の種類が「◎」「○」「▲」を使う人や、「×」や「☆」などを使って表す人がいるので、意味合いも変わってきて少し不正確だということで、実際はオッズというのがユーザーにとって馬の強さを確認できる指標なので、こういったものを精度高く出す(ことが重要で)。

さらに順位精度ですね。1番人気、2番人気、3番人気といった話を聞いたことがある方も多いと思いますが、順位も「どの馬が人気か」というところで重要なので、オッズのズレもそうなのですが、順位の精度もとても大事になってきます。

もう1つのアンサーを紹介すると、馬券予測の期待値が計算できるというものもあります。馬券予測AIの仕組みを簡単に紹介すると、例えば馬券予測AIは、勝率を実際に予測することになるかと思います。

勝率を予測した時に、強い馬が一番上の馬だとわかったとしても、実際に馬券予測をする際は回収率のほうが重要になってくるので、オッズもとても大事な数値になります。

(スライドを示して)こちらで言うと、一番上のほうが勝率は高いのですが、馬券的にお薦めするのは真ん中の馬ということになります。ここのオッズの数値によって大きく回収率も前後するので、オッズの精度がとても大事になります。

(加えて)オッズの部分も、プラットフォーム側としてはなるべく早めにオッズがわかって、ユーザーにどの馬の馬券がいいかといったところを提供したいので。

例えば、(自分で馬券を購入する場合は)3分前オッズや5分前オッズを使ったほうがもちろんオッズの精度は高いのですが、3日とか4日前とかに、ユーザーに「実際にどの馬がいいよ」みたいなことをレコメンドするということを考えると、早めにオッズがわかったほうがいいので、コンテンツ側としてもとてもメリットがあります。

従来の予想オッズの算出方法が抱えていた課題

それでは、ここからは従来の予想オッズについて触れていきたいと思います。従来の予想オッズですが、算出方法は先ほども少し触れましたが、集合知を使って算出されています。集合知はどこで集めているかというと、netkeibaさんの中で集めている「俺プロ」というサービスの中での一般投票を元にオッズを算出しています。

こちらの問題点としては、精度がどうしても投票数に左右されるという問題があります。

(スライドを示して)1つ前のスライドに戻ります。1つ前のスライドではオッズが出ているのですが、こちらはちょっと見えづらいので口頭で補足します。

グレードの高いレースなので、ユーザーもたくさん投票してくれています。2,000人近くのユーザーが投票してくれているので、オッズが算出できています。

対して出馬表ですが、こちらはグレードの低いレースになっていて、ユーザーが41人しかいません。この状態では、オッズはそもそも算出ができなくて、だんだんユーザーが集まってくるとオッズも算出できるようになってくるのですが、時期や投票数によってオッズの精度が低かったり、またはオッズが出せないという問題がありました。

もう1つ、オッズの意図的な投票操作をされる可能性もありました。(スライドを示して)こちらの問題はここの画像にあるとおりなのですが、ここに出ている「ジャパンカップ」というGIのレースがあります。ジャパンカップというGIのレースは国内の中でもかなり大きなレースで、基本的にはユーザーの投票が集まってオッズの精度が高くなると思われがちです。

ですが、ユーザーが勝つ馬とは別の意味合いでオッズを集めてきて、「ヨシオ」という馬が1.4倍というかたちで出てしまったことがありました。

実際のオッズはここにあるとおり320倍ぐらいついているので、かなり下位の馬人気になっています。実際に投票操作みたいなことを、勝つ馬という意味合いではなく別の意味合いでされてしまうと、オッズが崩れてしまうという、オッズのズレが起きてしまう問題がありました。

こういった問題を解決しようというところでAIオッズの検証が始まっています。AIを使うと、みなさん知っているとおり投票数による精度のばらつきというのはなくなるし、人為的な影響も受けなくなります。

(次回につづく)