以下に、本願に係る情報処理装置、情報処理方法、及び情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法、及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
(実施形態)
〔1.情報処理〕
図1及び図2を用いて、実施形態に係る情報処理の一例について説明する。図1及び図2は、実施形態に係る情報処理の一例を示す図である。図1及び図2では、情報処理装置100が移動経路をグラフ構造化したグラフデータ(グラフ情報)を検索することにより、類似する移動経路(以下、「類似移動経路」ともいう)を抽出し、抽出した情報を基にユーザへ推奨情報を提供する場合を示す。なお、ここでいう移動経路には、一の地点から他の地点までの経路のみに限らず、その移動の際のユーザの移動速度の変化や位置の変化態様等の移動態様の種々の情報を含む。
図1及び図2では、情報処理装置100は、各移動経路に対応するベクトルデータ(単に「ベクトル」ともいう)を用いて移動経路をグラフ構造化したグラフ情報を用いる。また、各移動経路には、その行動を行ったユーザ(対象ユーザ)やその移動後に対象ユーザが立ち寄ったスポットやその移動時の時間帯(時刻)や天候等の情報が関連付けられている。図1及び図2では、情報処理装置100が歩行により移動を行っているユーザU1の移動経路等の情報に基づいて、ユーザU1に訪れる地点(以下、「立ち寄りスポット」とする場合がある)を推奨する場合を一例として説明する。なお、情報処理装置100が用いる情報は、ベクトルに限らず、各移動経路の類似性を表現可能な情報であれば、どのような形式の情報であってもよい。例えば、情報処理装置100は、各移動経路に対応する所定のデータや値を用いて移動経路をグラフ構造化したグラフ情報を用いてもよい。例えば、情報処理装置100は、各移動経路から生成された所定の数値(例えば2進数の値や16進数の値)を用いて移動経路をグラフ構造化したグラフ情報を用いてもよい。例えば、ベクトルに代えて、データ間の距離(類似度)が定義されていれば任意の形態のデータであっても良い。
なお、図1及び図2の例では、移動経路としてユーザの歩行の移動経路を対象とする場合を一例として示すが、移動経路は歩行の移動経路に限らず、自動車等の車両の移動経路など、どのような移動態様を対象とする移動経路であってもよい。すなわち、対象とする移動経路(オブジェクト)は、ベクトルとして表現可能であれば、どのような移動経路(情報)であってもよい。
〔1-1.情報処理システムの構成〕
図1及び図2の説明に先だって、図3を用いて情報処理システム1の構成について説明する。図3に示すように、情報処理システム1は、端末装置10と、情報提供装置50と、情報処理装置100とが含まれる。端末装置10と、情報提供装置50と、情報処理装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続される。図3は、実施形態に係る情報処理システムの構成例を示す図である。なお、図3に示した情報処理システム1には、複数台の端末装置10や、複数台の情報提供装置50や、複数台の情報処理装置100が含まれてもよい。
端末装置10は、ユーザによって利用される情報処理装置である。端末装置10は、ユーザによる種々の操作を受け付ける。なお、以下では、端末装置10をユーザと表記する場合がある。すなわち、以下では、ユーザを端末装置10と読み替えることもできる。なお、上述した端末装置10は、例えば、スマートフォンや、タブレット型端末や、ノート型PC(Personal Computer)や、デスクトップPCや、携帯電話機や、PDA(Personal Digital Assistant)等により実現される。
また、端末装置10は、GPS(Global Positioning System)センサ等の機能を有し、ユーザの位置情報(センサ情報)を検知し、取得するものとする。また、端末装置10は、通信を行っている基地局の位置情報や、WiFi(登録商標)(Wireless Fidelity)やBluetooth(登録商標)等の所定の無線通信機能やビーコン等の機能を用いてユーザの位置情報を検知し、取得してもよい。なお、以下では位置情報を単に「位置」と記載する場合がある。例えば、端末装置10は、GPSや上記のような無線通信機能やビーコン等の情報を組み合わせることにより、ユーザの位置の推定精度を高めてもよい。
また、端末装置10は、GPSセンサ等に限らず種々のセンサにより、各種センサ情報を検知してもよい。また、端末装置10は、ジャイロセンサや加速度センサの機能を有し、ユーザの移動における加速度情報(センサ情報)を検知し、取得する。また、端末装置10は、温度センサや気圧センサ等の種々の機能を有し、温度や気圧等のユーザの置かれている環境情報を検知し、取得可能であってもよい。また、端末装置10は、心拍センサ等の種々の機能を有し、ユーザの生体情報を検知し、取得可能であってもよい。例えば、端末装置10を利用するユーザは、端末装置10と通信可能なウェアラブルデバイスを身に付けることにより、端末装置10によりユーザ自身のコンテキスト情報を取得可能としてもよい。例えば、端末装置10を利用するユーザは、端末装置10と通信可能なリストバンド型のウェアラブルデバイスを身に付けることにより、端末装置10によりユーザ自身の心拍(脈拍)に関する情報を端末装置10が取得可能としてもよい。
図1の例では、端末装置10は、ユーザU1が利用するスマートフォンである場合を示す。例えば、端末装置10は、各種センサにより検知(収集)されたユーザの移動データやコンテキスト情報等の種々の情報を情報処理装置100へ送信する。例えば、端末装置10は、ユーザの移動データやコンテキスト情報等の種々の情報を所定のアプリ等により情報処理装置100へ送信する。
例えば、ここでいうコンテキストは、ユーザやそのユーザが利用する端末装置10の状況やユーザや端末装置10の環境(背景)に基づくユーザの種々の状況を含む概念であってもよい。また、コンテキスト情報には、ユーザが移動経路を移動中における、時間帯等を示す時刻情報や、天候を示す気象情報等のユーザが置かれた物理環境を示す情報が含まれる。また、コンテキスト情報には、ユーザが置かれた社会環境、ユーザに提供されるコンテンツの内容、ユーザが反応したコンテンツの内容、ユーザの属性、ユーザの感情等の種々の情報が含まれてもよい。また、例えば、コンテキスト情報は、ユーザが利用する端末装置10の通信状態や表示する情報等が含まれる。このように、コンテキスト情報は、ユーザが移動経路を移動中における種々の情報が含まれてもよい。なお、上記は一例であり、コンテキスト情報には、上記に限らず、種々の情報が含まれてもよい。なお、コンテキスト情報には、移動データに対応する情報や対応ユーザの情報等が含まれてもよい。
情報処理装置100は、起点ベクトルを起点としてグラフ情報を検索することにより、複数の移動経路のうち、一のユーザの移動に類似する移動経路である類似移動経路を抽出する情報処理装置である。また、認証装置100は、抽出された類似移動経路に対応付けられた各種情報に基づく立ち寄りスポットを推奨する推奨情報を一のユーザの端末装置10に送信する情報処理装置である。例えば、情報処理装置100は、一のユーザの移動に関する移動経路情報を取得し、移動経路情報と、グラフ情報の検索の起点となる起点ベクトルに関する情報とに基づいて、起点ベクトルを決定する。
情報処理装置100は、ユーザ等に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、情報処理装置100は、端末装置10から一のユーザの移動の移動データ(以下、「クエリ情報」や「クエリ」ともいう)を取得すると、クエリに類似する移動経路(ベクトル情報等)を検索し、類似移動経路を抽出する。そして、情報処理装置100は、抽出した類似移動経路に対応付けられた立ち寄りスポットやその移動を行ったユーザや移動の際のコンテキスト情報等に基づく推奨情報を端末装置10に送信する。また、例えば、情報処理装置100が端末装置10に提供するデータは、推奨する立ち寄りスポットの位置情報や具体的な名称やURL(Uniform Resource Locator)等のその立ち寄りスポットの情報を参照するための情報であってもよい。なお、情報処理装置100は、端末装置10から一のユーザの移動の移動データを取得すると、クエリに類似する移動経路(ベクトル情報等)を検索し、検索結果を端末装置10に提供してもよい。図1及び図2の例では、情報処理装置100は、端末装置10から一のユーザの移動の移動データを取得すると、一のユーザの移動に類似する移動経路を検索し、検索結果を類似の移動経路として端末装置10に提供する。
情報提供装置50は、情報処理装置100に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、情報提供装置50は、ウェブサーバ等の種々の外部装置から収集した移動経路情報等が格納されてもよい。例えば、情報提供装置50は、グラフ情報やインデックス情報やモデル等の種々の情報を情報処理装置100に提供する情報処理装置である。
〔1-2.グラフ情報について〕
ここで、グラフ情報について説明する。また、情報処理装置100は、図2中のグラフ情報GR11に示すように、各ベクトル(ノード)が有向エッジにより連結されたグラフデータを対象に情報処理を行う。なお、図2中のグラフ情報GR11に示すようなグラフ情報は、情報処理装置100が生成してもよいし、情報処理装置100は、図2中のグラフ情報GR11に示すようなグラフ情報を情報提供装置50(図3参照)等の他の外部装置から取得してもよい。
また、ここでいう、有向エッジとは、一方向にしかデータを辿れないエッジを意味する。以下では、エッジにより辿る元、すなわち始点となるノードを参照元とし、エッジにより辿る先、すなわち終点となるノードを参照先とする。例えば、所定のノード「A」から所定のノード「B」に連結される有向エッジとは、参照元をノード「A」とし、参照先をノード「B」とするエッジであることを示す。なお、各ノードを連結するエッジは、有向エッジに限らず、種々のエッジであってもよい。例えば、各ノードを連結するエッジは、ノードを連結する方向のないエッジであってもよい。例えば、各ノードを連結するエッジは、相互に参照可能なエッジであってもよい。例えば、各ノードを連結するエッジは、全て双方向エッジであってもよい。
例えば、このようにノード「A」を参照元とするエッジをノード「A」の出力エッジという。また、例えば、このようにノード「B」を参照先とするエッジをノード「B」の入力エッジという。すなわち、ここでいう出力エッジ及び入力エッジとは、一の有向エッジをその有向エッジが連結する2つのノードのうち、いずれのノードを中心として捉えるかの相違であり、一の有向エッジが出力エッジ及び入力エッジになる。すなわち、出力エッジ及び入力エッジは、相対的な概念であって、一の有向エッジについて、参照元となるノードを中心として捉えた場合に出力エッジとなり、参照先となるノードを中心として捉えた場合に入力エッジとなる。なお、本実施形態においては、エッジについては、出力エッジや入力エッジ等の有向エッジを対象とするため、以下では、有向エッジを単に「エッジ」と記載する場合がある。
例えば、情報処理装置100は、数百万~数億単位の移動経路に対応するノードを対象に処理を行うが、図面においてはその一部のみを図示する。図2の例では、説明を簡単にするために、8個のノードを図示して処理の概要を説明する。例えば、情報処理装置100は、図2中のグラフ情報GR11に示すように、ノードN1、N2、N5等に示すような複数のノード(ベクトル)を含むグラフ情報を取得する。また、図2の例では、グラフ情報GR11における各ノードは、そのノードとの間の距離が近い方から所定数のノードへのエッジ(出力エッジ)が連結される。例えば、所定数は、目的や用途等に応じて、2や5や10や100等の種々の値であってもよい。例えば、所定数が3である場合、ノードN1からは、ノードN1からの距離が最も近いノード及び3番目に距離が近い3つのノードに出力エッジが連結される。なお、類似度を示す指標としての距離は、ベクトル(N次元ベクトル)間の距離として適用可能であれば、どのような距離であってもよく、例えば、ユークリッド距離やマハラノビス距離やコサイン距離等の種々の距離が用いられてもよい。
また、このように「ノードN*(*は任意の数値)」と記載した場合、そのノードはノードID「N*」により識別されるノードであることを示す。例えば、「ノードN1」と記載した場合、そのノードはノードID「N1」により識別されるノードである。
また、図2中のグラフ情報GR11では、ノードN712は、ノードN7へ向かう有向エッジであるエッジE7が連結される。すなわち、ノードN712は、ノードN7とエッジE7により連結される。このように「エッジE*(*は任意の数値)」と記載した場合、そのエッジはエッジID「E*」により識別されるエッジであることを示す。例えば、「エッジE11」と記載した場合、そのエッジはエッジID「E11」により識別されるエッジである。例えば、ノードN712を参照元とし、ノードN7を参照先として連結されるエッジE7により、ノードN712からノードN7に辿ることが可能となる。この場合、有向エッジであるエッジE7は、ノードN712を中心として識別される場合、出力エッジとなり、ノードN7を中心として識別される場合、入力エッジとなる。また、図2のグラフ情報GR11中の双方向矢印は、両方のノードから他方のノードへの有向エッジが連結されることを示す。例えば、グラフ情報GR11中のノードN2とノードN5との間の双方向矢印は、ノードN2からノードN5へ向かう有向エッジと、ノードN5からノードN2へ向かう有向エッジとの2つのエッジが連結されることを示す。
また、図2中のグラフ情報GR11は、ユークリッド空間であってもよい。また、図2に示すグラフ情報GR11は、各ベクトル間の距離等の説明のための概念的な図であり、グラフ情報GR11は、多次元空間である。例えば、図2に示すグラフ情報GR11は、平面上に図示するため2次元の態様にて図示されるが、例えば100次元や1000次元等の多次元空間であるものとする。
ここで、ベクトルデータ間の距離は、移動経路の類似性を示し、距離が近いほど類似している。本実施形態においては、グラフ情報GR11における各ノードの距離を対応する各オブジェクト間の類似度とする。例えば、各ノードに対応する対象(移動経路)の類似性が、グラフ情報GR11内におけるノード間の距離として写像されているものとする。例えば、各ノードに対応する概念間の類似度が各ノード間の距離に写像されているものとする。ここで、図2に示す例においては、グラフ情報GR11における各ノード間の距離が短いオブジェクト同士の類似度が高く、グラフ情報GR11における各ノード間の距離が長いオブジェクト同士の類似度が低い。例えば、図2中のグラフ情報GR11において、ノードID「N1」により識別されるノードと、ノードID「N2」により識別されるノードとは近接している、すなわち距離が短い。そのため、ノードID「N1」により識別されるノードに対応するオブジェクトと、ノードID「N2」により識別されるノードに対応するオブジェクトとは類似度が高いことを示す。
また、例えば、図2中のグラフ情報GR11において、ノードID「N7」により識別されるノードと、ノードID「N354」により識別されるノードとは遠隔にある、すなわち距離が長い。そのため、ノードID「N7」により識別されるノードに対応するオブジェクトと、ノードID「N354」により識別されるノードに対応するオブジェクトとは類似度が低いことを示す。
〔1-3.ベクトルの生成例〕
また、ここでいう、各ノード(ベクトル)は、各オブジェクト(移動経路)に対応する。移動経路情報(移動データ)が様々な移動の態様を示す数値データであれば、それをベクトルデータとして、そのまま扱うことも可能である。しかし、移動データに、テキスト、画像、または、音声といった情報が含まれる場合には、ベクトルデータへの変換が必要となる。そこで、図1及び図2の例では、各移動経路の移動データから抽出された特徴量により生成された多次元(N次元)のベクトルがオブジェクトであってもよい。
例えば、情報処理装置100は、移動データの特徴を抽出するモデルを用いて各移動経路の移動データからN次元ベクトルを生成してもよい。図1及び図2の例では、情報処理装置100は、モデル情報記憶部126(図10参照)に示すように、モデルID「M1」により識別されるモデル(モデルM1)を用いて、各移動経路の移動データからベクトルを生成する。上記のように、「モデルM*(*は任意の数値)」と記載した場合、そのモデルはモデルID「M*」により識別されるモデルであることを示す。例えば、「モデルM1」と記載した場合、そのモデルはモデルID「M1」により識別されるモデルである。また、モデル情報記憶部126に示すように、モデルM1は用途「特徴抽出(移動経路)」、すなわち移動経路のデータからの特徴抽出のために用いられるモデルであり、その具体的なモデルデータが「モデルデータMDT1」であることを示す。
例えば、情報処理装置100は、モデルM1に任意の移動経路の移動データを入力することにより、モデルM1中の各要素(ニューロン)の値を演算し、入力した移動データと同様の情報を出力する。例えば、情報処理装置100は、中間層の各要素(ニューロン)の値を特徴量として抽出し、各移動経路に対応するN次元のベクトルデータを生成してもよい。
ここで、図13を用いて、各移動経路に対応するベクトルデータの生成の一例を示す。図13は、実施形態に係る特徴量の抽出の一例を示す図である。図13は、モデルM1の概念図である。なお、図13では、各要素(ニューロン)の各接続関係を示す線の図示を省略する。図13に示すように、モデルM1は、入力層ILと、中間層CLと、出力層OLとを含む。例えば、モデルM1の入力層ILは、移動データが入力される層である。また、出力層OLは、入力層ILへの入力に応じて、入力された移動データと同様の情報を出力される層である。
また、例えば、中間層CLの中央部の最も圧縮された圧縮層RPは、入力された移動データの特徴を表現する層である。例えば、モデルM1の中間層CLにおいて、入力層ILから圧縮層RPまでの間は、エンコードの処理を行う部分に対応する。モデルM1の中間層CLにおいて、入力層ILから圧縮層RPまでの間は、入力された移動データの特徴を圧縮する処理を行う部分に対応する。例えば、モデルM1の中間層CLにおいて、圧縮層RPから出力層OLまでの間は、デコードの処理を行う部分に対応する。モデルM1の中間層CLにおいて、圧縮層RPから出力層OLまでの間は、圧縮された移動データを復元する処理を行う部分に対応する。
例えば、情報処理装置100は、圧縮層RPに含まれるニューロンNL1やニューロンNL2等の情報をベクトルに用いてもよい。例えば、情報処理装置100は、ある移動経路の移動データが入力された場合に、算出されるニューロンNL1に対応する値VE1やニューロンNL2に対応する値VE2をベクトルの要素(一の次元の値)として抽出してもよい。例えば、情報処理装置100は、ある移動経路の移動データが入力された場合に、算出されるニューロンNL1に対応する値VE1をその移動経路のベクトルの1次元目の要素として抽出してもよい。また、例えば、情報処理装置100は、ある移動経路の移動データが入力された場合に、算出されるニューロンNL2に対応する値VE2をその移動経路のベクトルの2次元目の要素として抽出してもよい。このように、情報処理装置100は、各移動経路の移動データをモデルM1に入力することにより、各移動経路に対応するベクトルを生成してもよい。なお、情報処理装置100は、各移動経路に対応するベクトルを情報提供装置50等の他の外部装置から取得してもよい。なお、情報処理装置100は、ベクトルの各要素として、各ニューロンに対応する値自体を用いてもよいし、各ニューロンに対応する値に所定の係数を乗算した値を用いてもよい。また、図1及び図2の例では説明を簡単にするために、ベクトルの各要素(値)が整数である場合を示すが、ベクトルの各要素(値)は、小数点以下の数値を含む実数であってもよい。
なお、情報処理装置100は、圧縮層RPの要素(ニューロン)に限らず、中間層CL中の他の要素(ニューロン)の情報をベクトルに用いてもよい。例えば、情報処理装置100は、エンコード部分のニューロンNL3やデコード部分のニューロンNL4等の情報をベクトルに用いてもよい。例えば、情報処理装置100は、ある移動経路の移動データが入力された場合に、算出されるニューロンNL3に対応する値VE3やニューロンNL4に対応する値VE4をベクトルの要素(一の次元の値)として抽出してもよい。なお、上記は、一例であり、情報処理装置100は、オートエンコーダに限らず、種々のモデルを用いて、移動データからの特徴抽出を行ってもよい。例えば、情報処理装置100は、特定の移動パターンに適合する移動経路(移動データ)と適合しない移動経路(移動データ)を識別するように学習させたモデルを生成して、その中間層をベクトルデータとして抽出しても良い。また、例えば、トリプレットロス(triplet loss)といった類似性を学習する方法によりモデルを生成しても良い。また、情報処理装置100は、モデルを用いずに、特徴抽出を行ってもよい。例えば、情報処理装置100は、情報処理装置100の管理者等が設定して特徴(素性)に対応する情報を移動データから抽出し、ベクトルを生成してもよい。例えば、情報処理装置100は、移動経路に対応する複数の位置情報やユーザがその移動経路を移動した際の速度等の特徴(素性)に対応する情報を移動データから抽出し、ベクトルを生成してもよい。
また、例えば、情報処理装置100は、情報提供装置50等の他の外部装置からモデルM1を取得してもよい。なお、情報処理装置100は、移動経路情報記憶部123(図7参照)に記憶された各移動経路の移動データMD1、MD2、MD354、MD512等を入力として、モデルM1を生成してもよい。例えば、端末装置10は、各移動経路の移動データMD1、MD2、MD354、MD512等を入力として、モデルM1を生成してもよい。例えば、移動データMD1、MD2、MD354、MD512等は、移動経路に対応する複数の位置情報やユーザがその移動経路を移動した際の速度等を含んでもよい。例えば、移動データMD1、MD2、MD354、MD512等の移動データは、対応ユーザの移動における始点から終点までの間に検知されたユーザの位置情報群やその位置情報群の各位置情報が検知された時間等に関する情報を含んでもよい。また、例えば、移動データは、対応ユーザの移動における始点から終点までの間の平均の移動速度や最高速度や最低速度等に関する情報を含んでもよい。また、例えば、移動データは、対応ユーザの移動において立ち止まったりする等により移動を中止した位置や時間や期間等に関する情報を含んでもよい。なお、上記は一例であり、移動データには、対応ユーザの移動において検知される種々の情報が含まれてもよい。
情報処理装置100は、移動経路の移動経路情報(移動データ)が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された移動経路情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力するモデルM1を生成してもよい。なお、情報処理装置100は、ベクトル生成に用いるモデルを情報提供装置50等の他の外部装置から取得してもよい。
〔1-4.処理例〕
ここから、情報処理装置100は、ユーザから一のユーザの移動の移動データを取得し、一のユーザの移動に類似する移動経路に関する情報提供を行う場合を一例として説明する。図1及び図2の例では、端末装置10は、所定の管理者であるユーザU1により利用される。例えば、ユーザU1は、所定のエリアを散策しているユーザであってもよい。図1及び図2の例では、ユーザU1が散策している所定のエリアでの立ち寄りスポットの情報を所望する場合を示す。
まず、図1に示すエリア情報AR1について、簡単に説明する。図1の例では、エリア情報AR1は所定のエリアを模式的に示す図であり、ユーザID「U1」により識別されるユーザ(以下、「ユーザU1」とする場合がある)が利用する端末装置10から取得する位置情報等の種々の移動データを用いて、ユーザU1に立ち寄りスポットを推奨する場合を示す。図1の例では、情報処理装置100は、ユーザU1が利用する端末装置10が有するGPSセンサ等の機能により、ユーザU1が利用する端末装置10の位置を取得する。図1中のエリア情報AR1には、所定のエリアにおけるユーザU1の移動におけるルートRT10や、所定のエリアに位置するPOI(関心地点:Point of Interest)等を模式的に示す。図1に示すエリア情報AR1は、ユーザU1の位置や所定のエリアに位置するPOIである各スポットSP1~SP3等の位置を模式的に示す。
図1の例では、ユーザU1は、ルートRT10を移動することにより、位置LC10から位置LC15まで移動する。なお、図1の例では位置情報LC10、LC3等の抽象的な符号で図示するが、位置情報は、具体的な緯度や経度を示す情報(緯度経度情報)等であってもよい。また、以下、「位置情報LC*(*は任意の数等の文字列)」を「位置LC*」と記載する場合がある。例えば、「位置LC1」と記載した場合、その位置は位置情報LC1に対応する位置であることを示す。
例えば、ユーザU1は、ルートRT10の始点である位置LC10からルートRT10の終点である位置LC15まで移動する。例えば、端末装置10は、GPSセンサ等の種々のセンサにより、ユーザU1がルートRT10を移動する際の位置情報を検知(収集)する。例えば、端末装置10は、GPSセンサ等の種々のセンサにより、ユーザU1がルートRT10を移動する際の複数の位置情報を検知(収集)する。例えば、端末装置10は、GPSセンサ等の種々のセンサにより、ユーザU1がルートRT10を移動する際の位置情報を検知し、位置情報とその位置情報の検知日時の組合せを収集する。例えば、端末装置10は、ユーザU1がルートRT10を移動する際の位置情報とその位置情報の検知日時の組合せにより、ユーザU1の移動速度やどの位置にどの日時に位置したかを特定する。また、例えば、端末装置10は、ユーザU1がルートRT10を移動する際の位置情報の検知日時の組合せにより、ユーザU1がルートRT10を移動する際の日時等の時刻情報を特定する。また、例えば、端末装置10は、ユーザU1がルートRT10を移動する際の位置情報とその位置情報の検知日時の組合せにより、ユーザU1がルートRT10を移動する際の天候等の気象情報を特定する。例えば、端末装置10は、インストール済みの所定のアプリケーションにより、ユーザU1がルートRT10を移動する際の移動データを取得してもよい。
そして、端末装置10は、ユーザU1が位置LC10から位置LC15まで移動する際の移動経路情報を情報処理装置100に送信する。端末装置10は、ユーザU1が位置LC10から位置LC15まで移動する間に検知した位置情報等の種々の情報を含む移動データMD10を情報処理装置100に送信する。例えば、端末装置10は、ユーザU1が位置LC10から位置LC15まで移動した際の位置情報群や移動速度や気象情報や時刻情報等の種々の情報を含む移動データMD10を情報処理装置100に送信する。なお、端末装置10は、リアルタイムにセンサにより検知された移動データを情報処理装置100に送信してもよい。例えば、端末装置10は、センサにより検知される度に随時移動データを情報処理装置100に送信してもよい。また、図1の例では、端末装置10は、ユーザU1を特定するユーザ情報を送信する。例えば、端末装置10は、ユーザU1を特定する情報として、ユーザID「U1」を情報処理装置100に送信する。
そして、情報処理装置100は、ユーザU1が利用する端末装置10から移動経路情報を取得する(ステップS11)。例えば、情報処理装置100は、ユーザU1が利用する端末装置10から移動データMD10を取得する。例えば、情報処理装置100は、ユーザU1が位置LC10から位置LC15まで移動した際の位置情報群や移動速度や気象情報や時刻情報等の種々の情報を含む移動データMD10を取得する。図1の例では、情報処理装置100は、ユーザU1が位置LC10から位置LC15まで移動した際に検知された位置情報群や、位置LC10から位置LC15まで移動した際の時刻が12時等の昼の時間帯であることを示す情報を取得する。なお、情報処理装置100は、ユーザU1が位置LC10から位置LC15まで移動した際の天候が晴れであったことを示す気象情報を、端末装置10から取得してもよい。
また、情報処理装置100は、ユーザU1を特定する情報と、ユーザ情報記憶部122に記憶されたユーザU1の属性情報に基づいて、ユーザU1が20代男性であることを特定する。なお、情報処理装置100は、ユーザU1が20代男性であることを示す情報を端末装置10から取得してもよい。
なお、情報処理装置100は、ユーザU1のルートRT10の移動における位置情報とその位置情報の検知日時の組合せを端末装置10から取得してもよい。この場合、例えば、情報処理装置100は、ユーザU1がルートRT10を移動する際の位置情報とその位置情報の検知日時の組合せにより、ユーザU1の移動速度やどの位置にどの日時に位置したかを特定してもよい。また、例えば、情報処理装置100は、ユーザU1がルートRT10を移動する際の位置情報の検知日時の組合せにより、ユーザU1がルートRT10を移動する際の日時等の時刻情報を特定してもよい。また、例えば、情報処理装置100は、ユーザU1がルートRT10を移動する際の位置情報とその位置情報の検知日時の組合せにより、ユーザU1がルートRT10を移動する際の天候等の気象情報を特定してもよい。例えば、情報処理装置100は、気象情報を提供する外部装置に、ユーザU1がルートRT10を移動する際の位置情報とその位置情報の検知日時とを送信することにより、外部装置から気象情報を取得してもよい。
そして、情報処理装置100は、類似移動経路を抽出する抽出処理を行う(ステップS12)。情報処理装置100は、取得したユーザU1の移動データに基づいて、ユーザU1の移動に類似する類似移動経路を抽出する抽出処理を行う。図1の例では、情報処理装置100は、移動データMD10を用いて抽出処理を行う。
ここから、図2を用いて、抽出処理の具体例を説明する。図2に示すように、情報処理装置100は、一のユーザの移動に対応する移動データからグラフ情報の探索に用いるベクトルを生成する。図2の例では、情報処理装置100は、処理群PS11に示すような処理により、ユーザU1のルートRT10における移動(以下、「ユーザU1の移動」とする場合がある)に対応するベクトルを生成する。情報処理装置100は、ユーザU1の移動に関する移動データMD10をモデルM1に入力する(ステップS12-1)。具体的には、情報処理装置100は、ユーザU1の移動の移動データMD10をモデルM1に入力する。そして、情報処理装置100は、移動データMD10の入力後のモデルM1中の情報を用いて、ベクトルを生成する(ステップS12-2)。例えば、情報処理装置100は、移動データMD10が入力されたモデルM1中の各要素を用いて、ベクトルデータを生成する。
図2の例では、情報処理装置100は、移動データMD10が入力されたモデルM1中の各要素の値を用いて、ベクトルデータVD10(単に「ベクトルVD10」ともいう)を生成する。例えば、情報処理装置100は、ユーザU1の移動の移動データMD10が入力された場合における、モデルM1のニューロンNL1に対応する値VE1(図13参照)やニューロンNL2に対応する値VE2(図13参照)を用いて、ベクトルを生成する。例えば、情報処理装置100は、ユーザU1の移動の移動データMD10が入力された場合に、算出されるニューロンNL1に対応する値VE1をベクトルVD10の1次元目の要素として抽出してもよい。また、例えば、情報処理装置100は、ある移動経路の移動データが入力された場合に、算出されるニューロンNL2に対応する値VE2をベクトルVD10の2次元目の要素として、ベクトルVD10を生成する。図2の例では、情報処理装置100は、1次元目の要素が「3」であり、2次元目の要素が「2」であるようなベクトルVD10を生成する。
そして、情報処理装置100は、ユーザU1の移動に類似する移動経路(類似移動経路)を検索する(ステップS12-3)。例えば、情報処理装置100は、非特許文献1に開示されるような近傍検索の技術等の種々の従来技術を適宜用いて、ユーザU1の移動の類似移動経路を検索してもよい。
図2の例では、情報処理装置100は、情報群INF11に示すように、グラフ情報GR11やインデックス情報IND11を用いてユーザU1の移動の類似移動経路を検索する。例えば、情報処理装置100は、グラフ情報記憶部125(図9参照)から移動経路に関するグラフ情報GR11を取得する。また、例えば、情報処理装置100は、インデックス情報記憶部124(図8参照)から、グラフ情報GR11における検索の起点となるノード(以下、「起点ベクトル」ともいう)の決定に用いるインデックス情報IND11を取得する。なお、インデックス情報IND11は、情報処理装置100が生成してもよいし、情報処理装置100は、インデックス情報IND11を情報提供装置50等の他の外部装置から取得してもよい。
そして、情報処理装置100は、一のユーザの移動(クエリ)に対応する起点ベクトルを決定(特定)するために、インデックス情報IND11を用いる。図2の例では、情報処理装置100は、ユーザU1の移動のベクトルVD10に対応する起点ベクトルを決定(特定)するために、インデックス情報IND11を用いる。すなわち、情報処理装置100は、ベクトルVD10とインデックス情報IND11とを用いて、グラフ情報GR11における起点ベクトルを決定する。
図2中のインデックス情報IND11は、図8中のインデックス情報記憶部124に示す階層構造を有する。例えば、インデックス情報IND11は、ルートRTの直下に位置する第1階層のノード(ベクトル)が、節点VT1、VT2等であることを示す。また、例えば、インデックス情報IND11は、節点VT2の直下の第2階層のノードが、節点VT2-1~VT2-4(図示せず)であることを示す。また、例えば、インデックス情報IND11は、節点VT2-2の直下の第3階層のノードが、ノードN1、ノードN2、ノードN5、すなわちグラフ情報GR11中のノード(ベクトル)であることを示す。
例えば、情報処理装置100は、図2中のインデックス情報IND11に示すような木構造型のインデックス情報を用いて、グラフ情報GR11における起点ベクトルを決定する(ステップS12-4)。図2の例では、情報処理装置100は、ベクトルVD10を生成した後、インデックス情報IND11を上から下へ辿ることにより、インデックス情報IND11の近傍候補となる起点ベクトルを特定することにより、効率的に検索クエリ(一のユーザの移動データ)に対応する起点ベクトルを決定することができる。
例えば、情報処理装置100は、インデックス情報IND11をルートRTからリーフノード(グラフ情報GR11中のノード(ベクトル))まで辿ることにより、ベクトルVD10に対応する起点ベクトルを決定してもよい。図2の例では、例えば、情報処理装置100は、インデックス情報IND11をルートRTからノードN2まで辿ることにより、ノードN2を起点ベクトルとして決定する。例えば、情報処理装置100は、木構造に関する種々の従来技術を適宜用いて、インデックス情報IND11をルートRTからリーフノードまで辿ることにより、辿りついたリーフノードを起点ベクトルとして決定してもよい。
例えば、情報処理装置100は、ベクトルVD10との類似度に基づいて、インデックス情報IND11を下へ辿ることにより、起点ベクトルを決定してもよい。例えば、情報処理装置100は、ルートRTから節点VT1、VT2等のいずれの節点に辿るかを、ベクトルVD10と節点VT1、VT2との類似度に基づいて決定してもよい。例えば、情報処理装置100は、ルートRTから節点VT1、VT2等のうち、ベクトルVD10との類似度が最も高い節点VT2へ辿ると決定してもよい。また、例えば、情報処理装置100は、節点VT2から節点VT2-1~VT2-4等のうち、ベクトルVD10との類似度が最も高い節点VT2-2へ辿ると決定してもよい。また、例えば、情報処理装置100は、節点VT2-2からノードN1、N2、N5等のうち、ベクトルVD10との類似度が最も高い節点ノードN2へ辿ると決定してもよい。
なお、図2の例では、説明を簡単にするために、起点ベクトルを1つ決定する場合を示すが、情報処理装置100は、複数個の起点ベクトルを決定してもよい。例えば、情報処理装置100は、ノードN1、N2、N5等の複数個のベクトル(ノード)を起点ベクトルとして決定してもよい。なお、インデックス情報IND11を用いずに、検索開始時にグラフ情報GR11からランダムに1つ以上のノードを選択し、それを起点ベクトルとしてもよいし、または、予め指定された1つ以上のノードを起点ベクトルとしても良い。
そして、情報処理装置100は、グラフ情報GR11を検索することにより、ユーザU1の移動の類似移動経路を抽出する(ステップS12-5)。例えば、情報処理装置100は、ノードN2の近傍に位置するノードを類似移動経路として抽出する。例えば、情報処理装置100は、ノードN2からの距離が近いノードを類似移動経路として抽出する。例えば、情報処理装置100は、ノードN2を起点として、エッジを辿ることにより、ノードN2から到達可能なノードを類似移動経路として抽出する。例えば、情報処理装置100は、所定数(例えば、2個や10個等)のノードを類似移動経路として抽出する。例えば、情報処理装置100は、図14に示すような検索処理により、ユーザU1の移動の類似移動経路を抽出してもよいが、詳細は後述する。図2の例では、情報処理装置100は、ノードN2を起点として、グラフ情報GR11を探索することにより、ノードN2やノードN1やノードN512等を類似移動経路として抽出する。
これにより、情報処理装置100は、図1中の移動経路情報記憶部123に示すように、類似移動経路を抽出する。例えば、情報処理装置100は、ユーザU99の移動に対応する移動経路MP1や、ユーザU51の移動に対応する移動経路MP2や、ユーザU21の移動に対応する移動経路MP512等を抽出する。図1中の移動経路情報記憶部123に示すように、各ユーザの移動経路には、その移動経路に対応する移動後にユーザが訪問した訪問地点(立ち寄りスポット)が対応づけられている。
そして、情報処理装置100は、抽出した類似移動経路に対応付けられた訪問地点に基づいて、対応訪問地点を抽出する(ステップS13)。例えば、情報処理装置100は、抽出した類似移動経路に対応付けられた訪問地点のうち、ユーザU1の属性に類似する属性のユーザの移動経路に対応付けられた訪問地点を抽出する。また、例えば、情報処理装置100は、抽出した類似移動経路に対応付けられた訪問地点のうち、ユーザU1の移動の時間帯と類似する時間帯におけるユーザの移動経路に対応付けられた訪問地点を抽出する。
図1の例では、情報処理装置100は、ユーザの属性が20代男性であり、移動の時間帯が昼である移動経路に対応付けられた訪問地点を対応訪問地点として抽出する。この場合、情報処理装置100は、20代男性のユーザU99が昼に移動した際の訪問地点であるスポットSP2を対応訪問地点として抽出する。また、情報処理装置100は、20代男性のユーザU21が昼に移動した際の訪問地点であるスポットSP2を対応訪問地点として抽出する。また、図1の例では、他にも、情報処理装置100は、20代男性のユーザU111が昼に移動した際の訪問地点であるスポットSP1等も対応訪問地点として抽出する。また、情報処理装置100は、20代女性のユーザU51が夜に移動した際の訪問地点であるスポットSP3を対応訪問地点として抽出しない。
これにより、情報処理装置100は、類似移動経路のうち、ユーザU1の属性やユーザU1の移動時のコンテキスト情報と類似性のある移動における訪問地点を対応訪問地点として抽出する。図1の例では、情報処理装置100は、POI情報記憶部121に示すように、スポットSP2を対応訪問地点として最も多く抽出する。
そして、情報処理装置100は、抽出した対応訪問地点に基づいて、推奨地点を決定する(ステップS14)。例えば、情報処理装置100は、抽出した対応訪問地点中のスポットのうち、最多の訪問地点を推奨地点に決定する。図1の例では、情報処理装置100は、スポットSP2を推奨地点に決定する。
そして、情報処理装置100は、決定した推奨地点に関する情報を提供する(ステップS15)。図1の例では、情報処理装置100は、スポットSP2が推奨地点であることを示す推奨地点情報をユーザU1が利用する端末装置10に送信する。これにより、情報処理装置100は、スポットSP2がユーザU1の移動において最適な立ち寄りスポットであることを示す推奨地点情報をユーザU1が利用する端末装置10に提供する。
上述したように、情報処理装置100は、グラフ情報GR11やインデックス情報IND11を用いて、ユーザU1から取得したユーザU1の移動の類似移動経路を抽出する。例えば、情報処理装置100は、インデックス情報IND11を用いて、ユーザU1の移動の類似移動経路を抽出する際のグラフ情報GR11における起点ベクトルを決定する。そして、情報処理装置100は、決定した起点ベクトルを起点としてグラフ情報GR11を探索することにより、ユーザU1の移動の類似移動経路を抽出する。
そして、情報処理装置100は、抽出した類似移動経路に対応付けられた訪問地点の情報に基づいて、ユーザU1に推奨する立ち寄りスポットを決定し、その情報をユーザU1が利用する端末装置10へ送信する。これにより、情報処理装置100は、ユーザの移動に応じて適切な推奨を行うことができる。
例えば、ディープラーニングといった手法で、各ユーザの移動経路に対応する訪問地点を識別するという方法もあるが、移動経路に対応する多種多様な訪問地点が存在する場合においては、各訪問地点の事例が少ないので、学習ができずに識別精度を向上させることが難しいという問題がある。例えば、ディープラーニングといった学習手法で生成したモデルを用いて、そのモデルに移動経路の情報を入力し、出力されたスコアからその移動経路が所定の訪問地点に適するかを識別するという方法もあるが、多種多様な訪問地点が存在する場合においては、各訪問地点の事例が少ないため、モデルの精度を向上させることが難しく、識別精度を向上させることが難しい。一方で、情報処理装置100は、移動経路情報(移動データ)の各要素から抽出した特徴を基に生成した複数のベクトルのグラフ構造化したグラフ情報を用いて検索を行うことにより、ある移動経路に類似する類似移動経路を適切に抽出することができる。そして、情報処理装置100は、その類似移動経路に対応付けられた訪問地点の情報により、適切な訪問地点を決定することができる。そのため、情報処理装置100は、ある移動においてどのような訪問地点(立ち寄りスポット)が適切かを精度よく決定することができる。
〔1-5.インデックス情報〕
図2の例に示すインデックス情報(インデックスデータ)は一例であり、情報処理装置100は、種々のインデックス情報を用いて、グラフ情報を検索してもよい。また、例えば、情報処理装置100は、検索時に用いるインデックスデータを生成してもよい。例えば、情報処理装置100は、高次元ベクトルを検索する検索インデックスをインデックスデータとして生成する。ここでいう高次元ベクトルとは、例えば、数百次元から数千次元のベクトルであってもよいし、それ以上の次元のベクトルであってもよい。
例えば、情報処理装置100は、図2に示すようなツリー構造(木構造)に関する検索インデックスをインデックスデータとして生成してもよい。例えば、情報処理装置100は、kd木(k-dimensional tree)に関する検索インデックスをインデックスデータとして生成してもよい。例えば、情報処理装置100は、VP木(Vantage-Point tree)に関する検索インデックスをインデックスデータとして生成してもよい。
また、例えば、情報処理装置100は、その他の木構造を有するインデックスデータとして生成してもよい。例えば、情報処理装置100は、木構造のインデックスデータのリーフがグラフデータに接続する種々のインデックスデータを生成してもよい。例えば、情報処理装置100は、木構造のインデックスデータのリーフがグラフデータ中のノードに対応する種々のインデックスデータを生成してもよい。また、情報処理装置100は、このようなインデックスデータを用いて検索を行う場合、インデックスデータを辿って到達したリーフ(ノード)からグラフデータを探索してもよい。
なお、上述したようなインデックスデータは一例であり、情報処理装置100は、グラフデータ中のクエリを高速に特定することが可能であれば、どのようなデータ構造のインデックスデータを生成してもよい。例えば、情報処理装置100は、クエリに対応するグラフ情報中のノードを高速に特定することが可能であれば、バイナリ空間分割に関する技術等の種々の従来技術を適宜用いて、インデックスデータを生成してもよい。例えば、情報処理装置100は、高次元ベクトルの検索に対応可能なインデックスであれば、どのようなデータ構造のインデックスデータを生成してもよい。例えば、情報処理装置100は、非特許文献1に記載されるようなグラフ型の検索インデックスに関する情報をインデックス情報として用いてもよい。情報処理装置100は、上述のようなインデックスデータとグラフデータとを用いることにより、所定の対象に関するより効率的な検索を可能にすることができる。
〔2.情報処理装置の構成〕
次に、図4を用いて、実施形態に係る情報処理装置100の構成について説明する。図4は、実施形態に係る情報処理装置の構成例を示す図である。図4に示すように、情報処理装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、情報処理装置100は、情報処理装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワーク(例えば図3中のネットワークN)と有線または無線で接続され、端末装置10や情報提供装置50との間で情報の送受信を行う。
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、図4に示すように、POI情報記憶部121と、ユーザ情報記憶部122と、移動経路情報記憶部123と、インデックス情報記憶部124と、グラフ情報記憶部125と、モデル情報記憶部126とを有する。
(POI情報記憶部121)
実施形態に係るPOI情報記憶部121は、POIに関する各種情報を記憶する。図5は、実施形態に係るPOI情報記憶部の一例を示す図である。図5に示すPOI情報記憶部121は、「POI_ID」、「POI名」、「所在地」といった項目が含まれる。
「POI_ID」は、POIを識別するための識別情報を示す。「POI」は、対応するPOI_IDにより識別されるPOIを示す。例えば、「POI名」は、対応するPOI_IDにより識別されるPOIの名称を示す。「所在地」は、対応するPOI_IDにより識別されるPOIの所在地を示す。
例えば、図5に示す例において、POI_ID「SP1」により識別されるPOI(スポットSP1)は、POI名が「XXタワー」であり、スポットSP1の所在地は、位置LC1であることを示す。なお、図5の例では位置を「LC1」等の抽象的な符号で図示するが、位置情報は、具体的な緯度経度情報等であってもよい。
なお、POI情報記憶部121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、POI情報記憶部121は、POIに対応する事業者の業種等のPOIに対応する事業者の情報等が記憶されてもよい。また、例えば、POI情報記憶部121は、POIにおいて提供される商品やサービスの情報等が記憶されてもよい。
(ユーザ情報記憶部122)
実施形態に係るユーザ情報記憶部122は、ユーザ属性に関する各種情報を記憶する。例えば、ユーザ情報記憶部122は、ユーザ属性情報を記憶する。図6は、実施形態に係るユーザ情報記憶部の一例を示す図である。図6に示すユーザ情報記憶部122は、「ユーザID」、「年齢」、「性別」、「自宅」、「勤務地」、「興味」といった項目が含まれる。
「ユーザID」は、ユーザを識別するための識別情報を示す。例えば、ユーザID「U1」により識別されるユーザは、図1の例に示したユーザU1に対応する。また、「年齢」は、ユーザIDにより識別されるユーザの年齢を示す。なお、「年齢」は、例えば35歳など、ユーザIDにより識別されるユーザの具体的な年齢であってもよい。また、「性別」は、ユーザIDにより識別されるユーザの性別を示す。
また、「自宅」は、ユーザIDにより識別されるユーザの自宅の位置情報を示す。なお、図6に示す例では、「自宅」は、「LC11」といった抽象的な符号を図示するが、緯度経度情報等であってもよい。また、例えば、「自宅」は、地域名や住所であってもよい。
また、「勤務地」は、ユーザIDにより識別されるユーザの勤務地の位置情報を示す。なお、図6に示す例では、「勤務地」は、「LC12」といった抽象的な符号を図示するが、緯度経度情報等であってもよい。また、例えば、「勤務地」は、地域名や住所であってもよい。
また、「興味」は、ユーザIDにより識別されるユーザの興味を示す。すなわち、「興味」は、ユーザIDにより識別されるユーザが関心の高い対象を示す。なお、図6に示す例では、「興味」は、各ユーザに1つずつ図示するが、複数であってもよい。
例えば、図6に示す例において、ユーザID「U1」により識別されるユーザの年齢は、「20代」であり、性別は、「男性」であることを示す。また、例えば、ユーザID「U1」により識別されるユーザは、自宅が「LC11」であることを示す。また、例えば、ユーザID「U1」により識別されるユーザは、勤務地が「LC12」であることを示す。また、例えば、ユーザID「U1」により識別されるユーザは、「スポーツ」に興味があることを示す。
なお、ユーザ情報記憶部122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、ユーザ情報記憶部122は、ユーザのデモグラフィック属性に関する情報やサイコグラフィック属性に関する情報を記憶してもよい。例えば、ユーザ情報記憶部122は、氏名、家族構成、収入、興味、ライフスタイル等の情報を記憶してもよい。
(移動経路情報記憶部123)
実施形態に係る移動経路情報記憶部123は、移動経路に関する各種情報を記憶する。例えば、移動経路情報記憶部123は、移動経路IDやベクトルデータを記憶する。図7は、実施形態に係る移動経路情報記憶部の一例を示す図である。図7に示す移動経路情報記憶部123は、「移動経路ID」、「移動データ」、「ベクトル情報」、「訪問地点」、「対応ユーザ」、「コンテキスト情報」といった項目が含まれる。
「移動経路ID」は、移動経路(オブジェクト)を識別するための識別情報を示す。「移動データ」は、移動経路IDにより識別される移動経路に関する情報を示す。なお、図7の例では、移動データを「MD1」といった抽象的な符号で示すが、各移動データは、移動経路IDにより識別される移動経路に対応する複数の位置情報やユーザがその移動経路を移動した際の速度等の種々の移動経路に関する情報を含む。「ベクトル情報」とは、移動経路IDにより識別される移動経路(オブジェクト)に対応するベクトル情報を示す。すなわち、図7の例では、移動経路(オブジェクト)を識別する移動経路IDに対して、オブジェクトに対応するベクトルデータ(ベクトル情報)が対応付けられて登録されている。
「訪問地点」は、対応する移動経路で移動したユーザが、その移動後に立ち寄ったスポット(訪問地点)を示す。「対応ユーザ」は、対応する移動経路で移動したユーザを示す。「コンテキスト情報」は、対応する移動経路でユーザが移動した際のコンテキスト情報を示す。
例えば、図7の例では、移動経路ID「MP1」により識別される移動経路(オブジェクト)は、「2,4,5,2...」の多次元(N次元)のベクトル情報が対応付けられることを示す。例えば、移動経路ID「MP1」により識別される移動経路(移動経路MP1)については、モデルM1等により、移動経路MP1の特徴を示す「2,4,5,2...」の多次元(N次元)のベクトル情報が移動データMD1から抽出されたことを示す。
例えば、移動経路MP1で移動したユーザは、スポットSP2に立ち寄ったことを示す。例えば、移動経路MP1で移動したユーザは、20代男性のユーザU99であることを示す。例えば、移動経路MP1に対応する移動時は、昼の時間帯であったことを示す。また、例えば、移動経路MP1に対応する移動時は、天候が晴れであったことを示す。
なお、移動経路情報記憶部123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
(インデックス情報記憶部124)
実施形態に係るインデックス情報記憶部124は、インデックスに関する各種情報を記憶する。図8は、実施形態に係るインデックス情報記憶部の一例を示す図である。具体的には、図8の例では、インデックス情報記憶部124は、ツリー構造のインデックス情報を示す。図8の例では、インデックス情報記憶部124は、「ルート階層」、「第1階層」、「第2階層」、「第3階層」等といった項目が含まれる。なお、「第1階層」~「第3階層」に限らず、インデックスの階層数に応じて、「第4階層」、「第5階層」、「第6階層」等が含まれてもよい。
「ルート階層」は、インデックスを用いた起点ノードの決定の開始点となるルート(最上位)の階層を示す。「第1階層」は、インデックスの第1階層に属するノード(節点またはグラフ情報中のベクトル)を識別(特定)する情報が格納される。「第1階層」に格納されるノードは、インデックスの根(ルート)に直接結ばれる階層に対応するノードとなる。
「第2階層」は、インデックスの第2階層に属するノード(節点またはグラフ情報中のベクトル)を識別(特定)する情報が格納される。「第2階層」に格納されるノードは、第1階層のノードに結ばれる直下の階層に対応するノードとなる。「第3階層」は、インデックスの第3階層に属するノード(節点またはグラフ情報中のベクトル)を識別(特定)する情報が格納される。「第3階層」に格納されるノードは、第2階層のノードに結ばれる直下の階層に対応するノードとなる。
例えば、図8に示す例においては、インデックス情報記憶部124には、図1中のインデックス情報IND11に対応する情報が記憶される。例えば、インデックス情報記憶部124は、第1階層のノードが、節点VT1~VT3等であることを示す。また、各節点の下の括弧内の数値は、各節点に対応するベクトルの値を示す。
また、例えば、インデックス情報記憶部124は、節点VT2の直下の第2階層のノードが、節点VT2-1~VT2-4であることを示す。また、例えば、インデックス情報記憶部124は、節点VT2-2の直下の第3階層のノードが、ノードN1、ノードN2、ノードN5のグラフ情報GR11中のノード(ベクトル)であることを示す。
なお、インデックス情報記憶部124は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
(グラフ情報記憶部125)
実施形態に係るグラフ情報記憶部125は、グラフ情報に関する各種情報を記憶する。図9は、実施形態に係るグラフ情報記憶部の一例を示す図である。図9の例では、グラフ情報記憶部125は、「ノードID」、「移動経路ID」、および「エッジ情報」といった項目を有する。また、「エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。
「ノードID」は、グラフデータにおける各ノード(対象)を識別するための識別情報を示す。また、「移動経路ID」は、移動経路(オブジェクト)を識別するための識別情報を示す。
また、「エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。図9の例では、「エッジ情報」は、エッジが有向エッジである場合を示し、対応するノードから出力される出力エッジに関する情報を示す。また、「エッジID」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先(ノード)を示す情報を示す。すなわち、図9の例では、ノードを識別するノードIDに対して、そのノードに対応するオブジェクト(対象)を識別する情報やそのノードからの有向エッジ(出力エッジ)が連結される参照先(ノード)が対応付けられて登録されている。
例えば、図9の例では、ノードID「N1」により識別されるノード(ベクトル)は、移動経路ID「MP1」により識別される移動経路(オブジェクト)に対応することを示す。また、ノードID「N1」により識別されるノードからは、エッジID「E11」により識別されるエッジが、ノードID「N712」により識別されるノード(ベクトル)に連結されることを示す。すなわち、図9の例では、ノードID「N1」により識別されるノード(ベクトル)からはノードID「N712」により識別されるノード(ベクトル)に辿ることができることを示す。
なお、グラフ情報記憶部125は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、グラフ情報記憶部125は、各ノード(ベクトル)間を連結するエッジの長さが記憶されてもよい。すなわち、グラフ情報記憶部125は、各ノード(ベクトル)間の距離を示す情報が記憶されてもよい。
(モデル情報記憶部126)
実施形態に係るモデル情報記憶部126は、モデルに関する情報を記憶する。例えば、モデル情報記憶部126は、生成処理により生成されたモデル情報(モデルデータ)を記憶する。図10は、実施形態に係るモデル情報記憶部の一例を示す図である。図10に示すモデル情報記憶部126は、「モデルID」、「用途」、「モデルデータ」といった項目が含まれる。なお、図10では、モデルM1、M2のみを図示するが、M21、M22等、各用途(予測の対象)に応じて多数のモデル情報が記憶されてもよい。
「モデルID」は、モデルを識別するための識別情報を示す。例えば、モデルID「M1」により識別されるモデルは、図1の例に示したモデルM1に対応する。「用途」は、対応するモデルの用途を示す。また、「モデルデータ」は、対応付けられた対応するモデルのデータを示す。例えば、「モデルデータ」には、各層におけるノードと、各ノードが採用する関数と、ノードの接続関係と、ノード間の接続に対して設定される接続係数とを含む情報が含まれる。
例えば、図10に示す例において、モデルID「M1」により識別されるモデル(モデルM1)は、用途が「特徴抽出(移動経路)」であり、入力された移動経路情報からの特徴の抽出に用いられることを示す。また、モデルM1のモデルデータは、モデルデータMDT1であることを示す。
モデルM1(モデルデータMDT1)は、所定の移動経路の移動経路情報(移動データ)が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された移動経路情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力するよう、コンピュータを機能させるためのモデルである。
また、モデルM1、M2等がDNN(Deep Neural Network)等、1つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、例えば、モデルM1、M2が含む第1要素は、入力層または中間層が有するいずれかのノードに対応する。また、第2要素は、第1要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第1要素の重みは、第1要素と対応するノードから第2要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
ここで、モデルM21、M22等が「y=a1*x1+a2*x2+・・・+ai*xi」で示す回帰モデルで実現されるとする。この場合、例えば、モデルM21、M22が含む第1要素は、x1やx2等といった入力データ(xi)に対応する。また、第1要素の重みは、xiに対応する係数aiに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第1要素は、入力層が有するいずれかのノードに対応し、第2要素は、出力層が有するノードと見做すことができる。
なお、モデル情報記憶部126は、上記に限らず、目的に応じて種々のモデル情報を記憶してもよい。
(制御部130)
図4の説明に戻って、制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置100内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。制御部130は、モデル情報記憶部126に記憶されているモデルM1、M2等に従った情報処理により、移動経路の移動経路情報(移動データ)が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された移動経路情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力する。
図4に示すように、制御部130は、取得部131と、生成部132と、決定部133と、抽出部134と、送信部135とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図4に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
(取得部131)
取得部131は、各種情報を取得する。例えば、取得部131は、記憶部120から各種情報を取得する。例えば、取得部131は、POI情報記憶部121や、ユーザ情報記憶部122や、移動経路情報記憶部123や、インデックス情報記憶部124や、グラフ情報記憶部125や、モデル情報記憶部126等から各種情報を取得する。また、取得部131は、各種情報を外部の情報処理装置から取得する。取得部131は、端末装置10や情報提供装置50から各種情報を取得する。
取得部131は、複数の移動経路の各々に対応する複数のノードであって、各移動経路に対応する移動を行った対応ユーザが関連付けられた複数のノードが類似性に応じて連結されたグラフ情報と、一のユーザの移動に関する移動情報を取得する。また、取得部131は、複数の移動経路の各々に対応する移動において対応ユーザが訪れた訪問地点が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報を取得する。また、取得部131は、対応ユーザの属性情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの属性情報とを取得する。また、取得部131は、各移動経路に対応する移動におけるコンテキスト情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動におけるコンテキスト情報とを取得する。また、取得部131は、各移動経路に対応する移動における時刻情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動における時刻情報とを取得する。また、取得部131は、各移動経路に対応する移動における気象情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動における気象情報とを取得する。また、取得部131は、複数の移動経路の各々に対応する複数のベクトルの類似性に応じて、複数のノードが連結されたグラフ情報を取得する。
取得部131は、複数の移動経路の各々に対応する複数のベクトルであって、各移動経路に対応する移動を行った対応ユーザが関連付けられた複数のベクトルが類似性に応じて連結されたグラフ情報と、一のユーザの移動に関する移動情報を取得する。また、取得部131は、複数の移動経路の各々に対応する移動において対応ユーザが訪れた訪問地点が関連付けられた複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。
また、取得部131は、対応ユーザの属性情報が関連付けられた複数のベクトルが類似性に応じて連結されたグラフ情報と、一のユーザの属性情報とを取得する。また、取得部131は、各移動経路に対応する移動におけるコンテキスト情報が関連付けられた複数のベクトルが類似性に応じて連結されたグラフ情報と、一のユーザの移動におけるコンテキスト情報とを取得する。
また、取得部131は、各移動経路に対応する移動における時刻情報が関連付けられた複数のベクトルが類似性に応じて連結されたグラフ情報と、一のユーザの移動における時刻情報とを取得する。また、取得部131は、各移動経路に対応する移動における気象情報が関連付けられた複数のベクトルが類似性に応じて連結されたグラフ情報と、一のユーザの移動における気象情報とを取得する。
また、取得部131は、複数の移動経路の各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得する。また、取得部131は、所定のモデルを用いて複数の移動経路の各々から抽出された特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。また、取得部131は、複数の移動経路に関する情報を所定のモデルに入力することにより、抽出される複数の移動経路の各々の特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。
例えば、取得部131は、データ検索の対象となる複数のノード(ベクトル)を取得する。例えば、取得部131は、複数のノードと、複数のノードの各々を連結する複数の有向エッジを含む有向エッジ群を取得する。
例えば、取得部131は、外部の情報処理装置からグラフ情報(グラフデータ)を取得する。例えば、取得部131は、グラフ情報記憶部125からグラフ情報を取得する。例えば、取得部131は、グラフ情報を取得する。図1の例では、取得部131は、グラフ情報GR11を取得する。
例えば、取得部131は、外部の情報処理装置からインデックス情報(インデックスデータ)を取得する。例えば、取得部131は、インデックス情報記憶部124からインデックス情報を取得する。例えば、取得部131は、木構造型のインデックス情報を取得する。図1の例では、取得部131は、インデックス情報IND11を取得する。
また、図1の例では、取得部131は、ユーザU1が利用する端末装置10から移動経路情報を取得する。例えば、取得部131は、ユーザU1が利用する端末装置10から移動データMD10を取得する。また、取得部131は、ユーザU1が位置LC10から位置LC15まで移動した際の位置情報群や移動速度や気象情報や時刻情報等の種々の情報を含む移動データMD10を取得する。また、取得部131は、ユーザU1が位置LC10から位置LC15まで移動した際に検知された位置情報群や、位置LC10から位置LC15まで移動した際の時刻が12時等の昼の時間帯であることを示す情報を取得する。また、取得部131は、ユーザU1が位置LC10から位置LC15まで移動した際の天候が晴れであったことを示す気象情報を、端末装置10から取得してもよい。
図2の例では、取得部131は、情報群INF11に示すように、グラフ情報GR11やインデックス情報IND11を用いてユーザU1の移動の類似移動経路を検索する。例えば、取得部131は、グラフ情報記憶部125(図9参照)から移動経路に関するグラフ情報GR11を取得する。また、例えば、情報処理装置100は、インデックス情報記憶部124(図8参照)から、グラフ情報GR11における検索の起点となる起点ベクトルの決定に用いるインデックス情報IND11を取得する。
(生成部132)
生成部132は、各種情報を生成する。例えば、生成部132は、移動経路情報記憶部123に記憶された学習データ(移動経路情報)を用いて、モデル情報記憶部126に示すようなモデルを生成する。例えば、生成部132は、取得部131により取得された学習データに基づいて、入力した移動経路情報と同様の情報を出力するモデル(オートエンコーダ)を生成する。例えば、生成部132は、入力する移動経路情報自体を正解情報として、入力した移動経路情報と同様の情報を出力するモデル(オートエンコーダ)を生成する。
例えば、生成部132は、モデルM1等を生成し、生成したモデルM1等をモデル情報記憶部126に格納する。なお、生成部132は、いかなる学習アルゴリズムを用いてモデルM1を生成してもよい。例えば、生成部132は、ニューラルネットワーク(neural network)等の学習アルゴリズムを用いてモデルM1を生成する。一例として、生成部132がニューラルネットワークを用いてモデルM1等を生成する場合、モデルM1等は、一以上のニューロンを含む入力層と、一以上のニューロンを含む中間層と、一以上のニューロンを含む出力層とを有する。
生成部132は、移動経路の移動経路情報(移動データ)が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された移動経路情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、入力層に入力される情報と同様の情報を出力層から出力するモデルを生成する。
例えば、生成部132は、学習データに基づいてモデルを生成する。例えば、生成部132は、学習データに基づいてモデルを生成する。例えば、生成部132は、移動経路情報記憶部123中の移動データMD1、MD2等を学習データ(教師データ)として、学習を行なうことにより、モデルを生成する。
例えば、生成部132は、移動データMD1が入力された場合に、モデルM1が移動データMD1と同様の情報を出力するように、学習処理を行う。例えば、生成部132は、移動データMD2が入力された場合に、モデルM1が移動データMD2と同様の情報を出力するように、学習処理を行う。
なお、生成部132は、オートエンコーダとしてのM1に限らず、種々の学習アルゴリズムを用いてスポットSP1に立ち寄るかどうかを予測するモデルM21等を生成してもよい。例えば、生成部132は、ニューラルネットワーク(neural network)、サポートベクターマシン(SVM)、クラスタリング、強化学習等の学習アルゴリズムを用いてモデルM21等を生成する。一例として、生成部132がニューラルネットワークを用いてモデルM21等を生成する場合、モデルM21等は、一以上のニューロンを含む入力層と、一以上のニューロンを含む中間層と、一以上のニューロンを含む出力層とを有する。
生成部132は、モデルを生成し、生成したモデルをモデル情報記憶部126に格納する。具体的には、生成部132は、移動経路の移動経路情報(移動データ)が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された移動経路情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、スポットSP1に立ち寄る移動経路かどうかの予測に用いられるスコアの値を出力層から出力するモデルを生成する。例えば、生成部132は、ある移動経路の移動経路情報(移動データ)が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された移動経路情報に対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、その移動経路が所定の用途に適した移動経路かどうかの予測に用いられるスコアの値を出力層から出力するモデルM21を生成する。例えば、生成部132は、スポットSP1に立ち寄る移動経路の移動経路情報が入力された場合に、スコア「1」を出力するようにモデルM21を生成する。例えば、生成部132は、スポットSP1に立ち寄らない移動経路の移動経路情報が入力された場合に、スコア「0」を出力するようにモデルM21を生成する。なお、情報処理装置100は、情報提供装置50等の他の外部装置からモデルを取得する場合、生成部132を有しなくてもよい。
図2の例では、生成部132は、一のユーザの移動に対応する移動データからグラフ情報の探索に用いるベクトルを生成する。例えば、生成部132は、処理群PS11に示すような処理により、ユーザU1の移動に対応するベクトルを生成する。情報処理装置100は、ユーザU1の移動に関する移動データMD10をモデルM1に入力する。例えば、生成部132は、ユーザU1の移動の移動データMD10をモデルM1に入力する。そして、情報処理装置100は、移動データMD10の入力後のモデルM1中の情報を用いて、ベクトルを生成する。例えば、生成部132は、移動データMD10が入力されたモデルM1中の各要素を用いて、ベクトルデータを生成する。
図2の例では、生成部132は、移動データMD10が入力されたモデルM1中の各要素の値を用いて、ベクトルVD10を生成する。例えば、生成部132は、ユーザU1の移動の移動データMD10が入力された場合における、モデルM1のニューロンNL1に対応する値VE1(図13参照)やニューロンNL2に対応する値VE2(図13参照)を用いて、ベクトルを生成する。例えば、生成部132は、ユーザU1の移動の移動データMD10が入力された場合に、算出されるニューロンNL1に対応する値VE1をベクトルVD10の1次元目の要素として抽出してもよい。例えば、生成部132は、ある移動経路の移動データが入力された場合に、算出されるニューロンNL2に対応する値VE2をベクトルVD10の2次元目の要素として、ベクトルVD10を生成する。例えば、生成部132は、1次元目の要素が「3」であり、2次元目の要素が「2」であるようなベクトルVD10を生成する。
(決定部133)
決定部133は、各種情報を決定する。例えば、決定部133は、取得部131により取得された移動経路情報と、グラフ情報の検索の起点となる起点ベクトルに関する情報とに基づいて、起点ベクトルを決定する。決定部133は、起点ノードの決定に用いるインデックス情報に基づいて、起点ノードを決定する。また、決定部133は、木構造型のインデックス情報に基づいて、起点ノードを決定する。例えば、決定部133は、移動経路情報と、グラフ情報の検索の起点ベクトルの決定の基準となる情報とに基づいて、起点ベクトルを決定する。また、決定部133は、起点ベクトルの決定に用いるインデックス情報に基づいて、起点ベクトルを決定する。また、決定部133は、木構造型のインデックス情報に基づいて、起点ベクトルを決定する。
図2の例では、決定部133は、ユーザU1の移動のベクトルVD10に対応する起点ベクトルを決定(特定)するために、インデックス情報IND11を用いる。すなわち、決定部133は、ベクトルVD10とインデックス情報IND11とを用いて、グラフ情報GR11における起点ベクトルを決定する。
例えば、決定部133は、図2中のインデックス情報IND11に示すような木構造型のインデックス情報を用いて、グラフ情報GR11における起点ベクトルを決定する。図2の例では、決定部133は、ベクトルVD10を生成した後、インデックス情報IND11を上から下へ辿ることにより、インデックス情報IND11の近傍候補となる起点ベクトルを特定することにより、効率的に検索クエリ(一のユーザの移動データ)に対応する起点ベクトルを決定することができる。
例えば、決定部133は、インデックス情報IND11をルートRTからリーフノード(グラフ情報GR11中のノード(ベクトル))まで辿ることにより、ベクトルVD10に対応する起点ベクトルを決定してもよい。図2の例では、例えば、決定部133は、インデックス情報IND11をルートRTからノードN2まで辿ることにより、ノードN2を起点ベクトルとして決定する。
図1の例では、決定部133は、抽出した対応訪問地点に基づいて、推奨地点を決定する。例えば、決定部133は、抽出した対応訪問地点中のスポットのうち、最多の訪問地点を推奨地点に決定する。例えば、決定部133は、スポットSP2を推奨地点に決定する。
(抽出部134)
抽出部134は、各種情報を抽出する。例えば、抽出部134は、POI情報記憶部121や、ユーザ情報記憶部122や、移動経路情報記憶部123や、インデックス情報記憶部124や、グラフ情報記憶部125や、モデル情報記憶部126等から、各種情報を抽出する。抽出部134は、取得部131により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点として、グラフ情報を検索することにより、複数の移動経路のうち、一のユーザの移動に類似する移動の移動経路である類似移動経路を抽出する。抽出部134は、グラフ情報に含まれるノードを検索することにより、一のユーザの移動に類似する移動の移動経路である類似移動経路を抽出する。抽出部134は、グラフ情報に含まれるノードをエッジの連結関係に基づいて辿ることにより、グラフ情報に含まれるノードを検索することにより、一のユーザの移動に類似する移動の移動経路である類似移動経路を抽出する。抽出部134は、決定部133により決定された起点ノードを起点として、類似移動経路を抽出する。例えば、抽出部134は、取得部131により取得された情報に基づいて、各種情報を抽出する。抽出部134は、取得部131により取得されたグラフ情報の複数のベクトルのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ベクトルを起点として、グラフ情報を検索することにより、複数の移動経路のうち、一のユーザの移動に類似する移動の移動経路である類似移動経路を抽出する。抽出部134は、決定部133により決定された起点ベクトルを起点として、類似移動経路を抽出する。例えば、抽出部134は、グラフ情報記憶部125に記憶された各ノード(ベクトル)間を連結するエッジの長さ(距離)の情報を用いてもよいし、各ノードのベクトル情報から各ノード(ベクトル)間を連結するエッジの長さ(距離)の情報を算出し、算出した長さ(距離)の情報を用いてもよい。
図1の例では、抽出部134は、グラフ情報GR11を検索することにより、ユーザU1の移動の類似移動経路を抽出する。例えば、抽出部134は、ノードN2の近傍に位置するノードを類似移動経路として抽出する。例えば、抽出部134は、ノードN2からの距離が近いノードを類似移動経路として抽出する。例えば、抽出部134は、ノードN2を起点として、エッジを辿ることにより、ノードN2から到達可能なノードを類似移動経路として抽出する。例えば、抽出部134は、所定数(例えば、2個や10個等)のノードを類似移動経路として抽出する。例えば、抽出部134は、図14に示すような検索処理により、ユーザU1の移動の類似移動経路を抽出してもよいが、詳細は後述する。図2の例では、抽出部134は、ノードN2を起点として、グラフ情報GR11を探索することにより、ノードN2やノードN1やノードN512等を類似移動経路として抽出する。
例えば、抽出部134は、図1中の移動経路情報記憶部123に示すように、類似移動経路を抽出する。例えば、抽出部134は、ユーザU99の移動に対応する移動経路MP1や、ユーザU51の移動に対応する移動経路MP2や、ユーザU21の移動に対応する移動経路MP512等を抽出する。
例えば、抽出部134は、抽出した類似移動経路に対応付けられた訪問地点に基づいて、対応訪問地点を抽出する。例えば、抽出部134は、抽出した類似移動経路に対応付けられた訪問地点のうち、ユーザU1の属性に類似する属性のユーザの移動経路に対応付けられた訪問地点を抽出する。また、例えば、抽出部134は、抽出した類似移動経路に対応付けられた訪問地点のうち、ユーザU1の移動の時間帯と類似する時間帯におけるユーザの移動経路に対応付けられた訪問地点を抽出する。
図1の例では、抽出部134は、ユーザの属性が20代男性であり、移動の時間帯が昼である移動経路に対応付けられた訪問地点を対応訪問地点として抽出する。この場合、抽出部134は、20代男性のユーザU99が昼に移動した際の訪問地点であるスポットSP2を対応訪問地点として抽出する。また、抽出部134は、20代男性のユーザU21が昼に移動した際の訪問地点であるスポットSP2を対応訪問地点として抽出する。また、抽出部134は、20代男性のユーザU111が昼に移動した際の訪問地点であるスポットSP1を対応訪問地点として抽出する。また、抽出部134は、20代女性のユーザU51が夜に移動した際の訪問地点であるスポットSP3を対応訪問地点として抽出しない。
例えば、抽出部134は、類似移動経路のうち、ユーザU1の属性やユーザU1の移動時のコンテキスト情報と類似性のある移動における訪問地点を対応訪問地点として抽出する。図1の例では、抽出部134は、POI情報記憶部121に示すように、スポットSP2を対応訪問地点として最も多く抽出する。
(送信部135)
送信部135は、各種情報を提供する。例えば、送信部135は、端末装置10や情報提供装置50に各種情報を送信する。例えば、送信部135は、端末装置10や情報提供装置50に各種情報を配信する。例えば、送信部135は、端末装置10や情報提供装置50に各種情報を提供する。
送信部135は、抽出部134により抽出された類似移動経路に対応付けられた対応ユーザの情報に基づいて、一のユーザが利用する端末装置10へ一のユーザの移動に関連する推奨情報を送信する。送信部135は、類似移動経路に対応付けられた対応ユーザの訪問地点に基づいて、一のユーザの移動において訪れる地点を推奨する推奨情報を送信する。
送信部135は、類似移動経路のうち、類似移動経路に対応付けられた対応ユーザの属性情報が、一のユーザの属性情報に対応する移動経路に基づく推奨情報を送信する。送信部135は、類似移動経路のうち、類似移動経路に対応付けられたコンテキスト情報が、一のユーザの移動におけるコンテキスト情報に対応する移動経路に基づく推奨情報を送信する。
送信部135は、類似移動経路のうち、類似移動経路に対応付けられた時刻情報が、一のユーザの移動における時刻情報に対応する移動経路に基づく推奨情報を送信する。送信部135は、類似移動経路のうち、類似移動経路に対応付けられた気象情報が、一のユーザの移動における気象情報に対応する移動経路に基づく推奨情報を送信する。
例えば、送信部135は、クエリに対応するオブジェクトIDを検索結果として提供する。例えば、送信部135は、抽出部134により選択されたオブジェクトIDを情報提供装置50へ提供する。送信部135は、抽出部134により選択されたオブジェクトIDをクエリに対応するベクトルを示す情報として情報提供装置50に提供する。また、送信部135は、生成部132により生成されたモデルを外部の情報処理装置へ提供してもよい。
図1の例では、送信部135は、決定部133により決定された推奨地点に関する情報を提供する。例えば、送信部135は、スポットSP2が推奨地点であることを示す推奨地点情報をユーザU1が利用する端末装置10に送信する。例えば、送信部135は、スポットSP2がユーザU1の移動において最適な立ち寄りスポットであることを示す推奨地点情報をユーザU1が利用する端末装置10に提供する。
〔3.情報処理のフロー〕
次に、図11を用いて、実施形態に係る情報処理システム1による情報処理の手順について説明する。図11は、実施形態に係る情報処理の一例を示すフローチャートである。
図11に示すように、情報処理装置100は、一のユーザの移動経路に関する情報(移動データ)を取得する(ステップS101)。図1の例では、情報処理装置100は、端末装置10からユーザU1の移動に関する移動データMD10を取得する。
情報処理装置100は、移動経路に関するグラフ情報を取得する(ステップS102)。例えば、情報処理装置100は、グラフ情報記憶部125から移動経路に関するグラフ情報GR11を取得する。
そして、情報処理装置100は、モデルを用いて一のユーザの移動データからベクトルを生成する(ステップS103)。図1の例では、情報処理装置100は、モデル情報記憶部126に記憶されたモデルM1を用いて、移動データMD10からベクトルVD10を生成する。
そして、情報処理装置100は、グラフ情報を検索することにより、一のユーザの移動経路の類似移動経路を抽出する(ステップS104)。例えば、情報処理装置100は、生成したベクトルとインデックス情報を用いて起点ベクトルを決定する。図1の例では、情報処理装置100は、ベクトルVD10と、インデックス情報記憶部124に記憶されたインデックス情報IND11とを用いて、起点ベクトルをノードN2に決定する。そして、図1の例では、情報処理装置100は、ノードN2を起点として、グラフ情報GR11を探索することにより、ノードN2やノードN1やノードN512を類似移動経路として抽出する。
そして、情報処理装置100は、抽出した移動経路から、属性情報及びコンテキスト情報に基づいて、対応訪問地点を抽出する(ステップS105)。図1の例では、情報処理装置100は、ユーザの属性が20代男性であり、移動の時間帯が昼である移動経路に対応付けられた訪問地点を対応訪問地点として抽出する。
そして、情報処理装置100は、抽出した各対応訪問地点の数に基づいて、推奨訪問地点を決定する(ステップS106)。図1の例では、情報処理装置100は、抽出した対応訪問地点中のスポットのうち、最多の訪問地点であるスポットSP2を推奨地点に決定する。
そして、情報処理装置100は、推奨訪問地点の情報を送信する(ステップS107)。図1の例では、情報処理装置100は、スポットSP2の情報を推奨訪問地点としてユーザU1が利用する端末装置10に送信する。
〔4.生成処理のフロー〕
次に、図12を用いて、実施形態に係る情報処理システム1による生成処理の手順について説明する。図12は、実施形態に係る生成処理の一例を示すフローチャートである。
図12に示すように、情報処理装置100は、学習データを取得する(ステップS201)。例えば、情報処理装置100は、移動経路情報記憶部123から学習データを取得する。例えば、情報処理装置100は、移動経路情報記憶部123から移動データMD1、MD2等を学習データとして取得する。
その後、情報処理装置100は、学習データに基づきモデルを生成する(ステップS202)。例えば、情報処理装置100は、移動経路情報記憶部123から学習データを用いてモデルM1を生成する。例えば、情報処理装置100は、入力層に入力される情報(移動データ)と同様の情報(移動データ)を出力層から出力するようにモデルM1を生成する。例えば、情報処理装置100は、移動経路の移動データを入力とするオートエンコーダとしてのモデルM1を生成する。
〔5.検索例〕
ここで、上述したグラフ情報を用いた検索の一例を示す。なお、グラフ情報(グラフデータ)を用いた検索は下記に限らず、種々の手順により行われてもよい。この点について、図14を一例として説明する。図14は、グラフデータ(グラフ情報)を用いた検索処理の一例を示すフローチャートである。また、以下でいうオブジェクトは、ベクトルやノードと読み替えてもよい。なお、以下では、情報処理装置100が検索処理を行うものとして説明するが、検索処理は他の装置により行われてもよい。例えば、情報処理装置100は、検索クエリとして、一のユーザの移動の移動データから生成されたベクトルデータを用いる。例えば、情報処理装置100は、一のユーザの移動の移動データから生成されたベクトルデータとインデックス情報とに基づいて決定された起点ベクトルを起点としてグラフデータを検索する。図1の例では、情報処理装置100は、ユーザU1の移動のベクトルVD10とインデックス情報IND11とに基づいて決定された起点ベクトルであるノードN2を起点としてグラフ情報GR11を検索する。
ここでは、近傍オブジェクト集合N(G,y)は、ノードyに付与されているエッジにより関連付けられている近傍のオブジェクトの集合である。「G」は、所定のグラフデータ(例えば、グラフ情報GR11等)であってもよい。例えば、情報処理装置100は、k近傍検索処理を実行する。
例えば、情報処理装置100は、超球の半径rを∞(無限大)に設定し(ステップS300)、既存のオブジェクト集合から部分集合Sを抽出する(ステップS301)。例えば、情報処理装置100は、ルートノード(起点ベクトル)として選択されたオブジェクト(ノード)を部分集合Sとして抽出してもよい。図1の例では、情報処理装置100は、起点ベクトルであるノードN2等を部分集合Sとして抽出してもよい。また、例えば、超球とは、検索範囲を示す仮想的な球である。なお、ステップS301において抽出されたオブジェクト集合Sに含まれるオブジェクトは、同時に検索結果のオブジェクト集合Rの初期集合にも含められる。
次に、情報処理装置100は、オブジェクト集合Sに含まれるオブジェクトの中で、検索クエリオブジェクトをyとするとオブジェクトyとの距離が最も短いオブジェクトを抽出し、オブジェクトsとする(ステップS302)。図1の例では、情報処理装置100は、オブジェクト集合Sに含まれるオブジェクトの中で、検索クエリオブジェクトであるベクトルVD10との距離が最も短いオブジェクトを抽出し、オブジェクトsとする。例えば、情報処理装置100は、オブジェクト集合Sに含まれるオブジェクトの中で、ベクトルVD10との距離が最も短いノードN2を抽出し、オブジェクトsとする。例えば、情報処理装置100は、ルートノード(起点ベクトル)として選択されたオブジェクト(ノード)のみがオブジェクト集合Sの要素の場合には、結果的にルートノード(起点ベクトル)がオブジェクトsとして抽出される。次に、情報処理装置100は、オブジェクトsをオブジェクト集合Sから除外する(ステップS303)。
次に、情報処理装置100は、オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超えるか否かを判定する(ステップS304)。ここで、εは拡張要素であり、r(1+ε)は、探索範囲(この範囲内のノードのみを探索する。検索範囲よりも大きくすることで精度を高めることができる)の半径を示す値である。オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超える場合(ステップS304:Yes)、情報処理装置100は、オブジェクト集合Rをオブジェクトyの近傍オブジェクト集合として出力し(ステップS305)、処理を終了する。
オブジェクトsと検索クエリオブジェクトyとの距離d(s,y)がr(1+ε)を超えない場合(ステップS304:No)、情報処理装置100は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトの中からオブジェクト集合Cに含まれないオブジェクトを一つ選択し、選択したオブジェクトuを、オブジェクト集合Cに格納する(ステップS306)。オブジェクト集合Cは、重複検索を回避するために便宜上設けられるものであり、処理開始時には空集合に設定される。
次に、情報処理装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下であるか否かを判定する(ステップS307)。オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下である場合(ステップS307:Yes)、情報処理装置100は、オブジェクトuをオブジェクト集合Sに追加する(ステップS308)。
次に、情報処理装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下であるか否かを判定する(ステップS309)。オブジェクトuとオブジェクトyとの距離d(u,y)がrを超える場合(ステップS309:No)、情報処理装置100は、ステップS315の判定(処理)を行う。
オブジェクトuとオブジェクトyとの距離d(u,y)がr以下である場合(ステップS309:Yes)、情報処理装置100は、オブジェクトuをオブジェクト集合Rに追加する(ステップS310)。そして、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト数がksを超えるか否かを判定する(ステップS311)。所定数ksは、任意に定められる自然数である。例えば、ks=2やks=10等の種々の設定であってもよい。
オブジェクト集合Rに含まれるオブジェクト数がksを超える場合(ステップS311:Yes)、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトを、オブジェクト集合Rから除外する(ステップS312)。
次に、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト数がksと一致するか否かを判定する(ステップS313)。オブジェクト集合Rに含まれるオブジェクト数がksと一致する場合(ステップS313:Yes)、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトと、オブジェクトyとの距離を、新たなrに設定する(ステップS314)。
そして、情報処理装置100は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えたか否かを判定する(ステップS315)。オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えていない場合(ステップS315:No)、情報処理装置100は、ステップS306に戻って処理を繰り返す。
オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えた場合(ステップS315:Yes)、情報処理装置100は、オブジェクト集合Sが空集合であるか否かを判定する(ステップS316)。オブジェクト集合Sが空集合でない場合(ステップS316:No)、情報処理装置100は、ステップS302に戻って処理を繰り返す。また、オブジェクト集合Sが空集合である場合(ステップS316:Yes)、情報処理装置100は、オブジェクト集合Rを出力し、処理を終了する(ステップS317)。例えば、情報処理装置100は、オブジェクト集合Rに含まれるオブジェクト(ノード)を検索クエリ(入力オブジェクトy)に対応する検索結果として、検索を行った端末装置10等へ提供してもよい。図1の例では、情報処理装置100は、オブジェクト集合Rに含まれるノードN2やノードN1を検索クエリ(ユーザU1のルートRT10における移動のベクトルVD10)に対応する検索結果として、検索を行った端末装置10等へ提供してもよい。例えば、情報処理装置100は、ノードN2に対応する移動経路MP2や、ノードN1に対応する移動経路MP35をユーザU1の移動に類似する移動経路としてユーザU1が利用する端末装置10に提供する。
〔6.効果〕
上述してきたように、実施形態に係る情報処理装置100は、取得部131と、抽出部134と、送信部135を有する。取得部131は、複数の移動経路の各々に対応する複数のノードであって、各移動経路に対応する移動を行った対応ユーザが関連付けられた複数のノードが類似性に応じて連結されたグラフ情報と、一のユーザの移動に関する移動情報を取得する。抽出部134は、取得部131により取得されたグラフ情報の複数のノードのうち、所定の基準に基づいて決定されたグラフ情報の検索の起点となる起点ノードを起点として、グラフ情報を検索することにより、複数の移動経路のうち、一のユーザの移動に類似する移動の移動経路である類似移動経路を抽出する。送信部135は、抽出部134により抽出された類似移動経路に対応付けられた対応ユーザの情報に基づいて、一のユーザが利用する端末装置へ一のユーザの移動に関連する推奨情報を送信する。
このように、実施形態に係る情報処理装置100は、起点ノードを起点としてグラフ情報を検索し、複数の移動経路のうち、一のユーザの移動に類似する類似移動経路を抽出する。そして、情報処理装置100は、抽出した類似移動経路に対応付けられた対応ユーザの情報に基づいて、一のユーザが利用する端末装置へ一のユーザの移動に関連する推奨情報を送信することにより、ユーザの移動に応じて適切な推奨を行うことができる。
また、実施形態に係る情報処理装置100において、取得部131は、複数の移動経路の各々に対応する移動において対応ユーザが訪れた訪問地点が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報を取得する。送信部135は、類似移動経路に対応付けられた対応ユーザの訪問地点に基づいて、一のユーザの移動において訪れる地点を推奨する推奨情報を送信する。
このように、実施形態に係る情報処理装置100は、類似移動経路に対応付けられた対応ユーザの訪問地点に基づいて、一のユーザの移動において訪れる地点を推奨する推奨情報を送信することにより、ユーザの移動に応じて適切な推奨を行うことができる。
また、実施形態に係る情報処理装置100において、取得部131は、対応ユーザの属性情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの属性情報とを取得する。送信部135は、類似移動経路のうち、類似移動経路に対応付けられた対応ユーザの属性情報が、一のユーザの属性情報に対応する移動経路に基づく推奨情報を送信する。
このように、実施形態に係る情報処理装置100は、類似移動経路のうち、類似移動経路に対応付けられた対応ユーザの属性情報が、一のユーザの属性情報に対応する移動経路に基づく推奨情報を送信することにより、ユーザの移動に応じて適切な推奨を行うことができる。
また、実施形態に係る情報処理装置100において、取得部131は、各移動経路に対応する移動におけるコンテキスト情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動におけるコンテキスト情報とを取得する。送信部135は、類似移動経路のうち、類似移動経路に対応付けられたコンテキスト情報が、一のユーザの移動におけるコンテキスト情報に対応する移動経路に基づく推奨情報を送信する。
このように、実施形態に係る情報処理装置100は、類似移動経路のうち、類似移動経路に対応付けられたコンテキスト情報が、一のユーザの移動におけるコンテキスト情報に対応する移動経路に基づく推奨情報を送信することにより、ユーザの移動に応じて適切な推奨を行うことができる。
また、実施形態に係る情報処理装置100において、取得部131は、各移動経路に対応する移動における時刻情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動における時刻情報とを取得する。送信部135は、類似移動経路のうち、類似移動経路に対応付けられた時刻情報が、一のユーザの移動における時刻情報に対応する移動経路に基づく推奨情報を送信する。
このように、実施形態に係る情報処理装置100は、類似移動経路のうち、類似移動経路に対応付けられた時刻情報が、一のユーザの移動における時刻情報に対応する移動経路に基づく推奨情報を送信することにより、ユーザの移動に応じて適切な推奨を行うことができる。
また、実施形態に係る情報処理装置100において、取得部131は、各移動経路に対応する移動における気象情報が関連付けられた複数のノードが、複数の移動経路の類似性に応じて連結されたグラフ情報と、一のユーザの移動における気象情報とを取得する。送信部135は、類似移動経路のうち、類似移動経路に対応付けられた気象情報が、一のユーザの移動における気象情報に対応する移動経路に基づく推奨情報を送信する。
このように、実施形態に係る情報処理装置100は、類似移動経路のうち、類似移動経路に対応付けられた気象情報が、一のユーザの移動における気象情報に対応する移動経路に基づく推奨情報を送信することにより、ユーザの移動に応じて適切な推奨を行うことができる。
また、実施形態に係る情報処理装置100は、決定部133を有する。決定部133は、起点ノードの決定に用いるインデックス情報に基づいて、起点ノードを決定する。抽出部134は、決定部133により決定された起点ノードを起点として、類似移動経路を抽出する。
このように、実施形態に係る情報処理装置100は、起点ノードの決定に用いるインデックス情報に基づいて、起点ノードを決定することにより、適切な起点からグラフ情報を検索することができるため、ユーザの移動に応じて適切な推奨を行うことができる。
また、実施形態に係る情報処理装置100において、決定部133は、木構造型のインデックス情報に基づいて、起点ノードを決定する。
このように、実施形態に係る情報処理装置100は、木構造型のインデックス情報に基づいて、起点ノードを決定することにより、起点を高速に決定しつつ、適切な起点からグラフ情報を検索することができるため、ユーザの移動に応じて適切な推奨を行うことができる。
また、実施形態に係る情報処理装置100において、取得部131は、複数の移動経路の各々に対応する複数のベクトルの類似性に応じて、複数のノードが連結されたグラフ情報を取得する。
このように、実施形態に係る情報処理装置100は、複数の移動経路の各々に対応する複数のベクトルの類似性に応じて、複数のノードが連結されたグラフ情報を取得することにより、ユーザの移動に応じて適切な推奨を行うことができる。
また、実施形態に係る情報処理装置100において、取得部131は、複数の移動経路の各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得する。
このように、実施形態に係る情報処理装置100は、複数の移動経路の各々の特徴を示す複数のベクトルが類似性に応じて連結されたグラフ情報を取得することにより、ユーザの移動に応じて適切な推奨を行うことができる。
また、実施形態に係る情報処理装置100において、取得部131は、所定のモデルを用いて複数の移動経路の各々から抽出された特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。
このように、実施形態に係る情報処理装置100は、所定のモデルを用いて複数の移動経路の各々から抽出された特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得することにより、ユーザの移動に応じて適切な推奨を行うことができる。
また、実施形態に係る情報処理装置100において、取得部131は、複数の移動経路に関する情報を所定のモデルに入力することにより、抽出される複数の移動経路の各々の特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得する。
このように、実施形態に係る情報処理装置100は、複数の移動経路に関する情報を所定のモデルに入力することにより、抽出される複数の移動経路の各々の特徴量を要素とする複数のベクトルが、類似性に応じて連結されたグラフ情報を取得することにより、ユーザの移動に応じて適切な推奨を行うことができる。
〔7.ハードウェア構成〕
上述してきた実施形態に係る情報処理装置100は、例えば図15に示すような構成のコンピュータ1000によって実現される。図15は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムまたはデータ(例えば、モデルM1(モデルデータMDT1))を実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムまたはデータ(例えば、モデルM1(モデルデータMDT1))を記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
〔8.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上述してきた各実施形態に記載された各処理は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。