(57)【要約】【課題】サイズの異なる複数のコミュニティを含むネットワークに対しても、適切なランダムウォークを実現できる手法が要望されている。【解決手段】複数の頂点を有するグラフを探索するランダムウォークを制御する制御方法は、グラフに含まれる複数の頂点の各々を出発頂点として選択するステップと、選択された出発頂点から接続されている辺を確率的に選択しつつ、予め定められたステップ数に亘ってグラフ内を順次移動するステップと、順次移動に伴って１回以上の通過があった頂点の数である通過頂点数を算出するステップと、順次移動のステップ数と通過頂点数との関係に基づいて、予め定められたステップ数に到達する前に順次移動を途中終了すべきか否かを判断するステップとを含む。【選択図】図９
2020101909.tif 000002
【特許請求の範囲】
【請求項１】
複数の頂点を有するグラフを探索するランダムウォークを制御する制御方法であって、
前記グラフに含まれる前記複数の頂点の各々を出発頂点として選択するステップと、
前記選択された出発頂点から接続されている辺を確率的に選択しつつ、予め定められたステップ数に亘って前記グラフ内を順次移動するステップと、
前記順次移動に伴って１回以上の通過があった頂点の数である通過頂点数を算出するステップと、
前記順次移動のステップ数と前記通過頂点数との関係に基づいて、前記予め定められたステップ数に到達する前に前記順次移動を途中終了すべきか否かを判断するステップとを備える、制御方法。
【請求項２】
前記判断するステップは、前記通過頂点数の増加度合いに基づいて、前記予め定められたステップ数に到達する前に前記順次移動を途中終了すべきか否かを判断するステップを含む、請求項１に記載の制御方法。
【請求項３】
前記判断するステップは、前記順次移動が行われる毎に、前記予め定められたステップ数に到達する前に前記順次移動を途中終了すべきか否かを判断するステップを含む、請求項１または２に記載の制御方法。
【請求項４】
前記グラフ内を順次移動するステップは、予め定められた試行回数だけ繰り返される、請求項１〜３のいずれか１項に記載の制御方法。
【請求項５】
前記判断するステップは、同一の出発頂点についての通過経路の集合に基づいて、前記順次移動を途中終了すべきステップ数を決定する、請求項４に記載の制御方法。
【請求項６】
観光対象の被写体を含む入力画像を取得するとともに、前記取得された入力画像間の関係を示すグラフを生成する手段を備え、前記グラフは各入力画像を頂点として含み、
前記グラフに含まれる複数の頂点の各々を出発頂点として選択する手段と、
前記選択された出発頂点から接続されている辺を確率的に選択しつつ、予め定められたステップ数に亘って前記グラフ内を順次移動する手段と、
前記順次移動に伴って１回以上の通過があった頂点の数である通過頂点数を算出する手段と、
前記順次移動のステップ数と前記通過頂点数との関係に基づいて、前記予め定められたステップ数に到達する前に前記順次移動を途中終了すべきか否かを判断する手段と、
出発頂点毎の前記順次移動を終了するまでに通過した頂点集合に基づいて、前記グラフに含まれるコミュニティを検出する手段と、
前記検出されたコミュニティに対して、名称、解説および領域を含む属性情報を付与する手段と、
撮影により取得された撮影画像を画像認識して、当該撮影画像が属するコミュニティを決定するとともに、対応する属性情報を表示する手段とを備える、観光支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、複数の頂点を有するグラフを探索するランダムウォークを制御する制御方法、および、その制御方法により制御されたランダムウォークにより検出されるコミュニティを利用した観光支援システムに関する。
【背景技術】
【０００２】
近年、グラフ理論におけるコミュニティ検出手法は、画像クラスタリング、ソーシャルメディアにおける繋がり推薦、ネットショッピングにおける商品推薦など様々な分野で利用され、その重要性が増加している。
【０００３】
このようなコミュニティ検出手法の一つとしてランダムウォーク類似度法がある（例えば、特許文献１など参照）。これまでに実験により、ランダムウォーク類似度法は、他のコミュニティ検出手法に比較して高い検出精度を有することが示されている（非特許文献１など参照）。
【０００４】
ランダムウォーク類似度法の基本的なアイデアは、複数の頂点を有するグラフ（以下、「ネットワーク」とも称する。）の各頂点から有限ステップ数のランダムウォークを行い、その通過頂点が類似している複数のランダムウォーカ（以下、単に「ウォーカ」とも略称する。）について、各ウォーカの出発頂点が同一のコミュニティに属するとしてクラスタリングするというものである。このアイデアは、ウォーカが出発して暫くの間は、辺が密に繋がった出発頂点が属するコミュニティ（以下、「初期コミュニティ」とも称する。）内を周遊するというランダムウォークの特性に基づくものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−１５１８７６号公報
【非特許文献】
【０００６】
【非特許文献１】M. Okuda et al., "Community detection using random-walk similarity and application to image clustering," in Proceedings of IEEE International Conference on Image Processing, 2017, pp. 1292-1296.
【非特許文献２】S. Agarwal, N. Snavely, L. Simon, S. M. Seiz, and R. Szeliski, "Building Rome in a day", Proceedings of IEEE International Conference on Computer Vision, pp. 72-79, 2009.
【非特許文献３】J. Reichardt et al., "Statistical mechanics of community detection," Physical Review E, vol. 74, no. 1, pp. 016110-1−016110-14, 2006.
【非特許文献４】M. Rosvall et al., "The map equation," The European Physical Journal Special Topics, vol. 178, pp. 13-23, 2009.
【非特許文献５】X. Fu et al., "Threshold random walks for community structure detection in complex networks," Journal of Software, vol. 8, no. 2, pp. 286-295, 2013.
【非特許文献６】P. D. Meo et al., "Mixing local and global information for community detection in large networks," Journal of Computer and System Sciences, vol. 80, no. 1, pp. 72-87, 2014.
【非特許文献７】T. Weyand et al., "Visual landmark recognition from internet photo collections: A large-scale evaluation," Computer Vision and Image Understanding, vol. 135, pp. 1-15, 2015.
【非特許文献８】X-S Wei et al.: "Deep descriptor transforming for image co-localization," in Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence, 2017.
【非特許文献９】T. Weyand et al., "Discovering favorite views of popular places with iconoid shift," in Proceedings of the International Conference on Computer Vision, 2011.
【非特許文献１０】国立研究開発法人 情報通信研究機構, “VoiceTraサポートページ-NICT”, ［online］, ［２０１８年７月２０日検索］, インターネット＜https://voicetra.nict.go.jp＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ランダムウォーク類似度法においては、ランダムウォークを行うステップ数が重要なパラメータとなる。
【０００８】
例えば、ステップ数を小さく設定すると、同一の小さなコミュニティ内の頂点を出発したウォーカの通過頂点は類似し易く、この場合には、小さなコミュニティを検出する傾向が強くなる。反面、ステップ数が小さいと、大きなコミュニティ内の頂点を出発したウォーカは、そのコミュニティ内の頂点を十分に周遊することができず、同一の大きなコミュニティ内の頂点を出発したウォーカの通過頂点同士の類似度は高くならないので、その結果、大きなコミュニティの検出に失敗する可能性が高まる。
【０００９】
一方、ステップ数を大きく設定すると、同一の大きなコミュニティ内の頂点を出発したウォークの通過頂点は類似し易く、この場合には、大きなコミュニティを適切に検出できるようになる。反面、小さなコミュニティ内の頂点を出発したウォーカは、設定されたステップ数のランダムウォークを終える前に、初期コミュニティから別のコミュニティに移動してしまう可能性が高くなる。そのため、同一の小さなコミュニティ内の頂点を出発したウォーカの通過頂点同士の類似度は低くなり、その結果、小さなコミュニティの検出に失敗する可能性が高まる。
【００１０】
このように、ランダムウォーク類似度法を用いて、小さなコミュニティおよび大きなコミュニティが混在したネットワークからコミュニティを検出しようとすると、設定されるステップ数に応じて、小さなコミュニティおよび大きなコミュニティのいずれか一方については、適切に検出できない可能性が高まるという課題がある。
【００１１】
そのため、サイズの異なる複数のコミュニティを含むネットワークに対しても、適切なランダムウォークを実現できる手法が要望されている。
【課題を解決するための手段】
【００１２】
本発明のある局面に従えば、複数の頂点を有するグラフを探索するランダムウォークを制御する制御方法が提供される。制御方法は、グラフに含まれる複数の頂点の各々を出発頂点として選択するステップと、選択された出発頂点から接続されている辺を確率的に選択しつつ、予め定められたステップ数に亘ってグラフ内を順次移動するステップと、順次移動に伴って１回以上の通過があった頂点の数である通過頂点数を算出するステップと、順次移動のステップ数と通過頂点数との関係に基づいて、予め定められたステップ数に到達する前に順次移動を途中終了すべきか否かを判断するステップとを含む。
【００１３】
好ましくは、判断するステップは、通過頂点数の増加度合いに基づいて、予め定められたステップ数に到達する前に順次移動を途中終了すべきか否かを判断するステップを含む。
【００１４】
好ましくは、判断するステップは、順次移動のステップ数の増加に対する通過頂点数の増加の割合が予め定められたしきい値以下であるか否かに基づいて、予め定められたステップ数に到達する前に順次移動を途中終了すべきか否かを判断するステップを含む。
【００１５】
好ましくは、判断するステップは、順次移動が行われる毎に、予め定められたステップ数に到達する前に順次移動を途中終了すべきか否かを判断するステップを含む。
【００１６】
好ましくは、グラフ内を順次移動するステップは、予め定められた試行回数だけ繰り返される。
【００１７】
好ましくは、判断するステップは、同一の出発頂点についての通過経路の集合に基づいて、順次移動を途中終了すべきステップ数を決定する。
【００１８】
好ましくは、制御方法は、出発頂点毎の順次移動を終了するまでに通過した頂点集合に基づいて、グラフに含まれるコミュニティを検出するステップをさらに含む。この制御方法によれば、複数の頂点を有するグラフに含まれるコミュニティを検出するコミュニティ検出方法を提供できる。
【００１９】
好ましくは、コミュニティを検出するステップは、同一の出発頂点についての通過頂点集合のうち、合計数が予め定められたしきい値以下であるものを通過頂点から除外するステップを含む。
【００２０】
好ましくは、制御方法は、複数の入力画像に含まれる組み合わせに対して画像マッチング処理を実行するステップと、画像マッチング処理の結果に基づいて、入力画像間の関係を示すグラフを生成するステップとをさらに含む。
【００２１】
本発明の別の局面に従えば、複数の頂点を有するグラフを探索するランダムウォークを制御する制御装置が提供される。制御装置は、グラフに含まれる複数の頂点の各々を出発頂点として選択する手段と、選択された出発頂点から接続されている辺を確率的に選択しつつ、予め定められたステップ数に亘ってグラフ内を順次移動する手段と、順次移動に伴って１回以上の通過があった頂点の数である通過頂点数を算出する手段と、順次移動のステップ数と通過頂点数との関係に基づいて、予め定められたステップ数に到達する前に順次移動を途中終了すべきか否かを判断する手段と、出発頂点毎の順次移動を終了するまでに通過した頂点集合に基づいて、グラフに含まれるコミュニティを検出する手段とを含む。
【００２２】
本発明のさらに別の局面に従う観光支援システムは、観光対象の被写体を含む入力画像を取得するとともに、取得された入力画像間の関係を示すグラフを生成する手段を含む。グラフは各入力画像を頂点として含む。観光支援システムは、グラフに含まれる複数の頂点の各々を出発頂点として選択する手段と、選択された出発頂点から接続されている辺を確率的に選択しつつ、予め定められたステップ数に亘ってグラフ内を順次移動する手段と、順次移動に伴って１回以上の通過があった頂点の数である通過頂点数を算出する手段と、順次移動のステップ数と通過頂点数との関係に基づいて、予め定められたステップ数に到達する前に順次移動を途中終了すべきか否かを判断する手段と、出発頂点毎の順次移動を終了するまでに通過した頂点集合に基づいて、グラフに含まれるコミュニティを検出する手段と、検出されたコミュニティに対して、名称、解説および領域を含む属性情報を付与する手段と、撮影により取得された撮影画像を画像認識して、当該撮影画像が属するコミュニティを決定するとともに、対応する属性情報を表示する手段とを含む。
【発明の効果】
【００２３】
本発明によれば、サイズの異なる複数のコミュニティを含むネットワークに対しても、適切なランダムウォークを実現できる。
【図面の簡単な説明】
【００２４】
【図１】本実施の形態に従うコミュニティ検出手法の応用例を説明するための図である。
【図２】本実施の形態に従うコミュニティ検出手法を用いた観光支援アプリケーションを提供するための処理手順を示すフローチャートである。
【図３】本実施の形態に従う情報処理システムのハードウェア構成の一例を示す模式図である。
【図４】本実施の形態に従うコミュニティ検出手法がコミュニティを検出する対象となるマッチグラフの一例を示す模式図である。
【図５】本実施の形態に従う情報処理システムが採用する画像マッチング処理の一例を説明するための図である。
【図６】ランダムウォーク類似度法の基本的なアイデアを説明するための図である。
【図７】ランダムウォーク類似度法の課題を説明するための図である。
【図８】ランダムウォーク類似度法の課題を説明するための別の図である。
【図９】本実施の形態に従うコミュニティ検出手法におけるウォーカを制止する基本的なアイデアを説明するための図である。
【図１０】本実施の形態に従うコミュニティ検出手法が採用するウォーカを制止する処理を説明するための図である。
【図１１】本実施の形態に従う抑制ランダムウォーク類似度法における抑制ランダムウォーク実行に係る処理手順を示すフローチャートである。
【図１２】本実施の形態に従う抑制ランダムウォーク類似度法によるコミュニティ検出性能を評価した実験結果を示す図である。
【図１３】本実施の形態に従うコミュニティ検出手法による結果を利用した観光支援アプリケーションの画面例を示す模式図である。
【発明を実施するための形態】
【００２５】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２６】
［Ａ．応用例］
まず、本実施の形態に従うコミュニティ検出手法の応用例について説明する。
【００２７】
図１は、本実施の形態に従うコミュニティ検出手法の応用例を説明するための図である。図１には、一例として、本実施の形態に従うコミュニティ検出手法を用いて大量の入力画像をクラスタリングするとともに、クラスリングされた結果を利用して観光支援アプリケーションを提供する例を示す。図２は、本実施の形態に従うコミュニティ検出手法を用いた観光支援アプリケーションを提供するための処理手順を示すフローチャートである。
【００２８】
図１および図２を参照して、まず、任意の方法で大量の入力画像を収集する（ステップＳ１）。収集された入力画像１３０間に画像マッチング処理を実行し（ステップＳ２）、得られた画像マッチング結果に基づいて、入力画像１３０間の関係を示すグラフ（以下、「マッチグラフ」とも称する。）を生成する（ステップＳ３）。ここで、「マッチグラフ」は、各入力画像を頂点とし、例えば、局所特徴点などを利用して画像間を辺で結んだグラフに相当する。
【００２９】
そして、生成されたマッチグラフ２に対して後述するようなコミュニティ検出手法を適用することで、マッチグラフ２に含まれるコミュニティ４を検出する。具体的には、生成されたマッチグラフ２に対して、後述するようなランダムウォーク類似度法を適用して、通過頂点集合を取得する（ステップＳ４）。そして、取得された通過頂点集合に対して、異常値（外れ値）の除外処理などを実行し（ステップＳ５）、マッチグラフ２に含まれるコミュニティ４を検出する（ステップＳ６）。大量の入力画像から生成されたマッチグラフ２を対象として検出されたコミュニティ４の各々は、大量の入力画像に含まれる同一または類似の被写体を含む画像群に相当する。
【００３０】
さらに、検出された各コミュニティに対して、ラベリング、解説の付与、位置情報の付与、多言語化処理などが実行されて、画像データベース６が生成される（ステップＳ７）。生成された画像データベース６を用いて、携帯端末２００などからの要求に応答して、観光支援アプリケーションに必要な情報などが提供される（ステップＳ８）。
【００３１】
［Ｂ．制御装置のハードウェア構造］
次に、本実施の形態に従うコミュニティ検出手法を実現するためのハードウェア構成の一例について説明する。
【００３２】
図３は、本実施の形態に従う情報処理システム１００のハードウェア構成の一例を示す模式図である。図３に示す情報処理システム１００は、本実施の形態に従う複数の頂点を有するグラフを探索するランダムウォークを制御する制御装置として機能する。情報処理システム１００は、コミュニティ検出手法を実行するコミュニティ検出装置としても機能し得る。情報処理システム１００は、さらにコミュニティ検出手法により検出されるコミュニティを利用したアプリケーションの提供なども可能になっている（図１のステップＳ４など参照）。すなわち、情報処理システム１００は、後述するような観光支援システムとしても機能する。
【００３３】
典型的には、情報処理システム１００は、パーソナルコンピュータなどの汎用コンピュータを用いて実現される。より具体的には、情報処理システム１００は、主要なハードウェアコンポーネントとして、プロセッサ１０２と、主メモリ１０４と、ディスプレイ１０６と、入力デバイス１０８と、ネットワークインターフェイス（Ｉ／Ｆ：interface）１１０と、光学ドライブ１１２と、補助記憶装置１２０とを含む。これらのコンポーネントは、内部バス１１６を介して互いに接続される。
【００３４】
プロセッサ１０２は、後述するような各種プログラムを実行することで、本実施の形態に従う画像クラスタリングなどに必要な処理を実現する演算主体であり、例えば、１または複数のＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）などで構成される。複数のコアを有するようなＣＰＵまたはＧＰＵを用いてもよい。
【００３５】
主メモリ１０４は、プロセッサ１０２がプログラムを実行するにあたって、プログラムコードやワークメモリなどを一時的に格納する記憶領域であり、例えば、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性メモリデバイスなどで構成される。
【００３６】
ディスプレイ１０６は、処理に係るユーザインターフェイスや処理結果などを出力する表示部であり、例えば、ＬＣＤ（Liquid Crystal Display）や有機ＥＬ（electroluminescence）ディスプレイなどで構成される。入力デバイス１０８は、ユーザからの指示や操作を受け付けるデバイスであり、例えば、キーボード、マウス、タッチパネル、ペンなどで構成される。
【００３７】
ネットワークインターフェイス１１０は、インターネット上またはイントラネット上の任意の情報処理装置などとの間でデータを遣り取りするためのコンポーネントであり、例えば、イーサネット（登録商標）、無線ＬＡＮ（Local Area Network）、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの任意の通信方式を採用できる。
【００３８】
光学ドライブ１１２は、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ（Digital Versatile Disc）などの光学ディスク１１４に格納されている情報を読出して、内部バス１１６を介して他のコンポーネントへ出力する。光学ディスク１１４は、非一過的（non-transitory）な記録媒体の一例であり、任意のプログラムを不揮発的に格納した状態で流通する。光学ドライブ１１２が光学ディスク１１４からプログラムを読み出して、補助記憶装置１２０などにインストールすることで、パーソナルコンピュータなどの汎用コンピュータが情報処理システム１００として機能するようになる。したがって、本発明の主題は、補助記憶装置１２０などにインストールされたプログラム自体、または、本実施の形態に従う処理を実現するためのプログラムを格納した光学ディスク１１４などの記録媒体でもあり得る。
【００３９】
図３には、非一過的な記録媒体の一例として、光学ディスク１１４などの光学記録媒体を示すが、これに限らず、フラッシュメモリなどの半導体記録媒体、ハードディスクまたはストレージテープなどの磁気記録媒体、ＭＯ（Magneto-Optical disk）などの光磁気記録媒体を用いてもよい。
【００４０】
補助記憶装置１２０は、プロセッサ１０２にて実行されるプログラム、プログラムが処理対象とする入力データ、および、プログラムの実行により生成される出力データなどを格納するコンポーネントであり、例えば、ハードディスク、ＳＳＤ（Solid State Drive）などの不揮発性記憶装置で構成される。より具体的には、補助記憶装置１２０には、典型的には、図示しないＯＳ（Operating System）の他、画像マッチングプログラム１２２、マッチグラフ生成プログラム１２４、コミュニティ検出プログラム１２６、検索プログラム１２８、および、複数の入力画像１３０などが格納される。さらに、補助記憶装置１２０には、画像データベース６が配置されてもよい。
【００４１】
画像マッチングプログラム１２２は、複数の入力画像１３０間の関係を決定するための情報を画像マッチング結果として算出する。
【００４２】
マッチグラフ生成プログラム１２４は、画像マッチングプログラム１２２が実行されることで得られる画像マッチング結果に基づいて、マッチグラフ２を生成する。
【００４３】
コミュニティ検出プログラム１２６は、後述するような、複数の頂点を有するグラフを探索するランダムウォークを制御する制御方法、および、その結果を利用したコミュニティ検出手法を実現する。
【００４４】
検索プログラム１２８は、携帯端末２００上で実行される観光支援アプリケーションからの要求を受けて画像データベース６から要求に合致する画像などを検索するとともに、その検索結果を要求元の携帯端末２００へ応答する。
【００４５】
なお、画像マッチングプログラム１２２、マッチグラフ生成プログラム１２４、コミュニティ検出プログラム１２６、および検索プログラム１２８をプロセッサ１０２で実行する際に必要となるライブラリや機能モジュールの一部を、ＯＳが標準で提供するライブラリまたは機能モジュールを用いて代替するようにしてもよい。この場合には、本実施の形態に従う処理を実現するために必要なプログラムモジュールのすべてが記録媒体に格納されるわけではないが、ＯＳの実行環境下にインストールされることで、本実施の形態に従う情報処理システム１００を実現できる。このような一部のライブラリまたは機能モジュールを含まないプログラムであっても、本発明の技術的範囲に含まれ得る。
【００４６】
画像マッチングプログラム１２２、マッチグラフ生成プログラム１２４、コミュニティ検出プログラム１２６、および検索プログラム１２８は、上述したようないずれかの記録媒体に格納されて流通するだけでなく、インターネットまたはイントラネットを介してサーバ装置などからダウンロードすることで配布されてもよい。
【００４７】
図３には、単一の情報処理装置が情報処理システム１００を構成する例を示すが、これに限らず、ネットワークを介して接続された複数の情報処理装置が明示的または黙示的に連携して、本実施の形態に従う情報処理システム１００を実現するようにしてもよい。
【００４８】
なお、図３には、コミュニティ検出の対象となる複数の入力画像１３０が補助記憶装置１２０に格納される例を示すが、複数の入力画像１３０をネットワーク上の１または複数のサーバ装置に格納するようにしてもよい。同様に、画像データベース６についても、ネットワーク上の１または複数のサーバ装置に格納するようにしてもよい。
【００４９】
さらに、コンピュータ（プロセッサ１０２）がプログラムを実行することで実現される機能の全部または一部を、集積回路などのハードワイヤード回路（hard-wired circuit）を用いて実現してもよい。例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）などを用いて実現してもよい。
【００５０】
当業者であれば、本発明が実施される時代に応じた技術を適宜用いて、本実施の形態に従う情報処理システム１００を実現できるであろう。
【００５１】
［Ｃ．マッチグラフの生成処理］
次に、本実施の形態に従うコミュニティ検出手法がコミュニティを検出する対象となるマッチグラフ２の生成処理について説明する。
【００５２】
図４は、本実施の形態に従うコミュニティ検出手法がコミュニティを検出する対象となるマッチグラフ２の一例を示す模式図である。なお、図４に示すマッチグラフ２そのものが視覚化されている必要はなく、情報処理システム１００の内部で論理的に生成されるようなものであってもよい。
【００５３】
図４（Ａ）を参照して、マッチグラフ２は、複数の頂点２０および頂点２０間のマッチングの有無を示す１または複数の辺２２とからなる。頂点２０の各々は、クラスタリング対象の入力画像１３０の各々に対応する。すなわち、図４（Ａ）には、画像Ａから画像Ｌまでの１２枚の入力画像１３０についてのマッチグラフ２を示す。辺２２の各々は、その辺が接続する２つの頂点（をそれぞれ示す入力画像）間がマッチングすることを表現する。
【００５４】
図４（Ａ）には、一例として、辺２２が方向の情報をもつ有向グラフの例を示す。情報処理システム１００において、マッチグラフ２の辺２２の各々は、辺２２により結ばれる２つの頂点２０にそれぞれ対応する入力画像１３０間の画像マッチング結果を示す。
【００５５】
画像マッチング方法としては、任意の手法を採用することができる。例えば、入力画像１３０間で対応する特徴点を探索する処理を採用する。より具体的には、局所的な特徴点を探索する方式などを採用することができる。
【００５６】
図４（Ａ）に示すマッチグラフ２に示す例では、頂点Ａから頂点Ｅに向けて辺２２が存在しており、これは、頂点Ａに対応する画像Ａを参照画像（基準画像）とし、頂点Ｅに対応する画像Ｅを対象画像とした場合に、当該画像間に対応する特徴点が見つかったことを意味する。
【００５７】
一方、図４（Ａ）に示すマッチグラフ２に示す例では、頂点Ｅから頂点Ａに向けての辺は存在しておらず、これは、頂点Ｅに対応する画像Ｅを参照画像（基準画像）とし、頂点Ａに対応する画像Ａを対象画像とした場合には、当該画像間に対応する特徴点が見つからなかったことを意味する。
【００５８】
このように、画像マッチング処理においては、第１の入力画像が参照画像とされ、第２の入力画像が対象画像とされたときに、マッチングすると判断されたことに基づいて、マッチグラフ２において、第１の入力画像に対応する頂点から第２の入力画像に対応する頂点へ向けた辺が設けられるようにしてもよい。このような有向グラフであるマッチグラフ２を採用することで、コミュニティの検出精度を高めることができる。
【００５９】
上述の説明においては、有向グラフを例示したが、本実施の形態に従うコミュニティ検出手法は、辺２２が方向の情報をもたない、無向グラフにも適用可能である。
【００６０】
図４（Ａ）に示すようなマッチグラフ２は、例えば、非特許文献２に開示されるように、各入力画像に対して画像特徴量の類似度が高い入力画像とのみ画像マッチング処理を行うことで生成してもよいし、対象の入力画像１３０に含まれる２つの入力画像１３０の組み合わせのすべてについて画像マッチング処理を行うことで生成してもよい。
【００６１】
一般的に、画像特徴量の類似度の算出に要する時間は、画像マッチング処理に要する時間よりもはるかに短いため、入力画像１３０の画像数が膨大であっても、画像特徴量の類似度が高い入力画像とのみ画像マッチング処理を行うようにすること（すなわち、非特許文献２に開示される手法を用いること）で、より短時間にマッチグラフ２を生成することが可能となる。
【００６２】
図４（Ａ）に視覚的に示されるマッチグラフ２を見れば、３つのコミュニティが含まれることを暗に知ることができるが、本実施の形態に従うコミュニティ検出手法は、後述するような手法により、マッチグラフ２に含まれるコミュニティを検出できる。すなわち、図４（Ｂ）に示すようなコミュニティの検出結果を得ることができる。
【００６３】
図４（Ｂ）に示すようなコミュニティの検出結果に基づいて、頂点Ａ〜Ｅにそれぞれ対応する画像Ａ〜Ｅが同一の被写体を撮影した入力画像の集合（コミュニティ１）であり、頂点Ｆ〜Ｈにそれぞれ対応する入力画像Ｆ〜Ｈが別の同一の被写体を撮影した入力画像の集合（コミュニティ２）であり、頂点Ｉ〜Ｌにそれぞれ対応する入力画像Ｉ〜Ｌがさらに別の同一の被写体を撮影した入力画像の集合（コミュニティ３）であることが分かる。
【００６４】
このように、複数の入力画像に含まれる組み合わせに対して画像マッチング処理を実行し、当該画像マッチング処理の結果に基づいて、入力画像間の関係を示すマッチグラフ２を生成する処理を採用してもよい。
【００６５】
図５は、本実施の形態に従う情報処理システム１００が採用する画像マッチング処理の一例を説明するための図である。図５に示すように、参照画像とされた入力画像１３１に含まれる特徴点および対象画像とされた入力画像１３２に含まれる特徴点がそれぞれ抽出される。図５には、それぞれの入力画像から抽出された特徴点のうち、参照画像（入力画像１３１）から抽出された特徴点１３１１〜１３１４が対象画像（入力画像１３２）から抽出された特徴点１３２１〜１３２４と、それぞれ一致すると判断された例を示す。なお、抽出された特徴点の特徴量の類似度などに基づいて、入力画像間で対応する特徴点の対が探索および抽出される。
【００６６】
このような特徴点の対の探索および抽出によって、図４に示すようなマッチグラフ２が生成される。なお、複数の入力画像１３０についてのマッチグラフ２の生成方法のより詳細な手順については、特許文献１を参照されたい。
【００６７】
なお、上述のマッチグラフ２の生成処理については、典型的には、プロセッサ１０２がマッチグラフ生成プログラム１２４を実行することで実現されてもよい。また、上述の画像マッチング処理については、典型的には、プロセッサ１０２が画像マッチングプログラム１２２を実行することで実現されてもよい。
【００６８】
［Ｄ．コミュニティ検出手法］
次に、本実施の形態に従うコミュニティ検出手法は、複数の頂点を有するグラフに含まれるコミュニティを検出する。このようなコミュニティ検出手法として、ランダムウォーク類似度法に分類される手法について説明する。
【００６９】
（ｄ１：ランダムウォーク類似度法の基本的なアイデア）
まず、ランダムウォーク類似度法の基本的なアイデアについて説明する。図６は、ランダムウォーク類似度法の基本的なアイデアを説明するための図である。図６には、２つのコミュニティを含むネットワークを示す。
【００７０】
図６を参照して、ランダムウォーク類似度法においては、対象のネットワークに含まれる各頂点２０を出発頂点として、有限ステップ数（ｎステップ）のランダムウォークが実行される。ここで、「ランダムウォーク」は、現在の頂点に接続されている辺をランダムに選択しながら次の頂点に順次移動する運動を意味する。
【００７１】
このようなランダムウォークを行うと、同じコミュニティ内の頂点を出発したウォーカが通過する１または複数の頂点（以下、「通過頂点」とも称する。）は互いに類似することになる。例えば、図６のネットワークにおいて、頂点ｉおよび頂点ｊは、同一のコミュニティに属しており、これらの頂点を出発するウォーカの通過頂点は類似したものとなる。すなわち、頂点ｉを出発したウォーカの通過経路２４１と、頂点ｊを出発したウォーカの通過経路２４２とは、類似した頂点２０を含む傾向が強くなる。
【００７２】
一方、頂点ｋは、頂点ｉおよび頂点ｊとは別のコミュニティに属しており、頂点ｋを出発するウォーカの通過頂点は、頂点ｉまたは頂点ｊを出発するウォーカの通過頂点とは異なったものとなる。すなわち、頂点ｋを出発したウォーカの通過経路２４３は、頂点ｉを出発したウォーカの通過経路２４１および頂点ｊを出発したウォーカの通過経路２４２とは、異なる頂点２０を含む傾向が強くなる。
【００７３】
このように、ランダムウォーク類似度法では、対象のネットワークに含まれる各頂点を出発点として、接続されている辺を確率的に選択しつつ、有限ステップ数に亘ってネットワーク内を順次移動して、移動に係る通過経路が取得される。そして、各頂点を出発点とする通過経路同士の類似度に基づいて、互いに関連付けられる通過経路を決定するとともに、当該互いに関連付けられる通過経路の出発点にそれぞれ対応する頂点同士を互いに関連付ける処理が実行される。
【００７４】
ウォーカの通過頂点あるいは通過経路の類似度は、出発頂点毎に実行したランダムウォークについて、その通過頂点が互いにどの程度似ているかを示す指標である。このような類似度は、任意の方法で算出できる。以下、典型的な類似度の算出方法を示す。なお、以下の説明では、２つのウォーカ間の類似度を算出する場合について例示するが、３つ以上のウォーカ間の類似度を算出するようにしてもよい。
【００７５】
（１）通過頂点集合間のＪａｃｃａｒｄ係数を用いる方法
頂点ｖｉを出発点としたウォーカの通過頂点集合Ｓｉとし、頂点ｖｊを出発点としたウォーカの通過頂点集合をＳｊとすると、類似度ｓｉｍｉｊとしてのＪａｃｃａｒｄ係数は、以下の（１）式に従って算出できる。
【００７６】
【数１】
2020101909.tif 000003
【００７７】
（１）式において、Ｓｉ∪Ｓｊは、通過頂点集合Ｓｉおよび通過頂点集合Ｓｊの少なくとも一方に属する頂点全体の集合（和集合）を意味し、Ｓｉ∩Ｓｊは、通過頂点集合Ｓｉおよび通過頂点集合Ｓｊの両方に属する頂点全体の集合（積集合）を意味する。すなわち、類似度ｓｉｍｉｊは、対象となる２つのウォーカのいずれかにおいて通過頂点となった頂点の数のうち、２つのウォーカに共通して通過頂点となった頂点の数の比率を示す。
【００７８】
対象のネットワークに含まれる頂点の数と同数の通過頂点集合が生成され、生成された通過頂点集合のうち２つの通過頂点集合の組み合わせのすべてについて、類似度がそれぞれ算出されることになる。
【００７９】
（２）通過頂点の頻度ベクトルのＣＯＳ類似度を用いる方法
通過頂点集合Ｓの各頂点についての通過頻度を多次元ベクトルとみなすことで、そのベクトル同士の類似度を用いるようにしてもよい。
【００８０】
例えば、頂点ｖ１を出発点としたウォーカが、頂点ｖ１を２回、頂点ｖ２を３回、…、頂点ｖＬを０回通過したとすると、各頂点の通過頻度を示す頻度ベクトルｆ１を（２，３，…，０）と定義できる。頻度ベクトルｆ１の次数はＬとなり、Ｌ次元空間の空間ベクトルとみなすことができる。そして、Ｌ次元空間における、頻度ベクトル間の類似度として、ＣＯＳ（コサイン）（すなわち、頻度ベクトル間の相関係数）を用いることができる。
【００８１】
このように、頂点ｖｉを出発点としたウォーカによる各頂点の通過頻度を示す頻度ベクトルをｆｉとし、頂点ｖｊを出発点としたウォーカの通過頂点頻度を示す頻度ベクトルをｆｊとすると、ＣＯＳ類似度ｃｏｓ（ｆｉ，ｆｊ）は、以下の（２）式に従って算出できる。ここで、・は内積を示し、｜｜は大きさを示す。
【００８２】
【数２】
2020101909.tif 000004
【００８３】
対象のネットワークに含まれる頂点の数と同数の通過頂点集合および対応する頻度ベクトルが生成され、（２）式から明らかなように、生成された頻度ベクトルのうち２つの頻度ベクトルの組み合わせのすべてについて、ＣＯＳ類似度がそれぞれ算出されることになる。
【００８４】
（３）その他
上述のしたＪａｃｃａｒｄ係数に代えて、Ｄｉｃｅ係数またはＳｉｍｐｓｏｎ係数などを用いてもよい。
【００８５】
（ｄ２：ランダムウォーク類似度法の課題および解決手段）
次に、本願発明者らが新たに見出したランダムウォーク類似度法の課題について説明する。
【００８６】
図７は、ランダムウォーク類似度法の課題を説明するための図である。図７には、偶発的なランダムウォークによる悪影響の一例を示す。図７を参照して、ウォーカは、しばしば早い段階で別のコミュニティに移動することがある。
【００８７】
図７に示す例では、頂点２０（頂点ｉ）を出発したウォーカが通過経路２４１に沿って移動する場合には、出発頂点である頂点ｉが属するコミュニティ１を適切に検出できる。
【００８８】
これに対して、頂点２０（頂点ｉ）を出発したウォーカが通過経路２４４に沿って移動する場合には、出発頂点である頂点ｉが属するコミュニティ１を適切に検出できない可能性が高まる。
【００８９】
このような誤検出の可能性を低減するために、ウォーカが、出発頂点が属するコミュニティから別のコミュニティに移動したような場合に生じる通過頂点を異常値（外れ値）として除外することが好ましい。
【００９０】
このような異常値の除外方法としては、同一の出発頂点について多数回のランダムウォークを行い、その結果に基づいて統計上の異常値を除外する。より具体的には、出発頂点毎にウォーカが通過した頂点のうち、統計的にその頻度が小さいものを異常値として除外する。
【００９１】
典型的には、同一の頂点から多数回に亘ってランダムウォークを行い、ランダムウォークの実行により得られた通過頂点のうち、合計数が予め定められたしきい値以下（あるいは、しきい確率以下）であるものを通過頂点集合から除外することになる。このように、コミュニティを検出する処理には、同一の出発頂点についての通過頂点集合のうち、合計数が予め定められたしきい値以下であるものを通過頂点から除外する処理を含めるようにしてもよい。この異常点の除外処理の詳細については、特許文献１を参照されたい。
【００９２】
一方、異常点の除外処理の別手法として、同一の頂点から多数回に亘ってランダムウォークを実行し、それにより得られた多数の各ランダムウォークの通過頂点集合に含まれる数がしきい値以下の頂点を各通過頂点集合から除去した後、各通過頂点集合の和集合を出発頂点のランダムウォーク通過頂点集合とみなすようにしてもよい。このような異常点の除外処理の詳細については、非特許文献１を参照されたい。
【００９３】
図８は、ランダムウォーク類似度法の課題を説明するための別の図である。図８には、ネットワークにサイズの異なる複数のコミュニティが含まれる場合の課題を示す。
【００９４】
図８を参照して、小さなコミュニティであるコミュニティ１の検出を想定すると、ランダムウォークを行うステップ数を小さくすることで、出発頂点が属するコミュニティとは別のコミュニティに移動する確率を下げることができる。その結果、コミュニティ１の各頂点を出発したウォーカの通過頂点は互いに類似することになり、小さなコミュニティであるコミュニティ１を検出し易くなる。
【００９５】
一方、大きなコミュニティであるコミュニティ２の検出を想定すると、ランダムウォークを行うステップ数を小さくすることで、ウォーカは、コミュニティ２の一部の頂点のみを通過することになる（例えば、通過頂点集合２６１，２６２）。この結果、コミュニティ２の一部の頂点が小さなコミュニティとして検出される。
【００９６】
これらの小さなコミュニティの間で、共通の頂点が含まれるコミュニティ同士を繰り返し結合することで、大きなコミュニティを検出できる。
【００９７】
このように、ランダムウォークを行うステップ数を小さく設定すると、同一の小さなコミュニティ内の頂点を出発したウォーカの通過頂点は類似し易く、この場合には、小さなコミュニティを検出する傾向が強くなる。反面、ステップ数が小さいと、大きなコミュニティ内の頂点を出発したウォーカは、そのコミュニティ内の頂点を十分に周遊することができず、同一の大きなコミュニティ内の頂点を出発したウォーカの通過頂点同士の類似度は高くならないので、その結果、大きなコミュニティの検出に失敗する可能性が高まる。
【００９８】
一方、ステップ数を大きく設定すると、同一の大きなコミュニティ内の頂点を出発したウォークの通過頂点は類似し易く、この場合には、大きなコミュニティを適切に検出できるようになる。反面、小さなコミュニティ内の頂点を出発したウォーカは、設定されたステップ数のランダムウォークを終える前に、初期コミュニティから別のコミュニティに移動してしまう可能性が高くなる。そのため、同一の小さなコミュニティ内の頂点を出発したウォーカの通過頂点同士の類似度は低くなり、その結果、小さなコミュニティの検出に失敗する可能性が高まる。
【００９９】
別の見方をすると、ステップ数を大きく設定すると、小さなコミュニティ内の頂点を出発したウォーカが大きなコミュニティに移り、その後も大きなコミュニティ内でウォーカが多数のランダムウォークを行う可能性が高くなる。このとき、小さなコミュニティ内の頂点を出発したウォーカの通過頂点集合と大きなコミュニティ内の頂点を出発したウォーカの通過頂点集合とが類似してしまい、小さなコミュニティ内の頂点が大きなコミュニティ内の要素であると誤って判断される可能性が高くなる。
【０１００】
以上のように、ランダムウォーク類似度法を用いて、小さなコミュニティおよび大きなコミュニティが混在したネットワークからコミュニティを検出しようとすると、設定されるステップ数に応じて、小さなコミュニティおよび大きなコミュニティのいずれか一方については、適切に検出できない可能性が高まるという課題がある。
【０１０１】
上述したような課題に対して、ランダムウォークを行うステップ数を小さくすることにより、小さなコミュニティを検出し易くするとともに、大きなコミュニティにおいて検出された小さなコミュニティ同士を、共通頂点要素をもつときには結合することで大きなコミュニティも検出するという対策が可能である。しかしながら、ネットワークに含まれる小さなコミュニティと大きなコミュニティのサイズが大きく異なっていると、このような対策でも十分ではない場合が生じ得る。
【０１０２】
このような本願発明者らが新たに見出した新たな課題に対して、本実施の形態に従うコミュニティ検出手法においては、ランダムウォークを行うステップ数を相対的に大きくしておくとともに、出発頂点が属する初期コミュニティに含まれる各頂点をウォーカが概ね巡回し、かつ、別のコミュニティに移動する前に、ウォーカを制止するように制御する。
【０１０３】
このようなウォーカを制止する処理を追加することによって、ネットワークにサイズの異なる複数のコミュニティが含まれていても、各コミュニティを適切に検出できる。
【０１０４】
すなわち、ランダムウォーク類似度法において、実行するランダムウォークのステップ数を大きく設定しても、ウォーカが初期コミュニティから別のコミュニティに移動する前であって、初期コミュニティ内の頂点を概ね通過した時点で制止することができれば、ランダムウォーク類似度法は、小さなコミュニティおよび大きなコミュニティの両方を適切に検出できるようになる。
【０１０５】
（ｄ３：ウォーカを制御する基本的なアイデア）
次に、本実施の形態に従う、複数の頂点を有するグラフを探索するランダムウォークを制御する制御方法が採用する、ウォーカを制御するための基本的なアイデアについて説明する。図９は、本実施の形態に従うコミュニティ検出手法におけるウォーカを制止する基本的なアイデアを説明するための図である。図９には、図８と同様に、サイズの異なるコミュニティ１および２が含まれるネットワークを示す。
【０１０６】
図９（Ａ）には、コミュニティ１に属する頂点から出発したウォーカがコミュニティ１（初期コミュニティ）内を移動している状態を示し、図９（Ｂ）には、ウォーカがコミュニティ１からコミュニティ２に移動してコミュニティ２内を移動している状態を示す。
【０１０７】
ここで、ウォーカが通過した頂点の数（頂点の種類数；同一頂点の重複を除いた通過頂点の数）を「通過頂点数」と定義する。すなわち、「通過頂点数」は、ウォーカが１回以上通過したことのある頂点の数を意味する。
【０１０８】
図９（Ａ）および図９（Ｂ）には、ウォーカのそれぞれの移動状態に対応して、ウォーカのステップ数と通過頂点数との関係を模式的に示す。基本的には、ウォーカのステップ数が増加するに伴って通過頂点数は単調増加する。図９（Ａ）に示すように、ウォーカが初期コミュニティ内を移動している限りにおいて、この通過頂点数の増加度合いは、当該初期コミュニティに含まれる頂点の総数に近付くにつれて緩やかになる。
【０１０９】
これに対して、図９（Ｂ）に示すように、ウォーカが初期コミュニティから別のコミュニティに移動すると、移動先の別のコミュニティにおいて新たな頂点を通過することになるので、通過頂点数の増加度合いは再度大きくなる。
【０１１０】
このように、本実施の形態に従うコミュニティ検出手法におけるウォーカの制止手法は、ウォーカのステップ数に対する通過頂点数の変化の度合いに基づいて、ウォーカを制止するか否かを判断する。
【０１１１】
次に、実際のネットワークを参照して、ウォーカの制止手法についてより具体的に説明する。図１０は、本実施の形態に従うコミュニティ検出手法が採用するウォーカを制止する処理を説明するための図である。
【０１１２】
図１０には、実際に収集された画像から構築したマッチグラフ（ネットワーク）の１つの連結成分について、ランダムウォークを行ったときのウォーカのステップ数と通過頂点数との関係を示す。対象のネットワークの頂点数は６２３であり、エッジ数は７９７９であり、コミュニティ数は１０であり、含まれているコミュニティサイズの最大値は５００であり、コミュニティサイズの最小値は１である。
【０１１３】
図１０に示す実行結果は、サイズ１７のコミュニティに属している頂点を出発頂点としてランダムウォークを行ったことにより得られたものである。
【０１１４】
図１０を参照して、ウォーカが出発してから６ステップ目までは、ウォーカのステップ数とウォーカが通過した頂点数（通過頂点数）は同じ値である。７ステップ目から３８ステップ目までは、ウォーカが同じ頂点を何度も通過するため、ウォーカの通過頂点数の増加は鈍化する。そして、３９ステップ目にウォーカは初期コミュニティから別のコミュニティに移動し、通過頂点数は再度大きく増加する。
【０１１５】
ランダムウォーク類似度法においては、ウォーカが初期コミュニティから別のコミュニティに移動するステップ（この例では、３９ステップ目）より前に、ウォーカを制止することが好ましい。また、６ステップ目以前は、まだウォーカがコミュニティ内の頂点を十分に周遊していないので、７ステップ目以降にウォーカを制止することが好ましい。
【０１１６】
以上の条件を組み合わせると、ランダムウォーク類似度法においては、７ステップ目から３８ステップ目までの間の追加頂点数の増加が鈍化している区間でウォーカを制止することが理想である。このようなウォーカを制止する条件としては、各種の条件を用いることができる。
【０１１７】
例えば、ウォーカが同じ頂点を２度通過することを、ウォーカを制止する条件として採用することもできる。但し、出発直後のまだウォーカがコミュニティ内の頂点を十分に周遊していない状態であっても、ウォーカが通過済みの頂点を再度通過することもある。そのため、ウォーカを制止する条件としては、通過頂点数の増加度合いを用いることが好ましい。
【０１１８】
一例として、図１０に示すように、ウォーカの一定のステップ数幅ｗに対するウォーカの通過頂点数の増加（ｎｉ−ｎｉ−（ｗ−１））（ｉはステップ数を示す）が予め定められたしきい値ＴＨｓ以下になったことを、ウォーカを制止する条件として採用してもよい。
【０１１９】
ここで、ウォーカを制止する条件として用いるステップ数幅ｗは、対象のネットワークに含まれるコミュニティサイズを示すパラメータｈ（実験的に決定される）を基準として定めてもよい（例えば、ｗ＝α×ｈ）。また、しきい値ＴＨｓは、ステップ数幅ｗを基準として定めてもよい（例えば、ＴＨｓ＝β×ｗ；０＜β＜１）。
【０１２０】
これらのパラメータは、含まれるコミュニティのサイズなどが既知のネットワークに対して適用して得られる結果に基づいて、適宜調整するようにしてもよい。
【０１２１】
（ｄ４：抑制ランダムウォーク類似度法の処理手順）
次に、上述したウォーカを制限する機能を含むランダムウォーク類似度法（以下、「抑制ランダムウォーク類似度法」とも称する。）の処理手順について説明する。
【０１２２】
図１１は、本実施の形態に従う抑制ランダムウォーク類似度法における抑制ランダムウォーク実行に係る処理手順を示すフローチャートである。図１１には、複数の頂点を有するグラフを探索するランダムウォークを制御する制御方法に係る処理手順が示されている。図１１に示す各ステップは、図２に示すフローチャートのステップＳ４の処理内容に相当し、典型的には、情報処理システム１００のプロセッサ１０２がコミュニティ検出プログラム１２６を実行することで実現される。
【０１２３】
図１１を参照して、情報処理システム１００は、対象のネットワークに含まれる頂点のリストを生成する（ステップＳ１００）。そして、情報処理システム１００は、生成したリストに含まれるいずれかの頂点を出発頂点として選択する（ステップＳ１０２）とともに、選択されている出発頂点についてのランダムウォークの試行回数をリセットする（ステップＳ１０４）。このように、情報処理システム１００は、対象のネットワークに含まれる複数の頂点の各々を出発頂点として選択する処理を実行する。
【０１２４】
続いて、情報処理システム１００は、ランダムウォークを行う。すなわち、情報処理システム１００は、選択された出発頂点から接続されている辺を確率的に選択しつつ、予め定められたステップ数に亘ってネットワーク（グラフ）内を順次移動する処理を実行する。
【０１２５】
より具体的には、情報処理システム１００は、まず、ウォーカを出発頂点に配置する（ステップＳ１０６）。そして、情報処理システム１００は、ウォーカが配置されている頂点に接続されている辺をランダムに選択して次の頂点にウォーカを移動させる（ステップＳ１０８）とともに、ステップ数を１だけインクリメントする（ステップＳ１１０）。なお、有向グラフにおいては、ステップＳ１０８で他の頂点へ移動するための辺が存在しない可能性がある。そのときは、処理はステップＳ１２０へ進む。
【０１２６】
そして、情報処理システム１００は、現在のステップ数が設定されたステップ数に到達したか否かを判断する（ステップＳ１１２）。現在のステップ数が設定されたステップ数に到達していれば（ステップＳ１１２においてＹＥＳ）、情報処理システム１００は、現在までのウォーカの通過経路に含まれる頂点を、今回の試行についてのウォーカの通過頂点集合として出力する（ステップＳ１２０）。
【０１２７】
一方、現在のステップ数が設定されたステップ数に到達していなければ（ステップＳ１１２においてＮＯ）、情報処理システム１００は、順次移動に伴って１回以上の通過があった頂点の数である通過頂点数を算出する処理を実行する。より具体的には、情報処理システム１００は、ウォーカが移動先の頂点を通過済であるか否かを判断する（ステップＳ１１４）。ウォーカが移動先の頂点を通過済でなければ（ステップＳ１１４においてＮＯ）、情報処理システム１００は、通過頂点数を１だけインクリメントする（ステップＳ１１６）。ウォーカが移動先の頂点を通過済であれば（ステップＳ１１４においてＹＥＳ）、ステップＳ１１６の処理はスキップされる。
【０１２８】
さらに、情報処理システム１００は、順次移動のステップ数と通過頂点数との関係に基づいて、設定されたステップ数に到達する前に順次移動を途中終了すべきか否かを判断する処理を実行する。より具体的には、情報処理システム１００は、通過頂点数の増加度合い（典型的には、現在のステップ数および通過頂点数の変化）に基づいて、ウォーカを制止する条件が成立しているか否かを判断する（ステップＳ１１８）。上述の図１０に示す例では、情報処理システム１００は、順次移動のステップ数の増加に対する通過頂点数の増加の割合が予め定められたしきい値以下であるか否かに基づいて、設定されたステップ数に到達する前に順次移動を途中終了すべきか否かを判断する。
【０１２９】
ウォーカを制止する条件が成立していれば（ステップＳ１１８においてＹＥＳ）、情報処理システム１００は、現在までのウォーカの通過経路に含まれる頂点を、今回の試行についてのウォーカの通過頂点集合として出力する（ステップＳ１２０）。
【０１３０】
このように、情報処理システム１００は、順次移動が行われる毎に、設定されたステップ数に到達する前に順次移動を途中終了すべきか否かを判断してもよい。なお、後述するように、設定されたステップ数のランダムウォークを行った後に判断するようにしてもよい。
【０１３１】
一方、ウォーカを制止する条件が成立していなければ（ステップＳ１１８においてＮＯ）、ステップＳ１０８以下の処理が繰り返される。
【０１３２】
ステップＳ１２０の後、情報処理システム１００は、選択されている出発頂点についてのランダムウォークの試行回数を１だけインクリメントする（ステップＳ１２２）。そして、情報処理システム１００は、選択されている出発頂点についてのランダムウォークの現在の試行回数が設定された試行回数に到達したか否かを判断する（ステップＳ１２４）。
【０１３３】
選択されている出発頂点についてのランダムウォークの現在の試行回数が設定された試行回数に到達していなければ（ステップＳ１２４においてＮＯ）、ステップＳ１０６以下の処理が繰り返される。このように、ネットワーク（グラフ）内を順次移動する処理は、予め定められた試行回数だけ繰り返される。
【０１３４】
一方、選択されている出発頂点についてのランダムウォークの現在の試行回数が設定された試行回数に到達していれば（ステップＳ１２４においてＹＥＳ）、情報処理システム１００は、選択されている出発頂点についてのランダムウォークの試行を完了する。そして、情報処理システム１００は、生成したリストに含まれるすべての頂点についてのランダムウォークの試行が完了したか否かを判断する（ステップＳ１２６）。
【０１３５】
生成したリストに含まれるすべての頂点についてのランダムウォークの試行が完了していなければ（ステップＳ１２６においてＮＯ）、情報処理システム１００は、生成したリストに含まれる別の頂点を出発頂点として選択する（ステップＳ１２８）とともに、ステップＳ１０４以下の処理を繰り返す。
【０１３６】
生成したリストに含まれるすべての頂点についてのランダムウォークの試行が完了していれば（ステップＳ１２６においてＹＥＳ）、抑制ランダムウォーク類似度法における抑制ランダムウォーク実行に係る処理は終了する。
【０１３７】
図１１に示す抑制ランダムウォーク類似度法における抑制ランダムウォークの実行により得られる出発頂点毎の通過頂点集合に基づいて、上述したような方法に従って、コミュニティが検出される。すなわち、情報処理システム１００は、出発頂点毎の順次移動を終了するまでに通過した頂点集合に基づいて、ネットワーク（グラフ）に含まれるコミュニティを検出する処理を実行する。
【０１３８】
なお、抑制ランダムウォーク類似度法は、重み無し無向グラフ、重み付き無向グラフ、重み無し有向グラフ、重み付き有向グラフのいずれにも適用することが可能である。
【０１３９】
（ｄ５：ウォーカ制止処理の処理手順の変形例１）
図１１に示す処理手順においては、ウォーカを制止する条件が成立した段階で、ランダムウォークを制止する方法を例示したが、これに限らず、予め設定されたステップ数のランダムウォークを行った後に、通過頂点集合として採用すべき区間を事後的に決定するようにしてもよい。
【０１４０】
このような事後的にウォーカを制止する条件を判断することで、ウォーカを制止する条件を動的に変化させて、最適なステップ数でコミュニティを検出できる。
【０１４１】
（ｄ６：ウォーカ制止処理の処理手順の変形例２）
図１１に示す処理手順においては、同一の出発頂点についてのランダムウォークの試行毎に個別に制止する条件を判断する方法を例示したが、これに限らず、同一の出発頂点についてのランダムウォークの結果集合に対して、統計的な処理を実行することで、制止する条件を決定してもよい。すなわち、情報処理システム１００は、同一の出発頂点についての通過経路の集合に基づいて、順次移動を途中終了すべきステップ数を決定するようにしてもよい。
【０１４２】
より具体的には、同一の頂点を出発したウォーカの通過頂点数の変化は、互いに類似したものとなる。そのため、同一の頂点を出発したウォーカの通過経路の集合を統計処理することで、各出発頂点について適切なステップ数を決定してもよい。具体的には、ウォーカの通過経路の各々において、通過頂点数の増加が緩やかになった後に、再度増加し始めるステップ数を算出し、それぞれ算出されたステップ数を統計的に処理することで、対象の通過頂点に対する有効なステップ数を決定できる。そして、決定されたステップ数の範囲で通過頂点集合を生成するようにしてもよい。
【０１４３】
このような統計的な手法を採用することで、頂点毎に適切なウォーカを制止する条件を決定できる。
【０１４４】
［Ｅ．実験結果］
次に、本実施の形態に従う抑制ランダムウォーク類似度法によるコミュニティ検出性能を評価した実験結果の一例について説明する。
【０１４５】
特許文献１には、大量の入力画像からマッチグラフを生成した上で、ランダムウォーク類似度法を適用して、入力画像を主被写体毎にクラスタリングする手法を開示する。以下の説明においては、特許文献１と同様の手法で生成されたマッチグラフに対して、従来のランダムウォーク類似度法（ＲＷＳ）および本実施の形態に従う抑制ランダムウォーク類似度法（ＲＲＷＳ）を適用した場合のコミュニティの検出結果を評価した。併せて、他のコミュニティ検出手法を適用した場合のコミュニティの検出結果も示す。
【０１４６】
他のコミュニティ検出手法としては、非特許文献３に開示されるＳｐｉｎ手法、非特許文献４に開示されるＩｎｆｏ手法、非特許文献５に開示されるＣＤＴ手法、および、非特許文献６に開示されるＣＯＮ手法を対象とした。
【０１４７】
具体的には、画像共有サービス「Ｆｌｉｃｋｒ」から「ｔｏｄａｉｊｉ」という検索ワードを用いて「東大寺」に関連した入力画像を収集し、これらの収集された入力画像のうち著名な被写体が写ったもののみを主被写体名でラベリングを行った。さらに、ラベリングを行った入力画像のみを用いてマッチグラフを生成し、最もサイズの大きい連結成分（以下「連結成分１」とも称す。）および２番目にサイズの大きい連結成分（以下、「連結成分２」とも称す。）に各コミュニティ検出手法を適用した。なお、連結成分の各々は、１または複数のコミュニティを含むことになる。
【０１４８】
各コミュニティ検出手法により得られるクラスタ構造は、理想的には、主被写体毎に分けられたクラスタ構造となるべきである。得られたクラスタ構造と真のクラスタ構造（入力画像をラベリングした主被写体名により分けられたクラスタ構造）との間の正規化相互情報量（以下、「ＮＭＩ」とも称す。）を用いて評価した。ここで、正規化相互情報量は、以下の（３）式に従って算出できる。
【０１４９】
【数３】
2020101909.tif 000005
【０１５０】
図１２は、本実施の形態に従う抑制ランダムウォーク類似度法によるコミュニティ検出性能を評価した実験結果を示す図である。図１２（Ａ）には、連結成分１に対する検出結果を示し、図１２（Ｂ）には、連結成分２に対する検出結果を示す。本実験に用いたコミュニティ検出手法はいずれも非決定的アルゴリズムなので、連結成分１および連結成分２に対して、それぞれ１０回のコミュニティ検出を実行し、その結果を箱ひげ図として表現している。
【０１５１】
図１２に示すように、ランダムウォーク類似度法（ＲＷＳ）自体は、従来手法（Ｓｐｉｎ，Ｉｎｆｏ，ＣＤＴ，ＣＯＮ）に比較してＮＭＩが高いが、本実施の形態に従う抑制ランダムウォーク類似度法は、より高い検出精度を示していることが分かる。
【０１５２】
さらに、連結成分２に対するランダムウォーク類似度法および抑制ランダムウォーク類似度法によるコミュニティ（クラスタ）の検出結果を表１に示す。
【０１５３】
【表１】
2020101909.tif 000006
【０１５４】
連結成分２は、８つのコミュニティを含んでおり、表１においては、それぞれのコミュニティの要素数がコミュニティサイズの欄に示されている。表１の「○」は、ランダムウォーク類似度法または抑制ランダムウォーク類似度法が各コミュニティの検出に成功したことを示し、「×」は各コミュニティの検出に失敗したことを示す。
【０１５５】
なお、ランダムウォーク類似度法において，ランダムウォークを１０２ステップ行い、抑制ランダムウォーク類似度法ではランダムウォークを多い１３４ステップ行った。
【０１５６】
表１に示されるように、ランダムウォーク類似度法は、コミュニティサイズ２７６（コミュニティ１）およびサイズ８４（コミュニティ２）といったサイズの大きいコミュニティについては検出できたが、コミュニティサイズ２６（コミュニティ３）といったサイズの小さいコミュニティについては検出できなかった。この原因としては、コミュニティ３内の頂点を出発したウォーカの多くは、１０２ステップを終える前に初期コミュニティとは別のコミュニティに移動してしまったためであると考えられる。
【０１５７】
一方、抑制ランダムウォーク類似度法では、コミュニティ３内の頂点を出発したウォーカの多くが初期コミュニティから別のコミュニティへ移動する前に制止されたため、サイズの大きなコミュニティ１およびコミュニティ２に加えて、サイズの小さなコミュニティ３についても適切に検出できたものと考えられる。
【０１５８】
［Ｆ．応用例］
本実施の形態に従う抑制ランダムウォーク類似度法を用いてクラスタリング（コミュニティ検出）された入力画像および対応する名称などのクラスタ名（ラベル）は、様々なアプリケーションに応用可能である。
【０１５９】
例えば、クラスタリングされた入力画像および対応するクラスタ名（ラベル）を用いて、ディープラーニングやサポートベクタマシーンなどの手法で機械学習することで、入力された画像の認識を実現できる。あるいは、機械学習ではなく、非特許文献７に開示されるような局所特徴点を利用した手法を用いても、入力された画像の認識を実現できる。
【０１６０】
なお、入力画像に対応するクラスタ名（ラベル）は人が判断して付与するようにしてもよいし、非特許文献７に開示されるような手法を用いて、画像に付与された属性情報（例えば、タイトルやタグ）をテキストマイニングして自動で付与するようにしてもよい。
【０１６１】
さらに、非特許文献８に開示されるような手法を用いて、クラスタリングされた入力画像に含まれる主被写体の領域を求めることもできる。これらの情報を統合して、機械学習することで（例えば、Ｆａｓｔｅｒ  Ｒ−ＣＮＮやＹＯＬＯなどの手法を用いて）、入力された画像の主被写体の認識に加えて、主被写体の領域の推定が可能となる。
【０１６２】
さらに、上述したような方法により生成される入力された画像の主被写体を認識する機能（画像認識システム）をスマートフォンやタブレットＰＣなどの携帯端末２００に実装することで、観光支援アプリケーションを実現できる。
【０１６３】
このような観光支援アプリケーションを実現する場合には、観光対象の被写体を含む大量の入力画像を取得するとともに、当該取得された入力画像間の関係を示すマッチグラフ２を生成することになる。
【０１６４】
図１３は、本実施の形態に従うコミュニティ検出手法による結果を利用した観光支援アプリケーションの画面例を示す模式図である。図１３（Ａ）には、ユーザが携帯端末２００で任意の物体を撮影すると、当該撮影された物体に関する情報を表示する画面例を示す。このような観光支援画面を表示するために、例えば、クラスタリングにより得られた各クラスタ（コミュニティ）に対応する解説を付与しておき、そのクラスタが画像認識されたときに、対応するクラスタ名である物体名および解説を表示するようにしてもよい。
【０１６５】
ここで、解説は、予め人が付与するようにしてもよいし、クラスタ名（物体名）を検索ワードとして、ウィキペディアやその他インターネットサイトの情報をテキストマイニングし、自動で付与するようにしてもよい。さらには、ウェブブラウザを用いて、ウィキペディア等の解説ページをユーザに提示するようにしてもよい。
【０１６６】
このように、観光支援アプリケーションを実現する場合には、検出されたクラスタ（コミュニティ）に対して、名称、解説および領域を含む属性情報を付与する処理が実行される。
【０１６７】
図１３（Ｂ）には、観光支援アプリケーションが、画像認識した物体に対応付けられた位置情報と、携帯端末２００に内蔵されているＧＰＳなどから取得されたユーザの位置情報とに基づいて、近くにある人気建造物へユーザを誘導している画面例を示す。このようなユーザを誘導する機能を実現するためには、画像クラスタリングにより得られた各クラスタに位置情報および人気度を付与し、さらに各クラスタの代表画像を決定しておく必要がある。これらの情報は、すべて予め人が付与するようにしてもよいし、画像共有サイト上でユーザが対象の画像に付与した位置情報を利用して付与してもよいし、対象の画像に含まれるＥｘｉｆ情報などを利用して自動で計算して付与してもよい。また、人気度は、各クラスタの要素数（画像数）および各画像の画像共有サイト上の人気度や閲覧数などを利用して付与してもよい。さらに、各クラスタの代表画像は、非特許文献９に開示されるような手法を用いて自動的に決定してもよい。
【０１６８】
図１３に示される観光支援アプリケーションの画面左下の切替ボタン２０２は、機能切替の指示を受け付ける。切替ボタン２０２が押下されることで、図１３（Ａ）に示されるような解説モードの画面が表示され、あるいは、図１３（Ｂ）に示されるような誘導モードの画面が表示される。
【０１６９】
図１３に示される観光支援アプリケーションの画面右下の切替ボタン２０４は、表示言語切替の指示を受け付ける。切替ボタン２０４が押下されることで、任意の言語に切り替えられるようにしてもよい。表示言語は、スマートフォンやタブレットＰＣのＯＳの使用言語と一致させるのが基本であるが、切替ボタン２０４が押下されることで、表示言語を英語、スペイン語、中国語などのユーザが好む言語に切り替えることができる。
【０１７０】
このような表示言語切替のための各言語の情報は、予め人が作成して観光支援アプリケーションに実装しておいてもよいし、例えば、日本語などの特定の言語で解説などを作成しておき、その後、非特許文献１０に開示されるような多言語翻訳技術を用いて、自動で各種言語による解説等を作成し、観光支援アプリケーションに実装してもよい。
【０１７１】
図１３に示すように、観光支援アプリケーションは、撮影により取得された撮影画像を画像認識して、当該撮影画像が属するコミュニティを決定するとともに、対応する属性情報（名称、解説および領域などを含む）を表示する。
【０１７２】
説明の便宜上、観光支援アプリケーションをスタンドアローンで動作するものとして説明したが、サーバークライアント方式により、上記一部の機能をサーバ側で実現するようにしてもよい。例えば、携帯端末２００に実装されたアプリケーションは、カメラでの撮影により任意の画像を取得すると、別に設置されたサーバに当該画像を送信し、送信先のサーバが画像認識を実行し、その画像認識の結果を携帯端末２００に戻すようにしてもよい。携帯端末２００は、サーバからの画像認識の結果に応じて、解説や近くの有名建造物への案内を提示するようにしてもよい。
【０１７３】
［Ｇ．変形例］
本実施の形態に従う抑制ランダムウォーク類似度法をマッチグラフに適用した例およびその応用について説明したが、本実施の形態に従う抑制ランダムウォーク類似度法は、マッチグラフに限らず、任意のグラフに含まれるコミュニティの検出に利用できる。
【０１７４】
例えば、ソーシャル・ネットワーキング・サービス（ＳＮＳ）の利用者をユーザとし、「友達」や「フォロー」関係を辺で表現したソーシャルグラフのコミュニティ検出などに適用できる。この場合、同じコミュニティに属するのに辺で繋がっていないユーザに対し、繋がり推薦を行うといったサービスを実現できる。
【０１７５】
また、商品を頂点とし、同時購入された商品を辺で結んだ購買グラフのコミュニティ検出を行う際にも、本実施の形態に従う抑制ランダムウォーク類似度法を利用できる。この場合、ネットショッピングなどでユーザが商品を購入したときに、ネットショッピングサイトは、同じコミュニティ内の別の商品をユーザに推薦することができる。
【０１７６】
上述の説明においては、本実施の形態に従う制止手法をランダムウォーク類似度法のランダムウォークに適用する例を述べたが、本制止手法は、その他のランダムウォークを利用するコミュニティ検出手法やその他の応用で利用されるランダムウォーク全般にも適用可能である。
【０１７７】
［Ｈ．利点］
本実施の形態に従うコミュニティ検出手法である抑制ランダムウォーク類似度法においては、ランダムウォークをより多くのステップで行うことになるが、ウォーカを制止する条件を適切に決定することで、初期コミュニティ内を概ね周遊したところでウォーカを制止できる。これにより対象のネットワークに小さなコミュニティおよび大きなコミュニティが混在していても、それぞれのコミュニティを適切に検出できる。
【０１７８】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１７９】
２  マッチグラフ、４  コミュニティ、６  画像データベース、２０  頂点、２２  辺、１００  情報処理システム、１０２  プロセッサ、１０４  主メモリ、１０６  ディスプレイ、１０８  入力デバイス、１１０  ネットワークインターフェイス、１１２  光学ドライブ、１１４  光学ディスク、１１６  内部バス、１２０  補助記憶装置、１２２  画像マッチングプログラム、１２４  マッチグラフ生成プログラム、１２６  コミュニティ検出プログラム、１２８  検索プログラム、１３０，１３１，１３２  入力画像、２００  携帯端末、２０２，２０４  切替ボタン、２４１，２４２，２４３，２４４  通過経路、２６１，２６２  通過頂点集合、１３１１，１３１４，１３２１，１３２４  特徴点。
【図１】
2020101909.tif 000007
【図２】
2020101909.tif 000008
【図３】
2020101909.tif 000009
【図４】
2020101909.tif 000010
【図５】
2020101909.tif 000011
【図６】
2020101909.tif 000012
【図７】
2020101909.tif 000013
【図８】
2020101909.tif 000014
【図９】
2020101909.tif 000015
【図１０】
2020101909.tif 000016
【図１１】
2020101909.tif 000017
【図１２】
2020101909.tif 000018
【図１３】
2020101909.tif 000019