(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-10
(45)【発行日】2024-01-18
(54)【発明の名称】情報処理プログラム、提案方法、および情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20240111BHJP
【FI】
G06N20/00
(21)【出願番号】P 2022533309
(86)(22)【出願日】2020-06-30
(86)【国際出願番号】 JP2020025646
(87)【国際公開番号】W WO2022003816
(87)【国際公開日】2022-01-06
【審査請求日】2022-12-22
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】▲高▼木 拓也
(72)【発明者】
【氏名】小林 健
(72)【発明者】
【氏名】金森 憲太郎
【審査官】福西 章人
(56)【参考文献】
【文献】特開2014-81878(JP,A)
【文献】特開2003-288580(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
それぞれが複数の項目値の組合せである属性データであって、対象の属性データを含む複数の属性データと、次元空間上の目標値とする領域範囲を示す情報を取得し、
前記対象の属性データと前記複数の属性データの少なくとも一部についての前記次元空間における分布に基づいて、前記対象の属性データの前記複数の項目値の中から変動対象とする項目値と該変動対象とする項目値に対する変動方向を決定する処理を実行し、
前記変動対象とする項目値を前記変動方向に基づいて所定以上変動させる処理と、前記変動させる処理の実行後に前記決定する処理とを、前記対象の属性データが前記領域範囲に含まれるようになるまで交互に繰り返すことで実行された変動の結果を示す情報を出力する、
処理を実行させることを特徴とする情報処理プログラム。
【請求項2】
前記次元空間上で前記複数の属性データの少なくとも一部が分布している領域を経由して前記領域範囲に近づくように、前記変動対象とする項目値と該変動対象とする項目値に対する前記変動方向を決定する、
処理を実行させる請求項1記載の情報処理プログラム。
【請求項3】
前記対象の属性データから所定範囲内の属性データについての前記次元空間における分布に基づいて、前記変動対象とする項目値と該変動対象とする項目値に対する前記変動方向を決定する、
処理を実行させる請求項1または2に記載の情報処理プログラム。
【請求項4】
前記対象の属性データから所定範囲内の属性データについての前記複数の項目値の種別間での相関関係に基づいて、前記変動対象とする項目値と該変動対象とする項目値に対する前記変動方向を決定する、
処理を実行させる請求項3記載の情報処理プログラム。
【請求項5】
前記対象の属性データからLp-ノルムで所定の距離に設定された複数の移動先候補点のうち、前記対象の属性データからのマハラノビス距離が最短となる移動先候補点に基づいて、前記変動対象とする項目値と該変動対象とする項目値に対する前記変動方向を決定する、
処理を実行させる請求項4記載の情報処理プログラム。
【請求項6】
コンピュータが、
それぞれが複数の項目値の組合せである属性データであって、対象の属性データを含む複数の属性データと、次元空間上の目標値とする領域範囲を示す情報を取得し、
前記対象の属性データと前記複数の属性データの少なくとも一部についての前記次元空間における分布に基づいて、前記対象の属性データの前記複数の項目値の中から変動対象とする項目値と該変動対象とする項目値に対する変動方向を決定する処理を実行し、
前記変動対象とする項目値を前記変動方向に基づいて所定以上変動させる処理と、前記変動させる処理の実行後に前記決定する処理とを、前記対象の属性データが前記領域範囲に含まれるようになるまで交互に繰り返すことで実行された変動の結果を示す情報を出力する、
ことを特徴とする提案方法。
【請求項7】
それぞれが複数の項目値の組合せである属性データであって、対象の属性データを含む複数の属性データと、次元空間上の目標値とする領域範囲を示す情報を取得し、前記対象の属性データと前記複数の属性データの少なくとも一部についての前記次元空間における分布に基づいて、前記対象の属性データの前記複数の項目値の中から変動対象とする項目値と該変動対象とする項目値に対する変動方向を決定する処理を実行し、前記変動対象とする項目値を前記変動方向に基づいて所定以上変動させる処理と、前記変動させる処理の実行後に前記決定する処理とを、前記対象の属性データが前記領域範囲に含まれるようになるまで交互に繰り返すことで実行された変動の結果を示す情報を出力する処理部、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム、提案方法、および情報処理装置に関する。
【背景技術】
【0002】
コンピュータを用いた機械学習などにより、予測対象である事柄、物、人などについての複数の項目値を入力値とし、その予測対象が属するクラスを予測するモデルを生成することができる。このとき、予測対象が属するクラスを変更するために、その予測対象のどの項目値をどれだけ変更すればよいかを知りたい場合がある。例えば健康診断での検査結果に基づいて現在不健康だと予測されている人が、どのような検査項目の値を改善させれば健康と予測されるようになるのかを知りたい場合などである。このとき、変更するのに適切な項目値を、コンピュータを用いて提案することが考えられる。
【0003】
予測結果の変更提案に関する技術としては、例えば予測結果を希望する値へと変更するために、どのように、そしてどのくらい予測対象データの説明変数の変更を行うべきかを効率良く求めることができる行動量生成装置が提案されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、変更する項目値とその変更量との提案が、非現実的で実現困難な提案になってしまう場合がある。例えばモデルの生成に使用した訓練データに含まれる複数の要素に対応するデータ点を、各要素の複数の項目値に基づく位置にプロットした散布図があるものとする。このとき、提案に従って予測対象の要素の項目値を更新すると、その要素に対応するデータ点が、他のデータ点の存在しない領域を経由して移動することになることがあり得る。他の要素のデータ点が存在しない領域は、その領域内に属するような項目値の組み合わせとなることがあり得ないか、もしくはそのような項目値の組み合わせとなることが非常に困難な領域である。そのため、そのような他の要素のデータ点が存在しない領域を経由するような項目値の変更提案をしても、提案通りの変更提案の実現は困難である。
【0006】
1つの側面では、本発明は、現実に即した項目値の変更提案を実現することを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、コンピュータに以下の処理を実行させる情報処理プログラムが提供される。
コンピュータは、それぞれが複数の項目値の組合せである属性データであって、対象の属性データを含む複数の属性データと、次元空間上の目標値とする領域範囲を示す情報を取得する。次にコンピュータは、対象の属性データと複数の属性データの少なくとも一部についての次元空間における分布に基づいて、対象の属性データの複数の項目値の中から変動対象とする項目値と該変動対象とする項目値に対する変動方向を決定する処理を実行する。そしてコンピュータは、変動対象とする項目値を変動方向に基づいて所定以上変動させる処理と、変動させる処理の実行後に決定する処理とを、対象の属性データが領域範囲に含まれるようになるまで交互に繰り返すことで実行された変動の結果を示す情報を出力する。
【発明の効果】
【0008】
1態様によれば、現実に即した項目値の変更提案を実現することができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【0009】
【
図1】第1の実施の形態に係る提案方法の一例を示す図である。
【
図2】提案装置のハードウェアの一例を示す図である。
【
図3】項目値を変更させるアクション提案の一例について説明する図である。
【
図5】項目値間の相関が直線的ではない場合におけるアクション提案の一例を示す図である。
【
図6】データ点が存在する経路を移動する1段目のアクション提案の一例を示す図である。
【
図7】データ点が存在する経路を移動する2段目のアクション提案の一例を示す図である。
【
図8】データ点が存在する経路を移動する3段目のアクション提案の一例を示す図である。
【
図9】提案装置の機能の一例を示すブロック図である。
【
図13】アクション提案処理の手順の一例を示すフローチャートである。
【
図14】移動対象のデータ点移動処理の手順を示すフローチャートである。
【
図15】移動先候補点からの移動先の決定例を示す図である。
【
図16】初回のアクション提案の例を示す図である。
【
図17】2回目のアクション提案の例を示す図である。
【
図18】3回目のアクション提案の例を示す図である。
【発明を実施するための形態】
【0010】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。
【0011】
図1は、第1の実施の形態に係る提案方法の一例を示す図である。
図1には、第1の実施の形態に係る提案方法を実施する情報処理装置10が示されている。情報処理装置10は、例えば所定の情報処理プログラムを実行することにより、提案方法を実施することができる。
【0012】
情報処理装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリ、またはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサ、または演算回路である。
【0013】
記憶部11は、それぞれが複数の項目値の組合せである属性データであって、対象の属性データ1aを含む複数の属性データ1と、次元空間3上の目標値とする領域範囲を示す領域情報2を記憶する。例えば複数の属性データ1それぞれには、病院などで診察を受けた患者の体脂肪率と血糖値との数値が、項目値として含まれている。属性データが人またはモノの特徴を表しているとき、属性データに含まれる項目値を特徴量と呼ぶこともできる。対象の属性データ1aは、例えば健康状態の改善を希望するユーザの属性データである。次元空間3上の目標値とする領域範囲は、例えば健康であるとみなされる体脂肪率と血糖値との範囲である。
図1の例ではクラスが「ポジティブ」である次元空間3上の領域の範囲が、次元空間3上の目標値とする領域範囲である。
【0014】
処理部12は、記憶部11から、複数の属性データ1と領域情報2とを取得する。次に処理部12は、対象の属性データ1aと複数の属性データ1の少なくとも一部についての次元空間3における分布を統計的に求める。
【0015】
なお、次元空間3における分布を求めるのに使用する複数の属性データ1の少なくとも一部とは、例えば対象の属性データ1aから所定範囲内の属性データである。所定範囲は、例えば対象の属性データ1aに対応する点からLp-ノルムで規定される所定の距離内の範囲である。また処理部12は、対象の属性データ1aよりも、目標値とする領域範囲から離れた位置の属性データを、次元空間3における分布を求めるのに使用する属性データから除外してもよい。
【0016】
そして処理部12は、求めた分布に基づいて、対象の属性データ1aの複数の項目値の中から変動対象とする項目値とその変動対象とする項目値に対する変動方向を決定する処理を実行する。例えば処理部12は、次元空間3上で複数の属性データ1の少なくとも一部が分布している領域を経由して領域範囲に近づくように、変動対象とする項目値と該変動対象とする項目値に対する変動方向を決定する。
【0017】
さらに処理部12は、変動対象とする項目値を変動方向に基づいて所定以上変動させる処理と、変動させる処理の実行後に決定する処理とを、対象の属性データ1aが領域範囲に含まれるようになるまで交互に繰り返す。処理部12は、2回目以降の決定処理では、変動前に対象の属性データ1aがあった方向の属性データを、次元空間3における分布を求めるのに使用する属性データから除外してもよい。
【0018】
そして処理部12は、実行された変動の結果を示す情報を出力する。出力された情報は、例えば項目値の変更提案に用いられる。
このように、属性データの分布に基づいて、変動対象とする項目値とその変動方向とを繰り返し決定することで、属性データが分布している領域を経由して、対象の属性データ1aを、目標値とする領域範囲内に移動させるための情報を出力できる。属性データが分布している領域を経由させることで、現実に即した項目値の変更提案が可能となる。
【0019】
例えば項目値の種類が体脂肪率と血糖値であり、ユーザの体脂肪率と血糖値の数値が、病気の発症リスクが高いとされる値であるものとする。このときユーザが、病気の発症リスクを下げたいとの希望を情報処理装置10に入力すると、処理部12は、ユーザの属性データを対象の属性データ1aとして、属性データの分布に基づいて、変動対象とする項目値とその変動方向とを繰り返し決定する。
【0020】
図1の例では、対象の属性データ1aを示す次元空間3上の点の周囲の他の属性データの分布は、血糖値の軸に平行な方向に偏って分布している。そこで処理部12は、最初に、対象の属性データ1aの変動対象とする項目値を「血糖値」に決定する。対象の属性データ1aに対応する点から血糖値の値を変動させて目標値とする領域範囲に近づくのは、血糖値を下げる場合である。そこで処理部12は、変動対象とする項目値の変動方向を負の方向(値を下げる方向)に決定する。
【0021】
処理部12は、対象の属性データ1aの変動対象とする項目値「血糖値」を変動方向として決定した方向(負の方向)に、所定の変動量だけ変動させる。変動後の対象の属性データ1aの位置は、まだ目標値とする領域範囲に含まれていない。そこで処理部12は、変動後の対象の属性データ1aの周囲の他の属性データの分布に基づいて、変動対象とする項目値とその変動方向とを再度決定する。
【0022】
図1の例では、変動後の対象の属性データ1aを示す次元空間3上の点の周囲の他の属性データ(変動前の位置の方向にあるものを除く)の分布は、体脂肪率の軸に平行な方向に偏って分布している。そこで処理部12は、対象の属性データ1aの変動対象とする項目値を「体脂肪率」に決定する。対象の属性データ1aに対応する点から体脂肪率の値を変動させて目標値とする領域範囲に近づくのは、体脂肪率を下げる場合である。そこで処理部12は、変動対象とする項目値の変動方向を負の方向(値を下げる方向)に決定する。
【0023】
処理部12は、対象の属性データ1aの変動対象とする項目値「体脂肪率」を変動方向として決定した方向(負の方向)に、所定の変動量だけ変動させる。変動後の対象の属性データ1aの位置は、目標値とする領域範囲に含まれている。そこで処理部12は、実行された変動の結果を示す情報を出力する。
【0024】
処理部12は、出力された情報に基づいて、ユーザに対する健康改善のアクションを提案することができる。例えば処理部12は、ユーザからの「発症リスクを下げたい。」との要望が入力された当初は、「血糖値を減らしましょう。」と、血糖値を低減させるアクションを提案する。後日、ユーザからの「血糖値が低下しました。次はどうすればいい。」との問い合わせが入力されると、「体脂肪率を減らしましょう。」と、体脂肪率を低減させるアクションを提案する。
【0025】
このようなアクション提案は、他の患者が存在するような健康状態を経由して、発症リスクが少ない健康状態にするための提案である。従って、現実に即した提案となっている。
【0026】
なお処理部12は、変動対象とする項目値と該変動対象とする項目値に対する変動方向を、対象の属性データから所定範囲内の属性データについての複数の項目値の種別間での相関関係に基づいて決定することができる。例えば複数の項目値の種類が体脂肪率と血糖値の2種類であれば、2種類の項目値間に相関関係があるものとみなして、例えば回帰分析により項目値間の関係を一次式で表すことができる。処理部12は、得られた一次式の傾きの方向に対象の属性データ1aに対応する点を移動させるように、変動対象とする項目値と該変動対象とする項目値に対する変動方向を決定する。これにより、変動対象とする項目値と該変動対象とする項目値に対する変動方向を適切に決定することができる。
【0027】
また処理部12は、マハラノビス距離を用いて、変動対象とする項目値と該変動対象とする項目値に対する変動方向を決定してもよい。マハラノビス距離は、複数の項目値の種別間での相関関係を用いた距離である。マハラノビス距離を用いることで、項目値の種類数が3以上であっても、変動対象とする項目値と該変動対象とする項目値に対する変動方向を適切に決定することができる。
【0028】
マハラノビス距離を用いる場合、処理部12は、例えば対象の属性データからLp-ノルムで所定の距離に、複数の移動先候補点を設定する。そして処理部12は、複数の移動先候補点のうち、対象の属性データからのマハラノビス距離が最短となる移動先候補点に基づいて、変動対象とする項目値と該変動対象とする項目値に対する変動方向を決定する。これにより、目標値とする領域範囲までのマハラノビス距離が短い経路に沿って対象の属性データ1aの点を移動させるように、変動対象とする項目値と該変動対象とする項目値に対する変動方向を決定することができる。マハラノビス距離が短い経路周辺には他の属性データに対応する点が多く分布しており、そのような経路を移動するような対象の属性データ1aの移動は実現可能である。そのため、確かに実現可能なアクションをユーザに提案することができる。
【0029】
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、ユーザの健康状態の改善提案を行うことができる提案装置である。提案装置は、例えばコンピュータを用いて実現することができる。
【0030】
図2は、提案装置のハードウェアの一例を示す図である。提案装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0031】
メモリ102は、提案装置100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0032】
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0033】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0034】
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0035】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0036】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0037】
機器接続インタフェース107は、提案装置100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0038】
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108は、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
【0039】
提案装置100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、
図2に示した提案装置100と同様のハードウェアにより実現することができる。
【0040】
提案装置100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。提案装置100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、提案装置100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また提案装置100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0041】
提案装置100は、例えば現在不健康だと予測されている人が,どうすれば健康と予測されるかを判断し、健康になるための改善提案をすることができる。改善提案では、健康状態に関する複数の項目値(血糖値、体脂肪率など)のうちの健康になるために改善するのが適切な項目値を変更する改善アクションが提案される。提案装置100は、改善アクションを提案する際、他の多くの人の健康状態を示すデータの分布を考慮し、非現実的な提案となることを抑止する。
【0042】
以下、
図3~
図5を参照し、実現困難な提案がなされる場合の例について説明する。
図3は、項目値を変更させるアクション提案の一例について説明する図である。例えばユーザの健康状態に関する複数の項目値を含む入力x(オーバーライン付き)が、そのユーザの健康状態を予測するモデルHに入力されるものとする。入力された項目値から予測値を得るモデルとしては、様々なものが利用できる。例えば一般化加法モデル(GAM: Generalized Additive Model)を用いることができる。また線形分類モデルを用いることもできる。線形分類モデルには、ロジスティック回帰、線形サポートベクターマシンなどがある。また決定木アンサンブルモデルを用いることもできる。決定木とは、予測ルールの集合を二分木で表現したものである。決定木アンサンブルモデルには、ランダムフォレスト、勾配ブースティング木(XGBoostなど)、ExtraTreesなどが含まれる。一般化線形モデルを用いることもできる。
図3の例では、入力x(オーバーライン付き)には、健康に関する項目値としてx
1,x
2が設定されているものとする。
【0043】
提案装置100は、モデルを用いて、入力に応じてクラスを予測することができる。例えば、モデルにより、健康に関するリスクの有無を示すクラスが予測される。例えば所定の疾病に関する発症リスクが多いか少ないかが予測される。
図3には、項目値x
1を横軸、項目値x
2を縦軸とする座標系30が示されている。座標系30内は、ネガティブ(発症リスクが高い)のクラスに対応する領域31とポジティブ(発症リスクが低い)のクラスに対応する領域32とに分かれる。
図3では、ネガティブのクラスに対応する領域31は網掛けで示されている。
【0044】
ここで現在のユーザの項目値x1,x2に応じた座標系30内のデータ点は、ネガティブのクラスに対応する領域31内にあるものとする。このような場合において、モデルHによる予測結果が別のクラスに属するように項目値の値を変更する改善アクションa*を式で表すと、以下のようになる。
【0045】
【0046】
改善アクションa*は、項目値x1と項目値x2との変化量を成分とするベクトルデータ(アクションa)の集合である。式(1)の「C(a|x)」(xはオーバーライン付き)はコスト価数であり、例えば重み付きLp-ノルム(pは0以上の実数)である。Lp-ノルムは座標空間内での距離を示している。L2-ノルムはユークリッド距離となる。「argmin」は最小値を得る引数を求めることを表している。式(1)により、予測結果のクラスが変更される(H(x)≠H(x+a)(xはオーバーライン付き))ための、始点と終点の距離が最小となるアクションaの集合が得られる。
【0047】
例えば式(1)により、モデルH(x)(xはオーバーライン付き)の予測結果がネガティブのクラスに属するものとする。このときモデルH(x+a)(xはオーバーライン付き)の予測結果がポジティブのクラスに属するための最も距離の短い経路を示すアクションaが得られる。このようなアクションaは、最も少ない努力で予測値を変更したいというユーザ側の希望に合致するアクションである。
【0048】
このようにコスト関数として距離を採用することで、最小限の努力でクラスを変更することができる。例えばユーザに、発症リスクが高いクラスから発症リスクが低いクラスへ移行するために実施するべき、最も労力が少ないアクションaが提案される。しかし、距離が最短となるアクションaが、現実には実施困難な場合がある。例えば筋肉量を増やしながら、体重を減らすというアクションが提案されるような場合が考えられる。このようなアクションが提案されても、筋肉は脂肪よりも重く、脂肪が筋肉に置き換わると体重は増加するため、筋肉の増強と体重の減量とを同時並行で行うのは困難な場合が多い。
【0049】
またモデル上ではポジティブなクラスとなるような座標系30内の領域であっても、実際にはその領域に属するような人が存在しないか、あるいは存在したとしても稀である場合がある。その場合に、該当領域への移動するアクションが提案されても、達成は困難である。
【0050】
図4は、アクション提案の一例を示す図である。
図4では、多数の人それぞれの健康に関する項目値の組に対応するデータ点41が、座標系30にプロットされている。ここでモデルによる予測結果に示されるクラスを変更しようとするユーザの項目値の組に対応するデータ点が、移動対象のデータ点42である。
【0051】
移動対象のデータ点42は、ネガティブのクラスに対応する領域33内に存在する。ここで移動対象のデータ点42をポジティブのクラスに対応する領域34に移動させるようなアクションを提案するものとする。このときLp-ノルムで表される距離が最短となる移動先候補点43へ移動するアクションを提案すると、他のデータ点が存在しない場所への移動が提案されることとなる。他のデータ点が存在しない場所は、該当する人が存在しない健康状態に対応し、そのような健康状態にするためのアクションを提案するのは誤りである。
【0052】
ここで項目値間の相関を考慮して移動対象のデータ点42を移動させるアクションを提案することが考えられる。項目値間の相関を考慮する場合、例えばコスト関数としてはマハラノビス距離(相関を考慮した距離)を採用することができる。項目値の種類数をDとしたとき、同一分布に従うベクトルx,y∈RD(Rは実数全体の集合である)に対して、マハラノビス距離dM(x,y)は以下の式(2)で定義される。
【0053】
【0054】
式(2)のΣ∈RD×Dは共分散行列である。項目値間に相関がある場合、項目値間の関係性を回帰分析などにより直線で表したときに、その直線の周囲と遠方とで、Lp-ノルムが同じであってもマハラノビス距離は異なる。項目値間の関係性を示す直線の近くの領域ではマハラノビス距離は短くなり、その直線から離れた領域ではマハラノビス距離は長くなる。
【0055】
マハラノビス距離は、計画法の技法による厳密線形化では現実的な時間で解き終わらない。そこで提案装置100では、共分散行列の固有値分解に基づく代理関数を導入し、マハラノビス距離を近似的に求める。具体的には、共分散行列Σの固有値と固有ベクトルとを用いてマハラノビス距離dM(x,y)を近似する代理関数を定義する。なお項目値の種別の数がDであれば、共分散行列Σの固有値と固有ベクトルとはそれぞれD個ずつ得られる。そこでd番目(dは1以上のD以下の整数)の固有値をλd、d番目の固有ベクトルをudとする。すると、代理関数は以下の式(3)で表される。
【0056】
【0057】
なお式(3)のΣは総和の記号である。式(3)の平方根で示された部分は擬似マハラノビス距離である。Dは項目値の種別の数であるため、項目値の種別の数分の擬似マハラノビス距離の合計が、近似的なマハラノビス距離となる。
【0058】
項目値間の相関が直線的(一次の相関)ならば、マハラノビス距離が最短となる移動先候補点44へ移動するアクションを提案することで、他のデータ点が存在する経路上を移動させるアクションを提案することができる。ただし、項目値間の相関が直線的ではない場合、マハラノビス距離を用いたとしても他のデータ点が存在しない経路上を移動させるアクションを提案してしまう場合がある。
【0059】
図5は、項目値間の相関が直線的ではない場合におけるアクション提案の一例を示す図である。
図5に示す座標系50は、横軸が体脂肪率であり、縦軸が血糖値である。多数の患者それぞれの体脂肪率と血糖値とに応じたデータ点が、座標系50にプロットされている。体脂肪率と血糖値とは直線的な相関を有しておらず、二次相関に近い関係を有している。
【0060】
ここでネガティブのクラスに対応する領域51にある移動対象のデータ点53を、ポジティブのクラスに対応する領域52に移動させるアクションを提案する場合を考える。
図5に示す例では、種別の異なる項目値間の相関が線形ではない。この場合、プロットされたすべての点を用い、一次の相関があるものとしてマハラノビス距離が最短となる移動先候補点54を移動先とするアクションを提案すると、データ点が存在しない経路上を移動させるアクション提案をする結果となる。
【0061】
このように、単に相関を考慮して提案する移動先を探索しても、実現可能な範囲での提案ができない可能性がある。そこで提案装置100は、段階的にアクションを提案する。すなわち提案装置100は、複数のアクションの結果、目的のクラスの領域に移動するように、多段階のアクション提案を行う。この際、提案装置100は、提案される各アクションについて、項目値間の相関を考慮して、データ点が存在する経路を移動するようなアクションを提案する。そのために提案装置100は,現在いる位置の周辺の相関のみを利用して、移動先となる位置を決定する。
【0062】
図6は、データ点が存在する経路を移動する1段目のアクション提案の一例を示す図である。提案装置100は、移動対象のデータ点53の周辺のデータ点のみから項目値間の相関を求める。移動対象のデータ点53の周辺のデータ点は、例えばユークリッド距離において移動対象のデータ点53から距離d以内のデータ点である。そして提案装置100は、相関を表す直線に沿って、例えばユークリッド距離において移動対象のデータ点53から距離dだけ離れた位置を移動先55とする1段目のアクション提案を行う。移動先55は、移動対象のデータ点53からポジティブのクラスに対応する領域52に近づく方向にある位置である。
【0063】
次に提案装置100は移動先55の位置に移動対象のデータ点53を移動させ、2段目のアクション提案における移動先を判断する。
図7は、データ点が存在する経路を移動する2段目のアクション提案の一例を示す図である。提案装置100は、移動対象のデータ点56の周辺のデータ点のみから項目値間の相関を求める。この際、提案装置100は、移動元の方向にあるデータ点を考慮せずに相関を求めてもよい。移動元の方向にあるデータ点とは、例えば移動前の移動対象のデータ点53(
図6参照)から距離d以内にあるデータ点である。提案装置100は、例えば移動対象のデータ点56から距離d以内にあり、移動前の移動対象のデータ点53から距離d以上離れたデータ点に基づいて、種別の異なる項目値間の相関を求める。
【0064】
そして提案装置100は、相関を表す直線に沿って、例えばユークリッド距離において移動対象のデータ点56から距離dだけ離れた位置を移動先57とする2段目のアクション提案を行う。移動先57は、移動対象のデータ点56からポジティブのクラスに対応する領域52に近づく方向にある位置である。
【0065】
さらに提案装置100は移動先57の位置に移動対象のデータ点56を移動させ、3段目のアクション提案における移動先を判断する。
図8は、データ点が存在する経路を移動する3段目のアクション提案の一例を示す図である。提案装置100は、移動対象のデータ点58の周辺のデータ点のみから項目値間の相関を求める。この際、提案装置100は、移動元の方向にあるデータ点を考慮せずに相関を求めてもよい。そして提案装置100は、相関を表す直線に沿って、例えばユークリッド距離において移動対象のデータ点58から距離dだけ離れた位置を移動先59とする3段目のアクション提案を行う。移動先59は、移動対象のデータ点56からポジティブのクラスに対応する領域52に近づく方向にある位置である。
【0066】
図8の例では、移動先59がポジティブのクラスに対応する領域52内にある。従って、1段目から3段目の3段階のアクション提案が、最初の移動対象のデータ点53に示される健康状態のユーザが、ポジティブな健康状態となるためのアクション提案となっている。しかも提案された各アクションはデータ点が存在する領域を経由しており、実現可能なアクションである。
【0067】
次に、実現可能なアクションを提案するための提案装置100の機能について説明する。
図9は、提案装置の機能の一例を示すブロック図である。提案装置100は、記憶部110、データ取得部120、アクション決定部130、および対話型UI(User Interface)部140を有する。
【0068】
記憶部110は、属性情報111と領域情報112とを記憶する。属性情報111は、多数の人の健康状態に関する項目値のサンプルデータである。例えば体脂肪率、血糖値などのデータである。領域情報112は、項目値の種別ごとの座標を有する座標系内の領域に設定されたクラスを示すデータである。クラスには、例えばポジティブのクラスとネガティブのクラスがある。記憶部110は、例えば提案装置100が有するメモリ102またはストレージ装置103の記憶領域の一部を用いて実現される。
【0069】
データ取得部120は、属性情報111と領域情報112とを取得する。例えばデータ取得部120は、属性情報111の入力を受け付け、入力された属性情報111を記憶部110に格納する。またデータ取得部120は、領域の範囲とクラスとを指定する入力データの入力を受け付け、入力データを領域情報112のレコードとして記憶部110に格納する。
【0070】
アクション決定部130は、ユーザに対して提案するアクションを決定する。例えばアクション決定部130は、属性情報111に示される項目値間の相関を考慮して、ユーザに関する現在の項目値に応じた座標系内でのデータ点が属する領域のクラスを変更するために時系列で実施するべき1以上のアクションを提案する。
【0071】
対話型UI部140は、アクションの提案を出力する。例えば対話型UI部140は、AI(Artificial Intelligence)アシスタントを介してユーザと音声による対話を行う。そして対話型UI部140は、ユーザからの健康状態改善案を問い合わせる音声入力に応じて、健康状態を改善させるアクションの提案内容を音声出力する。
【0072】
以上のような機能の要素を連係動作させることにより、提案装置100は、ユーザの健康状態が、ユーザの希望する健康状態となるような行動計画をユーザに提案することができる。なお
図9に示した各要素の機能は、例えばその要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【0073】
次に記憶部110に格納されるデータについて、
図10、
図11を参照して具体的に説明する。
図10は、属性情報の一例を示す図である。属性情報111には、患者の健康状態などに関する項目値が設定された複数のレコードが含まれている。属性情報111内のレコードは、第1の実施の形態に示した属性データの一例である。属性情報111内の各レコードは、患者ID、性別、体脂肪率、および血糖値のフィールドを有する。患者IDのフィールドには、対応する患者の識別子(患者ID)が設定される。性別のフィールドには、患者の性別が設定される。体脂肪率のフィールドには、患者の体脂肪率が設定される。血糖値のフィールドには、患者の血糖値が設定される。
【0074】
図10に示す属性情報111において、患者の健康状態を表す項目値は、体脂肪率と血糖値である。なお、健康状態を表す項目値の適正範囲は、性別によって異なる場合がある。例えば体脂肪率の適正範囲は、女性よりも男性の方が低い。そのため項目値の種類ごとの軸を有する座標系内の領域にクラスを設定する場合にも、性別に応じたクラス設定を行うのが適切である。
【0075】
図11は、領域情報の一例を示す図である。領域情報112には、領域のクラスが設定された複数のレコードが含まれている。各レコードは、領域ID、性別、体脂肪率(BF)、血糖値(BS)、およびクラスのフィールドを有する。領域IDのフィールドには、領域の識別子(領域ID)が設定される。性別のフィールドには、男性のクラスに関する領域なのか、女性のクラスに関する領域なのかが設定される。体脂肪率のフィールドには、該当領域の体脂肪率の範囲が設定される。血糖値のフィールドには、該当領域の血糖値の範囲が設定される。クラスのフィールドには、該当領域に対応するクラスの名称が設定される。
【0076】
次に、領域情報の設定例について説明する。ユーザは、例えば座標系50内の領域を指定する情報と、クラスを指定する情報とを提案装置100に入力する。
図12は、領域情報の設定例を示す図である。例えばユーザが「{[性別=女性],[30≦体脂肪率<35],[120≦血糖値<130],ネガティブ}」と入力すると、座標系50内の対応する領域51aのクラスがネガティブに設定される。またユーザが「{[性別=女性],[15≦体脂肪率<30],[0≦血糖値<120],ポジティブ}」と入力すると、座標系50内の対応する領域52aのクラスがポジティブに設定される。
【0077】
ユーザは、このような領域ごとのクラスの設定を、座標系50全体に対して行う。その後、ユーザは、ネガティブ領域内のデータ点の1つを指定して、そのデータをポジティブ領域に移動させるためのアクションを提案装置100に提案させる。
【0078】
図13は、アクション提案処理の手順の一例を示すフローチャートである。以下、
図13に示す処理をステップ番号に沿って説明する。
[ステップS101]データ取得部120は、属性情報111と領域情報112とを取得する。例えばデータ取得部120は、ユーザから患者の電子カルテデータの指定入力を受け付け、その電子カルテデータから属性情報111を抽出し、抽出した属性情報111を記憶部110に格納する。またデータ取得部120は、
図12に示すような領域に対するクラス設定の入力データを受け付け、入力データに応じたレコードを、記憶部110内の領域情報112に追加する。
【0079】
[ステップS102]対話型UI部140は、ユーザから、ネガティブのクラスに対応する領域内に設定されている移動対象のデータ点の指定入力を受け付ける。例えば対話型UI部140は、患者IDの入力を受け付け、その患者IDに対応する体脂肪率と血糖値とに対応するデータ点を、移動対象のデータ点とする。
【0080】
[ステップS103]アクション決定部130は、記憶部110から属性情報111を取得し、属性情報111に基づいて、移動対象のデータ点周辺(例えばLp-ノルムが所定値以内)のデータ点に基づいて共分散行列を計算する。共分散行列は、項目値の種類間の分散の概念を多次元に拡張したものである。共分散行列には、項目値の種類間の相関の強さが反映されている。
【0081】
[ステップS104]アクション決定部130は、共分散行列の固有値λと固有ベクトルuを計算する。属性情報111に示される項目値の種類の数がDの場合、固有値λとその固有値の場合の固有ベクトルuとの組がD個生成される。D組の固有値λと固有ベクトルuとは、マハラノビス距離の計算に用いられる。
【0082】
[ステップS105]アクション決定部130は、移動対象のデータ点移動処理を行う。この処理により、移動対象のデータ点がポジティブの領域に近づく方向に、他のデータ点が周囲に存在する領域を経由して一定の距離dだけ移動する。なお、移動対象のデータ点移動処理の詳細は後述する(
図14参照)。
【0083】
[ステップS106]アクション決定部130は、移動対象のデータ点がポジティブの領域に到達したか否かを判断する。例えばアクション決定部130は、記憶部110から領域情報112を取得する。そしてアクション決定部130は、取得した領域情報112に基づいて、移動対象のデータ点移動処理で移動後の移動対象のデータ点の位置を含む領域のクラスを判別する。アクション決定部130は、該当領域のクラスがポジティブであれば、ポジティブ領域に到達したと判断する。アクション決定部130は、ポジティブの領域に到達した場合、処理をステップS107に進める。またアクション決定部130は、ポジティブの領域に到達していなければ、処理をステップS103に進める。
【0084】
[ステップS107]アクション決定部130は、移動対象のデータ点について決定した移動経路のベクトル集合を出力する。例えばアクション決定部130は、移動経路のベクトル集合を対話型UI部140に送信する。対話型UI部140は、移動経路のベクトル集合に含まれるベクトルの向きなどに基づいて、ユーザに対するアクションを提案する。
【0085】
次に、移動対象のデータ点移動処理について詳細に説明する。
図14は、移動対象のデータ点移動処理の手順を示すフローチャートである。以下、
図14に示す処理をステップ番号に沿って説明する。
【0086】
[ステップS111]アクション決定部130は、ポジティブ方向にLp-ノルムで距離d(例えばユークリッド距離)の移動先候補点を1つ取得する。例えばアクション決定部130は、移動対象のデータ点から半径がdの円上の所定間隔の点のうち、現在の位置よりもポジティブの領域に近く、まだ移動先候補点として取得されていない点を取得する。
【0087】
[ステップS112]アクション決定部130は、移動対象のデータ点と移動先候補のデータ点との、項目値の種類ごとの項目値の差分を計算する。例えば移動対象のデータ点を示すベクトルをx(x1,x2)とし、移動先候補のデータ点を示すベクトルをy(y1,y2)とする。この場合、アクション決定部130は、「y1-x1」と「y2-x2」とを計算する。
【0088】
[ステップS113]アクション決定部130は、共分散行列から得られた固有値と固有ベクトルを用いてマハラノビス距離を計算する。例えばアクション決定部130は、固有値と固有ベクトルとの組ごとに、ステップS112で算出した項目値の種類ごとの差分値を成分とするベクトルと固有ベクトルとの積(内積)の絶対値に固有値を乗算し、乗算結果の平方根を算出する。これによりD個の擬似マハラノビス距離が得られる。アクション決定部130は、得られた擬似マハラノビス距離を合計し、合計した結果をマハラノビス距離とする。
【0089】
[ステップS114]アクション決定部130は、所定個数の移動先候補点を取得したか否かを判断する。アクション決定部130は、所定個数の移動先候補点を取得した場合、処理をステップS115に進める。またアクション決定部130は、所定個数の移動先候補点を取得していなければ、処理をステップS111に進める。
【0090】
[ステップS115]アクション決定部130は、マハラノビス距離が最短の移動先候補点の位置を移動対象のデータ点の移動先として決定する。そしてアクション決定部130は、移動先に決定された位置に移動対象のデータ点を移動させる。この際、アクション決定部130は、移動対象のデータ点の移動前の位置から移動先の位置までのベクトルを、アクション提案用のデータとしてメモリ102またはストレージ装置103に格納する。
【0091】
このようにして、マハラノビス距離が短くなるように、移動対象のデータ点を移動させることができる。
図15は、移動先候補点からの移動先の決定例を示す図である。
図15に示すように移動対象のデータ点53を中心とする半径dの円上に複数の移動先候補点45が設定される。移動先候補点45は、ポジティブの領域52に近づく方向にのみ設定される。これにより、移動対象のデータ点53が、ポジティブの領域から遠ざかるように移動させるアクションが提案されることが抑止されている。
【0092】
複数の移動先候補点45は、移動対象のデータ点53からのLp-ノルムでの距離は等しいが、マハラノビス距離は異なる。移動対象のデータ点53との間の経路周辺に他のデータ点が存在しない移動先候補点はマハラノビス距離が長くなり、移動対象のデータ点53との間の経路周辺に他のデータ点が多く存在する移動先候補点ほど、マハラノビス距離は短くなる。アクション決定部130は、マハラノビス距離が最短となる移動先候補点を、移動先として選択する。これにより、他のデータ点が存在しない経路を通って移動させるアクションが提案されることが抑止されている。
【0093】
アクション決定部130が移動対象のデータ点をポジティブの領域に移動させたとき個々の移動を示すデータに基づいて、対話型UI部140がユーザに対するアクション提案を行う。以下、
図16~
図18を参照し、アクション提案の例について説明する。
【0094】
図16は、初回のアクション提案の例を示す図である。
図16の例では、ユーザの体脂肪率と血糖値とに対応するデータ点が、移動対象のデータ点として既に指定されているものとする。このとき例えばユーザが、「発症リスクを下げたい。」と音声入力をする。
【0095】
提案装置100の画面60にはユーザのアバター61とAIアシスタント62が表示されている。アバター61の吹き出しには、ユーザが音声入力した言葉が表示されている。
提案装置100は、ユーザの体脂肪率と血糖値に対応するデータ点をポジティブの領域に1または複数の段階を経て移動させるための改善提案を行う。
図16の例では、アクション提案処理により得られた移動対象のデータ点の現在の位置からの移動先は、体脂肪率をほとんど変えずに血糖値を下げるような位置である。対話型UI部140は、移動対象のデータ点の移動を示すベクトルのある成分の値が所定値以下の場合、その成分の値は0とみなして、アクション提案を行う。そこで対話型UI部140は、AIアシスタント62の吹き出しに「血糖値を減らしましょう。」というメッセージを表示する。
【0096】
図17は、2回目のアクション提案の例を示す図である。
図17の例では、提案されたアクション通りユーザが血糖値を下げ、最新の体脂肪率と血糖値とに対応するデータ点が、移動対象のデータ点として指定されているものとする。このとき例えばユーザが、「血糖値を減らしました。次はどうしたらいいですか。」と音声入力をする。入力された内容はアバター61の吹き出しに表示される。
【0097】
提案装置100は、ユーザの体脂肪率と血糖値に対応するデータ点をポジティブの領域に1または複数の段階を経て移動させるための改善提案を行う。
図17の例では、アクション提案処理により得られた移動対象のデータ点の現在の位置からの移動先は、体脂肪率と血糖値とを共に下げるような位置である。そこで対話型UI部140は、AIアシスタント62の吹き出しに「血糖値と体脂肪率を減らしましょう。」というメッセージを表示する。
【0098】
図18は、3回目のアクション提案の例を示す図である。
図18の例では、提案されたアクション通りユーザが体脂肪率と血糖値とを下げ、最新の体脂肪率と血糖値とに対応するデータ点が、移動対象のデータ点として指定されているものとする。このとき例えばユーザが、「血糖値と体脂肪率低下を達成しました。次はどうしたらいいですか。」と音声入力をする。入力された内容はアバター61の吹き出しに表示される。
【0099】
提案装置100は、ユーザの体脂肪率と血糖値に対応するデータ点をポジティブの領域に1または複数の段階を経て移動させるための改善提案を行う。
図18の例では、アクション提案処理により得られた移動対象のデータ点の現在の位置からの移動先は、体脂肪率を共に下げるような位置である。そこで対話型UI部140は、AIアシスタント62の吹き出しに「体脂肪率を減らしましょう。」というメッセージを表示する。
【0100】
以上説明したように、相関を考慮し、データ点の分布に従いながら提案するアクションを決定することで、ユーザが実現可能なアクション提案を行うことができる。
〔その他の実施の形態〕
第2の実施の形態では、ユーザへのアクション提案として、次のアクションのみを提案しているが、提案装置100は、ポジティブの状態になるためのすべてのアクションを纏めて提案することもできる。
【0101】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【0102】
1 複数の属性データ
1a 対象の属性データ
2 領域情報
3 次元空間
10 情報処理装置
11 記憶部
12 処理部