(57)【特許請求の範囲】
【請求項１】
複数のプレイヤーの夫々の操作を受付けてゲームを実行し得る複数の端末と、サーバとを含む情報処理システムにおいて、
前記サーバは、
前記ゲームの実行中における所定プレイヤーの操作の履歴情報を、当該所定プレイヤーの端末から取得する処理を、前記複数のプレイヤー毎に実行する履歴情報取得手段と、
前記所定プレイヤーの前記操作の履歴情報から得られる所定の重み値により、当該所定プレイヤーの操作の特徴を示す特徴情報を、前記複数のプレイヤー毎に生成する特徴情報生成手段と、
前記特徴情報生成手段により生成された前記複数のプレイヤー毎の前記特徴情報に基づいて、前記複数のプレイヤーをクラスタリングするクラスタリング手段と、
前記クラスタリング手段によりクラスタリングされた前記複数のプレイヤーの夫々の前記端末に対して、同一グループに属する他のプレイヤーの情報を送信し、他グループに属する他のプレイヤーの情報の送信を禁止する制御を実行する送信制御手段と、
を備え、
前記特徴情報生成手段は、
前記所定プレイヤーの操作傾向が、前記複数のプレイヤーの少なくとも一部を含む集合の操作傾向に対して特異になると、当該所定プレイヤーの重み値が重くなるように制御する第１重み制御手段と、
前記所定プレイヤーの操作時点からの経過時間に応じて、当該所定プレイヤーの重み値を制御する第２重み制御手段と、
前記第１重み制御手段と前記第２重み制御手段との各制御結果に基づいて、前記複数のプレイヤー毎に前記重み値を夫々演算することで、前記複数のプレイヤー毎の前記特徴情報を生成する重み演算手段と、
を含み、
前記履歴情報取得手段は、
前記所定プレイヤーの操作の履歴情報を、前記ゲームで受け付けられる複数種類の操作毎に取得する処理を、前記複数のプレイヤー毎に実行し、
前記重み値演算手段は、
前記複数種類の操作の夫々に対応する複数の前記重み値を夫々演算し、
前記複数の重み値を要素として含む前記特徴情報を、前記複数のプレイヤー毎に生成し、
前記第１重み制御手段は、
前記所定プレイヤーの前記操作の履歴情報の時系列の累積値を分子として、
前記複数のプレイヤー毎の前記操作の履歴情報の時系列の累積値の総加算値を分母として、
表される分数値を、当該所定プレイヤーの重み値となるように制御する、
情報処理システム。
【請求項２】
複数のプレイヤーの夫々の操作を受付けてゲームを実行し得る複数の端末の夫々と通信をするサーバにおいて、
前記ゲームの実行中における所定プレイヤーの操作の履歴情報を、当該所定プレイヤーの端末から取得する処理を、前記複数のプレイヤー毎に実行する履歴情報取得手段と、
前記所定プレイヤーの前記操作の履歴情報から得られる所定の重み値により、当該所定プレイヤーの操作の特徴を示す特徴情報を、前記複数のプレイヤー毎に生成する特徴情報生成手段と、
前記特徴情報生成手段により生成された前記複数のプレイヤー毎の前記特徴情報に基づいて、前記複数のプレイヤーをクラスタリングするクラスタリング手段と、
前記クラスタリング手段によりクラスタリングされた前記複数のプレイヤーの夫々の前記端末に対して、同一グループに属する他のプレイヤーの情報を送信し、他グループに属する他のプレイヤーの情報の送信を禁止する制御を実行する送信制御手段と、
を備え、
前記特徴情報生成手段は、
前記所定プレイヤーの操作傾向が、前記複数のプレイヤーの少なくとも一部を含む集合の操作傾向に対して特異になると、当該所定プレイヤーの重み値が重くなるように制御する第１重み制御手段と、
前記所定プレイヤーの操作時点からの経過時間に応じて、当該所定プレイヤーの重み値を制御する第２重み制御手段と、
前記第１重み制御手段と前記第２重み制御手段との各制御結果に基づいて、前記複数のプレイヤー毎に前記重み値を夫々演算することで、前記複数のプレイヤー毎の前記特徴情報を生成する重み演算手段と、
を含み、
前記履歴情報取得手段は、
前記所定プレイヤーの操作の履歴情報を、前記ゲームで受け付けられる複数種類の操作毎に取得する処理を、前記複数のプレイヤー毎に実行し、
前記重み値演算手段は、
前記複数種類の操作の夫々に対応する複数の前記重み値を夫々演算し、
前記複数の重み値を要素として含む前記特徴情報を、前記複数のプレイヤー毎に生成し、
前記第１重み制御手段は、
前記所定プレイヤーの前記操作の履歴情報の時系列の累積値を分子として、
前記複数のプレイヤー毎の前記操作の履歴情報の時系列の累積値の総加算値を分母として、
表される分数値を、当該所定プレイヤーの重み値となるように制御する、
サーバ。
【請求項３】
前記第２重み制御手段は、
前記所定プレイヤーの前記操作の履歴情報の時系列に対して、当該所定プレイヤーの操作時点からの経過時間が長くなる程減少する重み付けをして、
重み付け後の前記操作の履歴情報の時系列の累積値を前記分子とするという制御を実行する、
請求項２に記載のサーバ。
【請求項４】
前記第２重み制御手段は、さらに、当該所定プレイヤーの操作時点からの経過時間が一定時間を超えると、重みの減少を停止させるという制御を実行する、
請求項３に記載のサーバ。
【請求項５】
複数のプレイヤーの夫々の操作を受付けてゲームを実行し得る複数の端末の夫々と通信をするコンピュータに、
前記ゲームの実行中における所定プレイヤーの操作の履歴情報を、当該所定プレイヤーの端末から取得する処理を、前記複数のプレイヤー毎に実行する履歴情報取得ステップと、
前記所定プレイヤーの前記操作の履歴情報から得られる所定の重み値により、当該所定プレイヤーの操作の特徴を示す特徴情報を、前記複数のプレイヤー毎に生成する特徴情報生成ステップと、
前記特徴情報生成ステップにおいて生成された前記複数のプレイヤー毎の前記特徴情報に基づいて、前記複数のプレイヤーをクラスタリングするクラスタリングステップと、
前記クラスタリングステップにおいてクラスタリングされた前記複数のプレイヤーの夫々の前記端末に対して、同一グループに属する他のプレイヤーの情報を送信し、他グループに属する他のプレイヤーの情報の送信を禁止する制御を実行する送信制御ステップと、
を含む制御処理を実行させ、
前記特徴情報生成ステップとして、
前記所定プレイヤーの操作傾向が前記複数のプレイヤー全体の操作傾向に対して特異になると、当該所定プレイヤーの重み値が重くなるように制御する第１重み制御ステップと、
前記所定プレイヤーの操作時点からの経過時間に応じて、当該所定プレイヤーの重み値を制御するという第２重み制御ステップと、
前記第１重み制御ステップ及び前記第２重み制御ステップの夫々における各制御結果に基づいて、前記複数のプレイヤー毎に前記重み値を夫々演算することで、前記複数のプレイヤー毎の前記特徴情報を生成する重み値演算ステップと、
を含み、
前記履歴情報取得ステップは、
前記所定プレイヤーの操作の履歴情報を、前記ゲームで受け付けられる複数種類の操作毎に取得する処理を、前記複数のプレイヤー毎に実行するステップを含み、
前記重み値演算ステップは、
前記複数種類の操作の夫々に対応する複数の前記重み値を夫々演算し、
前記複数の重み値を要素として含む前記特徴情報を、前記複数のプレイヤー毎に生成するステップを含み、
前記第１重み制御ステップは、
前記所定プレイヤーの前記操作の履歴情報の時系列の累積値を分子として、
前記複数のプレイヤー毎の前記操作の履歴情報の時系列の累積値の総加算値を分母として、
表される分数値を、当該所定プレイヤーの重み値となるように制御するステップを含む、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、サーバ及びプログラム、並びに端末及びプログラムに関する。
【背景技術】
【０００２】
従来から、スマートフォン等の端末で実行可能なゲームとして、マルチバトル等複数のプレイヤーが参加可能なゲームが存在する（例えば特許文献１参照）。
【０００３】
このようなゲームでは、ゲームデータを改造する行為、例えば、レベルやステータスを異常に高める行為、グラフィックの変更行為、レアアイテムの獲得行為等を行う者の存在が問題になる。
なお、以下、このようなゲームデータを改造する行為を含め、ゲーム運営者の意図しない動作を発現させてゲームを不正に優位に進めようとする行為を広く「チート」と呼ぶ。例えば、不正なデータ通信をする行為もチートの一例である。また、このようなチートをする者を「チーター」と呼ぶ。
【０００４】
そこで、従来においても、チート対策ソフトウェア（Ａｎｔｉ−Ｃｈｅａｔ  Ｓｏｆｔｗａｒｅ）が提供されている。この従来のチート対策ソフトウェアは、確実にチートとして判別できるものに限定して、チートを検出するものである。
【０００５】
また、チーターと思われるプレイヤーをグルーピングする技術が、特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２９６７６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、近年のチート手法の多様化や複雑化に伴い、特許文献１に記載の技術や従来のチート対策ソフトウェアでは対応できないチートが多数行われている。また、未知のチート手法も逐次登場してきている。
従って、未知のチート手法や検出が困難なチート手法を用いたチートが行われた場合、特にそのようなチートの数が急激に増加した場合、チートを行わない一般のプレイヤーを保護すべく、ゲーム運営者は当該チートに対して即時対応をすることが求められている。
具体的には、即時対応として、未知のチート手法や検出が困難なチート手法を用いるチーターを、一般のプレイヤーから見えないように隔離すると共に、ゲーム運営者に当該チーターの出現を警告することが求められている。
【０００８】
本発明は、このような状況に鑑みてなされたものであり、未知のチート手法や検出が困難なチート手法を用いたチートに対して即時対応が可能となる技術の確立を目的とする。
具体的には、即時対応として、未知のチート手法や検出が困難なチート手法を用いるチーターを、一般のプレイヤーから見えないように隔離すると共に、ゲーム運営者に当該チーターの出現を警告することが可能となる技術の確立を目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の一態様の情報処理システムは、
複数のプレイヤーの夫々の操作を受付けてゲームを実行し得る複数の端末と、サーバとを含む情報処理システムにおいて、
前記サーバは、
前記ゲームの実行中における所定プレイヤーの操作の履歴情報を、当該所定プレイヤーの端末から取得する処理を、前記複数のプレイヤー毎に実行する履歴情報取得手段と、
前記所定プレイヤーの前記操作の履歴情報から得られる所定の重み値により、当該所定プレイヤーの操作の特徴を示す特徴情報を、前記複数のプレイヤー毎に生成する特徴情報生成手段と、
を備え、
前記特徴情報生成手段は、
前記所定プレイヤーの操作傾向が、前記複数のプレイヤーの少なくとも一部を含む集合の操作傾向に対して特異になると、当該所定プレイヤーの重み値が重くなるように制御する第１重み制御手段と、
前記所定プレイヤーの操作時点からの経過時間に応じて、当該所定プレイヤーの重み値を制御する第２重み制御手段と、
前記第１重み制御手段と前記第２重み制御手段との各制御結果に基づいて、前記複数のプレイヤー毎に前記重み値を夫々演算することで、前記複数のプレイヤー毎の前記特徴情報を生成する重み演算手段と、
を含む。
【００１０】
本発明の一態様のサーバは、
複数のプレイヤーの夫々の操作を受付けてゲームを実行し得る複数の端末の夫々と通信をするサーバにおいて、
前記ゲームの実行中における所定プレイヤーの操作の履歴情報を、当該所定プレイヤーの端末から取得する処理を、前記複数のプレイヤー毎に実行する履歴情報取得手段と、
前記所定プレイヤーの前記操作の履歴情報から得られる所定の重み値により、当該所定プレイヤーの操作の特徴を示す特徴情報を、前記複数のプレイヤー毎に生成する特徴情報生成手段と、
を備え、
前記特徴情報生成手段は、
前記所定プレイヤーの操作傾向が、前記複数のプレイヤーの少なくとも一部を含む集合の操作傾向に対して特異になると、当該所定プレイヤーの重み値が重くなるように制御する第１重み制御手段と、
前記所定プレイヤーの操作時点からの経過時間に応じて、当該所定プレイヤーの重み値を制御する第２重み制御手段と、
前記第１重み制御手段と前記第２重み制御手段との各制御結果に基づいて、前記複数のプレイヤー毎に前記重み値を夫々演算することで、前記複数のプレイヤー毎の前記特徴情報を生成する重み演算手段と、
を含む。
【００１１】
本発明の一態様のプログラムは、上述の本発明の一態様のサーバに対応するプログラムである。
【発明の効果】
【００１２】
本発明によれば、未知のチート手法や検出が困難なチート手法を用いたチートに対して即時対応が可能となる技術を確立することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係る情報システムの構成を示すブロック図である。
【図２】図２は、図１の情報処理システムのうち、本発明の端末の一実施形態としてのプレイヤー端末のハードウェア構成を示すブロック図である。
【図３】図１の情報処理システムのうち、本発明の一実施形態に係るサーバのハードウェア構成を示すブロック図である。
【図４】図３のサーバが実行するチート抑制制御の結果の一例を示す模式図である。
【図５】チート抑制制御の実行時に行われるグルーピングを説明するための模式図である。
【図６】図３のサーバの機能的構成例を示す機能ブロック図である。
【図７】図４の機能的構成を有するサーバが実行するチート抑制制御において用いられる、操作の履歴情報と特徴情報（メタデータベクトル）の構造例を示す図である。
【図８】３次元配列として実装された、図７の履歴情報の構造例を示している。
【図９】図４の機能的構成を有するサーバが実行するチート抑制制御において用いられる、ｔｗｅｉｇｈｔ()関数の一例を示す図である。
【図１０】図４の機能的構成を有するサーバが実行するチート抑制制御において用いられる、特徴情報の算出式の内容を説明する模式図である。
【図１１】図１０の式で算出される特徴情報の各要素をグラフ化したものを示す図である
【図１２】図４の機能的構成を有するサーバの処理の流れの一例を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について、図面を用いて説明する。
【００１５】
なお、以下において、単に「画像」と呼ぶ場合には、「動画像」と「静止画像」との両方を含むものとする。
また、「動画像」には、次の第１処理乃至第３処理の夫々により表示される画像を含むものとする。
第１処理とは、平面画像（２Ｄ画像）におけるオブジェクト（例えばゲームキャラクタ）の夫々の動作に対して、複数枚からなる一連の静止画像を時間経過と共に連続的に切り替えて表示させる処理をいう。具体的には例えば、２次元アニメーション、いわゆるパラパラ漫画的な処理が第１処理に該当する。
第２処理とは、立体画像（３Ｄモデルの画像）におけるオブジェクト（例えばゲームキャラクタ）の夫々の動作に対応するモーションを設定しておき、時間経過と共に当該モーションを変化させて表示させる処理をいう。具体的には例えば、３次元アニメーションが第２処理に該当する。
第３処理とは、オブジェクト（例えばゲームキャラクタ）の夫々の動作に対応した映像（即ち動画）を準備しておき、時間経過とともに当該映像を流していく処理をいう。
【００１６】
図１は、本発明の一実施形態に係る情報処理システムの構成を示している。
図１に示す情報処理システムは、ｍ＋１人（ｍは１以上の任意の整数値）のプレイヤーの夫々により使用されるプレイヤー端末１−０乃至１−ｍと、サーバ２とを含むシステムである。プレイヤー端末１−０乃至１−ｍの夫々と、サーバ２とは、インターネット等の所定のネットワークＮを介して相互に接続されている。
【００１７】
サーバ２は、プレイヤー端末１−０乃至１−ｍの夫々に対してゲームの実行環境を提供し、プレイヤー端末１−０乃至１−ｍの夫々において実行されるゲームに関する各種各様のサービスを提供する。
【００１８】
なお、以下、プレイヤー端末１−０乃至１−ｍの夫々を個々に区別する必要がない場合、これらをまとめて「プレイヤー端末１」と呼ぶ。
【００１９】
図２は、図１の情報処理システムのうち、本発明の端末の一実施形態としてのプレイヤー端末１のハードウェア構成を示すブロック図である。
【００２０】
プレイヤー端末１は、スマートフォン等で構成される。
プレイヤー端末１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２３と、バス２４と、入出力インターフェース２５と、タッチ操作入力部２６と、表示部２７と、入力部２８と、記憶部２９と、通信部３０と、ドライブ３１と、を備えている。
【００２１】
ＣＰＵ２１は、ＲＯＭ２２に記録されているプログラム、又は、記憶部２９からＲＡＭ２３にロードされたプログラムに従って各種の処理を実行する。
ＲＡＭ２３には、ＣＰＵ２１が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【００２２】
ＣＰＵ２１、ＲＯＭ２２及びＲＡＭ２３は、バス２４を介して相互に接続されている。このバス２４にはまた、入出力インターフェース２５も接続されている。入出力インターフェース２５には、タッチ操作入力部２６、表示部２７、入力部２８、記憶部２９、通信部３０及びドライブ３１が接続されている。
【００２３】
タッチ操作入力部２６は、例えば表示部２７の表示面に積層される静電容量式又は抵抗膜式（感圧式）の位置入力センサにより構成され、タッチ操作がなされた位置の座標を検出する。
ここで、タッチ操作とは、タッチ操作入力部２６に対する物体の接触又は近接の操作をいう。タッチ操作入力部２６に対して接触又は近接する物体は、例えばプレイヤーの指やタッチペン等である。なお、以下、タッチ操作がなされた位置を「タッチ位置」と呼び、タッチ位置の座標を「タッチ座標」と呼ぶ。
表示部１７は、液晶等のディスプレイにより構成され、ゲームに関する画像等、各種画像を表示する。
このように、本実施形態では、タッチ操作入力部２６と表示部２７とにより、タッチパネルが構成されている。
【００２４】
入力部２８は、各種ハードウェア釦等で構成され、プレイヤーの指示操作に応じて各種情報を入力する。
記憶部２９は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、各種データを記憶する。
通信部３０は、インターネットを含むネットワークＮを介して他の装置（図１の例ではサーバ２や他のプレイヤー端末１）との間で行う通信を制御する。
【００２５】
ドライブ３１は、必要に応じて設けられる。ドライブ３１には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア４１が適宜装着される。ドライブ３１によってリムーバブルメディア４１から読み出されたプログラムは、必要に応じて記憶部２９にインストールされる。また、リムーバブルメディア４１は、記憶部２９に記憶されている各種データも、記憶部２９と同様に記憶することができる。
【００２６】
図３は、図１の情報処理システムのうち、本発明の一実施形態に係るサーバ２のハードウェア構成を示すブロック図である。
【００２７】
サーバ２は、ＣＰＵ５１と、ＲＯＭ５２と、ＲＡＭ５３と、バス５４と、入出力インターフェース５５と、出力部５６と、入力部５７と、記憶部５８と、通信部５９と、ドライブ６０とを備えている。
サーバ２の構成は、プレイヤー端末１のタッチパネルを除いた構成と基本的に同様であるので、ここではその説明は省略する。
【００２８】
このような図２のプレイヤー端末１及び図３のサーバ２の各種ハードウェアと各種ソフトウェアとの協働により、プレイヤー端末１でゲームの実行が可能になる。
本実施形態では、マルチバトル等の複数のプレイヤーが参加するゲームが対象である。
このため、本実施形態の情報処理システムは、ゲームに対する各種制御を実行できる。特に、情報処理システムは、ゲーム内でチーターを抑制する制御（以下、「チート抑制制御」と呼ぶ）として、次のような制御を実行することができる。
【００２９】
即ち、チーターの多くは、ゲーム内でチートを可能にしてしまうプログラム等（以下、「チートツール」と呼ぶ）を用いて、チートを行っている。従って、同一のチートツールを使用するプレイヤーの操作データは、当該チートツール固有の振る舞いを共有することになる。即ち、同一のチートツールを使用するプレイヤー同士は、ゲーム内の操作傾向が類似する。
ここで、操作傾向とは、所定イベント等各種操作対象に対して夫々行ったプレイヤーの操作の履歴情報から得られる傾向であり、操作の方法や内容についての当該プレイヤーの特徴を示すものいう。
そこで、この「同一のチートツールを使用するプレイヤー同士は、ゲーム内の操作傾向が類似する」という点に着目して、本発明者により発明された制御が、チート抑制制御である。
【００３０】
具体的には、プレイヤーを操作データの類似性に応じてグループ化するとともに、プレイヤー同士の情報の参照可能範囲を同一グループ内に限定するという制御が、チート抑制制御である。
プレイヤー同士の情報の参照可能範囲とは、他プレイヤーの情報を閲覧することや他プレイヤーとゲーム内で連携することができる範囲をいう。
【００３１】
さらに以下、図４及び図５を参照して、チート抑制制御について説明する。
図４は、チート抑制制御の結果の一例を示す模式図である。
図４の例では、チート抑制制御が実行された結果として、ｎ個（図４の例ではｎは４以上の任意の整数値）グループＧ１乃至Ｇｎが形成されている。
【００３２】
グループＧ１，Ｇ２は、チートを行わない通常のプレイヤーが属するグループである。
グループＧ１，Ｇ２の差異は、操作傾向が類似するか否かである。
つまり、グループＧ１に属するプレイヤーは、同一のグループＧ１に属する他プレイヤーとは操作傾向が類似である一方、グループＧ２を含め他グループに属する他プレイヤーとは操作傾向が非類似である。
一方、グループＧ２に属するプレイヤーは、同一のグループＧ２に属する他プレイヤーとは操作傾向が類似である一方、グループＧ１を含め他グループに属する他プレイヤーとは操作傾向が非類似である。
【００３３】
グループＧ３は、同一のチートツールを使用するプレイヤーが分類されるグループである。
即ち、上述したように、所定のチートツールを使用するプレイヤー端末１からサーバ２に送信される操作データには、当該所定のチートツール固有の操作傾向が現れる。この操作傾向は、当該所定のチートツールを使用する複数のプレイヤー間で共通する。従って、自動的に、当該所定のチートツールを使用する複数のプレイヤーが属するグループＧ３が生成される。
【００３４】
グループＧｎもまた、同一のチートツールを使用するプレイヤーが分類されるグループである。
グループＧ３，Ｇｎの差異は、操作傾向が類似するか否かである。つまり、グループＧ３は、第１のチートツールを使用するプレイヤー群から構成されているのに対して、グループＧｎは、第１のチートツールとは別の第２のチートツールを使用するプレイヤー群から構成されている。
【００３５】
図４に示すように、グループＧｋ（ｋは１乃至ｎのうち任意の整数値）に属するプレイヤーのプレイヤー端末１には、他プレイヤーの情報を閲覧することや他プレイヤーとゲーム内で連携することができる画面として、他プレイヤーが同一グループＧｋに属する者に限定されている画面Ｉｋが表示される。
【００３６】
つまり、画面Ｉ３には、第１のチートツールを使用する他プレイヤーのみが登場する。換言すると、第１のチートツールを使用するチーターは、同一の第１のチートツールを使用する他プレイヤー（多くの場合チーター）のみしか連携することができず、グループＧ１，Ｇ２に属する通常のプレイヤーから自動的に隔離されることになる。
これにより、第１のチートツールを使用するチーターは、類似の操作傾向の他プレイヤー、即ちチートを行っているため通常とは明らかに異なる操作傾向の他のチーターとしか連携できない。従って、第１のチートツールを使用するチーターは、サービス提供者（ゲームの運営者等）がチート行為を検出していることを認識することになる。その結果、当該チーターがチートを停止することが期待される。このようにして、チート自体を抑制することができる。
【００３７】
また、本実施形態の情報処理システムは、上述したように操作傾向が類似するプレイヤーを自動的にグルーピングすることができるので、グルーピングのための事前の学習をする必要は特に無い。
これにより、例えば第２のチートツールが、未知のチートツールであったとしても、当該第２のチートツールを使用するプレイヤーは自動的にグループＧｎに分類される。
この場合も、グループＧ３と全く同様に、第２のチートツールを使用するチーターは、類似の操作傾向の他プレイヤー、即ちチートを行っているため通常とは明らかに異なる操作傾向の他のチーターとしか連携できない。従って、第２のチートツールを使用するチーターは、サービス提供者がチート行為を検出していることを認識することになる。その結果、当該チーターがチートを停止することが期待される。このようにして、未知の第２のチートツールが登場してきた場合であっても、自動的に、チート自体を抑制することができる。
【００３８】
図５は、チート抑制制御の実行時に行われるグルーピングを説明するための模式図である。
チート抑制制御においては、グルーピングは、プレイヤー同士のクラスタリングとして行われる。
このクラスタリングを実現するために、本実施形態では、各プレイヤーは、多次元ベクトル空間（図５の例では説明の便宜上３次元ベクトル空間）における１つのベクトルとして表現される。
つまり、サーバ２は、とあるプレイヤーの操作傾向と、他プレイヤーの操作傾向との類似度を、多次元ベクトル空間における距離として算出する。
例えば、ゲームにおいて、ｎ＋１種類（ｎは任意の整数値）のコマンドが存在するものとする。この場合、サーバ２は、コマンドの各種類を軸とするｎ＋１次元のベクトル空間を構築し、当該ベクトル空間内に各プレイヤーのベクトルを配置させる。
この各プレイヤーのベクトルの要素数ｎ＋１は、ゲーム内容に応じて、数１００乃至数１０００になる場合がある。例えば、ゲーム内に１０００種類のコマンドがある場合、１０００個の要素からなるベクトルが、各プレイヤーのベクトルとして演算される。
このベクトル空間や各プレイヤーのベクトルは、ゲームタイトルに応じて変更することができる。即ち、チート抑制制御は、既存又は今後登場し得る任意のゲームジャンルに適用可能であり、例えば既存のものとしては、ＲＰＧ、アクションＲＰＧ、シミュレーションゲーム等幅広いゲームジャンルに適用可能である。
【００３９】
図５の例では、説明の便宜上３次元のベクトル空間が構築され、このベクトル空間上に各プレイヤーのベクトルが、黒丸の点として表されている。
このベクトル空間において、距離が近い点群により１つのグループが生成される。図５の例では、チート行為等を行わない通常のプレイヤーが属するグループとして、グループＵＧ１，ＵＧ２，ＵＧ３が生成されている。また、チーターが属するグループとして、グループＣＧ１，ＣＧ２，ＣＧ３が生成されている。
【００４０】
本実施形態のチート抑制制御では、このようなクラスタリングが１回行われたらその後クラスタ（グループ）が固定となるわけではなく、時々刻々とクラスタリングが繰り返し行われ、その都度、クラスタも変化していく。即ち、各クラスタに属するプレイヤーもリアルタイムに変化し得る。
このようなクラスタリングがリアルタイムに行われることによって、とある特定の操作傾向が類似するプレイヤーが急激に増加した時に、当該プレイヤーが属するグループ（例えば図５のグループＣＧ２）が急拡大する。従って、クラスタの大きさの変化により、未知のチート手法が出現した可能性を把握することができる。即ち、図５のグループＣＧ２が急に登場したり急拡大した場合、当該グループＣＧ２に属する各プレイヤーは、未知のチート手法を用いてチートをしている可能性が高いと判断することが容易にできる。
このように、本実施形態のチート抑制制御で用いられるクラスタリング手法は、従来にない独自なものである。そこで、以下、当該クラスタリング手法を、従来のものと比較すべく、特に「レスポンシブなクラスタリング（物事の変化に反応性のあるクラスタリング）」と呼ぶこととする。
【００４１】
「レスポンシブなクラスタリング」を実現すべく、本実施形態では、各プレーヤ毎の特徴量（メタデータ）を生成する方式が採用されている。ここで、本実施形態では、特徴量は上述のようにベクトルとして示されるので、このようなベクトルを以下「メタデータベクトル」と呼ぶ。
即ち、本実施形態のサーバ２は、プレイヤーの操作データの類似性を演算すべく、操作データのログから各プレイヤーの特徴を示すメタデータベクトルを生成する。
【００４２】
詳細については後述するが、サーバ２は、メタデータベクトルの生成に際し、全てのプレイヤーに共通する行為の重要度を下げ、かつ、少数のプレイヤーのみに共通する行為の重要度を上げるような重み付け制御（以下、「第１重み付け制御」と呼ぶ）を実行する。この第１の重み付け制御により、チートツール固有の振る舞い、即ち操作傾向がより適切に抽出されることになる。
【００４３】
さらに、サーバ２は、直近の操作データに対しては強い重み付けをし、過去の操作データに対しては弱い重み付けをするといった重み付け制御（以下、「第２重み付け制御」と呼ぶ）を実行する。
このような第１重み付け制御及び第２重み付け制御により重み付けがなされた値（重み値）を用いることで、次のような効果を奏することができる。
例えば、チーターでない通常のプレイヤーが、たまたまチートツールを一時的に使用してしまったり、或いは、チートと疑われる行為（チートに類似する行為）をしてしまった場合、図５に示すように、当該プレイヤーは、即座に、通常のグループＵＧ１からチーターのグループＣＧ１に分類される。
この場合、当該プレイヤーのプレイヤー端末１には、図４の画面Ｉ３や画面Ｉｎ等が表示される。従って、当該プレイヤーは、閲覧や連携が可能な他プレイヤーはチーターのみであることを即座に認識することができるので、チートやチートと疑われる行為を（停止する意思があれば）即座に停止することができる。この場合、一定時間後に、当該プレイヤーは、チーターのグループＣＧ１から通常のグループＵＧ１に戻ることができる。
一方で、第２重み付け制御により過去の操作データに対しては弱い重み付けとなるものの、チートツールの操作データの履歴情報が累積的に作用した重み値が得られる。このため、常習性のあるチーターは、たとえ短期間のチートツールの使用を停止したとしても、チーターのグループ（図５の例ではグループＣＧ３）を抜け出すことはできない。
【００４４】
以上説明したようなチート抑制制御を実行すべく、サーバ２は図６に示すような機能的構成を有している。
【００４５】
図６に示すように、サーバ２のＣＰＵ５１においては、履歴情報取得部１０１と、特徴情報生成部１０２と、クラスタリング部１０３と、他プレイヤー情報送信制御部１０４とが機能する。
特徴情報生成部１０２として、第１重み制御部１１１と、第２重み制御部１１２と、重み演算部１１３とが機能する。
【００４６】
履歴情報取得部１０１は、所定のゲームの実行中における所定プレイヤーの操作の履歴情報を、当該所定プレイヤーのプレイヤー端末１から取得する処理を、複数のプレイヤー毎に実行する。即ち、プレイヤー端末１−０乃至１−ｍの夫々からの操作履歴情報が、履歴情報取得部１０１に取得される。
【００４７】
特徴情報生成部１０２は、所定プレイヤーの操作の履歴情報から得られる所定の重み値により、当該所定プレイヤーの操作の特徴を示す特徴情報を、複数のプレイヤー毎に生成する。ここで、特徴情報とは、本実施形態では上述したメタデータベクトルを意味するが、具体例については図７等を参照して後述する。
【００４８】
具体的には、第１重み制御部１１１は、上述の第１重み制御を実行する。即ち、第１重み制御部１１１は、所定プレイヤーの操作傾向が、複数のプレイヤーの少なくとも一部を含む集合の操作傾向に対して特異になると、当該所定プレイヤーの重み値が重くなるように制御する。
第２重み制御部１１２は、上述の第２重み制御を実行する。即ち、第２重み制御部１１２は、所定プレイヤーの操作時点からの経過時間に応じて、当該所定プレイヤーの重み値を制御する。ここで、所定プレイヤーの操作時点とは、当該所定プレイヤーが、所定ゲームの登録後初めて立ち上げたとき等、予め設定されたときからみて初めて操作した時点をいう。
重み演算部１１３は、第１重み制御部１１１と第２重み制御部１１２との各制御結果に基づいて、複数のプレイヤー毎に重み値を夫々演算することで、複数のプレイヤー毎の特徴情報（メタデータベクトル）を生成する。
【００４９】
クラスタリング部１０３は、複数のプレイヤー毎の特徴情報（メタデータベクトル）に基づいて、複数のプレイヤーをクラスタリングする。
他プレイヤー情報送信制御部１０４は、クラスタリング部１０３によりクラスタリングされた複数のプレイヤーの夫々のプレイヤー端末１−０乃至１−ｍに対して、同一グループに属する他プレイヤーの情報を送信し、他グループに属する他プレイヤーの情報の送信を禁止する制御を実行する。
ここで、他プレイヤーの情報とは、他プレイヤーの情報を閲覧することや他プレイヤーとゲーム内で連携することが可能となる情報であり、プレイヤー端末１側で画面（図４の例では画面Ｉ１乃至Ｉｍ）の表示が可能となる情報をいう。
図６の例では、所定のグループに属するプレイヤーの端末は、プレイヤー端末１−０，１−ｍであり、このため、同一グループに属する他プレイヤーの情報は、プレイヤー端末１−０，１−ｍに送信され、それ以外のプレイヤー端末１−１乃至１−（ｍ−１）に対しては送信が禁止される。
【００５０】
さらに以下、図７乃至図１１を参照して、チート抑制制御を実行可能なサーバ２の機能的構成について説明する。
【００５１】
図７は、操作の履歴情報と特徴情報（メタデータベクトル）の構造例を示す図である。
図７の例では、所定プレイヤーの操作の履歴情報のデータ構造は、マトリクス構造となっている。このような所定プレイヤーの操作の履歴情報を示すマトリクスを、特にここでは「ＯＬＭ（Ｏｐｅｒａｔｉｏｎ  Ｌｏｇ  Ｍａｔｒｉｘ）」と呼ぶ。
【００５２】
ＯＬＭの各列（横軸）は、ゲームの各種類の操作に対する、所定プレイヤーの操作内容を示している。本例ではゲームの操作としてｎ＋１種類（ｎは任意の整数）存在するものとして、これらｎ＋１種類に対する操作内容を示す要素ｏｐ［０］乃至ｏｐ［ｎ］が存在する。
本実施形態では各要素ｏｐ［０］乃至ｏｐ［ｎ］の夫々には、対応する種類の操作が行われたときには「１」が格納され、操作が行われなかったときには「０」が格納されるものとする。なお、これは例示に過ぎず、例えば、所定のアルゴリズムに基づいて得られる「０．５」等の実数が格納されてもよい。
【００５３】
ＯＬＭの各行（縦軸）は、所定プレイヤーの操作の履歴情報の所得タイミングを示している。
本例では、時間の経過に応じて、所定単位毎の時刻ｔ１乃至ｔｌａｓｔにて、操作の履歴情報が取得されている。取得タイミングの所定単位（取得の間隔）は、任意であり、固定であってもよいし可変であってもよく、例えば、１秒や６０秒等の実時間の単位であってもよいし、ゲーム内のトランザクション単位であってもよい。
【００５４】
このような所定プレイヤーのＯＬＭに基づいて、各操作の重み値を各要素として構成されるベクトルが、当該所定プレイヤーのメタデータベクトルＭＶとして生成される。
ただし、所定プレイヤーのメタデータベクトルＭＶは、当該所定プレイヤーのＯＬＭのみならず、ゲームに参加する他プレイヤーのＯＬＭも用いられて生成される。
１人のプレイヤーにつき１つのＯＬＭが操作の履歴情報として蓄積されるため、システム全体では、３次元配列として実装される。
図８は、３次元配列として実装された、操作の履歴情報の構造例を示している。
本例では、ｍ＋１台のプレイヤー端末１−０乃至１−ｍによりゲームが実行されているので、即ちｍ＋１人のプレイヤーがゲームに参加しているので、プレイヤー端末１−０乃至１−ｍの夫々から得られるｍ＋１個のＯＬＭの３次元配列として、操作の履歴情報が実装されることになる。
【００５５】
特徴情報生成部１０２は、このようにして実装されたＯＬＭに基づいて、操作傾向を示すメタデータベクトルＭＶを各プレイヤー毎に生成する。
具体的には図７に示すように、特徴情報生成部１０２は、ＯＬＭを１つのベクトル、即ちメタデータベクトルＭＶへ集約する処理を実行する。
【００５６】
ここで、第２重み制御部１１２は、集約する処理の実行中において、所定プレイヤーの操作時点からの経過時間に応じて、当該所定プレイヤーのＯＬＭの各要素値（重み値）に対する重みを制御する。
ここで、このように経過時間に応じて重みを制御する関数を、「ｔｗｅｉｇｈｔ()関数」と呼ぶ。
図９は、ｔｗｅｉｇｈｔ()関数の一例を示す図である。
図９に示すように、ｔｗｅｉｇｈｔ()関数では、直近に行われた操作を重要視することから、直近に行われる程重みが大きくなり、過去に遡るにつれて重みが減少する。
ただし、ｔｗｅｉｇｈｔ()関数では、常習性のチーターの操作の履歴情報の値を累積的に作用させるべく、重みの減少を一定時期で停止する。さらに、ｔｗｅｉｇｈｔ()関数では、一定以上蓄積させたログを破棄すべく、一定期間（例えば図９の例では１８０日）経過したら、それ以降重みが０になる。
なお、ｔｗｅｉｇｈｔ()関数は、図９の例に特に限定されず、例えばより短時間の重み付けを行えるような関数を採用してもよい。
【００５７】
特徴情報生成部１０２の重み演算部１１３は、ｔｗｅｉｇｈｔ()関数（第２重み制御部１１２による第２重み付け制御）を用いた次の式（１）に従って、所定プレイヤーのメタデータベクトルＭＶを演算する。なお、式（１）には、第１重み制御部１１１による第１重み付け制御も含まれているが、この制限については後述する。
【数１】
0005936748.tif 000002
・・・（１）
式（１）において、ｕは、演算対象として着目するプレイヤー（以下、「着目プレイヤー」と呼ぶ）のＩＤを示している。
つまり、ｖｅｃ（ｕ）は、着目プレイヤーｕのメタデータベクトルＭＶを示している。
各要素の分子のｌａｓｔ（ｕ）は、着目プレイヤーｕについての操作の履歴情報の最後（直近）の取得タイミングを示している。図７及び図８のＯＬＭが用いられるならば、ｌａｓｔ（ｕ）＝ｌａｓｔである。つまり、ｉ＝０が、時刻ｔ０のタイミングを示し、ｉ＝ｌａｓｔ（ｕ）が、時刻ｔｌａｓｔのタイミングを示している。
各要素の分子のｄ［ｕ，ｉ，ｐ］は、着目プレイヤーｕのｉ番目（時刻ｔｉ）の履歴情報に対応するｐ番目（ｐは、０乃至ｎのうちの任意の整数値）の種類の操作の値（スコア）を示している。例えば、着目プレイヤーｕのＯＬＭが図７に示されるものであった場合、ｄ［ｕ，０，０］として、図７のＯＬＭの時刻ｔ０における要素ｏｐ［０］（左上端の要素ｏｐ［０］）の格納値「０」が代入される。
各要素の分母のｊは、プレイヤーのＩＤを示している。即ち、プレイヤー端末１−０乃至１−ｍの夫々を操作する各プレイヤーのＩＤが、ｊ＝０乃至ｍの夫々である。
各要素の分母のｌａｓｔ（ｊ）は、プレイヤーｊについての操作の履歴情報の最後（直近）の取得タイミングを示している。
各要素の分母のｄ［ｊ，ｋ，ｐ］は、プレイヤーｊのｋ番目（時刻ｔｋ）の履歴情報に対応するｐ番目の種類の操作の値を示している。
【００５８】
図１０は、式（１）の内容を説明する模式図である。
図１０の中央には、上述の式（１）のベクトルｖｅｃ（ｕ）、即ち、着目プレイヤーＵのメタデータベクトルＭＶが示されている
このメタデータベクトルｖｅｃ（ｕ）は、要素ａ１等、ｎ＋１個の要素から構成されている。１つの要素は、分母ａ２ｍと分子ａ２ｃとからなる分数で演算される。
【００５９】
第ｐ番目の要素の分母ａ２ｍは、ｐ番目の種類の操作の値（図１０の例では、図７の要素ｏｐ［１］の格納値）の時刻ｔ０乃至ｔｌａｓｔの累積値（スコア）についての、ｍ＋１人の全てのプレイヤーについての総加算値である。
つまり、第ｐ番目の要素の分母ａ２ｍは、ｐ番目の種類の操作の値についての「一般性」を示している。
この分母ａ２ｍは、２つの集約操作から構成されている。１つ目（数式右側）の集約操作は、各プレイヤー毎の特定の操作に対応する特徴カテゴリの値（ｐ番目の種類の操作の値）を合計してスコアを算出するものである。２つ目（数式左側）の集約操作は、各プレイヤーのスコアを、全プレイヤー分だけ合計するものである。
【００６０】
分子ａ２ｃは、着目プレイヤーｕの操作の履歴情報の値に対して、ｔｗｅｉｇｈｔ（）関数に基づく重み付けをした値を、時刻ｔ０乃至ｔｌａｓｔ分だけ累積して、着目プレイヤーｕのスコアを演算するものである。
【００６１】
つまり、重み演算部１１３は、着目プレイヤーｕについてのスコア（経過時間に基づく重み付けをしたスコア）を示す分子ａ２ｃに対して、全プレイヤーの合計値から導き出される一般性のスコアを示す分母ａ２ｍを除算することで、着目プレイヤーｕが特異な操作をしているか否かを示す要素の値（スコア）を算出している。
換言すると、このような分子ａ２ｃに対する分母ａ２ｍを除算する制御が、第１重み制御部１１１による第１重み付け制御であると把握することができる。即ち、所定プレイヤーの操作傾向（着目プレイヤーｕについての分子ａ２ｃにより示される操作傾向）が、プレイヤー全体の集合の操作傾向（分母ａ２ｍより示される操作傾向）に対して特異になると、当該所定プレイヤーの重み値（スコア）が重くなるように、分子ａ２ｃに対する分母ａ２ｍを除算する制御が、第１重み付け制御として実行される。
【００６２】
図１１は、式（１）のベクトルｖｅｃ（ｕ）、即ち、着目プレイヤーｕのメタデータベクトルＭＶの各要素をグラフ化したものである。
例えば、所定のゲームについて、一般的には、第０の種類及び第２の種類の操作をする操作傾向（ＯＬＭの各行の要素ｏｐ［０］，ｏｐ［２］の値が１になる傾向）があるものとする。そして、とあるチートツールを用いると第１の種類及び第３の種類の操作をする操作傾向（ＯＬＭの各行の要素ｏｐ［１］，ｏｐ［３］の値が１になる傾向）があるものとする。
【００６３】
図１１（Ａ）は、チーターでない通常のプレイヤーのメタデータベクトルＭＶを示している。このプレイヤーは、過去の一時期に、たまたま上記チートツールを使用してしまったり、或いは、チートと疑われる行為をしてしまったものとする。このため、メタデータベクトルＭＶにおける要素ｏｐ［１］と要素ｏｐ［３］の各値（スコア）には、過去の累積値が若干反映されている。
図５を用いて上述したように、チートやチートと疑われる行為をした過去の時点では、当該プレイヤーは、通常のグループＵＧ１からチーターのグループＣＧ１に分類される。
この場合、当該プレイヤーのプレイヤー端末１には、図４の画面Ｉ３や画面Ｉｎ等が表示される。そこで、当該プレイヤーは、閲覧や連携が可能な他プレイヤーはチーターのみであることを認識したため、チートやチートと疑われる行為を即座に停止したものとする。
この場合、当該プレイヤーは、第０の種類及び第２の種類の操作をするという操作傾向（ＯＬＭの直近の行の要素ｏｐ［０］，ｏｐ［２］の値が１になる傾向）に戻ることになる。
ここで、上述したように、式（１）のベクトルｖｅｃ（ｕ）は、第２重み制御部１１２により、ｔｗｅｉｇｈｔ（）関数に基づく第２重み付け制御がなされる。即ち、直近の操作の履歴情報に強い重みをかけ、過去の操作の履歴情報に弱い重みをかける制御が実行される。これにより、ベクトルｖｅｃ（ｕ）は、直近の操作を強く反映したメタデータベクトルＭＶとなる。
つまり、図１１（Ａ）に示すように、メタデータベクトルＭＶにおける要素ｏｐ［０］と要素ｏｐ［２］の各値（スコア）は、直近の操作の履歴情報が強く反映されて高値になる。即ち、メタデータベクトルＭＶにおける要素ｏｐ［０］と要素ｏｐ［２］の各値（スコア）が高いという通常の操作傾向に戻る。その結果、当該プレイヤーは、チーターのグループＣＧ１から通常のグループＵＧ１に戻ることができる。
【００６４】
これに対して、図１１（Ｂ）は、常習性のあるチーターのメタデータベクトルＭＶを示している。
ｔｗｅｉｇｈｔ（）関数では、過去の操作の履歴情報にかけられる重みは弱いものの、常習的にチートツールを用いると、メタデータベクトルＭＶにおける要素ｏｐ［１］と要素ｏｐ［３］の各値（スコア）は、過去の常習的な操作の累積により必然的に高値になる。
このため、常習性のあるチーターがたとえチートツールの使用を直近で停止した場合であっても、停止時間が短時間の間は、メタデータベクトルＭＶにおける要素ｏｐ［１］と要素ｏｐ［３］の各値（スコア）が高いという操作傾向、即ちチーター特有の操作傾向は変わらない。その結果、当該チーターは、チーターのグループ（図５の例ではグループＣＧ３）を抜け出すことはできない。
【００６５】
このように、式（１）のベクトルｖｅｃ（ｕ）、即ち、着目プレイヤーＵのメタデータベクトルＭＶを用いることで、プレイヤーの直近の操作に素早く反応しながら、プレイヤーの基本的な行動の類似性を計量するクラスタリングが実現可能になる。
さらに以下、クラスタリング部１０３によるクラスタリングの具体例について説明する。
【００６６】
クラスタリング部１０３は、プレイヤーのグループを生成するために、各プレイヤーのメタデータベクトルＭＶを用いて、クラスタリング処理を実行する。
従って、各プレイヤーのメタデータベクトルＭＶについて、次のような措置を施すことで、パフォーマンス上の優位性が生じる。
【００６７】
即ち、本段落においては、ゲームに登録されている総プレイヤー数をｍとし、各プレイヤー−の操作の履歴情報として記録されているアクションの平均個数をｎとし、メタデータベクトルＭＶの要素数（ベクトル空間の特徴の数）をｋとする。
この場合、全てのプレイヤーに対してメタデータベクトルＭＶが生成されるものとすると、ｎ×ｋ＋ｎ×ｍ×ｋ回の繰り返し処理が必要になる。
これは、上述した式（１）に示すように、全てのプレイヤーのメタデータベクトルＭＶの演算において、共通の分母ａ２ｍ（図１０参照）を用いるため、分母の演算は１度だけ行えばよいからである。
例えば、ｍ＝１００万人のプレイヤーが、平均個数ｎ＝２，０００個の履歴情報を保持し、操作の種類等のメタデータベクトルＭＶの要素数ｋ＝３０，０００であるものとする。この場合、約６０兆回（２，０００×３０，０００＋２，０００×１，０００，０００×３０，０００）の繰り返しが必要となる。
ここで、特徴情報生成部１０２は、この繰り返し処理を、毎回実行せずに、途中の計算結果をキャッシュしておくことにより、増分計算として実行することもできる。
さらに、過去の履歴情報についてはｔｗｅｉｇｈｔ（）関数による重みづけの値は、ほぼ変化しない。そこで、毎回重み付けの計算を行わずに、計算結果を再利用してもよい。
また、式（１）の分子ａ２ｃ（図１０参照）は、加算のみの演算であるため、新たに追加された履歴情報の値を、最後の計算結果に加算するだけで、毎回演算した場合と略同一の結果を得ることが可能になる。
また、休眠状態のプレイヤーについては、チーターとして検出する意味が存在しないため、アクティブプレイヤーのみを対象としてメタデータベクトルＭＶを算出してもよい。
以上の点から、特徴情報生成部１０２は、メタデータベクトルＭＶの演算において、途中計算結果のキャッシュと増分計算を用いることができる。
従って、実質的には、次のような計算コストで、クラスタリング部１０３によるクラスタリング処理に用いるメタデータベクトルＭＶの演算が可能になる。
即ち、例えばｍ＝１００万人のプレイヤーのうちアクティブプレイヤーは２０万人であるとする。そして、操作の履歴情報が一定量、例えば１０件追記されるごとに、特徴情報生成部１０２は、メタデータベクトルＭＶを生成するものとする。この場合、約６００億回（１０×３０，０００＋１０×２００，０００×３０，０００）の繰り返しでよい。即ち、約６０兆回の繰り返しとした上述の理論上の計算コストに比較して、約１００倍の高速で、クラスタリング部１０３によるクラスタリング処理に用いるメタデータベクトルＭＶの演算が可能になる。
【００６８】
クラスタリング部１０３は、プレイヤーのグループを生成するために、上述のようにして生成された各メタデータベクトルＭＶを用いて、クラスタリング処理を実行する。
【００６９】
この場合のクラスタリングのアルゴリズムは、特に限定されず、任意のアルゴリズムを採用することができる。
具体的には例えば、Ｋ−Ｍｅａｎｓ法を採用することができる。Ｋ−Ｍｅａｎｓ法を採用することで、ランダムに設定したｋ個のクラスタ重心候補へ再帰的にノード（各プレイヤーのメタデータベクトルＭＶ）を所属させることにより、自動的かつ高速にクラスタを生成することができる。
また、メタデータベクトルＭＶは、多次元ベクトル空間上のベクトルであることから、コサイン類似度に代表されるベクトル空間上の類似度演算の手法を用いて、プレイヤー間の類似性を計算することができる。
コサイン類似度は、ベクトル同士の成す角度の近さを表現するため、最大値が１であり、最大値「１」に近いほど類似しており、最小値「０」に近いほど類似性が低くなる。
ベクトルａとｂのコサイン類似度ｃｏｓ（ａ，ｂ）は、次の式（２）で定義することができる。
【数２】
0005936748.tif 000003
・・・（２）
【００７０】
他プレイヤー情報送信制御部１０４は、クラスタリング部１０３によるクラスタリングの結果に基づいて、他プレイヤー情報を生成する。他プレイヤー情報とは、上述したように、所定プレイヤーが、他プレイヤーの情報を閲覧することや他プレイヤーとゲーム内で連携することが可能になる情報をいう。
ここで本実施形態では、他プレイヤー情報送信制御部１０４は、他プレイヤーが同一グループに属する者に限定されるように、他プレイヤー情報の送信を制御する。
これにより、善良な通常のプレイヤーから、チーターが隔離されることになる。従って、通常のプレイヤーは、チート行為による不快を覚えずに、快適にゲームを楽しむことができる。
換言すると、常習的なチーターにとっては、善良な通常のプレイヤーが隔離されて、同一のチートツールを使う別なチーターのみが他プレイヤーとして提示されることになる。このため、チーターは、サービス提供者（ゲームの運営者等）がチート行為を検出していることを認識することになる。その結果、当該チーターがチート行為を停止することが期待される。このようにして、チート行為自体を抑制することができる。
【００７１】
ここで本実施形態では、サーバ２のＣＰＵ５１は、さらに、各グループ毎に、分類されているプレイヤーのステータス情報を元いて、チートを行っている可能性（Ｃｈｅａｔ−Ｐｒｏｂａｂｉｌｉｔｙ）を演算する。
このチート可能性の演算手法は、特に限定されず、例えばゲームタイトル毎に異なる手法を採用してもよい。
具体的には例えば、各プレイヤーのステータスが、短時間に上昇している場合や、希少なアイテムが短時間に獲得できている場合など、ステータスの変化からチート可能性を演算する手法を採用してもよい。
また例えば、クライアントとの通信内容からチート可能性を演算する手法を採用してもよい。
【００７２】
ここで、チート可能性が閾値を超えるクラスタが急激に拡大している（分類されるプレイヤーの数が増加している）ときには、これまで未知であったチート手法が普及しつつある可能性を示している。
そこで、サーバ２のＣＰＵ５１はさらに、サービス提供者に対して、（これまで未知であった）新たなチート手法の出現を警告する。
このように、クラスタサイズの変化をモニタリングすることにより、これまで未知であったチート手法が新たに出現したことについて、緊急の警報をサービス提供者にすることも可能になる。
【００７３】
以上、チート抑制制御を実現するためのサーバ２の機能的構成について説明した。
次に、図１２を参照して、このような機能的構成を有するサーバ２の処理の流れを説明する。
図１２は、サーバ２の処理の流れを説明するフローチャートである。
【００７４】
ステップＳ１において、サーバ２の履歴情報取得部１０１は、各プレイヤー端末１−０乃至１−ｍから履歴情報を取得する。
【００７５】
ステップＳ２において、特徴情報生成部１０２は、着目プレイヤーを設定する。
ステップＳ３において、第１重み制御部１１１は、着目プレイヤーについて第１重み付け制御を実行する。
ステップＳ４において、第２重み制御部１１２とは、着目プレイヤーについて第２重み付け制御を実行する。
ステップＳ５において、重み演算部１１３は、第１重み付け制御及び第２重み付け制御の実行結果に基づいて、着目プレイヤーの特徴情報として、メタデータベクトルＭＶを生成する。
【００７６】
ここで、メタデータベクトルＭＶとして、上述の式（１）のベクトルｖｅｃ（ｕ）が採用している場合、第１重み制御とは、式（１）の各要素の分子ａ２ｃを分母ａ２ｍで除算することによる重み付けの制御を意味する。また、第２重み制御とは、上述の式（１）の分子ａ２ｃ（図１０参照）におけるｔｗｅｉｇｈｔ（）関数を用いた重み付けの制御を意味する。
即ち、上述のステップＳ２乃至Ｓ４は、実質的には、上述の式（１）の演算として略同時に実行される。
【００７７】
ステップＳ６において、特徴情報生成部１０２は、全プレイヤーを着目プレイヤーに設定したか否かを判定する。
ここでいう「全プレイヤー」は、ゲームに登録している全プレイヤーでもよいが、上述したようにパフォーマンスを向上すべく、アクティブプレイヤーの全てであってもよい。即ち、「全プレイヤー」とは、所定のルール（例えばアクティブプレイヤーに限る等のルール）に従って予め定義されたプレイヤーの全てという意である。換言すると、ゲームに登録されているプレイヤー全体の少なくとも一部を含む集合が、ここでいう「全プレイヤー」である。
【００７８】
全プレイヤーの中に未だ着目プレイヤーに設定していないプレイヤーが存在する場合、ステップＳ６においてＮＯであると判定されて、処理はステップＳ２に戻され、それ以降の処理が繰り返される。
全プレイヤーの夫々が着目プレイヤーに設定されて、ステップＳ３乃至Ｓ５の処理により、特徴情報としてメタデータベクトルＭＶが生成された場合、ステップＳ６においてＹＥＳであると判定されて、処理はステップＳ７に進む。
【００７９】
ステップＳ７において、クラスタリング部１０３は、各プレイヤーを特徴情報に基づいてクラスタリングする。
【００８０】
ステップＳ８において、他プレイヤー情報送信制御部１０４は、各グループ毎に、他プレイヤー情報を生成する。
ステップＳ９において、他プレイヤー情報送信制御部１０４は、他プレイヤー情報を、同一グループに属するプレイヤー端末１に送信し、他グループに属するプレイヤー端末１に送信を禁止する。
【００８１】
ステップＳ１０において、サーバ２のＣＰＵ５１は、処理の終了指示が有ったか否かを判定する。ここで、処理の終了指示は、特に限定されないが、本実施形態ではサーバ２の電源遮断が採用されている。つまり、サーバ２において電源が遮断されると、ステップＳ１０においてＹＥＳであると判定されて、サーバ２の処理は終了になる。
これに対して、サーバ２において電源が遮断されない限り、ステップＳ１０においてＮＯであると判定されて処理はステップＳ１に戻され、それ以降の処理が繰り返される。
【００８２】
なお、図１２には図示していないが、上述したように、サーバ２のＣＰＵ５１は、ステップＳ７の処理によりクラスタリングされた各グループ毎に、分類されているプレイヤーのステータス情報を元いて、チートを行っている可能性を演算する。
そして、ＣＰＵ５１は、クラスタ（グループ）毎にチート可能性と閾値を比較する。
ＣＰＵ５１は、チート可能性が閾値を超えるクラスタが急激に拡大しているときには、サービス提供者に対して、当該クラスタを、（これまで未知であった）新たなチート手法を用いたチーターのグループである旨を警告する。
【００８３】
以上本発明の一実施形態について説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【００８４】
例えば、図６の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が情報処理システムに備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に図６の例に限定されない。また、機能ブロックの存在場所も、図６に特に限定されず、任意でよい。例えば、サーバ２の機能ブロックをプレイヤー端末１等に移譲させてもよいし、逆に端末１の機能ブロックをサーバ２等に移譲させてもよい。
また、１つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【００８５】
各機能ブロックの処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えばサーバの他汎用のスマートフォンやパーソナルコンピュータであってもよい。
【００８６】
このようなプログラムを含む記録媒体は、プレイヤーにプログラムを提供するために装置本体とは別に配布される図示せぬリムーバブルメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でプレイヤーに提供される記録媒体等で構成される。
【００８７】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味するものとする。
【００８８】
換言すると、本発明が適用される情報処理システムは、上述の図１の実施形態としての情報処理システムを含め、次のような構成を有する各種各様の実施形態を取ることができる。
即ち、本発明が適用される情報処理システムは、複数のプレイヤーの夫々の操作を受付けてゲームを実行し得る複数の端末（例えば図１のプレイヤー端末１−０乃至１−Ｍ）と、サーバ（例えば図１のサーバ２）とを含む情報処理システムである。
前記サーバは、
前記ゲームの実行中における所定プレイヤーの操作の履歴情報を、当該所定プレイヤーの端末から取得する処理を、前記複数のプレイヤー毎に実行する履歴情報取得手段（例えば図６の履歴情報取得部１０１）と、
前記所定プレイヤーの前記操作の履歴情報から得られる所定の重み値により、当該所定プレイヤーの操作の特徴を示す特徴情報を、前記複数のプレイヤー毎に生成する特徴情報生成手段（例えば図６の特徴情報生成部１０２）と、
を備える。
前記特徴情報生成手段は、
前記所定プレイヤーの操作傾向が、前記複数のプレイヤーの少なくとも一部を含む集合の操作傾向に対して特異になると、当−所定プレイヤーの重み値が重くなるように制御する第１重み制御手段（例えば図６の第１重み制御部１１１）と、
前記所定プレイヤーの操作時点からの経過時間に応じて、当該所定プレイヤーの重み値を制御する第２重み制御手段（例えば図６の第２重み制御部１１２）と、
前記第１重み制御手段と前記第２重み制御手段との各制御結果に基づいて、前記複数のプレイヤー毎に前記重み値を夫々演算することで、前記複数のプレイヤー毎の前記特徴情報を生成する重み演算手段（例えば図６の重み演算部１１３）と、
を含む。
【００８９】
このようにして生成される所定プレイヤーの特徴情報（例えば上述のメタデータベクトルＭＶ）は、所定プレイヤーの操作の履歴情報に基づいて、多くのプレイヤーの共通性に応じた第１重み付け制御（第１重み制御手段による制御）と、時間に応じた第２重み付け制御（第２重み制御手段による制御）とが統合して実行された結果得られるものである。
このようなプレイヤーの特徴情報を用いることで、未知のチート手法でのチートも含めて、各種チートや、チートと疑われる行為を適切に検出する技術が実現可能になる。
【００９０】
即ち、未知のチート手法でのチートも含めて、各種チートや、チートと疑われる行為を適切に検出する技術を実現するためには、次の第１乃至第４の条件が必要になる。
第１の条件とは、偽陽性（Ｆａｌｓｅ−ｏｓｉｔｉｖｅ）がないこと、即ち、無実のプレイヤーをチーターと誤検知し、アカウント停止等の措置を行わないことという条件である。
第２の条件とは、通常起こり得るエラーとの判別が困難なチートに対応することができること。換言すると、チートツールは、チートのためのデータをエラーと誤認させる形で送信するため、チートと断定できなくとも、チートと疑われる行為が実行された時に即座に反応できることが、第２の条件である。
第３の条件とは、リアルタイム対応能力があること、即ちチートやそれと疑われる行為が実行されたときに即座に反応し、サービス提供者へ通知できることという条件である。
第４の条件とは、互換性があること、即ち既存のオペレーティングシステムやウィルス対策ソフトウェア、及び、ゲームシステムそのものとの高い互換性を有し、既存のソフトウェアの実行を妨げる可能性がないことという条件である。
【００９１】
従来の技術では、第１乃至第４の条件のうち、少なくとも１つの条件を満たすことができなかった。
【００９２】
例えば、［背景技術］の欄で上述した特許文献１の技術では、チーターと思われるプレイヤーをグルーピングする。
従って、チーターと思われるプレイヤーが無実のプレイヤーであった場合、チーターのグループから抜け出す措置を講じなければ、第１の条件を満たすことができない。しかしながら、適切な措置は特許文献には見受けられない。
また、通常起こり得るエラーとの判別が困難な、未知のチート手法のチートが行われた場合、リアルタイムに対応して、サービス提供者に通知することは、特許文献１の技術では困難である。つまり、第２及び第３の条件を満たすことは困難である。
【００９３】
これに対して、本発明が適用される情報処理システムは、第１乃至第４の条件を満たすことができる。
【００９４】
即ち、第１重み付け制御により、多くのプレイヤーに共通する操作傾向では重み値が下げられる一方、少数のプレイヤーにのみ共通する特異な操作傾向では重み値が上げられる。これにより、既知のチート手法は勿論のこと未知のチート手法であっても、チート固有の振る舞い（操作傾向）をしているプレイヤーが適切に抽出可能になる。
さらに、第２重み付け制御により、直近の操作の履歴情報には強い重み付けがなされる一方、過去の操作の履歴情報には弱い重み付けがなされる。
これにより、例えばこれまでにはない操作傾向であっても、その操作傾向が類似するプレイヤー群の規模（大きさ）という観点でリアルタイムに監視することが容易にできる。従って、例えばこれまでにない操作傾向が類似するプレイヤー群の規模が増大してきた場合、未知のチート手法によるチート（或いはチートと疑われる行為）が現れた旨を即座に、サービス提供者に通知することができる。
このように、本発明が適用される情報処理システムは、第２及び第３の条件を満たすことができる。
【００９５】
ここで、サービス提供者は、未知のチート手法によるチート（或いはチートと疑われる行為）をしていると判断されたプレイヤーに対して、アカウント停止等の措置を取らずに、例えば通常の操作傾向のプレイヤーから隔離する措置を取るだけでよい。これにより、当該プレイヤーは、未知のチート手法によるチート（或いはチートと疑われる行為）をしている者として自分自身が監視されていると認識することができる。
当該プレイヤーが、チート（或いはチートと疑われる行為）を即座に停止し、通常の操作に戻った場合、第２重み付け制御により直近の操作の履歴情報には強い重み付けがなされるため、特徴情報は通常の操作傾向を示すものに戻る。その結果、当該プレイヤーは、チート（或いはチートと疑われる行為）をしている者というレッテルは外されることになる。
これに対して、当該プレイヤーがチートを停止しない場合、当該チートの操作の履歴情報は累積的に蓄積されていく。従って、第２重み制御により過去の操作の履歴情報に弱い重み付けがなされたとしても、特徴情報はチートの操作傾向を示すもののままである。
このように、本発明が適用される情報処理システムは、第１の条件を満たすことができる。
【００９６】
また、本発明が適用される情報処理システムは、プレイヤーの操作の履歴情報を用いているだけなので、第４の条件を満たすことができる。
【００９７】
このように、本発明が適用される情報処理システムは、第１乃至第４の条件を満たすことができるので、未知のチート手法や検出が困難なチート手法を用いたチートを適切に検出し、その結果、このようなチートに対して即時対応が可能となる。具体的には、即時対応として、未知のチート手法や検出が困難なチート手法を用いるチーターを、一般のプレイヤーから見えないように隔離すると共に、ゲーム運営者に当該チーターの出現を警告することが可能になる。
【００９８】
ここで、所定プレイヤーがチート（或いはチートと疑われる行為）をしているか否かの判断をするための手法は、当該所定プレイヤーの特徴情報を用いる手法であれば足り、特に限定されない。
ただし、未知のチート手法によるチートの発生をリアルタイムに監視したり、チート（或いはチートと疑われる行為）をしている者を通常のプレイヤーから隔離するためには、特徴情報に基づいてクラスタリングを行い、グループ単位での判断を導入すると好適である。
即ち、サーバは、複数のプレイヤー毎の特徴情報に基づいて、前記複数のプレイヤーをクラスタリングするクラスタリング手段（例えば図６のクラスタリング部１０３）を備えると好適である。
【００９９】
ここで、サーバの履歴情報取得手段は、
前記所定プレイヤーの操作の履歴情報を、前記ゲームで受け付けられる複数種類の操作毎に取得する処理を、前記複数のプレイヤー毎に実行し、
前記重み値演算手段は、
前記複数種類の操作の夫々に対応する複数の前記重み値を夫々演算し、
前記複数の重み値を要素として含む前記特徴情報を、前記複数のプレイヤー毎に生成することができる。
これにより、特徴情報として、操作の各種類を軸とする多次元空間上に存在するベクトル（上述のメタデータベクトル）として生成することができる。
その結果、各プレイヤー間の特徴情報の類似度として、多次元空間上の距離等を利用して容易かつ適切に演算することができるので、操作傾向の類似するプレイヤー同士を容易かつ適切に抽出することができる。つまり、チート（或いはチートと疑われる行為）の操作傾向のプレイヤー群と、通常の操作傾向のプレイヤー群とを容易かつ適切に区分できる。
これにより、未知のチート手法でのチートも含めて、各種チートや、チートと疑われる行為をより一段と適切に検出することが可能になる。
【０１００】
また、前記第１重み制御手段は、
前記所定プレイヤーの前記操作の履歴情報の時系列の累積値を分子として
前記複数のプレイヤー毎の前記操作の履歴情報の時系列の累積値の総加算値を分母として、
表される分数値を、当該所定プレイヤーの重み値となるように制御する、
ようにすることができる。
これにより、第１重み付け制御をより一段と適切に実行できるようになる。
【０１０１】
また、前記第２重み制御手段は、
前記所定プレイヤーの前記操作の履歴情報の時系列に対して、当該所定プレイヤーの操作時点からの経過時間が長くなる程減少する重み付けをして、
重み付け後の前記操作の履歴情報の時系列の累積値を前記分子とするという制御を実行できる。
これにより、第２重み付け制御をより一段と適切に実行できるようになる。
【０１０２】
ここで、前記第２重み制御手段は、さらに、当該所定プレイヤーの操作時点からの経過時間が一定時間を超えると、重みの減少を停止させるという制御も実行できる。
これにより、過去のチートの操作の履歴情報にかけられる重みは弱いものの、常習的な場合には多数回のチートの操作が累積されるため、重み値は必然的に高値になる。
このため、常習性のあるチーターの操作傾向は、たとえ直近でチートを停止したとしても、停止時間が短時間の間は、チーター特有の操作傾向であることに変わらない。その結果、当該チーターは、チート（或いはチートと疑われる行為）をしている者というレッテルを外してもらうことはできない。
【０１０３】
また、サーバは、前記クラスタリング手段によりクラスタリングされた前記複数のプレイヤーの夫々の前記端末に対して、同一グループに属する他のプレイヤーの情報を送信し、他グループに属する他のプレイヤーの情報の送信を禁止する制御を実行する送信制御手段（例えば図６の他プレイヤー情報送信制御部１０４）をさらに備えることができる。
これにより、未知のチート手法によるチート（或いはチートと疑われる行為）をしていると判断されたプレイヤーに対して、通常の操作傾向のプレイヤーから隔離する措置が有効的に施される。
その結果、当該プレイヤーは、チート（或いはチートと疑われる行為）をしている者として自分自身がサービス提供者に監視されていることを認識することになる。これにより、チート自体の抑制につながる。
【符号の説明】
【０１０４】
１、１−１乃至１−ｍ・・・プレイヤー端末、２・・・サーバ、２１・・・ＣＰＵ、５１・・・ＣＰＵ、１０１・・・履歴情報取得部、１０２・・・特徴情報生成部、１０３・・・クラスタリング部、１０４・・・他プレイヤー情報送信制御部、１１１・・・第１重み制御部、１１２・・・第２重み制御部、１１３・・・重み演算部
【要約】
【課題】未知のチート手法や検出が困難なチート手法を用いたチートに対して即時対応が可能となる技術を確立すること。
【解決手段】履歴情報取得部１０１は、操作の履歴情報を、複数のプレイヤー端末１−０乃至１−ｍから取得する。特徴情報生成部１０２は、操作の履歴情報から得られる所定の重み値により、操作の特徴を示す特徴情報を複数のプレイヤー毎に生成する。クラスタリング部１０３は、複数のプレイヤー毎の特徴情報に基づいて、複数のプレイヤーをクラスタリングする。他プレイヤー情報送信制御部１０４は、クラスタリングされた複数のプレイヤーの夫々のプレイヤー端末１−０乃至１−ｍに対して、同一グループに属する他プレイヤーの情報を送信し、他グループに属する他プレイヤーの情報の送信を禁止する制御を実行する。
【選択図】図６【図１】
0005936748.tif 000004
【図２】
0005936748.tif 000005
【図３】
0005936748.tif 000006
【図４】
0005936748.tif 000007
【図５】
0005936748.tif 000008
【図６】
0005936748.tif 000009
【図７】
0005936748.tif 000010
【図８】
0005936748.tif 000011
【図９】
0005936748.tif 000012
【図１０】
0005936748.tif 000013
【図１１】
0005936748.tif 000014
【図１２】
0005936748.tif 000015