以下に、本願に係る推定装置、推定方法及び推定プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る推定装置、推定方法及び推定プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
〔1.実施形態に係る推定処理の一例〕
まず、図1を用いて、実施形態に係る推定処理の一例について説明する。図1は、実施形態に係る推定処理の一例を示す図である。具体的には、図1では、推定装置100が、移動手段が対応付けられたアプリケーション(以下、単に「アプリ」と表記する)に関連して取得される位置情報である第1位置情報と、所定のユーザの位置を示す位置情報である第2位置情報とを取得し、第1位置情報と第2位置情報の各々の特徴に基づいて、所定のユーザの移動状況を推定する推定処理を行う例を示す。
図1に示す推定装置100は、実施形態に係る推定処理を実行する情報処理装置であり、例えば、ユーザが利用する端末装置等と相互に通信を行うサーバ装置である。実施形態に係る推定装置100は、各ユーザを識別する識別情報と各ユーザの位置を示す情報とを対応付けて取得し、取得した情報を位置情報として蓄積する。例えば、推定装置100は、ユーザが利用する端末装置にインストールされる複数のアプリの管理サーバであり、各々のアプリの利用に伴い、ユーザから定期的に位置情報を取得する。なお、推定装置100は、蓄積した位置情報や、推定したユーザの移動状況等を他の事業者に提供するサービスを行ってもよい。実施形態では、推定装置100は、例えば、ユーザの位置情報を利用して交通案内を行うナビサービスや地図提供サービス、電車の乗り換え案内を行う乗り換え案内サービス、タクシーの配車を行うタクシー配車サービス、位置情報を利用したゲームを提供するゲームサービス等に係るアプリを提供する。
図1に示すユーザ端末101及び102は、スマートフォン等の情報処理端末である。実施形態では、ユーザ端末101はユーザU01によって利用され、ユーザ端末102はユーザU02によって利用される。以下では、ユーザ端末101及び102等を区別する必要のないときは、「ユーザ端末10」と総称する。また、ユーザU01及びU02等を区別する必要のないときは、「ユーザ」と総称する。なお、以下では、ユーザ端末10をユーザと読み替える場合がある。例えば、「ユーザが位置情報を送信する」とは、実際には、「ユーザが利用するユーザ端末10が位置情報を送信する」ことを意味する場合がある。
ユーザ端末10は、例えばGPS(Global Positioning System)等を利用して、自装置が所在する位置(例えば経度や緯度の数値等)を検知し、検知した位置を示す情報である位置情報を取得する。なお、位置情報は、位置を示す情報のみならず、その位置が検知された時間を含んでもよい。そして、ユーザ端末10は、例えば利用するアプリの制御や推定装置100の要求に従い、検知した位置情報を推定装置100に送信する。具体的には、ユーザ端末10は、推定装置100がユーザに提供したナビアプリや地図サービスの制御(機能)に従い、定期的かつ継続的に位置情報を推定装置100に送信する。ユーザ端末10から送信される位置情報は、推定装置100が有する記憶部に蓄積され、種々の情報処理に利用される。
ここで、推定装置100の管理者等のサービスを提供する提供者は、ユーザの移動状況に合わせたサービスを展開することを所望する場合がある。例えば、サービス提供者は、自動車で移動しているユーザには自動車移動に適するサービス(例えば、自動車関連の広告の配信や、移動速度に合わせてユーザが訪れると推測される店舗の広告の配信等)を提供することを所望する。また、サービス提供者は、ユーザの移動状況に合わせて適切なアプリをユーザ端末10上で起動させたり、プッシュ通知を行ったりすることを所望する。このように、サービス提供者には、ユーザの移動状況を的確に把握したいというニーズが存在する。
なお、移動状況(例えば、自動車移動や列車移動)に応じた定義情報(モデル)を準備し、当該定義情報とユーザの状況(コンテキスト)とを比較することで、ユーザの移動状況を推定することも可能である。しかしながら、あらゆる移動手段に対して定義情報を準備することは困難であり、また、定義情報(例えば、所定の時速を超える移動を自動車移動であると推定すること)が正確に当該移動手段を示すとは限らないことから、ユーザの移動状況を推定する精度が高いとはいえない。
そこで、推定装置100は、予め移動手段がアプリに関連して取得される位置情報である第1位置情報を利用することで、所定のユーザの移動手段を推定する。例えば、推定装置100は、ユーザ端末10においてカーナビアプリが起動され、カーナビアプリがユーザから利用されている場合、当該ユーザの移動手段が「自動車」であるとみなす。そして、推定装置100は、取得された第1位置情報に基づいて、移動手段が「自動車」である場合のユーザの行動の特徴を抽出する。具体的には、推定装置100は、移動手段が「自動車」である場合のユーザの位置情報の推移の特徴量に基づき、ユーザの移動手段が「自動車」であるか否かを判別するためのモデルを生成する。その後、推定装置100は、移動手段が不明である所定のユーザの位置情報(区別のため、「第2位置情報」と称する)が取得された場合に、生成したモデルに第2位置情報を入力し、出力された指標値(スコア)等に基づいて、当該ユーザの移動手段を推定する。言い換えれば、推定装置100は、極めて高い精度で移動手段が推測されるアプリ(上記したカーナビアプリ等)を移動手段が対応付けられているアプリとみなし、当該アプリから取得された第1位置情報を正解データとしてモデルの学習(生成)を行う。これにより、推定装置100は、ユーザの移動状況を精度よく推定することができる。以下、実施形態に係る推定処理について、図1を用いて流れに沿って説明する。
図1に示す例において、ユーザU01は、自動車20に乗車中であり、ユーザ端末101にインストールされたカーナビアプリを使用中である。このとき、ユーザ端末101は、定期的かつ継続的に(例えば数十秒や数分ごとのタイミング)ユーザU01の位置を検知し、ユーザU01の位置を示す情報を取得する。そして、ユーザ端末101は、取得した位置情報を推定装置100に送信する。
推定装置100は、ユーザ端末101から送信される位置情報を第1位置情報として取得する(ステップS01)。具体的には、推定装置100は、カーナビアプリにおいて対応付けられている移動手段である「自動車」と、ユーザU01の位置情報とが対応付けられた情報を第1位置情報として取得する。なお、推定装置100は、アプリと移動手段との対応付けに関して、予め定義された定義情報を有していてもよい。例えば、推定装置100は、カーナビアプリと移動手段「自動車」とが対応付けられることが定義された情報を、推定装置100の管理者等から受け付けてもよい。
推定装置100は、移動手段が対応付けられた位置情報(第1位置情報)を第1位置情報記憶部121に蓄積する(ステップS02)。なお、図1での図示は省略しているが、推定装置100は、ユーザU01以外のユーザからも第1位置情報を取得し、蓄積する。かかる処理により、推定装置100は、後述するモデル生成に要する充分な第1位置情報を取得する。
その後、推定装置100は、移動状況を推定するためのモデルを生成する(ステップS03)。例えば、推定装置100は、ユーザU01から取得した位置情報の推移を参照し、かかる位置情報の特徴量に基づいて、移動手段「自動車」における移動の特徴を学習する。具体的には、推定装置100は、所定時間ごとのユーザU01の移動量(移動距離)や、所定時間におけるユーザU01の移動速度、ユーザU01が略同一の地点にとどまる時間長、ユーザU01が移動している場所の地図情報(例えば、ユーザU01の位置情報を既知の地図情報に照らした場合に、ユーザU01が道路を移動しているか否か等)等を特徴量として、移動手段「自動車」における移動の特徴を学習する。
推定装置100は、かかる学習処理を経て、所定のユーザの複数の位置情報が入力された場合に、当該所定のユーザの複数の位置情報が移動手段「自動車」による移動であるか否か、を推定するためのモデルを生成する。言い換えれば、推定装置100は、所定のユーザの複数の位置情報が入力された場合に、所定のユーザが「自動車で移動している」ことの確度を示す指標値(スコア)を出力するモデルを生成する。推定装置100は、生成したモデルをモデル記憶部122に記憶する。かかるモデル生成には、種々の既知の学習処理等が利用されてもよい。
その後、推定装置100は、移動手段が不明なユーザであるユーザU02の位置情報(第2位置情報)を取得する(ステップS04)。例えば、ユーザU02は、移動手段が対応付けられたアプリを利用していない状態でユーザ端末102によって位置情報が取得されるユーザである。ユーザU02は、例えば、推定装置100から提供されるアプリのうち、移動手段が対応付けられていないアプリであるポータルサービス用アプリを利用しているものとする。この場合、ユーザ端末102は、ポータルサービス用アプリの機能に従い、ポータルサービスのログイン中に継続的にユーザU02の位置情報を取得し、取得した位置情報を推定装置100に送信する。
推定装置100は、上記のように移動手段が不明な位置情報(第2位置情報)を取得し、第2位置情報記憶部123に蓄積する(ステップS05)。そして、推定装置100は、モデルに入力する情報として充分な情報量が蓄積された場合に、モデルを用いてユーザU02の移動状況を推定する(ステップS06)。
具体的には、推定装置100は、所定時間に渡り取得されたユーザU02の第2位置情報をモデルに入力し、出力されるスコアを参照する。そして、推定装置100は、出力されたスコアが所定の閾値を超える場合には、ユーザU02の移動状況として、ユーザU02の移動手段が「自動車」であり、ユーザU02は自動車で移動中であると推定する。
一方、推定装置100は、出力されたスコアが所定の閾値以下の場合には、ユーザU02の移動状況として、ユーザU02の移動手段が「自動車」でないと推定する。この場合、推定装置100は、例えば、ユーザU02の第2位置情報を、他の移動手段に対応する他のモデルに入力してユーザU02の移動状況を推定してもよい。
このように、実施形態に係る推定装置100は、移動手段が対応付けられたアプリに関連して取得される位置情報である第1位置情報を取得する。また、推定装置100は、所定のユーザ(図1の例ではユーザU02)の位置を示す位置情報である第2位置情報を取得する。そして、推定装置100は、取得した第1位置情報に基づく特徴量と、第2取得部によって取得された第2位置情報に基づく特徴量とに基づいて、所定のユーザの移動状況を推定する。
すなわち、実施形態に係る推定装置100は、カーナビアプリのような、予め移動手段が特定可能なアプリに関連して取得される第1位置情報を正解データとして、所定のユーザの移動手段を推定する。これにより、推定装置100は、位置情報のみでは推定が困難なユーザの移動手段について、高い精度で推定することができる。結果として、推定装置100は、ユーザの移動状況を精度よく推定することができる。
なお、上記の図1の例において、推定装置100が、ユーザ端末101及び102が検知した位置情報をユーザ端末101及び102から取得することを示した。しかし、推定装置100は、ユーザ端末101及び102からの送信によらず、所定時間おきにユーザ端末101及び102をクロール(crawl)することにより、位置情報を取得するようにしてもよい。また、推定装置100は、必ずしもユーザ端末101及び102自身が検知した位置情報を取得するのではなく、推定装置100がユーザ端末101及び102から検出した情報に基づいてユーザ端末101及び102の位置を推定し、推定した情報をユーザ端末101及び102の位置情報としてもよい。
また、上記の図1の例において、推定装置100が、第1位置情報に基づき移動手段の特徴量を抽出することを示した。しかし、推定装置100は、第1位置情報とともに取得される各種センサ情報(加速度、音、気温、湿度等)を含めた情報に基づき、移動手段の特徴量を抽出してもよい。以下、上記のような実施形態に係る推定処理を実行する推定装置100、及び推定装置100を含む推定システム1について、詳細に説明する。
〔2.推定システムの構成〕
次に、図2を用いて、実施形態に係る推定装置100が含まれる推定システム1の構成について説明する。図2は、実施形態に係る推定システム1の構成例を示す図である。図2に例示するように、実施形態に係る推定システム1には、ユーザ端末10と推定装置100とが含まれる。これらの各種装置は、ネットワークNを介して、有線又は無線により通信可能に接続される。また、図2に示す推定システム1に含まれる各装置の数は図示したものに限られない。例えば、推定システム1には、複数台のユーザ端末10が含まれてもよい。
ユーザ端末10は、上述のように、スマートフォンを含む携帯電話機や、タブレット端末や、デスクトップ型PC(Personal Computer)や、ノート型PCや、PDA(Personal Digital Assistant)等の情報処理端末である。また、ユーザ端末10には、眼鏡型や時計型の情報処理端末であるウェアラブルデバイス(wearable device)も含まれる。さらに、ユーザ端末10には、位置情報を取得するための情報処理機能を有する種々のスマート機器が含まれてもよい。例えば、ユーザ端末10には、TV(Television)や冷蔵庫、掃除機などのスマート家電や、自動車などのスマートビークル(Smart vehicle)や、ドローン(drone)、家庭用ロボットなどが含まれてもよい。なお、実施形態に係るアプリは、スマートフォン等のモバイル端末で実行されるアプリに限られず、上記したスマート家電等で実行されるアプリであってもよい。
ユーザ端末10は、ユーザによる操作や、ユーザ端末10が有する機能に応じて、自装置の位置情報を取得し、記憶する。例えば、ユーザ端末10は、上述したGPSシステムなどの外部システムと通信を行うことによって位置情報を取得する。そして、ユーザ端末10は、取得した位置情報を推定装置100に送信する。
推定装置100は、上述のように、移動手段が対応付けられたアプリに関連して取得される位置情報である第1位置情報と所定のユーザの第2位置情報とを取得し、各々の位置情報の特徴量に基づいて所定のユーザの移動状況を推定するサーバ装置である。
なお、推定装置100は、種々のサービスを提供するサービスサーバとしての機能を有していてもよい。例えば、推定装置100は、災害情報や各種警報情報を提供する災害情報発信サービスや、交通案内等を発信するナビサービスや、位置情報を利用したゲーム等をユーザに提供する。なお、推定装置100は、上記サービス以外にも、種々のサービスを提供してもよい。また、推定装置100は、サービスに係るウェブサイトを提供するウェブサーバとしての機能を有していてもよい。例えば、推定装置100は、ポータルサイト、ニュースサイト、オークションサイト、天気予報サイト、ショッピングサイト、ファイナンス(株価)サイト、路線検索サイト、地図提供サイト、旅行サイト、飲食店紹介サイト、ウェブブログなどに関連する各種情報を含むウェブページをユーザ端末10に配信してもよい。
〔3.ユーザ端末の構成〕
次に、図3を用いて、実施形態に係るユーザ端末10の構成について説明する。図3は、実施形態に係るユーザ端末10の構成例を示す図である。図3に示すように、ユーザ端末10は、通信部11と、入力部12と、表示部13と、検知部14と、記憶部15と、制御部16とを有する。
(通信部11について)
通信部11は、ネットワークNと有線又は無線で接続され、推定装置100等との間で情報の送受信を行う。通信部11は、例えばNIC(Network Interface Card)等によって実現される。
(入力部12及び表示部13について)
入力部12は、ユーザから各種操作を受け付ける入力装置である。例えば、入力部12は、ユーザ端末10に備えられた操作キー等によって実現される。表示部13は、各種情報を表示するための表示装置である。例えば、表示部13は、液晶ディスプレイ等によって実現される。なお、ユーザ端末10にタッチパネルが採用される場合には、入力部12の一部と表示部13とは一体化される。
(検知部14について)
検知部14は、ユーザ端末10に関する各種情報を検知する。具体的には、検知部14は、ユーザ端末10に対するユーザの操作や、ユーザ端末10の所在する位置情報や、ユーザ端末10と接続されている機器に関する情報や、ユーザ端末10における環境等を検知する。図3に示す例では、検知部14は、操作検知部141と、位置検知部142と、外部装置検知部143と、環境検知部144とを有する。
(操作検知部141について)
操作検知部141は、ユーザ端末10に対するユーザの操作を検知する。例えば、操作検知部141は、入力部12に入力された情報に基づいて、ユーザの操作を検知する。すなわち、操作検知部141は、入力部12に画面をタッチする操作の入力があったことや、音声の入力があったこと等を検知する。また、操作検知部141は、ユーザによって所定のアプリが起動されたことを検知してもよい。かかるアプリがユーザ端末10内の撮像装置を動作させるアプリである場合、操作検知部141は、ユーザによって撮像機能が利用されていることを検知する。また、操作検知部141は、ユーザ端末10内に備えられた加速度センサやジャイロセンサ等で検知されたデータに基づき、ユーザ端末10自体が動かされているといった操作を検知してもよい。
(位置検知部142について)
位置検知部142は、ユーザ端末10の現在位置を検知する。具体的には、位置検知部142は、GPS衛星から送出される電波を受信し、受信した電波に基づいてユーザ端末10の現在位置を示す位置(例えば、緯度及び経度)を検知する。
位置検知部142は、種々の手法により位置を検知することができる。例えば、位置検知部142は、GPS衛星に限らず、ユーザ端末10の様々な通信機能を利用して位置を検知してもよい。
例えば、位置検知部142は、ユーザ端末10のWi−Fi(登録商標)通信機能や、各通信会社が備える通信網を利用して、ユーザ端末10の位置を検知する。具体的には、位置検知部142は、Wi−Fi通信等を行い、付近の基地局やアクセスポイントとの距離を測位することにより、自装置の位置を検知する。
また、位置検知部142は、ユーザ端末10のBluetooth(登録商標)機能を利用して位置を検知してもよい。例えば、位置検知部142は、Bluetooth機能によって接続されるビーコン(beacon)発信機と接続することにより、自装置の位置を検知する。
また、位置検知部142は、加速度センサやジャイロセンサ等を利用したPDR(Pedestrian Dead Reckoning)技術を利用して自装置の位置を検知してもよい。また、位置検知部142は、予め測定された構造物の地磁気のパターンと、自装置が備える地磁気センサとに基づいて、自装置の位置を検知してもよい。
また、例えば、ユーザ端末10が駅改札や商店等で使用される非接触型ICカードと同等の機能を備えている場合(もしくは、ユーザ端末10が非接触型ICカードの履歴を読み取る機能を備えている場合)、ユーザ端末10によって駅での乗車料金の決済等が行われた情報とともに、使用された位置が記録される。位置検知部142は、かかる情報を取得することで、ユーザ端末10の位置を検知してもよい。また、位置は、ユーザ端末10が備える光学式センサや、赤外線センサ等によって検知されてもよい。
位置検知部142は、上述した手法の一つ又は組合せを用いて、自装置の位置を検知する。そして、後述する取得部161は、位置検知部142が検知した位置と、検知した時間との情報に基づいて、ユーザ端末10の位置情報を取得する。
(外部装置検知部143について)
外部装置検知部143は、ユーザ端末10に接続される外部装置を検知する。例えば、外部装置検知部143は、外部装置との相互の通信パケットのやり取りなどに基づいて、外部装置を検知する。そして、外部装置検知部143は、検知した外部装置をユーザ端末10と接続される端末として認識する。また、外部装置検知部143は、外部装置との接続の種類を検知してもよい。例えば、外部装置検知部143は、外部装置と有線で接続されているか、無線通信で接続されているかを検知する。また、外部装置検知部143は、無線通信で用いられている通信方式等を検知してもよい。また、外部装置検知部143は、外部装置が発する電波を検知する電波センサや、電磁波を検知する電磁波センサ等によって取得される情報に基づいて、外部装置を検知してもよい。
(環境検知部144について)
環境検知部144は、ユーザ端末10における環境を検知する。環境検知部144は、ユーザ端末10に備えられた各種センサや機能を利用し、環境に関する情報を検知する。例えば、環境検知部144は、ユーザ端末10の周囲の音を収集するマイクロフォンや、ユーザ端末10の周囲の照度を検知する照度センサや、ユーザ端末10の物理的な動きを検知する加速度センサ(又は、ジャイロセンサなど)や、ユーザ端末10の周囲の湿度を検知する湿度センサや、ユーザ端末10の所在位置における磁場を検知する地磁気センサ等を利用する。そして、環境検知部144は、各種センサを用いて、種々の情報を検知する。例えば、環境検知部144は、ユーザ端末10の周囲における騒音レベルや、ユーザ端末10の周囲が撮像に適する照度であるか等を検知する。さらに、環境検知部144は、カメラで撮影された写真や映像に基づいて周囲の環境情報を検知してもよい。
(記憶部15について)
記憶部15は、各種情報を記憶する。記憶部15は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。例えば、記憶部15は、検知部14によって検知された各種情報を、検知された日時と対応付けて記憶する。具体的には、記憶部15は、位置検知部142によって検知された位置に基づく位置情報を記憶する。また、記憶部15は、ユーザ端末10にインストールされたアプリに関する情報を記憶する。
(制御部16について)
制御部16は、例えば、コントローラ(controller)であり、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、ユーザ端末10内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部16は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
制御部16は、推定装置100にユーザ端末10の位置情報を提供する処理を制御する。例えば、制御部16は、ユーザ端末10の位置情報の提供処理を実現するためのプログラム(アプリ)を実行制御する。プログラムは、推定装置100にアクセスすることによりユーザ端末10にダウンロードされ実行されてもよいし、ユーザ端末10を有するユーザU01による操作に従ってサーバ装置(推定装置100、又は、各種プログラムを提供する外部サーバ)からダウンロードされ、ユーザ端末10にインストールされてもよい。
図3に示すように、制御部16は、取得部161と、受信部162と、送信部163とを有し、以下に説明する情報処理の機能や作用を実現または実行する。例えば、制御部16は、RAMを作業領域として上述したプログラムを実行することにより、以下に説明する情報処理の機能や作用を実現する。なお、制御部16の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部16が有する各処理部の接続関係は、図3に示した接続関係に限られず、他の接続関係であってもよい。
(取得部161について)
取得部161は、各種情報を取得する。例えば、取得部161は、検知部14を制御することにより、検知部14によって検知される各種情報を取得する。例えば、取得部161は、位置検知部142によって検知された情報に基づいて、ユーザ端末10の位置情報を取得する。なお、取得部161は、位置情報に限らず、ユーザ端末10の周囲の環境に関する情報等の各種センサ情報を含む、ユーザ端末10のコンテキストに関する情報を取得してもよい。
取得部161は、所定の時間ごとに位置情報を取得するようにしてもよい。例えば、取得部161は、定期的(1分ごとや、3分ごとや、5分ごと等)に、上述した検知部14を制御すること等により、位置情報を取得する。なお、取得部161が位置情報を取得するタイミングは、推定装置100によって設定されてもよい。
また、取得部161は、位置情報に関連するアプリに関する情報を取得する。位置情報に関連するアプリとは、例えば、ユーザの位置を検知させる機能を制御したアプリである。すなわち、取得部161は、ユーザの位置情報と、当該位置情報を取得するための処理を制御したアプリとを対応付けた情報を取得する。言い換えれば、取得部161は、位置情報とともに、当該位置情報がいずれのアプリの機能によって取得されたものであるかを示す情報を取得する。なお、取得部161は、位置情報がいずれかのインストールされたアプリの機能によって取得されたものでなく、例えば、OS(Operating System)の機能によって取得されたものであるという情報を取得してもよい。
(受信部162について)
受信部162は、各種情報を受信する。例えば、受信部162は、推定装置100から送信される位置情報の要求を受信する。受信部162は、受信した情報を、制御部16の各処理部へ送る。
(送信部163について)
送信部163は、各種情報を送信する。例えば、送信部163は、受信部162に受信された要求に従い、位置情報を推定装置100に送信する。
例えば、送信部163は、ユーザを識別するための識別情報と、取得部161によって取得された位置情報と、当該位置情報を取得するための制御を行ったアプリとを対応付けて、推定装置100に送信する。このとき、送信部163は、取得部161によって位置情報が取得されるたびに位置情報を送信してもよいし、所定の期間ごとに位置情報を送信してもよい。例えば、送信部163は、定期的(1分ごと、3分ごと、5分ごと、1時間ごとなど)に位置情報が取得部161によって取得された場合であっても、予め設定された時間ごとに位置情報を推定装置100に送信するようにしてもよい。また、送信部163が位置情報を送信するタイミングは、推定装置100によって設定されてもよい。
〔4.推定装置の構成〕
次に、図4を用いて、実施形態に係る推定装置100の構成について説明する。図4は、実施形態に係る推定装置100の構成例を示す図である。図4に示すように、推定装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、推定装置100は、推定装置100を利用する管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
(通信部110について)
通信部110は、例えばNIC等によって実現される。通信部110は、ネットワークNと有線又は無線で接続され、ネットワークNを介して、ユーザ端末10等との間で情報の送受信を行う。
(記憶部120について)
記憶部120は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部120は、第1位置情報記憶部121と、モデル記憶部122と、第2位置情報記憶部123と、とを有する。
(第1位置情報記憶部121について)
第1位置情報記憶部121は、ユーザの位置情報のうち、移動手段が対応付けられたアプリに関連して取得された位置情報を記憶する。ここで、図5に、実施形態に係る第1位置情報記憶部121の一例を示す。図5は、実施形態に係る第1位置情報記憶部121の一例を示す図である。図5に示した例では、第1位置情報記憶部121は、「端末ID」、「ユーザID」、「第1位置情報」といった項目を有する。また、「第1位置情報」の項目は、「利用アプリ」、「移動手段」、「取得日時」、「位置」、「精度」、「各種センサ情報」といった小項目を有する。
「端末ID」は、ユーザが利用するユーザ端末10を識別する識別情報を示す。「ユーザID」は、ユーザを識別する識別情報を示す。なお、本明細書中では、図5に示すような識別情報を参照符号として用いる場合がある。例えば、ユーザID「U01」によって識別されるユーザを「ユーザU01」と表記する場合がある。
なお、各ユーザは、複数のユーザ端末10を所有していてもよい。この場合、推定装置100は、ユーザを一意に識別する識別情報を利用することで、複数のユーザ端末10から取得された位置情報とユーザとを対応付ける。なお、ユーザの識別情報とは、例えば、推定装置100が提供するサービスにおいて各ユーザに付与されるサービス用ID(ユーザアカウント)等である。かかるIDは、推定装置100のみならず、推定装置100と提携した事業者によって発行されてもよい。これにより、推定装置100は、一人のユーザが複数のユーザ端末10を利用していたり、異なる環境でサービスにログインしていたりする場合でも、当該ユーザを一意に特定して位置情報を取得することができる。また、推定装置100は、ユーザの識別情報として、サービスを利用した際のクッキー(Cookie)情報や、端末固有の端末ID等を利用してもよい。
「第1位置情報」は、移動手段が対応付けられたアプリに関連して取得された位置情報を示す。「利用アプリ」は、位置情報を取得する制御を行ったアプリの名称もしくは識別情報を示す。「移動手段」は、アプリに対応付けられた移動手段を示す。
「取得日時」は、位置がユーザ端末10によって検知(取得)された日時を示す。「位置」は、ユーザ(言い換えればユーザ端末10)の具体的な位置を示す。図5では、位置を「G01」といった概念で表記しているが、実際には、位置の項目には、ユーザの位置を示す具体的な情報(例えば経度や緯度の数値等)が記憶される。
「精度」は、ユーザの位置を示す情報の精度を示す。実施形態では、精度は、例えば「低」、「中」、「高」の三段階で示される。精度は、例えば、ユーザ端末10によって位置が検知された際の検知手段に基づき、ユーザの位置を特定することのできる精度に応じて記憶される。具体的には、ユーザの位置を特定する際に数十メートルから数百メートルの誤差が生じるような検知手段(例えば検知手段がGPSのみであった場合等)の場合、取得された位置情報の精度は「低」となる。また、精度が「低」である位置情報と比較して精度の高い検知手段(例えば、検知手段がWi−FiやGPS等を組み合わせたものであった場合等)の場合、当該取得手段によって取得された位置情報の精度は「中」となる。また、精度が「中」である第1位置情報と比較して精度の高い検知手段(例えば、検知手段がBluetooth(ビーコン)を利用したものであった場合等)の場合、当該取得手段によって取得された第1位置情報の精度は「高」となる。なお、上記した精度の判定は一例であり、推定装置100は、位置情報の検知の技術に応じて柔軟に精度の判定基準を変更してもよい。
「各種センサ情報」は、位置が検知された際に、各種センサによって検知された情報を示す。図5では、各種センサ情報を「X01」といった概念で表記しているが、実際には、各種センサ情報の項目には、ユーザ端末10の加速度や気温や湿度、周辺の音声情報等の各種センサによって取得された具体的な情報が記憶される。
すなわち、図5では、第1位置情報記憶部121に記憶されるデータの一例として、端末ID「C01」によって識別されるユーザ端末10を利用するユーザU01の第1位置情報として、利用アプリ「カーナビ」によって取得され、移動手段が「自動車」と対応付けられた情報が記憶されていることを示している。また、第1位置情報の一例は、取得日時「T01」において位置「G01」にユーザU01が所在し、その位置の精度は「中」であり、各種センサ情報が「X01」であることを示している。
なお、図5での図示は省略したが、第1位置情報記憶部121には、位置情報とともに、ユーザの属性情報等が記憶されてもよい。具体的には、第1位置情報記憶部121は、属性情報として、ユーザの年齢や性別や職業や年収や居住地等の種々の具体的な情報を記憶する。
また、第1位置情報記憶部121には、サービスの利用履歴等に基づいて、ユーザの興味関心情報や、ユーザの行動履歴等が記憶されてもよい。例えば、興味関心情報は、種々のサービスの利用を介して、推定装置100によってユーザに設定される情報(ユーザの購買履歴や検索履歴から、ユーザが興味関心を抱いていると想定されるカテゴリや情報の内容等)である。また、行動履歴情報は、種々のサービスにおけるユーザの行動履歴(ウェブページ等の閲覧履歴や、商品の購買履歴や、検索履歴等)である。
(モデル記憶部122について)
モデル記憶部122は、第1位置情報に基づいて生成されるモデルであって、ユーザの移動状況を推定するために用いられるモデルを記憶する。ここで、図6に、実施形態に係るモデル記憶部122の一例を示す。図6は、実施形態に係るモデル記憶部122の一例を示す図である。図6に示した例では、モデル記憶部122は、「モデルID」、「移動手段」、「学習データ」といった項目を有する。
「モデルID」は、モデルを識別する識別情報を示す。「移動手段」は、モデルが推定する移動手段の種別を示す。「学習データ」は、モデルの学習に用いられた情報群を示す。図6では、学習データを「P01」といった概念で表記しているが、実際には、学習データの項目には、学習に用いられた複数の第1位置情報に関する情報が記憶される。
すなわち、図6では、モデル記憶部122に記憶されるデータの一例として、モデルID「M01」で識別されるモデルM01は、ユーザが移動手段「自動車」で移動しているか否かを推定するためのモデルであり、学習データ「P01」を利用して学習(生成)されたモデルであることを示している。
(第2位置情報記憶部123について)
第2位置情報記憶部123は、所定のユーザの位置を示す位置情報であり、実施形態に係る推定処理の対象となる位置情報である第2位置情報を記憶する。言い換えれば、第2位置情報記憶部123は、移動手段が不明であるユーザに対応する位置情報を記憶する。ここで、図7に、実施形態に係る第2位置情報記憶部123の一例を示す。図7は、実施形態に係る第2位置情報記憶部123の一例を示す図である。図7に示した例では、第2位置情報記憶部123は、「端末ID」、「ユーザID」、「第2位置情報」といった項目を有する。また、「第2位置情報」の項目は、「取得日時」、「位置」、「精度」、「各種センサ情報」といった小項目を有する。
「端末ID」、「ユーザID」、「取得日時」、「位置」、「精度」及び「各種センサ情報」といった各項目は、図5で示した同一の項目に対応する。「第2位置情報」は、移動手段が不明であるユーザから取得された位置情報を示す。
すなわち、図7では、第2位置情報記憶部123に記憶されるデータの一例として、端末ID「C02」によって識別されるユーザ端末10を利用するユーザU02の第2位置情報が記憶されていることを示している。また、ユーザU02の第2位置情報の一例は、取得日時「T21」において位置「G21」にユーザU02が所在し、その位置の精度は「中」であり、各種センサ情報が「X21」であることを示している。
なお、第2位置情報記憶部123には、第1位置情報記憶部121と同様、ユーザの属性情報や、ユーザの興味関心情報や、ユーザの行動履歴等が記憶されてもよい。
(制御部130について)
制御部130は、例えば、コントローラであり、CPUやMPU等によって、推定装置100内部の記憶装置に記憶されている各種プログラム(推定プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現される。
図4に示すように、制御部130は、第1取得部131と、生成部132と、第2取得部133と、推定部134とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図4に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部130が有する各処理部の接続関係は、図4に示した接続関係に限られず、他の接続関係であってもよい。
(第1取得部131について)
第1取得部131は、移動手段が対応付けられたアプリに関連して取得される位置情報である第1位置情報を取得する。
例えば、第1取得部131は、歩行又は自転車による移動手段が対応付けられたナビアプリによって取得される第1位置情報を取得する。具体的には、第1取得部131は、歩行や自転車等の移動手段を前提としてユーザのナビゲーションを行うためのアプリによって取得される位置情報を、第1位置情報として取得する。
また、第1取得部131は、自動車による移動手段が対応付けられたカーナビアプリによって取得される第1位置情報を取得する。例えば、第1取得部131は、カーナビアプリを起動してカーナビゲーションを行っているユーザ端末10から、第1位置情報を取得する。
また、第1取得部131は、自動車の配車を要求するアプリである配車アプリを利用したユーザの位置情報であって、当該配車アプリを介して配車された自動車で当該ユーザが移動した区間において取得された位置情報を、第1位置情報として取得してもよい。配車アプリとは、例えば、タクシーを所定の位置に呼ぶためのタクシー配車アプリである。タクシー配車アプリによれば、乗車した時間情報や、タクシーを降車した時間(例えば、アプリを介して乗車料金を支払いが行われた時間)が記憶される。第1取得部131は、例えば、タクシー配車アプリによって取得された情報に基づき、ユーザが移動した区間を特定し、当該区間において取得された位置情報を、第1位置情報として取得する。この場合、かかる区間の移動を示す位置情報では、移動手段として「自動車(タクシー)」が対応付けられる。
また、第1取得部131は、路線検索アプリを利用したユーザの位置情報であって、当該路線検索アプリによって示された乗車時間において取得された位置情報を、当該路線検索アプリによって示された移動手段とともに前記第1位置情報として取得してもよい。
例えば、ユーザは、電車の路線検索を行うアプリを利用し、所望する行先へ向かう電車の乗車時間及び降車時間を検索する。このとき、乗車時間から降車時間までの間にユーザは電車に乗っていると想定される。そこで、第1取得部131は、路線検索アプリによって示された乗車時間において取得された位置情報を、移動手段「電車」と対応付けた第1位置情報として取得する。なお、路線検索アプリは、電車に限らず、バス等の他の交通機関の路線検索を行ってもよい。この場合、第1取得部131は、ユーザが検索した移動手段が対応付けられた第1位置情報を取得する。
また、第1取得部131は、位置情報とともに、位置情報に対応する地図情報を取得してもよい。地図情報とは、位置情報に対応する位置がプロット可能な情報であり、例えば、河川や山等の地形情報や、道路や線路等の人工物の情報を含む。かかる地図情報によれば、ユーザがどのような経路を移動しているかを抽出することができる。具体的には、推定装置100は、ユーザの位置情報の推移を地図情報にプロットすることにより、ユーザが線路上を推移しているか、道路上を推移しているか、あるいは、海上を推移しているかといった経路情報を抽出することができる。後述する推定部134は、これらの地形情報や経路情報に基づき、ユーザがどのような移動手段で移動しているかを精度高く推定することができる。
また、第1取得部131は、第1位置情報とともに、第1位置情報に対応するセンサ情報を取得してもよい。センサ情報とは、ユーザ端末10の検知部14によって検知される各種情報である。例えば、ユーザ端末10は、ユーザの位置を検知するとともに、周囲の音声情報(例えば、ユーザが乗車している自動車や電車が発する環境音等)や、加速度や、温度や湿度等を検知する。第1取得部131は、このように位置とともに検知されたセンサ情報をユーザ端末10から取得する。
また、第1取得部131は、取得した第1位置情報において、位置が検知された精度を取得する。上述のように、ユーザ端末10は、種々の機能(取得手段)を用いて位置を検知する。そして、一般に、ユーザの位置を示す情報は、検知に用いられる機能によって精度が異なる。例えば、GPSでユーザの位置を検知する場合と、Wi−Fiによる通信機能を用いてユーザの位置を検知する場合と、ビーコンによる通信機能を用いてユーザの位置を検知する場合とでは、ユーザの位置を特定する精度が異なる。例えば、ビーコンによる通信機能を用いてユーザの位置を検知する場合、建物内のどこにユーザが所在しているかといった、数メートル範囲の精度でユーザの位置を特定可能である。一方で、GPSでユーザの位置を検知する場合、建物内のどこにユーザが所在しているかといった数メートル範囲の精度でユーザの位置を特定することは難しい。一般に、精度の高い位置情報を利用した方が、よりユーザが移動した地形や経路等を正確に特定できるため、推定装置100は、例えば精度の高い位置情報を優先的に取得するようにしてもよい。
例えば、第1取得部131は、ユーザ端末10から位置に関する情報を取得する際に、上記のようにユーザ端末10が位置を検知した場合の検知手段について取得する。そして、第1取得部131は、第1位置情報として、位置と検知手段(言い換えれば、精度)とを対応付けた情報を取得する。この場合、第1取得部131は、検知手段と精度との関係性を定義した定義情報等を予め取得していてもよい。具体的には、第1取得部131は、推定装置100の管理者等から、ビーコン機能を利用して検知された位置情報の精度が「高」である、といった定義情報を取得しておく。そして、第1取得部131は、位置に関する情報と検知手段とをユーザ端末10から取得した場合に、当該検知手段に応じた精度の情報を位置と対応付け、対応付けた情報を第1位置情報として取得する。
また、第1取得部131は、第1位置情報とともに、ユーザに関する各種情報を取得してもよい。例えば、第1取得部131は、利用するサービスにおいてユーザが登録した情報に基づいて、ユーザの属性情報を取得する。また、第1取得部131は、サービスにおけるユーザの興味関心情報や、ユーザの行動履歴情報を取得してもよい。第1取得部131は、種々の既存の技術(例えば、ユーザの興味関心や行動に基づいて広告を配信するための広告配信技術等)を利用して、種々の情報を取得してもよい。また、第1取得部131は、曜日情報を含めた日時情報とともに第1位置情報を取得するようにしてもよい。
また、第1取得部131は、第1位置情報として、ユーザ端末10と他の装置における通信の状況を取得してもよい。具体的には、第1取得部131は、ユーザ端末10がアクセスポイントを介してインターネットなどにアクセスしている通信状況を取得する。この場合、第1取得部131は、アクセスポイントとの通信状況から検出される情報を第1位置情報として取得する。具体的には、第1取得部131は、ユーザ端末10と通信中のアクセスポイントの設置位置を割り出し、割り出したアクセスポイントの設置位置に基づいて、当該ユーザ端末10の第1位置情報として取得するようにしてもよい。また、第1取得部131は、駅改札の装置とユーザ端末10との通信を検出することでユーザ端末10の位置を取得したり、ユーザ端末10のIPアドレスに基づいて位置を取得したりしてもよい。
また、第1取得部131は、必ずしもユーザ端末10が位置を検知した時間と同じ時間に第1位置情報を取得しなくてもよい。すなわち、第1取得部131は、リアルタイムに第1位置情報を取得するのではなく、後述する各種処理に利用する際に、ユーザ端末10の記憶部15に記憶されている位置情報をまとめて第1位置情報として取得してもよい。第1取得部131は、取得した第1位置情報を第1位置情報記憶部121に格納する。そして、後述する生成部132は、第1取得部131によって取得された第1位置情報がモデル生成に充分な量に達した場合に、移動手段に対応するモデルを生成する。
(生成部132について)
生成部132は、第1取得部131によって取得された第1位置情報に基づいて、当該第1位置情報に対応するユーザの移動状況を推定するためのモデルを生成する。
例えば、生成部132は、対応付けられた移動手段ごとに第1位置情報の特徴量を抽出するための学習を行う。具体的には、生成部132は、位置情報の推移に基づいて抽出される特徴量を学習する。例えば、生成部132は、特徴量として、所定時間(例えば、特定のユーザにおいて2つの連続した位置情報が取得されるまでの時間)における移動速度や移動距離を抽出する。
また、生成部132は、地図情報に基づき、ユーザの移動において選択された地形や経路を特徴量として抽出してもよい。仮にユーザの移動手段が電車であれば、ユーザの移動において選択される経路は常に線路上であると想定される。すなわち、生成部132は、移動手段が電車であるユーザは移動の経路として線路を選択する傾向にあるという特徴量を抽出する。
そして、生成部132は、抽出した特徴量に基づいて、ユーザの移動手段を推定するためのモデルを生成する。なお、モデルの学習処理や生成処理については、既存の処理が利用されてもよい。例えば、生成部132は、取得した第1位置情報をディープラーニング(Deep Learning)等を用いて学習することで、移動手段ごとの第1位置情報における特徴量を抽出し、移動手段ごとのモデルを生成してもよい。
具体的には、生成部132は、移動手段が不明である第2位置情報が入力された場合に、当該第2位置情報に対応するユーザの移動手段がモデルに対応する移動手段であるか否かを示す指標値(スコア)を出力するモデルを生成する。具体的には、生成部132は、自動車という移動手段が対応付けられた第1位置情報を用いて、第2位置情報に対応するユーザの移動手段が自動車であるか否かを推定するためのモデルを生成する。
なお、生成部132は、取得されたセンサ情報等も含めてユーザの移動手段を推定するモデルを生成してもよい。この場合、生成部132は、ユーザの移動手段を判定するための要素(特徴量)として、各種センサ情報を追加したモデルを生成する。例えば、生成部132は、位置情報とともに検知される音声情報を用いたモデルを生成する。この場合、生成部132は、第1取得部131によって取得された情報に基づいて、判定基準となるような特徴を有する音声情報(例えば、自動車の走行音やエンジン音等)を抽出し、かかる特徴量を含むモデルを生成する。この場合、後述する推定部134は、例えば、第2位置情報とともに音声情報を取得した場合、第2位置情報とともに、取得した音声をモデルに入力する。そして、かかる音声情報が、例えば自動車の走行音やエンジン音等に類似する特徴を有する場合、推定部134は、当該ユーザが移動手段として自動車を利用している可能性が高いと推定することができる。これは、かかる音声情報がモデルに入力されることで、音声情報が入力されない場合と比較して、モデルから比較的高いスコアが出力されると想定されることによる。
生成部132は、移動手段ごとに生成したモデルをモデル記憶部122に記憶する。なお、生成部132は、移動手段ごとにモデルを生成するのではなく、第2位置情報が入力された場合に、当該第2位置情報のユーザがどのような移動手段を利用しているかを示す複数の指標値を出力する単一のモデルを生成してもよい。
生成部132は、既知のいかなる学習アルゴリズムを用いてモデルを生成してもよい。例えば、生成部132は、ニューラルネットワーク、サポートベクターマシン(support vector machine)、クラスタリング、強化学習等の学習アルゴリズムを用いてモデルを生成してもよい。例えば、モデルは、所定のデータ(例えば、処理対象となるユーザの第2位置情報)が入力される入力層と、正例データ(例えば、第1位置情報に対応付けられた移動手段)との相関性を示すスコアを出力する出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する判定要素(例えば、第1位置情報から抽出された特徴量)と、各判定要素の重み値とを含む構成であってもよい。
(第2取得部133について)
第2取得部133は、所定のユーザの位置を示す位置情報である第2位置情報を取得する。例えば、第2取得部133は、移動手段が不明であるユーザの位置情報として第2位置情報を取得する。
第2取得部133は、第1取得部131と同様、地図情報や、各種センサ情報とともに第2位置情報を取得してもよい。なお、第2取得部133は、ユーザの識別情報と対応付けられた位置情報を第2位置情報として取得し、第2位置情報記憶部123に格納する。そして、第2取得部133は、所定のユーザの第2位置情報が推定処理に充分な量が蓄積された場合に、当該第2位置情報を推定部134に送る。
(推定部134について)
推定部134は、第1取得部131によって取得された第1位置情報に基づく特徴量と、第2取得部133によって取得された第2位置情報に基づく特徴量とに基づいて、所定のユーザの移動状況を推定する。
例えば、推定部134は、生成部132によって生成されたモデルを利用して、第2取得部133によって取得された第2位置情報に基づいて所定のユーザの移動状況を推定する。具体的には、推定部134は、第2位置情報をモデルに入力し、出力されたスコアに基づいて、所定のユーザの移動状況を推定する。
例えば、推定部134は、歩行又は自転車による移動手段が対応付けられたナビアプリによって取得された第1位置情報に基づいて、所定のユーザの移動状況として、所定のユーザが歩行又は自転車による移動を行っていることを推定する。例えば、推定部134は、歩行又は自転車による移動手段が対応付けられたナビアプリによって取得された第1位置情報に基づいて生成されたモデルを利用することにより、所定のユーザが歩行又は自転車による移動を行っているか否かを推定する。
また、推定部134は、自動車による移動手段が対応付けられたカーナビアプリによって取得された第1位置情報に基づいて、所定のユーザの移動状況として、所定のユーザが自動車による移動を行っていることを推定する。例えば、推定部134は、カーナビアプリによって取得された第1位置情報に基づいて生成されたモデルを利用することにより、所定のユーザが自動車による移動を行っているか否かを推定する。
また、推定部134は、配車アプリを介して配車された自動車でユーザが移動した区間において取得された第1位置情報に基づいて、所定のユーザの移動状況として、所定のユーザが自動車による移動を行っていることを推定してもよい。例えば、推定部134は、配車アプリを介して配車された自動車でユーザが移動した区間において取得された第1位置情報に基づいて生成されたモデルを利用することにより、所定のユーザが自動車による移動を行っているか否かを推定する。なお、推定部134は、例えばタクシー配車アプリを介して配車されたタクシーでユーザが移動した区間において取得された第1位置情報のみに基づいて生成されたモデルを利用してもよい。この場合、推定部134は、ユーザが自動車による移動を行っていることのみならず、当該ユーザが「タクシー」による移動を行っていることを推定することもできる。
また、推定部134は、路線検索アプリによって示された乗車時間において取得された第1位置情報に基づいて、所定のユーザの移動状況として、所定のユーザが路線検索アプリによって示された移動手段による移動を行っていることを推定してもよい。例えば、推定部134は、路線検索アプリにおける移動手段に応じて、例えばユーザが電車で移動したことや、バスで移動したことや、飛行機で移動したこと等を推定する。
また、推定部134は、地図情報に基づき抽出される第1位置情報が示す経路もしくは地形情報と、地図情報に基づき抽出される第2位置情報が示す経路もしくは地形情報とに基づいて、所定のユーザの移動状況を推定してもよい。すなわち、推定部134は、位置情報が示す位置(例えば経度や緯度の数値)のみならず、位置情報に対応する地図情報を用いて、ユーザが移動している地形や経路を抽出する。
例えば、生成部132は、第1位置情報においてユーザが移動している地形や経路を含めたモデルを生成する。そして、推定部134は、第2位置情報に対応する地図情報(例えば、ユーザが移動している地形等)を含めて、当該第2位置情報をモデルに入力する。これにより、推定部134は、第2位置情報に対応するユーザがどのような地形や経路を移動しているかといった情報を入力することができるので、第1位置情報に対応する移動手段との関連性を、より精度高く出力することができる。具体的には、推定部134は、第2位置情報に対応するユーザが道路を移動している場合には移動手段が「自動車」であると高い確度で推定し、第2位置情報に対応するユーザが線路上を移動している場合には移動手段が「電車」であると高い確度で推定することができる。あるいは、推定部134は、第2位置情報に対応するユーザが海上を移動している場合には移動手段が「船」や「飛行機」であると高い確度で推定することができる。
また、推定部134は、第1位置情報に対応するセンサ情報と、第2位置情報に対応するセンサ情報とに基づいて、所定のユーザの移動状況を推定してもよい。例えば、推定部134は、第1位置情報に対応する音声情報もしくは加速度情報と、第2位置情報に対応する音声情報もしくは加速度情報とに基づいて、所定のユーザの移動状況を推定する。
例えば、推定部134は、第1位置情報とともに取得された音声情報(例えば、自動車の走行音やエンジン音等)と、第2位置情報とともに取得された音声情報との類似度を、第2位置情報に対応するユーザの移動手段が「自動車」であるか否かの判定要素の一つとしてよい。また、推定部134は、第1位置情報とともに取得された加速度情報(例えば、静止点から所定の速度に達するまでの時間)と、第2位置情報とともに取得された加速度情報との類似度を、第2位置情報に対応するユーザの移動手段が「自動車」であるか否かの判定要素の一つとしてよい。また、推定部134は、音声情報や加速度情報以外にも、温度や湿度、高度等の情報を用いて推定処理を行ってもよい。例えば、移動する環境が特殊なことから温度や湿度や高度等に特徴を有する移動手段(例えば船や飛行機等)については、センサ情報の類似度を判定することにより、推定処理の精度を向上させることができる。
〔5.処理手順〕
次に、図8及び図9を用いて、実施形態に係る推定装置100による処理の手順について説明する。まず、図8を用いて、推定装置100によるモデルの生成処理の手順について説明する。図8は、実施形態に係る処理手順を示すフローチャート(1)である。
図8に示すように、推定装置100は、ユーザから第1位置情報を取得したか否かを判定する(ステップS101)。第1位置情報を取得していない場合(ステップS101;No)、推定装置100は、取得するまで待機する。
一方、第1位置情報を取得した場合(ステップS101;Yes)、推定装置100は、取得した第1位置情報を記憶部120内に記憶する(ステップS102)。そして、推定装置100は、モデルの生成処理に充分な量の第1位置情報が蓄積されたか否かを判定する(ステップS103)。充分な第1位置情報が蓄積されていない場合(ステップS103;No)、推定装置100は、第1位置情報の取得処理を繰り返す(ステップS101)。
一方、充分な第1位置情報が蓄積された場合(ステップS103;Yes)、推定装置100は、蓄積された第1位置情報を利用して、移動手段ごとに、ユーザの移動手段を推定するためのモデルを生成する(ステップS104)。推定装置100は、生成したモデルを記憶部120内に記憶する(ステップS105)。なお、推定装置100は、新たに第1位置情報を取得した場合、適宜、生成したモデルを更新してもよい。
次に、図9を用いて、推定装置100による推定処理の手順について説明する。図9は、実施形態に係る処理手順を示すフローチャート(2)である。
推定装置100は、所定のユーザから第2位置情報を取得したか否かを判定する(ステップS201)。第2位置情報を取得していない場合(ステップS201;No)、推定装置100は、取得するまで待機する。
一方、第2位置情報を取得した場合(ステップS201;Yes)、推定装置100は、取得した第2位置情報を記憶部120内に記憶する(ステップS202)。そして、推定装置100は、移動状況の推定処理に充分な量の第2位置情報が蓄積されたか否かを判定する(ステップS203)。充分な第2位置情報が蓄積されていない場合(ステップS203;No)、推定装置100は、第2位置情報の取得処理を繰り返す(ステップS201)。
一方、充分な第2位置情報が蓄積された場合(ステップS203;Yes)、推定装置100は、モデルを利用して、第2位置情報に対応するユーザの移動手段(移動状況)を推定する(ステップS204)。
〔6.変形例〕
上述した推定装置100は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、実施形態の変形例について説明する。
〔6−1.ユーザの状況の推定〕
上記実施形態では、推定装置100が、ユーザの移動状況として、主としてユーザの移動手段を推定する例を示した。ここで、推定装置100は、移動手段のみならず、移動中のユーザの状況や感情を推定する処理を行ってもよい。
例えば、推定装置100は、第1位置情報を取得する際に、ユーザの感情を示す情報等を取得する。例えば、推定装置100は、ユーザが他のユーザと会話やチャットを行うコミュニケーションアプリによって位置情報を取得するとともに、当該会話等の内容を取得する。そして、推定装置100は、例えば会話等の内容がポジティブなものである場合、当該位置情報とともに、ユーザの感情がポジティブであることを記憶する。あるいは、推定装置100は、音楽を視聴するための音声再生アプリによって位置情報を取得するとともに、ユーザが音楽を視聴している状況を取得する。
その後、推定装置100は、感情等の情報を伴わない第2位置情報を取得する。そして、推定装置100は、第1位置情報に対応する位置の推移と第2位置情報に対応する位置の推移とに基づいて、第2位置情報に対応するユーザの移動状況として、当該ユーザの感情を推定する。例えば、推定装置100は、第2位置情報が、第1位置情報において複数のユーザがポジティブな会話等を頻繁に行っている経路や領域を移動していることを示す場合、第2位置情報に対応するユーザも、ポジティブな感情を有していると推定する。あるいは、推定装置100は、第2位置情報が、第1位置情報において複数のユーザが音楽を視聴する頻度が比較的高い経路や領域を移動していることを示す場合、第2位置情報に対応するユーザも、音楽を視聴する傾向にあると推定する。
このように、推定装置100は、移動手段のみならず、第1位置情報におけるユーザが採っている行動や、推測される感情等に基づいて、第2位置情報に対応するユーザの状況(感情等)を推定する。これにより、推定装置100は、例えば、あるショッピングモールやテーマパークにおいてユーザが好意的な感情を抱くエリアや、ネガティブな感情を抱くエリアや、気持ちが高揚するエリアなどを特定することができる。
なお、推定装置100は、上記のコミュニケーションアプリ等の内容に基づいて、ユーザの移動手段を推定してもよい。例えば、推定装置100は、コミュニケーションアプリにおけるユーザのメッセージのうち、「今、車で向かっているよ」や、「渋滞しているから遅れる」など、移動手段が推定可能なメッセージを抽出する。例えば、推定装置100は、移動手段と対応付けた単語等の定義情報(例えば、「自動車」と「渋滞」など)を予め保持しておき、定義情報に基づいて、ユーザの移動手段を推定してもよい。また、推定装置100は、ユーザが自動車等に乗車している際に発するメッセージの特徴を学習したモデルを生成し、当該モデルに基づいて、ユーザが自動車に乗車していることを推定してもよい。
〔6−2.アプリの種別〕
上記実施形態では、推定装置100が、カーナビアプリ等を利用したユーザから第1位置情報を取得する例を示したが、アプリの例はこれらに限られない。
例えば、推定装置100は、ランニングの記録を行うランニングアプリによって取得された第1位置情報を取得してもよい。かかる第1位置情報に基づいて推定処理を行うことにより、推定装置100は、第2位置情報が取得された場合に、当該第2位置情報に対応するユーザがランニングを行っているか、あるいは単に歩行しているかを高精度に推定することができる。
また、推定装置100は、サイクリングの記録を行うサイクリングアプリによって取得された第1位置情報を取得してもよい。かかる第1位置情報に基づいて推定処理を行うことにより、推定装置100は、第2位置情報が取得された場合に、当該第2位置情報に対応するユーザが自転車に乗って移動しているか、あるいは単に歩行しているかを高精度に推定することができる。
また、推定装置100は、航空機や新幹線等の交通機関に関する予約アプリ等によって取得された第1位置情報を取得してもよい。例えば、推定装置100は、ユーザが交通機関の予約を行った時間帯において位置情報が取得される場合、当該交通機関を移動手段として推定して、第1位置情報を取得する。
〔6−3.位置情報〕
上記実施形態では、位置情報は、ユーザ端末10が取得するGPS情報や、アクセスポイント等から取得することを説明した。しかし、推定装置100は、異なる情報からユーザ端末10の位置情報を取得してもよい。
例えば、推定装置100は、ユーザが各種サービスを利用した履歴に基づいて、ユーザ端末10の位置情報を取得してもよい。具体的には、推定装置100は、路線検索サービスにおいて頻繁にユーザ端末10から入力される駅を、ユーザの最寄り駅と推定する。そして、推定装置100は、最寄り駅を含む所定範囲をユーザ端末10が所在する地域として取得してもよい。かかる処理によれば、推定装置100は、ユーザ端末10が位置情報を取得する機能を有していない場合であっても、ユーザ端末10の位置情報を取得することができる。
また、ユーザ端末10は、動作する複数のアプリ間において、相互に位置情報のやり取りを行ってもよい。例えば、推定装置100が、ユーザ端末10に係るポータルアプリから位置情報を取得しているとする。一方で、ユーザは、ポータルアプリと同時にカーナビアプリを起動しており、当該カーナビアプリは、推定装置100との通信を行っていないものとする。このとき、ユーザ端末10に係るポータルアプリは、カーナビアプリがユーザ端末10において起動しているという情報(例えば、位置情報に付与されるフラグ)とともに、ポータルアプリで取得された位置情報を推定装置100に送信する。これにより、推定装置100は、移動手段が不明なポータルアプリから位置情報を取得した場合であっても、ユーザ端末10においてカーナビアプリが起動しているという情報に基づいて、当該位置情報に対応する移動手段が自動車である、と推定することができる。
〔6−4.ユーザ端末の構成〕
上記実施形態では、ユーザ端末10の構成例について図3を用いて説明した。しかし、ユーザ端末10は、図3で例示した全ての処理部を備えることを必ずしも要しない。例えば、ユーザ端末10は、表示部13や検知部14を必ずしも備えていなくてもよい。また、ユーザ端末10は、2以上の機器に分離されて図3を示す構成が実現されてもよい。例えば、ユーザ端末10は、少なくとも検知部14と取得部161とを有する検知装置と、少なくとも通信部11を有する通信装置とが分離された構成を有する、2台以上の機器により実現されてもよい。
〔7.ハードウェア構成〕
上述してきた実施形態に係る推定装置100やユーザ端末10は、例えば図10に示すような構成のコンピュータ1000によって実現される。以下、推定装置100を例に挙げて説明する。図10は、推定装置100の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ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は、通信網500(図2に示したネットワークNに対応)を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを、通信網500を介して他の機器へ送信する。
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上にロードされたプログラムを実行することにより、制御部130の機能を実現する。また、HDD1400には、記憶部120内のデータが記憶される。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から通信網500を介してこれらのプログラムを取得してもよい。
〔8.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図4に示した第1取得部131と第2取得部133とは統合されてもよい。また、例えば、記憶部120に記憶される情報は、ネットワークNを介して、外部に備えられた記憶装置に記憶されてもよい。
また、例えば、上記実施形態では、推定装置100が、ユーザ端末10の位置情報を取得する取得処理と、第2位置情報に対応するユーザの移動状況を推定する推定処理とを行う例を示した。しかし、上述した推定装置100は、取得処理を行う取得装置と、推定処理を行う推定装置とに分離されてもよい。この場合、取得装置は、第1取得部131や第2取得部133を少なくとも有する。推定装置は、推定部134を少なくとも有する。また、実施形態に係る推定装置100による処理は、取得装置と、推定装置といった各装置を含む推定システム1によって実現される。
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔9.効果〕
上述してきたように、実施形態に係る推定装置100は、第1取得部131と、第2取得部133と、推定部134とを有する。第1取得部131は、移動手段が対応付けられたアプリに関連して取得される位置情報である第1位置情報を取得する。第2取得部133は、所定のユーザの位置を示す位置情報である第2位置情報を取得する。推定部134は、第1取得部131によって取得された第1位置情報に基づく特徴量と、第2取得部133によって取得された第2位置情報に基づく特徴量とに基づいて、所定のユーザの移動状況を推定する。
このように、実施形態に係る推定装置100は、予め移動手段が特定可能なアプリに関連して取得される第1位置情報を正解データとして、所定のユーザの移動手段を推定する。これにより、推定装置100は、位置情報のみでは推定が困難なユーザの移動手段についても、ユーザの移動状況を精度よく推定することができる。
また、実施形態に係る推定装置100は、第1取得部131によって取得された第1位置情報に基づいて、当該第1位置情報に対応するユーザの移動状況を推定するためのモデルを生成する生成部132をさらに有する。推定部134は、生成部132によって生成されたモデルを利用して、第2取得部133によって取得された第2位置情報に基づいて所定のユーザの移動状況を推定する。
このように、実施形態に係る推定装置100は、第1位置情報に基づいて生成したモデルを利用することにより、より高い精度でユーザの移動状況を推定することができる。
また、第1取得部131は、歩行又は自転車による移動手段が対応付けられたナビアプリによって取得される第1位置情報を取得する。推定部134は、第1取得部131によって取得された第1位置情報に基づいて、所定のユーザの移動状況として、当該所定のユーザが歩行又は自転車による移動を行っていることを推定する。
このように、実施形態に係る推定装置100は、歩行や自転車等の移動手段が対応付けられたアプリによって取得された位置情報を利用することで、適切な正解データに基づいた推定処理を行うことができる。
また、第1取得部131は、自動車による移動手段が対応付けられたカーナビアプリによって取得される第1位置情報を取得する。推定部134は、第1取得部131によって取得された第1位置情報に基づいて、所定のユーザの移動状況として、当該所定のユーザが自動車による移動を行っていることを推定する。
このように、実施形態に係る推定装置100は、自動車の移動手段が対応付けられたアプリによって取得された位置情報を利用することで、適切な正解データに基づいた推定処理を行うことができる。
また、第1取得部131は、自動車の配車を要求するアプリである配車アプリを利用したユーザの位置情報であって、当該配車アプリを介して配車された自動車で当該ユーザが移動した区間において取得された位置情報を、第1位置情報として取得する。推定部134は、第1取得部131によって取得された第1位置情報に基づいて、所定のユーザの移動状況として、当該所定のユーザが自動車による移動を行っていることを推定する。
このように、実施形態に係る推定装置100は、配車アプリによって取得される情報を利用することによって、ユーザが乗車した区間を含めて詳細な移動手段と位置情報を取得できるので、推定の精度を向上させることができる。
また、第1取得部131は、路線検索アプリを利用したユーザの位置情報であって、当該路線検索アプリによって示された乗車時間において取得された位置情報を、当該路線検索アプリによって示された移動手段とともに第1位置情報として取得する。推定部134は、第1取得部131によって取得された第1位置情報に基づいて、所定のユーザの移動状況として、当該所定のユーザが路線検索アプリによって示された移動手段による移動を行っていることを推定する。
このように、実施形態に係る推定装置100は、路線検索アプリによって取得される情報を利用することによって、ユーザが利用した交通機関(移動手段)と乗車した区間という正解データを取得する。これにより、推定装置100は、推定の精度を向上させることができる。
また、第1取得部131は、位置情報に対応する地図情報を取得する。推定部134は、第1取得部131によって取得された地図情報に基づき抽出される第1位置情報が示す経路もしくは地形情報と、当該地図情報に基づき抽出される第2位置情報が示す経路もしくは地形情報とに基づいて、所定のユーザの移動状況を推定する。
このように、実施形態に係る推定装置100は、道路や線路、河川や海上などの地形情報や、地図上の経路等の情報を含めて推定処理を行うことができるので、推定の精度を向上させることができる。
また、第1取得部131は、第1位置情報とともに、当該第1位置情報に対応するセンサ情報を取得する。第2取得部133は、第2位置情報とともに、当該第2位置情報に対応するセンサ情報を取得する。推定部134は、第1位置情報に対応するセンサ情報と、第2位置情報に対応するセンサ情報とに基づいて、所定のユーザの移動状況を推定する。
このように、実施形態に係る推定装置100は、センサ情報を含めた位置情報を取得することで、所定のユーザの移動状況をより正確に把握することできるため、推定の精度を向上させることができる。
また、第1取得部131は、第1位置情報とともに、当該第1位置情報に対応する音声情報もしくは加速度情報を取得する。第2取得部133は、第2位置情報とともに、当該第2位置情報に対応する音声情報もしくは加速度情報を取得する。推定部134は、第1位置情報に対応する音声情報もしくは加速度情報と、第2位置情報に対応する音声情報もしくは加速度情報とに基づいて、所定のユーザの移動状況を推定する。
このように、実施形態に係る推定装置100は、音声情報や加速度情報といった、移動手段に特有な情報を取得することで、所定のユーザの移動状況をより正確に把握することができるため、推定の精度を向上させることができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。