以下、添付図面を参照して、本発明の好適な実施形態について詳細に説明する。なお、図面の説明において同一又は相当要素には同一符号を付し、重複する説明は省略する。
図1に示すように、本実施形態に係るサーバ10(推定装置)は、所定の位置の特性を推定するための装置である。本実施形態では、サーバ10は、端末30の位置の特性を推定する。この特性とは、端末30のユーザにとって、当該位置の意味を示す情報である。具体的には、自宅、通勤先の職場等である。このように、サーバ10は、端末30の位置の特性を推定することにより、端末30のユーザの生活圏を特定することが可能となる。これにより、例えば、各ユーザへ生活圏に基づいた広告配信を行うことができる。
サーバ10と端末30とは、ネットワークを介して互いに情報の送受信を行うことができる。このネットワークは、例えば、移動体通信網あるいはインターネットを含んで構成されている。
端末30は、ユーザが所持する携帯電話機のような持ち運び可能な電子機器である。端末30は、携帯電話機以外でもよく、例えば、スマートフォン、タブレット型コンピュータ、パーソナルデジタルアシスタント(PDA)等でもよい。
この端末30は、測位機能を有しており、端末30の位置を測位することができる。この測位機能は、例えば、GPS受信機を用いる等、周知技術により実現する。端末30は、予め端末30で定められた測位周期(例えば、数分)で測位を実行する。端末30は、測位を実行すると、測位した結果の情報である位置ログ(位置情報)を生成する。具体的には、端末30は、上記位置ログを識別する情報である測位点IDと、この測位により得られた端末30の位置(端末30により測位された位置)を示す情報(例えば、緯度経度)と、測位した時刻である測位時刻とを含めた位置ログを生成する。端末30は、生成した位置ログをサーバ10へ送信する。端末30は、位置ログを生成する毎に位置ログをサーバ10へ送信するようにしてもよいし、予め定められた期間経過後にまとめてサーバ10へ送信するようにしてもよい。
また、端末30は、充電可能な電池を備えており、端末30が充電器に接続すると、当該電池の充電を行うことができる。また、端末30は、無線通信によりネットワーク(例えば、WiFi(登録商標)による無線LAN(Local Area Network))へ接続をすることができる。また、端末30は、予め設定された時刻で音声出力や振動等を行うアラーム機能を有している。端末30は、上記のような充電、無線通信、アラーム等の動作を実行すると、当該端末30の動作に基づいたログ(端末30の動作に基づいた情報)である端末ログ(動作情報)を生成する。即ち、端末30は、端末30の充電動作を示す情報、端末30が無線通信によるネットワークへの接続に用いる情報(例えば、無線通信する際に接続するアクセスポイントの情報)の情報、及び端末30のアラーム動作を示す情報を生成する。この端末ログには、当該動作をした時刻(端末ログを生成した時刻)である端末ログ生成時刻(ログ取得時刻)も含む。端末30は、端末ログをサーバ10へ送信する。端末30は、端末ログを生成する毎に端末ログをサーバ10へ送信するようにしてもよいし、予め定められた期間経過後にまとめてサーバ10へ送信するようにしてもよい。
端末30は、当該端末30が充電器に接続して、自端末の電池の充電を開始すると、当該充電を開始したことについての端末ログを生成する。具体的に、端末30は、端末ログを識別する情報(端末ログID)と、予め端末30が記憶している、当該端末30のユーザを識別する情報(ユーザID)と、端末ログの種別を示す情報として充電した(充電を開始した)旨の情報と、充電残量を示す情報と、端末ログ生成時刻(充電開始時刻)とを含む端末ログを生成する。端末30は、端末ログを生成する度に、過去の端末ログIDとは異なる端末ログIDを生成する。また、端末30と充電器との接続が解除される(即ち、充電が終了する)と、端末30は、充電が終了したことについての端末ログを生成する。具体的には、端末30は、端末ログIDと、ユーザIDと、端末ログの種別を示す情報として放電した(充電を終了した)旨の情報と、充電残量を示す情報と、端末ログ生成時刻(充電終了時刻)とを示す情報とを含む端末ログを生成する。このように、端末30は、自端末の電池の充電を開始したタイミングで端末ログを生成し、当該電池の充電を終了したタイミングで別の端末ログを生成する。よって、それぞれの端末ログの端末ログ生成時刻に基づいて、充電が行われている時間を算出することができる。
また、端末30は、ユーザ操作により、無線LANへ接続する旨の設定がされていると、公知の近距離無線通信等により、端末30から所定距離範囲内に位置する無線接続可能な無線LANのアクセスポイントを検出する。端末30は、無線接続可能な無線LANのアクセスポイントを検出すると、検出したアクセスポイントに対して無線接続して、当該アクセスポイントを介してネットワークへ接続する。端末30は、ネットワークへ接続すると、当該ネットワークへの接続に関する端末ログを生成する。具体的には、端末30は、端末ログIDと、ユーザIDと、端末ログの種別を示す情報として無線接続を開始した旨の情報(例えば、「WiFiON」という文字列)と、SSID(Service Set Identifier)を示す情報と、BSSID(BasicService Set Identifier)を示す情報と、端末ログ生成時刻を示す情報とを含む端末ログを生成する。ここで、SSIDとは、端末30が無線接続するアクセスポイントの識別名である。BSSIDとは、端末30が無線接続するアクセスポイントのMAC(Media Access Control)アドレスである。なお、1つのSSIDに対して、複数の異なるアクセスポイントが設けられ得る。即ち、SSIDが同じであっても、BSSIDが異なる場合がある。端末30は、アクセスポイントへ無線接続した際に、SSID及びBSSIDを受信し、当該SSID及びBSSIDを端末ログに含める。
また、端末30は、端末30自体が移動した結果、当該端末30が上記アクセスポイントと無線通信可能な範囲から逸脱して、当該アクセスポイントと無線通信できなくなると、無線LANのアクセスポイントを介したネットワークへの接続を終了する。端末30は、ネットワークへの接続を終了すると、当該ネットワークへの接続終了に関する端末ログを生成する。具体的には、端末30は、端末ログIDと、ユーザIDと、端末ログの種別を示す情報として無線接続を終了した旨の情報(例えば、「WiFiOFF」という文字列)と、SSIDを示す情報と、BSSIDを示す情報と、端末ログ生成時刻を示す情報を含む端末ログを生成する。このように、端末30は、ネットワークへ接続したタイミングで端末ログを生成し、ネットワークへの接続を終了したタイミングで別の端末ログを生成する。よって、それぞれの端末ログの端末ログ生成時刻に基づいて、ネットワークへ接続した時間を算出することができる。
また、端末30は、予め設定されたアラーム起動時刻になり、アラーム機能を起動すると、当該アラーム動作をしたことについての端末ログを生成する。具体的には、端末30は、端末ログIDと、ユーザIDと、端末ログの種別を示す情報としてアラーム起動である旨の情報と、端末ログ生成時刻を示す情報とを含む端末ログを生成する。
上記のような位置ログや端末ログを送信する端末30(位置の特性の推定対象の端末)以外に、学習用位置ログや学習用端末ログ(学習用動作情報)を送信する学習用端末がある。この学習用位置ログとは、サーバ10が後述する機械学習による学習モデルを生成するための位置ログである。また、学習用端末ログとは、上記学習モデルを生成するための端末ログである。この学習用端末は、ユーザの入力操作により、端末30が位置する特性を入力することが可能である。学習用端末は、当該特性がユーザ操作により入力されると、上記学習用位置ログとして、当該特性をさらに含めた位置ログを生成する。具体的には、学習用端末は、ユーザの入力操作により当該特性が入力されると、当該入力に応じて測位機能を実行し、測位点IDと、測位により得られた位置を示す情報である緯度経度と、測位時刻と、入力された特性を示す情報(正解データ(特性情報))と、学習用位置ログである旨の情報(例えば、学習用位置ログである旨のフラグ情報)とを含めた学習用位置ログを生成する。上記正解データは、例えば、数値であり、「0」が自宅を示し、「1」が職場を示す。また、学習用端末は、端末30のように、予め学習用端末で定められた測位周期で測位を実行する。学習用端末は、測位を実行すると、測位した結果の情報である学習用位置ログを生成する。学習用端末は、上記のような測位周期で測位した場合、学習用位置ログに正解データを含めずに学習用位置ログである旨の情報を含めた学習用位置ログを生成する。学習用端末は、学習用位置ログ及び学習用端末ログを生成すると、当該学習用位置ログ及び学習用端末ログをサーバ10に送信する。
続いて、サーバ10の説明をする。サーバ10は、情報受信部11(端末情報取得手段、位置取得手段)と、端末ログ記憶部12と、位置ログ記憶部13と、滞留点抽出部14(位置抽出手段)と、滞留点記憶部15と、滞留点クラスタ抽出記憶部16と、位置特性推定部17(推定手段)と、推定結果出力部18(出力手段)とを含む。
図2は、サーバ10のハードウェア構成図である。図2に示すように、サーバ10は、CPU101、主記憶装置であるRAM(Random Access Memory)102及びROM(Read Only Memory)103、通信を行うための通信モジュール104、並びにハードディスク等の補助記憶装置105等のハードウェアを備えるコンピュータを含むものとして構成される。これらの構成要素がプログラム等により動作することにより、図1に示す各機能要素による機能が発揮される。なお、サーバ10は複数台のコンピュータによるコンピュータシステムによって構成されていてもよい。以下、図1に示す各機能要素について説明する。
情報受信部11は、端末30から端末ログ又は位置ログを受信する部分である。情報受信部11は、端末30から端末ログ又は位置ログを受信すると、受信した情報を参照し、受信した情報が端末ログであるか位置ログであるかを判別する。情報受信部11は、受信した情報が端末ログであると判断すると、当該端末ログを端末ログ記憶部12へ登録する。また、情報受信部11は、受信した情報が位置ログであると判断すると、当該位置ログを位置ログ記憶部13へ登録する。情報受信部11は、例えば、データサイズ、データフォーマット(データ項目数)等の違いにより端末ログと位置ログを判別する。また、情報受信部11は、後述する機械学習に用いる情報である学習用の端末ログ及び学習用の位置ログを学習用端末から受信し、学習用の端末ログを端末ログ記憶部12へ登録し、学習用の位置ログを位置ログ記憶部13へ登録する。情報受信部11は、上述のように端末ログ及び位置ログを端末30から受信することにより、端末ログ及び位置ログを取得する。
端末ログ記憶部12は、端末ログを記憶するデータベースである。ここで、端末ログ記憶部12が記憶する情報の例を図3に示す。図3に示すように、端末ログ記憶部12は、端末30が生成した端末ログを識別する端末ログIDを示す「HandsetLogID」と、端末30のユーザを識別するユーザIDである「UserID」と、端末ログの種別を示す情報である「Log_type」と、端末30が無線接続するアクセスポイントの識別名である「SSID」と、端末30が無線接続するアクセスポイントのMacアドレス「BSSID」と、端末30の充電時の充電残量を示す「Remaining」と、端末ログ生成時刻を示す「Timestamp」とを対応付けて記憶する。「HandsetLogID」、「UserID」、「Log_type」及び「Timestamp」は、端末ログ生成対象の動作の種別に関わらず常に入力される情報である。「Log_type」は、動作の種別により入力される情報が異なる。「SSID」及び「BSSID」は、端末30がネットワーク接続及びネットワーク接続終了した際に入力される情報である。「Remaining」は、上記「Log_type」が充電に関することを示す場合に入力される情報である。
位置ログ記憶部13は、位置ログを記憶するデータベースである。ここで、位置ログ記憶部13が記憶する情報の例を図4に示す。図4に示すように、位置ログ記憶部13は、位置ログを識別するIDである測位点IDである「PosLogID」と、端末30のユーザを識別するユーザIDである「UserID」と、端末30が測位した位置を示す緯度経度の内、緯度を示す「Longitude」と、当該位置を示す緯度経度の内、経度を示す「Latitude」と、端末30が測位した時刻を示す「Timestamp」とを対応付けて記憶する。
滞留点抽出部14は、位置ログ記憶部13によって記憶された複数の位置ログを参照し、当該複数の位置ログが示す位置に基づく滞留点を抽出する部分である。ユーザの滞留とは、ユーザがある程度狭い領域に留まっていることであり、即ち、ユーザが所定時間以上、所定の領域内に連続して位置していることである。滞留点は、ユーザが滞留した場合に位置していた領域、又は当該領域を代表する位置(代表位置)である。この代表位置は、例えば、当該所定領域内にユーザが位置していた複数の位置の重心位置である。具体的には、滞留点抽出部14は、複数の位置ログが示す位置(端末30によって測位された複数の位置)が、連続して所定時間(例えば、数時間)以上、所定の狭い領域内に含まれる場合に、当該複数の位置に基づく滞留点を抽出する。
また、滞留点抽出部14は、滞留点が一定範囲に予め定めた閾値以上存在する場合、当該一定範囲内の滞留点に基づく代表位置を定めた滞留点クラスタを生成する。上記代表位置は、当該一定範囲内の滞留点のそれぞれの位置の重心位置である。この代表位置は、滞留点クラスタの位置である。滞留点抽出部14は、予め定められた期間(例えば、1週間)毎に予め定められた時刻にバッチ処理により上記滞留点の抽出処理を開始したり、サーバ10の管理者による位置特性推定要求を示す入力に応じて上記滞留点の抽出処理を開始したりする。
滞留点抽出部14が、位置ログから滞留点を抽出し、当該滞留点をクラスタリングして、滞留点クラスタを生成するまでの処理について図5を用いて説明する。滞留点抽出部14は、予め定められたタイミングで位置ログ記憶部13からユーザ単位で且つ日にち毎に位置ログを取得する。続いて、滞留点抽出部14は、取得した位置ログに基づいて滞留点を抽出する。
具体的には、滞留点抽出部14は、取得した位置ログについて、測位時刻が古い順に滞留点の判断を行う。まず、滞留点抽出部14は、測位時刻が最も古い位置ログに示される位置を滞留点の判断の基準位置とする。滞留点抽出部14は、測位時刻が次の位置ログに示される位置と当該基準位置とを比較する。滞留点抽出部14は、それらの位置の間の距離が、予め設定された滞留点判断用の距離閾値よりも小さいか否かを判断する。滞留点抽出部14は、当該距離が距離閾値よりも小さいと判断したら、更に次の位置ログに示される位置と当該基準位置とを比較して、上記と同様の距離閾値に基づく判断を行う。滞留点抽出部14は、距離が距離閾値よりも小さくなくなる(距離が距離閾値以上となる)まで順次判断を行う。
滞留点抽出部14は、距離が距離閾値よりも小さくなくなる1つ前の位置ログに係る測位時刻と、基準位置の位置ログに係る測位時刻とを比較する。滞留点抽出部14は、それらの測位時刻の間の時間差が、予め設定された滞留点判断用の時間閾値よりも大きいか否かを判断する。滞留点抽出部14は、当該時間差が時間閾値よりも大きいと判断したら、それらの位置ログ(基準位置の位置ログから距離が距離閾値よりも大きくなる1つ前の位置ログまでの位置ログ)を、滞留点を構成する位置ログ(滞留点に対応する位置ログ)であると判断する。即ち、この場合、滞留点抽出部14は、滞留点を抽出できると判断する。滞留点抽出部14は、当該時間差が時間閾値よりも大きくないと判断したら、それらの位置ログ(基準位置の位置ログから距離が距離閾値よりも大きくなる1つ前の位置ログまでの位置ログ)を、滞留点を構成する位置ログではないと判断する。即ち、この場合、滞留点抽出部14は、滞留点を抽出できないと判断する。
また、滞留点抽出部14は、距離が距離閾値よりも小さくなくなった位置ログに示される位置を新たな滞留点の判断の基準位置とし、上記と同様の判断を行う。このように、基準位置から距離閾値までの領域に、時間閾値を超える時間、ユーザが位置していれば滞留点があると判断される。なお、この距離閾値及び時間閾値は、滞留点の抽出の目的等に応じて適宜設定される。なお、滞留点の判断のための領域は、上記のような基準位置に基づく円形の領域でもよいし、基準位置に基づく矩形(メッシュ)の領域でもよい。
滞留点抽出部14は、滞留点を構成するとされた位置ログから、滞留点の位置(緯度経度)を算出する。滞留点の位置は、例えば、滞留点を構成するとされた位置ログによって示される位置の重心(位置の平均)とすることができる。なお、滞留点の位置は、本方法以外で算出されてもよい。滞留点抽出部14は、日にち毎に位置ログ記憶部13から位置ログを取得し、上記の滞留点の位置の算出を日にち毎に行う。
図5(A)は、2つの滞留点を抽出(算出)した例である。滞留点抽出部14は、滞留点P1及び滞留点P2を抽出し、周囲に測位点(位置ログの緯度経度)が密集していない測位点p1〜p9については、滞留点として抽出しない(滞留点を抽出できないと判断する)。また、滞留点抽出部14は、N日分(例えば、1週間分)滞留点を抽出する。滞留点抽出部14は、滞留点を抽出する(滞留点を構成する位置ログであると判断する)と、滞留点に対応する位置ログに含まれるユーザIDと、当該滞留点を示す位置の緯度、経度、当該滞留点に対応する位置ログのID(測位点ID)、当該位置ログの最先の時刻、当該位置ログの最後の時刻を滞留点の抽出結果として特定する。
滞留点抽出部14は、滞留点を抽出すると、抽出した結果に基づく情報(滞留点情報)を滞留点記憶部15へ登録する。滞留点記憶部15が記憶しているデータ構造を図6に示す。滞留点記憶部15は、滞留点間で一意である滞留点IDを示す「StayPointID」と、端末30のユーザを識別するユーザIDである「UserID」と、滞留点の位置を示す緯度経度の内、緯度を示す「Longitude」と、当該滞留点の位置を示す緯度経度の内、経度を示す「Latitude」と、滞留開始時刻(滞留点に対応する位置ログの内、最先の時刻)を示す「from_time」と、滞留終了時刻(滞留点に対応する位置ログの内、最後の時刻)を示す「to_time」と、滞留点に対応する位置ログのIDを示す「PosLogIDs」とを対応付けて記憶する。
なお、滞留点抽出部14は、他の方法により、滞留点を抽出するようにしてもよい。例えば、位置ログの位置、時刻に基づいて、周知技術(例えば、西田京介, 戸田浩之, 倉島健, 内山匡, 確率的訪問POI 分析: 時空間行動軌跡からのユーザモデリング," マルチメディア、分散、協調とモバイル(DICOMO2013)シンポジウム, 2C-6, pp. 334-345, 2013.)である時空間ミーンシフトクラスタリングアルゴリズムを用いて滞留点を抽出してもよい。
滞留点抽出部14は、上述のように、日にち毎に位置ログを取得し、当該位置ログから滞留点を抽出し、N日分滞留点を抽出した後に、滞留点に基づき滞留点クラスタを生成する。この滞留点クラスタは、互いに近い範囲に位置する滞留点の集合である。例えば、滞留点抽出部14は、図5(B)に示すように、滞留点P1〜P9がある場合、公知技術のミーンシフトにより滞留点クラスタを生成する。滞留点抽出部14は、例えば、ユーザID毎に上記滞留点クラスタを生成する。
予め設定されているミーンシフトのカーネル幅(距離に基づいた幅)に基づいて、滞留点抽出部14は、滞留点クラスタを生成する。滞留点抽出部14は、例えば、N日分全ての滞留点を、当該滞留点の緯度経度に基づいてクラスタ化する。このように、滞留点抽出部14は、互いに距離的に近い滞留点をクラスタリングして滞留点クラスタ(長期間(例えば、N日間)の内によく滞在した場所)を抽出する。滞留点抽出部14は、滞留点クラスタを構成するとされた滞留点から、滞留点クラスタの代表位置(緯度経度)を算出する。例えば、滞留点クラスタを構成するとされた滞留点の位置の重心(位置の平均)とすることができる。なお、滞留点クラスタの代表位置は、本方法以外で算出されてもよい。例えば、図5(B)に示すように、滞留点P1〜P9がある場合、滞留点P1、滞留点P4、及び滞留点P5が密集している(滞留点P1からカーネル幅内に滞留点P4、滞留点P5が含まれる)ので、滞留点抽出部14は、滞留点クラスタC1を抽出する。同様に、滞留点抽出部14は、各滞留点クラスタ(滞留点クラスタC2、滞留点クラスタC3、滞留点クラスタC4)を抽出する。
滞留点抽出部14は、滞留点クラスタを抽出すると、抽出した結果に基づく情報(滞留点クラスタ抽出情報)を滞留点クラスタ抽出記憶部16へ登録する。滞留点クラスタ抽出記憶部16が記憶している滞留点クラスタ抽出情報のデータ構造を図7に示す。滞留点クラスタ抽出記憶部16は、滞留点クラスタ間で一意である滞留点クラスタIDを示す「StayPointClusterID」と、端末30のユーザを識別するユーザIDである「UserID」と、滞留点クラスタの位置(上記代表位置)を示す緯度経度の内、緯度を示す「Longitude」と、当該滞留点クラスタの位置を示す緯度経度の内、経度を示す「Latitude」と、滞留点クラスタを構成する滞留点IDを示す「StayPointIDs」と、特性結果(自宅又は職場)を示す「Type」と、当該Typeの確率(正答確率)を示す「Score」とを対応付けて記憶する。滞留点抽出部14により、滞留点クラスタ抽出情報が登録された時点では、「Type」及び「Score」には、情報が入力されていない。
滞留点抽出部14は、滞留点クラスタ抽出記憶部16に滞留点クラスタ抽出を全ユーザ分登録し終えたら、滞留点抽出部14から位置特性推定部17へ滞留点クラスタ抽出記憶部16の登録完了した旨を通知する。
また、滞留点抽出部14は、後述する学習用データを生成する際に、学習用データのために、学習用位置ログを用いて、学習用の滞留点を抽出したり、当該学習用の滞留点を用いて滞留点クラスタ(学習用の滞留点クラスタ抽出情報)を生成したりする。この場合、滞留点抽出部14は、位置ログ記憶部13から学習データである旨の情報が付されている位置ログを取得する点以外は、上述の滞留点を抽出したり、滞留点クラスタを生成したりする方法と同一である。学習用の滞留点クラスタ生成後は、位置特性推定部17へ通知する。
位置特性推定部17は、情報受信部11により取得された端末ログに基づいて、端末30が動作をした位置の特性を推定する部分である。また、位置特性推定部17は、滞留点抽出部14によって抽出された滞留点クラスタの代表位置と、抽出対象の所定期間に対応する端末ログに基づいて位置の特性を推定する。また、位置特性推定部17は、端末ログのログ生成時刻にさらに基づいて位置の特性を推定する。位置特性推定部17は、滞留点抽出部14から滞留点クラスタ抽出記憶部16の完了通知を受信すると、位置の特性を推定する。
位置特性推定部17は、位置の特性を推定する方法として機械学習による方法と、予め位置特性推定部17で設定されているルールベースによるものがある。
(機械学習による方法)
位置特性推定部17は、機械学習による方法は、予め学習データを生成しておき、当該学習データに基づく学習モデルを生成し、当該学習モデルを用いて位置特性を推定する方法である。この学習データとは、端末ログと、滞留点クラスタの情報とに基づいた学習用端末の状況(滞在状況、学習用端末の動作)を示す情報と、当該状況における学習用端末の位置の特性(正解データ)とを対応付けた情報である。学習モデルとは、当該学習データに基づいて生成され、推定対象の位置における端末ログの動作の入力に応じて特性を出力するモデルである。まず、学習データを生成する手順から説明する。上述のように、滞留点抽出部14によって、学習用の滞留点クラスタが生成された後、位置特性推定部17は、当該ユーザの端末ログを端末ログ記憶部12から取得し、当該端末ログと滞留点クラスタに基づいて素性(説明変数)を生成する。この素性とは、上記滞留点クラスタの情報とに基づいた端末30の状況(滞在状況、学習用端末の動作)を示す情報である。素性の例を図8に示す。位置特性推定部17は、各ユーザの滞留点クラスタ毎に、曜日・時間帯毎の滞在有無、滞在時間、滞留点数を生成し、さらにN日分の滞在時間、滞留点数、滞在日数を算出する。
まず、位置特性推定部17は、あるユーザのある学習用の滞留点クラスタ(滞留点クラスタ抽出情報)を抽出する。位置特性推定部17は、滞留点クラスタ抽出記憶部16から滞留点クラスタ抽出情報を取得する。位置特性推定部17は、取得した滞留点クラスタ抽出情報の「StayPointIDs」に含まれる滞留点IDに対応する滞留点情報を滞留点記憶部15から取得し、取得した滞留点情報の「from_time」と「to_time」とを参照し、滞在した時間帯を特定することにより、曜日毎に各時間帯の滞在有無を生成する。具体的には、位置特性推定部17は、滞留点情報の「from_time」と「to_time」とに含まれる時間帯を「1」とし、滞留点情報の「from_time」と「to_time」とに含まれない時間帯を「0」とする。また、位置特性推定部17は、上記の取得した滞留点情報の「from_time」と「to_time」とを参照し、滞在時間を特定する。具体的に、位置特性推定部17は、曜日毎の滞留点情報の「from_time」から「to_time」までの期間の合計を各曜日の滞在時間とする。位置特性推定部17は、曜日毎の滞留点情報の数を滞留点数とする。
位置特性推定部17は、取得した滞留点情報の全ての「from_time」から「to_time」までの期間の合計を総滞在時間とする。また位置特性推定部17は、取得した滞留点情報の数を総滞留点数とする。滞留点情報の「from_time」と「to_time」とを参照し、N日の内各日に滞在していたか否かを特定し、滞在した日数を算出する。
また、位置特性推定部17は、「WiFi接続」については、端末ログに基づいて各曜日の接続有無、接続時間、接続SSIDの数、接続BSSIDの数、他滞留点クラスタで同一SSID接続の有無を算出する。また、位置特性推定部17は、充電については、各曜日の充電有無、充電時間と、総充電時間とを端末ログに基づいて算出する。また、位置特性推定部17は、アラームについては、各曜日のアラーム起動有無を端末ログに基づいて特定する。まず、位置特性推定部17は、ユーザ、上記取得した滞留点情報の「from_time」と「to_time」とを参照し、この滞留点情報の「from_time」から「to_time」までの時間に対応する端末ログを端末ログ記憶部12から取得する。具体的には、位置特性推定部17は、上記取得した滞留点情報の「from_time」から「to_time」までの時間に、端末ログの「Timestamp」が含まれる端末ログを取得する。位置特性推定部17は、取得した端末ログの「Log_type」及び「Timestamp」を参照し、「Log_type」が、WiFiONである端末ログの「Timestamp」が示す曜日については、WiFiの接続有無を「1」として、WiFiONである端末ログが無い曜日については、WiFiの接続有無を「0」とする。
位置特性推定部17は、取得した端末ログの「Log_type」及び「Timestamp」を参照し、「Log_type」が「WiFiON」である時刻から「Log_type」が「WiFiOFF」である時刻までの期間を曜日毎に算出し、算出した時間を接続時間とする。位置特性推定部17は、取得した端末ログの「SSID」の数を算出し、接続SSID数を算出する。また、位置特性推定部17は、取得した端末ログの「BSSID」の数を算出し、接続BSSID数を算出する。位置特性推定部17は、取得した端末ログの「SSID」を参照し、「SSID」に含まれるSSIDと同一のSSIDが、同一ユーザIDで且つ他の滞留点クラスタIDに対応する端末ログの「SSID」にあるか否かを特定する。この結果、位置特性推定部17は、他の滞留点クラスタIDに対応する端末ログの「SSID」がある場合、他滞留点クラスタで同SSID接続の値を「1」とし、他の滞留点クラスタIDに対応する端末ログの「SSID」が無い場合、他滞留点クラスタで同SSID接続の値を「0」とする。
位置特性推定部17は、取得した端末ログの「Log_type」及び「Timestamp」を参照し、「Log_type」が、充電である端末ログの「Timestamp」が示す曜日については、充電有無を「1」として、充電である端末ログが無い曜日については、充電有無を「0」とする。
位置特性推定部17は、取得した端末ログの「Log_type」及び「Timestamp」を参照し、「Log_type」が充電である時刻から「Log_type」が放電である時刻までの期間を曜日毎に算出し、算出した時間を充電時間とする。位置特性推定部17は、各日の充電時間の合計を総充電時間とする。
位置特性推定部17は、取得した端末ログの「Log_type」及び「Timestamp」を参照し、「Log_type」が、アラーム起動である端末ログの「Timestamp」が示す曜日については、アラーム起動有無を「1」として、アラーム起動である端末ログが無い曜日については、アラーム起動有無を「0」とする。
位置特性推定部17は、上記のようにユーザ、滞留点クラスタ毎に素性を生成する。そして、位置特性推定部17は、滞留点クラスタに対応する滞留点に対応する位置ログに含まれる正解データを取得し、当該取得した正解データから目的変数となる正解データを抽出する。具体的に、位置特性推定部17は、上記のように正解データを取得し、取得した正解データの中でデータ入力されていない正解データ(測位周期で測位した時に生成した位置ログの正解データ)を抽出対象から除外し、入力されている正解データの中で最も多い値を目的変数として上記素性に対応付ける。これにより、素性と目的変数とを対応付けた学習データを生成する。
位置特性推定部17は、生成した学習データに基づいて公知技術(例えば、SVM、ランダムフォレスト、ロジスティック回帰)により特性を示す情報を出力する学習モデルを生成する。なお、位置特性推定部17は、当該特性を示す情報に加えて、当該特性の正答確率を出力する学習モデルを生成してもよい。この正答確率とは、当該特性の確からしさを示す値である。
位置特性推定部17は、推定対象の滞留点クラスタに対して、上述と同様に滞留点クラスタ毎に素性を生成する。位置特性推定部17は、上記学習モデルに、当該素性を説明変数として入力し、上記学習モデルの出力結果を位置の特性とする。なお、位置特性推定部17は、学習モデルの出力結果として、公知の技術により位置の特性の正答確率を出力する。この場合、位置特性推定部17は、滞留点クラスタIDと、学習モデルの出力結果(特性、正答確率)とを推定結果出力部18へ出力する。
(ルールベースによる方法)
続いて、ルールベースによる方法を説明する。位置特性推定部17は、端末ログに基づいて位置特性を推定するための基準(条件)を予め記憶しておき、滞留点クラスタに対応する端末ログの情報が当該基準に合致するか否かに基づいて位置の特性を推定する。位置特性推定部17は、上記基準として、自宅判定基準と職場判定基準とを記憶する。自宅判定基準とは、例えば、自宅に滞在していると推定され得る基準である。位置特性推定部17は、自宅判定基準を複数記憶しておき、予め記憶している閾値以上の条件に合致している場合、位置の特性が自宅であると判定する。また、職場判定基準とは、職場に滞在していると推定され得る基準である。位置特性推定部17は、職場判定基準を複数記憶しておき、予め記憶している閾値以上の基準に合致している場合、位置の特性が職場であると判定する。ルールベースによる方法も、機械学習により推定する場合と同様に、滞留点クラスタ毎に位置の特性を推定する。
位置特性推定部17は、自宅判定基準として、「WiFiに接続有り」、「WiFi接続は常に同じSSID」、「WiFi接続は常に同じBSSID(Macアドレス)」、「アラーム起動履歴有」、「充電した履歴有」、「1日で最も長い充電時間」、「夜に滞在している」、「毎日滞在している」、「所定時間(例えば、5時間)以上滞在している」、及び「N日中複数回訪問(滞留点数が複数)」の10の基準を記憶している。このように、無線通信、アラーム起動、充電についての基準に、滞在時間等の基準を含めて判断する。
位置特性推定部17は、滞留点クラスタ抽出記憶部16から滞留点クラスタ抽出情報を取得し、取得した滞留点クラスタ抽出情報の「StayPointIDs」に含まれる滞留点IDに対応する滞留点情報を滞留点記憶部15から取得する。位置特性推定部17は、上記の滞留点情報に基づいて上記の10の基準のそれぞれに合致するか判定する。また、後述する職場判定基準に合致するか否か判定する際にも上記の滞留点情報を用いて判定する。
「WiFiに接続有り」に合致するか否か判定する方法を説明する。位置特性推定部17は、上記取得した滞留点情報の「from_time」から「to_time」までの時間に、端末ログの「Timestamp」が含まれる端末ログを取得する。「WiFi接続は常に同じSSID」、「WiFi接続は常に同じBSSID(Macアドレス)」、「アラーム起動履歴有」、「充電した履歴有」、「1日で最も長い充電時間」の基準に合致するか否か判定するときも、位置特性推定部17は、上記端末ログを用いてそれぞれの基準に合致するか否かを判定する。
位置特性推定部17は、取得した端末ログの「Log_type」及び「Timestamp」を参照し、「Log_type」が、「WiFiON」である端末ログが少なくとも1つある場合、「WiFiに接続有り」の基準を満たすと判定し、「WiFiON」である端末ログが1つも無い場合、「WiFiに接続有り」の基準を満たさないと判定する。この基準は、端末30が自宅に位置している場合、例えば、自宅に設けられた無線LANルータ等のアクセスポイントを用いて、無線LANに接続して通信を行うことを考慮したものである。
続いて、「WiFi接続は常に同じSSID」に合致するか否かを判定する方法を説明する。位置特性推定部17は、取得した端末ログの「SSID」を参照し、全て同一のSSIDであるか否かを判定し、全て同一のSSIDである場合、「WiFi接続は常に同じSSID」の基準を満たすと判定し、全てのSSIDが同一でない場合、「WiFi接続は常に同じSSID」の基準を満たさないと判定する。この基準は、通常、端末30が自宅に位置している場合、自宅に設けられた特定のSSIDが設定される無線LANルータ等のアクセスポイントを用いて、無線LANに接続して通信を行うことを考慮したものである。続いて、「WiFi接続は常に同じBSSID(Macアドレス)」に合致するか否かを判定する方法を説明する。位置特性推定部17は、取得した端末ログの「BSSID」を参照し、全て同一のBSSIDであるか否かを判定し、全て同一のBSSIDである場合、「WiFi接続は常に同じBSSID(Macアドレス)」の基準を満たすと判定し、全てのBSSIDが同一でない場合、「WiFi接続は常に同じBSSID(Macアドレス)」の基準を満たさないと判定する。この基準は、通常、自宅に設けられる無線LANルータ等のアクセスポイントは1つであり、端末30は、常に同一のBSSIDのアクセスポイントを用いて、無線LANに接続して通信を行うことを考慮したものである。
続いて、「アラーム起動履歴有」に合致するか否かを判定する方法を説明する。位置特性推定部17は、取得した端末ログの「Log_type」を参照し、「Log_type」が、「アラーム起動」である端末ログがあるか否かを判定し、「Log_type」が、「アラーム起動」である端末ログがある場合、「アラーム起動履歴有」の基準を満たすと判定し、「Log_type」が、「アラーム起動」である端末ログが無い場合、「アラーム起動履歴有」の基準を満たさないと判定する。この基準は、自宅において、例えば、ユーザの起床のためにアラームが利用されることを考慮したものである。
続いて、「充電した履歴有」に合致するか否かを判定する方法を説明する。位置特性推定部17は、取得した端末ログの「Log_type」を参照し、「Log_type」が、充電である端末ログがあるか否かを判定し、「Log_type」が、充電である端末ログがある場合、「充電した履歴有」の基準を満たすと判定し、「Log_type」が、充電である端末ログが無い場合、「充電した履歴有」の基準を満たさないと判定する。この基準は、通常、自宅において、端末30の充電が行われることを考慮したものである。
続いて、「1日で最も長い充電時間」に合致するか否かを判定する方法を説明する。位置特性推定部17は、取得した端末ログの「Log_type」及び「Timestamp」を参照し、「Log_type」が充電である時刻から「Log_type」が放電である時刻までの期間を充電時間とする。そして、位置特性推定部17は、上記「Timestamp」と同一日の端末ログから対象の滞留点クラスタに対応する端末ログとは別の端末ログを参照し、当該別の端末ログから上記のように充電時間を算出する。続いて、位置特性推定部17は、滞留点クラスタに対応する端末ログから算出した充電時間と、当該別の端末ログから算出した充電時間とを比較して、滞留点クラスタに対応する端末ログから算出した充電時間が「1日で最も長い充電時間」であるか否かを判定する。位置特性推定部17は、滞留点クラスタに対応する端末ログから算出した充電時間が1日で最も長い充電時間である場合、「1日で最も長い充電時間」の基準を満たすと判定し、滞留点クラスタに対応する端末ログから算出した充電時間が1日で最も長い充電時間では無い場合、「1日で最も長い充電時間」の基準を満たさないと判定する。この基準は、通常、自宅における端末30の充電(例えば、ユーザの睡眠中の充電)が、他の場所での充電よりも長く行われることを考慮したものである。
続いて、「夜に滞在している」に合致するか否かを判定する方法を説明する。位置特性推定部17は、取得した滞留点情報の「from_time」と「to_time」とを参照し、滞在した時間帯を特定し、当該滞在時間帯が、予め位置特性推定部17で設定されている夜の時間帯(例えば、19時〜4時)に含まれるか否かを判定する。位置特性推定部17は、滞在時間帯が当該夜の時間帯に含まれると判定した場合、「夜に滞在している」という基準を満たすと判定し、滞在時間帯が当該夜の時間帯に含まれない場合、「夜に滞在している」という基準を満たさないと判定する。
続いて、「毎日滞在している」に合致するか否かを判定する方法を説明する。位置特性推定部17は、取得した滞留点情報の「from_time」と「to_time」とを参照し、上記N日間の全ての日の滞留点情報があるか否かを判定する。位置特性推定部17は、上記N日間の全ての日の滞留点情報がある場合、「毎日滞在している」という基準を満たすと判定し、上記N日間の全ての日の滞留点情報が無い場合、「毎日滞在している」という基準を満たさないと判定する。
続いて、「所定時間(例えば、5時間)以上滞在している」に合致するか否かを判定する方法を説明する。位置特性推定部17は、取得した滞留点情報の「from_time」と「to_time」とを参照し、滞在した期間を特定する。位置特性推定部17は、当該滞在した期間が、予め位置特性推定部17において設定されている判定用の期間(例えば、5時間)以上であるか否かを判定し、当該滞在した期間が当該判定用の期間以上である場合、「所定時間(例えば、5時間)以上滞在している」という基準を満たすと判定し、当該滞在した期間が当該判定用の期間未満である場合、「所定時間(例えば、5時間)以上滞在している」という基準を満たさないと判定する。
続いて、「N日中複数回訪問(滞留点数が複数)」に合致するか否かを判定する方法を説明する。位置特性推定部17は、取得した滞留点情報の「from_time」と「to_time」とを参照し、複数の滞留点情報が同日であるか否かを判定することにより、複数の滞留点情報が同日である場合、「N日中複数回訪問」という基準満たすと判定し、複数の滞留点情報が同日でない場合、「N日中複数回訪問」という基準満たさないと判定する。
位置特性推定部17は、上記の10の基準の内、上記閾値である6以上満たす場合に、滞留点クラスタの特性が「自宅」であると判定する。
位置特性推定部17は、職場判定基準として、「WiFiに接続有り」、「WiFi接続は常に同じSSID」、「WiFi接続のBSSIDが1つ以上」、「別の滞留点クラスタで同じSSIDのWiFiに接続」、「充電した履歴有」、「昼に滞在している」、「2日以上滞在している」、「所定時間(例えば、3時間)以上滞在している」、及び「N日中複数回訪問(滞留点数が複数)」の9の基準を記憶している。このうち、「WiFiに接続有り」、「WiFi接続は常に同じSSID」、「充電した履歴有」、「所定時間(例えば、3時間)以上滞在している」、及び「N日中複数回訪問(滞留点数が複数)」については、上述の自宅判定基準の「WiFiに接続有り」、「WiFi接続は常に同じSSID」、「充電した履歴有」、「所定時間(例えば、3時間)以上滞在している」、及び「N日中複数回訪問(滞留点数が複数)」と同一であるので、説明を省略する。なお、職場判定基準の「昼に滞在している」は、設定されている時間帯(例えば、10時〜16時)が上述の自宅判定基準の「夜に滞在している」と異なるだけで、判定方法は同一であるので、詳細な説明を省略する。
上記の職場判定基準のうち、「WiFiに接続有り」は、端末30が職場に位置している場合、職場に設けられたアクセスポイントを用いて、無線LANに接続して通信を行うことを考慮したものである。「WiFi接続は常に同じSSID」は、この基準は、通常、端末30が職場に位置している場合、職場に設けられた特定かつ同一のSSIDが設定される無線LANルータ等のアクセスポイントを用いて、無線LANに接続して通信を行うことを考慮したものである。「充電した履歴有」は、通常、職場において、端末30の充電が行われることを考慮したものである。
続いて、「WiFi接続のBSSIDが1つ以上」に合致するか否かを判定する方法を説明する。位置特性推定部17は、取得した端末ログの「BSSID」を参照し、BSSIDが1つ以上であるか否かを判定し、BSSIDが1つ以上である場合、「WiFi接続のBSSIDが1つ以上」という基準を満たすと判定する。この基準は、職場には、同一の滞留点クラスタに対応する場所において、複数のアクセスポイントが設けられることがあり得、端末30は、1つ以上BSSIDのアクセスポイントの何れかを用いて、無線LANに接続して通信を行うことを考慮したものである。即ち、同一の滞留点クラスタでも、複数のアクセスポイントが用いられることを考慮したものである。
続いて、「2日以上滞在している」に合致するか否かを判定する方法を説明する。位置特性推定部17は、取得した滞留点情報の「from_time」と「to_time」とを参照し、上記N日間のうち2日以上の滞留点情報があるか否かを判定する。位置特性推定部17は、上記2日間以上の滞留点情報がある場合「2日以上滞在している」という基準を満たすと判定し、上記2日間以上の滞留点情報が無い場合、「2日以上滞在している」という基準を満たさないと判定する。
続いて、「別の滞留点クラスタで同じSSIDのWiFiに接続」に合致するか否かを判定する方法を説明する。位置特性推定部17は、取得した滞留点情報の「from_time」と「to_time」とを参照し、上記取得した滞留点情報の「from_time」から「to_time」までの時間に、端末ログの「Timestamp」が含まれる端末ログを取得する。位置特性推定部17は、当該端末ログに含まれるSSIDと同一である、他の滞留点クラスタに対応する滞留点に対応する端末ログに含まれるSSIDを検索する。この他の滞留点クラスタが有る場合、上記端末ログを用いてそれぞれの基準に合致するか否かを判定し、他の滞留点クラスタが有る場合、「別の滞留点クラスタで同じSSIDのWiFiに接続」の基準を満たすと判定し、他の滞在点クラスタが無い場合、「別の滞留点クラスタで同じSSIDのWiFiに接続」の基準を満たさないと判定する。この基準は、職場では、異なる位置(滞在点クラスタ)においても、同一のSSID(例えば、社内で共通して用いられるSSID)のアクセスポイントで無線LANに接続できるようになっている場合があることを考慮したものである。
位置特性推定部17は、上記の9の基準の内、上記閾値である4以上満たす場合に、滞留点クラスタの特性が「職場」であると判定する。
また、位置特性推定部17は、上記の自宅判定基準を満たすか否かを判定して、自宅であると判定した場合は、対象の滞留点クラスタが「自宅」であると判定して、判定を終了し、対象の滞留点クラスタが「自宅」であると判定しない場合、続いて、職場判定基準を満たすか否かを判定し、職場であると判定した場合、対象の滞留点クラスタが「職場」と判定する。また、対象の滞留点クラスタが「職場」と判定した場合において、「別の滞留点クラスタで同じSSIDのWiFiに接続」であると判定した場合、当該別の滞留点クラスタも「職場」と判定する(当該他の滞留点クラスタが未判定である場合だけでなく、「その他」と判定されている場合に判定結果を上書きするようにしてもよい。)。これは、同一職場において、複数のアクセスポイントが同一のSSIDを有していることが多いことによる。職場判定基準を満たすか否かを判定し、職場でないと判定した場合、「その他」と判定する。
位置特性推定部17は、判定対象の滞留点クラスタIDと、判定結果とを判定結果出力部18へ出力する。なお、位置特性推定部17は、機械学習とルールベースによるそれぞれの方法の何れかのみ使用して推定してもよいし、双方を組み合わせて推定するようにしてもよい。
判定結果出力部18は、位置特性推定部17により推定された位置の特性を出力する部分である。具体的には、判定結果出力部18は、上記特性を滞留点クラスタ抽出記憶部16へ登録処理をすることにより、特性の出力を行う。判定結果出力部18は、滞留点クラスタIDと、特性のみ受信した場合、滞留点クラスタ抽出記憶部16の当該滞留点クラスタIDを有する滞留点クラスタ抽出情報の「Type」に特性を登録する。このように、滞留点クラスタに「自宅」「職場」のラベルを付ける。また、判定結果出力部18は、正答確率を受信した場合、滞留点クラスタ抽出情報の「Score」に正答確率を入力する。
このように、判定結果出力部18が、ユーザIDと位置と、位置の特性とを対応付けた情報を登録するので、当該情報を用いて適切な広告配信を行うことができる。例えば、広告を配信する広告配信サーバが、上記情報を参照して、ユーザの自宅位置を特定して、自宅周辺における、自宅に適した広告(例えば、生活品の広告)を配信する。
続いて、図9〜図13のフローチャートを用いて、サーバ10が実行する処理手順の説明をする。図9に示すフローチャートは、位置の特性をする全体処理を示す図である。まず、情報受信部11は、端末30から位置ログを取得し、当該位置ログを位置ログ記憶部13へ登録する(ステップS1)。そして、情報受信部11は、端末30から端末ログを取得し、当該端末ログを端末ログ記憶部12へ登録する(ステップS2)。なお、情報受信部11は、端末ログを取得してから位置ログを取得してもよいし、位置ログと端末ログを同時に取得してもよい。
滞留点抽出部14は、予め定められたタイミング又はサーバ10の管理者による位置特性推定要求の入力に応じて、位置ログ記憶部13から位置ログを取得する。続いて、滞留点抽出部14は、滞留点抽出し、抽出した滞留点の情報を滞留点記憶部15へ登録する(ステップS3)。続いて、滞留点抽出部14は、滞留点記憶部15に登録されている滞留点情報を用いて滞留点クラスタを生成し、生成した滞留点クラスタ(滞留点クラスタ抽出情報)を滞留点クラスタ抽出記憶部16へ登録する(ステップS4)。位置特性推定部17は、滞留点クラスタ抽出記憶部16、滞留点記憶部15、及び端末ログ記憶部12に記憶されている情報を用いて自宅職場推定を滞留点クラスタ毎に行う(ステップS5)。推定結果出力部18は、当該推定結果を滞留点クラスタ抽出記憶部16へ登録する(ステップS6)。全ての滞留点クラスタに対して推定を行ったか否かを判定し(ステップS7)、全ての滞留点クラスタに対して推定していない場合、まだ推定していない滞留点クラスタについてステップS5、ステップS6の処理を行う。全ての滞留点クラスタに対して推定をした場合、処理を終了する。
続いて、図10に示す滞留点クラスタ生成処理(図9のステップS4)における詳細な処理手順を説明する。まず、滞留点抽出部14は、予め記憶しているカーネル幅を取得し(ステップS11)、滞留点記憶部15からユーザ毎に滞留点の情報を取得し、滞留点の緯度経度を取得する(ステップS12)。滞留点抽出部14は、滞留点の緯度経度からカーネル幅内に位置する滞留点をクラスタ化し(ステップS13)、滞留点クラスタの重心点を算出し(ステップS14)、当該重心点を含む滞留点クラスタ抽出情報を滞留点クラスタ抽出記憶部16へ登録して(ステップS15)、処理を終了する。
続いて、図11に示すフローチャートを用いて、機械学習による方法において、事前に記憶しておく学習モデルを生成する手順を説明する。まず、情報受信部11は、学習用位置ログ(学習用ユーザ位置ログ)を学習用の端末30から取得し、当該位置ログを位置ログ記憶部13へ登録する(ステップS21)。また、情報受信部11は、学習用端末ログ(学習用ユーザ端末ログ)を学習用の端末30から取得し、当該端末ログを端末ログ記憶部12へ登録する(ステップS22)。
所定のタイミングで、滞留点抽出部14は、位置ログ記憶部13から学習用の位置ログを取得し、当該位置ログに基づいて滞留点を抽出し、当該抽出結果による滞留点情報を滞留点記憶部15へ登録する(ステップS23)。また、滞留点抽出部14は、滞留点記憶部15に登録された学習用の滞留点情報を用いて、学習用の滞留点クラスタを生成し、生成結果である滞留点クラスタ抽出情報を滞留点クラスタ抽出記憶部16へ登録する(ステップS24)。なお、ステップS23及びステップS24の処理は、ユーザ単位で行う。続いて、位置特性推定部17は、滞留点クラスタごとに素性を生成し(ステップS25)、全ての滞留点クラスタの素性を生成したか否かを判定する(ステップS26)。位置特性推定部17は、全ての滞留点クラスタの素性を生成するまでステップS25の処理を繰り返す。全ての滞留点クラスタの素性を生成した場合、位置特性推定部17は、全ユーザの滞留点クラスタを生成しているか否かを判定し(ステップS27)、全ユーザの滞留点クラスタを生成していない場合、ステップS23へ進み、全ユーザの滞留点クラスタを生成した場合、全ユーザの素性と、目的変数とを対応付けた学習データを生成する(ステップS28)。そして、位置特性推定部17は、機械学習による学習モデルを生成し(ステップS29)、処理を終了する。
続いて、図12に示すフローチャートを用いて、機械学習による特性の推定方法の処理手順を説明する。位置特性推定部17は、推定対象となる滞留点クラスタ毎に素性を生成し(ステップS31)、当該素性を入力値として、事前に生成した学習モデルを用いて自宅・職場の推定を行う(ステップS32)。
続いて、図13に示すフローチャートを用いて、ルールベースの判定手順を説明する。位置特性推定部17は、対象となる滞留点クラスタが、自宅判定基準を満たすか(上述の10の基準の内6以上満たす)否かを判定し(ステップS41)、自宅判定基準を満たす場合(ステップS41;YES)、滞留点クラスタが自宅であると推定し(ステップS42)、処理を終了する。位置特性推定部17は、対象となる滞留点クラスタが、自宅判定基準を満たさない場合(ステップS41;NO)、職場判定基準を満たすか否かを判定する(ステップS43)。位置特性推定部17は、職場判定基準を満たす場合(ステップS43;YES)、当該滞留点クラスタを職場と推定し(ステップS44)、別の滞留点クラスタで同じSSIDで接続しているか否かを判定する(ステップS45)。位置特性推定部17は、別の滞留点クラスタで同じSSIDで接続している場合(ステップS45;YES)、当該別の滞留点クラスタも職場と推定する(ステップS46)。ステップS43において、職場判定基準を満たさなかった場合、位置特性推定部17は、滞留点クラスタをその他と推定し(ステップS47)、処理を終了する。
なお、上述の実施形態では、サーバ10は、端末30から取得した位置ログを用いて滞留点クラスタを抽出して、当該滞留点クラスタの位置と、当該位置に対応する端末ログに基づいて、位置の特性を推定する場合について述べた。しかしながら端末30から位置ログを取得せずに、他の装置から対象となる位置ログ及び端末ログを取得して、当該端末ログを用いて、位置特性を推定するようにしてもよい。また、位置の特性の推定自体には、必ずしも、位置を示す情報(例えば、緯度経度)は必要ないため、推定対象の位置における端末ログのみを取得して(位置ログを取得せずに)、当該端末ログに基づいて当該推定対象の位置の特性を推定してもよい。
例えば、上記の他の装置において、滞留点クラスタを抽出して、当該滞留点クラスタに対応する端末ログを記憶し、当該他の装置から当該端末ログをサーバ10へ送信することが考えられる。
上述の実施形態では、サーバ10は、自宅・職場を推定する場合について述べたが、通学先(小学校、中学校等)等の他の位置の特性を推定するようにしてもよい。
上述の実施形態では、時刻も考慮する場合について述べたが、時刻を考慮しなくてもよい。即ち、滞在時間を考慮せずに推定するようにしてもよい。
上述の実施形態では、端末30のアラーム動作を示す情報、端末30の充電動作を示す情報、及び端末30が無線通信によるネットワークへの接続に用いるアクセスポイントを示す情報に基づいて端末30が動作をした位置の特性を推定する場合について述べたが、端末30の他の動作を示す情報を用いて位置の特性を推定するようにしてもよい。
(作用効果)
続いて、作用効果について説明する。サーバ10では、情報受信部11は、端末30の動作に基づいた情報である端末ログを取得し、位置特性推定部17は、当該端末ログにより取得された端末のログを用いて位置の特性を推定する。上述したように、端末30の動作は、位置の特性に応じたものとなり得る。従って、本実施形態によれば、日属性に基づいて位置の特性(自宅、職場)を推定する場合より正確に位置の特性を推定することができる。即ち、時間に基づくユーザの生活パターンの違いにかかわらず、位置の特性をより精度高く推定することができる。よって、勤務形態が夜勤、シフト制、職場が複数ある、営業職等のユーザの位置特性を適切に推定することができる。
また、滞留点抽出部14は、複数の位置ログを参照し、所定期間内に端末30によって測位された複数の位置が所定範囲内に含まれる場合に、当該複数の位置に基づく滞留点を抽出し、位置特性推定部17は、当該滞留点の期間に対応する端末ログに基づいた、当該端末30が動作をした位置の特性を推定する。この場合、端末30が所定期間、一定範囲内に位置していた場所(滞留した位置)における特性を推定するので、端末30が単に通過した位置等、推定する必要の無い位置に対して推定してしまうことを回避することができる。
また、情報受信部11は、端末30が動作をした時刻情報(「Timestamp」)をさらに取得し、位置特性推定部17は、当該時刻情報に基づいて端末30の動作した位置の特性を推定する。この場合、サーバ10は、端末ログの時刻情報を用いることにより、端末の使用時間帯等を考慮して、より適切に位置の意味を推定することができる。
位置特性推定部17は、学習データを用いて機械学習を実行し、学習モデルを生成し、当該学習モデルに端末ログに基づく素性を入力し、学習モデルの出力結果を得ることにより、位置の特性を推定する。この場合、サーバ10は、学習用の端末30における実際の位置の特性と当該位置における学習用の端末30の動作に基づいた動作情報とに基づいて学習モデルを生成し、当該学習モデルを用いて動作情報に基づいて位置の特性を推定するので、学習用の端末30が位置していた際における学習用の端末30の動作の傾向に即して適切に位置の特性を推定することができる。
位置特性推定部17は、基準(自宅判定基準、職場判定基準)を予め記憶しておき、端末ログが、上記基準に合致するか否かに基づいて端末30の位置の特性を推定する。サーバ10は、位置の特性を推定するための基準を予め記憶しておき、当該基準に基づいて位置の特性を推定するので、簡易な構成で適切に位置の特性を推定することができる。
情報受信部11は、端末30のアラーム動作を示す情報、端末30の充電動作を示す情報、及び端末30が無線通信によるネットワークへの接続に用いるアクセスポイントを示す情報を取得している。この場合、サーバ10は、端末30の動作情報として、位置の意味を推定し得る端末の動作情報を取得するので、適切に位置の特性を推定することができる。