IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社Cygamesの特許一覧

特開2022-164964ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法等
<>
  • 特開-ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法等 図1
  • 特開-ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法等 図2
  • 特開-ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法等 図3
  • 特開-ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法等 図4
  • 特開-ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法等 図5
  • 特開-ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法等 図6
  • 特開-ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法等 図7
  • 特開-ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法等 図8
  • 特開-ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法等 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022164964
(43)【公開日】2022-10-31
(54)【発明の名称】ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法等
(51)【国際特許分類】
   A63F 13/67 20140101AFI20221024BHJP
   G06N 20/00 20190101ALI20221024BHJP
【FI】
A63F13/67
G06N20/00
【審査請求】有
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021070092
(22)【出願日】2021-04-19
(11)【特許番号】
(45)【特許公報発行日】2022-02-16
(71)【出願人】
【識別番号】511249637
【氏名又は名称】株式会社Cygames
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100196612
【弁理士】
【氏名又は名称】鎌田 慎也
(72)【発明者】
【氏名】倉林 修一
(57)【要約】
【課題】ユーザが選択するアクションを予測するための学習済みモデルを生成することが可能な方法を提供する。
【解決手段】本発明の一実施形態の方法は、ユーザにより選択されたアクションに応じて進行し、ゲーム状態が更新されるゲームにおいて、ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法であって、履歴データ要素群の各々に対する重みを決定し、履歴データ要素群が含むゲーム状態及びアクションのデータから学習データを生成し、生成された学習データに基づいて学習済みモデルを生成することを含み、学習データを生成することは、一のゲーム状態に対応するゲーム状態テキストとして、複数の要素テキストの並び順の異なるテキストであって決定された重みに基づく数のゲーム状態テキストを生成し、該生成されたゲーム状態テキストの各々と対応するアクションテキストとの対を含む学習データを生成することを含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
ユーザにより選択されたアクションに応じて進行し、ゲーム状態が更新されるゲームにおいて、ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法であって、
ゲームに関する履歴データが含む履歴データ要素群の各々に関連付けられたユーザ情報に基づいて該履歴データ要素群の各々に対する重みを決定するステップと、
前記履歴データに含まれる履歴データ要素群が含むゲーム状態及びアクションのデータから、所定の形式で表されたテキストデータであるゲーム状態テキスト及びアクションテキストを生成し、一のゲーム状態及び該一のゲーム状態において選択されたアクションの対に対応するゲーム状態テキスト及びアクションテキストの対を含む学習データを生成するステップと、
前記生成された学習データに基づいて学習済みモデルを生成するステップと、
を含み、
前記学習データを生成するステップは、
一のゲーム状態に対応するゲーム状態テキストとして、該ゲーム状態テキストに含まれる複数の要素テキストの並び順の異なるゲーム状態テキストを含む、該一のゲーム状態のデータを含む履歴データ要素群に対して決定された重みに基づく数のゲーム状態テキストを生成し、該生成されたゲーム状態テキストの各々と該一のゲーム状態において選択されたアクションに対応するアクションテキストとの対を含む学習データを生成することを含む、
方法。
【請求項2】
前記学習済みモデルを生成するステップは、前記生成された学習データを用いて、順編成されたデータを学習することを目的とした深層学習モデルに学習させることにより、学習済みモデルを生成する、請求項1に記載の方法。
【請求項3】
前記重みを決定するステップは、前記ユーザ情報に含まれるユーザランクの高さに応じた大きさとなるように重みを決定する、請求項1又は2に記載の方法。
【請求項4】
前記学習済みモデルを生成するステップは、自然言語に関する文法構造及び文章間の関係が予め学習された自然言語事前学習済みモデルに、前記生成された学習データを学習させることにより学習済みモデルを生成することを含む、請求項1から3のいずれか1項に記載の方法。
【請求項5】
前記学習データを生成するステップは、前記履歴データに含まれる履歴データ要素群が含むゲーム状態及びアクションのデータに基づいて生成された、一のゲーム状態及び該一のゲーム状態において選択されたアクションの対に対応するゲーム状態テキスト及びアクションテキストの第1の対と、該一のゲーム状態テキスト及び該一のゲーム状態においてユーザが選択可能なアクションからランダムに選択されたアクションであって該第1の対に含まれないアクションに対応するアクションテキストの第2の対とを含む学習データを生成することを含み、
前記学習済みモデルを生成するステップは、前記第1の対を正解のデータとして学習させ、かつ前記第2の対を不正解のデータとして学習させて学習済みモデルを生成することを含む、請求項1から4のいずれか1項に記載の方法。
【請求項6】
請求項1から5のいずれか1項に記載の方法の各ステップをコンピュータに実行させるプログラム。
【請求項7】
ユーザにより選択されたアクションに応じて進行し、ゲーム状態が更新されるゲームにおいて、ユーザが選択するアクションを予測するための学習済みモデルを生成するためのシステムであって、該システムは、
ゲームに関する履歴データが含む履歴データ要素群の各々に関連付けられたユーザ情報に基づいて該履歴データ要素群の各々に対する重みを決定し、
前記履歴データに含まれる履歴データ要素群が含むゲーム状態及びアクションのデータから、所定の形式で表されたテキストデータであるゲーム状態テキスト及びアクションテキストを生成し、一のゲーム状態及び該一のゲーム状態において選択されたアクションの対に対応するゲーム状態テキスト及びアクションテキストの対を含む学習データを生成し、
前記生成された学習データに基づいて学習済みモデルを生成するものであり、
前記学習データを生成することは、
一のゲーム状態に対応するゲーム状態テキストとして、該ゲーム状態テキストに含まれる複数の要素テキストの並び順の異なるゲーム状態テキストを含む、該一のゲーム状態のデータを含む履歴データ要素群に対して決定された重みに基づく数のゲーム状態テキストを生成し、該生成されたゲーム状態テキストの各々と該一のゲーム状態において選択されたアクションに対応するアクションテキストとの対を含む学習データを生成することを含む、
システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法やユーザの選択が予測されるアクションを決定するための方法等に関する。
【背景技術】
【0002】
近年、ネットワークを通じて複数のプレイヤが参加可能なオンラインゲームを楽しむプレイヤが増えている。当該ゲームは、携帯端末装置がゲーム運営者のサーバ装置と通信を行うゲームシステムなどにより実現され、携帯端末装置を操作するプレイヤは、他のプレイヤと対戦プレイを行うことができる。
【0003】
オンラインゲームは、ユーザにより選択されたアクションに応じて進行し、ゲーム状態を表すゲーム状態情報が更新されるようなゲームを含む。例えばこのようなゲームとしては、カードやキャラクタなどのゲーム媒体の組み合わせに応じて様々なアクションが実行されるデジタルコレクタブルカードゲーム(DCCG)と呼ばれるカードゲームがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第6438612号
【非特許文献】
【0005】
【非特許文献1】Jacob Devlin and Ming-Wei Chang and Kenton Lee and Kristina Toutanova, “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding,” arXiv:1810.04805, 2018
【非特許文献2】Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (NIPS’17). Curran Associates Inc., Red Hook, NY, USA, 6000-6010
【発明の概要】
【発明が解決しようとする課題】
【0006】
オンラインゲームにおいては、ゲームの履歴データ(リプレイログ)を機械学習のためのデータとして活用し、任意のゲーム状態において人間が選択(実行)するアクションを予測してより人間に近い振る舞いを再現するAIを実現することが望まれている。例えば特許文献1はユーザにより実行される可能性がより高いアクションを推論する技術を開示する。一方、トランスフォーマーと呼ばれる文脈を認識可能なニューラルネットワーク技術(トランスフォーマー・ニューラルネットワーク技術)(非特許文献1、2)は、ターン制バトルゲームのように因果関係や順序関係を学習する場合に有効であるが、ゲームの履歴データを学習させるために使用するのは難しかった。
【0007】
本発明は、このような課題を解決するためになされたものであり、自然言語処理が可能なニューラルネットワーク技術を用いて、任意のゲーム状態において、ユーザが選択するアクションを予測するための学習済みモデルを生成することが可能な方法等を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一実施形態の方法は、
ユーザにより選択されたアクションに応じて進行し、ゲーム状態が更新されるゲームにおいて、ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法であって、
ゲームに関する履歴データが含む履歴データ要素群の各々に関連付けられたユーザ情報に基づいて該履歴データ要素群の各々に対する重みを決定するステップと、
前記履歴データに含まれる履歴データ要素群が含むゲーム状態及びアクションのデータから、所定の形式で表されたテキストデータであるゲーム状態テキスト及びアクションテキストを生成し、一のゲーム状態及び該一のゲーム状態において選択されたアクションの対に対応するゲーム状態テキスト及びアクションテキストの対を含む学習データを生成するステップと、
前記生成された学習データに基づいて学習済みモデルを生成するステップと、
を含み、
前記学習データを生成するステップは、
一のゲーム状態に対応するゲーム状態テキストとして、該ゲーム状態テキストに含まれる複数の要素テキストの並び順の異なるゲーム状態テキストを含む、該一のゲーム状態のデータを含む履歴データ要素群に対して決定された重みに基づく数のゲーム状態テキストを生成し、該生成されたゲーム状態テキストの各々と該一のゲーム状態において選択されたアクションに対応するアクションテキストとの対を含む学習データを生成することを含む。
【0009】
また、本発明の一実施形態では、
前記学習済みモデルを生成するステップは、前記生成された学習データを用いて、順編成されたデータを学習することを目的とした深層学習モデルに学習させることにより、学習済みモデルを生成する。
【0010】
また、本発明の一実施形態では、
前記重みを決定するステップは、前記ユーザ情報に含まれるユーザランクの高さに応じた大きさとなるように重みを決定する。
【0011】
また、本発明の一実施形態では、
前記学習済みモデルを生成するステップは、自然言語に関する文法構造及び文章間の関係が予め学習された自然言語事前学習済みモデルに、前記生成された学習データを学習させることにより学習済みモデルを生成することを含む。
【0012】
また、本発明の一実施形態では、
前記学習データを生成するステップは、前記履歴データに含まれる履歴データ要素群が含むゲーム状態及びアクションのデータに基づいて生成された、一のゲーム状態及び該一のゲーム状態において選択されたアクションの対に対応するゲーム状態テキスト及びアクションテキストの第1の対と、該一のゲーム状態テキスト及び該一のゲーム状態においてユーザが選択可能なアクションからランダムに選択されたアクションであって該第1の対に含まれないアクションに対応するアクションテキストの第2の対とを含む学習データを生成することを含み、
前記学習済みモデルを生成するステップは、前記第1の対を正解のデータとして学習させ、かつ前記第2の対を不正解のデータとして学習させて学習済みモデルを生成することを含む。
【0013】
本発明の一実施形態のプログラムは、上記の方法の各ステップをコンピュータに実行させる。
【0014】
また、本発明の一実施形態のシステムは、
ユーザにより選択されたアクションに応じて進行し、ゲーム状態が更新されるゲームにおいて、ユーザが選択するアクションを予測するための学習済みモデルを生成するためのシステムであって、該システムは、
ゲームに関する履歴データが含む履歴データ要素群の各々に関連付けられたユーザ情報に基づいて該履歴データ要素群の各々に対する重みを決定し、
前記履歴データに含まれる履歴データ要素群が含むゲーム状態及びアクションのデータから、所定の形式で表されたテキストデータであるゲーム状態テキスト及びアクションテキストを生成し、一のゲーム状態及び該一のゲーム状態において選択されたアクションの対に対応するゲーム状態テキスト及びアクションテキストの対を含む学習データを生成し、
前記生成された学習データに基づいて学習済みモデルを生成するものであり、
前記学習データを生成することは、
一のゲーム状態に対応するゲーム状態テキストとして、該ゲーム状態テキストに含まれる複数の要素テキストの並び順の異なるゲーム状態テキストを含む、該一のゲーム状態のデータを含む履歴データ要素群に対して決定された重みに基づく数のゲーム状態テキストを生成し、該生成されたゲーム状態テキストの各々と該一のゲーム状態において選択されたアクションに対応するアクションテキストとの対を含む学習データを生成することを含む。
【発明の効果】
【0015】
本発明によれば、自然言語処理が可能なニューラルネットワーク技術を用いて、任意のゲーム状態において、ユーザが選択するアクションを予測するための学習済みモデルを生成することができる。
【図面の簡単な説明】
【0016】
図1】本発明の一実施形態の学習装置のハードウェア構成を示すブロック図である。
図2】本発明の一実施形態の学習装置の機能ブロック図である。
図3】ユーザの端末装置のディスプレイに表示される本実施形態のゲームのゲーム画面の一例である。
図4】ゲーム状態の1つの例示である。
図5】学習装置がリプレイログからゲーム状態説明文とアクション説明文の対を生成する概要を示す図である。
図6】本発明の一実施形態の学習装置の学習済みモデルの生成処理を示すフローチャートである。
図7】本発明の一実施形態の決定装置のハードウェア構成を示すブロック図である。
図8】本発明の一実施形態の決定装置の機能ブロック図である。
図9】本発明の一実施形態の決定装置のユーザの選択が予測されるアクションの決定処理を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、図面を参照して、本発明の実施形態について説明する。本発明の一実施形態の学習装置10は、ユーザ(プレイヤ)により選択されたアクションに応じて進行し、ゲーム状態が更新されるゲームにおいて、ユーザが選択するアクションを予測するための学習済みモデルを生成するための装置である。本発明の一実施形態の決定装置50は、ユーザにより選択されたアクションに応じて進行し、ゲーム状態が更新されるゲームにおいて、ユーザの選択が予測されるアクションを決定するための装置である。例えば、学習装置10や決定装置50が対象とする上記のゲームは、あるゲーム状態においてユーザがアクションを選択すると、選択されたアクション(攻撃やイベントなど)が実行され、ゲーム状態が更新されるようなゲームであり、例えば対戦型カードゲームである。
【0018】
学習装置10は、1又は複数の装置を含んで構成される学習済みモデルを生成するためのシステムの1つの例であるが、以下の実施形態においては、説明の便宜上、1つの装置として説明する。学習済みモデルを生成するためのシステムは、学習装置10を意味することもできる。決定装置50についても同様である。なお、本実施形態では、ゲーム状態又はアクションを決定することは、ゲーム状態のデータ又はアクションのデータを決定することを意味することができる。
【0019】
本実施形態において説明する対戦型カードゲーム(本実施形態のゲーム)は、一般的なオンラインゲームと同様に、1又は複数のサーバ装置を含んで構成されるゲームサーバにより提供される。ゲームサーバは、ゲーム用のアプリケーションであるゲームプログラムを記憶し、ゲームをプレイする各ユーザの端末装置とネットワークを介して接続される。各ユーザが端末装置にインストールされたゲームアプリを実行している間、端末装置はゲームサーバと通信を行い、ゲームサーバは、ネットワークを介したゲームサービスを提供する。このとき、ゲームサーバは、ゲームに関する履歴データ(例えばリプレイログなどのログデータ)を記憶する。当該履歴データは、複数の履歴データ要素群(例えばリプレイログ要素群)を含み、1つの履歴データ要素群は、複数の履歴データ要素(例えばログ要素)を含む。例えば1つの履歴データ要素群は、1つのバトルの履歴を示すものであり、当該バトルに関する複数の履歴データ要素を含むものである。ただし、履歴データ要素群の各々は、1つのバトル以外の所定のイベント又は所定の時間に関連する複数の履歴データ要素を含むものとすることもできる。また、例えば1つのログ要素は、1つのゲーム状態においてユーザが実行したアクションを示すデータや当該1つのゲーム状態を示すデータである。ただし、ゲームサーバは、リプレイログ(ログデータ)を取得可能であれば、上記の構成に限定されない。
【0020】
本実施形態のゲームは、複数のカードを含んで構成される所有カード群からユーザがカードを選択して当該カードをゲームフィールド43に出すことで、カードやクラスの組み合わせに応じて様々なイベントが実行されて進行する。また本実施形態のゲームは、ユーザ端末装置を操作するユーザ自身である自ユーザと他のユーザ端末装置を操作する他ユーザの各々が所有カード群からカードを選択してゲームフィールド43に出して対戦する対戦ゲームである。本実施形態のゲームにおいて、各カード41は、カードID、カード種別、ヒットポイント、攻撃力、属性などのパラメータを含むカード定義情報を有し、各クラスは、クラス定義情報を有する。
【0021】
図3は、ユーザの端末装置のディスプレイに表示される本実施形態のゲームのゲーム画面の一例である。ゲーム画面は、自ユーザと他ユーザのカードバトルのゲーム画面40を示すものである。ゲーム画面40は、自ユーザの手札である第1のカード群42aと、他ユーザの手札である第1のカード群42bとを示している。第1のカード群42a及び第1のカード群42bは、キャラクタ、アイテム又はスペルに関連付けられたカード41を含む。ゲームは、自ユーザが他ユーザの第1のカード群42bのカード41を確認できないように構成される。ゲーム画面40は、自ユーザの山札である第2のカード群44a及び他ユーザの手札である第2のカード群44bも示している。なお、自ユーザ又は他ユーザは、実際のプレイヤではなく、ゲームAIなどのコンピュータにより操作されてもよい。
【0022】
各ユーザが所有する所有カード群は、ユーザの手札である第1のカード群42(42a又は42b)及びユーザの山札である第2のカード群44(44a又は44b)から構成され、一般的にカードデッキと呼ばれるものである。ユーザが所有する各カード41が第1のカード群42に含まれるか第2のカード群44に含まれるかは、ゲームの進行に応じて決定される。第1のカード群42は、ユーザが選択可能であり、ゲームフィールド43に出すことが可能なカード群であり、第2のカード群44は、ユーザが選択不可能なカード群である。所有カード群は、複数のカード41から構成されるものであるが、ゲームの進行上、所有カード群は1枚のカード41から構成される場合もある。なお、各ユーザのカードデッキは、すべて異なる種類のカード41により構成されてもよいし、同じ種類のカード41を一部含んで構成されてもよい。また、自ユーザのカードデッキを構成するカード41の種類は、他ユーザのカードデッキを構成するカード41の種類と異なってもよい。また、各ユーザが所有する所有カード群は、第1のカード群42のみから構成されてもよい。
【0023】
ゲーム画面40は、自ユーザの選択したキャラクタ45aと、他ユーザの選択したキャラクタ45bとを示す。ユーザが選択するキャラクタは、カードと関連付けられるキャラクタとは異なるものであり、所有カード群のタイプを示すクラスを定める。本実施形態のゲームは、クラスに応じて、ユーザが所有するカード41が異なるように構成される。1つの例では、本実施形態のゲームは、各ユーザのカードデッキを構成することができるカードの種類が、クラスに応じて異なるように構成される。ただし、本実施形態のゲームは、クラスを含まないこともできる。この場合、本実施形態のゲームは、上記のようなクラスによる限定を行わず、ゲーム画面40は、自ユーザの選択したキャラクタ45aと、他ユーザの選択したキャラクタ45bとを表示しないものとすることもできる。
【0024】
本実施形態のゲームは、1つの対戦(カードバトル)が複数のターンを含む対戦ゲームである。1つの例では、各ターンにおいて、自ユーザ又は他ユーザが、自身のカード41を選択するなどの操作を行うことにより、相手のカード41若しくはキャラクタ45を攻撃することができるように、又は自身のカード41を使用して所定の効果若しくはイベントを発生させることができるように、本実施形態のゲームは構成される。1つの例では、本実施形態のゲームは、例えば自ユーザがカード41を選択して攻撃する場合、攻撃対象として相手のカード41又はキャラクタ45を選択できるように構成される。1つの例では、本実施形態のゲームは、自ユーザがカード41を選択して攻撃する場合、カードによっては、攻撃対象が自動で選択されるように構成される。1つの例では、本実施形態のゲームは、ゲーム画面40上の一のカード又はキャラクタに対するユーザ操作に応答して、他のカード又はキャラクタのヒットポイントや攻撃力などのパラメータを変更するように構成される。1つの例では、本実施形態のゲームは、ゲーム状態が所定条件を満たした場合、当該所定条件に対応するカード41をゲームフィールドから除外又は自ユーザ若しくは他ユーザのカードデッキに移動するように構成される。例えば、リプレイログは、上述するような情報の履歴を網羅的に含むものとすることができる。
【0025】
なお、カード41(カード群)は、キャラクタやアイテムなどの媒体(媒体群)とすることができ、所有カード群は、ユーザが所有する複数の媒体を含んで構成される所有媒体群とすることができる。例えば媒体群がキャラクタとアイテムの媒体により構成される場合、ゲーム画面40は、カード41として、キャラクタ又はアイテムそのものを示すこととなる。
【0026】
図1は本発明の一実施形態の学習装置10のハードウェア構成を示すブロック図である。学習装置10は、プロセッサ11、入力装置12、表示装置13、記憶装置14、及び通信装置15を備える。これらの各構成装置はバス16によって接続される。なお、バス16と各構成装置との間には必要に応じてインタフェースが介在しているものとする。学習装置10は、一般的なサーバやPC等と同様の構成を含む。
【0027】
プロセッサ11は、学習装置10全体の動作を制御する。例えばプロセッサ11は、CPUである。プロセッサ11は、記憶装置14に格納されているプログラムやデータを読み込んで実行することにより、様々な処理を実行する。プロセッサ11は、複数のプロセッサから構成されてもよい。
【0028】
入力装置12は、学習装置10に対するユーザからの入力を受け付けるユーザインタフェースであり、例えば、タッチパネル、タッチパッド、キーボード、マウス、又はボタンである。表示装置13は、プロセッサ11の制御に従って、アプリケーション画面などを学習装置10のユーザに表示するディスプレイである。
【0029】
記憶装置14は、主記憶装置及び補助記憶装置を含む。主記憶装置は、例えばRAMのような半導体メモリである。RAMは、情報の高速な読み書きが可能な揮発性の記憶媒体であり、プロセッサ11が情報を処理する際の記憶領域及び作業領域として用いられる。主記憶装置は、読み出し専用の不揮発性記憶媒体であるROMを含んでいてもよい。補助記憶装置は、様々なプログラムや、各プログラムの実行に際してプロセッサ11が使用するデータを格納する。補助記憶装置は、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。
【0030】
通信装置15は、ネットワークを介してユーザ端末又はサーバなどの他のコンピュータとの間でデータの授受を行うものであり、例えば無線LANモジュールである。通信装置15は、Bluetooth(登録商標)モジュールなどの他の無線通信用のデバイスやモジュールなどとすることもできるし、イーサネット(登録商標)モジュールやUSBインタフェースなどの有線通信用のデバイスやモジュールなどとすることもできる。
【0031】
学習装置10は、ゲームに関する履歴データであるリプレイログを、ゲームサーバから取得できるように構成される。リプレイログは、1つのバトルごとの履歴データであるリプレイログ要素群を複数含んで構成される。リプレイログは、ゲーム状態のデータ及びアクションのデータを含む。例えばリプレイログ要素群の各々は、時間の経過に沿って並べられたゲーム状態及びアクションのデータを含む。この場合、ゲーム状態やアクションのデータの各々がリプレイログ要素である。1つの例では、リプレイログ要素群は、ターンごとかつユーザごとの、各ユーザが選択したカード41又はキャラクタ45と、これに関連する攻撃の情報とを含む。1つの例では、リプレイログ要素群は、ターンごとかつユーザごとの、各ユーザが選択したカード41又はキャラクタ45と、これに関連する発生した所定の効果又はイベントの情報とを含む。リプレイログ要素群は、予め決められた単位ごとの履歴データであってもよい。
【0032】
本実施形態において、ゲーム状態は、少なくとも、ユーザがゲームプレイを通じて、例えばゲーム操作やゲーム画面上の表示を通じて、視認又は認知できる情報を示すものである。ゲーム状態のデータは、ゲームフィールド43に出されているカード41のデータを含む。ゲーム状態のデータの各々は、ゲームの進行に応じたその時々のゲーム状態に対応するデータである。ゲーム状態のデータは、自ユーザの第1のカード群42a(又は所有カード群)のカード41の情報を含むこともできるとともに、他ユーザの第1のカード群42b(又は所有カード群)のカード41の情報を含むこともできる。
【0033】
本実施形態において、アクションは、あるゲーム状態においてユーザ操作により実行され、当該ゲーム状態を変化させうるものである。例えばアクションは、一のカード41若しくはキャラクタ45の他のカード41若しくはキャラクタ45に対する攻撃であり、又は一のカード41若しくはキャラクタ45による所定の効果若しくはイベントの発生などである。例えばアクションは、ユーザがカード41などを選択することにより実行される。アクションのデータの各々は、ゲーム状態の各々においてユーザにより選択されたアクションに対応するデータである。1つの例では、アクションのデータは、一のゲーム状態において、ユーザが攻撃させようとするカード41と攻撃対象のカード41を選択したことを示すデータを含む。1つの例では、アクションのデータは、一のゲーム状態において、ユーザが使用するカード41を選択したことを示すデータを含む。
【0034】
1つの例では、リプレイログは、ゲームフィールド43の状態を示す木構造のテキストデータのゲーム状態のデータと、そのゲーム状態においてユーザが実行したアクションのデータの列により定義される。1つの例では、リプレイログ要素群の各々は、初期のゲーム状態と最初のアクションの対と、アクションの影響を受けた結果としてのゲーム状態と次のアクションの対とを含み、かつ最終的に勝敗が決した最終のゲーム状態で終端した配列であり、式(1)で表すことができる。
ここで、Stateiは、i番目のゲーム状態を示し、Actioniは、i番目に実行されたアクションを示し、Stateeは、勝敗、引き分け、又は無効試合などの最終のゲーム状態を示す。
【0035】
1つの例では、Stateiは、ゲームフィールド43に出されているカード41及びユーザの所有するカード41の集合であり、式(2)で表すことができる。
ここで、
は、ゲームフィールド43に出されているプレイヤ1(先攻)側の0番目のカードからna番目のカードであり、
は、ゲームフィールド43に出されているプレイヤ2(後攻)側の0番目のカードからnb番目のカードであり、
は、プレイヤ1(先攻)の手札に入っている0番目のカードからnc番目のカードであり、
は、プレイヤ2(後攻)の手札に入っている0番目のカードからnd番目のカードである。例えばゲームフィールド43に出されているプレイヤ1のカードが1枚の場合、Stateiは、ゲームフィールド43に出されているプレイヤ1のカードとして、
のデータのみ有し、0枚の場合、Stateiは、ゲームフィールド43に出されているプレイヤ1のカードとして、カードが無いことを示すデータを含む。ゲームフィールド43に出されているプレイヤ2のカードや手札に入っているカードなどについても同様である。なお、Stateiは、ゲームフィールド43に出されているカード41を含み、かつユーザの所有するカード41を含まないものとすることもできる。また、Stateiは、カード41以外の情報を含むこともできる。
【0036】
各々のカードcardiは、式(3)で表すことができる。
ここで、nameとはカードの名称を示すテキストデータであり、explanationとは、カードの能力やスキルを説明したテキストデータである。
【0037】
本実施形態では、ゲームサーバに記憶されているリプレイログ要素群の各々は、対戦するプレイヤ1とプレイヤ2のユーザ情報(プレイヤ情報)に関連付けられている。ユーザ情報は、ゲームサーバに記憶され、ユーザを識別するためのIDと、ユーザランク(プレイヤランク)とを含む。ユーザランクは、ユーザの勝率ランキングであり、勝率の順位を示す。或いは、ユーザランクは、対戦結果に応じて増減するバトルポイントであり、ゲームの強さを示す。ユーザ情報は、ユーザランクの代わりに、又はユーザランクに加えて、勝率、理想的な勝ちパターンに沿うかどうかの度合い、及び与えたダメージ数の合計のうちの少なくとも1つを含むことができる。リプレイログ要素群の各々に関連付けられるユーザ情報は、プレイヤ1とプレイヤ2のうちのユーザランクが高いプレイヤのユーザ情報、当該リプレイログ要素群が示す勝利したプレイヤのユーザ情報、又は対戦した2人のプレイヤのユーザ情報などとすることができる。
【0038】
図2は本発明の一実施形態の学習装置10の機能ブロック図である。学習装置10は、データ重み付け部21、学習データ生成部22、及び学習部23を備える。本実施形態においては、記憶装置14に記憶されている又は通信装置15を介して受信したプログラムがプロセッサ11により実行されることによりこれらの機能が実現される。このように、各種機能がプログラム読み込みにより実現されるため、1つのパート(機能)の一部又は全部を他のパートが有していてもよい。ただし、各機能の一部又は全部を実現するための電子回路等を構成することによりハードウェアによってもこれらの機能は実現してもよい。
【0039】
データ重み付け部21は、リプレイログ要素群の各々に関連付けられたユーザ情報に基づいてリプレイログ要素群の各々に対する重みを決定する。例えばデータ重み付け部21は、一のリプレイログ要素群Aに関連付けられたユーザ情報に基づいて該一のリプレイログ要素群Aに対する重みを決定する。
【0040】
学習データ生成部22は、リプレイログ要素群が含むゲーム状態のデータ及びアクションのデータを、所定の形式で表された制御された自然言語のデータであるゲーム状態説明文及びアクション説明文に変換する。このようにして、ゲーム状態説明文及びアクション説明文は作られる。本実施形態では、学習データ生成部22は、予め作成されたルールベースシステムを用いて、ゲーム状態のデータ及びアクションのデータからゲーム状態説明文及びアクション説明文を生成する。本実施形態では、所定の形式で表された制御された自然言語は、一般的にCNL(Controlled Natural Language)と呼ばれる所定の要件を満たすよう文法及び語彙が制御された自然言語である。例えばCNLは英語で表される。この場合、CNLは例えば関係代名詞を含まない等の制約を持たせてある英語で表される。学習データ生成部22は、生成(変換)したゲーム状態説明文及びアクション説明文の対を含む学習データ(教師データ)を生成する。所定の形式で表された制御された自然言語(CNL)のデータは、例えば分散表現への機械的な変換に適した文法、構文、及び語彙を用いて表されたテキストデータなどの所定の形式で表されたテキストデータの一例である。1つの例では、学習データ生成部22は、学習対象のリプレイログ(例えば学習装置10が取得したリプレイログ)に含まれるリプレイログ要素群ごとに、各リプレイログ要素群が含む1又は複数のゲーム状態のデータ及びアクションの対のデータから1又は複数のゲーム状態説明文及びアクション説明文の対に対応するデータを生成し、生成したデータを含む学習データを生成する。なお本実施形態において、学習データ等のデータを生成することは、当該データを作ること全般を意味することができる。
【0041】
図4は、ゲーム状態の1つの例示である。説明を簡単にするため、図4が示すゲーム状態は、プレイヤ1側のゲームフィールド43に2枚のカードのみ出されている状態である。図4に示すゲーム状態において、ゲームフィールド43に出されている2枚のプレイヤ1のカード41は、Twinblade MageのカードとMechabook Sorcererのカードである。1つの例では、リプレイログ要素群が含むゲーム状態のデータは、以下のテキストデータである。
この場合、学習データ生成部22は、上記のゲーム状態のデータを、下記のゲーム状態説明文(CNL)に変換する。
学習データ生成部22は、下線部の言葉やカンマなどを補足し、カード1枚ごとに1つの文を生成する。各々の文は、例えば"on the player1 side"のような当該カードが置かれている場所を示す言葉、"with"や"evolved"のような属性を示す言葉、単語の切れ目を示すカンマなどを含む。例えば上記のゲーム状態説明文は、「Storm、相手のfollowerに2ダメージを与えるFanfare、及びこのカードのコストから1を減じるSpellboostを持つプレイヤ1側のTwinblade Mage。プレイヤ1側の進化後のMechabook Sorcerer。」を示す。
【0042】
このように、ゲーム状態のデータが予め定められた方式で記録されたテキストデータである場合、学習データ生成部22は、既知のルールベースシステムの技術を用いて、当該テキストデータに所定の言葉やカンマやピリオドなどを補足することにより、当該ゲーム状態のデータをCNLに変換することができる。この変換に用いるルールベースシステムは、予め作成され、学習装置10は、通信装置15を介して当該ルールベースシステムと通信することにより、ゲームの状態のデータをCNLに変換することが可能となる。学習データ生成部22は、ゲーム状態のデータをCNLに変換するときに、当該ゲーム状態のデータが関連付けられた情報(例えばゲーム状態のデータが含むカードのexplanationデータ)なども更に用いることができる。なお、学習装置10が当該ルールベースシステムを備えていてもよい。
【0043】
アクションのデータのアクション説明文への変換は、ゲーム状態のデータのゲーム状態説明文への変換と同様である。1つの例では、リプレイログ要素群が含むアクションのデータは、以下のテキストデータである。
学習データ生成部22は、上記のアクションのデータを、下記のアクション説明文(CNL)に変換する。
学習データ生成部22は、下線部の言葉などを補足し、1つのアクションごとに1つの文を生成する。例えば上記のアクション説明文は、プレイヤ1の"Figher"が"Fairy Champion"を攻撃したことを示す。
【0044】
1つの例では、学習データ生成部22のゲーム状態説明文への変換は、式(4)に示すencode関数を用いて実現される。
encode関数は、i番目のゲーム状態のデータのStateiを受け取り、受け取ったStateiを、そのStatei内のカードの各々の式(3)に示すカードのexplanation属性及びルールベースシステムを用いて、所定の形式で表された制御された自然言語のデータState_Tiに変換する関数である。学習データ生成部22のアクション説明文(Action_Ti)への変換も、式(4)に示すencode関数と同様の機能を備える関数により実現することができる。
【0045】
式(1)が示すように、リプレイログ要素群の各々は、任意のk番目のStatekとActionkが対になるデータ構造(例えばState0とAction0が対になり、State1とAction1が対になるデータ構造)を有する。換言すると、リプレイログ要素群の各々は、最終のゲーム状態を除き、一のゲーム状態のデータ(Statek)と、該一のゲーム状態において選択されたアクションのデータ(Actionk)とが対になるデータ構造を有する。学習データ生成部22は、一のゲーム状態のデータ(Statek)と該一のゲーム状態において選択されたアクションのデータ(Actionk)とを変換し、一のゲーム状態及び該一のゲーム状態において選択されたアクションの対に対応するゲーム状態説明文(State_Tk)及びアクション説明文(Action_Tk)の対を含む学習データを生成する。
【0046】
大部分のゲーム状態のデータは複数の要素(複数のカードのデータ)を含むため、以下の実施形態においては、ゲーム状態のデータは複数のカードのデータを含むものとして説明する。学習データ生成部22が一のゲーム状態のデータ(Statek)から生成(変換)したゲーム状態説明文(State_Tk)は、複数の文を含む。本実施形態では、一のゲーム状態に対応するゲーム状態説明文が含む文の各々は、ゲーム状態のデータが含む要素(カードのデータ)の各々に対応する。学習データ生成部22は、一のゲーム状態のデータ(Statek)に対応するゲーム状態説明文(State_Tk)として、該ゲーム状態説明文に含まれる複数の文の並び順をシャッフルしたゲーム状態説明文を複数生成する。このように、学習データ生成部22は、一のゲーム状態のデータ(Statek)に対応するゲーム状態説明文として、該ゲーム状態説明文に含まれる文の並び順の異なる複数のゲーム状態説明文(複数のパターンのゲーム状態説明文)を生成する。生成された複数のパターンのゲーム状態説明文は、元の文の並び順のパターンのゲーム状態説明文を含んでいてもよい。なお、学習データ生成部22が一のゲーム状態のデータ(Statek)に対応するゲーム状態説明文(State_Tk)として生成する複数のゲーム状態説明文は、文の並び順が同一のゲーム状態説明文を含むこともできる。また、学習データ生成部22は、文の並び順の異なる複数のゲーム状態説明文を生成するときに、シャッフル以外の既知の手法を用いることもできる。
【0047】
学習データ生成部22は、上記のように生成された複数のゲーム状態説明文の各々と当該ゲーム状態説明文の基となったゲーム状態において選択されたアクションに対応するアクション説明文との対のテキストデータを生成し、該生成したテキストデータを含む学習データを生成する。ここで生成されたアクション説明文は、ゲーム状態説明文の基となったゲーム状態(Statek)において選択されたアクションのデータ(Actionk)から生成されたアクション説明文(Action_Tk)である。このように1つのゲーム状態に対応するゲーム状態説明文及びアクション説明文の対を生成する場合、生成された複数のゲーム状態説明文の各々と対となるアクション説明文は、同一のアクション説明文である。
【0048】
Statekに対応するゲーム状態説明文がNk個の文を含むとすると、その文の並べ方はNk!通りである。学習データ生成部22は、Statekに対応するゲーム状態説明文(State_Tk)として、文の並び順が異なるm個のゲーム状態説明文を生成する。mは1以上の整数である。学習データ生成部22は、当該ゲーム状態のデータ(Statek)を含むリプレイログ要素群に対してデータ重み付け部21が決定した重みWに基づく数であるm個のゲーム状態説明文を生成する。m個のゲーム状態説明文は、同一の文を含むが、その文の並び方は異なる。ただし、m個のゲーム状態説明文は、文の並び順が同一のゲーム状態説明文を含むこともできる。ここで、β番目のリプレイログ要素群のReplaylogβがγ個のStatek(k=1~γ)とActionk(k=1~γ)の対を含む場合、Statekに対応するゲーム状態説明文の数は、Statekによって(すなわちkによって)異なることが想定される。データ重み付け部21がReplaylogβに対して重みWβを決定した場合、学習データ生成部22は、Statekごとに、重みWβに基づくm個のゲーム状態説明文を生成する。1つの例では、データ重み付け部21が決定した重みWβは整数mである。このように、Wβ=mの場合、重みWβに基づく数は、Wβ(=m)とすることができる。1つの例では、学習データ生成部22は、重みWβに基づいて1以上の整数mを決定し、Statekごとに、m個のゲーム状態説明文を生成する。上記の例において、Statekに対応するゲーム状態説明文の並べ方Nk!がmより小さい場合、当該Statekに対応するゲーム状態説明文は、文の並び順が同一のゲーム状態説明文を含む。
【0049】
1つの例では、データ重み付け部21は、前記ユーザ情報に含まれるユーザランクの高さに応じた大きさとなるように重みWを決定する。例えば、データ重み付け部21は、ユーザの勝率ランキングが第P位のとき、1/Pの大きさに比例する重みWを決定する。学習データ生成部22は、データ重み付け部21により決定された重みWを数mとして受け取る若しくは決定する、又は生成するゲーム状態説明文の数mが重みWの大きさに応じて大きくなるようにmを決定若しくは設定する。例えば、一のリプレイログ要素群に対してデータ重み付け部21が決定した重みWと、該一のリプレイログ要素群が含む一のゲーム状態のデータ(Statek)に対して決定したゲーム状態説明文(State_Tk)の数mについては、学習データ生成部22は、Wが最大値のときにmも最大値となり、Wが最小値のときにmも最小値となるようにmを決定する。ただし、mは1以上の整数である。1つの例では、学習データ生成部22がmを決定する機能は、重みを引数にとる関数により実現される。
【0050】
1つの例では、データ重み付け部21が重みを決定する際に参照するデータ構造であるMetadatanは、式(5)で表すことができる。
ここで、Keyiは、i番目のメタデータのキー(名前)を示し、Valueiは、i番目のキーに対応するメタデータの値を示す。例えば、ユーザの戦歴と強さを示すユーザランクは、Key=Rank,Value=Masterなどと格納される。Metadatanは、クラスごとに定めた理想的な勝ちパターンに沿うかどうかの度合いや、与えたダメージ数の合計など、ゲーム内で算出可能な様々な値を格納することができる。Metadatanは、ユーザを識別するためのIDに関連付けられているユーザ情報であり、n番目のリプレイログ要素群のReplaylognに対応するメタデータである。
【0051】
1つの例では、データ重み付け部21は、式(6)に示すweight関数を用いて、重みを算出(決定)する。
この関数は、i番目のリプレイログ要素群のReplaylogiに対応するメタデータMetadataiを用いて、MIN以上MAX未満の非負の整数を重みとして算出する。1つの例では、weight関数は、メタデータから取得されるユーザの勝率ランキングが第P位のとき、MAX/Pを重みとして算出する。これにより、上位プレイヤのリプレイログほどより大きな重みとすることができる。
【0052】
図5は、学習装置10がリプレイログ要素群からゲーム状態説明文とアクション説明文の対を生成する概要を示す図である。学習データ生成部22は、State0に対応するゲーム状態説明文(State_T0)として、m個のゲーム状態説明文を生成する。
の各々は、State0に対応するゲーム状態説明文として生成されたm個のゲーム状態説明文である。学習データ生成部22は、生成したゲーム状態説明文の各々とState0のゲーム状態おいて選択されたアクションのデータAction0から生成したアクション説明文(Action_T0)との対を生成する。
【0053】
同様にして、学習データ生成部22は、State1に対応するゲーム状態説明文として、
のm個のゲーム状態説明文を生成する。学習データ生成部22は、生成したゲーム状態説明文の各々とState1のゲーム状態おいて選択されたアクションのデータAction1から生成したアクション説明文(Action_T1)との対を生成する。
【0054】
学習データ生成部22は、最終のゲーム状態(Statee)を除いたすべてのゲーム状態のデータの各々に対して、ゲーム状態のデータに対応するゲーム状態説明文としてm個のゲーム状態説明文を生成し、生成したm個のゲーム状態説明文と対応するアクション説明文との対(テキストデータ)を生成する。学習データ生成部22は、上記のように、ゲーム状態説明文とアクション説明文の対を生成し、生成した対(テキストデータ)を含む学習データを生成する。ただし、学習データ生成部22は、一部のゲーム状態のデータのみに対して、ゲーム状態のデータに対応するゲーム状態説明文を生成し、生成したm個のゲーム状態説明文と対応するアクション説明文との対を生成するように構成されてもよい。
【0055】
1つの例では、学習データ生成部22のゲーム状態説明文に含まれる複数の文の並び順のシャッフルは、式(7)に示すshuffle関数を用いて実現される。
ここで、mは、データ重み付け部21により対応するリプレイログ要素群に対して決定された重みに基づく数である。shuffle関数は、i番目のゲーム状態説明文のState_Tiを受け取り、そのState_Ti内の要素の配列をj回(j=1~m)シャッフルしたm個のState_Tiを生成する。例えば、1回シャッフルしたゲーム状態説明文は、
であり、2回シャッフルしたゲーム状態説明文は、
であり、m回シャッフルしたゲーム状態説明文は、
である。本実施形態では、shuffle関数は、State_Ti内の文の並び順をシャッフルしたm個のState_Tiを生成する。
【0056】
なお、ゲーム状態説明文が含む文が1つの場合、学習装置10は、当該ゲーム状態説明文及びアクション説明文の対のテキストデータのみを生成するように構成することができる。
【0057】
学習部23は、学習データ生成部22が生成した学習データに基づいて、例えば該学習データを用いて機械学習を行うことにより、学習済みモデルを生成する。本実施形態では、学習部23は、自然言語に関する文法構造及び文章間の関係が予め学習された自然言語事前学習済みモデルに、ゲーム状態説明文とアクション説明文の対を含む学習データ(教師データ)を学習させることにより、学習済みモデルを生成する。
【0058】
自然言語学習済みモデルは、学習装置10とは異なる他の装置に記憶され、学習装置10は、通信装置15を介して該他の装置と通信することにより、自然言語学習済みモデルに対して学習させ、学習させて得られた学習済みモデルを該他の装置から取得する。ただし、学習装置10は、自然言語学習済みモデルを記憶装置14に記憶してもよい。
【0059】
自然言語学習済みモデルは、文法構造の学習と文章間の関係の学習とを用いて、予め大量の自然言語の文章を学習して生成された学習モデル(学習済みモデル)である。文法構造の学習は、例えば「My dog is hairy」という文の構造を学習させるために、(1)単語のマスキング「My dog is [MASK]」、(2)単語のランダム置換「My dog is apple」、(3)単語の操作なし「My dog is hairy」の3パターンを学習させることを意味する。文章間の関係の学習は、例えば学習対象の2つの連続する文の対(組)がある場合に、元の2つの文の対(正解の対)と、ランダムで選択した文の対(不正解の対)とを半分ずつ作成し、文の関連性があるか否かを2値分類問題として学習することを意味する。
【0060】
1つの例では、自然言語事前学習済みモデルは、Google社により提供されるBERTと呼ばれる学習済みモデルであり、学習部23は、通信装置15を介してBERTのシステムと通信し、BERTに学習データを学習させ、生成された学習済みモデルを取得する。この場合、学習部23は、ゲーム状態説明文及びアクション説明文の自然言語データを学習データとして用いて、自然言語事前学習済みモデルをファインチューニングして、学習済みモデルを生成する。ファインチューニングは、自然言語事前学習済みモデルを再学習させてパラメータへの再重み付けを行うことを意味する。したがって、この場合、学習部23は、既に学習済の自然言語事前学習済みモデルを、ゲーム状態説明文及びアクション説明文を用いて再学習させることにより、自然言語事前学習済みモデルを微調整した新たな学習済みモデルを生成する。本実施形態では、上記のように、学習済みモデルを生成することは、予め学習して生成された学習済みモデルをファインチューニング又は再重み付けして学習済みモデルを得ることを含む。
【0061】
本実施形態では、学習部23は、自然言語事前学習済みモデルに対して、文章間の関係を学習させる。これに関連して、本実施形態における学習データ生成部22の処理について更に説明する。
【0062】
学習データ生成部22は、上記のように、リプレイログ(リプレイログ要素群)が含むゲーム状態のデータ及びアクションのデータに基づいて、一のゲーム状態のデータと該一のゲーム状態において選択されたアクションのデータとの対に対応するゲーム状態説明文及びアクション説明文の対を、第1の対として生成する。これに加えて、学習データ生成部22は、該一のゲーム状態のデータと該一のゲーム状態においてユーザが選択可能なアクションからランダムに選択されたアクションであって第1の対に含まれないアクションのデータとの対に対応するゲーム状態説明文及びアクション説明文の第2の対を生成する。このように、学習データ生成部22は、同一のゲーム状態説明文の対となるアクション説明文が第1の対と第2の対で異なるものとなるように、第2の対を生成する。学習データ生成部22は、第1の対及び第2の対を含む学習データを生成する。1つの例では、学習データ生成部22は、学習装置10が取得したリプレイログ要素群が含むすべてのゲーム状態のデータに対して、第1の対及び第2の対を生成して、これらを含む学習データを生成する。
【0063】
1つの例として、学習データ生成部22が、1つのゲーム状態のデータであるStateNに対応するゲーム状態説明文(State_TN)を含む学習データを生成する場合の処理について説明する。学習データ生成部22は、リプレイログ要素群が含むStateNとStateNにおいて選択されたアクションのデータであるActionNとから、これらに対応するゲーム状態説明文(State_TN)及びアクション説明文(Action_TN)の対(第1の対)を生成する。学習データ生成部22は、リプレイログ要素群が含むStateNとStateNにおいて選択可能なアクションからランダムに選択されたアクションのデータであってActionN以外のデータとから、これらに対応するゲーム状態説明文(State_TN)及びアクション説明文(Action_T'N)の対(第2の対)を生成する。
【0064】
前述のとおり、学習データ生成部22は、1つのゲーム状態説明文(State_TN)としてm個のゲーム状態説明文を生成するため、1つのゲーム状態説明文ごとに、m個の第1の対を生成する。同様にして、学習データ生成部22は、m個の第2の対を生成する。例えば第1の対は、式(8)で表すことができる。
例えば第2の対は、式(9)で表すことができる。
このようにして、学習データ生成部22は、第1の対及び第2の対を含む学習データを生成する。
【0065】
学習部23は、自然言語事前学習済みモデルに対して、第1の対を正解のデータとして、例えば「IsNext」を付与して、学習させ、第2の対を不正解のデータとして、例えば「NotNext」を付与して、学習させる。
【0066】
1つの例では、学習部23は、learn関数を用いて、学習データ(教師データ)を学習済みモデルへ学習させる。learn関数は、式(8)及び式(9)に示すゲーム状態説明文及びアクション説明文の第1の対と第2の対を用いて、BERTなどの自然言語事前学習済みモデルにファインチューニング学習を行う。ファインチューニングの結果、学習済みモデル(ニューラルネットワークモデル)が生成される。ここで学習とは、深層学習技術の適用により、ニューラルネットワークを構成する各層の重みを更新することを意味する。本実施形態では、学習させるゲーム状態説明文及びアクション説明文の対の数mは、リプレイログ要素群ごとに決定された重みWに基づく数である。このように、特定のリプレイログ要素群に強い重みをかけることや、別のリプレイログ要素群に弱い重みをかけるなどの調整を、learn関数に渡すデータ量により制御することができる。
【0067】
次に、本発明の一実施形態の学習装置10の学習済みモデルの生成処理について図6に示したフローチャートを用いて説明する。
【0068】
ステップ101において、データ重み付け部21は、リプレイログ要素群の各々に関連付けられたユーザ情報に基づいてリプレイログ要素群の各々に対する重みを決定する。
【0069】
ステップ102において、学習データ生成部22は、リプレイログ要素群が含むゲーム状態のデータ及びアクションのデータから、ゲーム状態説明文及びアクション説明文を生成し、一のゲーム状態及び該一のゲーム状態において選択されたアクションの対に対応するゲーム状態説明文及びアクション説明文の対を含む学習データを生成する。ここで、学習データ生成部22は、一のゲーム状態に対応するゲーム状態説明文として、該一のゲーム状態のデータを含む履歴データ要素群に対して決定された重みに基づく数mのゲーム状態説明文を生成する。ここで、生成されたm個のゲーム状態説明文は、該ゲーム状態説明文に含まれる複数の文の並び順の異なるゲーム状態説明文を含むものである。
【0070】
ステップ103において、学習部23は、学習データ生成部22が生成した学習データに基づいて学習済みモデルを生成する。
【0071】
図7は本発明の一実施形態の決定装置50のハードウェア構成を示すブロック図である。決定装置50は、プロセッサ51、入力装置52、表示装置53、記憶装置54、及び通信装置55を備える。これらの各構成装置はバス56によって接続される。なお、バス56と各構成装置との間には必要に応じてインタフェースが介在しているものとする。決定装置50は、一般的なサーバやPC等と同様の構成を含む。
【0072】
プロセッサ51は、決定装置50全体の動作を制御する。例えばプロセッサ51は、CPUである。プロセッサ51は、記憶装置54に格納されているプログラムやデータを読み込んで実行することにより、様々な処理を実行する。プロセッサ51は、複数のプロセッサから構成されてもよい。
【0073】
入力装置52は、決定装置50に対するユーザからの入力を受け付けるユーザインタフェースであり、例えば、タッチパネル、タッチパッド、キーボード、マウス、又はボタンである。表示装置53は、プロセッサ51の制御に従って、アプリケーション画面などを決定装置50のユーザに表示するディスプレイである。
【0074】
記憶装置54は、主記憶装置及び補助記憶装置を含む。主記憶装置は、例えばRAMのような半導体メモリである。RAMは、情報の高速な読み書きが可能な揮発性の記憶媒体であり、プロセッサ51が情報を処理する際の記憶領域及び作業領域として用いられる。主記憶装置は、読み出し専用の不揮発性記憶媒体であるROMを含んでいてもよい。補助記憶装置は、様々なプログラムや、各プログラムの実行に際してプロセッサ51が使用するデータを格納する。補助記憶装置は、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。
【0075】
通信装置55は、ネットワークを介してユーザ端末又はサーバなどの他のコンピュータとの間でデータの授受を行うものであり、例えば無線LANモジュールである。通信装置55は、Bluetooth(登録商標)モジュールなどの他の無線通信用のデバイスやモジュールなどとすることもできるし、イーサネット(登録商標)モジュールやUSBインタフェースなどの有線通信用のデバイスやモジュールなどとすることもできる。
【0076】
図8は本発明の一実施形態の決定装置50の機能ブロック図である。決定装置50は、推論用データ生成部61及び決定部62を備える。本実施形態においては、記憶装置54に記憶されている又は通信装置55を介して受信したプログラムがプロセッサ11により実行されることによりこれらの機能が実現される。このように、各種機能がプログラム読み込みにより実現されるため、1つのパート(機能)の一部又は全部を他のパートが有していてもよい。ただし、各機能の一部又は全部を実現するための電子回路等を構成することによりハードウェアによってもこれらの機能は実現してもよい。1つの例では、決定装置50は、ゲームAIなどのゲームシステムから予測対象のゲーム状態のデータを受け取り、学習装置10により生成された学習済みモデルを用いて推論を行い、アクションのデータを当該ゲームシステムへ送る。
【0077】
推論用データ生成部61は、学習装置10により生成された学習済みモデルに入力する、推論の対象となる推論用データを生成する。推論用データ生成部61は、予測対象のゲーム状態においてユーザが選択可能なアクションを決定する。通常、ユーザが選択可能なアクションは複数である。1つの例では、推論用データ生成部61は、予測対象のゲーム状態から、例えばゲームフィールド43に出されているカード41や手札のカード41から、ユーザが選択可能なアクションを決定する。他の例では、推論用データ生成部61は、ゲームAIなどのゲームシステムから予測対象のゲーム状態のデータとともにユーザが選択可能なアクションを受け取り、その受け取ったアクションをユーザが選択可能なアクションとして決定する。他の例では、あるゲーム状態においてユーザが選択可能なアクションは、ゲームプログラムにより予め定められており、推論用データ生成部61は、ゲーム状態ごとに該ゲームプログラムに従ってユーザが選択可能なアクションを決定する。
【0078】
1つの例では、推論用データ生成部61は、リプレイログ要素群と同じデータ形式のゲーム状態のデータを受け取り、リプレイログ要素群と同じデータ形式のアクションのデータを決定する。
【0079】
推論用データ生成部61は、決定したアクションの各々において、ゲーム状態のデータ及びアクションのデータの対からゲーム状態説明文及びアクション説明文の対を生成する。予測対象の1つのゲーム状態においてユーザが選択するアクションを予測する場合、決定したアクションの各々について生成される、アクション説明文の各々と対となるゲーム状態説明文は、同一のゲーム状態説明文である。1つの例では、推論用データ生成部61は、学習データ生成部22が用いるルールベースシステムと同様のルールベースシステムを用いて、ゲーム状態のデータ及びアクションのデータの対からゲーム状態説明文及びアクション説明文の対を生成する。この場合、例えば、決定装置50は、通信装置15を介して当該ルールベースシステムと通信することにより、ゲーム状態のデータ及びアクションのデータをCNLであるゲーム状態説明文及びアクション説明文に変換することが可能である。なお、決定装置50が当該ルールベースシステムを備えていてもよい。
【0080】
決定部62は、推論用データ生成部61が生成したゲーム状態説明文及びアクション説明文の対の各々と、学習装置10により生成された学習済みモデルとを用いて、ユーザの選択が予測されるアクションを決定する。例えば、予測対象のゲーム状態のデータがStateαであり、当該ゲーム状態においてユーザが選択可能なアクションに対応するアクションのデータが各々
である場合について説明する。ゲーム状態のデータ(Stateα)に対応するゲーム状態説明文はState_Tαであり、アクションのデータに対応するアクション説明文は、各々
である。推論用データ生成部61は、State_Tα
の各々の対を生成する。
【0081】
決定部62は、推論用データ生成部61が生成した対の各々を、学習装置10により生成された学習済みモデルに対して入力して、ユーザが取りうるアクションか否かを示すスコアを算出する。決定部62は、算出したスコアに基づいて、1つのアクション説明文に対応するアクションを決定する。1つの例では、決定部62は、最もスコアが高い対のアクション説明文に対応するアクションを決定し、決定したアクションに関する情報を、予測対象のゲーム状態のデータを受け取ったゲームシステムへ送信する。
【0082】
1つの例では、学習装置10により生成された学習済みモデルは、式(10)に示すinfer関数を実装する。
infer関数は、決定部62から、予測対象のゲーム状態に対応するゲーム状態説明文(State_Tα)と、そのゲーム状態においてユーザが選択可能なアクションに対応するアクション説明文のリスト
を受け取る。infer関数は、それぞれのアクション説明文(又はアクション)に、次に取るべきかどうかを示す実数のスコアを0~1で付与し、アクション説明文(又はアクション)の各々とスコアの対を出力する。例えばこのスコアは、0が最も選択するべきではないものを示し、1が最も選択するべきものを示す。
【0083】
1つの例では、決定部62は、select関数を用いて、ユーザの選択が予測されるアクションを選択する。select関数は、infer関数が出力したアクション説明文とスコアの対から、ユーザの選択が予測されるアクション説明文又はこれに対応するアクションを決定する。select関数は、最も高いスコアの対のアクション説明文に対応するアクションを選択するように構成される。ただし、select関数は、2~3番目などに高いスコアの対のアクション説明文に対応するアクションを選択するように構成されてもよい。
【0084】
次に、本発明の一実施形態の決定装置50のユーザの選択が予測されるアクションの決定処理について図9に示したフローチャートを用いて説明する。
【0085】
ステップ201において、推論用データ生成部61は、予測対象のゲーム状態においてユーザが選択可能なアクションを決定する。
【0086】
ステップ202において、推論用データ生成部61は、ステップ201で決定したアクションの各々において、ゲーム状態のデータ及びアクションのデータの対をCNLに変換してゲーム状態説明文及びアクション説明文の対を生成する。
【0087】
ステップ203において、決定部62は、ステップ202で生成したゲーム状態説明文及びアクション説明文の対の各々と、学習装置10が生成した学習済みモデルとを用いて、ユーザの選択が予測されるアクションを決定する。
【0088】
次に、本発明の実施形態の学習装置10と決定装置50の主な作用効果について説明する。
【0089】
本実施形態では、学習装置10は、ゲームサーバが記憶するリプレイログを構成するリプレイログ要素群の各々が含むゲーム状態及びアクションのデータの対をCNLであるゲーム状態説明文及びアクション説明文の対に変換して、変換したテキストデータを含む学習データを生成する。学習装置10は、リプレイログ要素群の各々に関連付けられたユーザ情報に基づいてリプレイログ要素群の各々に対する重みを決定する。学習装置10は、リプレイログから生成されたゲーム状態説明文及びアクション説明文の第1の対と、第1の対と同じゲーム状態説明文に対応するゲーム状態においてユーザが選択可能なアクションからランダムに選択されたアクションに対応するアクション説明文であって第1の対のアクション説明文とは異なるアクション説明文を当該ゲーム状態説明文に対して対にした第2の対とを生成し、これらを含む学習データを生成する。学習データが含む第1の対は、1つのゲーム状態ごとに、ゲーム状態説明文に含まれる文の並び順がシャッフルされたm個のゲーム状態説明文を含み、1つのゲーム状態ごとに、その各々のゲーム状態説明文とアクション説明文との対を含む。学習データが含む第2の対も、1つのゲーム状態ごとに、第1の対と同じゲーム状態説明文を含み、1つのゲーム状態ごとに、その各々のゲーム状態説明文とアクション説明文(第1の対とは異なるアクション説明文)との対を含む。ここで、1つのゲーム状態において、学習データが含む第1の対に含まれるゲーム状態説明文の数であるmは、当該ゲーム状態のデータを含むリプレイログ要素群に対して決定された重みであるか又は当該重みに基づいて決定されるものである。学習装置10は、自然言語事前学習済みモデルに生成した学習データを学習させることにより、学習済みモデルを生成する。
【0090】
また本実施形態では、決定装置50は、ゲームAIなどのゲームシステムから予測対象のゲーム状態のデータを受け取り、予測対象のゲーム状態においてユーザが選択可能な複数のアクションを決定する。決定装置50は、決定されたアクションの各々において、ゲーム状態のデータ及びアクションのデータの対をゲーム状態説明文及びアクション説明文の対に変換する。決定装置50は、変換された対の各々と、学習装置10により生成した学習済みモデルとを用いて、ユーザの選択が予測されるアクションを決定する。
【0091】
このように、本実施形態では、学習フェーズとして、ゲームサーバが記憶する自然言語データではないリプレイログを自然言語化し、これを入力として、自然言語処理が可能なトランスフォーマー・ニューラルネットワーク技術を用いて学習させ、学習済みモデルを生成する。本実施形態のようなリプレイログを自然言語化することは今まで行われてこなかった。本実施形態では、高度な文脈の表現能力を有する分散表現モデルの実装としてトランスフォーマー・ニューラルネットワークによる自然言語処理技術を用いて、文脈のある(カードゲームの対戦履歴などの)リプレイログを学習可能にするものである。なお、単語の分散表現は、センテンスやパラグラフにおける単語同士の位置を考慮した共起関係をベクトルとして表現するものであり、文章要約、翻訳、対話など幅広いタスクに適用可能なものである。そして本実施形態のように、その時々のゲーム状態とアクションのペアを隣接文予測(Next Sentence Prediction)の関係として学習させることにより、人間の戦略的思考をトランスフォーマー・ニューラルネットワークによる自然言語処理技術で獲得することが可能となる。なお、リプレイログを自然言語化する代わりに、リプレイログを分散表現への機械的な変換に適した形式で表されたテキストデータに変換することによっても、本実施形態と同様の効果が得られる。
【0092】
また本実施形態のように構成することにより、学習装置10がリプレイログ要素群に対する重みを決定して学習データに含まれる各リプレイログ要素群に対応するゲーム状態説明文及びアクション説明文の対の数を調整することができる。これにより、より有利な戦略を採用している可能性が高いデータを学習するときには、そのデータと同じ意味を持つバリエーション(ランダムに生成するパターン)を大量に自動生成して学習する「重みつきデータ拡張(Weighted Data Augmentation)」により、有益な戦略を優先的に学習することが可能になる。例えば、データの価値(勝率や勝敗結果など)が予め把握できるゲーム分野の特徴を活用し、より重要なデータのパターンはより多く生成し、重要ではないデータのパターンをより少なく生成するデータ拡張を行うことができる。従来のデータ拡張技術は、画像を対象とした機械学習で広く活用されているが、自然言語を対象としたデータ拡張の試みは少なく、同義語の入れ替え程度しか行われてこなかった。また、従来の人間が書いた自然言語文では、その価値や希少性を機械的に正しく把握することはできなかったため、データ拡張への重みを算出することが本質的に難しかった。このように、データ拡張が学習すべきデータへの優先度制御に用いられることはこれまでなかった。また、ゲームに適したAIとして、強化学習がよく知られているが、強化学習では、報酬を通じてAIを制御するため、学習を直接的、恣意的に制御することが難しかった。本実施形態のような構成とすることにより、学習データへの重み付けが可能となり、上記のような課題を解決することが可能となる。
【0093】
また本実施形態では、リプレイログを自然言語化するときに、CNLなどの一定の規約を持たせた自然言語を用いて曖昧性の低い文章に変換することにより、より適切な学習データを生成することが可能となる。
【0094】
また本実施形態では、ゲーム状態説明文及びアクション説明文の第1の対を生成する際、ゲーム状態説明文が含む文の並びをランダムに並べ替えた複数のパターンを生成する。これに関して、ゲーム状態説明文は、そのときのゲーム状態を説明するための文であるため、その並び順に意味を持つものではない。一方、トランスフォーマー・ニューラルネットワークによる自然言語処理技術は、単語や単語列の結合ルールを学習するものであり、カードゲームという特定の文法(ルール)のもと、特定の文脈(ゲーム状態)に沿って交わされる会話のやり取り(アクション)を、そのまま学習することができるものである。ゲーム状態説明文の文をシャッフルすることにより、ゲーム状態説明文の文、すなわちゲーム状態の要素をゲーム状態説明文の中の位置に依存させずに、アクション説明文(アクション)との関連性を分散表現として学習させることができる。なお、本実施形態では、カードの説明もカードの名称とともに自然言語として解釈されるため、新規カードであっても自律的にカードの位置付けを把握することが可能となる。
【0095】
本実施形態では、推論フェーズとして、ゲーム状態のデータなどを自然言語(CNL)に変換してから学習済みモデル(トランスフォーマー・ニューラルネットワークモデル)に入力することにより、分散表現モデルが有する表現能力を活用した推論を実現することが可能となる。例えば、AIにゲームをプレイさせるときに、決定装置50がゲーム状態とそこで取りうるアクションの集合とを学習済みモデルに入力し、その結果に基づいて次の手を選択させてゲームに入力させることができる。この場合、決定装置50が決定するアクションは、学習済みモデルによりユーザの選択が予測されるアクションを考慮したAIが実行するアクションである。また例えば、AIにゲームをプレイさせるときに、決定装置50は、最もスコアが高いアクションではなく、2~3番目にスコアが高いアクションや中央値付近のアクションを選択するように構成することができる。これにより、AIの強さを調整することが可能となる。
【0096】
また本実施形態の学習方法は、ターン制の対戦ゲームに幅広く適用可能なものであり、人間のプレイ傾向を模倣するAIを様々なジャンルに広げることが可能となる。また本実施形態の1つの例としてのファインチューニングを用いて学習済みモデルを生成する方法は、リプレイログが継続的に拡張される場合に対応可能な方法であり、長期間運用されるゲームタイトルに適したものである。また本実施形態において生成した学習済みモデルは、カードの説明もカードの名称とともに自然言語として解釈されるため、新たにリリースされた新規カードに対しても、比較的精度の高い推論を行うことが可能である。また本実施形態において学習済みモデルを生成する手法は、特定のトランスフォーマー・ニューラルネットワーク技術やファインチューニング手法に依存せず、隣接文予測の学習に対応した任意のトランスフォーマー・ニューラルネットワークによる自然言語学習システムを用いることができる。したがって、より精度の高いニューラルネットワークによる自然言語学習システムが登場したときや、外部ライブラリのサポート状況に応じて、自然言語学習システムを切り替えることができる。
【0097】
上記の作用効果は、特に言及が無い限り、他の実施形態や他の実施例においても同様である。
【0098】
本発明の実施形態としては、学習装置10のみを含む装置又はシステムとすることもできるし、学習装置10及び決定装置50の両方を含む装置又はシステムとすることもできる。本発明の他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する方法やプログラムとすることもできるし、該プログラムを格納したコンピュータ読み取り可能な記憶媒体とすることもできる。或いは、本発明の他の実施形態では、当該プログラムをコンピュータに供給することができるサーバとすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するシステムや仮想マシンとすることもできる。
【0099】
本発明の実施形態において、学習データ生成部22がゲーム状態のデータ及びアクションのデータから生成するゲーム状態説明文及びアクション説明文は、それぞれ、所定の形式で表されたテキストデータであるゲーム状態テキスト及びアクションテキストの例示である。同様に、推論用データ生成部61がゲーム状態のデータ及びアクションのデータから生成するゲーム状態説明文及びアクション説明文も、それぞれ、所定の形式で表されたテキストデータであるゲーム状態テキスト及びアクションテキストの例示である。所定の形式で表されたテキストデータは、機械及び人間の両方に可読可能なテキストのデータであり、例えば分散表現への機械的な変換に適した形式で表されたテキストデータである。1つのゲーム状態に対応するゲーム状態テキストは、複数の要素テキストを含む。要素テキストの各々は、ゲーム状態が含む要素の各々、例えばゲーム状態が含むカードのデータの各々、に対応する。1つの要素テキストは、1つの文、1つの文節、又は1つの文言とすることができる。ゲーム状態説明文が含む文は、ゲーム状態テキストが含む要素テキストの例示である。本発明の実施形態では、ゲーム状態説明文が含む文言の各々が、ゲーム状態が含む要素の各々に対応するように構成することもできる。
【0100】
本発明の実施形態において、学習部23が教師データを学習させる自然言語事前学習済みモデルは、順編成されたデータを学習することを目的とした深層学習モデルの例示である。
【0101】
本発明の実施形態において、CNLは、英語以外の言語、例えば日本語とすることができる。
【0102】
以下に本発明の実施形態の変形例について説明する。以下で述べる変形例は、矛盾が生じない限りにおいて、適宜組み合わせて本発明の任意の実施形態に適用することができる。
【0103】
1つの変形例では、学習装置10は、自然言語事前学習済みモデルを使用せずに、すなわちファインチューニングを行わずに、学習装置10が生成した学習データを用いて、学習済みモデルを構築(生成)する。
【0104】
1つの変形例では、決定装置50は、学習装置10により生成された学習済みモデルを記憶装置54に記憶し、通信を行わずに推論処理及び決定処理を行うように構成される。
【0105】
1つの変形例では、各々のカードcardiは、explanationを含まず、nameのみを含む。本変形例においても、カードそのもの(name)を単語に変換することさえできれば、カード間の意味的な距離関係を学習することができる。この場合、例えばencode関数は、i番目のゲーム状態のデータのStateiを受け取り、受け取ったStateiを、そのStatei内のカードの各々のname及びルールベースシステムを用いて、所定の形式で表された制御された自然言語のデータState_Tiに変換する。
【0106】
β番目のリプレイログ要素群のReplaylogβがγ個のStatek(k=1~γ)とActionk(k=1~γ)の対を含む場合において、データ重み付け部21がReplaylogβに対して重みWβを決定した場合の学習データ生成部22の構成の変形例について、説明する。1つの変形例では、学習データ生成部22は、Statekに対応するゲーム状態説明文の並べ方Nk!がmより小さい場合、学習データ生成部22は、当該Statekに対応するゲーム状態説明文としてNk!個のゲーム状態説明文を生成するように構成される。1つの変形例では、学習データ生成部22は、各Statekに対応するゲーム状態説明文が含む文のNk個の並べ方Nk!に対して重みWβを乗じた値に基づいてStatekの各々に対応するmk(1≦mk≦Nk!)を決定し、Statekごとにmk個のゲーム状態説明文を生成する。
【0107】
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【符号の説明】
【0108】
10 学習装置
11 プロセッサ
12 入力装置
13 表示装置
14 記憶装置
15 通信装置
16 バス
21 データ重み付け部
22 学習データ生成部
23 学習部
40 ゲーム画面
41 カード
42 第1のカード群
43 ゲームフィールド
44 第2のカード群
45 キャラクタ
50 決定装置
51 プロセッサ
52 入力装置
53 表示装置
54 記憶装置
55 通信装置
56 バス
61 推論用データ生成部
62 決定部
図1
図2
図3
図4
図5
図6
図7
図8
図9