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

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

▶ バルブ コーポレーションの特許一覧

特許7628535センサデータに基づく機械学習された信頼スコア付け
<>
  • 特許-センサデータに基づく機械学習された信頼スコア付け 図1
  • 特許-センサデータに基づく機械学習された信頼スコア付け 図2
  • 特許-センサデータに基づく機械学習された信頼スコア付け 図3
  • 特許-センサデータに基づく機械学習された信頼スコア付け 図4
  • 特許-センサデータに基づく機械学習された信頼スコア付け 図5
  • 特許-センサデータに基づく機械学習された信頼スコア付け 図6
  • 特許-センサデータに基づく機械学習された信頼スコア付け 図7
  • 特許-センサデータに基づく機械学習された信頼スコア付け 図8
  • 特許-センサデータに基づく機械学習された信頼スコア付け 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-31
(45)【発行日】2025-02-10
(54)【発明の名称】センサデータに基づく機械学習された信頼スコア付け
(51)【国際特許分類】
   A63F 13/795 20140101AFI20250203BHJP
   A63F 13/211 20140101ALI20250203BHJP
   A63F 13/30 20140101ALI20250203BHJP
   A63F 13/48 20140101ALI20250203BHJP
   A63F 13/71 20140101ALI20250203BHJP
   A63F 13/75 20140101ALI20250203BHJP
