(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-11
(45)【発行日】2023-12-19
(54)【発明の名称】気分予測方法、気分予測装置及びプログラム
(51)【国際特許分類】
G06N 3/08 20230101AFI20231212BHJP
A61B 5/16 20060101ALI20231212BHJP
【FI】
G06N3/08
A61B5/16 100
(21)【出願番号】P 2022527385
(86)(22)【出願日】2020-05-28
(86)【国際出願番号】 JP2020021082
(87)【国際公開番号】W WO2021240715
(87)【国際公開日】2021-12-02
【審査請求日】2022-10-13
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】山本 修平
(72)【発明者】
【氏名】戸田 浩之
(72)【発明者】
【氏名】倉島 健
(72)【発明者】
【氏名】冨永 登夢
【審査官】北川 純次
(56)【参考文献】
【文献】特開2019-191937(JP,A)
【文献】特開2019-36114(JP,A)
【文献】特開2005-199403(JP,A)
【文献】米国特許出願公開第2020/0125976(US,A1)
【文献】SUHARA, Yoshihiko et al.,DeepMood: Forecasting Depressed Mood Based on Self-Reported Histories via Recurrent Neural Networks,Proceedings of the 26th International Conference on World Wide Web [online],2017年,pp. 715-724,[検索日 2023.10.30], インターネット:<URL:https://dl.acm.org/doi/10.1145/3038912.3052676>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
G06N 20/00
A61B 5/16
(57)【特許請求の範囲】
【請求項1】
或る期間を複数に分割する各時間区間における行動の時系列データ及び気分の時系列データに基づいて、第1の時間区間の行動の時系列データ及び気分の時系列データを入力とし、前記第1の時間区間の次の時間区間の行動の時系列データの予測値を出力する第1のニューラルネットワークを学習する第1の学習手順と、
前記或る期間を複数に分割する各時間区間における行動の時系列及び気分の時系列データに基づいて、前記次の時間区間の行動の時系列データ及び前記第1の時間区間の気分の時系列データを入力とし、前記次の時間区間の気分の時系列データの予測値を出力する第2のニューラルネットワークを学習する第2の学習手順と、
をコンピュータが実行することを特徴とする気分予測方法。
【請求項2】
学習済みの前記第1のニューラルネットワークに、第2の時間区間の行動の時系列データ及び気分の時系列データを入力して、前記第2の時間区間の次の時間区間の行動の時系列データの予測値を計算する第1の予測手順と
学習済みの前記第2のニューラルネットワークに、前記第1の予測手順において計算され前記第2の時間区間の次の時間区間の行動の時系列データの予測値と、前記第2の時間区間の気分の時系列データとを入力して、前記第2の時間区間の次の時間区間の気分の時系列データの予測値を計算する第2の予測手順と、
をコンピュータが実行することを特徴とする請求項1記載の気分予測方法。
【請求項3】
或る期間を複数に分割する各時間区間における行動の時系列データ及び気分の時系列データに基づいて、第1の時間区間の行動の時系列データ及び気分の時系列データを入力とし、前記第1の時間区間の次の時間区間の行動の時系列データの予測値を出力する第1のニューラルネットワークを学習する第1の学習部と、
前記或る期間を複数に分割する各時間区間における行動の時系列及び気分の時系列データに基づいて、前記次の時間区間の行動の時系列データ及び前記第1の時間区間の気分の時系列データを入力とし、前記次の時間区間の気分の時系列データの予測値を出力する第2のニューラルネットワークを学習する第2の学習部と、
を有することを特徴とする気分予測装置。
【請求項4】
学習済みの前記第1のニューラルネットワークに、第2の時間区間の行動の時系列データ及び気分の時系列データを入力して、前記第2の時間区間の次の時間区間の行動の時系列データの予測値を計算する第1の予測部と
学習済みの前記第2のニューラルネットワークに、前記第1の予測部によって計算され前記第2の時間区間の次の時間区間の行動の時系列データの予測値と、前記第2の時間区間の気分の時系列データとを入力して、前記第2の時間区間の次の時間区間の気分の時系列データの予測値を計算する第2の予測部と、
を有することを特徴とする請求項3記載の気分予測装置。
【請求項5】
請求項1又は2いずれか一項記載の気分予測方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、気分予測方法、気分予測装置及びプログラムに関する。
【背景技術】
【0002】
スマートウォッチ、フィットネストラッカー、又はスマートフォンなどに代表されるウェアラブルセンサの普及に伴い、ユーザの生体情報や行動ログ(以下、「行動データ」という。)を容易に記録できるようになった。これらの行動データとユーザの自己評価によって得られる心理状態(気分、感情、ストレス度など)を詳細に分析することは、様々な用途に役立つ。例えば、スマートウォッチを通じて取得されたユーザの行動データの履歴を利用して、当日のストレス度を数値として推定したり、将来の気分を予測したりすることができれば、ユーザの心理状態の改善に有効な行動の推奨などの様々な用途に役立つ。
【0003】
従来、このような行動データからユーザの心理状態を自動推定する技術として、得られているデータを離散化しヒストグラムに変換して、確率的生成モデルによって健康度合やストレス度を推定する技術が存在する(非特許文献1)。また、スマートフォンから取得される操作ログやスクリーンタイムの日々の系列データを用いて、翌日の心理状態を回帰する技術が存在する(非特許文献2)。
【先行技術文献】
【非特許文献】
【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】
しかしながら、上記の従来の方法は、日単位でデータを分離し統計的に処理しているため、一定期間ごとの時系列的なユーザの気分や感情の変動を考慮できていなかった。
【0006】
例えば、非特許文献2に開示された方法は、1日の中で何度も投稿される気分データを数値化し平均値に変換してから、翌日の気分の平均値を予測する。一方で、人間の気分は、1日の中でも上下するため、平均値を予測するだけでは気分の変動をユーザに提示することができない。また、非特許文献3に開示された方法は、過去の行動データの系列から将来の気分データの系列を予測するが、どうしてその気分が予測されるのかについての解釈性をユーザに提示することができない。この結果、ユーザが心理状態の改善に有効な行動は何か理解できない問題がある。
【0007】
本発明は、上記の点に鑑みてなされたものであって、将来の気分を予測すると共にその予測と根拠となる行動の提示を可能とすることを目的とする。
【課題を解決するための手段】
【0008】
そこで上記課題を解決するため、或る期間を複数に分割する各時間区間における行動の時系列データ及び気分の時系列データに基づいて、第1の時間区間の行動の時系列データ及び気分の時系列データを入力とし、前記第1の時間区間の次の時間区間の行動の時系列データの予測値を出力する第1のニューラルネットワークを学習する第1の学習手順と、前記或る期間を複数に分割する各時間区間における行動の時系列及び気分の時系列データに基づいて、前記次の時間区間の行動の時系列データ及び前記第1の時間区間の気分の時系列データを入力とし、前記次の時間区間の気分の時系列データの予測値を出力する第2のニューラルネットワークを学習する第2の学習手順と、をコンピュータが実行する。
【発明の効果】
【0009】
将来の気分を予測すると共に、その予測と根拠となる行動の提示を可能とすることができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施の形態における気分予測装置10のハードウェア構成例を示す図である。
【
図2】本発明の実施の形態における気分予測装置10の学習フェーズにおける機能構成例を示す図である。
【
図3】学習フェーズにおいて気分予測装置10が実行する処理手順の一例を説明するためのフローチャートである。
【
図4】行動系列データDB121の構成例を示す図である。
【
図5】行動特徴ベクトルデータ系列の構成例を示す図である。
【
図6】気分系列データDB122の構成例を示す図である。
【
図7】行動データ系列の前処理の処理手順の一例を説明するためのフローチャートである。
【
図8】行動特徴ベクトルデータ系列の生成処理の処理手順の一例を説明するためのフローチャートである。
【
図9】行動系列予測モデルの構造の一例を示す図である。
【
図10】気分系列予測モデルの構造の一例を示す図である。
【
図11】行動系列予測モデルの学習処理の処理手順の一例を説明するためのフローチャートである。
【
図12】行動系列エンコーディングモデルDB123の構成例を示す図である。
【
図13】気分系列エンコーディングモデルDB125の構成例を示す図である。
【
図14】行動系列デコーディングモデルDB124の構成例を示す図である。
【
図15】気分系列予測モデルの学習処理の処理手順の一例を説明するためのフローチャートである。
【
図16】気分系列デコーディングモデルDB126の構成例を示す図である。
【
図17】本発明の実施の形態における気分予測装置10の予測フェーズにおける機能構成例を示す図である。
【
図18】予測フェーズにおいて気分予測装置10が実行する処理手順の一例を説明するためのフローチャートである。
【
図19】行動特徴ベクトル系列の予測処理の処理手順の一例を説明するためのフローチャートである。
【
図20】気分系列の予測処理の処理手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【0011】
以下、図面に基づいて本発明の実施の形態を説明する。
図1は、本発明の実施の形態における気分予測装置10のハードウェア構成例を示す図である。
図1の気分予測装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、プロセッサ104、及びインタフェース装置105等を有する。
【0012】
気分予測装置10での処理を実現するプログラムは、CD-ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0013】
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。プロセッサ104は、CPU若しくはGPU(Graphics Processing Unit)、又はCPU及びGPUであり、メモリ装置103に格納されたプログラムに従って気分予測装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
【0014】
本実施の形態において、気分予測装置10が実行する処理は、学習フェーズ及び予測フェーズに分類される。まず、学習フェーズについて説明する。
【0015】
図2は、本発明の実施の形態における気分予測装置10の学習フェーズにおける機能構成例を示す図である。
図2に示されるように、学習フェーズにおける気分予測装置10は、行動データ前処理部11、特徴量抽出部12、行動系列予測モデル構築部13、行動系列予測モデル学習部14、気分系列予測モデル構築部15及び気分系列予測モデル学習部16等を有する。これら各部は、気分予測装置10にインストールされた1以上のプログラムが、プロセッサ104に実行させる処理により実現される。気分予測装置10は、また、行動系列データDB121、気分系列データDB122、行動系列エンコーディングモデルDB123、行動系列デコーディングモデルDB124、気分系列エンコーディングモデルDB125及び気分系列デコーディングモデルDB126等のデータベース(記憶部)を利用する。これら各データベースは、例えば、補助記憶装置102、又は気分予測装置10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【0016】
学習フェーズにおける気分予測装置10は、各DBの情報を利用して、行動系列エンコーディングモデル、気分系列エンコーディングモデル、行動系列デコーディングモデル及び気分系列デコーディングモデル等のニューラルネットワークのモデルパラメータを学習データに対する固有のパラメータとして出力する。ここで、行動系列データDB121及び気分系列データDB122に記録された各データは、データが記録された日時情報で対応付けがとれるように予め構築されている。
【0017】
図3は、学習フェーズにおいて気分予測装置10が実行する処理手順の一例を説明するためのフローチャートである。
【0018】
ステップS100において、行動データ前処理部11は、行動系列データDB121に記憶されている行動データの系列(以下、「行動データ系列」という。)を取得し、当該行動データ系列に対して前処理を実行する。その結果、前処理済み行動データ系列が生成される。
【0019】
図4は、行動系列データDB121の構成例を示す図である。
図4における1行が1つの行動データに相当する。各行動データには、各種の行動を表す項目(列)に数値や時間、文字列などの形式で値が記録されており、前述の通り気分データと紐付けるための日時情報が記録されている。具体的には、各行動データは、データID、日時、歩数、運動時間及び会話時間等を含む。本実施の形態において、行動系列データDB121には、或る人(以下、「ユーザA」という。)の或る期間(以下、「期間T1」という。)における複数のタイミングにおける行動に関する行動データが時系列に記憶されている。
【0020】
行動データは、例えば、一定時間間隔で記録される。本実施の形態では、1時間間隔で記録される例が示されている。データIDは、行動データの識別情報である。日時は、行動データが記録された日時である。歩数は、当該行動データの記録時までの直近の一定時間(以下、「対象期間」という。)における歩数である。運動時間は、対象期間において運動が行われた時間である。会話時間は、対象期間において会話が行われた時間である。なお、本実施の形態において、「歩数」、「運動時間」、「会話時間」は、行動の名称(以下、「行動名」という。)の一例である。これらの行動名を項目名とする項目を、以下「行動項目」という。
【0021】
続いて、特徴量抽出部12は、行動データ前処理部11から前処理済み行動データ系列を受け取り、当該前処理済みデータ系列に基づいて行動特徴ベクトルデータの系列(以下、「行動特徴ベクトルデータ系列」という。)を生成する(S110)。行動特徴ベクトルデータ系列の生成処理の詳細は後述される。
【0022】
図5は、行動特徴ベクトルデータ系列の構成例を示す図である。
図5における1行が1つの行動特徴ベクトルデータに相当する。
図5に示されるように、行動特徴ベクトルデータは、行動データと同じ構成を有する。但し、行動項目の値が正規化されている。
【0023】
続いて、行動系列予測モデル構築部13は、行動系列予測モデルを構築する(S120)。モデルの構築とは、例えば、モデルとしてのプログラムをメモリ装置103にロードすることをいう。なお、行動系列予測モデルの構造の詳細については後述される。
【0024】
続いて、気分系列予測モデル構築部15は、気分系列予測モデルを構築する(S130)。気分系列予測モデルの構造の詳細については後述される。
【0025】
続いて、行動系列予測モデル学習部14は、特徴量抽出部12から行動特徴ベクトルデータ系列を受け取り、気分系列データDB122から気分データの系列(以下、「気分データ系列」という。)を取得し、行動系列予測モデル構築部13から行動系列予測モデルを受け取り、行動系列予測モデルを学習する(S140)。行動系列予測モデル学習部14は、学習済みの行動系列予測モデルのモデルパラメータ群を行動系列エンコーディングモデルDB123、行動系列デコーディングモデルDB124及び気分系列エンコーディングモデルDB125にそれぞれ出力する。なお、出力先の各DBに学習済みのモデルパラメータ群が存在する場合、行動系列予測モデル学習部14は、当該モデルのパラメータ群を受け取った後にモデルを再学習し、再学習後のモデルパラメータ群を各モデルパラメータに対応するDBにそれぞれ出力する。
【0026】
図6は、気分系列データDB122の構成例を示す図である。
図6における1行が1つの気分データに相当する。本実施の形態において、気分系列データDB122には、ユーザAの期間T1における複数のタイミングにおける気分に関する気分データが時系列に記憶されている。
【0027】
各気分データは、データID、日時及び気分等を含む。データIDは、気分データの識別情報である。日時は、ユーザAの気分が評価された日時である。気分は、ユーザAが自己報告した気分の種類を示し文字列(以下、「気分名」という。)である。気分とは、例えば、ユーザAが都度感じた心理状態やストレス度等が想定される。
図6の例において、気分の値は文字列であるが、数値によって気分が表現されてもよい。気分系列データDB122は、例えば、ユーザAによって気分の自己評価結果が入力され、入力された自己評価結果を「気分」に含み、入力された日時を「日時」に含む気分データをDBに格納することで構築されてもよい。
【0028】
続いて、気分系列予測モデル学習部16は、特徴量抽出部12から行動特徴ベクトルデータ系列を受け取り、気分系列データDB122から気分データ系列を取得し、気分系列予測モデル構築部15から気分系列予測モデルを受け取り、気分系列予測モデルを学習する(S150)。気分系列予測モデル学習部16は、学習済みの気分系列予測モデルのモデルパラメータ群を行動系列エンコーディングモデルDB123、気分系列エンコーディングモデルDB125及び気分系列デコーディングモデルDB126にそれぞれ出力する。なお、出力先のDBに学習済みのモデルパラメータ群が存在する場合、気分系列予測モデル学習部16は、当該モデルパラメータ群を受け取った後にモデルを再学習し、再学習後のモデルパラメータ群を各モデルパラメータに対応するDBにそれぞれ出力する。
【0029】
なお、ステップS140及びS150は、システム管理者が定めた収束条件が満たされるまで繰り返される。
【0030】
続いて、ステップS100の詳細について説明する。
図7は、行動データ系列の前処理の処理手順の一例を説明するためのフローチャートである。
【0031】
ステップS300において、行動データ前処理部11は、行動系列データDB121(
図4)から行動データ系列を取得する。当該行動データ系列は、ユーザAの時系列の行動を示す。
【0032】
続いて、行動データ前処理部11は、各行動データから、システム管理者によって事前に設定された1以上の種別の行動項目を抽出する(S310)。例えば、対象となる行動項目の項目名(「歩数」、「運動時間」、「会話時間」等)が設定され、その項目名と一致する行動項目が特定される。以下、特定された行動項目を「対象項目」という。なお、行動データに含まれる全ての行動項目が対象項目とされてもよい。
【0033】
続いて、行動データ前処理部11は、行動データ系列の対象項目の値を走査し、対象項目が欠損値である行動データや、対象項目に想定していない値が含まれている行動データが有れば、当該行動データの対象項目の値を別の値に置き換える(S320)。例えば、対象項目が数値データの場合、当該行動データの対象項目の値が、行動データ系列において有効な値の平均値又は0によって置換されてもよい。対象項目が文字列型データの場合、当該行動データの対象項目に欠損値であることを表現する文字列が挿入されてもよい。
【0034】
続いて、行動データ前処理部11は、変換前の行動データごとに、当該行動データのデータID及び日時と、変換後の対象項目とを含む前処理済み行動データの系列を特徴量抽出部12へ出力する(S330)。すなわち、前処理済み行動データには、対象項目ではない行動項目は含まれない。
【0035】
続いて、
図3のステップS110の詳細について説明する。
図8は、行動特徴ベクトルデータ系列の生成処理の処理手順の一例を説明するためのフローチャートである。
【0036】
ステップS400において、特徴量抽出部12は、行動データ前処理部11から出力された前処理済み行動データ系列を取得する。
【0037】
続いて、特徴量抽出部12は、前処理済み行動データ系列の各行動項目を走査し、当該行動項目について値の正規化を行う(S410)。例えば、特徴量抽出部12は、数値データの行動項目について、平均が0、標準偏差が1となるように値を正規化する。
【0038】
続いて、特徴量抽出部12は、前処理済み行動データ系列の各行動項目を走査し、文字列型又は時刻型の項目の値を数値データに変換する(S420)。例えば、文字列型のデータは、文字列の種類を次元数とし、当該データが示す文字列に対応する次元が1であるone-hot表現のベクトルに変換される。
【0039】
続いて、特徴量抽出部12は、前処理済み行動データごとに、当該前処理済み行動データの日時と各行動項目とを要素とする行動特徴ベクトルデータを生成し、当該行動特徴ベクトルデータの系列を出力する(S430)。
【0040】
続いて、
図3のステップS120の詳細について説明する。
図9は、行動系列予測モデルの構造の一例を示す図である。
図9に示されるように、行動系列予測モデルは、DNN(Deep Neural Network)の構造を有する。
【0041】
行動系列予測モデルは、予測対象の日の前日(以下、「当日」という。)の行動特徴ベクトル系列と、当日の時系列順の気分名の系列(以下、「気分系列」という。)とを入力とし、翌日のユーザAの行動特徴ベクトル系列を出力する。行動特徴ベクトルとは、行動特徴ベクトルデータ(
図5)に含まれる行動項目の値を要素とするベクトルである。
【0042】
行動系列予測モデルは、3つのコンポーネントを含む。
【0043】
[1つ目のコンポーネント]
1つ目のコンポーネントは、行動系列エンコーディングモデルであり、以下の3つのユニットを含む。
【0044】
1つ目のユニットは、行動特徴ベクトル系列から、より抽象的な特徴を抽出するSensor Embedding Layerである。当該ユニットは、行動特徴ベクトル系列を全結合層で変換した後、例えば、シグモイド関数やReLu関数などを利用して、入力の特徴量(行動特徴ベクトル系列)を非線形変換し、特徴ベクトルを得る。
【0045】
2つ目のユニットは、抽象化された特徴ベクトルを更に系列データ(系列特徴ベクトル)として抽象化するRNN Encoding Layerであり、例えば、LSTM(Long-short term memory(LSTM)などの既知の技術で実装される。具体的には、当該ユニットは、抽象化された特徴ベクトルを順次受け取って抽象化し、RNN Encoding Layerにおいて過去の抽象化された情報を考慮しながら、繰り返し非線形変換を実行する。
【0046】
3つ目のユニットは、抽象化された系列特徴ベクトルについて、それぞれの重要度合いを考慮した特徴ベクトルを得る、Attention(注意機構)である。例えば既知のAttentionは、2層の全結合層によって実現される。1つ目の全結合層は系列特徴ベクトルを入力にして任意のサイズのコンテキストベクトルを出力し、2つ目の全結合層はコンテキストベクトルを入力にして重要度に相当するスカラ値を出力する。コンテキストベクトルは、非線形変換処理されてもよい。重要度は、例えば、ソフトマックス関数などで確率値に該当する値に変換される。重要度を用いて系列特徴ベクトルを加重平均したものがAttentionの出力となる。
【0047】
[2つ目のコンポーネント]
2つ目のコンポーネントは、気分系列エンコーディングモデルである。気分系列エンコーディングモデルは、気分系列を適切な特徴ベクトルに変換する。気分系列エンコーディングモデルは、行動系列エンコーディングモデルと同様に、3つのユニットから構成される。
【0048】
1つ目のユニットは、Mood Embedding Layerであり、Sensor Embedding Layerと同等の機能を有する。
【0049】
2つ目のユニットは、RNN Encoding Layerであり、行動系列エンコーディングモデルのRNN Encoding Layerと同等の機能を有する。
【0050】
3つ目のユニットは、Attentionであり、行動系列エンコーディングモデルのAttentionと同等の機能を有する。
【0051】
[3つ目のコンポーネント]
3つ目のコンポーネントは、行動系列デコーディングモデルである。行動系列デコーディングモデルは、行動系列エンコーディングモデルと気分系列エンコーディングモデルから出力される特徴ベクトルを入力とし、予測結果となる行動特徴ベクトル系列を出力する。行動系列デコーディングモデルは、1つのユニットを含む。
【0052】
当該1つのユニットは、RNN Decoding Layerであり、例えば、LSTMなどの既知の技術で実装される。具体的には、RNN Decoding Layerは、行動系列エンコーディングモデルと気分系列エンコーディングモデルで得られた2つの特徴ベクトルを結合し、翌日の行動の系列の始まりを意味する適当な記号を加え、LSTMに入力する。その結果、出力として翌日の1つ目の行動特徴ベクトルを獲得する。以降は、一つ前の出力として得られている行動特徴ベクトルを、先に述べた適当な記号と置き換えて順次同じ処理をする。その結果、翌日の行動特徴ベクトル系列が得られる。
【0053】
続いて、
図3のステップS130の詳細について説明する。
図10は、気分系列予測モデルの構造の一例を示す図である。
図10に示されるように、気分系列予測モデルは、DNNの構造を有する。
【0054】
気分系列予測モデルは、翌日の行動特徴ベクトル系列と当日の気分系列とを入力とし、翌日のユーザAの気分系列を出力する。気分系列予測モデルは、3つのコンポーネントを含む。
【0055】
1つ目及び2つ目のコンポーネントは、行動系列エンコーディングモデル及び気分系列エンコーディングモデルであり、これらは先に述べた行動系列予測モデルの行動系列エンコーディングモデル及び気分系列エンコーディングモデルをコピーして得られる。
【0056】
3つ目のコンポーネントは、気分系列デコーディングモデルである。気分系列デコーディングモデルは、行動系列エンコーディングモデルと気分系列エンコーディングモデルから出力される特徴ベクトルを入力とし、予測結果となる翌日の気分系列を出力する。気分系列デコーディングモデルは、1つのユニットを含む。
【0057】
当該1つのユニットは、RNN Decoding Layerであり、例えば、LSTMなどの既知の技術で実装される。具体的には、RNN Decoding Layerは、行動系列エンコーディングモデルと気分系列エンコーディングモデルで得られた2つの特徴ベクトルを結合し、翌日の気分系列の始まりを意味する適当な記号を加え、LSTMに入力する。その結果、出力として翌日の1つ目の気分名を獲得する。以降は、一つ前の出力として得られている気分名を、先に述べた適当な記号と置き換えて順次同じ処理をする。その結果、翌日の気分系列が得られる。
【0058】
続いて、
図3のステップS140の詳細について説明する。
図11は、行動系列予測モデルの学習処理の処理手順の一例を説明するためのフローチャートである。
【0059】
ステップS500において、行動系列予測モデル学習部14は、受け取った行動特徴ベクトルデータ系列(
図5)と受け取った気分データ系列(
図6)とに基づいて、行動系列予測モデルの学習データを生成する。
【0060】
具体的には、行動系列予測モデル学習部14は、1日(年月日)ごとに、当該日に係る「日時」を含む行動特徴ベクトルデータ系列に基づく行動特徴ベクトル系列と、当該日に係る「日時」を含む気分データ系列に基づく気分系列とを入力データとし、当該日の翌日に係る「日時」を含む行動特徴ベクトルデータ系列に基づく行動特徴ベクトル系列を出力データとして含む学習データを生成する。したがって、年月日ごと(1日ごと)に学習データが生成される。
【0061】
続いて、行動系列予測モデル学習部14は、
図9に示すような行動系列予測モデルを行動系列予測モデル構築部13から受け取る(S510)。以下、当該行動系列予測モデルを「対象モデル」という。
【0062】
続いて、行動系列予測モデル学習部14は、対象モデルのモデルパラメータに値を設定する(S520)。具体的には、行動系列予測モデル学習部14は、行動系列エンコーディングモデルDB123、行動系列デコーディングモデルDB124及び気分系列エンコーディングモデルDB125等のDB(以下、「対象モデルDB」という。)にアクセスし、これら各DBに既に学習済みのモデルのモデルパラメータの値が保存されている場合、各対象モデルDBに保存されている値を対象モデルの各コンポーネントのモデルパラメータに設定する。一方、これら各対象モデルDBに学習済みモデルのパラメータが保存されていない場合、行動系列予測モデル学習部14は、対象モデルの各コンポーネントのモデルパラメータを、例えば、0から1の乱数で初期化する。なお、行動系列エンコーディングモデルDB123は、学習済みの行動系列エンコーディングモデルのモデルパラメータの値が格納されるDBである。行動系列デコーディングモデルDB124は、学習済みの行動系列デコーディングモデルのモデルパラメータの値が格納されるDBである。気分系列エンコーディングモデルDB125は、学習済みの気分系列エンコーディングモデルのモデルパラメータの値が格納されるDBである。
【0063】
続いて、行動系列予測モデル学習部14は、学習データ群を用いて対象モデルを学習する(S530)。具体的には、行動系列予測モデル学習部14は、学習データごとに当該学習データに入力データとして含まれる行動特徴ベクトル系列及び気分系列を対象モデルへ入力し、対象モデルから出力される行動特徴ベクトル系列と、当該学習データに出力データとして含まれる行動特徴ベクトル系列との比較に基づいて、対象モデルのモデルパラメータを更新する。
【0064】
続いて、行動系列予測モデル学習部14は、学習済みの対象モデルのモデルパラメータ群を出力し、出力された結果を各対象モデルDBに格納する(S540)。
【0065】
図12は、行動系列エンコーディングモデルDB123の構成例を示す図である。
図12に示されるように、行動系列エンコーディングモデルDB123には、学習済みの行動系列エンコーディングモデルの各ユニットのモデルパラメータの値が行列やベクトルとして格納される。
【0066】
図13は、気分系列エンコーディングモデルDB125の構成例を示す図である。
図13に示されるように、気分系列エンコーディングモデルDB125には、学習済みの気分系列エンコーディングモデルの各ユニットのモデルパラメータの値が行列やベクトルとして格納される。
【0067】
図14は、行動系列デコーディングモデルDB124の構成例を示す図である。
図14に示されるように、行動系列デコーディングモデルDB124には、学習済みの行動系列デコーディングモデルの各ユニットのモデルパラメータの値が行列やベクトルとして格納される。また、出力層については、入力の行動データと同じインデックスが割り当てられるように出力ベクトルのサイズが調整され、各インデックス及び対応する行動名がテキストとして格納される。
【0068】
続いて、
図3のステップS150の詳細について説明する。
図15は、気分系列予測モデルの学習処理の処理手順の一例を説明するためのフローチャートである。
【0069】
ステップS600において、気分系列予測モデル学習部16は、受け取った行動特徴ベクトルデータ系列(
図5)と受け取った気分データ系列(
図6)とに基づいて、気分系列予測モデルの学習データを生成する。
【0070】
具体的には、気分系列予測モデル学習部16は、1日(年月日)ごとに、当該日の翌日に係る「日時」を含む行動特徴ベクトルデータ系列に基づく行動特徴ベクトル系列と、当該日に係る「日時」を含む気分データ系列に基づく気分系列とを入力データとし、当該日の翌日に係る「日時」を含む気分データ系列に基づく気分系列を出力データとして含む学習データを生成する。したがって、年月日ごと(1日ごと)に学習データが生成される。
【0071】
続いて、気分系列予測モデル学習部16は、
図9に示すような気分系列予測モデルを気分系列予測モデル構築部15から受け取る(S610)。以下、当該気分系列予測モデルを「対象モデル」という。
【0072】
続いて、気分系列予測モデル学習部16は、対象モデルのモデルパラメータに値を設定する(S620)。具体的には、気分系列予測モデル学習部16は、行動系列エンコーディングモデルDB123、気分系列エンコーディングモデルDB125及び気分系列デコーディングモデルDB126等のDB(「対象モデルDB」という。)にアクセスし、これら各DBに既に学習済みのモデルのモデルパラメータの値が保存されている場合、各対象モデルDBに保存されている値を対象モデルの各コンポーネントのモデルパラメータに設定する。一方、これら各対象モデルDBに学習済みモデルのパラメータが保存されていない場合、行動系列予測モデル学習部14は、対象モデルの各コンポーネントのモデルパラメータを、例えば、0から1の乱数で初期化する。なお、気分系列デコーディングモデルDB126は、学習済みの気分系列デコーディングモデルのモデルパラメータの値が格納されるDBである。
【0073】
続いて、気分系列予測モデル学習部16は、学習データ群を用いて対象モデルを学習する(S630)。具体的には、気分系列予測モデル学習部16は、学習データごとに当該学習データに入力データとして含まれる行動特徴ベクトル系列及び気分系列を対象モデルへ入力し、対象モデルから出力される気分系列と、当該学習データに出力データとして含まれる気分系列との比較に基づいて、対象モデルのモデルパラメータを更新する。
【0074】
続いて、気分系列予測モデル学習部16は、学習済みの気分系列予測モデルのモデルパラメータ群を出力し、出力された結果を各対象モデルDBに格納する(S640)。この際、既に値が記憶されている対象モデルDBの内容は上書きされる。対象モデルDBのうち、行動系列エンコーディングモデルDB123及び気分系列エンコーディングモデルDB125については、
図12又は
図13に示した通りである。
【0075】
図16は、気分系列デコーディングモデルDB126の構成例を示す図である。
図16に示されるように、気分系列デコーディングモデルDB126には、RNN Decoding Layerのモデルパラメータが行列として格納される。また、出力層については、入力の気分データと同じインデックスが割り当てられるように出力ベクトルのサイズが調整され、各インデックス及び対応する気分名がテキストとして格納される。
【0076】
続いて、予測フェーズについて説明する。
図17は、本発明の実施の形態における気分予測装置10の予測フェーズにおける機能構成例を示す図である。
図17中、
図2と同一部分又は対応する部分には同一符号を付している。
【0077】
図17において、気分予測装置10は、行動データ前処理部11、特徴量抽出部12、行動系列予測部17及び気分系列予測部18等を有する。これら各部は、気分予測装置10にインストールされた1以上のプログラムが、プロセッサ104に実行させる処理により実現される。気分予測装置10は、また、行動系列エンコーディングモデルDB123、行動系列デコーディングモデルDB124、気分系列エンコーディングモデルDB125、気分系列デコーディングモデルDB126等を利用する。
【0078】
予測フェーズにおける気分予測装置10は、予測対象の日の前日(以下、「当日」という。)のユーザBの行動データ系列及び気分データ系列に対する予測結果として翌日(当日の次の日)の行動系列及び翌日の気分系列を出力する。なお、ユーザBは、ユーザAと同一人物であってもよいし、別人物であってもよい。
【0079】
図18は、予測フェーズにおいて気分予測装置10が実行する処理手順の一例を説明するためのフローチャートである。
【0080】
ステップS200において、行動データ前処理部11は、入力される当日の行動データ系列に対して、
図7において説明した前処理を実行する。
【0081】
続いて、特徴量抽出部12は、行動データ前処理部11から前処理済み行動データ系列を受け取り、当該前処理済み行動データ系列について
図8において説明した処理を実行することにより、行動特徴ベクトルデータ系列を生成する(S210)。
【0082】
続いて、行動系列予測部17は、特徴量抽出部12から受け取った行動特徴ベクトルデータ及び当日の気分データ系列を、行動系列エンコーディングモデルDB123、行動系列デコーディングモデルDB124及び気分系列エンコーディングモデルDB125から取得される学習済み行動系列予測モデルに入力して、翌日の行動特徴ベクトル系列の予測値を計算する(S220)。
【0083】
続いて、気分系列予測部18は、当日の気分データ系列、及び行動系列予測部17によって予測された翌日の行動特徴ベクトル系列を、行動系列エンコーディングモデルDB123、気分系列エンコーディングモデルDB125及び気分系列デコーディングモデルDB126から取得される学習済み気分系列予測モデルに入力して、翌日の気分系列の予測値を計算する(S230)。気分系列予測部18は、当該予測値と翌日の行動系列の予測値とを出力する。
【0084】
続いて、
図18のステップS220の詳細について説明する。
図19は、行動特徴ベクトル系列の予測処理の処理手順の一例を説明するためのフローチャートである。
【0085】
S700において、行動系列予測部17は、入力データである当日の行動データ系列に基づく行動特徴ベクトルデータ系列、及び入力データである当日の気分データ系列を取得する。
【0086】
続いて、行動系列予測部17は、行動系列エンコーディングモデルDB123、行動系列デコーディングモデルDB124及び気分系列エンコーディングモデルDB125から学習済みの行動系列予測モデルを取得する(S710)。
【0087】
続いて、行動系列予測部17は、行動特徴ベクトルデータ系列に基づく行動特徴ベクトル系列と、気分データ系列に基づく気分系列とを行動系列予測モデルへ入力して、翌日の各ステップにおける行動特徴ベクトルに対する確率値を順次計算する(S720)。
【0088】
続いて、行動系列予測部17は、確率の最も高くなる行動特徴ベクトルの系列を気分系列予測部18へ出力する(S730)。
【0089】
続いて、
図18のステップS230の詳細について説明する。
図20は、気分系列の予測処理の処理手順の一例を説明するためのフローチャートである。
【0090】
ステップS800において、気分系列予測部18は、行動系列予測部17によって予測された翌日の行動特徴ベクトル系列、及び入力データである当日の気分データ系列を取得する。
【0091】
続いて、気分系列予測部18は、行動系列エンコーディングモデルDB123、気分系列エンコーディングモデルDB125及び気分系列デコーディングモデルDB126から学習済みの気分系列予測モデルを取得する(S810)。
【0092】
続いて、気分系列予測部18は、翌日の行動特徴ベクトル系列、及び当日の気分データ系列に基づく気分系列を気分系列予測モデルへ入力して、翌日の各ステップにおける気分に対する確率値を順次計算する(S820)。
【0093】
続いて、気分系列予測部18は、確率の最も高くなる気分の系列と、行動系列予測部17によって予測された行動特徴ベクトル系列とを出力する(S830)。
【0094】
なお、本実施の形態では、期間T1及び期間T2を複数に分割する時間区間が1日単位である例を説明したが、当該時間区間は、2日以上の期間であってもよい。この場合、或る時間区間を上記の当日に当てはめて、当該或る時間区間の次の時間区間を上記の翌日に当てはめればよい。
【0095】
上述したように、本実施の形態によれば、行動データ系列から抽出される行動特徴ベクトル系列と、気分データ系列と時間区間が共通する(日付が共通する)単位で対応付けて行動系列予測モデルと気分系列予測モデルを学習し、得られたモデルを利用することで、従来予測できなかったユーザの将来の気分系列を予測可能になる。この際、ユーザの将来の気分系列を予測して提示するだけでなく、将来の同時期における行動特徴ベクトル系列と合わせて提示することで、その予測結果の解釈性(気分系列の予測の根拠となる行動特徴ベクトル系列)を与えることができる。したがって、将来の気分を予測すると共にその予測と根拠となる行動の提示を可能とすることができる。
【0096】
将来の気分系列と行動特徴ベクトル系列とを合わせて提示することで、ユーザが気分系列を改善したい場合に、行動から改善するための支援が可能となる。例えば、ユーザが編集した翌日の行動系列を気分系列予測部18に入力することで、その結果を提示可能となる。
【0097】
なお、翌日の気分系列と行動系列を予測するだけでなく、その予測結果を更に予測フェーズの入力データに用いることで、翌日以降の気分系列と行動系列とが予測されてもよい。
【0098】
なお、本実施の形態において、行動系列予測モデル学習部14は、第1の学習部の一例である。気分系列予測モデル学習部16は、第2の学習部の一例である。行動系列予測部17は、第1の予測部の一例である。気分系列予測部18は、第2の予測部の一例である。行動データ系列又は行動特徴ベクトル系列は、行動の時系列データの一例である。気分データ系列又は気分系列は、気分の時系列データの一例である。行動系列予測モデルは、第1のニューラルネットワークの一例である。気分系列予測モデルは、第2のニューラルネットワークの一例である。当日は、第1の時間区間の一例である。
【0099】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0100】
10 気分予測装置
11 行動データ前処理部
12 特徴量抽出部
13 行動系列予測モデル構築部
14 行動系列予測モデル学習部
15 気分系列予測モデル構築部
16 気分系列予測モデル学習部
17 行動系列予測部
18 気分系列予測部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 プロセッサ
105 インタフェース装置
121 行動系列データDB
122 気分系列データDB
123 行動系列エンコーディングモデルDB
124 行動系列デコーディングモデルDB
125 気分系列エンコーディングモデルDB
126 気分系列デコーディングモデルDB
B バス