(57)【要約】【課題】本発明はデータの解析手段に係り特に頻出アイテムセットの高速抽出に関する。従来「商品１を購入する顧客は同時に商品２も購入する」といった分析がバスケット解析と呼ばれ実施されてきた。近年大量のデータが収集できるようになってきたが、従来技術で処理すると処理途中で処理対象の数が増加し処理しきれないといった問題があった。本発明は従来技術で処理すると途中で対象の数が増加し処理しきれないようなデータも高速に処理する事が可能なデータ解析方式を提供する。【解決手段】複数の項目の値の組合せからなるデータを入力する手段とデータに含まれる項目の組合せを抽出する手段と抽出した項目の組合せを出力する手段を具備し、データに含まれる項目の組合せを抽出する手段が条件にあう全ての組合せの中から抽出処理の対象を選択する時に処理対象の数を減らす仕組を持つ。これにより従来遅くなり処理できなかったデータも処理できる。【選択図】図１
2005285048.tif 000002
【特許請求の範囲】
【請求項１】
複数の項目の値の組み合わせからなるデータを入力し、データに含まれる項目の組合せを抽出する手段を備えており、抽出した項目の組み合わせを出力する、データ解析方式において、データに含まれる項目の組合せを抽出する手段が、条件にあう全ての組み合わせの中から、抽出処理の対象を選択し、処理対象の数を減らす仕組を持つ事を特徴とする、データ解析方式。
【請求項２】
条件にあう全ての組み合わせの中から、抽出処理の対象を選択し、処理対象の数を減らす仕組が、キャッシュアルゴリズムを利用して処理対象を選択する事を特徴とする前記１項記載のデータ解析方式。
【請求項３】
条件にあう全ての組み合わせの中から、抽出処理の対象を選択し、処理対象の数を減らす仕組が、処理負荷を考慮して選択するか否かの判断をする事を特徴とする前記１項記載のデータ解析方式。
【請求項４】
複数の項目の値の組み合わせからなるデータとして、発信者アドレス、受信者アドレス、ポート番号などのネットワークパケットの情報を入力し、ネットワーク上に頻出するアドレスやポートの組み合わせを抽出する事を特徴とする前記１項記載のデータ解析方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータの解析手段に係り、特にバスケット解析などに利用される頻出アイテムセットの高速抽出に関する。
【背景技術】
【０００２】
従来、例えば「商品１を購入する顧客は、同時に商品２も購入する」といった消費者の商品購入の分析が、バスケット解析と呼ばれるデータ解析として実施されてきた。バスケット解析は、顧客が商品を購入した時のレシートなどをデータとして入力し、そのデータに良く含まれる項目の組み合わせ、すなわち商品の組み合わせを抽出する。代表的なものに、非特許文献１などのものがある。
【非特許文献１】Ｒａｋｅｓｈ Ａｇｒａｗａｌ， Ｔｏｍａｓｚ Ｉｍｉｅｌｉｎｓｋｉ， Ａｒｕｎ Ｎ． Ｓｗａｍｉ．Ｍｉｎｉｎｇ Ａｓｓｏｃｉａｔｉｏｎ Ｒｕｌｅｓ ｂｅｔｗｅｅｎ Ｓｅｔｓ ｏｆ Ｉｔｅｍｓ ｉｎ Ｌａｒｇｅ Ｄａｔａｂａｓｅｓ，Ｐｒｏｃ． ｏｆ ｔｈｅ １９９３ ｛ＡＣＭ｝ ｛ＳＩＧＭＯＤ｝ Ｉｎｔｅｒｎａｔｉｏｎａｌ Ｃｏｎｆｅｒｅｎｃｅ ｏｎ Ｍａｎａｇｅｍｅｎｔ ｏｆ Ｄａｔａ，２０７−２１６ （１９９３）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
近年の技術の進歩にともない、大量のデータが収集できるようになってきており、対応するためにデータマイニングの高速化のアイデアが重要になってきている。背景には、上記従来技術で抽出処理を行うと、処理途中で処理の対象の数が極端に増加し、処理時間が増加しすぎて解析できない事がある。
【０００４】
本発明の目的は、上記のような従来技術で抽出処理を行うと、処理途中で処理対象の数が極端に増加し、処理しきれないようなデータも高速に処理する事が可能なデータ解析方式を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、複数の項目の値の組み合わせからなるデータを入力する手段と、データに含まれる項目の組合せを抽出する手段と、抽出した項目の組み合わせを出力する手段を具備し、データに含まれる項目の組合せを抽出する手段が、条件にあう全ての組み合わせの中から、抽出処理の対象を選択する時に処理対象の数を減らす仕組を持つ。処理対象の数を減らす事により処理時間を削減する事に第１の特徴がある。
【０００６】
また、本発明は処理対象の数を減らす仕組が、キャッシュアルゴリズムを利用する事に第２の特徴が、処理負荷を考慮して選択を制御する事に第３の特徴がある。
【０００７】
更に、本発明の１実施形態例においては、複数の項目の値の組み合わせからなるデータとして、発信者アドレス、受信者アドレス、ポート番号などのネットワークパケットの情報を入力し、ネットワーク上に頻出するアドレスやポートの組み合わせを抽出する事により、インターネットサービスの妨害を目的としたＤｏＳ攻撃の検出や、Ｐ２Ｐパケットの抽出を行う事にも、本発明の特徴がある。
【発明の効果】
【０００８】
本発明によれば従来技術で抽出処理を行うと、処理途中で処理の対象の数が極端に増加し、処理しきれないようなデータも高速に処理する事ができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の１実施例を図面を参照して説明する。図１は本発明の使用する内部データの構造の実施例を示した図である。
【００１０】
本実施例においては、データに含まれる項目数Ｎの組み合わせを抽出するために専用のキャッシュ構造を用いる。図では１、２、およびＮ項目の組み合わせを抽出するための例を図示している。１１は項目数１用のキャッシュ構造、１２は項目数２用のキャッシュ構造、１３は項目数Ｎ用のキャッシュ構造である。本実施例では図２を用いて後述する処理手順で図１のデータの記憶内容を更新する事により、このキャッシュ構造の中にデータに含まれる項目の組み合わせを抽出する。
【００１１】
図２は本発明の１実施例の処理手順を示した図である。２１が手続きの本体であり、全体を制御する処理２５から呼出されてデータに含まれる項目の組み合わせを抽出する。第１引数Ｄは抽出する項目の数を制御する引数である。すなわちＤが１の時はデータに含まれる１つの項目を抽出する。Ｄが２の時には２個の項目からなる項目の組み合わせを抽出する。手続き２１は手続き２１自身を再帰的に利用する事で、複数の項目からなる項目の組み合わせを抽出する。
【００１２】
全体を制御する処理２５は入力したデータを内部形式に変換し（２６）、Ｄを１として手続き２１を呼出す（２７）。手続き２１は初めにＤ組の項目の組み合わせを抽出し（２２）、次にＤに１を加えたものを新しいＤとして手続き２１自身を再帰的に呼び出し（２４）、Ｄ＋１組の項目の組み合わせの抽出を行う。この時２３で処理対象の選択を行うが、この処理については後述する。
【００１３】
手続き２１の引数ＴＡは入力データ中処理すみの項目の情報、ＴＤは未処理の項目の情報である。これについては後述する。
【００１４】
図３は本発明の実施例の構成を示した図である。この実施例では、複数の項目の値の組み合わせからなるデータとして、発信者アドレス、受信者アドレス、ポート番号などのネットワークパケットの情報を入力し、図２に例示した処理を行う事により、ネットワーク上に頻出するアドレスやポートの組み合わせを抽出する。この事により、インターネットサービスの妨害を目的としたＤｏＳ攻撃の検出や、Ｐ２Ｐパケットの抽出ができる。
【００１５】
本実施例では、３０はネットワークであり、接続されたパケット収集用スイッチ３１から、ネットワークに流れるＩＰパケットの情報３２を処理２１に入力する構成となっている。説明の都合上この例ではＩＰパケットの情報３２は発信者アドレス（１９２．１６８．０．１）の情報、受信者アドレス（１９２．１６８．１．１）の情報、およびポート番号（２５）からなるものとする。処理２１は入力したデータを内部構造（３３）に変換（２６）した後、手続き２１を呼出す。内部構造への変換はｈａｓｈ関数を利用したもので良い。ここでは発信者アドレス（１９２．１６８．０．１）は１に、受信者アドレス（１９２．１６８．１．１）は２に、ポート番号（２５）は３に変換されたものとする。
【００１６】
以下、図３の入力例を用いて、図２に例示した処理により図１に例示したキャッシュデータが、どう更新されるかを、図４〜図１２を用いて説明する。図４は本発明の処理の例を示した図である。図５〜１２は本発明の処理中の内部データの例を示した図である。また説明の便宜上、ｔｈｒｅｓｈｏｌｄの値は充分小くｍａｒｋとの比較処理（２４）は常に真であるとして説明する。
【００１７】
今、キャッシュの内容が空の状態（図５）で発信者アドレス（１９２．１６８．０．１）、受信者アドレス（１９２．１６８．１．１）、およびポート番号（２５）からなるＩＰパケットの情報３２を処理２５が入力したとする（図２の２６）。処理２５は、ＴＡをからの状態で、ＴＤにその内容を内部状態に変換したデータ３３を記憶し、Ｄを１とおき手続き２１を呼出す（図２の２７、図４の４０）。
【００１８】
手続き２１はＴＤに記憶された項目を順番に処理する。具体的にはまずＴＤに記憶された項目１を項目数１の項目としてキャッシュに記憶する（図２の２２、図６の６１、６２）。この時、キャッシュ６１に項目を記録する他、項目数１のデータを記録したのが幾つ目であるか変数ｓｋｉｐ［１］に記録する（６２）。この例では１つ目であるので、変数ｓｋｉｐ［１］は１になる。また、各項目については、何回目の発生であるかも記憶しておく。即ち６１のＣｏｕｎｔｅｒは、この例では１と設定するが、次に同じ項目の組み合わせが来た時にはＣｏｕｎｔｅｒの値を増加する事で、同じ項目の組み合わせが何回目であるか記憶する。またキャッシュはハッシュテーブルとし、同じ項目の組み合わせが再度発生した時にキャッシュの中から同じ組み合わせに関するデータが検索可能なようにする。
【００１９】
次にＤに１加え、Ｄ＝２として自分自身を再帰呼び出しする（図２の２４）。この時処理した項目１をＴＡに加え、ＴＤからは削除するので、呼出した時の変数はＤ＝２、ＴＡ＝「１」、ＴＤ＝「２、３」となる（図４の４１）。
【００２０】
Ｄ＝２、ＴＡ＝「１」、ＴＤ＝「２、３」として呼ばれた手続き２１は、項目「１、２」を項目数２の項目としてキャッシュに記憶する（図２の２２、図７の７１、７２）。この時、キャッシュ７１に項目を記録する他、項目数２のデータを記録したのが１つ目である事を変数ｓｋｉｐ［２］に記録する（７２）。次にＤに１加え、Ｄ＝３として自分自身を再帰呼び出しする（図２の２４）。この時処理した項目２をＴＡに加え、ＴＤからは削除するので、呼出した時の変数はＤ＝３、ＴＡ＝「１、２」、ＴＤ＝「３」となる（図４の４２）。
【００２１】
Ｄ＝３、ＴＡ＝「１、２」、ＴＤ＝「３」として呼ばれた手続き２１は、項目「１、２、３」を項目数３の項目としてキャッシュに記憶する（図２の２２、図８の８１、８２）。この時、キャッシュ８１に項目を記録する他、項目数３のデータを記録したのが１つ目である事を変数ｓｋｉｐ［３］に記録する（８２）。この段階で項目３の処理がされたので未処理のデータはなくなり（図４の４０１）、手続き２１は呼び出し側に帰る。
【００２２】
帰り先の手続き２１では項目数２の組み合わせとして「１、３」が残っている（すなわち呼出された時のＴＤを記憶したＮＤに３が残っている）ので、項目「１、３」を項目数２の項目としてキャッシュに記憶する（図２の２２、図９の９１、９２）。この時、キャッシュ９１に項目を記録する他、項目数２のデータを記録したのが２つ目である事を変数ｓｋｉｐ［２］に記録する（９２）。この段階で未処理のデータはなくなり（図４の４０２）、手続き２１は呼び出し側に帰る。
【００２３】
帰り先の手続き２１では項目数２の組み合わせとして「２」が残っているので、項目「２」を項目数１の項目としてキャッシュに記憶する（図２の２２、図９の１０１、１０２）。この時、キャッシュ１０１に項目を記録する他、項目数１のデータを記録したのが２つ目である事を変数ｓｋｉｐ［１］に記録する（１０２）。更に、この段階で未処理のデータ「３」があるので、呼出した時の変数はＤ＝２、ＴＡ＝「２」、ＴＤ＝「３」として、自分自身を再帰呼び出しする（図２の２４、図４の４３）。
【００２４】
Ｄ＝２、ＴＡ＝「２」、ＴＤ＝「３」として呼ばれた手続き２１は、項目「２、３」を項目数２の項目としてキャッシュに記憶する（図２の２２、図１１の１１１、１１２）。この時、キャッシュ１１１に項目を記録する他、項目数２のデータを記録したのが３つ目である事を変数ｓｋｉｐ［２］に記録する（１１２）。この段階で未処理のデータはなくなり（図４の４０３）、手続き２１は呼び出し側に帰る。
【００２５】
帰り先の手続き２１では項目数１の組み合わせとして「３」が残っているので、項目「３」を項目数１の項目としてキャッシュに記憶する（図２の２２、図１２の１２１、１２２）。この時、キャッシュ１２１に項目を記録する他、項目数１のデータを記録したのが３つ目である事を変数ｓｋｉｐ［１］に記録する（１２２）。この段階で未処理のデータはなくなり（図４の４０４）、手続き２１は呼び出し側（処理本体２５）に帰り、発信者アドレス１９２．１６８．０．１、受信者アドレス１９２．１６８．１．１、およびポート番号２５からなるＩＰパケット３２のための処理を終了する。
【００２６】
次に同じ受信者アドレスと同じポート番号のような、同じ項目の組み合わせを含む別のＩＰパケットが来た時に、同じ処理を繰り返せば、対応するキャッシュのＣｏｕｎｔｅｒが積算され、大きくなっていく。Ｃｏｕｎｔｅｒがある一定以上大きくなったら表示する、Ｃｏｕｎｔｅｒに一定以上大きな値を持つ項目の組み合わせを表示する、というような適当な処理を組み合わせる事により、ネットワーク上に頻出するアドレスやポートの組み合わせが抽出できる。即ち、インターネットサービスの妨害を目的としたＤｏＳ攻撃や、Ｐ２Ｐパケットはネットワーク上に多量の同じ組み合わせの項目を持つＩＰパケットを発生させるので、本発明により検出できる。
【００２７】
以上の説明では、説明の便宜上、ｔｈｒｅｓｈｏｌｄの値は充分小くｍａｒｋとの比較処理（２４）は常に真であるとして説明してきた。しかし、データに含まれる項目の数が多いと、このような方法では従来と同じく、処理対象の数が著しく増加する。すなわち手続き２１への再帰呼び出しの数が大きくなり、処理時間が増加してしまう。本実施例では、この呼び出し回数を削減するために、キャッシュアルゴリズムを利用した処理と処理負荷を考慮した処理を備えている。
【００２８】
具体的には、図２の２３のｍａｒｋの計算時に、Ｓｋｉｐの値が大きい時にｍａｒｋの値が小くなるような式を用いている。具体的にはランダムに発生した値に、処理中の項目の組み合わせが発生した数を記憶しているＣｏｕｎｔｅｒを乗じ、Ｓｋｉｐ の値で割っている。これによりＳｋｉｐの値が大きくなった時に以降の処理を省略する可能性が高くなり、結果として処理時間が削減される。また処理中の項目の組み合わせが発生した数を記憶しているＣｏｕｎｔｅｒを乗じる事で、多く発生している組み合わせの処理が継続される可能性を高くしている。
【００２９】
更に図１に例示したキャッシュにデータを記憶する時には項目の組み合わせからなるハッシュ値が、たまたま他の組み合わせのハッシュ値と同じになっても、幾つかの手法に見られるような再ハッシュの処理を行わず、単純に上書きする。これにより頻出する組み合わせは残るが、余り出てこない組み合わせは上書きされ、ｍａｒｋの計算時に乗算されるＣｏｕｎｔｅｒの数が小さいままになり、以降の処理を省略する可能性が高くなり、結果として処理時間が削減できる。
【００３０】
以上の実施例であきらかなように、本発明によれば従来技術で処理を行うと、処理途中で処理対象の数が極端に増加し、処理しきれないといった問題があったデータも高速に処理する事が可能なデータ解析方式を提供することができる。
【産業上の利用可能性】
【００３１】
本発明は、複数の項目の値の組み合わせからなるデータとして、発信者アドレス、受信者アドレス、ポート番号などのネットワークパケットの情報を入力し、ネットワーク上に頻出するアドレスやポートの組み合わせを抽出する事により、インターネットサービスの妨害を目的としてＤｏＳ攻撃の検出や、Ｐ２Ｐパケットの抽出が行える。すなわち、ＤｏＳ攻撃もＰ２Ｐパケットも、どちらも特定のネットワークアドレスなどへのアクセスが集中するので、本発明により組み合わせを抽出する事により、検出可能である。またこれらはデータ数が多い事と、既に説明した組み合わせ爆発の問題から、従来技術での対応が困難であった。
【図面の簡単な説明】
【００３２】
【図１】本発明の使用する内部データの構造を示した図である。
【図２】本発明の処理手順を示した図である。
【図３】本発明の実施例の構成を示した図である。
【図４】本発明の処理の例を示した図である。
【図５】本発明の処理中の内部データの例を示した図である。
【図６】本発明の処理中の内部データの例を示した図である。
【図７】本発明の処理中の内部データの例を示した図である。
【図８】本発明の処理中の内部データの例を示した図である。
【図９】本発明の処理中の内部データの例を示した図である。
【図１０】本発明の処理中の内部データの例を示した図である。
【図１１】本発明の処理中の内部データの例を示した図である。
【図１２】本発明の処理中の内部データの例を示した図である。
【符号の説明】
【００３３】
１１．．．項目数１用のキャッシュ構造、
１２．．．項目数２用のキャッシュ構造、
１３．．．項目数３用のキャッシュ構造、
２１．．．手続きの本体、
２２．．．項目数Ｄの処理本体、
２３．．．処理対象の選択、
２４．．．項目数 Ｄ＋１ の処理呼び出し、
２５．．．全体の処理、
２６．．．データの入力処理、
２７．．．手続き本体の呼び出し、
３０．．．ネットワーク、
３１．．．パケット収集用スイッチ、
３２．．．ＩＰパケット、
３３．．．手続き本体へ渡されるデータの例、
６１．．．組み合わせ「１」の記録、
６２．．．項目数１の組み合わせの記憶数、
７１．．．組み合わせ「１２」の記録、
７２．．．項目数２の組み合わせの記憶数、
８１．．．組み合わせ「１２３」の記録、
８２．．．項目数３の組み合わせの記憶数、
９１．．．組み合わせ「１３」の記録、
９２．．．項目数２の組み合わせの記憶数、
１０１．．．組み合わせ「２」の記録、
１０２．．．項目数１の組み合わせの記憶数、
１１１．．．組み合わせ「２３」の記録、
１１２．．．項目数２の組み合わせの記憶数、
１２１．．．組み合わせ「３」の記録、
１２２．．．項目数１の組み合わせの記憶数。
【図１】
2005285048.tif 000003
【図２】
2005285048.tif 000004
【図３】
2005285048.tif 000005
【図４】
2005285048.tif 000006
【図５】
2005285048.tif 000007
【図６】
2005285048.tif 000008
【図７】
2005285048.tif 000009
【図８】
2005285048.tif 000010
【図９】
2005285048.tif 000011
【図１０】
2005285048.tif 000012
【図１１】
2005285048.tif 000013
【図１２】
2005285048.tif 000014