(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023072458
(43)【公開日】2023-05-24
(54)【発明の名称】計算機システム及び介入効果予測方法
(51)【国際特許分類】
G16H 20/00 20180101AFI20230517BHJP
G06N 20/00 20190101ALI20230517BHJP
【FI】
G16H20/00
G06N20/00
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021185031
(22)【出願日】2021-11-12
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】朱 佩菲
(72)【発明者】
【氏名】荻野 昌宏
(72)【発明者】
【氏名】黎 子盛
【テーマコード(参考)】
5L099
【Fターム(参考)】
5L099AA15
(57)【要約】 (修正有)
【課題】継続的に複数種類の介入を対象者に対して行う場合の介入効果を予測するシステム及び方法を提供する。
【解決手段】計算機100は、人に行った介入に関する値を含む時系列データを用いて出力値を算出する第1モデルと、第1モデルの出力値を特徴量空間に写像することによって特徴量を算出する第2モデルと、特徴量から介入の効果の予測値を出力する第3モデルと、を管理する。時系列データは、介入が行われた時間、人の状態を表す複数の因子並びに介入の種別及び程度を含むデータ列を複数含む。計算機100は、第1モデル、第2モデル及び第3モデルを用いて、時系列データに対応する連続的な介入の効果の予測値を算出する。第2モデルは、機械学習で用いる複数のデータ列の特徴量空間における分布の差異が小さくなるように、第1モデルの出力値を特徴量空間に写像する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
人への複数の介入の効果を予測する計算機システムであって、
プロセッサ及び前記プロセッサに接続される記憶装置を有する、少なくとも一つの計算機を備え、
人に行った介入に関する値を含む時系列データを用いて出力値を算出する第1モデルと、機械学習により生成され、前記第1モデルの出力値を特徴量空間に写像することによって特徴量を算出する第2モデルと、前記特徴量から前記人に対する介入の効果の予測値を出力する第3モデルと、を管理し、
前記時系列データは、前記人に対して前記介入が行われた時間、前記人の状態を表す複数の因子、並びに、前記人に対して行われた前記介入の種別及び程度を示す値を含むデータ列を複数含み、
前記プロセッサは、
前記データ列を前記第1モデルに入力することによって前記出力値を算出する処理と、
前記出力値を前記第2モデルに入力することによって前記特徴量を算出する処理と、
前記特徴量を前記第3モデルに入力することによって前記時系列データに対応する連続的な前記介入の効果の予測値を算出する処理と、
を含む予測処理を実行し、
前記第2モデルは、前記機械学習で用いる複数のデータ列の前記特徴量空間における分布の差異が小さくなるように、前記第1モデルの出力値を前記特徴量空間に写像することを特徴とする計算機システム。
【請求項2】
請求項1に記載の計算機システムであって、
前記特徴量から前記人に対して行われる前記介入の種別を識別する第4モデルと、前記第4モデルが出力した前記介入の予測種別、学習データに含まれる前記介入の種別、前記介入の効果の予測値、及び前記学習データに含まれる前記介入の効果値から定義される損失関数を管理し、
前記プロセッサは、
前記人の識別情報、前記人に対して前記介入が行われた時間、前記人の前記複数の因子の値、前記人が受けた前記介入の種別及び程度、並びに前記介入の効果値を含む、複数のデータ列を含む前記学習データを受け付ける処理と、
前記データ列を前記第1モデルに入力し、前記第1モデルから出力された前記出力値を前記第2モデルに入力する処理と、
前記第2モデルから出力された前記特徴量を前記第3モデルに入力することによって、前記介入の効果の予測値を算出する処理と、
前記第2モデルから出力された前記特徴量を前記第4モデルに入力することによって、前記介入の予測種別を算出する処理と、
前記複数のデータ列の各々の前記介入の種別及び前記介入の効果値と、前記複数のデータ列の各々から算出された前記介入の予測種別及び前記介入の効果の予測値と、を用いて、前記損失関数の値を算出する処理と、
前記損失関数の値を用いて、前記第2モデル、前記第3モデル、及び前記第4モデルを更新する処理と、
を含む前記機械学習を実行することを特徴とする計算機システム。
【請求項3】
請求項2に記載の計算機システムであって、
前記損失関数は、前記データ列に含まれる前記介入の効果値、及び前記データ列から算出された前記介入の効果の予測値の間の誤差の合計を評価する第1損失関数と、前記データ列に含まれる前記介入の種別、及び前記データ列から算出された前記介入の予測種別との間の誤差の合計を評価する第2損失関数と、から定義される関数であることを特徴とする計算機システム。
【請求項4】
請求項1に記載の計算機システムであって、
前記プロセッサは、
前記時系列データに含まれる少なくとも一つの前記データ列の前記介入の種別及び程度、並びに前記介入を行うタイミングを調整するための第1ユーザインタフェースを提示し、
前記第1ユーザインタフェースを介して入力されたデータ列を含む前記時系列データを用いて、前記予測処理を実行することを特徴とする計算機システム。
【請求項5】
請求項1に記載の計算機システムであって、
前記プロセッサは、
前記複数のデータ列の各々から算出された前記介入の効果の予測値を表示するための第2ユーザインタフェースを提示し、
前記第2ユーザインタフェースを介して前記介入の効果の予測値の修正内容を受け付け、
前記第2ユーザインタフェースを介して入力された前記介入の効果の予測値の修正内容が反映されたデータ列を含む前記時系列データを用いて、前記予測処理を実行することを特徴とする計算機システム。
【請求項6】
計算機システムが実行する人への複数の介入の効果を予測する介入効果予測方法であって、
前記計算機システムは、
プロセッサ及び前記プロセッサに接続される記憶装置を有する、少なくとも一つの計算機を含み、
人に行った介入に関する値を含む時系列データを用いて出力値を算出する第1モデルと、機械学習により生成され、前記第1モデルの出力値を特徴量空間に写像することによって特徴量を算出する第2モデルと、前記特徴量から前記人に対する介入の効果の予測値を出力する第3モデルと、を管理し、
前記時系列データは、前記人に対して前記介入が行われた時間、前記人の状態を表す複数の因子、並びに、前記人に対して行われた前記介入の種別及び程度を含むデータ列を複数含み、
前記介入効果予測方法は、
前記プロセッサが、前記データ列を前記第1モデルに入力することによって前記出力値を算出するステップと、
前記プロセッサが、前記出力値を前記第2モデルに入力することによって前記特徴量を算出するステップと、
前記プロセッサが、前記特徴量を前記第3モデルに入力することによって前記時系列データに対応する連続的な前記介入の効果の予測値を算出するステップと、
を含む予測処理を実行し、
前記第2モデルは、前記機械学習で用いる複数のデータ列の前記特徴量空間における分布の差異が小さくなるように、前記第1モデルの出力値を前記特徴量空間に写像することを特徴とする介入効果予測方法。
【請求項7】
請求項6に記載の介入効果予測方法であって、
前記特徴量から前記人に対して行われる前記介入の種別を識別する第4モデルと、前記第4モデルが出力した前記介入の予測種別、学習データに含まれる前記介入の種別、前記介入の効果の予測値、及び前記学習データに含まれる前記介入の効果値から定義される損失関数を管理し、
前記介入効果予測方法は、
前記プロセッサが、前記人の識別情報、前記人に対して前記介入が行われた時間、前記人の前記複数の因子の値、前記人が受けた前記介入の種別及び程度、並びに前記介入の効果値を含む、複数のデータ列を含む前記学習データを受け付けるステップと、
前記プロセッサが、前記データ列を前記第1モデルに入力し、前記第1モデルから出力された前記出力値を前記第2モデルに入力するステップと、
前記プロセッサが、前記第2モデルから出力された前記特徴量を前記第3モデルに入力することによって、前記介入の効果の予測値を算出するステップと、
前記プロセッサが、前記第2モデルから出力された前記特徴量を前記第4モデルに入力することによって、前記介入の予測種別を算出するステップと、
前記プロセッサが、前記複数のデータ列の各々の前記介入の種別及び前記介入の効果値と、前記複数のデータ列の各々から算出された前記介入の予測種別及び前記介入の効果の予測値と、を用いて、前記損失関数の値を算出するステップと、
前記プロセッサが、前記損失関数の値を用いて、前記第2モデル、前記第3モデル、及び前記第4モデルを更新するステップと、
を含む前記機械学習を実行することを特徴とする介入効果予測方法。
【請求項8】
請求項7に記載の介入効果予測方法であって、
前記損失関数は、前記データ列に含まれる前記介入の効果値、及び前記データ列から算出された前記介入の効果の予測値の間の誤差の合計を評価する第1損失関数と、前記データ列に含まれる前記介入の種別、及び前記データ列から算出された前記介入の予測種別との間の誤差の合計を評価する第2損失関数と、から定義される関数であることを特徴とする介入効果予測方法。
【請求項9】
請求項6に記載の介入効果予測方法であって、
前記プロセッサが、前記時系列データに含まれる少なくとも一つの前記データ列の前記介入の種別及び程度、並びに前記介入を行うタイミングを調整するための第1ユーザインタフェースを提示するステップと、
前記プロセッサが、前記第1ユーザインタフェースを介して入力されたデータ列を含む前記時系列データを用いて、前記予測処理を実行するステップと、を含むことを特徴とする介入効果予測方法。
【請求項10】
請求項6に記載の介入効果予測方法であって、
前記プロセッサが、前記複数のデータ列の各々から算出された前記介入の効果の予測値を表示するための第2ユーザインタフェースを提示するステップと、
前記プロセッサが、前記第2ユーザインタフェースを介して前記介入の効果の予測値の修正内容を受け付けるステップと、
前記プロセッサが、前記第2ユーザインタフェースを介して入力された前記介入の効果の予測値の修正内容が反映されたデータ列を含む前記時系列データを用いて、前記予測処理を実行するステップと、を含むことを特徴とする介入効果予測方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人への介入の効果を予測するシステム及び方法に関する。
【背景技術】
【0002】
医療及びマーケティング等の様々な分野において、人に対して行った介入効果(投薬の効果及び運動の効果等)の予測が必要となっている。介入効果を予測する上で重要になってくるのが交絡因子である。交絡因子は、介入効果に影響を与え、かつ、要因に関連する因子である、観察されたデータに相関関係がみられる場合、それが因果関係によるものなのか又は交絡因子の影響によるものなのかを区別しなければならない。
【0003】
交絡因子の調整として、ランダム化比較試験という手法が知られている。この手法は無作為に対象者を選ぶことが必要のため、対象者の負担や実験コストが大きいという課題がある。そこで、既存のデータを用いて、因果推論を行う技術の開発が望まれている。これに対して、特許文献1に記載の技術が知られている。
【0004】
特許文献1には「介護介入の効果を適切に検証するため、複数の対象者の属性に基づいて、類似度によってクラスタリングをし、その結果を基に、さらに介入組と対照組に分割し、介入組と対照組の比較によって、介入効果を評価する」ことが記載されている。
【0005】
近年、継続的に複数種類の介入を対象者に対して行う場合の介入効果を予測する技術が求められている。特許文献1に記載の技術は、時系列データに対応していない。時系列データを用いた予測を行うシステムとして特許文献2に記載の技術が知られている。
【0006】
特許文献2には「対象者の健康状態を理想的な健康状態へ近づけるために、過去の複数日分の健康状態の計測値と目標値を学習して、次に推奨すべき健康状態の目標値と目標達成期待値が出力され、ユーザに提示する」ことが記載されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2019-192065号公報
【特許文献2】特開2020-35365号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、特許文献2に記載の技術は、交絡因子(性別及び年齢等の属性、並びに過去の介入結果)の影響を考慮されていない。
【0009】
本発明は、交絡因子の影響を考慮し、継続的に複数種類の介入を対象者に対して行う場合の介入効果を予測するシステム及び方法を提供する。
【課題を解決するための手段】
【0010】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、人への複数の介入の効果を予測する計算機システムであって、プロセッサ及び前記プロセッサに接続される記憶装置を有する、少なくとも一つの計算機を備え、人に行った介入に関する値を含む時系列データを用いて出力値を算出する第1モデルと、機械学習により生成され、前記第1モデルの出力値を特徴量空間に写像することによって特徴量を算出する第2モデルと、前記特徴量から前記人に対する介入の効果の予測値を出力する第3モデルと、を管理し、前記時系列データは、前記人に対して前記介入が行われた時間、前記人の状態を表す複数の因子、並びに前記人に対して行われた前記介入の種別及び程度を含むデータ列を複数含み、前記プロセッサは、前記データ列を前記第1モデルに入力することによって前記出力値を算出する処理と、前記出力値を前記第2モデルに入力することによって前記特徴量を算出する処理と、前記特徴量を前記第3モデルに入力することによって前記時系列データに対応する連続的な前記介入の効果の予測値を算出する処理と、を含む予測処理を実行し、前記第2モデルは、前記機械学習で用いる複数のデータ列の前記特徴量空間における分布の差異が小さくなるように、前記第1モデルの出力値を前記特徴量空間に写像する。
【発明の効果】
【0011】
本発明によれば、交絡因子の影響を考慮し、継続的に複数種類の介入を対象者に対して行う場合の介入効果を予測できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0012】
【
図1】実施例1のシステムの構成例を示す図である。
【
図2】実施例1の計算機のソフトウェア構成の一例を示す図である。
【
図3】実施例1の学習データDBの一例を示す図である。
【
図4】実施例1の予測部の機能構成の一例を示す図である。
【
図5】実施例1の学習部の機能構成の一例を示す図である。
【
図6】実施例1の学習部が実行する学習処理の一例を説明するフローチャートである。
【
図7】実施例1の予測部が実行する予測処理の一例を説明するフローチャートである。
【
図8】実施例1の予測部が提示する画面の一例を示す図である。
【
図9】実施例2の予測部が実行する予測処理の一例を説明するフローチャートである。
【
図10】実施例2の予測部が提示する画面の一例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0014】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0015】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【0016】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例0017】
図1は、実施例1のシステムの構成例を示す図である。
【0018】
システムは、計算機100、情報端末110、及び外部記憶装置111から構成される。計算機100、情報端末110、及び外部記憶装置111は、ネットワーク109を介して互いに接続される。ネットワーク109は、例えば、LAN(Local Area Network)及びWAN(Wide Area Network)等であり、接続方式は有線及び無線のいずれでもよい。
【0019】
計算機100は、介入効果を予測するモデルを生成するための学習処理を実行し、また、当該モデルを用いてユーザデータ(入力データ)に対する介入効果を予測する。計算機100は、CPU101、主記憶装置102、副記憶装置103、ネットワークアダプタ104、入力装置105、及び出力装置106を有する。各ハードウェア要素は内部バス108を介して互いに接続される。
【0020】
CPU101は、主記憶装置102に格納されるプログラムを実行する。CPU101がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部(モジュール)として動作する。以下の説明では、機能部を主語に処理を説明する場合、CPU101が当該機能部を実現するプログラムを実行していることを示す。
【0021】
主記憶装置102は、DRAM(Dynamic Random Access Memory)であり、CPU101が実行するプログラム及びプログラムが使用するデータを格納する。主記憶装置102は、また、ワークエリアとしても使用される。
【0022】
副記憶装置103は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等であり、データを永続的に格納する。主記憶装置102に格納されるプログラム及びデータは、副記憶装置103に格納されてもよい。この場合、CPU101が副記憶装置103からプログラム及び情報を読み出し、主記憶装置102にロードする。
【0023】
ネットワークアダプタ104は、ネットワーク109を介して外部装置と接続するためのインタフェースである。
【0024】
入力装置105は、キーボード、マウス、タッチパネル等であり、計算機100に入力を行うための装置である。
【0025】
出力装置106は、ディスプレイ及びプリンタ等であり、計算機100の処理結果等を出力するための装置である。
【0026】
なお、計算機100のハードウェア構成は一例であってこれに限定されない。例えば、計算機100は、入力装置105及び出力装置106を有していなくてもよい。
【0027】
情報端末110は、計算機100に対する各種操作を行う端末である。例えば、情報端末110は、学習データの登録、モデルの登録、及びユーザデータの入力等を行う。情報端末110のハードウェア構成は計算機100と同一である。
【0028】
外部記憶装置111は、各種情報を格納する。外部記憶装置111は、例えば、外付けのHDD又はストレージシステムである。
【0029】
図2は、実施例1の計算機100のソフトウェア構成の一例を示す図である。
【0030】
計算機100は、学習部200及び予測部201を有し、また、学習データDB210及びモデルDB211を有する。なお、学習データDB210及びモデルDB211は、外部記憶装置111に格納されていてもよい。
【0031】
学習データDB210は、学習処理に使用する学習データを格納するデータベースである。学習データDB210については
図3を用いて説明する。モデルDB211は、各種モデルの情報を格納するデータベースである。
【0032】
学習部200は、学習データDB210に格納される学習データ及びモデルDB211に格納されるモデルを用いて学習処理を実行する。予測部201は、モデルDB211に格納されるモデルを用いて、ユーザデータ220に対する介入効果を予測し、予測介入結果221として出力する。なお、本実施例の学習データ及びユーザデータ220は時系列データである。
【0033】
図3は、実施例1の学習データDB210の一例を示す図である。
【0034】
学習データDB210は、ID301、要因302、日時303、介入内容304、及び効果305を含むエントリを格納する。一つのエントリが一つの学習データに対応する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
【0035】
ID301は、学習データを一意に識別する識別情報を格納するフィールドである。本実施例のID301には識別番号が格納される。
【0036】
要因302は、介入を受ける人の状態及び特性等の要因の値を格納するフィールドである。要因は、例えば、年齢、性別、及び身長等である。本実施例では、要因302に含める要因の種類及び数に限定されない。
【0037】
本実施例の学習データは時系列データであり、一つの学習データには、日時303、介入内容304、及び効果305から構成されるデータ列が複数含まれる。
【0038】
日時303は、日時を格納するフィールドである。日時303には、介入効果が計測された日時又はデータ列が生成された日時が格納される。なお、本発明は、日時303に格納される日時の種類に限定されない。時系列の流れを把握できる日時であればよい。
【0039】
介入内容304は、人に対して行った介入の内容を示す情報を格納するフィールド群である。介入内容304は、フィールドとして種類及び量を含む。種類は介入の種別を格納するフィールドである。種類には、例えば、薬、治療、及び運動等の種類を示す値が格納される。量は、介入の程度を示す値を格納するフィールドである。例えば、薬の用量又は運動時間等を示す値が格納される。本実施例では、介入が行われていない場合、種類及び量の各々には0が格納される。
【0040】
効果305は、介入による効果を示す指標の値(効果予測値)を格納するフィールド群である。本実施例では、効果305に含める指標の種類及び数に限定されない。
【0041】
図4は、実施例1の予測部201の機能構成の一例を示す図である。
【0042】
予測部201は、時系列データ処理部401、交絡因子調整部402、及び予測器403を含む。
【0043】
時系列データ処理部401は、時系列データを用いて出力値を算出する。時系列データ処理部401は、例えば、Recurrent Neural Network(RNN)である。RNNは、ニューラルネットワークの一種であり、タイムステップごとに入出力が発生することが特徴である。なお、タイムステップの幅は任意に設定できる。RNNは、前のタイムステップの出力を新たな入力として用いることによって、時系列を考慮した出力を得ることができる。ただし、RNNの出力は交絡因子の影響を考慮されていない。
【0044】
本実施例の時系列データ処理部401は、タイムステップtにおいて、タイムステップtの介入内容及び要因と、タイムステップ(t-1)の効果予測値とを入力として受け付ける。なお、t=0の場合、時系列データ処理部401は、t=0の介入内容及び要因のみが入力される。
【0045】
本明細書では、識別情報がiである人のタイムステップtの介入内容をAt
i、要因をXt
i、効果予測値をY^t
iと定義する。また、識別情報がiである人を人(i)と記載する。なお、A^及びY^は数式及び図面のハット記号付きのA及びYに対応する。
【0046】
時系列データ処理部401は、タイムステップtにおいて、タイムステップtの介入内容At
i、要因Xt
i及びタイムステップ(t-1)の効果予測値Y^t-1
iを用いて、出力値(特徴量)を算出する。本実施例の出力値はベクトルである。
【0047】
交絡因子調整部402は、より正確な介入効果の予測を実現するために、出力値に対して交絡因子の影響を削減する処理を行う。
【0048】
本実施例の交絡因子は、要因と過去に行った介入の効果の二種類がある。要因の影響に関しては、例えば、若い人は介入1を選択するケースが多いが、高齢者は介入2を選択するケースが多い場合、介入1と介入2に年齢の分布に偏りが存在するため、正確な効果を予測できない。なぜならば、得られた効果は介入によるものなのか、要因の偏りによるものなのかが分けられないためである。過去に行った介入の効果の影響に関しては、例えば、前回の介入で薬1が投薬された後、副作用が出た場合、薬1の選択確率は低くなる。そのため、次の介入において薬を選択する分布に偏りがあり、効果予測に影響を与える。
【0049】
交絡因子調整部402は、全ての介入を均等に選択できるように、分布の差異を小さくする処理を行い、分布のバランスを取れた特徴量を生成する。具体的には、交絡因子調整部402は、時系列データ処理部401が算出した出力値(ベクトル)を任意の次元の特徴量空間に写像することによって特徴量を算出する。
【0050】
予測器403は、交絡因子調整部402によって算出された特徴量を用いて、介入の効果予測値を算出する。予測器403は、例えば、Neural Network又は線形回帰モデルである。
【0051】
図5は、実施例1の学習部200の機能構成の一例を示す図である。
【0052】
学習部200は、時系列データ処理部401、交絡因子調整部402、予測器403、識別器501、演算器502、及び演算器503を含む。時系列データ処理部401、交絡因子調整部402、及び予測器403は、予測部201に含まれるものと同一である。学習部200は、Adversarial Learning等の手法を用いて、交絡因子調整部402、予測器403、及び識別器501を学習する。
【0053】
識別器501は、交絡因子調整部402によって算出された特徴量を入力として受け付け、次のタイムステップ(t+1)に人(i)に行われる介入内容A^t+1
iを予測する。識別器501は、ニューラルネットワーク等のモデルとして定義される。
【0054】
演算器503は、予測介入内容A^t+1
iと、実際の介入内容At+1
iとの誤差を評価するImbalance lossを算出する。Imbalance lossを算出するためのImbalance loss関数は式(1)で定義される。
【0055】
【0056】
ここで、Ggは交絡因子調整部402の出力を表す関数であり、Gdは識別器501の出力を表す関数である。nは要因302のフィールド数(サンプル数)を表す。IIは指示関数を表し、κは閾値を表し、εは誤差許容範囲を表し、Nはκを中心とした(At+1
j+ε)範囲内のサンプル数を表す。
【0057】
複数種類の介入に対応するため、連続性を担保する必要がある。そこで、介入内容At+1
i及び介入内容At+1
jの差が閾値κ以下又は閾値κ以上の場合、それぞれ異なる重みを介入内容予測誤差に乗算して、Imbalance lossを算出する。ここで、介入内容予測誤差は、式(1)の対数の項を表す。
【0058】
学習部200は、予測精度が高くなるように識別器501の学習を行い、一方、識別器501が識別できないように交絡因子調整部402の学習を行う。
【0059】
演算器502は、予測器403が算出した効果予測値Y^t-1
iと、実際の介入効果Yt-1
iとの誤差を評価するFactual lossを算出する。Factual lossを算出するためのFactual loss関数は式(2)で定義される。
【0060】
【0061】
ここで、Gyは予測器403の出力を表す関数である。
【0062】
学習部200は、式(3)に示すように、全タイムステップのImbalance lossの総和及び全タイムステップのFactual lossの総和から定義される損失関数が最小となるように各モデルの学習を行う。当該学習では、学習部200は、特徴量に基づく介入内容の予測精度が高くなるように識別器501を更新し、識別器501の介入内容を予測できないように交絡因子調整部402を更新する。
【0063】
【0064】
ここで、αはFactual loss及びImbalance lossを調整するパラメータである。
【0065】
損失関数を用いた学習によって、交絡因子調整部402が生成した特徴量の分布の差異を小さくすることができる。すなわち、交絡因子の影響を削減できる。これによって、介入効果を精度よく予測できる。
【0066】
図6は、実施例1の学習部200が実行する学習処理の一例を説明するフローチャートである。
【0067】
学習部200は、情報端末110又は入力装置105を介して学習実行指示を受け付けた場合、学習処理を実行する。
【0068】
学習部200は、学習データDB210から学習データを取得する(ステップS101)。ここでは、複数の学習データから構成される学習データセットが取得されるものとする。
【0069】
次に、学習部200は、学習データに含まれるデータ列のループ処理を開始する(ステップS102)。学習部200は、時系列順にデータ列を選択し、以下の処理を繰り返し実行する。
【0070】
学習部200は、データ列を用いて特徴量を算出する(ステップS103)。具体的には、学習部200は、データ列に対応する介入内容及び要因と、時系列が一つ前のデータ列を用いた効果予測値とを時系列データ処理部401に入力し、また、時系列データ処理部401によって算出された出力値を交絡因子調整部402に入力する。学習部200は、時系列と対応づけて、特徴量をワークエリアに保存する。
【0071】
学習部200は、特徴量を識別器501に入力し、識別器501から出力された予測介入内容A^t+1
iと、時系列が一つ先のデータ列の介入内容At+1
iとに基づいて、Imbalance lossを算出する(ステップS104)。学習部200は、時系列と対応づけてImbalance lossをワークエリアに保存する。
【0072】
学習部200は、Imbalance loss関数を用いた逆誤差伝搬法等に基づいて識別器501及び交絡因子調整部402を更新し、更新した交絡因子調整部402を用いて特徴量を更新する(ステップS105)。
【0073】
学習部200は、更新した特徴量を予測器403に入力し、予測器403から出力された介入の効果予測値Y^t
iと、データ列の介入効果Yt
iとに基づいて、Factual lossを算出する(ステップS106)。学習部200は、時系列と対応づけてFactual lossをワークエリアに保存する。
【0074】
学習部200は、学習データに含まれる全てのデータ列について処理が完了したか否かを判定する(ステップS107)。
【0075】
学習データに含まれる全てのデータ列について処理が完了していない場合、学習部200は、ステップS102に戻り、同様の処理を実行する。
【0076】
学習データに含まれる全てのデータ列について処理が完了した場合、学習部200は、式(3)に示す損失関数の値を算出する(ステップS108)。
【0077】
学習部200は、損失関数の値に基づいて、交絡因子調整部402、予測器403、及び識別器501を更新する(ステップS109)。
【0078】
学習部200は、学習を終了するか否かを判定する(ステップS110)。例えば、学習データセットの全ての学習データについて処理が完了した場合、学習部200は学習を終了する判定する。また、更新回数が閾値より大きい場合、学習部200は学習を終了すると判定する。また、学習部200は、評価用のユーザデータ220の介入効果の予測精度が閾値より高い場合、学習部200は学習を終了すると判定する。
【0079】
学習を終了しないと判定された場合、学習部200は、ステップS101に戻り、同様の処理を実行する。
【0080】
学習を終了すると判定された場合、学習部200は処理を終了する。
【0081】
図7は、実施例1の予測部201が実行する予測処理の一例を説明するフローチャートである。
【0082】
予測部201は、情報端末110又は入力装置105を介して、ユーザデータ220を含む予測実行指示を受け付けた場合、予測処理を実行する。
【0083】
予測部201は、モデルDB211から、時系列データ処理部401、交絡因子調整部402、及び予測器403のモデルを取得する(ステップS201)。
【0084】
予測部201は、ユーザデータ220に含まれるデータ列のループ処理を開始する(ステップS202)。予測部201は、時系列順にデータ列を選択し、以下の処理を繰り返し実行する。
【0085】
予測部201は、データ列を用いて特徴量を算出する(ステップS203)。具体的には、予測部201は、データ列に対応する介入内容及び要因と、時系列が一つ前のデータ列を用いた効果予測値とを時系列データ処理部401に入力し、また、時系列データ処理部401によって算出された出力値を交絡因子調整部402に入力する。予測部201は、時系列と対応づけて、特徴量をワークエリアに保存する。
【0086】
予測部201は、特徴量を予測器403に入力することによって介入効果予測値を算出する(ステップS204)。
【0087】
予測部201は、ユーザデータ220に含まれる全てのデータ列について処理が完了したか否かを判定する(ステップS205)。
【0088】
ユーザデータ220に含まれる全てのデータ列について処理が完了していない場合、予測部201は、ステップS202に戻り、同様の処理を実行する。
【0089】
ユーザデータ220に含まれる全てのデータ列について処理が完了した場合、予測部201は、各データ列に対応する介入効果予測値を含む予測介入結果221を生成し、出力する(ステップS206)。その後、予測部201は予測処理を終了する。
【0090】
ここで、予測部201が提示する画面について説明する。
図8は、実施例1の予測部201が提示する画面の一例を示す図である。
【0091】
予測部201は、ユーザに対して画面800を提示する。画面800は、介入内容入力欄801及び介入効果表示欄802を含む。
【0092】
介入内容入力欄801には、介入パターンを入力するパターン設定欄810がタブ形式で表示される。パターン設定欄810は、設定テーブル811、追加ボタン812、及び予測ボタン813を含む。設定テーブル811は、介入内容を設定するためのテーブルであり、介入の種類、量、及びタイミングを含むエントリを格納する。追加ボタン812は、設定テーブル811にエントリを追加するための操作ボタンである。予測ボタン813は、予測処理の実行を指示するための操作ボタンである。予測ボタン813が操作された場合、現在までの時系列データと、設定テーブル811の情報とを含むユーザデータ220が予測部201に入力される。
【0093】
なお、
図8のパターン設定欄810とは異なる形式で、介入内容を設定してもよい。例えば、プルダウン形式で介入の種類を表示し、量及びタイミングを調整するためのコントロールバーを表示する方法が考えられる。
【0094】
介入効果表示欄802は、現在から過去の効果の推移及び介入効果の推移を表示する欄である。介入効果表示欄802には介入効果の推移を示すグラフが、介入パターンごとに表示される。
図8では、時刻t
1に介入1を行う介入パターン1、現在及び時刻t
2に介入2を行う介入パターン2、及び介入を行わない介入パターン3の各々の介入効果の推移が表示されている。
【0095】
実施例1のシステムは、交絡因子の影響が低減され、かつ、継続的に複数種類の介入を人に行う場合の効果を高い精度で予測できる。
【0096】
介入内容入力欄801の入力内容が更新された場合、介入効果表示欄802の表示内容も更新される。なお、特定の介入パターンの効果推移のみを表示するようにしてもよい。
実施例2のシステムの構成は実施例1と同一である。実施例2の学習部200及び予測部201の機能構成は実施例1と同一である。実施例2の学習部200が実行する処理は実施例1と同一である。
予測部201は、ユーザに対して画面1000を提示する。画面1000は、修正欄1001及び介入効果表示欄1002を含む。介入効果表示欄1002は、介入効果表示欄802と同様の欄である。
修正欄1001は、修正設定テーブル1011、追加ボタン1012、予測ボタン1013、及び終了ボタン1014を含む。修正設定テーブル1011は、介入効果予測値の修正内容を設定するためのテーブルであり、タイミング及び効果を含むエントリを格納する。追加ボタン1012は、修正設定テーブル1011にエントリを追加するための操作ボタンである。予測ボタン1013は、再度、予測処理の実行を指示するための操作ボタンである。予測ボタン1013が操作された場合、修正内容が予測部201に入力される。終了ボタン1014は、予測処理を終了するための操作ボタンである。
受け付けた操作が修正操作である場合、予測部201は、新たな予測に使用するデータ列を生成し(ステップS253)、その後ステップS202に戻る。例えば、予測部201は、修正された介入効果予測値を反映した、データ列を生成する。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本発明に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。