(57)【要約】１つの態様では、情報処理システムの処理装置が、重複するサブグループに配置された複数のレコードを含むデータベースの高次元層別サンプリングを行うように動作する。所与のレコードについて、この処理装置は、所与のレコードがサブグループのどれと関連するかを判断し、所与のレコードと関連するサブグループのそれぞれについて、サブグループのサンプリングレートが指定のサンプリングレート未満であるかどうかをチェックする。サブグループのそれぞれのサンプリングレートが指定のサンプリングレート未満である場合、処理装置は所与のレコードをサンプルし、そうでない場合は所与のレコードをサンプルしない。判断、チェック、およびサンプルの演算は、さらなるレコードに対して繰り返され、サンプル演算の結果として生じるサンプルが処理されて、データベースを特徴づける情報を生成する。本発明の他の態様は、例えばサンプルされるレコードの尤度関数に基づくことができる目的関数の反復最適化によって、どのレコードをサンプリングすべきかを判断することに関する。
2013534674.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、前記装置が、
関連するメモリを有するプロセッサを含む処理装置を備え、
前記処理装置が、
所与のレコードについて、前記所与のレコードが複数のサブグループのどれと関連するかを判断し、
前記所与のレコードと関連する前記サブグループのそれぞれについて、前記サブグループのサンプリングレートが指定のサンプリングレート未満であるかどうかをチェックし、
前記サブグループのそれぞれの前記サンプリングレートが前記指定のサンプリングレート未満である場合、前記所与のレコードをサンプルし、そうでない場合は前記所与のレコードはサンプルされず、
複数のさらなるレコードのそれぞれについて、前記判断、チェック、およびサンプルの演算を繰り返す、
ように動作し、
前記サンプル演算の結果として生じるサンプルが処理されて、前記サブグループを含むデータベースを特徴付ける情報を生成する、装置。
【請求項２】
前記処理装置が、前記所与のレコードおよび前記複数のさらなるレコードについて前記判断、チェック、およびサンプルの演算を行うように構成されたサンプリングモジュールを有するコントローラを備える、請求項１に記載の装置。
【請求項３】
前記サブグループが、前記データベースのレコードの重複セットを含む、請求項１に記載の装置。
【請求項４】
前記処理装置がさらに、前記サブグループのそれぞれについて、そのサブグループと関連するレコード数を示す第１のカウンタ、およびそのサブグループからのレコードがサンプルされた回数を示す第２のカウンタを保持するように動作する、請求項３に記載の装置。
【請求項５】
前記処理デバイスがさらに、そのサブグループに保持された前記第１のカウンタの値、およびそのサブグループに保持された前記第２のカウンタの値に応じて各サブグループの前記サンプリングレートを判断するように動作する、請求項４に記載の装置。
【請求項６】
前記処理装置がさらに、前記所与のレコードがサンプルされるかどうかに基づいて前記所与のレコードと関連する各サブグループについて前記第１および第２のカウンタの少なくとも１つを更新するように動作する、請求項５に記載の装置。
【請求項７】
請求項１に記載の装置を備える集積回路。
【請求項８】
所与のレコードについて、前記所与のレコードが複数のサブグループのどれと関連するかを判断するステップと、
前記所与のレコードと関連する前記サブグループのそれぞれについて、前記サブグループのサンプリングレートが指定のサンプリングレート未満であるかどうかをチェックするステップと、
前記サブグループのそれぞれの前記サンプリングレートが前記指定のサンプリングレート未満である場合、前記所与のレコードをサンプルし、そうでない場合は前記所与のレコードはサンプルされないステップと、
複数のさらなるレコードのそれぞれについて、前記判断するステップ、チェックするステップ、およびサンプルするステップを繰り返すステップと、
前記サンプリングのステップの結果として生じるサンプルを処理して、前記サブグループを含むデータベースを特徴付ける情報を生成するステップと、を含む、プロセッサ実行方法。
【請求項９】
処理装置のプロセッサによって実行されるとき、請求項８に記載の方法の前記ステップを前記装置に行わせる実行可能プログラムコードを組み入れたコンピュータ可読記憶媒体を備える製品。
【請求項１０】
装置であって、前記装置が、
関連するメモリを有するプロセッサを含む処理装置を備え、
前記処理装置が、
複数のレコードのそれぞれのレコードがサンプルされるかどうかを指定するバイナリインジケータの成分を繰り返して更新することによって、レコードの重複するサブグループの中の前記複数のレコードのどれがサンプルされるかを特徴付ける目的関数を最適化し、
前記目的関数を最適化する前記バイナリインジケータの前記更新された成分の値に基づいて前記複数のレコードの特定のレコードをサンプルする、
ように動作し、
前記サンプル演算の結果として生じるサンプルが処理されて、レコードの前記サブグループを含むデータベースを特徴付ける情報を生成する、装置。
【請求項１１】
複数のレコードのそれぞれのレコードがサンプルされるかどうかを指定するバイナリインジケータの成分を繰り返して更新することによって、レコードの重複するサブグループの中の前記複数のレコードのどれがサンプルされるかを特徴付ける目的関数を最適化するステップと、
前記目的関数を最適化する前記バイナリインジケータの前記更新された成分の値に基づいて前記複数のレコードの特定のレコードをサンプルするステップと、
前記サンプリングのステップの結果として生じるサンプルを処理して、前記複数のレコードを含むデータベースを特徴付ける情報を生成するステップとを含む、プロセッサ実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に情報処理の分野に関し、より詳細には、情報処理システムのデータベースと関連するレコードの層別サンプリングのための技術に関する。
【背景技術】
【０００２】
大規模データベースは、多くの場合、各レコードが多くの属性を有する数百万以上のレコードを含む。一般にデータベースから無作為にレコードを選択することを含むサンプリング技術を用いて、このようなデータベースに統計的演算を行うことができる。選択されたレコードは、次いで解析されて、データベース中のレコード一式を特徴づける統計を生成する。結果の統計がデータベースを正確に特徴づけることを保証するために、層別サンプリング技術を使用することができる。層別サンプリングでは、データベースのレコードは、サブグループすなわち「層（ｓｔｒａｔａ）」に分割され、その後サブグループのそれぞれから１つまたは複数のレコードを無作為に選択して解析する。従来の層別サンプリング技術については、「Ｓｔｒａｔｉｆｉｅｄ  Ｓａｍｐｌｉｎｇ  ｏｆ  Ｄａｔａ  ｉｎ  ａ  Ｄａｔａｂａｓｅ  Ｓｙｓｔｅｍ」という名称の米国特許出願第２００２／０１９８８６３号に記載されている。
【０００３】
従来の層別サンプリング技術に関連する問題は、このような技術が一般にレコードを互いに排反するサブグループに分割しようと試み、したがって限られた数の属性を考慮に入れることしかできないことである。レコードあたりの属性の数は、一般にデータベースの「次元（ｄｉｍｅｎｓｉｏｎａｌｉｔｙ）」と呼ばれ、従来の層別サンプリング技術は、低次元の状況でのみ実用的である。しかしながら、電気通信の用途でトラック接続データに使用されるデータベースなど、多くの現代のデータベースは、非常に高次元を有する。
【０００４】
例として、それぞれがＫ個の属性を有し、各属性がｍｋ個の離散値をとり、１＜ｋ＜ＫであるＮ個のレコードを格納するデータベースを考察する。Ｋが小さい場合、データベースを互いに排反するサブグループに分割するために、属性を単に連結することができる。この場合のサブグループの数は、
【数１】
2013534674.tif 000003
によって求めることができる。しかしながら、Ｋが大きくなるにつれて、この手法は実用的ではなくなる。例えば、ｍｋ＝５かつＫ＝１０の場合、およそ１０７のサブグループがあり、そのうちの多くがレコードを含んでいない、または少数のレコードしか含んでいないことになる。このタイプの高次元コンテキストでは、従来の層別サンプリング技術は、Ｋ個の属性のそれぞれに適切な層別サンプルを提供することができない。この問題は、大規模データベースの統合および維持管理、データマイニング、データウェアハウジング、問い合わせ処理、電気通信網のトラフィック分析、世論調査など、数多くの情報処理の用途において顕著である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願第２００２／０１９８８６３号
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明の例示的実施形態は、レコードの数Ｎとレコードあたりの属性の数Ｋが共に大きい用途で使用するのに好適な高次元層別サンプリング技術を提供する。こうした実施形態は、逐次高次元層別サンプリングアルゴリズムおよび最適高次元層別サンプリングアルゴリズムを含む。前者は、詳細にはオンラインサンプリングに有用であり、後者は、詳細にはオフラインまたは定期的サンプリングに有用であるが、どちらも多種多様なその他のサンプリング用途に使用することもできる。
【０００７】
本発明の一態様に従って、情報処理システムの処理装置が、重複するサブグループに配列された複数のレコードを含むデータベースの高次元層別サンプリングを行うように動作する。所与のレコードについて、処理装置は、所与のレコードはサブグループのどれと関連するかを判断し、所与のレコードと関連するサブグループのそれぞれについて、サブグループのサンプリングレートが指定のサンプリングレート未満であるかどうかをチェックする。サブグループのそれぞれのサンプリングレートが指定のサンプリングレート未満である場合、処理装置は所与のレコードをサンプルし、そうでない場合は所与のレコードをサンプルしない。判断、チェック、およびサンプルの演算はさらなるレコードに対して繰り返され、サンプル演算の結果として生じたサンプルを処理して、データベースを特徴付ける情報を生成する。
【０００８】
本発明の別の態様に従って、情報処理システムの処理装置が、複数のレコードのどれがサンプルされるべきであるかを特徴付ける目的関数を最適化することによって、重複するサブグループに配列された複数のレコードを含むデータベースの高次元層別サンプリングを行う。目的関数は、例えば、サンプルされるレコードの尤度関数に基づくことができ、より詳細には、サンプルされるレコードの尤度関数の二項正規近似（ｂｉｎｏｍｉａｌ−ｎｏｒｍａｌ  ａｐｐｒｏｘｉｍａｔｉｏｎ）に基づくことができる。目的関数の最適化は、複数のレコードのそれぞれのレコードがサンプルされるかどうかを指定するバイナリインジケータの成分（ｃｏｍｐｏｎｅｎｔ）を繰り返し更新することによって行われる。処理装置は、目的関数を最適化するバイナリインジケータの更新された成分の値に基づいて複数のレコードの特定のレコードをサンプルし、結果として生じるサンプルを処理して、レコードのサブグループを含むデータベースを特徴付ける情報を生成する。
【０００９】
例示的実施形態は、従来の手法に優る重要な利点を提供する。例えば、例示的実施形態における逐次高次元層別サンプリング処理および最適高次元層別サンプリング処理を使用して、最小限のコンピューティング要件およびメモリ要件で、信頼できる、不偏サンプルを生成することができる。
【００１０】
本発明のこれらのおよび他の特徴および利点は、添付の図面および次の詳細な説明からより明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】本発明の例示的実施形態における高次元層別サンプリングを実行する情報処理システムのブロック図である。
【図２】図１のシステムの処理装置のより詳細な図である。
【図３】本発明の例示的実施形態における逐次高次元層別サンプリング処理の流れ図である。
【図４】本発明の例示的実施形態における最適高次元層別サンプリング処理の流れ図である。
【図５】図３または４の高次元層別サンプリング処理を適用することができるネットワークトラフィックの用途における接続レコードのセットの簡単な例を示す図である。
【図６】逐次高次元層別サンプリングおよび最適高次元層別サンプリングのサンプリングレートに応じた推定誤りを従来の無作為サンプリングの推定誤りと比較するグラフのセットの図である。
【図７】逐次高次元層別サンプリングおよび最適高次元層別サンプリングのサブグループの数に応じた推定誤りを従来の無作為サンプリングの推定誤りと比較するグラフのセットの図である。
【発明を実施するための形態】
【００１２】
本発明について、本明細書では例示的情報処理システム、処理装置、および高次元層別サンプリング技術と併せて説明する。しかしながら本発明は、開示した特定のタイプのシステム、装置、および技術を用いた利用に限定されないことを理解すべきである。例えば、本発明の諸態様は、例示的実施形態と併せて記載したもの以外の処理装置および処理ステップを用いて、多種多様な他の情報処理システム構成で実行することができる。
【００１３】
図１は、サーバ１、サーバ２、……サーバＮとも示す複数のサーバ１０６−１、１０６−２、……１０６−Ｎを含むデータベースシステム１０５に、ネットワーク１０４を介して結合されたコントローラ１０２を備えた情報処理システム１００を示している。サーバ１０６のそれぞれは、関連するデータベース１０８を有する。これらのデータベースは、ネットワーク１０４を介してコントローラ１０２によってアクセスされるレコードまたは他のデータオブジェクトを格納している。この実施形態のコントローラ１０２は、以下でさらに詳細に説明する１つまたは複数の高次元層別サンプリング技術を実行するように構成されたサンプリングモジュール１１０を備えている。サンプリングモジュール１１０は、（１つまたは複数の）高次元層別サンプリング技術を利用して、必ずしも互いに排反しないサブグループに分割されたレコードのセットを処理する。サンプリングモジュール１１０によって処理されたレコードは、データソース１１２から受信される、またはデータベースシステム１０５のデータベース１０８の１つもしくは複数から検索されることが可能である。結果として生じる層別サンプルは、サンプルデータベース１１４のコントローラ１０２によって格納されることが可能である。図中ではデータベースシステム１０５から分離しているように示しているが、コントローラ１０２およびサンプルデータベース１１４のようなシステム要素は、代替的にはデータベースシステム１０５内に実装することができる。
【００１４】
コントローラ１０２は、ネットワーク１０４を通じてデータベースシステム１０５と通信するのに好適であるコンピュータまたは他の任意のタイプの処理装置の少なくとも一部分を備えることができる。例えばコントローラには、ポータブルもしくはラップトップコンピュータ、携帯電話、携帯情報端末（ＰＤＡ）、ワイヤレス電子メールデバイス、テレビのセットトップボックス（ＳＴＢ）、またはその他の通信デバイスが含まれる。
【００１５】
ネットワーク１０４は、インターネットのようなワイドエリアネットワーク、メトロポリタンエリアネットワーク、ローカルエリアネットワーク、ゲーブルネットワーク、電話ネットワーク、衛星ネットワーク、ならびにこれらのまたはその他のネットワークの一部または組合せを含むことができる。
【００１６】
他の実施形態では、サンプリングモジュール１１０は、サーバ１０６もしくはその関連データベース１０８の１つもしくは複数に、またはこうした要素の１つまたは複数に結合された別個の集中コントローラに、実装することができる。モジュールの一部をデバイス１０２、１０６、もしくは１０８のそれぞれまたはその一部に配列して、サンプリングモジュールを分散して実装することもまた可能である。
【００１７】
データベース１０８は、特定の構成である必要はなく、本明細書で使用する「データベース」という用語はしたがって、格納されたレコードのいかなる数の様々な配置も含むように、広く解釈されるよう意図されている。
【００１８】
次に図２を参照すると、システム１００のコントローラ１０２の１つの可能な実装が示されている。この実施形態では、コントローラは、メモリ２０２に結合されたプロセッサ２００を含み、さらにネットワークインタフェース回路２０４を含む。メモリ２０２は、サンプリングモジュール１１０による処理に備え、レコード２０５またはその一部を格納すると想定する。格納されたレコード２０５は、データソース１１２から受信される、またはネットワーク１０４を通じてデータベースシステム１０５から検索されることが可能である。この実行でのコントローラ１０２のサンプリングモジュール１１０は、サブグループ識別モジュール２１０と、サンプリングレート判定モジュール２１２と、サンプリング決定モジュール２１４と、最適化モジュール２１５と、サブグループあたりのレコード数をカウントするカウンタ２２２およびサブグループあたりのサンプル数をカウントするカウンタ２２４を含むカウンタ２２０のセットとを備える。こうしたモジュールおよびカウンタの動作については、図３および４と関連して以下により詳細に説明する。
【００１９】
プロセッサ２００は、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、または他のタイプの処理装置、ならびにこのような装置の一部または組合せとして実装することができる。メモリ２０２は、電子ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、ディスクベースのメモリ、または他のタイプの記憶装置、ならびにこのような装置の一部または組合せを含むことができる。プロセッサおよびメモリは、高次元層別サンプリングのための1つまたは複数のソフトウェアプログラムを格納および実行する際に、ならびにレコードの格納および処理と関連する動作のような関連動作を行うために、使用することができる。モジュール２１０、２１２、２１４、および２１５は、したがってこのようなソフトウェアプログラムを少なくとも一部使用して、実装することができる。メモリ２０２は、より一般的に本明細書ではコンピュータプログラム製品と呼ぶもの、またはさらに一般的に実行可能プログラムコードをそこに組み入れたコンピュータ可読記憶媒体と呼ぶものの一例と見ることができる。コンピュータ可読記憶媒体の他の例には、ディスクまたは他のタイプの磁気媒体または光媒体が任意の組合せで含まれる。
【００２０】
プロセッサ２００、メモリ２０２、およびインタフェース回路２０４は、本明細書に記載する方法で動作するように適切に変更された周知の従来の回路を含むことができる。また、図２に示す様々なモジュールは、関連機能を実装するために使用される回路の例と見ることができる。例えば、このような回路の一部は、行列乗算回路、または他のタイプの算術論理演算回路を含むことができる。このような回路の従来の態様は、当業者にはよく知られているので、本明細書では詳細に説明しない。
【００２１】
本明細書に開示する情報処理システムおよび関連するコントローラは、図１および２の例示的配置に具体的に示す構成要素およびモジュール以外の構成要素およびモジュールを使用して実現することができることを理解されたい。
【００２２】
次に、例示的実施形態におけるシステム１００の動作について、図３および４の流れ図を参照して説明する。こうした流れ図は、それぞれ逐次高次元層別サンプリング技術および最適高次元層別サンプリング技術を示している。こうした実施形態について、Ｎ個のレコードがそれぞれＫ個の属性を有し、各属性がｍｋ個の離散値をとり、１≦ｋ≦ＫであるＮ個のレコードを格納するデータベースに、サンプリング技術を適用すると想定する。このサンプルされるデータベースは、例えばデータベースシステム１０５のデータベース１０８の1つもしくは複数、またはデータベースシステム１０５全体を含むことができる。このコンテキストのＮは、格納されたレコードの総数を指し、図１のコンテキストのようにサーバ１０６およびデータベース１０８の数を指さないことに注意すべきである。
【００２３】
サブグループは一般に、対象の分野のカテゴリおよびその組合せによってあらかじめ定義される。以下の記載の一部では、レコードの各サブグループが、１つの属性に対して、ｍｋ個の離散値またはカテゴリ値（連続属性の場合、これらをｍｋ個の値に離散するまたは分類することができる）の特定の１つをとり、これにより合計
【数２】
2013534674.tif 000004
個のサブグループまたは層があると、それに限定することなく、想定する。したがって、こうした実施形態ではサブグループは、多くの重複レコードを有する可能性がある。これは、先に示したように、レコードを互いに排反するサブグループに分割する従来の層別サンプリングと対照的である。大規模で複雑なデータベースについては、Ｊは非常に大きい可能性があることに注意すべきである。
【００２４】
また、サブグループの数Ｊは、各サブグループが１つの属性に対してｍｋ個の離散値またはカテゴリ値の特定の値をとるという上記の想定の下で生じる
【数３】
2013534674.tif 000005
個のサブグループよりも大きいことが可能である。例えば、２つ以上の属性の組合せを取ることによって、サブグループを定義することができる。複数の属性のこのような組合せは、多くの典型的な実際の適用において重要である可能性がある。したがって、Ｊは、
【数４】
2013534674.tif 000006
よりも大きいが、
【数５】
2013534674.tif 000007
よりもかなり小さい可能性がある。
【００２５】
レコードとサブグループとの間の関係は、次のように定式化することができる。ＡはＮ×Ｊの２値行列であって、Ａｉｊは、ｉ番目のレコードがｊ番目のサブグループの部分であるかどうかを示し、ｉ＝１，……，Ｎ、ｊ＝１，……，Ｊであるとする。簡単にするために、各レコードは少なくとも１つのサブグループに属し、したがって、Ａの各行は、少なくとも１つの１を含まなければならないと想定する。
【数６】
2013534674.tif 000008
と共にｃ∈｛０，１｝Ｎとし、ｎはサンプルされるレコード数であり、Ｎはサンプル元のレコード数であり、ｃｉはｉ番目のレコードがサンプルされるかどうかを示すようにする。
【数７】
2013534674.tif 000009
をそれぞれｊ番目のサブグループのレコード数およびサンプルされるレコード数とする。Ｊは大きい可能性があるので、このコンテキストでの高次元層別サンプリングの目的は、ｊ＝１，……，Ｊについてｓｊ≒ｎｊｐとなるようにｃを選ぶことと特徴付けることができる。先に示したように、高次元層別サンプリングのための２つの異なる技術は、本明細書では逐次高次元層別サンプリングおよび最適高次元層別サンプリングと呼び、それぞれ図３および４と併せて説明する。
【００２６】
上述のＮ×Ｊの２値行列Ａは一般に非常に疎（ｓｐａｒｓｅ）であって、Ａはコンパクトメモリ空間内に格納できることに注意することが重要である。また、当業者に周知である疎行列の演算を使用して、Ａが疎であることを利用する計算を効率的に行うことができる。
【００２７】
図３または４の高次元層別サンプリング処理を適用することができるネットワークトラフィックの利用における接続レコードのセットの簡単な例を図５に示している。この例では、３つの接続レコードを示しており、それぞれが開始時刻、終了時刻、接続タイプ、コール試行失敗（ＦＣＡ）、および最強パイロットを含む。しかしながら、本明細書に開示する技術は、いかなるタイプのレコードにも適用することができ、いかなる特定のレコードフォーマットを使用することを要求しないことを理解すべきである。したがって、本明細書で使用する「レコード」という用語は広く解釈され、格納されたデータまたは他のデータオブジェクトの数多くの様々な配置を含むように意図している。
【００２８】
次に図３を参照すると、図１のシステム１００で実行される逐次高次元層別サンプリング処理を説明する流れ図が示されている。一般にこの実施形態のサンプリング処理は、例えばこのようなレコードがデータソース１１２から受信されるとき、レコードを逐次的に処理することを含んでいる。新しいレコードがそれぞれ利用可能になるとき、リアルタイムで逐次的にレコードをサンプルすることができるという点で、これは「オンライン」サンプリングのタイプである。この処理は、図示したステップ３００から３１２を含む。
【００２９】
ステップ３００では、サンプリングを検討する次のレコードを取得する。先に示したように、このレコードは、データベース１０８の１つに格納するためにデータソース１１２の１つから受信される新しいレコードである可能性がある。一部の実施形態では、レコードがサンプリングを検討される順序は、無作為に変えて、ローカルストレージの構造のような要因によってサンプリングが偏らないことを確実にすることができる。
【００３０】
ステップ３０２では、この特定のレコードがＪ個のサブグループのどれに属するかに関する判断を行う。サブグループは、この実施形態では上述の方法であらかじめ決定されるものと想定する。他の実施形態では、アソシエーションルールマイニング（ａｓｓｏｃｉａｔｉｏｎ  ｒｕｌｅ  ｍｉｎｉｎｇ）アルゴリズムのような技術を使用して、サブグループを判断することができる。
【００３１】
ステップ３０４では、レコードが属する各サブグループのサンプリングレートが指定のサンプリングレートｐ未満であるかどうかについての判断を行う。サンプリングレートは、サブグループのカウンタ２２２あたりのレコードの対応するレコード、およびサブグループカウンタ２２４あたりのサンプルの対応するサンプルを使用して、所与のサブグループについて判断される。サブグループのカウンタあたりのレコードは、そのサブグループの一部であるレコードの数に換算して、サブグループのサイズを測定する。サブグループのカウンタあたりのサンプルは、サブグループがサンプルされた回数を測定する。サブグループのサンプリングレートは、サブグループがサンプルされた回数を、サブグループの一部であるレコードの数で割ったものとして決定される。このサンプリングレートは、サンプリングを検討されているレコードを含むサブグループのそれぞれについて個々に決定される。
【００３２】
レコードが属する各サブグループのサンプリングレートが、指定のサンプリングレートｐ未満である場合、レコードはステップ３０６に示すようにサンプルされる。そうでない場合、ステップ３０８に示すように、レコードはサンプルされない。したがって、検討中の所与のレコードは、レコードが属するサブグループのそれぞれについて、認識されるサンプリングレートが指定のサンプリングレートｐで上に有界である場合、かつその場合に限り、サンプルされる。
【００３３】
次いでプロセスはステップ３１０に移り、サンプルされるまたはサンプルされないレコードが属するサブグループに対して適切なカウンタを更新する。次いで更新されたカウンタは、サンプリングを検討される次のレコードに適用されるプロセスの次の繰り返しで使用される。ステップ３０６において、レコードが属するサブグループのそれぞれについてレコードがサンプルされた場合、サブグループあたりのレコードのカウンタ２２２の対応するカウンタ、およびサブグループあたりのサンプルのカウンタ２２４の対応するカウンタが更新される。しかしながら、検討中のレコードがサンプルされず、プロセスがステップ３０８を介してステップ３１０に達する場合、サブグループあたりのサンプル数は変わらないので、サブグループカウンタあたりのレコードを更新するだけでよい。
【００３４】
ステップ３１２では、処理するさらなるレコードがあるかどうかについて判断する。さらなるレコードがある場合、プロセスはステップ３００に戻って、サンプリングを検討する次のレコードを取得する。そうでない場合、プロセスは図のように終了する。
【００３５】
図３の処理を用いてレコードの所与のセットの適切なサンプルが生成されると、サンプルは、システム１００のサンプルデータベース１１４または他の場所に格納され、これを使用して回帰分析、データマイニング、または他のファンクションを行うことができる。より一般的には、サンプル演算の結果は、さらに処理されて、レコードのサブグループを含むデータベースを特徴付ける情報を生成する。
【００３６】
図４を参照すると、図１のシステム１００において実行される最適高次元層別サンプリング処理を示す流れ図が示されている。この実施形態のサンプリング処理は、一般に、例えばデータベース１０８の１つまたは複数から検索された、またはデータソース１１２の１つまたは複数から受信された、グループのレコードを処理することを含む。これは、レコードが図３の実施形態のように逐次的に処理されないので、「オフライン」のタイプまたは定期的サンプリングと見ることができる。この処理は、図のようにステップ４００から４１０を含む。
【００３７】
最適サンプリングプロセスでは、目的関数の最適化により、所望のサンプリングの解がもたらされる。１つの考えられる目的関数は、ｃに応じて
【数８】
2013534674.tif 000010
を最小にすることである。これは二次ノルムであり、小さいｎｊを有する層（strata）を無視する傾向があって一定の応用では望ましくない。別の可能性は、小さい層により集中する、相対誤差
【数９】
2013534674.tif 000011
を最小にすることである。しかしながら、こうした２つの考えられる目的関数の代わりとして、大きい層と小さい層との間で程よい妥協を行う目的関数を以下に説明する。各サブグループのサンプルサイズｓｊは、これまで通り、二項分布に従うことに注意されたい。各サブグループを個々に扱うことによって、サンプルの尤度関数によって求められる二項目的関数を次のように表すことができる：
【数１０】
2013534674.tif 000012
ここで、ｎｊはｊ番目のサブグループのサイズである。サブグループについての独立性の想定（ｉｎｄｅｐｅｎｄｅｎｃｅ  ａｓｓｕｍｐｔｉｏｎ）は、サブグループが重複していないことを意味しないことに注意されたい。代わりに、どのレコードが他のサブグループと関連しているかとは無関係に、各サブグループはレコードの任意のサブセットを含むことができるということを単に意味する。したがってこれは、様々なサブグループと関連するレコード間の無作為の重複を暗黙的に想定する。尤度関数の最大化により、どのレコードがサンプルされるかに関する解がもたらされる。
【００３８】
二項正規近似に基づいて、すなわち、ｓｊが正規分布Ｎ(ｎｊｐ，ｎｊｐ（１−ｐ））にほぼ従い、対応する正規目的関数は、次のように定式化することができる：
【数１１】
2013534674.tif 000013
これは、正規近似に基づいて、｛ｓj：１≦ｊ≦Ｊ｝の対数尤度関数（ある定数まで）である。二項目的関数と正規目的関数の間には、２つの主要な違いがあることに注意されたい。第１に、正規目的関数は、重み付けされた２乗和（ｗｅｉｇｈｔｅｄ  ｓｑｕａｒｅ  ｓｕｍ）であり、相対的推定誤りは、
【数１２】
2013534674.tif 000014
によって定義され、サブグループはそれらのサイズで重み付けされて小さいサブグループの評価が下げられる。したがって、これは二項目的関数よりも直感的である。Ｌ（ｃ）の小さい値は、小さい相対的推定誤りを意味する。第２に、
【数１３】
2013534674.tif 000015
であり、ただしｃ∈｛０，１｝ｎが２値ベクトルであって、レコードがサンプルされるかどうかを示す、未知のパラメータであるので、正規目的関数は、ｃの二次形式であり、これは正規目的関数の最適化を二項の場合よりも簡単にする。こうした利点により、図４の実施形態は、正規目的関数Ｌ（ｃ）を利用する。Ｌ（ｃ）の二次形式は、
【数１４】
2013534674.tif 000016
と書くことができる。次いで、ｃに関するＬ（ｃ）の最小化が、サンプリングの解をもたらし、これを本明細書では最適サンプリングと呼ぶ。
【００３９】
本明細書で使用する「最適」および「最適化」のような用語は、いかなる特定の絶対最小値または絶対最大値の達成も必要としないが、代わりに例えば指定された範囲内の、または指定された残差に従った最小または最大値の達成を含むように広く解釈されるよう意図されていることに注意されたい。
【００４０】
図４のサンプリング処理のステップ４００では、前述のＮ×Ｊの２値行列Ａは定式化され、Ａｉｊは、ｉ番目のレコードがｊ番目のサブグループの一部であるかどうかを示し、ｉ＝１，……，Ｎ、ｊ＝１，……，Ｊである。再度、各レコードが少なくとも１つのサブグループに属すると想定し、したがってＡの各列は少なくとも１つの１を含まなければならない。
【００４１】
ステップ４０２では、ｃｉは、ｉ番目のレコードがサンプルされるかどうかのバイナリインジケータとして指定されている。上記のように、
【数１５】
2013534674.tif 000017
と共に、ｃ∈｛０，１｝Ｎである。
【００４２】
ステップ４０４では、上述の正規目的関数Ｌ（ｃ）は、前述の二項正規近似に基づいて、定式化される。
【００４３】
ステップ４０６では、目的関数Ｌ（ｃ）は最適化され、より詳細には、ｃに応じて最小化されて、所望のサンプリングの解を提供する。この特定の最小化問題は、典型的にはＮＰハードである、２値二次最適化問題（ｂｉｎａｒｙ  ｑｕａｄｒａｔｉｃ  ｏｐｔｉｍｉｚａｔｉｏｎ  ｐｒｏｂｌｅｍ）のタイプである。このような最適化問題を解決する既知のアルゴリズムは、焼き鈍し法（ｓｉｍｕｌａｔｅｄ  ａｎｎｅａｌｉｎｇ）およびタブー検索を含むが、非常に時間のかかるものである可能性がある。代わりにステップ４０６において実行される最適化は、反復処理を利用し、ｉ＝１，……，ｎについて、ｃｉ以外のｃのすべての成分（ｃｏｍｐｏｎｅｎｔｓ）を調整し、ｃｉ＝１またはｃｉ＝０がより小さいＬ（ｃ）の値を生み出すかどうかに従ってｃｉを更新する。反復ステップは、目的関数が単調に減少するので、局所解に集まる。局所収束を迅速に達成することができ、すなわち各ｃｉは、典型的には数回更新されるだけでよく、このために大きな計算負荷が生じることはない。図３の高次元逐次サンプリング処理、すなわち従来の無作為サンプリングは、レコードのグループに適用して、Ｌ（ｃ）を最小化するためのｃの優れた初期化ポイントを提供することができることに注意されたい。またスペクトル近似のような代替技術を使用して、ｃの初期値を取得することもできる。
【００４４】
ステップ４０８では、レコードは、最適化ステップ４０６で決定されたｃの中の値に基づいてサンプルされる。
【００４５】
ステップ４１０では、処理するさらなるレコードがあるかどうかに関する判断を行う。さらなるレコードがある場合、プロセスはステップ４００に戻って、サンプリングを検討するさらなるレコードを取得する。そうでない場合、プロセスは図のように終了する。
【００４６】
図３の処理の場合のように、図４の処理を用いてレコードの所与のセットの適切なサンプルが生成されると、サンプルは、システム１００のサンプルデータベース１１４または他の場所に格納され、これを使用して回帰分析、データマイニング、または他のファンクションを行うことができる。このようなファンクションは、サンプル演算の結果をさらに処理して、レコードのサブグループを含むデータベースを特徴付ける情報を生成することができる方法の例である。
【００４７】
多くの実際の利用においては、レコードは通常連続して届き、Ｎは極めて大きくなる可能性がある。したがって、図４の最適プロセスを定期的に適用してサンプルを取得し、図３の逐次処理を使用して取得された１つまたは複数の事前のサンプルを用いてこれらのサンプルをマージすることができる。このように、本発明の他の実施形態は、図３および４の逐次サンプリング処理と最適サンプリング処理、またはこのような処理の一部を結合することができる。
【００４８】
図３および４のサンプリング処理の性能シミュレーションについて、次に説明する。こうしたシミュレーションでは性能は、サンプリングレートｐおよびレコードのサブグループの行列Ａの関数である。パラメータｒ∈｛０，１｝を使用して、２つのサブグループ間の相関関係を特徴付け、行列Ａの各成分（ｅｎｔｒｙ）Ａｉｊは、独立したベルヌーイの乱数（Ｂｅｒｎｏｕｌｌｉ  ｒａｎｄｏｍ  ｎｕｍｂｅｒ）として生成され、すなわちＰ（Ａｉｊ＝１）＝ｒである。次いでサブグループは、値１をとるＡの成分によって決定される。各サブグループのサイズは、ｍ＝ｎｒの期待値を有し、２つのサブグループは、ｎｒ２＝ｍｒに等しい重複レコードの期待数を有する。したがって、２つのサブグループ間のコサイン相関は約ｒである。ｒ＝０のとき、サブグループは互いに排反し、ｒが１に近いとき、サブグループの各ペアは、多くの重複レコードを有する。しかしながら、ｋ個の異なるサブグループ中の重複レコードの期待数はｎｒｋであり、ｋが大きくなるにつれて指数関数的に減衰する。
【００４９】
図６は、逐次高次元層別サンプリングおよび最適高次元層別サンプリングのサンプリングレートｐに応じた推定誤りを従来の無作為サンプリングの推定誤りと比較するグラフのセットを示している。これらのグラフでは、ｎ＝１０６、Ｊ＝１００００、ｒ＝０．００１、およびｐは０．００１から０．５まで変化する。グラフから、従来の無作為サンプリングの推定誤りは、サンプリングレートに対して不変であることがわかる。しかしながら、逐次高次元層別サンプリングと最適高次元層別サンプリングの両方の推定誤りは、極めて小さいサンプリングレートを除いて、無作為サンプリングの推定誤りよりもはるかに良いものである。さらに、逐次高次元層別サンプリングと最適高次元層別サンプリングの両方の推定誤りは、サンプリングレートが大きくなるにつれて、ｐ−１までの線形よりもわずかに速く、急速に減少する。また、最適サンプリングは、小さいサンプリングレートについては特に、逐次サンプリングよりも一様に優れて機能することがわかる。
【００５０】
図７は、逐次高次元層別サンプリングおよび最適高次元層別サンプリングのサブグループの数に応じた推定誤りを従来の無作為サンプリングの推定誤りと比較するグラフの複数のセットを示している。これらのグラフでは、ｎ＝１０６、ｐは０．００１から０．１まで変化し、ｒは２−１４から２−６まで変化し、これは１００未満から２０，０００までのサブグループのサイズに対応する。無作為サンプリングと最適サンプリングの両方の推定誤りは、すべての場合において対数尺度でほぼ１の勾配を有して、Ｊとともにほぼ線形に増大し、逐次サンプリングは、わずかに大きい勾配を有し、すなわち逐次サンプリングは、Ｊが大きくなるとき他の２つよりも速く減衰することがわかる。ｐとｒがともに小さいときを除くすべての場合において、無作為サンプリングから最適サンプリングでは有意の誤りの減少がある。逐次サンプリングの性能は一般に、無作為サンプリングよりも優れているが、ｐとｒがともに非常に小さいとき、またはＪが大きいときを除いて最適サンプリングよりも劣っている。
【００５１】
先に示したように、本明細書に開示する高次元層別サンプリング技術は、多種多様な用途で実行されることが可能である。例えば、こうした技術は、無線網において各呼に生成される接続レコードを含む、データベースの問い合わせおよび保守管理の用途に使用することができる。このようなネットワークにおける接続レコードのデータベースは、何百もの属性を含む可能性がある。一日におよそ数百万の割合で新しいレコードが届くので、データベースは定期的に更新される必要がある。一般的には、高容量のために長い間データベースにレコードを保持することができない。したがって、レコードのより長期の履歴（例えば数ヶ月）を保護し、また完全なデータベースを表わすことができるサンプルデータベースを有することが有利である。このような用途では、各時間間隔（例えば、５分の間隔）および各位置（例えば、都市のセクタ）で行われる接続が表され、失敗した接続の各カテゴリが、完全なレコードにおけるその比率に基づいてサンプルされるように、レコードをサンプルすることが望ましい場合がある。またサンプルレコードは、セッション確立のタイプ、セッション確立段階における信号の特性、トラフィック量、パイロット数など、呼の障害の根本的原因と相関性がある要因を表すべきである。また、接続の失敗だけでなく、信号強度が強いこと、主要基地局に近いことも示すレコードのように、複数の要因の間の相関性を表すことも重要である。こうした変数の組合せは、何万もの重複するサブグループをもたらす可能性がある。他の例示的用途は、限られた精度で指定されたデータキューブへの問い合わせを効率的に処理すること、および大母集団から引き出される世論調査において不偏サンプルを生成することを含む。
【００５２】
上述の例示的実施形態における逐次高次元層別サンプリング処理および最適高次元層別サンプリング処理を使用して、最小限の計算およびメモリ要件で信頼できるサンプルを生成することができる。これにより、完全なレコードセットがアクセスできない（例えば、世論調査においてすべての顧客から情報を集めることができない）とき、または完全なレコードセットが大きすぎて、システムがすべての問い合わせに正確な回答を与えることができない（例えば、大規模データベースまたはネットワークデータ）とき、異なる情報源の効率的な統合が可能になり、入手可能なサンプルが作り出される。結果のサンプルはほぼ不偏であり、正確な事後分析が可能になる。
【００５３】
先に示したように、本発明の諸実施形態は、少なくとも部分的に、情報処理システムの処理装置のメモリまたは他のコンピュータ可読媒体に格納された１つまたは複数のソフトウェアプログラムの形態で実行することができる。モジュール２１０、２１２、２１４、および２１５のようなシステム構成要素は、少なくとも部分的にソフトウェアプログラムを使用して実装することができる。当然ながら、本発明に従ってこれらおよび他のシステムを実装する際に、任意の組合せのハードウェア、ソフトウェア、またはファームウェアの数多くの代替配列を利用することができる。例えば、本発明の諸実施形態は、1つまたは複数のフィールドプロブラマブルゲートアレイ（ＦＰＧＡ）、ＡＳＩＣ、デジタル信号プロセッサ、または他のタイプの集積回路デバイスに、任意の組合せで実装することができる。このような集積回路デバイス、ならびにその一部または組合せが、本明細書で使用する「回路」の例である。
【００５４】
上述の諸実施形態は、単に例示のためであり、決して限定と解釈されるべきではないことを、改めて強調すべきである。他の実施形態は、特定の層別サンプリングの利用の必要性に応じて様々なタイプおよび配列のシステム構成要素を使用することができる。したがって代替実施形態は、レコードのセットに正確かつ効率的なサンプリングを実行することが望ましい他の状況において本明細書に記載する技術を利用することができる。また、例示的実施形態を説明する文脈で行った特定の想定は、本発明の要件と解釈されるべきではないことも注意されたい。本発明は、こうした特定の想定が適用されない他の実施形態において実行されることが可能である。添付の特許請求の範囲の範囲内のこれらおよびその他数多くの代替実施形態は、当業者には容易に理解できるであろう。
【図１】
2013534674.tif 000018
【図２】
2013534674.tif 000019
【図３】
2013534674.tif 000020
【図４】
2013534674.tif 000021
【図５】
2013534674.tif 000022
【図６】
2013534674.tif 000023
【図７】
2013534674.tif 000024
【国際調査報告】
2013534674.tif 000025
2013534674.tif 000026
2013534674.tif 000027