(57)【要約】【課題】  欠損を含むデータを学習データとして用いて２つの事象の関係をモデル化できるデータ処理装置を提供する。【解決手段】  本発明の第１の態様に係るデータ処理装置は、第１の事象に関する第１のデータと、前記第１の事象と関係する第２の事象に関する第２のデータと、前記第１のデータ及び前記第２のデータの少なくとも一方におけるデータ欠損状況に基づいた第１の補助データと、を結合した第１の入力データを生成する第１の生成部と、前記第１の入力データを予測モデルに入力したときに前記予測モデルから出力される出力データと前記第１のデータ及び前記第２のデータとの間の前記第１の補助データに応じた誤差に基づいて、前記予測モデルのモデルパラメータを学習する学習部と、を備える。【選択図】図１
2020052915.tif 000002
【特許請求の範囲】
【請求項１】
第１の事象に関する第１のデータと、前記第１の事象と関係する第２の事象に関する第２のデータと、前記第１のデータ及び前記第２のデータの少なくとも一方におけるデータ欠損状況に基づいた第１の補助データと、を結合した第１の入力データを生成する第１の生成部と、
前記第１の入力データを予測モデルに入力したときに前記予測モデルから出力される出力データと前記第１のデータ及び前記第２のデータとの間の前記第１の補助データに応じた誤差に基づいて、前記予測モデルのモデルパラメータを学習する学習部と、
を備えるデータ処理装置。
【請求項２】
前記第１の生成部は、前記第１のデータにおけるデータ欠損状況に基づいた補助データと、前記第２のデータにおけるデータ欠損状況に基づいた補助データと、を含む前記第１の補助データを生成する、請求項１に記載のデータ処理装置。
【請求項３】
前記第１の生成部は、前記第１のデータ及び前記第２のデータのそれぞれのデータ欠損度合いを算出し、前記第１のデータ及び前記第２のデータのうち、前記データ欠損度合いが高い方のデータを選択し、前記選択されたデータにおけるデータ欠損状況に基づいて、前記第１の補助データを生成する、請求項１に記載のデータ処理装置。
【請求項４】
前記第１の生成部は、前記第１のデータ及び前記第２のデータのうちの予め決定された方のデータにおけるデータ欠損状況に基づいて、前記第１の補助データを生成する、請求項１に記載のデータ処理装置。
【請求項５】
前記第１の生成部は、前記第１のデータ及び前記第２のデータのうちの予め決定された方のデータにおけるデータ欠損状況と、前記第１の事象と前記第２の事象との間の時間的関係と、に基づいて、前記第１の補助データを生成する、請求項１に記載のデータ処理装置。
【請求項６】
前記予測モデルは、入力層、少なくとも１つの中間層、及び出力層を有するニューラルネットワークであり、前記少なくとも１つの中間層のうちの１つは、前記第１のデータ及び前記第２のデータの両方の影響を受けるノードと、前記第１のデータの影響を受けるが前記第２のデータの影響を受けないノード及び前記第２のデータの影響を受けるが前記第１のデータの影響を受けないノードの少なくとも一方と、を有する、請求項１乃至５のいずれか１項に記載のデータ処理装置。
【請求項７】
前記第１の事象に関する第３のデータと、前記第２の事象に関する第４のデータと、前記第３のデータ及び前記第４のデータの少なくとも一方におけるデータ欠損状況に基づいた第２の補助データと、を結合した第２の入力データを生成する第２の生成部と、
前記第２の入力データを前記学習されたモデルパラメータが設定された前記予測モデルに入力して、前記第３のデータ及び前記第４のデータの少なくとも一方に含まれる欠損に対する予測値を得る予測部と、
をさらに備える請求項１乃至６のいずれか１項に記載のデータ処理装置。
【請求項８】
前記第１の事象に関する第３のデータと、前記第２の事象に関する第４のデータと、前記第３のデータ及び前記第４のデータの少なくとも一方におけるデータ欠損状況に基づいた第２の補助データと、を結合した第２の入力データを生成する第２の生成部と、
前記第２の入力データを前記学習されたモデルパラメータが設定された前記予測モデルに入力して、前記予測モデルの中間層から出力されるデータを得る予測部と、
をさらに備える請求項１乃至６のいずれか１項に記載のデータ処理装置。
【請求項９】
第１の事象に関する第１のデータと、前記第１の事象と関係する第２の事象に関する第２のデータと、前記第１のデータ及び前記第２のデータの少なくとも一方におけるデータ欠損状況に基づいた補助データと、を結合した入力データを生成する過程と、
前記入力データを予測モデルに入力したときに前記予測モデルから出力される出力データと前記第１のデータ及び前記第２のデータとの間の前記補助データに応じた誤差に基づいて、前記予測モデルのモデルパラメータを学習する過程と、
を備えるデータ処理方法。
【請求項１０】
請求項１乃至８のいずれか１項に記載のデータ処理装置が備える各部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の事象の関係をモデル化する技術に関する。
【背景技術】
【０００２】
例えば、１日の歩数などの健康行動についての目標を設定するために、健康行動の時系列変化と健康診断又は病院での検査で得られる検査値の時系列変化との間の関係をモデル化することが求められている。
【０００３】
非特許文献１には、２つの事象の関係性を学習する手法の一例が開示されている。この手法は画像のように密なデータに対しては有効であるが、例えば医療健康データのように計測忘れや計測ミスなどによる欠損を含むデータを学習データとして用いる場合には効果的に学習することができない。
【０００４】
ところで、欠損を含むデータを用いて学習を行う方法としては、特許文献１に開示された手法がある。特許文献１には、１つの事象の時系列変化について学習を行う手法が記載されているが、２つの事象の関係性を学習する手法については記載されていない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１８／０４７６５５号
【非特許文献】
【０００６】
【非特許文献１】鈴木雅大、松尾豊、「深層生成モデルを用いたマルチモーダル学習」、The 30th Annual Conference of the Japanese Society for Artificial Intelligence, 2016
【発明の概要】
【発明が解決しようとする課題】
【０００７】
欠損を含むデータを用いて２つ又は３つ以上の事象間の関係をモデル化できる技術が求められている。
【０００８】
本発明は、上記の事情に着目してなされたものであり、欠損を含むデータを学習データとして用いて複数の事象の関係をモデル化できるデータ処理装置、データ処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の態様では、データ処理装置は、第１の事象に関する第１のデータと、前記第１の事象と関係する第２の事象に関する第２のデータと、前記第１のデータ及び前記第２のデータの少なくとも一方におけるデータ欠損状況に基づいた第１の補助データと、を結合した第１の入力データを生成する第１の生成部と、前記第１の入力データを予測モデルに入力したときに前記予測モデルから出力される出力データと前記第１のデータ及び前記第２のデータとの間の前記第１の補助データに応じた誤差に基づいて、前記予測モデルのモデルパラメータを学習する学習部と、を備える。
【００１０】
本発明の第２の態様では、前記第１の生成部は、前記第１のデータにおけるデータ欠損状況に基づいた補助データと、前記第２のデータにおけるデータ欠損状況に基づいた補助データと、を含む前記第１の補助データを生成する。
【００１１】
本発明の第３の態様では、前記第１の生成部は、前記第１のデータ及び前記第２のデータのそれぞれのデータ欠損度合いを算出し、前記第１のデータ及び前記第２のデータのうち、前記データ欠損度合いが高い方のデータを選択し、前記選択されたデータにおけるデータ欠損状況に基づいて、前記第１の補助データを生成する。
【００１２】
本発明の第４の態様では、前記第１の生成部は、前記第１のデータ及び前記第２のデータのうちの予め決定された方のデータにおけるデータ欠損状況に基づいて、前記第１の補助データを生成する。
【００１３】
本発明の第５の態様では、前記第１の生成部は、前記第１のデータ及び前記第２のデータのうちの予め決定された方のデータにおけるデータ欠損状況と、前記第１の事象と前記第２の事象との間の時間的関係と、に基づいて、前記第１の補助データを生成する。
【００１４】
本発明の第６の態様では、前記予測モデルは、入力層、少なくとも１つの中間層、及び出力層を有するニューラルネットワークであり、前記少なくとも１つの中間層のうちの１つは、前記第１のデータ及び前記第２のデータの両方の影響を受けるノードと、前記第１のデータの影響を受けるが前記第２のデータの影響を受けないノード及び前記第２のデータの影響を受けるが前記第１のデータの影響を受けないノードの少なくとも一方と、を有する。
【００１５】
本発明の第７の態様では、前記データ処理装置は、前記第１の事象に関する第３のデータと、前記第２の事象に関する第４のデータと、前記第３のデータ及び前記第４のデータの少なくとも一方におけるデータ欠損状況に基づいた第２の補助データと、を結合した第２の入力データを生成する第２の生成部と、前記第２の入力データを前記学習されたモデルパラメータが設定された前記予測モデルに入力して、前記第３のデータ及び前記第４のデータの少なくとも一方に含まれる欠損に対する予測値を得る予測部と、をさらに備える。
【００１６】
本発明の第８の態様では、前記データ処理装置は、前記第１の事象に関する第３のデータと、前記第２の事象に関する第４のデータと、前記第３のデータ及び前記第４のデータの少なくとも一方におけるデータ欠損状況に基づいた第２の補助データと、を結合した第２の入力データを生成する第２の生成部と、前記第２の入力データを前記学習されたモデルパラメータが設定された前記予測モデルに入力して、前記予測モデルの中間層から出力されるデータを得る予測部と、をさらに備える。
【発明の効果】
【００１７】
本発明の第１の態様によれば、誤差の算出が第１の補助データに応じて行われるので、データ欠損の影響を除外して誤差が算出される。これにより、欠損を含むデータを用いて２つの事象の関係を学習することができる。
【００１８】
本発明の第２の態様によれば、第１のデータ及び第２のデータの両方におけるデータ欠損の影響を除外して誤差が算出される。これにより、欠損を含むデータを用いて２つの事象の関係を効果的に学習することができる。
【００１９】
本発明の第３の態様によれば、例えば第１のデータと第２のデータとの間で欠損データ数に偏りがある場合において、２つの事象の関係を効果的に学習することができる。
【００２０】
本発明の第４の態様によれば、例えば重要度の高い方の事象に関するデータを重視して学習が行われる。これにより、重要度の高い方の事象に関するデータに対する予測精度を向上するモデルパラメータを得ることができる。
【００２１】
本発明の第５の態様によれば、例えば第１の事象と第２の事象との間での時間方向のズレがある場合において、２つの事象の関係を効果的に学習することができる。
【００２２】
本発明の第６の態様によれば、予測精度の高い予測モデルを提供することが可能になる。
【００２３】
本発明の第７の態様によれば、データ欠損部分に対応する予測値が得られる。これにより、医療健康データのような欠損を含むデータを、得られた予測値で補間することで、医療健康データに対する解析を正しく行えるようになる。
【００２４】
本発明の第８の態様によれば、第１の事象と第２の事象との関係を表す特徴量を得ることができる。
【００２５】
すなわち、本発明によれば、欠損を含むデータを学習データとして用いて複数の事象の関係をモデル化できるデータ処理装置、データ処理方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００２６】
【図１】一実施形態に係るデータ処理装置を示すブロック図。
【図２】同実施形態に係る予測モデルの構造例を示す図。
【図３】同実施形態に係る入力データを生成する方法の一例を説明する図。
【図４】同実施形態に係る入力データを生成する方法の他の例を説明する図。
【図５】同実施形態に係る学習処理を示すフローチャート。
【図６】同実施形態に係る予測処理を示すフローチャート。
【図７】同実施形態に係る予測処理を説明する図。
【図８】同実施形態に係る予測処理を説明する図。
【図９】同実施形態に係る予測処理を説明する図。
【図１０】一実施形態に係る補助データを生成する方法を説明する図。
【図１１】一実施形態に係る補助データを生成する方法を説明する図。
【図１２】一実施形態に係る複数種類の生体指標がある場合の入力データを生成する方法例を説明する図。
【図１３】一実施形態に係る複数種類の生体指標がある場合の入力データを生成する方法の他の例を説明する図。
【発明を実施するための形態】
【００２７】
以下、図面を参照しながら本発明の実施形態を説明する。実施形態に係るデータ処理装置は、第１の事象に関するデータ及び第１の事象と関係する第２の事象に関するデータを用いて、第１の事象と第２の事象との間の関係を表すモデルを学習する。このデータ処理装置は、第１の事象に関するデータ及び第１の事象と関係する第２の事象に関するデータがデータ欠損を含む場合にも、効果的な学習を行うことができる。
【００２８】
＜一実施形態＞
［構成］
図１は、本発明の一実施形態にデータ処理装置１を概略的に示している。データ処理装置１は、例えば、パーソナルコンピュータ、スマートフォン、サーバなどのコンピュータで構成される。図１の例では、データ処理装置１は、入出力インタフェースユニット１０、制御ユニット２０、及び記憶ユニット３０を備える。
【００２９】
本実施形態では、データ処理装置１は、サーバに実装されており、インターネットなどの通信ネットワークＮＷを介して外部の装置と通信可能であるものとする。
【００３０】
入出力インタフェースユニット１０は、例えばＬＡＮ（Local Area Network）ポート及びＵＳＢ（Universal Serial Bus）ポートなどのコネクタを有する。入出力インタフェースユニット１０は、例えばＬＡＮケーブルを用いて通信ネットワークＮＷに接続され、通信ネットワークＮＷを介して外部の装置との間でデータを送受信する。さらに、入出力インタフェースユニット１０は、ＵＳＢケーブルで表示デバイス及び入力デバイスに接続され、表示デバイス及び入力デバイスとの間でデータを送受信する。なお、入出力インタフェースユニット１０は、例えば無線ＬＡＮモジュール又はBluetooth（登録商標）モジュールなどの無線モジュールを備えてよい。
【００３１】
制御ユニット２０は、ＣＰＵ（Central Processing Unit）などのハードウェアプロセッサ、及びＲＯＭ（Read Only Memory）などのプログラムメモリを備え、入出力インタフェースユニット１０と記憶ユニット３０とを含む構成要素を制御する。制御ユニット２０は、ハードウェアプロセッサでプログラムメモリに格納されたプログラムを実行することにより、データ受付部２１、入力データ生成部２２、学習部２３、予測部２４、及び出力制御部２５として機能する。
【００３２】
記憶ユニット３０は、記憶媒体として例えばＨＤＤ（Hard Disk Drive）又はＳＳＤ（Solid State Drive）などの随時書込及び読み出しが可能な不揮発性メモリを用いたものであり、記憶領域としてデータ記憶部３１及びモデル記憶部３２を備える。
【００３３】
上記プログラムは、制御ユニット２０のプログラムメモリに代えて、記憶ユニット３０に格納されていてもよい。一例では、制御ユニット２０は、入出力インタフェースユニット１０を介して、通信ネットワークＮＷ上に設けられた外部装置からプログラムをダウンロードし、プログラムを記憶ユニット３０に格納してよい。他の例では、制御ユニット２０は、磁気ディスク、光ディスク、又は半導体メモリなどの可搬記憶媒体からプログラムを取得し、プログラムを記憶ユニット３０に格納してよい。
【００３４】
データ受付部２１は、ユーザの健康行動に関するデータ及びユーザの生体指標に関するデータを受け付け、受け付けたデータをデータ記憶部３１に記憶させる。以下では、ユーザの健康行動に関するデータを健康行動データと称し、ユーザの生体指標に関するデータを生体指標データと称する。ユーザの健康行動が第１の事象の一例であり、ユーザの生体指標が第２の事象の一例である。
【００３５】
生体指標は、生体の健康状態を表す指標を指す。生体指標は、例えば、血圧、脈拍数、心拍数、体重、体脂肪率、血糖値、総コレステロール、中性脂肪、尿酸値、病院での問診（アンケート）に対する回答などである。生体指標データは、家庭での計測により取得されたものでもよく、病院での検査（例えば血液検査又は尿検査）により取得されたものであってもよい。健康行動は、生体指標に影響を与える行動を指す。健康行動は、例えば、歩数、睡眠時間、摂取カロリーなどである。健康行動データは、例えば、歩数計などのウェアラブルデバイスを用いて取得することができる。
【００３６】
本実施形態では、健康行動データ及び生体指標データが１日毎に取得されるものとする。ただし、例えば、生体指標データが病院での検査で取得されるものである場合、ユーザが通院しない日には生体指標データが取得されない。このような理由により健康行動データにデータ欠損が発生することがある。また、健康行動データについても、計測忘れなどの理由によりデータ欠損が発生することがある。なお、データ取得の間隔は、１日に限らず、例えば、１時間又は１週間などであってよい。
【００３７】
入力データ生成部２２は、データ記憶部３１に記憶されている健康行動データ及び生体指標データから、予測モデルの設計に応じた入力データを生成する。具体的には、入力データ生成部２２は、データ記憶部３１に記憶されている健康行動データから、所定日数分の健康行動データを抽出し、データ記憶部３１に記憶されている生体指標データから、所定日数分の生体指標データを抽出し、抽出した健康行動データ及び生体指標データにおけるデータ欠損状況に基づいて補助データを生成する。補助データは、健康行動データに関する補助データと、生体指標データに関する補助データと、を有する。続いて、入力データ生成部２２は、抽出した健康行動データと、抽出した生体指標データと、生成した補助データと、を結合して、入力データを生成する。
【００３８】
予測モデルのモデルパラメータを学習する段階では、入力データ生成部２２は、生成した入力データを学習部２３に与える。典型的には、入力データ生成部２２は、複数の入力データからなる入力データセットを生成し、生成した入力データセットを学習部２３に与える。入力データセットは、欠損を含む入力データと、欠損の無い入力データと、を含み得る。予測モデルを用いた予測を行う段階では、入力データ生成部２２は、データ欠損を含む入力データを生成し、生成した入力データを予測部２４に与える。
【００３９】
学習部２３は、入力データ生成部２２により生成された入力データを用いて予測モデルのモデルパラメータを学習する。具体的には、学習部２３は、入力データ生成部２２により生成された入力データを予測モデルに入力したときに予測モデルから出力される出力データと入力データ生成部２２により抽出された健康行動データ及び生体指標データとの間における、入力データ生成部２２により生成された補助データに応じた誤差に基づいて、予測モデルのモデルパラメータを学習する。例えば、学習部２３は、上記の誤差が最小になるように、モデルパラメータを最適化する。
【００４０】
予測部２４は、学習済み予測モデル（すなわち学習部２３によって学習されたモデルパラメータが設定された予測モデル）を使用して、入力データ生成部２２により生成された入力データに含まれる欠損に対する予測値を得る。具体的には、予測部２４は、入力データを学習済み予測モデルに入力し、学習済み予測モデルから出力された、欠損に対する予測値を含む出力データを取得する。
【００４１】
出力制御部２５は、予測部２４により取得された予測値を出力する。例えば、出力制御部２５は、入出力インタフェースユニット１０を介して外部の装置（例えば医師が使用するコンピュータ端末）に予測値を送信する。
【００４２】
図２は、本実施形態に係る予測モデルの構造例を概略的に示している。図２に示すように、本実施形態に係る予測モデルは、入力層５１、４つの中間層５２〜５５、及び出力層５６を備えるニューラルネットワークである。予測モデルは、健康行動データ及び生体指標データを入力とし、健康行動データを復元するネットワークと生体指標データを復元するネットワークで構成され、これらのネットワークは中間層の一部（具体的には中間層５４）を共有する。
【００４３】
入力層５１の次元数は１６であり、中間層５２の次元数は１６であり、中間層５３の次元数は８であり、中間層５４の次元数は４であり、中間層５５の次元数は８であり、出力層５６の次元数は８である。図２の例では、予測モデルは、オートエンコーダである。
【００４４】
入力データを要素数が１６の配列（１６行１列の行列）で表すと、第１から第４の要素に生体指標データが割り当てられ、第５から第８の要素に生体指標データに関する補助データが割り当てられ、第９から第１２の要素に健康行動データが割り当てられ、第１３から第１６の要素に健康行動データに関する補助データが割り当てられる。図２において、配列Ｘは健康行動データを表し、配列Ｙは生体指標データを表し、配列ＷＸは健康行動データに関する補助データを表し、配列ＷＹは生体指標データに関する補助データを表す。
【００４５】
配列ＷＸは、健康行動データにおけるデータ欠損状況に基づいて生成される。配列ＷＹは、生体指標データにおけるデータ欠損状況に基づいて生成される。補助データにおいて、値「１」は、データがあること（非欠損）を示し、値「０」は、データがないこと（欠損）を示す。入力用の配列に示された記号「−」は欠損を表す。実際の配列では、欠損部分には例えば「０」などの値が代入される。配列Ｙの第２及び第４の要素が欠損しており、これに対応して第１及び第３の要素が「１」であり且つ第２及び第４の要素が「０」である配列ＷＹが生成される。さらに、配列Ｘの第４の要素が欠損しており、これに対応して第１から第３の要素が「１」であり且つ第４の要素が「０」である配列ＷＸが生成される。
【００４６】
出力データを要素数が８の配列（８行１列の行列）で表すと、第１から第４の要素に生体指標データが割り当てられ、第５から第８の要素に健康行動データが割り当てられる。配列Ｙ〜が生体指標データを表し、Ｘ〜が健康行動データを表す。
【００４７】
入力層５１の配列をＺ１、中間層５２の配列をＺ２、中間層５３の配列をＺ３、中間層５４の配列をＺ４、中間層５５の配列をＺ５、出力層５６の配列をＺ６と表す。配列Ｚ１〜Ｚ６はそれぞれ、以下の式（１ａ）〜（１ｆ）のように表される。
【００４８】
Ｚ１＝（ｚ１,１ ｚ１,２ ｚ１,３ ｚ１,４ ・・・ ｚ１,１６）Ｔ      …（１ａ）
Ｚ２＝（ｚ２,１ ｚ２,２ ｚ２,３ ｚ２,４ ・・・ ｚ２,１６）Ｔ      …（１ｂ）
Ｚ３＝（ｚ３,１ ｚ３,２ ｚ３,３ ｚ３,４ ・・・ ｚ３,８）Ｔ       …（１ｃ）
Ｚ４＝（ｚ４,１ ｚ４,２ ｚ４,３ ｚ４,４）Ｔ                    …（１ｄ）
Ｚ５＝（ｚ５,１ ｚ５,２ ｚ５,３ ｚ５,４ ・・・ ｚ５,８）Ｔ       …（１ｅ）
Ｚ６＝（ｚ６,１ ｚ６,２ ｚ６,３ ｚ６,４ ・・・ ｚ６,８）Ｔ       …（１ｆ）
ここで、上付きの「Ｔ」は転置を表す。
【００４９】
また、各層の配列は、以下の式（２）のような漸化式で表される。  
Ｚｉ＋１＝ｆｉ（ＡｉＺｉ＋Ｂｉ）      …（２）
ここで、Ａｉは重みパラメータの行列であり、Ｂｉはバイアスパラメータの配列であり、ｆｉは活性化関数を表す。
【００５０】
一例として、活性化関数ｆ１、ｆ３、ｆ４、ｆ５は、以下の式（３ａ）のように線形結合（単純パーセプトロン）であり、活性化関数ｆ２は、以下の式（３ｂ）のようにＲｅＬＵ（ランプ関数）である。  
ｆ１（ｘ）＝ｆ３（ｘ）＝ｆ４（ｘ）＝ｆ５（ｘ）＝ｘ      …（３ａ）
ｆ２（ｘ）＝ｍａｘ（０，ｘ）                          …（３ｂ）
出力層５６の配列Ｚ６は、以下の式（４）のように表される。
【００５１】
Ｚ６＝ｆ５（Ａ５（ｆ４（Ａ４（ｆ３（Ａ３（ｆ２（Ａ２（ｆ１（Ａ１Ｘ１＋Ｂ１））＋Ｂ２））＋Ｂ３））＋Ｂ４））＋Ｂ５）                                              …（４）
本実施形態では、学習部２３は、下記の式（５）に示す誤差関数に基づいて算出される誤差Ｌが最小になるように、勾配法でモデルパラメータを学習する。
【００５２】
【数１】
2020052915.tif 000003
【００５３】
式（５）において、「・」は行列の内積を表す。配列Ｘ、Ｙ、ＷＸ、ＷＹ、Ｘ〜、Ｙ〜は、以下のように表される。  
Ｘ＝（ｚ１,９ ｚ１,１０ ｚ１,１１ ｚ１,１２）Ｔ
Ｙ＝（ｚ１,１ ｚ１,２ ｚ１,３ ｚ１,４）Ｔ
ＷＸ＝（ｚ１,１３ ｚ１,１４ ｚ１,１５ ｚ１,１６）Ｔ
ＷＹ＝（ｚ１,５ ｚ１,６ ｚ１,７ ｚ１,８）Ｔ
Ｘ〜＝（ｚ６,５ ｚ６,６ ｚ６,７ ｚ６,８）Ｔ
Ｙ〜＝（ｚ６,１ ｚ６,２ ｚ６,３ ｚ６,４）Ｔ
式（５）に示すように、誤差関数には、データ欠損状況を表す配列ＷＸ、ＷＹが導入される。これにより、欠損部分に代入した値は誤差Ｌに加味されないようになる。言い換えると、欠損の無い部分で誤差Ｌが算出される。
【００５４】
勾配法としては、例えばＡｄａｍ、ＳＧＤ、ＡｄａＤｅｌｔａなどの確率的勾配降下法を使用することができる。勾配法に限らず、他の手法を使用してもよい。
【００５５】
本実施形態に係る予測モデルに関して、層の構成やサイズ、活性化関数は上述の例に限定されない。別の具体例として、活性化関数は、ステップ関数、シグモイド関数、多項式、絶対値、ｍａｘｏｕｔ、ソフトサイン、ソフトプラスなどであってもよい。予測モデルは、図２に示すようなフィードフォワードニューラルネットワークに限らず、Ｌｏｎｇ  ｓｈｏｒｔ−ｔｅｒｍ  ｍｅｍｏｒｙ（ＬＳＴＭ）に代表されるリカレントニューラルネットワークであってもよい。
【００５６】
図２の例では、中間層５４は健康行動データ及び生体指標データの両方の影響を受ける４つのノードを有する。中間層５４は、生体指標データの影響を受けるが健康行動データの影響を受けない１以上の（例えば４つの）ノード、及び／又は、健康行動データの影響を受けるが生体指標データの影響を受けない１以上の（例えば４つの）ノードをさらに有してもよい。生体指標データの影響を受けるが健康行動データの影響を受けないノードは、例えば、入力側では中間層５３の上側４つのノードのみに接続されるノードである。健康行動データの影響を受けるが生体指標データの影響を受けないノードは、例えば、入力側では中間層５３の下側４つのノードのみに接続されるノードである。中間層５４に追加され得るこれらのノードの出力は、例えば、中間層５５の図２に示されるノードに接続されてよい。特に中間層５４に追加され得るこれらのノードの出力について、生体指標データの影響を受けるが健康行動データの影響を受けないノードの出力は、中間層５５の図２に示されるノードのうち、復元された生体指標の配列に影響するノードのみに出力し、健康行動データの影響を受けるが生体指標データの影響を受けないノードの出力は、復元された健康行動の配列に影響するノードのみに出力するよう構成してもよいし、あるいは入力と出力の関係がクロスするよう、生体指標データのみの影響を受けるノードの出力を復元された健康行動の配列に影響するノードのみに出力し、健康行動データのみの影響を受けるノードの出力を復元された生体指標の配列に影響するノードのみに出力するよう構成してもよい。また、中間層５５がさらなるノード（図２に示されない）を有し、中間層５４に追加され得るこれらのノードの出力は、中間層５５のさらなるノードに接続されてもよい。中間層５５のさらなるノードは、中間層５４の図２に示される４つのノードに接続されていてもよいし、接続されていなくてもよい。これらのノードを中間層５４に追加することにより、予測モデルを用いたデータ予測の精度が向上し得る。
【００５７】
図３を参照して、学習用の入力データを生成する方法例を説明する。図３は、データ記憶部３１に記憶されている生体指標データ及び健康行動データと、当該生体指標データ及び健康行動データに基づいて生成される学習用の入力データを示している。ここでは、生体指標データは血圧（収縮期血圧）の計測値の時系列データであり、健康行動データは歩数の計測値の時系列データである。図３に示される例では、生体指標データに関しては、６月２５日、６月３０日、７月５日のデータが欠損している。また、健康行動データに関しては、６月２４日、６月２８日のデータが欠損している。
【００５８】
図２に示した構造を有する予測モデルでは、４日分の生体指標データ及び健康行動データを含む入力データが要求される。入力データ生成部２２は、データを４日分のデータに区切って入力データを生成する。具体的には、入力データ生成部２２は、６月２２日から６月２５日までのデータから入力データを生成し、６月２６日から６月２９日までのデータから入力データを生成し、６月３０日から７月３日までのデータから入力データを生成するなどして、複数の入力データを生成する。
【００５９】
図３において「ＮＡ」は欠損を示す。入力データでは、欠損部分（欠損に対応する要素）に値「０」を代入する。値「０」に代えて、平均値又は中央値などの値を欠損部分に代入してもよい。
【００６０】
６月２２日から６月２４日では、血圧計測値が得られているので、配列ＷＹの要素を値「１」とし、６月２５日では、生体指標データが欠損している（血圧計測値が得られていない）ので、配列ＷＹの要素を値「０」とする。同様に、６月２２日、６月２３日、６月２５日では、歩数計測値が得られているので、配列ＷＸの要素を値「１」とし、６月２４日では、健康行動データが欠損しているので、配列ＷＸの要素を値「０」とする。
【００６１】
６月２２日から６月２５日までの４日分のデータからは、以下に示す配列Ｘ、Ｙ、ＷＸ、ＷＹが得られる。  
Ｘ＝（7851 8612 0 10594）Ｔ
Ｙ＝（110 122 121 0）Ｔ
ＷＸ＝（1 1 0 1）Ｔ
ＷＹ＝（1 1 1 0）Ｔ
入力データとしての配列Ｚ１は下記のように得られる。  
Ｚ１＝（110 122 121 0 1 1 1 0 7851 8612 0 10594 1 1 0 1）Ｔ
同様にして、６月２６日から６月２９日までの４日分のデータからは、入力データとしての配列Ｚ１は下記のように得られる。  
Ｚ１＝（115 128 134 139 1 1 1 1 6741 6955 0 7462 1 1 0 1）Ｔ
図３に示される入力データを生成する方法は一例に過ぎない。入力データ生成部２２は、図４に示すように、１日ずつずらしながら４日分のデータを抽出することで、入力データを生成してもよい。具体的には、６月２２日から６月２５日までの４日分のデータから１つの入力データを生成し、６月２３日から６月２６日までの４日分のデータから１つの入力データを生成し、６月２４日から６月２７日までの４日分のデータから１つの入力データを生成するなどして、多数の入力データを生成してよい。
【００６２】
データ処理装置１の機能の一部又は全部は、例えばＡＳＩＣ（Application Specific Integrated Circuit）又はＦＰＧＡ（Field-Programmable Gate Array）などのハードウェア回路により実現されてもよい。また、記憶ユニット３０がデータ記憶部３１及びモデル記憶部３２の少なくとも一方を備えず、データ記憶部３１及びモデル記憶部３２の少なくとも一方が、例えば、通信ネットワークＮＷ上の記憶装置に設けられていてもよい。
【００６３】
本実施形態では、学習処理を行う学習装置及び予測処理を行う予測装置の両方がデータ処理装置１に設けられている。しかしながら、学習装置及び予測装置は別々の装置として実現されてもよい。
【００６４】
［動作］
上述した構成を有するデータ処理装置１の動作例について説明する。
【００６５】
（学習処理）
図５を参照して、本実施形態に係る学習処理について説明する。図５は、図１に示したデータ処理装置１により実行される学習処理を例示する。
【００６６】
まず、データ受付部２１は、入出力インタフェースユニット１０を介して外部の装置から、学習用の健康行動データ及び生体指標データを取得する（ステップＳ１０１）。例えば、データ受付部２１は、図３に示されるような長い期間にわって記録された健康行動データ及び生体指標データを取得する。
【００６７】
入力データ生成部２２は、データ受付部２１により取得された健康行動データ及び生体指標データに基づいて、入力データを生成する（ステップＳ１０２）。具体的には、入力データ生成部２２は、データ受付部２１により取得された健康行動データ及び生体指標データから、予測モデルの入力次元数に応じた日数分の健康行動データ及び生体指標データを抽出し、抽出した健康行動データ及び生体指標データにおけるデータ欠損状況に基づいて補助データを生成し、抽出した健康行動データ及び生体指標データと生成した補助データとを結合することで入力データを生成する。この処理を繰り返すことで、複数の入力データが生成される。例えば、図３に示されるような入力データ（入力１、入力２、・・・）が生成される。
【００６８】
学習部２３は、予測モデルのモデルパラメータを初期化する（ステップＳ１０３）。モデルパラメータは、重みパラメータ（具体的には行列Ａ１、Ａ２、Ａ３、Ａ４、Ａ５）及びバイアスパラメータ（具体的には配列Ｂ１、Ｂ２、Ｂ３、Ｂ４、Ｂ５）を含む。例えば、学習部２３は、重みパラメータ及びバイアスパラメータにランダムな値を代入する。
【００６９】
次に、学習部２３は、入力データ生成部２２により生成された入力データを用いて、予測モデルのモデルパラメータを学習する（ステップＳ１０４〜Ｓ１０６）。
【００７０】
具体的には、学習部２３は、各入力データを予測モデルに入力したときに予測モデルから出力される出力データを取得する。学習部２３は、入力データに含まれる健康行動データ及び生体指標データと出力データとの間の誤差を、入力データ生成部２２により生成された補助データに応じて算出する（ステップＳ１０４）。誤差は、例えば、上記式（５）に示す誤差関数に従って算出される。
【００７１】
学習部２３は、誤差の勾配が収束したか否かを判定する（ステップＳ１０５）。誤差の勾配が収束していない場合、学習部２３は、勾配法に従ってモデルパラメータを更新する（ステップＳ１０６）。そして、学習部２３は、更新されたモデルパラメータを有する予測モデルを用いて、誤差を算出する（ステップＳ１０４）。
【００７２】
ステップＳ１４及びＳ１６に示される処理を繰り返して誤差の勾配が収束したら、学習部２３は、現在のモデルパラメータを、予測に用いるモデルパラメータとして決定し（ステップＳ１０７）、モデル記憶部３２に記憶させる。
【００７３】
（推定処理）
図６を参照して、本実施形態に係る予測処理について説明する。図６は、図１に示したデータ処理装置１により実行される推定処理を例示する。
【００７４】
図６のステップＳ２０１において、データ受付部２１は、入出力インタフェースユニット１０を介して外部の装置から、予測処理のための健康行動データ及び生体指標データを取得する。図７（ａ）は、予測処理のための健康行動データ及び生体指標データの一例を示す。図７（ａ）の例では、健康行動データの一部が欠損している。
【００７５】
図６のステップＳ２０２において、入力データ生成部２２は、データ受付部２１により取得された健康行動データ及び生体指標データに基づいて入力データを生成する。具体的には、入力データ生成部２２は、健康行動データにおけるデータ欠損状況に基づいて、健康行動データに関する補助データを生成し、生体指標データにおけるデータ欠損状況に基づいて、生体指標データに関する補助データを生成する。例えば、図７（ｂ）に示す補助データ（配列ＷＸ、ＷＹ）が、図７（ａ）に示される健康行動データ（配列Ｘ）及び生体指標データ（配列Ｙ）に基づいて生成される。続いて、入力データ生成部２２は、生成した補助データと、データ受付部２１により取得された健康行動データ及び生体指標データと、を結合して、入力データを生成する。例えば、図７（ｃ）に示す入力データが、図７（ａ）に示される健康行動データ及び生体指標データと、図７（ｂ）に示される補助データと、を結合することで得られる。
【００７６】
図６のステップＳ２０３において、予測部２４は、モデル記憶部３２からモデルパラメータを読み込み、読み込んだモデルパラメータを予測モデルに設定し、入力データ生成部２２により生成された入力データを予測モデルに入力する。それにより、予測部２４は、欠損部分が予測値で補間された出力データを取得する。例えば、図７（ｄ）に示す出力データが、図７（ｃ）に示される入力データを予測モデルに入力することにより得られる。
【００７７】
図６のステップＳ２０４において、出力制御部２５は、予測部２４により取得された出力データを予測結果として出力する。図７（ｃ）及び図７（ｄ）に示すように、欠損以外の部分では、配列Ｘと配列Ｘ〜との間及び配列Ｙと配列Ｙ〜との間で差が生じることがある。例えば、配列Ｙの第１の要素は１３２であるが、配列Ｙ〜の第１の要素は１３１になっている。このため、出力制御部２５は、データ受付部２１により取得された生体指標データに欠損に対応する予測値を代入したものを予測結果として出力してもよい。
【００７８】
図７（ａ）から図７（ｄ）を参照して説明した例は、図８に示すように、生体指標データに欠損がなく、健康行動データの一部が欠損しており、その欠損に対する予測値を得るものである。これとは逆に、図９に示すように、健康行動データに欠損がなく、生体指標データの一部が欠損している場合に、その欠損に対する予測値を得ることも可能である。また、健康行動データ及び生体指標データの両方に欠損がある場合にも、それらの欠損に対する予測値を得ることも可能である。
【００７９】
図５に示した学習処理及び図６に示した予測処理は一例に過ぎず、処理手順又は各処理の内容は適宜変更することが可能である。例えば、図６のステップＳ２０４では、予測部２４は、予測モデルの中間層５４から出力されるデータ（配列Ｚ４）を取得してもよい。このデータは健康行動と生体指標との関係を表す抽象化された特徴量を表す。このデータは、予測モデルとは異なる学習器の入力として使用することができる。学習器としては、例えば、ロジスティック回帰やサポートベクターマシン、ランダムフォレストのような分類器や、重回帰分析や回帰木などを用いた回帰モデルを使用することができる。
【００８０】
［効果］
本実施形態に係るデータ処理装置１は、健康行動データと、生体指標データと、健康行動データ及び生体指標データにおけるデータ欠損状況に基づいた補助データと、を結合した入力データを生成し、補助データに応じて算出される、入力データを予測モデルに入力したときに予測モデルから出力される出力データと健康行動データ及び生体指標データとの間の誤差を最小化するように、予測モデルのモデルパラメータを学習する。
【００８１】
上記の構成では、データ欠損の影響を除外して誤差を算出することになる。それにより、欠損を含むデータを用いて、健康行動データと生体指標データとの関係をモデル化した予測モデルのモデルパラメータを効果的に学習することができる。
【００８２】
さらに、データ処理装置１は、上述したようにして学習されたモデルパラメータが設定された予測モデルを用いることで、健康行動データと生体指標データとのうちの少なくとも一方に含まれる欠損に対する予測値を得ることができるようになる。
【００８３】
予測処理は、計測忘れなどにより生じた欠損に対する値を予測すること以外の用途に利用することもできる。例えば、予測処理は、生体指標データに仮のデータ（例えば所望する血圧の時間的変化を示すデータ）を設定し、そのデータを得るために必要な健康行動を知るために利用することができる。これにより、健康行動についての目標を設定することが可能になる。
【００８４】
＜他の実施形態＞
なお、この発明は上記実施形態に限定されるものではない。
【００８５】
上記実施形態では、健康行動データ及び生体指標データの両方におけるデータ欠損状況に基づいて補助データを生成する。補助データを生成する方法は、上述した実施形態において説明した方法に限らない。補助データは、健康行動データ及び生体指標データの一方におけるデータ欠損状況に基づいて生成されてもよい。
【００８６】
例えば、生体指標データが病院での検査により取得され、健康行動データがウェアラブルデバイスで取得される場合を想定する。この場合、生体指標データはユーザが病院に行ったときにしか取得されない。このため、健康行動データに比べて、生体指標データの欠損の比率が大きくなる。このような欠損の偏りは、健康指標データ及び健康行動データの解析結果に誤差をもたらし得る。
【００８７】
一実施形態では、入力データ生成部２２は、健康行動データ及び生体指標データのそれぞれについて欠損度合いを算出し、健康行動データ及び生体指標データのうち、欠損度合いが高い方のデータを選択し、選択したデータにおけるデータ欠損状況に基づいて補助データを生成してよい。本実施形態では、欠損度合いは、配列内で値がゼロである要素の数である。これに代えて、欠損度合いは、例えば、配列の要素数に対する値がゼロである要素数の割合であってよい。
【００８８】
図１０に示す例では、生体指標データの欠損度合いが２であり、健康行動データの欠損度合いが１である。入力データ生成部２２は、欠損度合いがより高い生体指標データにおけるデータ欠損状況に基づいて、生体指標データに関する補助データ（配列ＷＹ）を生成し、生体指標データに関する補助データを複製することで健康行動データに関する補助データ（配列ＷＸ）を生成する。すなわち、健康行動データに関する補助データは、生体指標データに関する補助データと同じに設定される。この場合、評価関数は下記の式（６）で表される。
【００８９】
【数２】
2020052915.tif 000004
【００９０】
この実施形態によれば、例えば健康行動データと生体指標データとの間で欠損に偏りがある場合において、健康行動と生体指標との関係を効果的に学習することができる。
【００９１】
一実施形態では、入力データ生成部２２は、健康行動及び生体指標のそれぞれの重要度に基づいて選択される、健康行動データ及び生体指標データの一方におけるデータ欠損状況に基づいて、補助データを生成してよい。健康行動及び生体指標のそれぞれの重要度は、例えば、医師などのオペレータにより設定されてよい。例えば生体指標の重要度が健康行動の重要度より高い場合、入力データ生成部２２は、生体指標データにおけるデータ欠損状況に基づいて、生体指標データに関する補助データ（配列ＷＹ）を生成し、生体指標データに関する補助データを複製することで健康行動データに関する補助データ（配列ＷＸ）を生成する。この場合、評価関数は上記の式（６）で表される。
【００９２】
この実施形態によれば、例えば重要度の高い方のデータを重視して学習が行われる。これにより、重要度の高い方のデータに対する予測精度を向上するモデルパラメータを得ることができる。
【００９３】
健康行動と生体指標との間の関係に時間方向のズレがあることがある。例えば、健康行動をとってからその効果が生体指標に反映されるまでに時差があることがある。言い換えると、直前の健康行動の結果が即座に生体指標に反映されず、ある程度の期間がたってから生体指標に効果が現れる場合がある。
【００９４】
一実施形態では、健康行動と生体指標との間の時間的関係が考慮される。この実施形態では、入力データ生成部２２は、健康行動データにおけるデータ欠損状況に基づいて、行動指標データに関する補助データ（配列ＷＸ）を生成し、健康行動データに関する補助データと上記の時間的関係とに基づいて、生体指標データに関する補助データ（配列ＷＹ）を生成する。健康行動の効果が生体指標に現れるステップが設定される。ステップは、入力の配列における要素間の時間差に相当する。ここでは、健康行動の効果が１日（１ステップ）遅れて生体指標に現れる場合を考える。また、配列の要素は日にちの順に整列されているものとする。図１１に示すように、配列ＷＸの要素を１ステップずらした配列を作成し、この配列の第１の要素には値「０」を代入する。この配列を配列ＷＹとする。この手順は、１ステップずらす処理を再帰的にプログラムで実行することで実現することができる。また、配列ＷＹは下記に示す行列Ｈを用いた行列演算によって算出されてもよい。
【００９５】
【数３】
2020052915.tif 000005
【００９６】
例えばＷＸ＝（1 0 1 0）Ｔである場合、ＷＹは下記のように求まる。
【００９７】
【数４】
2020052915.tif 000006
【００９８】
この実施形態では、評価関数は下記の式（７）で表される。
【００９９】
【数５】
2020052915.tif 000007
【０１００】
この実施形態によれば、健康行動と生体指標との間での時間方向のズレが考慮されるので、健康行動と生体指標との関係をより正確にモデル化することができるようになる。
【０１０１】
上記実施形態では健康行動及び生体指標という２つの事象の関係を学習する場合について説明したが、データ処理装置１は３つ以上の事象の関係を学習することもできる。例えば、図１２に示すように２種類の生体指標に関する生体指標データが取得される場合、配列Ｘは、２種類の生体指標のそれぞれについて所定日数分の生体指標データを抽出することで生成される。図１２の例では、３日分の生体指標データが抽出される。この場合、健康行動データについても３日分のデータが抽出される。なお、図４を参照して説明したように、１日ずつずらしてデータを抽出するようにしてもよい。
【０１０２】
また、複数種類のデータが存在する場合、図１３に示すように、複数種類のデータをそれぞれ入力のチャネルに割り当てて入力してもよい。これは、ＲＧＢ画像のように１ピクセルが３つの情報を持っている際に、画像データをニューラルネットに入力するようなときに使われる一般的な手法で実現される。
【０１０３】
上述した実施形態では、時系列データを扱う例に関して説明した。しかしながら、上述した実施形態は、時系列データ以外のデータに対しても適用可能である。例えば、観測地点毎に記録された気温のデータを扱ってもよく、画像データを扱ってもよい。画像データのように２次元の配列で表現されるデータの場合は、複数種類のデータが存在する場合と同様にして、行毎に情報を抽出し、それらを結合することで入力データを生成してよい。
【０１０４】
要するに本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【０１０５】
１…データ処理装置、
１０…入出力インタフェースユニット、
２０…制御ユニット、２１…データ受付部、２２…入力データ生成部、２３…学習部、
２４…予測部、２５…出力制御部、
３０…記憶ユニット、３１…データ記憶部、３２…モデル記憶部、
５１…入力層、５２〜５５…中間層、５６…出力層。
【図１】
2020052915.tif 000008
【図２】
2020052915.tif 000009
【図３】
2020052915.tif 000010
【図４】
2020052915.tif 000011
【図５】
2020052915.tif 000012
【図６】
2020052915.tif 000013
【図７】
2020052915.tif 000014
【図８】
2020052915.tif 000015
【図９】
2020052915.tif 000016
【図１０】
2020052915.tif 000017
【図１１】
2020052915.tif 000018
【図１２】
2020052915.tif 000019
【図１３】
2020052915.tif 000020