以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
<1.行動ログ表示システムの概要>
<2.行動ログ表示システムの機能構成>
[2−1.行動記録装置]
[2−2.行動ログサーバ]
[2−3.解析サーバ]
<3.行動セグメント生成処理>
[3−1.動作行動とその意味内容との関連性]
[3−2.行動セグメント生成処理]
(例1:文脈解析による行動セグメントの生成)
(例2:文脈解析と時間幅とを組み合わせた行動セグメントの生成)
(例3:文脈解析、時間幅および位置変化を組み合わせた行動セグメントの生成)
[3−3.行動認識処理]
[3−4.行動表現生成部の処理内容]
<4.行動記録表示アプリケーション>
[4−1.行動セグメントに基づく行動ログの表現]
[4−2.行動の閲覧]
[4−3.行動の修正]
[4−4.行動の結合]
[4−5.行動の分割]
[4−6.セグメンテーション粒度に基づく行動セグメントの表示]
[4−7.行動の削除]
[4−8.行動の投稿]
[4−9.行動ログ取得停止処理]
[4−10.表示内容の更新]
<5.修正フィードバックの反映処理>
[5−1.修正フィードバックの性質]
[5−2.行動認識処理]
[5−3.修正フィードバックの反映処理]
(5−3−1.修正フィードバックの反映処理の概要)
(5−3−2.行動に対する修正フィードバックの反映処理)
(5−3−3.行動および位置情報に対する修正フィードバックの反映処理)
<6.その他>
[6−1.行動パターンの個人モデル化]
[6−2.移動媒体/手段判定による位置表示手法]
(6−2−1.路線推定処理)
(6−2−2.駅名選定処理)
<7.ハードウェア構成例>
<1.行動ログ表示システムの概要>
まず、図1を参照して、本開示の実施形態に係る行動ログ表示システムの概要について説明する。図1は、本実施形態に係る行動ログ表示システムの概略構成を示す説明図である。
本実施形態に係る行動ログ表示システムは、小型センサ内蔵の記録装置100(以下、「行動記録装置」とする。)により記録された行動ログをユーザに分かりやすく提示する表現手法を実現する。行動記録装置100としては、例えば、携帯電話機やPDA(Personal Digital Assistant)、スマートフォン等の携帯端末等を用いることができる。行動記録装置100には、当該装置を保持するユーザの状況や行動をセンシングする少なくとも1つのセンサが設けられている。行動記録装置100は、センサにより取得したセンサ情報に基づいてユーザの動作行動を推定し、当該動作行動を行動ログとして行動ログサーバ200へ送信する。このようにして、行動ログサーバ200には、ユーザの行動ログが蓄積されていく。
行動記録装置100により解析され、行動ログサーバ200に記憶された行動ログは、例えば「食事」、「移動」、「睡眠」といった動作を行動時間や位置情報等とともに記録したものである。本実施形態に係る行動ログ表示システムは、この動作内容を表す行動ログを解析サーバ300にてさらに解析して行動の意味を認識し、行動の意味を付加した情報(行動セグメント)を生成する。行動セグメントは、行動ログをユーザにとって分かりやすい表現とした単位情報である。行動セグメントによってユーザに単なる行動ログを提示するのではなく、行動の意味もわかるように行動ログを提示することができる。
解析サーバ300にて解析され、ユーザに提示された行動ログは、ユーザにより修正することができる。また、行動セグメントを生成することにより、提示された行動ログのデータを結合したり、分割したり、削除することもできる。提示された行動ログは投稿サイトへ投稿することもできる。このように、本実施形態に係る行動ログ表示システムを用いることにより、動作として取得された行動ログを解析してユーザに分かりやすく提示することができる。以下、本実施形態に係る行動ログ表示システムの構成とその機能について詳細に説明する。
<2.行動ログ表示システムの機能構成>
図2に、本実施形態に係る行動ログ表示システムの機能構成を示す。行動ログ表示システムは、上述したように、ユーザの動作行動を記録する行動記録装置100と、行動記録装置100により記録された行動ログを管理する行動ログサーバ200と、行動ログを解析して行動セグメントを生成する解析サーバ300とからなる。
[2−1.行動記録装置]
行動記録装置100は、センサ類110と、行動認識部120と、クライアントインタフェース部130と、行動表現処理部140と、表示部150と、入力部160とからなる。
センサ類110は、ユーザの行動や状況をセンシングする機器であり、行動記録装置100に搭載される。センサ類110としては、例えば加速度センサ、ジャイロセンサ、地磁気センサ、気圧センサ、照度センサ、温度センサ、マイクロフォン等を用いることができる。また、センサ類110として、緯度経度を取得する緯度経度取得センサも搭載することもできる。緯度経度取得センサは、例えばGPS(Global Positioning System)やWiFiだけでなくその他の通信網の基地局情報やRFID、画像等の情報を用いてもよい。センサ類110は、検出した情報をセンサ情報として行動認識部120へ出力する。
行動認識部120は、センサ情報に基づいてユーザの行動を推定する。行動認識部120は、センサ制御部122と、動作行動認識部124とからなる。センサ制御部122は、センサ類110によるセンシングを効率的に作動させるために、センサ類110やCPU、あるいはシステム全体を制御する。センサ制御部122は、センサ類110や動作行動認識部124の認識結果等に基づいて上記機器を制御する。
動作行動認識部124は、センサ情報の信号処理や統計処理等を行い、ユーザの行動や状況を認識する。行動記録装置100は、センサ情報を処理した結果得られたユーザの行動に関する情報である行動モデルと動作行動との対応関係を予め保持している。動作行動認識部124は、センサ情報を処理して行動パラメータを得ると、当該行動パラメータに対応する動作行動を特定する。そして、動作行動認識部124は、特定した動作行動と、行動時間、行動時刻、位置情報等を関連付けて動作行動データとし、クライアントインタフェース部130へ出力する。動作行動データは、クライアントインタフェース部130から行動ログサーバ200へアップロードされる。
クライアントインタフェース部130は、行動記録装置100と、行動ログサーバ200および解析サーバ300との情報の送受信を行う。クライアントインタフェース部130は、例えば、行動認識部120から入力された動作行動データを行動ログサーバ200へ送信したり、解析サーバ300から受信した解析結果を行動表現処理部140へ出力したりする。また、クライアントインタフェース部130は、入力部160から入力されたユーザからのフィードバック情報を解析サーバ300へ送信する。
行動表現処理部140は、行動ログの表示やユーザからのフィードバック情報を処理する機能部であって、表示処理部142と、入力情報処理部144とからなる。表示処理部142は、クライアントインタフェース部130から入力された解析サーバ300による解析結果を、表示部150に表示する処理を行う。入力情報処理部144は、入力部160から入力された、行動ログに対するユーザからのフィードバック情報を、クライアントインタフェース部130を介して解析サーバ300へ送信するための処理を行う。
表示部150は、情報を表示する出力装置の1つであって、例えば、液晶ディスプレイや有機ELディスプレイ等から構成することができる。表示部150には、例えば表示処理部142により表示処理された行動ログが表示される。
入力部160は、情報を入力するための入力装置であって、例えばタッチパネルやキーボード、ハードウェアボタン等を用いることができる。本実施形態では、入力部160として表示部150の表示面にタッチパネルが設けられているとする。このときユーザは、例えば表示部150の表示面に指やタッチペン等の操作体を接触させたり、表示面に接触させた操作体を移動したりして、情報を入力することができる。入力部160から入力された情報は入力情報処理部144へ出力される。
[2−2.行動ログサーバ]
行動ログサーバ200は、ログサーバインタフェース部210と、行動ログDB220とからなる。
ログサーバインタフェース部210は、行動ログサーバ200と、行動記録装置100および解析サーバ300との情報の送受信を行う。ログサーバインタフェース部210は、例えば、行動記録装置100から受信した動作行動データを行動ログDB220に記録したり、解析サーバ300からの送信リクエストに応じて動作行動データを行動ログDB220から取得して解析サーバ300へ送信したりする。
行動ログDB220は、行動記録装置100により取得したユーザの動作行動データを記憶する記憶部である。行動ログDB220に記憶される動作行動データは、上述したように、動作行動認識部124により特定された動作行動と、行動時間、行動時刻、位置情報等とが関連付けられており、例えば時系列で行動ログDB220に記憶されている。
[2−3.解析サーバ]
解析サーバ300は、解析サーバインタフェース部310と、行動表現生成部320と、データ管理部330とからなる。
解析サーバインタフェース部310は、解析サーバ300と、行動記録装置100および行動ログサーバ200との情報の送受信を行う。解析サーバインタフェース部310は、例えば、行動記録装置100から行動ログの解析指示(解析リクエスト)を受信したり、解析リクエストに応じて必要な動作行動データの送信要求(送信リクエスト)を送信したりする。また、解析サーバインタフェース部310は、行動記録装置100から、行動ログに対するユーザからのフィードバック情報を受信する。
行動表現生成部320は、動作行動データを解析して意味理解し、意味内容を付加した行動セグメントを生成する。行動表現生成部320は、生活行動認識部321と、階層構造判断部322等からなる。生活行動認識部321は、動作行動データからなる行動ログから行動セグメントを生成する。生活行動認識部321は、時系列に並んだ動作行動データについて、データ間の関連性やデータの時間、時刻等に基づいて意味内容を解析する。そして、生活行動認識部321は、解析された意味内容のうち最も詳細な意味内容に区分されたデータを行動セグメントとする。生成された行動セグメントはデータ管理部330へ出力され保持される。
階層構造判断部322は、生活行動認識部321により生成された行動セグメントの意味内容に関する階層構造を判断し、その行動セグメントに対して、意味内容の階層関係を表す階層情報を付与する。階層情報は、後述する処理によって行動セグメントに付与される、階層的な意味情報である。階層情報は、例えば正規化した値をキーとした情報であってもよく、意味情報の階層を特定するIDを直接のキーとした情報であってもよい。階層情報が付与された行動セグメントを、階層情報付与済行動セグメントとも称する。行動の意味内容に関する階層関係は、データ管理部330に予め記憶されている。階層構造判断部322は、階層情報付与済行動セグメントを、生活行動認識部321を介してデータ管理部330へ出力し、保持させる。なお、行動表現生成部320の機能およびこれによる処理内容の詳細については後述する。
データ管理部330は、行動表現生成部320により生成された行動セグメントを管理する。データ管理部330は、データ取得部331と、フィードバック調整部332と、解析パラメータDB333と、単位データ保存DB334と、階層情報付与済データ保存DB335とからなる。
データ取得部331は、行動表現生成部320とのデータの送受信を行う。データ取得部331は、行動表現生成部320から送信された行動セグメントを単位データ保存DB334に記録し、階層情報付与済行動セグメントを階層情報付与済データ保存DB335に記録する。また、データ取得部331は、行動表現生成部320からの要求に応じて、指定された行動セグメントを、単位データ保存DB334または階層情報付与済データ保存DB335から取得し、行動表現生成部320へ出力する。
フィードバック調整部332は、行動記録装置100から受信したフィードバック情報を、動作行動データの意味内容の解析に用いる解析パラメータに反映させる。フィードバック情報は、行動記録装置100の表示部150に表示された行動ログに対してユーザが行った修正等の処理の内容を表している。フィードバック調整部332は、フィードバック情報を用いて、ユーザの行動の意味内容をより正確に認識できるようにするために、解析パラメータを修正する。
解析パラメータDB333は、動作行動データの意味内容の解析に用いる解析パラメータを保持する記憶部である。解析パラメータDB333には、解析パラメータとして、例えば動作行動と意味内容との対応関係が記憶されている。解析パラメータDB333に記憶された情報は、生活行動認識部321および階層構造判断部322のいずれも参照可能である。解析パラメータは、ユーザからのフィードバック情報に基づいて随時更新される。
単位データ保存DB334は、行動表現生成部320により生成された行動セグメントを記憶する。単位データ保存DB334に記憶される行動セグメントは、認識に必要な最小単位のセグメント(単位セグメント)である。
階層情報付与済データ保存DB335は、行動表現生成部320により生成された行動セグメントに階層情報が付与された行動セグメントを記憶する。階層情報付与済データ保存DB335に記憶される行動セグメントは、階層構造判断部322により行動の意味内容の階層構造を表す階層情報が付与された階層情報付与済行動セグメントである。階層情報が付与された行動セグメントの記録タイミングは、例えばアプリケーションによる要求時であってもよく、予め行動表現生成部320により複数のセグメンテーション粒度の解析結果を記録するようにしてもよい。
すなわち、行動表現生成部320およびデータ管理部330は、行動記録装置100により生成された動作行動データの意味内容を解析して、ユーザに分かりやすい情報を提示する情報処理装置として機能する。
<3.行動セグメント生成処理>
本実施形態にかかる行動ログ表示システムでは、行動記録装置100により生成された動作行動の意味内容を解析サーバ300にて解析し、行動の意味内容に基づく行動セグメントを生成する。行動セグメントには、行動の意味内容に関する階層情報も付与することができ、行動ログの表示形態も階層情報に基づき容易に変更することができる。そこで、まず、図3〜図13に基づいて行動セグメントの生成処理を説明する。
[3−1.動作行動とその意味内容との関連性]
行動記録装置100においては、例えば「食事」、「移動」、「睡眠」といった動作行動が解析される。解析サーバ300は、この動作行動を含む動作行動データを用いて、各動作行動の内容をより深く解析する。動作行動の意味内容の解析は、例えば図3に示すような文脈レベル辞書を用いて行われる。
「食事」、「移動」、「睡眠」という動作行動のうち「移動」という動作行動を取り上げると、図3に示すように、どのような移動であるかによってその意味内容は変化する。例えば「歩いて移動」しているときには、ユーザは、継続して「歩く」という行動をとることも可能であり、その後に「立ち止まる」という行動に推移することも可能である。また、例えば移動中の「乗り物待ち」という状態である場合には、継続して「乗り物待ち」という行動をとることが可能である。さらに、例えば「電車で移動」しているときには、この移動を「単独路線の電車で移動」という行動とすることが可能である。さらに、「電車で移動」という状態が継続する状態や、乗車している電車が停止する「電車停止」という状態もとり得る。あるいは、「電車で移動」の後に「乗換え」するという行動をとることも可能であり、「乗り物待ち」という状態に推移することも可能である。
そして、「歩く」行動や「乗換え」行動からは「歩く」という更なる行動を関連付けることができ、「立ち止まる」行動や「乗り物待ち」状態、「電車停止」状態には「止まる」という更なる行動を関連付けることができる。「電車で移動」しているという状態には、移動手段である「電車」をさらに関連付けることができる。
このように、動作行動レベルの行動メタは、図3に示すように文脈によってより高次の行動メタに変わり得る。本実施形態の行動ログ表示システムでは、動作行動と意味内容の関連性に基づき行動の意味内容を解析することで、ユーザに分かりやすい行動ログを提示することができる。また、この動作行動の意味内容に対し、階層的な関係性を階層情報として行動セグメントに付与することで、後述する行動ログのセグメンテーション粒度を容易に変更することが可能となる。
本実施形態では、動作行動の意味内容の認識に、オントロジー/セマンティック技術を適用し、「行動」における「文脈」を判断した行動認識と動作行動データのセグメンテーション化を行う。オントロジーは、語彙間の関係の概念を体系的に表したものであり、本実施形態では、例えば図3のように行動間の関係の概念を体系化している。そして、体系化された行動間の関係の概念を用いて、セマンティック技術により、行動の意味や行動の関連性等を理解し、その理解に基づき動作行動の意味内容の認識処理を行う。例えば「歩いて移動」という動作行動によって、ある行動(例えば食事)からある行動(例えば仕事)へと遷移しやすいという性質を利用して文脈判断を行うことで、ユーザの感覚に合った行動セグメントを生成することができる。
[3−2.行動セグメント生成処理]
(例1:文脈解析による行動セグメントの生成)
上記動作行動とその意味内容との関連性を用いた行動セグメントの生成処理の一具体例として、図4および図5に基づいて、文脈解析による行動セグメントの生成処理を説明する。図4は、文脈解析により動作行動データから行動セグメントを生成し、行動セグメントのセグメンテーション粒度を変化させて行動ログの表示を変化させた場合を示す説明図である。図5は、文脈解析により動作行動データから行動セグメントを生成し、セグメンテーション粒度を変化させた場合の他の例を示す説明図である。
図4に示すように動作行動認識部124により動作行動データからなる行動ログが取得されたとする。動作行動データは、時系列に左から右へ配列されている。動作行動データは、センサ類110のセンサ情報に基づき認識された動作行動であり、「歩いた」、「止まった」、「電車に乗った」といった単なる動作行動により行動ログが表されている。このような行動ログに対して、生活行動認識部321は、図3に示すような辞書を用いて各動作行動データの意味や動作行動データ間の関連性等を認識する。
例えば、「電車に乗った」という動作行動データ間にある所定の時間以下の短い「止まった」という状態は、「電車が(駅等で)止まった」状態であると推定できる。また、「電車に乗った」という動作行動データ間にある所定の時間以下の短い「歩いた」という状態は、「電車を乗り換えた」行動であると推定できる。さらに、「電車に乗った」という動作行動データの直前の動作行動データの「止まった」は、「電車を待った」という状態であると推定できる。
また、動作行動データの行動時刻を利用することで、より適切に行動を推定できる。例えば、「電車で移動」という行動について、行動時刻が朝(例えば午前6時から午前10時の間)であれば「通勤」あるいは「通学」という行動の意味を推定でき、行動時刻が夜(例えば午後5時から午後8時の間)であれば「帰宅」という行動の意味を推定できる。同様に、「食事」という行動について、行動時刻が朝であれば「朝食」、昼であれば「昼食」、夜であれば「夕食」といった行動の意味を推定できる。
このように生活行動認識部321により動作行動データからなる行動ログの解析が行われることにより、図4に示すような行動セグメントからなる行動ログが生成される。行動セグメントは、動作内容が付加された動作行動を表すデータであり、連続する同一の意味内容を有する動作行動のまとまりをいう。動作行動データに対応して生成された行動セグメントは詳細な動作内容が付加された単位セグメントから成り立つ。したがって、行動セグメントで行動ログを表すと、図4に示すように乗車中の移動状態も分かるようになる。
そして、図3に示した文脈レベル辞書より動作行動レベルの階層的な行動メタを取得することで、行動セグメントの区分の粗さを決定付けるパラメータであるセグメンテーション粒度を階層的に変化させ、行動セグメントの表示を変化させることができる。セグメンテーション粒度を大きくするほど1つの行動をみなせる複数の行動セグメントが結合され、大まかな動作内容を表す行動セグメントとなる。一方、セグメンテーション粒度を小さくするほど行動セグメントは単位セグメントに近づく。
例えば、図4に示すように、単位セグメントで表された行動ログに対して、セグメンテーション粒度を大きくしていく。単位セグメントのセグメンテーション粒度から、セグメンテーション粒度を大きくした粒度1−1の状態では、「電車に乗った」、「電車停止」、「電車に乗った」という一連の動作が「ある路線の電車に乗った」という1つの行動セグメントとして表される。さらにセグメンテーション粒度を大きくした粒度1−2の状態では、「ある路線の電車に乗った」、「乗換え」、「ある路線の電車に乗った」という一連の動作が「電車で移動」という1つの行動セグメントとして表される。さらにセグメンテーション粒度を大きくした粒度1−3の状態では、「歩いた」、「電車待ち」、「電車で移動」、「歩いた」という移動する一連の動作が「移動した」という1つの行動セグメントとして表される。
このように、動作行動レベルの階層的な行動メタに基づきセグメンテーション粒度を変化することで、ユーザにとって見やすい動作行動レベルによって行動ログを表示することができる。
図4は移動に関する行動セグメントについて説明したが、他の動作についても同様に行動ログを表示することができる。例えば図5に示すように、買い物行動等において現われる、顕著にふらふらとした動きを表す「行動モデルX」と、「食事をした」という動作行動とが動作行動データとして動作行動認識部124により認識されたとする。「行動モデルX」は、通常、買い物というクラスを意味するが、その前あるいは後の判定結果に応じてその意味は変化する。
図5に示す例では、「食事をした」という前後に「行動モデルX」がある。このとき、生活行動認識部321は、行動モデルXの前あるいは後の動作行動データより、行動モデルXを「食事をする」という動作の前後に行われる動作として、「受付した」、「会計した」と認識する。このように、動作の前後よりユーザのふらふらとした動きに意味内容が付されることで、ユーザに分かりやすい行動ログを提示することができる。この例においてもセグメンテーション粒度を大きくすることで、「受付した」、「食事した」、「会計した」という一連の動作を「食事した」という1つの行動セグメントとして表すことができる。
(例2:文脈解析と時間幅とを組み合わせた行動セグメントの生成)
次に、図6に基づいて、文脈解析に加え時間幅を考慮して行動セグメントを生成した場合の一具体例を説明する。図6は、文脈解析および時間幅を組み合わせて動作行動データから行動セグメントを生成し、行動セグメントのセグメンテーション粒度を変化させて行動ログの表示を変化させた場合を示す説明図である。
図6に示すように動作行動認識部124により動作行動データからなる行動ログが取得されたとする。本例では、動作行動データとして、「デスクワーク」、「歩いた」、「打ち合わせ」、「食事」といった単なる動作行動により行動ログが表されている。このような行動ログに対して、生活行動認識部321は、図3に示すような辞書を用いて各動作行動データの意味や動作行動データ間の関連性等を認識するとともに、動作行動データの時間幅も考慮して、その意味内容を認識する。
図6には、会社での行動ログの一例を示している。ここで、「歩いた」という動作行動データについてどのような歩行であったかを前後の動作行動データより認識することもできるが、歩行時間によって推定することもできる。会社における短時間の「歩いた」という動作行動は、通常大きな意味を持たない。しかし、所定の時間以上歩行している場合には、単なるフロア内の移動ではなく施設間の移動であることが推定される。このように、辞書を用いた文脈解析と動作行動データの時間幅とを組み合わせて生成された行動セグメントは、図6に示すようになる。「歩いた」という動作行動データはその時間幅により「短時間歩行」と「施設間移動」とに分かれる。
行動セグメントが生成されると、上記と同様、セグメンテーション粒度を変化させて行動セグメントからなる行動ログの表示を容易に変化させることができる。例えば、単位セグメントのセグメンテーション粒度から、セグメンテーション粒度を大きくした粒度2−1の状態では、「デスクワーク」、「短時間歩行」、「打ち合わせ」、「短時間歩行」、「デスクワーク」という一連の動作が「仕事した」という1つの行動セグメントとして表される。このとき、「短時間歩行」が「仕事した」という1つの行動セグメントに結合されたので、「施設間移動」の行動セグメントを単に「移動」と表示してもよい。
さらにセグメンテーション粒度を大きくした粒度2−2の状態では、「仕事した」、「食事」、「仕事した」、「移動」、「仕事した」という一連の動作が「会社にいた」という1つの行動セグメントとして表される。このように、動作行動レベルの階層的な行動メタに基づきセグメンテーション粒度を変化することで、ユーザにとって見やすい動作行動レベルによって行動ログを表示することができる。
(例3:文脈解析、時間幅および位置変化を組み合わせた行動セグメントの生成)
次に、図7に基づいて、文脈解析に加え時間幅および位置変化を考慮して行動セグメントを生成した場合の一具体例を説明する。図7は、文脈解析、時間幅および位置変化を組み合わせて動作行動データから行動セグメントを生成し、行動セグメントのセグメンテーション粒度を変化させて行動ログの表示を変化させた場合を示す説明図である。
図7に示すように動作行動認識部124により動作行動データからなる行動ログが取得されたとする。本例では、動作行動データとして、「買物した」、「歩いた」といった単なる動作行動により行動ログが表されている。このような行動ログに対して、生活行動認識部321は、図3に示すような辞書を用いて各動作行動データの意味や動作行動データ間の関連性等を認識するとともに、動作行動データの時間幅および行動記録装置100(すなわちユーザ)の位置変化も考慮して、その意味内容を認識する。
図7には、買物での行動ログの一例を示している。ここで、「歩いた」という動作行動データについてどのような歩行であったかを前後の動作行動データより認識することもできるが、歩行時間および位置変化によってより詳細に推定することもできる。
例えば、「歩いた」という動作行動データの前後の動作行動が「買物した」であり、移動時間tがt1(例えば35秒)以上かつユーザの保持する行動記録装置100の位置変化が測定されたとき、ユーザは「店舗を移動」していると推定できる。また、例えば、「歩いた」という動作行動データの前後の動作行動が「買物した」であり、移動時間tがt2(例えば20秒)以上t1よりも短く、かつ行動記録装置100の位置変化はないとき、ユーザは買い物中に「フロア間を移動」していると推定できる。さらに、例えば、「歩いた」という動作行動データの前後の動作行動が「買物した」であり、移動時間tがt3(例えば5秒)以上t2よりも短く、かつ行動記録装置100の位置変化はないとき、ユーザは買い物中に「店舗内を移動」していると推定できる。
このように、文脈解析、時間幅および位置変化を組み合わせて動作行動データの意味内容を認識すると、図7に示すように、「歩いた」という動作行動データから「店舗内の移動(SG1)」、「フロア内の移動(SG2)」、「店舗を移動(SG3)」の3つの行動セグメントという行動セグメントが生成される。
行動セグメントが生成されると、上記と同様、セグメンテーション粒度を変化させて行動セグメントからなる行動ログの表示を容易に変化させることができる。例えば、単位セグメントのセグメンテーション粒度からセグメンテーション粒度を大きくした粒度3−1の状態では、歩行に関する行動セグメントのうち最も歩行時間の短い行動セグメントSG1がその前後にある「買物した」という行動セグメントと結合される。これらは「買物した」という一連の動作として1つの行動セグメントで表されることになる。このとき、「店舗内の移動」が「買物した」という1つの行動セグメントに結合されたので、歩行に関する他の行動セグメントを単に「移動」と表示してもよい。
さらにセグメンテーション粒度を大きくした粒度3−2の状態では、歩行に関する行動セグメントのうち行動セグメントSG1の次に歩行時間の短い行動セグメントSG2がその前後にある「買物した」という行動セグメントと結合される。そして、さらにセグメンテーション粒度を大きくした粒度3−3の状態では、歩行に関する行動セグメントのうち最も歩行時間の長い行動セグメントSG3もその前後にある「買物した」という行動セグメントと結合される。これにより、「買物した」、「歩いた」という一連の動作が「買物した」という1つの行動セグメントとして表される。このように、動作行動レベルの階層的な行動メタに基づきセグメンテーション粒度を変化することで、ユーザにとって見やすい動作行動レベルによって行動ログを表示することができる。
[3−3.行動認識処理]
動作行動データから行動セグメントを生成する処理について、図8〜図10に基づきより詳細に説明する。図8は行動認識の全体処理の流れを示すフローチャートである。図9は、生活行動認識部321による処理を示すフローチャートである。図10は、階層構造判断部322による処理を示すフローチャートである。
行動認識処理は、図8に示すように、行動記録装置100の行動認識部120で行われる動作行動データ作成処理(S100、S110)と、解析サーバ300の行動表現生成部320およびデータ管理部330により行われる行動セグメント生成処理(S120〜S140)とからなる。
センサ類110からセンサ情報を取得した行動認識部120の動作行動認識部124は、動作行動データの作成処理を開始する(S100)。動作行動データ作成処理は、既存の手法を用いて行うことができる。動作行動認識部124は、動作行動データを作成すると、行動ログサーバ200へ出力する(S110)。このようにして、行動ログサーバ200には、ユーザの行動ログを構成する動作行動データが蓄積されていく。なお、行動認識部120は、動作行動データとして、動作レベルの行動情報のみならず、例えば時間情報や場所情報、機器の操作履歴等を含んだ情報を生成してもよい。
動作行動データが作成されると、解析サーバ300の行動表現生成部320は、生活行動認識部321により動作行動データの意味内容を解析する(S120)。生活行動認識部321は、動作行動データを予め設定された単位長のデータに区分し、区分された各データについて生活行動メタ情報を付与する。動作行動データの単位長は所定時間T(例えばT=1min)によって規定される。また、動作行動データの区分順序をi(i=1〜N)とする。
生活行動認識部321は、動作行動データを時系列順に単位時間Tで区分した後、まず、単位長(T)とパラメータiとの積算値が動作行動データの長さ(時間)より小さいか否かを判定する(S121)。ステップS121で単位長(T)とパラメータiとの積算値が動作行動データの長さ(時間)より小さいと判定したとき、生活行動認識部321は、時刻T*iから時刻T*(i+1)における区分データに対して生活行動メタ情報を付与する(S122)。ここで、記号「*」は積算処理を表す。ステップS122では、例えばルールベースの分岐処理を用いて、当該時刻における区分データに当てはまる意味内容(生活行動メタ情報)を付与することができる。あるいは、隠れマルコフモデル(Hidden Markov Model;HMM)やニューラルネットワーク(Neural Network)等の機械学習の手法を用いて区分データに生活行動メタ情報を付与することもできる。なお、区分データに付加される生活行動メタ情報は1つのみでなく、複数の生活メタ情報を付与してもよい。
生活行動認識部321は、ステップS122で動作行動データの区分データに生活行動メタ情報を付与すると、パラメータiに1を加算して(S123)、ステップS121からの処理を繰り返す。ステップS121にて単位長(T)とパラメータiとの積算値が動作行動データの長さ(時間)以上であると判定したとき、生活行動認識部321は、ステップS122の処理により生活行動メタ情報が付与された各区分データを生活行動データとして出力する(S124)。生活行動認識部321の出力結果は、所定の記憶部(図示せず。)に記録してもよく、そのまま次の処理を行う機能部(ここでは階層構造判断部322)へ出力してもよい。
図8の説明に戻り、生活行動認識部321により動作行動データを構成する区分データに生活行動メタ情報が付与された情報である生活行動データが生成されると、階層構造判断部322は、生活行動データに対して、意味内容に関する階層関係を表す階層情報を付与する。かかる処理を図10に基づき説明する。階層構造判断部322は、まず、入力された生活行動データについて、階層情報が付与されていない、または付与された階層情報のさらに上位階層にシフト可能である、という条件のうち少なくともいずれか1つを満たすか否かを判定する(S131)。
ステップS131にてこの条件をいずれも満たさないとき、すなわち、既に最上位の階層情報が生活行動データに付加されているとき、階層構造判断部322は図10に示す処理を終了する。一方、ステップS131にて上記条件のいずれか一方を満たすとき、階層構造判断部322は、時系列に配列された各区分データについて、隣接する同一行動の区分データを結合する(S132)。ステップS132では、ステップS120で離散化されたデータについて、同一行動が連続する場合には1つの動作行動とみなす処理を行っている。区分データを結合して生成された1つのまとまり(セグメント)は、所定の記憶部(図示せず。)に記録してもよい(S133)。
次いで、ステップS132で生成されたセグメントの時系列の配列順序をj(j=1〜M)としたとき、階層構造判断部322は、jがステップS131で生成されたセグメント数より小さく、かつj番目のセグメントの行動に関連する辞書情報を取得可能か否か判定する(S134)。ステップS134にてこの条件をいずれも満たすとき、階層構造判断部322は、取得した辞書情報のうち当該セグメントに最適な辞書情報を選択し、付与する(S135)。そして、階層構造判断部322は、当該セグメント(j)に対し、選択された辞書情報および時間的前後関係よりさらに上位階層情報を付与可能か否かを判定する(S136)。ステップS136にて上位階層情報を付与可能と判定した場合には、階層構造判断部322は、当該セグメント(j)に上位階層情報を付与し、パラメータjに1を加算する(S137)。その後、ステップS134からの処理を繰り返す。
一方、ステップS134にて、jがステップS132で生成されたセグメント数以上である、あるいはj番目のセグメントの行動に関連する辞書情報を取得できないと判定すると、階層構造判断部322は、ステップS131からの処理を繰り返す。また、ステップS136にてセグメント(j)に対して上位階層情報を付与できないと判定した場合にも、階層構造判断部322は、ステップS131からの処理を繰り返す。
図10に示したように、階層構造判断部322は、ステップS120で生成された区分データを、時間的に連続する同一行動でまとめ、セグメント化する。そして、各セグメントの行動について、関連する辞書情報を取得し付加するとともに、さらに上位階層の情報を付加できるかを判断する。このように、ステップS131〜S137の処理を行うことで、階層情報が付加された最小単位の行動セグメント(単位セグメント)が生成される。
図11および図12は、行動セグメント生成処理の一例を示すフローチャートである。図11に示すように、階層構造判断部322は、まず、区分データのうち同一行動で挟まれる「その他の行動」が存在するか否かを判定する(S200)。同一行動で挟まれる「その他の行動」がある場合、「その他の行動」はその前後にある行動にマージされる(S202)。なお、精度が十分高く、かつ行動の変化点となりやすい「歩き」の動作行動に挟まれる「その他の行動」については、マージ処理を行わない。ステップS202にて「その他の行動」をマージした後、あるいはステップS200にて同一行動で挟まれる「その他の行動」がなかったとき、階層構造判断部322は、連続する同一行動をマージされる(S204)。
その後、階層構造判断部322は、マージ処理により生成されたセグメントの時系列順を表すパラメータk(k=1〜K)を初期値1に設定し(S206)、セグメント(k)の行動時間が所定時間T1(例えばT1=3min)より小さいか否かを判定する(S208)。ステップS208でセグメント(k)の行動時間が所定時間T1より小さい場合、階層構造判断部322は、当該セグメントをバッファに蓄積する(S210)。一方、ステップS208にてセグメント(k)の行動時間が所定時間T1以上と判定された場合、さらに階層構造判断部322は、セグメント(k)の行動時間が所定時間T2(T2>T1、例えばT2=10min)より小さいか否かを判定する(S212)。
ステップS212にてセグメント(k)の行動時間が所定時間T2より小さいと判定された場合、階層構造判断部322は、セグメント(k)を直前の行動にマージする(S214)。一方、ステップS212にてセグメント(k)の行動時間が所定時間T2以上の場合、階層構造判断部322は、当該セグメントの動作行動を「その他の行動」に決定する(S216)。その後、階層構造判断部322は、すべてのセグメントについてステップS208〜S216の処理を実行したか否かを判定し(S218)、未処理のセグメントがある場合には、kに1を加算した後(S220)、ステップS208からの処理を繰り返す。
一方、すべてのセグメントについてステップS208〜S216の処理を実行した場合には、図12に示すように、これらのセグメントについて連続する同一行動をマージする処理を行う(S222)。その後、なおデータ単位時間のみ(例えば1分間だけ)の乗物行動が存在する場合には、当該セグメントの行動を「その他の行動」とする(S224)。
次いで、階層構造判断部322は、セグメントの行動内容が「歩行」であるか否かを判定し(S226)、「歩行」以外の場合にはバッファに当該セグメントを蓄積する(S228)。一方、ステップS226にてセグメントの行動内容が「歩行」である場合、さらにバッファに乗物行動が蓄積されているか否かを判定する(S230)。乗物行動がバッファに蓄積されているとき、階層構造判断部322は、当該セグメントの動作行動を、「歩行」から占有率が最大の乗物の行動とする(S323)。一方、乗物行動がバッファに蓄積されていないときには、当該セグメントの動作行動を「その他の行動」に決定する(S324)。
ここで、行動セグメントに付加される階層情報について、図13に基づき説明する。図13に示すように、6つの単位セグメント(SG01〜SG06)の動作内容が「電車」、「電車」、「歩き」、「歩き」、「電車」、「電車」であったとする。図10に示した処理により、単位セグメントSG01およびSG02は行動セグメントSG07に、単位セグメントSG03およびSG04は行動セグメントSG08に、単位セグメントSG05およびSG06は行動セグメントSG09にまとめられる。この状態を粒度1−0とする。粒度1−0の行動セグメントSG07〜SG09は、それぞれ「ある路線の電車に乗った(行動B)」という行動セグメントSG17、「乗換え(行動C)」という行動セグメントSG18、「ある路線の電車に乗った(行動C)」という行動セグメントSG19となる。このときの粒度を1−1とする。さらに粒度1−1の状態から行動セグメントSG17〜SG19をまとめると、「電車に乗った(行動A)」という1つの行動セグメントSG10となる。このときの粒度を1−2とする。
行動セグメントの階層情報の持ち方は、単位セグメントを結合した行動セグメントに対して付与する場合と、単位セグメントに対して付与する場合とが考えられる。単位セグメントを結合した行動セグメントに対して階層情報を付与する場合、例えば、図13の行動Bの行動セグメントSG17に着目したとする。行動セグメントSG17は、単位セグメントSG01およびSC02を結合して新規に生成された行動セグメントと考えられる。この場合、行動セグメントSG17に対し、粒度1−1の行動セグメントであること、「ある路線の電車に乗った」という行動内容であること、行動の開始時刻および終了時刻を階層情報として付与する。あるいは、行動セグメントSG17に対し、単位セグメントSG01およびSG02から構成されていることを階層情報として付与してもよい。
一方、最小単位の行動セグメントである単位セグメントに階層情報を付与する場合、例えば図13の行動セグメントSG01に着目したとする。このとき、行動セグメントSG01には、単位セグメントであること、粒度1−0では行動セグメントSG07に、粒度1−1では行動セグメントSG17に、粒度1−2では行動セグメントSG10に含まれることが階層情報として付与される。具体的には、例えば[電車、行動B、行動A]のように動作内容を階層順に関連付けた情報を階層情報として表すことができる。
階層情報は、いずれの形式で付与してもよく、他の形式で付与することもできる。単位セグメントを結合した行動セグメントに対して階層情報を付与する場合はデータ量の観点から優れており、単位セグメントに階層情報を付与する場合はデータベース検索の面で優れている。
図8の説明に戻り、ステップS130にて生活行動データから階層情報が付与された行動セグメントが生成されると、生活行動認識部321は各行動セグメントをデータ管理部330へ出力する(S140)。データ管理部330は、取得した行動セグメントを、記憶部(単位データ保存DB334あるいは階層情報付与済データ保存DB335)に記録する。
[3−4.行動表現生成部の処理内容]
解析サーバ300は、リアルタイムに行動セグメントによる行動ログを蓄積することができ、同時に動作行動の意味内容に基づく行動表現を生成することができる。また、過去の行動履歴から行動表現を生成することもできる。解析サーバ300の行動表現生成部320およびデータ管理部330の詳細な構成を図14に示す。図14は、解析サーバ300の機能構成を示す機能ブロック図である。
図14に示すように、行動表現生成部320は、上述した生活行動認識部321、階層構造判断部322に加え、階層処理部323と、登録処理部324と、コメント作成部325と、取得部326とをさらに備えることができる。
階層処理部323は、階層構造判断部322の判断結果に対する後段処理を行う。階層処理部323は、データの軽量化や高速化のために、行動セグメントに付与するデータについて一部のみを記憶部に記録したり、指定した行動セグメントの階層情報をアプリケーションに渡したりする際に、階層構造に基づいて機能する。
上述のように、階層情報は、単位セグメントを結合した行動セグメントに対して付与する場合と、単位セグメントに対して付与する場合とが考えられる。結合した行動セグメントに対して階層情報を付与している場合、階層処理部323は、ユーザが入力部160を介して選択した階層情報の行動セグメントを処理する。一方、単位セグメントに対して階層情報を付与している場合、階層処理部323は、ユーザが入力部160を介して選択した階層情報に基づいて、単位セグメントを結合し行動セグメントを生成する。階層処理部323は、情報の処理結果を登録処理部324およびコメント作成部325へ出力する。
登録処理部324は、階層処理部323にて生成された行動セグメントをデータ管理部330へ記録する。登録処理部324は、行動セグメントをデータ取得部331に出力し、例えば階層情報付与済データ保存DB335に記録する。
コメント作成部325は、生成された行動セグメントに対して行動の意味内容等のコメントを生成し付与する。コメント作成部325により生成されたコメントはデータ取得部331へ出力される。データ取得部331は、当該コメントを対応する行動セグメントと関連付けて例えば階層情報付与済データ保存DB335に記録する。
取得部326は、最小単位データ保存DB334または階層情報付与済データ保存DB335から所定の行動セグメントを取得する。取得部326は、例えば過去の行動ログを利用しなければならない処理が行動表現生成部320にて実行されるとき、最小単位データ保存DB334または階層情報付与済データ保存DB335に記録されている過去のデータを取得する。取得するデータは、ユーザからの指示に基づき決定される。
<4.行動記録表示アプリケーション>
上述したように、行動記録装置100にて取得した動作行動データを解析サーバ300にて解析することで、動作行動の意味内容が付加された行動セグメントが生成される。以下では、行動セグメントを用いてユーザの行動ログを表現するアプリケーションの機能について説明する。
[4−1.行動セグメントに基づく行動ログの表現]
まず、行動セグメントを用いた行動ログの表現について説明する。行動ログの表現の一例を図15に示す。図15の行動ログは、例えば行動記録装置100の表示部150に表示することができる。
行動ログは、時系列に配列された行動セグメントからなる。各行動セグメントには、例えば、動作行動の開始時間および終了時間、動作内容が表示される。また、動作内容が「電車で移動」等のような移動系行動の場合には、例えば出発地から到着地(例えば「五反田から大崎へ」)といった位置表現が動作内容に付加される。動作内容が「作業」、「食事」等のような移動系以外の行動の場合には、その動作を行った場所(例えば「大崎で」)が動作内容に付加される。
さらに、このような行動セグメントの動作をわかりやすくユーザに通知するために、動作内容を示すオブジェクトを表示することもでき、その動作をしているときのユーザの気分を表すオブジェクトを表示してもよい。また、その動作のためにユーザが歩いた歩数(ステップ値)や動作による消費エネルギを示す値(エクササイズ値)を表示してもよい。行動ログを構成する各行動セグメントに表示される内容は図15に示す例に限定されず、センサ類から取得されたセンサ情報から得られる情報等をさらに各行動セグメントに表示させることもできる。
なお、図15に示す行動ログでは、隣接する行動セグメントの時刻が時間的に連続していない箇所がある。例えば12:30から開始された「大崎で食事」という行動と、14:30から開始された「渋谷にいました」という行動との間に空白時間が存在する。このように、行動ログに、すべての行動セグメントを表示させないようにすることができる。行動セグメントの非表示は、例えばユーザによる行動セグメントの編集/削除によって表示させないようにしたり、一部の行動セグメントを非表示にする非表示フィルタを設定したりすることで実行される。
非表示フィルタとしては、例えば、行動時間が短時間である場合に非表示とするフィルタや、ユーザにとって重要でないと判断される行動セグメントを非表示とするフィルタ等が考えられる。また、認識精度が低い場合に非表示とするフィルタや、ユーザにより指定された行動や場所のみを表示させるフィルタ等を設定してもよい。
[4−2.行動の閲覧]
ユーザは、行動ログ表示アプリケーションを閲覧端末(例えば、行動記録装置100)で起動すると、例えばユーザの行動ログを所定単位、例えば1日単位で閲覧することができる。図16に、行動ログ表示アプリケーションを起動したときの行動ログの一表示例を示す。図16は、行動記録装置100の表示部150に1日単位の行動ログ410が表示された状態を示す。
行動ログ410は、例えば画面上端から下端に向かって時系列に配列された行動セグメント412からなる。各行動セグメント412には、図15でも説明したように、動作を行った場所、場所の説明、行動の種類、動作のためにユーザが歩いた歩数やエクササイズ値等が表示される。表示の画面内に1日分の行動ログをすべて表示できない場合には、画面スクロール操作を行うことで、表示されていない行動セグメントを表示部150に表示させることができる。
現在表示中の行動ログの前日の行動ログを表示させるためのPrevボタン422、または現在表示中の行動ログの翌日の行動ログを表示させるためのNextボタン424にタッチすることで、別の日の行動ログを表示部150に表示させることができる。Prevボタン422を押下したとき、1日前の行動ログが存在しない場合は、過去に遡って次に行動ログが取得されている日の行動ログを表示させてもよい。同様に、Nextボタン424を押下したとき、翌日の行動ログが存在しない場合は、現在に向かって次に行動ログが取得されている日の行動ログを表示させてもよい。また、表示部150には行動ログ410の閲覧、編集等のための操作ボタン430が表示されており、ユーザは、実行したい処理に対応するボタンにタッチすることでその処理を実行することができる。
例えば、カレンダーボタン434をタッチすると、図17に示すようにカレンダー440が表示部150に表示される。画面遷移後、表示部150に最初に表示されるカレンダー440は、例えば現在の月のものであってもよく、画面遷移前に表示されていた行動ログ410に対応する月のものであってもよい。カレンダー440では、行動ログ410を表示可能な日、すなわち行動ログ410をデータとして蓄積している日を例えばタッチ操作等により選択することができる。カレンダー440からある日が選択されると、その日の行動ログ410が表示部150に表示される。
カレンダー440の表示は、前(<)ボタン442あるいは次(>)ボタン444を操作することで変更することができる。前(<)ボタン442を操作すると前月のカレンダーが表示され、次(>)ボタン444を操作すると翌月のカレンダーが表示される。前(<)ボタン442を押下したとき、1月前に行動ログが存在しない場合は、過去に遡って次に行動ログが取得されている月のカレンダー440を表示させてもよい。同様に、次(>)ボタン444を押下したとき、翌月に行動ログが存在しない場合は、現在に向かって次に行動ログが取得されている月のカレンダー440を表示させてもよい。
なお、図17では月単位のカレンダー440が表示される例を示したが、本技術はかかる例に限定されず、例えば週単位、2週単位、年単位のカレンダーを表させることもできる。また、カレンダー440において、行動ログを表示可能な日に対して、その日の代表的な動作行動を示すアイコンを表示するようにしてもよい。これにより、ユーザは一目でその日の行動を認識することができる。このようなカレンダー機能によって、閲覧したい行動ログ410を容易に探し出すことができ表示部150に表示させることができる。カレンダー440の表示画面から前画面に遷移するには、Backボタン446を操作すればよい。
また、例えば、操作ボタン430のうちマップボタン431をタッチすると、行動ログ表示アプリケーションは地図450を起動し、行動ログ410に対応する位置情報を地図450に表示する。図18に、マップボタン431を操作して行動ログ410に対応する位置情報を地図450に表示させたときの一表示例を示す。
行動ログ410が表示されているとき、行動ログ410を構成する行動セグメント412が1つも選択されていない状態でマップボタン431がタッチされると、例えばその日の行動ログ410すべての位置情報の履歴が地図450上に表示される。ユーザが移動していれば、その移動軌跡が画面に表示されることになる。
一方、行動ログ410が表示されているとき、行動ログ410から1つの行動セグメント412aが選択された状態でマップボタン431がタッチされると、その行動セグメント412aの位置情報の履歴が地図450上に表示される。例えば、図18左に示すように、「鷺ノ宮から大崎へ電車で移動」した行動セグメント412aが選択され、マップボタン431がタッチされると、図18右に示すように、出発地(鷺ノ宮)から到着地(大崎)への電車での移動軌跡が地図450に表示される。これにより、ユーザがどのような経路で移動したかを分かり易く提示することができる。位置情報を地図450に表示している際、表示部150に当該位置情報の時間情報452を表示するようにしてもよい。
なお、ユーザが移動していない場合には、その動作を行った場所にアイコン等を表示してもよい。また、図18では1つの行動セグメント412が選択された場合について説明したが、本技術はかかる例に限定されず、複数の行動セグメント412を選択し、選択されたすべての行動セグメント412の位置情報を地図450に表示することもできる。この際、地図450上の位置情報を、行動セグメント毎に色分け等して区別して表示してもよい。地図450の表示画面から前画面に遷移するには、Backボタン454を操作すればよい。
[4−3.行動の修正]
上記では、解析サーバ300にて解析され生成された行動セグメント412を用いて行動ログ410を表示部150に表示する方法について説明した。しかし、生成された行動ログ410の表示内容に誤りがある場合もある。このとき、ユーザは行動ログ410の内容を修正することができる。なお、この修正フィードバックは、行動認識判定処理に反映される。まず、図19および図20に基づいて、行動ログ410の修正方法について説明する。図19は、修正対象の行動セグメントを修正する修正画面が表示された状態を示す説明図である。図20は、動作行動を修正する修正画面の一例を示す説明図である。
行動セグメント412の内容を修正するには、ユーザは表示部150に表示された行動ログ410のうち修正対象の行動セグメント412aを選択し、編集ボタン435にタッチする。そうすると、図19右に示すように、修正対象の行動セグメント412aを修正する修正画面460が表示される。例えば、「鷺ノ宮から大崎へ電車で移動」した行動セグメント412aの修正を選択すると、行動ログ410の表示画面から、動作内容、動作の開始場所および終了場所、動作時の気分を編集可能な修正画面460に画面遷移する。
動作内容の修正は、修正画面460の動作内容修正エリア461にて行うことができる。例えば動作内容修正エリア461を選択すると、図20に示すように、修正する動作内容候補がリスト化された動作内容候補リスト461aが表示される。ユーザは、動作内容候補リスト461aから正しい動作内容を選択することで、動作内容を修正することができる。動作内容候補リスト461aから「自由入力」が選択された場合には、ユーザが自由に動作内容を入力できる入力欄が表示され、正しい動作内容を入力することができる。
動作内容候補リスト461aから動作内容を選択すると、ユーザは動作の開始場所および終了場所の修正を引き続き行う。このとき、選択された動作内容が例えば「バスで移動」等のように移動系行動である場合、開始場所修正エリア462、開始場所説明修正エリア463、終了場所修正エリア464、終了場所説明修正エリア465の修正を行うことができる。
開始場所修正エリア462および終了場所修正エリア464は、場所名リストを表示してユーザが選択入力できるようにしてもよく、場所名を直接入力できるようにしてもよい。場所名リストには、例えばビル名や駅名、店名等のランドマークとなる場所名を表示することができる。また、ランドマークとなる場所がない場合には、地名(住所)を場所名リストに表示してもよい。
また、開始場所修正エリア462および終了場所修正エリア464の入力内容に連動して地図を表示する開始場所マップ462aおよび終了場所マップ464aを表示部150に表示させてもよい。開始場所マップ462aおよび終了場所マップ464aには、当該マップ上でのスクロール操作によって任意の場所の地図を表示させることができる。また、開始場所マップ462aおよび終了場所マップ464aに表示されているマップ上でタッチ操作が行われたとき、タッチ操作が行われた位置に対応する場所名を開始場所修正エリア462および終了場所修正エリア464に自動入力するようにしてもよい。
開始場所説明修正エリア463および終了場所説明修正エリア465は、開始場所修正エリア462および終了場所修正エリア464に入力された場所がユーザにとってどのような場所であるかを入力する領域である。開始場所説明修正エリア463および終了場所説明修正エリア465にタッチすると、例えば、図20に示すように、説明候補リスト463aあるいは465aが表示される。ユーザは説明候補リスト463aあるいは465aから正しい説明を選択することで、場所説明を入力することができる。
場所の説明内容としては、例えば自宅等の「帰る場所」、会社等の「働く場所」、学校等の「勉強する場所」等がある。このような場所の説明を入力することで、ユーザにとってその場所がどのような意味を持つかを把握することができ、当該ユーザに対する行動認識の精度を向上させるのに役立てることができる。説明候補リスト463aあるいは465aに正しい説明がない場合には、開始場所説明修正エリア463および終了場所説明修正エリア465に直接説明を入力することも可能である。
図20の動作内容候補リスト461aにて選択された動作内容が例えば「買物」や「仕事」等のように移動系以外の行動である場合には、終了場所修正エリア464、終了場所説明修正エリア465の修正を行うことができる。修正方法は、上述した通りである。
動作を行ったときのユーザの気分を示すオブジェクトの修正は、例えば、図19に示すように、気分修正エリア466により行うことができる。気分修正エリア466は、「気分未設定」ボタンと、気分の良し悪しを段階的に選択する気分選択ボタンとからなる。気分選択ボタンは、例えば「非常に悪い(イライラ・憂鬱)」、「悪い(なんとなくイライラ)」、「まあまあ(特に問題なし)」、「よい(ちょっと気分がよい)」、「非常に良い(爽やか・清清しい・充実)」の5段階の気分を選択可能に構成することができる。ユーザは、動作を行ったときの気分を気分修正エリア466から選択することができる。
すべての修正を終えると、修正画面460の最下部にあるセーブボタン468aまたは最上部にあるセーブボタン468bを押下することで、修正内容を行動セグメント412aに反映させることができる。セーブボタン468aまたは468bを押下すると、修正画面460遷移前の画面に遷移する。なお、修正画面460での入力内容を反映させずに修正画面460遷移前の画面に遷移するには、修正画面460の最下部にあるキャンセルボタン467aまたは最上部にあるキャンセルボタン467bを押下すればよい。
[4−4.行動の結合]
本技術においては、各行動セグメント412の内容を修正するだけでなく、行動セグメント412間の関連性を修正することで、行動ログ410の表示を容易に変更することができる。例えば、複数の行動セグメント412を結合して1つの行動セグメント412として表示することができる。行動セグメント412の結合は、複数の時間的に連続した行動セグメント412を1つの行動セグメント412に結合する機能である。結合後の行動セグメント412の時間範囲は最も過去の行動セグメント412の開始時刻から最も現在に近い行動セグメント412の終了時刻までとなる。
図21に行動セグメント412の結合方法の一例を示す。まず、行動ログ410が表示されている状態において、マージボタン432を押下すると、行動セグメント412を結合可能な状態(行動結合モード)となる。行動結合モードにおいて結合したい行動セグメント412を選択することで選択した行動セグメント412を結合することができる。
ここで、結合対象の行動セグメント412のうち最初に選択した行動セグメント412bの行動を結合後の動作内容とすることができる。図21では、「大崎で仕事」という動作内容が結合後の動作内容となる。その後、他の結合対象の行動セグメント412を選択する。行動セグメント412の選択は、タッチ操作やドラッグ操作により行うことができる。図21においては、符号412cで囲まれた行動セグメントが結合対象として選択されている。そして、結合対象の行動セグメント412を選択後、セーブボタン468aを押下すると、結合対象の行動セグメント412が結合して表示されるようになる。結合された行動セグメント412は、「大崎で仕事」を9:55から22:42までしたという行動を表すものとなる。なお、結合モードを解除するには、キャンセルボタン467aを押下すればよい。
図21の例においては、結合後の行動セグメント412の動作内容は、最初に選択された行動セグメント412のものに決定されたが、本技術はかかる例に限定されない。他の結合後の行動セグメント412の動作内容決定方法の一例を図22に示す。図22では、結合対象の行動セグメントをドラッグ操作により選択している。すなわち、まず結合対象の最初の行動セグメント(開始セグメント)に指で接触して選択し、そのまま指を移動させて結合対象の最後の行動セグメント(終了セグメント)まで選択する。これにより、結合対象の行動セグメント(符号412cで囲まれた行動セグメント)が決定される。そして、セーブボタン468a(図21参照)を押下すると、結合後の行動セグメントが表示される。
結合後の行動セグメントの動作内容は、例えば結合対象の行動セグメントのうち任意の行動セグメントの動作内容とすることができる。例えば、「大崎で歩いていました」という動作内容を選択した場合、結合後の行動セグメント412d1の動作内容は「大崎で歩いていました」となる。
また、結合後の行動セグメントの動作内容は、例えば結合対象の行動セグメントの多数決により決定してもよい。例えば、図22の例では、結合対象の4つの行動セグメント412のうち、2つの行動セグメント412の動作内容が「大崎で作業」であり、1つの行動セグメント412の動作内容が「大崎で食事」であり、別の1つの行動セグメント412の動作内容が「大崎で歩いていました」である。これより、最も多い動作内容の「大崎で作業」を、結合後の行動セグメント412d2の動作内容として決定することができる。
あるいは、結合後の行動セグメントの動作内容は、例えば結合対象の行動セグメントについて再解析を行って決定してもよい。例えば、図22の例では、結合対象の4つの行動セグメント412の動作内容は「大崎で作業」、「大崎で食事」、「大崎で歩いていました」である。これより、ユーザの動作の意味内容を再解析し、例えば「大崎にいました」という動作内容を、結合後の行動セグメント412d3の動作内容として決定することができる。
このように、行動セグメント412の結合は、結合対象を選択することにより容易に行うことができる。
[4−5.行動の分割]
また、本技術においては、行動セグメント412間の関連性の修正として、例えば、複数の行動セグメント412を分割して複数の行動セグメント412として表示することができる。行動セグメント412の分割は、1つの行動セグメント412を複数の行動セグメント412に区分する機能である。行動セグメント412の分割方法として、例えば行動セグメント412を分割する時刻を設定する方法や、階層情報を用いた分割方法等がある。
例えば、図23に行動セグメント412の時刻設定による分割方法の一例を示す。まず、行動ログ410が表示されている状態において、分割ボタン433を押下すると、行動セグメント412を分割可能な状態(行動分割モード)となる。行動分割モードにおいて分割したい行動セグメント412を選択することで選択した行動セグメント412を指定の時刻で分割することができる。
例えば、図23において行動セグメント412eが分割対象として選択されたとする。そうすると、分割対象の行動セグメント412eの分割時刻を入力する分割時刻設定画面が表示される。分割時刻設定画面では、分割対象の行動セグメントの開始時間から終了時間までの間の任意の時刻を設定することができる。その後、セーブボタン468aを押下すると、分割対象の行動セグメント412が分割して表示される。例えば、分割時刻が11:50に設定されたとき、行動セグメント412は、9:58から11:50まで「大崎で仕事」をしたという第1の行動セグメントと、11:50から12:29まで「大崎で仕事」をしたという第2の行動セグメントとに分割される。なお、分割モードを解除するには、キャンセルボタン467aを押下すればよい。
また、例えば、図24に行動セグメント412の階層情報に基づく分割方法の一例を示す。図24では既に行動分割モードになっているとする。ユーザが、行動ログ410が表示されている状態において分割したい行動セグメント412eを選択すると、図24に示すように、分割対象の行動セグメント412eをより詳細な行動セグメントで表した階層リスト414が表示される。階層リスト414が表示されると、ユーザは分割点となる行動セグメントを選択する。
例えば、図24において行動セグメント414aが選択されると、行動セグメント414aの例えば終了時間を分割時刻として決定し、図24右に示すように、9:30から11:59まで「大崎で仕事」をしたという第1の行動セグメント412e1と、11:59から12:30まで「大崎で仕事」をしたという第2の行動セグメント412e2とに分割される。
[4−6.セグメンテーション粒度に基づく行動セグメントの表示]
本技術において行動ログ410を構成する行動セグメント412は、その意味内容に基づく階層関係を階層情報として保持している。この階層情報を用いてセグメンテーション粒度を変化させることで、表示される行動ログ410の表示粗さを変化させることができる。表示粗さは、例えばスライダーを用いたり、ズームボタンを用いたりして変化させることができる。
図25には、スライダー471を用いて表示粗さを変化させる場合を示す。スライダー471には表示粗さ(粒度)を設定するためのつまみ472が表示されており、つまみ472の位置を変化させることで表示粗さを変化させることができる。例えば図25左に示すように、つまみ472がスライダー471の粒度小側にあるとき、行動ログ410は詳細な行動セグメント412により表示される。かかる状態からつまみ472をスライダー471の粒度大側に移動させるにつれて、予め行動セグメント412に付与されたセグメンテーション粒度に基づいて、複数の行動セグメント412がまとめて表示されるようになる。
また、図26にズームボタン473を用いて表示粗さを変化させる場合を示す。ズームボタン473には表示粗さ(粒度)を設定するための複数のボタン474が一列に表示されている。この複数のボタン474のうちいずれか1つをチェックすることで、そのボタン474に対応する表示粗さで行動ログ410を表示させることができる。例えば図26左に示すように、ズームボタン473のうち粒度小側のボタン474がチェックされているとき、行動ログ410は詳細な行動セグメント412により表示される。かかる状態から粒度大側のボタン474をチェックするにつれて、予め行動セグメント412に付与されたセグメンテーション粒度に基づいて、複数の行動セグメント412がまとめて表示されるようになる。
このように、行動セグメント412に付与されたセグメンテーション粒度に基づき行動ログ410の表示粗さを容易に変化させることができ、ユーザが見たい表示粗さで行動ログ410を見ることができる。
ここで、図25および図26では、行動ログ410の表示粗さを変化させていたが、本技術では、目的に応じて行動セグメント412の表示粗さを変化させることもできる。すなわち、行動の種類により独立して行動セグメント412の表示粗さを変化させる。行動の種類としては、仕事、買い物、移動等が考えられ、例えば図27に示すような行動種類選択リスト475から対応する行動のボタン476をチェックすることで、その行動の表示粗さのみを変化させることができる。
例えば図27に示すように、行動種類選択リスト475にて「仕事詳細」のボタン476bがチェックされると、仕事に関係する行動セグメント412f1、412g1が詳細に表示されるようになる。例えば、行動セグメント412f1については、「大崎で作業」という動作内容が、「大崎でデスクワーク」、「歩いて移動」、「大崎でミーティング」、「歩いて移動」、「大崎でデスクワーク」という5つの行動セグメント群412f2により表示される。なお、行動セグメント412g1については、当該動作内容が最も詳細であったため、表示粗さ変更後も同一内容が表示される(行動セグメント412g2)。
また、例えば図28に示すように、行動種類選択リスト475にて「買い物詳細」のボタン476cがチェックされると、買い物に関係する行動セグメント412h1が詳細に表示されるようになる。例えば、行動セグメント412h1については、「渋谷で買い物」という動作内容が、「渋谷で買い物」、「フロアの移動」、「渋谷で買い物」、「渋谷で店舗間の移動」、「渋谷で買い物」、「渋谷で店舗間の移動」、「渋谷で買い物」という7つの行動セグメント群412h2により表示される。
さらに、例えば図29に示すように、行動種類選択リスト475にて「移動詳細」のボタン476dがチェックされると、移動に関係する行動セグメント412i1、412j1、412k1が詳細に表示されるようになる。例えば、行動セグメント412i1については、「鷺ノ宮から大崎へ電車で移動」という動作内容が、「鷺ノ宮で電車待ち」、「鷺ノ宮から高田馬場へ電車で移動」、「高田馬場で乗り換え」、「高田馬場から大崎へ電車で移動」、「大崎で歩いて移動」という5つの行動セグメント群412i2により表示される。同様に、行動セグメント412j1については、「大崎から渋谷に移動」という動作内容が、「大崎駅に移動」、「大崎駅で電車待ち」、「大崎から渋谷に電車で移動」、「渋谷に移動」という4つの行動セグメント群412j2により表示される。行動セグメント412k1についても同等に詳細な内容が表示される。
また、行動に依存せず行動セグメント412の表示粒度を同一粒度で表示する場合には、例えば図30に示すように、行動種類選択リスト475にて「一律階層」のボタン476aをチェックすればよい。これにより、行動ログ410のすべての行動セグメント412が同一粒度で詳細に表示される。
このように、行動の種類に応じて独立して行動セグメント412の表示粗さを変化させることができることにより、ユーザが詳細に確認したい行動のみ詳細に表示させることが可能となる。
なお、図25および図26に示した表示粗さの変更方法と、図27〜図30に示した行動の種類に応じた表示粗さの変更方法とを組み合わせることも可能である。例えば図31に示すように、行動の種類毎にスライダーを設けて、各行動の種類の表示粗さをそれぞれ調整できるようにしてもよい。図31では、「仕事」に関係する行動セグメントの表示粗さを設定するスライダー478a、「買物」に関係する行動セグメントの表示粗さを設定するスライダー478b、「移動」に関係する行動セグメントの表示粗さを設定するスライダー478cを設けた表示粒度設定部477を示している。表示粒度設定部477の各スライダー478a、478b、478cの各つまみ479a、479b、479cをそれぞれ移動させることで、行動の種類毎の表示粗さを調整することが可能となる。
[4−7.行動の削除]
また、本技術においては、行動ログ410から行動セグメント412を削除することができる。例えば、図32に示すように、行動ログ410が表示されている状態において、削除対象の行動セグメント412lを選択し、削除ボタン436を押下すると、図32右に示すように削除確認画面480が表示される。削除確認画面480では、削除対象の行動セグメント412lの削除理由をユーザに入力させることができる。ユーザが該当する削除理由が記載されたボタンを押下すると、削除対象の行動セグメント412lは行動ログ410から削除される。ユーザの選択した理由によっては、行動セグメントの削除を行動修正としてフィードバックしてもよい。
[4−8.行動の投稿]
また、本技術においては、行動ログ410の行動セグメント412の内容を投稿サイトに投稿することができる。例えば、図33に示すように、行動ログ410が表示されている状態において、投稿対象の行動セグメント412mを選択し、投稿ボタン437を押下すると、図33右に示すように投稿画面482が表示される。投稿画面482では、投稿対象の行動セグメント412mの動作内容が投稿内容入力エリア482aに自動的に貼り付けされる。ユーザが投稿実行ボタン482bを押下すると、投稿内容入力エリア482aの記載内容が投稿サイトへ投稿される。
[4−9.行動ログ取得停止処理]
本技術において、何らかの理由で行動ログの取得を停止する場合、例えば図34に示すように、設定ボタン438を押下して設定画面490を表示させる。設定画面490では、行動ログ表示アプリケーションに関する様々な設定を行うことができる。例えば行動ログ410の取得を停止する場合には、行動ログ取得機能の動作を設定する取得機能設定部491の「停止」を選択する。これにより、行動ログ表示アプリケーションは行動ログ取得機能を停止させる。なお、停止した行動ログ取得機能を再開させる場合には、取得機能設定部491の「再開」を選択すればよい。
[4−10.表示内容の更新]
本技術の行動ログ表示アプリケーションは、所定のタイミングで(例えば1日に2回)自動的に行動ログサーバ200へ行動記録装置100にて取得した動作行動データをアップロードする。また、解析サーバ300も所定のタイミングで(例えば1日に2回)自動的に行動セグメントを生成する。生成された行動セグメントに基づいて行動ログは表示されるが、システムの機能あるいは状況に応じて表示される行動ログが最新結果ではない場合がある。そこで、図34の設定画面490にて表示する行動ログを最新結果に更新する更新ボタン493を押下することで、行動ログを最新結果に更新することができる。更新ボタン493を押下した後行動ログ表示画面に遷移すると、最新結果の行動ログを表示部150に表示させることができる。
<5.修正フィードバックの反映処理>
本技術の行動ログ表示システムでは解析サーバ300により行動の意味内容を解析して生成された行動セグメントにより行動ログを表示する。しかし、上述したように、表示される行動ログの内容がすべて正しいとは限らない。このため、本技術では行動ログ表示アプリケーションを用いてユーザが正しい内容に修正することができる。本技術において、ユーザの修正フィードバックは、次の解析サーバ300による解析処理に反映され、次回以降の解析結果の精度向上につなげるために用いられる。以下、図35〜図42に基づいて、修正フィードバックの反映処理について説明する。
[5−1.修正フィードバックの性質]
本技術ではユーザの修正フィードバックを解析処理に反映させて解析結果の精度向上を図るが、ここで、ユーザが解析サーバ300による解析結果の誤りをすべて修正するとは限らない。すなわち、修正されなかった行動セグメントの内容が正しいとは必ずしもいえない。そこで、本技術では、本質的に偏った情報しか収集できないシステムを想定する必要がある。また、ユーザによる修正前の解析結果は、最新の解析結果と必ずしも一致しない。このため、各ユーザについて、どの行動セグメントをどのように修正したかという情報を解析処理に反映させることで、各ユーザ固有の行動を学習させることができ、解析結果の精度向上に有効に働くと考えられる。
[5−2.行動認識処理]
このような点を考慮して、本実施形態では、動作行動の認識処理において特徴量解析結果に基づき行動パターンを決定し、行動パターン、時刻、位置情報(場所)に対応する複数の確率分布を取得する。この際、ヒストグラムの重みを設定し、場所に依存した重み付けをした結果に基づき、動作行動を認識している。位置情報が取得できない場合、または位置情報を取得する必要がない場合は、一律の重み付けをしてもよいし、“場所がとれない”、“場所が必要ない”というような固有の重み付けをしてもよい。
図35に、生活行動認識部321による行動認識処理の一例を示す。また、図36に、動作行動を決定付ける動作行動推定情報を示す。動作行動推定情報は、例えば場所に依存した重み係数と各行動の確率分布との関係を表す情報であり、図36に示すように、例えば「買物」、「仕事」、「食事」、「その他」の行動について複数(図36では4つ)の確率分布が取得されている。そして、各確率分布に対して場所に依存した重み係数が設定されている。動作行動推定情報は、予め設定され、例えば解析パラメータDB333に記録されている。
生活行動認識部321は、単位時間の行動ログを取得すると、当該行動ログの行動を認識する処理を開始する。まず、図35に示すように、行動パターン、時刻情報および位置情報に基づいて、1つ以上の確率分布と場所に依存した重み係数とのペアを取得する(S300)。
次いで、生活行動認識部321は、ステップS302〜S306にて単位時間の行動ログの動作内容を決定する処理を行う。まず、ステップS300にて取得された確率分布と重み係数とのペアの数をnとし、処理数を表すパラメータをi(i=0〜n)とする(S302)。そして、生活行動認識部321は、最初(i=0)の確率分布と重み係数とのペアについて、各行動の確率分布と重み係数とをそれぞれ掛け合わせる(S304)。例えば、図36において、最初のペアを1行目の確率分布と重み係数とのペアとすると、「買物」について確率50と重み係数1とを積算し、「仕事」について確率10と重み係数1とを積算する。そして、「食事」について確率10と重み係数1とを積算し、「その他」について確率30と重み係数1とを積算する。これにより、各行動に対する積算値(「買物」:50、「仕事」:10、「食事」:10、「その他」:30)がそれぞれ取得される。
ステップS304の処理を終えると、パラメータiに1を加算し(S306)、ステップS302からの処理を繰り返す。図36の例では、次(i=1)の確率分布と重み係数とのペア、すなわち2行目の確率分布と重み係数とのペアについて、各行動の確率分布と重み係数とをそれぞれ掛け合わせる(S304)。2行目のペアについて、まず、「買物」について確率10と重み係数6とを積算し、「仕事」について確率50と重み係数6とを積算する。そして、「食事」について確率10と重み係数6とを積算し、「その他」について確率30と重み係数6とを積算する。これにより、各行動に対する積算値(「買物」:60、「仕事」:300、「食事」:60、「その他」:180)がそれぞれ取得される。
その後、生活行動認識部321は、各行動について、1行目の積算値に2行目の積算値を加算する。この結果、加算値は、「買物」:110、「仕事」:310、「食事」:70、「その他」:210となる。同様に、3行目、4行目の確率分布と重み係数とのペアについても積算値を算出し、これまでの各行動の加算値に積算値を加算すると、最終的に、「買物」:260、「仕事」:460、「食事」:420、「その他」:460という加算値が得られる。
生活行動認識部321は、最終的な加算値が最大の行動を、当該行動ログの動作内容として決定する。図36の例では、「仕事」と「その他」がともに加算値が460で最大であるが、この場合は「その他」以外の行動を優先して動作内容として決定する。したがって、図36の例では、「仕事」が動作内容として認識されることになる。
[5−3.修正フィードバックの反映処理]
(5−3−1.修正フィードバックの反映処理の概要)
図35および図36に基づき説明したように、動作内容の認識処理結果は、場所に依存した重み係数と各行動の確率分布との関係を示す動作行動推定情報によって大きく変わってくる。そこで、ユーザから行動ログの修正が行われたとき、解析サーバ300のフィードバック調整部332により修正内容を、解析パラメータDB333に記録された動作行動推定情報に反映する。これにより動作内容の認識処理の精度を高める。
図37に基づき、修正フィードバックの反映処理の概要を説明する。修正前の動作行動推定情報として、図36に示した場所に依存した重み係数と各行動の確率分布との関係を保持しているとする。かかる動作行動推定情報に基づき動作行動データから行動セグメントを生成した結果、ユーザが入力部160より行動セグメントの修正情報(修正フィードバック)を入力したとする。修正フィードバックは入力情報処理部144により解析サーバ300へ送信可能な形式のデータに変換され、クライアントインタフェース部130を介して解析サーバ300へ送信される。
行動記録装置100から修正フィードバックを解析サーバインタフェース部310にて受けた解析サーバ300は、フィードバック調整部332により修正フィードバックの内容を動作行動推定情報に反映させる。このとき、フィードバック調整部332は、修正フィードバックの内容が行動に対するものであったとき、動作行動推定情報の確率分布を修正し、位置情報(場所)に対するものであったとき、場所に依存した重み係数を修正する。
例えば、図37に示すように、「仕事」という動作内容を解析結果として取得したがユーザにより動作内容を「買物」とする修正フィードバックを受けたとする。このとき、フィードバック調整部332は、複数の確率分布のうち「仕事」の確率が最大のものの確率分布を修正する。例えば、フィードバック調整部332は、「仕事」の確率が最大の2行目の確率分布について、解析結果の「仕事」の確率および修正結果の「買物」の確率を、この2つの確率の平均値とする修正を行う。
一方、「仕事をする場所」という解析結果として取得したがユーザによりその場所の説明を「買物をよくする場所」とする修正フィードバックを受けたとする。このとき、フィードバック調整部332は、複数の確率分布のうち「買物」の確率が最大のものの確率分布の重み係数を修正する。例えば、フィードバック調整部332は、「買物」の確率が最大の1行目の重み係数を所定数(例えば10)だけ大きくする修正を行う。
このように動作行動推定情報を修正することで、行動セグメントの解析結果に対する修正フィードバックを反映し、動作内容の解析結果の精度を向上させることが期待できる。以下、図38〜図42に基づいて、修正フィードバックの反映処理についてより詳細に説明する。
(5−3−2.行動に対する修正フィードバックの反映処理)
まず、図38〜図40に基づいて、行動に対する修正フィードバックの反映処理を説明する。なお、図38は、行動に対する修正フィードバックの反映処理を示すフローチャートである。図39は、図38の処理に基づく動作行動推定情報の修正を説明するための説明図である。図40は、行動に対する修正フィードバックの他の反映処理を示すフローチャートである。図39の各列最上行に記載の「001」、「002」および「003」はそれぞれ行動を表すIDである。また、以下の説明において、生活行動認識部321による解析結果は「行動002」であり、ユーザの修正フィードバックによる正解行動は「行動003」であるとする。
フィードバック調整部332は、行動記録装置100より修正フィードバックを受けると、まず修正内容を認識する。ここでは、行動セグメントの動作内容が修正されているとする。フィードバック調整部332は、修正対象の行動セグメントを単位データ保存DB334または階層情報付与済データ保存DB335から取得し、図38に示す処理を開始する。
フィードバック調整部332は、まず、解析パラメータDB333に記憶された動作行動推定情報から、修正対象の行動セグメントの動作内容を認識するために用いた確率分布(部分確率分布)を取得する(S310)。次いで、フィードバック調整部332は、部分確率分布について、各確率分布の最大確率とその行の重み係数とを乗算した値M(i)を算出し、これらの確率分布をソートする(S311)。
ソートした確率分布の順序を示すパラメータi(i=0〜n)とし、部分確率分布を構成する確率分布の数をnとする。そして、フィードバック調整部332は、パラメータiがnより小さく、かつ乗算値M(i)が所定の閾値thより大きいか否かを判定する(S312)。ステップS312の条件を満たさない場合には、図38に示す処理を終了する。例えば、図39左の動作行動推定情報ならば、4〜6行目の確率分布のみが修正される。一方、ステップS312の条件を満たす場合には、フィードバック調整部332は、動作行動推定情報より、対象行の各行動のうち、確率分布の値が最大の行動と、修正フィードバックから得られた正解行動とを用いて、損失割合算出関数より修正割合C(i)を取得する(S313)。
ここで、損失割合算出関数とは、利用可能な何らかの決定をしたときに生じる損失を表す単一かつ総合的な尺度とする。本実施形態では、損失割合算出関数を用いて、例えば図39下に示すような解析結果の行動と正解行動との間の修正割合Cを表す修正割合テーブルを設定する。この修正割合テーブルは、予め設定することができ、解析パラメータDB333に記憶しておくことができる。フィードバック調整部332は、修正割合テーブルより、確率分布の値が最大の行動と、正解行動「行動003」との間の修正割合C(i)をする。例えば、図39左の動作行動推定情報のうち4行目の確率分布に対してステップS313の処理を行うと、確率分布の値が最大の「行動003」と、正解行動「行動003」との間の修正割合C(0)=0が取得される。
その後、フィードバック調整部332は、確率分布の値が最大の行動の確率分布の値からステップS313にて取得した修正割合C(i)を減算し、正解行動の確率分布の値に修正割合C(i)を加算し、動作行動推定情報に反映する(S314)。例えば、図39左の動作行動推定情報のうち4行目の確率分布に対してステップS314の処理を行うと、修正割合C(0)=0であるため、当該行の確率分布は変更されない。そして、パラメータiに1を加算して(S315)、ステップS312からの処理を繰り返す。
例えば、図39左の動作行動推定情報のうち5行目の確率分布に対してステップS313の処理を行うと、確率分布の値が最大の「行動002」と、正解行動「行動003」との間の修正割合C(1)=5が取得される。そして、ステップS314の処理を行うと、修正割合C(1)=5より、「行動002」の確率分布の値が50から45に修正され、「行動003」の確率分布の値が10から15に修正される。
同様に、図39左の動作行動推定情報のうち6行目の確率分布に対してステップS313の処理を行うと、確率分布の値が最大の「行動001」と、正解行動「行動003」との間の修正割合C(1)=10が取得される。そして、ステップS314の処理を行うと、修正割合C(1)=10より、「行動001」の確率分布の値が40から30に修正され、「行動003」の確率分布の値が10から20に修正される。以上の処理により、図39右に示すような、修正フィードバック反映後の動作行動推定情報を得ることができる。
このようにして、修正フィードバックの行動内容を、動作行動推定情報に反映させる。図38に示す反映処理は、反映速度や発散性を制御可能な点で有効である。すなわち、許しがたい誤りほど早く反映させることが可能であり、また最大値に対する比率として扱えば値を収束させることも可能である。なお、図38に示す反映処理では、修正割合C(i)を確率分布の値に加算あるいは減算したが、本技術はかかる例に限定されず、例えば確率分布の値に修正割合を乗算して、修正フィードバックを動作行動推定情報に反映させてもよい。
ここで、図38に示した修正フィードバックの反映処理では、修正割合テーブルを用いて修正フィードバックの内容を動作行動推定情報に反映させたが、本技術はかかる例に限定されない。例えば、図40に示すように、ニューラルネットワーク手法を用いたフィードバックシステムを構成してもよい。なお、図40においても行動セグメントの動作内容が修正されているものとする。
フィードバック調整部332は、まず、解析パラメータDB333に記憶された動作行動推定情報から、修正対象の行動セグメントの動作内容を認識するために用いた確率分布(部分確率分布)を取得する(S320)。次いで、フィードバック調整部332は、部分確率分布について、各確率分布の最大確率とその行の重み係数とを乗算した値M(i)を算出し、これらの確率分布をソートする(S321)。なお、ステップS320、S321は、図38のステップS310、S311と同一処理とすることができる。
ソートした確率分布の順序を示すパラメータi(i=0〜n)とすると、フィードバック調整部332は、パラメータiがnより小さいか否かを判定する(S322)。ステップS322の条件を満たさない場合には、図40に示す処理を終了する。一方、ステップS322の条件を満たす場合には、フィードバック調整部332は、ニューラルネットワーク手法を用いて、修正フィードバックの修正内容を、重み係数に基づいて動作行動推定情報の各確率分布に対して反映させる(S323)。そして、パラメータiに1を加算して(S324)、ステップS322からの処理を繰り返す。
このように、修正割合テーブルを用いる代わりにニューラルネットワーク手法等の学習処理を用いることで、予め修正割合テーブルを設定しなくとも動作行動推定情報の各値に修正フィードバックの内容を反映させることもできる。
(5−3−3.行動および位置情報に対する修正フィードバックの反映処理)
次に、図41に基づいて、行動および位置情報に対する修正フィードバックの反映処理を説明する。なお、図41は、行動および位置情報に対する修正フィードバックの反映処理を示すフローチャートである。
フィードバック調整部332は、修正対象の行動セグメントを単位データ保存DB334または階層情報付与済データ保存DB335から取得し、図41に示す処理を開始する。フィードバック調整部332は、まず、修正フィードバックに位置情報が含まれるか否かを判定する(S330)。ステップS330にて修正フィードバックに位置情報が含まれる場合、ステップS331以降の処理を行い、修正された位置情報を動作行動推定情報に反映させる。
ステップS331では、位置情報に関する修正が移動を伴う行動セグメントに対して行われたか否かを判定する。位置情報に関する修正が移動を伴う行動セグメントに対して行われている場合、位置情報より端点の代表座標(位置Xから位置Yまで、という2つの代表座標)を算出する(S332)。一方、位置情報に関する修正が移動を伴う行動セグメントに対しては行われていない場合、その移動における代表座標を算出する(S333)。なお、代表座標は、中心や重心、最多点等を用いて算出することができる。
次いで、フィードバック調整部332は、ステップS332またはS333で算出された代表座標と精度、付与された属性をフィードバックDB(図示せず。)に記録する(S334)。フィードバックDBは、解析サーバ300に設けられる記憶部である。その後、フィードバック調整部332は、ステップS334にてフィードバックDBに記録された新たな位置情報を用いて動作内容を解析したとき、修正フィードバックにより入力された正解行動と一致するか否かを判定する(S335)。ステップS335にて新たな位置情報を用いて解析された動作内容が正解行動と一致すると判定された場合、位置情報に関する修正フィードバックが正しく反映され、かつ行動内容には誤りがないと判断することができる。したがって、修正フィードバックの反映処理が終了したと判断し、図41の処理を終了する。
一方、ステップS335にて新たな位置情報を用いて解析された動作内容が正解行動と一致しないと判定された場合、位置情報の修正だけでは修正フィードバックが正しく判定されないと判断できる。この場合、ステップS336〜S341の処理を実行し、動作行動推定情報へ修正フィードバックの動作内容を反映させる。ステップS336〜S341の処理は、図38の処理と同一とすることができる。
すなわち、フィードバック調整部332は、まず、解析パラメータDB333に記憶された動作行動推定情報から、修正対象の行動セグメントの動作内容を認識するために用いた確率分布(部分確率分布)を取得する(S336)。次いで、フィードバック調整部332は、部分確率分布について、各確率分布の最大確率とその行の重み係数とを乗算した値M(i)を算出し、これらの確率分布をソートする(S337)。
ソートした確率分布の順序を示すパラメータi(i=0〜n)とし、部分確率分布を構成する確率分布の数をnとする。そして、フィードバック調整部332は、パラメータiがnより小さく、かつ乗算値M(i)が所定の閾値thより大きいか否かを判定する(S338)。ステップS338の条件を満たさない場合には、図41に示す処理を終了する。一方、ステップS338の条件を満たす場合には、フィードバック調整部332は、動作行動推定情報より、対象行の各行動のうち、確率分布の値が最大の行動と、修正フィードバックから得られた正解行動とを用いて、損失割合算出関数より修正割合C(i)を取得する(S339)。
その後、フィードバック調整部332は、確率分布の値が最大の行動の確率分布の値からステップS339にて取得した修正割合C(i)を減算し、正解行動の確率分布の値に修正割合C(i)を加算し、動作行動推定情報に反映する(S340)。そして、パラメータiに1を加算して(S341)、ステップS338からの処理を繰り返す。以上の処理により、修正フィードバック反映後の動作行動推定情報を得ることができる。
なお、ステップS336〜S341の処理の代わりに、図40に示す処理を実行してもよい。この場合にも、同様に修正フィードバック反映後の動作行動推定情報を得ることができる。
ここで、位置情報の修正フィードバックは、図37左下に示すように、動作行動推定情報の確率分布の重み係数を変更することで反映させてもよい。あるいは、修正属性依存部、指定属性依存部、およびID依存部を設定し、それぞれの重み係数に反映させてもよい。例えば、「家」という位置情報に対しては指定属性依存部を強くし、「買い物する場所」という位置情報に対しては周辺属性依存部を強くするようにする。また、例えば「会社」という位置情報に対して、異なるオフィス等のように複数の位置情報が存在する場合がある。このとき、各位置情報に対して事業内容や規模等の相違点をそれぞれの特徴として与えることで、同一意味の位置情報を正しく選択することが可能となる。
また、位置情報に対する重み係数の加算量は、例えば元の位置情報に基づいて決定してもよく、位置情報の属性種類毎に変化させてもよい。さらに、位置情報固有の確率分布をランダムに発生させて動作行動推定情報に追加してもよい。これにより、過学習を防止することができる。
<6.その他>
[6−1.行動パターンの個人モデル化]
本実施形態に係る行動ログ表示システムでは、意味内容が付与された行動セグメントを用いて行動ログを表示する。この行動セグメントを利用して、例えば自己相関処理やフィルタ処理を行うことで、時間的、行動的誤差を吸収することが可能となる。そして、少ないデータからユーザの典型行動パターンを抽出することが可能となる。
ユーザの典型行動パターンを抽出する機能部として、例えば、図42に示すように、解析サーバ300に典型行動パターン生成部336を設ける。典型行動パターンの抽出は、まず、生活行動認識部321により行動ログサーバ200から取得した所定期間(例えば1日分)の行動ログをスムージングし、典型行動パターン生成部336へ出力する。典型行動パターン生成部336は、スムージングされた行動ログの行動セグメントに対して、例えば相互相関処理等の統計手法を用いて典型行動パターンを生成する。
図42の例では、典型行動パターン生成部336は、7日分の行動ログに基づき、これらの行動ログの行動セグメントの相関関係を解析した結果、そのユーザの典型行動パターンを取得している。このように、行動の意味内容で表され、行動セグメント間の関係を示す階層情報が付与された行動セグメントを解析することで、少ないデータからも確からしいユーザの典型行動パターンを生成することができる。
[6−2.移動媒体/手段判定による位置表示手法]
生活行動認識部321は、行動セグメントを生成する際に、移動系行動であると認識された場合、ユーザがどのような移動媒体で移動したか、あるいはどのような移動手段で移動したかによってユーザの位置情報を特定している(図43)。具体的には、生活行動認識部321は、動作行動データより移動系行動を認識すると、その位置情報をどのように表示するかを解析する。このとき、生活行動認識部321は、まずランドマークとして利用し易い最寄駅候補と前回の位置情報およびこれに関連する情報とを取得する。最寄駅候補は、路線名、駅名、駅までの距離等を用いて特定できる。また、前回の位置情報およびこれに関連する情報として、移動媒体および移動手段、時間差分、前回の緯度経度からの距離等を取得する。
生活行動認識部321は、これらの情報を用いて、路線と駅に重み付けをし、最寄駅を特定する。路線と駅に対する重み付けは、例えばより近い最寄駅候補の重み付けを高くする、行動ログに継続的に取得されている路線および駅が優先される重み付けをする、等がある。あるいは、前回までの情報から取得可能な距離差分や時間差分を考慮した重み付けをしてもよい。これにより、前回までの情報と今回の情報とから、所定距離離れていたり所定時間経過したりしていることが認識される場合には、他の路線に乗り換えている可能性を考慮することができる。
(6−2−1.路線推定処理)
路線の推定は、例えば行動ログから認識される駅の通過数で判定することができる。また、位置情報から特定された駅から乗り換えの可能性や複数路線間の直通運転の有無を考慮して、ユーザの移動軌跡を推定することができる。同一駅間を複数の路線が並走している場合には、これまでのユーザの移動軌跡より確からしい路線を推定したり、位置情報取得センサからより詳細な位置情報を取得したりすることで、どの路線を利用したかを特定することが可能である。
このような路線推定処理を行った結果、例えば図44のように、ユーザの移動を例えば地図上に表示することが可能となる。なお、地図への路線表示は、路線推定処理の精度が所定値以上確保されているときに行うようにしてもよい。
(6−2−2.駅名選定処理)
駅名の選定は、上述したように最寄駅を特定することで行われる。この際、ユーザが実際に移動していなくてもセンサの電波強度の誤差等により緯度経度が変化したと誤認識することも考えられる。そこで、例えば図45に示すように、最寄駅の駅名を位置精度に応じて表現を変更してもよい。例えば、最寄駅を大崎駅と特定したとき、「大崎駅で作業」、「大崎駅の近くで作業」、あるいは「大崎で作業」といったように、最寄駅の位置と位置情報との距離差分に基づいて表現を変化させる。これにより、動作をしている場所をより的確に表現することができる。
また、移動媒体/手段が電車移動ではない場合、例えば特定された最寄駅をランドマークとして優先し、駅の名称(「駅」を除く。)で動作している場所を表すようにしてもよい。例えば行動ログの解析の結果、自動車による移動が認識され、ランドマークとして「東小金井駅」および「新小金井駅」が特定されたとする。このとき、駅と駅とを自動車で移動するのは不自然であることから、出発地および到着地を「東小金井」および「新小金井」と表すことで、行動の内容を自然に表現することができる。
<7.ハードウェア構成例>
本実施形態に係る行動記録装置100による処理は、ハードウェアにより実行させることもでき、ソフトウェアによって実行させることもできる。この場合、行動記録装置100は、図46に示すように構成することもできる。以下、図46に基づいて、本実施形態に係る行動記録装置100の一ハードウェア構成例について説明する。
本実施形態に係る行動記録装置100は、上述したように、コンピュータ等の処理装置により実現することができる。行動記録装置100は、図46に示すように、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、ホストバス104aとを備える。また、行動記録装置100は、ブリッジ104と、外部バス104bと、インタフェース105と、入力装置106と、出力装置107と、ストレージ装置(HDD)108と、ドライブ109と、接続ポート111と、通信装置113とを備える。
CPU101は、演算処理装置および制御装置として機能し、各種プログラムに従って行動記録装置100内の動作全般を制御する。また、CPU101は、マイクロプロセッサであってもよい。ROM102は、CPU101が使用するプログラムや演算パラメータ等を記憶する。RAM103は、CPU101の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶する。これらはCPUバスなどから構成されるホストバス104aにより相互に接続されている。
ホストバス104aは、ブリッジ104を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス104bに接続されている。なお、必ずしもホストバス104a、ブリッジ104および外部バス104bを分離構成する必要はなく、1つのバスにこれらの機能を実装してもよい。
入力装置106は、マウス、キーボード、タッチパネル、ボタン、マイク、スイッチおよびレバーなどユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、CPU101に出力する入力制御回路などから構成されている。出力装置107は、例えば、液晶ディスプレイ(LCD)装置、OLED(Organic Light Emitting Diode)装置およびランプなどの表示装置や、スピーカなどの音声出力装置を含む。
ストレージ装置108は、行動記録装置100の記憶部の一例であり、データ格納用の装置である。ストレージ装置108は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含んでもよい。ストレージ装置108は、例えば、HDD(Hard Disk Drive)で構成される。このストレージ装置108は、ハードディスクを駆動し、CPU101が実行するプログラムや各種データを格納する。
ドライブ109は、記憶媒体用リーダライタであり、行動記録装置100に内蔵、あるいは外付けされる。ドライブ109は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体に記録されている情報を読み出して、RAM103に出力する。
接続ポート111は、外部機器と接続されるインタフェースであって、例えばUSB(Universal Serial Bus)などによりデータ伝送可能な外部機器との接続口である。また、通信装置113は、例えば、通信網10に接続するための通信デバイス等で構成された通信インタフェースである。また、通信装置113は、無線LAN(Local Area Network)対応通信装置であっても、ワイヤレスUSB対応通信装置であっても、有線による通信を行うワイヤー通信装置であってもよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
例えば、上記実施形態では、行動表現生成部320およびデータ管理部330は解析サーバ300に設けられ、行動表現処理部140は行動記録装置100に設けられるものとしたが、本技術はかかる例に限定されない。例えば、これらの機能部すべてを解析サーバ300に設けてもよく、あるいは行動記録装置100に設けてもよい。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
コンピュータに、
センサ情報に基づいて認識されるユーザの動作行動を表す行動セグメントと、少なくとも前記行動セグメントを含む行動ログとを管理すること、
ユーザによって選択された前記行動セグメントを指定の時間で分割すること、
前記行動ログについて、選択された前記行動セグメントから分割された少なくとも2つの前記行動セグメントを更新すること、
を実行させるコンピュータプログラム。
(2)
前記行動セグメントを分割する分割時刻を入力するための分割時刻設定画面を表示部に表示させる、前記(1)に記載のコンピュータプログラム。
(3)
前記分割時刻設定画面に、前記行動セグメントの分割を実行するセーブボタンを表示させる、前記(2)に記載のコンピュータプログラム。
(4)
前記分割時刻設定画面に、前記行動セグメントの分割実行をキャンセルするキャンセルボタンを表示させる、前記(2)または(3)に記載のコンピュータプログラム。
(5)
前記分割時刻設定画面にユーザが入力した前記分割時刻を表示させる、前記(2)〜(4)のいずれか1項に記載のコンピュータプログラム。
(6)
少なくとも2つに分割された前記行動セグメントに対応する行動内容を示すオブジェクトをさらに更新する、前記(1)〜(5)のいずれか1項に記載のコンピュータプログラム。
(7)
前記行動セグメントについて、少なくとも歩数またはエクササイズ値を表示部に表示させる、前記(1)〜(6)のいずれか1項に記載のコンピュータプログラム。
(8)
前記ユーザの行動記録装置より取得された前記行動セグメントを更新する、前記(1)〜(7)のいずれか1項に記載のコンピュータプログラム。
(9)
ユーザの更新ボタンの押下により前記行動セグメントを更新する、前記(8)に記載のコンピュータプログラム。
(10)
前記行動セグメントでのユーザの気分を示すオブジェクトを表示部に表示させる、前記(1)〜(9)のいずれか1項に記載のコンピュータプログラム。
(11)
ユーザの気分を表す前記オブジェクトを、気分設定エリアでの選択に基づいて表示させる、(10)に記載のコンピュータプログラム。
(12)
行動内容を示す前記オブジェクトは、前記ユーザによって行われた行動を表す、前記(6)に記載のコンピュータプログラム。
(13)
行動内容を示す前記オブジェクトを、動作内容候補リストからユーザにより選択された動作内容に基づいて表示させる、前記(12)に記載のコンピュータプログラム。
(14)
前記行動セグメントの階層リストを表示部に表示させる、前記(1)〜(13)のいずれか1項に記載のコンピュータプログラム。
(15)
前記階層リストは、複数の第2の行動セグメントを含み、
前記ユーザによって選択された前記第2の行動セグメントに基づいて、前記行動セグメントを分割する前記指定の時間を設定する、前記(14)に記載のコンピュータプログラム。
(16)
前記センサ情報は、少なくとも時間情報または位置情報のうちいずれか一方を含む、前記(1)〜(15)のいずれか1項に記載のコンピュータプログラム。
(17)
前記位置情報は、少なくともGPS、WiFiまたは通信網のうちいずれか1つから取得される、前記(16)に記載のコンピュータプログラム。
(18)
前記行動セグメントの削除を表示部に表示させる、前記(1)〜(17)のいずれか1項に記載のコンピュータプログラム。
(19)
センサ情報に基づいて認識されるユーザの動作行動を表す行動セグメントと、少なくとも前記行動セグメントを含む行動ログとを管理するデータ管理部と、
前記行動ログについて、ユーザによって選択された前記行動セグメントを指定の時間で分割し、選択された前記行動セグメントから分割された少なくとも2つの前記行動セグメントを更新する処理部と、
を備える、情報処理装置。
(20)
センサ情報に基づいて認識されるユーザの動作行動を表す行動セグメントと、少なくとも前記行動セグメントを含む行動ログとを管理すること、
ユーザによって選択された前記行動セグメントを指定の時間で分割すること、
前記行動ログについて、選択された前記行動セグメントから分割された少なくとも2つの前記行動セグメントを更新すること、
を含む、情報処理方法。