本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
[A.応用例]
まず、本実施の形態に従うコミュニティ検出手法の応用例について説明する。
図1は、本実施の形態に従うコミュニティ検出手法の応用例を説明するための図である。図1には、一例として、本実施の形態に従うコミュニティ検出手法を用いて大量の入力画像をクラスタリングするとともに、クラスリングされた結果を利用して観光支援アプリケーションを提供する例を示す。図2は、本実施の形態に従うコミュニティ検出手法を用いた観光支援アプリケーションを提供するための処理手順を示すフローチャートである。
図1および図2を参照して、まず、任意の方法で大量の入力画像を収集する(ステップS1)。収集された入力画像130間に画像マッチング処理を実行し(ステップS2)、得られた画像マッチング結果に基づいて、入力画像130間の関係を示すグラフ(以下、「マッチグラフ」とも称する。)を生成する(ステップS3)。ここで、「マッチグラフ」は、各入力画像を頂点とし、例えば、局所特徴点などを利用して画像間を辺で結んだグラフに相当する。
そして、生成されたマッチグラフ2に対して後述するようなコミュニティ検出手法を適用することで、マッチグラフ2に含まれるコミュニティ4を検出する。具体的には、生成されたマッチグラフ2に対して、後述するようなランダムウォーク類似度法を適用して、通過頂点集合を取得する(ステップS4)。そして、取得された通過頂点集合に対して、異常値(外れ値)の除外処理などを実行し(ステップS5)、マッチグラフ2に含まれるコミュニティ4を検出する(ステップS6)。大量の入力画像から生成されたマッチグラフ2を対象として検出されたコミュニティ4の各々は、大量の入力画像に含まれる同一または類似の被写体を含む画像群に相当する。
さらに、検出された各コミュニティに対して、ラベリング、解説の付与、位置情報の付与、多言語化処理などが実行されて、画像データベース6が生成される(ステップS7)。生成された画像データベース6を用いて、携帯端末200などからの要求に応答して、観光支援アプリケーションに必要な情報などが提供される(ステップS8)。
[B.制御装置のハードウェア構造]
次に、本実施の形態に従うコミュニティ検出手法を実現するためのハードウェア構成の一例について説明する。
図3は、本実施の形態に従う情報処理システム100のハードウェア構成の一例を示す模式図である。図3に示す情報処理システム100は、本実施の形態に従う複数の頂点を有するグラフを探索するランダムウォークを制御する制御装置として機能する。情報処理システム100は、コミュニティ検出手法を実行するコミュニティ検出装置としても機能し得る。情報処理システム100は、さらにコミュニティ検出手法により検出されるコミュニティを利用したアプリケーションの提供なども可能になっている(図1のステップS4など参照)。すなわち、情報処理システム100は、後述するような観光支援システムとしても機能する。
典型的には、情報処理システム100は、パーソナルコンピュータなどの汎用コンピュータを用いて実現される。より具体的には、情報処理システム100は、主要なハードウェアコンポーネントとして、プロセッサ102と、主メモリ104と、ディスプレイ106と、入力デバイス108と、ネットワークインターフェイス(I/F:interface)110と、光学ドライブ112と、補助記憶装置120とを含む。これらのコンポーネントは、内部バス116を介して互いに接続される。
プロセッサ102は、後述するような各種プログラムを実行することで、本実施の形態に従う画像クラスタリングなどに必要な処理を実現する演算主体であり、例えば、1または複数のCPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。複数のコアを有するようなCPUまたはGPUを用いてもよい。
主メモリ104は、プロセッサ102がプログラムを実行するにあたって、プログラムコードやワークメモリなどを一時的に格納する記憶領域であり、例えば、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性メモリデバイスなどで構成される。
ディスプレイ106は、処理に係るユーザインターフェイスや処理結果などを出力する表示部であり、例えば、LCD(Liquid Crystal Display)や有機EL(electroluminescence)ディスプレイなどで構成される。入力デバイス108は、ユーザからの指示や操作を受け付けるデバイスであり、例えば、キーボード、マウス、タッチパネル、ペンなどで構成される。
ネットワークインターフェイス110は、インターネット上またはイントラネット上の任意の情報処理装置などとの間でデータを遣り取りするためのコンポーネントであり、例えば、イーサネット(登録商標)、無線LAN(Local Area Network)、Bluetooth(登録商標)などの任意の通信方式を採用できる。
光学ドライブ112は、CD-ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)などの光学ディスク114に格納されている情報を読出して、内部バス116を介して他のコンポーネントへ出力する。光学ディスク114は、非一過的(non-transitory)な記録媒体の一例であり、任意のプログラムを不揮発的に格納した状態で流通する。光学ドライブ112が光学ディスク114からプログラムを読み出して、補助記憶装置120などにインストールすることで、パーソナルコンピュータなどの汎用コンピュータが情報処理システム100として機能するようになる。したがって、本発明の主題は、補助記憶装置120などにインストールされたプログラム自体、または、本実施の形態に従う処理を実現するためのプログラムを格納した光学ディスク114などの記録媒体でもあり得る。
図3には、非一過的な記録媒体の一例として、光学ディスク114などの光学記録媒体を示すが、これに限らず、フラッシュメモリなどの半導体記録媒体、ハードディスクまたはストレージテープなどの磁気記録媒体、MO(Magneto-Optical disk)などの光磁気記録媒体を用いてもよい。
補助記憶装置120は、プロセッサ102にて実行されるプログラム、プログラムが処理対象とする入力データ、および、プログラムの実行により生成される出力データなどを格納するコンポーネントであり、例えば、ハードディスク、SSD(Solid State Drive)などの不揮発性記憶装置で構成される。より具体的には、補助記憶装置120には、典型的には、図示しないOS(Operating System)の他、画像マッチングプログラム122、マッチグラフ生成プログラム124、コミュニティ検出プログラム126、検索プログラム128、および、複数の入力画像130などが格納される。さらに、補助記憶装置120には、画像データベース6が配置されてもよい。
画像マッチングプログラム122は、複数の入力画像130間の関係を決定するための情報を画像マッチング結果として算出する。
マッチグラフ生成プログラム124は、画像マッチングプログラム122が実行されることで得られる画像マッチング結果に基づいて、マッチグラフ2を生成する。
コミュニティ検出プログラム126は、後述するような、複数の頂点を有するグラフを探索するランダムウォークを制御する制御方法、および、その結果を利用したコミュニティ検出手法を実現する。
検索プログラム128は、携帯端末200上で実行される観光支援アプリケーションからの要求を受けて画像データベース6から要求に合致する画像などを検索するとともに、その検索結果を要求元の携帯端末200へ応答する。
なお、画像マッチングプログラム122、マッチグラフ生成プログラム124、コミュニティ検出プログラム126、および検索プログラム128をプロセッサ102で実行する際に必要となるライブラリや機能モジュールの一部を、OSが標準で提供するライブラリまたは機能モジュールを用いて代替するようにしてもよい。この場合には、本実施の形態に従う処理を実現するために必要なプログラムモジュールのすべてが記録媒体に格納されるわけではないが、OSの実行環境下にインストールされることで、本実施の形態に従う情報処理システム100を実現できる。このような一部のライブラリまたは機能モジュールを含まないプログラムであっても、本発明の技術的範囲に含まれ得る。
画像マッチングプログラム122、マッチグラフ生成プログラム124、コミュニティ検出プログラム126、および検索プログラム128は、上述したようないずれかの記録媒体に格納されて流通するだけでなく、インターネットまたはイントラネットを介してサーバ装置などからダウンロードすることで配布されてもよい。
図3には、単一の情報処理装置が情報処理システム100を構成する例を示すが、これに限らず、ネットワークを介して接続された複数の情報処理装置が明示的または黙示的に連携して、本実施の形態に従う情報処理システム100を実現するようにしてもよい。
なお、図3には、コミュニティ検出の対象となる複数の入力画像130が補助記憶装置120に格納される例を示すが、複数の入力画像130をネットワーク上の1または複数のサーバ装置に格納するようにしてもよい。同様に、画像データベース6についても、ネットワーク上の1または複数のサーバ装置に格納するようにしてもよい。
さらに、コンピュータ(プロセッサ102)がプログラムを実行することで実現される機能の全部または一部を、集積回路などのハードワイヤード回路(hard-wired circuit)を用いて実現してもよい。例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などを用いて実現してもよい。
当業者であれば、本発明が実施される時代に応じた技術を適宜用いて、本実施の形態に従う情報処理システム100を実現できるであろう。
[C.マッチグラフの生成処理]
次に、本実施の形態に従うコミュニティ検出手法がコミュニティを検出する対象となるマッチグラフ2の生成処理について説明する。
図4は、本実施の形態に従うコミュニティ検出手法がコミュニティを検出する対象となるマッチグラフ2の一例を示す模式図である。なお、図4に示すマッチグラフ2そのものが視覚化されている必要はなく、情報処理システム100の内部で論理的に生成されるようなものであってもよい。
図4(A)を参照して、マッチグラフ2は、複数の頂点20および頂点20間のマッチングの有無を示す1または複数の辺22とからなる。頂点20の各々は、クラスタリング対象の入力画像130の各々に対応する。すなわち、図4(A)には、画像Aから画像Lまでの12枚の入力画像130についてのマッチグラフ2を示す。辺22の各々は、その辺が接続する2つの頂点(をそれぞれ示す入力画像)間がマッチングすることを表現する。
図4(A)には、一例として、辺22が方向の情報をもつ有向グラフの例を示す。情報処理システム100において、マッチグラフ2の辺22の各々は、辺22により結ばれる2つの頂点20にそれぞれ対応する入力画像130間の画像マッチング結果を示す。
画像マッチング方法としては、任意の手法を採用することができる。例えば、入力画像130間で対応する特徴点を探索する処理を採用する。より具体的には、局所的な特徴点を探索する方式などを採用することができる。
図4(A)に示すマッチグラフ2に示す例では、頂点Aから頂点Eに向けて辺22が存在しており、これは、頂点Aに対応する画像Aを参照画像(基準画像)とし、頂点Eに対応する画像Eを対象画像とした場合に、当該画像間に対応する特徴点が見つかったことを意味する。
一方、図4(A)に示すマッチグラフ2に示す例では、頂点Eから頂点Aに向けての辺は存在しておらず、これは、頂点Eに対応する画像Eを参照画像(基準画像)とし、頂点Aに対応する画像Aを対象画像とした場合には、当該画像間に対応する特徴点が見つからなかったことを意味する。
このように、画像マッチング処理においては、第1の入力画像が参照画像とされ、第2の入力画像が対象画像とされたときに、マッチングすると判断されたことに基づいて、マッチグラフ2において、第1の入力画像に対応する頂点から第2の入力画像に対応する頂点へ向けた辺が設けられるようにしてもよい。このような有向グラフであるマッチグラフ2を採用することで、コミュニティの検出精度を高めることができる。
上述の説明においては、有向グラフを例示したが、本実施の形態に従うコミュニティ検出手法は、辺22が方向の情報をもたない、無向グラフにも適用可能である。
図4(A)に示すようなマッチグラフ2は、例えば、非特許文献2に開示されるように、各入力画像に対して画像特徴量の類似度が高い入力画像とのみ画像マッチング処理を行うことで生成してもよいし、対象の入力画像130に含まれる2つの入力画像130の組み合わせのすべてについて画像マッチング処理を行うことで生成してもよい。
一般的に、画像特徴量の類似度の算出に要する時間は、画像マッチング処理に要する時間よりもはるかに短いため、入力画像130の画像数が膨大であっても、画像特徴量の類似度が高い入力画像とのみ画像マッチング処理を行うようにすること(すなわち、非特許文献2に開示される手法を用いること)で、より短時間にマッチグラフ2を生成することが可能となる。
図4(A)に視覚的に示されるマッチグラフ2を見れば、3つのコミュニティが含まれることを暗に知ることができるが、本実施の形態に従うコミュニティ検出手法は、後述するような手法により、マッチグラフ2に含まれるコミュニティを検出できる。すなわち、図4(B)に示すようなコミュニティの検出結果を得ることができる。
図4(B)に示すようなコミュニティの検出結果に基づいて、頂点A~Eにそれぞれ対応する画像A~Eが同一の被写体を撮影した入力画像の集合(コミュニティ1)であり、頂点F~Hにそれぞれ対応する入力画像F~Hが別の同一の被写体を撮影した入力画像の集合(コミュニティ2)であり、頂点I~Lにそれぞれ対応する入力画像I~Lがさらに別の同一の被写体を撮影した入力画像の集合(コミュニティ3)であることが分かる。
このように、複数の入力画像に含まれる組み合わせに対して画像マッチング処理を実行し、当該画像マッチング処理の結果に基づいて、入力画像間の関係を示すマッチグラフ2を生成する処理を採用してもよい。
図5は、本実施の形態に従う情報処理システム100が採用する画像マッチング処理の一例を説明するための図である。図5に示すように、参照画像とされた入力画像131に含まれる特徴点および対象画像とされた入力画像132に含まれる特徴点がそれぞれ抽出される。図5には、それぞれの入力画像から抽出された特徴点のうち、参照画像(入力画像131)から抽出された特徴点1311~1314が対象画像(入力画像132)から抽出された特徴点1321~1324と、それぞれ一致すると判断された例を示す。なお、抽出された特徴点の特徴量の類似度などに基づいて、入力画像間で対応する特徴点の対が探索および抽出される。
このような特徴点の対の探索および抽出によって、図4に示すようなマッチグラフ2が生成される。なお、複数の入力画像130についてのマッチグラフ2の生成方法のより詳細な手順については、特許文献1を参照されたい。
なお、上述のマッチグラフ2の生成処理については、典型的には、プロセッサ102がマッチグラフ生成プログラム124を実行することで実現されてもよい。また、上述の画像マッチング処理については、典型的には、プロセッサ102が画像マッチングプログラム122を実行することで実現されてもよい。
[D.コミュニティ検出手法]
次に、本実施の形態に従うコミュニティ検出手法は、複数の頂点を有するグラフに含まれるコミュニティを検出する。このようなコミュニティ検出手法として、ランダムウォーク類似度法に分類される手法について説明する。
(d1:ランダムウォーク類似度法の基本的なアイデア)
まず、ランダムウォーク類似度法の基本的なアイデアについて説明する。図6は、ランダムウォーク類似度法の基本的なアイデアを説明するための図である。図6には、2つのコミュニティを含むネットワークを示す。
図6を参照して、ランダムウォーク類似度法においては、対象のネットワークに含まれる各頂点20を出発頂点として、有限ステップ数(nステップ)のランダムウォークが実行される。ここで、「ランダムウォーク」は、現在の頂点に接続されている辺をランダムに選択しながら次の頂点に順次移動する運動を意味する。
このようなランダムウォークを行うと、同じコミュニティ内の頂点を出発したウォーカが通過する1または複数の頂点(以下、「通過頂点」とも称する。)は互いに類似することになる。例えば、図6のネットワークにおいて、頂点iおよび頂点jは、同一のコミュニティに属しており、これらの頂点を出発するウォーカの通過頂点は類似したものとなる。すなわち、頂点iを出発したウォーカの通過経路241と、頂点jを出発したウォーカの通過経路242とは、類似した頂点20を含む傾向が強くなる。
一方、頂点kは、頂点iおよび頂点jとは別のコミュニティに属しており、頂点kを出発するウォーカの通過頂点は、頂点iまたは頂点jを出発するウォーカの通過頂点とは異なったものとなる。すなわち、頂点kを出発したウォーカの通過経路243は、頂点iを出発したウォーカの通過経路241および頂点jを出発したウォーカの通過経路242とは、異なる頂点20を含む傾向が強くなる。
このように、ランダムウォーク類似度法では、対象のネットワークに含まれる各頂点を出発点として、接続されている辺を確率的に選択しつつ、有限ステップ数に亘ってネットワーク内を順次移動して、移動に係る通過経路が取得される。そして、各頂点を出発点とする通過経路同士の類似度に基づいて、互いに関連付けられる通過経路を決定するとともに、当該互いに関連付けられる通過経路の出発点にそれぞれ対応する頂点同士を互いに関連付ける処理が実行される。
ウォーカの通過頂点あるいは通過経路の類似度は、出発頂点毎に実行したランダムウォークについて、その通過頂点が互いにどの程度似ているかを示す指標である。このような類似度は、任意の方法で算出できる。以下、典型的な類似度の算出方法を示す。なお、以下の説明では、2つのウォーカ間の類似度を算出する場合について例示するが、3つ以上のウォーカ間の類似度を算出するようにしてもよい。
(1)通過頂点集合間のJaccard係数を用いる方法
頂点viを出発点としたウォーカの通過頂点集合Siとし、頂点vjを出発点としたウォーカの通過頂点集合をSjとすると、類似度simijとしてのJaccard係数は、以下の(1)式に従って算出できる。
(1)式において、Si∪Sjは、通過頂点集合Siおよび通過頂点集合Sjの少なくとも一方に属する頂点全体の集合(和集合)を意味し、Si∩Sjは、通過頂点集合Siおよび通過頂点集合Sjの両方に属する頂点全体の集合(積集合)を意味する。すなわち、類似度simijは、対象となる2つのウォーカのいずれかにおいて通過頂点となった頂点の数のうち、2つのウォーカに共通して通過頂点となった頂点の数の比率を示す。
対象のネットワークに含まれる頂点の数と同数の通過頂点集合が生成され、生成された通過頂点集合のうち2つの通過頂点集合の組み合わせのすべてについて、類似度がそれぞれ算出されることになる。
(2)通過頂点の頻度ベクトルのCOS類似度を用いる方法
通過頂点集合Sの各頂点についての通過頻度を多次元ベクトルとみなすことで、そのベクトル同士の類似度を用いるようにしてもよい。
例えば、頂点v1を出発点としたウォーカが、頂点v1を2回、頂点v2を3回、…、頂点vLを0回通過したとすると、各頂点の通過頻度を示す頻度ベクトルf1を(2,3,…,0)と定義できる。頻度ベクトルf1の次数はLとなり、L次元空間の空間ベクトルとみなすことができる。そして、L次元空間における、頻度ベクトル間の類似度として、COS(コサイン)(すなわち、頻度ベクトル間の相関係数)を用いることができる。
このように、頂点viを出発点としたウォーカによる各頂点の通過頻度を示す頻度ベクトルをfiとし、頂点vjを出発点としたウォーカの通過頂点頻度を示す頻度ベクトルをfjとすると、COS類似度cos(fi,fj)は、以下の(2)式に従って算出できる。ここで、・は内積を示し、||は大きさを示す。
対象のネットワークに含まれる頂点の数と同数の通過頂点集合および対応する頻度ベクトルが生成され、(2)式から明らかなように、生成された頻度ベクトルのうち2つの頻度ベクトルの組み合わせのすべてについて、COS類似度がそれぞれ算出されることになる。
(3)その他
上述のしたJaccard係数に代えて、Dice係数またはSimpson係数などを用いてもよい。
(d2:ランダムウォーク類似度法の課題および解決手段)
次に、本願発明者らが新たに見出したランダムウォーク類似度法の課題について説明する。
図7は、ランダムウォーク類似度法の課題を説明するための図である。図7には、偶発的なランダムウォークによる悪影響の一例を示す。図7を参照して、ウォーカは、しばしば早い段階で別のコミュニティに移動することがある。
図7に示す例では、頂点20(頂点i)を出発したウォーカが通過経路241に沿って移動する場合には、出発頂点である頂点iが属するコミュニティ1を適切に検出できる。
これに対して、頂点20(頂点i)を出発したウォーカが通過経路244に沿って移動する場合には、出発頂点である頂点iが属するコミュニティ1を適切に検出できない可能性が高まる。
このような誤検出の可能性を低減するために、ウォーカが、出発頂点が属するコミュニティから別のコミュニティに移動したような場合に生じる通過頂点を異常値(外れ値)として除外することが好ましい。
このような異常値の除外方法としては、同一の出発頂点について多数回のランダムウォークを行い、その結果に基づいて統計上の異常値を除外する。より具体的には、出発頂点毎にウォーカが通過した頂点のうち、統計的にその頻度が小さいものを異常値として除外する。
典型的には、同一の頂点から多数回に亘ってランダムウォークを行い、ランダムウォークの実行により得られた通過頂点のうち、合計数が予め定められたしきい値以下(あるいは、しきい確率以下)であるものを通過頂点集合から除外することになる。このように、コミュニティを検出する処理には、同一の出発頂点についての通過頂点集合のうち、合計数が予め定められたしきい値以下であるものを通過頂点から除外する処理を含めるようにしてもよい。この異常点の除外処理の詳細については、特許文献1を参照されたい。
一方、異常点の除外処理の別手法として、同一の頂点から多数回に亘ってランダムウォークを実行し、それにより得られた多数の各ランダムウォークの通過頂点集合に含まれる数がしきい値以下の頂点を各通過頂点集合から除去した後、各通過頂点集合の和集合を出発頂点のランダムウォーク通過頂点集合とみなすようにしてもよい。このような異常点の除外処理の詳細については、非特許文献1を参照されたい。
図8は、ランダムウォーク類似度法の課題を説明するための別の図である。図8には、ネットワークにサイズの異なる複数のコミュニティが含まれる場合の課題を示す。
図8を参照して、小さなコミュニティであるコミュニティ1の検出を想定すると、ランダムウォークを行うステップ数を小さくすることで、出発頂点が属するコミュニティとは別のコミュニティに移動する確率を下げることができる。その結果、コミュニティ1の各頂点を出発したウォーカの通過頂点は互いに類似することになり、小さなコミュニティであるコミュニティ1を検出し易くなる。
一方、大きなコミュニティであるコミュニティ2の検出を想定すると、ランダムウォークを行うステップ数を小さくすることで、ウォーカは、コミュニティ2の一部の頂点のみを通過することになる(例えば、通過頂点集合261,262)。この結果、コミュニティ2の一部の頂点が小さなコミュニティとして検出される。
これらの小さなコミュニティの間で、共通の頂点が含まれるコミュニティ同士を繰り返し結合することで、大きなコミュニティを検出できる。
このように、ランダムウォークを行うステップ数を小さく設定すると、同一の小さなコミュニティ内の頂点を出発したウォーカの通過頂点は類似し易く、この場合には、小さなコミュニティを検出する傾向が強くなる。反面、ステップ数が小さいと、大きなコミュニティ内の頂点を出発したウォーカは、そのコミュニティ内の頂点を十分に周遊することができず、同一の大きなコミュニティ内の頂点を出発したウォーカの通過頂点同士の類似度は高くならないので、その結果、大きなコミュニティの検出に失敗する可能性が高まる。
一方、ステップ数を大きく設定すると、同一の大きなコミュニティ内の頂点を出発したウォークの通過頂点は類似し易く、この場合には、大きなコミュニティを適切に検出できるようになる。反面、小さなコミュニティ内の頂点を出発したウォーカは、設定されたステップ数のランダムウォークを終える前に、初期コミュニティから別のコミュニティに移動してしまう可能性が高くなる。そのため、同一の小さなコミュニティ内の頂点を出発したウォーカの通過頂点同士の類似度は低くなり、その結果、小さなコミュニティの検出に失敗する可能性が高まる。
別の見方をすると、ステップ数を大きく設定すると、小さなコミュニティ内の頂点を出発したウォーカが大きなコミュニティに移り、その後も大きなコミュニティ内でウォーカが多数のランダムウォークを行う可能性が高くなる。このとき、小さなコミュニティ内の頂点を出発したウォーカの通過頂点集合と大きなコミュニティ内の頂点を出発したウォーカの通過頂点集合とが類似してしまい、小さなコミュニティ内の頂点が大きなコミュニティ内の要素であると誤って判断される可能性が高くなる。
以上のように、ランダムウォーク類似度法を用いて、小さなコミュニティおよび大きなコミュニティが混在したネットワークからコミュニティを検出しようとすると、設定されるステップ数に応じて、小さなコミュニティおよび大きなコミュニティのいずれか一方については、適切に検出できない可能性が高まるという課題がある。
上述したような課題に対して、ランダムウォークを行うステップ数を小さくすることにより、小さなコミュニティを検出し易くするとともに、大きなコミュニティにおいて検出された小さなコミュニティ同士を、共通頂点要素をもつときには結合することで大きなコミュニティも検出するという対策が可能である。しかしながら、ネットワークに含まれる小さなコミュニティと大きなコミュニティのサイズが大きく異なっていると、このような対策でも十分ではない場合が生じ得る。
このような本願発明者らが新たに見出した新たな課題に対して、本実施の形態に従うコミュニティ検出手法においては、ランダムウォークを行うステップ数を相対的に大きくしておくとともに、出発頂点が属する初期コミュニティに含まれる各頂点をウォーカが概ね巡回し、かつ、別のコミュニティに移動する前に、ウォーカを制止するように制御する。
このようなウォーカを制止する処理を追加することによって、ネットワークにサイズの異なる複数のコミュニティが含まれていても、各コミュニティを適切に検出できる。
すなわち、ランダムウォーク類似度法において、実行するランダムウォークのステップ数を大きく設定しても、ウォーカが初期コミュニティから別のコミュニティに移動する前であって、初期コミュニティ内の頂点を概ね通過した時点で制止することができれば、ランダムウォーク類似度法は、小さなコミュニティおよび大きなコミュニティの両方を適切に検出できるようになる。
(d3:ウォーカを制御する基本的なアイデア)
次に、本実施の形態に従う、複数の頂点を有するグラフを探索するランダムウォークを制御する制御方法が採用する、ウォーカを制御するための基本的なアイデアについて説明する。図9は、本実施の形態に従うコミュニティ検出手法におけるウォーカを制止する基本的なアイデアを説明するための図である。図9には、図8と同様に、サイズの異なるコミュニティ1および2が含まれるネットワークを示す。
図9(A)には、コミュニティ1に属する頂点から出発したウォーカがコミュニティ1(初期コミュニティ)内を移動している状態を示し、図9(B)には、ウォーカがコミュニティ1からコミュニティ2に移動してコミュニティ2内を移動している状態を示す。
ここで、ウォーカが通過した頂点の数(頂点の種類数;同一頂点の重複を除いた通過頂点の数)を「通過頂点数」と定義する。すなわち、「通過頂点数」は、ウォーカが1回以上通過したことのある頂点の数を意味する。
図9(A)および図9(B)には、ウォーカのそれぞれの移動状態に対応して、ウォーカのステップ数と通過頂点数との関係を模式的に示す。基本的には、ウォーカのステップ数が増加するに伴って通過頂点数は単調増加する。図9(A)に示すように、ウォーカが初期コミュニティ内を移動している限りにおいて、この通過頂点数の増加度合いは、当該初期コミュニティに含まれる頂点の総数に近付くにつれて緩やかになる。
これに対して、図9(B)に示すように、ウォーカが初期コミュニティから別のコミュニティに移動すると、移動先の別のコミュニティにおいて新たな頂点を通過することになるので、通過頂点数の増加度合いは再度大きくなる。
このように、本実施の形態に従うコミュニティ検出手法におけるウォーカの制止手法は、ウォーカのステップ数に対する通過頂点数の変化の度合いに基づいて、ウォーカを制止するか否かを判断する。
次に、実際のネットワークを参照して、ウォーカの制止手法についてより具体的に説明する。図10は、本実施の形態に従うコミュニティ検出手法が採用するウォーカを制止する処理を説明するための図である。
図10には、実際に収集された画像から構築したマッチグラフ(ネットワーク)の1つの連結成分について、ランダムウォークを行ったときのウォーカのステップ数と通過頂点数との関係を示す。対象のネットワークの頂点数は623であり、エッジ数は7979であり、コミュニティ数は10であり、含まれているコミュニティサイズの最大値は500であり、コミュニティサイズの最小値は1である。
図10に示す実行結果は、サイズ17のコミュニティに属している頂点を出発頂点としてランダムウォークを行ったことにより得られたものである。
図10を参照して、ウォーカが出発してから6ステップ目までは、ウォーカのステップ数とウォーカが通過した頂点数(通過頂点数)は同じ値である。7ステップ目から38ステップ目までは、ウォーカが同じ頂点を何度も通過するため、ウォーカの通過頂点数の増加は鈍化する。そして、39ステップ目にウォーカは初期コミュニティから別のコミュニティに移動し、通過頂点数は再度大きく増加する。
ランダムウォーク類似度法においては、ウォーカが初期コミュニティから別のコミュニティに移動するステップ(この例では、39ステップ目)より前に、ウォーカを制止することが好ましい。また、6ステップ目以前は、まだウォーカがコミュニティ内の頂点を十分に周遊していないので、7ステップ目以降にウォーカを制止することが好ましい。
以上の条件を組み合わせると、ランダムウォーク類似度法においては、7ステップ目から38ステップ目までの間の追加頂点数の増加が鈍化している区間でウォーカを制止することが理想である。このようなウォーカを制止する条件としては、各種の条件を用いることができる。
例えば、ウォーカが同じ頂点を2度通過することを、ウォーカを制止する条件として採用することもできる。但し、出発直後のまだウォーカがコミュニティ内の頂点を十分に周遊していない状態であっても、ウォーカが通過済みの頂点を再度通過することもある。そのため、ウォーカを制止する条件としては、通過頂点数の増加度合いを用いることが好ましい。
一例として、図10に示すように、ウォーカの一定のステップ数幅wに対するウォーカの通過頂点数の増加(ni-ni-(w-1))(iはステップ数を示す)が予め定められたしきい値THs以下になったことを、ウォーカを制止する条件として採用してもよい。
ここで、ウォーカを制止する条件として用いるステップ数幅wは、対象のネットワークに含まれるコミュニティサイズを示すパラメータh(実験的に決定される)を基準として定めてもよい(例えば、w=α×h)。また、しきい値THsは、ステップ数幅wを基準として定めてもよい(例えば、THs=β×w;0<β<1)。
これらのパラメータは、含まれるコミュニティのサイズなどが既知のネットワークに対して適用して得られる結果に基づいて、適宜調整するようにしてもよい。
(d4:抑制ランダムウォーク類似度法の処理手順)
次に、上述したウォーカを制限する機能を含むランダムウォーク類似度法(以下、「抑制ランダムウォーク類似度法」とも称する。)の処理手順について説明する。
図11は、本実施の形態に従う抑制ランダムウォーク類似度法における抑制ランダムウォーク実行に係る処理手順を示すフローチャートである。図11には、複数の頂点を有するグラフを探索するランダムウォークを制御する制御方法に係る処理手順が示されている。図11に示す各ステップは、図2に示すフローチャートのステップS4の処理内容に相当し、典型的には、情報処理システム100のプロセッサ102がコミュニティ検出プログラム126を実行することで実現される。
図11を参照して、情報処理システム100は、対象のネットワークに含まれる頂点のリストを生成する(ステップS100)。そして、情報処理システム100は、生成したリストに含まれるいずれかの頂点を出発頂点として選択する(ステップS102)とともに、選択されている出発頂点についてのランダムウォークの試行回数をリセットする(ステップS104)。このように、情報処理システム100は、対象のネットワークに含まれる複数の頂点の各々を出発頂点として選択する処理を実行する。
続いて、情報処理システム100は、ランダムウォークを行う。すなわち、情報処理システム100は、選択された出発頂点から接続されている辺を確率的に選択しつつ、予め定められたステップ数に亘ってネットワーク(グラフ)内を順次移動する処理を実行する。
より具体的には、情報処理システム100は、まず、ウォーカを出発頂点に配置する(ステップS106)。そして、情報処理システム100は、ウォーカが配置されている頂点に接続されている辺をランダムに選択して次の頂点にウォーカを移動させる(ステップS108)とともに、ステップ数を1だけインクリメントする(ステップS110)。なお、有向グラフにおいては、ステップS108で他の頂点へ移動するための辺が存在しない可能性がある。そのときは、処理はステップS120へ進む。
そして、情報処理システム100は、現在のステップ数が設定されたステップ数に到達したか否かを判断する(ステップS112)。現在のステップ数が設定されたステップ数に到達していれば(ステップS112においてYES)、情報処理システム100は、現在までのウォーカの通過経路に含まれる頂点を、今回の試行についてのウォーカの通過頂点集合として出力する(ステップS120)。
一方、現在のステップ数が設定されたステップ数に到達していなければ(ステップS112においてNO)、情報処理システム100は、順次移動に伴って1回以上の通過があった頂点の数である通過頂点数を算出する処理を実行する。より具体的には、情報処理システム100は、ウォーカが移動先の頂点を通過済であるか否かを判断する(ステップS114)。ウォーカが移動先の頂点を通過済でなければ(ステップS114においてNO)、情報処理システム100は、通過頂点数を1だけインクリメントする(ステップS116)。ウォーカが移動先の頂点を通過済であれば(ステップS114においてYES)、ステップS116の処理はスキップされる。
さらに、情報処理システム100は、順次移動のステップ数と通過頂点数との関係に基づいて、設定されたステップ数に到達する前に順次移動を途中終了すべきか否かを判断する処理を実行する。より具体的には、情報処理システム100は、通過頂点数の増加度合い(典型的には、現在のステップ数および通過頂点数の変化)に基づいて、ウォーカを制止する条件が成立しているか否かを判断する(ステップS118)。上述の図10に示す例では、情報処理システム100は、順次移動のステップ数の増加に対する通過頂点数の増加の割合が予め定められたしきい値以下であるか否かに基づいて、設定されたステップ数に到達する前に順次移動を途中終了すべきか否かを判断する。
ウォーカを制止する条件が成立していれば(ステップS118においてYES)、情報処理システム100は、現在までのウォーカの通過経路に含まれる頂点を、今回の試行についてのウォーカの通過頂点集合として出力する(ステップS120)。
このように、情報処理システム100は、順次移動が行われる毎に、設定されたステップ数に到達する前に順次移動を途中終了すべきか否かを判断してもよい。なお、後述するように、設定されたステップ数のランダムウォークを行った後に判断するようにしてもよい。
一方、ウォーカを制止する条件が成立していなければ(ステップS118においてNO)、ステップS108以下の処理が繰り返される。
ステップS120の後、情報処理システム100は、選択されている出発頂点についてのランダムウォークの試行回数を1だけインクリメントする(ステップS122)。そして、情報処理システム100は、選択されている出発頂点についてのランダムウォークの現在の試行回数が設定された試行回数に到達したか否かを判断する(ステップS124)。
選択されている出発頂点についてのランダムウォークの現在の試行回数が設定された試行回数に到達していなければ(ステップS124においてNO)、ステップS106以下の処理が繰り返される。このように、ネットワーク(グラフ)内を順次移動する処理は、予め定められた試行回数だけ繰り返される。
一方、選択されている出発頂点についてのランダムウォークの現在の試行回数が設定された試行回数に到達していれば(ステップS124においてYES)、情報処理システム100は、選択されている出発頂点についてのランダムウォークの試行を完了する。そして、情報処理システム100は、生成したリストに含まれるすべての頂点についてのランダムウォークの試行が完了したか否かを判断する(ステップS126)。
生成したリストに含まれるすべての頂点についてのランダムウォークの試行が完了していなければ(ステップS126においてNO)、情報処理システム100は、生成したリストに含まれる別の頂点を出発頂点として選択する(ステップS128)とともに、ステップS104以下の処理を繰り返す。
生成したリストに含まれるすべての頂点についてのランダムウォークの試行が完了していれば(ステップS126においてYES)、抑制ランダムウォーク類似度法における抑制ランダムウォーク実行に係る処理は終了する。
図11に示す抑制ランダムウォーク類似度法における抑制ランダムウォークの実行により得られる出発頂点毎の通過頂点集合に基づいて、上述したような方法に従って、コミュニティが検出される。すなわち、情報処理システム100は、出発頂点毎の順次移動を終了するまでに通過した頂点集合に基づいて、ネットワーク(グラフ)に含まれるコミュニティを検出する処理を実行する。
なお、抑制ランダムウォーク類似度法は、重み無し無向グラフ、重み付き無向グラフ、重み無し有向グラフ、重み付き有向グラフのいずれにも適用することが可能である。
(d5:ウォーカ制止処理の処理手順の変形例1)
図11に示す処理手順においては、ウォーカを制止する条件が成立した段階で、ランダムウォークを制止する方法を例示したが、これに限らず、予め設定されたステップ数のランダムウォークを行った後に、通過頂点集合として採用すべき区間を事後的に決定するようにしてもよい。
このような事後的にウォーカを制止する条件を判断することで、ウォーカを制止する条件を動的に変化させて、最適なステップ数でコミュニティを検出できる。
(d6:ウォーカ制止処理の処理手順の変形例2)
図11に示す処理手順においては、同一の出発頂点についてのランダムウォークの試行毎に個別に制止する条件を判断する方法を例示したが、これに限らず、同一の出発頂点についてのランダムウォークの結果集合に対して、統計的な処理を実行することで、制止する条件を決定してもよい。すなわち、情報処理システム100は、同一の出発頂点についての通過経路の集合に基づいて、順次移動を途中終了すべきステップ数を決定するようにしてもよい。
より具体的には、同一の頂点を出発したウォーカの通過頂点数の変化は、互いに類似したものとなる。そのため、同一の頂点を出発したウォーカの通過経路の集合を統計処理することで、各出発頂点について適切なステップ数を決定してもよい。具体的には、ウォーカの通過経路の各々において、通過頂点数の増加が緩やかになった後に、再度増加し始めるステップ数を算出し、それぞれ算出されたステップ数を統計的に処理することで、対象の通過頂点に対する有効なステップ数を決定できる。そして、決定されたステップ数の範囲で通過頂点集合を生成するようにしてもよい。
このような統計的な手法を採用することで、頂点毎に適切なウォーカを制止する条件を決定できる。
[E.実験結果]
次に、本実施の形態に従う抑制ランダムウォーク類似度法によるコミュニティ検出性能を評価した実験結果の一例について説明する。
特許文献1には、大量の入力画像からマッチグラフを生成した上で、ランダムウォーク類似度法を適用して、入力画像を主被写体毎にクラスタリングする手法を開示する。以下の説明においては、特許文献1と同様の手法で生成されたマッチグラフに対して、従来のランダムウォーク類似度法(RWS)および本実施の形態に従う抑制ランダムウォーク類似度法(RRWS)を適用した場合のコミュニティの検出結果を評価した。併せて、他のコミュニティ検出手法を適用した場合のコミュニティの検出結果も示す。
他のコミュニティ検出手法としては、非特許文献3に開示されるSpin手法、非特許文献4に開示されるInfo手法、非特許文献5に開示されるCDT手法、および、非特許文献6に開示されるCON手法を対象とした。
具体的には、画像共有サービス「Flickr」から「todaiji」という検索ワードを用いて「東大寺」に関連した入力画像を収集し、これらの収集された入力画像のうち著名な被写体が写ったもののみを主被写体名でラベリングを行った。さらに、ラベリングを行った入力画像のみを用いてマッチグラフを生成し、最もサイズの大きい連結成分(以下「連結成分1」とも称す。)および2番目にサイズの大きい連結成分(以下、「連結成分2」とも称す。)に各コミュニティ検出手法を適用した。なお、連結成分の各々は、1または複数のコミュニティを含むことになる。
各コミュニティ検出手法により得られるクラスタ構造は、理想的には、主被写体毎に分けられたクラスタ構造となるべきである。得られたクラスタ構造と真のクラスタ構造(入力画像をラベリングした主被写体名により分けられたクラスタ構造)との間の正規化相互情報量(以下、「NMI」とも称す。)を用いて評価した。ここで、正規化相互情報量は、以下の(3)式に従って算出できる。
図12は、本実施の形態に従う抑制ランダムウォーク類似度法によるコミュニティ検出性能を評価した実験結果を示す図である。図12(A)には、連結成分1に対する検出結果を示し、図12(B)には、連結成分2に対する検出結果を示す。本実験に用いたコミュニティ検出手法はいずれも非決定的アルゴリズムなので、連結成分1および連結成分2に対して、それぞれ10回のコミュニティ検出を実行し、その結果を箱ひげ図として表現している。
図12に示すように、ランダムウォーク類似度法(RWS)自体は、従来手法(Spin,Info,CDT,CON)に比較してNMIが高いが、本実施の形態に従う抑制ランダムウォーク類似度法は、より高い検出精度を示していることが分かる。
さらに、連結成分2に対するランダムウォーク類似度法および抑制ランダムウォーク類似度法によるコミュニティ(クラスタ)の検出結果を表1に示す。
連結成分2は、8つのコミュニティを含んでおり、表1においては、それぞれのコミュニティの要素数がコミュニティサイズの欄に示されている。表1の「○」は、ランダムウォーク類似度法または抑制ランダムウォーク類似度法が各コミュニティの検出に成功したことを示し、「×」は各コミュニティの検出に失敗したことを示す。
なお、ランダムウォーク類似度法において,ランダムウォークを102ステップ行い、抑制ランダムウォーク類似度法ではランダムウォークを多い134ステップ行った。
表1に示されるように、ランダムウォーク類似度法は、コミュニティサイズ276(コミュニティ1)およびサイズ84(コミュニティ2)といったサイズの大きいコミュニティについては検出できたが、コミュニティサイズ26(コミュニティ3)といったサイズの小さいコミュニティについては検出できなかった。この原因としては、コミュニティ3内の頂点を出発したウォーカの多くは、102ステップを終える前に初期コミュニティとは別のコミュニティに移動してしまったためであると考えられる。
一方、抑制ランダムウォーク類似度法では、コミュニティ3内の頂点を出発したウォーカの多くが初期コミュニティから別のコミュニティへ移動する前に制止されたため、サイズの大きなコミュニティ1およびコミュニティ2に加えて、サイズの小さなコミュニティ3についても適切に検出できたものと考えられる。
[F.応用例]
本実施の形態に従う抑制ランダムウォーク類似度法を用いてクラスタリング(コミュニティ検出)された入力画像および対応する名称などのクラスタ名(ラベル)は、様々なアプリケーションに応用可能である。
例えば、クラスタリングされた入力画像および対応するクラスタ名(ラベル)を用いて、ディープラーニングやサポートベクタマシーンなどの手法で機械学習することで、入力された画像の認識を実現できる。あるいは、機械学習ではなく、非特許文献7に開示されるような局所特徴点を利用した手法を用いても、入力された画像の認識を実現できる。
なお、入力画像に対応するクラスタ名(ラベル)は人が判断して付与するようにしてもよいし、非特許文献7に開示されるような手法を用いて、画像に付与された属性情報(例えば、タイトルやタグ)をテキストマイニングして自動で付与するようにしてもよい。
さらに、非特許文献8に開示されるような手法を用いて、クラスタリングされた入力画像に含まれる主被写体の領域を求めることもできる。これらの情報を統合して、機械学習することで(例えば、Faster R-CNNやYOLOなどの手法を用いて)、入力された画像の主被写体の認識に加えて、主被写体の領域の推定が可能となる。
さらに、上述したような方法により生成される入力された画像の主被写体を認識する機能(画像認識システム)をスマートフォンやタブレットPCなどの携帯端末200に実装することで、観光支援アプリケーションを実現できる。
このような観光支援アプリケーションを実現する場合には、観光対象の被写体を含む大量の入力画像を取得するとともに、当該取得された入力画像間の関係を示すマッチグラフ2を生成することになる。
図13は、本実施の形態に従うコミュニティ検出手法による結果を利用した観光支援アプリケーションの画面例を示す模式図である。図13(A)には、ユーザが携帯端末200で任意の物体を撮影すると、当該撮影された物体に関する情報を表示する画面例を示す。このような観光支援画面を表示するために、例えば、クラスタリングにより得られた各クラスタ(コミュニティ)に対応する解説を付与しておき、そのクラスタが画像認識されたときに、対応するクラスタ名である物体名および解説を表示するようにしてもよい。
ここで、解説は、予め人が付与するようにしてもよいし、クラスタ名(物体名)を検索ワードとして、ウィキペディアやその他インターネットサイトの情報をテキストマイニングし、自動で付与するようにしてもよい。さらには、ウェブブラウザを用いて、ウィキペディア等の解説ページをユーザに提示するようにしてもよい。
このように、観光支援アプリケーションを実現する場合には、検出されたクラスタ(コミュニティ)に対して、名称、解説および領域を含む属性情報を付与する処理が実行される。
図13(B)には、観光支援アプリケーションが、画像認識した物体に対応付けられた位置情報と、携帯端末200に内蔵されているGPSなどから取得されたユーザの位置情報とに基づいて、近くにある人気建造物へユーザを誘導している画面例を示す。このようなユーザを誘導する機能を実現するためには、画像クラスタリングにより得られた各クラスタに位置情報および人気度を付与し、さらに各クラスタの代表画像を決定しておく必要がある。これらの情報は、すべて予め人が付与するようにしてもよいし、画像共有サイト上でユーザが対象の画像に付与した位置情報を利用して付与してもよいし、対象の画像に含まれるExif情報などを利用して自動で計算して付与してもよい。また、人気度は、各クラスタの要素数(画像数)および各画像の画像共有サイト上の人気度や閲覧数などを利用して付与してもよい。さらに、各クラスタの代表画像は、非特許文献9に開示されるような手法を用いて自動的に決定してもよい。
図13に示される観光支援アプリケーションの画面左下の切替ボタン202は、機能切替の指示を受け付ける。切替ボタン202が押下されることで、図13(A)に示されるような解説モードの画面が表示され、あるいは、図13(B)に示されるような誘導モードの画面が表示される。
図13に示される観光支援アプリケーションの画面右下の切替ボタン204は、表示言語切替の指示を受け付ける。切替ボタン204が押下されることで、任意の言語に切り替えられるようにしてもよい。表示言語は、スマートフォンやタブレットPCのOSの使用言語と一致させるのが基本であるが、切替ボタン204が押下されることで、表示言語を英語、スペイン語、中国語などのユーザが好む言語に切り替えることができる。
このような表示言語切替のための各言語の情報は、予め人が作成して観光支援アプリケーションに実装しておいてもよいし、例えば、日本語などの特定の言語で解説などを作成しておき、その後、非特許文献10に開示されるような多言語翻訳技術を用いて、自動で各種言語による解説等を作成し、観光支援アプリケーションに実装してもよい。
図13に示すように、観光支援アプリケーションは、撮影により取得された撮影画像を画像認識して、当該撮影画像が属するコミュニティを決定するとともに、対応する属性情報(名称、解説および領域などを含む)を表示する。
説明の便宜上、観光支援アプリケーションをスタンドアローンで動作するものとして説明したが、サーバークライアント方式により、上記一部の機能をサーバ側で実現するようにしてもよい。例えば、携帯端末200に実装されたアプリケーションは、カメラでの撮影により任意の画像を取得すると、別に設置されたサーバに当該画像を送信し、送信先のサーバが画像認識を実行し、その画像認識の結果を携帯端末200に戻すようにしてもよい。携帯端末200は、サーバからの画像認識の結果に応じて、解説や近くの有名建造物への案内を提示するようにしてもよい。
[G.変形例]
本実施の形態に従う抑制ランダムウォーク類似度法をマッチグラフに適用した例およびその応用について説明したが、本実施の形態に従う抑制ランダムウォーク類似度法は、マッチグラフに限らず、任意のグラフに含まれるコミュニティの検出に利用できる。
例えば、ソーシャル・ネットワーキング・サービス(SNS)の利用者をユーザとし、「友達」や「フォロー」関係を辺で表現したソーシャルグラフのコミュニティ検出などに適用できる。この場合、同じコミュニティに属するのに辺で繋がっていないユーザに対し、繋がり推薦を行うといったサービスを実現できる。
また、商品を頂点とし、同時購入された商品を辺で結んだ購買グラフのコミュニティ検出を行う際にも、本実施の形態に従う抑制ランダムウォーク類似度法を利用できる。この場合、ネットショッピングなどでユーザが商品を購入したときに、ネットショッピングサイトは、同じコミュニティ内の別の商品をユーザに推薦することができる。
上述の説明においては、本実施の形態に従う制止手法をランダムウォーク類似度法のランダムウォークに適用する例を述べたが、本制止手法は、その他のランダムウォークを利用するコミュニティ検出手法やその他の応用で利用されるランダムウォーク全般にも適用可能である。
[H.利点]
本実施の形態に従うコミュニティ検出手法である抑制ランダムウォーク類似度法においては、ランダムウォークをより多くのステップで行うことになるが、ウォーカを制止する条件を適切に決定することで、初期コミュニティ内を概ね周遊したところでウォーカを制止できる。これにより対象のネットワークに小さなコミュニティおよび大きなコミュニティが混在していても、それぞれのコミュニティを適切に検出できる。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。