(57)【要約】【課題】第１アイテム空間について求めた閉パターンに基づいて、第１アイテム空間に新たなアイテムを追加した第２アイテム空間における閉パターンを求める。【解決手段】トランザクション処理の対象であるアイテム集合をトランザクション毎に記録した履歴情報に基づいて、アイテムの最大集合である閉パターンを検出するシステムを提供する。このシステムは、第１アイテム空間について求められた第１閉パターンを少なくとも１つ記録している。そして、何れかの第１閉パターンに、第１アイテム空間に含まれていない追加アイテムを追加して追加パターンを生成し、追加パターン全体を含むトランザクションの集合と、何れかの第１閉パターン全体を含むトランザクションの集合とを比較する。比較された集合が互いに一致したことを条件に、当該第１閉パターンおよび追加パターンの和集合を、第２アイテム空間における第２閉パターンとして検出する。【選択図】図４
2007018349.tif 000002
【特許請求の範囲】
【請求項１】
トランザクション処理の対象をアイテムとして含むアイテム集合をトランザクション毎に記録した履歴情報に基づいて、トランザクションの組に共通するアイテムの最大集合である閉パターンを検出するシステムであって、
予め定められたアイテムの集合から構成される第１アイテム空間について求められた第１閉パターンを少なくとも１つ記録している記録部と、
記録されている何れかの前記第１閉パターンに、前記第１アイテム空間に含まれていないアイテムである追加アイテムを追加することにより追加パターンを生成する生成部と、
前記追加パターン全体をアイテム集合中に含むトランザクションの集合と、記録されている何れかの前記第１閉パターン全体をアイテム集合中に含むトランザクションの集合とを比較する比較部と、
前記比較部により比較された集合が互いに一致したことを条件に、当該第１閉パターンおよび前記追加パターンの和集合を、前記第１アイテム空間に前記追加アイテムを追加した第２アイテム空間における閉パターンである第２閉パターンとして検出する検出部と
を備えるシステム。
【請求項２】
トランザクションを処理する毎に、前記履歴情報において既に記録されたアイテム集合に、当該トランザクションのアイテム集合を追加して記録するデータベース装置を更に備え、
前記比較部は、前記追加パターンに含まれる何れのアイテムをも含むトランザクションを、前記データベース装置中の前記履歴情報から検索することにより、前記追加パターン全体を含むトランザクションの集合を求め、さらに、
前記第１閉パターンに含まれる何れのアイテムをも含むトランザクションを、前記データベース装置中の前記履歴情報から検索することにより、前記第１閉パターン全体を含むトランザクションの集合を求める
請求項１に記載のシステム。
【請求項３】
前記履歴情報は、トランザクション処理によって一緒に販売された販売対象の集合を前記アイテム集合として、販売処理を示すトランザクション毎に記録し、
前記記録部は、予め定められた販売対象の集合から構成される第１アイテム空間について求められた第１閉パターンを記録し、
前記検出部によって検出された第２閉パターンが示す販売対象の集合を、一緒に購入され易い販売対象の集合として出力する出力部
を更に備える請求項１に記載のシステム。
【請求項４】
前記履歴情報は、更に、販売対象の購入者の属性を前記アイテム集合に含めて記録し、
前記生成部は、当該購入者の属性を前記追加アイテムとして前記追加パターンを生成し、
前記出力部は、前記検出部によって検出された第２閉パターンを、一緒に購入され易い販売対象および当該販売対象を購入し易い購入者の属性の集合として出力する
請求項３に記載のシステム。
【請求項５】
前記記録部に対する閉パターンの記録を制御する記録制御部を更に備え、
前記記録部は、全ての前記第１閉パターンを、前記第２閉パターンの候補である第２閉パターン候補として記録し、
前記生成部は、前記第１閉パターンの各々に、前記追加アイテムを順次追加することにより前記追加パターンの各々を生成し、
前記追加パターンが生成される毎に、
前記比較部は、当該追加パターン全体を含むトランザクションの集合と、各々の前記第２閉パターン候補について求めた当該第２閉パターン候補全体をアイテム集合として含むトランザクションの集合とを比較し、
前記記録制御部は、当該追加パターンについてのトランザクションの集合が、何れかの前記第２閉パターン候補についてのトランザクションの集合と一致したことを条件に、当該第２閉パターン候補に代えて、当該第２閉パターン候補および当該追加パターンの和集合を第２閉パターン候補として前記記録部に記録し、一致しないことを条件に、当該追加パターンを第２閉パターン候補として前記記録部に追加して記録し、
前記検出部は、全ての前記追加パターンについての処理の完了に応じ、前記記録部に記録されている第２閉パターン候補の各々を第２閉パターンとして検出する
請求項１に記載のシステム。
【請求項６】
前記追加パターンをアイテム集合として含むトランザクションの数を取得する取得部を更に備え、
前記記録制御部は、取得した当該トランザクションの数が予め定められた基準以上であることを条件に、第１閉パターンおよび前記追加パターンの和集合、または、前記追加パターンを、第２閉パターン候補として前記記録部に追加して記録する
請求項５に記載のシステム。
【請求項７】
閉パターンを検出する対象となるアイテム空間である対象アイテム空間の指定を入力する入力部と、
前記対象アイテム空間のうち前記第１アイテム空間に含まれていないアイテムを順次前記追加アイテムとして選択する選択部と
を更に備え、
前記生成部は、各々の前記第１閉パターンに対して、前記選択部によって選択された追加アイテムを追加することによって前記追加パターンを生成し、
前記検出部によって前記第２閉パターンが検出されたことに応じ、前記第２アイテム空間が前記対象アイテム空間と一致するか否かを判断する判断部を更に備え、
前記選択部は、一致しなかったことを条件に、前記記録部に既に記録された前記第２閉パターンを次の第１閉パターンとし、当該第１閉パターンに追加する追加アイテムを選択する
を更に備える請求項５に記載のシステム。
【請求項８】
前記記録部は、前記第１閉パターンの各々を要素とする配列変数を記録し、
前記配列変数の要素を先頭から順に読み出す配列アクセス部を更に備え、
前記生成部は、読み出された要素が示す第１閉パターンに、前記追加アイテムを追加することにより前記追加パターンを生成し、
前記記録制御部は、前記配列変数において当該第２閉パターン候補を示す要素を前記配列変数から除外し、当該追加パターンおよび前記第２閉パターン候補の和集合を示す要素、または、当該追加パターンを示す要素を、前記配列変数の末尾要素の次に追加する
請求項５に記載のシステム。
【請求項９】
前記生成部は、前記配列アクセス部により要素が読み出される毎に、当該要素が前記追加アイテムを含まないことを条件に、当該要素が示す第１閉パターンに前記追加アイテムを追加し、
前記検出部は、前記配列アクセス部により読み出された要素が、前記追加アイテムを含むことを条件に、または、当該要素が配列変数の末尾要素であることを条件に、全ての前記追加パターンについての処理が完了されたと判断する
請求項８に記載のシステム。
【請求項１０】
前記記録部は、親ノードが示すアイテム集合に他のアイテムを追加したアイテム集合を当該親ノードの子ノードとして配置した木構造を、深さ優先探索によって走査する走査順序に従って、前記第１閉パターンの各々を配列して記録する
請求項８に記載のシステム。
【請求項１１】
前記追加パターンをアイテム集合として含むトランザクションの数を取得する取得部を更に備え、
前記配列アクセス部は、読み出した要素が示すアイテム集合が、既に読み出された何れかの要素が示すアイテム集合であって取得されたトランザクションの数が基準以下のアイテム集合を含むことを条件に、読み出した当該要素を前記生成部に処理させずに次の要素を読み出す
請求項８に記載のシステム。
【請求項１２】
前記履歴情報に基づいて、アイテムをインデックスとして当該アイテムを含むトランザクションの集合を求める検索用テーブルを構築する構築部を更に備え、
前記比較部は、前記追加パターン全体を含むトランザクションの集合を、前記追加パターンに含まれる各々のアイテムをインデックスとして前記検索用テーブルからトランザクションの集合を求めることにより生成し、さらに、
前記第１閉パターン全体を含むトランザクションの集合を、前記第１閉パターンに含まれる各々のアイテムをインデックスとして前記検索用テーブルからトランザクションの集合を求めることにより生成する
請求項１に記載のシステム。
【請求項１３】
前記履歴情報は、少なくとも１つのウェブページを利用者に表示するトランザクション処理毎に、表示した当該ウェブページをアイテムとして記録しており、
前記記録部は、予め定められたウェブページの組を前記第１アイテム空間として第１閉パターンを記録しており、
前記生成部は、他のウェブページを前記追加アイテムとして前記追加パターンを生成し、
前記検出部は、第１閉パターンおよび前記追加パターンの和集合を、前記他のウェブページを含むウェブページの組を示す第２アイテム空間における第２閉パターンとして検出する
請求項１に記載のシステム。
【請求項１４】
トランザクション処理の対象をアイテムとして含むアイテム集合をトランザクション毎に記録した履歴情報に基づいて、トランザクションの組に共通するアイテムの最大集合である閉パターンを検出する検出方法であって、
予め定められたアイテムの集合から構成される第１アイテム空間について求められた第１閉パターンを少なくとも１つ記録する段階と、
記録されている何れかの前記第１閉パターンに、前記第１アイテム空間に含まれていないアイテムである追加アイテムを追加することにより追加パターンを生成する段階と、
前記追加パターン全体をアイテム集合中に含むトランザクションの集合と、記録されている何れかの前記第１閉パターン全体をアイテム集合中に含むトランザクションの集合とを比較する段階と、
比較された集合が互いに一致したことを条件に、当該第１閉パターンおよび前記追加パターンの和集合を、前記第１アイテム空間に前記追加アイテムを追加した第２アイテム空間における閉パターンである第２閉パターンとして検出する段階と
を備える検出方法。
【請求項１５】
トランザクション処理の対象をアイテムとして含むアイテム集合をトランザクション毎に記録した履歴情報に基づいて、トランザクションの組に共通するアイテムの最大集合である閉パターンを検出するシステムとして、情報処理装置を機能させるプログラムであって、
前記情報処理装置を、
予め定められたアイテムの集合から構成される第１アイテム空間について求められた第１閉パターンを少なくとも１つ記録している記録部と、
記録されている何れかの前記第１閉パターンに、前記第１アイテム空間に含まれていないアイテムである追加アイテムを追加することにより追加パターンを生成する生成部と、
前記追加パターン全体をアイテム集合中に含むトランザクションの集合と、記録されている何れかの前記第１閉パターン全体をアイテム集合中に含むトランザクションの集合とを比較する比較部と、
前記比較部により比較された集合が互いに一致したことを条件に、当該第１閉パターンおよび前記追加パターンの和集合を、前記第１アイテム空間に前記追加アイテムを追加した第２アイテム空間における閉パターンである第２閉パターンとして検出する検出部と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム、検出方法およびプログラムに関する。特に、本発明は、トランザクションの履歴情報を解析するシステム、検出方法およびプログラムに関する。
【背景技術】
【０００２】
近年、大量に蓄積されたデータの中から有用な情報を抽出するデータマイニングが研究されている。データマイニングによれば、例えば、小売店の発行済みレシートのデータに基づき、「木曜日には、消費者はビールと紙おむつを一緒に買う」といった相関ルールを抽出できる。このため、経営者や責任者の経験や勘によらずとも、企業の在庫管理方針や販売戦略を適切に設定できることが期待されている。
【０００３】
対象となるデータに頻繁に現れるアイテム（例えば、商品）の組を検出する技術は、頻出パターンマイニングと呼ばれ、従来より様々な研究が行われている（非特許文献１を参照。）。更に、全ての頻出パターンを列挙するためには、出現頻度と集合の包含関係を用いて記述される極大条件を満たすパターンだけを求めれば充分であることが知られている（非特許文献２を参照。）。このパターンは、閉パターン（closed pattern）と呼ばれている。
【０００４】
更に、従来、頻繁に現れる閉パターンを求めることができれば、その閉パターンの部分集合を列挙することで、頻出パターンを求めることができることが知られている（非特許文献２を参照。）。このため、閉パターンを効率的に求める様々な方法が研究されている（例えば非特許文献３を参照。）。
【０００５】
【非特許文献１】R. Agrawal, R. Srikant:Fast Algorithms for Mining Association Rules,  Proc. of the 20th Int'l Conference on Very Large Databases, Santiago, Chile, Sept. 1994. Expanded version available as IBM Research Report RJ9839, June 1994.
【非特許文献２】N. Pasquier, Y. Bastide, R. Taouil, and L. Lakhal:Discovering frequent closed itemsets for association rules, In 7th Intl. Conf. on Database Theory, January 1999.
【非特許文献３】T. Uno, T. Asai, Y. Uchida, H. Arimura: LCM: An Efficient Algorithm for Enumerating Frequent Closed Item Sets, Proceedings of the ICDM 2003 Workshop on Frequent Itemset Mining Implementations, 2003.
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ある販売システムにおける販売処理の各々をトランザクションとし、その販売処理によって一緒に販売された商品をアイテムとした例により、本発明の課題を説明する。この例において、データベースは、多数のトランザクションの履歴を、各々のトランザクションにおいて販売されたアイテムの集合として記録している。このデータベースから閉パターンを求めれば、この販売システムにおいて頻繁に販売される商品の組を求めることができる。
【０００７】
データマイニングを販売戦略に有効活用するためには、単に全ての商品を対象として頻出パターンを求めるのでは不十分な場合がある。例えば、売れ行き不振の原因調査のため、売れ行きが不振な特定商品のみについて頻出パターンを求めたい場合がある。また、小売店の商品配置を検討するために、同一の陳列棚に陳列された商品群のみについて頻出パターンを求めたい場合がある。このような場合には、特定のアイテムの集合から構成されるアイテム空間を対象に、閉パターンを検出すればよい。
【０００８】
しかしながら、商品の陳列方法や売れ行きその他の状況は、時間の経過や販売店の所在地等によって異なる。従って、ある第１アイテム空間を対象に閉パターンを検出した場合であっても、その第１アイテム空間に新たなアイテムを追加した第２アイテム空間について、更に閉パターンを求める必要が生じる場合がある。このような場合、従来は、第１アイテム空間について求めた閉パターンの情報を破棄して、新たに第２アイテム空間についての閉パターンを求めていた。このため、アイテム空間の僅かな変更であっても、閉パターンの検出処理に長い時間を要していた。
【０００９】
そこで本発明は、上記の課題を解決することのできるシステム、検出方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の第１の形態においては、トランザクション処理の対象をアイテムとして含むアイテム集合をトランザクション毎に記録した履歴情報に基づいて、トランザクションの組に共通するアイテムの最大集合である閉パターンを検出するシステムであって、予め定められたアイテムの集合から構成される第１アイテム空間について求められた第１閉パターンを少なくとも１つ記録している記録部と、記録されている何れかの第１閉パターンに、第１アイテム空間に含まれていないアイテムである追加アイテムを追加することにより追加パターンを生成する生成部と、追加パターン全体をアイテム集合中に含むトランザクションの集合と、記録されている何れかの第１閉パターン全体をアイテム集合中に含むトランザクションの集合とを比較する比較部と、比較部により比較された集合が互いに一致したことを条件に、当該第１閉パターンおよび追加パターンの和集合を、第１アイテム空間に追加アイテムを追加した第２アイテム空間における閉パターンである第２閉パターンとして検出する検出部とを備えるシステム、当該システムによって閉パターンを検出する検出方法、および、当該システムとして情報処理装置を機能させるプログラムを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【００１１】
本発明によれば、第１アイテム空間について求めた閉パターンに基づいて、第１アイテム空間に新たなアイテムを追加した第２アイテム空間における閉パターンを求めることができる。
【発明を実施するための最良の形態】
【００１２】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１３】
図１は、情報システム１０の全体構成を示す。情報システム１０は、データベース装置２０と、解析システム３０とを備える。データベース装置２０は、利用者から要求された商品販売等のトランザクションを処理し、トランザクションの履歴を記録した履歴情報を記録する。具体的には、データベース装置２０は、トランザクション処理の対象をアイテムとして含むアイテム集合をトランザクション毎に記録した履歴情報を記録している。そして、データベース装置２０は、トランザクションを処理する毎に、履歴情報において既に記録されたアイテム集合に、当該トランザクションのアイテム集合を追加して記録する。
【００１４】
解析システム３０は、履歴情報に基づいて、トランザクションの組に共通するアイテムの最大集合である閉パターンを検出する。詳細には、解析システム３０は、閉パターンを検出する対象となるアイテムの集合であるアイテム空間の指定を利用者から入力する。そして、解析システム３０は、履歴情報中のアイテム集合のうち、指定された当該アイテム空間における閉パターンを検出して出力する。
【００１５】
本実施例における情報システム１０は、第１アイテム空間について求めた閉パターンに基づいて、第１アイテム空間に新たなアイテムを追加した第２アイテム空間における閉パターンを求める。これにより、検出の対象を拡大した場合であっても、これまでより効率的な処理によって閉パターンを検出することを目的とする。
【００１６】
図２は、データベース装置２０のデータ構造の概略を示す。（ａ）に示すように、データベース装置２０は、トランザクション処理の対象をアイテムとして含むアイテム集合をトランザクション毎に記録した履歴情報を記録している。ここで、トランザクションとは、例えば、データベース装置２０等の情報処理装置において同一利用者から受けた要求に応じて行う一連の処理を示す。一例として、トランザクションは、商品販売用ウェブサイトにおいて、複数の商品を一緒に販売して一括に決済する処理である。
【００１７】
また、アイテムとは、トランザクション処理の対象であり、その他に、トランザクションを要求した要求元の属性であってもよいし、トランザクション処理の内容を示す属性であってもよい。一例として、アイテムは、商品販売用ウェブサイトにおいて販売された商品である。その他の具体例として、アイテムは、商品購入者の性別や年齢層であってもよいし、購入処理か購入のキャンセル処理かといった処理種別であってもよい。
【００１８】
本図の例では、データベース装置２０は、履歴情報として、ｔ１からｔ４までの４つのトランザクションの履歴を記録している。そして、データベース装置２０は、トランザクションｔ１に対応付けて、その対象となったアイテムＡ、Ｂ、ＣおよびＥを記録している。即ちこの例によれば、トランザクションｔ１においてアイテムＡ、Ｂ、ＣおよびＥが販売されたことが分かる。
【００１９】
また、アイテム空間とは、予め定められたアイテムの集合をいう。そして、あるアイテム空間における閉パターンとは、そのアイテム空間が示すアイテムの集合のみに着目したときに閉パターンとしての性質を満たすアイテムの集合をいう。例えば本図において、アイテム空間｛Ａ，Ｂ，Ｃ｝について閉パターンを検出する場合には、履歴情報からアイテムＥを除外した情報が閉パターンの検出対象となる。
【００２０】
（ｂ）に、アイテムをインデックスとしてそのアイテムを含むトランザクションの集合を求める検索用テーブルを示す。この検索用テーブルは、（ａ）に示す履歴情報に基づいて、後述する構築部３３０によって構築される。この検索用テーブルは、履歴情報からトランザクション集合を求める処理を効率化するためのものであり、（ａ）に示す履歴情報と同一内容を示す。
【００２１】
図３は、解析システム３０の機能構成を示す。解析システム３０は、ＤＢアクセス部３００と、閉パターン検出本体部３１０と、インターフェイス部３２０とを有する。ＤＢアクセス部３００は、構築部３３０と、取得部３４０とを有する。ＤＢアクセス部３００は、データベース装置２０をアクセスしてアクセス結果を閉パターン検出本体部３１０に供給する。閉パターン検出本体部３１０は、第１アイテム空間について既に求められた第１閉パターンに基づいて、第２アイテム空間における第２閉パターンを求めてインターフェイス部３２０に出力する。インターフェイス部３２０は、閉パターン検出本体部３１０を用いて、利用者から指定されたアイテム空間における閉パターンの集合を検出し、検出結果を出力する。
【００２２】
ＤＢアクセス部３００は、構築部３３０と、取得部３４０とを有する。構築部３３０は、既に述べたように、履歴情報に基づいて検索用テーブルを構築する。そして、構築部３３０は、閉パターン検出本体部３１０の必要に応じ、履歴情報自体、または、検索用テーブルを閉パターン検出本体部３１０に対して出力する。また、取得部３４０は、閉パターン検出本体部３１０の指定に応じ、指定されたあるパターンをアイテム集合として含むトランザクションの数を履歴情報から取得する。
【００２３】
インターフェイス部３２０は、入力部３５０と、選択部３６０と、判断部３７０と、出力部３８０とを有する。入力部３５０は、閉パターンを検出する対象となるアイテム空間である対象アイテム空間の指定を入力する。選択部３６０は、対象アイテム空間のうち第１アイテム空間に含まれていないアイテムを順次追加アイテムとして選択する。これに応じ、閉パターン検出本体部３１０は、追加アイテムを第１アイテム空間に追加した第２アイテム空間における第２閉パターンを検出する。判断部３７０は、閉パターン検出本体部３１０によって第２閉パターンが検出されたことに応じ、第２アイテム空間が対象アイテム空間と一致するか否かを判断する。
【００２４】
選択部３６０は、一致しなかったことを条件に、次の追加アイテムを選択する。これにより、既に検出されて閉パターン検出本体部３１０中の記録部４００に記録された第２閉パターンを次の第１閉パターンとして、その第１閉パターンに追加すべき追加アイテムが選択される。一方で、第２アイテム空間が対象アイテム空間と一致することを条件に、出力部３８０は、検出された第２閉パターンを、履歴情報中で頻繁に現れるアイテム集合として出力する。例えば、出力部３８０は、第２閉パターンが示す販売対象の集合を、消費者によって一緒に購入され易い販売対象の集合として出力してもよい。
【００２５】
図４は、閉パターン検出本体部３１０の機能構成を示す。閉パターン検出本体部３１０は、記録部４００と、配列アクセス部４１０と、生成部４２０と、比較部４３０と、記録制御部４４０と、検出部４５０とを有する。記録部４００は、予め定められたアイテム集合から構成される第１アイテム空間について求められた第１閉パターンを少なくとも１つ記録している。例えば、記録部４００は、予め定められた販売対象の集合から構成される第１アイテム空間について求められた第１閉パターンを記録していてもよい。具体的な構造としては、記録部４００は、第１閉パターンの各々を要素とする配列変数を記録していてもよい。この第１閉パターンは、第２アイテム空間における閉パターンの候補である第２閉パターン候補となる。
【００２６】
配列アクセス部４１０は、配列変数の要素を先頭から順に読み出す。また、配列アクセス部４１０は、比較部４３０の要求に応じ、配列変数中の任意の要素を読み出し比較部４３０に出力する。生成部４２０は、記録部４００に記録されている何れかの第１閉パターンに、選択部３６０によって選択された追加アイテムを追加することにより追加パターンを生成する。全ての第２閉パターンを求めるには、生成部４２０は、記録部４００に記録されている全ての第１閉パターンの各々に対して、追加アイテムを順次追加することによって複数の追加パターンの各々を生成する。
【００２７】
比較部４３０は、追加パターン全体をアイテム集合中に含むトランザクションの集合を求める。具体的には、比較部４３０は、追加パターンに含まれる何れのアイテムをも含むトランザクションを、データベース装置２０中の履歴情報から検索することにより当該集合を求める。より詳細には図２（ｂ）に示す検索用テーブルを用い、比較部４３０は、追加パターンに含まれる各々のアイテムをインデックスとして検索用テーブルを検索し、何れのアイテムにも対応するトランザクションの集合を求めてもよい。例えば、追加パターンが｛Ａ，Ｃ｝であれば、｛Ａ，Ｃ｝全体を含むトランザクションｔ１およびトランザクションｔ２が求められる。
【００２８】
そして、比較部４３０は、記録部４００に記録されている何れかの第１閉パターン全体をアイテム集合中に含むトランザクションの集合を求める。追加パターンの場合と同様に、比較部４３０は、当該第１閉パターンに含まれる各々のアイテムをインデックスとして検索用テーブルを検索し、何れのアイテムにも対応するトランザクションの集合を求めてもよい。
【００２９】
全ての第２閉パターンを適切に求めるためには、比較部４３０は、記録部４００に記録されている全ての第２閉パターン候補の各々について当該第２閉パターン候補全体をアイテム集合中に含むトランザクションの集合を求める。そして、比較部４３０は、求められたこれらの集合の各々と、追加パターンについて求めた集合とを比較する。
【００３０】
記録制御部４４０は、取得部３４０により追加パターンの数を取得させ、その数が予め定められた基準以上か否かを判断する。また、基準以上である場合に限り、記録制御部４４０は、追加パターンについてのトランザクションの集合が、何れかの第２閉パターン候補についてのトランザクションの集合と一致したか否かを判断する。一致したことを条件に、記録制御部４４０は、当該第２閉パターン候補に代えて、当該第２閉パターン候補および当該追加パターンの和集合を新たな第２閉パターン候補として記録部４００に追加して記録する。一方で、基準以上ではあるが、一致しなかったことを条件に、記録制御部４４０は、当該追加パターンを第２閉パターン候補として記録部４００に追加して記録する。記録処理は、配列アクセス部４１０を経由して行われる。例えば、配列アクセス部４１０は、追加する第２閉パターンを配列変数の末尾要素の次の要素として記録してもよい。
【００３１】
検出部４５０は、全ての追加パターンについての処理の完了に応じ、記録部４００に記録されている第２閉パターン候補の各々を第２閉パターンとして検出し、検出結果を判断部３７０に送る。
【００３２】
図５は、記録部４００のデータ構造の一例を示す。記録部４００は、第２閉パターン候補の各々を要素とする配列変数を記録している。閉パターンは、アイテムの集合であるから、各々の閉パターンは少なくとも１つのアイテムに対応付けられている。本図では、配列変数の各要素は、第２閉パターン候補を識別する識別情報およびアイテムへのポインタのみを有している。そして、そのパターンに含まれるアイテム集合は、各アイテムを連結したリスト構造で管理されている。例えば、識別情報を１とするパターンは、アイテムＡ、アイテムＢおよびアイテムＣをアイテム集合として含む。
【００３３】
また、配列変数に代えて、記録部４００は、各々の第２閉パターン候補を選択することによって順次次の第２閉パターン候補を選択することのできる他のデータ構造によって当該パターンを記録していてもよい。例えば、記録部４００は、片方向に走査可能なリスト構造によって第２閉パターン候補を記録していてもよいし、双方向に操作可能なリスト構造によって第２閉パターン候補を記録していてもよい。
【００３４】
また、何れの閉パターンも検出されていない場合等において、記録部４００は、何れの閉パターンをも含まない空集合を示す情報を記録している。この場合、閉パターン検出本体部３１０は、空集合に対しても同様に図３の機能を適用することで、任意のアイテム空間における閉パターンを検出することができる。
【００３５】
図６は、データベース装置２０により対象アイテム空間の閉パターンが検出される処理の一例を示す。入力部３５０は、対象アイテム空間の指定を入力する（Ｓ６００）。構築部３３０は、検索用テーブルを構築する（Ｓ６１０）。選択部３６０は、追加アイテムを選択する（Ｓ６２０）。閉パターン検出本体部３１０は、第１アイテム空間に当該追加アイテムを追加した第２アイテム空間における閉パターンを検出する（Ｓ６３０）。第２アイテム空間が対象アイテム空間に一致しなければ（Ｓ６４０）、解析システム３０は、Ｓ６２０に処理を戻す。
【００３６】
一方、第２アイテム空間が対象アイテム空間に一致すれば（Ｓ６４０：ＹＥＳ）、出力部３８０は、検出された第２閉パターンの各々を、履歴情報中で頻繁に現れるアイテム集合として出力する（Ｓ６５０）。
【００３７】
図７は、図６のＳ６３０における処理の一例を示す。この処理は、記録部４００が記録する第１閉パターンの記録順序によって異なる。本図では、記録部４００が、各々の第１閉パターンを、当該パターンに含まれるアイテムの組み合わせ木を所定の走査順序で走査した順序に従って配列しているものとする。より詳細には、図１０（ａ）に、アイテムの組み合わせを示す木構造データの一例を示す。この木構造において、親ノード（図上方向）が示すアイテム集合に他のアイテムを追加したアイテム集合は、当該親ノードの子ノードとして配置される。即ち例えば、ノードＣを示す親ノードの子ノードには、ノードＣを含むノードＣおよびノードＢから構成されるアイテム集合が配置される。記録部４００は、この木構造を右深さ優先探索によって走査する走査順序に従って第１閉パターンの各々を配列して記録している。
【００３８】
図７に戻る。配列アクセス部４１０は、配列変数の要素を先頭から順に読み出す（Ｓ７００）。検出部４５０は、配列アクセス部４１０により読み出された要素が、追加アイテムを含むか、または、配列変数の末尾に達して要素が読み出せなかったかを判断する（Ｓ７１０）。ここで、配列変数中の各要素は、アイテム集合の組み合わせを示す木構造を右深さ優先探索によって走査した走査順序で配列されている。このため、追加アイテムを含む要素が読み出された場合には、その後続の何れの要素も当該追加アイテムを含む。従って、配列変数を先頭から読み出して初めて追加アイテムが読み出された時点で、その後の要素の読み出しを省略しても構わない。
【００３９】
追加アイテムを含むことを条件に、または、配列変数の末尾要素に達したことを条件に（Ｓ７１０：ＹＥＳ）、検出部４５０は、その時点で記録部４００に記録されていた第２閉パターン候補を第２閉パターンとして検出する（Ｓ７２０）。読み出された要素が追加アイテムを含まないことを条件に（Ｓ７１０：ＮＯ）、生成部４２０は、読み出された要素が示す第１閉パターンに、追加アイテムを追加することにより追加パターンを生成する（Ｓ７３０）。記録制御部４４０は、追加パターン全体をアイテム集合として含むトランザクションの数が基準以上か否かを判断する（Ｓ７４０）。基準未満であれば（Ｓ７４０：ＮＯ）、閉パターン検出本体部３１０はＳ７００に処理を戻す。
【００４０】
このとき、好ましくは、配列アクセス部４１０は、既に読み出した要素と次に読み出す要素との比較により一部の処理を省略する。具体的には、配列アクセス部４１０は、読み出した要素が示すアイテム集合が、既に読み出された何れかの要素が示すアイテム集合であって取得されたトランザクションの数が基準以下のアイテム集合を含むことを条件に、読み出した当該要素を生成部４２０に処理させずに次の要素を読み出す。これにより、重複処理を省略して処理を効率化できる。より詳しくは、この処理は、図９のプログラム例における２０行目から２４行目の命令により実現される。
【００４１】
一方、基準以上であれば（Ｓ７４０：ＹＥＳ）、比較部４３０は、当該追加パターン全体を含むトランザクションの集合と、各々の第２閉パターン候補について求めた当該第２閉パターン候補全体をアイテム集合として含むトランザクションの集合とを比較する（Ｓ７５０）。何れかの第２閉パターン候補についてのトランザクションの集合と一致したことを条件に、記録制御部４４０は、一致した当該第２閉パターン候補を示す要素を配列変数から除外する（Ｓ７７０）。なお、ここでいうトランザクションの集合とは、履歴情報のうち第２アイテム空間についてのみに着目した情報に基づくトランザクションの集合をいう。即ち、第２アイテム空間が｛Ａ，Ｃ｝であれば、トランザクション｛Ａ，Ｃ，Ｅ｝はトランザクション｛Ａ，Ｃ，Ｄ｝と同一と判断される。
【００４２】
このとき、配列変数中で当該要素の後続の各要素は、１要素ずつ先頭方向に移動されて配列される。そして、記録制御部４４０は、当該追加パターンおよび当該第２閉パターン候補の和集合を示す要素を、配列変数の末尾要素の次に追加する（Ｓ７８０）。一方で、何れの第２閉パターン候補についてのトランザクションの集合とも一致しなかったことを条件に（Ｓ７６０：ＮＯ）、記録制御部４４０は、当該追加パターンを示す要素を、配列変数の末尾要素の次に追加する（Ｓ７９０）。これによって、要素を追加した後の配列変数も、アイテム集合の組み合わせを示す木構造を右深さ優先探索で走査した走査順序によって、第２閉パターン候補を配列することができる。
【００４３】
図８は、本実施例の処理を実現するプログラムの例を示す（第１例）。本プログラム例において変数Ｓは第２閉パターン候補を記録する。変数ｎは、対象アイテム空間のアイテム数を示す。変数Ｉは第１閉パターンを示す。また、ｘｋは、追加アイテムを示し、Ｉ〜は追加パターンを示す。また、ｍｉｎｓｕｐは、トランザクションの数について予め定められた基準値を示す。
【００４４】
１行目から８行目のプログラムは、図６に示すフローチャートに対応する。即ち、６行目においてアイテム空間を順次１つずつ拡大し、５行目において拡大されるアイテム空間について順次閉パターンを求める。５行目の関数呼び出しにより９行目から１９行目に処理が移る。１１行目の命令により、生成部４２０は、各々の第１閉パターンを順次選択する。１２行目の命令により、生成部４２０は、選択された第１閉パターンに追加アイテムを追加することにより追加パターンを生成する。１３行目の命令により、追加パターン全体を含むトランザクションの数が基準以上か否かが判断される。
【００４５】
１４行目の命令により、比較部４３０は、何れかの第２閉パターン候補について求めた当該第２閉パターン候補全体を含むトランザクションの集合が、追加パターン全体を含むトランザクションの集合と一致するか否かを判断する。１５行目の命令により、記録制御部４４０は、一致した当該第２閉パターン候補を、第２閉パターン候補の集合から除外し、それに代えて、当該第２閉パターン候補および追加パターンの和集合が新たな第２閉パターン候補として追加する。即ち、比較部４３０により比較された集合が互いに一致したことを条件に、検出部４５０は、当該第１閉パターンおよび前記追加パターンの和集合を第２アイテム空間における第２閉パターンとして検出することができる。
【００４６】
図９は、本実施例の処理を実現するプログラムの例を示す（第２例）。本図のプログラムは、図８に示した「Ａｌｇｏｒｉｔｈｍ  ＮＥＸＴ」部分に置き換えて実行され、記録部４００が第２閉パターン候補を配列変数として記録する場合の処理を示している。本図においてＳＬは、当該配列変数を示す。４行目および５行目の命令によって、検出部４５０は、第２閉パターン候補が追加アイテムを含むか否かを判断する。読み出された場合には、６行目に示す処理によって本図の処理を終了する。
【００４７】
７行目の命令により、生成部４２０は、追加パターンを生成する。追加パターン全体を含むトランザクションの数が基準以上であることを条件に（８行目）、次の行に処理が移る。９行目の命令により、比較部４３０は、何れかの第２閉パターン候補について求めた当該第２閉パターン候補全体を含むトランザクションの集合が、追加パターン全体を含むトランザクションの集合と一致するか否かを判断する。
【００４８】
１０行目の命令により、一致した当該第２閉パターン候補が配列変数から取り除かれ、その後続要素の各々は順次先頭側に１要素分移動して配列される。１１行目の命令により、追加パターンおよび当該第２閉パターン候補の和集合から構成される新たな第２閉パターン候補が、配列変数の末尾要素の次の要素として追加される。１２行目および１３行目において、配列変数の変更に伴い必要に応じ、配列変数の添え字を変更する。
【００４９】
１５行目の命令により、追加パターンを示す要素が新たな第２閉パターン候補として配列変数の末尾要素の次に追加される。１８行目から２４行目は、次に読み出す第１閉パターンについての処理が、既に読み出された第１閉パターンについての処理と同一となる場合に、当該同一の処理を省略するための命令群を示す。即ち、これらの命令群により、配列アクセス部４１０は、読み出した要素が示すアイテム集合が、既に読み出された何れかの要素が示すアイテム集合を含むことを条件に、読み出した当該要素を生成部４２０に処理させずに次の要素を読み出す。
【００５０】
図１０は、本実施例の処理過程を示す。本図は、図２に示した履歴情報に基づいて閉パターンを求める処理の具体的な処理過程を示す。（ａ）に、Ａ、ＢおよびＣから構成される第１アイテム空間における閉パターンの集合を示す。即ち、この第１アイテム空間において、閉パターンは、それぞれ、Ｂ、Ｃ、ＣＡ、ＣＢおよびＣＢＡである。これらの閉パターンは、木構造における斜線を付したノードとして表される。この例を用いて、第１アイテム空間に要素Ｅを追加した第２アイテム空間について閉パターンを求める処理を説明する。
【００５１】
生成部４２０は、要素Ｂから構成される第１閉パターン（以降、パターンＢなどと称す）に、追加アイテムである要素Ｅを追加することにより追加パターンＥＢを生成する。比較部４３０は、パターンＢおよびパターンＥＢの各々について、当該パターン全体を含むトランザクションの集合を求める。図２に示したように、パターンＢを含むトランザクションの集合はｔ１、ｔ３およびｔ４である。そして、要素Ｂおよび要素Ｅの何れをも含むトランザクションの集合も、ｔ１、ｔ３およびｔ４である。このため、比較部４３０は、パターンＢを除外し、パターンＢおよびパターンＢＥの和集合を新たな第２閉パターン候補として追加する（ｂ）。
【００５２】
次に、生成部４２０は、要素Ｃから構成される第１閉パターンに、追加アイテムである要素Ｅを追加することにより追加パターンＥＣを生成する（ｃ）。追加パターンＥＣ全体を含むトランザクションの集合は、パターンＣＢ全体を含むトランザクションの集合に一致する。このため、比較部４３０は、パターンＣＢを除外し、パターンＣＢおよびパターンＥＣの和集合であるパターンＥＣＢを新たな第２閉パターン候補として追加する（ｄ）。
【００５３】
次に、比較部４３０は、パターンＣＡに追加アイテムである要素Ｅを追加することにより追加パターンＥＣＡを生成する（ｅ）。追加パターンＥＣＡ全体を含むトランザクションの集合は、パターンＣＢＡ全体を含むトランザクションの集合と一致する。このため、比較部４３０は、パターンＣＢＡを除外し、パターンＣＢＡおよびパターンＥＣＡの和集合であるパターンＥＣＢＡを新たな第２閉パターン候補として追加する（ｆ）。
【００５４】
以上、図１から図１０に示した実施例によれば、既に第１アイテム空間について求めた閉パターンに基づいて、第１アイテム空間に他のアイテムを追加した第２アイテム空間における閉パターンを求めることができる。これにより、例えば、以下のような応用が可能となる。
【００５５】
（１）検出対象となるアイテムの種類の追加
記録部４００は、販売対象の集合を示す第１アイテム空間についての閉パターンを記録している。生成部４２０は、購入者の属性を追加アイテムとして第１アイテム空間に追加することにより追加パターンを生成する。これに応じて求められた第２閉パターンは、出力部３８０によって、一緒に購入され易い販売対象および当該販売対象を購入し易い購入者の属性の集合として出力される。このように、解析の対象を販売商品のみから購入者の属性にまで拡大した場合であっても、既に求めた閉パターンの検出結果を有効活用して処理を効率化できる。
【００５６】
（２）検出対象の変化への追従
ウェブ・サーバは、複数のウェブページを有している。ウェブページのコンテンツが変更されると、新たなウェブページが既存のウェブページに追加されたり、新たなウェブページが既存のウェブページと置き換えられる場合がある。このような場合に、従来は、既存のウェブページの閲覧記録について既に閉パターンを求めたとしても、新たなウェブページを含めたウェブページ全体について改めて閉パターンを求めなければならなかった。
【００５７】
これに対して、本例の解析システム３０を応用すれば、新たなウェブページを含めたウェブページ全体について効率的に閉パターンを求めることができる。この処理において、具体的には、履歴情報は、少なくとも１つのウェブページを利用者に表示するトランザクション処理毎に、表示した当該ウェブページをアイテムとして記録している。そして、記録部４００は、予め定められたウェブページの組を第１アイテム空間として第１閉パターンを記録している。生成部４２０は、新たに追加されたウェブページを追加アイテムとして追加パターンを生成する。検出部４５０は、第１閉パターンおよび追加パターンの和集合を、当該新たなウェブページを含むウェブページの組を示す第２アイテム空間における第２閉パターンとして検出する。
このように、本例によれば、既に求めた閉パターンの検出結果を有効活用して、新たなアイテムを追加したアイテム空間についての閉パターンを効率的に検出できる。
【００５８】
図１１は、解析システム３０として機能する情報処理装置５００のハードウェア構成の一例を示す。情報処理装置５００は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＢＩＯＳ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００５９】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＢＩＯＳ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００６０】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、情報処理装置５００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０又はハードディスクドライブ１０４０に提供する。
【００６１】
また、入出力コントローラ１０８４には、ＢＩＯＳ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＢＩＯＳ１０１０は、情報処理装置５００の起動時にＣＰＵ１０００が実行するブートプログラムや、情報処理装置５００のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力チップ１０７０を介してＲＡＭ１０２０またはハードディスクドライブ１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００６２】
情報処理装置５００に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出され情報処理装置５００にインストールされて実行される。プログラムが解析システム３０に働きかけて行わせる動作は、図１から図１０において説明した解析システム３０における動作と同一であるから、説明を省略する。
【００６３】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを情報処理装置５００に提供してもよい。
【００６４】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００６５】
【図１】図１は、情報システム１０の全体構成を示す。
【図２】図２は、データベース装置２０のデータ構造の概略を示す。
【図３】図３は、解析システム３０の機能構成を示す。
【図４】図４は、閉パターン検出本体部３１０の機能構成を示す。
【図５】図５は、記録部４００のデータ構造の一例を示す。
【図６】図６は、データベース装置２０により対象アイテム空間の閉パターンが検出される処理の一例を示す。
【図７】図７は、図６のＳ６３０における処理の一例を示す。
【図８】図８は、本実施例の処理を実現するプログラムの例を示す（第１例）。
【図９】図９は、本実施例の処理を実現するプログラムの例を示す（第２例）。
【図１０】図１０は、本実施例の処理過程を示す。
【図１１】図１１は、解析システム３０として機能する情報処理装置５００のハードウェア構成の一例を示す。
【符号の説明】
【００６６】
１０  情報システム
２０  データベース装置
３０  解析システム
３００  ＤＢアクセス部
３１０  閉パターン検出本体部
３２０  インターフェイス部
３３０  構築部
３４０  取得部
３５０  入力部
３６０  選択部
３７０  判断部
３８０  出力部
４００  記録部
４１０  配列アクセス部
４２０  生成部
４３０  比較部
４４０  記録制御部
４５０  検出部
５００  情報処理装置
【図１】
2007018349.tif 000003
【図２】
2007018349.tif 000004
【図３】
2007018349.tif 000005
【図４】
2007018349.tif 000006
【図５】
2007018349.tif 000007
【図６】
2007018349.tif 000008
【図７】
2007018349.tif 000009
【図８】
2007018349.tif 000010
【図９】
2007018349.tif 000011
【図１０】
2007018349.tif 000012
【図１１】
2007018349.tif 000013