
2025.02.18
「売上をスケールする」AIの使い道とは アルペンが挑む、kintone×生成AIの接客データ活用法
リンクをコピー
記事をブックマーク
渡辺莉央氏:ここまでが予想オッズの内容になりました。次に、AIを使った予測オッズについて紹介します。AIを使った予測オッズですが、ベースモデルとして代表的な、最初に作ったモデルを紹介します。
まずAIに学習させる値ですね。こちらはオッズではなくて支持率を使っています。この内容については次で触れます。
概要ですが、もともとデータの前処理、モデル、後処理みたいなところの内容がありますが、前処理については少し割愛させてください。
モデルについてですが、LightGBMを使った回帰予測をしています。LightGBMは勾配ブースティングモデルなので、基本的な構造化データに対しての予測になります。出した支持率の数値をレースごとに集め直して比率に直した後、オッズに変換しています。
ラベルに支持率を採用している理由を紹介します。オッズはもともと値が小さいほど、より上位の人気馬となります。ですが、このままオッズを回帰予測してしまうと、オッズが1倍に近づくとともに、予測値が負値に近づいてしまいます。
そうなってしまうと、実際に負値が出力され、後処理ではなんとかしづらいところもあるし、そもそも正しくないオッズの値がたくさん生まれてしまうという問題がありました。
そのために支持率を採用していて、支持率を使うことによって、より上位人気の馬に対して値が大きい状態が生まれます。そうすると、オッズがより1倍に近づくとともに予測値が負値から遠ざかり、マイナスになることはなくなっていきます。後処理での比率計算などもしやすくなり、最初はこちらの状態を採用していました。
(スライドを示して)先ほど概要で話した内容を図に起こしたものが、こういったかたちとなります。データの前処理を行って特徴量を作り、その特徴量を機械学習モデルで回帰予測します。予測した一つひとつの支持率をレースごとに集めて、比率で再計算します。それをオッズ変換して、最終の予測オッズを出しています。
学習と予測フローも、数値の例も含めて紹介します。
前処理のデータを使って、LightGBMを使った回帰予測を行います。予測した支持率と正解の支持率を使って、学習ではLossを使った最適化計算を行っています。
(スライドを示して)取得した値は、比率計算の括弧の中に入っている値がそれぞれレースごとに集められて、括弧に入っている値は足したら1にならないような状態なので、最終的に足したら1になるように比率で再計算しています。その後、オッズの変換を行っています。
以上がベースモデルの話になります。
ベースモデルの問題点として、まず単体予測であり、レースでの力関係が考慮されていないという問題がありました。
みなさんが投票を使って「どの馬が勝つか」を予測する時、基本的には、どの馬がどのレースに走っているのかを意識した上で、どの馬が勝つかを予測するかと思います。
もともとの実オッズも集合知の塊になるので、レースでの力関係を考慮したいという課題点がありました。
あともう1つの点ですが、後処理で出力調整を行っているために、予測値とラベル値が一致しないという問題もありました。
先ほど、予測値と実際の出力のズレの話をしましたが、比率計算を見てもらうとわかるとおり、0.40を後処理で0.33に変えています。
こちらのほうが精度が高いということを実際に検証した上で、こちらの対応をしています。
ですが、このまま入れてしまうとLossにこの計算が入らないため、例えば極端な話でいうと、Lossが0の状態でも比率計算をしたことによって、実際のLossは0で正解とまったく同じ値になっているのに、比率計算によって値がゆがめられて、実際はズレているみたいな問題が起きてしまうので、こういった数値の計算も中に入れたいという問題がありました。
最後の部分になりますが、下位順位になるほど予測値が負値になるという問題もありました。学習する支持率のラベルが、どんどん小さくなるにつれて予測オッズも高くなるので、支持率の値がどんどん低くなって、負値が入るという問題があります。
先ほど上位人気のオッズに対して値が大きくなるようなかたちの操作を入れましたが、そうすると逆転現象で下位人気の馬に対して負値が出てしまうような問題が起きて、これもできれば出力を制限することによって解決したい問題でした。
これらの問題を解決するために、以下のような対応を行っています。内容は、このままなので、時間の関係上、「こういったことをしました」というところだけ触れています。
この対応をするために何をしたかというと、QuerySoftmaxという、CatBoostの中にある損失関数を使った支持率予測を行っています。
このQuerySoftmaxがどういったところで使われるかというと、CatBoostで提供されているランク学習アルゴリズムの1つで、グループ内のTop1を予測する際に使用されます。
(スライドを示して)この文章の左側でいうと、例えば文章のTop1を予測する場合に、ラベルとして「1」「0」「0」が振られているとします白い文章を1番として予測したいので、機械学習モデルに食わせて「0.6」「0.3」「0.1」というスコアを得ました。一番高いスコアを採用して、白いものが1番、Top1ですという予測をするようなかたちです。
この損失計算は別に「1」「0」「0」ではなくて、支持率のように「足して1」になるような数値に対しても使えます。
例にある「0.5」「0.27」「0.23」という数値が一致した時にLossが一番低くなるというかたちで、同じような回帰の予測でも使えるので、レースの支持率を予測する場合に、QuerySoftmaxを使った予測を今回は採用しました。
ここも話すと長くなってしまうので簡単に説明すると、今回のQuerySoftmaxを使って、支持率が低い馬というものの誤差改善を優先してしまいます。
(スライドを示して)このグラフを見てもらうとわかるのですが、実際に支持率が0.5、0.6とだんだん数値が大きくなるにつれ、Lossの減少率が下がっているのがわかります。なので、このグラフで見てしまうと、支持率が高い馬を優先するようにしたいのに、支持率が低い馬の誤差改善を優先してしまっています。
そのための改善として、Rank Weight対応を行っています。その対応は、順位予測モデルを追加することで行っています。
(スライドを示して)今話した内容をモデルに起こした概要がこちらになります。AIに学習させる値は同じく支持率になります。
概要についても、大きくは変わらないのですが、モデルの部分と後処理の部分が変わっています。もう少し詳しく言うと、前処理のデータの部分も変わっているのですが、今回は割愛します。
モデルの部分でいうと、CatBoostを用いた順位予測を行った後に、QuerySoftmaxを使った支持率予測を行うことで、2つのモデルを使って支持率を出して、その後、後処理でオッズを出力しています。オッズの出力は、先ほど言った払戻率の計算と支持率を使った計算のみで、比率変換は不要になりました。
(スライドを示して)今話した内容の構成図がこちらになります。前処理したデータを使って、まず順位予測モデルを作り、それで予測を行います。その予測で作られたWeightを使ってオッズ予測を行い、その予測した支持率を使ってオッズに変換して、最終的な予測オッズを出力しています。
今話した内容が、現行モデルを使った「学習/予測フロー」というところで表現されています。これも話すと同じ繰り返しになってしまうので、後で資料などを見てもらえればと思うのですが、同じようなかたちで順位のWeightを使って、オッズの変換を行っています。
最後に、モデルの評価についても触れていきたいと思います。RMSE(Root Mean Squared Error)という数値は、オッズのズレに対する数値の誤差を評価しています。一番左側のものが「俺プロオッズ」で、もともと従来の予想オッズとなっているものです。
今回我々が作った現行モデルが一番右側のもので、数値も一番改善されている。一番低い状態が一番誤差がない状態なので、精度として一番いいものができている状態になります。
次に重賞レースについてですね。重賞レースについても、グレードの高いレースに対しては「俺プロオッズ」は投票が多いので精度が高いのですが、それに対しても優れた精度を出すことができました。
もう1つは新馬戦ですね。新馬戦になると過去のデータが使えない状態になります。実際にどれぐらいのデータが使えるかというと、特徴量も半分以下に使えるデータが落ちてきてしまうのですが、モデルの改善とまた別で特徴量の改善とかも行っていて、それによって新馬戦においてもある程度の精度を出すことができました。
これまでがオッズの誤差の話でしたが、(それ以外に)順位の部分も精度比較を行っています。(スライドを示して)こちらは実際の予想オッズですね。従来の一般的な集合知を使ったオッズ算出のものと、現行のAIモデルを使って順位の正解率を比較しています。
一番左側が全レースに対する正解率の比較で、オレンジ色がAIを使ったもので、青いものが従来のものとなります。真ん中が新馬戦で、一番右のものが重賞レースになります。どれにおいても、基本的にはAIの精度が高いので、採用に至ったかたちになります。
最後にまとめですね。実際に予測オッズの改善ということで、いろいろな取り組みを行ってきた中で、集合知による予想オッズからAIによる予測オッズにすることで、投票数や人為的な操作を受けないようなかたちにすることができました。
予測オッズの手法ですが、支持率を予測して、後処理でオッズに変換することで、オッズを予測しています。その後、改善した現行モデルでは、ランク学習を用いることで出走馬の力関係を考慮した支持率予測に対応しました。
その後、QuerySoftmaxの話もしましたが、損失関数を用いることで比率計算をモデルの中に含めることができ、外での後処理が要らなくなったため、精度の改善をすることができました。
最後に比較検証を行い、数値精度および順位精度において従来モデルより高精度だということが確認できました。
本日は以上となります。ありがとうございました。
2025.02.13
“最近の新人は報連相をしない”という、管理職の他責思考 部下に対する「NG指示」から見る、認識のズレを防ぐコツ
2025.02.13
AIを使いこなせない人が直面する本当の課題 元マッキンゼー・赤羽雄二氏が“英語の情報”を追い続ける理由
2025.02.06
すかいらーく創業者が、社長を辞めて75歳で再起業したわけ “あえて長居させるコーヒー店”の経営に込めるこだわり
2025.02.12
マネージャーは「プレイング3割」が適切 チームの業績を上げるためのマネジメントと業務の比率
2025.02.14
報連相ができない部下に対するコミュニケーションの取り方 「部下が悪い」で終わらせない、管理職のスキル向上のポイント
2025.02.13
上司からは丸投げ、部下からはハラスメント扱い、業務は増加…プレイングマネジャーを苦しめる「6つの圧力」とは
2025.02.12
何度言っても変わらない人への指示のポイント 相手が主体的に動き出す“お願い”の仕方
2025.02.13
「みんなで決めたから」を言い訳にして仲良しクラブで終わる組織 インパクトも多様性も両立させるソース原理
2025.02.10
32歳で「すかいらーく」を創業、75歳で「高倉町珈琲」で再起業 「失敗したからすかいらーくができた」横川竟氏流の経営哲学
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
着想から2か月でローンチ!爆速で新規事業を立ち上げる方法
2025.01.21 - 2025.01.21
新人の報連相スキルはマネージメントで引きあげろ!~管理職の「他責思考」を排除~
2025.01.29 - 2025.01.29
【手放すTALK LIVE#45】人と組織のポテンシャルが継承されるソース原理 ~人と組織のポテンシャルが花開く「ソース原理」とは~
2024.12.09 - 2024.12.09
『これで採用はうまくいく』著者が語る、今こそ採用担当に届けたい「口説く」力のすべて
2024.11.29 - 2024.11.29
第20回エクゼクティブメンターイベント「今、「ひと」と組織が共創する〜働き方の未来へ」
2024.12.07 - 2024.12.07