(58)【調査した分野】(Int.Cl.,DB名)
緯度及び経度の組である測位データの系列の履歴が記憶される測位データ系列履歴データベースから取得した前記測位データの系列の履歴から、緯度経度空間を分割して得られる分割領域であるグリッドを示すグリッドIDの系列を抽出すると共に、入力した前記測位データの系列から前記グリッドIDの系列を抽出するグリッドID抽出部と、
前記グリッドID抽出部により前記測位データの系列の履歴から抽出された前記グリッドIDの系列から、移動経路を予測するためのRNN(recurrent neural network)モデルを学習し、学習した前記RNNモデルのパラメータを目的地予測モデルパラメータデータベースに記憶させる目的地予測モデル学習部と、
前記目的地予測モデルパラメータデータベースから前記RNNモデルのパラメータを取得して前記RNNモデルを構築し、前記グリッドID抽出部により前記入力した前記測位データの系列から抽出された前記グリッドIDの系列から前記RNNモデルを用いたサンプリングシミュレーションによって各々の目的地候補への訪問可能性を算出し、算出した各々の目的地候補への訪問可能性に基づき目的地を予測する目的地予測部と、
を備えた目的地予測装置。
前記目的地予測部は、前記測位データ系列履歴データベースから取得した各々の前記測位データの系列の最終点の緯度及び経度を前記目的地候補として、前記グリッドID抽出部により前記入力した前記測位データの系列から抽出された前記グリッドIDの系列から前記RNNモデルを用いたサンプリングシミュレーションによって目的地候補への訪問可能性を算出し、算出した各々の目的地候補への訪問可能性に基づき目的地を予測する
請求項1記載の目的地予測装置。
前記目的地予測部は、前記測位データ系列履歴データベースから取得した各々の前記測位データの系列の最終点をクラスタリングした緯度及び経度の集合を前記目的地候補として、前記グリッドID抽出部により前記入力した前記測位データの系列から抽出された前記グリッドIDの系列から前記RNNモデルを用いたサンプリングシミュレーションによって目的地候補への訪問可能性を算出し、算出した各々の目的地候補への訪問可能性に基づき目的地を予測する
請求項2記載の目的地予測装置。
前記グリッドID抽出部は、前記測位データの系列の履歴から、緯度経度空間を一定間隔で分割して得られる矩形領域を前記グリッドとして、前記グリッドを示すグリッドIDの系列を抽出する
請求項1〜3の何れか1項記載の目的地予測装置。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態について図面を用いて説明する。なお、本実施形態では、ユーザがGPS、Wi−Fiチップ等が搭載された携帯端末を携帯して目的地に向かう場合について説明する。
【0017】
また、本実施形態では、測位データの系列の履歴に対して、ユーザの次の移動先を予測するRNN(recurrent neural network)モデル(下記の非特許文献3及び非特許文献4を参照)を学習した後、RNNモデルを用いたサンプリングシミュレーションによって目的地候補への訪問可能性を算出する。これにより、長期にわたる状態の依存性の考慮しつつデータスパースネス問題の解決することが可能となり、ユーザの未来の目的地をより高精度に予測できる。
【0018】
[非特許文献3]Sepp Hochreiter and Jurgen Schmidhuber, "Long short-term memory", Neural Computation 9 (8): pp.1735-1780 (1997).
【0019】
[非特許文献4]Felix A. Gers, Nicol N. Schraudolph, and Jurgen Schmidhuber, "Learning precise timing with LSTM recurrent networks", Journal of Machine Learning Research, vol. 3, pp.115-143 (2002).
【0020】
図1に示すように、本実施形態に係る目的地予測装置10は、測位データ系列履歴データベース12、グリッドID抽出部14、目的地予測モデル学習部16、目的地予測モデルパラメータデータベース18、目的地候補データベース20、及び、目的地予測部22を備える。
【0021】
測位データ系列履歴データベース12は、一例として
図2に示すように、ユーザが上記携帯端末を携帯して移動した際に、当該携帯端末により測位された緯度及び経度の組である測位データの識別IDが整数値で表された測位番号、測位データの一部として測位された緯度、測位データの一部として測位された経度、及び、測位された時刻がそれぞれ対応付けられた測位データ系列履歴情報が記憶される。測位データ系列履歴情報において、ユーザの一連の移動において複数の異なる時刻に各々測位された複数の測位データにより、測位データの系列が構成される。
【0022】
グリッドID抽出部14は、緯度経度空間を複数に分割し、分割した分割領域である各々のグリッドに識別IDであるグリッドIDを整数値で割り当てる。また、グリッドID抽出部14は、測位データ系列履歴データベース12に記憶されている測位データの系列に基づいて、各々の測位データの緯度及び経度の組に対してグリッドIDを対応付けることにより、グリッドIDの系列を抽出する。
【0023】
目的地予測モデル学習部16は、グリッドID抽出部14により抽出されたグリッドIDの系列から、次の移動先となるグリッドを予測するためのRNNモデルを学習する。また、目的地予測モデル学習部16は、学習したRNNモデルのパラメータを、目的地予測モデルパラメータデータベース18に記憶させる。なお、RNNモデル、及びRNNモデルの学習方法については、後述する。
【0024】
目的地予測モデルパラメータデータベース18は、一例として
図3に示すように、RNNモデルのパラメータのパラメータ名、及び、RNNモデルのパラメータのパラメータ値がそれぞれ対応付けられた目的地予測モデルパラメータ情報が記憶される。
【0025】
目的地候補データベース20は、一例として
図4に示すように、目的地候補の識別IDが整数値で表された目的地候補番号、目的地候補の緯度、及び、目的地候補の経度がそれぞれ対応付けられた目的地候補情報が記憶される。
【0026】
本実施形態では、測位データの複数の系列から、各々の測位データの系列の最終点の緯度及び経度の組をそれぞれ目的地候補として抽出し、抽出した緯度及び経度の組を目的地候補の緯度及び経度とすることにより、目的地候補情報を構築する。
【0027】
しかしながら、目的地候補情報を構築する方法はこれに限らず、測位データの各々の系列の最終点をK−meansクラスタリング、Mean−shiftクラスタリング等によりクラスタリングし、クラスタリングされた部分集合を目的地候補としても良い。この場合には、部分集合に含まれる最終点の緯度及び経度の平均値、中央値等をそれぞれ目的地候補の緯度及び経度とすることにより、目的地候補情報を構築すると良い。
【0028】
目的地予測部22は、目的地の予測を行う際の予測対象の測位データ、すなわちユーザの現在の位置までの移動経路の少なくとも一部を示す測位データとして入力された入力情報に基づき、学習されたRNNモデルのパラメータを用いることにより構築されたRNNモデルと、目的地候補情報とを用いて、ユーザの目的地を予測する。
【0029】
なお、上述した入力情報は、目的地の予測を行う際に予測対象とする測位データの系列であり、一例として
図5に示すように、緯度及び経度の組が測位された測位データの識別IDが整数値で表された測位番号、測位データの一部である緯度、測位データの一部である経度、及び、測位された時刻がそれぞれ対応付けられた情報である。そして、目的地予測部22は、入力情報に含まれる測位データの系列から、グリッドID抽出部14により抽出されたグリッドIDの系列に基づき、上述したように、RNNモデルのパラメータを用いることにより構築されたRNNモデルと、目的地候補情報とを用いて、ユーザの目的地を予測する。
【0030】
なお、本実施形態に係る目的地予測装置10は、例えば、CPU(Central Processing Unit)、RAM(Random Access Memory)、各種プログラムを記憶するROM(Read Only Memory)を備えたコンピュータ装置で構成される。また、目的地予測装置10を構成するコンピュータは、ハードディスクドライブ、不揮発性メモリ等の記憶部を備えていても良い。本実施形態では、CPUがROM、ハードディスク等の記憶部に記憶されているプログラムを読み出して実行することにより、上記のハードウェア資源とプログラムとが協働し、上述した機能が実現される。
【0031】
また、本実施形態では、測位データ系列履歴データベース12、目的地予測モデルパラメータデータベース18、及び、目的地候補データベース20は、目的地予測装置10の内部に設けられているが、これに限らず、目的地予測装置10の外部に設けられていても構わない。
【0032】
以上のような機能を備えた目的地予測装置10によって実行される処理は、RNNモデルのパラメータを記憶するための学習フェーズと、入力した入力情報に基づいて目的地を予測するための予測フェーズと、に分けられる。
【0033】
まず、本実施形態に係る目的地予測装置10による学習フェーズにおける処理の流れの概要を、
図6に示すフローチャートを用いて説明する。
【0034】
ステップS101では、グリッドID抽出部14が、測位データ系列履歴データベース12から測位データ系列履歴情報を取得し、取得した測位データ系列履歴情報に含まれる測位データの系列に基づいて、グリッドIDの系列を抽出するデータ入力時の抽出処理を行う。なお、データ入力時の抽出処理については、
図9に示すフローチャートを用いて後述する。
【0035】
ステップS103では、目的地予測モデル学習部16が、抽出されたグリッドIDの系列から、RNNモデルを学習する学習処理を行う。なお、学習処理については、
図10に示すフローチャートを用いて後述する。
【0036】
ステップS105では、目的地予測モデル学習部16が、学習したRNNモデルのパラメータを目的地予測モデルパラメータデータベース18に記憶させる。
【0037】
次に、本実施形態に係る目的地予測装置10による予測フェーズにおける処理の流れの概要を、
図7に示すフローチャートを用いて説明する。
【0038】
ステップS201では、グリッドID抽出部14が、入力情報を入力し、入力した入力情報に含まれる測位データの系列に基づいて、グリッドIDの系列を抽出するデータ入力時の抽出処理を行う。なお、データ入力時の抽出処理については、
図9に示すフローチャートを用いて後述する。
【0039】
ステップS203では、目的地予測部22が、目的地予測モデルパラメータデータベース18からRNNモデルのパラメータを取得すると共に、目的地候補データベース20から目的地候補情報を取得する。また、目的地予測部22が、抽出されたグリッドIDの系列から、取得したRNNモデルのパラメータを用いて構築されたRNNモデルと、取得した目的地候補情報とを用いて、ユーザの目的地を予測する予測処理を行う。なお、予測処理については、
図12に示すフローチャートを用いて後述する。
【0040】
ここで、本実施形態におけるグリッドID抽出部14の処理について詳細に説明する。なお、グリッドID抽出部14は、目的地の予測の開始時に行う初期の抽出処理と、測位データの系列を入力した際に行うデータ入力時の抽出処理と、を行う。
【0041】
まず、グリッドID抽出部14の初期の抽出処理の流れを、
図8に示すフローチャートを用いて説明する。なお、初期の抽出処理は、データ入力時の抽出処理に先立って行われる処理である。
【0042】
ステップS301では、グリッドID抽出部14が、緯度経度空間を一定間隔の格子状に分割することにより、各々矩形状の領域である複数のグリッドを作成する。
【0043】
なお、緯度経度空間を分割する方法はこれに限らず、緯度及び経度の各々の組が何れかの分割領域に含まれるように分割されれば良く、例えば下記の参考文献5に開示された公知技術であるジオハッシュを用いて分割しても良い。また、本実施形態では、緯度経度空間を一定間隔の格子状に分割することにより各々形状が等しい複数のグリッドを作成するが、グリッドの形状はこれに限らず、サイズ又は形状が異なる複数のグリッドを作成しても良い。
【0044】
[非特許文献5] Kisung Lee, Raghu K. Ganti, Mudhakar Srivatsa, Ling Liu, "Efficient spatial query processing for big data", In Proc. of SIGSPATIAL’14, pp.469-472 (2014).
【0045】
ステップS303では、グリッドID抽出部14が、分割で得られた各々のグリッドに、グリッドIDとして整数値を割り当てる。本実施形態では、グリッドID抽出部14は、0から順に値を1ずつ増やしつつ各々のグリッドに整数値を割り当てることにより、複数のグリッドの各々でグリッドIDが重複することを回避する。
【0046】
次に、グリッドID抽出部14のデータ入力時の抽出処理の流れを、
図9に示すフローチャートを用いて説明する。
【0047】
ステップS401では、グリッドID抽出部14が、入力された入力情報に含まれる測位データの系列の各々の測位データについて、対応するグリッドを決定する。
【0048】
ステップS403では、グリッドID抽出部14が、対応するグリッドに割り当てられた整数値の系列をグリッドIDの系列として目的地予測部22に出力する。
【0049】
次に、本実施形態における目的地予測モデル学習部16が実行する学習処理について、
図10に示すフローチャートを用いて詳細に説明する。
【0050】
以下、数式内においてはベクトルをボールド表示で表し、本文中においてはベクトルの記号に「^」を付して表す。
【0051】
ステップS501では、グリッドID抽出部14が、測位データ系列履歴データベース12から測位データ系列履歴情報を取得し、取得した測位データ系列履歴情報に含まれる測位データの系列に基づいて、上述した学習時の抽出処理により得られたグリッドIDの系列を抽出する。また、グリッドID抽出部14が、全てのグリッド数の次元からなるone−hot表現の特徴ベクトルの系列を算出する。なお、ここでいうone−hot表現の特徴ベクトルは、対応するグリッドIDの要素が1となり、それ以外の要素が0となるバイナリベクトルである。
【0052】
ステップS503では、目的地予測モデル学習部16が、算出した特徴ベクトルの系列を教師データとして、任意の測位タイミングの特徴ベクトルに対して次の測位タイミングの特徴ベクトルを予測するRNNモデルを学習する。なお、RNNの手法としては、上述した非特許文献3に開示された公知技術であるLSTM(long short term memory)を備えたRNN、上述した非特許文献4に開示された公知技術である忘却ゲート付のLSTMを備えたRNN等、公知技術を利用することが可能である。
【0053】
図11に示すように、RNNモデルを用いた次の測位タイミングの特徴ベクトルの予測では、まず、パラメータに基づいて現在の測位タイミングにおけるone−hot表現の特徴ベクトルを求め(S30)、求めた特徴ベクトルを低次元に埋め込む(S32)。具体的には、モデルパラメータの一つであるw
embed^と、one−hot表現の特徴ベクトルとの積を取ることで、別のベクトル空間に埋め込まれた特徴ベクトルを得る。
【0054】
次に、得られた特徴ベクトルと、前の測位タイミングにおけるRNNモデルを用いて得られた潜在的な状態ベクトル(S34)とを入力し、上述した非特許文献3に開示されたLSTM等を用いて現在の測位タイミングにおける状態ベクトルを算出する(S36)。
【0055】
最後に、算出した状態ベクトルから、ソフトマックス関数を用いて、次の測位タイミングにおける特徴ベクトル、すなわち各々のグリッドへの移動確率を予測する(S38)。
【0056】
なお、RNNの学習には、上述した非特許文献3に開示されているTruncated BPTT(Truncated back propagation through time)等の手法を利用することが可能である。
【0057】
ステップS505では、学習したRNNモデルのパラメータを、目的地予測モデルパラメータデータベース18に記憶させる。なお、
図3に示した目的地予測モデルパラメータ情報は、上述したLSTMを備えたRNNモデルのパラメータの一例である。すなわち、w
embed^は、one−hot表現の入力特徴ベクトルを低次元の別のベクトル空間に埋め込むためのパラメータである。また、w
in^は、LSTMのinput gateにおけるパラメータであり、w
out^は、output gateにおけるパラメータであり、w
c^は、memory cellにおけるパラメータである。また、w
softmax^は、ソフトマックス関数を用いてRNNの状態ベクトルから次の測位タイミングにおける特徴ベクトルを算出するためのパラメータである。
【0058】
次に、本実施形態における目的地予測部22が実行する予測処理について、
図12に示すフローチャートを用いて詳細に説明する。
【0059】
本来、RNNモデルは、現在の測位タイミングから一つ先の測位タイミングへ遷移する際の遷移先の状態を推定するモデルである。しかし、目的地を推定する場合においては、現在地から目的地に一度のステップでたどり着くとは限らない。そのため、一般的なRNNモデルの利用方法では、目的地の予測を実現することができない。
【0060】
そこで、本実施形態では、目的地予測部22が、現在の測位タイミングまでのグリッドIDの系列を入力して、RNNモデルを用いて複数ステップの遷移をランダムサンプリングによってシミュレーションし、各々の目的地候補へ到達する回数をカウントする。カウントされた値は、入力に対する次の各々の目的地候補への訪問可能性とみなすことができる。そのため、このカウントされた値に基づいて目的地を決定する。
【0061】
以下、目的地を決定する具体的な方法を詳細に説明する。
【0062】
ステップS601では、目的地予測部22が、各々の目的地候補への訪問可能性を表す訪問確率ベクトルP^を零ベクトルで初期化する。
【0063】
ステップS603では、目的地予測部22が、初期の状態ベクトルh^を零ベクトルで初期化する。
【0064】
ステップS605では、目的地予測部22が、目的地予測モデルパラメータデータベース18からRNNモデルのパラメータを取得し、取得したRNNモデルのパラメータを用いてRNNモデルを構築する。この際、目的地予測部22は、上述した通り、現在の測位タイミングのグリッドIDから生成されたone−hot表現の特徴ベクトルと、直前の測位タイミングにおけるRNNモデルから得られた状態ベクトルをRNNモデルに入力することにより、次の測位タイミングにおける予測結果の特徴ベクトル及び状態ベクトルを出力する。
【0065】
ここで、予測結果の特徴ベクトルは、各々のグリッドへの遷移確率とみなすことができる。以下、処理対象とするグリッドgのグリッドIDから生成されたone−hot表現の特徴ベクトル、及び、処理対処とするグリッドgの1つ前の測位タイミングにおいてRNNモデルから得られた状態ベクトルh^とし、RNNモデルを用いて得られる関数RNN(グリッドg,状態ベクトルh^)と表記する。
【0066】
ステップS607では、目的地予測部22が、シミュレーション試行回数である変数iが1からNになるまでの間、ループ内の処理を繰り返すループAを開始する。なお、例えば、N=1000である。
【0067】
ステップS609では、目的地予測部22が、グリッドID抽出部14により、入力情報に含まれる測位データの系列に対して上述した予測時の抽出処理を実行することによって得られたグリッドIDの系列をGとすると、グリッドIDの系列Gにおける各々の要素のグリッドIDのグリッドg毎にループ内の処理を繰り返すループBを開始する。
【0068】
ステップS611では、目的地予測部22が、下記(1)式に基づいて、RNNモデルを用いてグリッドg及び1つ前の測位タイミングの状態ベクトルh^から、各々のグリッドへの遷移確率p^を算出し、さらに状態ベクトルh^を更新する。
【0070】
ステップS613では、目的地予測部22が、グリッドIDの系列G内の全てのグリッドgについてループ内の処理を実行したか否かを判定し、否定判定となった場合はループ内の処理を繰り返し、肯定判定となった場合はループBを終了してステップS615に移行する。
【0071】
ステップS615では、目的地予測部22が、サンプリングの回数である変数jが1からMになるまでの間、ループ内の処理を繰り返すループCを開始する。なお、Mはサンプリングの上限回数であり、例えば、M=100である。
【0072】
ステップS617では、目的地予測部22が、次のステップに移動した場合のグリッドとなるグリッドgを、各々のグリッドへの遷移確率p^に従ってランダムサンプリングする。
【0073】
ステップS619では、目的地予測部22が、グリッドgに最も近い目的地候補dとの距離が閾値εより近いか否かを判定する。本実施形態では、1ステップでユーザが移動する距離の平均値を閾値εとし、例えば、ε=100m(メートル)である。ステップS619で肯定判定となった場合はステップS625に移行し、否定判定となった場合はステップS621に移行する。
【0074】
ステップS621では、目的地予測部22が、上記(1)式に基づいて、RNNモデルを用いて、グリッドg及び1ステップ前の状態ベクトルh^から、各々のグリッドへの遷移確率p^を算出し、更に、状態ベクトルh^を更新する。
【0075】
ステップS623では、目的地予測部22が、変数jがMになったか否かを判定し、否定判定となった場合はループ内の処理を繰り返し、肯定判定となった場合はループCを終了してステップS625に移行する。
【0076】
ステップS625では、目的地予測部22が、下記(2)式に基づいて、目的地候補dに対応する訪問確率ベクトルP^の要素Pdに1を加算する。
【0078】
ステップS627では、目的地予測部22が、変数iがNになったか否かを判定し、否定判定となった場合はループA内の処理を繰り返し、肯定判定となった場合はループAを終了してステップS629に移行する。
【0079】
ステップS629では、目的地予測部22が、各々の目的地候補への訪問可能性を表す訪問確率ベクトルP^から、最も訪問する可能性の高い目的地候補のグリッドIDを算出する。
【0080】
ステップS631では、目的地予測部22が、目的地候補データベース20から取得した目的地候補情報から、算出したグリッドIDと一致する目的地候補の緯度及び経度を取得して、表示手段に表示したり記憶手段に記憶したりすることにより出力する。
【0081】
以上のように、本実施形態に係る目的地予測装置10は、測位データ系列履歴情報から緯度及び経度の組である測位データの系列の履歴を受け取り、受け取った測位データの系列の履歴に含まれる測位データの系列に基づいて、グリッドIDの系列を抽出する。また、目的地予測装置10は、グリッドIDの系列からRNNモデルを学習し、学習したRNNモデルのパラメータを目的地予測モデルパラメータ情報として記憶する。
【0082】
目的地予測装置10は、入力情報として測位データの系列を受け取り、受け取った測位データの系列に基づいてグリッドIDの系列を抽出する。また、目的地予測装置10は、目的地予測モデルのパラメータを取得してRNNモデルを構築し、抽出したグリッドIDの系列からRNNモデルを用いたサンプリングシミュレーションによって各々の目的地候補への訪問可能性を算出し、訪問可能性に基づいて目的地の予測結果として目的地の緯度及び経度を出力する。
【0083】
このように、ユーザの測位データの系列の履歴を用いてRNNモデルを学習し、新たに取得したユーザの測位データの系列からRNNモデルを用いたサンプリングシミュレーションを行う。この方法により、長期にわたる状態の依存性を考慮することができる。さらに、同様の方法により、新たなユーザの測位データの系列に対して、一部のみ包含する学習データを基に目的地の予測を行えるため、従来のマルコフモデルを三次以上に拡張する場合よりも、少ない移動パターンの学習データを用意すればよく、これにより、データスパースネスの問題を解決できる。以上の効果を踏まえて、目的地候補への訪問可能性を算出するので、ユーザの目的地を精度良く予測することが可能になる。
【0084】
なお、本実施形態では、
図1に示す機能の構成要素の動作をプログラムとして構築し、目的地予測装置10として利用されるコンピュータにインストールして実行させるが、これに限らず、ネットワークを介して流通させても良い。
【0085】
また、構築されたプログラムをハードディスクやフレキシブルディスク、CD−ROM等の可搬記憶媒体に格納し、コンピュータにインストールしたり、配布したりしても良い。