説明

時系列データ検索装置、方法及びプログラム

【課題】計算コストを抑えつつ、時系列データの集合の中から注目データと類似する時系列データを検索することを可能にする。
【解決手段】ユーザ端末から収集した時系列データからなる加速度データを計測期間ごとにグループ化してセンサデータ記憶部41に記憶する。この状態で、シンボル化処理部32により上記センサデータを低次元化されたシンボル系列に変換し、代表文字列抽出部33により上記シンボル系列をもとにシンボルの出現傾向が最も大きくなる参照セグメント文字列を求めてこれを代表文字列とする。そして、検索データ設定部34の制御の下でユーザが選択したグループの代表文字列に対する他の各グループの代表文字列の類似度を類似度算出部35により計算し、類似度がしきい値以下となるグループに含まれるセンサデータを検索結果出力部36により表示デバイス22に表示させる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、例えばセンサ等により計測された時系列データから、注目するデータと類似するデータを検索する時系列データ検索装置、方法及びプログラムに関する。
【背景技術】
【0002】
ハードウエアの実装技術の高度化によってセンサや携帯端末の小型化が進み、加速度センサ等のセンサを具備した携帯端末が普及し始めている。この種のセンサにより得られた時系列データを利用することで、さまざまなサービスへの展開が期待できる。
例えば、ユーザの走行時又は歩行時等の各シーンにおいて得られた加速度データから標準偏差等の特徴量を抽出し、この特徴量を学習することで、新たに得られた加速度データからシーンを推定する技術が提案されている(例えば非特許文献1を参照)。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】池谷直紀ほか、「3軸加速度センサに基づく6種移動状態識別方式」DEIM Forum 2010 F10-4
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところが、一般に加速度データ等の時系列データは高いサンプリングレートで計測されるため次元数が高い。このため、非特許文献1により提案されている従来の技術を用いて特徴量の学習及びシーンの推定処理を行うには多大な計算コストを必要とし、実用に適さない。
【0005】
この発明は上記事情に着目してなされたもので、その目的とするところは、計算コストを抑えつつ、時系列データの集合の中から注目するデータと類似する時系列データを検索することを可能にした時系列データ検索装置、方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するためにこの発明の1つの観点は、以下のような構成要素を備えている。すなわち、予め定められた周期で所定の計測期間に渡り計測された時系列データを計測期間ごとにグループ化して記憶媒体に記憶する。この状態で、上記グループごとに上記記憶媒体に記憶された時系列データを低次元化されたシンボル系列に変換し、このシンボル系列におけるシンボルの出現傾向をもとにグループを代表する代表文字列を生成する。そして、検索対象として設定されたグループに対応する代表文字列とその他の各グループに対応する代表文字列との間の類似度をそれぞれ計算し、この計算された各類似度が予め設定したしきい値以上のグループに含まれる時系列データを上記記憶媒体から読み出し、この読み出された時系列データを検索結果として出力するように構成したものである。
【0007】
したがって、時系列データが高サンプリングレートで計測されたデータであっても、グループごとに低次元化されたシンボル系列に変換され、このシンボル系列がさらに低次元化された代表文字列に変換されて、この代表文字列間で類似度が計算される。このため、類似度の計算処理に要するコストが大幅に低減され、これにより装置の処理負荷を軽減することが可能となる。
【0008】
また、この発明の1つの観点は以下のような態様を備えることも特徴とする。
第1の態様は、時系列データをシンボル系列に変換する際に、先ず上記グループごとに時系列データに含まれる計測値及び計測時刻の平均及び標準偏差を算出する。次に、この算出された平均及び標準偏差をもとにノーマライズされた時系列データを算出し、このノーマライズ処理された時系列データをもとに、低次元化された計測値及び計測時刻をシンボルに変換してシンボル系列を生成するものである。
【0009】
第2の態様は、代表文字列を生成する際に、先ず上記生成されたシンボル系列を予め設定した文字列長ごとに複数の文字列に分割し、この分割された文字列ごとに参照セグメント文字列及び比較セグメント文字列を生成する。次に、生成された参照セグメント文字列を1つ選択するごとに、当該選択された参照セグメント文字列と上記生成されたすべての比較セグメント文字列との間の距離をそれぞれ算出して、この算出された各距離のうち予め定めたしきい値以下の距離を有する比較セグメント文字列を抽出し、この抽出された比較セグメント文字列をもとに上記選択された参照セグメント文字列と類似しかつ連続して出現している箇所の文字の数を連続類似文字数として算出する。そして、上記文字列長を予め設定した範囲で可変するごとに上記第1乃至第3の手段を繰り返し実行させ、この繰り返し処理により得られた連続類似文字数の中の最大値を選択して、この選択した最大の連続類似文字数が算出されたときの参照セグメント文字列を当該参照セグメント文字列が含まれるグループの代表文字列とするようにしたものである。
【発明の効果】
【0010】
すなわちこの発明によれば、計算コストを抑えつつ、時系列データの中から注目するデータと類似したデータを検索することを可能にした時系列データ検索装置、方法及びプログラムを提供することができる。
【図面の簡単な説明】
【0011】
【図1】この発明の一実施形態に係わる時系列データ検索装置をサービスサーバに備えたシステムの概略構成図。
【図2】図1に示したサービスサーバの構成を示すブロック図。
【図3】図2に示したサービスサーバに設けられるセンサデータ記憶部に記憶されるデータの一例を示す図。
【図4】図2に示したサービスサーバによるシンボル化処理の手順と内容を示すフローチャート。
【図5】図2に示したサービスサーバによる代表文字列抽出処理の手順と内容を示すフローチャート。
【図6】図2に示したサービスサーバによる検索データ設定処理の手順と内容を示すフローチャート。
【図7】図6に示した検索データ設定処理の過程で表示デバイスに表示される検索候補データの一例を示す図。
【図8】図2に示したサービスサーバによる類似度算出処理の手順と内容を示すフローチャート。
【発明を実施するための形態】
【0012】
以下、図面を参照してこの発明に係わる実施形態を説明する。
図1は、この発明の一実施形態に係わる時系列データ検索装置を備えたユーザ行動推定システムの概略構成図である。このシステムは、それぞれユーザが所持する複数のユーザ端末MS1〜MSnを、通信ネットワークNWを介して、時系列データ検索装置としてのサービスサーバSVに接続可能としたものである。
【0013】
通信ネットワークNWは、IP(Internet Protocol)網と、このIP網にアクセスするためのアクセス網とから構成される。アクセス網としては、光公衆通信網、携帯電話網、LAN(Local Area Network)、無線LAN、CATV(Cable Television)網等が用いられる。
【0014】
ユーザ端末MS1〜MSnは、携帯電話機やスマートホン、PDA(Personal Digital Assistant)、携帯型パーソナル・コンピュータ等からなる携帯端末からなり、いずれもGPS(Global Positioning Sensor )センサに加えて加速度センサを備えている。なお、脈拍や血圧等を計測するバイタルセンサや歩数センサ等を備えるようにしてもよい。
【0015】
ユーザ端末MS1〜MSnは、当該端末を所持するユーザの動きの加速度を加速度センサにより定期的に一定期間計測し、この計測されたセンサデータを端末内の記憶部に格納する。そして、この蓄積された一定期間分のセンサデータを、後述するサービスサーバSVから送られるデータ送信要求に応じて読み出して、通信ネットワークNWを介してサービスサーバSVへ送信する。
なお、加速度センサには、1軸の加速度を計測するセンサと、3軸の加速度を計測するセンサとがある。1軸加速度センサを用いた場合には、計測された1軸の加速度値をそのままセンサデータとし、3軸の加速度センサを用いた場合には計測された3軸の加速度の絶対値をセンサデータとする。
【0016】
サービスサーバSVは、例えば通信事業者又はサービス提供事業者が運用するサーバコンピュータからなり、以下のように構成される。図2はその構成を示す機能ブロック図である。
すなわち、サービスサーバSVは、通信インタフェース10と、入出力インタフェース20と、制御ユニット30と、記憶ユニット40を備えている。通信インタフェース10は、制御ユニット30の制御の下で、通信ネットワークNWを介してユーザ端末MS1〜MSnとの間でセンサデータを収集するためのデータ通信を行う。
【0017】
入出力インタフェース20には、入力デバイス21及び表示デバイス22が接続されている。入出力インタフェース20は、入力デバイス21から操作データを取り込んで制御ユニット30へ出力すると共に、制御ユニット30から出力された表示データを表示デバイス22に表示させる。
【0018】
記憶ユニット40には、この発明を実施するために必要な記憶部として、センサデータ記憶部41と、代表文字列記憶部42が設けられている。センサデータ記憶部41は、制御ユニット30により携帯端末MS1〜MSnから収集されたセンサデータの集合を記憶するために用いられる。代表文字列記憶部42は、制御ユニット30によりセンサデータの集合から抽出された代表文字列のデータを記憶するために用いられる。
【0019】
図3は、センサデータ記憶部41に記憶されるセンサデータの集合の一例を示すものである。同図に示すように個々のセンサデータは、加速度値とその計測タイミングを示すタイムスタンプとから構成され、これらが計測期間を識別するためにユニークに定められたグループ識別情報(グループID)に関連付けられて記憶される。
【0020】
制御ユニット30は、中央処理ユニット(CPU;Central Processing Unit)を中核とするもので、この発明を実施するために必要な処理機能として、センサデータ受信記憶制御部31と、シンボル化処理部32と、代表文字列抽出部33と、検索データ設定部34と、類似度算出部35と、検索結果出力部36とを備えている。これらの処理機能はいずれもアプリケーション・プログラムを上記CPUに実行させることにより実現される。
【0021】
センサデータ受信記憶制御部31は、ユーザ端末MS1〜MSnに対しそれぞれ予め決められた一定の周期で通信インタフェースユニット10からデータ送信要求を送信する。そして、この送信要求に応答してユーザ端末MS1〜MSnから送信されるセンサデータの集合を通信インタフェースユニット10により受信し、この受信されたセンサデータを記憶ユニット40内のセンサデータ記憶部41に記憶させる処理を実行する。
【0022】
シンボル化処理部32は以下の処理機能を有する。
(1) 先ず上記センサデータ記憶部41に記憶されたセンサデータの集合について、その計測期間(グループ)ごとに加速度値の平均及び標準偏差を算出する処理。
(2) 上記算出された平均及び標準偏差を用いて、上記センサデータ記憶部41に記憶された各センサデータに対しノーマライズする処理。
(3) 上記ノーマライズ処理されたセンサデータを用いて、低次元化された加速度値及びタイムスタンプ値を算出し、この算出された低次元化された加速度値及びタイムスタンプ値をシンボルに変換してシンボル系列を生成する処理。
【0023】
代表文字列抽出部33は以下の処理機能を有する。
(1) グループごとに、上記シンボル化処理部32により生成されたシンボル系列を一定の文字列長で分割し、参照セグメント文字列を生成する処理。
(2) 同様に、上記低次元化された加速度値に対するシンボル系列を一定の文字列長で分割し、比較セグメント文字列を生成する処理。
(3) 上記生成された参照セグメント文字列ごとに、当該参照セグメント文字列とすべての比較セグメント文字列との間の距離を算出して、しきい値以下の距離となる比較セグメント文字列を抽出する。そして、この抽出された比較セグメント文字列から上記参照セグメント文字列と類似しかつ連続して出現する箇所の文字列の数(連続類似文字数)を算出する処理。
(4) グループごとに、上記参照セグメント文字列ごとに得られた連続類似文字数の最大値を求め、この最大となる連続類似文字数が得られた参照セグメント文字列を1つ選択する。そして、この選択された参照セグメント文字列を、代表文字列として記憶ユニット40内の代表文字列記憶部42に記憶させる処理。
【0024】
検索データ設定部34は以下の処理機能を有する。
(1) 上記センサデータ記憶部41からセンサデータのグループIDとタイムスタンプを読み出してこれらに選択ボタンを付加した検索候補データ選択画面の表示データを生成する。そして、この検索候補データ選択画面の表示データを入出力インタフェースユニット20へ出力して表示デバイス22に表示させる処理。
(2) 上記表示された検索候補データ選択画面の選択ボタンが入力デバイス21により選択操作された場合に、その選択操作情報を入出力インタフェースユニット20から受け取る。そして、この選択操作されたデータが含まれるグループIDをセンサデータ記憶部41から取得し、類似度算出部35に渡す処理。
【0025】
類似度算出部35は、上記代表文字列記憶部42から各グループの代表文字列を読み出し、上記検索データ設定部34から渡されたグループIDにより指定されるグループの代表文字列に対する、他の各グループの代表文字列の類似度を計算する処理を行う。
【0026】
検索結果出力部36は、上記類似度算出部35により算出された類似度がしきい値以下となるグループを選択し、このグループに含まれるセンサデータをセンサデータ記憶部41から読み出してその表示データを生成する。そして、この生成された表示データを入出力インタフェースユニット20へ出力して表示デバイス22に表示させる処理。
【0027】
次に、以上のように構成されたサービスサーバSVによるデータ検索処理動作を説明する。
(1)センサデータの収集と記憶
サービスサーバSVの制御ユニット30は、センサデータ受信記憶制御部31の制御の下で、ユーザ端末MS1〜MSnに対しそれぞれ一定の周期で通信インタフェースユニット10からデータ送信要求を送信する。このデータ送信要求の送信周期は、例えば1日に1回に設定される。なお、送信周期は1日に限るものではなく、それよりも短い時間に設定してもよく、また1週間や1ヶ月等のように長い時間に設定してもよい。
【0028】
これに対しユーザ端末MS1〜MSnは、定常状態において当該端末を所持するユーザの動きの加速度を加速度センサにより定期的に一定期間計測し、この計測されたセンサデータを端末内の記憶部に格納している。計測周期は例えば1秒間隔に設定され、また1回の計測期間は1時間に設定される。そして、この状態でサービスサーバSVからデータ送信要求が送られると、上記記憶部から未送信のセンサデータの集合を読み出して、このセンサデータの集合を通信ネットワークNWを介してサービスサーバSVへ送信する。
【0029】
サービスサーバSVの制御ユニット30は、上記データ送信要求に応答してユーザ端末MS1〜MSnから送信されたセンサデータの集合が通信インタフェースユニット10により受信されると、この受信されたセンサデータを記憶ユニット40内のセンサデータ記憶部41に記憶させる。このとき、各センサデータには、図3に例示したように計測期間ごとにユニークに設定したグループIDが関連付けられる。
【0030】
(2)センサデータのシンボル化処理
上記センサデータ記憶部41に新たなセンサデータの集合が記憶されると、制御ユニット30はシンボル化処理部32の制御の下で、上記新たなセンサデータに対し以下のようにシンボル化処理を行う。図4はその処理手順と処理内容を示すフローチャートである。
【0031】
(2−1)加速度値の平均及び標準偏差の算出
シンボル化処理部32は、先ずステップS11においてセンサデータ記憶部41からグループIDごとにセンサデータの集合を読み出し、この読み出されたセンサデータの集合について加速度値の平均及び標準偏差を算出する。
【0032】
具体的には、センサデータをCg =[tg,i ,cg,itで表したとき、平均av及び標準偏差sdは以下の式で計算される。
【数1】

【0033】
ただし、gはグループIDであり、1≦g≦G(GはグループIDの最大値)を満たすものとする。また、tg,iはグループID=gのi番目のタイムスタンプであり、cg,iはグループID=gのi番目の加速度値を示す。また、iはグループID=gの加速度の要素番号であり、1≦i≦Mg (Mg はグループID=gの加速度の総要素数)を満たすものとする。
【0034】
(2−2)ノーマライズ処理
シンボル化処理部32は、次にステップS12において、上記算出された平均av及び標準偏差sdを用い、上記センサデータ記憶部41に記憶された各センサデータCg =[tg,i ,cg,itの加速度値cg,iに対し、以下の式
【数2】

に基づいてノーマライズ処理されたセンサデータC’g =[tg,i ,c’g,itを算出する。
【0035】
(2−3)シンボル系列の生成処理
シンボル化処理部32は、続いてステップS13において、上記ノーマライズ処理されたセンサデータC’g =[tg,i ,c’g,itを用いて、低次元化された加速度値及びタイムスタンプ値を算出し、この算出された低次元化された加速度値及びタイムスタンプ値をシンボルに変換してシンボル系列を生成する。
【0036】
具体的には、先ず以下の式
【数3】

に基づいて、低次元化されたセンサデータC ̄g=[t ̄g,j ,c ̄g,jtを算出する。ここで、wgはグループID=gごとに予め定められたMg以下の整数である。また、jはグループID=gの低次元化された加速度の要素番号であり、1≦j≦wgを満たす。
【0037】
次に、上記低次元化されたセンサデータC ̄gの加速度値c ̄g,jを以下の式
【数4】

に基づいてシンボルに変換し、センサデータC ̄gに対するシンボル系列
【数5】

を生成する。
【0038】
ここで、βは予め定義された値であり、この実施形態では例えば(J.Lin, E. Keogh, S. Lonardi, B. Chiu, A Symbolic Representation of Time Series, with Implications for Streaming Algorithms, DMKD’ 03, June 13, 2003 )において定義された値を用いた。上記生成されたシンボル系列は、記憶ユニット40内の図示しないシンボル系列記憶部に保存される。
【0039】
(3)代表文字列の抽出
上記シンボル系列の生成処理が終了すると、制御ユニット30は次に代表文字列抽出部33の制御の下で、グループごとに代表文字列を以下のように抽出する。図5はその処理手順と処理内容を示すフローチャートである。
【0040】
(3−1)参照セグメント文字列の抽出
代表文字列抽出部33は、先ずステップS21によりシンボル系列記憶部からシンボル系列を読込み、ステップS22により上記シンボル系列を予め設定した文字列長mごとに分割する。そして、ステップS23において、文字列長がmで参照セグメント番号がlの参照セグメント文字列
【数6】

を生成する。ここで、mは(1≦m≦wg/2)を満たす整数、lは(1≦l≦wg/m)を満たす参照セグメント文字列の番号である。
【0041】
(3−2)比較セグメント文字列の抽出
代表文字列抽出部33は、次にステップS24により、文字列長がmで比較セグメント番号がnの比較セグメント文字列
【数7】

を生成する。ここで、mは(1≦m≦wg/2)を満たす整数で、nは(1≦n≦wg/m)を満たす比較セグメント文字列の番号である。
【0042】
(3−3)参照セグメント文字列に対する連続類似文字列数の算出
代表文字列抽出部33は、次にステップS25において、1個の参照セグメント文字列Ref_Segment m,lに対して、すべての比較セグメント文字列Comp_Segment m,nとの間の距離Segment_Distance l,nを以下の式に基づいて算出する。
【数8】

【0043】
ここで、dist(,)は、2つの文字間の距離を予め定義した関数であり、メモリテーブルに記憶されている。したがって、このメモリテーブルを参照することにより、上記2つの文字間の距離を得ることができる。この実施形態では、例えば(J.Lin, E. Keogh, S. Lonardi, B. Chiu, A Symbolic Representation of Time Series, with Implications for Streaming Algorithms, DMKD’ 03, June 13, 2003 )において定義されたテーブルを用いている。
【0044】
続いて代表文字列抽出部33は、ステップS26において、上記算出された参照セグメント文字列Ref_Segment m,lとすべての比較セグメント文字列Comp_Segment m,nとの間の距離Segment_Distance l,nの中から、予め定めたしきい値以下の距離を選択し、この選択されたしきい値以下の距離を有する比較セグメント文字列を抽出する。そして、この抽出された比較セグメント文字列をもとに、番号が連続している回数の最大値Max_repeat m,lを算出し、参照セグメント文字列Ref_Segment m,lと類似し、かつ連続して出現している箇所の文字数(連続類似文字数)Max_resemble_len m,lを以下の式により算出する。
【数9】

【0045】
(3−4)すべての参照セグメント文字列についての繰り返し処理
代表文字列抽出部33は、ステップS27により参照セグメント文字列の現在の番号をチェックし、まだ比較セグメント文字列との間の距離計算が終了していない参照セグメント文字列が残っているか否かを判定する。この判定の結果、未選択の参照セグメント文字列が残っていれば、この未選択の参照セグメント文字列を1つ選択したのちステップS23に戻り、ステップS23〜ステップS26による連続類似文字数Max_resemble_len m,lの算出処理を実行する。
以後同様に、すべての参照セグメント文字列について比較セグメント文字列との間の距離計算が終了するまで、上記したステップS23〜ステップS26による連続類似文字数Max_resemble_len m,lの算出処理を繰り返す。なお、以上の処理により抽出された連続類似文字数Max_resemble_len m,lは、記憶ユニット40内の代表文字列記憶部42に一時格納される。
【0046】
(3−5)すべての文字列長についての繰り返し処理
上記(3−4)の繰り返し処理により、すべての参照セグメント文字列に対する処理が完了すると、代表文字列抽出部33は次にステップS28により現在の文字列長をチェックし、1から最大の文字列長の半分(wg /2)までのすべての文字列長m(1≦m≦wg/2)について連続類似文字数Max_resemble_len m,lの算出処理が終了したか否かを判定する。この判定の結果、まだ処理を行っていない文字列長が残っていれば、未選択の文字列長を選択したのちステップS22に戻り、ステップS22からステップS27による処理を繰り返し実行する。
以後同様に、すべての文字列長m(1≦m≦wg/2)に対する処理が終了するまで、上記ステップS22〜ステップS27による処理を繰り返し、各文字列長における参照セグメント文字列ごとの連続類似文字数Max_resemble_len m,lをそれぞれ算出する。
【0047】
(3−6)代表文字列の決定
すべての文字列長m(1≦m≦wg/2)に対する連続類似文字数の算出処理が完了すると、代表文字列抽出部33は次にステップS29において、代表文字列記憶部42に格納された各連続類似文字数Max_resemble_len m,lを読み出し、これらの連続類似文字数Max_resemble_len m,lの中から最大値を選択する。そして、この選択した最大の連続類似文字数が算出されたときの参照セグメント文字列を選択し、この選択された参照セグメント文字列を当該参照セグメント文字列が含まれるグループ(ID=g)の代表文字列
【数10】

として、グループIDに関連付けて代表文字列記憶部42に記憶させる。ここで、aは代表文字列の長さを意味する。
【0048】
以上述べたステップS21〜ステップS29による代表文字列の抽出処理はセンサデータのグループID=g(1≦g≦G)ごとに行われ、この結果代表文字列記憶部42には各グループの代表文字列が記憶される。
【0049】
(4)検索データの設定
検索データの設定処理は、オペレータ選択操作に応じて以下のように行われる。図6はその処理手順と処理内容を示すフローチャートである。
すなわち、制御ユニット30は検索データ設定部34の制御の下で、先ずステップS31によりセンサデータ記憶部41からセンサデータCg =[tg,i ,cg,itを読み出す。そしてステップS32において、グループID=g(1≦g≦G)とそのタイムスタンプtg,lに選択ボタンを付加した検索候補データ選択画面の表示データを生成し、この生成された表示データを入出力インタフェースユニット20へ出力する。
この結果、表示デバイス22には検索候補データ選択画面が表示される。図7はこの検索候補データ選択画面の表示例を示すものである。
【0050】
この状態で、サービスサーバSVのオペレータが入力デバイス21により所望のグループの選択ボタンを選択操作したとする。検索データ設定部34は、上記選択ボタンの操作情報をステップS33により入出力インタフェースユニット20を介して受け取ると、この操作情報をもとに選択されたグループIDを認識する。そして、ステップS34により、この認識したグループIDを検索データとして類似度計算部35に与える。
【0051】
(5)類似度の算出
上記検索データ設定部34によりグループIDが設定されると、制御ユニット30は次に類似度算出部35の制御の下で、上記設定されたグループIDの代表文字列に対する他のグループの代表文字列の類似度を以下のように計算する。図8はその処理手順と処理内容を示すフローチャートである。
【0052】
(5−1)代表文字列の読み出し
類似度算出部35は、先ずステップS41により、上記検索データ設定部34から検索データとして与えられたグループIDに対応する代表文字列(以後検索文字列と呼ぶ)
【数11】

と、他のグループに含まれるセンサデータの代表文字列(以後検索対象文字列と呼ぶ)の集合を、代表文字列記憶部42からそれぞれ読み出す。
【0053】
(5−2)検索対象文字列の抽出
類似度算出部35は、次にステップS42により、上記読み出された検索文字列の長さと同じ長さの検索対象文字列を上記検索対象文字列の集合の中から抽出し、検索対象ベクトルYu =[グループID,Su ,Comp_Dist u]を生成する。
ここで、uは(1≦u≦Ug )を満たす1から始まる番号であり、Ug は検索対象文字列の総数を表す。また、Suは当該グループIDの代表文字列であり、
【数12】

を意味する。Comp_Dist uは検索文字列に対する検索対象文字列の距離であり、算出方法は後述する。
【0054】
(5−3)比較文字列の生成
続いて類似度算出部35は、ステップS43により検索対象ベクトルYu の代表文字列Suを2個結合した比較文字列
【数13】

を生成する。
【0055】
(5−4)検索文字列と比較文字列との間の最短距離の算出
類似度算出部35は、次にステップS44において、検索文字列Xと比較文字列Comp_Suとの間の距離Comp_Dist uを以下の式に基づいて算出する。そして、それまで算出された距離より短い距離が算出されるごとに、被検索ベクトルYuのComp_Dist uをこの短い距離に更新する。
【数14】

【0056】
なお、dist(,) は2個の文字間の距離が予め定義された関数であり、メモリテーブルに記憶されている。本実施形態では、(J.Lin, E. Keogh, S. Lonardi, B. Chiu, A Symbolic Representation of Time Series, with Implications for Streaming Algorithms, DMKD’ 03, June 13, 2003 )において定義されたメモリテーブルを用いた。
【0057】
(5−5)すべての検索対象ベクトルYuに対する繰り返し処理
1つの検索対象ベクトルYuについて、その比較文字列と検索文字列との間の最短距離の計算が終了すると、類似度算出部35はステップS46により検索対象ベクトルの有無をチェックし、まだ選択していない検索対象ベクトルが残っている場合にはステップS42に戻る。そして、ステップS42により次の検索対象ベクトルを生成し、この検索対象ベクトルについて上記ステップS43〜ステップS45によりその比較文字列と検索文字列との間の最短距離の算出処理を行う。
以後同様に、ステップS46によりすべての検索対象ベクトルが選択されたことが確認されるまで、上記ステップS42〜ステップS46による最短距離算出処理が繰り返し行われる。
【0058】
(6)検索結果の表示
上記類似度算出部35による処理が終了すると、制御ユニット30は最後に検索結果出力部36を起動し、この検索結果出力部36の制御の下で、上記検索データ設定部34により選択設定されたグループの加速度データと類似した加速度データを抽出し、表示させる処理を以下のように実行する。
【0059】
すなわち、検索対象ベクトルYu =[グループID,Su ,Comp_Dist u]の中から、検索文字列Xと比較文字列Comp_Suとの間の距離Comp_Dist uが予め定めたしきい値以下の検索対象ベクトルを抽出する。そして、この抽出された検索対象ベクトルに対応するグループIDと、当該グループIDに関連付けられた加速度データ及びタイムスタンプを表示するための表示データを生成し、入出力インタフェースユニット20へ出力する。この結果、表示デバイス22には上記グループIDとその加速度データ及びタイムスタンプが表示される。
【0060】
例えば、ユーザが怪我をした場合にその直後の歩行中の加速度データを検索対象データとし、その後得られる当該ユーザの加速度データの中から上記検索対象データと類似するデータを検索し、この類似データの検索件数を例えば週単位でグラフ化して表示する。このようにすると、上記ユーザの管理者である医療従事者や家族は、上記グラフ化された類似データの件数の減少の状況から、ユーザの怪我の回復具合を把握することが可能となる。
【0061】
なお、上記表示データは、通信インタフェースユニット10から本人ユーザの端末に送信し表示させるようにしてもよく、さらに本人ユーザとの間で予め加速度データの利用契約を結んでいる管理者(例えば医師や保健師、コンテンツ配信業者)の端末へ送信するようにしてもよい。
【0062】
以上詳述したようにこの実施形態では、ユーザ端末MS1〜MSnから収集した時系列データからなるセンサデータを計測期間ごとにグループ化してセンサデータ記憶部41に記憶する。この状態で、シンボル化処理部32により上記センサデータを低次元化されたシンボル系列に変換し、代表文字列抽出部33により上記シンボル系列をもとにシンボルの出現傾向が最も大きくなる参照セグメント文字列を求めてこれを代表文字列とする。そして、検索データ設定部34の制御の下でユーザが選択したグループの代表文字列に対する他の各グループの代表文字列の類似度を類似度算出部35により計算し、類似度がしきい値以下となるグループに含まれるセンサデータを検索結果出力部36により表示デバイス22に表示させるようにしている。
【0063】
したがって、センサデータが高サンプリングレートで計測されたデータであっても、グループごとに低次元化されたシンボル系列に変換され、このシンボル系列がさらに低次元化された代表文字列に変換されて、この代表文字列間で類似度が計算される。このため、類似度の計算処理に要するコストが大幅に低減され、これによりサービスサーバSVの処理負荷を軽減することができる。
【0064】
なお、この発明は上記実施形態に限定されるものではない。例えば、前記実施形態では時系列データ検索装置のすべての機能をサービスサーバに設けたが、そのすべての機能もしくは一部の機能を各ユーザ端末MS1〜MSnに分散して設けてもよい。その一例としては、センサデータの取得及び蓄積処理と、比較的処理負荷が小さいシンボル化処理及び代表文字列抽出処理をユーザ端末において行い、サービスサーバはユーザ端末から上記代表文字列のデータを受信して類似度算出処理を行う構成が考えられる。
【0065】
また加速度データの他に、心拍や血圧等のバイタルデータについて注目パターンの出現数や出現周期を監視する場合に、この発明の時系列データ検索方法を適用するようにしてもよい。
その他、時系列データ検索装置の構成や、シンボル化処理、代表文字列抽出処理、検索データ設定処理及び類似度算出処理の手順と内容、時系列データの種類及び構成等についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
【0066】
要するにこの発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0067】
SV…サービスサーバ、NW…通信ネットワーク、MS1〜MSn…ユーザ端末、10…通信インタフェースユニット、20…入出力インタフェースユニット、21…入出力デバイス、22…表示デバイス、30…制御ユニット、31…センサデータ受信記憶制御部、32…シンボル化処理部、33…代表文字列抽出部、34…検索データ設定部、35…類似度算出部、36…検索結果出力部、40…記憶ユニット、41…センサデータ記憶部、42…代表文字列記憶部。

【特許請求の範囲】
【請求項1】
予め定められた周期で所定の計測期間に渡り計測された時系列データを計測期間ごとにグループ化して記憶媒体に記憶する手段と、
前記グループごとに、前記記憶媒体に記憶された時系列データを低次元化されたシンボル系列に変換するシンボル化手段と、
前記グループごとに、前記シンボル系列におけるシンボルの出現傾向をもとにグループを代表する代表文字列を生成する代表文字列生成手段と
検索すべき時系列データを含むグループを設定する検索データ設定手段と、
前記設定されたグループに対応する代表文字列と他の各グループに対応する代表文字列との間の類似度をそれぞれ計算する類似度計算手段と、
前記類似度計算手段により計算された各類似度が予め設定したしきい値以上のグループに含まれる時系列データを前記記憶媒体から読み出し、この読み出された時系列データを検索結果として出力する検索結果出力手段と
を具備することを特徴とする時系列データ検索装置。
【請求項2】
前記シンボル化手段は、
前記グループごとに、前記記憶された時系列データに含まれる計測値及び計測時刻の平均及び標準偏差を算出する手段と、
前記算出された平均及び標準偏差をもとに、ノーマライズされた時系列データを算出する手段と、
前記ノーマライズ処理された時系列データをもとに、低次元化された計測値及び計測時刻をシンボルに変換してシンボル系列を生成する手段と
を備えることを特徴とする請求項1記載の時系列データ検索装置。
【請求項3】
前記代表文字列生成手段は、
前記シンボル系列を予め設定した文字列長ごとに複数の文字列に分割する第1の手段と、
前記分割された文字列ごとに参照セグメント文字列及び比較セグメント文字列を生成する第2の手段と、
前記参照セグメント文字列を1つ選択するごとに、当該選択された参照セグメント文字列と前記生成されたすべての比較セグメント文字列との間の距離をそれぞれ算出して、この算出された各距離のうち予め定めたしきい値以下の距離を有する比較セグメント文字列を抽出し、この抽出された比較セグメント文字列をもとに前記選択された参照セグメント文字列と類似しかつ連続して出現している箇所の文字の数を連続類似文字数として算出する第3の手段と、
前記文字列長を予め設定した範囲で可変するごとに前記第1乃至第3の手段を繰り返し実行させ、この繰り返し処理により得られた連続類似文字数の中の最大値を選択して、この選択した最大の連続類似文字数が算出されたときの参照セグメント文字列を当該参照セグメント文字列が含まれるグループの代表文字列とする第4の手段と
を備えることを特徴とする請求項1記載の時系列データ検索装置。
【請求項4】
予め定められた周期で所定の計測期間に渡り計測された時系列データを計測期間ごとにグループ化して記憶媒体に記憶する過程と、
前記グループごとに、前記記憶媒体に記憶された時系列データを低次元化されたシンボル系列に変換する過程と、
前記グループごとに、前記シンボル系列におけるシンボルの出現傾向をもとにグループを代表する代表文字列を生成する過程と
検索すべき時系列データを含むグループを設定する過程と、
前記設定されたグループに対応する代表文字列と他の各グループに対応する代表文字列との間の類似度をそれぞれ計算する過程と、
前記計算された各類似度が予め設定したしきい値以上のグループに含まれる時系列データを前記記憶媒体から読み出し、この読み出された時系列データを検索結果として出力する過程と
を具備することを特徴とする時系列データ検索方法。
【請求項5】
前記シンボル系列に変換する過程は、
前記グループごとに、前記記憶された時系列データに含まれる計測値及び計測時刻の平均及び標準偏差を算出する過程と、
前記算出された平均及び標準偏差をもとに、ノーマライズされた時系列データを算出する過程と、
前記ノーマライズ処理された時系列データをもとに、低次元化された計測値及び計測時刻をシンボルに変換してシンボル系列を生成する過程と
を備えることを特徴とする請求項4記載の時系列データ検索方法。
【請求項6】
前記代表文字列を生成する過程は、
前記シンボル系列を予め設定した文字列長ごとに複数の文字列に分割する第1の過程と、
前記分割された文字列ごとに参照セグメント文字列及び比較セグメント文字列を生成する第2の過程と、
前記参照セグメント文字列を1つ選択するごとに、当該選択された参照セグメント文字列と前記生成されたすべての比較セグメント文字列との間の距離をそれぞれ算出して、この算出された各距離のうち予め定めたしきい値以下の距離を有する比較セグメント文字列を抽出し、この抽出された比較セグメント文字列をもとに前記選択された参照セグメント文字列と類似しかつ連続して出現している箇所の文字の数を連続類似文字数として算出する第3の過程と、
前記文字列長を予め設定した範囲で可変するごとに前記第1乃至第3の過程を繰り返し実行させ、この繰り返し処理により得られた連続類似文字数の中の最大値を選択して、この選択した最大の連続類似文字数が算出されたときの参照セグメント文字列を当該参照セグメント文字列が含まれるグループの代表文字列とする第4の過程と
を備えることを特徴とする請求項4記載の時系列データ検索方法。
【請求項7】
請求項1乃至3のいずれかに記載の時系列データ検索装置が備える各手段の処理をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−83960(P2012−83960A)
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願番号】特願2010−229929(P2010−229929)
【出願日】平成22年10月12日(2010.10.12)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】