(57)【要約】【課題】予測精度の劣化を抑制することを課題とする。【解決手段】医療用のデータ構造は、複数の要素から構成される患者の診療データと、患者が入院した経験がある体調不良者または患者が入院したことがない通常者かのいずれかを特定する罹患情報とを含む。学習装置は、患者が回復患者に該当する場合、重み付けルールにしたがって、診療データのいずれかの要素の重みを変更してテンソルデータを変更し、ターゲットコアテンソルと類似するようにコアテンソルを生成し、ディープテンソルを用いた学習器にコアテンソルを入力して教師有学習を実行する処理に、医療用のデータ構造を用いる。【選択図】図２０
2020101901.tif 000002
【特許請求の範囲】
【請求項１】
複数の要素から構成される患者の診療データと、
前記患者が入院した経験がある体調不良者または前記患者が入院したことがない通常者かのいずれかを特定する罹患情報と、を含む医療用のデータ構造であって、
ターゲットコアテンソルと、過去に入院経験があるが退院している回復患者の診療データへの重み付けルールとを記憶する記憶部と、前記診療データからテンソルデータを生成する生成部とを有する学習装置が、
前記患者が前記回復患者に該当する場合、前記重み付けルールにしたがって、前記診療データのいずれかの要素の重みを変更して前記テンソルデータを変更し、前記ターゲットコアテンソルと類似するように前記変更されたテンソルデータからコアテンソルを生成し、ディープテンソルを用いた学習器に前記コアテンソルを入力して教師有学習を実行する処理に用いられる、医療用のデータ構造。
【請求項２】
前記学習装置が、前記患者が前記回復患者に該当する場合、前記重み付けルールにしたがって、前記診療データの日付、月度および症状のうちの第一の次元の要素のそれぞれの重みを変更して、前記第一の次元とは異なる第二の次元の要素の重みをそのままとする、請求項１に記載の医療用のデータ構造。
【請求項３】
複数のノードと、前記複数のノードを接続するエッジとから成るグラフデータから構成された患者の診療データであって、
前記複数のノードは、日付、月度および症状のノードから構成され、
当該日付、月度および症状のノードは、日付、月度および症状の数だけそれぞれ存在し、
各ノードには、日付、月度および症状の状況に応じた値が格納されており、
前記エッジは、日付のノードと、月度のノードと、症状のノードのうち関連のあるノードを接続し、
前記学習装置が
前記患者が前記回復患者に該当する場合であって、前記診療データの日付、月度および症状のうちの第一の次元の要素のそれぞれの重みを変更したときに、前記重みに基づいて前記第一の次元に対応するノードに格納された値を変更したグラフデータを示すテンソルデータを生成し、前記ターゲットコアテンソルと類似するように前記テンソルデータから第一のコアテンソルを生成し、ディープテンソルを用いた学習器に前記第一のコアテンソルを入力し、
前記患者が前記回復患者に該当しない場合は、ノードに格納された値を変更しない状態のグラフデータを示すテンソルデータを生成し、前記ターゲットコアテンソルと類似するように前記テンソルデータから第二のコアテンソルを生成し、ディープテンソルを用いた学習器に第二のコアテンソルを入力し、
前記学習器が、
前記第一のコアテンソルが入力されたときは、前記回復患者の特徴を示すノードとエッジの関係を学習し、
前記第二のコアテンソルが入力されたときは、入院した経験がない正常者の特徴を示すノードとエッジの関係を学習する、
請求項２に記載の医療用のデータ構造。
【請求項４】
前記重み付けルールは、重み変更前後で各診療データのグラフ構造の形状が変化するように、前記グラフ構造のノードの値またはエッジの長さを変更する情報であることを特徴とする請求項１に記載の医療用のデータ構造。
【請求項５】
前記学習装置が、前記体調不良者の診療データから生成される第１のテンソルデータに類似する前記回復患者の診療データから生成される第２のテンソルデータに含まれる要素のうちいずれかの要素の重みを変更することで、テンソル分解によって前記第１のテンソルデータから生成されるコアテンソルの主成分方向と、前記第２のテンソルデータから生成されるコアテンソルの主成分方向とを差別化して、前記体調不良者の特徴量と前記回復患者の特徴量のそれぞれを前記学習器に学習させる、ことを特徴とする請求項１に記載の医療用のデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、医療用のデータ構造に関する。
【背景技術】
【０００２】
グラフ構造のデータを深層学習することが可能なグラフ構造学習技術（以降、このようなグラフ構造学習を行う装置の一形態を「ディープテンソル（DeepTensor：DT）」と呼ぶ。）が知られている。ＤＴは、入力としてグラフ構造を用い、グラフ構造をテンソルデータ（以下では、テンソルと記載する場合がある）として扱う。そして、ＤＴでは、予測に寄与するグラフの部分構造（テンソルの部分パターン）をコアテンソルとして抽出することで、高精度な予測を実現する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０８−３２９１９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記ＤＴでは、コアテンソルで部分的な共通パターンを処理することができるが、部分的なテンソル上は類似しているが実はデータ全体でみると特徴が異なるデータも同じ共通パターンとして処理される場合があり、予測精度が低下する。
【０００５】
例えば、出勤簿データをＤＴで学習する場合、体調不良者の出勤簿データおよび通常者の出勤簿データをＤＴに入力して予測モデルを学習する。そして、学習済みの予測モデルに、判別対象者の出勤簿データを入力して、判別対象者が療養（休職）する可能性を予測する。
【０００６】
このような学習では、過去にメンタル疾患などを発症して療養経験のある既往者の出勤簿データが、復職して通常勤務している状態であっても、休暇や遅刻が頻出するなど、乱れがあることがある。このとき、新規療養前の兆候である出勤の乱れがある出勤簿データと、部分的なテンソル上では似た状態になることがある。しかし、その後で療養が発生するとは限らない。よって、既往者の出勤簿データがノイズとなり、新規療養者の予測精度を低下させる。なお、療養予測に限らず、入院予測などでも同様である。
【０００７】
一つの側面では、予測精度の劣化を抑制することができる医療用のデータ構造を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の案では、医療用のデータ構造は、複数の要素から構成される患者の診療データと、前記患者が入院した経験がある体調不良者または前記患者が入院したことがない通常者かのいずれかを特定する罹患情報と、を含む。学習装置は、ターゲットコアテンソルと、過去に入院経験があるが退院している回復患者の診療データへの重み付けルールとを記憶する記憶部と、前記診療データからテンソルデータを生成する生成部とを有する。データ構造は、学習装置が、前記患者が前記回復患者に該当する場合、前記重み付けルールにしたがって、前記診療データのいずれかの要素の重みを変更して前記テンソルデータを変更し、前記ターゲットコアテンソルと類似するように前記変更されたテンソルデータからコアテンソルを生成し、ディープテンソルを用いた学習器に前記コアテンソルを入力して教師有学習を実行する処理に用いられる。
【発明の効果】
【０００９】
一実施形態によれば、予測精度の劣化を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１にかかる機械学習の全体例を説明する図である。
【図２】図２は、学習データの例を説明する図である。
【図３】図３は、グラフ構造とテンソルとの関係の一例を示す図である。
【図４】図４は、部分グラフ構造の抽出の一例を示す図である。
【図５】図５は、ディープテンソルの学習例を説明する図である。
【図６】図６は、実施例１にかかる学習装置の機能構成を示す機能ブロック図である。
【図７】図７は、重み情報ＤＢに記憶される重み情報の例を示す図である。
【図８】図８は、出勤簿データＤＢに記憶される情報の例を示す図である。
【図９】図９は、学習データＤＢに記憶される情報の例を示す図である。
【図１０】図１０は、療養期間の判定と重み設定を説明する図である。
【図１１】図１１は、テンソル化を説明する図である。
【図１２】図１２は、テンソルデータの比較例を示す図である。
【図１３】図１３は、既往者のテンソルデータ上における重み変更を説明する図である。
【図１４】図１４は、重み変更の対象外である学習データを説明する図である。
【図１５】図１５は、重み変更の対象である学習データを説明する図である。
【図１６】図１６は、重み変更が与える影響を説明する図である。
【図１７】図１７は、学習処理の流れを示すフローチャートである。
【図１８】図１８は、予測時の処理の流れを示すフローチャートである。
【図１９】図１９は、実施例２にかかる学習データの例を説明する図である。
【図２０】図２０は、入院期間の判定と重み設定を説明する図である。
【図２１】図２１は、実施例２にかかるテンソル化を説明する図である。
【図２２】図２２は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する医療用のデータ構造の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１２】
［全体例］
近年、従業員の体調管理などは、企業にとっても取り組むべき重要な事項に位置づけられており、従業員の出勤簿データから、数か月先のメンタル不調を予測し、カウンセリング等の対応を早期に実施することが行われている。一般的には、専任スタッフが、膨大な人数の従業員の出勤簿データを閲覧し、頻繁な出張、長時間残業、連続する欠勤、無断欠勤、これらの組合せなどの特徴的なパターンの勤務状態に該当する従業員を目視で探している。このような特徴的なパターンは、各専任スタッフにより基準が異なることもあり、明確に定義することが難しい。
【００１３】
そこで、本実施例では、ディープテンソルを用いた深層学習の一例として、従業員等の出勤簿データを学習対象とし、体調不良者の出勤簿データおよび通常者の出勤簿データをディープテンソルに入力して従業員のメンタル不調を予測する予測モデルを学習する。
【００１４】
図１は、実施例１にかかる機械学習の全体例を説明する図である。図１に示すように、実施例１にかかる学習装置１００は、社員の日々の出勤、退勤時間、休暇取得、出張などの状況を含む出勤簿データを機械学習して予測モデルを生成する。そして、学習装置１００は、学習後の予測モデルを用いて、予測対象のある社員の出勤簿データから、当該社員が療養（休職）するか療養しないかを予測するコンピュータ装置の一例である。なお、ここでは、学習装置１００が学習処理と予測処理とを実行する例で説明するが、別々の装置で実行することもできる。
【００１５】
例えば、学習装置１００は、複数の要素から構成される従業員の出勤簿データと、従業員が療養した経験がある体調不良者か療養したことがない通常者か否かを特定する従業員情報（ラベル）と、を含む学習データを記憶する。また、学習装置１００は、ターゲットコアテンソルと過去に療養経験があるが復職している従業員を示す既往者の出勤簿データへの重み付けルールとを記憶する。
【００１６】
このような状態で、学習装置１００は、既往者に該当しない学習データに対しては、テンソル化対象の出勤簿データに対する重みを変更することなく（例えば１のまま）、テンソル化を実行する。そして、学習装置１００は、テンソル化されたテンソルデータをテンソル分解して、ターゲットコアテンソルに類似するようにコアテンソルを生成する。その後、学習装置１００は、ディープテンソルを用いた学習器にコアテンソルを入力して教師有学習を実行する。
【００１７】
一方、学習装置１００は、既往者に該当する学習データに対しては、予め記憶する重みづけルールにしたがって、テンソル化対象の出勤簿データのいずれかの要素の重みを変更してテンソルデータを変更する。そして、学習装置１００は、重みが変更されたデータをテンソル分解して、ターゲットコアテンソルと類似するようにコアテンソルを生成する。その後、学習装置１００は、ディープテンソルを用いた学習器にコアテンソルを入力して教師有学習を実行する。
【００１８】
ここで、ディープテンソルに入力する学習データについて説明する。図２は、学習データの例を説明する図である。学習データは、６か月ごとの出勤簿データと、その６か月以降から３か月以内に療養実績があるか否かを示すラベルとから構成される。図２の（ａ）は、ラベル（療養あり）が付される体調不良者の出勤簿データであり、図２の（ｂ）は、療養しなかったラベル（療養なし）が付される通常者の出勤簿データである。図２に示すように、実施例１にかかる学習装置１００は、「６か月分の出勤簿データ、ラベル（療養あり）」と、「６か月分の出勤簿データ、ラベル（療養なし）」とを学習データとして予測モデルを学習する。学習装置１００は、学習後、ある人の６か月分の出勤簿データから３か月以内に療養するか否かを予測する。なお、図２内の網掛けは、休暇を示す。
【００１９】
次に、ディープテンソルについて説明する。ディープテンソルとは、テンソル（グラフ情報）を入力とするディープラーニングであり、ニューラルネットワークの学習とともに、判別に寄与する部分グラフ構造を自動的に抽出する。この抽出処理は、ニューラルネットワークの学習とともに、入力テンソルデータのテンソル分解のパラメータを学習することによって実現される。
【００２０】
次に、図３および図４を用いてグラフ構造について説明する。図３は、グラフ構造とテンソルとの関係の一例を示す図である。図３に示すグラフ２０は、４つのノードがノード間の関係性（例えば「相関係数が所定値以上」）を示すエッジで結ばれている。なお、エッジで結ばれていないノード間は、当該関係性がないことを示す。グラフ２０を２階のテンソル、つまり行列で表す場合、例えば、ノードの左側の番号に基づく行列表現は「行列Ａ」で表され、ノードの右側の番号（囲み線で囲んだ数字）に基づく行列表現は「行列Ｂ」で表される。これらの行列の各成分は、ノード間が結ばれている（接続している）場合「１」で表され、ノード間が結ばれていない（接続していない）場合「０」で表される。以下の説明では、この様な行列を接続行列ともいう。ここで、「行列Ｂ」は、「行列Ａ」の２，３行目および２，３列目を同時に置換することで生成できる。ディープテンソルでは、この様な置換処理を用いることで順序の違いを無視して処理を行う。すなわち、「行列Ａ」および「行列Ｂ」は、ディープテンソルでは順序性が無視され、同じグラフとして扱われる。なお、３階以上のテンソルについても同様の処理となる。
【００２１】
図４は、部分グラフ構造の抽出の一例を示す図である。図４に示すグラフ２１は、６つのノードがエッジで結ばれたものである。グラフ２１は、行列（テンソル）で表すと行列２２に示すように表現できる。行列２２に対して、特定の行および列を入れ替える演算、特定の行および列を抽出する演算、ならびに、接続行列における非ゼロ要素をゼロに置換する演算を組み合わせることで、部分グラフ構造を抽出できる。例えば、行列２２の「ノード１，４，５」に対応する行列を抽出すると、行列２３となる。次に、行列２３の「ノード４，５」間の値をゼロに置換すると、行列２４となる。行列２４に対応する部分グラフ構造は、グラフ２５となる。
【００２２】
このような部分グラフ構造の抽出処理は、テンソル分解と呼ばれる数学的演算によって実現される。テンソル分解とは、入力されたｎ階テンソルをｎ階以下のテンソルの積で近似する演算である。例えば、入力されたｎ階テンソルを１つのｎ階テンソル（コアテンソルと呼ばれる。）、および、より低階のｎ個のテンソル（ｎ＞２の場合、通常は２階のテンソル、つまり行列が用いられる。）の積で近似する。この分解は一意ではなく、入力データが表すグラフ構造中の任意の部分グラフ構造をコアテンソルに含める事ができる。
【００２３】
なお、出勤簿データは、複数のノードと複数のノードを接続するエッジとから成るグラフデータを構成することができる。ここで、複数のノードは、日付、月度および出欠区分のノードから構成される。日付、月度および出欠区分のノードは、日付、月度および出欠区分の数だけそれぞれ存在する。各ノードには、日付、月度および出欠区分の状況に応じた値が格納される。例えば、日付が１なら値「１」、出欠区分が「休暇」なら値「２」で「出社」なら値「１」などが設定される。エッジは、日付のノードと、月度のノードと、出欠区分のノードのうち関連のあるノードを接続される。
【００２４】
続いて、ディープテンソルの学習について説明する。図５は、ディープテンソルの学習例を説明する図である。図５に示すように、学習装置１００は、療養ありなどの教師ラベル（ラベルＡ）が付された出勤簿データから入力テンソルを生成する。そして、学習装置１００は、入力テンソルにテンソル分解を行って、初回にランダムに生成されたターゲットコアテンソルに類似するようにコアテンソルを生成する。そして、学習装置１００は、コアテンソルをニューラルネットワーク（ＮＮ：Neural  Network）に入力して分類結果（ラベルＡ：７０％、ラベルＢ：３０％）を得る。その後、学習装置１００は、分類結果（ラベルＡ：７０％、ラベルＢ：３０％）と教師ラベル（ラベルＡ：１００％、ラベルＢ：０％）との分類誤差を算出する。
【００２５】
ここで、学習装置１００は、誤差逆伝搬法を拡張した拡張誤差伝搬法を用いて予測モデルの学習およびテンソル分解の方法の学習を実行する。すなわち、学習装置１００は、ＮＮが有する入力層、中間層、出力層に対して、分類誤差を下層に伝搬させる形で、分類誤差を小さくするようにＮＮの各種パラメータを修正する。さらに、学習装置１００は、分類誤差をターゲットコアテンソルまで伝搬させ、予測に寄与するグラフの部分構造、すなわち体調不良者の特徴を示す特徴パターンもしくは通常者の特徴を示す特徴パターンに近づくように、ターゲットコアテンソルを修正する。
【００２６】
なお、学習後の予測時には、テンソル分解により、ターゲットコアテンソルに類似するように、入力テンソルをコアテンソル（入力テンソルの部分パターン）に変換し、コアテンソルをニューラルネットに入力することで、予測結果を得ることができる。
【００２７】
そして、学習装置１００は、通常者と体調不良者のそれぞれの出勤簿データから生成されたテンソルを用いて学習する際に、１つの学習データとして切り出された期間（例えば、６か月＋ラベル用の３か月）内に療養が含まれるか否かに関わらず、出勤簿データの全期間を参照し、過去に療養経験がある者（既往者）を特定する。そして、学習装置１００は、コアテンソル化（部分パターン抽出）した際に、療養前の兆候となる乱れた出勤簿のパターンと部分的に類似のデータを持つ恐れがある既往者の療養明け（復職後）期間のデータについてのテンソルの重みを減らす。
【００２８】
このようにすることで、学習装置１００は、既往者の出勤簿データが、休暇や遅刻が頻発するなど、新規に療養に入る前の体調不良者の出勤簿データと部分的に類似していても、既往者と体調不良者（新規療養者）とを別々のコアテンソルと抽出することができる。よって、学習装置１００は、体調不良者の特徴を正確に学習することができるので、新規療養の予測精度の劣化を抑制することができる。
【００２９】
［機能構成］
図６は、実施例１にかかる学習装置１００の機能構成を示す機能ブロック図である。図６に示すように、学習装置１００は、通信部１０１、記憶部１０２、制御部１１０を有する。
【００３０】
通信部１０１は、他の装置との通信を制御する処理部であり、例えば通信インタフェースである。例えば、通信部１０１は、管理者の端末から、処理開始指示、学習データ、学習データがテンソル化された入力テンソルなどを受信する。また、通信部１０１は、管理者の端末に対して、学習結果や予測結果などを出力する。
【００３１】
記憶部１０２は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部１０２は、重み情報ＤＢ１０３、出勤簿データＤＢ１０４、学習データＤＢ１０５、テンソルＤＢ１０６、学習結果ＤＢ１０７、予測対象ＤＢ１０８を記憶する。
【００３２】
重み情報ＤＢ１０３は、テンソルデータに設定する重みの設定内容を示す重み付けルールを記憶するデータベースである。図７は、重み情報ＤＢ１０３に記憶される重み情報の例を示す図である。図７に示すように、重み情報ＤＢ１０３は、「種別、設定値（重み）」を対応付けて記憶する。ここで記憶される「種別」は、データの種別を示し、「設定値（重み）」は、設定する値を示す。
【００３３】
図７の例では、既往者の療養期間後のテンソルデータに対しては重み「０．５」を設定することを示し、それ以外のテンソルデータに対しては重み「１．０」を設定することを示す。なお、重み「１．０」とは、テンソルデータを変化させないと解釈することができるので、デフォルト値などを用いることができる。また、重み「０．５」とは、テンソルデータの重みの一部を変化させて重要度を下げることと解釈することができるので、デフォルト値よりも小さい値を採用することができる。なお、重みの設定は、月度や出欠区分などの要素ごとに設定することもできる。
【００３４】
出勤簿データＤＢ１０４は、社員等の出勤に関する出勤簿データを記憶するデータベースである。ここで記憶される出勤簿データは、各企業で使用される出勤簿をデータ化したものであり、公知の様々な出勤管理システムなどから取得することができる。図８は、出勤簿データＤＢ１０４に記憶される情報の例を示す図である。図８に示すように、出勤簿データは、「従業員Ｎｏ、日付、曜日、出欠区分、出勤時刻、退勤時刻、残業時間、出張」を対応付けて記憶する。なお、出欠区分には、出社、療養、休暇などの種別が格納される。また、日付や曜日などは、出勤簿データを構成する要素の一例である。
【００３５】
図８の例は、従業員Ｎｏ．１００の従業員の出勤簿データを示している。例えば、図８の２行目は、「2015年4月2日木曜日」の出勤簿データであり、この日は、出張がなく、「8：49」に出社して「0：00」に退社し、残業時間が「360分」である例を示す。また、図８の７行目は、「2015年8月24日水曜日」の出勤簿データであり、この日から「2015年10月4日火曜日」まで「療養」したことを示す。なお、出勤簿データの単位は、日ごとに限らず、週単位や月単位であってもよい。
【００３６】
学習データＤＢ１０５は、テンソル化対象となる学習データを記憶するデータベースである。具体的には、学習データＤＢ１０５は、出勤簿データを６か月の期間で切出されたデータと、ラベルの組となる各学習データを記憶する。
【００３７】
例えば、６か月の出勤簿データを１つの学習データとし、その後の３か月以内に療養した療養期間がある場合に、ラベルとして「療養あり」が設定され、その後の３か月以内に療養期間がない場合に、ラベルとして「療養なし」が設定される。なお、６か月の出勤簿データに療養期間が含まれている場合、そのデータは学習データとして採用されない。これは、予測時に、予測元のデータ（入力）となる６か月分の出勤簿データにすでに「療養」が入っている人は、明らかに直近で療養しているとわかっており、この先３か月の療養予測の対象にはしないためである。
【００３８】
図９は、学習データＤＢ１０５に記憶される情報の例を示す図である。図９に示すように、学習データＤＢ１０５は、「従業員、データ（説明変数）、ラベル（目的変数）」を対応付けて記憶する。ここで記憶される「従業員」は、学習データの生成元となった出勤簿データに対応する従業員であり、データを説明変数、ラベルを目的変数とする学習データが記憶される。
【００３９】
図９の例では、従業員Ａの１月から６月までの出勤簿データには、ラベルとして「療養なし」が設定されていることを示し、従業員Ａの２月から７月までの出勤簿データには、ラベルとして「療養なし」が設定されていることを示す。また、従業員Ａの３月から８月までの出勤簿データには、ラベルとして「療養あり」が設定されていることを示す。
【００４０】
テンソルＤＢ１０６は、各従業員の学習データから生成された各テンソル（テンソルデータ）を記憶するデータベースである。このテンソルＤＢ１０６は、各テンソルとラベルとを対応付けたテンソルデータを記憶する。例えば、テンソルＤＢ１０６は、「データＮｏ、ラベル」として「テンソルＮｏ．１、ラベル（療養なし）」や「テンソルＮｏ．２、ラベル（療養あり）」などを記憶する。なお、ここで記憶される各テンソルは、学習装置１００以外の別の装置で生成してもよく、学習装置１００が生成することもできる。
【００４１】
学習結果ＤＢ１０７は、学習結果を記憶するデータベースである。例えば、学習結果ＤＢ１０７は、制御部１１０による学習データの判別結果（分類結果）、機械学習やディープラーニングによって学習された、ＮＮの各種パラメータやディープテンソルの各種パラメータなどを記憶する。
【００４２】
予測対象ＤＢ１０８は、学習された予測モデルを用いて、新規に療養の有無を予測する対象の出勤簿データを記憶するデータベースである。例えば、予測対象ＤＢ１０８は、予測対象の出勤簿データ、または、予測対象の出勤簿データから生成されたテンソルなどを記憶する。
【００４３】
制御部１１０は、学習装置１００全体の処理を司る処理部であり、例えばプロセッサなどである。この制御部１１０は、学習データ生成部１１１、既往者判定部１１２、重み設定部１１３、テンソル生成部１１４、学習部１１５、予測部１１６を有する。なお、学習データ生成部１１１、既往者判定部１１２、重み設定部１１３、テンソル生成部１１４、学習部１１５、予測部１１６は、プロセッサなどが有する電子回路やプロセッサなどが実行するプロセスの一例である。
【００４４】
学習データ生成部１１１は、出勤簿データＤＢ１０４に記憶される各出勤簿データから、始期の異なる一定期間のデータと、始期に対応したラベルの組となる学習データを生成する処理部である。具体的には、学習データ生成部１１１は、一人の出勤簿データから重複を許して、指定された期間のデータをサンプリングする。学習データ生成部１１１は、各出勤簿データから、期間のはじまり（始期）が異なる複数のデータを抽出し、各データについて、データの終期から３か月以内に療養期間があればラベル「療養あり」を設定し、データの終期から３か月以内に療養期間がなければラベル「療養なし」を設定する。その後、学習データ生成部１１１は、抽出したデータと設定したラベルとを対応付けた学習データを学習データＤＢ１０５に格納する。
【００４５】
例えば、学習データ生成部１１１は、１月から１２月の出勤簿データから、１月から６月の出勤簿データを抽出する。そして、学習データ生成部１１１は、７月から９月の３か月間に療養期間がない場合はラベル「療養なし」を、抽出した出勤簿データに付加して学習データを生成する。続いて、学習データ生成部１１１は、１月から１２月の出勤簿データから、２月から７月の出勤簿データを抽出する。そして、学習データ生成部１１１は、８月から１０月の３か月間に療養期間がある場合はラベル「療養あり」を、抽出した出勤簿データに付加して学習データを生成する。
【００４６】
既往者判定部１１２は、各学習データの元となった出勤簿データに基づいて、該当する従業員が既往者か否かを判定する処理部である。例えば、既往者判定部１１２は、予測に用いる「６か月」などの区間切り出しではなく、該当従業員の全データ区間である出勤簿データを参照し、過去に「療養期間」がある場合は既往者と判定し、過去に「療養期間」がない場合は通常者と判定する。そして、既往者判定部１１２は、各学習データに対する判定結果を重み設定部１１３に通知する。
【００４７】
なお、既往者とは、１つの学習データとして使用する期間に限らず、過去の出勤簿データ全体において療養期間がある従業員を指す。例えば、療養期間が学習時から２年前の場合、直近６か月のデータだけみると「体調不良者」ではないが、「既往者」に該当する場合がある。
【００４８】
重み設定部１１３は、各学習データが既往者の療養明け期間に該当するか否かを判定し、その判定結果に応じてテンソルデータの重みの一部を変更する処理部である。具体的には、重み設定部１１３は、学習データＤＢ１０５に記憶される各学習データに対して、重み情報ＤＢ１０３に記憶される重み付けルールにしたがって重みを設定する。そして、重み設定部１１３は、重みが設定された結果をテンソル生成部１１４に出力する。
【００４９】
例えば、重み設定部１１３は、既往者判定部１１２によって既往者であると判定されるとともに療養期間後に該当する出勤簿データから生成された学習データに対して、重み「０．５」を設定する。また、重み設定部１１３は、「既往者かつ療養期間後」以外の各学習データに対しては、重み「１．０」を設定する。つまり、重み設定部１１３は、ある条件の一例である既往者の学習データについて、療養明けで復職した療養期間明けに該当するデータの重要度を減少させるために、重みを設定する。
【００５０】
ここで、図１０を用いて、療養区間と重みの設定について説明する。図１０は、療養期間の判定と重み設定を説明する図である。図１０に示すように、重み設定部１１３は、テンソル化に際して、各学習データが「療養期間」の前後のいずれに該当するかを判定する。図１０の例では、重み設定部１１３は、「2015年8月24日」から「2015年10月4日」まで「療養期間」を検出すると、療養開始の「2015年8月24日」より前に該当する学習データについては重みを「１」に設定し、療養終了の「2015年10月4日」より後の学習データについては重みを「０．５」に設定する。
【００５１】
つまり、療養期間より前の療養前期間は、療養要因となる部分パターンであるコアテンソル（予測に影響を与える部分パターン）として抽出するのに重要と判定され、重みとして「１」を設定する。一方で、療養期間より後の療養後期間は、療養要因となる部分パターンであるコアテンソルとして抽出する対象としては重要ではないと判定し、重みとして「０．５」を設定する。このようにして、既往者の療養期間後に該当する学習データについては、テンソルデータの重みの一部を変化させる。
【００５２】
テンソル生成部１１４は、各学習データをテンソル化する処理部である。具体的には、テンソル生成部１１４は、学習データＤＢ１０５に記憶される各学習データであって、重み設定部１１３による重み設定が完了した各学習データについて、各学習データに含まれる要素で構成されるテンソルを生成して、テンソルＤＢ１０６に格納する。例えば、テンソル生成部１１４は、各学習データについて、各学習データに含まれる４要素で構成される４階テンソルを生成して、テンソルＤＢ１０６に格納する。このとき、テンソル生成部１１４は、学習データに付加されるラベル（療養あり）またはラベル（療養なし）を、テンソルに対応付けて格納する。
【００５３】
具体的には、テンソル生成部１１４は、療養する傾向を特徴づけると想定される各属性を各次元として、学習データからテンソルを生成する。例えば、テンソル生成部１１４は、月度、日付、出欠区分、出張有無の４要素を用いた４次元の４階テンソルを生成する。なお、６か月分のデータである場合は、月度の要素数は「６」、各月の日付数の最大値が３１であることから日付の要素数は「３１」、出欠の種類が出社・休暇・休日であれば出欠区分の要素数は「３」、出張はありとなしであることから出張有無の要素数は「２」となる。したがって、学習データから生成されるテンソルは、「６×３１×３×２」のテンソルとなり、学習データの各月度、日付における出欠区分、出張有無に対応する要素の値が１、そうでない要素の値が０となる。
【００５４】
図１１は、テンソル化を説明する図である。図１１に示すように、テンソル生成部１１４が生成するテンソルは、横方向に月度、縦方向に日付、奥行き方向に出欠区分、左側が出張あり、右側が出張なしのデータとなる。日付は、上から１日目を順に示し、出欠区分は、手前から出社、休暇、休日を示す。例えば、図１１の（ａ）は、月度１の１日目に出社して出張した要素を示し、図１１の（ｂ）は、月度１の２日目に休暇を取得して出張しなかった要素を示す。
【００５５】
なお、本実施例では、上述したテンソルを簡略化して図１１の（ｃ）のように記載することとする。すなわち、月度、日付、出欠区分、出張有無の各要素を重ねたキューブ状で表現することとし、各月度かつ日付の出張有無を区別して表現し、各月度かつ日付の出欠区分を区別して表現することとする。
【００５６】
学習部１１５は、各学習データから生成された各テンソルおよびラベルを入力として、ディープテンソルによる予測モデルの学習およびテンソル分解の方法の学習を実行する処理部である。具体的には、学習部１１５は、ディープテンソルの「グラフ（テンソル）の部分構造を認識することができる」という性質を利用して、学習を実行する。例えば、学習部１１５は、図５で説明した手法と同様、入力対象のテンソル（入力テンソル）からコアテンソルを抽出してＮＮに入力し、ＮＮからの分類結果と入力テンソルに付与されているラベルとの誤差（分類誤差）を算出する。そして、学習部１１５は、分類誤差を用いて、ＮＮのパラメータの学習およびターゲットコアテンソルの最適化を実行する。その後、学習部１１５は、学習が終了すると、各種パラメータを学習結果として学習結果ＤＢ１０７に格納する。
【００５７】
なお、実施例１で説明するテンソル分解は、ターゲットコアテンソルに類似するようにコアテンソルを算出することにより、分類に重要な構造をコアテンソルの類似の位置に配置する。そして、このコアテンソルを用いてＮＮを学習することにより、精度の高い分類を実現する。
【００５８】
予測部１１６は、学習結果を用いて、判別対象のデータのラベルを予測する処理部である。具体的には、予測部１１６は、学習結果ＤＢ１０７から各種パラメータを読み出し、各種パラメータを設定したニューラルネットワークを構築する。そして、予測部１１６は、予測対象ＤＢ１０８から予測対象の出勤簿データを読み出し、学習時と同様の手法により、予測対象の出勤簿データから、ニューラルネットワークへの入力対象となるテンソルを生成する。
【００５９】
その後、予測部１１６は、学習済みのニューラルネットワーク（予測モデル）から、療養するまたは療養しないかの予測結果を取得する。そして、予測部１１６は、予測結果をディスプレイに表示したり、管理者端末に送信したりする。
【００６０】
また、予測部１１６は、予測対象の従業員の出勤簿データを参照して、予測対象の出勤簿データ期間よりも前に療養期間が含まれているか否かを判定し、療養期間が含まれていない通常者の場合に予測を実行し、療養期間が含まれている既往者である場合にアラートを出力することもできる。
【００６１】
［重み変更の影響］
次に、図１２から図１６を用いて、既往者の療養期間後の出勤簿データの重みが０．５に変更されることで、ＮＮの学習に与える影響について説明する。図１２は、テンソルデータの比較例を示す図である。図１３は、既往者のテンソルデータ上における重み変更を説明する図である。図１４は、重み変更の対象外である学習データを説明する図である。図１５は、重み変更の対象である学習データを説明する図である。図１６は、重み変更が与える影響を説明する図である。
【００６２】
ここでは、ラベル「療養あり」が付与される体調不良者に該当する従業員Ａの出勤簿データと、ラベル「療養なし」が付与される既往者に該当する従業員Ｂの出勤簿データとを例にして説明する。また、従業員Ｂの出勤簿データは、療養期間後の出勤簿データとする。
【００６３】
また、図６等では、既往者かつ療養期間後の出勤簿データに対しては、すべての要素の一律に重み「０．５」を設定する例を説明したが、ここでは、１つの要素の重みを変更する例を説明する。すなわち、出勤簿データの日付、月度および出欠区分のうちの出欠区分の重みを０．５に変更して、出欠区分以外の重みを１．０とする例を説明する。なお、どの要素の重みを変更するかは、重み付けルールで設定することができる。
【００６４】
図１２に示すように、ラベル「療養あり」が付与される従業員Ａ（体調不良者）の出勤簿データから生成されたテンソルデータと、ラベル「療養なし」が付与される従業員Ｂ（既往者）の出勤簿データから生成されたテンソルデータとは、１年や２年などの長い期間で比較すると、異なるデータである。しかし、６か月間などの短期間Ｐの範囲内に注目すると、類似するデータまたは同じデータとなり、特徴が区別できない。すなわち、本来、別々として扱われるべきデータが、学習データとして抽出される抽出対象の６か月間のデータでは同じ特徴量を持つ類似データとして扱われる。したがって、予測モデルの学習において、これらは同じ事例として処理されるので、既往者のデータがノイズとなり、ターゲットコアテンソルの最適化やＮＮの学習の精度劣化に繋がる結果、予測モデルの精度劣化が発生する。
【００６５】
そこで、図１３に示すように、重み設定部１１３による重み設定により、コアテンソル化（部分パターン抽出）した際に、部分的に類似のデータを持つ恐れがある既往者（従業員Ｂ）の療養明けのデータは、テンソルの重みの一部を変化させる。例えば、療養期間がある既往者であれば、療養後のデータ区間の重みの一部として、「出欠区分」のうち「年次休暇」や「準欠勤」などの休暇に該当するレコードの値を「０．５」にする。すなわち、エッジの長さを変えたり、ノードに設定する値を変更したりする。
【００６６】
このように、既往者の療養期間後のデータの重みを変更することで、グラフ構造のエッジが変更され、結果としてテンソルデータを変更することになる。この結果、出勤簿データから抽出されるコアテンソルを差別化することができるので、既往者かつ療養期間後の出勤簿データの特徴を、それ以外の出勤簿データの特徴と区別することができる。
【００６７】
具体的には、図１４に示すように、学習装置１００は、ラベル「療養あり」が付与される体調不良者に該当する従業員Ａの出勤簿データに対しては、出欠区分に年次休暇等の休暇が含まれていたとしても、全部のレコードに対して重み「１．０」を設定する。このため、出勤簿データは、データ値そのままのグラフ構造となり、テンソル化される。
【００６８】
一方、図１５に示すように、ラベル「療養なし」が付与される従業員Ｂの出勤簿データに対しては、基本的に全部のレコードに対して重み「１．０」が設定されるが、そのうち出欠区分に年次休暇または準欠勤が含まれるレコード（データ）に対しては重みが「０．５」に変更される。このため、出勤簿データを表すグラフ構造の形状が重み「１．０」の場合とは異なる形状になるので、テンソル化後のテンソルデータも重み「１．０」の場合とは異なるものとなる。
【００６９】
このように、重みを変更することで、出勤簿データ上では類似するデータであっても、異なるテンソルデータを生成することができる。したがって、コアテンソルの抽出元である出勤簿データが類似するデータ同士であっても、それぞれから別々のテンソルデータを生成できるので、別々の特徴としてＮＮを学習させることができる。
【００７０】
具体的には、図１６に示すように、重みの変更前後では、入力データとなる各グラフ構造の形状が変化することから、それぞれから生成されてコアテンソルの生成元となる各入力テンソル（テンソルデータ）の形状も変化する。このとき、入力テンソルの主成分方向は確定しない不確かな状態であることから、重み変更前後で主成分方向が一致する可能性もある。
【００７１】
ところが、その後に、入力テンソルからコアテンソルを抽出するテンソル分解を行うと、重みの変更前後において分解元である入力テンソルが異なることから、別々のコアテンソルが生成される。ここで、入力テンソルの特徴量を示すコアテンソルでは主成分方向が確定されることから、重み変更前後では、主成分方向が異なる別々のコアテンソルが抽出される。つまり、類似する出勤簿データであっても、重みを変更することにより、異なるコアテンソルの抽出が可能となる。この結果、既往者かつ療養期間後の出勤簿データを学習データと用いたとしても、予測モデルの精度低下を抑制できる。
【００７２】
［学習処理の流れ］
図１７は、学習処理の流れを示すフローチャートである。図１７に示すように、学習データ生成部１１１は、出勤簿データを出勤簿データＤＢ１０４から読み込み（Ｓ１０１）、学習対象の従業員１人を選択する（Ｓ１０２）。
【００７３】
続いて、学習データ生成部１１１は、出勤簿データから６か月期間のデータを切出すとともに、続く３か月間の出勤簿データ内の療養期間の有無によって、切出された各データにラベルを付与して、学習データを生成する（Ｓ１０３）。なお、６か月のデータ内に療養が含まれている場合は学習データとして採用されない。
【００７４】
その後、学習データ生成部１１１は、学習データを１つ選択し（Ｓ１０４）、当該学習データに対応する従業員の過去の全出勤簿データを参照して、療養期間が含まれるか否かを判定する（Ｓ１０５）。そして、学習データ生成部１１１は、療養期間が含まれる場合（Ｓ１０５：Ｙｅｓ）、学習データのラベルに「療養あり」を設定する（Ｓ１０６）。一方、学習データ生成部１１１は、療養期間が含まれない場合（Ｓ１０５：Ｎｏ）、学習データのラベルに「療養なし」を設定する（Ｓ１０７）。
【００７５】
そして、未処理の学習データが存在する場合（Ｓ１０８：Ｙｅｓ）、Ｓ１０４以降を繰り返し、未処理の学習データが存在しなくなると（Ｓ１０８：Ｎｏ）、Ｓ１０９以降が実行される。
【００７６】
具体的には、既往者判定部１１２は、学習データを１つ選択し（Ｓ１０９）、「条件：既往者かつ療養期間明け」に該当するか否かを判定する（Ｓ１１０）。ここで、重み設定部１１３は、条件に該当する学習データの場合（Ｓ１１０：Ｙｅｓ）、重み付けルールにしたがって、重みを「０．５」に変更し（Ｓ１１１）、条件に該当しない学習データの場合（Ｓ１１０：Ｎｏ）、重み「１．０」をそのまま設定する（Ｓ１１２）。
【００７７】
そして、テンソル生成部１１４は、重み付けされた学習データのテンソル化を実行してテンソルデータを生成する（Ｓ１１３）。その後、未処理の学習データが存在する場合（Ｓ１１４：Ｙｅｓ）、Ｓ１０９以降が繰り返され、未処理の学習データがなくなると（Ｓ１１４：Ｎｏ）、Ｓ１１５以降が実行される。
【００７８】
具体的には、未処理の学習対象の従業員が残っている場合（Ｓ１１５：Ｙｅｓ）、Ｓ１０２以降が繰り返される。一方、全ての従業員について処理が終了した場合（Ｓ１１５：Ｎｏ）、学習データを用いた学習部１１５による学習処理が実行される（Ｓ１１６）。
【００７９】
［予測の流れ］
図１８は、予測時の処理の流れを示すフローチャートである。なお、予測対象の出勤簿データについても、学習時と同様、期間６か月分を入力とし、その後３か月以内に療養する/しないを予測する。図１８に示すように、予測部１１６は、予測対象ＤＢ１０８から出勤簿データを読み込み（Ｓ２０１）、予測対象の従業員１人を選択する（Ｓ２０２）。
【００８０】
続いて、予測部１１６は、対象の従業員の出勤簿データを参照して、既往者に該当するか否かを判定する（Ｓ２０３）。
【００８１】
ここで、既往者に該当しない場合（Ｓ２０３：Ｎｏ）、予測部１１６は、出勤簿データのテンソル化を実行し（Ｓ２０４）、学習済みの予測モデルを用いて予測を実行し（Ｓ２０５）、該当従業員が３か月以内に療養するまたは療養しないを示す予測結果のラベルを記憶部１０２等に格納する（Ｓ２０６）。
【００８２】
その後、次の対象となる従業員がいる場合（Ｓ２０７：Ｙｅｓ）、Ｓ２０２以降が実行され、次の対象となる従業員がいない場合（Ｓ２０７：Ｎｏ）、処理を終了する。また、Ｓ２０３において、予測部１１６は、既往者に該当すると判定した場合（Ｓ２０３：Ｙｅｓ）、予測結果に既往者であることを示す既往者アラートを格納する（Ｓ２０８）。なお、Ｓ２０３で既往者に該当するとは、対象従業員が、予測対象の出勤簿データ（６か月分）よりも前の期間の出勤簿データに療養を含んでいる既往者である場合の他、予測対象の出勤簿データ（６か月分）内に療養を含んでおり予測対象外となる場合もある。
【００８３】
［効果］
上述したように、体調不良者の特徴を学習させたい場合に、体調不良者の出勤簿データと既往者の療養期間明けの出勤簿データとが類似することから、ノイズを含む学習となり、予測モデルの精度低下が発生する。そこで、実施例１にかかる学習装置１００は、既往者の療養期間明けの出勤簿データの重みを変更することで、出勤簿データのグラフ構造を変更することができるので、ＮＮへ入力されるコアテンソルを差別化することができる。
【００８４】
具体的には、学習装置１００は、重み付けルールにしたがって、通常者に該当する学習データ（ラベル：療養なし）、体調不良者（療養あり）に該当する学習データ、既往者かつ療養期間前に該当する学習データ（ラベル：療養あり）には重みとして「１．０」を設定する。一方で、学習装置１００は、既往者かつ療養期間後に該当する学習データ（ラベル：療養あり）に対しては、重みを「０．５」に変更する。
【００８５】
このようにすることで、学習装置１００は、各学習データの特徴量（コアテンソル）を明確に差別化する。この結果、学習装置１００は、ディープテンソルの「予測に寄与するグラフの部分構造（テンソルの部分パターン）をコアテンソルとして抽出することができる」という性質を有効利用することができ、少ない学習データ量でも精度良く予測が可能である。
【実施例２】
【００８６】
ところで、実施例１では、データ構造の一例として、出勤簿データを用いて説明したが、これに限定されるものではなく、例えば医療用の診療データなどを用いることもできる。そこで、実施例２では、診療データを用いた学習例を説明する。
【００８７】
実施例２では、症状の発生パターンなどを学習することで、入院を行うほど症状が悪化するかを予測する予測モデルを構築する。具体的には、学習装置１００は、入院したケースとして学習する学習データと、入院しなかったケースとして学習データを用いて、診療データから入院の発生有無を予測する予測モデルを学習する。
【００８８】
図１９は、実施例２にかかる学習データの例を説明する図である。図１９に示すように、学習データは、６か月ごとの診療データと、その６か月以降から３か月以内に入院実績があるか否かを示すラベルとから構成される。図１９の（ａ）は、患者が疫病に罹患して入院したラベル（罹患あり）が付される体調不良者の診療データである。図１９の（ｂ）は、入院しなかったラベル（罹患なし）が付される通常者の出勤簿データである。
【００８９】
図１９に示すように、実施例２にかかる学習装置１００は、「６か月分の診療データ、ラベル（罹患あり）」と、「６か月分の診療データ、ラベル（罹患なし）」とを学習データとして予測モデルを学習する。学習装置１００は、学習後、ある人の６か月分の診療データから３か月以内に入院するか否かを予測する。なお、図１９内の網掛けは、診療データの要素の１つである発熱を示す。
【００９０】
そして、学習装置１００は、実施例２においても、実施例１と同様に、重みの変更を実行する。具体的には、ラベル「罹患なし」が設定される入院期間明けの診療データの特徴と、ラベル「罹患あり」が設定される体調不良者の診療データの特徴とが類似することあるので、学習精度の劣化に繋がる。このため、実施例２においても、過去に入院したことがあるがすでに復帰している回復患者の入院期間明けの診療データに対して、通常よりも重みを小さく変更することで、学習への影響度を小さくする。
【００９１】
ここで、図２０を用いて、入院期間と重みの設定について説明する。図２０は、入院期間の判定と重み設定を説明する図である。まず、図２０に示すように、診療データは、「患者Ｎｏ．、日付、曜日、症状、血圧、投薬」を要素とするデータである。「患者Ｎｏ．」は、患者を特定する情報であり、「日付」は、診察日であり、「曜日」は、診察した曜日である。「症状」は、患者の症状であり、例えば発熱、腹痛、悪寒、正常（異常がない状態）などである。「血圧」は、患者の血圧の測定値である。「投薬」は、患者に薬を投薬したか否かを示す情報である。なお、ここで示した要素は一例であり、例えば診察時刻、手術の有無、血液検査の結果など他の要素を用いることもできる。
【００９２】
このような学習データのテンソル化に際して、学習装置１００は、各学習データが「入院期間」の前後のいずれに該当するかを判定する。図２０の例では、学習装置１００は、「2015年8月24日」から「2015年10月4日」までを「入院期間」として検出すると、入院開始の「2015年8月24日」より前に該当する学習データについては重みを「１」に設定し、入院終了の「2015年10月4日」より後の学習データについては重みを「０．５」に設定する。
【００９３】
つまり、入院期間より前の入院前期間は、入院要因となる部分パターンであるコアテンソルとして抽出するのに重要と判定され、重みとして「１」を設定する。一方で、入院期間より後の入院後期間は、入院要因となる部分パターンであるコアテンソルとして抽出する対象としては重要ではないと判定し、重みとして「０．５」を設定する。このようにして、ラベル「罹患なし」が設定される入院期間明けに該当する学習データについては、テンソルデータの重みの一部を変化させる。
【００９４】
次に、テンソルデータについて説明する。図２１は、実施例２にかかるテンソル化を説明する図である。学習装置１００は、入院する傾向を特徴づけると想定される各属性を各次元として、学習データからテンソルを生成する。例えば、学習装置１００は、月度、日付、症状、投薬有無の４要素を用いた４次元の４階テンソルを生成する。なお、６か月分のデータである場合は、月度の要素数は「６」、各月の日付数の最大値が３１であることから日付の要素数は「３１」、症状の種類が発熱、正常、腹痛であれば症状の要素数は「３」、投薬はありとなしであることから投薬有無の要素数は「２」となる。したがって、学習データから生成されるテンソルは、「６×３１×３×２」のテンソルとなり、学習データの各月度、日付における症状、投薬有無に対応する要素の値が１、そうでない要素の値が０となる。
【００９５】
図２１に示すように、学習装置１００が生成するテンソルは、横方向に月度、縦方向に日付、奥行き方向に症状、左側が投薬あり、右側が投薬なしのデータとなる。日付は、上から１日目を順に示し、症状は、手前から正常、発熱、腹痛を示す。例えば、図２１の（ａ）は、月度１の１日目の診察であり正常であったが投薬があった要素を示し、図２１の（ｂ）は、月度１の２日目の診察であり発熱があったが投薬がなかった要素を示す。
【００９６】
なお、実施例２でも実施例１同様、上述したテンソルを簡略化して図２１の（ｃ）のように記載することとする。すなわち、月度、日付、症状、投薬有無の各要素を重ねたキューブ状で表現することとし、各月度かつ日付の投薬有無を区別して表現し、各月度かつ日付の症状を区別して表現することとする。このようにすることで、学習装置１００は、実施例１と同様の手法を用いて、学習精度の高い予測モデルを学習することができる。
【実施例３】
【００９７】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００９８】
［学習］
上述した学習処理は、任意の回数だけ実行することもできる。例えば、すべての学習データを用いて実行することもでき、所定回数だけ実行することもできる。また、分類誤差の算出方法は、最小二乗法など公知の算出手法を採用することができ、ＮＮで用いられる一般的な算出手法を採用することもできる。なお、学習データや出勤簿データは、外部の装置から取得することもできる。
【００９９】
［重みの設定例］
上記実施例では、既往者かつ療養期間後に該当する学習データについては重み「０．５」を設定し、それ以外には重み「１．０」を設定したが、これに限定されるものではない。具体的には、既往者の療養期間明けにおける休暇の挙動を、新規の体調不良者と異なる挙動に変更できる手法を採用することもできる。
【０１００】
例えば、学習装置１００は、出欠区分の重みを、休暇種別を区別することなく、１より小さい値に一律に変更する。例を挙げると、学習装置１００は、重み変更前での学習期間（６か月）の１か月平均休暇日数をＤａ、学習期間よりも十分に長い期間（例えば１年間）での１か月平均休暇日数をＤｂとする。そして、学習装置１００は、既往者かつ療養期間後に該当する学習データに対する重みの修正値としてＤｂ／Ｄａを与える。このようにすることで、通常、Ｄａ＞Ｄｂとなることが予想できるので、既往者かつ療養期間後に該当する学習データの休暇日数パターンを、既往者の本来の休暇日数パターンに近づけることができる。
【０１０１】
また、学習装置１００は、通常者の１か月平均休暇日数Ｄｃを算出し、既往者かつ療養期間後に該当する学習データに対する重みの修正値としてＤｃ／Ｄａを与える。このようにすることで、既往者の挙動を通常者の挙動に近づけることができる。また、学習装置１００は、休暇状況に左右されにくくなり、確実に、新規休職者とは区別するために、既往者かつ療養期間後に該当する学習データに対する重みとして、０．１などのように極端に小さい値を設定することもできる。また、学習装置１００は、年次休暇や準欠勤などの休暇種別のうち、準欠勤の重みを０．５よりもさらに小さい値に変更することもできる。
【０１０２】
また、学習装置１００は、既往者かつ療養期間後に対応する出勤簿データを、通常者の出勤簿データに置き換えて、学習データとして生成することもできる。つまり、学習装置１００は、既往者かつ療養期間後に対応する学習データを、通常者の学習データに置き換えることもできる。
【０１０３】
［重みの変更対象］
実施例１では、既往者かつ療養期間後に該当する学習データの重みを変更する例を説明したが、これに限らず、例えば、既往者に対応する学習データに対しては、療養期間前後に関係なく、重みとして「０．５」を設定することもできる。また、実施例１では、出勤簿データの各要素のうち、出欠区分の重みを０．５に変更し、その他の要素（月度など）については重みを１．０とする例を説明したが、これに限定されるものではなく、重みを変更する要素は任意に変更することができる。
【０１０４】
また、実施例１では、過去に療養経験のある既往者のテンソルデータの重みを変更する例を説明したが、これに限定されるものではない。たとえば、育児や介護をしている従業員など、本人の体調不良には起因しない勤務の乱れがあるような従業員のデータも、新規療養予測のノイズとなりうるため、これらの従業員を対象とするなど、テンソルデータの重みを変更する条件は、任意に変更できる。
【０１０５】
また、上記実施例では、学習時、出勤簿データから自動で６か月や３か月の期間抽出の上、「療養あり」「療養なし」のラベルを付与し学習する例を説明したが、これに限定されるものではない。例えば、ユーザによりあらかじめ期間抽出やラベルが付与されている場合は、与えられたデータや付与済みのラベルを使用することもできる。
【０１０６】
また、ラベルの設定例も一例であり、療養ありと療養なしに限らず、体調不良者と通常者、休職ありと休職なしなどのように、体調不良者の有無を区別できる様々なラベルを用いることもできる。また、各実施例で説明した値なども一例であり、任意に変更することができる。
【０１０７】
また、６か月の出勤簿データを予測に用いるデータとして使用したが、これに限定されるものではなく、４か月など任意に変更することができる。また、６か月の出勤簿データに対して、その後３か月以内に療養したか否かによってラベルを付与する例を説明したが、これに限定されるものではなく、２か月以内など任意に変更することができる。また、上記実施例では、学習装置１００が出勤簿データをテンソル化する例を説明したが、他の装置がテンソル化したデータを取得して上記各処理を実行することもできる。なお、実施例では、実際は４階テンソルであるが説明を簡略化するために３階テンソルで説明したが、あくまで一例であり、任意に変更することができる。また、次元数も任意に変更することができる。
【０１０８】
［想定システム］
上記実施例では、出勤簿データを学習して療養する可能性がある従業員を予測する例で説明したが、これに限定されるものではない。例えば、電子部品の動作データを用いた故障予測、通信データを用いた攻撃予測、道路の交通量データを用いた渋滞予測などにも適用することができる。
【０１０９】
［ニューラルネットワーク］
本実施例では、ＲＮＮ（Recurrent  Neural  Networks）やＣＮＮ（Convolutional  Neural  Network）など様々なニューラルネットワークを用いることができる。また、学習の手法も、誤差逆伝播以外にも公知の様々な手法を採用することができる。また、ニューラルネットワークは、例えば入力層、中間層（隠れ層）、出力層から構成される多段構成であり、各層は複数のノードがエッジで結ばれる構造を有する。各層は、「活性化関数」と呼ばれる関数を持ち、エッジは「重み」を持ち、各ノードの値は、前の層のノードの値、接続エッジの重みの値（重み係数）、層が持つ活性化関数から計算される。なお、計算方法については、公知の様々な手法を採用できる。
【０１１０】
また、ニューラルネットワークにおける学習とは、出力層が正しい値となるように、パラメータ、すなわち、重みとバイアスを修正していくことである。誤差逆伝播法においては、ニューラルネットワークに対して、出力層の値がどれだけ正しい状態（望まれている状態）から離れているかを示す「損失関数（loss  function）」を定め、最急降下法等を用いて、損失関数が最小化するように、重みやバイアスの更新が行われる。
【０１１１】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、実施例で説明した具体例、分布、数値などは、あくまで一例であり、任意に変更することができる。
【０１１２】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１１３】
［ハードウェア］
図２２は、ハードウェア構成例を説明する図である。図２２に示すように、学習装置１００は、通信装置１００ａ、ＨＤＤ（Hard  Disk  Drive）１００ｂ、メモリ１００ｃ、プロセッサ１００ｄを有する。また、図２２に示した各部は、バス等で相互に接続される。
【０１１４】
通信装置１００ａは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。ＨＤＤ１００ｂは、図６に示した機能を動作させるプログラムやＤＢを記憶する。
【０１１５】
プロセッサ１００ｄは、図６に示した各処理部と同様の処理を実行するプログラムをＨＤＤ１０ｂ等から読み出してメモリ１０ｃに展開することで、図６等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、学習装置１００が有する各処理部と同様の機能を実行する。具体的には、プロセッサ１００ｄは、学習データ生成部１１１、既往者判定部１１２、重み設定部１１３、テンソル生成部１１４、学習部１１５、予測部１１６等と同様の機能を有するプログラムをＨＤＤ１００ｂ等から読み出す。そして、プロセッサ１００ｄは、学習データ生成部１１１、既往者判定部１１２、重み設定部１１３、テンソル生成部１１４、学習部１１５、予測部１１６等と同様の処理を実行するプロセスを実行する。
【０１１６】
このように学習装置１００は、プログラムを読み出して実行することで学習方法を実行する情報処理装置として動作する。また、学習装置１００は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、学習装置１００によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【０１１７】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ（Magneto−Optical  disk）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【０１１８】
１００  学習装置
１０１  通信部
１０２  記憶部
１０３  重み情報ＤＢ
１０４  出勤簿データＤＢ
１０５  学習データＤＢ
１０６  テンソルＤＢ
１０７  学習結果ＤＢ
１０８  予測対象ＤＢ
１１０  制御部
１１１  学習データ生成部
１１２  既往者判定部
１１３  重み設定部
１１４  テンソル生成部
１１５  学習部
１１６  予測部
【図１】
2020101901.tif 000003
【図２】
2020101901.tif 000004
【図３】
2020101901.tif 000005
【図４】
2020101901.tif 000006
【図５】
2020101901.tif 000007
【図６】
2020101901.tif 000008
【図７】
2020101901.tif 000009
【図８】
2020101901.tif 000010
【図９】
2020101901.tif 000011
【図１０】
2020101901.tif 000012
【図１１】
2020101901.tif 000013
【図１２】
2020101901.tif 000014
【図１３】
2020101901.tif 000015
【図１４】
2020101901.tif 000016
【図１５】
2020101901.tif 000017
【図１６】
2020101901.tif 000018
【図１７】
2020101901.tif 000019
【図１８】
2020101901.tif 000020
【図１９】
2020101901.tif 000021
【図２０】
2020101901.tif 000022
【図２１】
2020101901.tif 000023
【図２２】
2020101901.tif 000024
【手続補正書】
【提出日】令和1年6月14日(2019.6.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも日付、月度、診療された患者の症状の内容を示す症状を各要素とする複数のレコードから構成される患者の診療データと、
前記診療データの所定期間ごとを教師有学習の説明変数である１つの学習データとし、各学習データに対して設定された、前記所定期間から指定期間以内の間に前記症状に入院が設定される入院期間がある場合に前記患者が入院した経験がある体調不良者を示し、前記所定期間から指定期間以内の間に前記症状に入院が設定される入院期間がない場合に前記患者が入院したことがない通常者を示す前記教師有学習の目的変数である正解情報として利用される罹患情報と、を含む医療用のデータ構造であって、
ターゲットコアテンソルと、過去に入院期間があるが退院している回復患者への重み付けルールとを記憶する記憶部と、前記診療データから生成された各学習データからテンソルデータを生成する生成部とを有する学習装置が、
前記患者が前記回復患者に該当する場合、前記重み付けルールにしたがって、前記患者の前記診療データから生成された各学習データのうち前記過去の入院期間後の学習データに対して、前記過去の入院期間後の学習データのいずれかの要素の重みを変更して前記テンソルデータを変更し、前記ターゲットコアテンソルと類似するように前記変更されたテンソルデータからコアテンソルを生成し、テンソルデータを用いた学習モデルを学習する学習器に前記コアテンソルを入力して、前記学習器による出力結果と前記過去の入院期間後の学習データ対して設定される罹患情報との差分を用いた教師有学習を実行する処理に用いられる、医療用のデータ構造。
【請求項２】
前記学習装置が、前記患者が前記回復患者に該当する場合、前記重み付けルールにしたがって、前記診療データの日付、月度および症状のうちの第一の次元の要素のそれぞれの重みを変更して、前記第一の次元とは異なる第二の次元の要素の重みをそのままとする、請求項１に記載の医療用のデータ構造。
【請求項３】
複数のノードと、前記複数のノードを接続するエッジとから成るグラフデータから構成された患者の診療データであって、
前記複数のノードは、日付、月度および症状のノードから構成され、
当該日付、月度および症状のノードは、日付、月度および症状の数だけそれぞれ存在し、
各ノードには、日付、月度および症状の状況に応じた値が格納されており、
前記エッジは、日付のノードと、月度のノードと、症状のノードのうち関連のあるノードを接続し、
前記学習装置が
前記患者が前記回復患者に該当する場合であって、前記診療データの日付、月度および症状のうちの第一の次元の要素のそれぞれの重みを変更したときに、前記重みに基づいて前記第一の次元に対応するノードに格納された値を変更したグラフデータを示すテンソルデータを生成し、前記ターゲットコアテンソルと類似するように前記テンソルデータから第一のコアテンソルを生成し、ディープテンソルを用いた学習器に前記第一のコアテンソルを入力し、
前記患者が前記回復患者に該当しない場合は、ノードに格納された値を変更しない状態のグラフデータを示すテンソルデータを生成し、前記ターゲットコアテンソルと類似するように前記テンソルデータから第二のコアテンソルを生成し、ディープテンソルを用いた学習器に第二のコアテンソルを入力し、
前記学習器が、
前記第一のコアテンソルが入力されたときは、前記回復患者の特徴を示すノードとエッジの関係を学習し、
前記第二のコアテンソルが入力されたときは、入院した経験がない正常者の特徴を示すノードとエッジの関係を学習する、
請求項２に記載の医療用のデータ構造。
【請求項４】
前記重み付けルールは、重み変更前後で各診療データのグラフ構造の形状が変化するように、前記グラフ構造のノードの値またはエッジの長さを変更する情報であることを特徴とする請求項１に記載の医療用のデータ構造。
【請求項５】
前記学習装置が、前記体調不良者の診療データに基づく学習データから生成される第１のテンソルデータに類似する前記回復患者の診療データに基づく学習データから生成される第２のテンソルデータに含まれる要素のうちいずれかの要素の重みを変更することで、テンソル分解によって前記第１のテンソルデータから生成されるコアテンソルの主成分方向と、前記第２のテンソルデータから生成されるコアテンソルの主成分方向とを差別化して、前記体調不良者の特徴量と前記回復患者の特徴量のそれぞれを前記学習器に学習させる、ことを特徴とする請求項１に記載の医療用のデータ構造。
【請求項６】
前記学習装置が、
前記罹患情報に前記入院が設定されていることにより、前記患者が前記回復患者に該当する場合、前記重み付けルールにしたがって、前記患者の前記診療データから生成された各学習データのうち前記過去の入院期間後の学習データに対して、前記過去の入院期間後の学習データのいずれかの要素の重みを変更することで、重みを変更する前の学習データから生成された元のテンソルデータの形状を変化させたテンソルデータに変更し、前記ターゲットコアテンソルと類似するように前記変更されたテンソルデータからコアテンソルを生成し、テンソルデータを用いた学習モデルを学習する学習器に前記コアテンソルを入力して、前記学習器による出力結果と前記過去の入院期間後の学習データに対して設定される罹患情報との差分を用いた教師有学習を実行し、
前記罹患情報に前記入院が設定されていないことにより、前記患者が前記回復患者に該当しない場合、前記重み付けルールにしたがって、前記患者の前記診療データから生成された各学習データを、前記過去の入院期間後の学習データのいずれの要素の重みを変更することなく各テンソルデータに変更し、前記ターゲットコアテンソルと類似するように前記各テンソルデータから各コアテンソルを生成し、前記学習器に前記各コアテンソルを入力して、前記学習器による出力結果と前記各学習データに対して設定される罹患情報との差分を用いた教師有学習を実行する処理に用いられる、請求項１に記載の医療用のデータ構造。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2020101901.tif 000025
【手続補正書】
【提出日】令和1年12月10日(2019.12.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも日付、月度、診療された患者の症状の内容を示す症状を各要素とする複数のレコードから構成される患者の診療データと、
前記診療データの所定期間ごとを教師有学習の説明変数である１つの学習データとし、各学習データに対して設定された、前記所定期間から指定期間以内の間に前記症状に入院が設定される入院期間がある場合に前記患者が入院した経験がある体調不良者を示し、前記所定期間から指定期間以内の間に前記症状に入院が設定される入院期間がない場合に前記患者が入院したことがない通常者を示す前記教師有学習の目的変数である正解情報として利用される罹患情報であって、学習器による各学習データに基づく前記教師有学習の処理に用いられる前記罹患情報と、
を含む医療用のデータ構造であって、
ターゲットコアテンソルと、過去に入院期間があるが退院している回復患者への重み付けルールと、前記医療用のデータ構造とを記憶する記憶部と、前記記憶部に記憶された前記ターゲットコアテンソルと前記重み付けルールと前記医療用のデータ構造とに基づいて各学習データからテンソルデータを生成する生成部とを有する学習装置が、
第１の患者が前記回復患者に該当する場合、前記重み付けルールにしたがって、前記第１の患者に対応する学習データのうち過去の入院期間後の学習データに対して、前記過去の入院期間後の学習データのいずれかの要素の重みを変更して第１のテンソルデータを生成し、前記ターゲットコアテンソルと類似するように前記第１のテンソルデータから第１のコアテンソルを生成し、テンソルデータを用いた学習を行う前記学習器に前記第１のコアテンソルを入力して、前記学習器による出力結果と前記過去の入院期間後の学習データ対して設定された第１の罹患情報との差分を用いた教師有学習を前記学習器に実行させる処理に用いられる医療用のデータ構造。
【請求項２】
前記学習装置が、前記第１の患者が前記回復患者に該当する場合、前記重み付けルールにしたがって、前記診療データの日付、月度および症状のうちの第一の次元の要素のそれぞれの重みを変更して、前記第一の次元とは異なる第二の次元の要素の重みをそのままとする、請求項１に記載の医療用のデータ構造。
【請求項３】
複数のノードと、前記複数のノードを接続するエッジとから成るグラフデータから構成された患者の診療データであって、
前記複数のノードは、日付、月度および症状のノードから構成され、
当該日付、月度および症状のノードは、日付、月度および症状の数だけそれぞれ存在し、
各ノードには、日付、月度および症状の状況に応じた値が格納されており、
前記エッジは、日付のノードと、月度のノードと、症状のノードのうち関連のあるノードを接続し、
前記学習装置が
前記第１の患者が前記回復患者に該当する場合であって、前記診療データの日付、月度および症状のうちの第一の次元の要素のそれぞれの重みを変更したときに、前記重みに基づいて前記第一の次元に対応するノードに格納された値を変更したグラフデータを示すテンソルデータを生成し、前記ターゲットコアテンソルと類似するように前記第１のテンソルデータから前記第１のコアテンソルを生成し、前記学習器に前記第１のコアテンソルを入力し、
前記第１の患者が前記回復患者に該当しない場合は、ノードに格納された値を変更しない状態のグラフデータを示すテンソルデータを生成し、前記ターゲットコアテンソルと類似するように前記テンソルデータから第２のコアテンソルを生成し、前記学習器に第２のコアテンソルを入力し、
前記学習器が、
前記第１のコアテンソルが入力されたときは、前記回復患者の特徴を示すノードとエッジの関係を学習し、
前記第２のコアテンソルが入力されたときは、入院した経験がない正常者の特徴を示すノードとエッジの関係を学習する、
請求項２に記載の医療用のデータ構造。
【請求項４】
前記重み付けルールは、重み変更前後で各診療データのグラフ構造の形状が変化するように、前記グラフ構造のノードの値またはエッジの長さを変更する情報であることを特徴とする請求項１に記載の医療用のデータ構造。
【請求項５】
前記学習装置が、前記体調不良者の診療データに基づく学習データから生成される第３のテンソルデータに類似する前記回復患者の診療データに基づく学習データから生成される前記第１のテンソルデータに含まれる要素のうちいずれかの要素の重みを変更することで、テンソル分解によって前記第３のテンソルデータから生成されるコアテンソルの主成分方向と、前記第１のテンソルデータから生成される前記第１のコアテンソルの主成分方向とを差別化して、前記体調不良者の特徴量と前記回復患者の特徴量のそれぞれを前記学習器に学習させる、ことを特徴とする請求項１に記載の医療用のデータ構造。
【請求項６】
前記学習装置が、
前記罹患情報に前記入院が設定されていることにより、前記患者が前記回復患者に該当する場合、前記重み付けルールにしたがって、前記患者の前記診療データから生成された各学習データのうち前記過去の入院期間後の学習データに対して、前記過去の入院期間後の学習データのいずれかの要素の重みを変更することで、重みを変更する前の学習データから生成された元のテンソルデータの形状を変化させた前記第１のテンソルデータに変更し、前記ターゲットコアテンソルと類似するように前記第１のテンソルデータから前記第１のコアテンソルを生成し、前記学習器に前記第１のコアテンソルを入力して、前記学習器による出力結果と前記過去の入院期間後の学習データに対して設定される罹患情報との差分を用いた教師有学習を実行し、
前記罹患情報に前記入院が設定されていないことにより、前記患者が前記回復患者に該当しない場合、前記重み付けルールにしたがって、前記患者の前記診療データから生成された各学習データを、前記過去の入院期間後の学習データのいずれの要素の重みを変更することなく各テンソルデータに変更し、前記ターゲットコアテンソルと類似するように前記各テンソルデータから各コアテンソルを生成し、前記学習器に前記各コアテンソルを入力して、前記学習器による出力結果と前記各学習データに対して設定される罹患情報との差分を用いた教師有学習を実行する処理に用いられる、請求項１に記載の医療用のデータ構造。