【FI】
A63F13/795
A63F13/211
A63F13/30
A63F13/48
A63F13/71
A63F13/75
【請求項の数】 20
(21)【出願番号】P 2022523481
(86)(22)【出願日】2020-10-22
(65)【公表番号】
(43)【公表日】2022-12-20
(86)【国際出願番号】 US2020056920
(87)【国際公開番号】W WO2021081248
(87)【国際公開日】2021-04-29
【審査請求日】2023-10-18
(31)【優先権主張番号】16/663,041
(32)【優先日】2019-10-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517160525
【氏名又は名称】バルブ コーポレーション
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】ブリースデール-シェパード、エスティン
(72)【発明者】
【氏名】ダルトン、スコット
(72)【発明者】
【氏名】ケスラー、リチャード
【審査官】鈴木 崇雅
(56)【参考文献】
【文献】米国特許第10207189(US,B1)
【文献】米国特許出願公開第2006/0121990(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00-98
A63F 9/24
(57)【特許請求の範囲】
【請求項1】
コンピュータ実行可能命令を記憶する、1つ以上の非一時的なコンピュータ可読媒体であって、前記コンピュータ実行可能命令が、1つ以上のプロセッサによって実行されるときに、
クライアントマシンからゲーム制御データおよびセンサデータを受信することであって、前記ゲーム制御データおよび前記センサデータが、ビデオゲームサービスに登録されたユーザアカウントに関連付けられている、受信することと、ここにおいて、前記ゲーム制御データまたは前記センサデータのうちの少なくとも1つは、前記ユーザアカウントに関連付けられている秘密鍵を用いて暗号化されたデータとして受信され、
前記秘密鍵に関連付けられた秘密鍵データを決定すること、前記秘密鍵データが、
前記秘密鍵が前記ユーザアカウントと関連付けられた時間の長さ、
前記秘密鍵が前記ユーザアカウントに対して使用されている回数、または前記ユーザアカウントにログインするために使用されている回数、または
前記秘密鍵が異なるユーザアカウントの間で切り替えられている回数
の少なくとも一つを具備すること、
訓練された機械学習モデルへの入力として、前記センサデータおよび前記秘密鍵データを提供することと、
前記訓練された機械学習モデルからの出力として、前記ユーザアカウントに関連付けられた信頼スコアを生成することであって、前記信頼スコアは、前記ゲーム制御データが、前記クライアントマシンに関連付けられたハンドヘルドゲームコントローラによって生成された確率に関連する、生成することと、
前記信頼スコアに少なくとも部分的に基づいて、前記ユーザアカウントを、マルチプレイヤーモードでビデオゲームをプレイするための複数の試合のうちの割り当てられた試合に割り当てることであって、前記複数の試合が、少なくとも、人間のプレイヤーに指定された第1の試合、および合成または修正されたゲーム制御データを生成するためにソフトウェアを使用する、非人間のプレイヤーに指定された第2の試合を含む、割り当てることと、
前記ユーザアカウントのために前記割り当てられた試合において前記ビデオゲームの実行を引き起こすことと、を含む、動作の実施を引き起こす、1つ以上の非一時的なコンピュータ可読媒体。
【請求項2】
前記センサデータが、前記ハンドヘルドゲームコントローラの1つ以上の物理センサによって生成された生のセンサデータを含み、前記割り当てられた試合が、前記人間のプレイヤーに指定された前記第1の試合である、請求項1に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項3】
前記動作が、
前記暗号化されたデータを復号化することと、
前記秘密鍵が前記ユーザアカウントに関連付けられていることを決定することと、
前記秘密鍵が、データベース内に維持された複数の秘密鍵のうちの1つと一致することを決定することと、をさらに含み、前記複数の秘密鍵が、複数の信頼できるハンドヘルドゲームコントローラに関連付けられており、
前記信頼スコアの前記生成が、前記秘密鍵が前記複数の秘密鍵のうちの前記1つと一致するという前記決定にさらに基づく、請求項1に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項4】
前記ユーザアカウントを前記割り当てられた試合に前記割り当てることが、
前記ユーザアカウントを前記第1の試合から削除することと、
前記ユーザアカウントを前記第2の試合に再割り当てすることと、を含む、請求項1に記載の1つ以上の非一時的なコンピュータ可読媒体。
【請求項5】
方法であって、
コンピューティングシステムによって、クライアントマシンからゲーム制御データおよびセンサデータを受信することであって、前記ゲーム制御データおよび前記センサデータが、ビデオゲームサービスにログインしたユーザアカウントに関連付けられ、前記ゲーム制御データが、ビデオゲームの態様を制御するために、前記ビデオゲームによって処理される、受信することと、ここにおいて、前記ゲーム制御データまたは前記センサデータの少なくとも1つは、前記ユーザアカウントに関連付けられている秘密鍵を用いて暗号化されたデータとして受信される、
前記秘密鍵に関連付けられた秘密鍵データを決定すること、前記秘密鍵データが、
前記秘密鍵が前記ユーザアカウントと関連付けられた時間の長さ、
前記秘密鍵が前記ユーザアカウントに対して使用されている回数、または前記ユーザアカウントにログインするために使用されている回数、または
前記秘密鍵が前記ユーザアカウントとは異なるユーザアカウントの間で切り替えられている回数
の少なくとも一つを具備すること、
コンピューティングシステムによって、前記ユーザアカウントに関連付けられたスコアを決定することと、
訓練された機械学習モデルへの入力として前記センサデータおよび前記秘密鍵データを提供することと、
前記訓練された機械学習モデルからの出力として前記スコアを生成することであって、前記スコアは、前記ゲーム制御データが前記クライアントマシンに関連付けられたハンドヘルドデバイスによって生成された確率を示す、生成することと、
前記スコアに少なくとも部分的に基づいて、前記ユーザアカウントを、複数の試合のうちの割り当てられた試合に割り当てることであって、前記割り当てられた試合が、第1の試合または第2の試合のうちの少なくとも1つを含む、割り当てることと、
前記コンピューティングシステムによって、前記ユーザアカウントのために前記割り当てられた試合において前記ビデオゲームの実行を引き起こすことと、を含む、方法。
【請求項6】
前記センサデータが、前記ハンドヘルドデバイスの1つ以上の物理センサによって生成された生のセンサデータを含む、請求項5に記載の方法。
【請求項7】
前記生のセンサデータが、生のジャイロスコープデータ、生の加速度計データ、または生の静電容量センサデータのうちの少なくとも1つを含む、請求項6に記載の方法。
【請求項8】
前記ハンドヘルドデバイスが、ハンドヘルドゲームコントローラである、請求項6に記載の方法。
【請求項9】
前記スコアを前記決定することの前に、
前記コンピューティングシステムによって、前記ビデオゲームサービスに登録されたユーザアカウントのサンプリングされたセットに関連付けられた履歴センサデータにアクセスすることであって、前記履歴センサデータが、前記ビデオゲームまたは異なるビデオゲームの態様を制御するために前記ビデオゲームまたは前記異なるビデオゲームによって処理された履歴ゲーム制御データと共に、クライアントマシンから受信されたものである、アクセスすることと、
前記ユーザアカウントのサンプリングされたセットの各ユーザアカウントに、前記ユーザアカウントに関連付けられた前記履歴ゲーム制御データが、前記ユーザアカウントに関連付けられた前記履歴ゲーム制御データを生成するために人間のプレイヤーがハンドヘルドデバイスを保持および操作している間に、前記ハンドヘルドデバイスによって生成されたかどうかを示すラベルでラベル付けすることと、
訓練データとして前記履歴センサデータを使用して機械学習モデルを訓練して、前記訓練された機械学習モデルを取得することと、をさらに含む、請求項5に記載の方法。
【請求項10】
前記機械学習モデルを前記訓練することが、前記履歴センサデータから導出された特徴のセット、または前記機械学習モデルの内部のパラメータ、のうちの少なくとも1つに重みを設定することを含む、請求項9に記載の方法。
【請求項11】
前記スコアを前記決定することが、
前記訓練された機械学習モデルへの前記入力として前記センサデータおよび前記秘密鍵データを前記提供することに加えて、前記ゲーム制御データを、前記訓練された機械学習モデルへの追加の入力として提供することをさらに含み、
前記スコアが、前記訓練された機械学習モデルへの前記追加の入力として提供された前記ゲーム制御データに少なくとも部分的に基づいて生成される、請求項5に記載の方法。
【請求項12】
前記コンピューティングシステムによって、前記暗号化されたデータを復号化することと、
前記コンピューティングシステムによって、前記秘密鍵が前記ユーザアカウントに関連付けられていることを決定することと、
前記コンピューティングシステムによって、前記秘密鍵が、データベース内に維持された複数の秘密鍵のうちの1つと一致することを決定することであって、前記複数の秘密鍵が、複数の信頼できるハンドヘルドデバイスに関連付けられている、決定することと、をさらに含み、
前記スコアを前記決定することは、前記秘密鍵が前記複数の秘密鍵のうちの前記1つと一致するという前記決定にさらに基づく、請求項5に記載の方法。
【請求項13】
前記スコアに少なくとも部分的に基づいて、前記第1の試合または前記第2の試合のうちの前記少なくとも1つに前記ユーザアカウントを前記割り当てることが、前記スコアが閾値スコアを満たすかどうかを決定することを含む、請求項5に記載の方法。
【請求項14】
システムであって、
1つ以上のプロセッサと、
コンピュータ実行可能命令を記憶するメモリと、を備え、前記命令が、前記1つ以上のプロセッサによって実行されるときに、前記システムに、
複数のクライアントマシンからゲーム制御データおよびセンサデータを受信することであって、前記ゲーム制御データおよび前記センサデータが、ビデオゲームサービスに登録された複数のユーザアカウントのログイン中のユーザアカウントに関連付けられ、前記ゲーム制御データが、ビデオゲームの1つ以上の態様を制御するために前記ビデオゲームによって処理される、受信することと、ここにおいて、前記ゲーム制御データまたは前記センサデータのうちの少なくとも1つは、前記ログイン中の前記ユーザアカウントのそれぞれと関連付けられている秘密鍵を用いて暗号化されたデータとして受信され、
前記秘密鍵に関連付けられた秘密鍵データを決定すること、前記秘密鍵データが、
前記秘密鍵がログイン中のユーザアカウントのそれぞれに関連付けられた時間の長さ、
前記秘密鍵が前記ログイン中の前記ユーザアカウントのそれぞれに対して使用されている回数、または前記ログイン中の前記ユーザアカウントのそれぞれにログインするために使用されている回数、または
前記秘密鍵が異なるユーザアカウントの間で切り替えられている回数
の少なくとも一つを具備すること、
前記ログイン中のユーザアカウントのスコアを決定することであって、前記スコアの個々のスコアが、
訓練された機械学習モデルへの入力として、個々のユーザアカウントに関連付けられた前記センサデータおよび前記秘密鍵データを提供すること、および
前記訓練された機械学習モデルからの出力として、前記個々のユーザアカウントに関連付けられたスコアを生成することであって、前記スコアは、前記個々のユーザアカウントに関連付けられた前記ゲーム制御データが、前記複数のクライアントマシンのうちのクライアントマシンに関連付けられたハンドヘルドデバイスによって生成された確率に関連する、生成することによって決定される、決定することと、
前記ログイン中のユーザアカウントについて決定された前記スコアに少なくとも部分的に基づいて、前記ログイン中のユーザアカウントの第1のサブセットを第1の試合に割り当て、前記ログイン中のユーザアカウントの第2のサブセットを第2の試合に割り当てることと、
前記ログイン中のユーザアカウントの前記第1のサブセットのための前記第1の試合において、および前記ログイン中のユーザアカウントの前記第2のサブセットのための前記第2の試合において、前記ビデオゲームの実行を引き起こすことと、を行わせる、システム。
【請求項15】
前記ログイン中のユーザアカウントの前記第1のサブセットに関連付けられた前記センサデータが、ハンドヘルドデバイスの1つ以上の物理センサによって生成された生のセンサデータを含む、請求項14に記載のシステム。
【請求項16】
前記生のセンサデータが、生のジャイロスコープデータ、生の加速度計データ、または生の静電容量センサデータのうちの少なくとも1つを含む、請求項15に記載のシステム。
【請求項17】
前記スコアの前記個々のスコアが、
前記訓練された機械学習モデルへの前記入力として前記個々のユーザアカウントに関連付けられた秘密鍵および前記センサデータを前記提供することに加えて、前記訓練された機械学習モデルへの追加の入力として前記個々のユーザアカウントに関連付けられた前記ゲーム制御データを提供することによって、さらに決定され、
前記個々のユーザアカウントに関連付けられた前記スコアが、前記訓練された機械学習モデルへの前記追加の入力として提供された前記個々のユーザアカウントに関連付けられた前記ゲーム制御データに少なくとも部分的に基づいて生成される、請求項14に記載のシステム。
【請求項18】
前記コンピュータ実行可能命令が、前記1つ以上のプロセッサによって実行されるとき、前記システムに、
前記暗号化されたデータを復号化することと、
前記暗号化されたデータを暗号化するために使用された秘密鍵が、前記ログイン中のユーザアカウントのうちの1つに関連付けられていることを決定することと、
前記秘密鍵が、データベース内に維持された複数の秘密鍵のうちの1つと一致することを決定することであって、前記複数の秘密鍵が、複数の信頼できるハンドヘルドデバイスに関連付けられている、決定することと、をさらに行わせ、
前記ログイン中のユーザアカウントのうちの前記1つに関連付けられた個々のスコアが、前記秘密鍵が前記複数の秘密鍵のうちの前記1つと一致するという決定に基づいて、さらに決定される、請求項14に記載のシステム。
【請求項19】
前記スコアの前記個々のスコアは、
前記訓練された機械学習モデルへの入力としての前記個々のユーザアカウントと関連付けられた前記秘密鍵データおよび前記センサデータの提供に加えて、前記訓練された機械学習モデルへの追加の入力として前記個々のユーザアカウントに関連付けられた無線通信データを提供することによってさらに決定され、前記無線通信データは、ハンドヘルドデバイスに関連付けられている無線信号強度または前記ハンドヘルドデバイスから送信されたドロップされたデータパケットのインスタンスの少なくとも1つを示していること、
ここにおいて、前記個々のユーザアカウントと関連付けられた前記スコアは、少なくとも部分的に前記訓練された機械学習モデルへの前記追加の入力として提供される前記個々のユーザアカウントに関連付けられた前記無線通信データに基づいて、生成される、請求項14に記載のシステム。
【請求項20】
前記スコアの前記決定は、前記訓練された機械学習モデルへの入力としての前記秘密鍵データおよび前記センサデータの提供に加えて、前記訓練された機械学習モデルへの追加の入力として無線通信データを提供することをさらに具備し、前記無線通信データは、ハンドヘルドデバイスに関連付けられている無線信号強度または前記ハンドヘルドデバイスから送信されたドロップされたデータパケットのインスタンスの少なくとも1つを示していること、
ここにおいて、前記スコアは、少なくとも部分的に前記訓練された機械学習モデルへの前記追加の入力として提供される前記無線通信データに基づいて、生成される、請求項5に記載の方法。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、2019年10月24日に出願された「MACHINE-LEARNED TRUST SCORING BASED ON SENSOR DATA」と題する係属中の米国特許出願第16/663,041号の優先権を主張するPCT出願であり、本出願は、2018年9月7日に出願された「MACHINE-LEARNED TRUST SCORING FOR PLAYER MATCHMAKING」と題する係属中の米国特許出願第16/125,224号の一部継続として、米国特許法第120条に基づく優先権を主張する。出願第16/663,041号および第16/125,224号のそれぞれは、その全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
広域ネットワーク通信の一定の、またはほぼ一定の可用性と、クライアントマシンの性能の向上とが相まって、オンラインマルチプレイヤービデオゲームの人気が高まっている。これらのマルチプレイヤービデオゲームにおいて、ビデオゲームサービスは、マッチメイキングシステムを使用して、グループ化されたプレイヤーがマルチプレイヤーモードでビデオゲームを一緒にプレイすることができるように、グループの中でプレイヤーを対戦させることができる。複数のプレイヤーがマルチプレイヤーモードでプレイすることが多い人気のあるビデオゲームのジャンルの1つは、ファーストパーソンシューティングゲームのジャンルである。この例示的なジャンルにおいて、2つ以上のプレイヤーのチームが、試合に勝つのに十分なラウンドを獲得することを目標に、複数のラウンドで勝負することができる。同一チームのプレイヤーは、相手チームのプレイヤーと勝負しながら、共同して目的を達成し得る。
【0003】
大半のビデオゲームプレイヤーはチート行動に従事することはないが、他のプレイヤーよりも優位に立つためにチート行為をする少数のプレイヤーが存在する場合が多くある。多くの場合、チート行為をするプレイヤーは、他のプレイヤーよりも情報的または機械的な利点を提供する第三者のソフトウェアを採用する。例えば、第三者のソフトウェアは、他のプレイヤーの位置に関する位置データを抽出するように構成され得、これらの位置をチート行為をするプレイヤーに提示し得る。この情報の優位性により、チート行為をするプレイヤーが他のプレイヤーを待ち伏せることか、またはさもなければ、第三者のソフトウェアによって明らかにされた位置情報を悪用することが可能になる。チート行為のより顕著な手法は、(例えば、プログラムでマウスカーソルをターゲットのプレイヤーに移動させ、自動的に武器を発射することによって)別のプレイヤーの位置を検出し、チート行為者のアバターの動きを自動化することができる第三者のソフトウェアを使用することである。つまり、一部のプレイヤーは、チート行為をするプレイヤーのパフォーマンスを機械的に向上させるコンピュータ制御アルゴリズムを使用して、第三者のソフトウェアに代理でビデオゲームをプレイさせることによってチート行為をする。
【0004】
概して、チート行為などの悪質なプレイヤーの行動は、正当にゲームをプレイしたいプレイヤーのゲームプレイ体験を台無しにする。したがって、悪質な行動に従事しようとするプレイヤーが、善良な行動を示す他のプレイヤーと試合する場合、善良な行動を行うプレイヤーにとってマルチプレイヤービデオゲーム体験が台無しにされる。将来において悪質な行動に従事する可能性の高いプレイヤーを識別しようとする現在使用中のシステムは、その予測がやや不正確である。これらのシステムは、静的に規定されたルールおよび入力に基づいているという意味でも概して静的である。つまり、システムの出力を変更するには、手動で調整する必要がある。本明細書で行われる開示は、これらおよび他の考慮事項に関連して提示される。
【図面の簡単な説明】
【0005】
添付の図面を参照して、詳細な説明が記載される。各図において、参照番号の左端数字は、参照番号が最初に現れる図を識別する。異なる図における同じ参照番号の使用は、類似または同一の構成要素または特徴を示す。
【0006】
図1】機械学習モデルを訓練して使用し、プレイヤーの可能性の高い行動に関連する信頼スコアを決定し、機械学習された信頼スコアに基づいてプレイヤーを対戦させるように構成されたリモートコンピューティングシステムを含む例示的な環境を例示する図である。
【0007】
図2図1のリモートコンピューティングシステムの例示的な構成要素を例示するブロック図と、機械学習された信頼スコア付けがプレイヤーのマッチメイキングにどのように使用され得るかを例示する図を示す。
【0008】
図3】機械学習モデルを訓練して、プレイヤーが特定の行動に沿って行動するか、または行動しない確率を予測するための例示的なプロセスのフロー図である。
【0009】
図4】訓練された機械学習モデルを利用して、ユーザアカウントの信頼スコアを決定するための例示的なプロセスのフロー図であり、信頼スコアは、プレイヤーが特定の行動に沿って行動するか、または行動しない確率に関するものである。
【0010】
図5】可能性の高いプレイヤーの行動に関連する機械学習された信頼スコアに基づいて、マルチプレイヤービデオゲームの異なる試合にユーザアカウントを割り当てるための例示的なプロセスのフロー図である。
【0011】
図6】ハンドヘルドデバイスの例示的な構成要素を例示するブロック図を含む例示的な環境を例示する図であり、図6は、リモートコンピューティングシステムによって受信されたセンサデータが機械学習された信頼スコア付けにどのように使用され得るかを示す。
【0012】
図7】クライアントマシンから受信したゲーム制御データがハンドヘルドデバイスによって生成された確率を予測するために、センサデータを含むデータを使用して機械学習モデルを訓練するための例示的なプロセスのフロー図である。
【0013】
図8】訓練された機械学習モデルを利用して、ユーザアカウントの信頼スコアを決定するための例示的なプロセスのフロー図であり、信頼スコアは、ゲーム制御データがハンドヘルドデバイスによって生成された確率に関連する。
【0014】
図9】ゲーム制御データがハンドヘルドデバイスによって生成された確率に関連する機械学習された信頼スコアに基づいて、マルチプレイヤービデオゲームの異なる試合にユーザアカウントを割り当てるための例示的なプロセスのフロー図である。
【発明を実施するための形態】
【0015】
本明細書では、とりわけ、機械学習アプローチを使用して信頼スコアを生成し、その後、機械学習された信頼スコアを使用して、マルチプレイヤービデオゲーム設定の中でプレイヤーを対戦させるための技法、デバイス、およびシステムを説明する。開示される技法は、少なくとも部分的に、ビデオゲーム(およびそのコンテンツ)をビデオゲームサービスの一部としてユーザコミュニティのクライアントマシンに配布するリモートコンピューティングシステムによって、実装され得る。これらのクライアントデバイスは、リモートコンピューティングシステムから受信(例えば、ダウンロード、ストリーミングなど)されたビデオゲームを実行するように構成されたクライアントアプリケーションを個別にインストールし得る。このビデオゲームプラットフォームにより、コミュニティの登録ユーザは、「プレイヤー」としてビデオゲームをプレイすることが可能になる。例えば、ユーザは、クライアントアプリケーションをロードし、登録ユーザアカウントでログインし、所望のビデオゲームを選択し、クライアントアプリケーションを通じて自分のクライアントマシン上でビデオゲームを実行することができる。
【0016】
前述のユーザがこのビデオゲームプラットフォームにアクセスして使用するときはいつでも、データはリモートコンピューティングシステムによって収集され得、このデータは、登録ユーザアカウントに関連付けられてリモートコンピューティングシステムによって維持され得る。時間の経過とともに、登録ユーザアカウントに結び付けられた履歴データの膨大な集合はリモートコンピューティングシステムで利用可能であり得ることが理解されよう。次いで、リモートコンピューティングシステムは、訓練データとして履歴データの一部分を使用して、1つ以上の機械学習モデルを訓練することができる。例えば、ユーザアカウントのサンプリングされたセットに関連付けられた履歴データの一部分は、特徴のセットで表すことができ、ビデオゲームのプレイ中に過去に特定の方法で行動したプレイヤーを示すためにラベル付けすることができる。このデータで訓練された機械学習モデルは、ビデオゲームサービスに登録されるユーザアカウントのための機械学習されたスコア(例えば、信頼スコア)を出力することによって、プレイヤーの行動を予測することができる。これらの機械学習されたスコアは、プレイヤーのマッチメイキングに使用可能であるため、マルチプレイヤービデオゲーム設定において、特定の行動に沿って行動するか、または行動しない可能性の高いプレイヤーを一緒にグループ化することができる。
【0017】
ある例示的なプロセスでは、コンピューティングシステムは、ビデオゲームサービスに登録された複数のユーザアカウントのためのスコア(例えば、信頼スコア)を決定し得る。個々のスコアは、個々のユーザアカウントに関連付けられたデータにアクセスし、訓練された機械学習モデルへの入力としてそのデータを提供し、訓練された機械学習モデルからの出力として、個々のユーザアカウントに関連付けられたスコアを生成することによって決定され得る。このスコアは、個々のユーザアカウントに関連付けられたプレイヤーが、マルチプレイヤーモードで1つ以上のビデオゲームをプレイしている間に、特定の行動に沿って行動するか、または行動しない確率に関連する。その後、コンピューティングシステムは、ビデオゲームを実行するクライアントアプリケーションにログインしたログイン中のユーザアカウントを示す情報を複数のクライアントマシンから受信し得る。さらに、コンピューティングシステムは、マルチプレイヤーモードでビデオゲームをプレイするためにプレイヤーがグループ化されることになる複数の試合を規定し得る。これらの複数の試合は、少なくとも、第1の試合および第2の試合を含み得る。コンピューティングシステムは、ログイン中のユーザアカウントについて決定されたスコアに少なくとも部分的に基づいて、ログイン中のユーザアカウントの第1のサブセットを第1の試合に、およびログイン中のユーザアカウントの第2のサブセットを第2の試合に割り当て得る。さらに、ログイン中のユーザアカウントの第1のサブセットに関連付けられたクライアントマシンの第1のサブセットに、第1の試合においてビデオゲームを実行させ、同時に、ログイン中のユーザアカウントの第2のサブセットに関連付けられたクライアントマシンの第2のサブセットに、第2の試合においてビデオゲームを実行させ得る。
【0018】
正当にビデオゲームをプレイしたい人間のプレイヤーは、多くの場合、ビデオゲームをプレイするためにハンドヘルドデバイス(例えば、ハンドヘルドゲームコントローラ)を利用するので、また、チート行為の目的のためにゲーム制御データを合成および/または修正するように構成されたソフトウェアは、合成および/または修正されたゲーム制御データを生成するためにハンドヘルドデバイスを使用しないので、チート行為をするためのソフトウェアを使用するプレイヤーが正当な人間のプレイヤーから隔離され得るように、チート行為をするようにプログラムされたソフトウェアから正当な人間のプレイヤーを区別するために、ハンドヘルドデバイスの1つ以上のセンサに関連付けられたセンサデータは、機械学習されたスコア付けを使用して活用され得る。したがって、本明細書で説明されるのは、ビデオゲームプラットフォームと相互作用している1つ以上のクライアントマシンからゲーム制御データおよびセンサデータを受信し、ユーザアカウントに関連付けられた信頼スコアを生成するために訓練された機械学習モデルへの入力として少なくともセンサデータを提供するための技法、デバイス、およびシステムである。この事例では、信頼スコアは、所与のクライアントマシンから受信されたゲーム制御データが、所与のクライアントマシンに関連付けられたハンドヘルドデバイスによって生成された確率に関連し得る。したがって、信頼スコアは、非人間のプレイヤー(例えば、チート行為のために設計されたソフトウェア)が、1人以上の他の人間のプレイヤーと正当にビデオゲームをプレイしたい人間のプレイヤーと試合する事例を軽減するために、プレイヤーのマッチメイキングに利用され得る。
【0019】
例示のために、ユーザがビデオゲームプラットフォームを介してビデオゲームをプレイするときはいつでも、ユーザは、ビデオゲームの態様を制御するために、ハンドヘルドゲームコントローラなどのハンドヘルドデバイスを使用し得る。所与のハンドヘルドデバイスは、他の可能なセンサの中で、ジャイロスコープ、加速度計、および/またはタッチセンサなどの1つ以上のセンサを含み得るが、これらに限定されない。タッチセンサ(例えば、静電容量パッド)は、例えば、デバイスの表面の下または表面上、および/または指操作制御部内または指操作制御部上に配置されてもよい。このタッチセンサは、表面または指操作制御部への指の近接性を検出するように構成されてもよく、それに応じて、タッチセンサは、タッチセンサへの指の近接性を示すセンサデータを生成してもよい。別の例として、ハンドヘルドデバイスのハウジングに取り付けられたジャイロスコープおよび/または加速度計は、異なる方向におけるハンドヘルドデバイスの運動(例えば、並進、回転、および/または傾斜運動などによる移動)を検出してもよく、それに応じて、ジャイロスコープおよび/または加速度計は、この運動の特性を示すセンサデータを生成してもよい。一般に、センサデータは、ビデオゲームの態様を制御するためなど(例えば、プレイヤー制御キャラクタを制御するため、ディスプレイ上に見えるものを指示する仮想カメラを回転させるためなど)の、様々な目的に利用することができる。このようにしてセンサデータがゲーム制御データとして使用される場合、センサデータは、場合によっては、ビデオゲームの態様を制御するために使用される前に、変更(例えば、フィルタリング/減衰、増幅など)されてもよい。しかしながら、本明細書に記載の技法およびシステムは、ハンドヘルドデバイスの1つ以上のセンサによって生成された、生の、未フィルタリングのセンサデータを(例えば、関連付けられたクライアントマシンを介してセンサデータを送信することによって)リモートコンピューティングシステムに送信するように構成されたハンドヘルドデバイスを対象とする。この生のセンサデータは、ビデオゲームの態様を制御するために処理されることになるゲーム制御データ(例えば、ボタン押下、ジョイスティックの偏向などによって生成されたデータ、および変更されたセンサデータ)と共に送信されてもよい。
【0020】
時間の経過とともに、ユーザが、1つ以上のセンサを有するハンドヘルドデバイスを使用してビデオゲームプラットフォームと相互作用するにつれて、上記および本明細書の他の箇所に記載されるように、履歴センサデータおよびゲーム制御データの膨大な集合が、登録ユーザアカウントに関連付けられ得、機械学習モデルを訓練するために使用され得る。例えば、リモートコンピューティングシステムは、訓練データとして履歴センサデータの一部を使用して、1つ以上の機械学習モデルを訓練することができる。例えば、ユーザアカウントのサンプリングされたセットに関連付けられた履歴センサデータの一部は、特徴のセットによって表すことができ、サンプリングされたセット内の各ユーザアカウントは、人間のプレイヤーがゲーム制御データを生成するためにハンドヘルドデバイスを保持および操作している間に、ユーザアカウントに関連付けられた履歴ゲーム制御データが実在のハンドヘルドデバイスによって生成されたかどうかを示すためにラベル付けされ得る。このセンサデータについて訓練された機械学習モデルは、ソフトウェアによって合成および/または修正されたものとは対照的に、特定のユーザアカウントに関連付けられたゲーム制御データが物理的なハンドヘルドデバイスによって生成されたかどうかを決定することができる。このようにして、機械学習モデルは、機械学習モデルへの入力として提供されたセンサデータに基づいて、チート行動を検出することができる。例えば、人間がハンドヘルドゲームコントローラなどのハンドヘルドデバイスを操作するとき、意図的ではない運動であるハンドヘルドデバイスの微かな運動があり得るが、この微かな運動は、ハンドヘルドデバイスの1つ以上の物理センサ(例えば、タッチセンサ、ジャイロスコープ、および/または加速度計など)によって生成されたセンサデータに示され得る。機械学習モデルは、人間のプレイヤーと非人間のプレイヤーとを区別するために、少なくともこのセンサデータを訓練データとして用いて訓練されてもよい。例えば、クライアントマシンから受信した新しいセンサデータの微細なニュアンスを認識することによって、機械学習モデルは、対応するゲーム制御データが、(例えば、人間のユーザによって)機械的に操作されたデバイスなどの実在のハンドヘルドデバイスの物理センサによって生成されたことを示す信頼スコアを出力することができる。逆に、別のクライアントマシンからセンサデータを受信することに失敗するか、またはセンサデータに示されることが予想される他のクライアントマシンから受信されたセンサデータの微細なニュアンスを認識することに失敗することによって、機械学習モデルは、例えば、自動的にプレイヤー制御されたキャラクタの武器を狙って発射するようにゲーム制御データをプログラム的に生成する、いわゆる「エイムボット」によって合成および/または修正されたゲーム制御データなどの、対応するゲーム制御データがソフトウェアを使用して合成および/または修正されたことを示す信頼スコアを出力することができる。したがって、プレイヤーのマッチメイキングのために機械学習されたスコアを使用することにより、ビデオゲームを正当にプレイすることを望む人間のプレイヤーを、ビデオゲームのマルチプレイヤーモードでチート行為するように設計されたソフトウェアなどの非人間のプレイヤーと試合させることを回避するのを助けることができる。
【0021】
例示的なプロセスにおいて、コンピューティングシステムは、クライアントマシンからゲーム制御データおよびセンサデータを受信し得、受信したデータに関連付けられ、ビデオゲームサービスに登録されたユーザアカウントのためのスコア(例えば、信頼スコア)を決定し得る。例えば、コンピューティングシステムは、受信したセンサデータを、訓練された機械学習モデルへの入力として提供し得、訓練された機械学習モデルからの出力として、ユーザアカウントに関連付けられたスコアを生成し得る。スコアは、受信されたゲーム制御データがクライアントマシンに関連付けられたハンドヘルドデバイスによって生成された確率に関連する。スコアに基づいて、コンピューティングシステムは、人間のプレイヤーのために指定された第1の試合または非人間のプレイヤーのために指定された第2の試合のうちの少なくとも1つを含む、複数の試合のうちの割り当てられた試合に、ユーザアカウントを割り当て得る。したがって、ビデオゲームは、割り当てられた試合でユーザアカウントに対して実行され得る。
【0022】
本明細書に記載の技法およびシステムは、マルチプレイヤーモードでのビデオゲームを、それを意図した方法でプレイすることを望むユーザに、ゲーム体験を向上させることができる。これは、本明細書に記載の技法およびシステムが、悪質な行動(例えば、チート行為)を行う可能性の高いプレイヤー(「エイムボット」などの非人間のプレイヤーを含む)を対戦させ、これらのプレイヤーを、ビデオゲームを正当にプレイする可能性の高い他の信頼できるプレイヤーから隔離することができるからである。例えば、訓練された機械学習モデルは、各プレイヤーのチート行為を行う(またはチート行為を行わない)傾向を示すユーザアカウントに対応する信頼スコアを帰することによって、どのプレイヤーがチート行為を行う可能性があり、どのプレイヤーがチート行為を行う可能性が低いかを予測することを学習することができる。このようにして、信頼スコアが低い(例えば、閾値を下回る)プレイヤーを対戦させることができ、しかも、ユーザアカウントが高い(例えば、閾値を超える)信頼スコアに帰する他のプレイヤーから隔離することができ、チート行為を行う可能性の高いプレイヤーを外した状態で信頼できるプレイヤーを試合でプレイさせる。閾値スコアを使用することが、試合割り当てを提供する1つの例示的な方式として説明されているが、信頼スコアを使用して(例えば、距離メトリック、分散メトリックなどの類似性メトリックに基づく)「類似の」信頼スコアを有するユーザアカウント(プレイヤー)を優先的に対戦させる、クラスタリングアルゴリズムまたは他の統計的アプローチなどの他の技法が考えられる。
【0023】
本明細書に記載の技法およびシステムはまた、静的ルールを使用してユーザの信頼レベルを決定する既存のマッチメイキング技術を改善する。機械学習モデルは、プレイヤーの行動の複雑な関係を識別して、プレイヤーの行動をより正確に予測することを学習することができるが、これは、静的ルールに基づくアプローチでは不可能である。したがって、本明細書に記載の技法およびシステムは、既存の信頼システムと比較して、プレイヤーの行動をより正確に予測する信頼スコアを生成し、偽陽性率を低減させ、プレイヤーのインスタンスが不正確な信頼スコアに帰することを減少させることを可能にする。本明細書に記載の技法およびシステムはまた、プレイヤーの行動が変化するにつれて、時間の経過とともにプレイヤーの行動を理解することに機械学習モデルを適合させるために、機械学習モデルは新しいデータを用いて再訓練可能であるため、既存のシステムよりもプレイヤーの行動の変動に適合性が高い。本明細書に記載の技法およびシステムはさらに、1つ以上のデバイスが、本明細書に記載の様々な方式で、処理リソース、メモリリソース、ネットワーキングリソースなどに関してリソースを節約することを可能にし得る。
【0024】
本明細書に記載の実施例の多くは、マッチメイキングを目的としてプレイヤーをスコア付けおよびグループ化することができるターゲット行動として「チート行為」を参照しているが、本明細書に記載の技法およびシステムは、機械学習されたスコア付けアプローチを使用してあらゆる種類の行動(善良または悪質)を識別し、プレイヤーのマッチメイキングの目的でプレイヤーがその行動に従事する可能性を予測するように構成され得ることを理解されたい。したがって、本技法およびシステムは、チート行為などの悪質な行動の文脈において「信頼」スコア付けの概念を超えて拡張され得、プレイヤー間の互換性または親和性を示すユーザアカウントにスコアをより広く帰することができる。
【0025】
図1は、機械学習モデルを訓練および使用して、プレイヤーの可能性の高い行動に関連する信頼スコアを決定し、機械学習された信頼スコアに基づいてプレイヤーを対戦させるように構成されたリモートコンピューティングシステムを含む例示的な環境100を例示する図である。ユーザ102のコミュニティは、1つ以上のクライアントマシン104に関連付けられ得る。図1に示されるクライアントマシン104(1)~(N)は、ユーザ102がその上でビデオゲームなどのプログラムを実行するために利用することができるコンピューティングデバイスを表す。このため、図1に示されるユーザ102は、「プレイヤー」102と呼ばれることがあり、これらの名前は、本明細書において、クライアントマシン104の人間のオペレータを指すために同義に使用され得る。すなわち、クライアントマシン104は、ビデオゲームを実行し、限定なしに、パーソナルコンピュータ(PC)、デスクトップコンピュータ、ラップトップコンピュータ、携帯電話(例えば、スマートフォン)、タブレットコンピュータ、ポータブルデジタルアシスタント(PDA)、ウェアラブルコンピュータ(例えば、仮想現実(VR)ヘッドセット、拡張現実感(AR)ヘッドセット、スマートグラス等)、車載(例えば、車内)コンピュータ、テレビ(スマートテレビ)、セットトップボックス(STB)、ゲームコンソール、および/または任意の同様のコンピューティングデバイスを含む、関連付けられたディスプレイ上にグラフィックスをレンダリングするように構成された任意の適切な種類のコンピューティングデバイスとして実装され得る。さらに、クライアントマシン104は、それぞれのプラットフォーム(例えば、ハードウェアおよびソフトウェア)に関して多様であり得る。例えば、図1に示される複数のクライアントマシン104は、処理機能(例えば、中央処理装置(CPU)モデル、グラフィックス処理ユニット(GPU)モデルなど)、グラフィックスドライババージョンなどに関して様々な機能を有する異なる種類のクライアントマシン104を表し得る。
【0026】
クライアントマシン104は、コンピュータネットワーク108を介してリモートコンピューティングシステム106(本明細書では「コンピューティングシステム106」または「リモートシステム106」と短縮される場合もある)と通信し得る。このコンピュータネットワーク108は、インターネット、他の種類のデータおよび/または音声ネットワーク、有線インフラストラクチャ(例えば、同軸ケーブル、光ファイバケーブルなど)、無線インフラストラクチャ(例えば、無線周波数(RF)、移動通信、衛星など)、および/または他の接続技術を表すか、または含み得るが、これらに限定されない。コンピューティングシステム106は、場合によっては、コンピュータネットワーク108を介して維持およびアクセスされるネットワークアクセス可能なコンピューティングプラットフォームの一部であってもよい。このようなネットワークアクセス可能コンピューティングプラットフォームは、「オンデマンドコンピューティング」、「サービスとしてのソフトウェア(SaaS)」、「プラットフォームコンピューティング」、「ネットワークアクセス可能プラットフォーム」、「クラウドサービス」、「データセンタ」などの用語を使用して言及される場合がある。
【0027】
いくつかの実施形態では、コンピューティングシステム106は、ビデオゲーム110(およびそのコンテンツ)をクライアントマシン104に配布(例えば、ダウンロード、ストリーミングなど)するようにビデオゲームサービスを実装するビデオゲームプラットフォームとして機能するか、またはそのビデオゲームプラットフォームへのアクセスを有する。一例では、クライアントマシン104は各々、そのマシン上にクライアントアプリケーションをインストールし得る。インストールされたクライアントアプリケーションは、ビデオゲームクライアント(例えば、ビデオゲーム110をプレイするためのゲームソフトウェア)であり得る。クライアントアプリケーションがインストールされたクライアントマシン104は、コンピュータネットワーク108を介してコンピューティングシステム106からプログラム(例えば、ビデオゲーム110、およびそのコンテンツ)をダウンロード、ストリーミング、あるいは他の方法で受信するように構成され得る。この目的のために、プログラム(例えば、ビデオゲーム110)がクライアントマシン104上でのダウンロードおよび実行のために個々に購入できる直接購入モデル、サブスクリプションベースのモデル、プログラムがクライアントマシン104に対してある期間の間レンタルもしくはリースされるか、ストリーミングされるか、または他の方法で利用可能になるコンテンツ配布モデルなど、任意の種類のコンテンツ配布モデルを利用することができる。したがって、個々のクライアントマシン104は、クライアントアプリケーションをロードすることによって実行可能である1つ以上のインストールされたビデオゲーム110を含み得る。
【0028】
図1の参照番号112によって示されるように、クライアントマシン104を使用して、ビデオゲームサービスに登録し、その後、そのビデオゲームサービスにログインすることができる。ユーザ102は、この目的のためにユーザアカウントを作成し得、登録ユーザアカウントに結び付けられた資格情報(例えば、パスワード、PIN、生体認証IDなど)を指定/設定し得る。複数のユーザ102が(例えば、登録ユーザアカウントを用いて自分のユーザ/プレイヤープロファイルにアクセスすること、それぞれのクライアントマシン104上でビデオゲーム110をプレイすることなどによって)ビデオゲームプラットフォームと相互作用すると、クライアントマシン104は、リモートコンピューティングシステム106にデータ114を送信する。所与のクライアントマシン104のために、リモートコンピューティングシステム106に送信されるデータ114は、ユーザ入力データ、ビデオゲームデータ(例えば、リモートシステムにアップロードされたゲームパフォーマンス統計)、ソーシャルネットワーキングメッセージおよび関連アクティビティ、クライアントマシン104上でプレイされるビデオゲーム110の識別子(ID)などを含み得るが、これらに限定されない。このデータ114は、リアルタイム(もしくは実質的にリアルタイム)にストリーミングされ、規定された間隔でリモートシステム106に送信され、および/またはイベント(例えば、ビデオゲームの終了)に応答してアップロードされることが可能である。
【0029】
図1は、コンピューティングシステム106が、クライアントマシン104から収集されるデータ114をデータストア116内に記憶し得、このデータストアは、リモートコンピューティングシステム106によって維持され、リモートコンピューティングシステム106にアクセス可能なデータリポジトリを表し得ることを示す。データ114は、ユーザアカウントをこれらのユーザアカウントに関連するデータ114の関連部分に関連付けるような任意の適切な様式でデータストア116内に編成され得る。時間の経過とともに、ビデオゲームプラットフォームと頻繁に相互作用するユーザ102の大規模なコミュニティを考えると、時には所与のセッション中に長期間にわたって、大量のデータ114が収集され得、データストア116内に維持され得る。
【0030】
図1のステップ1において、コンピューティングシステム106は、データストア116からサンプリングされた履歴データ114を使用して機械学習モデルを訓練し得る。例えば、コンピューティングシステム106は、ビデオゲームサービスに登録されたユーザアカウントのサンプリングされたセットに関連付けられた履歴データ114の一部分にアクセスし得、サンプリングされたデータ114を使用して機械学習モデルを訓練し得る。いくつかの実施形態において、訓練データとして使用されたデータ114の一部分は、特徴のセットによって表され、サンプリングされたセットの各ユーザアカウントは、ユーザアカウントが過去に少なくとも1つのビデオゲームをプレイしている間の特定の行動に沿って行動したプレイヤーに関連付けられているかどうかを示すラベルでラベル付けされる。例えば、特定のユーザアカウントを持つプレイヤーが過去にチート行為のためにビデオゲームサービスによって禁止された場合、この「禁止」は、特定のユーザアカウントについての複数のクラスラベルの1つとして使用することができる。このようにして、教師あり学習アプローチを採用して、機械学習モデルを訓練し、将来チート行為を行う可能性の高いプレイヤーを予測することができる。
【0031】
ステップ2において、コンピューティングシステム106は、訓練された機械学習モデルを使用して、複数の登録ユーザアカウントをスコア付けし得る。例えば、コンピューティングシステム106は、データストア116から、複数の登録ユーザアカウントに関連付けられたデータ114にアクセスし得、訓練された機械学習モデルへの入力としてデータ114を提供し得、訓練された機械学習モデルからの出力として、複数のユーザアカウントに関連付けられたスコアを生成し得る。これらのスコア(本明細書において「信頼スコア」または「信頼係数」と呼ばれることもある)は、複数のユーザアカウントに関連付けられたプレイヤーが、マルチプレイヤーモードで1つ以上のビデオゲームをプレイしながら特定の行動に沿って行動するか、または行動しない確率に関連する。チート行為などの「悪質な」行動の場合、信頼スコアは、プレイヤーがチート行為を行わない確率に関連し得る。この場合、高い信頼スコアは、信頼できるユーザアカウントを示し、一方で、低い信頼スコアは、信頼できないユーザアカウントを示し、これは、チート行為などの悪質な行動を示す可能性の高いプレイヤーの指標として使用され得る。いくつかの実施形態において、スコアは、[0,1]の範囲で正規化された変数である。この信頼スコアは、プレイヤーがビデオゲーム110をプレイしながら特定の行動に沿って行動する(または、場合によっては行動しない)確率と単調な関係を有し得る。スコアと特定の行動に関連付けられた実際の確率との関係は、単調ではあるが、直線関係である場合と、または直線関係でない場合があり得る。もちろん、スコア付けは、ユーザアカウントに結び付けられたプレイヤーが特定の方式で行動するか否かを予測するために、任意の適切な様式で実装され得る。図1は、本明細書に記載の技法に従ってスコア付けされた複数のユーザアカウント120を例示する。例えば、第1のスコア118(1)(スコア=X)は、任意の適切な数の登録ユーザアカウント120について、第1のユーザアカウント120(1)に帰し、第2のスコア118(2)(スコア=Y)は、第2のユーザアカウント120(2)に帰する、等々。
【0032】
複数の登録ユーザアカウント120について決定された機械学習されたスコア118を用いて、コンピューティングシステム106は、機械学習されたスコア118に少なくとも部分的に基づいて、マルチプレイヤービデオゲーム設定においてプレイヤーを対戦させるように構成され得る。例えば、図1は、コンピューティングシステム106が、ビデオゲーム110の実行を開始した複数のクライアントマシン104から情報122を受信し得ることを示す。この情報122は、コンピューティングシステム106に対して、ログイン中のユーザアカウントのセット120が、インストールされたクライアントアプリケーションを介して各クライアントマシン104上でビデオゲーム110を現在実行していることを示し得る。つまり、プレイヤー102が自分のユーザアカウント120でログインし、特定のビデオゲーム110の実行を開始し、マルチプレイヤーモードでのプレイを要求すると、それぞれのクライアントマシン104は、同等を示す情報122をコンピューティングシステム106に提供し得る。
【0033】
ステップ3において、コンピューティングシステム106は、クライアントマシン104からのこの情報122の受信に応答して、マルチプレイヤーモードでビデオゲーム110をプレイするためにプレイヤー102がグループ化されることになる複数の試合を規定することによって、および、ログイン中のユーザアカウント120について決定された機械学習されたスコア118に少なくとも部分的に基づいて、ログイン中のユーザアカウント120のサブセットを複数の試合の別個の試合に割り当てるために、クライアントマシン104に試合割り当て124を提供することによって、プレイヤー102を対戦させ得る。このようにして、訓練された機械学習モデルが、ログイン中のユーザアカウント120の第1のサブセットに低い(例えば、閾値を下回る)スコア118を割り当て、高い(例えば、閾値を超える)スコア118を、ログイン中のユーザアカウント120の第2のサブセットに割り当てた場合、ログイン中のユーザアカウント120の第1のサブセットは、複数の試合のうちの第1の試合に割り当てられ得、ログイン中のユーザアカウント120の第2のサブセットは、複数の試合のうちの第2の別個の試合に割り当てられ得る。このようにして、類似のスコア118を有するプレイヤー102のサブセットを共にグループ化することができ、プレイヤー102のスコア118のサブセットとは異なるスコア118を有する他のプレイヤーから依然として隔離することができる。
【0034】
ステップ4において、ビデオゲーム110を実行する各マシン104上のクライアントアプリケーションは、問題のログイン中のユーザアカウント120に割り当てられた試合においてビデオゲーム110を実行し得る。例えば、クライアントマシン104の第1のサブセットは、第1の試合に割り当てられたログイン中のユーザアカウント120の第1のサブセットに関連付けられ得、クライアントマシン104のこの第1のサブセットは、第1の試合においてビデオゲーム110を実行し得、同時に、第2の試合に割り当てられたログイン中のユーザアカウント120の第2のサブセットに関連付けられているクライアントマシン104の第2のサブセットは、第2の試合においてビデオゲーム110を実行し得る。機械学習されたスコア118に少なくとも部分的に基づいてプレイヤーを試合にグループ化すると、システムは、同一の試合で共に(例えば、チート行為によって)悪質な行動をとると予測されるプレイヤーをグループ化し得、そうすることによって、悪質な行動をとるプレイヤーを、正当にビデオゲーム110をプレイしたい他のプレイヤーから隔離しておくことができるので、プレイヤー102のグループの少なくとも一部にとってのゲーム内体験を改善することができる。
【0035】
図2は、図1のリモートコンピューティングシステム106の例示的な構成要素を例示するブロック図と、機械学習された信頼スコア付けがプレイヤーのマッチメイキングにどのように使用され得るかを例示する図を示す。例示された実装形態において、コンピューティングシステム106は、他の構成要素の中で、1つ以上のプロセッサ202(例えば、中央処理装置(CPU))、メモリ204(または非一時的なコンピュータ可読媒体204)、および通信インターフェース206を含む。メモリ204(または非一時的コンピュータ可読媒体204)には、揮発性および不揮発性メモリ、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装された取り外し可能および取り外し不可能な媒体が含まれ得る。そのようなメモリとしては、限定されるものではないが、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多目的ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、RAIDストレージシステム、または所望の情報を記憶するために使用され得、コンピューティングデバイスによってアクセスされ得る、任意の他の媒体が挙げられる。コンピュータ可読媒体204は、コンピュータ可読記憶媒体(「CRSM」)として実装され得、そのコンピュータ可読記憶媒体は、メモリ204上に記憶された命令を実行するためのプロセッサ202によってアクセス可能である任意の利用可能な物理的媒体であってもよい。1つの基本的な実装形態では、CRSMは、ランダムアクセスメモリ(「RAM」)およびフラッシュメモリを含み得る。他の実装形態では、CRSMには、読み出し専用メモリ(「ROM」)、電気的に消去可能なプログラマブル読み出し専用メモリ(「EEPROM」)、または所望の情報を記憶するために使用され得、プロセッサ202によってアクセスされ得る、任意の他の有形媒体が含まれ得るが、これらに限定されない。ビデオゲームサービス208は、プロセッサ202によって実行されると、コンピューティングシステム106に本明細書に記載の技法および動作を実行させるメモリ204に記憶された命令を表し得る。
【0036】
例えば、ビデオゲームサービス208は、他の可能な構成要素の中で、訓練構成要素210、スコア付け構成要素212、およびマッチメイキング構成要素214を含み得る。訓練構成要素210は、訓練された機械学習モデル216を取得するための訓練データとして、ユーザアカウントのサンプリングされたセット120に関連付けられたデータストア116内のデータ114の一部分を使用して機械学習モデルを訓練するように構成され得る。訓練された機械学習モデル216は、複数の登録ユーザアカウント120のスコア118(例えば、信頼スコア118)を決定するために、スコア付け構成要素212によって使用可能である。マッチメイキング構成要素214は、機械学習されたスコア118に少なくとも部分的に基づいて試合割り当て124を提供し、その結果、プレイヤーは、マルチプレイヤーモードでビデオゲーム110をプレイするために、複数の試合218(例えば、第1の試合218(1)、第2の試合218(2)など)の別個の試合にグループ化される。図2は、どのように、ログイン中のユーザアカウント120の第1のサブセットに関連付けられたプレイヤー102の第1のグループ(例えば、10人のプレイヤー102)が第1の試合218(1)に割り当てられ得、ログイン中のユーザアカウント120の第2のサブセットに関連付けられたプレイヤー102の第2のグループ(例えば、別の10人のプレイヤー102)が第2の試合218(2)に割り当てられ得るかを示す。もちろん、任意の数の試合218が規定され得るが、これは、マルチプレイヤーモードでビデオゲーム110を実行することを要求するログイン中のユーザアカウント120の数、コンピューティングシステム106が処理することができるネットワークトラフィックの容量制限、および/または他の要因に依存し得る。いくつかの実施形態において、他の要因(例えば、スキルレベル、地理的地域など)がマッチメイキングプロセスにおいて考慮され、これにより、より少ないまたはより多くの試合218への、プレイヤーのさらなる分割および/または細分化が引き起こされ得る。
【0037】
前述のように、スコア付け構成要素212によって決定されたスコア118(例えば、訓練された機械学習モデル216による出力)は、機械学習されたスコア118である。機械学習は、一般に、機械学習モデルを訓練するために、例(「訓練データ」と呼ばれる)のセットの処理を伴う。機械学習モデル216は、一度訓練されると、入力として新しいデータを受信し、出力として結果を推定または予測することができる学習済みメカニズムである。例えば、訓練された機械学習モデル216は、未知の入力(例えば、未知の画像)を複数のクラスラベル(例えば、画像を猫または犬としてラベル付けする)の1つとして分類するタスクを与えられた分類子を含むことができる。場合によっては、訓練された機械学習モデル216は、マルチラベル分類タスク(例えば、画像を「猫」、「犬」、「アヒル」、「ペンギン」などとしてラベル付けする)を実装するように構成される。追加的に、または代替的に、訓練された機械学習モデル216は、入力として受信された未知のデータに基づいて分類タスクの1つの確率または確率のセットを推論するように訓練されることができる。本開示の文脈において、未知の入力は、ビデオゲームサービスに登録された個々のユーザアカウント120に関連付けられたデータ114であり得、訓練された機械学習モデル216は、個々のユーザアカウント120が複数のクラスのうちの1つの中にある確率を示すか、またはさもなければその確率に関連するスコア118(例えば、信頼スコア118)を出力するタスクを与えられ得る。例えば、スコア118は、マルチプレイヤーモードでのビデオゲーム110のプレイ中に、個々のユーザアカウント120に関連付けられたプレイヤー102が特定の行動に沿って行動する(または、場合によっては行動しない)確率に関連し得る。いくつかの実施形態において、スコア118は、[0,1]の範囲で正規化される変数である。この信頼スコア118は、ビデオゲーム110のプレイ中に、プレイヤー102が特定の行動に沿って行動する(または、場合によっては行動しない)確率と単調な関係があり得る。スコア118と特定の行動に関連付けられた実際の確率との関係は、単調ではあるが、直線関係である場合と、または直線関係でない場合があり得る。いくつかの実施形態において、訓練された機械学習モデル216は、確率のセット(例えば、2つの確率)、またはそれに関連するスコアを出力し得、ここで、1つの確率(または、スコア)は、プレイヤー102が特定の行動に沿って行動する確率に関連し、他の確率(または、スコア)は、プレイヤー102が特定の行動に沿って行動しない確率に関連する。訓練された機械学習モデル216によって出力されるスコア118は、マッチメイキングプロセスを導くために、これらの確率のいずれかに関連することができる。例示的な実施例において、特定の行動はチート行為であり得る。この実施例において、訓練された機械学習モデル216によって出力されるスコア118は、個々のユーザアカウント120に関連付けられたプレイヤー102が、マルチプレイヤーモードでビデオゲーム110をプレイ中にチート行為に進むか否かの可能性に関連する。したがって、スコア118は、いくつかの実施形態において、個々のユーザアカウント120に関連付けられたプレイヤー102の信頼性のレベルを示すことができ、これは、本明細書で説明されるスコア118が「信頼スコア」118と呼ばれることがある理由である。
【0038】
訓練された機械学習モデル216は、単一のモデル、または基本レベルの機械学習モデルのアンサンブルを表し得、任意の種類の機械学習モデル216として実装され得る。例えば、本明細書に記載の技法およびシステムで使用するのに適切な機械学習モデル216には、これらに限定されないが、ニューラルネットワーク、ツリーベースモデル、サポートベクターマシン(SVM)、カーネル法、ランダムフォレスト、スプライン(例えば、多変量適合回帰スプライン)、隠れマルコフモデル(HMM)、カルマンフィルタ(または拡張カルマンフィルタ)、ベイズネットワーク(またはベイズ信念ネットワーク)、期待値最大化、遺伝的アルゴリズム、線形回帰アルゴリズム、非線形回帰アルゴリズム、ロジスティック回帰ベースの分類モデル、あるいはこれらのアンサンブルがある。「アンサンブル」には、加重平均または投票を使用するなどによって、出力(予測)が組み合わされた機械学習モデル216の集合を含むことができる。アンサンブルの個々の機械学習モデルは専門知識が異なる可能性があり、アンサンブルは、アンサンブルの個々の機械学習モデルよりも集合的に「スマート」な個々の機械学習モデルのコミッティーとして動作することができる。
【0039】
機械学習モデル216を訓練するために使用される訓練データは、様々な種類のデータ114を含み得る。一般に、機械学習のための訓練データは、特徴およびラベルという2つの構成要素を含むことができる。しかしながら、いくつかの実施形態では、機械学習モデル216を訓練するために使用される訓練データは、ラベル付けなしであり得る。したがって、機械学習モデル216は、教師あり学習、教師なし学習、半教師あり学習、強化学習など、任意の適切な学習技法を使用して訓練可能であり得る。訓練データに含まれる特徴は、訓練データの属性に関する定量化可能な情報のn次元特徴ベクトルの形式など、特徴のセットで表すことができる。以下は、本明細書で説明される機械学習モデル216を訓練するための訓練データに含めることができる例示的な特徴のリストである。ただし、以下の特徴のリストは網羅的ではなく、訓練において使用される特徴は、本明細書に記載されていない追加の特徴、および場合によっては、本明細書に記載される特徴のすべてではないが一部分を含み得ることを理解されたい。訓練データに含まれる例示的な特徴は、プレイヤーが一般にビデオゲーム110をプレイするために費やした時間、プレイヤーが特定のビデオゲーム110をプレイするために費やした時間、プレイヤーがビデオゲーム110にログインしてプレイした日の時間、プレイヤーの履歴データ、例えば、合計スコア(試合ごと、ラウンドごとなど)、ヘッドショットパーセンテージ、キルカウント、死亡カウント、アシストカウント、プレイヤーランクなど、プレイヤーのチート行為の報告の数および/または頻度、プレイヤーのチート行為の無罪の数および/または頻度、プレイヤーのチート行為の有罪の数および/または頻度、ビデオゲーム中にチート行為しているプレイヤーを検出した機械学習モデルによって出力される信頼値(スコア)、単一のプレイヤーに関連付けられたユーザアカウント120の数(これは複数のユーザアカウント120に結び付けられた共通のアドレス、電話番号、支払い手段などから推測され得る)、ユーザアカウント120がビデオゲームサービスに登録されている期間、プレイヤーに結び付けられた以前に禁止されたユーザアカウント120の数、ビデオゲームプラットフォーム上のプレイヤーのマネートランザクションの数および/または頻度、トランザクションごとのドル量、プレイヤーのユーザアカウント120に関連付けられた金銭的価値のデジタルアイテムの数、ユーザアカウント120が手を変えた(例えば、異なる所有者/プレイヤー間の転送)回数、プレイヤー間でユーザアカウント120が転送される頻度、プレイヤーがビデオゲームサービスにログインした地理的位置、ユーザアカウント120に関連付けられた異なる支払い手段、電話番号、郵送先などの数、および/またはこれらのアイテムがどのくらい頻繁に変更されたか、ならびに/あるいは特定の行動に従事するプレイヤーの傾向を示す信頼スコア118の計算に関連し得る任意の他の適切な特徴を含み得るが、これらに限定されない。さらに、訓練プロセスの一部として、訓練構成要素210は、機械学習のための重みを設定し得る。これらの重みは、データストア116内の履歴データ114から導出されるとき、訓練データに含まれる特徴のセットに適用され得る。いくつかの実施形態では、訓練プロセス中に設定される重みは、機械学習モデルの内部のパラメータに適用され得る(例えば、ニューラルネットワークの隠れ層内のニューロンに対する重み)。機械学習モデルのこれらの内部パラメータは、特徴のセットのうちの個々の入力特徴と1対1でマッピングされても、またはマッピングされなくてもよい。重みは、任意の所与の特徴またはパラメータが、訓練された機械学習モデル216によって出力されるスコア118に及ぼす影響を示すことができる。
【0040】
特にチート行為に関しては、これは、プレイヤーを対戦させるための基礎として使用することができる一種の行動の例示的な例であり、ビデオゲーム110の中で、チート行為を計画しているプレイヤーのユーザアカウント120に関連付けられた行動であって、非チート行為者のユーザアカウント120に関連付けられた行動とは異なるものが存在し得る。したがって、機械学習モデル216は、訓練データからこれらの行動パターンを識別することを学習することで、チート行為を行う可能性の高いプレイヤーを高い確信度で識別し、適切にスコア付けすることができる。システムが外れ値に関するいくつかの既知の情報に基づいて保護するように構成され得るエコシステムにおいて、外れ値が存在し得ることを理解されたい。例えば、プロのプレイヤーは平均的なプレイヤーとは異なる行動を示し得るが、これらのプロのプレイヤーは誤ってスコア付けされるリスクがあり得る。別の実施例として、ビデオゲームサービスのサービスプロバイダの従業員は、調査目的または品質管理目的のためにユーザアカウントでログインし得、平均的なプレイヤーの行動とは異なる手法で行動し得る。これらの種類のプレイヤー/ユーザ102は外れ値として扱うことができ、機械学習コンテキストの外で、これらのプレイヤー/ユーザ102に高い信頼を帰するスコア118を積極的に割り当てられ得る。このようにして、周知のプロのプレイヤー、サービスプロバイダの従業員などに、スコア付け構成要素212によって変更できない権威スコア118を割り当てて、これらのプレイヤー/ユーザ102が悪質な行動をとるプレイヤーと対戦することを回避することができる。
【0041】
訓練データはまた、教師あり学習アプローチのためにラベル付けされ得る。またしても、プレイヤーを対戦させるのに使用することができる行動の例示的な種類としてチート行為を使用して、この実施例におけるラベルは、ユーザアカウント120がビデオゲームサービスを介してビデオゲーム110をプレイすることを禁止されたかどうかを示し得る。データストア116内のデータ114は、チート行為を禁止されたプレイヤーに関連付けられたいくつかのデータ114、およびチート行為のために禁止されていないプレイヤーに関連付けられたいくつかのデータ114を含み得る。この種類の禁止の実施例は、ワシントン州ベルビューのValve Corporationによって利用されたValve Anti-Cheat(VAC)禁止である。例えば、コンピューティングシステム106、および/またはコンピューティングシステム106の許可されたユーザは、未許可の第三者ソフトウェアがチート行為に使用されたことを検出することができ得る。これらの場合、その決定が正しいことを確認するために厳密な検証プロセスを経た後、チート行為を行っているユーザアカウント120は、データストア116で禁止されているとしてフラグを立てることによって禁止され得る。したがって、ユーザアカウント120のステータスは、このアカウントが禁止されているか否かという観点から、ポジティブおよびネガティブな訓練の実施例として使用することができる。
【0042】
過去のチート行為などの過去のプレイヤーの行動は、他の方式で示すことができることを理解されたい。例えば、チート行為の疑いがあるプレイヤーを検出して報告するためのメカニズムが、ユーザ102、または別個の機械学習モデルにさえも提供され得る。これらの報告されたプレイヤーは、報告されたプレイヤーのゲーム再生をレビューし、評決(例えば、チート行為あり、またはチート行為なし)を下す同等の陪審員の前に置かれ得る。報告されたプレイヤーの行動がチート行為に相当すると十分な他のプレイヤーが判断した場合、高い信頼閾値に達し得、報告されたプレイヤーはチート行為で有罪判決を受け、ユーザアカウント120の禁止を受け、これはまた、関連付けられた訓練データのラベルを構成し得る。
【0043】
図2は、チート行為以外に、プレイヤーのマッチメイキングの基礎として使用することができる他の行動の例を例示する。例えば、訓練された機械学習モデル216は、プレイヤーがゲーム放棄行動に沿って(例えば、試合の途中でビデオゲームを放棄(または、終了)することによって)行動するか、または行動しないかの確率に関連する信頼スコア118を出力するように構成され得る。ゲームの放棄は、チート行為と同様に、放棄しないプレイヤーのゲームプレイ体験を台無しにする傾向がある行動である。別の実施例として、訓練された機械学習モデル216は、プレイヤーがグリーフィング行動に沿って行動するか、または行動しない確率に関連する信頼スコア118を出力するように構成され得る。「グリーファー」は、ビデオゲーム110内の他のプレイヤーを故意に苛立たせ、嫌がらせをするマルチプレイヤービデオゲームの中のプレイヤーであり、これは、グリーフィングしていないプレイヤーのゲームプレイ体験を台無しにする可能性がある。別の実施例として、訓練された機械学習モデル216は、プレイヤーが下品な言語行動に沿って行動するか、または行動しない確率に関連する信頼スコア118を出力するように構成され得る。多くの場合、マルチプレイヤービデオゲームは、プレイヤーがビデオゲーム110の中で他のプレイヤーに見えるチャットセッションまたは他のソーシャルネットワーキング通信に従事することを可能にし、プレイヤーが下品な言語(例えば、呪いの言葉、不快な言語など)を使用する場合に、下品な言語を使用しないプレイヤーのゲームプレイ体験を台無しにする可能性がある。さらに別の実施例として、訓練された機械学習モデル216は、プレイヤーが「ハイスキル」行動に沿って行動するか、または行動しない確率に関連する信頼スコア118を出力するように構成されてもよい。このようにして、スコア付けを使用して、プレイヤーのセットから、ハイスキルプレイヤーまたは初心者プレイヤーを識別することができる。これは、経験豊富なゲーマーが、アマチュアプレイヤーとプレイすることができるように、初心者スキルレベルのプレイヤーになりすまして新しいユーザアカウントを作成する状況を防ぐのに役立つことができる。したがって、第1の試合218(1)で対戦したプレイヤーは、(機械学習されたスコア118から決定されたように)特定の「悪質な」行動に沿って行動する可能性が高いプレイヤーであり得、一方、第2の試合218(2)などの他の試合で対戦したプレイヤーは、特定の「悪質な」行動に沿って行動する可能性が低いプレイヤーであり得る。
【0044】
複数のプレイヤー(ユーザアカウント120)に対して出力された信頼スコア118の分布は、概して二峰性である場合であり得る。例えば、スコア118の統計分布の一方のピークは、特定の悪質な行動に沿って行動する可能性が高いプレイヤーに関連付けられ得、一方で、スコア118の統計分布の他方のピークは、その悪質な行動に沿って行動する可能性が低いプレイヤーに関連付けられ得る。つまり、悪質な行動をとるプレイヤーおよび善良な行動をとるプレイヤーの母集団は、統計分布において明確なマージンによって分離され得る。この意味において、新しいユーザアカウントがビデオゲームサービスに登録され、統計分布において2つのピークの間にある信頼スコアが割り当てられた場合、そのユーザアカウントは、プレイヤーがビデオゲームプラットフォームと相互作用するときに何らかの方式で迅速に駆動される。この傾向により、マッチメイキング構成要素214によって使用されたマッチメイキングパラメータは、統計分布のボトムピーク内にない信頼スコア118を有するプレイヤーを同様に扱うように調整することができ、マッチメイキング構成要素214は、主に、統計分布のボトムピーク内にある信頼スコア118を有する悪質な行動をとるプレイヤーを分離/隔離することに関与し得る。閾値スコアを使用することが試合割り当てを提供する一例示的方式として本明細書に説明されるが、信頼スコアを使用して(例えば、距離メトリック、分散メトリックなどの類似性メトリックに基づいて)、「類似の」信頼スコアを有するユーザアカウント(プレイヤー)を優先的に対戦させるクラスタリングアルゴリズム、または他の統計的アプローチなどの他の技法が考えられる。
【0045】
さらに、マッチメイキング構成要素214は、ビデオゲームサービスに最近登録された新しいユーザアカウント120に対してプレイヤーマッチメイキングを使用し得ない。むしろ、プレイヤーが、ビデオゲーム110のマルチプレイヤーモードにおいてスコア付けされ、他のプレイヤーと対戦させられる前に、個々のプレイモードで一定のレベルの経験/成績を蓄積するというルールが実装され得る。ビデオゲーム110を初めて起動する時間からプレイヤーのマッチメイキングにアクセスする時間までのプレイヤーの経路は、プレイヤーごとに大きく異なる可能性があることを理解されたい。一部のプレイヤーはマッチメイキングを伴うマルチプレイヤーモードにアクセスするまでに長い時間を要する場合があるが、他のユーザは認定プロセスをすばやく簡単に実行する。この認定プロセスが実施されると、マッチメイキングの目的のためにスコア付けされるユーザアカウントは、ビデオゲームをプレイして、ユーザアカウント120を正確にスコア付けする118のに十分なデータ114を提供することになる。
【0046】
またもや、前述のように、本明細書に記載の実施例の多くは、マッチメイキングの目的のためにプレイヤーをスコア付けしてグループ化することができるターゲット行動として、チート行為、ゲーム放棄、グリーフィング、下品な言語などの「悪質な」行動に言及するが、本明細書に記載の技法およびシステムは、機械学習されたスコア付けアプローチを使用して任意の種類の行動を識別し、プレイヤーのマッチメイキングの目的のためにプレイヤーがその行動に従事する可能性を予測するように構成され得る。
【0047】
本明細書で説明されるプロセスは、ロジックフローグラフ内のブロックの集合として示され、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装され得る一連の動作を表す。ソフトウェアの文脈では、ブロックは、コンピュータ実行可能命令を表し、コンピュータ実行可能命令は、1つ以上のプロセッサによって実行されるとき、列挙された操作を実施する。一般に、コンピュータ実行可能命令は、特定の機能を実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が記載される順序は、限定として解釈されることを意図するものではなく、記載される任意の数のブロックは、プロセスを実装するために任意の順序で、および/または並列に組み合わせることができる。
【0048】
図3は、プレイヤーが特定の行動に沿って行動するか、または行動しない確率を予測するために機械学習モデルを訓練するための例示的なプロセス300のフロー図である。考察目的で、前図を参照してプロセス300を説明する。
【0049】
302において、コンピューティングシステム106は、ユーザ102にビデオゲームサービスへのアクセスを提供し得る。例えば、コンピューティングシステム106は、ユーザがビデオゲーム110のカタログにアクセスして閲覧し、ユーザプロファイルを変更し、トランザクションを実行し、ソーシャルメディアアクティビティに従事し、および他の同様および/または関連アクションを行うことを可能にし得る。コンピューティングシステム106は、ビデオゲームサービスの一部として、ビデオゲーム110(およびそのコンテンツ)をクライアントマシン104に配布し得る。例示的な実施例において、ビデオゲームサービスにアクセスするユーザ102は、インストールされたクライアントアプリケーションをロードし、登録ユーザアカウントでログインし、所望のビデオゲーム110を選択し、クライアントアプリケーションを通じて自分のクライアントマシン104上でビデオゲーム110を実行することができる。
【0050】
304において、コンピューティングシステム106は、ビデオゲームサービスに登録されるユーザアカウント120に関連付けられたデータ114を収集し、記憶し得る。このデータ114は、ユーザ102が登録ユーザアカウント120でビデオゲームサービスにアクセスし、このビデオゲームプラットフォームを使用するとき、例えば、そのプラットフォーム上でビデオゲーム110をプレイするときなどはいつでも、ブロック304で収集され得る。時間の経過とともに、登録ユーザアカウントに結び付けられたデータ114の膨大な集合が、コンピューティングシステム106に利用可能であり得ることを理解することができる。
【0051】
306において、コンピューティングシステム106は、訓練構成要素210を介して、ビデオゲームサービスに登録されたユーザアカウントのサンプリングされたセット120に関連付けられた(履歴)データ114にアクセスし得る。(履歴)データ114の少なくとも一部は、ビデオゲームサービスによって提供されるビデオゲームプラットフォーム上でプレイヤーが1つまたは複数のビデオゲーム110をプレイする結果として生成された可能性がある。例えば、306においてアクセスされた(履歴)データ114は、(例えば、マルチプレイヤーモードにおいて試合に参加することによって)1つまたは複数のビデオゲーム110をプレイしたプレイヤーの試合履歴データを表し得る。いくつかの実施形態において、(履歴)データ114は、ユーザアカウントのサンプリングされたセット120がプレイヤー間で転送されたかどうか、またはユーザアカウント120に関する他の種類のユーザアクティビティを示し得る。
【0052】
308において、コンピューティングシステム106は、訓練構成要素210を介して、ユーザアカウント120のサンプリングされたセットの各ユーザアカウント120に、ユーザアカウントが過去に少なくとも1つのビデオゲーム110のプレイ中に特定の行動に沿って行動したプレイヤーに関連付けられているかどうかを示すラベルをラベル付けし得る。ユーザアカウント120が過去にチート行為のために禁止されたかどうかなどのラベルの実施例が本明細書に記載されているが、これは、場合によっては、チート行為を行うか、または行わない傾向についてプレイヤーをスコア付けする文脈においてラベルとして使用され得る。しかしながら、ラベルは、ユーザアカウントが過去にゲームを放棄した、過去のゲーム中にグリーフィングした、過去にゲーム中に下品な言語を使用したプレイヤーなどに関連付けられているかどうかを示すラベルなど、他の種類の行動に対応し得る。
【0053】
310において、コンピューティングシステム106は、訓練構成要素210を介して、(履歴)データ114を訓練データとして使用して機械学習モデルを訓練して、訓練された機械学習モデル216を取得し得る。サブブロック312によって示されるように、ブロック310における機械学習モデルの訓練は、機械学習のための重みを設定することを含み得る。これらの重みは、履歴データ114から導出された特徴のセットに適用され得る。図2を参照して前述したものなど、例示的な特徴が本明細書に記載される。いくつかの実施形態では、ブロック312において設定される重みは、機械学習モデルの内部のパラメータに適用され得る(例えば、ニューラルネットワークの隠れ層内のニューロンに対する重み)。機械学習モデルのこれらの内部パラメータは、特徴のセットのうちの個々の入力特徴と1対1でマッピングされても、またはマッピングされなくてもよい。ブロック310からブロック304への矢印によって示されるように、機械学習モデル216は、更新された(履歴)データ114を使用して再訓練され、最近のプレイヤーの行動に適合した新たに訓練された機械学習モデル216を取得することができる。これにより、機械学習モデル216は、時間の経過とともに、変化するプレイヤーの行動に適合することができる。
【0054】
図4は、訓練された機械学習モデル216を利用して、ユーザアカウント120の信頼スコア118を決定するための例示的なプロセス400のフロー図であるが、この信頼スコア118は、プレイヤーが特定の行動に沿って行動するか、または行動しない確率に関連する(または、その確率を示す)。考察目的で、前図を参照してプロセス400を説明する。さらに、図3および図4の外部ページ参照「A」によって示されるように、プロセス400は、プロセス300のブロック310から進み得る。
【0055】
402において、コンピューティングシステム106は、スコア付け構成要素212を介して、ビデオゲームサービスに登録された複数のユーザアカウント120に関連付けられたデータ114にアクセスし得る。このデータ114は、本明細書に記載されるように、特徴のセットの中の任意の情報(例えば、定量化可能な情報)を含み得、その特徴は、機械学習モデル216を訓練するために使用されている。このデータ114は、訓練された機械学習モデル216に入力されることになる未知の入力を構成する。
【0056】
404において、コンピューティングシステム106は、スコア付け構成要素212を介して、訓練された機械学習モデル216への入力として、ブロック402においてアクセスされるデータ114を提供し得る。
【0057】
406において、コンピューティングシステム106は、スコア付け構成要素212を介して、訓練された機械学習モデル216からの出力として、複数のユーザアカウント120に関連付けられた信頼スコア118を生成し得る。個々には、スコア118は、複数のユーザアカウント120のうちの個々のユーザアカウント120に関連付けられ、このスコア118は、個々のユーザアカウント120に関連付けられたプレイヤー102がマルチプレイヤーモードで1つ以上のビデオゲーム110のプレイ中に特定の行動に沿って行動するか、または行動しない確率に関連する。この文脈において、特定の行動は、機械学習モデルが、その行動に従事する傾向があるプレイヤーを予測するように訓練することができるように、データ114に示される任意の適切な行動であり得る。実施例としては、これらに限定されないが、チート行動、ゲーム放棄行動、グリーフィング行動、または下品な言語行動が挙げられる。いくつかの実施形態において、スコア118は、[0,1]の範囲で正規化される変数である。この信頼スコア118は、プレイヤーがビデオゲーム110のプレイ中に特定の行動に沿って行動する(または、場合によって行動しない)確率と単調な関係を有し得る。スコア118と特定の行動に関連付けられた実際の確率との関係は、単調ではあるが、直線関係である場合と、または直線関係でない場合があり得る。
【0058】
したがって、プロセス400は機械学習されたスコア付けアプローチを表しており、ここで、スコア118(例えば、信頼スコア118)はユーザアカウント120について決定され、このスコアは、このユーザアカウント120を使用するプレイヤーが将来において特定の行動に従事する確率を示す。このスコア付けプロセスにおいて機械学習モデルを使用することにより、プレイヤーの行動を予測しようとする既存のアプローチと比較して、プレイヤーの行動の複雑な関係を識別して、プレイヤーの行動をより正確に予測することができる。これにより、人間が介在することなく、プレイヤーの行動の変動に順応することができる、より適合性がありかつ多用途なシステムを用いて、プレイヤーの行動をより正確に予測することにつながる。
【0059】
図5は、可能性の高いプレイヤーの行動に関連する機械学習された信頼スコア118に基づいて、マルチプレイヤービデオゲームの別個の試合にユーザアカウント120を割り当てるための例示的なプロセス500のフロー図である。考察目的で、前図を参照してプロセス500を説明する。さらに、図4および図5の外部ページ参照「B」によって示されるように、プロセス500は、プロセス400のブロック406から進み得る。
【0060】
502において、コンピューティングシステム106は、複数のクライアントマシン104から情報122を受信し得るが、この情報122は、各クライアントマシン104上でビデオゲーム110を実行するクライアントアプリケーションにログインするログイン中のユーザアカウント120を示す。例えば、複数のプレイヤー102は、マルチプレイヤーモードでビデオゲーム110をプレイすることを希望し、特定のビデオゲーム110(例えば、ファーストパーソンシューティングゲーム)の実行を開始した可能性がある。ブロック502において受信された情報112は、これらのプレイヤーについて少なくともログイン中のユーザアカウント120を示し得る。
【0061】
504において、コンピューティングシステム106は、マッチメイキング構成要素214を介して、マルチプレイヤーモードにおいてビデオゲーム110をプレイするためにプレイヤー102がグループ化されることになる複数の試合を規定し得る。需要、キャパシティ、およびマッチメイキングプロセスに影響を与える他の要因を含む、様々な要因に応じて、任意の数の試合を規定することができる。一実施例において、ブロック504において規定された複数の試合は、少なくとも第1の試合218(1)および第2の試合218(2)を含み得る。
【0062】
506において、コンピューティングシステム106は、マッチメイキング構成要素214を介して、ログイン中のユーザアカウント120について決定されたスコア118に少なくとも部分的に基づいて、ログイン中のユーザアカウント120の第1のサブセットを第1の試合218(1)に割り当て、ログイン中のユーザアカウント120の第2のサブセットを第2の試合218(2)に割り当て得る。前述のように、ブロック506において、さらなる分割および追加の試合をユーザアカウントに割り当てることができるように、任意の数の試合を規定することができる。
【0063】
サブブロック508によって示されるように、ユーザアカウント120の別個の試合への割り当ては、閾値スコアに基づいてもよい。例えば、マッチメイキング構成要素214は、ログイン中のユーザアカウント120の第1のサブセットに関連付けられたスコア118が閾値スコア未満であると決定し得、さらに、これらのスコアが閾値スコア未満であることに基づいて、ログイン中のユーザアカウント120の第1のサブセットを第1の試合に割り当て得る。同様に、マッチメイキング構成要素214は、ログイン中のユーザアカウント120の第2のサブセットに関連付けられたスコア118が閾値スコア以上であると決定し得、これらのスコアが閾値スコア以上であることに基づいて、ログイン中のユーザアカウント120の第2のサブセットを第2の試合に割り当て得る。しかしながら、これは試合割り当て124を提供するための1つの例示的な方式に過ぎず、他の技法も考えられる。例えば、クラスタリングアルゴリズム、または他の統計的アプローチが、閾値スコアを使用することに加えて、またはその代替として使用されてもよい。一実施例において、信頼スコア118を使用して、「類似した」信頼スコアを有するユーザアカウント(プレイヤー)を優先的に対戦させてもよい。信頼スコア118の分布が複数のユーザアカウント120にわたって概して二峰性であるという必然の傾向を考えると、類似性メトリック(例えば、距離メトリック、分散メトリックなど)に基づいて信頼スコア118を共にグループ化することは、閾値スコアを使用する場合と同様な結果をもたらし得る。しかしながら、スキルレベルなどの他のマッチメイキング要因に対する信頼スコアの相対的な重要度を段階的に調整することを可能にするよりきめ細かいアプローチを提供することが可能であるので、マッチメイキングの目的でユーザアカウントをグループで対戦させるために類似性メトリックを使用することは、マッチメイキングプールが小さい事例(例えば、地理的に狭い地域にいて、低人気のゲームモードをプレイしたいプレイヤー)に有用であり得る。いくつかの実施形態において、複数の閾値を使用して、ユーザアカウント120を複数の別個の試合に「バケット化」し得る。
【0064】
サブブロック510によって示されるように、信頼スコア118以外の他の要因は、ブロック506でのマッチメイキング割り当てにおいて考慮することができる。例えば、ブロック506において決定された試合割り当て124は、ログイン中のユーザアカウントに関連付けられたプレイヤーのスキルレベル、ログイン中のユーザアカウントが複数の試合のうちの1つに配置されるのを待っていた時間、ログイン中のユーザアカウントに関連付けられた地理的地域、および/または他の要因にさらに基づき得る。
【0065】
512において、コンピューティングシステム106は、(例えば、制御命令を提供することによって)、情報122を送信した各クライアントマシン104上でビデオゲーム110を実行するクライアントアプリケーションに、このクライアントマシン104に関連付けられているログイン中のユーザアカウント120に少なくとも部分的に基づいて、規定された試合のうちの1つ(例えば、第1の試合218(1)または第2の試合218(2)のうちの1つ)を開始させ得る。例えば、第1の試合218(1)および第2の試合218(2)が規定されると、コンピューティングシステム106は、ログイン中のユーザアカウント120の第1のサブセットに関連付けられた複数のクライアントマシン104の第1のサブセットに、第1の試合218(1)においてビデオゲーム110を実行させ得、さらに、ログイン中のユーザアカウント120の第2のサブセットに関連付けられた複数のクライアントマシン104の第2のサブセットに、第2の試合218(2)においてビデオゲーム110を実行させ得る。
【0066】
機械学習された信頼スコア118がマッチメイキングプロセスの要因として使用されるため、マルチプレイヤーモードにおいて本来のプレイ方法でビデオゲームをプレイすることを所望するユーザに対しゲーム体験を改善させ得る。これは、本明細書に記載の技法およびシステムを使用して、悪質な行動(例えば、チート行為)を行う可能性の高いプレイヤーを対戦させ、これらのプレイヤーを、ビデオゲームを正当にプレイする可能性の高い他の信頼できるプレイヤーから隔離することができるからである。
【0067】
図6は、ハンドヘルドデバイス602の例示的な構成要素を例示するブロック図を含む例示的な環境600を例示する図であり、図6は、リモートコンピューティングシステム106によって受信されたセンサデータ604が機械学習された信頼スコア付けにどのように使用され得るかを示す。図6のハンドヘルドデバイス602は、本明細書に記載されるように、ビデオゲームプラットフォームと相互作用するためにユーザ102によって使用され得る。例えば、ユーザ102は、ハンドヘルドデバイス602を、その上でビデオゲームクライアント(例えば、ビデオゲーム110をプレイするためのゲームソフトウェア)を実行しているクライアントマシン104とペアリングしてもよい。ハンドヘルドデバイス602がクライアントマシン104とペアになり、それと通信することが可能になると(例えば、クライアントマシン104へ/クライアントマシン104からデータを送信/受信することによって)、ハンドヘルドデバイス602は、ユーザアカウント120にハンドヘルドデバイス602を登録し、リモートコンピューティングシステム106から利用可能なビデオゲーム110にアクセスし、およびハンドヘルドデバイス602を使用してビデオゲーム110をプレイするなど、本明細書に記載のビデオゲームプラットフォームと相互作用するために使用することができる。
【0068】
ハンドヘルドデバイス602は、ユーザ102の一方または両方の手によって保持されるように設計され、ユーザ102の手の指および/または親指によって操作される1つ以上の指操作制御部で構成されたゲームコントローラなどのハンドヘルドゲームコントローラを表し得る。いくつかの実施形態では、ハンドヘルドデバイス602は、三次元(3D)空間でゲームコントローラの移動(例えば、パンニング、回転、傾斜など)によって操作するようにさらに構成され得る。ハンドヘルドデバイス602は、携帯電話(例えば、スマートフォン)、タブレットコンピュータ、ポータブルデジタルアシスタント(PDA)、ウェアラブルコンピュータ(例えば、スマートウォッチ、ヘッドマウントディスプレイ(HMD))、ポータブルゲームプレイヤー、および/または任意の同様のハンドヘルド電子デバイスなどの、任意の他の適切な種類のハンドヘルドデバイスを表し得ることを理解されたい。「ハンドヘルド」という用語は、本明細書でハンドヘルドデバイス602を説明するために使用されるとき、デバイスがユーザ102の手によって保持されるか、またはユーザ102の体の別の部分によって保持されるかにかかわらず、ユーザ102によって保持されるように構成されているデバイス(例えば、この用語が本明細書で使用される際、「ハンドヘルド」デバイスと見なされる手首、腕、脚、腰、頭部などに装着されるウェアラブルデバイス)を意味する。
【0069】
図6に示されるように、ハンドヘルドデバイス602は、指操作制御部(例えば、ジョイスティック、トラックパッド、トリガ、押下可能なボタンなど)、潜在的に他の種類の入力または出力デバイス、例えば、タッチスクリーン、ユーザの音声入力などの音声入力を受信するためのマイクロフォン、ハンドヘルドデバイス602の動きおよび/またはユーザ102の手などのジェスチャ入力を受信するための入力デバイスとして機能することができるカメラまたは他の種類のセンサ(例えば、センサ610)などの1つ以上の入力/出力(I/O)デバイス608を含む。いくつかの実施形態において、追加の入力デバイスは、キーボード、キーパッド、マウス、タッチスクリーン、ジョイスティック、調節ボタン等の形式で提供可能である。入力デバイスは、電源およびリセットボタンに加えて、音量を上げ下げするための基本的な音量調節ボタン等の制御機構をさらに具備し得る。入力デバイスは、ユーザ102の生体認識/認証のために、指紋または手形を取得する、ユーザの眼および/または顔をスキャンする、ユーザの声をキャプチャするなど、ユーザ102の生体認証データの入力を容易にすることができる。
【0070】
一方、出力デバイスは、ディスプレイ、発光素子(例えば、LED)、触覚の知覚を作り出すバイブレーター、スピーカ(例えば、ヘッドホン)などを含み得る。例えば、電源がオンであるときなどの状態を示すための単純な発光素子(例えば、LED)も存在し得る。いくつかの実施例が提供されたが、ハンドヘルドデバイス602は、追加的または代替的に、任意の他の種類の出力デバイスを含んでもよい。いくつかの事例では、1つ以上の出力デバイスによる出力は、入力デバイスのうちの1つ以上によって受信された入力に基づいてもよい。例えば、制御部の作動により、制御部に隣接した(例えば、真下に)、または任意の他の場所に設置されたバイブレーターによる触覚応答の出力を得ることができる。
【0071】
加えて、ハンドヘルドデバイス602は、ネットワークおよび/または1つ以上のリモートシステム(例えば、アプリケーション、ゲームコンソール、無線アクセスポイントなどを実行するクライアントマシン104)への無線接続を容易にするための1つ以上の通信インターフェース612を含み得る。通信インターフェース612は、Wi-Fi、Bluetooth、無線周波数(RF)などの1つ以上の種々の無線技術を実装し得る。ハンドヘルドデバイス602は、ネットワーク、接続された周辺デバイス、または他の無線ネットワークと通信するプラグインネットワークデバイスへの有線接続を容易にする物理ポートをさらに含み得ることを理解されたい。
【0072】
例示された実装形態では、ハンドヘルドデバイス602は、1つ以上のプロセッサ614およびコンピュータ可読媒体616をさらに含む。いくつかの実装形態では、プロセッサ614は、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、CPUおよびGPUの両方、マイクロプロセッサ、デジタル信号プロセッサ、または当該技術分野で既知の他の処理ユニットもしくは構成要素を含み得る。代替的にまたは追加的に、本明細書に記載されている機能性は、1つ以上のハードウェアロジック構成要素によって、少なくとも部分的に実行され得る。例えば、非限定的に、使用され得るハードウェアロジック構成要素の例示的な種類としては、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップシステム(SOC)、複合プログラマブル論理デバイス(CPLD)などが挙げられる。加えて、プロセッサ614の各々は、プログラムモジュール、プログラムデータ、および/または1つ以上のオペレーティングシステムも記憶し得る、その独自のローカルメモリを保有し得る。
【0073】
コンピュータ可読媒体616は、揮発性および不揮発性メモリ、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装された、取り外し可能および取り外し不可能な媒体を含み得る。そのようなメモリとしては、限定されるものではないが、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多目的ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、RAIDストレージシステム、または所望の情報を記憶するために使用され得、コンピューティングデバイスによってアクセスされ得る、任意の他の媒体が挙げられる。コンピュータ可読媒体616は、コンピュータ可読媒体616に記憶された命令を実行するためにプロセッサ614によってアクセス可能な任意の利用可能な物理媒体であり得る、コンピュータ可読記憶媒体(「CRSM」)として実装され得る。1つの基本的な実装形態では、CRSMは、ランダムアクセスメモリ(「RAM」)およびフラッシュメモリを含み得る。他の実装形態では、CRSMには、読み出し専用メモリ(「ROM」)、電気的に消去可能なプログラマブル読み出し専用メモリ(「EEPROM」)、または所望の情報を記憶するために使用され得、プロセッサ614によってアクセスされ得る、任意の他の有形媒体が含まれ得るが、これらに限定されない。
【0074】
命令、データストア等の複数のモジュールは、コンピュータ可読媒体616内に記憶され、プロセッサ614上で実行するように構成可能である。いくつかの例示的な機能モジュールは、同一の機能が、ハードウェア、ファームウェア内、またはチップ(SOC)上のシステムとして、その代わりとして、実装可能であるが、コンピュータ可読媒体616に記憶され、プロセッサ614上で実行されるように図示される。
【0075】
オペレーティングシステムモジュール618は、他のモジュールの有益性のために、ハンドヘルドデバイス602内でハードウェアを管理し、ハンドヘルドデバイス602に連結されるように構成され得る。加えて、コンピュータ可読媒体616は、ハンドヘルドデバイス602が、通信インターフェース612を介して、アプリケーション(例えば、ゲームアプリケーション)、ゲームコンソール、リモートコンピューティングシステム106、または同様のものを実行するクライアントマシン104(例えば、PC)などの1つ以上の他のデバイスと通信することを可能にするネットワーク通信モジュール620を記憶し得る。コンピュータ可読媒体616は、ハンドヘルドデバイス602上で、またはハンドヘルドデバイス602に接続されたクライアントマシン104上で実行するゲーム(または他のアプリケーション)に関連付けられたデータを記憶するためのゲームセッションデータベース622をさらに含み得る。コンピュータ可読媒体616はまた、クライアントマシン104(例えば、PC、ゲームコンソールなど)、リモートコンピューティングシステム106、および同様のものなどのハンドヘルドデバイス602が連結するデバイスと関連付けられたデータを記憶するデバイス記録データベース624を含み得る。コンピュータ可読媒体616は、ハンドヘルドデバイス602をゲームコントローラとして機能するように構成するゲーム制御命令626、およびハンドヘルドデバイス602を他の非ゲームデバイスのコントローラとして機能するように構成する汎用制御命令628をさらに記憶し得る。
【0076】
ハンドヘルドデバイス602はまた、1つ以上のセンサ610を含むように示される。例えば、センサ610は、1つ以上のジャイロスコープ、および/または加速度計、および/または磁力計、および/またはコンパス、または任意の他の適切な動きセンサを含み得る、慣性測定ユニット(IMU)などの動きセンサを含み得る。いくつかの実施形態では、センサ610は、独立ジャイロスコープ、加速度計、磁力計、コンパスなどとして実装され得、必ずしもIMUとして実装され得るわけではない。いくつかの実施形態では、これらのセンサのうちの1つ以上は、6成分動き検知を提供するために利用され得る。例えば、IMUは、3D空間の周りの並進運動および/または回転運動を示すセンサデータ604を検知および生成するように構成され得る。そのようなセンサ610によって生成されたセンサデータ604は、3D空間における並進運動(X、Y、およびZ運動)の程度、速度、および/または加速度、ならびに3D空間における回転運動(ロール、ピッチ、およびヨー)の程度、速度、および/または加速度に関連し得る。測定値は、デカルト(X、Y、およびZ)座標系または球面座標系などの3D座標系の観点から生成され得る。センサデータ604は、例えば、変位(例えば、前の時間ログからの変位)、速度、および/または並進運動(変数:d、v、aによって表される)および角運動(変数:θ、ω、αによって表される)の加速度の観点からの測定値を含み得る。センサデータ604は、センサデータ604の履歴を収集し、ハンドヘルドデバイス602に一時的に、または永久的に記憶することができるように、例えば、任意の適切な時間間隔で、センサデータ604が生成および/または送信される時間をさらに含み得る。
【0077】
別の例として、センサ610は、タッチセンサへの指、手のひらなどの物体の近接性を検知するように構成されたタッチセンサを含むことができ、これは、静電容量性タッチセンサ、抵抗性タッチセンサ、赤外線タッチセンサ、指102の近接性を検出するために音響音波を利用するタッチセンサ、または任意の他の種類のタッチセンサなどの任意の適切なタッチ検知技術に基づき得る。例えば、タッチセンサは、表面または指操作制御部への指の近接性を検出するために、デバイスの表面の下または表面上、および/または指操作制御部内または指操作制御部上に配置されてもよい。近接性(例えば、表面の上を接触またはホバリングする指)の検出に応答して、タッチセンサは、指の近接性を示すセンサデータ604を生成してもよい。タッチセンサなどは、ユーザの102のグリップを検出するためにハンドヘルドデバイス602のハンドルに、および/またはトラックパッド、ジョイスティック、ボタンなどを含む、様々な制御部内に埋め込まれてもよい。静電容量ベースの検知を利用する実装形態では、タッチセンサは、電極(例えば、静電容量型センサの送信機電極および受信機電極)を含み得、電極が電極における静電容量変化を測定するように構成されるように電極に電圧を印加することができ、これは、センサ610への物体の近接性を示す静電容量値の形態でセンサデータ604に変換され得る。例えば、静電容量ベースのタッチセンサの電極における静電容量変化は、電極に近接している物体(指など)によって影響され得る。生の静電容量を近接値にデジタル化して、センサデータ604を生成することができる。
【0078】
別の例として、センサ610は、力検知抵抗器(FSR)などの圧力センサを含み得る。例えば、FSRは、抵抗膜(例えば、インク組成物などの半導体材料)から離間された導電性材料、ならびに抵抗材料がアクチュエータに印加された圧縮力の印加下で導電性材料に接触するように抵抗膜に力を伝達するように構成されたアクチュエータを含み得る。FSRは、可変力に応答して様々な抵抗を示し、抵抗値に対応するセンサデータ604を生成し得る。FSRは、「シャントモード(ShuntMode)」FSRまたは「スルーモード(ThruMode)」FSRであり得る。シャントモードFSRでは、抵抗膜から離間した導電性材料は、複数の櫛形金属フィンガであり得る。力がFSRのアクチュエータに加えられると、抵抗膜は、金属フィンガをシャントする互いに噛み合った金属フィンガのいくつかと接触し、それによって、FSRの出力端子にわたって抵抗を変化させ、これをFSR値にデジタル化して、センサデータ604を生成することができる。いくつかの実施形態では、圧力センサは、追加的に、または代替的に、圧電センサ、ひずみゲージ、および同様のものなの他の種類の圧力検知機構を含み得る。
【0079】
対応するセンサデータ604を生成するように構成されたセンサ610の他の例は、これらに限定されないが、温度センサ、湿度センサ、カメラ、および同様のものを含み得る。ハンドヘルドデバイス602のセンサ610の種類に関係なく、センサ610は、何らかの方法で、ハンドヘルドデバイス602の物理的状態に関連するセンサデータ604を生成するように構成される。例えば、タッチセンサは、物体(例えば、指)が、タッチセンサを含むデバイス602の一部分(例えば、方向性パッド(Dパッド)、ジョイスティック、トリガボタン、バンパーボタン、セレクタボタンなど)に接触しているか、またはそれに近いかを示すセンサデータ604を生成し得る。別の例として、圧力センサは、物体がデバイス602の一部分に押されているかどうか、およびデバイス602のその部分が物体によって軽くまたは重く押されているかどうかを示すセンサデータ604を生成してもよい。さらに別の例として、動きセンサ(例えば、ジャイロスコープおよび/または加速度計)は、ハンドヘルドデバイス602が、3D空間内の向きおよび/または空間位置で変化したかどうか、および/またはハンドヘルドデバイス602が、急速に、またはゆっくりと移動しているかどうかを示すセンサデータ604を生成してもよい。したがって、ハンドヘルドデバイス602のセンサ610は、デバイス602のこれらおよび他の種類の物理的状態を示すセンサデータ604を生成するように構成される。
【0080】
図6は、ハンドヘルドデバイス602が暗号化ハードウェア630をさらに含み得ることを例示する。例えば、ビデオゲームサービスのサービスプロバイダ、および/または第三者の製造業者は、製造時に、耐タンパー性ハードウェア構成要素を内部に埋め込むように製造される「信頼できる」ハンドヘルドデバイス602を製造し得る。この埋め込みハードウェア構成要素は、図6に示される暗号化ハードウェア630を含んでもよく、これは、次いで、秘密鍵632を記憶してもよい。例えば、秘密鍵632は、ハンドヘルドデバイス602の不揮発性メモリに保持され得る。
【0081】
いくつかの実施形態では、暗号化ハードウェア630は、耐タンパー性である。例えば、暗号化ハードウェア630は、耐タンパー性ケーシング内に含まれてもよく、またはカバーされてもよく、暗号化ハードウェア630は、耐タンパー性ケーシングが損傷された場合にそれ自体を無効にするように構成されてもよい。例えば、暗号化ハードウェア630は、耐タンパー性ケーシングが損傷された場合、またはさもなければ改ざんされた場合、秘密鍵632を消去または削除し、および/またはリモートコンピューティングシステム106にアラートを送信するように構成されてもよい。これは、ユーザが秘密鍵632への不正なアクセスを得る、または少なくとも検出されないアクセスを行うことを困難にし、これにより、秘密鍵632を他のユーザと共有すること、あるいは別のユーザアカウント120を介して「スマーフ」として機能させるために秘密鍵632を使用することを防止する。オンラインゲームにおいて、「スマーフィング」は、別人のアカウントまたはセカンダリアカウントの下でプレイする特定のスキルレベルのプレイヤーが、より低いランクまたはスキルレベルであるように見える行為である。
【0082】
いくつかの実施形態では、ユーザ102は、最初に、ハンドヘルドデバイス602を、彼/彼女のユーザアカウント120(および場合によっては、家族のメンバーアカウントなどの追加のユーザアカウント120)と関連付け、または登録し得る。これは、ハンドヘルドデバイス602の初期登録手順を実行することによって達成され得る。初期登録手順は、例えば、追加されたセキュリティのための二要素認証(2FA)ステップを使用する最初のアクティベーション手順を含んでもよい。例えば、ユーザ102は、例えば、Bluetoothなどの近距離無線プロトコルを使用して、ハンドヘルドデバイス602をハンドヘルドデバイス602の近傍のクライアントマシン104とペアリングしてもよい。ユーザ102は、クライアントマシン104上で、またはユーザ102のモバイルデバイス(例えば、携帯電話)上で実行しているクライアントアプリケーション(例えば、ビデオゲームクライアント)を使用して、彼/彼女のユーザアカウント120にログインしてもよい。ユーザ102がログインすることに応答して、リモートコンピューティングシステム602は、ペアになっているが登録されていない/アクティブ化されていないデバイス602の指示を受信してもよく、例えば、テキストをモバイル番号に、または電子メールをユーザアカウント120で指定された電子メールアドレスに送信することなどによって、アクティブ化コードをユーザ102に送信してもよい。ユーザ102は、アクティベーションコードを取得するためにメッセージにアクセスしてもよく、ユーザの電話またはクライアントマシン104上で実行しているビデオゲームクライアントを介して(例えば、ハンドヘルドデバイス602を使用してアクティベーションコードを入力することによって)アクティベーションコードを入力してもよい。リモートシステム106が所定の時間制限内に正しいアクティベーションコードを受信する場合、ハンドヘルドデバイス602は、ユーザアカウント120内に、ハンドヘルドデバイス602がユーザアカウント120の登録デバイスであること、登録の時間および日付、ハンドヘルドデバイス602がアクティベートされた場所、ならびに同様のものなどを示すことによって、ユーザ102のユーザアカウント120に関連付けられてもよい。リモートコンピューティングシステム106はまた、ユーザアカウント120を、ハンドヘルドデバイス602の秘密鍵632および/またはユーザ102を将来認証する手段としてハンドヘルドデバイス602の入力デバイスによって取得されたユーザ102の生体認証データ(例えば、指紋、アイプリント、フェイスプリント、ボイスプリントなど)に、ユーザ102が将来、自分のユーザアカウント120にログインし、そのユーザアカウント120に登録されたハンドヘルドデバイス602を使用しているときに、関連付けることができる。
【0083】
いくつかの実施形態では、1つのユーザアカウント120から別のユーザアカウント120へのハンドヘルドデバイス602の切り替えをより安全にするために、追加のセキュリティ層が実装され得、これは、例えば、デバイス602が盗まれたまたは紛失した場合、信頼できるハンドヘルドデバイス602の不正使用を防止するのに役立ち得る。例えば、リモートコンピューティングシステム106は、デバイス602が第2のユーザアカウント120に切り替えられることが許可される前に、(例えば、デバイス602を第1のユーザアカウント120から関連付け解除/登録解除し、デバイス602を第2のユーザアカウント120に関連付け/登録することによって)デバイス602を第1のユーザアカウント120に関連付け/登録することができるので、待機期間(例えば、数日間の待機期間)を強制し得る。リモートコンピューティングシステム106は、追加的に、または代替的に、ユーザ102が所与の期間内にユーザアカウント120の間でハンドヘルドデバイス602を切り替えることを許可される回数を制限してもよい(例えば、ユーザ102は、ハンドヘルドデバイス602を1つのユーザアカウント120から別のユーザアカウント120に、1時間のスパンにわたって2回以下切り替えることを許可されてもよい)。これらの追加の層は、信頼できるハンドヘルドデバイス602の不正使用を抑制するのに役立ち得る。
【0084】
ハンドヘルドデバイス602がユーザアカウント120に登録されると、ユーザ102は、ハンドヘルドデバイス602をクライアントマシン104に接続すること(例えば、無線通信リンクを介してクライアントマシン104とデバイス602をペアリングすること)(これは、デバイス記録データベース624を使用する第1のペアリング手順の後に自動的に発生し得る)、およびデバイス602をハンドヘルドゲームコントローラとして使用してビデオゲーム110をプレイすることなどによって、デバイス602を使用してビデオゲームプラットフォームと相互作用し得る。このシナリオでは、クライアントマシン104は、ユーザ102がハンドヘルドデバイス602を操作することによってビデオゲーム110をプレイする間、ビデオゲーム110の画像を表示するために使用することができる。ビデオゲームプラットフォームとの相互作用中の任意の適切な時点で、ハンドヘルドデバイス602は、ハンドヘルドデバイス602の入力デバイスを介してユーザ102の生体認証データ(例えば、指紋、アイプリント、フェイスプリント、ボイスプリントなど)を取得し得、通信インターフェース612を介して、(例えば、クライアントマシン104を介してリモートコンピューティングシステム106に生体認証データをルーティングすることによって)取得された生体認証データをリモートコンピューティングシステム106に送信し得、生体認証データは、ユーザアカウント120を認証し、ユーザ102を認証し、および/またはハンドヘルドデバイス602を認証するためにリモートコンピューティングシステム106によって使用され得る。さらに、ビデオゲームプラットフォームとの相互作用中の任意の適切な時点で、秘密鍵632は、ハンドヘルドデバイス602のロジックによって使用され、デバイス602の使用中にハンドヘルドデバイス602によって送信されるゲーム制御データ606および/またはセンサデータ604などのデバイス出力を暗号化し得る。例えば、秘密鍵632は、任意の適切な暗号化アルゴリズムを使用してデータを暗号文形式に変換するためにゲーム制御データ606および/またはセンサデータ604に署名するために使用され得、デバイス602は、通信インターフェース612を介して、暗号化されたデータを(例えば、クライアントマシン104を介して暗号化されたデータをリモートコンピューティングシステム106にルーティングすることによって)リモートコンピューティングシステム106に送信してもよい。リモートコンピューティングシステム106は、信頼できるハンドヘルドデバイスのためのデータストア116(またはデータベース116)内の秘密鍵のリポジトリを維持してもよく、これは、それがリモートコンピューティングシステム106に送信するデータを暗号化するためにハンドヘルドデバイス602によって使用される秘密鍵632のコピーを含み得る。リモートコンピューティングシステム106は、信頼できるハンドヘルドデバイスの製造の時点またはその後に、データストア116に秘密鍵を記録した可能性がある。リモートコンピューティングシステム106にアクセス可能な秘密鍵を用いて、システム106は、受信データが予想される秘密鍵632で暗号化されたことを検証するために、ハンドヘルドデバイス602から受信する暗号化されたデータを復号化することができる。したがって、リモートシステム106は、デバイス出力を暗号化するためにハンドヘルドデバイス602によって使用された秘密鍵632の知識を有し、秘密鍵632の他の可能な使用のうち、ユーザアカウント120を認証し、ユーザ102を認証し、および/またはハンドヘルドデバイス602を認証するために、秘密鍵632のそのコピーを使用することができる。いくつかの実施形態では、リモートコンピューティングシステム106は、ログイン中のユーザアカウント120に関連付けられたデータを受信することに応答して、ユーザアカウント120の各ログイン上でユーザ102を認証するコード(例えば、個人識別番号(PIN)、パスコード、パスフレーズなど)を入力することをユーザ102に要求してもよい。そのような要求は、ユーザ102の2FAデバイスを介して(例えば、携帯電話を介して、クライアントマシン104を介してなど)送信され得、要求への応答は、ユーザ102の同じ2FAデバイスからリモートシステム106によって受信され得る。いくつかの実施形態では、対応するログイン中のユーザアカウント120と関連付けられた既に登録されたハンドヘルドデバイス602を使用するために、追加のユーザアクションは必要とされない。すなわち、デバイス602が登録されているユーザアカウント120に関連付けられたハンドヘルドデバイス602を使用するために必要とされ得るのは、その秘密鍵632を使用してデータを暗号化し、暗号化されたデータをリモートコンピューティングシステム106に送信するデバイス602と、受信したデータが予想される秘密鍵632で暗号化されたことを検証するためにデータを復号化するリモートコンピューティングシステム106である。例えば、リモートシステム106は、データのチャンクをハンドヘルドデバイス602に送信し得、デバイスは、データのチャンクを暗号化し、暗号化されたデータをリモートシステム106に戻し得、次いで、リモートシステム106は、全ての鍵632自体を送信する必要なしに、暗号化が正しく行われたことを検証することができる。
【0085】
例えば、リモートコンピューティングシステム106にアクセス可能なデータストア116(またはデータベース116)は、ハンドヘルドデバイス602などの複数の信頼できるハンドヘルドデバイスに関連付けられた生体認証データおよび/または複数の秘密鍵を維持してもよく、リモートコンピューティングシステム106は、クライアントマシン104および/またはハンドヘルドデバイスから受信したデータを暗号化するために使用される、生体認証データおよび/または秘密鍵632などの秘密鍵を比較して、受信した生体認証データおよび/または秘密鍵が、データベース116内に維持された生体認証データおよび/または秘密鍵のいずれかと一致するかを決定することができる。これらの動作は、本明細書で説明されるように、認証目的および/または信頼スコアのコンピューティングのために実行され得る。言い換えれば、データベース116内に維持された、生体認証データと一致する生体認証データ、および/または秘密鍵と一致する秘密鍵632で暗号化された暗号化データの受信は、ユーザ102、デバイス602、および/またはそれに関連付けられたユーザアカウント120を認証するために使用され得、および/または一致する生体認証データおよび/または一致する秘密鍵632で暗号化された暗号化データの受信は、関連付けられたユーザアカウント120の信頼スコアを生成するために使用され得、これは、プレイヤーのマッチメイキングに使用され得る。この意味で、リモートコンピューティングシステム106に、一致する生体認証データおよび/または一致する秘密鍵632を使用して暗号化された暗号化データを提供するハンドヘルドデバイス602に関連付けられたユーザアカウント120は、(例えば、いくつかの場合では、追加のユーザアクションなしで)シームレスに認証することができ、非人間のプレイヤー(例えば、チート行為のために設計されたソフトウェア)と関連付けられている可能性の高い「信頼できない」ユーザアカウント120と一致するのとは対照的に、他の人間のプレイヤーのユーザアカウント120と一致する可能性がより高い。
【0086】
したがって、ユーザ102がハンドヘルドデバイス602を利用して、例えば、それぞれのクライアントマシン104上で1つ以上のビデオゲーム110をプレイするために、ビデオゲームプラットフォームと相互作用するとき、センサデータ604およびゲーム制御データ606は、クライアントマシン104に送信され、クライアントマシン104からリモートコンピューティングシステム106に転送されてもよい。ゲーム制御データ606は、ビデオゲーム110の態様を制御するために使用可能であり、それによって、ビデオゲーム110によって処理され、ビデオゲーム110の次のフレームをどのようにレンダリングするかを決定する。センサデータ604は、ジャイロスコープによって生成された生のデータ、加速度計によって生成された生のデータ、および/またはタッチセンサ(例えば、静電容量性タッチパッド)によって生成された生のデータなどの生の、未フィルタリングのセンサデータ604を表す。ストリーミング実装形態では、ビデオゲーム110は、リモートコンピューティングシステム106上で実行され得、リモートコンピューティングシステム106は、ビデオゲーム110データをキャプチャし得、ネットワーク108を介してビデオゲーム110データをユーザ102のクライアントマシン104に送信し得る。これは、リモートコンピューティングシステム106がビデオゲーム110の状態をキャプチャし、ビデオおよび音声データをビットに符号化し、コンピュータネットワーク108を介してクライアントマシン104に符号化されたビットを送信することを含み得、クライアントマシン104上で実行するアプリケーション(例えば、ビデオゲームクライアント)は、所与のフレームについてクライアントマシン104のディスプレイを介して画像、およびスピーカを介して音声を出力するためにビットを復号化し得る。ユーザ102は、ハンドヘルドデバイス602を操作することによって、自分が見ているビデオおよび音声に反応し得る。例えば、ユーザ102は、ハンドヘルドデバイスの制御を作動させ(例えば、方向パッド(Dパッド)を押下し、ジョイスティックを偏向させ、トラックパッド上の指をスワイプし)得、および/またはハンドヘルドデバイス602を3D空間内で傾けまたは移動させ、ビデオゲーム110の態様を制御し得る。ハンドヘルドデバイス602の動作に応答して、ハンドヘルドデバイス602は、無線アクセスポイントを介して直接的に、コンピュータネットワーク108を介して、またはハンドヘルドデバイス602が関連付けられているクライアントマシン104を介して、リモートコンピューティングシステム106に送信されるゲーム制御データ606を生成し得る。いずれの場合も、ゲーム制御データ606は、ビデオゲーム110の態様を制御するためにリモートコンピューティングシステム106にリアルタイムで送信され得る。例えば、ゲーム制御データ606は、ビデオゲーム110によって処理され、クライアントマシン104のディスプレイ上のシーンによって表される仮想世界内で仮想オブジェクトを移動させることによって、ビデオゲーム110の仮想オブジェクト(例えば、プレイヤー制御キャラクタ)の運動を制御することができる。
【0087】
ゲーム制御データ606は、フィルタリング/減衰されたセンサデータ604および/または増幅されたセンサデータ604などの、デバイス602のセンサ610によって生成された少なくともいくつかのセンサデータ604を含み得るが、図6に描写されるように、デバイス602によってリモートコンピューティングシステム106に送信されるセンサデータ604は、ビデオゲーム110の態様を制御するために使用されないが、関連付けられたユーザアカウント120のために機械学習された信頼スコアを生成するために使用される生の、未フィルタリングのセンサデータ604を表す。
【0088】
図6のステップ1において、コンピューティングシステム106は、データストア116からサンプリングされた少なくとも履歴センサデータ604を使用して機械学習モデル216を訓練し得る。例えば、コンピューティングシステム106は、ビデオゲームサービスに登録された、ユーザアカウントのサンプリングされたセット120に関連付けられた履歴センサデータ604の一部分にアクセスしてもよく、サンプリングされたセンサデータ604を使用して、機械学習モデル216を訓練してもよい。本明細書で説明するように、履歴センサデータ604は、ユーザ102が彼らのハンドヘルドデバイス602を使用してビデオゲームプラットフォームと相互作用する結果として、履歴ゲーム制御データ606と共に、クライアントマシン104から受信された可能性がある。いくつかの実施形態では、訓練データとして使用されるセンサデータ604の一部分は、特徴のセットによって表され、サンプリングされたセットの各ユーザアカウント120は、対応するユーザアカウント120に関連付けられた履歴ゲーム制御データ606が、ソフトウェアを使用して合成および/または修正されているのとは対照的に、人間のプレイヤーがデバイス602を保持および操作している間に、ハンドヘルドデバイス602によって生成されたかどうかを示すラベルでラベル付けされる。言い換えれば、人間のユーザ102がハンドヘルドデバイス602を操作することによって人間によって生成されたゲーム制御データ606に関連付けられていると決定されたユーザアカウント120は、そのようにラベル付けされ得るが、合成および/または修正されたゲーム制御データ(すなわち、ビデオゲームの態様を制御するためにソフトウェアによって合成および/または修正されたデータ)に関連付けられていると決定された他のユーザアカウント120は、そのようにラベル付けされ得る。このようにして、教師あり学習アプローチを採用して、機械学習モデル216を訓練し、チート行為のために設計された非人間のソフトウェアとは対照的に、ハンドヘルドデバイス602を操作する正当な人間のプレイヤーである可能性の高いプレイヤーを予測することができる。
【0089】
例えば、人間がハンドヘルドデバイス602を操作するとき、意図的ではない運動であるハンドヘルドデバイス602の微かな運動があってもよいが、それらは、ハンドヘルドデバイス602の1つ以上の物理センサ610によって検出することができ、結果としてセンサデータ604に示されてもよい。そのようなセンサデータ604がこれらのニュアンスを示すという考え方に基づいて、機械学習モデル216は、センサデータ604のこれらのニュアンス、例えば、ハンドヘルドデバイス602が機械的に(例えば、人間のユーザ102によって)操作された結果、実際の物理的なハンドヘルドデバイス602の物理センサ610によって生成された運動、指の近接性など、を認識することによって、人間のプレイヤーと非人間のプレイヤーとを区別するために、訓練データとしてセンサデータ604で訓練され得る。逆に、センサデータ604が受信されるが、ハンドヘルドデバイス602の人間の操作から生じる予想されるニュアンスを示さない場合、対応するゲーム制御データ606は、実際の有形のハンドヘルドデバイス602の操作の結果として生成されたものではなくて、代わりにソフトウェアを使用して合成および/または修正されたものであると推測され得る。例えば、チート行為を行うプレイヤーは、(例えば、プログラムでマウスカーソルをターゲットに移動させ、自動的に武器を発射することによって)チート行為者のアバターの動きを自動化するように構成された、第三者のソフトウェアを利用してもよいし、または独自のソフトウェアを開発してもよい。このいわゆる「エイムボット」ソフトウェアは、人間のプレイヤーが実際にビデオゲーム110をプレイしていないように、人間のプレイヤーの代わりにビデオゲーム110を効果的にプレイし、ソフトウェアは、実際のゲーム制御データ606が処理されるのと同じ方法で、ビデオゲーム110によって処理されるゲーム制御データ606を合成および/または修正し、それによって、チート行為をするプレイヤーに、チート行為をしていない正当な人間のプレイヤーに対する優位性を与える。そのような合成および/または修正されたゲーム制御データ606が検出されなかった場合、コンピュータ化されたアルゴリズムは、マルチプレイヤーゲームにおけるチート行為をしているプレイヤーのパフォーマンスを向上させるために普遍的かつ広く使用されるようになり得、これは、ビデオゲーム110を合法的にプレイしたい、およびこれらのコンピュータ化されたアルゴリズムと対戦され得る人間のプレイヤーの経験を台無しにする可能性がある。これらの事例では、ハンドヘルドデバイス602の人間の操作によって生成されるセンサデータ604を模倣しようとする試みは、人間のプレイヤーと、エイムボットなどの非人間のプレイヤーとを区別するように訓練された機械学習モデル216によって検出することができ、これらの、および他の種類のチート行動は、マルチプレイヤービデオゲームの彼ら自身の対戦において非人間のプレイヤーを隔離することなどによって、是正することができる。
【0090】
機械学習モデル216は、上記の履歴センサデータ604に加えて、またはその代わりに、追加データを使用して訓練され得ることを理解されたい。例えば、履歴ゲーム制御データ606は、時間の経過とともにクライアントマシン104から収集され得、ゲーム制御データ606は、ビデオゲーム110の態様を制御するために、人間のユーザによってハンドヘルドデバイスに提供されたユーザ入力に基づいて生成されている。これらのユーザ入力は、ボタンの押下、ジョイスティックの偏向、トラックパッド上の指のスワイプなどの、ハンドヘルドデバイス602上の制御の作動、および/または3D空間内のハンドヘルドデバイス602の傾きまたは運動を含み得る。したがって、履歴ゲーム制御データ606(例えば、ビデオゲーム110の態様を制御するためなど、ハンドヘルドデバイス602に提供されたユーザ入力を示すデータ)は、履歴センサデータ604と共に、またはその履歴センサデータの使用の代わりに、訓練データとして使用されてもよい。訓練データとして履歴センサデータ604および履歴ゲーム制御データ606の両方を使用することで、ゲーム制御データ606と同時に生成されたセンサデータ604との間で相関関係を作成することが可能になる。さらに別の例として、無線通信データは、時間の経過とともにクライアントマシン104から収集されてもよく、履歴無線通信データは、履歴センサデータ604と共に、または履歴センサデータの使用の代わりに、訓練データとして使用されてもよい。この無線通信データとしては、これらに限定されないが、無線(例えば、WiFi、Bluetoothなど)信号強度値、ハンドヘルドデバイス602から関連付けられたクライアントマシン104に送信されたドロップされたデータパケットのインスタンスを示すデータ、ハンドヘルドデバイス602から関連付けられたクライアントマシン104に送信されたドロップされたデータパケットの数などが挙げられ得る。この無線通信データは、ハンドヘルドデバイス602によって、クライアントマシン104、および/またはユーザ102の環境にローカルである任意の他の適切なデバイスによって取得することができる。
【0091】
上述のように、訓練データには、特徴およびラベルの2つの構成要素を含めることができる。しかしながら、いくつかの実施形態では、機械学習モデル216を訓練するために使用される訓練データは、ラベル付けなしであり得る。したがって、機械学習モデル216は、教師あり学習、教師なし学習、半教師あり学習、強化学習など、任意の適切な学習技法を使用して訓練可能であり得る。訓練データに含まれる特徴は、訓練データの属性に関する定量化可能な情報のn次元特徴ベクトルの形式など、特徴のセットで表すことができる。訓練データに含まれる例示的な特徴は、限定するものではないが、センサデータ604の値(例えば、静電容量値、抵抗値、変位値、速度値、加速度値、温度値、湿度値など)、ゲーム制御データ606の値(例えば、ポテンショメータおよび指操作制御部の他のスイッチによって生成された値)、生体認証データ値、秘密鍵632を使用してリモートコンピューティングシステム106に送信されたデータを暗号化したハンドヘルドデバイス602に関連付けられた秘密鍵632の値を含み得、秘密鍵632(したがって、信頼できるハンドヘルドデバイス602)がユーザアカウント120に関連付けられ/登録された時間、信頼できるハンドヘルドデバイス602(および/またはその秘密鍵632)がユーザアカウント120に使用された回数、無線通信データ値(例えば、無線信号強度値、ハンドヘルドデバイス602から関連付けられたクライアントマシン104に送信されたドロップされたデータパケットのインスタンスを示す値、ハンドヘルドデバイス602から関連付けられたクライアントマシン104に送信されたドロップされたデータパケットの数または頻度を示す値)、信頼できるハンドヘルドデバイス602(および/またはその秘密鍵632)が異なるユーザアカウント120の間で切り替えられた回数、プレイヤーがビデオゲーム110をプレイするために費やした一般的な時間、プレイヤーが特定のビデオゲーム110をプレイするために費やした時間、プレイヤーがビデオゲーム110にログインしてプレイした日の時間、プレイヤーの試合履歴データ、例えば、合計スコア(試合ごと、ラウンドごとなど)、ヘッドショットパーセンテージ、キルカウント、死亡数、アシスト数、プレイヤーランクなど、プレイヤーのチート行為の報告の数および/または頻度、プレイヤーのチート行為の無罪の数および/または頻度、プレイヤーのチート行為の有罪の数および/または頻度、ビデオゲーム中のチート行為のプレイヤーを検出した機械学習モデルによって出力された信頼値(スコア)、単一のプレイヤーに関連付けられたユーザアカウント120の数(これは、複数のユーザアカウント120に結び付けられた共通のアドレス、電話番号、支払い手段などから推測され得る)、ユーザアカウント120がビデオゲームサービスにどのくらいの期間登録されているか、プレイヤーに結び付けられた以前に禁止されたユーザアカウント120の数、ビデオゲームプラットフォーム上のプレイヤーの金銭的トランザクションの数および/または頻度、トランザクションごとのドル量、プレイヤーのユーザアカウント120に関連付けられた金銭的価値のデジタルアイテムの数、ユーザアカウント120が手を変えた(例えば、異なる所有者/プレイヤー間で転送された)回数、ユーザアカウント120がプレイヤー間で転送される頻度、プレイヤーがビデオゲームサービスにログインした地理的位置、ユーザアカウント120に関連付けられたいくつかの異なる支払い手段、電話番号、郵送先など、および/またはこれらのアイテムがどのくらいの頻度で変更されたか、ならびに/あるいはユーザアカウントに関連付けられたゲーム制御データが、ソフトウェアを使用して合成および/または修正されたのとは対照的に、人間のプレイヤーによって保持および操作されたハンドヘルドデバイス602によって生成された確率を示す信頼スコア118を計算するのに関連し得る任意の他の適切な特徴を含む。
【0092】
さらに、図6のステップ1の訓練の一部として、訓練構成要素210は、機械学習のための重みを設定し得る。これらの重みは、履歴センサデータ604を含む、データストア116内の履歴データから導出されるとき、訓練データに含まれる特徴のセットに適用され得る。いくつかの実施形態では、訓練プロセス中に設定される重みは、機械学習モデルの内部のパラメータに適用され得る(例えば、ニューラルネットワークの隠れ層内のニューロンに対する重み)。機械学習モデルのこれらの内部パラメータは、特徴のセットのうちの個々の入力特徴と1対1でマッピングされても、またはマッピングされなくてもよい。重みは、任意の所与の特徴またはパラメータが、訓練された機械学習モデル216によって出力されるスコア118に及ぼす影響を示すことができる。
【0093】
図6のステップ2において、コンピューティングシステム106は、訓練された機械学習モデル216を使用して、1つ以上の登録ユーザアカウント120をスコア付けし得る。例えば、コンピューティングシステム106は、1つ以上のクライアントマシン104から、1つ以上のログイン中の登録ユーザアカウント120に関連付けられた新しいセンサデータ604および新しいゲーム制御データ606を受信し得る。例示的な実施例において、コンピューティングシステム106は、ログイン中のユーザアカウント120が現在ビデオゲーム110をプレイしている、または開始していることを示す情報122を受信し得る。ビデオゲーム110は、インストールされたクライアントアプリケーションを介してクライアントマシン104上で実行してもよく、またはビデオゲーム110は、リモートコンピューティングシステム106上で実行している間にクライアントマシン104にストリーミングされてもよい。いずれにしても、プレイヤー102が自分のユーザアカウント120でログインし、特定のビデオゲーム110を実行し、マルチプレイヤーモードでのプレイを要求すると、それぞれのクライアントマシン104は、同等を示す情報122をコンピューティングシステム106に提供し得、センサデータ604およびゲーム制御データ606は、ビデオゲーム110が開始され、プレイヤーがゲームプレイを開始すると、クライアントマシン104からリモートコンピューティングシステム106に、リアルタイムで、ストリーミングされてもよい。コンピューティングシステム106は、訓練された機械学習モデル216への入力として受信する新しいセンサデータ604を提供し得、訓練された機械学習モデル216からの出力として、ログイン中の、新しいゲーム制御データ606に関連付けられた個々のユーザアカウント120に関連付けられたスコア118を生成し得る。スコア118は、この例では、新しいゲーム制御データ606が、クライアントマシンに関連付けられたハンドヘルドデバイス602によって生成された確率に関連し得る。この場合、高い信頼スコアは、信頼できるユーザアカウント120(例えば、ハンドヘルドデバイス602を操作する人間のプレイヤーに関連付けられている可能性の高いもの)を示し、一方、低い信頼スコアは、信頼できないユーザアカウント120(例えば、実際のハンドヘルドデバイス602によって生成された実際のゲーム制御データ606に類似するように見える合成および/または修正されたゲーム制御データ606を生成する、ソフトウェアなどの非人間のプレイヤーに関連付けられている可能性の高いもの)を示す。いくつかの実施形態において、スコア118は、[0,1]の範囲で正規化される変数である。この信頼スコア118は、新しいゲーム制御データ606がハンドヘルドデバイス602によって生成された確率と単調な関係を有し得る。スコア118と実際の確率との関係は、単調ではあるが、直線関係である場合と、直線関係でない場合があり得る。もちろん、スコア付けは、新しいゲーム制御データ606がハンドヘルドデバイス602によって生成されたか、またはソフトウェアを使用して合成および/または修正されたかを予測するために、任意の適切な様式で実装することができる。
【0094】
いくつかの実施形態において、新しいゲーム制御データ606自体は、訓練された機械学習モデル216への追加の入力として提供され得、訓練された機械学習モデル216への追加の入力として提供されたゲーム制御データ606に少なくとも部分的に基づいてスコア118を生成し得る。例えば、ユーザ102は、ハンドヘルドデバイス602の制御部を作動させること(例えば、方向パッド(Dパッド)などのボタンを押下すること、ジョイスティックを偏向させること、トラックパッド上で指をスワイプすることなど)によって、および/またはハンドヘルドデバイス602を3D空間内で傾けるまたは移動させて、ビデオゲーム110の態様を制御することによって、ゲームプレイ中にハンドヘルドデバイス602を操作してもよい。ハンドヘルドデバイス602のユーザの操作に応答して、ハンドヘルドデバイス602は、リモートコンピューティングシステム106に送信されるゲーム制御データ606を生成してもよい。この新しいゲーム制御データ606は、ハンドヘルドデバイス602に提供されるユーザ入力を示すものであり、訓練された機械学習モデル216への入力として提供され得る。新しいゲーム制御データ606は、訓練された機械学習モデル216への入力としてセンサデータ604を提供することに加えて、訓練された機械学習モデル216への入力として提供され得ることを理解されたい。訓練された機械学習モデル216への入力としてゲーム制御データ606を提供する例示的な理由は、ハンドヘルドデバイス602にユーザ入力を提供する人間が、同じ種類のユーザ入力を模擬するコンピュータプログラムよりも「雑音が大きい」か、またはそれほどクリーンではない場合があることである。したがって、訓練された機械学習モデル216は、クライアントマシン104から受信され、訓練された機械学習モデル216への入力として提供されたゲーム制御データ606に少なくとも部分的に基づいて、人間のユーザと非人間のプレイヤー(例えば、チート行為するように設計されたソフトウェア)とを区別するように訓練することができる。
【0095】
いくつかの実施形態では、新しい無線通信データは、訓練された機械学習モデル216への追加の入力として提供され得、訓練された機械学習モデル216への追加の入力として提供された無線通信データに少なくとも部分的に基づいてスコア118を生成し得る。例えば、無線(例えば、WiFi、Bluetoothなど)信号強度は、クライアントマシン104など、それが通信する別のデバイスに関連するハンドヘルドデバイス602に関して決定され得、この信号強度は、環境内の無線信号の干渉および/またはハンドヘルドデバイス602がそれと通信する別のデバイスから離間される距離に応じて変動(例えば、増加または減少)し得る。無線信号強度値の存在、および/または時間の経過とともに変動する(例えば、変化する信号強度値を観察する)無線信号強度は、これらの特性がゲームシステム設定において一般的に遭遇するため、人間のプレイヤーがハンドヘルドデバイス602を使用していることを示し得る。対照的に、信号強度値、または時間の経過とともに変動しない一定の信号強度値が存在しないことは、非人間のプレイヤー(例えば、チート行為するように設計されたソフトウェア)を示し得る。別の例として、ハンドヘルドデバイス602から関連付けられたクライアントマシン104に送信されたドロップされたデータパケットのインスタンス、および/またはハンドヘルドデバイス602から関連付けられたクライアントマシン104に送信されたドロップされたデータパケットの数を示す無線通信データが決定され得、訓練された機械学習モデル216への入力として使用され得る。例えば、1つ以上のドロップされたパケットの存在、および/または時間の経過とともに変動するドロップされたデータパケットの数は、人間のプレイヤーがハンドヘルドデバイス602を使用していることを示し得る。対照的に、無線通信データ内にドロップされたパケットが存在しない場合、および/またはドロップされたデータパケットの数が時間の経過とともに一定のままである(例えば、変動しない)場合、これは、非人間のプレイヤー(例えば、チート行為するように設計されたソフトウェア)を示し得る。
【0096】
いくつかの実施形態では、スコア118を決定することは、クライアントマシン104から受信した生体認証データおよび/またはクライアントマシン104から受信したデータを暗号化するために使用される秘密鍵632が、生体認証データおよび/または複数の信頼できるハンドヘルドデバイス602に関連付けられている、データベース116内に維持された複数の秘密鍵のうちの1つと一致するという決定にさらに基づいている。すなわち、生体認証データおよび/または秘密鍵632は、リモートコンピューティングシステム106に、システム106によって信頼される実際のハンドヘルドコントローラ602がゲーム制御データ606を送信していることを証明するために、信頼のためのプロキシとして使用されてもよい。
【0097】
図6のステップ3において、対応するクライアントマシン104から受信した新たなセンサデータ604に基づいて、ログイン中の、登録ユーザアカウント120について決定された機械学習されたスコア118を用いて、コンピューティングシステム106は、マルチプレイヤーモードでビデオゲーム110をプレイするために、および、ログイン中のユーザアカウント120について決定された機械学習されたスコア118に少なくとも部分的に基づいて、ログイン中のユーザアカウント120のサブセットを複数の試合のうちの別個の試合に割り当てるために、試合割り当て124をクライアントマシン104に提供することによって、プレイヤー102を複数の試合において対戦させることができる。このようにして、訓練された機械学習モデル216が、ログイン中のユーザアカウント120の第1のサブセットに低い(例えば、閾値を下回る)スコア118を割り当て、ログイン中のユーザアカウント120の第2のサブセットに高い(例えば、閾値を超える)スコア118を割り当てた場合、ログイン中のユーザアカウント120の第1のサブセットは、複数の試合のうちの第1の試合に割り当てられ得、ログイン中のユーザアカウント120の第2のサブセットは、複数の試合のうちの第2の別個の試合に割り当てられ得る。これは、ビデオゲーム110の開始時に(例えば、試合が開始される前に)ユーザアカウント120を試合に割り当てること、および/またはビデオゲーム110の途中で(例えば、試合が開始された後に)ユーザアカウント120を新しい試合に再割り当てすることを含み得る。例えば、第1のログイン中のユーザアカウント120が、人間のプレイヤー102のために指定された第1の試合に割り当てられ、その後、訓練された機械学習モデル216への入力として提供されたリアルタイムデータに基づいて、そのユーザアカウント120のために機械学習されたスコア118が生成され、スコア118は、第1のユーザアカウント120が、ゲーム制御データ606を合成および/または修正している非人間のプレイヤー(例えば、ソフトウェア)に関連付けられている可能性が高いことを示す場合、コンピューティングシステム106は、第1のユーザアカウントを、非人間のプレイヤー102(例えば、ゲーム制御データを合成および/または修正するためにソフトウェアを使用しているチート行為をするプレイヤー)のために指定された第2の試合に再割り当てし得る。いくつかの実施形態では、クライアントマシン104がゲーム制御データ606を送信し、ゲーム制御データ606と共に生の、未フィルタリングのセンサデータ604を送信しないとき、それに関連付けられたユーザアカウント120は、生のセンサデータ604の不在に基づいて信頼できないと見なされ得る。他の実施形態では、ゲーム制御データ606は、生のセンサデータ604の不在下においても、ユーザアカウントのスコア118を生成するために、訓練された機械学習モデル216への入力として提供され得るか、または機械学習スコア118は、ユーザアカウント120に関連付けられたプレイヤーのチート行為傾向を決定するために、本明細書に記載される任意の他の適切な手法で、そのようなユーザアカウント120のために生成され得る。
【0098】
図6のステップ4において、コンピューティングシステム106は、各ユーザアカウント120について割り当てられた試合においてビデオゲーム110の実行を引き起こし得る。ストリーミング実装形態では、これは、リモートコンピューティングシステム106が、リモートシステム106上で実行中のビデオゲーム110の状態をキャプチャすることと、ビデオおよび音声データをビットに符号化することと、コンピュータネットワーク108を介してクライアントマシン104に符号化されたビットを送信することとを含み得、クライアントマシン104上で実行中のアプリケーション(例えば、ビデオゲームクライアント)は、所与のフレームについてクライアントマシン104のディスプレイを介して画像、およびスピーカを介して音声を出力するようにビットを復号化し得る。図1のコンピュータネットワーク108は、いくつかの実施形態では、ローカルエリアネットワーク(LAN)を表し得、これは、「家庭内」ビデオゲームストリーミングシナリオにおける場合であり得ることを理解されたい。このシナリオにおいて、コンピューティングシステム106は、クライアントマシン104の同じ地理的位置に、またはその付近に位置するホストコンピューティングシステムを表し得る。ワイドエリアネットワーク(WAN)またはLAN実装形態のいずれかにおいて、クライアントマシン104は、クライアントマシン104自体上の最小限のデータ処理で(例えば、クライアントマシン104自体上でビデオゲーム110を実行する必要なく)コンピューティングシステム106におよびコンピューティングシステムからデータを送受信するように構成されたシンクライアントとして実装され得る。シンクライアント実装形態では、ゲーム制御データ606およびセンサデータ604は、コンピューティングシステム106から受信され得、コンピューティングシステム106は、クライアントマシン104に関連付けられたディスプレイ上で提示するために、画像データおよび音声データのフレームをクライアントマシン104に送信し得る。各マシン104上のクライアントアプリケーションがビデオゲーム110を実行している実装形態では、ステップ4において、情報は、問題のログイン中のユーザアカウント120のために割り当てられた試合において、クライアントマシン104上のビデオゲーム110の実行を引き起こすように、クライアントマシン104上で実行中の各クライアントアプリケーションに送信され得る。機械学習されたスコア118に少なくとも部分的に基づいてプレイヤーを試合にグループ化すると、システムは、同一の試合で非人間のプレイヤー(例えば、チート行為を行うように設計されたソフトウェア)を含む(例えば、チート行為することによって)悪質な行動をとると予測されるプレイヤーをグループ化し得、そうすることによって、悪質な行動をとるプレイヤーを、正当にビデオゲーム110をプレイしたい他のプレイヤーから隔離しておくことができため、プレイヤー102のグループの少なくとも一部にとってゲーム内体験が改善され得る。
【0099】
図7は、クライアントマシン104から受信されたゲーム制御データ606がハンドヘルドデバイス602によって生成された確率を予測するために、センサデータ604を含むデータを使用して機械学習モデル216を訓練するための例示的なプロセス700のフロー図である。考察目的で、前図を参照してプロセス700を説明する。
【0100】
702において、コンピューティングシステム106は、ユーザ102にビデオゲームサービスへのアクセスを提供し得る。例えば、コンピューティングシステム106は、ユーザがビデオゲーム110のカタログにアクセスして閲覧し、ユーザプロファイルを変更し、トランザクションを実行し、ソーシャルメディアアクティビティに従事し、および他の同様のアクションを行うことを可能にし得る。コンピューティングシステム106は、ビデオゲームサービスの一部として、ビデオゲーム110(およびそのコンテンツ)をクライアントマシン104に配布し得る。例示的な実施例において、ビデオゲームサービスへのアクセス権を有するユーザ102は、インストールされたクライアントアプリケーションをロードし、登録ユーザアカウントでログインし、所望のビデオゲーム110を選択し、ビデオゲーム110をストリーミングすること、ビデオゲーム110をダウンロードすること、およびクライアントマシン104、または任意の他の適切なゲーム配信/実行プラットフォーム上でローカルにゲームを実行することによって、クライアントアプリケーションを介して彼/彼女のクライアントマシン104上でビデオゲーム110を実行することができる。
【0101】
704において、コンピューティングシステム106は、ビデオゲームサービスに登録されるユーザアカウント120に関連付けられたデータを収集し、記憶し得る。このデータは、本明細書に記載のセンサデータ604を少なくとも含み得るが、また、本明細書に記載のデータ114およびゲーム制御データ606も含み得る。データは、ユーザ102が登録ユーザアカウント120でビデオゲームサービスにアクセスし、このビデオゲームプラットフォームを使用するとき、例えば、そのビデオゲームプラットフォーム上でビデオゲーム110をプレイするときなど、任意の適切な時間にブロック704で収集され得る。データが(例えば、クライアントマシン104からリアルタイムのストリーミングデータを受信することによって)生成されるとき、定義された間隔で受信されるとき、および/またはイベント(例えば、ユーザアカウント120がビデオゲームを終了するとき、ネットワーク帯域幅がデータを送信するのに十分なときなど)に応答して、クライアントマシン104でおよび/またはハンドヘルドデバイス602によってローカルに生成されたデータは、リアルタイムで収集され得る。時間の経過とともに、登録ユーザアカウント120に結び付けられたデータの膨大な集合が、コンピューティングシステム106に利用可能であり得ることを理解することができる。
【0102】
706において、コンピューティングシステム106は、訓練構成要素210を介して、ビデオゲームサービスに登録された、ユーザアカウントのサンプリングされたセット120に関連付けられた(履歴)センサデータ604を含む(履歴)データにアクセスし得る。(履歴)センサデータ604は、例えばビデオゲーム110の態様を制御するために、ゲーム制御データ606が受信されたときにビデオゲーム110によって処理された(履歴)ゲーム制御データ606と共にクライアントマシン104から受信されている場合がある。したがって、(履歴)センサデータ604は、同時に生成された対応する(履歴)ゲーム制御データ606と相関し得る。一例では、ブロック706でアクセスされたセンサデータ604は、ユーザ102がそれらのハンドヘルドデバイス602を操作してビデオゲームプラットフォーム上でビデオゲーム110をプレイしたときに、ハンドヘルドデバイス602の1つ以上の物理センサ610によって生成された生のセンサデータ604を含み得る。
【0103】
708において、コンピューティングシステム106は、訓練構成要素210を介して、人間のプレイヤーがデバイス602を保持および操作して、ユーザアカウント120に関連付けられた(履歴)ゲーム制御データ606を生成する間に、ユーザアカウント120に関連付けられた(履歴)ゲーム制御データ606が、ハンドヘルドデバイス602によって生成されたかどうかを示すラベルを、ユーザアカウント120のサンプリングされたセットの各ユーザアカウント120にラベル付けし得る。
【0104】
710において、コンピューティングシステム106は、訓練構成要素210を介して、(履歴)センサデータ604、および場合によっては本明細書に記載されるような追加のデータ(例えば、(履歴)ゲーム制御データ606、(履歴)無線通信データ等)を使用して、訓練された機械学習モデル216を取得するための訓練データとして、機械学習モデル216を訓練し得る。サブブロック712によって示されるように、ブロック710における機械学習モデル216の訓練は、機械学習のための重みを設定することを含み得る。これらの重みは、履歴センサデータ604から導出された特徴のセットに適用され得る。いくつかの実施形態では、ブロック712において設定される重みは、機械学習モデルの内部のパラメータに適用され得る(例えば、ニューラルネットワークの隠れ層内のニューロンに対する重み)。機械学習モデル216のこれらの内部パラメータは、特徴のセットのうちの個々の入力特徴と1対1でマッピングされても、またはマッピングされなくてもよい。ブロック710からブロック704への矢印によって示されるように、機械学習モデル216は、更新された(履歴)センサデータ604を含む、更新された(履歴)データを使用して再訓練して、最近のプレイヤーの行動に適合した新たに訓練された機械学習モデル216を取得することができる。これにより、機械学習モデル216は、時間の経過とともに、変化するプレイヤーの行動に自動的に適合することができる。
【0105】
図8は、訓練された機械学習モデル216を利用して、ユーザアカウントの信頼スコアを決定するための例示的なプロセス800のフロー図であり、この信頼スコアは、ゲーム制御データ606がハンドヘルドデバイス602によって生成された確率に関連する。考察目的で、前図を参照してプロセス800を説明する。さらに、図7および図8の外部ページ参照「C」によって示されるように、プロセス800は、プロセス700のブロック710から進み得る。
【0106】
802において、コンピューティングシステム106は、クライアントマシン104からゲーム制御データ606およびセンサデータ604を受信し得る。ゲーム制御データ606およびセンサデータ604は、ビデオゲームサービスにログインされ、そのサービスに登録されるユーザアカウント120に関連付けられ得る。ゲーム制御データ606は、ビデオゲーム110の態様を制御するためにビデオゲーム110によって処理されるデータであり得る。ブロック802で受信されたセンサデータ604は、これらに限定されないが、静電容量値、抵抗値、変位値、速度値、加速度値、温度値、湿度値などを含み得る。いくつかの実施形態では、これらの値は、それらがハンドヘルドデバイス602の実際の物理センサ610によって生成されると仮定して、生の(例えば、フィルタリングされていない、増幅されていない)値を表す。さらに、ブロック802で受信されたデータの一部または全部が暗号化されてもよい(例えば、デバイス602は、データをリモートシステム106に送信する前に、秘密鍵632を使用してデータを暗号化してもよい)。
【0107】
804において、コンピューティングシステム106は、さらに、クライアントマシン104から生体認証データを受信してもよい。例えば、ハンドヘルドデバイス602の入力デバイス(例えば、タッチセンサ、カメラ、マイクロフォンなど)は、ハンドヘルドデバイス602のユーザから生体認証データを取得し得、ハンドヘルドデバイス602は、取得した生体認証データをクライアントマシン104に送信し得、クライアントマシン104は、コンピュータネットワーク108を介してリモートコンピューティングシステム106に生体認証データを転送し得る。この生体認証データはまた、暗号化されたデータとして受信され得る(例えば、デバイス602は、データをリモートシステム106に送信する前に、生体認証データを暗号化するために秘密鍵632を使用した可能性がある)。
【0108】
806において、コンピューティングシステム106は、秘密鍵632および/または生体認証データを評価してもよい。サブブロック808、810、および812によって示されるように、この評価は、様々な動作を含むことができる。例えば、リモートシステム106は、ブロック802および/または804で受信された任意の暗号化されたデータを復号化して、予想された秘密鍵632が受信されたデータを暗号化するために使用されたことを検証し得る。サブブロック808において、コンピューティングシステム106は、生体認証データおよび/または秘密鍵632が、ブロック802において受信されたゲーム制御データ606およびセンサデータ604に関連付けられたユーザアカウント120に関連付けられていることを決定し得る。これは、生体認証データをユーザアカウント120に関連付けられた生体認証データと比較することによって、および/または暗号化されたデータが、ユーザアカウント120に関連付けられている秘密鍵632を使用して実際に暗号化されたことを決定することによって決定され得る。
【0109】
サブブロック810において、コンピューティングシステム106は、生体認証データが、データベース116内に維持された生体認証データと一致すること、および/または秘密鍵632が、データベース116内に維持された複数の秘密鍵のうちの1つと一致することを決定し得る。データベース116内に維持された生体認証データおよび/または秘密鍵は、暗号化されたデータから導出された秘密鍵632がデータベース116内の秘密鍵のうちの1つと一致する場合、および/または受信された生体認証データがデータベース116内の生体認証データのうちのいずれかと一致する場合、コンピューティングシステム106は、その一致するデータを、それが信頼されたハンドヘルドデバイス602から送信されたことを知って、信頼のためのプロキシとして使用することができるように、複数の信頼されたハンドヘルドデバイス602に関連付けられ得る。
【0110】
サブブロック812において、コンピューティングシステム106は、生体認証データおよび/または秘密鍵632に関連付けられたデータを決定し得る。例えば、コンピューティングシステム106は、生体認証データおよび/または秘密鍵632がユーザアカウント120に関連付けられた時間の長さを決定し得る。コンピューティングシステム106は、追加的に、または代替的に、生体認証データおよび/または秘密鍵632がユーザアカウント120とともに使用されている回数、またはユーザアカウント120にログインするために使用されている回数を決定してもよい。コンピューティングシステム106は、追加的に、または代替的に、秘密鍵632が、第1のユーザアカウント120から関連付け解除され/登録解除され、その後、第2のユーザアカウント120に関連付けられ/登録されることなどによって、異なるユーザアカウント120の間で切り替えられた回数を決定してもよい。
【0111】
814において、コンピューティングシステム106は、スコア付け構成要素212を介して、訓練された機械学習モデル216への入力としてデータを提供し得る。サブブロック816、818、および820によって示されるように、いくつかの実施形態において、これは、ブロック806において、訓練された機械学習モデル216への入力として、様々な種類のデータを提供することを伴うことができる。例えば、サブブロック816において、ブロック802において受信されたセンサデータ604は、訓練された機械学習モデル216への入力として提供され得る。サブブロック818において、ブロック802において受信されたゲーム制御データ606は、訓練された機械学習モデル216への追加の入力として提供され得る。サブブロック820において、秘密鍵632データおよび/または生体認証データは、秘密鍵632の値および/またはサブブロック812において決定されたデータのいずれかなど、訓練された機械学習モデル216へのさらなる追加の入力として提供され得る。いくつかの実施形態において、無線通信データ(例えば、無線信号強度データ、ドロップされたデータパケットに関連するデータなど)は、ブロック814において、訓練された機械学習モデル216への入力として提供され得る。いくつかの実施形態において、本明細書に記載されるように、データ114は、ブロック814において、訓練された機械学習モデル216への入力として提供され得る。一般に、本明細書に記載されるように、機械学習モデル216を訓練するために使用された特徴のセットに含まれた任意の定量化可能なデータは、訓練された機械学習モデル216への入力として提供されることができる。センサデータ604がモデル216への入力データとして提供される実施形態において、センサデータ604は、問題のユーザアカウント120をスコア付けするために使用される未知の入力を構成する。
【0112】
822において、コンピューティングシステム106は、スコア付け構成要素212を介して、訓練された機械学習モデル216からの出力として、ブロック802において受信されたゲーム制御データ606に関連付けられたユーザアカウント120に関連付けられた信頼スコア118を生成し得る。スコア118は、ゲーム制御データ606が、リモートコンピューティングシステム106にゲーム制御データ606を送信したクライアントマシン104に関連付けられたハンドヘルドデバイス602によって生成された確率に関連する。このスコア118はまた、ソフトウェア(例えば、エイムボット)によって合成および/または修正されたのとは対照的に、ゲーム制御データ606が「人間によって生成された」確率に関連すると考えることができる。スコア118を生成するために訓練された機械学習モデル216に入力することができる様々な種類のデータのために、スコア118を決定することは、センサデータ604に少なくとも部分的に基づく、ゲーム制御データ606に少なくとも部分的に基づく、秘密鍵がデータベース116内の秘密鍵と一致することを決定することに基づく、および/または秘密鍵632がユーザアカウント120に関連付けられている時間の長さに少なくとも部分的に基づくことなどができる。いくつかの実施形態において、スコア118は、[0,1]の範囲で正規化される変数である。この信頼スコア118は、ゲーム制御データ606がハンドヘルドデバイス602によって生成された確率と単調な関係を有し得る。スコア118と特定の行動に関連付けられた実際の確率との関係は、単調ではあるが、直線関係である場合と、または直線関係でない場合があり得る。
【0113】
したがって、プロセス800は機械学習されたスコア付けアプローチを表し、ここで、スコア118(例えば、信頼スコア118)はユーザアカウント120について決定され、このスコアは、ゲーム制御データ606がハンドヘルドデバイス602によって生成された確率を示す。したがって、プロセス800で生成された信頼スコア118は、実際のハンドヘルドデバイス602を使用してビデオゲーム110をプレイすることによって、プレイヤーが非チート行動に従事する確率を示すことができる。このスコア付けプロセスにおいて機械学習モデル216を使用することにより、人間のプレイヤーと非人間のプレイヤー(例えば、チート行為するように設計されたソフトウェア)とを区別することができる。
【0114】
図9は、ゲーム制御データ606がハンドヘルドデバイス602によって生成された確率に関連する機械学習された信頼スコア118に基づいて、マルチプレイヤービデオゲーム110の異なる試合にユーザアカウント120を割り当てるための例示的なプロセス900のフロー図である。考察目的で、前図を参照してプロセス900を説明する。さらに、図8および図9の外部ページ参照「D」によって示されるように、プロセス900は、プロセス800のブロック822から進み得る。
【0115】
902において、プロセス800に従ってスコア付けされたログイン中のユーザアカウント120について、コンピューティングシステム106は、マッチメイキング構成要素214を介して、複数の試合218の割り当てられた試合218にログイン中のユーザアカウント120を割り当て得、その割り当ては、ユーザアカウント120に対して生成され、そのユーザアカウントに関連付けられた機械学習されたスコア118に少なくとも部分的に基づく。複数の試合218は、人間のプレイヤーのために指定された少なくとも1つの試合218(1)と、ゲーム制御データ606を合成および/または修正するためにソフトウェアを使用するものなどの、非人間のプレイヤーのために指定された第2の試合218(2)とを含み得る。前述のように、ブロック902において、さらなる分割および追加の試合をユーザアカウント120に割り当てることができるように、任意の数の試合を規定することができる。例えば、コンピューティングシステム106は、マッチメイキング構成要素214を介して、マルチプレイヤーモードにおいてビデオゲーム110をプレイするためにプレイヤー102がグループ化されることになる任意の適切な数の試合を、需要、キャパシティ、およびマッチメイキングプロセスに影響を与える他の要因を含む、様々な要因に応じて規定し得る。
【0116】
サブブロック904によって示されるように、割り当てられた試合へのユーザアカウント120の割り当ては、閾値スコアに基づき得る。例えば、マッチメイキング構成要素214は、ログイン中のユーザアカウント120に関連付けられたスコア118が閾値スコア未満であると決定し得、スコアが閾値スコア未満であることに基づいて、ログイン中のユーザアカウント120を、非人間のプレイヤーのために指定された第2の試合218(2)に割り当て得る。同様に、マッチメイキング構成要素214は、ログイン中のユーザアカウント120に関連付けられたスコア118が閾値スコア以上であると決定し得、スコアが閾値スコア以上であることに基づいて、人間のプレイヤーのために指定された第1の試合218(1)にログイン中のユーザアカウント120を割り当て得る。しかしながら、これは試合割り当て124を提供するための1つの例示的な方式に過ぎず、他の技法も考えられる。例えば、クラスタリングアルゴリズム、または他の統計的アプローチが、閾値スコアを使用することに加えて、またはその代替として使用されてもよい。一実施例において、信頼スコア118を使用して、「類似した」信頼スコアを有するユーザアカウント(プレイヤー)を優先的に対戦させてもよい。信頼スコア118の分布が複数のユーザアカウント120にわたって概して二峰性であるという必然の傾向を考えると、類似性メトリック(例えば、距離メトリック、分散メトリックなど)に基づいて信頼スコア118を共にグループ化することは、閾値スコアを使用する場合と同様な結果をもたらし得る。しかしながら、スキルレベルなどの他のマッチメイキング要因に対する信頼スコアの相対的な重要度を段階的に調整することを可能にするよりきめ細かいアプローチを提供することが可能であるので、マッチメイキングの目的でユーザアカウントをグループで対戦させるために類似性メトリックを使用することは、マッチメイキングプールが小さい事例(例えば、地理的に狭い地域にいて、低人気のゲームモードをプレイしたいプレイヤー)に有用であり得る。いくつかの実施形態において、複数の閾値を使用して、ユーザアカウント120を複数の別個の試合に「バケット化」し得る。
【0117】
サブブロック906によって示されるように、信頼スコア118以外の他の要因は、ブロック902でのマッチメイキング割り当てにおいて考慮することができる。例えば、ブロック902において決定された試合割り当て124は、ログイン中のユーザアカウントに関連付けられたプレイヤーのスキルレベル、ログイン中のユーザアカウントが複数の試合のうちの1つに配置されるのを待っていた時間、ログイン中のユーザアカウントに関連付けられた地理的地域、および/または他の要因にさらに基づき得る。
【0118】
サブブロック908によって示されるように、ブロック902における割り当て動作は、第1の試合218(1)に現在割り当てられているユーザアカウント120が第2の試合218(2)に再割り当てされる、またはその逆の再割り当て動作を含んでもよい。例えば、サブブロック908における再割り当ては、ユーザアカウント120を第1の試合218から削除し、ユーザアカウント120について生成された信頼スコア118に基づいて、ユーザアカウント120を第2の試合218に再割り当てすることを含んでもよい。これは、ビデオゲームがプレイされている間に、信頼スコア付け118が実行時に発生し得、プレイヤーが(例えば、「エイムボット」ソフトウェアを使用して)プレイヤーがチート行為をしていることが機械学習された信頼スコア118に基づいて、合理的に高い確率で予測される場合、プレイヤーは、ゲームをプレイする途中で再割り当てされ得ることを意味する。したがって、試合の割り当ては、マルチプレイヤービデオゲーム110が開始する前に機械学習された信頼スコア118に基づいて行われ得るが、コンピューティングシステム106は、ゲームプレイ中の任意の適切な時間に、信頼スコア118を再生成して、プレイヤーが異なる試合に再割り当てされるか否かを決定することができる。
【0119】
910において、コンピューティングシステム106は、ビデオゲーム110をプレイするために利用されるクライアントマシン104に関連付けられたログイン中のユーザアカウント120について、割り当てられた試合(例えば、第1の試合218(1)または第2の試合218(2)のうちの1つ)におけるビデオゲーム110の実行を引き起こし得る。例えば、コンピューティングシステム106は、第1の信頼スコア118(1)に関連付けられた第1のユーザアカウント120(1)のための第1の試合218(1)におけるビデオゲーム110の実行を引き起こし得、第2の信頼スコア118(2)に関連付けられた第2のユーザアカウント120(2)のための第2の試合218(2)におけるビデオゲーム110の実行を引き起こし得る。ストリーミング実装形態では、ビデオゲーム110は、ブロック910でリモートコンピューティングシステム106上で実行され得、クライアントマシン104にストリーミングされ得る。他の実装形態において、リモートコンピューティングシステム106は、割り当てられた試合においてビデオゲーム110を実行するために、クライアントマシン104上でビデオゲーム110を実行するクライアントアプリケーションに制御命令を提供し得る。
【0120】
機械学習された信頼スコア118がマッチメイキングプロセスの要因として使用されるため、マルチプレイヤーモードにおいて本来のプレイ方法でビデオゲームをプレイすることを所望するユーザに対しゲーム体験を改善させ得る。これは、本明細書に記載の技法およびシステムを使用して、悪質な行動(例えば、ソフトウェアを使用してゲーム制御データ606を合成および/または修正することによるチート行為)を行う可能性の高いプレイヤー(例えば、非人間のプレイヤー)を対戦させ、ビデオゲームを正当にプレイする可能性の高い他の信頼できるプレイヤーからこれらのプレイヤーを隔離することができるからである。
【0121】
本主題は、構造的特徴に特有の言語で説明されているが、添付の特許請求の範囲に定義された主題は、必ずしも説明された特定の特徴に限定されるものではないことを理解されたい。むしろ、具体的な特徴は、請求項を実施する例示的な形態として開示されている。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[付記1]
コンピュータ実行可能命令を記憶する、1つ以上の非一時的なコンピュータ可読媒体であって、前記コンピュータ実行可能命令が、1つ以上のプロセッサによって実行されるときに、
クライアントマシンからゲーム制御データおよびセンサデータを受信することであって、前記ゲーム制御データおよび前記センサデータが、ビデオゲームサービスに登録されたユーザアカウントに関連付けられている、受信することと、
訓練された機械学習モデルへの入力として、前記センサデータを提供することと、
前記訓練された機械学習モデルからの出力として、前記ユーザアカウントに関連付けられた信頼スコアを生成することであって、前記信頼スコアは、前記ゲーム制御データが、前記クライアントマシンに関連付けられたハンドヘルドゲームコントローラによって生成された確率に関連する、生成することと、
前記信頼スコアに少なくとも部分的に基づいて、前記ユーザアカウントを、マルチプレイヤーモードでビデオゲームをプレイするための複数の試合のうちの割り当てられた試合に割り当てることであって、前記複数の試合が、少なくとも、人間のプレイヤーに指定された第1の試合、および合成または修正されたゲーム制御データを生成するためにソフトウェアを使用する、非人間のプレイヤーに指定された第2の試合を含む、割り当てることと、
前記ユーザアカウントのために前記割り当てられた試合において前記ビデオゲームの実行を引き起こすことと、を含む、動作の実施を引き起こす、1つ以上の非一時的なコンピュータ可読媒体。
[付記2]
前記センサデータが、前記ハンドヘルドゲームコントローラの1つ以上の物理センサによって生成された生のセンサデータを含み、前記割り当てられた試合が、前記人間のプレイヤーに指定された前記第1の試合である、付記1に記載の1つ以上の非一時的なコンピュータ可読媒体。
[付記3]
前記ゲーム制御データまたは前記センサデータのうちの少なくとも1つが、暗号化されたデータとして受信され、前記動作が、
前記暗号化されたデータを復号化することと、
前記暗号化されたデータを暗号化するために使用された秘密鍵が前記ユーザアカウントに関連付けられていることを決定することと、
前記秘密鍵が、データベース内に維持された複数の秘密鍵のうちの1つと一致することを決定することと、をさらに含み、前記複数の秘密鍵が、複数の信頼できるハンドヘルドゲームコントローラに関連付けられており、
前記信頼スコアの前記生成が、前記秘密鍵が前記複数の秘密鍵のうちの前記1つと一致するという前記決定にさらに基づく、付記1に記載の1つ以上の非一時的なコンピュータ可読媒体。
[付記4]
前記ユーザアカウントを前記割り当てられた試合に前記割り当てることが、
前記ユーザアカウントを前記第1の試合から削除することと、
前記ユーザアカウントを前記第2の試合に再割り当てすることと、を含む、付記1に記載の1つ以上の非一時的なコンピュータ可読媒体。
[付記5]
方法であって、
コンピューティングシステムによって、クライアントマシンからゲーム制御データおよびセンサデータを受信することであって、前記ゲーム制御データおよび前記センサデータが、ビデオゲームサービスにログインしたユーザアカウントに関連付けられ、前記ゲーム制御データが、ビデオゲームの態様を制御するために、前記ビデオゲームによって処理される、受信することと、
コンピューティングシステムによって、前記ユーザアカウントに関連付けられたスコアを決定することと、
訓練された機械学習モデルへの入力として前記センサデータを提供することと、
前記訓練された機械学習モデルからの出力として前記スコアを生成することであって、前記スコアは、前記ゲーム制御データが前記クライアントマシンに関連付けられたハンドヘルドデバイスによって生成された確率を示す、生成することと、
前記スコアに少なくとも部分的に基づいて、前記ユーザアカウントを、複数の試合のうちの割り当てられた試合に割り当てることであって、前記割り当てられた試合が、第1の試合または第2の試合のうちの少なくとも1つを含む、割り当てることと、
前記コンピューティングシステムによって、前記ユーザアカウントのために前記割り当てられた試合において前記ビデオゲームの実行を引き起こすことと、を含む、方法。
[付記6]
前記センサデータが、前記ハンドヘルドデバイスの1つ以上の物理センサによって生成された生のセンサデータを含む、付記5に記載の方法。
[付記7]
前記生のセンサデータが、生のジャイロスコープデータ、生の加速度計データ、または生の静電容量センサデータのうちの少なくとも1つを含む、付記6に記載の方法。
[付記8]
前記ハンドヘルドデバイスが、ハンドヘルドゲームコントローラである、付記6に記載の方法。
[付記9]
前記スコアを前記決定することの前に、
前記コンピューティングシステムによって、前記ビデオゲームサービスに登録されたユーザアカウントのサンプリングされたセットに関連付けられた履歴センサデータにアクセスすることであって、前記履歴センサデータが、前記ビデオゲームまたは異なるビデオゲームの態様を制御するために前記ビデオゲームまたは前記異なるビデオゲームによって処理された履歴ゲーム制御データと共に、クライアントマシンから受信されたものである、アクセスすることと、
前記ユーザアカウントのサンプリングされたセットの各ユーザアカウントに、前記ユーザアカウントに関連付けられた前記履歴ゲーム制御データが、前記ユーザアカウントに関連付けられた前記履歴ゲーム制御データを生成するために人間のプレイヤーがハンドヘルドデバイスを保持および操作している間に、前記ハンドヘルドデバイスによって生成されたかどうかを示すラベルでラベル付けすることと、
訓練データとして前記履歴センサデータを使用して機械学習モデルを訓練して、前記訓練された機械学習モデルを取得することと、をさらに含む、付記5に記載の方法。
[付記10]
前記機械学習モデルを前記訓練することが、前記履歴センサデータから導出された特徴のセット、または前記機械学習モデルの内部のパラメータ、のうちの少なくとも1つに重みを設定することを含む、付記9に記載の方法。
[付記11]
前記スコアを前記決定することが、
前記訓練された機械学習モデルへの前記入力として前記センサデータを前記提供することに加えて、前記ゲーム制御データを、前記訓練された機械学習モデルへの追加の入力として提供することをさらに含み、
前記スコアが、前記訓練された機械学習モデルへの前記追加の入力として提供された前記ゲーム制御データに少なくとも部分的に基づいて生成される、付記5に記載の方法。
[付記12]
前記ゲーム制御データまたは前記センサデータのうちの少なくとも1つが、暗号化されたデータとして受信され、前記方法が、
前記コンピューティングシステムによって、前記暗号化されたデータを復号化することと、
前記コンピューティングシステムによって、前記暗号化されたデータを暗号化するために使用された秘密鍵が、前記ユーザアカウントに関連付けられていることを決定することと、
前記コンピューティングシステムによって、前記秘密鍵が、データベース内に維持された複数の秘密鍵のうちの1つと一致することを決定することであって、前記複数の秘密鍵が、複数の信頼できるハンドヘルドデバイスに関連付けられている、決定することと、をさらに含み、
前記スコアを前記決定することは、前記秘密鍵が前記複数の秘密鍵のうちの前記1つと一致するという前記決定にさらに基づく、付記5に記載の方法。
[付記13]
前記秘密鍵が前記ユーザアカウントと関連付けられた時間の長さを決定することをさらに含み、前記スコアを前記決定することが、前記時間の長さにさらに基づく、付記12に記載の方法。
[付記14]
前記スコアに少なくとも部分的に基づいて、前記第1の試合または前記第2の試合のうちの前記少なくとも1つに前記ユーザアカウントを前記割り当てることが、前記スコアが閾値スコアを満たすかどうかを決定することを含む、付記5に記載の方法。
[付記15]
システムであって、
1つ以上のプロセッサと、
コンピュータ実行可能命令を記憶するメモリと、を備え、前記命令が、前記1つ以上のプロセッサによって実行されるときに、前記システムに、
複数のクライアントマシンからゲーム制御データおよびセンサデータを受信することであって、前記ゲーム制御データおよび前記センサデータが、ビデオゲームサービスに登録された複数のユーザアカウントのログイン中のユーザアカウントに関連付けられ、前記ゲーム制御データが、ビデオゲームの1つ以上の態様を制御するために前記ビデオゲームによって処理される、受信することと、
前記ログイン中のユーザアカウントのスコアを決定することであって、前記スコアの個々のスコアが、
訓練された機械学習モデルへの入力として、個々のユーザアカウントに関連付けられた前記センサデータを提供すること、および
前記訓練された機械学習モデルからの出力として、前記個々のユーザアカウントに関連付けられたスコアを生成することであって、前記スコアは、前記個々のユーザアカウントに関連付けられた前記ゲーム制御データが、前記複数のクライアントマシンのうちのクライアントマシンに関連付けられたハンドヘルドデバイスによって生成された確率に関連する、生成することによって決定される、決定することと、
前記ログイン中のユーザアカウントについて決定された前記スコアに少なくとも部分的に基づいて、前記ログイン中のユーザアカウントの第1のサブセットを第1の試合に割り当て、前記ログイン中のユーザアカウントの第2のサブセットを第2の試合に割り当てることと、
前記ログイン中のユーザアカウントの前記第1のサブセットのための前記第1の試合において、および前記ログイン中のユーザアカウントの前記第2のサブセットのための前記第2の試合において、前記ビデオゲームの実行を引き起こすことと、を行わせる、システム。
[付記16]
前記ログイン中のユーザアカウントの前記第1のサブセットに関連付けられた前記センサデータが、ハンドヘルドデバイスの1つ以上の物理センサによって生成された生のセンサデータを含む、付記15に記載のシステム。
[付記17]
前記生のセンサデータが、生のジャイロスコープデータ、生の加速度計データ、または生の静電容量センサデータのうちの少なくとも1つを含む、付記16に記載のシステム。
[付記18]
前記スコアの前記個々のスコアが、
前記訓練された機械学習モデルへの前記入力として前記個々のユーザアカウントに関連付けられた前記センサデータを前記提供することに加えて、前記訓練された機械学習モデルへの追加の入力として前記個々のユーザアカウントに関連付けられた前記ゲーム制御データを提供することによって、さらに決定され、
前記個々のユーザアカウントに関連付けられた前記スコアが、前記訓練された機械学習モデルへの前記追加の入力として提供された前記個々のユーザアカウントに関連付けられた前記ゲーム制御データに少なくとも部分的に基づいて生成される、付記15に記載のシステム。
[付記19]
前記ゲーム制御データまたは前記センサデータのうちの少なくとも1つが、暗号化されたデータとして受信され、前記コンピュータ実行可能命令が、前記1つ以上のプロセッサによって実行されるとき、前記システムに、
前記暗号化されたデータを復号化することと、
前記暗号化されたデータを暗号化するために使用された秘密鍵が、前記ログイン中のユーザアカウントのうちの1つに関連付けられていることを決定することと、
前記秘密鍵が、データベース内に維持された複数の秘密鍵のうちの1つと一致することを決定することであって、前記複数の秘密鍵が、複数の信頼できるハンドヘルドデバイスに関連付けられている、決定することと、をさらに行わせ、
前記ログイン中のユーザアカウントのうちの前記1つに関連付けられた個々のスコアが、前記秘密鍵が前記複数の秘密鍵のうちの前記1つと一致するという決定に基づいて、さらに決定される、付記15に記載のシステム。
[付記20]
前記コンピュータ実行可能命令が、前記1つ以上のプロセッサによって実行されるとき、前記システムに、前記秘密鍵が、前記ログイン中のユーザアカウントのうちの前記1つに関連付けられた時間の長さを決定することをさらに行わせ、前記ログイン中のユーザアカウントのうちの前記1つに関連付けられた前記個々のスコアが、前記時間の長さにさらに基づく、付記19に記載のシステム。
図1
図2
図3
図4
図5
図6
図7
図8
図9