(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-23
(45)【発行日】2023-03-31
(54)【発明の名称】付与方法、付与プログラム及び付与装置
(51)【国際特許分類】
G06F 16/901 20190101AFI20230324BHJP
G06F 16/906 20190101ALI20230324BHJP
【FI】
G06F16/901
G06F16/906
(21)【出願番号】P 2019036210
(22)【出願日】2019-02-28
【審査請求日】2021-10-29
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(73)【特許権者】
【識別番号】504159235
【氏名又は名称】国立大学法人 熊本大学
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】櫻井 保志
(72)【発明者】
【氏名】松原 靖子
(72)【発明者】
【氏名】入船 恭彰
(72)【発明者】
【氏名】山室 冴
(72)【発明者】
【氏名】川畑 光希
(72)【発明者】
【氏名】浦 晃
(72)【発明者】
【氏名】河東 孝
(72)【発明者】
【氏名】梅田 裕平
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特開2006-338373(JP,A)
【文献】国際公開第2018/180197(WO,A1)
【文献】特開2018-142272(JP,A)
【文献】特開2012-073923(JP,A)
【文献】米国特許出願公開第2018/0166066(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
複数の時系列データのそれぞれを複数のセグメントに分割し、
前記複数の時系列データの各セグメントの特徴を基に、前記複数の時系列データのそれぞれにラベルを付与し、
前記時系列データの所定のセグメントに、当該セグメントが属する時系列データに付与されたラベルを付与する
処理をコンピュータが実行することを特徴とする付与方法。
【請求項2】
前記複数の時系列データのそれぞれにラベルを付与する処理における、前記複数のセグメントのそれぞれの重要度を算出する処理をさらに実行し、
前記セグメントにラベルを付与する処理は、セグメントの重要度が高いほど、前記セグメントが属する時系列データと同じラベルが付与されやすく、セグメントの重要度が低いほど、前記セグメントが属する時系列データに付与されたラベルと異なるラベルが付与されやすくなるようにラベルを付与する
ことを特徴とする請求項1に記載の付与方法。
【請求項3】
前記複数の時系列データのそれぞれにラベルを付与する処理は、RNN層及び前記RNN層の出力をセグメント単位で加重する重みを出力するAttentionを有するニューラルネットワークを用いて前記ラベルを付与し、
前記セグメントにラベルを付与する処理は、前記Attentionの出力を重要度として用いてラベルを付与する
ことを特徴とする請求項2に記載の付与方法。
【請求項4】
前記複数のセグメントを、各セグメントにおける前記時系列データの特徴に基づいて複数のクラスタに分類する
処理をさらに実行し、
前記セグメントにラベルを付与する処理は、前記複数のセグメントごとのクラスタ及び重要度に基づいてラベルを付与する
ことを特徴とする請求項2又は3に記載の付与方法。
【請求項5】
前記複数のセグメントのそれぞれの重要度が、当該セグメントが属する時系列データのセグメントの中で最も高い場合、前記複数のクラスタのうち、当該セグメントが分類されたクラスタに対応する当該時系列データに付与されたラベルのカウントを加算する
処理をさらに実行し、
前記セグメントにラベルを付与する処理は、前記複数のセグメントのそれぞれに、前記複数のクラスタのうち、当該セグメントが分類されたクラスタに対応するカウントが最も多いラベルを付与する
ことを特徴とする請求項4に記載の付与方法。
【請求項6】
前記加算する処理は、前記複数のセグメントが、当該セグメントが属する時系列データのセグメントの中で重要度が最も高いクラスタに属するセグメントではない場合、当該セグメントが分類されたクラスタに対応する当該時系列データに付与されたラベル以外のラベルのカウントを加算する
ことを特徴とする請求項5に記載の付与方法。
【請求項7】
前記複数のセグメントのそれぞれについて、重要度が高い順に順次、当該セグメントが分類されたクラスタに対応するラベルが割り当てられていない場合、当該セグメントが属する時系列データに付与されたラベルを当該クラスタに割り当てていく
ことを特徴とする請求項5に記載の付与方法。
【請求項8】
複数の時系列データのそれぞれを複数のセグメントに分割し、
前記複数の時系列データの各セグメントの特徴を基に、前記複数の時系列データのそれぞれにラベルを付与し、
前記時系列データの所定のセグメントに、当該セグメントが属する時系列データに付与されたラベルを付与する
処理をコンピュータに実行させることを特徴とする付与プログラム。
【請求項9】
複数の時系列データのそれぞれを複数のセグメントに分割する分割部と、
前記複数の時系列データの各セグメントの特徴を基に、前記複数の時系列データのそれぞれにラベルを付与する第1の付与部と、
前記時系列データの所定のセグメントに、当該セグメントが属する時系列データに付与されたラベルを付与する第2の付与部と、
を有することを特徴とする付与装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、付与方法、付与プログラム及び付与装置に関する。
【背景技術】
【0002】
従来、時系列データの特徴に基づき、当該時系列データにラベルを付与する技術が知られている。ラベルが付与された時系列データは、例えば教師あり機械学習における教師データとして用いられる。
【先行技術文献】
【非特許文献】
【0003】
【文献】山室冴、松原靖子、川畑光希、井手優介、梅田裕平、古川忠延、大川佳寛、丸橋弘治、稲越宏弥、櫻井保志、「深層学習を用いた時系列データの要約と分類」、DEIM Forum 2018 C3-3
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記の技術では、時系列データの詳細な分析を効率良く行うことが困難な場合があるという問題がある。
【0005】
例えば、作業者が装着した加速度センサから1日の間に得られる時系列データを使って、作業の進捗管理等を目的とした分析を行うことを考える。このとき、上記の技術によれば、1日の間に得られた時系列データに、その日の代表的な作業に対応する1つのラベルを付与することができる。
【0006】
ここで、時系列データの特徴は時間の経過によって変化する場合がある。例えば、作業者は1日のうちに複数の異なる作業を行うため、作業の変化にともない加速度センサから得られるデータの特徴が変化することが考えられる。その場合、上記の技術では、代表的な作業以外の作業内容を分析することは困難である。
【0007】
また、時系列データを所定の時間区間で分割し、各時間区間ごとに人手でラベルを付与する方法が考えられるが、この方法では時間効率及びラベル付与の精度が非常に悪くなる場合がある。さらに、各時間区間のデータがどのラベルに対応しているかを特定することが困難な場合もある。
【0008】
1つの側面では、時系列データの詳細な分析を効率良く行うことを目的とする。
【課題を解決するための手段】
【0009】
1つの態様において、付与方法は、複数の時系列データのそれぞれを複数のセグメントに分割する処理をコンピュータが実行する。付与方法は、複数の時系列データの各セグメントの特徴を基に、複数の時系列データのそれぞれにラベルを付与する処理をコンピュータが実行する。付与方法は、時系列データの所定のセグメントに、当該セグメントが属する時系列データに付与されたラベルを付与する処理をコンピュータが実行する。
【発明の効果】
【0010】
1つの側面では、時系列データの詳細な分析を効率良く行うことができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、実施例に係る分析システムの機能構成の一例を示す図である。
【
図2】
図2は、実施例に係る付与装置の機能構成の一例を示す図である。
【
図3】
図3は、分類モデルについて説明するための図である。
【
図4】
図4は、セグメント情報テーブルの一例を示す図である。
【
図5】
図5は、重要度が高いセグメントへのラベルの付与方法を説明するための図である。
【
図6】
図6は、重要度が低いセグメントへのラベルの付与方法を説明するための図である。
【
図7】
図7は、カウント法におけるcountingを説明するための図である。
【
図8】
図8は、カウント法におけるtie-break countingを説明するための図である。
【
図9】
図9は、ソート法におけるソートを説明するための図である。
【
図10】
図10は、ソート法におけるラベルの付与方法を説明するための図である。
【
図11】
図11は、付与処理の流れを示すフローチャートである。
【
図12】
図12は、カウント法による後処理の流れを示すフローチャートである。
【
図13】
図13は、countingの流れを示すフローチャートである。
【
図14】
図14は、labelingの流れを示すフローチャートである。
【
図15】
図15は、tie-break countingの流れを示すフローチャートである。
【
図16】
図16は、tie-break labelingの流れを示すフローチャートである。
【
図17】
図17は、ソート法による後処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0012】
以下に、本発明の付与方法、付与プログラム及び付与装置の実施例を図面に基づいて詳細に説明する。なお、この実施例により本発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例1】
【0013】
まず、実施例における時系列データについて説明する。例えば、時系列データは、加速度センサ等から得られるセンサデータや、Webサイトのアクセス履歴等である。ここで、例えば、非特許文献1に記載された分類モデルであるDeepPlaitによれば、時系列データにラベルを付与することができる。
【0014】
ラベルは、時系列データの属性を表す情報である。例えば、時系列データが、フリースローを行う選手に装着した加速度センサから得られるセンサデータである場合、ラベルは、当該フリースローが成功するか失敗するかを表す情報であってよい。また、時系列データが、作業者に装着した加速度センサから1日の間に得られたセンサデータである場合、ラベルは、作業者がその日に行った代表的な作業を表す情報であってよい。
【0015】
ここで、時系列データは、内部に複数のパターンを含む場合がある。例えば、ネットワーク通信のモニタリングシステムから発生する時系列データには、正常なパターンと異常なパターンが含まれる。また、作業者に装着した加速度センサから得られるセンサデータには、時間帯ごとの作業内容に応じた様々なパターンが含まれる。
【0016】
従来の技術では、1つの時系列データに対し1つのラベルが付与される。一方で、時系列データに対して付与されたラベルは、当該時系列データに含まれるパターンの全てに対応しているとは限らない。つまり、従来技術では、当該時系列データを代表するたかだか1つのパターンに対応するラベルが付与されるに過ぎない。このため、例えば、従来技術では、複数の時系列データからパターンごとのデータを抽出し分析を行うことが困難である。
【0017】
これに対し、実施例の分析システムは、時系列データに含まれるパターンごとにラベルを付与し、当該パターンごとにラベルが付与された時系列データを使って分析を行うことができる。
【0018】
ここで、実施例における用語について説明する。まず、分類モデルによって時系列データに付与されるラベルをデータラベルと呼ぶ。また、時系列データに含まれるパターンをクラスタと呼ぶ。また、クラスタごとに区切られた時間区間に対応する時系列データの部分をセグメントと呼ぶ。そして、分析システムによってセグメントごとに付与されるラベルをセグメントラベルと呼ぶ。
【0019】
図1を用いて、分析システムについて説明する。
図1は、実施例に係る分析システムの機能構成の一例を示す図である。
図1に示すように、分析システム1Sは、付与装置10及び分析装置20を有する。
【0020】
付与装置10は、時系列データを分割した各セグメントへのセグメントラベルの付与を行うための装置である。付与装置10は、学習用データを用いて分類モデルの学習を行う。そして、付与装置10は、学習済みの分類モデルによる分類結果に対し所定の後処理を行うことで、セグメントラベルの付与を行う。また、以降の説明では、付与装置10がデータラベル又はセグメントラベルの付与を行うことを予測と呼ぶ。
【0021】
分類モデルは、時系列データに対するデータラベルの付与、セグメントへの分割、クラスタへのセグメントの分類及び各セグメントに対するスコアの算出を行うことができるものであればよい。実施例では、分類モデルは非特許文献1に記載のDeepPlaitであるものとする。また、DeepPlaitは、DNN(Deep Neural Network)を用いたモデルである。
【0022】
図1に示すように、付与装置10には時系列データが入力される。分類モデルの学習の際には、事前に人手等によりデータラベルが付与された時系列データが付与装置10に入力される。一方、予測の際に付与装置10に入力される時系列データには、データラベルが付与されていてもよいし、データラベルが付与されていなくてもよい。
【0023】
付与装置10は、セグメントラベルを付与した時系列データを出力する。セグメントラベルの付与方法については、後に付与装置10の構成とともに説明する。そして、付与装置10によって出力されたセグメントラベルを付与済みの時系列データは、分析装置20に入力される。
【0024】
分析装置20は、セグメントラベルを付与済みの時系列データの分析を行う。例えば、分析装置20は、特定のセグメントラベルが付与されたセグメントのデータを抽出し、当該抽出したデータを分析してもよい。また、分析装置20は、セグメントラベル及び対応するセグメントのデータの特徴を学習し、セグメントラベルを付与するためのモデルを生成してもよい。
【0025】
[機能構成]
図2を用いて、実施例に係る付与装置の機能構成について説明する。
図2は、実施例に係る付与装置の機能構成の一例を示す図である。
図2に示すように、付与装置10は、インタフェース部11、記憶部12及び制御部13を有する。
【0026】
インタフェース部11は、入出力装置との間のデータの入出力、及び他の装置との間でのデータの通信を行うためのインタフェースである。例えば、インタフェース部11は、キーボードやマウス等の入力装置、ディスプレイやスピーカ等の出力装置、USBメモリ等の外部記憶装置との間でデータの入出力を行う。また、例えば、インタフェース部11はNIC(Network Interface Card)であり、インターネットを介してデータの通信を行う。
【0027】
記憶部12は、データや制御部13が実行するプログラム等を記憶する記憶装置の一例であり、例えばハードディスクやメモリ等である。記憶部12は、分類モデル情報121及びセグメント情報テーブル122を記憶する。
【0028】
分類モデル情報121は、分類モデルのパラメータである。例えば、分類モデル情報121は、DNNの重み及びバイアス等の学習可能なパラメータである。このため、分類モデル情報121は、分類モデルの学習の際に更新される。セグメント情報テーブル122は、セグメントラベルを付与する後処理において使用されるテーブルである。セグメント情報テーブル122のデータ構造については、後処理の手順とともに後に説明する。
【0029】
制御部13は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部13は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。制御部13は、分割部131、分類部132、算出部133、データラベル付与部134、更新部135及びセグメントラベル付与部136を有する。
【0030】
分割部131、分類部132、算出部133及びデータラベル付与部134は、分類モデルを用いた処理を行う。分割部131、分類部132、算出部133及びデータラベル付与部134は、非特許文献1の第4節に記載された処理と同様の処理を行うことができる。
【0031】
分割部131は、複数の時系列データのそれぞれを複数のセグメントに分割する。また、分類部132は、複数のセグメントを、各セグメントにおける時系列データの特徴に基づいて複数のクラスタに分類する。データラベル付与部134は、複数の時系列データの各セグメントの特徴を基に、複数の時系列データのそれぞれにラベルを付与する。また、算出部133は、データラベル付与部134による処理における、複数のセグメントのそれぞれの重要度を算出する。なお、データラベル付与部134は、第1の付与部の一例である。
【0032】
例えば、データラベル付与部134は、RNN(Recurrent Neural Network)層及びRNN層の出力をセグメント単位で加重する重みを出力するAttentionを有するニューラルネットワークを用いてラベルを付与することができる。このとき、算出部133は、Attentionの出力を重要度として算出することができる。
【0033】
更新部135は、学習処理を行う。学習処理において、まず、データラベル付与部134は、正解のデータラベルが事前に付与された時系列データに対し、分類モデルを用いてデータラベルを付与する。そして、更新部135は、付与されたデータラベルと正解のデータラベルとの差分を基に分類モデルのパラメータ、すなわち分類モデル情報121を最適化する。なお、予測処理においては、データラベル付与部134は、正解のデータラベルが未知の時系列データに対し、学習済みの分類モデルを用いてデータラベルを付与する。
【0034】
ここで、
図3を用いて、分類モデルについて説明する。
図3は、分類モデルについて説明するための図である。
図3の例では、時系列データは、フリースローを行う選手に装着した加速度センサから得られるセンサデータである。また、データラベルは、当該フリースローが成功するか失敗するかを表す情報である。
【0035】
学習処理において、付与装置10は、データラベルとして「成功」又は「失敗」が事前に付与された時系列データを使って分類モデルの学習を行う。また、予測処理において、付与装置10は、正解のデータラベルが未知の時系列データのデータラベルが「成功」であるか「失敗」であるかを予測する。
【0036】
予測処理において、付与装置10は、学習済みの分類モデルを用いて、データラベルが未知の時系列データをセグメントに分割し、各セグメントをクラスタに分類する。さらに、付与装置10は、学習済みの分類モデルを用いて、各セグメントの重要度を算出し、データラベルを予測する。なお、説明を省略したが、学習処理においても、予測処理と同様にセグメントの分割、クラスタの分類及び重要度の算出が行われる。
【0037】
図3の例では、各セグメントが色を分けた上で表示されている。ここでは、予測において重要であったセグメントほど濃い色で表示される。例えば、
図3には、時刻800から時刻1200までのセグメントが、クラスタIDが1であるクラスタに分類され、重要度が最も高かったことが示されている。また、重要度は、予測における寄与度と言い換えることができる。
【0038】
データラベル付与部134は、データラベルの付与結果をセグメント情報テーブル122に格納する。
図4を用いて、セグメント情報テーブル122について説明する。
図4は、セグメント情報テーブルの一例を示す図である。
【0039】
図4に示すように、データラベル付与部134は、時系列データd1及び時系列データd2を含む複数の時系列データのデータラベルの付与結果をセグメント情報テーブル122に格納する。ここで、時系列データには、時刻及び時刻ごとの少なくとも1種類の値が含まれる。また、セグメント情報テーブル122の項目には、時系列データ名、セグメント開始時刻、セグメント終了時刻、クラスタID、重要度及び予測データラベルが含まれる。
【0040】
例えば、
図4のセグメント情報テーブル122の1行目のレコードは、時系列データd1の時刻0から時刻100までのセグメントのクラスタIDが1であり、重要度が0.8であり、付与されたデータラベルが「a」であったことを示している。
【0041】
セグメントラベル付与部136は、複数のセグメントごとのクラスタ及び重要度に基づいてラベルを付与する。例えば、セグメントラベル付与部136は、時系列データの所定のセグメントに、当該セグメントが属する時系列データに付与されたラベルを付与する。なお、セグメントラベル付与部136は、第2の付与部の一例である。
【0042】
ここで、セグメントラベル付与部136は、セグメントの重要度が高いほど、セグメントが属する時系列データと同じラベルが付与されやすくなるようにラベルを付与することができる。
【0043】
図5は、重要度が高いセグメントへのラベルの付与方法を説明するための図である。
図5に示すように、まず、付与装置10は、各時系列データに対して予測データラベルを付与する。
【0044】
なお、
図5等では、セグメントの情報を「クラスタID:重要度の高低:セグメントラベル」のように表記する。例えば、「1:高」は、セグメントのクラスタIDが1で、重要度が高いことを意味している。また、例えば、「3:高:b」は、セグメントのクラスタIDが3で、重要度が高く、セグメントラベルが「b」であることを意味している。また、セグメントの重要度が高いことは、当該セグメントの重要度が所定の閾値以上であることであってもよいし、当該セグメントの重要度の大きさの順位が一定の順位以上であることであってもよい。
【0045】
以降の説明では、時系列データの中のセグメントを、左側から順に1番目のセグメント、2番目のセグメント、3番目のセグメント等と呼ぶ。
図5の例では、時系列データd1の1番目のセグメントと3番目のセグメントの重要度が高かった。このため、セグメントラベル付与部136は、時系列データd1の1番目のセグメントと3番目のセグメントに、セグメントラベルとして、データラベルである「b」を付与する。
【0046】
また、時系列データd1の中に、セグメントラベルを付与したセグメントと同じクラスタに分類されたセグメントがある場合、セグメントラベル付与部136は、当該セグメントにも同じセグメントラベルを付与する。つまり、セグメントラベル付与部136は、クラスタ単位でセグメントを付与する。
【0047】
一方、セグメントラベル付与部136は、セグメントの重要度が低いほど、セグメントが属する時系列データに付与されたラベルと異なる時系列データのラベルが付与されやすくなるようにラベルを付与することができる。
【0048】
図6は、重要度が低いセグメントへのラベルの付与方法を説明するための図である。重要度が低いセグメントは、重要度が高いセグメント以外のセグメントである。
図6に示すように、セグメントラベル付与部136は、重要度が低いセグメントには、当該セグメントが属する時系列データに付与されたラベルと異なる時系列データのセグメントであって、同一のクラスタに分類されたセグメントに付与されたセグメントラベルを付与する。
【0049】
例えば、
図6の例では、時系列データd1の2番目のセグメントは、重要度が低く、クラスタIDが2である。また、時系列データd2の3番目のセグメントは、重要度が高く、クラスタIDが2であり、セグメントラベル「a」が付与されている。このため、セグメントラベル付与部136は、時系列データd1の2番目のセグメントに、時系列データd2の3番目のセグメントと同じセグメントラベル「a」を付与する。
【0050】
なお、分類モデルが、RNN層及びRNN層の出力をセグメント単位で加重する重みを出力するAttentionを有するニューラルネットワークである場合、セグメントラベル付与部136は、Attentionの出力を重要度として用いてラベルを付与する。
【0051】
また、セグメントラベルの付与方法は、
図5及び
図6を用いて説明したものに限られない。例えば、セグメントラベル付与部136は、カウント法又はソート法によりセグメントラベルを付与することができる。
【0052】
(カウント法)
まず、カウント法について説明する。カウント法では、セグメントラベル付与部136は、クラスタとラベルとの組み合わせごとのスコア(以下、カウント)を計算する。このとき、セグメントラベル付与部136は、各時系列データの最も重要度が高いセグメントについて、countingと呼ばれる処理を行う。
図7は、カウント法におけるcountingを説明するための図である。
【0053】
countingについて説明する。セグメントラベル付与部136は、複数のセグメントのそれぞれの重要度が、当該セグメントが属する時系列データのセグメントの中で最も高い場合、当該セグメントが分類されたクラスタに対応する当該時系列データに付与されたラベルのカウントを加算する。そして、セグメントラベル付与部136は、複数のセグメントのそれぞれに、複数のクラスタのうち、当該セグメントが分類されたクラスタに対応するカウントが最も多いラベルを付与する。
【0054】
図7の例では、時系列データd1のセグメントのうち、1番目のセグメントの重要度が最も高い。また、時系列データd1の1番目のセグメントはクラスタIDが1であるクラスタに分類されている。このため、セグメントラベル付与部136は、クラスタIDが1であるクラスタ(クラスタ1)と時系列データd1に付与されたデータラベル「a」との組み合わせのカウントに1を加算する。同様に、セグメントラベル付与部136は、クラスタ2とラベル「b」との組み合わせのカウント、及びクラスタ3とラベル「b」との組み合わせのカウントに1を加算する。
【0055】
そして、セグメントラベル付与部136は、加算済みのカウントを参照し、全ての時系列データについて、クラスタ1に分類されたセグメントにセグメントラベル「a」を付与する。また、セグメントラベル付与部136は、クラスタ2に分類されたセグメントにセグメントラベル「b」を付与する。また、セグメントラベル付与部136は、クラスタ3に分類されたセグメントにセグメントラベル「b」を付与する。
【0056】
この時点で、クラスタ1、クラスタ2及びクラスタ3のいずれかに分類されたセグメントへのセグメントラベルの付与が完了する。一方で、
図7の例では、クラスタ4に分類されたセグメントにはセグメントラベルが付与されていない。このようなcountingでセグメントラベルが付与されなかったセグメントがある場合、セグメントラベル付与部136はtie-break countingを行う。
図8は、カウント法におけるtie-break countingを説明するための図である。
【0057】
tie-break countingについて説明する。セグメントラベル付与部136は、複数のセグメントが、当該セグメントが属する時系列データのセグメントの中で重要度が最も高いクラスタに属するセグメントではない場合にtie-break countingを行う。このとき、セグメントラベル付与部136は、当該セグメントが分類されたクラスタに対応する当該時系列データに付与されたラベル以外のラベルのカウントを加算する。
【0058】
図8の例では、時系列データd1のセグメントのうち、2番目のセグメント及び3番目のセグメントは、時系列データd1の中で重要度が最も高いクラスタ2に属するセグメントではない。また、時系列データd1の2番目のセグメントはクラスタ2に分類されている。また、時系列データd1の3番目のセグメントはクラスタ3に分類されている。また、時系列データd1に付与されたデータラベル以外のデータラベルは「b」及び「c」である。このため、セグメントラベル付与部136は、クラスタ2とラベル「b」との組み合わせ、クラスタ2とラベル「c」との組み合わせ、クラスタ3とラベル「b」との組み合わせ、クラスタ3とラベル「c」との組み合わせ、のそれぞれのカウントに1を加算する。
【0059】
同様に、セグメントラベル付与部136は、時系列データd3についてもtie-break countingを行う。このとき、セグメントラベル付与部136は、クラスタ4とラベル「a」との組み合わせ、及びクラスタ4とラベル「c」との組み合わせのそれぞれのカウントに1を加算する。
【0060】
そして、セグメントラベル付与部136は、加算済みのカウントを参照し、全ての時系列データについて、クラスタ4に分類されたセグメントにセグメントラベル「a」又はセグメントラベルを「c」を付与する。このとき、セグメントラベル「a」又はセグメントラベル「c」のどちらを最終的に選択するかは、ランダムに決定されてもよいし、あらかじめ定められた優先度にしたがって決定されてもよい。
【0061】
(ソート法)
次に、ソート法について説明する。ソート法では、セグメントラベル付与部136は、複数のセグメントのそれぞれについて、重要度が高い順に順次、ラベルを割り当てていく。このとき、セグメントラベル付与部136は、各セグメントが分類されたクラスタに対応するラベルが割り当てられていない場合、当該セグメントが属する時系列データに付与されたラベルを当該クラスタに割り当てていく。
【0062】
具体的には、まず、
図9に示すように、セグメントラベル付与部136は、セグメント情報テーブル122を重要度が高い順にソートする。
図9は、ソート法におけるソートを説明するための図である。
【0063】
そして、
図10に示すように、セグメントラベル付与部136は、セグメント情報テーブル122のレコードを上から順に参照していく。そして、セグメントラベル付与部136は、初出のクラスタ、すなわち分類されたセグメントにセグメントラベルが割り当てられていないクラスタに対し、予測データラベルをセグメントラベルとして割り当てる。さらに、セグメントラベル付与部136は、既出のクラスタ、すなわち分類されたセグメントにセグメントラベルが割り当てられたクラスタに対しては、セグメントラベルを割り当てない。
【0064】
図10の例では、まず、セグメントラベル付与部136は1行目のレコードを参照し、クラスタIDが3であるクラスタに分類された全てのセグメントに対応するレコードのセグメントラベルを「b」に変更する。次に、セグメントラベル付与部136は2行目のレコードを参照し、クラスタIDが1であるクラスタに分類された全てのセグメントに対応するレコードのセグメントラベルを「a」に変更する。さらに、セグメントラベル付与部136は3行目のレコードを参照し、クラスタIDが2であるクラスタに分類された全てのセグメントに対応するレコードのセグメントラベルを「b」に変更する。
【0065】
4行目から9行目までのレコードは既出のクラスタに対応している。そして、セグメントラベル付与部136は10行目のレコードを参照し、クラスタIDが4であるクラスタに分類された全てのセグメントに対応するレコードのセグメントラベルを「b」に変更する。ただし、このときセグメントラベルが変更されるレコードは、
図10の例では1レコードのみである。
【0066】
[処理の流れ]
フローチャートを用いて各処理の流れを説明する。ここでは、セグメント情報テーブルT、データセットD、クラスタk、ラベルl、時系列データd、カウントNkl、セグメントsのように、各情報には説明のために適宜符号を付している。
【0067】
図11を用いて、付与装置10によるセグメントラベルの付与処理の流れを説明する。
図11は、付与処理の流れを示すフローチャートである。
図11に示すように、まず、付与装置10は、時系列データとデータラベルの組であるデータセットDの入力を受け付ける(ステップS1)。次に、付与装置10は、分類モデルによる予測を実行し、セグメント情報テーブルTを得る(ステップS2)。
【0068】
ここで、付与装置10は、セグメントラベルを付与するために後処理を実行する(ステップS3)。そして、付与装置10は、セグメントと付与したセグメントラベルとを対応付けたテーブルを出力する(ステップS4)。
【0069】
(カウント法)
次に、後処理(
図11のステップS3)の流れを説明する。
図12を用いて、カウント法による後処理の流れを説明する。
図12は、カウント法による後処理の流れを示すフローチャートである。
【0070】
図12に示すように、付与装置10は、各時系列データを基に作成されたセグメント情報テーブルTの入力を受け付ける(ステップS31a)。次に、付与装置10は、countingを実行する(ステップS32a)。そして、付与装置10は、countingの結果に基づきlabelingを実行する(ステップS33a)。
【0071】
ここで、付与装置10は、セグメント情報テーブルTの中の全てのセグメントにラベルが付いているか否かを判定する(ステップS34a)。セグメント情報テーブルTの中の全てのセグメントにラベルが付いている場合(ステップS34a、Yes)、付与装置10は、T中の各セグメントに対するラベルを出力し(ステップS37a)、カウント法による後処理を終了する。
【0072】
一方、セグメント情報テーブルTの中の全てのセグメントにラベルが付いていない場合(ステップS34a、No)、付与装置10は、tie-break counting(ステップS35a)及びtie-break labeling(ステップS36a)を実行する。その後、付与装置10は、T中の各セグメントに対するラベルを出力し(ステップS37a)、カウント法による後処理を終了する。
【0073】
counting(
図12のステップS32a)、labeling(
図12のステップS33a)、tie-break counting(
図12のステップS35a)、tie-break labeling(
図12のステップS36a)の流れを説明する。
【0074】
まず、
図13を用いて、countingの流れを説明する。
図13は、countingの流れを示すフローチャートである。
図13に示すように、まず、付与装置10は、セグメント情報テーブルTの入力を受け付ける(ステップS321a)。次に、付与装置10は、全てのクラスタk、ラベルlに対するカウントNklを0に初期化する(ステップS322a)。
【0075】
ここで、付与装置10は、Tから時系列データを1つずつ取得していく。付与装置10は、未取得の時系列データから次の時系列データdを取得する(ステップS323a)。そして、付与装置10は、d中で重要度が最も高いセグメントsを特定する(ステップS324a)。ここで、付与装置10は、sが属するクラスタkに対するdの予測データラベルのNklを増やす(ステップS325a)。
【0076】
付与装置10は、データセットの中の全ての時系列データについて処理が完了したか否かを判定する(ステップS326a)。全ての時系列データについて処理が完了している場合(ステップS326a、Yes)、付与装置10は、全てのクラスタklとラベルlについてのNklをテーブルとして出力する(ステップS327a)。一方、全ての時系列データについて処理が完了していない場合(ステップS326a、No)、付与装置10は、ステップS323aに戻り、処理を繰り返す。
【0077】
次に、
図14を用いて、labelingの流れを説明する。
図14は、labelingの流れを示すフローチャートである。
図14に示すように、まず、付与装置10は、全てのクラスタkとラベルlに対するNklのテーブルの入力を受け付ける(ステップS331a)。このテーブルは、countingにおいて出力されるテーブルである。
【0078】
ここで、付与装置10は、テーブルからクラスタkを1つずつ選択していく。付与装置10は、まだ選んでいないクラスタkを1つ選ぶ(ステップS332a)。そして、付与装置10は、選んだクラスタkに対するNklが最大になるラベルlが1つのlmaxに決まるか否かを判定する(ステップS333a)。
【0079】
選んだクラスタkに対するNklが最大になるlmaxが1つに決まる場合(ステップS333a、Yes)、付与装置10は、クラスタkに含まれる全てのセグメントsに、lmaxのラベルを付ける(ステップS334a)。一方、選んだクラスタkに対するNklが最大になるlmaxが1つに決まらない場合(ステップS333a、No)、付与装置10は、lmaxのラベルを付けずに次の処理へ進む。
【0080】
付与装置10は、全てのクラスタkを選んだか否かを判定する(ステップS335a)。全てのクラスタkを選んでいる場合(ステップS335a、Yes)、付与装置10は、各セグメントに付与されたラベルを出力する(ステップS336a)。このとき、付与装置10は、ラベルが付与されていないセグメントについては、未付与として出力する。全てのクラスタkを選んでいない場合(ステップS335a、No)、付与装置10は、ステップS332aに戻り処理を繰り返す。
【0081】
図15を用いて、tie-break countingの流れを説明する。
図15は、tie-break countingの流れを示すフローチャートである。
図15に示すように、まず、付与装置10は、セグメント情報テーブルTとラベル集合Lの入力を受け付ける(ステップS351a)。次に、付与装置10は、全てのクラスタk、ラベルlに対するカウントMklを0に初期化する(ステップS352a)。
【0082】
ここで、付与装置10は、Tから時系列データを1つずつ取得していく。付与装置10は、未取得の時系列データから次の時系列データdを取得する(ステップS353a)。そして、付与装置10は、d中で重要度が最も高いセグメントsを特定する(ステップS354a)。
【0083】
ここで、付与装置10は、sが属するクラスタk以外の全てのクラスタk´と、dの予測データラベル以外のLに含まれる全てのラベルl´についてのカウントMk´l´を増やす(ステップS355a)。
【0084】
付与装置10は、データセットの中の全ての時系列データについて処理が完了したか否かを判定する(ステップS356a)。全ての時系列データについて処理が完了している場合(ステップS356a、Yes)、付与装置10は、全てのクラスタkとラベルlについてのMklをテーブルとして出力する(ステップS357a)。一方、全ての時系列データについて処理が完了していない場合(ステップS356a、No)、付与装置10は、ステップS353aに戻り、処理を繰り返す。
【0085】
次に、
図16を用いて、tie-break labelingの流れを説明する。
図16は、tie-break labelingの流れを示すフローチャートである。
図16に示すように、まず、付与装置10は、全てのクラスタkとラベルlに対するMklのテーブルの入力を受け付ける(ステップS361a)。このテーブルは、tie-break countingにおいて出力されるテーブルである。
【0086】
ここで、付与装置10は、ラベルが付与されていないクラスタからクラスタkを1つずつ選択していく。付与装置10は、まだ選んでいないクラスタkを1つ選ぶ(ステップS362a)。そして、付与装置10は、選んだクラスタkに対するMklが最大になるラベルlから1つをlmaxとして選ぶ(ステップS363a)。
【0087】
付与装置10は、クラスタkに含まれる全てのセグメントsにlmaxのラベルを付ける(ステップS364a)。付与装置10は、全てのクラスタkを選んだか否かを判定する(ステップS365a)。全てのクラスタkを選んでいる場合(ステップS365a、Yes)、付与装置10は、各セグメントに付与されたラベルを出力する(ステップS366a)。このとき、付与装置10は、ラベルが付与されていないセグメントについては、未付与として出力する。全てのクラスタkを選んでいない場合(ステップS365a、No)、付与装置10は、ステップS362aに戻り処理を繰り返す。
【0088】
(ソート法)
次に、
図17を用いて、ソート法による後処理の流れを説明する。
図17は、ソート法による後処理の流れを示すフローチャートである。
図17に示すように、まず、付与装置10は、セグメント情報テーブルTの入力を受け付ける(ステップS31b)。次に、付与装置10は、Tのレコードを重要度順で降順にソートしT´とする(ステップS32b)。
【0089】
付与装置10は、T´のセグメントを順次参照していく。付与装置10は、T´から次のセグメントsとsが属するクラスタkを取得する(ステップS33b)。そして、付与装置10は、kにすでにラベルが付与されているか否かを判定する(ステップS34b)。kにすでにラベルが付与されている場合(ステップS34b、Yes)、付与装置10は、kにラベルを付与せずに次の処理に進む。一方、kにラベルが付与されていない場合(ステップS34b、No)、kにsを含むデータの予測データラベルを付与する(ステップS35b)。そして、付与装置10は、sにkに付与されているラベルを付与する(ステップS36b)。
【0090】
次に、付与装置10は、T´の全てのセグメントsについて処理が終了したか否かを判定する(ステップS37b)。T´の全てのセグメントsについて処理が終了している場合(ステップS37b、Yes)、付与装置10は、各セグメントsに付与されたラベルを出力する(ステップS38b)。一方、T´の全てのセグメントsについて処理が終了していない場合(ステップS37b、No)、付与装置10は、ステップS33bに戻り処理を繰り返す。
【0091】
[効果]
これまで説明してきたように、付与装置10は、複数の時系列データのそれぞれを複数のセグメントに分割する。付与装置10は、複数の時系列データの各セグメントの特徴を基に、複数の時系列データのそれぞれにラベルを付与する。付与装置10は、時系列データの所定のセグメントに、当該セグメントが属する時系列データに付与されたラベルを付与する。このように、付与装置10は、時系列データに付与されたデータラベルを基にセグメントラベルの付与を行うことができる。つまり、付与装置10は、従来技術(例えば、非特許文献1に記載のDeepPlait)の出力を利用して、自動的にセグメントラベルを付与することができる。このため、実施例によれば、時系列データの詳細な分析を効率良く行うことができる。
【0092】
付与装置10は、データラベルの付与における、複数のセグメントのそれぞれの重要度を算出する。付与装置10は、セグメントの重要度が高いほど、セグメントが属する時系列データと同じラベルが付与されやすく、セグメントの重要度が低いほど、セグメントが属する時系列データに付与されたラベルと異なるラベルが付与されやすくなるようにラベルを付与する。このように、付与装置10は、付与済みのデータラベルとデータラベルの付与の際に算出される重要度を用いてセグメントラベルを付与することができる。このため、実施例によれば、重要度を反映したセグメントラベルの付与を自動的に行うことが可能になる。
【0093】
付与装置10は、RNN層及びRNN層の出力をセグメント単位で加重する重みを出力するAttentionを有するニューラルネットワークを用いてラベルを付与する。付与装置10は、Attentionの出力を重要度として用いてラベルを付与する。このように、付与装置10は、既存のモデルの途中計算で得られる値を利用してセグメントラベルを付与することができる。
【0094】
付与装置10は、複数のセグメントを、各セグメントにおける時系列データの特徴に基づいて複数のクラスタに分類する。付与装置10は、複数のセグメントごとのクラスタ及び重要度に基づいてラベルを付与する。このように、付与装置10は、セグメントをクラスタ単位で集約して扱うことができるため、効率的にセグメントラベルの付与を行うことができる。
【0095】
付与装置10は、複数のセグメントのそれぞれの重要度が、属する時系列データのセグメントの中で最も高い場合、複数のクラスタのうち、当該セグメントが分類されたクラスタに対応する当該時系列データに付与されたラベルのカウントを加算する。付与装置10は、複数のセグメントのそれぞれに、複数のクラスタのうち、当該セグメントが分類されたクラスタに対応するカウントが最も多いラベルを付与する。これにより、付与装置10は、最も重要度が高いセグメントについて、自動的にセグメントラベル付与のためのスコアを計算することができる。
【0096】
付与装置10は、複数のセグメントが、当該セグメントが属する時系列データのセグメントの中で重要度が最も高いクラスタに属するセグメントではない場合、当該セグメントが分類されたクラスタに対応する当該時系列データに付与されたラベル以外のラベルのカウントを加算する。これにより、付与装置10は、最も重要度が高いセグメント以外のセグメントについても、自動的にセグメントラベル付与のためのスコアを計算することができる。
【0097】
セグメントラベル付与部136は、各セグメントについて、重要度が高い順に順次、当該セグメントが分類されたクラスタに対応するラベルが割り当てられていない場合、当該セグメントが属する時系列データに付与されたラベルを当該クラスタに割り当てていく。これにより、付与装置10は、クラスタ単位でセグメントラベルをまとめて付与していくことができる。
【0098】
なお、上記の実施例では、セグメントラベルの付与の際に、クラスタとラベルのカウントをそのまま利用する方法について説明した。一方で、セグメントラベルの付与は、カウントにさらに重み付け等を行った上で行われてもよい。例えば、付与装置10は、カウントにセグメントごとの時間の長さに応じた重みを掛けた上で各計算を行うようにしてもよい。
【0099】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、実施例で説明した具体例、分布、数値等は、あくまで一例であり、任意に変更することができる。
【0100】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0101】
[ハードウェア]
図18は、ハードウェア構成例を説明する図である。
図18に示すように、付与装置10は、通信インタフェース10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図18に示した各部は、バス等で相互に接続される。
【0102】
通信インタフェース10aは、ネットワークインタフェースカード等であり、他のサーバとの通信を行う。HDD10bは、
図2に示した機能を動作させるプログラムやDBを記憶する。
【0103】
プロセッサ10dは、
図2に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図2等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、付与装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、分割部131、分類部132、算出部133、データラベル付与部134、更新部135及びセグメントラベル付与部136と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、分割部131、分類部132、算出部133、データラベル付与部134、更新部135及びセグメントラベル付与部136等と同様の処理を実行するプロセスを実行する。プロセッサ10dは、例えば、CPU、MPU、ASIC等のハードウェア回路である。
【0104】
このように付与装置10は、プログラムを読み出して実行することで分類方法を実行する情報処理装置として動作する。また、付与装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、付与装置10によって実行されることに限定されるものではない。例えば、他のコンピュータ又はサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【0105】
このプログラムは、インターネット等のネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【0106】
1S 分析システム
10 付与装置
11 インタフェース部
12 記憶部
13 制御部
20 分析装置
121 分類モデル情報
122 セグメント情報テーブル
131 分割部
132 分類部
133 算出部
134 データラベル付与部
135 更新部
136 セグメントラベル付与部