(57)【要約】【課題】ユーザの移動に応じて適切な推奨を行う。【解決手段】本願に係る情報処理装置は、取得部と、抽出部と、送信部とを有する。取得部は、複数の移動経路の各々に対応する複数のノードであって、各移動経路に対応する移動を行った対応ユーザが関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動に関する移動情報を取得する。抽出部は、取得部により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点として、グラフ情報を検索することにより、複数の移動経路のうち、一のユーザの移動に類似する移動の移動経路である類似移動経路を抽出する。送信部は、抽出部により抽出された類似移動経路に対応付けられた対応ユーザの情報に基づいて、一のユーザが利用する端末装置へ一のユーザの移動に関連する推奨情報を送信する。【選択図】図４
2019139513.tif 000002
【特許請求の範囲】
【請求項１】
複数の移動経路の各々に対応する複数のノードであって、各移動経路に対応する移動を行った対応ユーザが関連付けられた複数のノードが、前記複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動に関する移動情報を取得する取得部と、
前記取得部により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数の移動経路のうち、前記一のユーザの移動に類似する移動の移動経路である類似移動経路を抽出する抽出部と、
前記抽出部により抽出された前記類似移動経路に対応付けられた前記対応ユーザの情報に基づいて、前記一のユーザが利用する端末装置へ前記一のユーザの移動に関連する推奨情報を送信する送信部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記取得部は、
前記複数の移動経路の各々に対応する移動において前記対応ユーザが訪れた訪問地点が関連付けられた前記複数のノードが、前記複数の移動経路の類似性に応じて連結された前記グラフ情報を取得し、
前記送信部は、
前記類似移動経路に対応付けられた前記対応ユーザの前記訪問地点に基づいて、前記一のユーザの移動において訪れる地点を推奨する前記推奨情報を送信する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記取得部は、
前記対応ユーザの属性情報が関連付けられた前記複数のノードが、前記複数の移動経路の類似性に応じて連結された前記グラフ情報と、前記一のユーザの属性情報とを取得し、
前記送信部は、
前記類似移動経路のうち、前記類似移動経路に対応付けられた前記対応ユーザの属性情報が、前記一のユーザの属性情報に対応する移動経路に基づく前記推奨情報を送信する
ことを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記取得部は、
各移動経路に対応する移動におけるコンテキスト情報が関連付けられた前記複数のノードが、前記複数の移動経路の類似性に応じて連結された前記グラフ情報と、前記一のユーザの移動におけるコンテキスト情報とを取得し、
前記送信部は、
前記類似移動経路のうち、前記類似移動経路に対応付けられたコンテキスト情報が、前記一のユーザの移動におけるコンテキスト情報に対応する移動経路に基づく前記推奨情報を送信する
ことを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記取得部は、
各移動経路に対応する移動における時刻情報が関連付けられた前記複数のノードが、前記複数の移動経路の類似性に応じて連結された前記グラフ情報と、前記一のユーザの移動における時刻情報とを取得し、
前記送信部は、
前記類似移動経路のうち、前記類似移動経路に対応付けられた時刻情報が、前記一のユーザの移動における時刻情報に対応する移動経路に基づく前記推奨情報を送信する
ことを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記取得部は、
各移動経路に対応する移動における気象情報が関連付けられた前記複数のノードが、前記複数の移動経路の類似性に応じて連結された前記グラフ情報と、前記一のユーザの移動における気象情報とを取得し、
前記送信部は、
前記類似移動経路のうち、前記類似移動経路に対応付けられた気象情報が、前記一のユーザの移動における気象情報に対応する移動経路に基づく前記推奨情報を送信する
ことを特徴とする請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記起点ノードの決定に用いるインデックス情報に基づいて、前記起点ノードを決定する決定部、
をさらに備え、
前記抽出部は、
前記決定部により決定された前記起点ノードを起点として、前記類似移動経路を抽出する
ことを特徴とする請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
前記決定部は、
木構造型の前記インデックス情報に基づいて、前記起点ノードを決定する
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記取得部は、
前記複数の移動経路の各々に対応する複数のベクトルの類似性に応じて、前記複数のノードが連結されたグラフ情報を取得する
ことを特徴とする請求項１〜８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記取得部は、
前記複数の移動経路の各々の特徴を示す前記複数のベクトルが類似性に応じて連結された前記グラフ情報を取得する
ことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記取得部は、
所定のモデルを用いて前記複数の移動経路の各々から抽出された特徴量を要素とする前記複数のベクトルが、類似性に応じて連結された前記グラフ情報を取得する
ことを特徴とする請求項９または請求項１０に記載の情報処理装置。
【請求項１２】
前記取得部は、
前記複数の移動経路に関する情報を所定のモデルに入力することにより、抽出される前記複数の移動経路の各々の特徴量を要素とする前記複数のベクトルが、類似性に応じて連結された前記グラフ情報を取得する
ことを特徴とする請求項９〜１１のいずれか１項に記載の情報処理装置。
【請求項１３】
コンピュータが実行する情報処理方法であって、
複数の移動経路の各々に対応する複数のノードであって、各移動経路に対応する移動を行った対応ユーザが関連付けられた複数のノードが、前記複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動に関する移動情報を取得する取得工程と、
前記取得工程により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数の移動経路のうち、前記一のユーザの移動に類似する移動の移動経路である類似移動経路を抽出する抽出工程と、
前記抽出工程により抽出された前記類似移動経路に対応付けられた前記対応ユーザの情報に基づいて、前記一のユーザが利用する端末装置へ前記一のユーザの移動に関連する推奨情報を送信する送信工程と、
を含んだことを特徴とする情報処理方法。
【請求項１４】
複数の移動経路の各々に対応する複数のノードであって、各移動経路に対応する移動を行った対応ユーザが関連付けられた複数のノードが、前記複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動に関する移動情報を取得する取得手順と、
前記取得手順により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数の移動経路のうち、前記一のユーザの移動に類似する移動の移動経路である類似移動経路を抽出する抽出手順と、
前記抽出手順により抽出された前記類似移動経路に対応付けられた前記対応ユーザの情報に基づいて、前記一のユーザが利用する端末装置へ前記一のユーザの移動に関連する推奨情報を送信する送信手順と、
をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【０００２】
従来、ユーザの行動に応じてユーザに対して種々の情報を推奨する技術が提供されている。例えば、ユーザの特性に配慮しつつ、環境への影響を考慮した推奨経路を提案する技術が提供されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−０８３４８６号公報
【特許文献２】特開２０１３−１０１０５１号公報
【非特許文献】
【０００４】
【非特許文献１】岩崎雅二郎  "木構造型インデックスを利用した近似k最近傍グラフによる近傍検索",  情報処理学会論文誌,  2011/2,  Vol.  52,  No.  2.  pp.817-828.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術では、ユーザの移動に応じて適切な推奨を行うことが難しい場合がある。例えば、ユーザ特性情報に基づいて、出発地から目的地に至る区間に対し、移動手段を特定したりするため、ユーザの目的地に関する情報が必要となる。そのため、例えば、ユーザの目的地が不明な場合など、ユーザの移動に応じて適切な推奨を行うことが難しい場合がある。
【０００６】
本願は、上記に鑑みてなされたものであって、ユーザの移動に応じて適切な推奨を行う情報処理装置、情報処理方法、及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願に係る情報処理装置は、複数の移動経路の各々に対応する複数のノードであって、各移動経路に対応する移動を行った対応ユーザが関連付けられた複数のノードが、前記複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動に関する移動情報を取得する取得部と、前記取得部により取得された前記グラフ情報の前記複数のノードのうち、所定の基準に基づいて決定された前記グラフ情報の検索の起点となる起点ノードを起点として、前記グラフ情報を検索することにより、前記複数の移動経路のうち、前記一のユーザの移動に類似する移動の移動経路である類似移動経路を抽出する抽出部と、前記抽出部により抽出された前記類似移動経路に対応付けられた前記対応ユーザの情報に基づいて、前記一のユーザが利用する端末装置へ前記一のユーザの移動に関連する推奨情報を送信する送信部と、を備えたことを特徴とする。
【発明の効果】
【０００８】
実施形態の一態様によれば、ユーザの移動に応じて適切な推奨を行うことができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る情報処理の一例を示す図である。
【図２】図２は、実施形態に係る情報処理の一例を示す図である。
【図３】図３は、実施形態に係る情報処理システムの構成例を示す図である。
【図４】図４は、実施形態に係る情報処理装置の構成例を示す図である。
【図５】図５は、実施形態に係るＰＯＩ情報記憶部の一例を示す図である。
【図６】図６は、実施形態に係るユーザ情報記憶部の一例を示す図である。
【図７】図７は、実施形態に係る移動経路情報記憶部の一例を示す図である。
【図８】図８は、実施形態に係るインデックス情報記憶部の一例を示す図である。
【図９】図９は、実施形態に係るグラフ情報記憶部の一例を示す図である。
【図１０】図１０は、実施形態に係るモデル情報記憶部の一例を示す図である。
【図１１】図１１は、実施形態に係る情報処理の一例を示すフローチャートである。
【図１２】図１２は、実施形態に係る生成処理の一例を示すフローチャートである。
【図１３】図１３は、実施形態に係る特徴量の抽出の一例を示す図である。
【図１４】図１４は、グラフ情報を用いた検索処理の一例を示すフローチャートである。
【図１５】図１５は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【００１０】
以下に、本願に係る情報処理装置、情報処理方法、及び情報処理プログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法、及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１１】
（実施形態）
〔１．情報処理〕
図１及び図２を用いて、実施形態に係る情報処理の一例について説明する。図１及び図２は、実施形態に係る情報処理の一例を示す図である。図１及び図２では、情報処理装置１００が移動経路をグラフ構造化したグラフデータ（グラフ情報）を検索することにより、類似する移動経路（以下、「類似移動経路」ともいう）を抽出し、抽出した情報を基にユーザへ推奨情報を提供する場合を示す。なお、ここでいう移動経路には、一の地点から他の地点までの経路のみに限らず、その移動の際のユーザの移動速度の変化や位置の変化態様等の移動態様の種々の情報を含む。
【００１２】
図１及び図２では、情報処理装置１００は、各移動経路に対応するベクトルデータ（単に「ベクトル」ともいう）を用いて移動経路をグラフ構造化したグラフ情報を用いる。また、各移動経路には、その行動を行ったユーザ（対象ユーザ）やその移動後に対象ユーザが立ち寄ったスポットやその移動時の時間帯（時刻）や天候等の情報が関連付けられている。図１及び図２では、情報処理装置１００が歩行により移動を行っているユーザＵ１の移動経路等の情報に基づいて、ユーザＵ１に訪れる地点（以下、「立ち寄りスポット」とする場合がある）を推奨する場合を一例として説明する。なお、情報処理装置１００が用いる情報は、ベクトルに限らず、各移動経路の類似性を表現可能な情報であれば、どのような形式の情報であってもよい。例えば、情報処理装置１００は、各移動経路に対応する所定のデータや値を用いて移動経路をグラフ構造化したグラフ情報を用いてもよい。例えば、情報処理装置１００は、各移動経路から生成された所定の数値（例えば２進数の値や１６進数の値）を用いて移動経路をグラフ構造化したグラフ情報を用いてもよい。例えば、ベクトルに代えて、データ間の距離（類似度）が定義されていれば任意の形態のデータであっても良い。
【００１３】
なお、図１及び図２の例では、移動経路としてユーザの歩行の移動経路を対象とする場合を一例として示すが、移動経路は歩行の移動経路に限らず、自動車等の車両の移動経路など、どのような移動態様を対象とする移動経路であってもよい。すなわち、対象とする移動経路（オブジェクト）は、ベクトルとして表現可能であれば、どのような移動経路（情報）であってもよい。
【００１４】
〔１−１．情報処理システムの構成〕
図１及び図２の説明に先だって、図３を用いて情報処理システム１の構成について説明する。図３に示すように、情報処理システム１は、端末装置１０と、情報提供装置５０と、情報処理装置１００とが含まれる。端末装置１０と、情報提供装置５０と、情報処理装置１００とは所定のネットワークＮを介して、有線または無線により通信可能に接続される。図３は、実施形態に係る情報処理システムの構成例を示す図である。なお、図３に示した情報処理システム１には、複数台の端末装置１０や、複数台の情報提供装置５０や、複数台の情報処理装置１００が含まれてもよい。
【００１５】
端末装置１０は、ユーザによって利用される情報処理装置である。端末装置１０は、ユーザによる種々の操作を受け付ける。なお、以下では、端末装置１０をユーザと表記する場合がある。すなわち、以下では、ユーザを端末装置１０と読み替えることもできる。なお、上述した端末装置１０は、例えば、スマートフォンや、タブレット型端末や、ノート型ＰＣ（Personal  Computer）や、デスクトップＰＣや、携帯電話機や、ＰＤＡ（Personal  Digital  Assistant）等により実現される。
【００１６】
また、端末装置１０は、ＧＰＳ（Global  Positioning  System）センサ等の機能を有し、ユーザの位置情報（センサ情報）を検知し、取得するものとする。また、端末装置１０は、通信を行っている基地局の位置情報や、ＷｉＦｉ（登録商標）（Wireless  Fidelity）やＢｌｕｅｔｏｏｔｈ（登録商標）等の所定の無線通信機能やビーコン等の機能を用いてユーザの位置情報を検知し、取得してもよい。なお、以下では位置情報を単に「位置」と記載する場合がある。例えば、端末装置１０は、ＧＰＳや上記のような無線通信機能やビーコン等の情報を組み合わせることにより、ユーザの位置の推定精度を高めてもよい。
【００１７】
また、端末装置１０は、ＧＰＳセンサ等に限らず種々のセンサにより、各種センサ情報を検知してもよい。また、端末装置１０は、ジャイロセンサや加速度センサの機能を有し、ユーザの移動における加速度情報（センサ情報）を検知し、取得する。また、端末装置１０は、温度センサや気圧センサ等の種々の機能を有し、温度や気圧等のユーザの置かれている環境情報を検知し、取得可能であってもよい。また、端末装置１０は、心拍センサ等の種々の機能を有し、ユーザの生体情報を検知し、取得可能であってもよい。例えば、端末装置１０を利用するユーザは、端末装置１０と通信可能なウェアラブルデバイスを身に付けることにより、端末装置１０によりユーザ自身のコンテキスト情報を取得可能としてもよい。例えば、端末装置１０を利用するユーザは、端末装置１０と通信可能なリストバンド型のウェアラブルデバイスを身に付けることにより、端末装置１０によりユーザ自身の心拍（脈拍）に関する情報を端末装置１０が取得可能としてもよい。
【００１８】
図１の例では、端末装置１０は、ユーザＵ１が利用するスマートフォンである場合を示す。例えば、端末装置１０は、各種センサにより検知（収集）されたユーザの移動データやコンテキスト情報等の種々の情報を情報処理装置１００へ送信する。例えば、端末装置１０は、ユーザの移動データやコンテキスト情報等の種々の情報を所定のアプリ等により情報処理装置１００へ送信する。
【００１９】
例えば、ここでいうコンテキストは、ユーザやそのユーザが利用する端末装置１０の状況やユーザや端末装置１０の環境（背景）に基づくユーザの種々の状況を含む概念であってもよい。また、コンテキスト情報には、ユーザが移動経路を移動中における、時間帯等を示す時刻情報や、天候を示す気象情報等のユーザが置かれた物理環境を示す情報が含まれる。また、コンテキスト情報には、ユーザが置かれた社会環境、ユーザに提供されるコンテンツの内容、ユーザが反応したコンテンツの内容、ユーザの属性、ユーザの感情等の種々の情報が含まれてもよい。また、例えば、コンテキスト情報は、ユーザが利用する端末装置１０の通信状態や表示する情報等が含まれる。このように、コンテキスト情報は、ユーザが移動経路を移動中における種々の情報が含まれてもよい。なお、上記は一例であり、コンテキスト情報には、上記に限らず、種々の情報が含まれてもよい。なお、コンテキスト情報には、移動データに対応する情報や対応ユーザの情報等が含まれてもよい。
【００２０】
情報処理装置１００は、起点ベクトルを起点としてグラフ情報を検索することにより、複数の移動経路のうち、一のユーザの移動に類似する移動経路である類似移動経路を抽出する情報処理装置である。また、認証装置１００は、抽出された類似移動経路に対応付けられた各種情報に基づく立ち寄りスポットを推奨する推奨情報を一のユーザの端末装置１０に送信する情報処理装置である。例えば、情報処理装置１００は、一のユーザの移動に関する移動経路情報を取得し、移動経路情報と、グラフ情報の検索の起点となる起点ベクトルに関する情報とに基づいて、起点ベクトルを決定する。
【００２１】
情報処理装置１００は、ユーザ等に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、情報処理装置１００は、端末装置１０から一のユーザの移動の移動データ（以下、「クエリ情報」や「クエリ」ともいう）を取得すると、クエリに類似する移動経路（ベクトル情報等）を検索し、類似移動経路を抽出する。そして、情報処理装置１００は、抽出した類似移動経路に対応付けられた立ち寄りスポットやその移動を行ったユーザや移動の際のコンテキスト情報等に基づく推奨情報を端末装置１０に送信する。また、例えば、情報処理装置１００が端末装置１０に提供するデータは、推奨する立ち寄りスポットの位置情報や具体的な名称やＵＲＬ（Uniform  Resource  Locator）等のその立ち寄りスポットの情報を参照するための情報であってもよい。なお、情報処理装置１００は、端末装置１０から一のユーザの移動の移動データを取得すると、クエリに類似する移動経路（ベクトル情報等）を検索し、検索結果を端末装置１０に提供してもよい。図１及び図２の例では、情報処理装置１００は、端末装置１０から一のユーザの移動の移動データを取得すると、一のユーザの移動に類似する移動経路を検索し、検索結果を類似の移動経路として端末装置１０に提供する。
【００２２】
情報提供装置５０は、情報処理装置１００に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、情報提供装置５０は、ウェブサーバ等の種々の外部装置から収集した移動経路情報等が格納されてもよい。例えば、情報提供装置５０は、グラフ情報やインデックス情報やモデル等の種々の情報を情報処理装置１００に提供する情報処理装置である。
【００２３】
〔１−２．グラフ情報について〕
ここで、グラフ情報について説明する。また、情報処理装置１００は、図２中のグラフ情報ＧＲ１１に示すように、各ベクトル（ノード）が有向エッジにより連結されたグラフデータを対象に情報処理を行う。なお、図２中のグラフ情報ＧＲ１１に示すようなグラフ情報は、情報処理装置１００が生成してもよいし、情報処理装置１００は、図２中のグラフ情報ＧＲ１１に示すようなグラフ情報を情報提供装置５０（図３参照）等の他の外部装置から取得してもよい。
【００２４】
また、ここでいう、有向エッジとは、一方向にしかデータを辿れないエッジを意味する。以下では、エッジにより辿る元、すなわち始点となるノードを参照元とし、エッジにより辿る先、すなわち終点となるノードを参照先とする。例えば、所定のノード「Ａ」から所定のノード「Ｂ」に連結される有向エッジとは、参照元をノード「Ａ」とし、参照先をノード「Ｂ」とするエッジであることを示す。なお、各ノードを連結するエッジは、有向エッジに限らず、種々のエッジであってもよい。例えば、各ノードを連結するエッジは、ノードを連結する方向のないエッジであってもよい。例えば、各ノードを連結するエッジは、相互に参照可能なエッジであってもよい。例えば、各ノードを連結するエッジは、全て双方向エッジであってもよい。
【００２５】
例えば、このようにノード「Ａ」を参照元とするエッジをノード「Ａ」の出力エッジという。また、例えば、このようにノード「Ｂ」を参照先とするエッジをノード「Ｂ」の入力エッジという。すなわち、ここでいう出力エッジ及び入力エッジとは、一の有向エッジをその有向エッジが連結する２つのノードのうち、いずれのノードを中心として捉えるかの相違であり、一の有向エッジが出力エッジ及び入力エッジになる。すなわち、出力エッジ及び入力エッジは、相対的な概念であって、一の有向エッジについて、参照元となるノードを中心として捉えた場合に出力エッジとなり、参照先となるノードを中心として捉えた場合に入力エッジとなる。なお、本実施形態においては、エッジについては、出力エッジや入力エッジ等の有向エッジを対象とするため、以下では、有向エッジを単に「エッジ」と記載する場合がある。
【００２６】
例えば、情報処理装置１００は、数百万〜数億単位の移動経路に対応するノードを対象に処理を行うが、図面においてはその一部のみを図示する。図２の例では、説明を簡単にするために、８個のノードを図示して処理の概要を説明する。例えば、情報処理装置１００は、図２中のグラフ情報ＧＲ１１に示すように、ノードＮ１、Ｎ２、Ｎ５等に示すような複数のノード（ベクトル）を含むグラフ情報を取得する。また、図２の例では、グラフ情報ＧＲ１１における各ノードは、そのノードとの間の距離が近い方から所定数のノードへのエッジ（出力エッジ）が連結される。例えば、所定数は、目的や用途等に応じて、２や５や１０や１００等の種々の値であってもよい。例えば、所定数が３である場合、ノードＮ１からは、ノードＮ１からの距離が最も近いノード及び３番目に距離が近い３つのノードに出力エッジが連結される。なお、類似度を示す指標としての距離は、ベクトル（Ｎ次元ベクトル）間の距離として適用可能であれば、どのような距離であってもよく、例えば、ユークリッド距離やマハラノビス距離やコサイン距離等の種々の距離が用いられてもよい。
【００２７】
また、このように「ノードＮ＊（＊は任意の数値）」と記載した場合、そのノードはノードＩＤ「Ｎ＊」により識別されるノードであることを示す。例えば、「ノードＮ１」と記載した場合、そのノードはノードＩＤ「Ｎ１」により識別されるノードである。
【００２８】
また、図２中のグラフ情報ＧＲ１１では、ノードＮ７１２は、ノードＮ７へ向かう有向エッジであるエッジＥ７が連結される。すなわち、ノードＮ７１２は、ノードＮ７とエッジＥ７により連結される。このように「エッジＥ＊（＊は任意の数値）」と記載した場合、そのエッジはエッジＩＤ「Ｅ＊」により識別されるエッジであることを示す。例えば、「エッジＥ１１」と記載した場合、そのエッジはエッジＩＤ「Ｅ１１」により識別されるエッジである。例えば、ノードＮ７１２を参照元とし、ノードＮ７を参照先として連結されるエッジＥ７により、ノードＮ７１２からノードＮ７に辿ることが可能となる。この場合、有向エッジであるエッジＥ７は、ノードＮ７１２を中心として識別される場合、出力エッジとなり、ノードＮ７を中心として識別される場合、入力エッジとなる。また、図２のグラフ情報ＧＲ１１中の双方向矢印は、両方のノードから他方のノードへの有向エッジが連結されることを示す。例えば、グラフ情報ＧＲ１１中のノードＮ２とノードＮ５との間の双方向矢印は、ノードＮ２からノードＮ５へ向かう有向エッジと、ノードＮ５からノードＮ２へ向かう有向エッジとの２つのエッジが連結されることを示す。
【００２９】
また、図２中のグラフ情報ＧＲ１１は、ユークリッド空間であってもよい。また、図２に示すグラフ情報ＧＲ１１は、各ベクトル間の距離等の説明のための概念的な図であり、グラフ情報ＧＲ１１は、多次元空間である。例えば、図２に示すグラフ情報ＧＲ１１は、平面上に図示するため２次元の態様にて図示されるが、例えば１００次元や１０００次元等の多次元空間であるものとする。
【００３０】
ここで、ベクトルデータ間の距離は、移動経路の類似性を示し、距離が近いほど類似している。本実施形態においては、グラフ情報ＧＲ１１における各ノードの距離を対応する各オブジェクト間の類似度とする。例えば、各ノードに対応する対象（移動経路）の類似性が、グラフ情報ＧＲ１１内におけるノード間の距離として写像されているものとする。例えば、各ノードに対応する概念間の類似度が各ノード間の距離に写像されているものとする。ここで、図２に示す例においては、グラフ情報ＧＲ１１における各ノード間の距離が短いオブジェクト同士の類似度が高く、グラフ情報ＧＲ１１における各ノード間の距離が長いオブジェクト同士の類似度が低い。例えば、図２中のグラフ情報ＧＲ１１において、ノードＩＤ「Ｎ１」により識別されるノードと、ノードＩＤ「Ｎ２」により識別されるノードとは近接している、すなわち距離が短い。そのため、ノードＩＤ「Ｎ１」により識別されるノードに対応するオブジェクトと、ノードＩＤ「Ｎ２」により識別されるノードに対応するオブジェクトとは類似度が高いことを示す。
【００３１】
また、例えば、図２中のグラフ情報ＧＲ１１において、ノードＩＤ「Ｎ７」により識別されるノードと、ノードＩＤ「Ｎ３５４」により識別されるノードとは遠隔にある、すなわち距離が長い。そのため、ノードＩＤ「Ｎ７」により識別されるノードに対応するオブジェクトと、ノードＩＤ「Ｎ３５４」により識別されるノードに対応するオブジェクトとは類似度が低いことを示す。
【００３２】
〔１−３．ベクトルの生成例〕
また、ここでいう、各ノード（ベクトル）は、各オブジェクト（移動経路）に対応する。移動経路情報（移動データ）が様々な移動の態様を示す数値データであれば、それをベクトルデータとして、そのまま扱うことも可能である。しかし、移動データに、テキスト、画像、または、音声といった情報が含まれる場合には、ベクトルデータへの変換が必要となる。そこで、図１及び図２の例では、各移動経路の移動データから抽出された特徴量により生成された多次元（Ｎ次元）のベクトルがオブジェクトであってもよい。
【００３３】
例えば、情報処理装置１００は、移動データの特徴を抽出するモデルを用いて各移動経路の移動データからＮ次元ベクトルを生成してもよい。図１及び図２の例では、情報処理装置１００は、モデル情報記憶部１２６（図１０参照）に示すように、モデルＩＤ「Ｍ１」により識別されるモデル（モデルＭ１）を用いて、各移動経路の移動データからベクトルを生成する。上記のように、「モデルＭ＊（＊は任意の数値）」と記載した場合、そのモデルはモデルＩＤ「Ｍ＊」により識別されるモデルであることを示す。例えば、「モデルＭ１」と記載した場合、そのモデルはモデルＩＤ「Ｍ１」により識別されるモデルである。また、モデル情報記憶部１２６に示すように、モデルＭ１は用途「特徴抽出（移動経路）」、すなわち移動経路のデータからの特徴抽出のために用いられるモデルであり、その具体的なモデルデータが「モデルデータＭＤＴ１」であることを示す。
【００３４】
例えば、情報処理装置１００は、モデルＭ１に任意の移動経路の移動データを入力することにより、モデルＭ１中の各要素（ニューロン）の値を演算し、入力した移動データと同様の情報を出力する。例えば、情報処理装置１００は、中間層の各要素（ニューロン）の値を特徴量として抽出し、各移動経路に対応するＮ次元のベクトルデータを生成してもよい。
【００３５】
ここで、図１３を用いて、各移動経路に対応するベクトルデータの生成の一例を示す。図１３は、実施形態に係る特徴量の抽出の一例を示す図である。図１３は、モデルＭ１の概念図である。なお、図１３では、各要素（ニューロン）の各接続関係を示す線の図示を省略する。図１３に示すように、モデルＭ１は、入力層ＩＬと、中間層ＣＬと、出力層ＯＬとを含む。例えば、モデルＭ１の入力層ＩＬは、移動データが入力される層である。また、出力層ＯＬは、入力層ＩＬへの入力に応じて、入力された移動データと同様の情報を出力される層である。
【００３６】
また、例えば、中間層ＣＬの中央部の最も圧縮された圧縮層ＲＰは、入力された移動データの特徴を表現する層である。例えば、モデルＭ１の中間層ＣＬにおいて、入力層ＩＬから圧縮層ＲＰまでの間は、エンコードの処理を行う部分に対応する。モデルＭ１の中間層ＣＬにおいて、入力層ＩＬから圧縮層ＲＰまでの間は、入力された移動データの特徴を圧縮する処理を行う部分に対応する。例えば、モデルＭ１の中間層ＣＬにおいて、圧縮層ＲＰから出力層ＯＬまでの間は、デコードの処理を行う部分に対応する。モデルＭ１の中間層ＣＬにおいて、圧縮層ＲＰから出力層ＯＬまでの間は、圧縮された移動データを復元する処理を行う部分に対応する。
【００３７】
例えば、情報処理装置１００は、圧縮層ＲＰに含まれるニューロンＮＬ１やニューロンＮＬ２等の情報をベクトルに用いてもよい。例えば、情報処理装置１００は、ある移動経路の移動データが入力された場合に、算出されるニューロンＮＬ１に対応する値ＶＥ１やニューロンＮＬ２に対応する値ＶＥ２をベクトルの要素（一の次元の値）として抽出してもよい。例えば、情報処理装置１００は、ある移動経路の移動データが入力された場合に、算出されるニューロンＮＬ１に対応する値ＶＥ１をその移動経路のベクトルの１次元目の要素として抽出してもよい。また、例えば、情報処理装置１００は、ある移動経路の移動データが入力された場合に、算出されるニューロンＮＬ２に対応する値ＶＥ２をその移動経路のベクトルの２次元目の要素として抽出してもよい。このように、情報処理装置１００は、各移動経路の移動データをモデルＭ１に入力することにより、各移動経路に対応するベクトルを生成してもよい。なお、情報処理装置１００は、各移動経路に対応するベクトルを情報提供装置５０等の他の外部装置から取得してもよい。なお、情報処理装置１００は、ベクトルの各要素として、各ニューロンに対応する値自体を用いてもよいし、各ニューロンに対応する値に所定の係数を乗算した値を用いてもよい。また、図１及び図２の例では説明を簡単にするために、ベクトルの各要素（値）が整数である場合を示すが、ベクトルの各要素（値）は、小数点以下の数値を含む実数であってもよい。
【００３８】
なお、情報処理装置１００は、圧縮層ＲＰの要素（ニューロン）に限らず、中間層ＣＬ中の他の要素（ニューロン）の情報をベクトルに用いてもよい。例えば、情報処理装置１００は、エンコード部分のニューロンＮＬ３やデコード部分のニューロンＮＬ４等の情報をベクトルに用いてもよい。例えば、情報処理装置１００は、ある移動経路の移動データが入力された場合に、算出されるニューロンＮＬ３に対応する値ＶＥ３やニューロンＮＬ４に対応する値ＶＥ４をベクトルの要素（一の次元の値）として抽出してもよい。なお、上記は、一例であり、情報処理装置１００は、オートエンコーダに限らず、種々のモデルを用いて、移動データからの特徴抽出を行ってもよい。例えば、情報処理装置１００は、特定の移動パターンに適合する移動経路（移動データ）と適合しない移動経路（移動データ）を識別するように学習させたモデルを生成して、その中間層をベクトルデータとして抽出しても良い。また、例えば、トリプレットロス（triplet  loss）といった類似性を学習する方法によりモデルを生成しても良い。また、情報処理装置１００は、モデルを用いずに、特徴抽出を行ってもよい。例えば、情報処理装置１００は、情報処理装置１００の管理者等が設定して特徴（素性）に対応する情報を移動データから抽出し、ベクトルを生成してもよい。例えば、情報処理装置１００は、移動経路に対応する複数の位置情報やユーザがその移動経路を移動した際の速度等の特徴（素性）に対応する情報を移動データから抽出し、ベクトルを生成してもよい。
【００３９】
また、例えば、情報処理装置１００は、情報提供装置５０等の他の外部装置からモデルＭ１を取得してもよい。なお、情報処理装置１００は、移動経路情報記憶部１２３（図７参照）に記憶された各移動経路の移動データＭＤ１、ＭＤ２、ＭＤ３５４、ＭＤ５１２等を入力として、モデルＭ１を生成してもよい。例えば、端末装置１０は、各移動経路の移動データＭＤ１、ＭＤ２、ＭＤ３５４、ＭＤ５１２等を入力として、モデルＭ１を生成してもよい。例えば、移動データＭＤ１、ＭＤ２、ＭＤ３５４、ＭＤ５１２等は、移動経路に対応する複数の位置情報やユーザがその移動経路を移動した際の速度等を含んでもよい。例えば、移動データＭＤ１、ＭＤ２、ＭＤ３５４、ＭＤ５１２等の移動データは、対応ユーザの移動における始点から終点までの間に検知されたユーザの位置情報群やその位置情報群の各位置情報が検知された時間等に関する情報を含んでもよい。また、例えば、移動データは、対応ユーザの移動における始点から終点までの間の平均の移動速度や最高速度や最低速度等に関する情報を含んでもよい。また、例えば、移動データは、対応ユーザの移動において立ち止まったりする等により移動を中止した位置や時間や期間等に関する情報を含んでもよい。なお、上記は一例であり、移動データには、対応ユーザの移動において検知される種々の情報が含まれてもよい。
【００４０】
情報処理装置１００は、移動経路の移動経路情報（移動データ）が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力された移動経路情報に対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力するモデルＭ１を生成してもよい。なお、情報処理装置１００は、ベクトル生成に用いるモデルを情報提供装置５０等の他の外部装置から取得してもよい。
【００４１】
〔１−４．処理例〕
ここから、情報処理装置１００は、ユーザから一のユーザの移動の移動データを取得し、一のユーザの移動に類似する移動経路に関する情報提供を行う場合を一例として説明する。図１及び図２の例では、端末装置１０は、所定の管理者であるユーザＵ１により利用される。例えば、ユーザＵ１は、所定のエリアを散策しているユーザであってもよい。図１及び図２の例では、ユーザＵ１が散策している所定のエリアでの立ち寄りスポットの情報を所望する場合を示す。
【００４２】
まず、図１に示すエリア情報ＡＲ１について、簡単に説明する。図１の例では、エリア情報ＡＲ１は所定のエリアを模式的に示す図であり、ユーザＩＤ「Ｕ１」により識別されるユーザ（以下、「ユーザＵ１」とする場合がある）が利用する端末装置１０から取得する位置情報等の種々の移動データを用いて、ユーザＵ１に立ち寄りスポットを推奨する場合を示す。図１の例では、情報処理装置１００は、ユーザＵ１が利用する端末装置１０が有するＧＰＳセンサ等の機能により、ユーザＵ１が利用する端末装置１０の位置を取得する。図１中のエリア情報ＡＲ１には、所定のエリアにおけるユーザＵ１の移動におけるルートＲＴ１０や、所定のエリアに位置するＰＯＩ（関心地点：Point  of  Interest）等を模式的に示す。図１に示すエリア情報ＡＲ１は、ユーザＵ１の位置や所定のエリアに位置するＰＯＩである各スポットＳＰ１〜ＳＰ３等の位置を模式的に示す。
【００４３】
図１の例では、ユーザＵ１は、ルートＲＴ１０を移動することにより、位置ＬＣ１０から位置ＬＣ１５まで移動する。なお、図１の例では位置情報ＬＣ１０、ＬＣ３等の抽象的な符号で図示するが、位置情報は、具体的な緯度や経度を示す情報（緯度経度情報）等であってもよい。また、以下、「位置情報ＬＣ＊（＊は任意の数等の文字列）」を「位置ＬＣ＊」と記載する場合がある。例えば、「位置ＬＣ１」と記載した場合、その位置は位置情報ＬＣ１に対応する位置であることを示す。
【００４４】
例えば、ユーザＵ１は、ルートＲＴ１０の始点である位置ＬＣ１０からルートＲＴ１０の終点である位置ＬＣ１５まで移動する。例えば、端末装置１０は、ＧＰＳセンサ等の種々のセンサにより、ユーザＵ１がルートＲＴ１０を移動する際の位置情報を検知（収集）する。例えば、端末装置１０は、ＧＰＳセンサ等の種々のセンサにより、ユーザＵ１がルートＲＴ１０を移動する際の複数の位置情報を検知（収集）する。例えば、端末装置１０は、ＧＰＳセンサ等の種々のセンサにより、ユーザＵ１がルートＲＴ１０を移動する際の位置情報を検知し、位置情報とその位置情報の検知日時の組合せを収集する。例えば、端末装置１０は、ユーザＵ１がルートＲＴ１０を移動する際の位置情報とその位置情報の検知日時の組合せにより、ユーザＵ１の移動速度やどの位置にどの日時に位置したかを特定する。また、例えば、端末装置１０は、ユーザＵ１がルートＲＴ１０を移動する際の位置情報の検知日時の組合せにより、ユーザＵ１がルートＲＴ１０を移動する際の日時等の時刻情報を特定する。また、例えば、端末装置１０は、ユーザＵ１がルートＲＴ１０を移動する際の位置情報とその位置情報の検知日時の組合せにより、ユーザＵ１がルートＲＴ１０を移動する際の天候等の気象情報を特定する。例えば、端末装置１０は、インストール済みの所定のアプリケーションにより、ユーザＵ１がルートＲＴ１０を移動する際の移動データを取得してもよい。
【００４５】
そして、端末装置１０は、ユーザＵ１が位置ＬＣ１０から位置ＬＣ１５まで移動する際の移動経路情報を情報処理装置１００に送信する。端末装置１０は、ユーザＵ１が位置ＬＣ１０から位置ＬＣ１５まで移動する間に検知した位置情報等の種々の情報を含む移動データＭＤ１０を情報処理装置１００に送信する。例えば、端末装置１０は、ユーザＵ１が位置ＬＣ１０から位置ＬＣ１５まで移動した際の位置情報群や移動速度や気象情報や時刻情報等の種々の情報を含む移動データＭＤ１０を情報処理装置１００に送信する。なお、端末装置１０は、リアルタイムにセンサにより検知された移動データを情報処理装置１００に送信してもよい。例えば、端末装置１０は、センサにより検知される度に随時移動データを情報処理装置１００に送信してもよい。また、図１の例では、端末装置１０は、ユーザＵ１を特定するユーザ情報を送信する。例えば、端末装置１０は、ユーザＵ１を特定する情報として、ユーザＩＤ「Ｕ１」を情報処理装置１００に送信する。
【００４６】
そして、情報処理装置１００は、ユーザＵ１が利用する端末装置１０から移動経路情報を取得する（ステップＳ１１）。例えば、情報処理装置１００は、ユーザＵ１が利用する端末装置１０から移動データＭＤ１０を取得する。例えば、情報処理装置１００は、ユーザＵ１が位置ＬＣ１０から位置ＬＣ１５まで移動した際の位置情報群や移動速度や気象情報や時刻情報等の種々の情報を含む移動データＭＤ１０を取得する。図１の例では、情報処理装置１００は、ユーザＵ１が位置ＬＣ１０から位置ＬＣ１５まで移動した際に検知された位置情報群や、位置ＬＣ１０から位置ＬＣ１５まで移動した際の時刻が１２時等の昼の時間帯であることを示す情報を取得する。なお、情報処理装置１００は、ユーザＵ１が位置ＬＣ１０から位置ＬＣ１５まで移動した際の天候が晴れであったことを示す気象情報を、端末装置１０から取得してもよい。
【００４７】
また、情報処理装置１００は、ユーザＵ１を特定する情報と、ユーザ情報記憶部１２２に記憶されたユーザＵ１の属性情報に基づいて、ユーザＵ１が２０代男性であることを特定する。なお、情報処理装置１００は、ユーザＵ１が２０代男性であることを示す情報を端末装置１０から取得してもよい。
【００４８】
なお、情報処理装置１００は、ユーザＵ１のルートＲＴ１０の移動における位置情報とその位置情報の検知日時の組合せを端末装置１０から取得してもよい。この場合、例えば、情報処理装置１００は、ユーザＵ１がルートＲＴ１０を移動する際の位置情報とその位置情報の検知日時の組合せにより、ユーザＵ１の移動速度やどの位置にどの日時に位置したかを特定してもよい。また、例えば、情報処理装置１００は、ユーザＵ１がルートＲＴ１０を移動する際の位置情報の検知日時の組合せにより、ユーザＵ１がルートＲＴ１０を移動する際の日時等の時刻情報を特定してもよい。また、例えば、情報処理装置１００は、ユーザＵ１がルートＲＴ１０を移動する際の位置情報とその位置情報の検知日時の組合せにより、ユーザＵ１がルートＲＴ１０を移動する際の天候等の気象情報を特定してもよい。例えば、情報処理装置１００は、気象情報を提供する外部装置に、ユーザＵ１がルートＲＴ１０を移動する際の位置情報とその位置情報の検知日時とを送信することにより、外部装置から気象情報を取得してもよい。
【００４９】
そして、情報処理装置１００は、類似移動経路を抽出する抽出処理を行う（ステップＳ１２）。情報処理装置１００は、取得したユーザＵ１の移動データに基づいて、ユーザＵ１の移動に類似する類似移動経路を抽出する抽出処理を行う。図１の例では、情報処理装置１００は、移動データＭＤ１０を用いて抽出処理を行う。
【００５０】
ここから、図２を用いて、抽出処理の具体例を説明する。図２に示すように、情報処理装置１００は、一のユーザの移動に対応する移動データからグラフ情報の探索に用いるベクトルを生成する。図２の例では、情報処理装置１００は、処理群ＰＳ１１に示すような処理により、ユーザＵ１のルートＲＴ１０における移動（以下、「ユーザＵ１の移動」とする場合がある）に対応するベクトルを生成する。情報処理装置１００は、ユーザＵ１の移動に関する移動データＭＤ１０をモデルＭ１に入力する（ステップＳ１２−１）。具体的には、情報処理装置１００は、ユーザＵ１の移動の移動データＭＤ１０をモデルＭ１に入力する。そして、情報処理装置１００は、移動データＭＤ１０の入力後のモデルＭ１中の情報を用いて、ベクトルを生成する（ステップＳ１２−２）。例えば、情報処理装置１００は、移動データＭＤ１０が入力されたモデルＭ１中の各要素を用いて、ベクトルデータを生成する。
【００５１】
図２の例では、情報処理装置１００は、移動データＭＤ１０が入力されたモデルＭ１中の各要素の値を用いて、ベクトルデータＶＤ１０（単に「ベクトルＶＤ１０」ともいう）を生成する。例えば、情報処理装置１００は、ユーザＵ１の移動の移動データＭＤ１０が入力された場合における、モデルＭ１のニューロンＮＬ１に対応する値ＶＥ１（図１３参照）やニューロンＮＬ２に対応する値ＶＥ２（図１３参照）を用いて、ベクトルを生成する。例えば、情報処理装置１００は、ユーザＵ１の移動の移動データＭＤ１０が入力された場合に、算出されるニューロンＮＬ１に対応する値ＶＥ１をベクトルＶＤ１０の１次元目の要素として抽出してもよい。また、例えば、情報処理装置１００は、ある移動経路の移動データが入力された場合に、算出されるニューロンＮＬ２に対応する値ＶＥ２をベクトルＶＤ１０の２次元目の要素として、ベクトルＶＤ１０を生成する。図２の例では、情報処理装置１００は、１次元目の要素が「３」であり、２次元目の要素が「２」であるようなベクトルＶＤ１０を生成する。
【００５２】
そして、情報処理装置１００は、ユーザＵ１の移動に類似する移動経路（類似移動経路）を検索する（ステップＳ１２−３）。例えば、情報処理装置１００は、非特許文献１に開示されるような近傍検索の技術等の種々の従来技術を適宜用いて、ユーザＵ１の移動の類似移動経路を検索してもよい。
【００５３】
図２の例では、情報処理装置１００は、情報群ＩＮＦ１１に示すように、グラフ情報ＧＲ１１やインデックス情報ＩＮＤ１１を用いてユーザＵ１の移動の類似移動経路を検索する。例えば、情報処理装置１００は、グラフ情報記憶部１２５（図９参照）から移動経路に関するグラフ情報ＧＲ１１を取得する。また、例えば、情報処理装置１００は、インデックス情報記憶部１２４（図８参照）から、グラフ情報ＧＲ１１における検索の起点となるノード（以下、「起点ベクトル」ともいう）の決定に用いるインデックス情報ＩＮＤ１１を取得する。なお、インデックス情報ＩＮＤ１１は、情報処理装置１００が生成してもよいし、情報処理装置１００は、インデックス情報ＩＮＤ１１を情報提供装置５０等の他の外部装置から取得してもよい。
【００５４】
そして、情報処理装置１００は、一のユーザの移動（クエリ）に対応する起点ベクトルを決定（特定）するために、インデックス情報ＩＮＤ１１を用いる。図２の例では、情報処理装置１００は、ユーザＵ１の移動のベクトルＶＤ１０に対応する起点ベクトルを決定（特定）するために、インデックス情報ＩＮＤ１１を用いる。すなわち、情報処理装置１００は、ベクトルＶＤ１０とインデックス情報ＩＮＤ１１とを用いて、グラフ情報ＧＲ１１における起点ベクトルを決定する。
【００５５】
図２中のインデックス情報ＩＮＤ１１は、図８中のインデックス情報記憶部１２４に示す階層構造を有する。例えば、インデックス情報ＩＮＤ１１は、ルートＲＴの直下に位置する第１階層のノード（ベクトル）が、節点ＶＴ１、ＶＴ２等であることを示す。また、例えば、インデックス情報ＩＮＤ１１は、節点ＶＴ２の直下の第２階層のノードが、節点ＶＴ２−１〜ＶＴ２−４（図示せず）であることを示す。また、例えば、インデックス情報ＩＮＤ１１は、節点ＶＴ２−２の直下の第３階層のノードが、ノードＮ１、ノードＮ２、ノードＮ５、すなわちグラフ情報ＧＲ１１中のノード（ベクトル）であることを示す。
【００５６】
例えば、情報処理装置１００は、図２中のインデックス情報ＩＮＤ１１に示すような木構造型のインデックス情報を用いて、グラフ情報ＧＲ１１における起点ベクトルを決定する（ステップＳ１２−４）。図２の例では、情報処理装置１００は、ベクトルＶＤ１０を生成した後、インデックス情報ＩＮＤ１１を上から下へ辿ることにより、インデックス情報ＩＮＤ１１の近傍候補となる起点ベクトルを特定することにより、効率的に検索クエリ（一のユーザの移動データ）に対応する起点ベクトルを決定することができる。
【００５７】
例えば、情報処理装置１００は、インデックス情報ＩＮＤ１１をルートＲＴからリーフノード（グラフ情報ＧＲ１１中のノード（ベクトル））まで辿ることにより、ベクトルＶＤ１０に対応する起点ベクトルを決定してもよい。図２の例では、例えば、情報処理装置１００は、インデックス情報ＩＮＤ１１をルートＲＴからノードＮ２まで辿ることにより、ノードＮ２を起点ベクトルとして決定する。例えば、情報処理装置１００は、木構造に関する種々の従来技術を適宜用いて、インデックス情報ＩＮＤ１１をルートＲＴからリーフノードまで辿ることにより、辿りついたリーフノードを起点ベクトルとして決定してもよい。
【００５８】
例えば、情報処理装置１００は、ベクトルＶＤ１０との類似度に基づいて、インデックス情報ＩＮＤ１１を下へ辿ることにより、起点ベクトルを決定してもよい。例えば、情報処理装置１００は、ルートＲＴから節点ＶＴ１、ＶＴ２等のいずれの節点に辿るかを、ベクトルＶＤ１０と節点ＶＴ１、ＶＴ２との類似度に基づいて決定してもよい。例えば、情報処理装置１００は、ルートＲＴから節点ＶＴ１、ＶＴ２等のうち、ベクトルＶＤ１０との類似度が最も高い節点ＶＴ２へ辿ると決定してもよい。また、例えば、情報処理装置１００は、節点ＶＴ２から節点ＶＴ２−１〜ＶＴ２−４等のうち、ベクトルＶＤ１０との類似度が最も高い節点ＶＴ２−２へ辿ると決定してもよい。また、例えば、情報処理装置１００は、節点ＶＴ２−２からノードＮ１、Ｎ２、Ｎ５等のうち、ベクトルＶＤ１０との類似度が最も高い節点ノードＮ２へ辿ると決定してもよい。
【００５９】
なお、図２の例では、説明を簡単にするために、起点ベクトルを１つ決定する場合を示すが、情報処理装置１００は、複数個の起点ベクトルを決定してもよい。例えば、情報処理装置１００は、ノードＮ１、Ｎ２、Ｎ５等の複数個のベクトル（ノード）を起点ベクトルとして決定してもよい。なお、インデックス情報ＩＮＤ１１を用いずに、検索開始時にグラフ情報ＧＲ１１からランダムに１つ以上のノードを選択し、それを起点ベクトルとしてもよいし、または、予め指定された１つ以上のノードを起点ベクトルとしても良い。
【００６０】
そして、情報処理装置１００は、グラフ情報ＧＲ１１を検索することにより、ユーザＵ１の移動の類似移動経路を抽出する（ステップＳ１２−５）。例えば、情報処理装置１００は、ノードＮ２の近傍に位置するノードを類似移動経路として抽出する。例えば、情報処理装置１００は、ノードＮ２からの距離が近いノードを類似移動経路として抽出する。例えば、情報処理装置１００は、ノードＮ２を起点として、エッジを辿ることにより、ノードＮ２から到達可能なノードを類似移動経路として抽出する。例えば、情報処理装置１００は、所定数（例えば、２個や１０個等）のノードを類似移動経路として抽出する。例えば、情報処理装置１００は、図１４に示すような検索処理により、ユーザＵ１の移動の類似移動経路を抽出してもよいが、詳細は後述する。図２の例では、情報処理装置１００は、ノードＮ２を起点として、グラフ情報ＧＲ１１を探索することにより、ノードＮ２やノードＮ１やノードＮ５１２等を類似移動経路として抽出する。
【００６１】
これにより、情報処理装置１００は、図１中の移動経路情報記憶部１２３に示すように、類似移動経路を抽出する。例えば、情報処理装置１００は、ユーザＵ９９の移動に対応する移動経路ＭＰ１や、ユーザＵ５１の移動に対応する移動経路ＭＰ２や、ユーザＵ２１の移動に対応する移動経路ＭＰ５１２等を抽出する。図１中の移動経路情報記憶部１２３に示すように、各ユーザの移動経路には、その移動経路に対応する移動後にユーザが訪問した訪問地点（立ち寄りスポット）が対応づけられている。
【００６２】
そして、情報処理装置１００は、抽出した類似移動経路に対応付けられた訪問地点に基づいて、対応訪問地点を抽出する（ステップＳ１３）。例えば、情報処理装置１００は、抽出した類似移動経路に対応付けられた訪問地点のうち、ユーザＵ１の属性に類似する属性のユーザの移動経路に対応付けられた訪問地点を抽出する。また、例えば、情報処理装置１００は、抽出した類似移動経路に対応付けられた訪問地点のうち、ユーザＵ１の移動の時間帯と類似する時間帯におけるユーザの移動経路に対応付けられた訪問地点を抽出する。
【００６３】
図１の例では、情報処理装置１００は、ユーザの属性が２０代男性であり、移動の時間帯が昼である移動経路に対応付けられた訪問地点を対応訪問地点として抽出する。この場合、情報処理装置１００は、２０代男性のユーザＵ９９が昼に移動した際の訪問地点であるスポットＳＰ２を対応訪問地点として抽出する。また、情報処理装置１００は、２０代男性のユーザＵ２１が昼に移動した際の訪問地点であるスポットＳＰ２を対応訪問地点として抽出する。また、図１の例では、他にも、情報処理装置１００は、２０代男性のユーザＵ１１１が昼に移動した際の訪問地点であるスポットＳＰ１等も対応訪問地点として抽出する。また、情報処理装置１００は、２０代女性のユーザＵ５１が夜に移動した際の訪問地点であるスポットＳＰ３を対応訪問地点として抽出しない。
【００６４】
これにより、情報処理装置１００は、類似移動経路のうち、ユーザＵ１の属性やユーザＵ１の移動時のコンテキスト情報と類似性のある移動における訪問地点を対応訪問地点として抽出する。図１の例では、情報処理装置１００は、ＰＯＩ情報記憶部１２１に示すように、スポットＳＰ２を対応訪問地点として最も多く抽出する。
【００６５】
そして、情報処理装置１００は、抽出した対応訪問地点に基づいて、推奨地点を決定する（ステップＳ１４）。例えば、情報処理装置１００は、抽出した対応訪問地点中のスポットのうち、最多の訪問地点を推奨地点に決定する。図１の例では、情報処理装置１００は、スポットＳＰ２を推奨地点に決定する。
【００６６】
そして、情報処理装置１００は、決定した推奨地点に関する情報を提供する（ステップＳ１５）。図１の例では、情報処理装置１００は、スポットＳＰ２が推奨地点であることを示す推奨地点情報をユーザＵ１が利用する端末装置１０に送信する。これにより、情報処理装置１００は、スポットＳＰ２がユーザＵ１の移動において最適な立ち寄りスポットであることを示す推奨地点情報をユーザＵ１が利用する端末装置１０に提供する。
【００６７】
上述したように、情報処理装置１００は、グラフ情報ＧＲ１１やインデックス情報ＩＮＤ１１を用いて、ユーザＵ１から取得したユーザＵ１の移動の類似移動経路を抽出する。例えば、情報処理装置１００は、インデックス情報ＩＮＤ１１を用いて、ユーザＵ１の移動の類似移動経路を抽出する際のグラフ情報ＧＲ１１における起点ベクトルを決定する。そして、情報処理装置１００は、決定した起点ベクトルを起点としてグラフ情報ＧＲ１１を探索することにより、ユーザＵ１の移動の類似移動経路を抽出する。
【００６８】
そして、情報処理装置１００は、抽出した類似移動経路に対応付けられた訪問地点の情報に基づいて、ユーザＵ１に推奨する立ち寄りスポットを決定し、その情報をユーザＵ１が利用する端末装置１０へ送信する。これにより、情報処理装置１００は、ユーザの移動に応じて適切な推奨を行うことができる。
【００６９】
例えば、ディープラーニングといった手法で、各ユーザの移動経路に対応する訪問地点を識別するという方法もあるが、移動経路に対応する多種多様な訪問地点が存在する場合においては、各訪問地点の事例が少ないので、学習ができずに識別精度を向上させることが難しいという問題がある。例えば、ディープラーニングといった学習手法で生成したモデルを用いて、そのモデルに移動経路の情報を入力し、出力されたスコアからその移動経路が所定の訪問地点に適するかを識別するという方法もあるが、多種多様な訪問地点が存在する場合においては、各訪問地点の事例が少ないため、モデルの精度を向上させることが難しく、識別精度を向上させることが難しい。一方で、情報処理装置１００は、移動経路情報（移動データ）の各要素から抽出した特徴を基に生成した複数のベクトルのグラフ構造化したグラフ情報を用いて検索を行うことにより、ある移動経路に類似する類似移動経路を適切に抽出することができる。そして、情報処理装置１００は、その類似移動経路に対応付けられた訪問地点の情報により、適切な訪問地点を決定することができる。そのため、情報処理装置１００は、ある移動においてどのような訪問地点（立ち寄りスポット）が適切かを精度よく決定することができる。
【００７０】
〔１−５．インデックス情報〕
図２の例に示すインデックス情報（インデックスデータ）は一例であり、情報処理装置１００は、種々のインデックス情報を用いて、グラフ情報を検索してもよい。また、例えば、情報処理装置１００は、検索時に用いるインデックスデータを生成してもよい。例えば、情報処理装置１００は、高次元ベクトルを検索する検索インデックスをインデックスデータとして生成する。ここでいう高次元ベクトルとは、例えば、数百次元から数千次元のベクトルであってもよいし、それ以上の次元のベクトルであってもよい。
【００７１】
例えば、情報処理装置１００は、図２に示すようなツリー構造（木構造）に関する検索インデックスをインデックスデータとして生成してもよい。例えば、情報処理装置１００は、ｋｄ木（k-dimensional  tree）に関する検索インデックスをインデックスデータとして生成してもよい。例えば、情報処理装置１００は、ＶＰ木（Vantage-Point  tree）に関する検索インデックスをインデックスデータとして生成してもよい。
【００７２】
また、例えば、情報処理装置１００は、その他の木構造を有するインデックスデータとして生成してもよい。例えば、情報処理装置１００は、木構造のインデックスデータのリーフがグラフデータに接続する種々のインデックスデータを生成してもよい。例えば、情報処理装置１００は、木構造のインデックスデータのリーフがグラフデータ中のノードに対応する種々のインデックスデータを生成してもよい。また、情報処理装置１００は、このようなインデックスデータを用いて検索を行う場合、インデックスデータを辿って到達したリーフ（ノード）からグラフデータを探索してもよい。
【００７３】
なお、上述したようなインデックスデータは一例であり、情報処理装置１００は、グラフデータ中のクエリを高速に特定することが可能であれば、どのようなデータ構造のインデックスデータを生成してもよい。例えば、情報処理装置１００は、クエリに対応するグラフ情報中のノードを高速に特定することが可能であれば、バイナリ空間分割に関する技術等の種々の従来技術を適宜用いて、インデックスデータを生成してもよい。例えば、情報処理装置１００は、高次元ベクトルの検索に対応可能なインデックスであれば、どのようなデータ構造のインデックスデータを生成してもよい。例えば、情報処理装置１００は、非特許文献１に記載されるようなグラフ型の検索インデックスに関する情報をインデックス情報として用いてもよい。情報処理装置１００は、上述のようなインデックスデータとグラフデータとを用いることにより、所定の対象に関するより効率的な検索を可能にすることができる。
【００７４】
〔２．情報処理装置の構成〕
次に、図４を用いて、実施形態に係る情報処理装置１００の構成について説明する。図４は、実施形態に係る情報処理装置の構成例を示す図である。図４に示すように、情報処理装置１００は、通信部１１０と、記憶部１２０と、制御部１３０とを有する。なお、情報処理装置１００は、情報処理装置１００の管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示するための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【００７５】
（通信部１１０）
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部１１０は、ネットワーク（例えば図３中のネットワークＮ）と有線または無線で接続され、端末装置１０や情報提供装置５０との間で情報の送受信を行う。
【００７６】
（記憶部１２０）
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部１２０は、図４に示すように、ＰＯＩ情報記憶部１２１と、ユーザ情報記憶部１２２と、移動経路情報記憶部１２３と、インデックス情報記憶部１２４と、グラフ情報記憶部１２５と、モデル情報記憶部１２６とを有する。
【００７７】
（ＰＯＩ情報記憶部１２１）
実施形態に係るＰＯＩ情報記憶部１２１は、ＰＯＩに関する各種情報を記憶する。図５は、実施形態に係るＰＯＩ情報記憶部の一例を示す図である。図５に示すＰＯＩ情報記憶部１２１は、「ＰＯＩ＿ＩＤ」、「ＰＯＩ名」、「所在地」といった項目が含まれる。
【００７８】
「ＰＯＩ＿ＩＤ」は、ＰＯＩを識別するための識別情報を示す。「ＰＯＩ」は、対応するＰＯＩ＿ＩＤにより識別されるＰＯＩを示す。例えば、「ＰＯＩ名」は、対応するＰＯＩ＿ＩＤにより識別されるＰＯＩの名称を示す。「所在地」は、対応するＰＯＩ＿ＩＤにより識別されるＰＯＩの所在地を示す。
【００７９】
例えば、図５に示す例において、ＰＯＩ＿ＩＤ「ＳＰ１」により識別されるＰＯＩ（スポットＳＰ１）は、ＰＯＩ名が「ＸＸタワー」であり、スポットＳＰ１の所在地は、位置ＬＣ１であることを示す。なお、図５の例では位置を「ＬＣ１」等の抽象的な符号で図示するが、位置情報は、具体的な緯度経度情報等であってもよい。
【００８０】
なお、ＰＯＩ情報記憶部１２１は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、ＰＯＩ情報記憶部１２１は、ＰＯＩに対応する事業者の業種等のＰＯＩに対応する事業者の情報等が記憶されてもよい。また、例えば、ＰＯＩ情報記憶部１２１は、ＰＯＩにおいて提供される商品やサービスの情報等が記憶されてもよい。
【００８１】
（ユーザ情報記憶部１２２）
実施形態に係るユーザ情報記憶部１２２は、ユーザ属性に関する各種情報を記憶する。例えば、ユーザ情報記憶部１２２は、ユーザ属性情報を記憶する。図６は、実施形態に係るユーザ情報記憶部の一例を示す図である。図６に示すユーザ情報記憶部１２２は、「ユーザＩＤ」、「年齢」、「性別」、「自宅」、「勤務地」、「興味」といった項目が含まれる。
【００８２】
「ユーザＩＤ」は、ユーザを識別するための識別情報を示す。例えば、ユーザＩＤ「Ｕ１」により識別されるユーザは、図１の例に示したユーザＵ１に対応する。また、「年齢」は、ユーザＩＤにより識別されるユーザの年齢を示す。なお、「年齢」は、例えば３５歳など、ユーザＩＤにより識別されるユーザの具体的な年齢であってもよい。また、「性別」は、ユーザＩＤにより識別されるユーザの性別を示す。
【００８３】
また、「自宅」は、ユーザＩＤにより識別されるユーザの自宅の位置情報を示す。なお、図６に示す例では、「自宅」は、「ＬＣ１１」といった抽象的な符号を図示するが、緯度経度情報等であってもよい。また、例えば、「自宅」は、地域名や住所であってもよい。
【００８４】
また、「勤務地」は、ユーザＩＤにより識別されるユーザの勤務地の位置情報を示す。なお、図６に示す例では、「勤務地」は、「ＬＣ１２」といった抽象的な符号を図示するが、緯度経度情報等であってもよい。また、例えば、「勤務地」は、地域名や住所であってもよい。
【００８５】
また、「興味」は、ユーザＩＤにより識別されるユーザの興味を示す。すなわち、「興味」は、ユーザＩＤにより識別されるユーザが関心の高い対象を示す。なお、図６に示す例では、「興味」は、各ユーザに１つずつ図示するが、複数であってもよい。
【００８６】
例えば、図６に示す例において、ユーザＩＤ「Ｕ１」により識別されるユーザの年齢は、「２０代」であり、性別は、「男性」であることを示す。また、例えば、ユーザＩＤ「Ｕ１」により識別されるユーザは、自宅が「ＬＣ１１」であることを示す。また、例えば、ユーザＩＤ「Ｕ１」により識別されるユーザは、勤務地が「ＬＣ１２」であることを示す。また、例えば、ユーザＩＤ「Ｕ１」により識別されるユーザは、「スポーツ」に興味があることを示す。
【００８７】
なお、ユーザ情報記憶部１２２は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、ユーザ情報記憶部１２２は、ユーザのデモグラフィック属性に関する情報やサイコグラフィック属性に関する情報を記憶してもよい。例えば、ユーザ情報記憶部１２２は、氏名、家族構成、収入、興味、ライフスタイル等の情報を記憶してもよい。
【００８８】
（移動経路情報記憶部１２３）
実施形態に係る移動経路情報記憶部１２３は、移動経路に関する各種情報を記憶する。例えば、移動経路情報記憶部１２３は、移動経路ＩＤやベクトルデータを記憶する。図７は、実施形態に係る移動経路情報記憶部の一例を示す図である。図７に示す移動経路情報記憶部１２３は、「移動経路ＩＤ」、「移動データ」、「ベクトル情報」、「訪問地点」、「対応ユーザ」、「コンテキスト情報」といった項目が含まれる。
【００８９】
「移動経路ＩＤ」は、移動経路（オブジェクト）を識別するための識別情報を示す。「移動データ」は、移動経路ＩＤにより識別される移動経路に関する情報を示す。なお、図７の例では、移動データを「ＭＤ１」といった抽象的な符号で示すが、各移動データは、移動経路ＩＤにより識別される移動経路に対応する複数の位置情報やユーザがその移動経路を移動した際の速度等の種々の移動経路に関する情報を含む。「ベクトル情報」とは、移動経路ＩＤにより識別される移動経路（オブジェクト）に対応するベクトル情報を示す。すなわち、図７の例では、移動経路（オブジェクト）を識別する移動経路ＩＤに対して、オブジェクトに対応するベクトルデータ（ベクトル情報）が対応付けられて登録されている。
【００９０】
「訪問地点」は、対応する移動経路で移動したユーザが、その移動後に立ち寄ったスポット（訪問地点）を示す。「対応ユーザ」は、対応する移動経路で移動したユーザを示す。「コンテキスト情報」は、対応する移動経路でユーザが移動した際のコンテキスト情報を示す。
【００９１】
例えば、図７の例では、移動経路ＩＤ「ＭＰ１」により識別される移動経路（オブジェクト）は、「２，４，５，２．．．」の多次元（Ｎ次元）のベクトル情報が対応付けられることを示す。例えば、移動経路ＩＤ「ＭＰ１」により識別される移動経路（移動経路ＭＰ１）については、モデルＭ１等により、移動経路ＭＰ１の特徴を示す「２，４，５，２．．．」の多次元（Ｎ次元）のベクトル情報が移動データＭＤ１から抽出されたことを示す。
【００９２】
例えば、移動経路ＭＰ１で移動したユーザは、スポットＳＰ２に立ち寄ったことを示す。例えば、移動経路ＭＰ１で移動したユーザは、２０代男性のユーザＵ９９であることを示す。例えば、移動経路ＭＰ１に対応する移動時は、昼の時間帯であったことを示す。また、例えば、移動経路ＭＰ１に対応する移動時は、天候が晴れであったことを示す。
【００９３】
なお、移動経路情報記憶部１２３は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
【００９４】
（インデックス情報記憶部１２４）
実施形態に係るインデックス情報記憶部１２４は、インデックスに関する各種情報を記憶する。図８は、実施形態に係るインデックス情報記憶部の一例を示す図である。具体的には、図８の例では、インデックス情報記憶部１２４は、ツリー構造のインデックス情報を示す。図８の例では、インデックス情報記憶部１２４は、「ルート階層」、「第１階層」、「第２階層」、「第３階層」等といった項目が含まれる。なお、「第１階層」〜「第３階層」に限らず、インデックスの階層数に応じて、「第４階層」、「第５階層」、「第６階層」等が含まれてもよい。
【００９５】
「ルート階層」は、インデックスを用いた起点ノードの決定の開始点となるルート（最上位）の階層を示す。「第１階層」は、インデックスの第１階層に属するノード（節点またはグラフ情報中のベクトル）を識別（特定）する情報が格納される。「第１階層」に格納されるノードは、インデックスの根（ルート）に直接結ばれる階層に対応するノードとなる。
【００９６】
「第２階層」は、インデックスの第２階層に属するノード（節点またはグラフ情報中のベクトル）を識別（特定）する情報が格納される。「第２階層」に格納されるノードは、第１階層のノードに結ばれる直下の階層に対応するノードとなる。「第３階層」は、インデックスの第３階層に属するノード（節点またはグラフ情報中のベクトル）を識別（特定）する情報が格納される。「第３階層」に格納されるノードは、第２階層のノードに結ばれる直下の階層に対応するノードとなる。
【００９７】
例えば、図８に示す例においては、インデックス情報記憶部１２４には、図１中のインデックス情報ＩＮＤ１１に対応する情報が記憶される。例えば、インデックス情報記憶部１２４は、第１階層のノードが、節点ＶＴ１〜ＶＴ３等であることを示す。また、各節点の下の括弧内の数値は、各節点に対応するベクトルの値を示す。
【００９８】
また、例えば、インデックス情報記憶部１２４は、節点ＶＴ２の直下の第２階層のノードが、節点ＶＴ２−１〜ＶＴ２−４であることを示す。また、例えば、インデックス情報記憶部１２４は、節点ＶＴ２−２の直下の第３階層のノードが、ノードＮ１、ノードＮ２、ノードＮ５のグラフ情報ＧＲ１１中のノード（ベクトル）であることを示す。
【００９９】
なお、インデックス情報記憶部１２４は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
【０１００】
（グラフ情報記憶部１２５）
実施形態に係るグラフ情報記憶部１２５は、グラフ情報に関する各種情報を記憶する。図９は、実施形態に係るグラフ情報記憶部の一例を示す図である。図９の例では、グラフ情報記憶部１２５は、「ノードＩＤ」、「移動経路ＩＤ」、および「エッジ情報」といった項目を有する。また、「エッジ情報」には、「エッジＩＤ」や「参照先」といった情報が含まれる。
【０１０１】
「ノードＩＤ」は、グラフデータにおける各ノード（対象）を識別するための識別情報を示す。また、「移動経路ＩＤ」は、移動経路（オブジェクト）を識別するための識別情報を示す。
【０１０２】
また、「エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。図９の例では、「エッジ情報」は、エッジが有向エッジである場合を示し、対応するノードから出力される出力エッジに関する情報を示す。また、「エッジＩＤ」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先（ノード）を示す情報を示す。すなわち、図９の例では、ノードを識別するノードＩＤに対して、そのノードに対応するオブジェクト（対象）を識別する情報やそのノードからの有向エッジ（出力エッジ）が連結される参照先（ノード）が対応付けられて登録されている。
【０１０３】
例えば、図９の例では、ノードＩＤ「Ｎ１」により識別されるノード（ベクトル）は、移動経路ＩＤ「ＭＰ１」により識別される移動経路（オブジェクト）に対応することを示す。また、ノードＩＤ「Ｎ１」により識別されるノードからは、エッジＩＤ「Ｅ１１」により識別されるエッジが、ノードＩＤ「Ｎ７１２」により識別されるノード（ベクトル）に連結されることを示す。すなわち、図９の例では、ノードＩＤ「Ｎ１」により識別されるノード（ベクトル）からはノードＩＤ「Ｎ７１２」により識別されるノード（ベクトル）に辿ることができることを示す。
【０１０４】
なお、グラフ情報記憶部１２５は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、グラフ情報記憶部１２５は、各ノード（ベクトル）間を連結するエッジの長さが記憶されてもよい。すなわち、グラフ情報記憶部１２５は、各ノード（ベクトル）間の距離を示す情報が記憶されてもよい。
【０１０５】
（モデル情報記憶部１２６）
実施形態に係るモデル情報記憶部１２６は、モデルに関する情報を記憶する。例えば、モデル情報記憶部１２６は、生成処理により生成されたモデル情報（モデルデータ）を記憶する。図１０は、実施形態に係るモデル情報記憶部の一例を示す図である。図１０に示すモデル情報記憶部１２６は、「モデルＩＤ」、「用途」、「モデルデータ」といった項目が含まれる。なお、図１０では、モデルＭ１、Ｍ２のみを図示するが、Ｍ２１、Ｍ２２等、各用途（予測の対象）に応じて多数のモデル情報が記憶されてもよい。
【０１０６】
「モデルＩＤ」は、モデルを識別するための識別情報を示す。例えば、モデルＩＤ「Ｍ１」により識別されるモデルは、図１の例に示したモデルＭ１に対応する。「用途」は、対応するモデルの用途を示す。また、「モデルデータ」は、対応付けられた対応するモデルのデータを示す。例えば、「モデルデータ」には、各層におけるノードと、各ノードが採用する関数と、ノードの接続関係と、ノード間の接続に対して設定される接続係数とを含む情報が含まれる。
【０１０７】
例えば、図１０に示す例において、モデルＩＤ「Ｍ１」により識別されるモデル（モデルＭ１）は、用途が「特徴抽出（移動経路）」であり、入力された移動経路情報からの特徴の抽出に用いられることを示す。また、モデルＭ１のモデルデータは、モデルデータＭＤＴ１であることを示す。
【０１０８】
モデルＭ１（モデルデータＭＤＴ１）は、所定の移動経路の移動経路情報（移動データ）が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力された移動経路情報に対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力するよう、コンピュータを機能させるためのモデルである。
【０１０９】
また、モデルＭ１、Ｍ２等がＤＮＮ（Deep  Neural  Network）等、１つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、例えば、モデルＭ１、Ｍ２が含む第１要素は、入力層または中間層が有するいずれかのノードに対応する。また、第２要素は、第１要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第１要素の重みは、第１要素と対応するノードから第２要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
【０１１０】
ここで、モデルＭ２１、Ｍ２２等が「ｙ＝ａ１＊ｘ１＋ａ２＊ｘ２＋・・・＋ａｉ＊ｘｉ」で示す回帰モデルで実現されるとする。この場合、例えば、モデルＭ２１、Ｍ２２が含む第１要素は、ｘ１やｘ２等といった入力データ（ｘｉ）に対応する。また、第１要素の重みは、ｘｉに対応する係数ａｉに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第１要素は、入力層が有するいずれかのノードに対応し、第２要素は、出力層が有するノードと見做すことができる。
【０１１１】
なお、モデル情報記憶部１２６は、上記に限らず、目的に応じて種々のモデル情報を記憶してもよい。
【０１１２】
（制御部１３０）
図４の説明に戻って、制御部１３０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、情報処理装置１００内部の記憶装置に記憶されている各種プログラム（情報処理プログラムの一例に相当）がＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、コントローラであり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。制御部１３０は、モデル情報記憶部１２６に記憶されているモデルＭ１、Ｍ２等に従った情報処理により、移動経路の移動経路情報（移動データ）が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力された移動経路情報に対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力する。
【０１１３】
図４に示すように、制御部１３０は、取得部１３１と、生成部１３２と、決定部１３３と、抽出部１３４と、送信部１３５とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１３０の内部構成は、図４に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【０１１４】
（取得部１３１）
取得部１３１は、各種情報を取得する。例えば、取得部１３１は、記憶部１２０から各種情報を取得する。例えば、取得部１３１は、ＰＯＩ情報記憶部１２１や、ユーザ情報記憶部１２２や、移動経路情報記憶部１２３や、インデックス情報記憶部１２４や、グラフ情報記憶部１２５や、モデル情報記憶部１２６等から各種情報を取得する。また、取得部１３１は、各種情報を外部の情報処理装置から取得する。取得部１３１は、端末装置１０や情報提供装置５０から各種情報を取得する。
【０１１５】
取得部１３１は、複数の移動経路の各々に対応する複数のノードであって、各移動経路に対応する移動を行った対応ユーザが関連付けられた複数のノードが類似性に応じて連結されたグラフ情報と、一のユーザの移動に関する移動情報を取得する。また、取得部１３１は、複数の移動経路の各々に対応する移動において対応ユーザが訪れた訪問地点が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報を取得する。また、取得部１３１は、対応ユーザの属性情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの属性情報とを取得する。また、取得部１３１は、各移動経路に対応する移動におけるコンテキスト情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動におけるコンテキスト情報とを取得する。また、取得部１３１は、各移動経路に対応する移動における時刻情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動における時刻情報とを取得する。また、取得部１３１は、各移動経路に対応する移動における気象情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動における気象情報とを取得する。また、取得部１３１は、複数の移動経路の各々に対応する複数のベクトルの類似性に応じて、複数のノードが連結されたグラフ情報を取得する。
【０１１６】
取得部１３１は、複数の移動経路の各々に対応する複数のベクトルであって、各移動経路に対応する移動を行った対応ユーザが関連付けられた複数のベクトルが類似性に応じて連結されたグラフ情報と、一のユーザの移動に関する移動情報を取得する。また、取得部１３１は、複数の移動経路の各々に対応する移動において対応ユーザが訪れた訪問地点が関連付けられた複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。
【０１１７】
また、取得部１３１は、対応ユーザの属性情報が関連付けられた複数のベクトルが類似性に応じて連結されたグラフ情報と、一のユーザの属性情報とを取得する。また、取得部１３１は、各移動経路に対応する移動におけるコンテキスト情報が関連付けられた複数のベクトルが類似性に応じて連結されたグラフ情報と、一のユーザの移動におけるコンテキスト情報とを取得する。
【０１１８】
また、取得部１３１は、各移動経路に対応する移動における時刻情報が関連付けられた複数のベクトルが類似性に応じて連結されたグラフ情報と、一のユーザの移動における時刻情報とを取得する。また、取得部１３１は、各移動経路に対応する移動における気象情報が関連付けられた複数のベクトルが類似性に応じて連結されたグラフ情報と、一のユーザの移動における気象情報とを取得する。
【０１１９】
また、取得部１３１は、複数の移動経路の各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得する。また、取得部１３１は、所定のモデルを用いて複数の移動経路の各々から抽出された特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。また、取得部１３１は、複数の移動経路に関する情報を所定のモデルに入力することにより、抽出される複数の移動経路の各々の特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。
【０１２０】
例えば、取得部１３１は、データ検索の対象となる複数のノード（ベクトル）を取得する。例えば、取得部１３１は、複数のノードと、複数のノードの各々を連結する複数の有向エッジを含む有向エッジ群を取得する。
【０１２１】
例えば、取得部１３１は、外部の情報処理装置からグラフ情報（グラフデータ）を取得する。例えば、取得部１３１は、グラフ情報記憶部１２５からグラフ情報を取得する。例えば、取得部１３１は、グラフ情報を取得する。図１の例では、取得部１３１は、グラフ情報ＧＲ１１を取得する。
【０１２２】
例えば、取得部１３１は、外部の情報処理装置からインデックス情報（インデックスデータ）を取得する。例えば、取得部１３１は、インデックス情報記憶部１２４からインデックス情報を取得する。例えば、取得部１３１は、木構造型のインデックス情報を取得する。図１の例では、取得部１３１は、インデックス情報ＩＮＤ１１を取得する。
【０１２３】
また、図１の例では、取得部１３１は、ユーザＵ１が利用する端末装置１０から移動経路情報を取得する。例えば、取得部１３１は、ユーザＵ１が利用する端末装置１０から移動データＭＤ１０を取得する。また、取得部１３１は、ユーザＵ１が位置ＬＣ１０から位置ＬＣ１５まで移動した際の位置情報群や移動速度や気象情報や時刻情報等の種々の情報を含む移動データＭＤ１０を取得する。また、取得部１３１は、ユーザＵ１が位置ＬＣ１０から位置ＬＣ１５まで移動した際に検知された位置情報群や、位置ＬＣ１０から位置ＬＣ１５まで移動した際の時刻が１２時等の昼の時間帯であることを示す情報を取得する。また、取得部１３１は、ユーザＵ１が位置ＬＣ１０から位置ＬＣ１５まで移動した際の天候が晴れであったことを示す気象情報を、端末装置１０から取得してもよい。
【０１２４】
図２の例では、取得部１３１は、情報群ＩＮＦ１１に示すように、グラフ情報ＧＲ１１やインデックス情報ＩＮＤ１１を用いてユーザＵ１の移動の類似移動経路を検索する。例えば、取得部１３１は、グラフ情報記憶部１２５（図９参照）から移動経路に関するグラフ情報ＧＲ１１を取得する。また、例えば、情報処理装置１００は、インデックス情報記憶部１２４（図８参照）から、グラフ情報ＧＲ１１における検索の起点となる起点ベクトルの決定に用いるインデックス情報ＩＮＤ１１を取得する。
【０１２５】
（生成部１３２）
生成部１３２は、各種情報を生成する。例えば、生成部１３２は、移動経路情報記憶部１２３に記憶された学習データ（移動経路情報）を用いて、モデル情報記憶部１２６に示すようなモデルを生成する。例えば、生成部１３２は、取得部１３１により取得された学習データに基づいて、入力した移動経路情報と同様の情報を出力するモデル（オートエンコーダ）を生成する。例えば、生成部１３２は、入力する移動経路情報自体を正解情報として、入力した移動経路情報と同様の情報を出力するモデル（オートエンコーダ）を生成する。
【０１２６】
例えば、生成部１３２は、モデルＭ１等を生成し、生成したモデルＭ１等をモデル情報記憶部１２６に格納する。なお、生成部１３２は、いかなる学習アルゴリズムを用いてモデルＭ１を生成してもよい。例えば、生成部１３２は、ニューラルネットワーク（neural  network）等の学習アルゴリズムを用いてモデルＭ１を生成する。一例として、生成部１３２がニューラルネットワークを用いてモデルＭ１等を生成する場合、モデルＭ１等は、一以上のニューロンを含む入力層と、一以上のニューロンを含む中間層と、一以上のニューロンを含む出力層とを有する。
【０１２７】
生成部１３２は、移動経路の移動経路情報（移動データ）が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力された移動経路情報に対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力するモデルを生成する。
【０１２８】
例えば、生成部１３２は、学習データに基づいてモデルを生成する。例えば、生成部１３２は、学習データに基づいてモデルを生成する。例えば、生成部１３２は、移動経路情報記憶部１２３中の移動データＭＤ１、ＭＤ２等を学習データ（教師データ）として、学習を行なうことにより、モデルを生成する。
【０１２９】
例えば、生成部１３２は、移動データＭＤ１が入力された場合に、モデルＭ１が移動データＭＤ１と同様の情報を出力するように、学習処理を行う。例えば、生成部１３２は、移動データＭＤ２が入力された場合に、モデルＭ１が移動データＭＤ２と同様の情報を出力するように、学習処理を行う。
【０１３０】
なお、生成部１３２は、オートエンコーダとしてのＭ１に限らず、種々の学習アルゴリズムを用いてスポットＳＰ１に立ち寄るかどうかを予測するモデルＭ２１等を生成してもよい。例えば、生成部１３２は、ニューラルネットワーク（neural  network）、サポートベクターマシン（ＳＶＭ）、クラスタリング、強化学習等の学習アルゴリズムを用いてモデルＭ２１等を生成する。一例として、生成部１３２がニューラルネットワークを用いてモデルＭ２１等を生成する場合、モデルＭ２１等は、一以上のニューロンを含む入力層と、一以上のニューロンを含む中間層と、一以上のニューロンを含む出力層とを有する。
【０１３１】
生成部１３２は、モデルを生成し、生成したモデルをモデル情報記憶部１２６に格納する。具体的には、生成部１３２は、移動経路の移動経路情報（移動データ）が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力された移動経路情報に対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、スポットＳＰ１に立ち寄る移動経路かどうかの予測に用いられるスコアの値を出力層から出力するモデルを生成する。例えば、生成部１３２は、ある移動経路の移動経路情報（移動データ）が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第１要素と、第１要素と第１要素の重みとに基づいて値が算出される第２要素と、を含み、入力層に入力された移動経路情報に対し、出力層以外の各層に属する各要素を第１要素として、第１要素と第１要素の重みとに基づく演算を行うことにより、その移動経路が所定の用途に適した移動経路かどうかの予測に用いられるスコアの値を出力層から出力するモデルＭ２１を生成する。例えば、生成部１３２は、スポットＳＰ１に立ち寄る移動経路の移動経路情報が入力された場合に、スコア「１」を出力するようにモデルＭ２１を生成する。例えば、生成部１３２は、スポットＳＰ１に立ち寄らない移動経路の移動経路情報が入力された場合に、スコア「０」を出力するようにモデルＭ２１を生成する。なお、情報処理装置１００は、情報提供装置５０等の他の外部装置からモデルを取得する場合、生成部１３２を有しなくてもよい。
【０１３２】
図２の例では、生成部１３２は、一のユーザの移動に対応する移動データからグラフ情報の探索に用いるベクトルを生成する。例えば、生成部１３２は、処理群ＰＳ１１に示すような処理により、ユーザＵ１の移動に対応するベクトルを生成する。情報処理装置１００は、ユーザＵ１の移動に関する移動データＭＤ１０をモデルＭ１に入力する。例えば、生成部１３２は、ユーザＵ１の移動の移動データＭＤ１０をモデルＭ１に入力する。そして、情報処理装置１００は、移動データＭＤ１０の入力後のモデルＭ１中の情報を用いて、ベクトルを生成する。例えば、生成部１３２は、移動データＭＤ１０が入力されたモデルＭ１中の各要素を用いて、ベクトルデータを生成する。
【０１３３】
図２の例では、生成部１３２は、移動データＭＤ１０が入力されたモデルＭ１中の各要素の値を用いて、ベクトルＶＤ１０を生成する。例えば、生成部１３２は、ユーザＵ１の移動の移動データＭＤ１０が入力された場合における、モデルＭ１のニューロンＮＬ１に対応する値ＶＥ１（図１３参照）やニューロンＮＬ２に対応する値ＶＥ２（図１３参照）を用いて、ベクトルを生成する。例えば、生成部１３２は、ユーザＵ１の移動の移動データＭＤ１０が入力された場合に、算出されるニューロンＮＬ１に対応する値ＶＥ１をベクトルＶＤ１０の１次元目の要素として抽出してもよい。例えば、生成部１３２は、ある移動経路の移動データが入力された場合に、算出されるニューロンＮＬ２に対応する値ＶＥ２をベクトルＶＤ１０の２次元目の要素として、ベクトルＶＤ１０を生成する。例えば、生成部１３２は、１次元目の要素が「３」であり、２次元目の要素が「２」であるようなベクトルＶＤ１０を生成する。
【０１３４】
（決定部１３３）
決定部１３３は、各種情報を決定する。例えば、決定部１３３は、取得部１３１により取得された移動経路情報と、グラフ情報の検索の起点となる起点ベクトルに関する情報とに基づいて、起点ベクトルを決定する。決定部１３３は、起点ノードの決定に用いるインデックス情報に基づいて、起点ノードを決定する。また、決定部１３３は、木構造型のインデックス情報に基づいて、起点ノードを決定する。例えば、決定部１３３は、移動経路情報と、グラフ情報の検索の起点ベクトルの決定の基準となる情報とに基づいて、起点ベクトルを決定する。また、決定部１３３は、起点ベクトルの決定に用いるインデックス情報に基づいて、起点ベクトルを決定する。また、決定部１３３は、木構造型のインデックス情報に基づいて、起点ベクトルを決定する。
【０１３５】
図２の例では、決定部１３３は、ユーザＵ１の移動のベクトルＶＤ１０に対応する起点ベクトルを決定（特定）するために、インデックス情報ＩＮＤ１１を用いる。すなわち、決定部１３３は、ベクトルＶＤ１０とインデックス情報ＩＮＤ１１とを用いて、グラフ情報ＧＲ１１における起点ベクトルを決定する。
【０１３６】
例えば、決定部１３３は、図２中のインデックス情報ＩＮＤ１１に示すような木構造型のインデックス情報を用いて、グラフ情報ＧＲ１１における起点ベクトルを決定する。図２の例では、決定部１３３は、ベクトルＶＤ１０を生成した後、インデックス情報ＩＮＤ１１を上から下へ辿ることにより、インデックス情報ＩＮＤ１１の近傍候補となる起点ベクトルを特定することにより、効率的に検索クエリ（一のユーザの移動データ）に対応する起点ベクトルを決定することができる。
【０１３７】
例えば、決定部１３３は、インデックス情報ＩＮＤ１１をルートＲＴからリーフノード（グラフ情報ＧＲ１１中のノード（ベクトル））まで辿ることにより、ベクトルＶＤ１０に対応する起点ベクトルを決定してもよい。図２の例では、例えば、決定部１３３は、インデックス情報ＩＮＤ１１をルートＲＴからノードＮ２まで辿ることにより、ノードＮ２を起点ベクトルとして決定する。
【０１３８】
図１の例では、決定部１３３は、抽出した対応訪問地点に基づいて、推奨地点を決定する。例えば、決定部１３３は、抽出した対応訪問地点中のスポットのうち、最多の訪問地点を推奨地点に決定する。例えば、決定部１３３は、スポットＳＰ２を推奨地点に決定する。
【０１３９】
（抽出部１３４）
抽出部１３４は、各種情報を抽出する。例えば、抽出部１３４は、ＰＯＩ情報記憶部１２１や、ユーザ情報記憶部１２２や、移動経路情報記憶部１２３や、インデックス情報記憶部１２４や、グラフ情報記憶部１２５や、モデル情報記憶部１２６等から、各種情報を抽出する。抽出部１３４は、取得部１３１により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点として、グラフ情報を検索することにより、複数の移動経路のうち、一のユーザの移動に類似する移動の移動経路である類似移動経路を抽出する。抽出部１３４は、グラフ情報に含まれるノードを検索することにより、一のユーザの移動に類似する移動の移動経路である類似移動経路を抽出する。抽出部１３４は、グラフ情報に含まれるノードをエッジの連結関係に基づいて辿ることにより、グラフ情報に含まれるノードを検索することにより、一のユーザの移動に類似する移動の移動経路である類似移動経路を抽出する。抽出部１３４は、決定部１３３により決定された起点ノードを起点として、類似移動経路を抽出する。例えば、抽出部１３４は、取得部１３１により取得された情報に基づいて、各種情報を抽出する。抽出部１３４は、取得部１３１により取得されたグラフ情報の複数のベクトルのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ベクトルを起点として、グラフ情報を検索することにより、複数の移動経路のうち、一のユーザの移動に類似する移動の移動経路である類似移動経路を抽出する。抽出部１３４は、決定部１３３により決定された起点ベクトルを起点として、類似移動経路を抽出する。例えば、抽出部１３４は、グラフ情報記憶部１２５に記憶された各ノード（ベクトル）間を連結するエッジの長さ（距離）の情報を用いてもよいし、各ノードのベクトル情報から各ノード（ベクトル）間を連結するエッジの長さ（距離）の情報を算出し、算出した長さ（距離）の情報を用いてもよい。
【０１４０】
図１の例では、抽出部１３４は、グラフ情報ＧＲ１１を検索することにより、ユーザＵ１の移動の類似移動経路を抽出する。例えば、抽出部１３４は、ノードＮ２の近傍に位置するノードを類似移動経路として抽出する。例えば、抽出部１３４は、ノードＮ２からの距離が近いノードを類似移動経路として抽出する。例えば、抽出部１３４は、ノードＮ２を起点として、エッジを辿ることにより、ノードＮ２から到達可能なノードを類似移動経路として抽出する。例えば、抽出部１３４は、所定数（例えば、２個や１０個等）のノードを類似移動経路として抽出する。例えば、抽出部１３４は、図１４に示すような検索処理により、ユーザＵ１の移動の類似移動経路を抽出してもよいが、詳細は後述する。図２の例では、抽出部１３４は、ノードＮ２を起点として、グラフ情報ＧＲ１１を探索することにより、ノードＮ２やノードＮ１やノードＮ５１２等を類似移動経路として抽出する。
【０１４１】
例えば、抽出部１３４は、図１中の移動経路情報記憶部１２３に示すように、類似移動経路を抽出する。例えば、抽出部１３４は、ユーザＵ９９の移動に対応する移動経路ＭＰ１や、ユーザＵ５１の移動に対応する移動経路ＭＰ２や、ユーザＵ２１の移動に対応する移動経路ＭＰ５１２等を抽出する。
【０１４２】
例えば、抽出部１３４は、抽出した類似移動経路に対応付けられた訪問地点に基づいて、対応訪問地点を抽出する。例えば、抽出部１３４は、抽出した類似移動経路に対応付けられた訪問地点のうち、ユーザＵ１の属性に類似する属性のユーザの移動経路に対応付けられた訪問地点を抽出する。また、例えば、抽出部１３４は、抽出した類似移動経路に対応付けられた訪問地点のうち、ユーザＵ１の移動の時間帯と類似する時間帯におけるユーザの移動経路に対応付けられた訪問地点を抽出する。
【０１４３】
図１の例では、抽出部１３４は、ユーザの属性が２０代男性であり、移動の時間帯が昼である移動経路に対応付けられた訪問地点を対応訪問地点として抽出する。この場合、抽出部１３４は、２０代男性のユーザＵ９９が昼に移動した際の訪問地点であるスポットＳＰ２を対応訪問地点として抽出する。また、抽出部１３４は、２０代男性のユーザＵ２１が昼に移動した際の訪問地点であるスポットＳＰ２を対応訪問地点として抽出する。また、抽出部１３４は、２０代男性のユーザＵ１１１が昼に移動した際の訪問地点であるスポットＳＰ１を対応訪問地点として抽出する。また、抽出部１３４は、２０代女性のユーザＵ５１が夜に移動した際の訪問地点であるスポットＳＰ３を対応訪問地点として抽出しない。
【０１４４】
例えば、抽出部１３４は、類似移動経路のうち、ユーザＵ１の属性やユーザＵ１の移動時のコンテキスト情報と類似性のある移動における訪問地点を対応訪問地点として抽出する。図１の例では、抽出部１３４は、ＰＯＩ情報記憶部１２１に示すように、スポットＳＰ２を対応訪問地点として最も多く抽出する。
【０１４５】
（送信部１３５）
送信部１３５は、各種情報を提供する。例えば、送信部１３５は、端末装置１０や情報提供装置５０に各種情報を送信する。例えば、送信部１３５は、端末装置１０や情報提供装置５０に各種情報を配信する。例えば、送信部１３５は、端末装置１０や情報提供装置５０に各種情報を提供する。
【０１４６】
送信部１３５は、抽出部１３４により抽出された類似移動経路に対応付けられた対応ユーザの情報に基づいて、一のユーザが利用する端末装置１０へ一のユーザの移動に関連する推奨情報を送信する。送信部１３５は、類似移動経路に対応付けられた対応ユーザの訪問地点に基づいて、一のユーザの移動において訪れる地点を推奨する推奨情報を送信する。
【０１４７】
送信部１３５は、類似移動経路のうち、類似移動経路に対応付けられた対応ユーザの属性情報が、一のユーザの属性情報に対応する移動経路に基づく推奨情報を送信する。送信部１３５は、類似移動経路のうち、類似移動経路に対応付けられたコンテキスト情報が、一のユーザの移動におけるコンテキスト情報に対応する移動経路に基づく推奨情報を送信する。
【０１４８】
送信部１３５は、類似移動経路のうち、類似移動経路に対応付けられた時刻情報が、一のユーザの移動における時刻情報に対応する移動経路に基づく推奨情報を送信する。送信部１３５は、類似移動経路のうち、類似移動経路に対応付けられた気象情報が、一のユーザの移動における気象情報に対応する移動経路に基づく推奨情報を送信する。
【０１４９】
例えば、送信部１３５は、クエリに対応するオブジェクトＩＤを検索結果として提供する。例えば、送信部１３５は、抽出部１３４により選択されたオブジェクトＩＤを情報提供装置５０へ提供する。送信部１３５は、抽出部１３４により選択されたオブジェクトＩＤをクエリに対応するベクトルを示す情報として情報提供装置５０に提供する。また、送信部１３５は、生成部１３２により生成されたモデルを外部の情報処理装置へ提供してもよい。
【０１５０】
図１の例では、送信部１３５は、決定部１３３により決定された推奨地点に関する情報を提供する。例えば、送信部１３５は、スポットＳＰ２が推奨地点であることを示す推奨地点情報をユーザＵ１が利用する端末装置１０に送信する。例えば、送信部１３５は、スポットＳＰ２がユーザＵ１の移動において最適な立ち寄りスポットであることを示す推奨地点情報をユーザＵ１が利用する端末装置１０に提供する。
【０１５１】
〔３．情報処理のフロー〕
次に、図１１を用いて、実施形態に係る情報処理システム１による情報処理の手順について説明する。図１１は、実施形態に係る情報処理の一例を示すフローチャートである。
【０１５２】
図１１に示すように、情報処理装置１００は、一のユーザの移動経路に関する情報（移動データ）を取得する（ステップＳ１０１）。図１の例では、情報処理装置１００は、端末装置１０からユーザＵ１の移動に関する移動データＭＤ１０を取得する。
【０１５３】
情報処理装置１００は、移動経路に関するグラフ情報を取得する（ステップＳ１０２）。例えば、情報処理装置１００は、グラフ情報記憶部１２５から移動経路に関するグラフ情報ＧＲ１１を取得する。
【０１５４】
そして、情報処理装置１００は、モデルを用いて一のユーザの移動データからベクトルを生成する（ステップＳ１０３）。図１の例では、情報処理装置１００は、モデル情報記憶部１２６に記憶されたモデルＭ１を用いて、移動データＭＤ１０からベクトルＶＤ１０を生成する。
【０１５５】
そして、情報処理装置１００は、グラフ情報を検索することにより、一のユーザの移動経路の類似移動経路を抽出する（ステップＳ１０４）。例えば、情報処理装置１００は、生成したベクトルとインデックス情報を用いて起点ベクトルを決定する。図１の例では、情報処理装置１００は、ベクトルＶＤ１０と、インデックス情報記憶部１２４に記憶されたインデックス情報ＩＮＤ１１とを用いて、起点ベクトルをノードＮ２に決定する。そして、図１の例では、情報処理装置１００は、ノードＮ２を起点として、グラフ情報ＧＲ１１を探索することにより、ノードＮ２やノードＮ１やノードＮ５１２を類似移動経路として抽出する。
【０１５６】
そして、情報処理装置１００は、抽出した移動経路から、属性情報及びコンテキスト情報に基づいて、対応訪問地点を抽出する（ステップＳ１０５）。図１の例では、情報処理装置１００は、ユーザの属性が２０代男性であり、移動の時間帯が昼である移動経路に対応付けられた訪問地点を対応訪問地点として抽出する。
【０１５７】
そして、情報処理装置１００は、抽出した各対応訪問地点の数に基づいて、推奨訪問地点を決定する（ステップＳ１０６）。図１の例では、情報処理装置１００は、抽出した対応訪問地点中のスポットのうち、最多の訪問地点であるスポットＳＰ２を推奨地点に決定する。
【０１５８】
そして、情報処理装置１００は、推奨訪問地点の情報を送信する（ステップＳ１０７）。図１の例では、情報処理装置１００は、スポットＳＰ２の情報を推奨訪問地点としてユーザＵ１が利用する端末装置１０に送信する。
【０１５９】
〔４．生成処理のフロー〕
次に、図１２を用いて、実施形態に係る情報処理システム１による生成処理の手順について説明する。図１２は、実施形態に係る生成処理の一例を示すフローチャートである。
【０１６０】
図１２に示すように、情報処理装置１００は、学習データを取得する（ステップＳ２０１）。例えば、情報処理装置１００は、移動経路情報記憶部１２３から学習データを取得する。例えば、情報処理装置１００は、移動経路情報記憶部１２３から移動データＭＤ１、ＭＤ２等を学習データとして取得する。
【０１６１】
その後、情報処理装置１００は、学習データに基づきモデルを生成する（ステップＳ２０２）。例えば、情報処理装置１００は、移動経路情報記憶部１２３から学習データを用いてモデルＭ１を生成する。例えば、情報処理装置１００は、入力層に入力される情報（移動データ）と同様の情報（移動データ）を出力層から出力するようにモデルＭ１を生成する。例えば、情報処理装置１００は、移動経路の移動データを入力とするオートエンコーダとしてのモデルＭ１を生成する。
【０１６２】
〔５．検索例〕
ここで、上述したグラフ情報を用いた検索の一例を示す。なお、グラフ情報（グラフデータ）を用いた検索は下記に限らず、種々の手順により行われてもよい。この点について、図１４を一例として説明する。図１４は、グラフデータ（グラフ情報）を用いた検索処理の一例を示すフローチャートである。また、以下でいうオブジェクトは、ベクトルやノードと読み替えてもよい。なお、以下では、情報処理装置１００が検索処理を行うものとして説明するが、検索処理は他の装置により行われてもよい。例えば、情報処理装置１００は、検索クエリとして、一のユーザの移動の移動データから生成されたベクトルデータを用いる。例えば、情報処理装置１００は、一のユーザの移動の移動データから生成されたベクトルデータとインデックス情報とに基づいて決定された起点ベクトルを起点としてグラフデータを検索する。図１の例では、情報処理装置１００は、ユーザＵ１の移動のベクトルＶＤ１０とインデックス情報ＩＮＤ１１とに基づいて決定された起点ベクトルであるノードＮ２を起点としてグラフ情報ＧＲ１１を検索する。
【０１６３】
ここでは、近傍オブジェクト集合Ｎ（Ｇ，ｙ）は、ノードｙに付与されているエッジにより関連付けられている近傍のオブジェクトの集合である。「Ｇ」は、所定のグラフデータ（例えば、グラフ情報ＧＲ１１等）であってもよい。例えば、情報処理装置１００は、ｋ近傍検索処理を実行する。
【０１６４】
例えば、情報処理装置１００は、超球の半径ｒを∞（無限大）に設定し（ステップＳ３００）、既存のオブジェクト集合から部分集合Ｓを抽出する（ステップＳ３０１）。例えば、情報処理装置１００は、ルートノード（起点ベクトル）として選択されたオブジェクト（ノード）を部分集合Ｓとして抽出してもよい。図１の例では、情報処理装置１００は、起点ベクトルであるノードＮ２等を部分集合Ｓとして抽出してもよい。また、例えば、超球とは、検索範囲を示す仮想的な球である。なお、ステップＳ３０１において抽出されたオブジェクト集合Ｓに含まれるオブジェクトは、同時に検索結果のオブジェクト集合Ｒの初期集合にも含められる。
【０１６５】
次に、情報処理装置１００は、オブジェクト集合Ｓに含まれるオブジェクトの中で、検索クエリオブジェクトをｙとするとオブジェクトｙとの距離が最も短いオブジェクトを抽出し、オブジェクトｓとする（ステップＳ３０２）。図１の例では、情報処理装置１００は、オブジェクト集合Ｓに含まれるオブジェクトの中で、検索クエリオブジェクトであるベクトルＶＤ１０との距離が最も短いオブジェクトを抽出し、オブジェクトｓとする。例えば、情報処理装置１００は、オブジェクト集合Ｓに含まれるオブジェクトの中で、ベクトルＶＤ１０との距離が最も短いノードＮ２を抽出し、オブジェクトｓとする。例えば、情報処理装置１００は、ルートノード（起点ベクトル）として選択されたオブジェクト（ノード）のみがオブジェクト集合Ｓの要素の場合には、結果的にルートノード（起点ベクトル）がオブジェクトｓとして抽出される。次に、情報処理装置１００は、オブジェクトｓをオブジェクト集合Ｓから除外する（ステップＳ３０３）。
【０１６６】
次に、情報処理装置１００は、オブジェクトｓとオブジェクトｙとの距離ｄ（ｓ，ｙ）がｒ（１＋ε）を超えるか否かを判定する（ステップＳ３０４）。ここで、εは拡張要素であり、ｒ（１＋ε）は、探索範囲（この範囲内のノードのみを探索する。検索範囲よりも大きくすることで精度を高めることができる）の半径を示す値である。オブジェクトｓとオブジェクトｙとの距離ｄ（ｓ，ｙ）がｒ（１＋ε）を超える場合（ステップＳ３０４：Ｙｅｓ）、情報処理装置１００は、オブジェクト集合Ｒをオブジェクトｙの近傍オブジェクト集合として出力し（ステップＳ３０５）、処理を終了する。
【０１６７】
オブジェクトｓと検索クエリオブジェクトｙとの距離ｄ（ｓ，ｙ）がｒ（１＋ε）を超えない場合（ステップＳ３０４：Ｎｏ）、情報処理装置１００は、オブジェクトｓの近傍オブジェクト集合Ｎ（Ｇ，ｓ）の要素であるオブジェクトの中からオブジェクト集合Ｃに含まれないオブジェクトを一つ選択し、選択したオブジェクトｕを、オブジェクト集合Ｃに格納する（ステップＳ３０６）。オブジェクト集合Ｃは、重複検索を回避するために便宜上設けられるものであり、処理開始時には空集合に設定される。
【０１６８】
次に、情報処理装置１００は、オブジェクトｕとオブジェクトｙとの距離ｄ（ｕ，ｙ）がｒ（１＋ε）以下であるか否かを判定する（ステップＳ３０７）。オブジェクトｕとオブジェクトｙとの距離ｄ（ｕ，ｙ）がｒ（１＋ε）以下である場合（ステップＳ３０７：Ｙｅｓ）、情報処理装置１００は、オブジェクトｕをオブジェクト集合Ｓに追加する（ステップＳ３０８）。
【０１６９】
次に、情報処理装置１００は、オブジェクトｕとオブジェクトｙとの距離ｄ（ｕ，ｙ）がｒ以下であるか否かを判定する（ステップＳ３０９）。オブジェクトｕとオブジェクトｙとの距離ｄ（ｕ，ｙ）がｒを超える場合（ステップＳ３０９：Ｎｏ）、情報処理装置１００は、ステップＳ３１５の判定（処理）を行う。
【０１７０】
オブジェクトｕとオブジェクトｙとの距離ｄ（ｕ，ｙ）がｒ以下である場合（ステップＳ３０９：Ｙｅｓ）、情報処理装置１００は、オブジェクトｕをオブジェクト集合Ｒに追加する（ステップＳ３１０）。そして、情報処理装置１００は、オブジェクト集合Ｒに含まれるオブジェクト数がｋｓを超えるか否かを判定する（ステップＳ３１１）。所定数ｋｓは、任意に定められる自然数である。例えば、ｋｓ＝２やｋｓ＝１０等の種々の設定であってもよい。
【０１７１】
オブジェクト集合Ｒに含まれるオブジェクト数がｋｓを超える場合（ステップＳ３１１：Ｙｅｓ）、情報処理装置１００は、オブジェクト集合Ｒに含まれるオブジェクトの中でオブジェクトｙとの距離が最も長い（遠い）オブジェクトを、オブジェクト集合Ｒから除外する（ステップＳ３１２）。
【０１７２】
次に、情報処理装置１００は、オブジェクト集合Ｒに含まれるオブジェクト数がｋｓと一致するか否かを判定する（ステップＳ３１３）。オブジェクト集合Ｒに含まれるオブジェクト数がｋｓと一致する場合（ステップＳ３１３：Ｙｅｓ）、情報処理装置１００は、オブジェクト集合Ｒに含まれるオブジェクトの中でオブジェクトｙとの距離が最も長い（遠い）オブジェクトと、オブジェクトｙとの距離を、新たなｒに設定する（ステップＳ３１４）。
【０１７３】
そして、情報処理装置１００は、オブジェクトｓの近傍オブジェクト集合Ｎ（Ｇ，ｓ）の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Ｃに格納し終えたか否かを判定する（ステップＳ３１５）。オブジェクトｓの近傍オブジェクト集合Ｎ（Ｇ，ｓ）の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Ｃに格納し終えていない場合（ステップＳ３１５：Ｎｏ）、情報処理装置１００は、ステップＳ３０６に戻って処理を繰り返す。
【０１７４】
オブジェクトｓの近傍オブジェクト集合Ｎ（Ｇ，ｓ）の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Ｃに格納し終えた場合（ステップＳ３１５：Ｙｅｓ）、情報処理装置１００は、オブジェクト集合Ｓが空集合であるか否かを判定する（ステップＳ３１６）。オブジェクト集合Ｓが空集合でない場合（ステップＳ３１６：Ｎｏ）、情報処理装置１００は、ステップＳ３０２に戻って処理を繰り返す。また、オブジェクト集合Ｓが空集合である場合（ステップＳ３１６：Ｙｅｓ）、情報処理装置１００は、オブジェクト集合Ｒを出力し、処理を終了する（ステップＳ３１７）。例えば、情報処理装置１００は、オブジェクト集合Ｒに含まれるオブジェクト（ノード）を検索クエリ（入力オブジェクトｙ）に対応する検索結果として、検索を行った端末装置１０等へ提供してもよい。図１の例では、情報処理装置１００は、オブジェクト集合Ｒに含まれるノードＮ２やノードＮ１を検索クエリ（ユーザＵ１のルートＲＴ１０における移動のベクトルＶＤ１０）に対応する検索結果として、検索を行った端末装置１０等へ提供してもよい。例えば、情報処理装置１００は、ノードＮ２に対応する移動経路ＭＰ２や、ノードＮ１に対応する移動経路ＭＰ３５をユーザＵ１の移動に類似する移動経路としてユーザＵ１が利用する端末装置１０に提供する。
【０１７５】
〔６．効果〕
上述してきたように、実施形態に係る情報処理装置１００は、取得部１３１と、抽出部１３４と、送信部１３５を有する。取得部１３１は、複数の移動経路の各々に対応する複数のノードであって、各移動経路に対応する移動を行った対応ユーザが関連付けられた複数のノードが類似性に応じて連結されたグラフ情報と、一のユーザの移動に関する移動情報を取得する。抽出部１３４は、取得部１３１により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点として、グラフ情報を検索することにより、複数の移動経路のうち、一のユーザの移動に類似する移動の移動経路である類似移動経路を抽出する。送信部１３５は、抽出部１３４により抽出された類似移動経路に対応付けられた対応ユーザの情報に基づいて、一のユーザが利用する端末装置へ一のユーザの移動に関連する推奨情報を送信する。
【０１７６】
このように、実施形態に係る情報処理装置１００は、起点ノードを起点としてグラフ情報を検索し、複数の移動経路のうち、一のユーザの移動に類似する類似移動経路を抽出する。そして、情報処理装置１００は、抽出した類似移動経路に対応付けられた対応ユーザの情報に基づいて、一のユーザが利用する端末装置へ一のユーザの移動に関連する推奨情報を送信することにより、ユーザの移動に応じて適切な推奨を行うことができる。
【０１７７】
また、実施形態に係る情報処理装置１００において、取得部１３１は、複数の移動経路の各々に対応する移動において対応ユーザが訪れた訪問地点が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報を取得する。送信部１３５は、類似移動経路に対応付けられた対応ユーザの訪問地点に基づいて、一のユーザの移動において訪れる地点を推奨する推奨情報を送信する。
【０１７８】
このように、実施形態に係る情報処理装置１００は、類似移動経路に対応付けられた対応ユーザの訪問地点に基づいて、一のユーザの移動において訪れる地点を推奨する推奨情報を送信することにより、ユーザの移動に応じて適切な推奨を行うことができる。
【０１７９】
また、実施形態に係る情報処理装置１００において、取得部１３１は、対応ユーザの属性情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの属性情報とを取得する。送信部１３５は、類似移動経路のうち、類似移動経路に対応付けられた対応ユーザの属性情報が、一のユーザの属性情報に対応する移動経路に基づく推奨情報を送信する。
【０１８０】
このように、実施形態に係る情報処理装置１００は、類似移動経路のうち、類似移動経路に対応付けられた対応ユーザの属性情報が、一のユーザの属性情報に対応する移動経路に基づく推奨情報を送信することにより、ユーザの移動に応じて適切な推奨を行うことができる。
【０１８１】
また、実施形態に係る情報処理装置１００において、取得部１３１は、各移動経路に対応する移動におけるコンテキスト情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動におけるコンテキスト情報とを取得する。送信部１３５は、類似移動経路のうち、類似移動経路に対応付けられたコンテキスト情報が、一のユーザの移動におけるコンテキスト情報に対応する移動経路に基づく推奨情報を送信する。
【０１８２】
このように、実施形態に係る情報処理装置１００は、類似移動経路のうち、類似移動経路に対応付けられたコンテキスト情報が、一のユーザの移動におけるコンテキスト情報に対応する移動経路に基づく推奨情報を送信することにより、ユーザの移動に応じて適切な推奨を行うことができる。
【０１８３】
また、実施形態に係る情報処理装置１００において、取得部１３１は、各移動経路に対応する移動における時刻情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動における時刻情報とを取得する。送信部１３５は、類似移動経路のうち、類似移動経路に対応付けられた時刻情報が、一のユーザの移動における時刻情報に対応する移動経路に基づく推奨情報を送信する。
【０１８４】
このように、実施形態に係る情報処理装置１００は、類似移動経路のうち、類似移動経路に対応付けられた時刻情報が、一のユーザの移動における時刻情報に対応する移動経路に基づく推奨情報を送信することにより、ユーザの移動に応じて適切な推奨を行うことができる。
【０１８５】
また、実施形態に係る情報処理装置１００において、取得部１３１は、各移動経路に対応する移動における気象情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動における気象情報とを取得する。送信部１３５は、類似移動経路のうち、類似移動経路に対応付けられた気象情報が、一のユーザの移動における気象情報に対応する移動経路に基づく推奨情報を送信する。
【０１８６】
このように、実施形態に係る情報処理装置１００は、類似移動経路のうち、類似移動経路に対応付けられた気象情報が、一のユーザの移動における気象情報に対応する移動経路に基づく推奨情報を送信することにより、ユーザの移動に応じて適切な推奨を行うことができる。
【０１８７】
また、実施形態に係る情報処理装置１００は、決定部１３３を有する。決定部１３３は、起点ノードの決定に用いるインデックス情報に基づいて、起点ノードを決定する。抽出部１３４は、決定部１３３により決定された起点ノードを起点として、類似移動経路を抽出する。
【０１８８】
このように、実施形態に係る情報処理装置１００は、起点ノードの決定に用いるインデックス情報に基づいて、起点ノードを決定することにより、適切な起点からグラフ情報を検索することができるため、ユーザの移動に応じて適切な推奨を行うことができる。
【０１８９】
また、実施形態に係る情報処理装置１００において、決定部１３３は、木構造型のインデックス情報に基づいて、起点ノードを決定する。
【０１９０】
このように、実施形態に係る情報処理装置１００は、木構造型のインデックス情報に基づいて、起点ノードを決定することにより、起点を高速に決定しつつ、適切な起点からグラフ情報を検索することができるため、ユーザの移動に応じて適切な推奨を行うことができる。
【０１９１】
また、実施形態に係る情報処理装置１００において、取得部１３１は、複数の移動経路の各々に対応する複数のベクトルの類似性に応じて、複数のノードが連結されたグラフ情報を取得する。
【０１９２】
このように、実施形態に係る情報処理装置１００は、複数の移動経路の各々に対応する複数のベクトルの類似性に応じて、複数のノードが連結されたグラフ情報を取得することにより、ユーザの移動に応じて適切な推奨を行うことができる。
【０１９３】
また、実施形態に係る情報処理装置１００において、取得部１３１は、複数の移動経路の各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得する。
【０１９４】
このように、実施形態に係る情報処理装置１００は、複数の移動経路の各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得することにより、ユーザの移動に応じて適切な推奨を行うことができる。
【０１９５】
また、実施形態に係る情報処理装置１００において、取得部１３１は、所定のモデルを用いて複数の移動経路の各々から抽出された特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。
【０１９６】
このように、実施形態に係る情報処理装置１００は、所定のモデルを用いて複数の移動経路の各々から抽出された特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得することにより、ユーザの移動に応じて適切な推奨を行うことができる。
【０１９７】
また、実施形態に係る情報処理装置１００において、取得部１３１は、複数の移動経路に関する情報を所定のモデルに入力することにより、抽出される複数の移動経路の各々の特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。
【０１９８】
このように、実施形態に係る情報処理装置１００は、複数の移動経路に関する情報を所定のモデルに入力することにより、抽出される複数の移動経路の各々の特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得することにより、ユーザの移動に応じて適切な推奨を行うことができる。
【０１９９】
〔７．ハードウェア構成〕
上述してきた実施形態に係る情報処理装置１００は、例えば図１５に示すような構成のコンピュータ１０００によって実現される。図１５は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ１０００は、ＣＰＵ１１００、ＲＡＭ１２００、ＲＯＭ（Read  Only  Memory）１３００、ＨＤＤ（Hard  Disk  Drive）１４００、通信インターフェイス（Ｉ／Ｆ）１５００、入出力インターフェイス（Ｉ／Ｆ）１６００、及びメディアインターフェイス（Ｉ／Ｆ）１７００を有する。
【０２００】
ＣＰＵ１１００は、ＲＯＭ１３００またはＨＤＤ１４００に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ１３００は、コンピュータ１０００の起動時にＣＰＵ１１００によって実行されるブートプログラムや、コンピュータ１０００のハードウェアに依存するプログラム等を格納する。
【０２０１】
ＨＤＤ１４００は、ＣＰＵ１１００によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス１５００は、ネットワークＮを介して他の機器からデータを受信してＣＰＵ１１００へ送り、ＣＰＵ１１００が生成したデータをネットワークＮを介して他の機器へ送信する。
【０２０２】
ＣＰＵ１１００は、入出力インターフェイス１６００を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。ＣＰＵ１１００は、入出力インターフェイス１６００を介して、入力装置からデータを取得する。また、ＣＰＵ１１００は、生成したデータを入出力インターフェイス１６００を介して出力装置へ出力する。
【０２０３】
メディアインターフェイス１７００は、記録媒体１８００に格納されたプログラムまたはデータを読み取り、ＲＡＭ１２００を介してＣＰＵ１１００に提供する。ＣＰＵ１１００は、かかるプログラムを、メディアインターフェイス１７００を介して記録媒体１８００からＲＡＭ１２００上にロードし、ロードしたプログラムを実行する。記録媒体１８００は、例えばＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【０２０４】
例えば、コンピュータ１０００が実施形態に係る情報処理装置１００として機能する場合、コンピュータ１０００のＣＰＵ１１００は、ＲＡＭ１２００上にロードされたプログラムまたはデータ（例えば、モデルＭ１（モデルデータＭＤＴ１））を実行することにより、制御部１３０の機能を実現する。コンピュータ１０００のＣＰＵ１１００は、これらのプログラムまたはデータ（例えば、モデルＭ１（モデルデータＭＤＴ１））を記録媒体１８００から読み取って実行するが、他の例として、他の装置からネットワークＮを介してこれらのプログラムを取得してもよい。
【０２０５】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０２０６】
〔８．その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【０２０７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０２０８】
また、上述してきた各実施形態に記載された各処理は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０２０９】
また、上述してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
【符号の説明】
【０２１０】
１  情報処理システム
１００  情報処理装置
１２３  移動経路情報記憶部
１２４  インデックス情報記憶部
１２５  グラフ情報記憶部
１２６  モデル情報記憶部
１３０  制御部
１３１  取得部
１３２  生成部
１３３  決定部
１３４  抽出部
１３５  送信部
１０  端末装置
５０  情報提供装置
Ｎ  ネットワーク
【図１】
2019139513.tif 000003
【図２】
2019139513.tif 000004
【図３】
2019139513.tif 000005
【図４】
2019139513.tif 000006
【図５】
2019139513.tif 000007
【図６】
2019139513.tif 000008
【図７】
2019139513.tif 000009
【図８】
2019139513.tif 000010
【図９】
2019139513.tif 000011
【図１０】
2019139513.tif 000012
【図１１】
2019139513.tif 000013
【図１２】
2019139513.tif 000014
【図１３】
2019139513.tif 000015
【図１４】
2019139513.tif 000016
【図１５】
2019139513.tif 000017