以下、添付の図面を参照しながら本発明に係る様々な実施の形態を説明する。
<第1実施形態>
1.無線通信システムの構成
図1は、本発明の第1実施形態に係る無線通信システム1のブロック図である。無線通信システム1は、滞在推定装置10とネットワークNWとを備える。滞在推定装置10は、携帯電話やスマートフォン、タブレット端末、PCなどの移動通信端末であり、ユーザに対して、ユーザが自発的に操作せずとも情報の提供及び表示を行う。ネットワークNWは、基地局20と、交換局30と、ゲートウェイ40とをノードとして備える。滞在推定装置10は、基地局20と無線で接続する。基地局20は、交換局30およびゲートウェイ40と有線で接続される。なお、ネットワークNW内のノード同士が無線で接続される構成も採用可能である。ネットワークNWは、ゲートウェイ40を接続点として、外部ネットワークであるインターネットINに接続される。図1をはじめ、本実施形態では便宜的に1つの滞在推定装置10、1つの基地局20、1つの交換局30、1つのゲートウェイ40のみが例示されるが、無線通信システム1が、複数の滞在推装置10、複数の基地局20、複数の交換局30、および複数のゲートウェイ40を含み得ることは当然に理解される。
無線通信システム1内の各要素は、所定のアクセス技術(Access Technology)、例えば3GPP規格(Third Generation Partnership Project)に規定されるLTE/SAE(Long Term Evolution / System Architecture Evolution)に従って通信を実行する。本実施形態では、無線通信システム1がLTE/SAEに従って動作する形態を例示して説明するが、本発明の技術的範囲を限定する趣旨ではない。本発明は、必要な設計上の変更を施した上で、他のアクセス技術にも適用可能である。なお、ユーザ装置10と基地局20との間の無線通信の方式は任意である。例えば、下りリンクではOFDMA(Orthogonal Frequency Division Multiple Access)が採用され得、上りリンクではSC−FDMA(Single-Carrier Frequency Division Multiple Access)が採用され得る。
2.滞在推定装置の構成
図2は、第1実施形態の滞在推定装置10の構成を示すブロック図である。滞在推定装置10は、無線通信部110と、入出力部120と、記憶部130と、位置情報取得部140と、滞在点抽出部150と、移動予測モデル作成部160と、滞在点抽出パラメータ更新部170と、滞在点抽出パラメータ保存部180とを備える。
無線通信部110は、基地局20と無線通信を実行するための要素であり、送受信アンテナと、基地局20から電波を受信して電気信号に変換する変換回路と、音声信号等の電気信号を電波に変換して送信する送信回路とを含む。
入出力部120は、タッチパネル、キーパッド、キーボード等からのデータの入力及びディスプレイやスピーカなどへのデータの出力を行うモジュールである。記憶部130は、フラッシュROM、HDD(Hard Disc Drive)、SSD(Solid State Drive)などの記憶装置である。記憶部130には、後述する各種のテーブルが記憶される。
位置情報取得部140は、GPS、基地局20からの情報、あるいは無線LANなどを用いて、滞在推定装置10を使用するユーザの現在の位置情報を取得するモジュールである。位置情報取得部140によって取得された位置情報は、位置情報テーブルTBL1に記憶される。位置情報取得部140による位置情報の取得頻度は、滞在点抽出部150から指示により、低頻度と高頻度のいずれかに切り換え可能となっており、初期状態においては低頻度に設定されている。
図3に位置情報テーブルTBL1の一例を示す。図3に示す例では、位置情報テーブルTBL1には、位置情報を識別する識別情報である位置情報ID、位置情報取得部140によって取得された位置情報である緯度及び経度、並びに当該位置情報が取得された時刻が記憶される。
滞在点抽出部150は、位置情報テーブルTBL1に記憶された位置情報に基づいて、ユーザが滞在した滞在点を抽出するモジュールである。滞在点抽出部150は、滞在点抽出パラメータ保存部180から滞在点を抽出するための滞在時間の閾値及び距離の閾値を示すパラメータを読み出し、当該パラメータを用いて示される条件に合致する複数の位置情報から、滞在点を抽出する。滞在点の具体的な抽出方法については後述する。また、滞在点抽出部150は、滞在点抽出パラメータ保存部180から、位置情報取得部140による位置情報の取得頻度を読み出し、当該取得頻度を位置情報取得部140に指示する。
移動予測モデル作成部160は、滞在点間の遷移確率を算出して、滞在点の移動予測モデルを作成するモジュールである。本実施形態では、一例として、移動予測モデルの作成にはマルコフモデルを用いるが、ダイナミックベイジアンネットワークを用いてもよい。なお、移動予測モデルの作成の具体例については後述する。
滞在点抽出パラメータ更新部170は、現在の位置情報と、滞在点の移動予測モデルとに基づいて、位置情報取得部140による位置情報の取得頻度を更新するモジュールである。なお、位置情報の取得頻度を更新は、一例として、閾値以上の確率で移動すると予測された滞在点と、現在の位置情報が示す地点との距離に応じて行う。
滞在点抽出パラメータ保存部180は、滞在点抽出部150が滞在点を抽出するために用いる滞在時間の閾値及び距離の閾値を示すパラメータと、位置情報取得部140の位置情報の取得頻度を保存するモジュールである。これらのパラメータのうち、位置情報の取得頻度は、滞在点抽出パラメータ170によって更新される。
位置情報取得部140、滞在点抽出部150、移動予測モデル作成部160、滞在点抽出パラメータ更新部170、及び滞在点抽出パラメータ保存部180は、滞在推定装置10の図示しないCPU(central processing unit)がコンピュータプログラムを実行し、そのコンピュータプログラムに従って機能することによって実現される機能ブロックである。
3.滞在推定装置の動作
3(1).滞在点抽出処理
図4は、位置情報取得部140によって取得された位置情報が示す各地点(P1からP11まで)と、滞在点(S1、S2)との関係を示す図である。図4に示す各地点の符号P1からP11は、位置情報テーブルTBL1に記憶される位置情報IDに対応している。滞在点抽出部150によって抽出された滞在点は、図5に示す滞在点テーブルTBL2に記憶される。図5に示すように、滞在点テーブルTBL2には、滞在点を識別する滞在点IDと、当該滞在点の緯度及び経度が記憶される。
滞在点抽出部150は、滞在点抽出パラメータ保存部180から、滞在時間の閾値Trと、距離の閾値Drとを読み出す。次に、滞在点抽出部150は、現在の位置情報が示す地点、例えば図4に示す地点P2が、滞在点テーブルTBL2に記憶された滞在点S1を中心として、距離の閾値Drを直径とする円の領域内に属する場合には、当該滞在点S1を暫定的な滞在点とする。そして、滞在点抽出部150は、次の位置情報以降の位置情報が示す地点、例えば図4に示す地点P3、P4等が、滞在点S1を中心として、距離の閾値Drを直径とする円の領域内に属し、かつ、地点P2の位置情報が取得された時刻から地点P3、P4の位置情報が取得された時刻までの時間間隔が滞在時間の閾値Trを超える場合に、滞在点S1を現在の滞在点として抽出する。
しかし、現在の位置情報が示す地点が、滞在点テーブルTBL2に記憶された滞在点を中心として、距離の閾値Drを直径とする円の領域内に属さない場合には、滞在点抽出部150は、以下のようにして新たな滞在点を抽出して滞在点テーブルTBL2に記憶させる。まず、滞在点抽出部150は、滞在点抽出パラメータ保存部180から、滞在時間の閾値Trと、距離の閾値Drとを読み出す。滞在点抽出部150は、位置情報テーブルTBL1に記憶された位置情報が示す地点、例えば図4に示す地点P6に着目し、当該地点P6の位置情報が取得された時刻と、地点P7を示す次の位置情報が取得された時刻との時間間隔を算出する。その結果、滞在点抽出部150は、当該時間間隔が閾値Trに満たない場合には、地点P6を示す位置情報を滞在点の抽出処理の対象とはせずに、次の地点P7を示す位置情報に着目する。滞在点抽出部150は、地点P7を示す位置情報が取得された時刻と、次の地点P8を示す位置情報が取得された時刻との時間間隔を算出する。滞在点抽出部150は、当該時間間隔が閾値Tr以上である場合には、地点P7から地点P8までの距離を算出する。滞在点抽出部150は、当該距離が距離の閾値Dr以内である場合には、地点P7と地点P8とを滞在点の抽出処理の対象とする。
滞在点抽出部150は、これ以降の地点P9、P10についても地点P7からの距離を算出し、当該距離が距離の閾値Dr以内である場合には、地点P9、P10を滞在点の抽出処理の対象とする。しかし、滞在点抽出部150は、図4に示す地点P11のように、地点P7からの距離が距離の閾値Drを超える場合には、それまでに抽出処理の対象として選んだ地点P7、P8、P9、P10に基づいて、滞在点の抽出処理を行う。滞在点抽出部150は、地点P7、P8、P9、P10の緯度の平均と、経度の平均とを算出し、算出した緯度と経度によって示される地点を新たな滞在点S2として滞在点テーブルTBL2に記憶させる。
以上のように滞在点抽出部150によって抽出された滞在点は、滞在点テーブルTBL2に記憶されるだけでなく、図6に示す滞在点移動履歴テーブルTBL3に記憶される。滞在点移動履歴テーブルTBL3には、滞在点が移動順序に従って記憶される。例えば、図4に示すように、滞在点S1から滞在点S2に移動した場合には、滞在点移動履歴テーブルTBL3には、滞在点S1、滞在点S2という順序で記憶される。
また、滞在点抽出部150は、該当する滞在点が存在しないと判断した場合、つまり、現在の位置情報が示す地点がいずれの滞在点にも属していないと判断した場合には、その旨を現在の滞在点情報として記憶部130に記憶させる。
3(2).移動予測モデル作成処理
本実施形態においては、滞在点抽出部150によって現在の滞在点が抽出された場合には、移動予測モデル作成部160は、マルコフモデルを用いて滞在点の移動予測モデルを作成する。移動予測モデル作成部160は、現在の滞在点から、滞在点テーブルTBL2に記憶された他の全ての滞在点に遷移する確率を算出する。
例えば、現在の滞在点が滞在点S1の場合に、滞在点S1から滞在点S2に遷移する確率を算出するには、滞在点抽出部150は、まず、滞在点移動履歴テーブルTBL3に記憶された全移動履歴の中で、滞在点S1を訪れたことを示す移動履歴数n(S1)を算出する。次に、滞在点抽出部150は、滞在点移動履歴テーブルTBL3に記憶された全移動履歴の中で、滞在点S1の後に滞在点S2を訪れたことを示す移動履歴数n(S1,S2)を算出する。そして、滞在点抽出部150は、移動履歴数n(S1,S2)を移動履歴数n(S1)で除して滞在点S1から滞在点S2に遷移する遷移確率を算出する。
滞在点抽出部150は、以上のような遷移確率の算出を、全ての滞在点について行い、算出した遷移確率の値が所定の閾値以上となる滞在点の組み合わせを選び、当該組み合わせに含まれる滞在点を移動予想滞在点として抽出する。抽出された移動予想滞在点は、記憶部130に記憶される。
なお、初めて訪れた場所においては、過去の滞在点が存在しないため、移動予想滞在点を抽出できない。この場合には、該当データなしとして記憶部130に記憶させる。
3(3).滞在点抽出パラメータ更新処理
本実施形態では、現在の位置情報が示す地点と、移動予想滞在点との距離が所定の閾値以内になった場合には、滞在点抽出パラメータ更新部170により、位置情報取得部140による位置情報の取得頻度を、低頻度から高頻度に更新する滞在点抽出パラメータ更新処理を行う。滞在点抽出パラメータ更新部170は、位置情報テーブルTBL1から現在の位置情報を読み取ると共に、記憶部13に記憶された移動予想滞在点の位置情報とを読み取る。滞在点抽出パラメータ更新部170は、現在の位置情報が示す地点と、それぞれの移動予想滞在点との距離を算出し、算出した距離が所定の閾値以内になった場合には、位置情報取得部140による位置情報の取得頻度を、低頻度から高頻度に更新する。具体的には、滞在点抽出パラメータ更新部170は、滞在点抽出パラメータ保存部180に保存されている位置情報取得部140による位置情報の取得頻度を低頻度から高頻度に更新する。滞在点抽出部150は、滞在点抽出パラメータ保存部180に保存されたパラメータを読み取り、上述した滞在点の抽出処理を行う。この際、滞在点抽出部150は、位置情報取得部140による位置情報の取得頻度が更新された場合には、当該取得頻度を位置情報取得部140に指示する。つまり、本実施形態では、ユーザの位置と移動予測滞在点との距離が所定の閾値以内になった場合に、位置情報の取得頻度が高頻度に更新されるので、ユーザの位置が移動予測滞在点に近づいた際には、高頻度での位置情報の取得が行われる。その結果、滞在点抽出部150は、高頻度で取得された十分な数の位置情報に基づいて上述した滞在点の抽出処理を行うことになるので、高速に滞在点を抽出することができる。
一方、滞在点抽出パラメータ更新部170は、現在の位置情報が示す地点と、移動予想滞在点との距離が所定の閾値を超える場合には、上記位置情報の取得頻度の低頻度から高頻度への更新は行わない。また、滞在点抽出パラメータ更新部170は、上記位置情報の取得頻度を高頻度に更新した後に、現在の位置情報が示す地点が、滞在点から移動したと判断した場合、つまり、現在の位置情報が示す地点がいずれの滞在点からも所定の閾値を超える距離の位置にあると判断した場合には、上記位置情報の取得頻度を高頻度から低頻度へ更新する。なお、現在の位置情報が示す地点がいずれかの滞在点に属しているかの情報は、上述したように現在の滞在点情報として記憶部130に記憶されている。
以上のように、本実施形態によれば、現在の位置情報が示す地点が、移動予想滞在点から離れている場合、あるいは、現在の位置情報が示す地点がいずれかの滞在点から移動した場合には、位置情報取得部140による位置情報の取得は、低頻度で行われるので、消費電力を増大させることがない。
3(4).滞在推定装置の全体的動作
図7は本発明の第1実施形態にかかる滞在推定装置10の動作を示すシーケンス図である。図7に基づいて、滞在推定装置10の全体的動作について説明する。位置情報取得部140は、所定の頻度で位置情報を取得し(ステップS100)、記憶部130に対して、取得した位置情報の書込み要求を送る(ステップS101)。記憶部130は、この書込み要求に応じて、前記位置情報を位置情報テーブルTBL1に記憶させる(ステップS102)。図7においては、便宜上、位置情報取得部140による位置情報の取得処理(ステップS100)と記憶部130への書込み処理(ステップS101)を一度しか示していないが、これらの処理は、他の構成部の処理と並行して前記取得頻度で繰り返し行われる。
滞在点抽出部150は、滞在抽出パラメータ保存部180に対して、滞在時間の閾値Trと、距離の閾値Drと、位置情報の取得頻度とを含むパラメータの取得要求を送る(S103)。滞在点抽出パラメータ保存部180は、前記取得要求に応じて、現在保存されている滞在時間の閾値Trと、距離の閾値Drと、位置情報の取得頻度とを含むパラメータを滞在点抽出部150に出力する(ステップS104)。滞在点抽出部150は、記憶部130に対して、位置情報の取得要求を送る(ステップS105)。記憶部130は、前記取得要求に応じて、記憶部130に記憶されている位置情報を滞在点抽出部150に出力する(ステップS106)。図7においては、便宜上、前記取得要求の処理(ステップS105)と位置情報の出力処理(ステップS106)を一度しか示していないが、これらの処理は繰り返し行われる。滞在点抽出部150は、取得した滞在時間の閾値Trと距離の閾値Drとに基づいて、上述した滞在点抽出処理を行う(ステップS107)。滞在点が抽出された場合には、滞在点抽出部150は、記憶部130に対して、滞在点の書込み要求を送る(ステップS108)。記憶部130は、前記書込み要求に応じて、滞在点を滞在点テーブルTBL2に記憶させる(ステップS109)。図7においては、便宜上、前記滞在点の抽出処理(ステップS107)と滞在点の書込み処理(ステップS108)を一度しか示していないが、これらの処理は繰り返し行われる。
移動予測モデル作成部160は、記憶部130に対して、滞在点移動履歴テーブルTBL3に記憶された滞在点の移動履歴の取得要求を送る(ステップS110)。記憶部130は、前記取得要求に応じて、滞在点移動履歴テーブルTBL3に記憶された滞在点の移動履歴を移動予測モデル作成部160に対して出力する(ステップS111)。移動予測モデル作成部160は、取得した滞在点の移動履歴に基づいて、上述した移動予測モデルの作成処理を行う(ステップS112)。移動予測モデルが作成された場合には、移動予測モデル作成部160は、記憶部130に対して移動予測モデルの書込み要求を送る(ステップS113)。記憶部130は、前記書込み要求に応じて、移動予測モデルとして作成された移動予想滞在点を記憶する(ステップS114)。
滞在点抽出パラメータ更新部170は、記憶部130に対して、位置情報テーブルTBL1に記憶された現在の位置情報と、記憶部130に記憶された移動予想滞在点との取得要求を送る(ステップS115)。記憶部130は、前記取得要求に応じて、現在の位置情報と移動予想滞在点とを滞在点抽出パラメータ更新部170に出力する。滞在点抽出パラメータ更新部170は、取得した現在の位置情報が示す地点と、移動予想滞在点との距離を算出する(ステップS117)。滞在点抽出パラメータ更新部170は、滞在点抽出パラメータ保存部180に対して、算出した前記距離に応じて、位置情報の取得頻度の更新要求を送る(ステップS118)。滞在点抽出パラメータ保存部180は、前記更新要求に応じて、位置情報の取得頻度を更新する(ステップS119)。具体的には、滞在点抽出パラメータ保存部180は、前記算出した距離が所定の閾値以内になった場合の更新要求に対しては、位置情報の取得頻度を低頻度から高頻度に更新する。また、滞在点抽出パラメータ保存部180は、現在の位置情報の取得頻度が高頻度の場合には、高頻度をそのまま維持する。滞在点抽出パラメータ保存部180は、前記算出した距離が所定の閾値を超えている場合の更新要求に対しては、位置情報の取得頻度を、低頻度のままで維持するか、あるいは、高頻度から低頻度に更新する。さらに、現在の位置情報が示す地点がいずれかの滞在点から移動した場合の更新要求に対しては、滞在点抽出パラメータ保存部180は、位置情報の取得頻度を、低頻度のままで維持するか、あるいは、高頻度から低頻度に更新する。
滞在点抽出部150は、上述したように、パラメータとしての位置情報の取得頻度の取得要求処理(ステップS103)と、パラメータの取得処理(S104)とを繰り返す。したがって、滞在点抽出部150は、滞在点抽出パラメータ保存部180において位置情報の取得頻度の更新処理(ステップS119)が行われた後に、前記パラメータの取得要求処理(ステップS103)とパラメータの取得処理(S104)とを行った場合には、位置情報の取得頻度がそれまでの頻度と異なる頻度に更新されたことを判断することができる。滞在点抽出部150は、位置情報の取得頻度がそれまでの頻度と異なる頻度に更新されたと判断した場合には、位置情報取得部140に対して位置情報の取得頻度の更新要求を送る(ステップS120)。位置情報取得部140は、前記更新要求に応じて位置情報の取得頻度を更新する(ステップS121)。したがって、現在の位置情報が示す地点が移動予想滞在点に近づき、位置情報の取得頻度が高頻度に更新された場合には、位置情報取得部140は高頻度で位置情報の取得を行い(ステップS100)、滞在点抽出部150は、十分な数の位置情報に基づいて滞在点抽出処理を行う(ステップS107)。その結果、滞在点の抽出が高速に行われることになる。また、現在の位置情報が示す地点が移動予想滞在点から離れており、位置情報の取得頻度が低頻度に更新された場合には、位置情報取得部140は低頻度で位置情報の取得を行い(ステップS100)、滞在点抽出部150は、低頻度で取得された位置情報に基づいて滞在点抽出処理を行う(ステップS107)。その結果、消費電力の増大が抑えられる。
<第2実施形態>
本発明の第2実施形態を図8乃至図14を参照して説明する。第1実施形態においては、滞在推定装置10のユーザの移動予測モデルのみに基づいて、次に移動すると予想される移動予想滞在点を求めた。しかし、本実施形態では、前記ユーザの移動予測モデルと、他のユーザの移動予測モデルとを統合し、統合した移動予測モデルに基づいて移動予想滞在点を求める。
1.無線通信システムの構成
1(1).サーバの構成
図8は、本発明の第2実施形態に係る無線通信システムに用いられるサーバ50のブロック図である。第1実施形態で説明した無線通信システム1では、ゲートウェイ40を接続点としてインターネットINに接続されるが、サーバ50は当該インターネットINを介して、滞在推定装置10との通信が可能に構成されている。
サーバ50は、図8に示すように、制御部300、通信部310、移動予測モデル更新部320、行動類似度判定部330、及び記憶部340を備える。制御部300は、サーバ50全体を制御するモジュールであり、サーバ50の図示しないCPU(central processing unit)がコンピュータプログラムを実行し、そのコンピュータプログラムに従って機能することによって実現される機能ブロックである。
通信部310は、インターネットINを介して、当該インターネットINに接続された他の装置等との通信を実行するためのモジュールである。
記憶部340は、HDD(Hard Disc Drive)等の記憶装置であり、移動予測モデルテーブルTBL5及び滞在点移動履歴テーブルTBL6が記憶されている。移動予測モデルテーブルTBL5には、本実施形態の無線通信システムを利用する複数のユーザの移動予測モデルが蓄積されている。図11に示すように、移動予測モデルテーブルTBL5には、各ユーザを識別するユーザIDと、各ユーザの過去に作成された移動予測モデルとしての移動予想滞在点と、各ユーザの移動予想滞在点の遷移確率とが記憶される。滞在点移動履歴テーブルTBL6には、前記複数のユーザの滞在点の移動履歴が蓄積されている。図12に示すように、滞在点移動履歴テーブルTBL6には、各ユーザを識別するユーザIDと、各ユーザが滞在した滞在点が移動順序に従って記憶される。また、滞在点移動履歴テーブルTBL6には、各滞在点に到着した時刻についても記憶される。
移動予測モデル更新部320は、滞在推定装置10のユーザの移動予測モデルを、他のユーザの移動予測モデルを用いて更新するモジュールである。なお、更新の際には、移動予測モデル間の類似度等に応じて重み付けを行ってもよい。
行動類似度判定部330は、滞在推定装置10のユーザと、他のユーザとの類似度を計算するモジュールである。なお、本実施形態では、ユーザ間の類似度は、同一の滞在点に同一の時間帯に到着した回数、または、同一の時間帯に到着した同一の滞在点の個数に基づいて判断している。
1(2).滞在推定装置の構成
図9は、本発明の第2実施形態に係る滞在推定装置10のブロック図である。本実施形態の滞在推定装置10は、滞在点抽出パラメータ更新部170と、滞在点抽出パラメータ保存部180とを備えていないところが第1実施形態の滞在推定装置10と異なる。また、本実施形態の滞在推定装置10は、移動予測モデル取得部200を備えているところが第1実施形態の滞在推定装置10と異なる。以下、第1実施形態との共通箇所については説明を省略し、本実施形態に特有の構成についてのみ説明する。
移動予測モデル取得部200は、サーバ50から他のユーザの移動予測モデルを含めて更新された移動予測モデルを取得するモジュールである。
2.滞在推定装置及びサーバの動作
2(1).移動予測モデル作成処理
滞在点抽出部150は、第1実施形態と同様に、位置情報が示す地点の平均を算出することにより、滞在点を抽出する滞在点抽出処理を行う。また、移動予測モデル作成部160も、第1実施形態と同様に、ある滞在点から予想滞在点への遷移確率を算出することにより移動予測モデルを作成する処理を行い、移動予測モデルテーブルTBL4として記憶部130に記憶させる。図10に移動予測モデルテーブルTBL4の例を示す。図10に示すように、移動予測モデルテーブルTBL4には、移動予測モデルID、起点となる滞在点のID、予想滞在点のID、及び遷移確率が記憶される。
但し、本実施形態では、位置情報の取得頻度の変更は行わず、類似度の高いユーザの移動予測モデルを、当該滞在推定装置10の移動予測モデルと統合することにより、移動予想滞在点を精度良く抽出する。詳しくは後述する。
移動予測モデル作成部160は、第1実施形態と同様に、ユーザが過去に滞在したことのある滞在点の履歴に基づいて移動予測モデルの作成処理を行う。したがって、ユーザが初めて訪れた地域については、滞在点の履歴がなく、移動予測モデルを作成することができない。そこで、この場合には、該当データ無しとして移動予測モデルを作成し、移動予測モデルテーブルTBL4として記憶部130に記憶させる。
第1実施形態と同様に移動予測モデルが作成できた場合、あるいは、該当データ無しとして移動予測モデルを作成した場合のいずれも、移動予測モデル取得部200は、無線通信部10を介して、サーバ50に対して移動予測モデルの更新処理要求を送信する。この際、移動予測モデル取得部200は、無線通信部10を介して、移動予測モデルTBL4に記憶された移動予測モデルの他に、滞在点移動履歴テーブルTBL7に記憶された滞在点の移動履歴を、無線通信部10を介してサーバ50に送信する。図13に滞在点移動履歴テーブルTBL7の一例を示す。図13に示すように、滞在点移動履歴テーブルTBL7には、過去に滞在点を移動した際の順序通りに滞在点IDが記憶され、また、各滞在点に到着した際の時刻が記憶されている。
2(2).類似度判定処理
滞在推定装置10から移動予測モデルの更新処理要求を受信したサーバ50の行動類似度判定部330は、滞在推定装置10のユーザ(以下、ユーザAとする。)と、他のユーザとの行動の類似度を判定する処理を行う。行動の類似度の判定は、同一の時間帯に同一の滞在点に到着した回数、または、同一の時間帯に到着した同一の滞在点の個数に基づいて行う。但し、行動の類似度の判定は、他のすべてのユーザについて行うのではなく、ユーザAが訪れた前記地点から所定の範囲内に、過去に滞在したことのある滞在点を有する他のユーザを比較対象とする。
具体的には、行動類似度判定部330は、滞在推定装置10から受信したユーザAの滞在点移動履歴テーブルTBL7に記憶された滞在点の移動履歴と、サーバ50の記憶部340に記憶されている他のユーザの滞在点移動履歴テーブルTBL6に記憶された滞在点の移動履歴とを比較し、所定の時間帯ごとに同一の時間帯に到着した同一の滞在点が存在するかどうかを判断する。行動類似度判定部330は、このような滞在点が存在していると判断した場合には、当該時間帯において当該滞在点に到着した回数を、ユーザAと他のユーザとのそれぞれについて積算する。また、行動類似度判定部330は、所定の時間帯ごとに同一の時間帯に到着した同一の滞在点が存在していると判断した場合に、当該時間帯において到着した同一の滞在点の個数を積算するようにしてもよい。
行動類似度判定部330は、同一の時間帯において同一の滞在点に到着した回数が、ユーザAの回数と一致するか、あるいは、所定範囲内にある他のユーザを、ユーザAと行動の類似度の高いユーザであると判定する。また、行動類似度判定部330は、同一の時間帯において到着した同一の滞在点の個数が、ユーザAの個数と一致するか、あるいは、所定範囲内にある他のユーザを、ユーザAと行動の類似度の高いユーザであると判定するようにしてもよい。
時間帯については、例えば1日24時間を3〜4時間ごとに分割するようにしてもよいし、1〜2時間ごとに分割するようにしてもよい。さらに細かく分割するようにしてもよい。
行動類似度判定部330は、行動の類似度が高いと判定した他のユーザが存在する場合には、当該他のユーザのユーザIDを移動予測モデル更新部320に受け渡す。しかし、行動の類似度が高いと判定した他のユーザが存在しない場合には、行動類似度判定部330は、該当ユーザがいない旨を移動予測モデル更新部320に受け渡す。なお、行動の類似度が高いと判定した他のユーザが存在しない場合には、類似度の判定基準を変えて、再度判定を行うようにしてもよい。
2(3).移動予測モデルの更新処理
移動予測モデル更新部320は、行動類似度判定部330から他のユーザのユーザIDを受け渡された場合には、移動予測モデルテーブルTBL5に記憶された当該他のユーザの移動予測モデルを抽出する。そして、移動予測モデル更新部320は、抽出した前記他のユーザの移動予測モデルと、滞在推定装置10から受信したユーザAの移動予測モデルとを統合し、ユーザAの移動予測モデルを更新する。
一方、移動予測モデル更新部320は、行動類似度判定部330から該当ユーザがいない旨を受け渡された場合には、移動予測モデルの更新処理を行わず、通信部310を介して、移動予測モデルの更新処理が行われなかった旨を滞在推定装置10に送信する。
したがって、行動の類似度の高い他のユーザが存在する場合には、ユーザAが過去に訪れたことのない地点を訪れた場合であっても、ユーザAと行動の類似度の高い他のユーザの移動予測モデルを用いて、ユーザAが移動しようとする移動予想滞在点を予想することが可能になる。また、行動の類似度の高い他のユーザが存在する場合には、ユーザAが過去に訪れたことのある地点を再び訪れた場合であっても、ユーザAと行動の類似度の高い他のユーザの移動予測モデルとユーザAの移動予測モデルとを統合するので、ユーザAが移動しようとする移動予想滞在点を精度良く予想することが可能になる。
以下、同様にして、滞在推定装置10の滞在点抽出部150は、起点となる滞在点が変わる度に、上述した移動予測モデル作成処理を行い、サーバ50の行動類似度判定部330は行動の類似度の判定処理を行う。また、サーバ50の移動予測モデル更新部320は、移動予測モデルの更新処理を行う。
2(4).滞在推定装置及びサーバの全体的な動作
図14は本発明の第2実施形態にかかる滞在推定装置10及びサーバ50において、ユーザの移動予測モデルを、行動の類似度の高い他のユーザの移動予測モデルを用いて更新するシーケンス図である。
図14に示すように、位置情報取得部140は、所定の頻度で位置情報を取得し(ステップS200)、記憶部130に対して、取得した位置情報の書込み要求を送る(ステップS201)。記憶部130は、この書込み要求に応じて、前記位置情報を位置情報テーブルTBL1に記憶させる(ステップS202)。図14においては、便宜上、位置情報取得部140による位置情報の取得処理(ステップS200)と記憶部130への書込み処理(ステップS201)を一度しか示していないが、これらの処理は、他の構成部の処理と並行して前記取得頻度で繰り返し行われる。
滞在点抽出部150は、記憶部130に対して、位置情報の取得要求を送る(ステップS203)。記憶部130は、前記取得要求に応じて、記憶部130に記憶されている位置情報を滞在点抽出部150に出力する(ステップS204)。図14においては、便宜上、前記取得要求の処理(ステップS203)と位置情報の出力処理(ステップS204)を一度しか示していないが、これらの処理は繰り返し行われる。
滞在点抽出部150は、第1実施形態と同様に、予め設定された滞在時間の閾値Trと距離の閾値Drとに基づいて、上述した滞在点抽出処理を行う(ステップS206)。滞在点が抽出された場合には、滞在点抽出部150は、記憶部130に対して、滞在点の書込み要求を送る(ステップS207)。記憶部130は、前記書込み要求に応じて、滞在点を滞在点テーブルTBL2に記憶させる(ステップS208)。図14においては、便宜上、前記滞在点の抽出処理(ステップS206)と滞在点の書込み処理(ステップS208)を一度しか示していないが、これらの処理は繰り返し行われる。
滞在点抽出部150は、次に、移動予測モデル作成部160に対して、移動予測モデルの取得要求を送る(ステップS209)。移動予測モデル作成部160は、移動予測モデルの取得要求を受け取ると、記憶部130に対して、滞在点移動履歴テーブルTBL3に記憶された滞在点の移動履歴の取得要求を送る(ステップS210)。記憶部130は、前記取得要求に応じて、滞在点移動履歴テーブルTBL3に記憶された滞在点の移動履歴を移動予測モデル作成部160に対して出力する(ステップS211)。移動予測モデル作成部160は、取得した滞在点の移動履歴に基づいて、上述した移動予測モデルの作成処理を行う(ステップS212)。
ユーザAが初めて訪れた地域の場合には、当該地域における滞在点の移動履歴がなく、移動予測モデルの作成処理を行うことができない。この場合には、移動予測モデル作成部160は、該当データ無しとして移動予測モデルの作成処理を行う(ステップS212)。
移動予測モデル作成部160は、移動予測モデルの作成処理が終了すると、記憶部130に対して移動予測モデルの書込み要求を送る(ステップS213)。記憶部130は、前記書込み要求に応じて、移動予測モデルとして作成された移動予想滞在点、あるいは、該当データ無しの移動予測モデルを記憶する(ステップS214)。
移動予測モデル作成部160は、次に、移動予測モデル取得部200に対して、サーバ50から他のユーザの移動予測モデルを考慮した移動予測モデルを取得するように要求する(ステップS215)。移動予測モデル取得部200は、この取得要求を受け取ると、記憶部130に対して、ユーザAの移動予測モデルと、過去の滞在点の移動履歴と要求する(ステップS210)。記憶部130は、この要求を受け取ると、滞在点移動履歴テーブルTBL3に記憶された滞在点の移動履歴と、移動予測モデルテーブルTBL5に記憶された移動予測モデルとを移動予測モデル取得部200に対して出力する(ステップS217)。
移動予測モデル取得部200は、サーバ50に対して、ユーザAの移動予測モデル及び過去の滞在点の移動履歴と共に、移動予測モデルの取得要求を送る(ステップS218)。サーバ50の行動類似度判定部330は、取得要求を受け取ると、上述したようなユーザAと他のユーザとの行動の類似度を判定する処理を行う(ステップS219)。行動類似度判定部330は、行動の類似度が高いと判定した他のユーザが存在する場合には、当該他のユーザのユーザIDを移動予測モデル更新部320に受け渡す(ステップS220)。しかし、行動の類似度が高いと判定した他のユーザが存在しない場合には、行動類似度判定部330は、該当ユーザがいない旨を移動予測モデル更新部320に受け渡す(ステップS220)。なお、行動の類似度が高いと判定した他のユーザが存在しない場合には、類似度の判定基準を変えて、再度判定を行うようにしてもよい。
移動予測モデル更新部320は、行動類似度判定部330から他のユーザのユーザIDを受け渡された場合には、移動予測モデルテーブルTBL5に記憶された当該他のユーザの移動予測モデルを抽出する。そして、移動予測モデル更新部200は、抽出した前記他のユーザの移動予測モデルと、滞在推定装置10から受信したユーザAの移動予測モデルとを統合し、ユーザAの移動予測モデルを更新する処理を行う(ステップS221)。そして、滞在推定装置10に対して、ユーザAの移動予測モデルの書込み要求を送る(ステップS222)。一方、移動予測モデル更新部320は、行動類似度判定部330から該当ユーザがいない旨を受け渡された場合には、移動予測モデルの更新処理を行わず、移動予測モデルの更新処理が行われなかった旨を滞在推定装置10に送る(ステップS222)。滞在推定装置10においては、更新された移動予測モデルが記憶部130に記憶される。
したがって、行動の類似度の高い他のユーザが存在する場合には、ユーザAが過去に訪れたことのない地点を訪れた場合であっても、ユーザAと行動の類似度の高い他のユーザの移動予測モデルを用いて、ユーザAが移動しようとする移動予想滞在点を予想することが可能になる。また、行動の類似度の高い他のユーザが存在する場合には、ユーザAが過去に訪れたことのある地点を再び訪れた場合であっても、ユーザAと行動の類似度の高い他のユーザの移動予測モデルとユーザAの移動予測モデルとを統合するので、ユーザAが移動しようとする移動予想滞在点を精度良く予想することが可能になる。
<第3実施形態>
本発明の第3実施形態を図15乃至図17を参照して説明する。本実施形態は、第1実施形態と第2実施形態とを組み合わせた例である。つまり、ユーザAと行動の類似度の高いユーザの移動予測モデルとユーザAの移動予測モデルとを統合して移動予測モデルとし、位置情報に基づく現在位置が移動予測滞在点に近づくほど、位置情報の取得頻度を高くする。
1.無線通信システムの構成
1(1).サーバの構成
本実施形態におけるサーバ50の構成は、図8に示す第2実施形態のサーバ50の構成と同様である。サーバ50の詳しい説明については省略する。
1(2).滞在推定装置の構成
図15に本実施形態の滞在推定装置10の構成を示す。図15に示すように、本実施形態の滞在推定装置10は、第2実施形態の滞在推定装置10に、第1実施形態の滞在推定装置10において設けられていた滞在点抽出パラメータ更新部170と滞在点抽出パラメータ保存部180とを備えたものである。各部の説明は、第1実施形態及び第2実施形態における説明と重複するので、本実施形態では省略する。
2.滞在推定装置及びサーバの動作
2(1)滞在点抽出処理
本実施形態においては、図7に示す第1実施形態と同様の滞在点抽出処理が行われる。つまり、位置情報が示す各地点の平均から滞在点を抽出すると共に、当該滞在点の次に移動されると予想される移動予想滞在点を抽出する。そして、位置情報の示す地点が移動予想滞在点に近づいた場合には、位置情報の取得頻度を高くする。詳細については第1実施形態と同様なので説明を省略する。なお、本実施形態においては、滞在点の移動履歴は、第2実施形態と同様に各滞在点への到着時刻を含み、図13に示す記憶部130の滞在点移動履歴テーブルTBL7に記憶される。
本実施形態においては、第2実施形態と同様に、作成した移動予測モデルは、図10に示す、記憶部130の移動予測モデルテーブルTBL4として記憶される。本実施形態においても、過去の滞在点が存在しないために移動予想滞在点の抽出ができない場合には、第2実施形態と同様に、該当データ無しとして記憶部130の移動予測モデルテーブルTBL4に記憶される。
所定の移動予想滞在点を含む移動予測モデルが作成できた場合、あるいは、該当データ無しとして移動予測モデルを作成した場合のいずれも、第2実施形態と同様に、移動予測モデル取得部200は、無線通信部10を介して、サーバ50に対して移動予測モデルの更新処理要求を送信する。この際、移動予測モデル取得部200は、無線通信部10を介して、移動予測モデルTBL4に記憶された移動予測モデルの他に、滞在点移動履歴テーブルTBL7に記憶された滞在点の移動履歴を、無線通信部10を介してサーバ50に送信する。
2(2).類似度判定処理
滞在推定装置10から移動予測モデルの更新処理要求を受信したサーバ50の行動類似度判定部330は、第2実施形態と同様に、ユーザAと、他のユーザとの行動の類似度を判定する処理を行う。行動の類似度の判定は、同一の時間帯に同一の滞在点に到着した回数、または、同一の時間帯に到着した同一の滞在点の個数に基づいて行う。但し、行動の類似度の判定は、他のすべてのユーザについて行うのではなく、ユーザAが訪れた前記地点から所定の範囲内に、過去に滞在したことのある滞在点を有する他のユーザを比較対象とする。
行動類似度判定部330は、同一の時間帯において同一の滞在点に到着した回数が、ユーザAの回数と一致するか、あるいは、所定範囲内にある他のユーザを、ユーザAと行動の類似度の高いユーザであると判定する。また、行動類似度判定部330は、同一の時間帯において到着した同一の滞在点の個数が、ユーザAの個数と一致するか、あるいは、所定範囲内にある他のユーザを、ユーザAと行動の類似度の高いユーザであると判定するようにしてもよい。
行動類似度判定部330は、行動の類似度が高いと判定した他のユーザが存在する場合には、当該他のユーザのユーザIDを移動予測モデル更新部320に受け渡す。しかし、行動の類似度が高いと判定した他のユーザが存在しない場合には、行動類似度判定部330は、該当ユーザがいない旨を移動予測モデル更新部320に受け渡す。なお、行動の類似度が高いと判定した他のユーザが存在しない場合には、類似度の判定基準を変えて、再度判定を行うようにしてもよい。
2(3).移動予測モデルの更新処理
移動予測モデル更新部320は、行動類似度判定部330から他のユーザのユーザIDを受け渡された場合には、移動予測モデルテーブルTBL5に記憶された当該他のユーザの移動予測モデルを抽出する。そして、移動予測モデル更新部200は、抽出した前記他のユーザの移動予測モデルと、滞在推定装置10から受信したユーザAの移動予測モデルとを統合し、ユーザAの移動予測モデルを更新する。
一方、移動予測モデル更新部320は、行動類似度判定部330から該当ユーザがいない旨を受け渡された場合には、移動予測モデルの更新処理を行わず、通信部310を介して、移動予測モデルの更新処理が行われなかった旨を滞在推定装置10に送信する。
したがって、行動の類似度の高い他のユーザが存在する場合には、ユーザAが過去に訪れたことのない地点を訪れた場合であっても、ユーザAと行動の類似度の高い他のユーザの移動予測モデルが用いられ、ユーザAが当該移動予測モデルに含まれる移動予想滞在点に近づいた場合には、位置情報の取得頻度が高頻度に切り換えられることになる。その結果、ユーザAが過去に訪れたことのない地点を訪れた場合であっても、高速かつ精度良く滞在点を予測することができる。
行動の類似度の高い他のユーザが存在する場合には、ユーザAが過去に訪れたことのある地点を再び訪れた場合であっても、ユーザAと行動の類似度の高い他のユーザの移動予測モデルとユーザAの移動予測モデルとを統合し、ユーザAが当該移動予測モデルに含まれる移動予想滞在点に近づいた場合には、位置情報の取得頻度が高頻度に切り換えられることになる。その結果、ユーザAが過去に訪れたことのない滞在点であっても、精度良く滞在点を予測することができる。
以下、同様にして、滞在推定装置10の滞在点抽出部150は、起点となる滞在点が変わる度に、上述した移動予測モデル作成処理を行い、サーバ50の行動類似度判定部330は行動の類似度の判定処理を行う。また、サーバ50の移動予測モデル更新部320は、移動予測モデルの更新処理を行う。
2(4).滞在推定装置及びサーバの全体的な動作
図16及び図17に基づいて本実施形態における動作について説明する。本実施形態においては、図16に示すステップS100からステップS114までの処理は、図7に示す第1実施形態の処理と同様なので、説明を省略する。
図16に示すように、移動予測モデル作成部160は、移動予測モデルの作成処理(ステップS112)が終了すると、移動予測モデル取得部200に対して、サーバ50から他のユーザの移動予測モデルを考慮した移動予測モデルを取得するように要求する(ステップS215、図17の端子Aへ移行)。図17に示すように、移動予測モデル取得部200は、この取得要求を受け取ると、記憶部130に対して、ユーザAの移動予測モデルと、過去の滞在点の移動履歴と要求する(ステップS216、図16の端子Bへ移行)。図16に示すように、記憶部130は、この要求を受け取ると、滞在点移動履歴テーブルTBL7に記憶された滞在点の移動履歴と、移動予測モデルテーブルTBL4に記憶された移動予測モデルとを移動予測モデル取得部200に対して出力する(ステップS217、図17の端子Cへ移行)。
図17に示すように、移動予測モデル作成部160は、サーバ50に対して、ユーザAの移動予測モデル及び過去の滞在点の移動履歴と共に、移動予測モデルの取得要求を送る(ステップS218)。サーバ50の行動類似度判定部330は、取得要求を受け取ると、第2実施形態で説明したユーザAと他のユーザとの行動の類似度を判定する処理を行う(ステップS219)。行動類似度判定部330は、行動の類似度が高いと判定した他のユーザが存在する場合には、当該他のユーザのユーザIDを移動予測モデル更新部320に受け渡す(ステップS220)。しかし、行動の類似度が高いと判定した他のユーザが存在しない場合には、行動類似度判定部330は、該当ユーザがいない旨を移動予測モデル更新部320に受け渡す(ステップS220)。なお、行動の類似度が高いと判定した他のユーザが存在しない場合には、類似度の判定基準を変えて、再度判定を行うようにしてもよい。
移動予測モデル更新部320は、行動類似度判定部330から他のユーザのユーザIDを受け渡された場合には、移動予測モデルテーブルTBL5に記憶された当該他のユーザの移動予測モデルを抽出する。そして、移動予測モデル更新部200は、抽出した前記他のユーザの移動予測モデルと、滞在推定装置10から受信したユーザAの移動予測モデルとを統合し、ユーザAの移動予測モデルを更新する処理を行う(ステップS221)。そして、滞在推定装置10に対して、ユーザAの移動予測モデルの書込み要求を送る(ステップS222、図16の端子Dへ移行)。一方、移動予測モデル更新部320は、行動類似度判定部330から該当ユーザがいない旨を受け渡された場合には、移動予測モデルの更新処理を行わず、移動予測モデルの更新処理が行われなかった旨を滞在推定装置10に送る(ステップS222、図16の端子Dへ移行)。図16に示すように、滞在推定装置10においては、更新された移動予測モデルが記憶部130に記憶される(ステップS223)。
図16に示すように、滞在点抽出パラメータ更新部170は、記憶部130に対して、位置情報テーブルTBL1に記憶された現在の位置情報と、記憶部130に記憶された移動予想滞在点との取得要求を送る(ステップS115)。記憶部130は、前記取得要求に応じて、現在の位置情報と移動予想滞在点とを滞在点抽出パラメータ更新部170に出力する。滞在点抽出パラメータ更新部170は、取得した現在の位置情報が示す地点と、移動予想滞在点との距離を算出する(ステップS117)。滞在点抽出パラメータ更新部170は、滞在点抽出パラメータ保存部180に対して、算出した前記距離に応じて、位置情報の取得頻度の更新要求を送る(ステップS118)。滞在点抽出パラメータ保存部180は、前記更新要求に応じて、位置情報の取得頻度を更新する(ステップS119)。具体的には、滞在点抽出パラメータ保存部180は、前記算出した距離が所定の閾値以内になった場合の更新要求に対しては、位置情報の取得頻度を低頻度から高頻度に更新する。また、滞在点抽出パラメータ保存部180は、現在の位置情報の取得頻度が高頻度の場合には、高頻度をそのまま維持する。滞在点抽出パラメータ保存部180は、前記算出した距離が所定の閾値を超えている場合の更新要求に対しては、位置情報の取得頻度を、低頻度のままで維持するか、あるいは、高頻度から低頻度に更新する。さらに、現在の位置情報が示す地点がいずれかの滞在点から移動した場合の更新要求に対しては、滞在点抽出パラメータ保存部180は、位置情報の取得頻度を、低頻度のままで維持するか、あるいは、高頻度から低頻度に更新する。
滞在点抽出部150は、上述したように、パラメータとしての位置情報の取得頻度の取得要求処理(ステップS103)と、パラメータの取得処理(S104)とを繰り返す。したがって、滞在点抽出部150は、滞在点抽出パラメータ保存部180において位置情報の取得頻度の更新処理(ステップS119)が行われた後に、前記パラメータの取得要求処理(ステップS103)とパラメータの取得処理(S104)とを行った場合には、位置情報の取得頻度がそれまでの頻度と異なる頻度に更新されたことを判断することができる。滞在点抽出部150は、位置情報の取得頻度がそれまでの頻度と異なる頻度に更新されたと判断した場合には、位置情報取得部140に対して位置情報の取得頻度の更新要求を送る(ステップS120)。位置情報取得部140は、前記更新要求に応じて位置情報の取得頻度を更新する(ステップS121)。したがって、現在の位置情報が示す地点が、行動類似度の高い他のユーザの移動予測モデルを含めた移動予測モデルに示される移動予想滞在点に近づき、位置情報の取得頻度が高頻度に更新された場合には、位置情報取得部140は高頻度で位置情報の取得を行い(ステップS100)、滞在点抽出部150は、十分な数の位置情報に基づいて滞在点抽出処理を行う(ステップS107)。その結果、ユーザAが初めて訪れた地域においても、滞在点の抽出が高速に行われることになる。また、現在の位置情報が示す地点が移動予想滞在点から離れており、位置情報の取得頻度が低頻度に更新された場合には、位置情報取得部140は低頻度で位置情報の取得を行い(ステップS100)、滞在点抽出部150は、低頻度で取得された位置情報に基づいて滞在点抽出処理を行う(ステップS107)。その結果、消費電力の増大が抑えられる。
以上のように、本実施形態によれば、行動の類似度の高い他のユーザが存在する場合には、ユーザAが過去に訪れたことのない地点を訪れた場合であっても、ユーザAと行動の類似度の高い他のユーザの移動予測モデルが用いられる。そして、ユーザAが当該移動予測モデルに含まれる移動予想滞在点に近づいた場合には、位置情報の取得頻度が高頻度に切り換えられることになる。その結果、ユーザAが過去に訪れたことのない地点を訪れた場合であっても、高速かつ精度良く滞在点を予測することができる。
行動の類似度の高い他のユーザが存在する場合には、ユーザAが過去に訪れたことのある地点を再び訪れた場合であっても、ユーザAと行動の類似度の高い他のユーザの移動予測モデルとユーザAの移動予測モデルとを統合した移動予測モデルが用いられる。そして、ユーザAが当該移動予測モデルに含まれる移動予想滞在点に近づいた場合には、位置情報の取得頻度が高頻度に切り換えられることになる。その結果、ユーザAが過去に訪れたことのない滞在点であっても、精度良く滞在点を予測することができる。
<第4実施形態>
次に、図18乃至図22を参照して、本発明の第4実施形態について説明する。本実施形態は、ユーザAと他のユーザの親密度を通信行動履歴に基づいて算出し、親密度の高いユーザを行動の類似度が高いユーザとして判定するところが第2実施形態と異なる。
1(1).サーバの構成
図18に本実施形態のサーバ50の構成を示す。本実施形態のサーバ50は、図18に示すように、行動類似判定部330を備えていないところが第2実施形態のサーバ50と異なる。また、本実施形態のサーバ50は、記憶部340に、滞在点移動履歴テーブルTBL6が記憶されていないところも第2実施形態のサーバ50と異なる。
本実施形態においては、ユーザ間の親密度を滞在推定装置10において算出し、サーバ50は、滞在推定装置10から親密度の高い他のユーザのユーザIDを受け取り、当該他のユーザの移動予測モデルとユーザAの移動予測モデルとを、移動予測モデル更新部320により統合する。
1(2).滞在推定装置の構成
図19に、本実施形態の滞在推定装置10の構成を示す。図19に示すように、本実施形態の滞在推定装置10は、親密度算出部220と、通信履歴管理部240とを備えているところが、第2実施形態の滞在推定装置10と異なる。また、本実施形態の滞在推定装置10は、記憶部130に、通信行動履歴テーブルTBL9と連絡帳テーブルTBL10とが記憶されているところが第2実施形態の滞在推定装置10と異なる。
滞在推定装置10は、ユーザAと、連絡帳テーブルTBL10に記憶された他のユーザとの通信履歴を通信履歴管理部240により管理しており、通信履歴は通信行動履歴テーブルTBL9に記憶される。親密度算出部220は、通信行動履歴テーブルTBL9に記憶された通信履歴に基づいて、ユーザAと、連絡帳テーブルTBL10に記憶された他のユーザと親密度を算出する。移動予測モデル取得部200は、無線通信部110を介して親密度の高い他のユーザのユーザIDをサーバ50に送信すると共に、当該他のユーザの移動予測モデルを含めた移動予測モデルの更新要求をサーバ50に送信する。
図20に本実施形態の連絡帳テーブルTBL10の一例を示す。図20に示すように、連絡帳テーブルTBL10には、ユーザID、ユーザの名前、電話番号、メールアドレス、SNSアカウント等が記憶されている。
図21に本実施形態の通信行動履歴テーブルTBL9の一例を示す。図21に示すように、通信行動履歴テーブルTBL9には、発信元の電話番号あるいは送信元のメールアドレス、発信先の電話番号あるいは送信先のメールアドレス等が記憶されている。
親密度算出部220は、通信行動履歴テーブルTBL9に基づいて、通信行動履歴テーブルTBL9に記憶された電話の発着回数、あるいは、電子メールの送受信回数に基づいて、ユーザAと他のユーザとの親密度を算出する。詳しくは、後述する。
2.滞在推定装置及びサーバの動作
2(1).親密度算出処理
親密度算出部220によるユーザAと連絡帳テーブルTBL10に記憶された他のユーザとの親密度を算出する処理について説明する。親密度算出部220は、連絡帳テーブルTBL10に記憶された電話番号またはメールアドレスと、通信行動履歴テーブルTBL9に記憶された通信履歴とに基づいて、ユーザAと連絡帳テーブルTBL10に記憶された他のユーザとの親密度FMMを算出する。
親密度算出部220は、まず、連絡帳テーブルTBL10から、一のユーザの電話番号とメールアドレスとを読み取る。電話番号とメールアドレスとのいずれか一方しか連絡帳テーブルTBL10に記憶されていない場合には、記憶されていた方の情報を読み取る。また、電話番号とメールアドレスのいずれも連絡帳テーブルTBL10に記憶されていない場合には、次のユーザについて同様の読み取り処理を行う。
親密度算出部220は、読み取った電話番号とメールアドレスとの少なくともいずれか一方が、所定の期間において通信行動履歴テーブルTBL9の発信元または発信先のいずれかに記憶されているかどうかをユーザ毎に判断し、記憶されていた場合には、その回数を積算する。
例えば、一のユーザのユーザIDをmとすると、当該ユーザの電話についての通信比率R1mは、次のように算出される。通信行動履歴テーブルTBL9に記憶された通話発着信回数の総数をNCALLとし、当該ユーザの電話番号が通信行動履歴テーブルTBL9の発信元として記憶されていた回数、つまり、通話発信回数と、発信先として記憶されていた回数、つまり、通話受信回数との総数をNCmとすると、当該ユーザの電話についての通信比率R1mは、次のように算出される。
R1m=NCm/NCALL・・・(1)
また、当該ユーザの電子メールについての通信比率R2mは、次のように算出される。通信行動履歴テーブルTBL9に記憶された電子メール送受信回数の総数をNMALLとし、当該ユーザの電子メールが通信行動履歴テーブルTBL9の発信元として記憶されていた回数、つまり、メール送信回数と、発信先として記憶されていた回数、つまり、メール受信回数との総数をNMmとすると、当該ユーザの電子メールについての通信比率R2mは、次のように算出される。
R2m=NMm/NMALL・・・(2)
親密度算出部106は、R1mとR2mとの両方を算出できた場合には、これらの平均値を親密度FMMmとして算出する。
FMMm=(R1m+R2m)・・・(3)
しかし、親密度算出部106は、R1mとR2mとのいずれか一方しか算出できなかった場合には、重み付け係数G(例えば、0.4)をR1mとR2mのいずれかに掛けて親密度FMMmを算出する。
FMMm=G*(R1m+R2m)・・・(4)
このように重み付けを行うのは、電話番号と電子メールアドレスの両方で通信を行う相手との間の親密度は、一方のみで通信を行う相手との間の親密度よりも通常、高いと推定されるためである。
例えば、ユーザID=mのユーザの、所定の1ヶ月間におけるユーザAとの間の通話発信回数と通話発着信回数の総数が10回で、通信行動履歴テーブルTBL9に記憶された同期間における通話発着信回数の総数を100回とすると、ユーザID=mのユーザの電話についての通信比率R1mは次のようになる。R1m=10/100=0.1・・・(5)
また、ユーザID=mのユーザの、当該1ヶ月間におけるユーザAとの間のメール送信回数とメール受信回数の総数が10回で、通信行動履歴テーブルTBL9に記憶された同期間におけるメール送受信回数の総数を100回とすると、ユーザID=mのユーザの電子メールについての通信比率R2mは次のようになる。
R2m=10/100=0.1・・・(6)
したがって、ユーザID=mのユーザとユーザAとの親密度FMMmは、次のようになる。
FMMm=(0.1+0.1)/2=0.1・・・(7)
一方、ユーザID=nのユーザの、当該1ヶ月間におけるユーザAとの間の通話発信回数と通話発着信回数の総数が0回だとすると、ユーザID=nのユーザの電話についての通信比率R1nは次のようになる。
R1n=0/100=0・・・(8)
また、ユーザID=nのユーザの、当該1ヶ月間におけるユーザAとの間のメール送信回数とメール受信回数の総数が20回だとすると、ユーザID=nのユーザの電子メールについての通信比率R2nは次のようになる。
R2n=20/100=0.2・・・(9)
したがって、ユーザID=nのユーザとユーザAとの親密度FMMnは、次のようになる。
FMMn=0.4*(0+0.2)=0.08・・・(10)
この場合には、ユーザID=mのユーザとユーザAの親密度の方が、ユーザID=nのユーザとユーザAの親密度よりも高いことになる。
親密度算出部220は、以上のようにして、通信行動履歴テーブルTBL9に記憶された所定の期間における通信履歴に基づいて、ユーザAと他のユーザとの親密度を算出する。そして、移動予測モデル取得部200は、当該ユーザのユーザID、及びユーザAの移動予測モデルと共に、移動予測モデルの更新要求をサーバ50に送信する。
2(2).移動予測モデルの更新処理
移動予測モデル更新部320は、滞在推定装置10から、親密度の高い他のユーザのユーザID、ユーザAの移動予測モデル、及び移動予測モデルの更新要求を受け取った場合には、移動予測モデルテーブルTBL5に記憶された当該他のユーザの移動予測モデルを抽出する。そして、移動予測モデル更新部200は、抽出した前記他のユーザの移動予測モデルと、滞在推定装置10から受信したユーザAの移動予測モデルとを統合し、ユーザAの移動予測モデルを更新する。
したがって、親密度の高い他のユーザは、行動の類似度についても高いと思われるので、ユーザAが過去に訪れたことのない地点を訪れた場合であっても、ユーザAと行動の類似度の高いと思われる前記他のユーザの移動予測モデルを用いて、ユーザAが移動しようとする移動予想滞在点を予想することが可能になる。また、ユーザAが過去に訪れたことのある地点を再び訪れた場合であっても、ユーザAと行動の類似度の高いと思われる他のユーザの移動予測モデルとユーザAの移動予測モデルとを統合するので、ユーザAが移動しようとする移動予想滞在点を精度良く予想することが可能になる。
2(3).滞在推定装置及びサーバの全体的な動作
図22は、本発明の第4実施形態にかかる滞在推定装置10及びサーバ50において、ユーザの移動予測モデルを、親密度の高い他のユーザの移動予測モデルを用いて更新するシーケンス図である。
図14に示す第2実施形態のシーケンスとは異なり、本実施形態においては、親密度算出部220が上述した親密度算出処理を行っている(ステップS300)。親密度算出処理は、所定期間ごとに実行するようにしてもよいし、ユーザAが他のユーザとの通信を行う度に行うようにしてもよい。
図22において、移動予測モデル取得部200が処理を開始するまでのシーケンスは、図14に示す第2実施形態のシーケンスと同様なので、各処理には同一のステップ番号を付して説明を省略する。
移動予測モデル取得部200は、移動予測モデルが作成され、移動予測モデル作成部160から他のユーザの移動予測モデルを含めた移動予測モデルの取得要求を受け取った場合には(ステップS215)、記憶部130に対してユーザAの移動予測モデルの取得要求を送る(ステップS216)。移動予測モデル取得部200は、記憶部130からユーザAの移動予測モデルを取得すると(ステップS217)、親密度算出部220に対して、ユーザAとの親密度が高いユーザのユーザIDを問い合わせる(S301)。
親密度算出部220は、上述のように、所定のタイミングにてユーザAと他のユーザとの親密度を算出しているので、移動予測モデル取得部200からの問い合わせに対して、ユーザAとの親密度が高いユーザのユーザIDを通知する(ステップS302)。
移動予測モデル取得部200は、親密度が高い他のユーザのユーザID、及びユーザAの移動予測モデルと共に、移動予測モデルの更新要求をサーバ50に送信する(ステップS220)。
移動予測モデル更新部320は、滞在推定装置10から、親密度の高い他のユーザのユーザID、ユーザAの移動予測モデル、及び移動予測モデルの更新要求を受け取った場合には、移動予測モデルテーブルTBL5に記憶された当該他のユーザの移動予測モデルを抽出して、移動予測モデルの更新処理を行う(ステップS221)。つまり、移動予測モデル更新部320は、抽出した前記他のユーザの移動予測モデルと、滞在推定装置10から受信したユーザAの移動予測モデルとを統合し、ユーザAの移動予測モデルを更新する。そして、移動予測モデル更新部320は、更新した移動予測モデルの書込み要求を滞在推定装置10に対して送信する(ステップS222)。書込み要求を受信した滞在推定装置10は、更新された移動予測モデルを記憶部130に記憶させる(ステップS223)。
以上のように、本実施形態によれば、親密度の高い他のユーザは、行動の類似度についても高いと思われるので、当該他のユーザの移動予測モデルをユーザAの移動予測モデルに統合することにより、ユーザAが移動する可能性の高い移動予想滞在点が増えることになる。その結果、ユーザAが過去に訪れたことのない地点を訪れた場合であっても、ユーザAと行動の類似度の高いと思われる前記他のユーザの移動予測モデルを用いて、ユーザAが移動しようとする移動予想滞在点を予想することが可能になる。また、ユーザAが過去に訪れたことのある地点を再び訪れた場合であっても、ユーザAと行動の類似度の高いと思われる他のユーザの移動予測モデルとユーザAの移動予測モデルとを統合するので、ユーザAが移動しようとする移動予想滞在点を精度良く予想することが可能になる。
<変形例>
上述した第2実施形態においては、移動予測モデル更新部200は、常に他のユーザの移動予測モデルの取得要求を送出する例について説明したが、本発明はこのような例に限定されるものではない。例えば、移動予測モデル作成部160において、現在の滞在点を起点とした移動予測モデルを作成する際に、母集団となる滞在点移動履歴が不足している場合、あるいは母集団となる滞在点移動履歴が存在していない場合等にのみ、他のユーザの移動予測モデルの取得要求を送出するようにしてもよい。
上述した第2実施形態においては、他のユーザの移動予測モデルテーブルTBL5をサーバ50の記憶部330に記憶させる例について説明したが、本発明はこのような例に限定されるものではない。例えば、基地局20の記憶部に記憶させるようにしてもよい。
上述した第2実施形態においては、同一の時間帯に同一の滞在点に到達した回数、または、同一の時間帯に到達した同一の滞在点の個数により、行動類似度を判定する例について説明したが、本発明はこのような例に限定されるものではない。例えば、移動予測モデルテーブルTBL5に記憶されている、所定の滞在点から移動予想滞在点までの遷移確率を用いるようにしてもよい。例えば、当該遷移確率と、滞在推定装置10のユーザの移動予測モデルにおける所定の滞在点から移動予想滞在点までの遷移確率との相関を利用して行動類似度を判定するようにしてもよい。
上述した第2実施形態及び第3実施形態においては、サーバ50においてユーザAと他のユーザの行動の類似度を判定し、移動予測モデルを統合する例について説明した。しかしながら、本発明はこのような例に限定されるものではなく、他のユーザの滞在点推定履歴と移動予測モデルとを、暗号化したり、あるいは、他のユーザを特定できないように匿名化した上で、サーバ50から滞在推定装置10に対して送信し、滞在推定装置10において、行動の類似度判定と、移動予測モデルの統合とを行うようにしてもよい。
上述した第4実施形態においては、親密度の算出を、電話の発着回数または電子メールの送受信回数に基づいて行ったが、本発明はこのような例に限定されるものではない。例えば、通信履歴管理部240により、SNSメッセージの送受信回数を管理し、当該SNSメッセージの送受信回数に基づいて親密度の算出を行うようにしてもよい。また、サーバ50等の外部装置において、他のユーザの連絡帳の登録情報の内容、例えば、連絡帳に登録されている電話番号の個数、メールアドレスの個数、写真設定の有無、誕生日や記念日の登録の有無、住所の登録の有無などを管理し、これらの登録情報の内容と、ユーザAの連絡帳の登録情報の内容とを比較して、親密度を算出するようにしてもよい。
さらに、滞在推定装置10の入出力部120を類似ユーザ設定部として機能させ、ユーザに手動で類似ユーザを設定させるようにすればよい。この場合には、行動類度判定部220は、設定された類似ユーザを、対象ユーザとして判定すればよい。
上述した各実施形態において、無線通信システム1内の各要素(滞在推定装置10、基地局20、交換局30、ゲートウェイ40等)においてCPUが実行する各機能は、CPUの代わりに、ハードウェアで実行してもよいし、例えばFPGA(Field Programmable Gate Array)、DSP(Digital Signal Processor)等のプログラマブルロジックデバイスで実行してもよい。