JP5605571B2 - 部分グラフ検出装置、部分グラフ検出方法、プログラム、データのデータ構造、及び情報記憶媒体 - Google Patents

部分グラフ検出装置、部分グラフ検出方法、プログラム、データのデータ構造、及び情報記憶媒体 Download PDF

Info

Publication number
JP5605571B2
JP5605571B2 JP2010532936A JP2010532936A JP5605571B2 JP 5605571 B2 JP5605571 B2 JP 5605571B2 JP 2010532936 A JP2010532936 A JP 2010532936A JP 2010532936 A JP2010532936 A JP 2010532936A JP 5605571 B2 JP5605571 B2 JP 5605571B2
Authority
JP
Japan
Prior art keywords
vertex
node
search
subgraph
graph
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010532936A
Other languages
English (en)
Other versions
JPWO2010041678A1 (ja
Inventor
潤 瀬々
美緒 関
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OCHANOMIZU UNIVERSITY
Original Assignee
OCHANOMIZU UNIVERSITY
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by OCHANOMIZU UNIVERSITY filed Critical OCHANOMIZU UNIVERSITY
Priority to JP2010532936A priority Critical patent/JP5605571B2/ja
Publication of JPWO2010041678A1 publication Critical patent/JPWO2010041678A1/ja
Application granted granted Critical
Publication of JP5605571B2 publication Critical patent/JP5605571B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B45/00ICT specially adapted for bioinformatics-related data visualisation, e.g. displaying of maps or networks
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B5/00ICT specially adapted for modelling or simulations in systems biology, e.g. gene-regulatory networks, protein interaction networks or metabolic networks

Description

本発明は、部分グラフ検出装置、部分グラフ検出方法、プログラム、データのデータ構造、及び情報記憶媒体に関する。
例えば、複数のユーザの各々に購入商品のリストを対応づけてなるデータに基づいて、ある商品又は商品群を購入したユーザのリストやその商品又は商品群を購入していないユーザのリストを取得することが行われている。また、例えば、複数の文献の各々にキーワードのリストを対応づけてなるデータに基づいて、あるキーワード又はキーワード群が設定された文献のリストを取得することが行われている。
例えば、下記特許文献1には、複数のユーザの購入商品のリストを基に、ある商品又は商品群(例えば、購入された頻度、回数の大きい商品又は商品群)を購入していないユーザを特定することが開示されている。
特開2007−287139号公報
従来、例えば、同じ商品又は商品群を購入したユーザのリストをユーザ間の関係(例えば交友関係)を考慮して取得することはできなかった。また例えば、同じキーワード又はキーワード群が設定された文献のリストを文献間の関係(引用関係)を考慮して取得することはできなかった。
ところで、例えば、ある医薬又は医薬品群の投与により共通して発現が変化する遺伝子のリストを遺伝子間の関係を考慮して取得することができれば、創薬研究の上で有用な情報を得ることができる。例えば、発現の影響を互いに及ぼし合うような遺伝子間の関係(遺伝子間の相互作用関係)や、一方の遺伝子と他方の遺伝子とが同時に発現するような遺伝子間の関係を考慮して上記のリストを取得することができれば、例えば創薬ターゲットを絞り込む際の有用な情報を得ることができる。しかしながら、ある医薬又は医薬群の投与により共通して発現が変化する遺伝子のリストを遺伝子間の関係を考慮して取得することはできなかった。
また、例えば、ある医薬又は医薬品群の投与により共通して発現が変化するタンパク質のリストをタンパク質間の関係を考慮して取得することができれば、創薬研究の上で有用な情報を得ることができる。例えば、互いに結合して複合体を形成するようなタンパク質間の関係(タンパク質間の相互作用関係)を考慮して上記のリストを取得することができれば、例えば創薬ターゲットを絞り込む際の有用な情報を得ることができる。しかしながら、ある医薬又は医薬群の投与により共通して発現が変化するタンパク質のリストをタンパク質間の関係を考慮して取得することはできなかった。
本発明は、上記課題に鑑みてなされたものであって、例えば、ある医薬又は医薬群の投与により共通して発現が変化する遺伝子のリストを遺伝子間の関係(例えば遺伝子間の相互作用関係)を考慮して取得すること、ある医薬又は医薬群の投与により共通して発現が変化するタンパク質のリストをタンパク質間の関係(例えば、タンパク質間の相互作用関係)を考慮して取得すること、同じ商品又は商品群を購入したユーザのリストをユーザ間の関係(例えば交友関係)を考慮して取得することや、同じキーワード又はキーワード群が設定された文献のリストを文献間の関係(引用関係)を考慮して取得すること等が可能になる部分グラフ検出装置、部分グラフ検出方法、プログラム、データのデータ構造、及び情報記憶媒体の提供をその目的とする。
上記課題を解決するために、本発明に係る部分グラフ検出装置は、複数の頂点と1又は複数のエッジとを含むグラフを示すグラフデータを取得するグラフデータ取得手段と、前記頂点に情報を関連づけてなる頂点データを取得する頂点データ取得手段と、前記グラフデータと、前記頂点データと、に基づいて、前記グラフの部分グラフであって、該部分グラフの各頂点に関連付けられた前記情報が所定関係を有する部分グラフを検出する部分グラフ検出手段と、を含むことを特徴とする。
また、本発明に係る部分グラフ検出方法は、複数の頂点と1又は複数のエッジとを含むグラフを示すグラフデータを取得するグラフデータ取得ステップと、前記頂点に情報を関連づけてなる頂点データを取得する頂点データ取得ステップと、前記グラフデータと、前記頂点データと、に基づいて、前記グラフの部分グラフであって、該部分グラフに含まれる各頂点に関連付けられた前記情報が所定関係を有する部分グラフを検出する部分グラフ検出ステップと、を含むことを特徴とする。
また、本発明に係るプログラムは、複数の頂点と1又は複数のエッジとを含むグラフを示すグラフデータを取得するグラフデータ取得手段、前記頂点に情報を関連づけてなる頂点データを取得する頂点データ取得手段、及び、前記グラフデータと、前記頂点データと、に基づいて、前記グラフの部分グラフであって、該部分グラフに含まれる各頂点に関連付けられた前記情報が所定関係を有する部分グラフを検出する部分グラフ検出手段、としてコンピュータを機能させることを特徴とする。
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。
また、本発明に係るデータ構造は、複数の頂点と1又は複数のエッジとを含むグラフを示すグラフデータと、前記頂点に情報を関連づけてなる頂点データと、を含むことを特徴とする。また、本発明に係る情報記憶媒体は、複数の頂点と1又は複数のエッジとを含むグラフを示すグラフデータと、前記頂点に情報を関連づけてなる頂点データと、を含むデータを記録したコンピュータ読み取り可能な情報記憶媒体である。
本発明は、複数の頂点と1又は複数のエッジとを含むグラフの部分グラフを検出する技術に関するものである。本発明では、前記グラフを示すグラフデータが取得される。例えば、各頂点が遺伝子一つ一つに対応し各エッジ(辺)が遺伝子間の関係を表すグラフを表すグラフデータが取得される。ここで、遺伝子間の関係とは、例えば、発現の影響を互いに及ぼし合うような遺伝子間の関係(遺伝子間の相互作用関係)や、一方の遺伝子と他方の遺伝子とが同時に発現するような遺伝子間の関係である。また、例えば、各頂点がタンパク質一つ一つに対応し、各エッジ(辺)がタンパク質間の関係を表すグラフデータが取得される。ここで、タンパク質間の関係とは、例えば、互いに結合して複合体を形成するようなタンパク質間の関係(タンパク質間の相互作用関係)である。また、例えば、各頂点がユーザ一人一人に対応し各エッジ(辺)がユーザ間の交友関係を表すグラフを示すグラフデータが取得される。なお、グラフデータは、例えば、隣接リスト、隣接行列として表される。また、本発明では、前記頂点に情報を関連づけてなる頂点データが取得される。そして、グラフデータと、頂点データと、に基づいて、前記部分グラフの各頂点に関連づけられた情報が所定関係を有する部分グラフが検出される。本発明によれば、グラフデータと、頂点データと、に基づいて部分グラフが検出される。その結果、例えば、ある医薬又は医薬群の投与により共通して発現が変化する遺伝子のリストを遺伝子間の関係(例えば、遺伝子間の相互作用関係)を考慮して取得することが可能になる。また、例えば、ある医薬又は医薬群の投与により共通して発現が変化するタンパク質のリストをタンパク質間の関係(例えば、タンパク質間の相互作用関係)を考慮して取得することが可能になる。また、例えば、同じ商品又は商品群を購入したユーザのリストをユーザ間の関係(例えば交友関係)を考慮して取得することが可能になる。
また、本発明の一態様では、前記情報は、少なくとも一種の要素を含む要素集合を示し、前記部分グラフ検出手段は、前記グラフの部分グラフであって、該部分グラフの各頂点に関連づけられた要素集合の積集合がN(N≧1)種以上の要素を含む部分グラフの検出を実行するようにしてもよい。例えば、各頂点が遺伝子一つ一つに対応し、かつ、要素集合が、遺伝子の発現を変化させる医薬又は医薬群に対応する場合、ある医薬又は医薬群の投与により共通して発現が変化する遺伝子のリストを遺伝子間の関係(例えば、遺伝子間の相互作用関係)を考慮して取得することが可能になる。また、例えば、各頂点がタンパク質一つ一つに対応し、かつ、要素集合が、タンパク質の発現を変化させる医薬又は医薬群に対応する場合、ある医薬又は医薬群の投与により共通して発現が変化するタンパク質のリストをタンパク質間の関係(例えば、タンパク質間の相互作用関係)を考慮して取得することが可能になる。また、例えば、各頂点がユーザ一人一人に対応し、かつ、要素集合が、ユーザが購入した商品又は商品群に対応する場合、同じ商品又は商品群を購入したユーザのリストをユーザ間の関係(例えば交友関係)を考慮して取得することが可能になる。
また、本発明の一態様では、前記部分グラフ検出手段は、「各ノードが前記グラフの頂点の集合を示す探索木であって、かつ、親ノードが示す頂点集合に当該頂点集合のうちの末端頂点に隣接する一つの頂点を新たな末端頂点として追加してなる頂点集合を当該親ノードの子ノードとして有する探索木」の各ノードを、深さ優先探索アルゴリズムに従った探索順序で判定対象とし、前記判定対象のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合がN種以上の要素を含むか否かの判定を実行する判定手段と、前記判定手段の判定結果に基づいて前記検出を実行する手段と、を含み、前記判定手段は、前記探索木のうちの第1のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合が、「前記第1のノードが示す頂点集合のうちの末端頂点と同じ頂点を末端頂点とする頂点集合を示すノードであって、かつ、前記第1のノードよりも探索順序が前のノードである第2のノード」が示す頂点集合の各頂点に関連づけられた要素集合の積集合に含まれる場合、前記第1のノードの子孫のノードが示す頂点集合を前記判定対象とした前記判定を実行しないようにしてもよい。
また、本発明の一態様では、前記部分グラフ検出手段は、前記判定が実行された場合に、前記判定対象の頂点集合の各頂点に関連づけられた要素集合の積集合を、基準集合として、当該判定対象の頂点集合のうちの末端頂点に関連づけて基準集合記憶手段に記憶させる手段を含み、前記判定手段は、前記第1のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合が、前記第1のノードが示す頂点集合のうちの末端頂点に関連づけて前記基準集合記憶手段に記憶される基準集合に含まれる場合、前記第1のノードの子孫のノードが示す頂点集合を前記判定対象とした前記判定を実行しないようにしてもよい。
また、本発明の一態様では、前記部分グラフ検出手段は、「各ノードが前記グラフの頂点の集合を示す探索木であって、かつ、親ノードが示す頂点集合に当該頂点集合のうちの末端頂点に隣接する一つの頂点を新たな末端頂点として追加してなる頂点集合を当該親ノードの子ノードとして有する探索木」の各ノードを、深さ優先又は幅優先探索アルゴリズムに従った探索順序で判定対象とし、前記判定対象のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合がN種以上の要素を含むか否かの判定を実行する判定手段と、前記判定手段の判定結果に基づいて前記検出を実行する手段と、を含み、前記判定手段は、前記探索木のうちの第1のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合が、「前記第1のノードが示す頂点集合のうちの末端頂点と同じ頂点を末端頂点とする頂点集合を示すノードであって、かつ、前記第1のノードが示す頂点集合を含む頂点集合を示す第2のノード」が示す頂点集合の各頂点に関連づけられた要素集合の積集合に含まれる場合、前記第1のノードの子孫のノードが示す頂点集合を前記判定対象とした前記判定を実行しないようにしてもよい。
また、本発明の一態様では、前記部分グラフ検出手段は、「各ノードが前記グラフの頂点の集合を示す探索木であって、かつ、親ノードが示す頂点集合に当該頂点集合のうちの末端頂点に隣接する一つの頂点を新たな末端頂点として追加してなる頂点集合を当該親ノードの子ノードとして有する探索木」の各ノードを、深さ優先探索アルゴリズムに従った探索順序で判定対象とし、前記判定対象のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合がN種以上の要素を含むか否かの判定を実行する判定手段と、前記判定手段の判定結果に基づいて前記検出を実行する手段と、を含み、前記判定手段は、前記探索木のうちの第3のノードが示す頂点集合が一つの頂点のみを含み、かつ、当該頂点に関連づけられた要素集合が、「当該頂点を末端頂点とする頂点集合を示すノードであって、かつ、前記第3のノードよりも探索順序が前のノードである第4のノード」が示す頂点集合の各頂点に関連づけられた要素集合の積集合に含まれる場合、前記第3のノードの子孫のノードが示す頂点集合を前記判定対象とした前記判定を実行しないようにしてもよい。
また、本発明の一態様では、前記部分グラフ検出手段は、前記判定が実行された場合に、前記判定対象のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合を、基準集合として、前記判定対象のノードが示す頂点集合のうちの末端頂点に関連づけて基準集合記憶手段に記憶させる手段を含み、前記判定手段は、前記第3のノードが示す頂点集合が一つの頂点のみを含み、かつ、当該頂点に関連づけられた要素集合が、当該頂点に関連づけて前記基準集合記憶手段に記憶される基準集合に含まれる場合に、前記第3のノードの子孫のノードが示す頂点集合を前記判定対象とした前記判定を実行しないようにしてもよい。
また、本発明の一態様では、前記部分グラフ検出手段は、「各ノードが前記グラフの頂点の集合を示す探索木であって、かつ、親ノードが示す頂点集合に当該頂点集合のうちの末端頂点に隣接する一つの頂点を新たな末端頂点として追加してなる頂点集合を当該親ノードの子ノードとして有する探索木」の各ノードを、深さ優先又は幅優先探索アルゴリズムに従った探索順序で判定対象とし、前記判定対象のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合がN種以上の要素を含むか否かの判定を実行する判定手段と、前記判定手段の判定結果に基づいて前記検出を実行する手段と、を含み、前記判定手段は、前記探索木のうちの第3のノードが示す頂点集合が一つの頂点のみを含み、当該頂点に関連づけられた要素集合が、当該頂点を末端頂点とする頂点集合を示す第4のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合に含まれる場合、前記第3のノードの子孫のノードが示す頂点集合を前記判定対象とした前記判定を実行しないようにしてもよい。
また、本発明の一態様では、前記部分グラフ検出手段は、「各ノードが前記グラフの頂点の集合を示す探索木であって、かつ、親ノードが示す頂点集合に当該頂点集合の末端頂点に隣接する一つの頂点を新たな末端頂点として追加してなる頂点集合を当該親ノードの子ノードとして有する探索木」の各ノードを、深さ優先探索又は幅優先探索アルゴリズムに従った探索順序で判定対象とし、前記判定対象のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合がN種以上の要素を含むか否かの判定を実行する判定手段と、前記判定手段の判定結果に基づいて前記検出を実行する手段と、を含み、前記判定手段は、前記ノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合がN種以上の要素を含んでいない場合、当該ノードの子孫のノードが示す頂点集合を前記判定対象とした前記判定を実行しないようにしてもよい。
本発明の実施形態に係る部分グラフ検出装置を含む部分グラフ検出システムの構成を示す図である。 グラフデータが示すグラフの一例を示す図である。 頂点データの内容の一例を示す図である。 部分グラフCSGの一例を示す図である。 頂点データの内容の一例を示す図である。 本発明の実施形態に係る部分グラフ検出装置で実現される機能群を示す図である。 ツリーの一例を示す図である。 基準集合テーブルの内容の一例を示す図である。 本発明の実施形態に係る部分グラフ検出装置で実行される処理の一例を示すフローチャート図である。 本発明の実施形態に係る部分グラフ検出装置で実行される処理の一例を示すフローチャート図である。 本発明の実施形態に係る部分グラフ検出装置で実行される処理の一例を示すフローチャート図である。
以下、本発明の実施形態について図面を参照しながら説明する。
[1.部分グラフ検出システムの構成]
図1は、本発明の実施形態に係る部分グラフ検出装置2を含む部分グラフ検出システム6の構成を示す図である。同図に示すように、部分グラフ検出システム6は、部分グラフ検出装置2と、データベース4と、を含む。部分グラフ検出装置2と、データベース4と、は、ネットワークを介して相互に通信することが可能になっている。
[2.部分グラフ検出装置のハードウェア構成]
部分グラフ検出装置2は、例えば、パーソナルコンピュータである。図1に示すように、部分グラフ検出装置2は、制御部8と、記憶部10と、通信部12と、表示部14と、操作部16と、を含む。各部は、バス18を介して通信可能に接続される。
制御部8は、記憶部10に記憶されたプログラムに従って、各種情報処理を実行する。制御部8は、パーソナルコンピュータとしての処理を行うが、以下では本発明に関連する処理について主に説明する。制御部8によって実行される処理の具体的内容については後に述べる。
記憶部10はメインメモリと不揮発性メモリとを含む。不揮発性メモリには制御部8によって実行されるプログラムが保持される。このプログラムは、例えばプログラム配信装置からネットワークを介してダウンロードされ、不揮発性メモリに格納される。また、例えば光ディスク又はメモリカードなどのコンピュータ読み取り可能な情報記憶媒体から複写されて不揮発性メモリに格納される。メインメモリには、不揮発性メモリから読み出されるプログラムや制御部8の処理において必要となる種々のデータが必要に応じて書き込まれる。
通信部12はネットワークインターフェイスカードを含み、例えば、ネットワークを介して到来したデータを制御部8に出力する。表示部14は例えばモニタを含み、制御部8から入力されるデータを表示する。操作部16はキーボードやマウスを含み、ユーザの操作内容を示すデータを制御部8に出力する。
[3.データベース]
データベース4は、例えばデータベースサーバのハードディスク(情報記憶媒体)に格納される。なお、データベースは部分グラフ検出装置2の不揮発性メモリ(情報記憶媒体)に格納されるようにしてもよい。
データベース4は、複数の頂点と、一又は複数の辺(エッジ)と、を含むグラフを示すグラフデータを記憶する。なお、グラフの「頂点」は「ノード」と呼ばれる場合もあるが、ここでは、後述のツリー(図7参照)のノードと区別するために「頂点」の語句を用いることとする。
グラフデータは、例えば、隣接リストや隣接行列を示すデータである。図2はグラフデータの一例を示す図である。図2に示すグラフGは、6つの頂点vと、頂点vと他の頂点vとを連結する辺eと、を含んでいる。つまり、図2に示すグラフGは、6つの頂点{v,v,v,v,v,v}と、8つの辺{e12,e13,e14,e16,e23,e34,e45,e46}と、を含む。
本実施形態の場合、図2に示すグラフGにおいて各頂点vは一つ一つの遺伝子に対応しており、グラフGは遺伝子間の関係を示している。ここで、遺伝子間の関係とは、例えば、発現の影響を互いに及ぼし合うような遺伝子間の関係(遺伝子間の相互作用関係)や、一方の遺伝子と他方の遺伝子とが同時に発現するような遺伝子間の関係である。頂点vと頂点vとを連結する辺eijは、頂点vに対応する遺伝子と頂点vに対応する遺伝子とが関係を有することを示す。例えば、図2に示すグラフGでは、辺e12が頂点vと頂点vとを連結しており、頂点vに対応する遺伝子と頂点vに対応する遺伝子とが関係を有することが表されている。なお、図2に示すグラフGでは、頂点vは辺e14によって頂点vと連結されており、さらに、頂点vは辺e45によって頂点vと連結されている。すなわち、頂点vに対応する遺伝子と頂点vに対応する遺伝子とが、頂点vに対応する遺伝子を介して間接的に関係を有することが表されている。
また、データベース4は、グラフGの各頂点vに情報を関連づけてなる頂点データを記憶する。図3は頂点データの一例を示す図である。図3に示す頂点データは、頂点vと、少なくとも一種のアイテムi(要素)を含むアイテム集合I(v)と、を関連づけてなるテーブルになっている。本実施形態の場合、アイテム集合I(v)に含まれる各アイテムiは、頂点vに対応する遺伝子の発現を変化させる医薬に対応する。図3に示す例では、頂点vに対応づけられたアイテム集合I(v)は、アイテムi(医薬A)と、アイテムi(医薬B)と、アイテムi(医薬C)と、アイテムi(医薬D)と、を含んでおり、医薬A、医薬B、医薬C、又は医薬Dの投与により頂点vに対応する遺伝子の発現が変化することを表している。なお例えば、アイテムiを、遺伝子の発現を変化させる、医薬以外の要因に対応させるようにしてもよい。
ところで、図4に示すように、グラフGのうちの一部である部分グラフCSGでは、該部分グラフCSGに含まれる頂点v,v,vの各々に関連づけられたアイテム集合I(v),I(v),I(v)が、それぞれ、共通のアイテム集合{i,i}を含んでいる。これは、直接的又は間接的に関係を有する3つの遺伝子(頂点v,v,vに対応する3つの遺伝子)の発現が共通の医薬{医薬A、医薬B}の投与により変化することを表している。この場合、これら3つの遺伝子は、直接的又は間接的に関係を有し、かつ、共通の医薬の投与により発現が変化するのであるから、これら3つの遺伝子の発現は、同一又は類似の医薬の投与により変化する可能性が高いと推測される。これら3つの遺伝子のような、直接的又は間接的に関係を有し、かつ、共通の医薬の投与により共通して発現が変化する遺伝子群を特定することができれば、例えば、創薬研究の上で有用である。例えば、創薬のターゲットとすべきを遺伝子を絞り込む際に有用である。
この点、部分グラフ検出装置2では、グラフGの部分グラフであって、該部分グラフの各頂点vに関連づけられたアイテム集合I(v)が共通のアイテム集合を含むような部分グラフCSGが検出されるようになっている。その結果、直接的又は間接的に関係を有し、かつ、共通の医薬の投与により共通して発現が変化する遺伝子群が検出されるようになっている。
なお、グラフGの各頂点vが一つ一つのタンパク質に対応し、かつ、頂点データにおいて各アイテムiが、頂点vに対応するタンパク質の発現を変化させる医薬に対応するようにしてもよい。
この場合、図2に示すグラフGは、タンパク質間の関係を示し、頂点vと頂点vとを連結する辺eijは、頂点vに対応するタンパク質と頂点vに対応するタンパク質とが関係を有することを示すことになる。ここで、タンパク質間の関係とは、例えば、互いに結合して複合体を形成するようなタンパク質間の関係(タンパク質間の相互作用関係)である。例えば、図2に示すグラフGの場合、辺e12が頂点vと頂点vとを連結しているため、頂点vに対応するタンパク質と頂点vに対応するタンパク質とが関係を有することが表されていることになる。また、図2に示すグラフGの場合、頂点vは辺e14によって頂点vと連結されており、さらに、頂点vは辺e45によって頂点vと連結されているので、頂点vに対応するタンパク質と頂点vに対応するタンパク質とが、頂点vに対応するタンパク質を介して間接的に関係を有することが表されていることになる。
また、この場合、データベース4には、図3に示す頂点データと同様の頂点データが記憶される。図3に示す頂点データでは、頂点vに対応づけられたアイテム集合I(v)に、アイテムi(医薬A)と、アイテムi(医薬B)と、アイテムi(医薬C)と、アイテムi(医薬D)と、が含まれているため、医薬A、医薬B、医薬C、又は医薬Dの投与により頂点vに対応するタンパク質の発現が変化することが表されていることになる。なお例えば、アイテムiを、タンパク質の発現を変化させる、医薬以外の要因(例えば、ヒートショック、窒素枯渇環境など)に対応させるようにしてもよい。
先述のように(図4参照)、グラフGのうちの一部である部分グラフCSGでは、該部分グラフCSGに含まれる頂点v,v,vの各々に関連づけられたアイテム集合I(v),I(v),I(v)が、それぞれ、共通のアイテム集合{i,i}を含んでいる。これは、直接的又は間接的に関係を有する3つのタンパク質(頂点v,v,vに対応する3つのタンパク質)の発現が、共通の医薬{医薬A、医薬B}の投与により変化することを表している。この場合、これら3つのタンパク質は、直接的又は間接的に関係を有し、且つ、共通の医薬の投与により発現が変化するので、これら3つのタンパク質の発現は、同一又は類似の医薬の投与により変化する可能性が高いと推測される。これら3つのタンパク質のような、直接的又は間接的に関係を有し、かつ、共通の医薬の投与により共通して発現が変化するタンパク質群を特定することができれば、創薬研究の上で有用である。例えば、創薬のターゲットとすべきタンパク質を絞り込む際に有用である。
この点、先述のように、部分グラフ検出装置2では、グラフGの部分グラフであって、該部分グラフの各頂点vに関連づけられたアイテム集合I(v)が共通のアイテム集合を含むような部分グラフCSGが検出されるようになっている。その結果、例えば、グラフGの各頂点vが一つのタンパク質に対応し、かつ、各アイテムiが、頂点vに対応するタンパク質の発現を変化させる医薬に対応するような場合には、直接的又は間接的に関係を有し、かつ、共通の医薬の投与により共通して発現が変化するタンパク質群が検出されるようにもなる。
また、グラフGの各頂点vが一人一人のユーザに対応し、頂点データにおいて各アイテムiが、頂点vに対応するユーザが購入した商品に対応するようにしてもよい。
この場合、図2に示すグラフGはユーザ間の交友関係を示し、頂点vと頂点vとを連結する辺eijは、頂点vに対応するユーザと頂点vに対応するユーザとが友人関係にあることを示すことになる。例えば、図2に示すグラフGの場合、辺e12が頂点vと頂点vとを連結しているため、頂点vに対応するユーザと頂点vに対応するユーザとが友人関係にあることが表されていることになる。また、図2に示すグラフGの場合、頂点vは辺e14によって頂点vと連結され、さらに、頂点vは辺e45によって頂点vと連結されているため、頂点vに対応するユーザと頂点vに対応するユーザとが、頂点vに対応するユーザを介して間接的に交友関係を有することが表されていることになる。
図5に、各アイテムiを、頂点vに対応するユーザが購入した商品に対応させた場合の頂点データの一例を示す。図5に示す例では、頂点vに対応づけられたアイテム集合I(v)に、アイテムi(りんご)と、アイテムi(みかん)と、アイテムi(ぶどう)と、アイテムi(ナシ)と、が含まれているため、頂点vに対応するユーザがりんご、みかん、ぶどう及びナシを購入したことが表されていることになる。なお、ここでは、アイテムi〜iが同種の商品(果物)になっているが、アイテムi〜iは異なる種類の商品であってもよい。
先述のように(図4参照)、グラフGのうちの一部である部分グラフCSGでは、該部分グラフCSGに含まれる頂点v,v,vの各々に関連づけられたアイテム集合I(v),I(v),I(v)が、それぞれ、共通のアイテム集合{i,i}を含んでいる。これは、直接的又は間接的に交友関係を有する3名のユーザ(頂点v,v,vに対応する3名のユーザ)が共通の商品{りんご、みかん}を購入していることを表している。この場合、共通の商品{りんご、みかん}又はこれらの商品に関連する他の商品に関する情報が、頂点v,v,vに対応する3名のユーザの間で口コミによって伝わる可能性が高いと推測される。これら3名のユーザのような、直接的又は間接的に交友関係を有し、かつ、共通の商品を購入したユーザ群を特定することができれば、例えば、商品の広告宣伝のターゲットとすべきユーザを好適に絞り込むことができるようになり、その結果として、商品の広告宣伝が効率的に行えるようになる。
この点、部分グラフ検出装置2では、グラフGの部分グラフであって、該部分グラフの各頂点vに関連づけられたアイテム集合I(v)が共通のアイテム集合を含むような部分グラフCSGが検出されるようになっている。その結果、直接的又は間接的に交友関係にあり、かつ、共通の商品を購入したユーザ群が検出されるようになっている。
以下、各頂点vに関連づけられたアイテム集合I(v)が共通のアイテム集合を含むような部分グラフCSGを検出するための技術について説明する。なお、以下では、各頂点vに関連づけられたアイテム集合I(v)が共通のアイテム集合を含むような部分グラフCSGのことを、共通部分グラフCSGと記載する。
[4.機能ブロック]
図6は、部分グラフ検出装置2で実現される機能のうち、本発明に関連するものを主として示す機能ブロック図である。同図に示すように、部分グラフ検出装置2は、グラフデータ取得部20と、頂点データ取得部22と、部分グラフ検出部24と、を機能的に含む。これらの機能は、記憶部10から読み出された上記プログラムに従って制御部8が動作することによって実現される。
[4−1.グラフデータ取得部]
グラフデータ取得部20は、例えば制御部8と通信部12とを主として実現される。グラフデータ取得部20は、複数の頂点を含むグラフを示すグラフデータを取得する。本実施形態の場合、グラフデータ取得部20は、例えば図2に示すようなグラフGのグラフデータをデータベース4から読み出して取得する。
[4−2.頂点データ取得部]
頂点データ取得部22は、例えば制御部8と通信部12とを主として実現される。頂点データ取得部22は、グラフに含まれる複数の頂点の各々に情報を対応づけてなる頂点データを取得する。ここで、「情報」とは、グラフGの頂点間の接続関係を示す情報以外の情報である。例えば、頂点が遺伝子に対応する場合、上記の「情報」とは、遺伝子に関する情報である。ここで、「遺伝子に関する情報」とは、例えば、遺伝子の発現を変化させるような医薬を示す情報である。また例えば、頂点がタンパク質に対応する場合、上記の「情報」とは、タンパク質に関する情報である。ここで、「タンパク質に関する情報」とは、例えば、タンパク質の発現を変化させるような医薬を示す情報である。さらに例えば、頂点がユーザに対応する場合、上記の「情報」とは、ユーザに関する情報である。ここで、「ユーザに関する情報」とは、例えば、ユーザの属性を示す情報や、ユーザが購入した商品を示す情報である。本実施形態の場合、頂点データ取得部22は、例えば図3又は図5に示すような頂点データをデータベース4から読み出して取得する。
[4−3.部分グラフ検出部]
部分グラフ検出部24は、例えば制御部8を主として実現される。部分グラフ検出部24は、グラフデータと、頂点データと、に基づいて、グラフの部分グラフであって、該部分グラフの各頂点に関連づけられた情報が所定関係を有するような部分グラフを検出する。本実施形態の場合、部分グラフ検出部24は、グラフGの部分グラフであって、該部分グラフの各頂点vに関連づけられたアイテム集合I(v)の積集合がN(Nは正の整数)種以上のアイテム(商品)を含む共通部分グラフCSGを検出する。具体的には、例えば、「共通のN種以上の医薬の投与により共通して発現が変化する複数の遺伝子」に対応する複数の頂点vを含む共通部分グラフCSGが検出される。また例えば、「共通のN種以上の医薬の投与により共通して発現が変化する複数のタンパク質」に対応する複数の頂点vを含む共通部分グラフCSGが検出される。また例えば、共通のN種以上の商品を購入した複数のユーザに対応する複数の頂点vを含む共通部分グラフCSGが検出される。
なお本実施形態では、特に、閉じている共通部分グラフCSG(以下、閉共通部分グラフCCSGと記載する)が検出される。閉共通部分グラフCCSGとは、共通部分グラフCSGであって、該共通部分グラフCSGに含まれる頂点vに隣接しているどの頂点vを該共通部分グラフCSGに追加しても、共通アイテム集合が変わってしまうような共通部分グラフCSGのことである。
以下、閉共通部分グラフCCSGの具体例について説明する。ここでは、共通アイテム集合に2種以上のアイテムが含まれる部分グラフが共通部分グラフCSGであることとして説明する。例えば、部分グラフ{v,v}の共通アイテム集合は、{i,i}であるから(図3参照)、部分グラフ{v、v}は共通部分グラフCSGである。しかし、部分グラフ{v,v}に頂点vに隣接する頂点v(図1、図4参照)を追加しても、共通アイテム集合は{i,i}のままで変化しないから、部分グラフ{v,v}は閉共通部分グラフCCSGではない。一方、部分グラフ{v,v}に頂点vが追加された部分グラフ{v,v,v}の共通アイテム集合は{i、i}であるから(図3参照)、部分グラフ{v,v,v}は共通部分グラフCSGである。また、部分グラフ{v,v,v}に、頂点v,v,vのいずれかに隣接する頂点v,v,vのいずれを追加しても、共通アイテム集合は{i,i}から{i}に変化するので、部分グラフ{v,v,v}は、閉共通部分グラフCCSGである。
共通アイテム集合が同じ場合、閉共通部分グラフCCSGの頂点数は、閉じていない共通部分グラフCSGの頂点数よりも多くなる。例えば、部分グラフ{v,v}の共通アイテム集合と、部分グラフ{v,v,v}の共通アイテム集合とはともに{i,i}であるが、閉共通部分グラフCCSGである部分グラフ{v,v,v}の方が、閉共通部分グラフCCSGではない部分グラフ{v,v}よりも頂点の数が多い。
より多くの頂点を含む共通部分グラフCSGを検出することができれば、例えば、直接的又は間接的に関係を有し、かつ、共通の医薬の投与により共通して発現が変化する遺伝子群として、より遺伝子数が多いものが検出されるようになるので、より多くの遺伝子に影響を及ぼす医薬を同定することができ、例えば創薬の際に有用である。また、例えば、直接的又は間接的に関係を有し、かつ、共通の医薬の投与により共通して発現が変化するタンパク質群として、よりタンパク質数が多いものが検出されるようになるので、より多くのタンパク質に影響を及ぼす医薬を同定することができ、例えば創薬の際に有用である。また、例えば、直接的又は間接的に交友関係を有し、かつ、共通の商品を購入したユーザ群として、よりユーザ数が多いものが検出されるようになり、その結果として、商品の広告宣伝をより効率的に行えるようになる。そこで、本実施形態では、より多くの頂点を含む共通部分グラフCSGを得るために、特に閉共通部分グラフCCSGを検出するようにしている。部分グラフ検出部24の動作の詳細については後述する。
[5.処理]
部分グラフ検出装置2で実行される、共通部分グラフCSG(特に閉共通部分グラフCCSG)を検出するための処理について説明する。なお、以下では、上記のNの値が2である場合、すなわち、各頂点vに関連づけられたアイテム集合I(v)の積集合が二種以上のアイテムiを含むような共通部分グラフCSGを検出する場合について説明する。
[5−1.処理の概要]
まず処理の概要について説明する。図7は処理の概要を説明するための図である。部分グラフ検出装置2では、深さ優先探索アルゴリズムを用いて、図7に示すようなツリーT(探索木)が生成されることによって共通部分グラフCSG(特に閉共通部分グラフCCSG)が検出される。図7に示すツリーTは、グラフGの各頂点v〜vに対応するルートノードn(nr1〜nr6)と、ルートノードnr1〜nr6よりも下位のノードn(nc1〜ncM)と、を含む。また、図に示すツリーTの各ノードnには、そこまでの経路に含まれる頂点vの集合を示す頂点集合V(n)と、頂点集合V(n)のうちの全ての頂点vが有する共通のアイテムiの集合を示す共通アイテム集合I(n)と、が含まれている。図7では、各ノードnの左側領域に頂点集合V(n)が表され、右側領域に共通アイテム集合I(n)が表されている。なお、以下、ツリーTのノードnに含まれる頂点集合V(n)のことを、ツリーTのノードnの頂点集合V(n)と呼び、ツリーTのノードnに含まれるアイテム集合I(n)のことを、ツリーTのノードnのアイテム集合I(n)と呼ぶ。
同図に示すツリーTでは、各ノード(ノードnとする)の頂点集合V(n)に他の頂点vが一つ追加された頂点集合が、その子のノードnx+1の頂点集合V(nx+1)になっている。具体的には、ノードnの頂点集合V(n)に当該頂点集合V(n)のうちの末端頂点に隣接する一つの頂点が新たな末端頂点として追加された頂点集合が、ノードnx+1の頂点集合V(nx+1)になっている。
例えば、ノードnr1の頂点集合V(nr1)である{v}に、末端頂点である頂点vに隣接する頂点vが追加された頂点集合{v,v}が、ノードnr1の子のノードnc1の頂点集合V(nc1)になっている。この場合、追加された頂点vが頂点集合V(nc1)の末端頂点になっている。また例えば、ノードnc1の頂点集合V(nc1)である{v,v}に、末端頂点である頂点vに隣接する頂点vが追加された頂点集合{v,v,v}が、ノードnc1の子のノードnc2の頂点集合V(nc2)になっている。この場合、追加された頂点vが頂点集合V(nc2)の末端頂点になっている。このように、親のノードnの頂点集合V(n)に当該頂点集合V(n)の末端頂点に隣接する頂点が追加された頂点集合が、子のノードnx+1の頂点集合V(nx+1)になっている。
各ノードnの頂点集合V(n)に含まれる各頂点は、当該頂点集合V(n)に含まれる他のいずれかの頂点と隣接するようになっており、各ノードnの頂点集合V(n)は、当該頂点集合V(n)を含む部分グラフを表していることになる。
部分グラフ検出部24は、深さ優先探索アルゴリズムに従った探索順序で、ツリーTの各ノードnを判定対象とし、判定対象のノードnの頂点集合V(n)が複数の頂点vを含む場合に、当該頂点集合V(n)が示す部分グラフが共通部分グラフCSGであるか否かの判定を実行する。すなわち、頂点集合V(n)の各頂点vに関連付けられたアイテム集合I(v)の積集合が二種以上のアイテムを含むか否かの判定を実行する。こうして、部分グラフ検出部24は、ツリーTに基づいて共通部分グラフCSGを検出する。なお、ここでは、図7に示すようなツリーTを生成するために深さ優先探索アルゴリズムを用いているが、幅優先探索アルゴリズムを用いるようにしてもよい。
[5−2.基準集合テーブルについて]
部分グラフ検出装置2では、無駄な処理を実行しないようにするためのデータとして、基準集合テーブルが記憶される。ここで、基準集合テーブルについて説明しておく。
まず、基準集合テーブルを設ける意義について説明しておく。あるノード(ノードnとする)と他ノード(ノードnとする)との間に以下の3つの関係がすべて成立する場合、ノードnの子孫のノード(ノードnxdとする)の頂点集合V(nxd)を含む部分グラフは閉部分グラフにはならない。
(関係1)ノードnの頂点集合V(n)の末端頂点と、ノードnの頂点集合V (n)の末端頂点と、が共通すること。
(関係2)ノードnがノードnよりも前に判定対象とされること。
(関係3)ノードnの共通アイテム集合I(n)⊇ノードnの共通アイテム集合I(n)であること。
ノードnxdが示す頂点集合V(nxd)を含む部分グラフが閉部分グラフにならないということは、ノードnxdが示す頂点集合V(nxd)を含む部分グラフは閉共通部分グラフCCSGにはなり得ないということである。そこで、本実施形態では、部分グラフ検出部24は、あるノードn(第1のノード)と他ノードn(第2のノード)との間に関係1〜3がすべて成立する場合、ノードnの子孫のノードnxdの頂点集合V(nxd)を判定対象として当該頂点集合V(nxd)が表す部分グラフが共通部分グラフCSGであるか否かを判定しないようになっている。その結果として、ツリーTのすべてのノードnを判定対象として、判定対象のノードnの頂点集合V(n)が表す部分グラフが共通部分グラフであるか否かの判定を実行しなくても、閉共通部分グラフCCSGが検出可能になり、処理負荷の軽減が図られる。
ここで、あるノードnと他ノードnとの間に関係1〜3がすべて成立する場合にノードnの子孫のノードnxdの頂点集合V(nxd)が表す部分グラフが閉部分グラフにならない理由を説明する。
まず、ノードnがノードnよりも前に生成されるノードである場合(関係2)、ノードnの頂点集合V(n)の末端頂点と、ノードnの頂点集合V (n)の末端頂点と、が共通していれば(関係1)、「ノードnの頂点集合V(n)⊇ノードnの頂点集合V(n)」の関係(以下、この関係を「関係4」と記載する。)が成立する。例えば、図7において、ノードnc10と、ノードnc10よりも前に生成されるノードnc7と、の間では、「ノードnc7の頂点集合V(nc7)⊇ノードnc10の頂点集合V(nc10)」が成立している。
従って、ノードnの頂点集合V(n)にその末端頂点に隣接する頂点vが追加された頂点集合を、ノードnの子孫のノードnxdの頂点集合V(nxd)とし、ノードnの頂点集合V(n)に同じ頂点vが追加された頂点集合を、ノードnの子孫のノードnydの頂点集合V(nyd)とした場合、ノードnxdの頂点集合V(nxd)と、ノードnydの頂点集合V(nyd)との間には、「ノードnydの頂点集合V(nyd)⊇ノードnxdの頂点集合V(nxd)」の関係(以下、この関係を「関係5」と記載する。)が成立する。例えば、図7において、ノードnc7の子孫のノードnc8と、ノードnc10の子孫のノードnc11と、の間には、「ノードnc8の頂点集合V(nc8)⊇ノードnc11の頂点集合V(nc11)」が成立している。
ここで、上記関係5が成立する場合、ノードnydの頂点集合V(nyd)の各頂点に関連付けられたアイテム集合の積集合(すなわち、共通アイテム集合I(nyd))に含まれるアイテムの数が、ノードnxdの頂点集合V(nxd)の各頂点に関連付けられたアイテム集合の積集合(すなわち、共通アイテム集合I(nxd))に含まれるアイテムの数よりも多くなることはない。頂点集合に含まれる頂点の数が多くなるほど、その頂点集合の各頂点に関連付けられたアイテム集合の積集合に含まれるアイテムの数が減るからである。このため、上記関係5が成立する場合、「ノードnydの共通アイテム集合I(nyd)⊆ノードnxdの共通アイテム集合I(nxd)」の関係(以下、この関係を「関係6」と記載する。)が成立することになる。
一方、「ノードnの共通アイテム集合I(n)⊇ノードnの共通アイテム集合I(n)」である場合(関係3)、ノードnxdの頂点集合V(nxd)と、ノードnydの頂点集合V(nyd)とは、それぞれ、頂点集合V(nxd)及び頂点集合V(nyd)のそれぞれに同じ頂点vが追加された頂点集合であるため、ノードnxdの共通アイテム集合I(nxd)と、ノードnydの共通アイテム集合I(nyd)と、の間には、「ノードnydの共通アイテム集合I(nyd)⊇ノードnxdの共通アイテム集合I(nxd)」の関係(以下、この関係を「関係7」と記載する。)が成立することになる。
以上のように、上記関係1〜3がすべて成立する場合、上記関係6,7が同時に成立することになる。上記関係6,7が同時に成立する場合とは、ノードnxdの共通アイテム集合I(nxd)と、ノードnydの共通アイテム集合I(nyd)とが、「ノードnydの共通アイテム集合I(nyd)=ノードnxdの共通アイテム集合I(nxd)」の関係を有する場合である。このため、上記関係1〜3がすべて成立する場合には、ノードnydの共通アイテム集合I(nyd)と、ノードnxdの共通アイテム集合I(nxd)と、の間に、「ノードnydのアイテム集合I(nyd)=ノードnxdのアイテム集合I(nxd)」の関係が成立することになる。これは、ノードnxdの頂点集合V(nxd)に、ノードnydの頂点集合V(nyd)に含まれ、かつ、ノードnxdの頂点集合V(nxd)に含まれない頂点vを追加しても、共通アイテム集合が変わらないことを示している。つまり、あるノードnと他のノードnとの間に上記関係1〜3がすべて成立する場合に、ノードnの子孫のノードnxdの頂点集合V(nxd)が表す部分グラフは閉部分グラフにならないということになる。
例えば、図7に示す場合、ノードnc10の子のノードnc11の共通アイテム集合I(nc11)と、ノードnc7の子のノードnc8の共通アイテム集合I(nc8)とは、ともに{i}であり、等しくなっている。そして、ノードnc8の頂点集合V(nc8)に含まれ、かつ、ノードnc11の頂点集合V(nc11)に含まれない頂点vをノードnc11の頂点集合V(nc11)に追加しても共通アイテム集合は{i}のままで変化しない。よって、頂点集合V(nc11)が表す部分グラフは閉部分グラフにはならない。
なお、上記関係1と上記関係2とが成立する場合、上記関係4が成立することは以上で述べた。そのため、「あるノードnと他ノードnとの間に上記関係1,3,4がすべて成立する場合に、ノードnの子のノードncx(言い換えれば、ノードncxの頂点集合V(nxd))を判定対象として上記の判定を行わない」とは、「ノードnとノードnとの間に上記関係1,3,4がすべて成立する場合に、頂点集合V(nxd)を判定対象として上記の判定を行わない」ともいうことができる。
ところで、ツリーTの各ノードを幅優先探索アルゴリズムに従った探索順序で判定対象とする場合にも、あるノードn(第1のノード)と他のノードn(第2のノード)との間に、上記関係1、上記関係3、及び下記関係2’がすべて成立する場合に、ノードnの子孫のノードnxdの頂点集合V(nxd)が表す部分グラフが共通部分グラフCSGであるか否かを判定しないようにすることが可能である。
(関係2’)ノードnがノードnよりも前に判定対象とされること。
このようにすれば、ツリーTの各ノードを幅優先探索アルゴリズムに従った探索順序で判定対象とする場合においても、すべての頂点集合V(n)を判定対象として当該頂点集合V(n)が表す部分グラフが共通部分グラフCSGであるか否かを判定しなくても、閉共通部分グラフCCSGが検出可能になる。なぜなら、ノードnがノードnよりも前に判定対象にされるノードである場合(関係2’)、幅優先探索アルゴリズムの探索順序を考慮すると、ノードnの頂点集合V(n)の末端頂点と、ノードnの頂点集合V (n)の末端頂点と、が共通しているのなら(関係1)、上記関係4「ノードnの頂点集合V(n)⊇ノードnの頂点集合V(n)」が成立する。従って、上記関係1、上記関係3、及び上記関係4が成立するのだから、深さ優先探索アルゴリズムの場合と同様に、上記関係5〜7が成立することになる。また、その結果、「ノードnydのアイテム集合I(nyd)=ノードnxdのアイテム集合I(nxd)」の関係が成立することとなり、ノードnxdの頂点集合V(nxd)に、ノードnydの頂点集合V(nyd)に含まれ、かつ、ノードnxdの頂点集合V(nxd)に含まれない頂点vを追加しても、共通アイテム集合が変わらないということになるからである。この場合も、上記関係1、3、4がすべて成立する場合に、頂点集合V(nxd)を判定対象として上記の判定を行わないようにしているということができる。
基準集合テーブルは、あるノードnと他ノードnとの間に上記関係1〜3がすべて成立する場合に、ノードnの子のノードncxの頂点集合V(nxd)を判定対象として上記の判定を行わないようするために用いられる。図8は、基準集合テーブルの一例を示す図である。基準集合テーブルは、グラフGに含まれる各頂点vと、該頂点vを末端頂点とする頂点集合V(n)の各頂点に関連付けられたアイテム集合の積集合である基準集合(すなわち、アイテム集合I(n))を少なくとも1つ含む基準集合群P(v)と、を関連付けてなるテーブルである。この基準集合テーブルの役割については後述する。
[5−3.処理の詳細]
図9は制御部8が実行する処理を示すフロー図である。以下、図9を参照しながら制御部8が行う処理の詳細について説明する。なお、図9に示す処理を制御部8が実行することによって、グラフデータ取得部20、頂点データ取得部22、及び部分グラフ検出部24が実現される。なお、図9のS101の処理は、グラフデータ取得部20及び頂点データ取得部22に対応しており、図9のS102以降の処理は部分グラフ検出部24に対応している。
まず、制御部8は、共通部分グラフCSGを検出するための前処理(S101〜S104)を実行する。
まず、制御部8はグラフデータと頂点データとをデータベース4から読み出して取得する(S101)。そして、制御部8は、読み出したグラフデータを加工する。具体的には、二種以上のアイテムiを含まないアイテム集合I(v)が関連付けられている頂点vにつながる辺eを削除し、他の頂点vとのつながりを切断する(S102)。上述したように、共通部分グラフCSGは、すべての頂点vが二種以上の共通のアイテムを有するような部分グラフである。二種以上のアイテムiを含んでいないアイテム集合I(v)が関連付けられている頂点v、すなわち、二種以上のアイテムiを有しない頂点vを含む部分グラフは共通部分グラフCSGにはなり得ない。このため、このような頂点vをS103以降の処理で無視するためにS102の処理が実行される。S102の処理が実行されることによって、無駄な処理が実行されなくなり、共通部分グラフCSGの検出にかかる時間が短縮される。
その後、制御部8は基準集合テーブルを初期化する(S103)。具体的には、各頂点vの基準集合群P(v)がnullに初期化される。また、制御部8は、グラフGに含まれる頂点vの集合を頂点集合Vとして取得する(S104)。
そして、制御部8は、頂点集合Vに含まれる各頂点vを処理対象の頂点vとして順次選択し、S105〜S108の処理を実行する。例えば頂点vが選択された場合には、S105〜S108の処理が実行されることによって、図7に示すツリーTのうちの、頂点vに対応するルートノードnr1よりも下位のノードnが生成され、頂点vを含むような共通部分グラフCSGの検出が実行される。
まず、制御部8は、頂点集合Vに含まれる頂点vの集合を頂点集合Vとして取得する(S105)。そして、制御部8は、頂点vに対応するルートノードnrxを生成し、記憶部10に保存する(S106)。例えば、頂点vが頂点vである場合、ルートノードnr1が生成される。ルートノードnr1の頂点集合V(nr1)は{v}であり、共通アイテム集合I(nr1)は{i,i,i,i}である。なお、頂点集合V(nr1)の末端頂点はvである。その後、制御部8はサブルーチンSを実行する(S107)。
ここで、サブルーチンSについて説明する。図10及び図11はサブルーチンSの処理を示すフロー図である。サブルーチンSは、頂点集合に相当する引数VPと、一つの頂点vに対応する引数vpと、ツリーTの一つのノードnに対応する引数npと、の3つの引数を有する。S107の処理では、頂点集合Vを引数VPとし、頂点vを引数vpとし、ルートノードnrxを引数npとして、サブルーチンSが呼び出される。
図10に示すように、サブルーチンSでは、まず、頂点集合VPに含まれる頂点vのうちの、頂点vpに隣接する頂点vの集合が隣接頂点集合Vとして取得される(S201)。そして、制御部8は、隣接頂点集合Vが空集合であるか否かを判定する(S202)。隣接頂点集合Vが空集合である場合(S202のY)、すなわち、頂点集合VPに含まれる頂点vのうちに頂点vpに隣接する頂点vが存在しない場合、制御部8はサブルーチンSを終了して、図9のS108の処理を実行する。すなわち、頂点集合Vから頂点vが除かれ(S108)、頂点集合Vから他の頂点vが新たな処理対象の頂点vとして選択されてS105〜S108の処理が再実行される。
一方、隣接頂点集合Vが空集合でない場合(S202のN)、制御部8は、隣接頂点集合Vに含まれる各頂点vを処理対象の頂点vnxとして順次選択して、S203〜S209の処理を実行する。
まず、制御部8は頂点データを参照して、頂点vnxに関連づけられたアイテム集合I(vnx)を取得する。そして、制御部8は、アイテム集合I(vnx)と、ツリーTのノードnpの共通アイテム集合I(np)と、の積集合を共通アイテム集合Iとして取得する(S203)。なお、ノードnpの共通アイテム集合I(np)とは、上述のように、ノードnpの頂点集合V(np)の各頂点vに関連づけられたアイテム集合I(v)の積集合である。
そして、制御部8(判定手段)は、共通アイテム集合Iに二種以上のアイテムiが含まれるか否かを判定する(S204)。なお、S204の処理では、ノードnpの頂点集合V(np)に頂点vnxを追加してなる頂点集合が示す部分グラフを判定対象として、該部分グラフの全頂点vが二種以上の共通のアイテムを共有するか否かが判定されていることになる。つまり、ノードnpの頂点集合V(np)に頂点vnxを追加してなる部分グラフが共通部分グラフCSGであるか否かが判定されていることになる。
なお、上述のように、ノードnpの頂点集合V(np)に当該頂点集合V(np)のうちの頂点vp(末端頂点)に隣接する頂点vnxを追加してなる頂点集合は、ノードnpの子のノードに相当する。また、S203で取得された共通アイテム集合Iは、ノードnpの子のノードが示す頂点集合(部分グラフ)の全頂点vの共通アイテム集合に相当する。このため、S204の処理では、ノードnpの子のノードが示す頂点集合(部分グラフ)の全頂点vが二種以上の共通のアイテムを共有するか否かが判定されているともいうことができる。すなわち、ノードnpの子のノードが示す頂点集合(部分グラフ)が共通部分グラフCSGであるか否かが判定されているともいうことができる。
共通アイテム集合Iに二種以上のアイテムiが含まれる場合(S204のY)、制御部8は、基準集合テーブル(図8参照)から、頂点vnxに対応する基準集合群P(vnx)を読み出し、共通アイテム集合Iが、基準集合群P(vnx)のうちのいずれかの基準集合Iの部分集合であるか否かを判定する(S205)。この処理の役割については後述する。
共通アイテム集合Iがいずれの基準集合Iの部分集合でもない場合(S205のN)、制御部8は、記憶部10(基準集合記憶手段)に記憶される基準集合テーブル(図8参照)において、頂点vnxに対応する基準集合群P(vnx)に共通アイテム集合Iを基準集合Iとして追加する(S206)。その後、制御部8は、ツリーTのうちの、ノードnpの子のノードnであって、かつ、頂点vnxに対応するノードncxを生成し、記憶部10に保存する(S207)。この場合、ノードncxの頂点集合V(ncx)は、ノードnpの頂点集合V(np)に頂点vnxを追加した頂点集合に設定され、共通アイテム集合I(ncx)は共通アイテム集合Iに設定される。また、頂点集合V(ncx)の末端頂点は頂点vnxになる。
ここで、S207で生成されるノードncxは一つの共通部分グラフCSGを表している。なぜなら、ノードncxの頂点集合V(ncx)は頂点vの集合を示し、共通アイテム集合I(ncx)は、頂点集合V(ncx)に含まれる頂点vが共通に有するアイテムiの集合を示し、かつ、二種以上のアイテムiを含んでいるからである(S204参照)。このため、ノードncxを生成することは共通部分グラフCSGを検出することに相当する。
その後、頂点集合VPから頂点vnxが除かれ(S208)、サブルーチンSが再帰的に呼び出される(S209)。この場合、サブルーチンSは、頂点集合VPを引数VPとし、頂点vnxを引数vpとし、S207で生成されたノードncxを引数npとして呼び出される。このサブルーチンSの呼び出しによって、図7に示すツリーTのうちのノードncxより下位のノードnが生成される。
なお、S204の処理において、共通アイテム集合Iに二種以上のアイテムiが含まれないと判定された場合(S204のN)、制御部8(制限手段)はS205〜S209の処理を実行しない。この場合、隣接頂点集合Vに含まれる他の頂点vが新たな処理対象の頂点vnxとして選択され、S203の処理が実行される。
ここで、S204の処理の役割について説明する。ここでは、図9のS107の処理でサブルーチンSが、ノードnr1を引数npとして呼び出され、かつ、S204の処理において、頂点vが処理対象の頂点vnxとして選択されている場合を想定する。この場合、上述したように、S204の処理では、ノードnr1の頂点集合V(nr1)である{v}に頂点vを追加してなる頂点集合{v,v}、言い換えれば、ノードnr1の子のノードnc1に対応する頂点集合{v,v}が、共通部分グラフCSGであるか否かが判定されることになる。すなわち部分グラフ{v,v}が共通部分グラフCSGであるか否かが判定されることになる。そして、頂点vと頂点vとが共通に有するアイテムiはアイテムiのみであるため(図3参照)、S204の処理では、共通アイテム集合Iに二種以上のアイテムiが含まれないと判定される。すなわち、部分グラフ{v,v}が共通部分グラフCSGでないと判定される。その結果、S205〜S209の処理が実行されなくなる。すなわち、図7に示すノードnc1が生成されなくなる。また、頂点vnx(v)を引数vpとし、かつ、ノードnc1を引数npとしたようなサブルーチンSの呼び出しも行われなくなり、図7に示すノードnc1よりも下位のノードnc2〜nc5も生成されなくなる。つまり、ノードnc1の子孫のノード(ノードnxとする)の頂点集合V(nx)を判定対象とした、頂点集合V(nx)により表される部分グラフが共通部分グラフCSGであるか否かの判定が実行されなくなる。
例えば、頂点vnx(v)を引数vpとし、かつ、ノードnc1を引数npとしたようなサブルーチンSの呼び出しが行われた場合には、S204の処理では、ノードnc1の頂点集合V(nc1)である{v,v}に、頂点vnx(v)に隣接する頂点vが追加されてなる頂点集合{v,v,v}、すなわち部分グラフ{v,v,v}が共通部分グラフCSGであるか否かの判定処理が実行されることになる。例えば、部分グラフ{v,v}の各頂点vが二種以上の共通のアイテムiを有しておらず、部分グラフ{v,v}が共通部分グラフCSGでない場合、当然のことながら、その部分グラフ{v,v}に頂点vを追加してなる部分グラフ{v,v,v}も共通部分グラフCSGにはなり得ない。このため、上記のような判定処理は不要である。この点、本実施の形態では、S204の処理において部分グラフ{v,v}が共通部分グラフCSGでないと判定された場合、S205〜S209の処理が実行されなくなるため、部分グラフ{v,v,v}が共通部分グラフCSGであるか否かの判定も行われなくなる。すなわち、不要な処理が実行されないように図られる。
また、S205の処理において、共通アイテム集合Iが基準集合群P(vnx)のうちのいずれかの基準集合Iの部分集合であると判定された場合、制御部8(制限手段)はS206以降の処理を実行しない。この場合、隣接頂点集合Vに含まれる他の頂点vが新たに頂点vnxとして選択され、S203の処理が実行される。
ここで、基準集合テーブル(図8参照)と、S205の処理と、の役割について説明する。ここでは、例えば、図11のS209でサブルーチンSが、頂点vを引数vpとし、かつ、ノードnc6を引数npとして呼び出され、頂点vを処理対象の頂点vnxとして、S203〜S206の処理が実行される場合を想定する。この場合、上述したように、S204の処理では、ノードnc6の頂点集合V(nc6)である{v,v}に、頂点vnx(v)に隣接する頂点vが末端頂点として追加されてなる頂点集合{v,v,v}、言い換えれば、ノードnc7に対応する頂点集合{v,v,v}が共通部分グラフCSGであるか否かが判定される。すなわち部分グラフ{v,v,v}が共通部分グラフCSGであるか否かが判定される。そして、頂点v,v,vが共通に有するアイテムiはアイテムi,iであるため(図3参照)、S204の処理では、共通アイテム集合I{i,i}に二種以上のアイテムiが含まれると判定される。すなわち、部分グラフ{v,v,v}が共通部分グラフCSGであると判定される。また、この時点における基準集合テーブル(図8参照)では、頂点vに対応する基準集合群P(v)が初期状態(nullの状態)になっているため、S205の処理では、共通アイテム集合I{i,i}が基準集合群P(v)のいずれの基準集合Iの部分集合でもないと判定される。その結果、S206の処理が実行され、基準集合テーブル(図8参照)において、頂点vに対応する基準集合群P(v)に共通アイテム集合I{i,i}が基準集合として追加される。
さらに、ここで、図9のS107でサブルーチンSが、頂点vを引数vpとし、ノードnr1を引数npとして呼び出され、頂点vを処理対象の頂点vnxとして、S203〜S205の処理が実行される場合を想定する。この場合、上述したように、S204の処理では、ノードnr1の頂点集合V(nr1)である{v}に、頂点vに隣接する頂点vが末端頂点として追加されてなる頂点集合{v,v}、言い換えれば、ノードnc10に対応する頂点集合{v,v}が共通部分グラフCSGであるか否かが判定される。すなわち部分グラフ{v,v}が共通部分グラフCSGであるか否かが判定される。そして、頂点v,vが共通に有するアイテムiはアイテムi,iであるため(図3参照)、S204の処理では、共通アイテム集合I{i,i}に二種以上のアイテムiが含まれると判定される。すなわち、部分グラフ{v,v}が共通部分グラフCSGであると判定される。一方、この時点における基準集合テーブル(図8参照)では、頂点vに対応する基準集合群P(v)に基準集合I{i,i}が含まれている。ここで、基準集合I{i,i}は、既に生成済みのノードnc7の共通アイテム集合I(nc7)である。頂点vに対応する基準集合群P(v)に基準集合I{i,i}が含まれているため、S205の処理では、部分グラフ{v,v}の共通アイテム集合I{i,i}が基準集合群P(v)のいずれかの基準集合Iの部分集合であると判定される。その結果、S206〜S208の処理が実行されなくなる。すなわち、S207の処理が実行されず、図7に示すノードnc10が生成されなくなる。また、S208の処理が実行されず、頂点vnx(v)を引数vpとし、かつ、ノードnc10を引数npとしたようなサブルーチンSの呼び出しも行われなくなる。その結果、図7に示すノードnc10よりも下位のノードnc11〜nc12も生成されなくなる。つまり、ノードnc10の子孫のノード(ノードnxとする)の頂点集合V(nx)が判定対象として取得されず、頂点集合V(nx)により表される部分グラフが共通部分グラフCSGであるか否かも判定されなくなる。
例えば、頂点vnx(v)を引数vpとし、かつ、ノードnc10を引数npとしたようなサブルーチンSの呼び出しが行われた場合には、S204の処理では、ノードnc10の頂点集合V(nc10)である{v,v}に、頂点vnx(v)に隣接する頂点vが追加されてなる頂点集合{v,v,v}、すなわち部分グラフ{v,v,v}が共通部分グラフCSGであるか否かが判定されることになる。この点、本実施の形態では、S205の処理において、部分グラフ{v,v}の共通アイテム集合I{i,i}が基準集合群P(v)のいずれかの基準集合Iの部分集合であると判定された場合、S205〜S209の処理が実行されなくなるため、ノードnc10の子のノードnc11の頂点集合V(nc11)により表される部分グラフ{v,v,v}が共通部分グラフCSGであるか否かの判定も行われなくなる。
S205の処理で部分グラフ{v,v}の共通アイテム集合I{i,i}が基準集合群P(v)のいずれかの基準集合I{i,i}の部分集合であると判定される場合とは、頂点vを含む部分グラフに関してすでに検出済みの共通アイテム集合に含まれないような共通アイテム集合が検出される可能性がない場合である。
また、S205の処理で部分グラフ{v,v}の共通アイテム集合I{i,i}が基準集合群P(v)のいずれかの基準集合I{i,i}の部分集合であると判定される場合とは、上述のように基準集合I{i,i}は既に生成済みのノードnc7の共通アイテム集合I(nc7)に相当するので、既に生成済みのノードnc7の共通アイテム集合I(nc7)にノードnc10の共通アイテム集合I(nc10)が含まれる場合である。さらに、ノードnc7の頂点集合V(nc7)の末端頂点と、ノードnc10の頂点集合V(nc10)の末端頂点と、はともに頂点vなのであるから、S205の処理で部分グラフ{v,v}の共通アイテム集合I{i,i}が基準集合群P(v)のいずれかの基準集合I{i,i}の部分集合であると判定される場合とは、ノードnc7をノードnとし、ノードnc10をノードnとした場合に、ノードnとノードnとの間で上記の関係1〜3がすべて成立する場合である。このような場合には、部分グラフ{v,v}に頂点vが追加されてなる頂点集合{v,v,v}、すなわち部分グラフ{v,v,v}が閉部分グラフでないのは明らかだから、共通部分グラフCSGであるか否かの判定処理を実行する必要がない。この点、本実施の形態では、このような不必要な判定処理が実行されないようになる。
図9に示すように、すべての頂点vについてS105〜S108の処理が実行された場合、制御部8は共通部分グラフCSGの検出結果を出力する(S109)。上述したように、記憶部10に保持されたツリーTのノードnは共通部分グラフCSG(本実施形態の場合、閉共通部分グラフCCSG)を表している。S109の処理では、記憶部10に保持されたツリーTのノードnに基づいて、例えば、頂点v又は辺eの数が最も多いような共通部分グラフCSGが表示出力される。または、頂点v又は辺eの数が所定の基準数よりも多いような共通部分グラフCSGが表示出力される。または、検出されたすべての共通部分グラフCSGが表示出力される。以上が、部分グラフ検出装置2で実行される処理の詳細である。
[5.まとめ]
上記の部分グラフ検出システム6では、例えば、複数の遺伝子に対応する複数の頂点vを含み、該複数の遺伝子の関係を示すグラフGのグラフデータが記憶される。また、複数の頂点vの各々にアイテム集合I(v)を対応づけてなる頂点データが記憶され、この頂点データは各遺伝子の発現を変化させる医薬を示すデータとなっている。そして、部分グラフ検出装置2では、これらのデータに基づいて、直接的又は間接的に関係を有し、かつ、共通の医薬の投与により共通して発現が変化する遺伝子群を表す共通部分グラフCSGが検出される。この検出結果を用いることによって、例えば、創薬のターゲットとすべき遺伝子を絞り込む上で有用な情報が得られるようになる。
また例えば、部分グラフ検出システム6では、複数のタンパク質に対応する頂点vを含み、かつ、該複数のタンパク質の関係を示すグラフGのグラフデータが記憶され、各タンパク質の発現を変化させる医薬を示す頂点データが記憶される。この場合、直接的又は間接的に関係を有し、かつ、共通の医薬の投与により共通して発現が変化するタンパク質群を表す共通部分グラフCSGが検出される。この検出結果を用いることによって、例えば、創薬のターゲットとすべきタンパク質を絞り込む上で有用な情報が得られるようになる。
また例えば、部分グラフ検出システム6では、複数のユーザに対応する複数の頂点vを含み、かつ、該複数のユーザの交友関係を示すグラフGのグラフデータが記憶され、各ユーザが購入した商品を示す頂点データが記憶される。この場合、直接的又は間接的に交友関係を有し、かつ、共通の商品を購入したユーザ群を表す共通部分グラフCSGが検出される。この検出結果を用いることによって、例えば、上述したように、商品の広告宣伝を効率的に行えるようにもなる。
ところで、図10のS204及びS205の少なくとも一方を省略しても、共通部分グラフCSGの検出は可能である。例えば、図10のS204及びS205の少なくとも一方を省略しても、閉共通部分グラフCCSGの検出は可能である。例えば、すべての頂点集合、すなわち、すべての部分グラフを判定対象として上記のような判定処理を行ってすべての共通部分グラフを検出し、これらのうちから閉共通部分グラフを特定することが考えられる。しかしながら、この場合、例えば、グラフGに含まれる頂点vの数(例えば、10000個)が非常に多い場合には、すべての共通部分グラフCSGの検出に膨大な時間がかかる可能性がある。
この点、上記の部分グラフ検出装置2では、例えば、図10のS204又はS205の処理が実行されることによって、不必要な処理の実行が抑制される。つまり、上記判定処理が、閉部分グラフでない部分グラフを判定対象としては行われなくなる。このため、共通部分グラフCSG(閉共通部分グラフCCSG)の検出にかかる時間が短縮される。そのため、グラフGに含まれる頂点vの数が非常に多い場合であっても、共通部分グラフCSG(閉共通部分グラフCCSG)の検出が比較的短時間で行われるようになる。
[6.変形例]
なお、本発明は、以上に説明した実施形態に限定されるものではない。
[6−1.変形例1]
例えば、図9乃至図11の処理では、頂点集合V(n)が複数の頂点を含むようなノードnと、他のノードnと、の間で上記関係1〜3がすべて成立している場合に、ノードnの子孫となるノードnxdの頂点集合V(nxd)を判定対象とした上記判定処理が省略されるようになっている。しかしながら、頂点集合V(n)が一の頂点のみを含むようなノードn(第3のノード)と、ノードn(第4のノード)と、の間で上記関係1〜3(又は上記関係1,3,4)がすべて成立している場合に、ノードnの子孫となるノードnxdの頂点集合V(nxd)を判定対象とした上記判定処理が省略されるようにしてもよい。
例えば、制御部8は、図9のS107の処理を実行する前に、図10のS205と類似の処理を実行するようにしてもよい。すなわち、制御部8は、頂点vに対応する基準集合群P(v)を基準集合テーブル(図8参照)から取得し、頂点vのアイテム集合I(v)が基準集合群P(v)のうちのいずれかのアイテム集合Iの部分集合であるか否かを判定するようにしてもよい。そして、アイテム集合I(v)がいずれのアイテム集合Iの部分集合でもない場合にS107の処理を実行し、アイテム集合I(v)がいずれかのアイテム集合Iの部分集合である場合には、S107の処理を実行しないで、S108の処理を実行するようにしてもよい。このようにしても、共通部分グラフCSG(閉共通部分グラフCCSG)を検出するために不必要な処理の実行が抑制される。
また、ツリーTの各ノードを幅優先探索アルゴリズムに従った探索順序で判定対象とする場合は、頂点集合V(n)が一の頂点のみを含むようなノードn(第3のノード)と、ノードn(第4のノード)と、の間で上記関係1,2’,3(又は上記関係1,3,4)がすべて成立している場合に、ノードnの子孫となるノードnxdの頂点集合V(nxd)を判定対象とした上記判定処理が省略されるようにしてもよい。こうすれば、ツリーTの各ノードを幅優先探索アルゴリズムに従った探索順序で判定対象とする場合も、共通部分グラフCSG(閉共通部分グラフCCSG)を検出するために不必要な処理の実行が抑制される。
[6−2.変形例2]
また、共通部分グラフCSGを検出するための処理は上記に説明したものに限られない。例えば、まず、N種以上のアイテムiを含む基準アイテム集合Iが決定されるようにしてもよい。その後、各頂点vに関連付けられたアイテム集合I(v)が該基準アイテム集合Iを含むような共通部分グラフCSGが検出されるようにしてもよい。この場合、制御部8は、図10のS203の処理において、アイテム集合Iが共通アイテム集合Iの部分集合であるか否かが判定されるようにすればよい。
[6−3.変形例3]
例えば、図5に示す頂点データにおけるアイテムiは、ユーザが利用している又は過去に利用したことのあるサービスに対応するようにしてもよい。この場合、頂点データは各ユーザが利用している又は過去に利用したことのあるサービスを示すデータになる。このようにすれば、直接的又は間接的に交友関係にあり、かつ、共通のサービスを利用している又は利用したことのあるユーザ群を検出することが可能になる。そして、この検出結果を用いることによって、例えば、サービスの広告宣伝を効率的に行えるようになる。
[6−4.変形例4]
例えば、グラフデータは、複数の文献に対応する複数の頂点vを含み、該複数の文献の関係(例えば引用関係)を示すグラフのデータであってもよい。このグラフでは、例えば、第1の文献が第2の文献を引用している場合、第1の文献に対応する頂点vと第2の文献に対応する頂点vが辺e12によって連結される。また、この場合、頂点データにおけるアイテムiは、例えば、文献に関連するキーワードに対応するようにしてもよい。この場合、頂点データは各文献のキーワードを示すデータになる。この変形例1によれば、上記のグラフデータ及び頂点データに基づいて、例えば、直接的又は間接的に引用関係にあり、かつ、共通のキーワードが設定された文献群を検出できるようになる。なお例えば、アイテムiは文献の著者に対応させるようにしてもよい。
[6−5.その他]
また、グラフGは、遺伝子、タンパク質、ユーザ、文献以外の関係を示すグラフであってもよい。すなわち、グラフGに含まれる頂点vは、遺伝子、タンパク質、ユーザ、文献以外に対応する頂点であってもよい。また、頂点データにおいて頂点vに関連づけられる情報は、頂点間の接続関係を示す情報以外の情報であれば、ユーザに関する情報、キーワード、医薬に限らず、どのような情報であってもよい。
また、以上では、グラフGが無向グラフである場合について述べたが、グラフGは有向グラフであってもよい。この場合、図7のツリーTは、頂点間の有向関係を考慮して生成される。例えば、制御部8は、図10のS201のステップにおいて、頂点集合VPに含まれる頂点vpに隣接する頂点vのうち、頂点vpから伸びる辺に接続された頂点vの集合を、隣接頂点集合Vとして取得するようにする。
[7.実験]
なお、本実施形態に係る方法Aと他の方法Bとのそれぞれで、「M」本以上の辺を含む閉共通部分グラフCCSGの集合Cを検出する実験を試みたので、その実験内容及び実験結果について説明する。
ここでは、以下の条件を全て満足するような閉共通部分グラフCCSGの集合Cを検出することとする。
・2種以上の共通のアイテムが、集合Cのどの閉共通部分グラフCCSGにも含まれる。(各閉共通部分グラフCCSGの共通アイテム集合の積集合には2種以上のアイテムが含まれる)。
・集合Cに含まれるすべての閉共通部分グラフCCSGは、集合Cに含まれる他のどの閉共通部分グラフCCSGとも頂点を共通しない。
また、実験に用いたマシン環境を以下に示すとおりである。
・CPU:3.2GB AMD Opteron(登録商標)
・メモリ容量:1GB
・OS:Linux(kernel2.6)
(方法A)
フェーズA1:図9乃至図11に示す処理を行って、閉共通部分グラフCCSGを特定する。
フェーズA2:フェーズA1で特定した閉共通部分グラフCCSGのうちから「M」本以上の辺を含む閉共通部分グラフCCSGを特定する。
フェーズA3:フェーズA2で特定した閉共通部分グラフCCSGの共通アイテム集合に基づき集合Cを検出する。
(方法B)
フェーズB1:アプリオリ法により2種以上のアイテムを含む頻出アイテム集合を検出する。ここで、頻出アイテム集合とは、頻出アイテム集合を含むアイテム集合に関連づけられた頂点が「F」個以上存在するアイテム集合である。なお、本実験では、頻出アイテム集合を検出するためにフリーのデータマイニングソフト「Weka」を用いた。
フェーズB2:頻出アイテム集合ごとに、該頻出アイテム集合を含むアイテム集合に関連づけられた頂点からなる、辺が「M」本以上の閉共通部分グラフCCSGを特定することにより、集合Cを検出する。
なお、方法Bにおいて「F」の値を「2」に設定し且つ「M」の値を「1」に設定した場合、方法AのフェーズA1が行われた場合に特定される閉共通部分グラフCCSGと同じ閉共通部分グラフCCSGが特定される。
まず最初の実験では、「F」の値を「2」に設定し且つ「M」の値を「10」に設定した上で、実験対象グラフから集合Cを検出した。なお、実験対象グラフとしては、頂点が「文献」に対応し、辺が「文献間の引用関係」に対応し、かつ、頂点に関連づけられたアイテムが「文献の著者」に対応するようなグラフを用いた。なお、著者の総数は16638人である。また、実験対象グラフの頂点、辺の数は以下のとおりである。
・頂点の数:22178個
・辺の数:112304本
方法Aでは、7.9秒で集合Cの検出が完了した。一方、方法Bでは、実験開始から101秒経過したところでメモリ不足となり、その結果、処理が強制的に停止された。これは、フェーズB1において頻出アイテム集合を検出するために大量の頻出アイテム集合候補が生成されるためであると考えられる。
また次の実験では、「F」の値を「4」に設定し且つ「M」の値を「7」に設定した上で、実験対象グラフから集合Cを検出した。なお、実験対象グラフとしては、頂点が「遺伝子」に対応し、辺が「遺伝子間の相互作用関係」に対応し、かつ、頂点に関連づけられたアイテムが「遺伝子の発現を変化させる要因」に対応するようなグラフを用いた。なお、上記要因の総数は173種である。また、実験対象グラフの頂点、辺の数は以下のとおりである。
・頂点の数:6152個
・辺の数:3318本
方法Aでは、35.9秒で集合Cの検出が完了した。一方、方法Bでは、実験開始から17302秒経過したところでメモリ不足となり、その結果、処理が強制的に停止された。先述の実験と同様、これは、フェーズB1において頻出アイテム集合を検出するために大量の頻出アイテム集合候補が生成されるためであると考えられる。
上記の実験結果より、本実施形態に係る方法Aでは、方法Bに比べて、処理に必要なメモリの量が軽減され、処理時間も短縮される。

Claims (11)

  1. 複数の頂点と1又は複数のエッジとを含むグラフを示すグラフデータを記憶しているデータベースから前記グラフデータを読み出して取得するグラフデータ取得手段と、
    前記頂点に少なくとも一種の要素を含む要素集合を関連づけてなる頂点データを記憶しているデータベースから前記頂点データを読み出して取得する頂点データ取得手段と、
    前記グラフデータ取得手段により取得された前記グラフデータと、前記頂点データ取得手段により取得された前記頂点データと、に基づいて、前記グラフの部分グラフであって、該部分グラフの各頂点に関連付けられた要素集合の積集合がN(N≧1)種以上の要素を含む部分グラフを検出する部分グラフ検出手段と、
    を含み、
    前記部分グラフ検出手段は、
    前記グラフデータに基づいて、前記グラフの部分グラフを順次探索する探索手段と、
    前記頂点データに基づいて、前記探索手段により探索された部分グラフの各頂点に関連づけられた要素集合の積集合がN種以上の要素を含むか否かを判定する判定手段と、
    を含むことを特徴とする部分グラフ検出装置。
  2. 前記探索手段は、
    各ノードが前記グラフの頂点の少なくとも一つを含む頂点集合を示す探索木であって、かつ、親ノードが示す頂点集合に当該頂点集合のうちの末端頂点に隣接する一つの頂点を新たな末端頂点として追加してなる頂点集合、を当該親ノードの子ノードとして有する探索木、の各ノードが示す頂点集合を、深さ優先探索アルゴリズムに従った探索順序で前記グラフデータに基づき探索し、
    前記判定手段は、
    前記探索手段により複数の頂点を含む頂点集合が探索された場合に、前記探索手段により探索された該頂点集合の各頂点に関連づけられた要素集合の積集合がN種以上の要素を含むか否かを、前記頂点データに基づいて判定し、
    前記探索手段は、
    前記探索木のうちの第1のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合が、前記第1のノードが示す頂点集合のうちの末端頂点と同じ頂点を末端頂点とする頂点集合を示すノードであって、かつ、前記第1のノードよりも探索順序が前のノードである第2のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合に含まれる場合、前記第1のノードの子孫のノードが示す頂点集合を探索しないこと、
    を特徴とする請求項に記載の部分グラフ検出装置。
  3. 前記部分グラフ検出手段は、
    前記探索手段により複数の頂点を含む頂点集合が探索された場合に、前記探索手段により探索された頂点集合の各頂点に関連づけられた要素集合の積集合を、基準集合として、探索された当該頂点集合のうちの末端頂点に関連づけて基準集合記憶手段に記憶させる手段をさらに含み、
    前記探索手段は、
    前記第1のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合が、前記第1のノードが示す頂点集合のうちの末端頂点に関連づけて前記基準集合記憶手段に記憶される基準集合に含まれる場合、前記第1のノードの子孫のノードが示す頂点集合を探索しないこと、
    を特徴とする請求項に記載の部分グラフ検出装置。
  4. 前記探索手段は、
    各ノードが前記グラフの頂点の少なくとも一つを含む頂点集合を示す探索木であって、かつ、親ノードが示す頂点集合に当該頂点集合のうちの末端頂点に隣接する一つの頂点を新たな末端頂点として追加してなる頂点集合を当該親ノードの子ノードとして有する探索木、の各ノードが示す頂点集合を、深さ優先又は幅優先探索アルゴリズムに従った探索順序で前記グラフデータに基づき探索し、
    前記判定手段は、
    前記探索手段により複数の頂点を含む頂点集合が探索された場合に、前記探索手段により探索された該頂点集合の各頂点に関連づけられた要素集合の積集合がN種以上の要素を含むか否かを、前記頂点データに基づいて判定し、
    前記探索手段は、
    前記探索木のうちの第1のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合が、前記第1のノードが示す頂点集合のうちの末端頂点と同じ頂点を末端頂点とする頂点集合を示すノードであって、かつ、前記第1のノードが示す頂点集合を含む頂点集合を示す第2のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合に含まれる場合、前記第1のノードの子孫のノードが示す頂点集合を探索しないこと、
    を特徴とする請求項に記載の部分グラフ検出装置。
  5. 前記探索手段は、
    各ノードが前記グラフの頂点の少なくとも一つを含む頂点集合を示す探索木であって、かつ、親ノードが示す頂点集合に当該頂点集合のうちの末端頂点に隣接する一つの頂点を新たな末端頂点として追加してなる頂点集合を当該親ノードの子ノードとして有する探索木、の各ノードが示す頂点集合を、深さ優先探索アルゴリズムに従った探索順序で前記グラフデータに基づき探索し、
    前記判定手段は、
    前記探索手段により複数の頂点を含む頂点集合が探索された場合に、前記探索手段により探索された該頂点集合の各頂点に関連づけられた要素集合の積集合がN種以上の要素を含むか否かを、前記頂点データに基づいて判定し、
    前記探索手段は、
    前記探索木のうちの第3のノードが示す頂点集合が一つの頂点のみを含み、かつ、当該頂点に関連づけられた要素集合が、当該頂点を末端頂点とする頂点集合を示すノードであって、かつ、前記第3のノードよりも探索順序が前のノードである第4のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合に含まれる場合、前記第3のノードの子孫のノードが示す頂点集合を探索しないこと、
    を特徴とする請求項に記載の部分グラフ検出装置。
  6. 前記部分グラフ検出手段は、
    前記探索手段により複数の頂点を含む頂点集合が探索された場合に、前記探索手段により探索された頂点集合の各頂点に関連づけられた要素集合の積集合を、基準集合として、探索された当該頂点集合のうちの末端頂点に関連づけて基準集合記憶手段に記憶させる手段をさらに含み、
    前記探索手段は、
    前記第3のノードが示す頂点集合が一つの頂点のみを含み、かつ、当該頂点に関連づけられた要素集合が、当該頂点に関連づけて前記基準集合記憶手段に記憶される基準集合に含まれる場合に、前記第3のノードの子孫のノードが示す頂点集合を探索しないこと、
    を特徴とする請求項に記載の部分グラフ検出装置。
  7. 前記探索手段は、
    各ノードが前記グラフの頂点の少なくとも一つを含む頂点集合を示す探索木であって、かつ、親ノードが示す頂点集合に当該頂点集合のうちの末端頂点に隣接する一つの頂点を新たな末端頂点として追加してなる頂点集合を当該親ノードの子ノードとして有する探索木、の各ノードが示す頂点集合を、深さ優先又は幅優先探索アルゴリズムに従った探索順序で前記グラフデータに基づき探索し、
    前記判定手段は、
    前記探索手段により複数の頂点を含む頂点集合が探索された場合に、前記探索手段により探索された該頂点集合の各頂点に関連づけられた要素集合の積集合がN種以上の要素を含むか否かを、前記頂点データに基づいて判定し、
    前記探索手段は、
    前記探索木のうちの第3のノードが示す頂点集合が一つの頂点のみを含み、当該頂点に関連づけられた要素集合が、当該頂点を末端頂点とする頂点集合を示す第4のノードが示す頂点集合の各頂点に関連づけられた要素集合の積集合に含まれる場合、前記第3のノードの子孫のノードが示す頂点集合を探索しないこと、
    を特徴とする請求項に記載の部分グラフ検出装置。
  8. 前記探索手段は、
    各ノードが前記グラフの頂点の少なくとも一つを含む頂点集合を示す探索木であって、かつ、親ノードが示す頂点集合に当該頂点集合の末端頂点に隣接する一つの頂点を新たな末端頂点として追加してなる頂点集合を当該親ノードの子ノードとして有する探索木、の各ノードが示す頂点集合を、深さ優先探索又は幅優先探索アルゴリズムに従った探索順序で前記グラフデータに基づき探索し、
    前記判定手段は、
    前記探索手段により複数の頂点を含む頂点集合が探索された場合に、前記探索手段により探索された該頂点集合の各頂点に関連づけられた要素集合の積集合がN種以上の要素を含むか否かを、前記頂点データに基づいて判定し、
    前記探索手段は、
    前記探索手段が探索した頂点集合の各頂点に関連づけられた要素集合の積集合がN種以上の要素を含んでいない場合、探索した当該頂点集合を示すノードの子孫のノードが示す頂点集合を探索しないこと、
    を特徴とする請求項に記載の部分グラフ検出装置。
  9. グラフデータ取得手段が、複数の頂点と1又は複数のエッジとを含むグラフを示すグラフデータを記憶しているデータベースから前記グラフデータを読み出して取得するグラフデータ取得ステップと、
    頂点データ取得手段が、前記頂点に少なくとも一種の要素を含む要素集合を関連づけてなる頂点データを記憶しているデータベースから前記頂点データを読み出して取得する頂点データ取得ステップと、
    部分グラフ検出手段が、前記グラフデータ取得手段により取得された前記グラフデータと、前記頂点データ取得手段により取得された前記頂点データと、に基づいて、前記グラフの部分グラフであって、該部分グラフの各頂点に関連付けられた要素集合の積集合がN(N≧1)種以上の要素を含む部分グラフを検出する部分グラフ検出ステップと、
    を含み、
    前記部分グラフ検出ステップは、
    前記部分グラフ検出手段が、前記グラフデータに基づいて、前記グラフの部分グラフを順次探索する探索ステップと、
    前記部分グラフ検出手段が、前記頂点データに基づいて、前記探索ステップで探索された部分グラフの各頂点に関連づけられた要素集合の積集合がN種以上の要素を含むか否かを判定する判定ステップと、
    を含むことを特徴とする部分グラフ検出方法。
  10. 複数の頂点と1又は複数のエッジとを含むグラフを示すグラフデータを記憶しているデータベースから前記グラフデータを読み出して取得するグラフデータ取得手段、
    前記頂点に少なくとも一種の要素を含む要素集合を関連づけてなる頂点データを記憶しているデータベースから前記頂点データを読み出して取得する頂点データ取得手段、
    前記グラフデータ取得手段により取得された前記グラフデータに基づいて、前記グラフの部分グラフを順次探索する探索手段、
    前記頂点データ取得手段により取得された前記頂点データに基づいて、前記探索手段により探索された部分グラフの各頂点に関連づけられた要素集合の積集合がN(N≧1)種以上の要素を含むか否かを判定する判定手段、
    としてコンピュータを機能させるプログラム。
  11. 複数の頂点と1又は複数のエッジとを含むグラフを示すグラフデータを記憶しているデータベースから前記グラフデータを読み出して取得するグラフデータ取得手段、
    前記頂点に少なくとも一種の要素を含む要素集合を関連づけてなる頂点データを記憶しているデータベースから前記頂点データを読み出して取得する頂点データ取得手段、
    前記グラフデータ取得手段により取得された前記グラフデータに基づいて、前記グラフの部分グラフを順次探索する探索手段、
    前記頂点データ取得手段により取得された前記頂点データに基づいて、前記探索手段により探索された部分グラフの各頂点に関連づけられた要素集合の積集合がN(N≧1)種以上の要素を含むか否かを判定する判定手段、
    としてコンピュータを機能させるプログラムを記録したコンピュータ読み取り可能な情報記憶媒体。
JP2010532936A 2008-10-07 2009-10-07 部分グラフ検出装置、部分グラフ検出方法、プログラム、データのデータ構造、及び情報記憶媒体 Expired - Fee Related JP5605571B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010532936A JP5605571B2 (ja) 2008-10-07 2009-10-07 部分グラフ検出装置、部分グラフ検出方法、プログラム、データのデータ構造、及び情報記憶媒体

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008260827 2008-10-07
JP2008260827 2008-10-07
PCT/JP2009/067476 WO2010041678A1 (ja) 2008-10-07 2009-10-07 部分グラフ検出装置、部分グラフ検出方法、プログラム、データのデータ構造、及び情報記憶媒体
JP2010532936A JP5605571B2 (ja) 2008-10-07 2009-10-07 部分グラフ検出装置、部分グラフ検出方法、プログラム、データのデータ構造、及び情報記憶媒体

Publications (2)

Publication Number Publication Date
JPWO2010041678A1 JPWO2010041678A1 (ja) 2012-03-08
JP5605571B2 true JP5605571B2 (ja) 2014-10-15

Family

ID=42100628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010532936A Expired - Fee Related JP5605571B2 (ja) 2008-10-07 2009-10-07 部分グラフ検出装置、部分グラフ検出方法、プログラム、データのデータ構造、及び情報記憶媒体

Country Status (3)

Country Link
US (1) US8831271B2 (ja)
JP (1) JP5605571B2 (ja)
WO (1) WO2010041678A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2013010977A (es) 2011-03-31 2013-10-30 Procter & Gamble Sistema, modelos y metodos para identificar y evaluar agentes dermoactivos eficaces para tratar la caspa/dermatitis seborreica.
US8719299B2 (en) * 2011-12-02 2014-05-06 Sap Ag Systems and methods for extraction of concepts for reuse-based schema matching
WO2013184908A2 (en) 2012-06-06 2013-12-12 The Procter & Gamble Company Systems and methods for identifying cosmetic agents for hair/scalp care compositions
JP6020031B2 (ja) 2012-10-19 2016-11-02 富士通株式会社 抽出プログラム、抽出装置及び抽出方法
JP6003561B2 (ja) 2012-11-15 2016-10-05 富士通株式会社 抽出プログラム、抽出装置及び抽出方法
JP5962471B2 (ja) 2012-11-30 2016-08-03 富士通株式会社 抽出プログラム、抽出装置及び抽出方法
US9224239B2 (en) 2013-03-14 2015-12-29 Dreamworks Animation Llc Look-based selection for rendering a computer-generated animation
US9171401B2 (en) 2013-03-14 2015-10-27 Dreamworks Animation Llc Conservative partitioning for rendering a computer-generated animation
US9659398B2 (en) 2013-03-15 2017-05-23 Dreamworks Animation Llc Multiple visual representations of lighting effects in a computer animation scene
US9626787B2 (en) * 2013-03-15 2017-04-18 Dreamworks Animation Llc For node in render setup graph
US9589382B2 (en) 2013-03-15 2017-03-07 Dreamworks Animation Llc Render setup graph
US9208597B2 (en) 2013-03-15 2015-12-08 Dreamworks Animation Llc Generalized instancing for three-dimensional scene data
US9230294B2 (en) 2013-03-15 2016-01-05 Dreamworks Animation Llc Preserving and reusing intermediate data
US9811936B2 (en) 2013-03-15 2017-11-07 Dreamworks Animation L.L.C. Level-based data sharing for digital content production
US9218785B2 (en) 2013-03-15 2015-12-22 Dreamworks Animation Llc Lighting correction filters
US9514562B2 (en) 2013-03-15 2016-12-06 Dreamworks Animation Llc Procedural partitioning of a scene
CN103198522B (zh) * 2013-04-23 2015-08-12 清华大学 三维场景模型生成方法
CN103995804B (zh) * 2013-05-20 2017-02-01 中国科学院计算技术研究所 基于多模态信息融合与图聚类的跨媒体话题检测方法、装置
US9934325B2 (en) * 2014-10-20 2018-04-03 Korean Institute Of Science And Technology Information Method and apparatus for distributing graph data in distributed computing environment
US11138772B2 (en) * 2016-06-21 2021-10-05 National Institute For Materials Science Search system, search method, and material property database management apparatus
JP6611679B2 (ja) * 2016-06-30 2019-11-27 株式会社日立製作所 データ生成方法及び計算機システム
JP7169685B2 (ja) * 2018-08-01 2022-11-11 国立研究開発法人物質・材料研究機構 探索システム及び探索方法
CN110704360B (zh) * 2019-09-29 2022-03-18 华中科技大学 一种基于异构fpga数据流的图计算优化方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000123041A (ja) * 1998-10-19 2000-04-28 Nippon Telegr & Teleph Corp <Ntt> 類似度判定方法及び文書検索装置及び文書分類装置及び文書検索プログラムを格納した記憶媒体及び文書分類プログラムを格納した記憶媒体
JP2002091991A (ja) * 2000-09-20 2002-03-29 Intec Web & Genome Informatics Corp 遺伝子ネットワーク研究支援システム及び方法
JP2004220227A (ja) * 2003-01-14 2004-08-05 Nec Corp 遺伝子ネットワーク経路探索装置及び方法並びにプログラム
JP2004272627A (ja) * 2003-03-10 2004-09-30 Just Syst Corp 頻出部分グラフ抽出装置、頻出部分グラフ抽出方法、ならびに、プログラム
US20070100680A1 (en) * 2005-10-21 2007-05-03 Shailesh Kumar Method and apparatus for retail data mining using pair-wise co-occurrence consistency

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5123057A (en) * 1989-07-28 1992-06-16 Massachusetts Institute Of Technology Model based pattern recognition
FR2675606B1 (fr) * 1991-04-22 1993-07-16 France Telecom Procede de decompilation pour la realisation de graphes au moyen d'un ordinateur.
US5450535A (en) * 1993-09-24 1995-09-12 At&T Corp. Graphs employing clusters
US5905507A (en) * 1996-01-16 1999-05-18 International Business Machines Corporation Compression of geometric models using spanning trees
US6728205B1 (en) * 1997-02-19 2004-04-27 Massachusetts Institute Of Technology Method and apparatus for automatic protection switching
US7176921B2 (en) * 2000-10-20 2007-02-13 Sony Corporation Graphical rewriting system for multimedia descriptions
US7102641B2 (en) * 2004-03-29 2006-09-05 International Business Machines Corporation Method, data processing system, and computer program product for determining inversion edges for a cyclic compound directed graph
US7614037B2 (en) * 2004-05-21 2009-11-03 Microsoft Corporation Method and system for graph analysis and synchronization
US20070244747A1 (en) 2006-04-14 2007-10-18 Nikovski Daniel N Method and system for recommending products to consumers by induction of decision trees
US7742906B2 (en) * 2007-03-06 2010-06-22 Hewlett-Packard Development Company, L.P. Balancing collections of vertices in a network
US8249231B2 (en) * 2008-01-28 2012-08-21 International Business Machines Corporation System and computer program product for predicting churners in a telecommunications network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000123041A (ja) * 1998-10-19 2000-04-28 Nippon Telegr & Teleph Corp <Ntt> 類似度判定方法及び文書検索装置及び文書分類装置及び文書検索プログラムを格納した記憶媒体及び文書分類プログラムを格納した記憶媒体
JP2002091991A (ja) * 2000-09-20 2002-03-29 Intec Web & Genome Informatics Corp 遺伝子ネットワーク研究支援システム及び方法
JP2004220227A (ja) * 2003-01-14 2004-08-05 Nec Corp 遺伝子ネットワーク経路探索装置及び方法並びにプログラム
JP2004272627A (ja) * 2003-03-10 2004-09-30 Just Syst Corp 頻出部分グラフ抽出装置、頻出部分グラフ抽出方法、ならびに、プログラム
US20070100680A1 (en) * 2005-10-21 2007-05-03 Shailesh Kumar Method and apparatus for retail data mining using pair-wise co-occurrence consistency

Also Published As

Publication number Publication date
US20110182479A1 (en) 2011-07-28
JPWO2010041678A1 (ja) 2012-03-08
WO2010041678A1 (ja) 2010-04-15
US8831271B2 (en) 2014-09-09

Similar Documents

Publication Publication Date Title
JP5605571B2 (ja) 部分グラフ検出装置、部分グラフ検出方法、プログラム、データのデータ構造、及び情報記憶媒体
KR101793222B1 (ko) 어플리케이션 검색들을 가능하게 하기 위해 사용되는 검색 인덱스의 업데이트
US9311413B1 (en) Faceted application search
CN104765874B (zh) 用于检测点击作弊的方法及装置
US8290923B2 (en) Performing large scale structured search allowing partial schema changes without system downtime
Lin et al. A two-phase approach to mine short-period high-utility itemsets in transactional databases
KR20100044669A (ko) 이미지 매칭에 기초한 상품 정보 제공 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
Lai et al. pKNOT v. 2: the protein KNOT web server
CN114942971B (zh) 一种结构化数据的抽取方法及装置
Bhattacharya et al. High utility itemset mining
US9799065B1 (en) Associating items based at least in part on physical location information
Kiziltan et al. Constraint detection in natural language problem descriptions
JP2020514681A (ja) 物質検出方法、装置、電子機器、およびコンピュータ可読記憶媒体
US8577814B1 (en) System and method for genetic creation of a rule set for duplicate detection
Molka et al. Conformance checking for BPMN-based process models
Yang et al. Delta: indexing and querying multi-labeled graphs
US10417687B1 (en) Generating modified query to identify similar items in a data store
JP2015203961A (ja) 文書抽出システム
US11170039B2 (en) Search system, search criteria setting device, control method for search criteria setting device, program, and information storage medium
US10885453B2 (en) Calculation device, calculation method, and non-transitory computer-readable recording medium
CN103914508B (zh) 文件管理装置以及文件管理方法
KR102299525B1 (ko) 제품 평가 마이닝 방법 및 이를 수행하는 장치
TWI581172B (zh) Input device, form input method, recording medium
Cohen Data management for social networking
JP6664580B2 (ja) 算出装置、算出方法および算出プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140430

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140729

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140812

R150 Certificate of patent or registration of utility model

Ref document number: 5605571

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees