ポーカーAI開発 part3 〜AIがポーカーを実況・解説する第一歩〜
こんにちは!ナガメ研究所です。人を楽しませるポーカーAIの開発をしています。
今回は、ポーカーAIがポーカーのプレイを実況・解説してもらうにはどうしたらいいかについて、関連情報を軽く紹介しつつ、筆者の考えていることについて書いていきます。
AIが実況・解説するとは?
AI(コンピュータ)が実況・解説するとはどういうことなのでしょうか。機械音声などを使えば、文章があれば一応読み上げることは可能です。抑揚や声量、間などの要素もありますが、まずは文章を生成することを考えてみます。
日本語や英語や中国語、ドイツ語などを専門用語で「自然言語」と表現します。自然言語はそのままではコンピュータは理解できません。なのでうまく数値に置き換えてコンピュータが処理します。処理された数値を再度自然言語に戻すことで目的の文章を得るができ、これを自然言語処理と言います。
コンピュータが自然言語処理を行って文章を生成する試みは古くから行われており、非常に多くの研究があります。主に以下の画像のような方式があります。
テンプレート方式
穴の空いたテンプレートを用意し、条件に応じて必要な情報で穴埋めする方式です。メリットは文章の制御が非常に簡単で、テンプレートの選択確率を調整したりすることで出したい情報をコントロールすることが可能です。デメリットとしては、テンプレートのバリエーションが少ないと同じ文章が続いてしまうことです。また、過去の情報を使ったり感情を表現する場合に辻褄を合わせるにはより複雑な条件を追加する必要があり、テンプレートが増えるほどデバッグも困難になっていきます。
モデル方式
入力情報に適した文章をモデルによって生成するパターンです。確率によって単語が選択され、うまく調整されたモデルならばかなり人間らしい文章を生成可能です。筆者のツイッターにてその様子を上げているので、ぜひ御覧ください。(追記:記事も投稿しました!)この方式のメリットは、優秀なモデルが既に公開されているため、人間らしい文章を素人でも簡単に生成できる点です。デメリットは、汎用的であるがゆえに、ポーカーという専門的な内容に踏み込んだ文章はそのままでは得られません。これを解決するには、ファインチューニングという手法が有効ですが、それはまた別の記事で書こうと思います。今のところ、モデル方式は開発コストが高いので一旦置いておきます。スゴクオモシロソウダケド・・・
AIによる文章生成の事例
次に、このような文章生成を行っているサービス事例を紹介します。他にもたくさんあると思うので、ぜひオススメのAIがいたらツイッターやコメントで教えてください!
ゴー・ラウンド・ゲーム(ごらんげ)
YouTubeにて、AI同士の麻雀ゲームを配信しているチャンネルです。実は筆者もAIとVtuberを組み合わせたらって面白いんじゃない?!って思ってましたが、先を越されました(行動しろ)。クオリティも素晴らしいので、ぜひ一度御覧ください。ライブ配信でコメントすると返事がくることも・・・?
しゅうまい君
Twitterで文章生成している、いわゆるbotです。詳しい説明は以下の記事をご覧下さい。言葉を理解しているわけではありませんが、稀に組み合わせた単語同士の文章がシュールであったり、真実をついていたりすることでバズっています。
ポーカーAIにポーカーを実況・解説させたい
本題ですが、ポーカーAIがポーカーにおいて文章を出力する場面には、以下の2パターンが想定されます。
1. AIと人(もしくはAI)が対戦し、観客に向けて自身のプレイ解説を行う
2. スポーツ実況解説のアナウンサーのような役割を担う
どちらもある場面において適当な文章生成を行う点で、大きな違いはありません。異なるのは、入力に使える情報(参加者の手札など)と、モデル方式の場合は学習させるためのデータが必要な点です。
まずは1のAIと人が対戦する場面を想定して、AIのプレイをテンプレート方式で実況することにします。
テンプレート方式でポーカーAI「ナガメ」に実況させてみた
早速、テンプレートを20パターンほど用意し、各テンプレートとゲーム状況に基づく条件を実装しました。対戦相手は筆者(SB)です。よろしくお願いします。
対戦した感想
テンプレート方式は仕組みを知ってしまえば、大したことない、こんなのAIじゃないよ!と思われるかもしれませんが、実装した本人は大満足です笑
自分の子どものような愛情が湧いてきてしまいました。
しかしながら、決まったテンプレートの中から文章を作っているので、先程ご紹介したしゅうまい君のような意外性はありませんし、そこから生まれる感動や笑い、シュールさのようなハプニングは一切起こりません。ここがテンプレート方式では手が届かない領域になります。
そこでモデル方式が検討されるわけですが、データや学習の構想は実はもう練ってありまして、後はデータが揃えば・・・といったところです。どこかにポーカーのハンドヒストリーとコメントのデータ落ちてないですかね?笑
さいごに
今回は文章生成の方法にしかフォーカスしていませんが、並行して「ポーカーを実況・解説すること」の意味も見極める必要があります。実況・解説は、「プレイヤーのプレイがどう凄いのか伝える」、「ゲームの臨場感を持たせる」、「聞き手のレベルに応じて必要な情報を提供する」といった役割があります。聞き手が困っている・困るであろう状態を想定し、それを解決することが可能です。そのためにも、より具体的なケースをデータとして用意し、どのような解説が良いかを評価する仕組みが必要になってくるはずです。今はまだ文章を作ることで精一杯ですが、評価の方法についても検討していきたいです。では。