(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】予測装置、学習装置、予測方法、学習方法およびプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241106BHJP
【FI】
G06N20/00
(21)【出願番号】P 2023523937
(86)(22)【出願日】2021-05-28
(86)【国際出願番号】 JP2021020539
(87)【国際公開番号】W WO2022249483
(87)【国際公開日】2022-12-01
【審査請求日】2023-10-25
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】山本 修平
(72)【発明者】
【氏名】倉島 健
(72)【発明者】
【氏名】戸田 浩之
(72)【発明者】
【氏名】冨永 登夢
【審査官】新井 則和
(56)【参考文献】
【文献】特開2019-036116(JP,A)
【文献】特開2015-184764(JP,A)
【文献】特開平05-346915(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
予測対象の過去の行動系列データに基づいて特徴量を抽出し、行動特徴データを出力する特徴量抽出部と、
行動系列を予測するための学習済みの行動系列予測モデルを用いて、前記行動特徴データに基づく前記予測対象の未来の行動系列を予測する行動系列予測部と、
気分系列を予測するための学習済みの気分系列予測モデルを用いて、前記行動特徴データおよび前記予測対象の過去の気分系列データに基づく前記予測対象の未来の気分系列を予測する気分系列予測部と、を備える、
予測装置。
【請求項2】
学習対象の行動系列データに基づいて特徴量を抽出し、行動特徴データを出力する特徴量抽出部と、
気分系列を予測するための気分系列予測モデルを構築する気分系列予測モデル構築部と、
構築された前記気分系列予測モデルのパラメータを、前記行動特徴データおよ
び過去の気分系列データに基づいて更新する気分系列予測モデル学習部と、を備
え、
前記気分系列予測モデル学習部は、学習用データとして抽出した未来の行動特徴データにノイズを加えた行動特徴データに基づいて、前記パラメータを更新する、
学習装置。
【請求項3】
行動系列を予測するための行動系列予測モデルを構築する行動系列予測モデル構築部と、
前記行動特徴データに基づいて、前記行動系列予測モデルのパラメータを更新する行動系列予測モデル学習部と、をさらに備える、
請求項
2に記載の学習装置。
【請求項4】
前記行動系列予測モデル学習部は、前記行動系列予測モデルが備えるネットワークで得られる平均と分散の値を用いて、出力の行動系列データに対する負の対数尤度を計算し、計算結果に基づいて前記パラメータを更新する、
請求項
3に記載の学習装置。
【請求項5】
予測装置が実行する予測方法であって、
予測対象の過去の行動系列データに基づいて特徴量を抽出し、行動特徴データを出力するステップと、
行動系列を予測するための学習済みの行動系列予測モデルを用いて、前記行動特徴データに基づく前記予測対象の未来の行動系列を予測するステップと、
気分系列を予測するための学習済みの気分系列予測モデルを用いて、前記行動特徴データおよび前記予測対象の過去の気分系列データに基づく前記予測対象の未来の気分系列を予測するステップと、を備える、
予測方法。
【請求項6】
学習装置が実行する学習方法であって、
学習対象の行動系列データに基づいて特徴量を抽出し、行動特徴データを出力するステップと、
気分系列を予測するための気分系列予測モデルを構築するステップと、
構築された前記気分系列予測モデルのパラメータを、前記行動特徴データおよ
び過去の気分系列データに基づいて更新するステップと、を備
え、
前記更新するステップは、学習用データとして抽出した未来の行動特徴データにノイズを加えた行動特徴データに基づいて、前記パラメータを更新する、
学習方法。
【請求項7】
コンピュータを、請求項1に記載の予測装置における各部として機能させるためのプログラム、または、コンピュータを、請求項2から
4のいずれか1項に記載の学習装置における各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、予測装置、学習装置、予測方法、学習方法およびプログラムに関する。
【背景技術】
【0002】
スマートウォッチやフィットネストラッカー、スマートフォンなどに代表されるウェアラブルセンサの普及に伴い、ユーザの生体情報や行動ログ(以下行動データ)を容易に記録できるようになった。これらの行動データとユーザの自己評価によって得られる心理状態(気分、感情、ストレス度など)を詳細に分析することは、様々な用途に役立つ。例えば、スマートウォッチを通じて取得されたユーザの行動データの履歴を利用して、今日のストレス度を数値として推定したり、将来の気分を予測したりできれば、ユーザの心理状態の改善に有効な行動の推奨など様々な用途で役立てられる。
【0003】
例えば、非特許文献1には、このような行動データからユーザの心理状態を自動推定する技術として、得られているデータを離散化してヒストグラムに変換し、確率的生成モデルによって健康度合やストレス度を推定する技術が開示されている。また、非特許文献2には、スマートフォンから取得される操作ログやスクリーンタイムの日々の系列データを用いて、翌日の心理状態を回帰する技術が開示されている。また、非特許文献3には、過去の行動データの系列から将来の気分データの系列を予測する技術が開示されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】E. Nosakhare and R. Picard: Probabilistic Latent Variable Modeling for Assessing Behavioral Influences on Well-Being. In Proc. of KDD, 2019.
【文献】S. Yan et al.: Estimating Individualized Daily Self-Reported Affect with Wearable Sensors. In Proc. of ICHI, 2019.
【文献】D. Spathis, S. Servia-Rodriguez, K. Farrahi, C. Mascolo, and J. Rentflow: Sequence Multi-task Learning to Forecast Mental Wellbeing from Sparse Self-reported Data. In Proc. of KDD, 2019.
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところが、従来は、日単位でデータを分離して統計的に処理しているため、日時による時系列的なユーザの気分や感情の変動を考慮できていなかった。例えば、非特許文献2に開示された方法では、一日の中で何度も投稿される気分データを数値化し平均値に変換してから、翌日の気分の平均値を予測する。しかし、人間の気分は一日の中でも上下するため、平均値を予測するだけでは気分の変動をユーザに提示することができない。
【0006】
また、非特許文献3に開示された方法では、将来自分が行う行動の影響を考慮できない。例えば翌日、自分にとって都合の悪い行動(ネガティブなイベントなど)を控えていれば、それに影響を受けてネガティブな気分になるユーザもいると考えられる。したがって、従来の技術では、未来の気分の時系列的な変動を予測することが難しいという問題がある。
【0007】
開示の技術は、予測対象の未来の気分の時系列的な変動を予測することを目的とする。
【課題を解決するための手段】
【0008】
開示の技術は、予測対象の過去の行動系列データに基づいて特徴量を抽出し、行動特徴データを出力する特徴量抽出部と、行動系列を予測するための学習済みの行動系列予測モデルを用いて、前記行動特徴データに基づく前記予測対象の未来の行動系列を予測する行動系列予測部と、気分系列を予測するための学習済みの気分系列予測モデルを用いて、前記行動特徴データおよび前記予測対象の過去の気分系列データに基づく前記予測対象の未来の気分系列を予測する気分系列予測部と、を備える予測装置である。
【発明の効果】
【0009】
予測対象の未来の気分の時系列的な変動を予測することができる。
【図面の簡単な説明】
【0010】
【
図3】学習処理の流れの一例を示すフローチャートである。
【
図4】予測処理の流れの一例を示すフローチャートである。
【
図6】前処理済み行動特徴データの一例を示す図である。
【
図8】前処理済み気分系列データの一例を示す図である。
【
図9】行動データ前処理の流れの一例を示すフローチャートである。
【
図10】特徴量抽出処理の流れの一例を示すフローチャートである。
【
図11】気分データ前処理の流れの一例を示すフローチャートである。
【
図12】行動系列予測モデルの一例を示す図である。
【
図13】行動系列予測モデル学習処理の流れの一例を示すフローチャートである。
【
図14】行動系列予測モデルDBおよび気分系列予測モデルDBの一例を示す図である。
【
図15】気分系列予測モデルの一例を示す図である。
【
図16】気分系列予測モデル学習処理の流れの一例を示すフローチャートである。
【
図17】行動系列予測処理の流れの一例を示すフローチャートである。
【
図18】気分系列予測処理の流れの一例を示すフローチャートである。
【
図19】コンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【0012】
(本実施の形態の概要)
本実施の形態に係る予測装置は、予測対象(人物、動物等)の行動データから特徴量を抽出して行動系列予測モデルを用いて行動系列を予測し、予測された行動系列と過去の気分データに基づいて、気分系列予測モデルを用いて、予測対象の未来の気分系列データを出力する。
【0013】
行動系列データは、行動の時系列的な変動を示すデータである。また、気分系列データは、気分の時系列的な変動を示すデータである。
【0014】
また、本実施の形態に係る学習装置は、学習対象(人物、動物等)の行動データ、気分データ等を含む学習用データに基づく機械学習によって、行動系列予測モデルおよび気分系列予測モデルのパラメータを更新する。
【0015】
(学習装置の機能構成例)
図1は、学習装置の機能構成図である。学習装置10は、行動系列データDB101と、気分系列データDB102と、行動データ前処理部103と、気分データ前処理部104と、特徴量抽出部105と、行動系列予測モデル構築部106と、行動系列予測モデル学習部107と、気分系列予測モデル学習部108と、気分系列予測モデル構築部109と、行動系列予測モデルDB110と、気分系列予測モデルDB111と、を備える。
【0016】
行動系列データDB101は、行動系列データが格納される。行動系列データは、学習対象の過去の行動を時系列に示すデータである。行動系列データの具体例については後述する。
【0017】
気分系列データDB102は、気分系列データが格納される。気分系列データは、学習対象の過去の気分を時系列に示すデータである。気分系列データの具体例については後述する。
【0018】
行動系列データDB101および気分系列データDB102は、データが記録された日時情報で対応付けがとれるように予め構築されている。また、気分系列データDB102には、学習対象が自己報告したその時点での気分を表す2種類の数値、感情価(Valence)と覚醒価(Arousal)が格納されている。ここで感情価とは、そのときの感情のポジティブさとネガティブさの度合いを表す。また、覚醒価とは感情の興奮度合いを表す。
【0019】
このように構成される気分系列データは、例えばPhotographic Affect Meter(PAM)(参考文献[1])などの公知の技術を用いてユーザに回答してもらえばよい。気分系列データDB102の構築処理については、例えば対象ユーザによって気分の自己評価結果が入力され、その入力結果をデータベースに格納するようにすればよい。
【0020】
行動データ前処理部103は、学習対象の行動系列データに前処理を施す。具体的には、行動データ前処理部103は、学習対象の行動系列データから事前に指定された種別の行動系列データを抽出し、抽出した各行動系列データの列について走査し、欠損値や想定していない値が含まれている場合、別の値に置き換える。なお、前処理が不要な場合には、行動データ前処理部103は、前処理を行わなくても良い。
【0021】
気分データ前処理部104は、学習対象の気分系列データに前処理を施す。具体的には、気分データ前処理部104は、学習対象の気分系列データを事前に指定された時間範囲ごとに分割したデータ群ごとにデータを集計する。なお、前処理が不要な場合には、気分データ前処理部104は、前処理を行わなくても良い。
【0022】
特徴量抽出部105は、前処理済みの行動系列データを事前に指定された時間範囲ごとに分割したデータ群ごとにデータを集計し、集計されたデータを行動特徴データとする。
【0023】
行動系列予測モデル構築部106は、行動特徴データを入力として、予測された行動系列データの平均と分散とを出力するための行動系列予測モデルを構築する。
【0024】
行動系列予測モデル学習部107は、機械学習によって行動系列予測モデルのパラメータを更新する。
【0025】
気分系列予測モデル学習部108は、機械学習によって気分系列予測モデルのパラメータを更新する。
【0026】
気分系列予測モデル構築部109は、行動特徴データと、予測された行動系列データと、前処理済みの気分系列データを入力として、予測された気分系列データを出力するための気分系列予測モデルを構築する。
【0027】
行動系列予測モデルDB110には、行動系列予測モデルがパラメータとともに格納される。行動系列予測モデルDB110は、行動系列予測モデルを記憶する行動系列予測モデル記憶部の一例である。
【0028】
気分系列予測モデルDB111には、気分系列予測モデルがパラメータとともに格納される。気分系列予測モデルDB111は、気分系列予測モデルを記憶する気分系列予測モデル記憶部の一例である。
【0029】
(予測装置の機能構成例)
図2は、予測装置の機能構成図である。予測装置20は、行動データ前処理部201と、気分データ前処理部202と、特徴量抽出部203と、行動系列予測モデルDB204と、行動系列予測部205と、気分系列予測モデルDB206と、気分系列予測部207と、を備える。
【0030】
行動データ前処理部201は、予測対象の過去の行動系列データに対して、学習装置10の行動データ前処理部103と同様の処理を行う。すなわち、行動データ前処理部201は、予測対象の過去の行動系列データから事前に指定された種別の行動系列データを抽出し、抽出した各行動系列データの列について走査し、欠損値や想定していない値が含まれている場合、別の値に置き換える。
【0031】
気分データ前処理部202は、予測対象の過去の気分系列データに対して、学習装置10の気分データ前処理部104と同様の処理を行う。すなわち、気分データ前処理部202は、予測対象の過去の気分系列データを事前に指定された時間範囲ごとに分割したデータ群ごとにデータを集計する。
【0032】
特徴量抽出部203は、学習装置10の特徴量抽出部105と同様の処理を行う。すなわち、特徴量抽出部203は、前処理済みの行動系列データを事前に指定された時間範囲ごとに分割したデータ群ごとにデータを集計し、集計されたデータを行動特徴データとする。
【0033】
行動系列予測モデルDB204は、学習装置10の行動系列予測モデル構築部106によって構築された行動系列予測モデルがパラメータとともに格納される。格納されるパラメータは、学習装置10の行動系列予測モデル学習部107によって更新されたパラメータである。
【0034】
行動系列予測部205は、行動系列予測モデルを用いて、行動特徴データに基づく予測対象の未来の行動系列を予測する。
【0035】
気分系列予測モデルDB206は、学習装置10の気分系列予測モデル構築部109によって構築された気分系列予測モデルがパラメータとともに格納される。格納されるパラメータは、学習装置10の気分系列予測モデル学習部108によって更新されたパラメータである。
【0036】
気分系列予測部207は、気分系列予測モデルを用いて、行動特徴データおよび前処理済みの気分系列データに基づく予測対象の未来の気分系列を予測する。
【0037】
(学習装置の動作例)
次に、学習装置10の動作例について、図面を参照して説明する。学習装置10は、ユーザの操作等を受けて、または定期的に、学習処理を開始する。
【0038】
図3は、学習処理の流れの一例を示すフローチャートである。行動データ前処理部103が行動系列データDB101から行動系列データを受け取り処理する(ステップS100)。次に、特徴量抽出部105が行動データ前処理部103から前処理済み行動系列データを受け取り処理する(ステップS110)。
【0039】
続いて、気分データ前処理部104が気分系列データDB102から気分系列データを受け取り処理する(ステップS120)。次に、行動系列予測モデル構築部106が、行動系列予測モデルを構築する(ステップS130)。続いて、行動系列予測モデル学習部107が、特徴量抽出部105から行動特徴データを受け取り、行動系列予測モデルを学習し、学習済みの行動系列予測モデルを行動系列予測モデルDB110に出力する(ステップS140)。
【0040】
次に、気分系列予測モデル構築部109が気分系列予測モデルを構築する(ステップS150)。気分系列予測モデル学習部108が特徴量抽出部105から行動特徴データ、気分データ前処理部104から前処理済み気分系列データ、気分系列予測モデル構築部109から気分系列予測モデルを受け取り、気分系列予測モデルを学習し、学習済みの気分系列予測モデルを気分系列予測モデルDB111に出力する(ステップS160)。
【0041】
(予測装置の動作例)
次に、予測装置20の動作例について、図面を参照して説明する。予測装置20は、ユーザの操作等を受けて、または定期的に、予測処理を開始する。
【0042】
図4は、予測処理の流れの一例を示すフローチャートである。行動データ前処理部201が入力として予測対象の過去の行動系列データを受け取り処理する(ステップS200)。次に、特徴量抽出部203が行動データ前処理部201から前処理済み行動系列データを受け取り処理する(ステップS210)。
【0043】
続いて、行動系列予測部205が特徴量抽出部203から行動特徴データを受け取り処理する(ステップS220)。次に、気分データ前処理部202が入力として予測対象の過去の気分系列データを受け取り処理する(ステップS230)。
【0044】
そして、気分系列予測部207が、特徴量抽出部203から行動特徴データ、行動系列予測部205から予測された未来の行動系列データ、気分データ前処理部202から前処理済み気分系列データ、気分系列予測モデルDBから学習済みの気分系列予測モデルを受け取り、未来の気分系列予測結果を計算し、未来の気分系列予測結果と共に出力する(ステップS240)。
【0045】
(本実施の形態に係る各種データの形式例)
次に、本実施の形態に係る学習装置10および予測装置20が扱う各種データの形式例について説明する。
【0046】
図5は、行動系列データの一例を示す図である。行動系列データ901は、項目として、データIDと、日時と、歩数と、運動時間と、会話時間と、を含む。
【0047】
項目「データID」の値は、各データレコードを識別するための識別子である。項目「日時」の値は、行動が行われた日時を示す値である。項目「歩数」、項目「運動時間」および項目「会話時間」は、行動の内容を示す項目の一例であって、他でも良い。
【0048】
図6は、前処理済み行動特徴データの一例を示す図である。行動特徴データ902は、項目として、データIDと、日時と、歩数と、運動時間と、会話時間と、を含む。
【0049】
項目「データID」の値は、各データレコードを識別するための識別子である。項目「日時」の値は、システム管理者が事前に指定した時間範囲の始点を示す値である。項目「歩数」、項目「運動時間」および項目「会話時間」は、行動の内容を示す項目の一例であって、他でも良い。項目「歩数」、項目「運動時間」および項目「会話時間」のそれぞれの値は、正規化された値に基づく統計処理によって、それぞれの行動の特徴を表す特徴量である。
【0050】
図7は、気分系列データの一例を示す図である。気分系列データ903は、項目として、データIDと、日時と、Valenceと、Arousalと、を含む。
【0051】
項目「データID」の値は、各データレコードを識別するための識別子である。項目「日時」の値は、気分が申告された日時を示す値である。項目「Valence」および項目「Arousal」は、気分を示す項目の一例であって、他でも良い。項目「Valence」および項目「Arousal」のそれぞれの値は、学習対象または予測対象のユーザ等が自己申告したスコアである。
【0052】
図8は、前処理済み気分系列データの一例を示す図である。前処理済み気分系列データ(気分データ)904は、項目として、データIDと、日時と、Valenceと、Arousalと、を含む。
【0053】
項目「データID」の値は、各データレコードを識別するための識別子である。項目「日時」の値は、システム管理者が事前に指定した時間範囲の始点を示す値である。項目「Valence」および項目「Arousal」は、気分を示す項目の一例であって、他でも良い。項目「Valence」および項目「Arousal」のそれぞれの値は、それぞれの時間範囲における各スコアの平均値である。
【0054】
(本実施の形態に係る各処理の詳細)
次に、本実施の形態に係る学習処理および予測処理の詳細について説明する。
【0055】
図9は、行動データ前処理の流れの一例を示すフローチャートである。行動データ前処理は、学習処理のステップS100における行動データ前処理部103による処理、または予測処理のステップS200における行動データ前処理部201による処理である。
【0056】
学習フェーズの場合、行動データ前処理部103は、行動系列データDB101から行動系列データを受け取る(ステップS300)。なお、予測フェーズの場合、行動データ前処理部201は、入力として、行動系列データを受け取る。
【0057】
次に、行動データ前処理部103または行動データ前処理部201は、システム管理者が事前に指定した種別の行動系列データを抽出する(ステップS310)。例えば、行動データ前処理部103または行動データ前処理部201は、抽出対象となる行動系列データの列名を定義しておき、その列名と一致する列のデータを抽出する。
【0058】
続いて、行動データ前処理部103または行動データ前処理部201は、抽出した各行動系列データの列について走査し、欠損値や想定していない値が含まれている場合、別の値に置き換える(ステップS320)。例えば、行動データ前処理部103または行動データ前処理部201は、数値データの場合は対応する列の平均値や0、文字列型データの場合は欠損値であることを表現する文字列を挿入する。
【0059】
続いて、行動データ前処理部103または行動データ前処理部201は、変換された前処理済み行動系列データ、及び対応する日時の情報を、特徴量抽出部105または特徴量抽出部203に受け渡す(ステップS330)。
【0060】
図10は、特徴量抽出処理の流れの一例を示すフローチャートである。特徴量抽出処理は、学習処理のステップS110における特徴量抽出部105による処理、または予測処理のステップS210における特徴量抽出部203による処理である。
【0061】
特徴量抽出部105または特徴量抽出部203は、行動データ前処理部201から前処理済み行動系列データを受け取る(ステップS400)。
【0062】
次に、特徴量抽出部105または特徴量抽出部203は、各行動系列データの列について走査し、値の正規化を行う(ステップS410)。例えば、特徴量抽出部105または特徴量抽出部203は、数値データの場合は平均が0、標準偏差が1となるようにデータを正規化し、字列型のデータを対応する次元に関するone-hot表現のベクトルに変換する。
【0063】
続いて、特徴量抽出部105または特徴量抽出部203は、行動系列データの日時情報を走査し、システム管理者が事前に指定した時間範囲ごとにデータを分割する(ステップS420)。例えば、特徴量抽出部105または特徴量抽出部203は、時間範囲を6時間と定めた場合は、6時間ごとにデータを分割する。
【0064】
次に、特徴量抽出部105または特徴量抽出部203は、分割されたデータ群ごとに、データを集計する(ステップS430)。例えば、特徴量抽出部105または特徴量抽出部203は、数値データの場合はデータ群ごとの平均値や合計値を計算する。また、特徴量抽出部105または特徴量抽出部203は、one-hot表現のベクトルデータの場合は、各次元の出現回数をカウンティングし、新たなベクトルデータを得る。
【0065】
そして、学習フェーズの場合は、特徴量抽出部105は、得られた行動特徴データと対応する日時の情報を、行動系列予測モデル学習部107と気分系列予測モデル学習部108に受け渡す(ステップS440)。予測フェーズの場合は、特徴量抽出部203は、得られた行動特徴データと対応する日時の情報を、行動系列予測部205と気分系列予測部207に受け渡す
【0066】
図11は、気分データ前処理の流れの一例を示すフローチャートである。気分データ前処理は、学習処理のステップS120における気分データ前処理部104による処理、または予測処理のステップS230における気分データ前処理部202による処理である。
【0067】
学習フェーズの場合、気分データ前処理部104は、気分系列データDB102から気分系列データを受け取る(ステップS500)。なお、予測フェーズの場合、気分データ前処理部202は、入力として、気分系列データを受け取る。
【0068】
気分データ前処理部104または気分データ前処理部202は、気分系列データの日時情報を走査し、システム管理者が事前に指定した時間範囲ごとにデータを分割する(ステップS510)。この時間範囲は、特徴量抽出部105または特徴量抽出部203に定められた時間範囲と同じである。
【0069】
続いて、気分データ前処理部104または気分データ前処理部202は、分割されたデータ群ごとに、データを集計する(ステップS520)。例えば、気分データ前処理部104または気分データ前処理部202は、ValenceとArousalの値の平均値を計算し格納する。分割された区間にデータが存在しない場合は、気分データ前処理部104または気分データ前処理部202は、ValenceとArousalともに0を格納する。
【0070】
そして、学習フェーズの場合は、気分データ前処理部104は、得られた前処理済み気分系列データ、及び対応する日時情報を、気分系列予測モデル学習部108に受け渡す(ステップS530)。また、予測フェーズの場合は、気分データ前処理部202は、得られた前処理済み気分系列データ、及び対応する日時情報を、気分系列予測部207に受け渡す。
【0071】
図12は、行動系列予測モデルの一例を示す図である。行動系列予測モデル905は、例えば以下のネットワークを有するDNN(Deep Neural Network)である。
【0072】
第一のネットワークは、行動特徴データからより抽象的な特徴を抽出する全結合層1である。第一のネットワークは、入力を全結合層で変換した後、例えばシグモイド関数やReLu関数などを利用して、入力の特徴量を非線形変換し、特徴ベクトルを得る。第一のネットワークは、この処理を時系列データとして与えられている行動特徴データに対して順次繰り返し処理する。
【0073】
第二のネットワークは、抽象化された特徴ベクトルを更に系列データとして抽象化するRNN1で、例えばLSTM(Long-Short term memory)などの既知の技術で実装される。具体的には、第二のネットワークは、系列データを順次受け取り、過去の抽象化された情報を考慮しながら、繰り返し非線形変換する。
【0074】
第三のネットワークは、RNN1で得られた特徴ベクトルから、正規分布のパラメータへ変換する全結合層2である。第三のネットワークは、入力された各行動データに対応する平均値と分散のパラメータを得て、出力されるベクトルデータを各行動データの平均および分散と対応付ける。すなわち、ベクトルの次元数は入力された次元数×2となる。第三のネットワークは、分散が非負となるようにシグモイド関数などを利用して変換する。
【0075】
図13は、行動系列予測モデル学習処理の流れの一例を示すフローチャートである。行動系列予測モデル学習処理は、学習処理のステップS140における行動系列予測モデル学習部107による処理である。
【0076】
行動系列予測モデル学習部107は、受け取った行動特徴データを、日時情報を参照して昇順に並べ替える(ステップS600)。次に、行動系列予測モデル学習部107は、学習用データとして、入力となる行動特徴データと出力として期待される行動系列データのペアを構築する(ステップS610)。
【0077】
続いて、行動系列予測モデル学習部107は、行動系列予測モデル構築部106から行動系列予測モデルを受け取る(ステップS620)。次に、行動系列予測モデル学習部107は、ネットワークにおける各ユニットのモデルパラメータを初期化する(ステップS630)。例えば、行動系列予測モデル学習部107は、パラメータを0から1の乱数で初期化する。
【0078】
続いて、行動系列予測モデル学習部107は、学習用データを用いて、ネットワークのパラメータを更新する(ステップS640)。具体的には、行動系列予測モデル学習部107は、入力の行動系列データから正解の行動系列データを正しく予測できるようにネットワークのパラメータを学習する。行動系列予測モデル学習部107は、ネットワークの全結合層2で得られる平均と分散の値を用いて、出力の行動系列データに対する負の対数尤度を計算し、計算結果である負の対数尤度によってネットワークを誤差逆伝搬法などの公知の技術で学習すればよい。なお、対数尤度の計算は正規分布を用いればよい。
【0079】
そして、行動系列予測モデル学習部107は、行動系列予測モデルを出力し、出力された結果を行動系列予測モデルDB110に格納する(ステップS650)。
【0080】
図14は、行動系列予測モデルDBおよび気分系列予測モデルDBの一例を示す図である。行動系列予測モデルDBおよび気分系列予測モデルDBは、データ906の形式のパラメータを格納している。データ906は、パラメータとパラメータ値との組み合わせを含む。
【0081】
図15は、気分系列予測モデルの一例を示す図である。気分系列予測モデル907は、例えば、以下のネットワークを有するDNNである。
【0082】
第一のネットワークは、行動特徴データからより抽象的な特徴を抽出する全結合層3である。第一のネットワークは、全結合層1と同様の処理をし、特徴ベクトルを得る。第一のネットワークは、この処理を時系列データとして与えられている行動特徴データに対して順次繰り返し処理する。
【0083】
第二のネットワークは、抽象化された特徴ベクトルを更に系列データとして抽象化するRNN2で、RNN1と同様に既知の技術で処理し、特徴ベクトルを得る。
【0084】
第三のネットワークは、RNN1によって抽象化された特徴ベクトルについて、それぞれの重要度合いを考慮した特徴ベクトルを計算する、自己注意機構(ATT)である。各特徴ベクドルの重要度合いを表す重みは、2層の全結合層によって実現される。第三のネットワークは、第一の全結合層で特徴ベクトルを任意のサイズのコンテキストベクトルに変換し、第二の全結合層でコンテキストベクトルを入力にして重みにあたるスカラ値を出力する。コンテキストベクトルは非線形変換処理をしてもよい。第三のネットワークは、得られた重要度の集合を、例えばソフトマックス関数などで確率値に変換する。第三のネットワークは、得られた重み集合と特徴ベクトルの集合の重み付き平均を計算し、各特徴ベクトルの重要度合い考慮した特徴ベクトルを得る。
【0085】
第四のネットワークは、前処理済み気分系列データを抽象化するRNN3で、RNN1と同様に既知の技術で処理し、特徴ベクトルを得る。
【0086】
第五のネットワークは、自己注意機構とRNN3で得られた特徴ベクトルから、予測対象となる時刻のValenceとArousalを出力する全結合層4である。第五のネットワークは、自己注意機構とRNN3で得られた特徴ベクトルを結合した後、全結合層4に入力しValenceとArousalの値に該当する2次元の値を得る。
【0087】
図16は、気分系列予測モデル学習処理の流れの一例を示すフローチャートである。気分系列予測モデル学習処理は、学習処理のステップS160における気分系列予測モデル学習部108による処理である。
【0088】
気分系列予測モデル学習部108は、特徴量抽出部105から行動特徴データと気分データ前処理部104から前処理済み気分系列データを受け取り、日時情報を参照しデータを昇順に並べ替える(ステップS700)。
【0089】
次に、気分系列予測モデル学習部108は、学習用データを構築する(ステップS710)。例えば、気分系列予測モデル学習部108は、ある前処理済み気分系列データを1件抽出し、正解データとする。その前処理済み気分系列データの日時情報を参照して、その日時よりも過去の前処理済み気分データをN件、その日時よりも過去の行動特徴データをN件、その日時よりも未来の行動特徴データをN件抽出し、学習データとする。気分系列予測モデル学習部108は、この3つのデータを1つの学習用データとして構築する。なお、Nはシステム管理者が事前に設定する。
【0090】
続いて、気分系列予測モデル学習部108は、学習用データとして得られている未来の行動特徴データにノイズを加える(ステップS720)。ここでは、気分系列予測モデル学習部108は行動特徴データの各値を平均、任意のパラメータを持つガンマ分布から得られた乱数を分散とする正規分布を用意し、その正規分布からサンプリングして得られた値を新たな行動特徴データとして格納し、ガンマ分布から得られた乱数を分散として格納する。
【0091】
続いて、気分系列予測モデル学習部108は、気分系列予測モデル学習部からモデルを受け取る(ステップS730)。
【0092】
次に、気分系列予測モデル学習部108は、ネットワークにおける各ユニットのモデルパラメータを初期化する(ステップS740)。例えば、気分系列予測モデル学習部108は、パラメータを0から1の乱数で初期化する。
【0093】
続いて、気分系列予測モデル学習部108は、学習用データを用いてネットワークのパラメータを更新する(ステップS750)。具体的には、気分系列予測モデル学習部108は、入力の気分系列データから正解の気分系列データを正しく予測できるようにネットワークのパラメータを学習する。例えば、気分系列予測モデル学習部108は、ネットワークの全結合層4で得られているValenceとArousalの予測結果について、正解データとして与えられたValenceとArousalに対する誤差を公知の誤差関数で計算し、その誤差を用いてネットワークを誤差逆伝播法などの公知の技術で学習すればよい。
【0094】
そして、気分系列予測モデル学習部108は、気分系列予測モデル(ネットワーク構造及びモデルパラメータ)を出力し、出力された結果を気分系列予測モデルDB111に格納する(ステップS760)。
【0095】
図17は、行動系列予測処理の流れの一例を示すフローチャートである。行動系列予測処理は、予測処理のステップS220における行動系列予測部205による処理である。
【0096】
行動系列予測部205は、特徴量抽出部203から行動特徴データを受け取り、日時情報を参照しデータを昇順に並び替える(ステップS800)。次に、行動系列予測部205は、行動系列予測モデルDB204から学習済みの行動系列予測モデルを受け取る(ステップS810)。
【0097】
そして、行動系列予測部205は、行動系列予測モデルを用いて、行動特徴データから未来の行動系列データを計算し気分系列予測部207に受け渡す(ステップS820)。
【0098】
図18は、気分系列予測処理の流れの一例を示すフローチャートである。気分系列予測処理は、予測処理のステップS240における気分系列予測部207による処理である。
【0099】
気分系列予測部207は、特徴量抽出部203から行動特徴データ、行動系列予測部205から予測された行動系列データ、気分データ前処理部202から前処理済み気分系列データを受け取る(ステップS900)。
【0100】
次に、気分系列予測部207は、行動特徴データの正規化を行う(ステップS910)。例えば、気分系列予測部207は、気分系列予測モデルの入力となるデータとして、各行動の平均値と分散値が該当するが、行動特徴データには分散値が存在しないため、0を分散値として格納する。
【0101】
続いて、気分系列予測部207は、行動特徴データと、予測された行動系列データを結合する(ステップS920)。例えば、気分系列予測部207は、行動特徴データを日時情報に従い昇順に並べ替え、その最終行から予測された行動系列データを出力順に結合して、得られた系列データを行動特徴データとして扱う。
【0102】
次に、気分系列予測部207は、気分系列予測モデルDB206から学習済みの気分系列予測モデルを受け取る(ステップS930)。
【0103】
そして、気分系列予測部207は、気分系列予測モデルを用いて、行動特徴データと前処理済み気分系列データから現在の気分(Valence、Arousal)を計算し、出力する(ステップS940)。
【0104】
(本実施の形態に係るハードウェア構成例)
学習装置10および予測装置20は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。なお、この「コンピュータ」は、物理マシンであってもよいし、クラウド上の仮想マシンであってもよい。仮想マシンを使用する場合、ここで説明する「ハードウェア」は仮想的なハードウェアである。
【0105】
上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【0106】
図19は、上記コンピュータのハードウェア構成例を示す図である。
図19のコンピュータは、それぞれバスBで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インタフェース装置1005、表示装置1006、入力装置1007、出力装置1008等を有する。
【0107】
当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0108】
メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、当該装置に係る機能を実現する。インタフェース装置1005は、ネットワークに接続するためのインタフェースとして用いられる。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。出力装置1008は演算結果を出力する。なお、上記コンピュータは、CPU1004の代わりにGPU(Graphics Processing Unit)またはTPU(Tensor processing unit)を備えていても良く、CPU1004に加えて、GPUまたはTPUを備えていても良い。その場合、例えばニューラルネットワーク等の特殊な演算が必要な処理をGPUまたはTPUが実行し、その他の処理をCPU1004が実行する、というように処理を分担して実行しても良い。
【0109】
(参考文献)
[1]J.P. Pollak, P. Adams, G. Gay: PAM: A Photographic Affect Meter for Frequent, In Situ Measurement of Affect. In Proc. of CHI, 2011.
【0110】
(本実施の形態の効果)
本実施の形態に係る学習装置10は、気分系列データを前処理して得られた前処理済み行動データと、行動系列データを前処理して得られた前処理済み行動特徴データと、行動系列予測モデルから得られた未来の行動系列を合わせて気分系列予測モデルを学習する。これによって、予測装置20は、従来予測できなかった予測対象の気分系列を予測可能となる。
【0111】
また、学習装置10は、未来の行動を予測し、その予測結果を入力として気分系列予測モデルを学習する。これによって、予測装置20は、高精度に予測対象の気分系列を予測可能となる。
【0112】
また、予測装置20は、未来の行動を平均と分散として予測し、その結果の信頼度を分散として表現する。そして、学習装置10は、信頼度を捉えた状態で気分系列予測モデルを学習する。これによって、予測装置20は、信頼度が高い行動を重視して気分系列を予測可能となる。
【0113】
また、予測対象の気分をValenceとArousalという2次元の値で表現することで、細かな予測対象の気分の動きを捉えることが可能となる。
【0114】
(実施の形態のまとめ)
本明細書には、少なくとも下記の各項に記載した予測装置、学習装置、予測方法、学習方法およびプログラムが記載されている。
(第1項)
予測対象の過去の行動系列データに基づいて特徴量を抽出し、行動特徴データを出力する特徴量抽出部と、
行動系列を予測するための学習済みの行動系列予測モデルを用いて、前記行動特徴データに基づく前記予測対象の未来の行動系列を予測する行動系列予測部と、
気分系列を予測するための学習済みの気分系列予測モデルを用いて、前記行動特徴データおよび前記予測対象の過去の気分系列データに基づく前記予測対象の未来の気分系列を予測する気分系列予測部と、を備える、
予測装置。
(第2項)
学習対象の行動系列データに基づいて特徴量を抽出し、行動特徴データを出力する特徴量抽出部と、
気分系列を予測するための気分系列予測モデルを構築する気分系列予測モデル構築部と、
構築された前記気分系列予測モデルのパラメータを、前記行動特徴データおよび前記学習対象の過去の気分系列データに基づいて更新する気分系列予測モデル学習部と、を備える、
学習装置。
(第3項)
前記気分系列予測モデル学習部は、学習用データとして抽出した未来の行動特徴データにノイズを加えた行動特徴データに基づいて、前記パラメータを更新する、
第2項に記載の学習装置。
(第4項)
行動系列を予測するための行動系列予測モデルを構築する行動系列予測モデル構築部と、
前記行動特徴データに基づいて、前記行動系列予測モデルのパラメータを更新する行動系列予測モデル学習部と、をさらに備える、
第2項または第3項に記載の学習装置。
【0115】
学習装置。
(第5項)
前記行動系列予測モデル学習部は、前記行動系列予測モデルが備えるネットワークで得られる平均と分散の値を用いて、出力の行動系列データに対する負の対数尤度を計算し、計算結果に基づいて前記パラメータを更新する、
第4項に記載の学習装置。
(第6項)
予測装置が実行する予測方法であって、
予測対象の過去の行動系列データに基づいて特徴量を抽出し、行動特徴データを出力するステップと、
行動系列を予測するための学習済みの行動系列予測モデルを用いて、前記行動特徴データに基づく前記予測対象の未来の行動系列を予測するステップと、
気分系列を予測するための学習済みの気分系列予測モデルを用いて、前記行動特徴データおよび前記予測対象の過去の気分系列データに基づく前記予測対象の未来の気分系列を予測するステップと、を備える、
予測方法。
(第7項)
学習装置が実行する学習方法であって、
学習対象の行動系列データに基づいて特徴量を抽出し、行動特徴データを出力するステップと、
気分系列を予測するための気分系列予測モデルを構築するステップと、
構築された前記気分系列予測モデルのパラメータを、前記行動特徴データおよび前記学習対象の過去の気分系列データに基づいて更新するステップと、を備える、
学習方法。
(第8項)
コンピュータを、第1項に記載の予測装置における各部として機能させるためのプログラム、または、コンピュータを、第2項から第5項のいずれか1項に記載の学習装置における各部として機能させるためのプログラム。
【0116】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0117】
10 学習装置
20 予測装置
101 行動系列データDB
102 気分系列データDB
103 行動データ前処理部
104 気分データ前処理部
105 特徴量抽出部
106 行動系列予測モデル構築部
107 行動系列予測モデル学習部
108 気分系列予測モデル学習部
109 気分系列予測モデル構築部
110 行動系列予測モデルDB
111 気分系列予測モデルDB
201 行動データ前処理部
202 気分データ前処理部
203 特徴量抽出部
204 行動系列予測モデルDB
205 行動系列予測部
206 気分系列予測モデルDB
207 気分系列予測部
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インタフェース装置
1006 表示装置
1007 入力装置
1008 出力装置