(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023156029
(43)【公開日】2023-10-24
(54)【発明の名称】系列予測モデルを用いてユーザの行動系列を予測する予測装置、プログラム及び方法
(51)【国際特許分類】
G06Q 10/04 20230101AFI20231017BHJP
【FI】
G06Q10/04
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2022065617
(22)【出願日】2022-04-12
(71)【出願人】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100135068
【弁理士】
【氏名又は名称】早原 茂樹
(72)【発明者】
【氏名】武田 直人
(72)【発明者】
【氏名】西村 康孝
(72)【発明者】
【氏名】南川 敦宣
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA04
5L049CC12
(57)【要約】
【課題】ユーザの行動における概念的行動毎に、系列予測モデルを用いて次のトークンとなる具体的行動を予測する予測装置等を提供する。
【解決手段】データセットは複数の系列データからなり、各系列データは複数のトークンからなり、所定長のトークン列を入力し、次のトークンを予測する予測装置において、複数の系列データの中で最大のトークン数に、制御トークンを加算した数を、系列データの最大長として設定し、系列データ毎に、当該系列データに関連する制御トークンを付与する制御トークン付与手段と、系列データ毎に、最大長に満たない後方にパディングを埋めるパディング手段と、パディングが埋められた系列データ毎に、所定長のトークン列を入力し、次にシフトしたトークン列を予測する系列予測モデルとを有する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
データセットは複数の系列データからなり、各系列データは複数のトークンからなり、所定長のトークン列を入力し、次のトークンを予測する予測装置において、
複数の系列データの中で最大のトークン数に、制御トークンを加算した数を、系列データの最大長として設定し、
系列データ毎に、当該系列データに関連する制御トークンを付与する制御トークン付与手段と、
系列データ毎に、最大長に満たない後方にパディングを埋めるパディング手段と、
パディングが埋められた系列データ毎に、所定長のトークン列を入力し、次にシフトしたトークン列を予測する系列予測モデルと
を有することを特徴とする予測装置。
【請求項2】
制御トークンは、ユーザの概念的行動を表し、
系列データのトークンは、概念的行動を区分した複数の具体的行動を表す
ことを特徴とする請求項1に記載の予測装置。
【請求項3】
ユーザ周辺状態を表す制御コードを出力する制御コード分類モデルを更に有し、
制御トークン付与手段は、制御コード分類モデルから出力された制御コードを、制御トークンとして含める
ことを特徴とする請求項2に記載の予測装置。
【請求項4】
制御コード分類モデルは、ユーザ周辺に配置された1つ以上の環境センサの計測値を入力し、計測値に基づく特徴量を、制御コードとして出力する
ことを特徴とする請求項3に記載の予測装置。
【請求項5】
制御コード分類モデルは、訓練段階として、ユーザ周辺に配置された環境センサの計測値を説明変数とし、ユーザの概念的行動を目的変数として対応付けた教師データを入力し、推定段階として、ユーザ周辺に配置された環境センサの計測値を説明変数として入力し、ユーザの概念的行動及び第1の尤度を出力するものであり、
制御コード分類モデルは、第1の尤度が所定閾値以上となるユーザの概念的行動のみを、制御コードとして出力する
ことを特徴とする請求項4に記載の予測装置。
【請求項6】
系列予測モデルは、推定段階について、第2の尤度を出力するものであり、
当該系列予測モデルが、制御トークンを含むトークン列を入力し、第2の尤度が所定閾値以上となる次のトークン列が出力された際に、入力された当該制御トークンを含むトークン列を説明変数とし、出力された当該次のトークン列を目的変数とした教師データとして更に記憶する
ことを特徴とする請求項5に記載の予測装置。
【請求項7】
系列予測モデルは、第1~nの所定長のトークン列を入力し、正解となる第2~n+1の所定長のトークン列を出力するように訓練すると共に、パディングによって1つの系列データの終了を認識する
ことを特徴とする請求項1から6のいずれか1項に記載の予測装置。
【請求項8】
第1~m(m<n)のアクションが連続する所定長のトークン列の末尾の第nのトークンがパディングとなる場合、第1~m-1のアクションが連続する所定長のトークン列を入力し、正解となる第2~mのアクションが連続する所定長のトークン列を出力するように訓練する
ことを特徴とする請求項7に記載の予測装置。
【請求項9】
系列予測モデルは、出力データのトークン列と、正解データのトークン列との間の誤差を小さくする損失関数を設定する
ことを特徴とする請求項1から6のいずれか1項に記載の予測装置。
【請求項10】
系列データに含まれるトークンは、時系列に並んだものである
ことを特徴とする請求項1から6のいずれか1項に記載の予測装置。
【請求項11】
系列予測モデルは、GPT(Generative Pre-trained Transformer)である
ことを特徴とする請求項1から6のいずれか1項に記載の予測装置。
【請求項12】
データセットは複数の系列データからなり、各系列データは複数のトークンからなり、所定長のトークン列を入力し、次のトークンを予測するようにコンピュータを機能させるプログラムにおいて、
複数の系列データの中で最大のトークン数に、制御トークンを加算した数を、系列データの最大長として設定し、
系列データ毎に、当該系列データに関連する制御トークンを付与する制御トークン付与手段と、
系列データ毎に、最大長に満たない後方にパディングを埋めるパディング手段と、
パディングが埋められた系列データ毎に、所定長のトークン列を入力し、次にシフトしたトークン列を予測する系列予測モデルと
してコンピュータを機能させることを特徴とするプログラム。
【請求項13】
データセットは複数の系列データからなり、各系列データは複数のトークンからなり、所定長のトークン列を入力し、次のトークンを予測する装置の予測方法において、
装置は、
複数の系列データの中で最大のトークン数に、制御トークンを加算した数を、系列データの最大長として設定し、
系列データ毎に、当該系列データに関連する制御トークンを付与する第1のステップと、
系列データ毎に、最大長に満たない後方にパディングを埋める第2のステップと、
系列予測モデルを用いて、パディングが埋められた系列データ毎に、所定長のトークン列を入力し、次にシフトしたトークン列を予測する第3のステップと
を実行することを特徴とする予測方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、系列予測モデルの技術に関する。特に、ユーザの行動系列を予測する用途に関する。
【背景技術】
【0002】
従来、系列予測モデルとして、GPT2(Generative Pre-trained Transformer - 2)モデルがある(例えば非特許文献1参照)。これは、自己教師有りの言語生成モデルであって、大量のコーパスから切り取った単語列(文章)の次の単語(Next word prediction)を予測する。GPT2モデルは、任意の単語列を入力すると、次の単語を逐次予測することができ、人間が書いたような文章を生成することができる。例えば「今日は」「良い」という単語列を入力すると、次の単語として最も確率が高い単語「天気」を出力する。次に、「今日は」「良い」「天気」を入力すると、次の単語として最も確率が高い単語「だ」を出力する。
文章:「今日は」「良い」「天気」「だ」
【0003】
図1は、従来技術におけるGPT2モデルの訓練時のデータ構造を表す説明図である。
【0004】
教師データとして、複数のテキスト(文章)があると想定する。GPT2モデルの内部では、以下のように実行される。
(S1)テキストを単語列に分解し、所定長分の単語を、系列データに詰め込む。
(S2)その際、所定長よりも単語数が少なかった場合、直ぐ次のテキストの単語を、系列データに詰め込む。
(S3)テキストの単語を詰め込む途中で、所定長に達した場合、その後の単語は、次の系列データに詰め込む。
【0005】
図1によれば、以下のように実行される。
テキスト1は、10個の単語(0~9)で構成されており、所定長=14の系列データ1に詰め込む。
ここで、テキスト1の単語数は、所定長よりも少なかったため、系列データ1に、次のテキスト2の単語(0~2)を詰め込む。それでも、系列データ1に空きがあるので、次のテキスト3の単語(0)を詰め込む。途中で切れてしまったテキスト3における残りのトークン(1~5)は、次の系列データ2に詰め込まれる。
このように繰り返して、例えば5つのテキスト1~5は、3つの系列データ1~3に詰め込まれる。
【0006】
図2は、従来技術におけるGPT2モデルの訓練時の処理を表す説明図である。
【0007】
GPT2は、Transformerベースであって、アテンション機構(トークン同士の関連性を示すスコア付け)を有する。各トークンのアテンションは常に、そのトークンよりも前のトークンにかかるような仕組みになっている。これによって、各トークンが、以前のトークンのどこに着目して次の1つのトークンを推定すればよいか、学習することができる。
【0008】
GPT2モデルは、
図1によって構成した教師データを用いて訓練する。
図2によれば、GPT2モデルに入力可能な所定長=14であるとして、入力データと正解データとを対応付けて訓練する。
入力データ列:0,1,2,3,4,5,6,7,8,9,0,1
,2,0
正解データ列: 1,2,3,4,5,6,7,8,9,0,1,2
,0,1
このように、GPT2モデルでは、入力データに対して、正解データは、先頭トークンを削除し、末尾トークンを追加したものとする。
これに対して、結果データ列を出力する。
そして、その結果データ列と、正解データ列との差分を、損失関数(一般的にはcross entropy loss)として表現して、訓練を進める。
【0009】
前述した入力データ及び正解データの例によれば、トークン1を生成するためには、トークン0のみに着目すればよい(そもそもトークン1以前に、トークン0しか着目するものがない)。また、トークン3を生成するには、アテンション機構によって、トークン1に着目すればよい(トークン0,2は無視してもよい)というように学習することもできる。
【0010】
このように、
図2のGPT2モデルは、前述した
図1の系列データ1~3について、先頭の1トークンを削除し且つ末尾の1トークンを追加しながら、訓練を進めることができる。
【0011】
また、他の従来技術として、GPT2モデルでは困難であった文章長を制御する技術もある(例えば非特許文献2参照)。この技術によれば、訓練時に、文章の文頭に「文長を示す値」を追加して訓練する。推定時にも、「文長を示す値」を追加することによって、任意の文章長の文章を生成することができる。
【0012】
更に、文章の予測以外の用途として、ユーザの行動系列を予測する技術もある。この技術によれば、宅内に配置したセンサから、データを常時取得し、ユーザの次の行動を予測する。
宅内のユーザ行動は、一般に、一定時間以上かかるであろう「概念的行動(複雑な行動)」として認識できる。例えば「料理」や「皿洗い」のようなものである。
また、概念的行動は、複数の単純な「具体的行動(アクション)」から時系列に構成される。例えば概念的行動「料理」は、例えば以下のようなアクションの連続からなる。
「台所に近づく」->「冷蔵庫を開ける」->「冷蔵庫を閉める」->「コンロを点ける」
【0013】
ここで、早期のタイミング(時点t)で、ユーザの次の行動の系列を予測することができれば、例えば宅内の機器をユーザの行動に先立って最適に制御することができる。例えばユーザの行動に先立って、電気を点けたりすることができる。また、終了時に、ユーザが取らなかった行動(コンロを消していない)を補完して、制御する(コンロを消す)こともできる。
【先行技術文献】
【非特許文献】
【0014】
【非特許文献1】A. Radford, J. Wu, R. Child, D. Luan, D. Amodei, and I. Sutskever. Language Models are Unsupervised Multitask Learners, 2019, pp.1-24.、[online]、[令和4年4月8日検索]、インターネット<URL:https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf>
【非特許文献2】長塚光一, 渥美雅保 , 文長制御のための条件付き言語モデル, 2020年度人工知能学会全国大会 (JSAI2020), 2020, pp. 1-4
【発明の概要】
【発明が解決しようとする課題】
【0015】
ユーザの行動系列を予測するために、前述したGPT2を適用することもできる。その場合、ユーザの概念的行動は、GPT2のテキストに相当し、ユーザの具体的行動(アクション)は、GPT2のトークンに相当する。センサによって観測されたデータであっても、単語列と同等と考えて適用することができる。
【0016】
しかしながら、ユーザの行動系列では、概念的行動毎に終了を判断する必要があるのに対し、GPT2をそのまま適用すると、系列データを延々と生成し続けるという課題が生じる。勿論、非特許文献2のように系列長を同時に学習させることもできるが、ユーザの行動系列の場合、その系列長を予め特定することができない。勿論、系列長を既知として固定することもできるが、多様且つリアルタイムなユーザの行動に適用することは、現実的ではない。
【0017】
即ち、ユーザの行動系列の予測に、GPT2のデータ構造をそのまま適用した場合、以下のような課題が生じる。
(1)連続する概念的行動の間では関連性が無い場合がある。
従来技術によれば、前述した
図1のように、複数の系列データを連続して詰め込むこととなる。しかしながら、前後の系列データ同士の間に関連性が無い場合、前段の系列データのトークンから後段の系列データのトークンを予測することとなる。特に、異なる概念的行動の間に関連性が無い場合も多い。また、GPT2としては、トークンとしての具体的行動(アクション)の時系列を予測しているに過ぎず、概念的行動毎に予測しているわけではない。
【0018】
(2)ユーザの概念的行動を認識できない。
1つの具体的行動(アクション)しか明示されていない場合、複数の概念的行動が候補となり得る。最初は具体的行動「台所に近づく」で同じであっても、概念的行動「料理」及び「皿洗い」の違いによって、その後の具体的行動の系列も異なってくる。
【0019】
(3)ユーザの行動系列における概念的行動の終了を予測できない。
GPT2モデルを適用した場合、系列データの終了を認識しないために、延々と系列データを生成し続けてしまう。
【0020】
そこで、本発明によれば、ユーザの行動における概念的行動を認識した上で、系列予測モデルを用いて次のトークンとなる具体的行動を予測することができる予測装置、プログラム及び方法を提供することを目的とする。
【課題を解決するための手段】
【0021】
本発明によれば、データセットは複数の系列データからなり、各系列データは複数のトークンからなり、所定長のトークン列を入力し、次のトークンを予測する予測装置において、
複数の系列データの中で最大のトークン数に、制御トークンを加算した数を、系列データの最大長として設定し、
系列データ毎に、当該系列データに関連する制御トークンを付与する制御トークン付与手段と、
系列データ毎に、最大長に満たない後方にパディングを埋めるパディング手段と、
パディングが埋められた系列データ毎に、所定長のトークン列を入力し、次にシフトしたトークン列を予測する系列予測モデルと
を有することを特徴とする。
【0022】
本発明の予測装置における他の実施形態によれば、
制御トークンは、ユーザの概念的行動を表し、
系列データのトークンは、概念的行動を区分した複数の具体的行動を表す
ことも好ましい。
【0023】
本発明の予測装置における他の実施形態によれば、
ユーザ周辺状態を表す制御コードを出力する制御コード分類モデルを更に有し、
制御トークン付与手段は、制御コード分類モデルから出力された制御コードを、制御トークンとして含める
ことも好ましい。
【0024】
本発明の予測装置における他の実施形態によれば、
制御コード分類モデルは、ユーザ周辺に配置された1つ以上の環境センサの計測値を入力し、計測値に基づく特徴量を、制御コードとして出力する
ことも好ましい。
【0025】
本発明の予測装置における他の実施形態によれば、
制御コード分類モデルは、訓練段階として、ユーザ周辺に配置された環境センサの計測値を説明変数とし、ユーザの概念的行動を目的変数として対応付けた教師データを入力し、推定段階として、ユーザ周辺に配置された環境センサの計測値を説明変数として入力し、ユーザの概念的行動及び第1の尤度を出力するものであり、
制御コード分類モデルは、第1の尤度が所定閾値以上となるユーザの概念的行動のみを、制御コードとして出力する
ことも好ましい。
【0026】
本発明の予測装置における他の実施形態によれば、
系列予測モデルは、推定段階について、第2の尤度を出力するものであり、
当該系列予測モデルが、制御トークンを含むトークン列を入力し、第2の尤度が所定閾値以上となる次のトークン列が出力された際に、入力された当該制御トークンを含むトークン列を説明変数とし、出力された当該次のトークン列を目的変数とした教師データとして更に記憶する
ことも好ましい。
【0027】
本発明の予測装置における他の実施形態によれば、
系列予測モデルは、第1~nの所定長のトークン列を入力し、正解となる第2~n+1の所定長のトークン列を出力するように訓練すると共に、パディングによって1つの系列データの終了を認識する
ことも好ましい。
【0028】
本発明の予測装置における他の実施形態によれば、
第1~m(m<n)のアクションが連続する所定長のトークン列の末尾の第nのトークンがパディングとなる場合、第1~m-1のアクションが連続する所定長のトークン列を入力し、正解となる第2~mのアクションが連続する所定長のトークン列を出力するように訓練する
ことも好ましい。
【0029】
本発明の予測装置における他の実施形態によれば、
系列予測モデルは、出力データのトークン列と、正解データのトークン列との間の誤差を小さくする損失関数を設定する
ことも好ましい。
【0030】
本発明の予測装置における他の実施形態によれば、
系列データに含まれるトークンは、時系列に並んだものである
ことも好ましい。
【0031】
本発明の予測装置における他の実施形態によれば、
系列予測モデルは、GPT(Generative Pre-trained Transformer)である
ことも好ましい。
【0032】
本発明によれば、データセットは複数の系列データからなり、各系列データは複数のトークンからなり、所定長のトークン列を入力し、次のトークンを予測するようにコンピュータを機能させるプログラムにおいて、
複数の系列データの中で最大のトークン数に、制御トークンを加算した数を、系列データの最大長として設定し、
系列データ毎に、当該系列データに関連する制御トークンを付与する制御トークン付与手段と、
系列データ毎に、最大長に満たない後方にパディングを埋めるパディング手段と、
パディングが埋められた系列データ毎に、所定長のトークン列を入力し、次にシフトしたトークン列を予測する系列予測モデルと
してコンピュータを機能させることを特徴とする。
【0033】
本発明によれば、データセットは複数の系列データからなり、各系列データは複数のトークンからなり、所定長のトークン列を入力し、次のトークンを予測する装置の予測方法において、
装置は、
複数の系列データの中で最大のトークン数に、制御トークンを加算した数を、系列データの最大長として設定し、
系列データ毎に、当該系列データに関連する制御トークンを付与する第1のステップと、
系列データ毎に、最大長に満たない後方にパディングを埋める第2のステップと、
系列予測モデルを用いて、パディングが埋められた系列データ毎に、所定長のトークン列を入力し、次にシフトしたトークン列を予測する第3のステップと
を実行することを特徴とする。
【発明の効果】
【0034】
本発明における予測装置、プログラム及び方法によれば、ユーザの行動における概念的行動を認識した上で、系列予測モデルを用いて次のトークンとなる具体的行動を予測することができる。
【図面の簡単な説明】
【0035】
【
図1】従来技術におけるGPT2モデルの訓練時のデータ構造を表す説明図である。
【
図2】従来技術におけるGPT2モデルの訓練時の処理を表す説明図である。
【
図3】本発明における予測装置の機能構成図である。
【
図5】本発明における制御コード分類モデルの説明図である。
【
図6】本発明における予測装置の訓練時の処理を表す第1の説明図である。
【
図7】本発明における予測装置の訓練時の処理を表す第2の説明図である。
【発明を実施するための形態】
【0036】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【0037】
図3は、本発明における予測装置の機能構成図である。
【0038】
図3によれば、予測装置1は、制御トークン付与部11と、パディング部12と、系列予測モデル13と、制御コード分類モデル14とを有する。また、環境センサを適用するために、計測値収集部101と、系列データ生成部102とを更に有する。これら機能構成部は、予測装置に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。また、これら機能構成部の処理の流れは、予測方法としても理解できる。
【0039】
ユーザ周辺には、IoT(Internet of Things)機器として、多種多様な環境センサが配置されている。環境センサとしては、例えば位置センサ、温度センサ、照度センサ、動きセンサ、冷蔵庫センサ、振動センサ、電力センサ、水道センサなどがある。また、計測値として、日時刻も含むものであってもよい。更に、気象サーバから受信した天候情報も含むものであってもよい。
本発明の実施形態としては、ユーザの行動に基づく直近過去の環境センサの計測値から、そのユーザの次の行動を、できる限り高い精度で予測しようとするものである。
【0040】
[計測値収集部101]
計測値収集部101は、複数の環境センサから計測値を収集する。収集した計測値は、系列データ生成部102へ出力される。また、制御コード分類モデル14に出力するものであってもよい。これら計測値は、ユーザの行動を表す一部と認識できる。
【0041】
[系列データ生成部102]
系列データ生成部102は、環境センサの計測値に基づいて、概念的行動のデータセットとしての「系列データ」を生成する。本発明における系列データは、概念的行動毎に区分した複数の具体的行動(アクション)を含む「トークン」からなる。
【0042】
図3によれば、例えば1つの概念的行動「料理」は、以下のように時系列の具体的行動(アクション)からなる。
t1:「台所に近づく」
t2:「冷蔵庫を開ける」
t3:「冷蔵庫を閉める」
t4:「コンロを点ける」
・・・・・・
具体的行動(アクション)毎の情報は、センサから取得された計測値に基づくものである。
【0043】
そして、具体的行動(アクション)毎に、「トークン」に含められる。トークンは、具体的行動(アクション)を含む情報単位となる。複数のトークンを時系列に並べて、1つの「系列データ」を構成する。系列データは、時系列の複数の具体的行動(アクション)からなる「概念的行動」を意味する情報単位となる。
【0044】
【0045】
系列データ生成部102は、複数の系列データの中で最大のトークン数に、制御トークンを加算した数を、系列データの「最大長」として設定する。
最大長=(複数の系列データの中で最大のトークン数)+(制御トークンの数)
尚、制御トークンの数は、基本的に1とするが、勿論、2以上であってもよい。
【0046】
図4によれば、系列データ1~5の中で、系列データ4がデータ長=16で最も長い。また、制御トークンの数を1とした場合、以下のように、系列データの最大長=17と設定する。
最大長17=複数の系列データの中で最大のトークン数16+制御トークンの数1
【0047】
即ち、概念的行動毎に、1つの系列データとして構成する。これによって、全ての系列データのトークン数を統一すると共に、1つの系列データの複数のトークンが、異なる系列データに分割されないようにする。
【0048】
[制御トークン付与部11]
制御トークン付与部11は、系列データ毎に、当該系列データに関連する「制御トークン」を付与する。
制御トークンは、ユーザの「概念的行動」を表す。
制御トークンに含める制御コードは、ユーザによって指定されたものであってもよいし、制御コード分類モデル14から出力されたものであってもよい。制御コードは、ユーザの概念的行動に応じて、ユーザ周辺状態を表す情報に基づくものである。
【0049】
概念的行動を最初に明確にすることは、その後の具体的行動の時系列の予測精度を高めることとなる。例えば概念的行動「料理」であれば、「台所に近づく」の次に「冷蔵庫を開ける」ことが予測されやすくなるであろう。また、概念的行動「皿洗い」であれば、「台所に近づく」の次に「蛇口をひねる」ことが予測されやすくなるであろう。そのように、概念的行動をトークンに含めることによって、時系列の具体的行動を予測しやすくなる。
【0050】
[パディング部12]
パディング部12は、系列データ毎に、最大長に満たない後方にパディングを埋める。パディングによって、概念的行動の系列の終了を明示する。
図4によれば、例えば以下ようにパディングが埋め込まれる。
系列データ1については、1個の制御トークンと、10個のトークン(0~9)とを埋め込む。そして、最大長=17に満たない後方の6個のトークンにパディングを埋める。
系列データ2については、1個の制御トークンと、3個のトークン(0~2)とを埋め込む。そして、最大長=17に満たない後方の13個のトークンにパディングを埋める。
系列データ3については、1個の制御トークンと、6個のトークン(0~5)とを埋め込む。そして、最大長=17に満たない後方の10個のトークンにパディングを埋める。
系列データ4については、1個の制御トークンと、16個のトークン(0~15)とを埋め込む。
系列データ5については、1個の制御トークンと、5個のトークン(0~4)とを埋め込む。そして、最大長=17に満たない後方の11個のトークンにパディングを埋める。
【0051】
図5は、本発明における制御コード分類モデルの説明図である。
【0052】
[制御コード分類モデル14]
制御コード分類モデル14は、ユーザ周辺状態を表す「制御コード」を出力する。ユーザ周辺情報は、環境センサから受信した計測値であってもよい。
また、制御コード分類モデル14は、所定時間(例えば30秒毎)毎に、多種多様な環境センサ(動きセンサや開閉センサ等)から収集した1つ以上の計測値に応じて、制御コードを推定し続ける。
【0053】
制御コード分類モデル14の実施形態として、例えば以下のような制御コードを出力する。
<第1の実施形態:特徴量となる制御コードの出力>
<第2の実施形態:概念的行動となる制御コードの出力>
【0054】
<第1の実施形態:特徴量となる制御コードの出力>
制御コード分類モデル14は、ユーザ周辺に配置された1つ以上の環境センサの計測値を入力し、計測値に基づく特徴量(feature)を、制御コードとして出力する。例えばニューラルネットワークを用いた時系列の特徴量を出力するものであってもよい。
図5によれば、例えば冷蔵庫センサによってドアの開閉が検出され、電力センサによってコンロの電力が検出される場合、制御コード分類モデル14から抽出される特徴量は、例えば概念的行動「料理」を意味するかもしれない。
また、例えば振動センサによって台所の振動が検出され、水道センサによって水道の使用が検出される場合、制御コード分類モデル14から抽出される特徴量は、例えば概念的行動「皿洗い」を意味するかもしれない。
即ち、トークンは、系列データの概念的行動として進行中の具体的行動を意味し、環境センサの計測値と何らかの関連性を持つと考えられる。
【0055】
<第2の実施形態:概念的行動となる制御コードの出力>
制御コード分類モデル14は、教師有り学習エンジンであって、例えば以下のように機能する。
(訓練段階)ユーザ周辺に配置された「1つ以上の環境センサの計測値」を説明変数とし、ユーザの「概念的行動」を目的変数として対応付けた教師データを入力して、訓練する。
(推定段階)ユーザ周辺に配置された「1つ以上の環境センサの計測値」を説明変数として入力し、ユーザの「概念的行動」及び「第1の尤度」を出力する。
そして、制御コード分類モデル14は、第1の尤度が所定閾値以上となるユーザの概念的行動のみを、制御コードとして出力する。第1の尤度を判定することによって、推定の確信度の高い制御コードのみを出力することができる。
【0056】
制御コード分類モデル14から第1の尤度を出力するために、例えばLightGBM(Light Gradient Boosting Machine)や多層パーセプトロン(Multilayer perceptron)を利用することができる。LightGBMとは、決定木アルゴリズムに基づいた勾配ブースティング(Gradient Boosting)の機械学習エンジンである。多層パーセプトロンとは、少なくとも3つの層からなる順伝播型ニューラルネットワークの機械学習エンジンである。
【0057】
[系列予測モデル13]
系列予測モデル13は、パディングが埋められた系列データ毎に、所定長nのトークン列を入力し、次にシフトしたトークン列を予測する。
所定長nは、系列予測モデル13に入力可能なデータ長であって、前述した最大長以下(n≦max_length)となるものである。所定長nは、系列予測モデルに依存するものである。
【0058】
系列予測モデル13自体は、GPT2モデルであってもよい。本発明によれば、既存の言語生成モデルを、ユーザの行動予測に適用する。
【0059】
系列予測モデル13は、第1~nの所定長のトークン列を入力し、正解となる第2~n+1の所定長のトークン列を出力するように訓練すると共に、パディングによって1つの系列データの終了を認識する。
本発明によれば、ユーザの概念的行動(系列データ)毎に、その終了を認識することが重要となるが、終了までのトークン数は異なる。本発明は、文章のように先出したトークンから延々に予測するものではなく、具体的行動(アクション)単位で、ユーザの次の具体的行動を予測し、概念的行動毎に異なる行動の終了タイミングまでを予測するものとする。
【0060】
図6は、本発明における予測装置の訓練時の処理を表す第1の説明図である。
【0061】
図6によれば、例えば系列予測モデル13は、所定長=14として、以下のように訓練される。
入力データのトークン列:F,0,1,2,3,4,5,6,7,8,9,10,11,12
正解データのトークン列: 0,1,2,3,4,5,6,7,8,9,10,11,12,13
出力データのトークン列: *,*,*,*,*,*,*,*,*,*, *, *, *, *
この場合、正解データの末尾のトークン13を予測するように学習する。
【0062】
系列予測モデル13は、予測データとしての出力データのトークン列と、正解データのトークン列との間の誤差を小さくする損失関数を設定する。損失関数としては、例えばクロスエントロピー(Cross entropy)誤差であってもよい。
これによって、出力データのトークン列が、正解データのトークン列との誤差が小さくなるように訓練される。
【0063】
図6によれば、制御トークンFを含むトークン0~12から、トークン13のみを予測する。概念的行動を表す制御トークンと、トークン0~12とを関連付けて学習することができる。また、予測されるトークン13も、概念的行動を表す制御トークンと、トークン0~12とに基づいて予測することができる。
【0064】
尚、
図6によれば、トークン13のみを予測するべく訓練しているように見えるが、系列予測モデル13の内部として、トークン0が入力されただけで、次のトークン1を予測することとができるように学習する。また、トークン0,1が入力されると、次のトークン2を予測することができるように学習する。これを繰り返すと、最終的に、トークンF,0,1,2,3,4,5,6,7,8,9,10,11,12を入力すると、トークン13を予測することができる。
【0065】
図7は、本発明における予測装置の訓練時の処理を表す第2の説明図である。
【0066】
図7によれば、入力データのトークン列の末尾が、パディングとなるものである。
<系列データのトークン列:F,0,1,2,3,4,5,6,7,8,9,P,P,P> 所定長n=14
入力データのトークン列:F,0,1,2,3,4,5,6,7,8,P,P,P,P,
正解データのトークン列: 0,1,2,3,4,5,6,7,8,9,P,P,P,P
出力データのトークン列: *,*,*,*,*,*,*,*,*,*,*,*,*,*
【0067】
ここで、第1~m(m<n)のアクションが連続する所定長のトークン列の末尾の第nのトークンがパディングとなっている場合、第1~m-1のアクションが連続する所定長のトークン列を入力し、正解となる第2~mのアクションが連続する所定長のトークン列を出力するように訓練する。
【0068】
前述の例によれば、系列データ1におけるアクションのトークン列は、0~9の10個(m=10)であり、所定長n(=14)よりも短くなるために、末尾がパディングとなっている。この場合、第1~m-1(トークン0~8)のアクションが連続する所定長nのトークン列を入力し、正解となる第2~m(トークン1~9)のアクションが連続する所定長nのトークン列を出力するように訓練する。
これは、系列予測モデル13に対して、パディング前の最後のトークン9を予測するように訓練することを意味する。最終的に、系列予測モデル13が、パディングしか予測しなくなった場合に、1つの概念的行動の予測が完了したものとする。
【0069】
<教師データの更なる蓄積について>
系列予測モデル13は、推定段階について、第2の尤度を出力するとする。
ここで、当該系列予測モデル13が、制御トークンを含むトークン列を入力し、第2の尤度が所定閾値以上となる次のトークン列が出力された際に、入力された当該制御トークンを含むトークン列(概念的行動の制御トークン+時系列の具体的行動のトークン列)を説明変数とし、出力された当該次のトークン列(時系列の具体的行動のトークン列)を目的変数とした教師データとして更に記憶する。所定閾値を、尤度の信頼性指標とする。
制御トークンは、ユーザの概念的行動に基づくものであるので、系列予測モデル13は、訓練段階について、更新された教師データによって再訓練することができる。
これによって、教師データを増加させていき、系列予測モデル13の精度を高めることができる。
【0070】
以上、詳細に説明したように、本発明における予測装置、プログラム及び方法によれば、ユーザの行動における概念的行動を認識した上で、系列予測モデルを用いて次のトークンとなる具体的行動を予測することができる。
【0071】
尚、これにより、「宅内機器から収集されたユーザの行動に基づくビッグデータの利用が促進する」ことから、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【0072】
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【0073】
1 予測装置
101 計測値収集部
102 系列データ生成部
11 制御トークン付与部
12 パディング部
13 系列予測モデル
14 制御コード分類モデル