特許第6624062号(P6624062)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許6624062情報処理装置、情報処理方法、及び、プログラム
<>
  • 特許6624062-情報処理装置、情報処理方法、及び、プログラム 図000002
  • 特許6624062-情報処理装置、情報処理方法、及び、プログラム 図000003
  • 特許6624062-情報処理装置、情報処理方法、及び、プログラム 図000004
  • 特許6624062-情報処理装置、情報処理方法、及び、プログラム 図000005
  • 特許6624062-情報処理装置、情報処理方法、及び、プログラム 図000006
  • 特許6624062-情報処理装置、情報処理方法、及び、プログラム 図000007
  • 特許6624062-情報処理装置、情報処理方法、及び、プログラム 図000008
  • 特許6624062-情報処理装置、情報処理方法、及び、プログラム 図000009
  • 特許6624062-情報処理装置、情報処理方法、及び、プログラム 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6624062
(24)【登録日】2019年12月6日
(45)【発行日】2019年12月25日
(54)【発明の名称】情報処理装置、情報処理方法、及び、プログラム
(51)【国際特許分類】
   G06F 16/28 20190101AFI20191216BHJP
   G06F 16/22 20190101ALI20191216BHJP
【FI】
   G06F16/28
   G06F16/22
【請求項の数】7
【全頁数】20
(21)【出願番号】特願2016-553969(P2016-553969)
(86)(22)【出願日】2015年10月9日
(86)【国際出願番号】JP2015005148
(87)【国際公開番号】WO2016059787
(87)【国際公開日】20160421
【審査請求日】2018年9月14日
(31)【優先権主張番号】特願2014-209936(P2014-209936)
(32)【優先日】2014年10月14日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100124154
【弁理士】
【氏名又は名称】下坂 直樹
(72)【発明者】
【氏名】西村 祥治
【審査官】 甲斐 哲雄
(56)【参考文献】
【文献】 特開2010−245983(JP,A)
【文献】 米国特許出願公開第2010/0106713(US,A1)
【文献】 米国特許出願公開第2010/0153923(US,A1)
【文献】 劉 健全,類似度の階層関係に基づく木構造索引を用いた効率的な類似検索,第5回データ工学と情報マネジメントに関するフォーラム (第11回日本データベース学会年次大会) [online],日本,2013年 5月31日,pp.1-8
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00−16/958
(57)【特許請求の範囲】
【請求項1】
データを含むノードを要素とした木構造のデータを探索する探索手段と、
前記探索手段の探索対象のノードに含まれるデータとそのデータの下位のノードとの間のエッジに関連付けられた類似度と、所定の閾値とを基に、前記データと前記下位のノードとを用いてグループ化するか否かを判定するグループ化判定手段と、
前記判定の結果としてグループ化と判定された前記データと前記下位のノードとをグループ化して、グループを作成するサブツリーグループ化手段と、
前記探索対象のノードがリーフノードの場合に、前記探索対象のリーフノードをグループ化して、1つ又は複数のグループを作成するリーフノードグループ化手段と、
前記探索手段における探索が上位のノードへバックトラックされた場合に、バックトラック先のノードに含まれるデータのうち前段の探索対象であったノードの上位のデータを、そのデータの下位のノードのいずれかのグループに併合するデータ併合手段と、
前記グループの少なくとも一部のグループを併合するグループ併合手段と
を含む情報処理装置。
【請求項2】
前記木構造のデータに関連付けられる類似度を保持する類似度手段と、
前記類似度の範囲が前記木構造の下位に行くほど大きな値となるように構築された木構造のデータを保持する木構造手段と、
前記グループ化判定手段の判定に用いられる前記閾値を受信するグループ化閾値受信手段と、
中間結果である前記作成又は併合されたグループを保持する中間結果保持手段と、
グループ化結果として前記中間結果保持手段が保持するグループを出力するグループ化結果出力手段と
を含む請求項1に記載の情報処理装置。
【請求項3】
前記中間結果保持手段が、
スタック構造を用いて前記中間結果を保持する
請求項2に記載の情報処理装置。
【請求項4】
前記データ併合手段又はグループ併合手段が、
前記スタック構造に積まれた前記中間結果を用いて処理する
請求項3に記載の情報処理装置。
【請求項5】
前記データ併合手段が、
前記上位のデータが帰属するグループがない場合に、前記上位のデータを用いてグループを作成する
請求項1ないし4のいずれか1項に記載の情報処理装置。
【請求項6】
データを含むノードを要素とした木構造のデータを探索し、
探索対象のノードに含まれるデータとそのデータの下位のノードとの間のエッジに関連付けられた類似度と、所定の閾値とを基に、前記データと前記下位のノードとを用いてグループ化するか否かを判定し、
前記判定の結果としてグループ化と判定された前記データと前記下位のノードとをグループ化して、グループを作成し、
前記探索対象のノードがリーフノードの場合に、前記探索対象のリーフノードをグループ化して、1つ又は複数のグループを作成し、
前記探索が上位のノードへバックトラックされた場合に、バックトラック先のノードに含まれるデータのうち前段の探索対象であったノードの上位のデータを、そのデータの下位のノードのいずれかのグループに併合し、
前記グループの少なくとも一部のグループを併合する
情報処理方法。
【請求項7】
データを含むノードを要素とした木構造のデータを探索する処理と、
探索対象のノードに含まれるデータとそのデータの下位のノードとの間のエッジに関連付けられた類似度と、所定の閾値とを基に、前記データと前記下位のノードとを用いてグループ化するか否かを判定する処理と、
前記判定の結果としてグループ化と判定された前記データと前記下位のノードとをグループ化して、グループを作成する処理と、
前記探索対象のノードがリーフノードの場合に、前記探索対象のリーフノードをグループ化して、1つ又は複数のグループを作成する処理と、
前記探索が上位のノードへバックトラックされた場合に、バックトラック先のノードに含まれるデータのうち前段の探索対象であったノードの上位のデータを、そのデータの下位のノードのいずれかのグループに併合する処理と、
前記グループの少なくとも一部のグループを併合する処理と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報の検索に関し、特に、類似するデータをグループ化する情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
画像又は文書といったデータは、データ同士の一致を基にした評価よりも、それらのデータが持つ特徴の類似度を基に評価される場合が多い。また、このようなデータを分類又は要約する場合、データ間の類似度が、所定の値以上となるデータをまとめる処理が、有効である。このような処理は、一般的に、類似度に基づくグループ化と呼ばれている(例えば、特許文献1を参照)。
【0003】
特許文献1に記載されている情報検索装置は、ユーザが入力した類似検索(ユーザからの類似検索)の結果を、さらに類似するグループにグループ化する機能を提供する。特許文献1において情報検索装置は、ユーザから受信した類似検索結果をグループ化する際、ユーザから受信した類似検索の結果について、さらに類似検索(検索結果に対する類似検索)を実行する。そして、情報検索装置は、検索結果に関して、所定の閾値以上の類似度を有するデータを、グループにまとめる。情報検索装置は、このような動作を基に、グループ化を実行する。この時、情報検索装置は、ユーザからの類似検索結果の中で、類似度が高い検索結果から類似検索を実行する。そして、情報検索装置は、類似度が所定の閾値以上になる検索結果をグループ化する。ただし、情報検索装置は、既に類似検索が実行されている検索結果について、グループ化を実行しない。
【0004】
また、類似検索を高速化するためのデータ構造が、提案されている(例えば、非特許文献1を参照)。非特許文献1に記載されている技術は、データ間の類似度の階層性を考慮して、データの木構造(以下、単に「木構造」と呼ぶ)を構築する。非特許文献1の技術は、このような木構造を用いて、類似検索の高速化を実現する。非特許文献1に記載されている木構造は、おおむね、次のように構成される。すなわち、木構造を構成するノードは、データを保存する。そして、あるノードが、ノードの容量を超えるデータを含む場合、非特許文献1に記載されている技術は、そのノードに含まれるデータの中から代表となるデータ(代表データ)を選び、代表データをそのノードの親ノードに配置する。それとともに、非特許文献1に記載されている技術は、親ノードとそのノードとの間のエッジに、代表データとそのノードにあるデータとの類似度の上限を関連付ける。そして、非特許文献1に記載されている技術は、木構造全体として、エッジに関連付けられた類似度の値が、根ノード(ルートノード)から葉ノード(リーフノード)に向かうに従って増加するように、木構造をメンテナンスする。非特許文献1に記載されている技術は、木構造として、類似度の階層性に着目したデータ構造を与える。ただし、非特許文献1は、グループ化の方法を開示していない。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2000−112988号公報
【非特許文献】
【0006】
【非特許文献1】劉 健全、西村 祥治、荒木 拓也著、「類似度の階層関係に基づく木構造索引を用いた効率的な類似検索」、第5回データ工学と情報マネジメントに関するフォーラム(第11回日本データベース学会年次大会)、DEIM 2013、セッションA9:問い合せ処理、March 05, 2013
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1は、ユーザからの類似検索結果に対するグループ化に関する技術を開示している。つまり、特許文献1に記載されている技術は、一般的なデータを前提としていない。したがって、一般的なデータにおけるグループ化を実現することはできない。例えば、特許文献1に記載されている技術を使用して、「画像データベースに対して、そのデータベースの中にどのような種類の画像があるかを、その類似度に基づいてグループ化せよ」というようなクエリ(問い合わせ)を実行することはできない。このように、特許文献1は、グループ化の対象となるデータに制限があるという問題点があった。
【0008】
また、非特許文献1は、グループ化の方法を開示していない。
【0009】
そのため、特許文献1に非特許文献1を組み合わせても、グループ化の対象となるデータにおける制限を解決できない。
【0010】
さらに、特許文献1に記載されている技術は、類似するデータをグループ化するための演算に、大きな時間が掛かる。その理由は、特許文献1に記載されている技術は、各検索結果に対して類似検索を実行するので、グループ化の演算において、O(N)オーダーの時間が掛かるからである。ここで、「O()」は、値の変動のおおよその評価を与える記法であり、一般的に、「ランダウの記号」又は「O−記号」と呼ばれるものである。また、「N」は、データ件数を示す。このように、特許文献1には、処理に時間が掛かるという問題点があった。
【0011】
本発明の目的は、上記の問題点を解決し、処理対象のデータを制限しなくても、演算時間を削減して、データ類似度に基づくグループ化を実現できる情報処理装置、情報処理方法、及び、プログラムを提供することにある。
【課題を解決するための手段】
【0012】
本発明の一形態における情報処理装置は、データを含むノードを要素とした木構造のデータを探索する探索手段と、探索手段の探索対象のノードに含まれるデータとそのデータの下位のノードとの間のエッジに関連付けられた類似度と、所定の閾値とを基に、データと下位のノードとを用いてグループ化するか否かを判定するグループ化判定手段と、判定の結果としてグループ化と判定されたデータと下位のノードとをグループ化して、グループを作成するサブツリーグループ化手段と、探索対象のノードがリーフノードの場合に、検索対象のリーフノードをグループ化して、1つ又は複数のグループを作成するリーフノードグループ化手段と、探索手段における探索が上位のノードへのバックトラックにおいて戻ったデータが帰属先のグループが決まっていない場合に、そのデータをそのデータの下位のノードのいずれかのグループに併合するデータ併合手段と、グループの少なくとも一部のグループを併合するグループ併合手段とを含む。
【0013】
本発明の一形態におけるデータ処理方法は、データを含むノードを要素とした木構造のデータを探索し、探索対象のノードに含まれるデータとそのデータの下位のノードとの間のエッジに関連付けられた類似度と、所定の閾値とを基に、データと下位のノードとを用いてグループ化するか否かを判定し、判定の結果としてグループ化と判定されたデータと下位のノードとをグループ化して、グループを作成し、探索対象のノードがリーフノードの場合に、検索対象のリーフノードをグループ化して、1つ又は複数のグループを作成し、探索が上位のノードへのバックトラックにおいて戻ったデータが帰属先のグループが決まっていない場合に、そのデータをそのデータの下位のノードのいずれかのグループに併合し、グループの少なくとも一部のグループを併合する。
【0014】
本発明の一形態における記録媒体は、データを含むノードを要素とした木構造のデータを探索する処理と、探索対象のノードに含まれるデータとそのデータの下位のノードとの間のエッジに関連付けられた類似度と、所定の閾値とを基に、データと下位のノードとを用いてグループ化するか否かを判定する処理と、判定の結果としてグループ化と判定されたデータと下位のノードとをグループ化して、グループを作成する処理と、探索対象のノードがリーフノードの場合に、検索対象のリーフノードをグループ化して、1つ又は複数のグループを作成する処理と、探索が上位のノードへのバックトラックにおいて戻ったデータが帰属先のグループが決まっていない場合に、そのデータをそのデータの下位のノードのいずれかのグループに併合する処理と、グループの少なくとも一部のグループを併合する処理とを含むプログラムをコンピュータから読み取り可能に記録する。
【発明の効果】
【0015】
本発明に基づけば、対象となるデータを制限しなくても、演算時間を削減して、類似度に基づくデータのグループ化を実行できるとの効果を奏することができる。
【図面の簡単な説明】
【0016】
図1図1は、本発明における第1の実施形態に係る情報処理装置の構成の一例を示すブロック図である。
図2図2は、第1の実施形態に係る情報処理装置の動作の一例を示す流れ図である。
図3図3は、第1の実施形態の動作の説明に用いる木構造を示す図である。
図4図4は、サブツリーのグループ化の一例を示す図である。
図5図5は、リーフノードのグループ化の一例を示す図である。
図6図6は、代表データの併合の一例を示す図である。
図7図7は、グループ間併合の一例を示す図である。
図8図8は、第1の実施形態の情報処理装置の変形例の構成の一例を示すブロック部である。
図9図9は、第1の実施形態の情報処理装置の変形例の構成の一例を示すブロック部である。
【発明を実施するための形態】
【0017】
次に、本発明の実施形態について図面を参照して説明する。
【0018】
各図面は、本発明の実施形態を説明するものである。ただし、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。また、以下の説明に用いる図面において、本発明の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。
【0019】
<第1の実施形態>
まず、第1の実施形態に係る情報処理装置10の構成について説明する。
【0020】
[構成の説明]
図1は、本発明における第1の実施形態に係る情報処理装置10の構成の一例を示すブロック図である。ただし、図面中の矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
【0021】
図1を参照すると、情報処理装置10は、データ処理部100と、木構造保持部110と、類似度保持部120と、中間結果保持部130とを含む。ここで、保持とは、記憶又は保存を意味する。
【0022】
木構造保持部110は、情報処理装置10の処理対象である木構造として構築されたデータ(以下、木構造と呼ぶ)を保持する。木構造は、ノード(例えば、ルートノード及びリーフノード)とエッジとを含む。なお、各ノードは、データ(例えば、代表データ)を含む。ここで、「代表データ」とは、ノードに含まれるデータにおいて、ノードを代表するデータである。
【0023】
類似度保持部120は、エッジに関連付けられた(付与された)類似度(例えば、類似半径)を保持する。
【0024】
木構造保持部110と類似度保持部120は、予め、後ほど説明するデータ処理部100における動作の前に、上記で説明したデータを保持すればよい。例えば、情報処理装置10のユーザが、処理に先立ち、上記データを各保持部に記憶させればよい。
【0025】
中間結果保持部130は、後ほど説明するデータ処理部100の各部のグループ化処理に基づいて生成される結果(以下、「中間結果」と呼ぶ)を保持する。
【0026】
データ処理部100は、木構造保持部110が保持する木構造を探索する。そして、データ処理部100は、木構造保持部110が保持する木構造と、後ほど説明する受信したグループ化閾値140と、類似度保持部120が保持する類似度とを用いて、木構造のグループ化を実行する。データ処理部100は、グループ化処理の結果(中間結果)を、中間結果保持部130に保持させる。そして、データ処理部100は、グループ化の処理の終了後、中間結果保持部130が保持する中間結果を、グループ化結果150として出力する。
【0027】
そのため、データ処理部100は、木探索部102と、グループ化判定部103と、サブツリーグループ化部104と、リーフノードグループ化部105と、グループ間併合部106と、代表データ併合部107とを含む。さらに、データ処理部100は、グループ化閾値受信部101と、グループ化結果出力部108とを含む。データ処理部100に含まれる各構成は、必要に応じて、木構造保持部110、類似度保持部120、及び中間結果保持部130に保持されたデータを用いる。また、各構成は、必要に応じて、中間結果保持部130にデータを保持させる。以下の説明では、説明の便宜のため、各構成が、各保持部にデータの保持させる動作及びデータを読み出す動作を省略する場合もある。
【0028】
グループ化閾値受信部101は、図示しない外部の装置からグループ化閾値140を受信する。例えば、グループ化閾値受信部101は、ユーザが操作する装置からグループ化閾値140を受信すればよい。グループ化閾値受信部101は、グループ化閾値140をグループ化判定部103に渡す。あるいは、グループ化閾値受信部101は、グループ化判定部103の要求に対して、グループ化閾値140を送信してもよい。あるいは、グループ化閾値受信部101は、図示しない記憶部にグループ化閾値140を記憶させてもよい。この場合、グループ化判定部103は、その記憶部からグループ化閾値140を読み出せばよい。このように、本実施形態は、グループ化閾値140を保存する構成に制限はない。
【0029】
木探索部102は、木構造保持部110に保持された木構造(ツリー)を、その構造に従って、たどる。そして、木探索部102は、現在たどっているノード、データ又はエッジつまり、探索中のノード、データ、又はエッジ(以下、まとめて「探索対象」と呼ぶ)を基に、後述する各部に処理を依頼する。
【0030】
グループ化判定部103は、木探索部102が現在たどっている木構造のエッジ(探索対象となっているエッジ)に関連付けられた類似度(例えば、類似半径)と、グループ化閾値140とを比較する。グループ化判定部103は、比較結果を基に、探索対象のエッジに関連付けられているノード群が、グループ化可能か否かを判定する。つまり、グループ化閾値140は、グループ化可能か否かの判定に用いられる閾値である。
【0031】
サブツリーグループ化部104は、グループ化が可能なサブツリーをグループ化する。つまり、サブツリーグループ化部104は、グループ化が可能なサブツリーを用いて、グループを作成する。ここで、グループ化が可能なサブツリーとは、グループ化判定部103がグループ化閾値140以上の類似度と判定したエッジに関連付けられたサブツリーである。
【0032】
リーフノードグループ化部105は、リーフノード(葉ノード)にあるデータをグループ化する。つまり、リーフノードグループ化部105は、リーフノードのデータを用いて、グループを作成する。
【0033】
グループ間併合部106は、併合可能なグループを、一つのグループに併合する。つまり、グループ間併合部106は、作成されたグループを基に、グループを編集する。
【0034】
代表データ併合部107は、代表データを、帰属するグループに併合する。つまり、代表データ併合部107は、作成されたグループと代表データとを基に、グループを編集する。
【0035】
グループ化結果出力部108は、中間結果保持部130に保持された中間結果を読み出し、グループ化結果150として出力する。例えば、グループ化結果出力部108は、ユーザが操作する装置にグループ化結果150を送信する。あるいは、グループ化結果出力部108は、図示しない表示機器に、グループ化結果150を表示してもよい。
【0036】
[動作の説明]
次に、図面を参照して、本実施形態の動作について説明する。
【0037】
図2は、本実施形態に係る情報処理装置10の動作の一例を示す流れ図である。
【0038】
まず、グループ化閾値受信部101は、グループ化閾値140を受信する。
【0039】
そして、木探索部102は、木構造保持部110に保持されている木構造において、ルートノードから探索を開始する(ステップA201)。
【0040】
木探索部102は、現在のノードがリーフノードであるか否かを判定する(ステップA202)。
【0041】
リーフノードでない場合(ステップA202でNo)、木探索部102は、そのノードに、未検査の代表データがあるか否かを判定する(ステップA203)。
【0042】
未検査の代表データがある場合(ステップA203でYes)、木探索部102は、未検査の代表データの中から、代表データを1つ選ぶ。そして、木探索部102は、グループ化判定部103に処理を依頼する。
【0043】
グループ化判定部103は、類似度保持部120が保持する類似度を参照して、選択された代表データのエッジに関連付けられた類似度が、グループ化閾値140以上か否かを判定(検査)する(ステップA204)。グループ化判定部103は、判定結果を木探索部102に返す。
【0044】
代表データの類似度が、グループ化閾値140以上の場合(ステップA204でYes)、その代表データの下位にあるノードのデータは、その代表データからグループ化閾値140以上の類似度を持っている。そこで、木探索部102は、判定結果に基づき、サブツリーグループ化部104に処理を依頼する。サブツリーグループ化部104は、代表データと代表データの下位にあるノードのデータとを、グループ化する(グループを作成する)。そして、サブツリーグループ化部104は、その結果(グループの情報)を、中間結果保持部130に出力する(ステップA205)。そして、情報処理装置10の動作は、ステップA203に戻る。なお、代表データとその代表データの下位にあるノードのデータとを含むサブツリーを、「その代表データ以下のサブツリー」と呼ぶ。
【0045】
代表データの類似度が、グループ化閾値140より小さい場合(ステップA204でNo)、木探索部102は、探索対象を、そのエッジの先にある子ノードに移動する(ステップA206)。そして、木探索部102は、ステップA202に戻り、同様の動作を繰り返す。
【0046】
探索が、リーフノードまで達した場合(ステップA202でYes)、木探索部102は、リーフノードグループ化部105に処理を依頼する。リーフノードグループ化部105は、そのリーフノード内にあるデータをグループ化(グループを作成)する。そして、リーフノードグループ化部105は、その結果(グループの情報)を、中間結果保持部130に保持させる(ステップA207)。なお、リーフノードグループ化部105は、リーフノードを、1つ又は複数のグループにグループ化する。つまり、リーフノードグループ化部105は、リーフノードのグループ化に基づいて、1つ又は複数のグループを作成する。
【0047】
そして、木探索部102は、現在のノード(今の場合、リーフノード)が、ルートノード(根ノード)であるか否かを判定する(ステップA208)。
【0048】
ルートノードでない場合(ステップA208でNo)、木探索部102における探索は、上位ノード(親ノード)に戻る(バックトラック)(ステップA209)。
【0049】
木探索部102の探索が上位ノードに戻ってきたとき、そのノードの代表データは、どのグループにも属していない。そのため、木探索部102は、代表データ併合部107に処理を依頼する。代表データ併合部107は、その代表データより下位のノード(サブツリー)で作られたグループの中で、その代表データの帰属に最適なグループに、その代表データを併合する(ステップA210)。この動作の詳細は、後ほど説明する。なお、帰属するグループが存在しない場合、代表データ併合部107は、その代表データを基にグループを作成する。代表データ併合部107は、処理結果(グループの情報)を中間結果保持部130に保持させる。そして、情報処理装置10は、ステップA203に戻る。
【0050】
ノードの代表データをすべて検査し終わった場合(ステップA203でNo)、そのノードの下位のノードのグループ化の結果が作成された状態である。そこで、木探索部102は、グループ間併合部106に処理を依頼する。グループ間併合部106は、作成されたグループ化結果150の中で、併合できるグループを一つのグループに併合する(ステップA211)。この動作の詳細は、後ほど説明する。グループ間併合部106は、処理結果を中間結果保持部130に保持させる。
【0051】
その後、情報処理装置10は、ステップA208に進み、既に説明した動作を実行する。
【0052】
そして、情報処理装置10は、上記で説明した動作を、木探索部102の探索の対象がルートノードに戻るまで繰り返す。そして、木探索部102は、探索中のノードがルートノードであると判定すると(ステップA208でYes)、グループ化結果出力部108に処理を依頼する。グループ化結果出力部108は、グループ化結果150を出力する(ステップA211)。
【0053】
そして、情報処理装置10は、グループ化の動作を終了する。
【0054】
[効果の説明]
次に、本実施の形態の効果について説明する。
【0055】
上記のとおり、本実施形態に係る情報処理装置10は、対象となるデータを制限しなくても、データのグループ化を実現できるとの効果を得ることができる。
【0056】
その理由は、上記のとおり、情報処理装置10が、その動作において、処理対象のデータにおける制限を必要としないためである。
【0057】
また、本実施形態に係る情報処理装置10は、演算時間を削減して、グループ化の演算を実行できるとの効果を得ることができる。
【0058】
その理由は、次のとおりである。
【0059】
木探索部102が探索したノードに対して、グループ化判定部103がグループ化と判定したノードについて、下記のように各部が、グループ化の処理を実行する。
【0060】
すなわち、サブツリーグループ化部104は、エッジに関連付けられた類似度がグループ化閾値140以上である代表データ以下のサブツリー(代表データと、その代表データの下位のノードのデータ)を、グループ化する。この場合、情報処理装置10は、そのエッジの下位のノード(子ノード)での処理を不要にすることができる。これが、第1の理由である。
【0061】
また、木探索部102の探索が、リーフノードに達した場合、リーフノードグループ化部105が、リーフノードをグループ化する。
【0062】
そして、上記のグループ化処理の後、木探索部102の探索が上位ノードの戻った(バックトラック)場合、代表データ併合部107が、適切なグループに代表データを併合する。
【0063】
そして、グループ間併合部106が、グループ結果の中で、併合できるグループを併合する。
【0064】
木構造の検索する一般的な情報処理装置は、木構造の少なくとも一部のサブツリー構造を、複数回探索する。
【0065】
一方、上記のように、情報処理装置10は、上記のグループ化の動作を、木探索部102における1回の木構造の探索を基に実現できる。これが、第2の理由である。
【0066】
なお、リーフノードグループ化部105におけるグループ化の計算は、木探索部102の探索がリーフノードまで進んだ場合に発生する。本実施形態において、上記のとおり、計算対象となるリーフノードは、一部のリーフノードである。また、リーフノードでの計算は、そのリーフノードに含まれるデータを用いた計算である。そのため、本実施形態におけるリーフノードに対する計算量は、大きな計算量とはならない。
【0067】
[詳細な動作の説明]
次に、具体的な木構造を用いて、本実施形態の詳細な動作について説明する。
【0068】
まず、詳細な動作の説明に先立ち、動作の説明において用いる、木構造保持部110及び類似度保持部120が保持するデータについて説明する。
【0069】
図3は、第1の実施形態の動作の説明に用いるデータの木構造を示す図である。
【0070】
図3に示す木構造は、例えば、非特許文献1に記載された手法を用いて、データが類似度に基づいて作成された階層化構造である。
【0071】
図3に示す長方形は、ノードを示す。各ノード(ノードAないしノードM)は、n件の代表データ(例えば、ノードAの代表データは、AからAである)を含む。図3において、全てのノードは、n件の代表データを含んでいるが、これは、一例である。本実施形態において、ノードの含まれるデータの数は、ノード毎に異なっていてもよい。
【0072】
エッジは、親ノードのデータから子ノードに向かう矢印で示されている。エッジに関連づけられた類似度δ(x=1、…、12)は、親ノードのデータから類似度が類似度δ以上であるデータが、そのエッジより下位のノードにあることを示す。例えば、データAから出ている類似度δが関連付けられたエッジより下位のノードのデータ(図3では、B、…、B、C、…、C、…等)は、データAに対する類似度が、類似度δ以上である。
【0073】
以下の説明において、木構造保持部110は、予め、図3に示す木構造を保持しているとする。また、類似度保持部120は、予め、図3に示す類似度を木構造と関連付けて保持しているとする。
【0074】
本実施形態の木構造保持部110における木構造の保持方法は、特に制限はない。例えば、木構造の保持方法として、ノードID(例えば、図3に示すAからM)と、そのノードに属するデータ及び各データがどのサブツリーの代表であるかを表現するデータを、表形式、又はオブジェクト形式で保持する方法が想定できる。
【0075】
また、本実施形態の類似度保持部120における類似度(例えば、類似半径)の保持方法は、特に制限はない。類似度の保持方法は、木構造の保持方法に依存するため、木構造を基に決定されればよい。ただし、木構造の保持方法は、エッジとそのエッジに関連付けられた類似度とが関連付けられている方法である。類似度の保持方法として、例えば、サブツリーを参照させる側のノードが、代表データと関連付けて類似度を保持する方法、又は、サブツリーのルートノード側が、類似度を関連付けてエッジを保持する方法が、想定される。あるいは、類似度を保持する方法として、代表データとサブツリーのルートノード間をつなぐエッジオブジェクトが、その内部に類似度を保持する方法、又は、エッジオブジェクトが、エッジIDに関連付けて類似度を保持する方法などが、考えられる。
【0076】
また、本実施形態の中間結果の保持方法は、特に制限はない。ただし、中間結果の保持方法は、スタックのようなデータ構造が望ましい。これは、次のような理由のためである。ただし、スタックのようなデータ構造とは、最後に入力したデータが最初に出力されるデータ構造(LIFO:Last In, First Out)である。スタックのようなデータ構造を、以下、単に「スタック」と呼ぶ。また、スタックに蓄えられたデータの量を、スタックの高さと呼ぶ。
【0077】
代表データが帰属するグループの候補の抽出、及び、グループ間併合における併合させるグループの抽出において、情報処理装置10は、対象となるノード(現在のノード)の下位のノードに対して生成された中間結果(グループの情報)の取り出しが必要である。中間結果保持部130が、スタックのようなデータ構造(LIFO)を用いて中間結果を保持すると、情報処理装置10は、上記の抽出における木構造の探索として、スタックに積まれたデータを検査すれば、抽出を実現できるためである。
【0078】
なお、以下の説明において、各構成における、各情報の読み出し動作、及び、保持させる動作の説明は、適宜、省略する。また、以下の説明において、情報処理装置10は、グループ化閾値140として、閾値δを受信したとする。すなわち、情報処理装置10は、データのグループ化の基準として閾値δを用い、類似度が閾値δ以上のデータからなるグループを作成(抽出)する。
【0079】
次に、情報処理装置10の具体的な動作を説明する。
【0080】
本実施形態に係る情報処理装置10における木構造の探索を基にデータをグループ化する動作は、おおむね、次に説明する動作となる。
【0081】
まず、木探索部102は、ルートノード(根ノード)から、木構造の探索を開始する(ステップA201)。図3に示すように、今の場合、ルートノードは、ノードAである。ノードAは、AからAまでのn個の代表データを含む。
【0082】
木探索部102は、ノードAがリーフノード(葉ノード)か否かを判定する(ステップA202)。
【0083】
今の場合、ノードAは、リーフノードでないため(ステップA202でNo)、木探索部102は、未検査の代表データがあるか否かを判定する(ステップA203)。
【0084】
ここでは、未検査の代表データがある場合の一例として、木探索部102は、代表データAを選択したとする(ステップA203でYes)。
【0085】
次に、グループ化判定部103は、閾値δと、代表データAと代表データBからBを含むノードBとをつなぐエッジに関連付けられている類似度δとを比較する(ステップA204)。
【0086】
エッジに関連付けられた類似度(δ)が閾値δより小さい(δ<δ)場合(ステップA204でNo)、木探索部102は、探索対象のノードを、そのエッジの先の子ノード(今の場合、ノードB)に移動する(ステップA206)。今の場合、類似度の関係が、δ<δとする。そのため、木探索部102は、探索対象をノードBとする。このような動作を基に、木探索部102は、δ以上の類似度が関連付けられたエッジを探索する。
【0087】
一方、エッジに関連付けられた類似度(δ)が閾値δ以上(δ≧δ)場合(ステップA204でYes)、サブツリーグループ化部104は、サブツリーグループを作成する(ステップA205)。
【0088】
図4は、サブツリーのグループ化の一例を示す図である。
【0089】
図4に示すように、ノードCのデータCとノードDとの間のエッジに関連付けられた類似度δが、閾値δ以上(δ≧δ)とする。この場合、グループ化判定部103は、このエッジに関連付けられた類似度が閾値δ以上と判定する(ステップA204でYes)。つまり、この場合、データCの配下にあるデータは、データCを基準として、閾値δ以上の類似度を持っている。
【0090】
したがって、サブツリーグループ化部104は、代表データC以下のサブツリーを、グループ(図4のグループ1)化する。そして、サブツリーグループ化部104は、中間結果として、作成したグループを中間結果保持部130に出力する(ステップA205)。
【0091】
図4に示すように、代表データC以下のサブツリーに含まれるノードは、グループ1としてまとめられた。そのため、情報処理装置10は、代表データCよりリーフ側のノード(及びノードに含まれるデータ)を探索する必要はない。したがって、木探索部102は、次の代表データであるデータC,…、Cを選択する。そして、グループ化判定部103は、同様に、類似度が閾値δ以上のエッジがあるか否かを判定する。
【0092】
もし、グループ化判定部103が、閾値δ以上のエッジが見つからずに、木探索部102の探索が、リーフノードに到達した場合、リーフノードグループ化部105が、リーフノードをグループ化する(ステップA207)。
【0093】
図5は、リーフノードのグループ化の一例を示す図である。
【0094】
図5に示すように、木探索部102は、ノードGまで探索が進んだとする。そこで、リーフノードグループ化部105は、リーフノード(ノードG)を、閾値δを満たすように、例えば、2つのグループ(グループ2及びグループ3)にグループ化する。
【0095】
なお、リーフノードグループ化部105の処理は、特に制限はない。ただし、リーフノードをグループ化するためには、リーフノードグループ化部105は、リーフノードのデータを詳細に検討する必要がある。そこで、例えば、リーフノードグループ化部105は、特許文献1に記載された方法を用いて、リーフノードをグループ化してもよい。
【0096】
なお、リーフノードをグループ化する場合、グループ化の対象となるデータは、ノードの容量で抑えられた、十分に小さなデータ数である。そのため、リーフノードグループ化部105の計算量が、件数nに対してO(n)のオーダーが必要な場合でも、情報処理装置10の全体の計算量は、大きな計算量とはならず、十分に高速な処理が可能な計算量ある。
【0097】
また、リーフノードグループ化部105のリーフノード内のグループ化の処理は、特に制限はない。本実施形態に係るリーフノードのグループ化の処理に関して、様々なバリエーションが想定可能である。例えば、リーフノードグループ化部105は、所定のデータ数を含まない場合、そのリーフノードにおいて、グループを生成しなくてもよい。あるいは、リーフノードグループ化部105は、そのリーフノードが所定のデータ数を含まない場合、そのリーフノードをグループ化の対象から除外してもよい。
【0098】
木探索部102は、類似度が閾値δ以上のエッジに対応したサブツリーのグループ化、又は、リーフノードのグループ化の後、木構造における上位ノードへのバックトラックを実行する(ステップA209)。この木探索部102の探索のバックトラック動作において(帰りがけ順(の最後)に)、代表データを訪問するとき、代表データ併合部107は、まだ帰属先のグループが決まっていない代表データを併合する(ステップA210)。また、グループ間併合部106は、グループ間の併合を実行する(ステップA211)。
【0099】
図6は、代表データの併合の一例を示す図である。図6を参照して、代表データCの併合について説明する。
【0100】
代表データCは、代表データCの下位のノードにあるデータの代表である。そこで、代表データ併合部107は、代表データCが、代表データCより下位のノードで生成されたグループの中で、どのグループに帰属するかを検査する。
【0101】
なお、既に説明した通り、中間結果保持部130が、検査対象とするグループの候補(中間結果)をスタック構造で保持している場合、代表データ併合部107は、スタックの高さに相当する数のグループの候補を検査すれば、グループの候補を絞り込める。すなわち、代表データ併合部107は、検査の候補として、木探索部102の探索において、行きがけ順(の最初)に代表データを訪問したときのスタックに積まれた高さまでのグループを、検査の候補とすればよい。
【0102】
そして、代表データ併合部107は、候補となるグループの代表データと、グループ化する代表データ(C)との類似度を比較する。そして、代表データ併合部107は、最も高い類似度となるグループと代表データ(C)とを併合すればよい。ただし、代表データ併合部107は、類似度が閾値δ以上となるように、代表データ(C)をグループに併合する。
【0103】
図6に示す例では、木探索部102が行きがけ順で訪問した時に既に存在するグループは、グループ1である。また、帰りがけ順で訪問した時に存在するグループは、グループ1、2、及び3である。つまり、代表データ併合部107は、その差分となるグループ2、又はグループ3が、代表データCより下位のノードで生成されたグループであると判断できる。そのため、代表データ併合部107は、グループ2又はグループ3のどちらが、代表データCに対して、より適切かを検査すればよい。図6は、代表データCがグループ3に併合されたことを表している。
【0104】
ただし、上記は、代表データ併合部107が、スタックされたデータを用いることに限定するものではない。代表データ併合部107は、スタック構造以外のデータを用いてもよい。
【0105】
グループ間併合部106は、グループ間の併合において、代表データ併合と同様に、併合できるか否かを検討するグループの候補を、絞り込むことができる。すなわち、グループ間併合部106は、木の探索において、行きがけ順(最初)にノードを訪問した時のスタックの高さまでにあるグループを、併合の対象とすればよい。なお、グループ間併合部106は、グループ間の併合方法として、併合するデータの性質に合った併合方法を選択すればよい。例えば、グループ間併合部106は、単純に、各グループ間の代表データの類似度が、それぞれのグループの類似度を加味した類似度以上にある場合に、グループを併合してもよい。
【0106】
図7は、グループ間併合の一例を示す図である。
【0107】
図7に示すように、木探索部102が、CからCを含むノードを行きがけ順で訪問したときのグループは、1つもない。一方、木探索部102が帰りがけ順で訪問した時のグループは、グループ1、グループ2、及びグループ3である。そこで、グループ間併合部106は、これらのグループを比較し、グループ間で併合可能か否かを検査する。図7に示す例は、グループ1とグループ2が併合され、グループ1−2が生成されたことを示している。
【0108】
ただし、上記は、グループ間併合部106が、スタックされたデータを用いることに限定するものではない。グループ間併合部106は、スタック構造以外のデータを用いてもよい。また、グループ間併合部106の動作のタイミングは、グループ化結果出力部108の動作前なら、制限はない。例えば、グループ間併合部106は、木探索部102の探索がルートノードに戻った後、グループ間を併合してもよい。
【0109】
上記の動作を繰り返し、木探索部102は、ルートノードに戻ったときに、ルートノードの未処理の代表データがなくなる(終了)まで、木構造の探索を実行する。そして、木探索部102が、木構造の探索が終了すると、グループ化結果出力部108は、グループ化結果150を出力する(ステップA211)。
【0110】
<第1の変形例>
以上の説明した情報処理装置10は、次のように構成される。
【0111】
例えば、情報処理装置10の各構成部は、ハードウェア回路で構成されても良い。
【0112】
また、情報処理装置10は、各構成部をネットワーク又はバスなど(以下、まとめて「ネットワークなど」と呼ぶ)を介して接続した複数の装置を用いて構成されても良い。
【0113】
図8は、本実施形態の変形例に係る情報処理装置11の構成の一例を示すブロック図である。ただし、図面中の矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
【0114】
情報処理装置11は、木探索部102と、グループ化判定部103と、サブツリーグループ化部104と、リーフノードグループ化部105と、グループ間併合部106と、代表データ併合部107とを含む。情報処理装置11の各構成は、図示しないネットワークなどを介して、図8において図示されていないグループ化閾値受信部101と、木構造保持部110と、類似度保持部120と、中間結果保持部130と接続する。そして、情報処理装置11の各構成は、情報処理装置10の各構成と同様に動作する。なお、図示しないグループ化結果出力部108は、情報処理装置11の動作後、中間結果保持部130から、グループ化結果150を取り出せばよい。
【0115】
このように構成された情報処理装置11は、情報処理装置10と同様の効果を得ることができる。
【0116】
その理由は、上記のとおり、情報処理装置11の各構成が、情報処理装置10の構成と同様に動作し、グループ化を実行できるためである。
【0117】
なお、情報処理装置11は、本発明の実施形態の最小構成である。
【0118】
<第2の変形例>
また、情報処理装置10は、複数の構成部を1つのハードウェアで構成されても良い。
【0119】
また、情報処理装置10は、CPU(Central Processing Unit)と、ROM(Read Only Memory)と、RAM(Random Access Memory)とを含むコンピュータ装置として実現されても良い。情報処理装置10は、上記構成に加え、さらに、入出力接続回路(IOC:Input / Output Circuit)と、ネットワークインターフェース回路(NIC:Network Interface Circuit)とを含むコンピュータ装置として実現されても良い。
【0120】
図9は、情報処理装置10の第2の変形例である情報処理装置600の構成の一例を示すブロック図である。
【0121】
情報処理装置600は、CPU610と、ROM620と、RAM630と、内部記憶装置640と、IOC650と、NIC680とを含み、コンピュータ装置を構成している。
【0122】
CPU610は、ROM620からプログラムを読み込む。そして、CPU610は、読み込んだプログラムに基づいて、RAM630と、内部記憶装置640と、IOC650と、NIC680とを制御する。
【0123】
そして、CPU610を含むコンピュータは、これらの構成を制御し、図1に示す各部としての各機能を実現する。図1に示す各部とは、グループ化閾値受信部101、木探索部102、グループ化判定部103、サブツリーグループ化部104、リーフノードグループ化部105、グループ間併合部106、代表データ併合部107、及びグループ化結果出力部108とである。
【0124】
CPU610は、各機能を実現する際に、RAM630又は内部記憶装置640を、プログラムの一時記憶として使用しても良い。
【0125】
また、CPU610は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体700が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでも良い。あるいは、CPU610は、NIC680を介して、図示しない外部の装置からプログラムを受け取り、RAM630に保存して、保存したプログラムを基に動作しても良い。
【0126】
ROM620は、CPU610が実行するプログラム及び固定的なデータを記憶する。ROM620は、例えば、P−ROM(Programmable-ROM)又はフラッシュROMである。
【0127】
RAM630は、CPU610が実行するプログラム及びデータを一時的に記憶する。RAM630は、例えば、D−RAM(Dynamic-RAM)である。
【0128】
内部記憶装置640は、情報処理装置600が長期的に保存するデータ及びプログラムを記憶する。また、内部記憶装置640は、CPU610の一時記憶装置として動作しても良い。内部記憶装置640は、例えば、ハードディスク装置、光磁気ディスク装置、SSD(Solid State Drive)又はディスクアレイ装置である。内部記憶装置640は、木構造保持部110、類似度保持部120、及び、中間結果保持部130として動作する。
【0129】
ここで、ROM620と内部記憶装置640は、不揮発性の記憶媒体である。一方、RAM630は、揮発性の記憶媒体である。そして、CPU610は、ROM620、内部記憶装置640、又は、RAM630に記憶されているプログラムを基に動作可能である。つまり、CPU610は、不揮発性記憶媒体又は揮発性記憶媒体を用いて動作可能である。
【0130】
IOC650は、CPU610と、入力機器660及び表示機器670とのデータを仲介する。IOC650は、例えば、IOインターフェースカード又はUSB(Universal Serial Bus)カードである。
【0131】
入力機器660は、情報処理装置600の操作者からの入力指示を受け取る機器である。入力機器660は、例えば、キーボード、マウス又はタッチパネルである。入力機器660は、グループ化閾値受信部101として動作してよい。
【0132】
表示機器670は、情報処理装置600の操作者に情報を表示する機器である。表示機器670は、例えば、液晶ディスプレイである。表示機器670は、グループ化結果出力部108として動作してよい。
【0133】
NIC680は、ネットワークを介した図示しない外部の装置とのデータのやり取りを中継する。NIC680は、例えば、LAN(Local Area Network)カードである。NIC680は、グループ化閾値受信部101又はグループ化結果出力部108として動作してもよい。
【0134】
このように構成された情報処理装置600は、情報処理装置10と同様の効果を得ることができる。
【0135】
その理由は、情報処理装置600のCPU610が、プログラムに基づいて、情報処理装置10と同様の機能を実現できるためである。
【0136】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0137】
この出願は、2014年10月14日に出願された日本出願特願2014−209936を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【0138】
本発明は、画像、映像、文書といったデータの要約の用途に適用できる。
【符号の説明】
【0139】
10 情報処理装置
11 情報処理装置
100 データ処理部
101 グループ化閾値受信部
102 木探索部
103 グループ化判定部
104 サブツリーグループ化部
105 リーフノードグループ化部
106 グループ間併合部
107 代表データ併合部
108 グループ化結果出力部
110 木構造保持部
120 類似度保持部
130 中間結果保持部
140 グループ化閾値
150 グループ化結果
600 情報処理装置
610 CPU
620 ROM
630 RAM
640 内部記憶装置
650 IOC
660 入力機器
670 表示機器
680 NIC
700 記憶媒体
図1
図2
図3
図4
図5
図6
図7
図8
図9