(57)【要約】      （修正有）【課題】データ分布及び要素の間の関係に対して如何なる仮設もしない場合に複数の要素の間の因果関係を正確かつ確実に発見する方法、装置及びコンピュータ読み取り可能な記憶媒体を提供する。。【解決手段】データ処理方法は、複数の要素に関する観測サンプル集合を取得し、当該観測サンプル集合における１つの観測サンプルが複数の要素の対応する観測値を含む。当該方法は、さらに、複数の要素における各要素ごとに、観測サンプル集合に基づいて、当該要素の観測値と推定値と間の差が従う分布を推定することを含む。当該方法は、さらに、少なくとも推定された分布に基づいて、複数の要素の間の因果関係を示す因果構造を特定することを含む。【選択図】図３
2020181578.tif 000002
【特許請求の範囲】
【請求項１】
複数の要素の対応する観測値を含む１つの観測サンプルを含む、前記複数の要素に関する観測サンプル集合を取得することと、
前記複数の要素における各要素ごとに、前記観測サンプル集合に基づいて、前記要素の観測値と、前記複数の要素における少なくとも１つの他の要素の観測値及び前記少なくとも１つの他の要素が前記要素への影響に基づいて特定される前記要素の推定値との間の差が従う分布を推定することと、
少なくとも推定された前記分布に基づいて、前記複数の要素の間の因果関係を示す因果構造を特定することと、を含むデータ処理方法。
【請求項２】
前記複数の要素は目標要素を含み、
前記方法は、さらに、
特定された前記因果構造に基づいて、前記複数の要素から前記目標要素の原因となる少なくとも１つの要素を特定することと、
前記少なくとも１つの要素の観測値を変更することで、前記目標要素の観測値を影響することと、を含む請求項１に記載の方法。
【請求項３】
さらに、
前記少なくとも１つの要素の変更後の観測値を含む少なくとも１つの観測サンプルを含む、前記複数の要素に関する変更後の観測サンプル集合を取得することと、
前記変更後の観測サンプル集合に基づいて、前記因果構造を最適化することと、を含む請求項２に記載の方法。
【請求項４】
前記分布を推定することは、
前記少なくとも１つの他の要素が前記要素への前記影響を推定することと、
前記影響、前記観測サンプル集合における前記要素の観測値、及び前記少なくとも１つの他の要素の観測値に基づいて、前記分布を推定することと、を含む請求項１に記載の方法。
【請求項５】
前記影響を推定することは、
Ｂ-スプライン回帰アルゴリズムを使用して前記影響を推定することを含む請求項４に記載の方法。
【請求項６】
前記分布を推定することは、
カーネル密度推定アルゴリズムを使用して前記分布を推定することを含む請求項４に記載の方法。
【請求項７】
前記分布はガウス分布と異なる請求項１に記載の方法。
【請求項８】
前記因果構造を特定することは、
前記分布に基づいて、前記因果構造を特定するための、ペナルティ項が含まれない目標関数を生成することと、
前記目標関数を最小化することで、前記因果構造を特定することと、を含む請求項１に記載の方法。
【請求項９】
前記因果構造は有向非巡回グラフで表され、前記有向非巡回グラフは前記複数の要素に対応する複数のノードを含み、
前記複数の要素における複数の要素ペアの第１要素ペアの因果関係のスコアは、前記第１要素ペアにおける一方の要素が他方の要素である原因の尤度を示し、
前記因果構造を特定することは、
前記分布に基づいて、前記複数の要素ペアに関連する複数の因果関係のスコアを特定することと、
繰り返す回数が閾値の数に達するまで、
前記複数の因果関係のスコアを比較することで、前記複数の要素ペアの中、第２要素ペアにおける第１要素が前記第２要素ペアにおける第２要素の原因であることを示し、かつ最大尤度に関連する前記第２要素ペアを特定する操作と、
前記有向非巡回グラフに、前記第１要素に対応する第１ノードから前記第２要素に対応する第２ノードへ向く辺を追加する操作と、
前記複数の因果関係のスコアの中、前記第２要素に関連する１つ又は複数の因果関係のスコアを更新操作と、
を繰り返して実行することと、を含む請求項１に記載の方法。
【請求項１０】
前記閾値の数は前記複数の要素ペアの数から特定される請求項９に記載の方法。
【請求項１１】
さらに、
前記複数の要素から因果関係が存在可能な２つの要素を、前記複数の要素ペアの１つとして特定することを含む請求項９に記載の方法。
【請求項１２】
さらに、
スパース回帰アルゴリズムを使用して、前記有向非巡回グラフの辺を最適化することを含む請求項９に記載の方法。
【請求項１３】
少なくとも１つの処理ユニットと、
前記少なくとも１つの処理ユニットにカップリングされ、かつ前記少なくとも１つの処理ユニットにより実行される命令を記憶するための少なくとも１つのメモリと、を備え、
前記命令が前記少なくとも１つの処理ユニットにより実行されると、
複数の要素の対応する観測値を含む１つの観測サンプルを含む、前記複数の要素に関する観測サンプル集合を取得することと、
前記複数の要素における各要素ごとに、前記観測サンプル集合に基づいて、前記要素の観測値と、前記複数の要素における少なくとも１つの他の要素の観測値及び前記少なくとも１つの他の要素が前記要素への影響に基づいて特定される前記要素の推定値との間の差が従う分布を推定することと、
少なくとも推定された前記分布に基づいて、前記複数の要素の間の因果関係を示す因果構造を特定することと、を含む動作を実行するデータ処理用の装置。
【請求項１４】
前記複数の要素は目標要素を含み、
前記動作は、さらに、
特定された前記因果構造に基づいて、前記複数の要素から前記目標要素の原因となる少なくとも１つの要素を特定することと、
前記少なくとも１つの要素の観測値を変更することで、前記目標要素の観測値を影響することと、を含む請求項１３に記載の装置。
【請求項１５】
前記動作は、さらに、
前記少なくとも１つの要素の変更後の観測値を含む少なくとも１つの観測サンプルを含む、前記複数の要素に関する変更後の観測サンプル集合を取得することと、
前記変更後の観測サンプル集合に基づいて、前記因果構造を最適化することと、を含む請求項１４に記載の装置。
【請求項１６】
前記分布を推定することは、
前記少なくとも１つの他の要素が前記要素への前記影響を推定することと、
前記影響、前記観測サンプル集合における前記要素の観測値、及び前記少なくとも１つの他の要素の観測値に基づいて、前記分布を推定することと、を含む請求項１３に記載の装置。
【請求項１７】
前記影響を推定することは、
Ｂ-スプライン回帰アルゴリズムを使用して前記影響を推定することを含む請求項１６に記載の装置。
【請求項１８】
前記分布を推定することは、
カーネル密度推定アルゴリズムを使用して前記分布を推定することを含む請求項１６に記載の装置。
【請求項１９】
前記分布はガウス分布と異なる請求項１３に記載の装置。
【請求項２０】
前記因果構造を特定することは、
前記分布に基づいて、前記因果構造を特定するための、ペナルティ項が含まれない目標関数を生成することと、
前記目標関数を最小化することで、前記因果構造を特定することと、を含む請求項１３に記載の装置。
【請求項２１】
前記因果構造は有向非巡回グラフで表され、前記有向非巡回グラフは前記複数の要素に対応する複数のノードを含み、
前記複数の要素における複数の要素ペアの第１要素ペアの因果関係のスコアは、前記第１要素ペアにおける一方の要素が他方の要素である原因の尤度を示し、
前記因果構造を特定することは、
前記分布に基づいて、前記複数の要素ペアに関連する複数の因果関係のスコアを特定することと、
繰り返す回数が閾値の数に達するまで、
前記複数の因果関係のスコアを比較することで、前記複数の要素ペアの中、第２要素ペアにおける第１要素が前記第２要素ペアにおける第２要素の原因であることを示し、かつ最大尤度に関連する前記第２要素ペアを特定する操作と、
前記有向非巡回グラフに前記第１要素に対応する第１ノードから前記第２要素に対応する第２ノードへ向く辺を追加する操作と、
前記複数の因果関係のスコアの中、前記第２要素に関連する１つ又は複数の因果関係のスコアを更新操作と、
を繰り返して実行することと、を含む請求項１３に記載の装置。
【請求項２２】
前記閾値の数は前記複数の要素ペアの数から特定される請求項２１に記載の装置。
【請求項２３】
前記動作は、さらに、
前記複数の要素から因果関係が存在可能な２つの要素を、前記複数の要素ペアの１つとして特定することを含む請求項２１に記載の装置。
【請求項２４】
前記動作は、さらに、
スパース回帰アルゴリズムを使用して、前記有向非巡回グラフの辺を最適化することを含む請求項２１に記載の装置。
【請求項２５】
機械により実行可能な命令を記憶しており、前記機械により実行可能な命令がデバイスにより実行されると、前記デバイスに請求項１〜１２のいずれか１項に記載の方法を実行させるコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示に係る実施例は、機械学習分野に関し、具体的には、データ処理方法、装置、及びコンピュータ読み取り可能な記憶媒体に関する。
【背景技術】
【０００２】
情報技術の飛躍的な発展に伴い、データの規模が急速に大きくなっている。機械学習は、このような背景及びトレンドでますます広く注目されている。中でも、因果発見は、現実の生活において、例えばサプライチェーン、医療健康及びリテール等などの分野において幅広く適用されている。ここで、上記の因果発見とは、複数の要素に関するサンプルデータから複数の要素の間に存在する因果関係を発見することである。例えば、リテール分野では、因果発見の結果は、各種の販売戦略を立てることを補助するために用いられることができ、医療健康分野では、因果発見の結果は、患者に対する治療方案等を作成することを補助するために用いられることができる。
【発明の概要】
【０００３】
本開示に係る実施例はデータ処理方法、装置、及びコンピュータ読み取り可能な記憶媒体を提供する。
【０００４】
本開示の第１態様において、データ処理方法を提供する。当該方法は、複数の要素の対応する観測値を含む１つの観測サンプルを含む、複数の要素に関する観測サンプル集合を取得することと、複数の要素における各要素ごとに、観測サンプル集合に基づいて、当該要素の観測値と、複数の要素における少なくとも１つの他の要素の観測値、及び少なくとも１つの他の要素が当該要素への影響に基づいて特定される当該要素の推定値との間の差が従う分布を推定することと、少なくとも推定された分布に基づいて、複数の要素の間の因果関係を示す因果構造を特定することと、を含む。
【０００５】
本開示の第２態様において、データ処理用の装置を提供する。当該装置は少なくとも１つの処理ユニット及び少なくとも１つのメモリと、を備える。少なくとも１つのメモリは少なくとも１つの処理ユニットにカップリングされ、かつ少なくとも１つの処理ユニットにより実行される命令を記憶し、命令が少なくとも１つの処理ユニットにより実行されると、当該装置は、複数の要素の対応する観測値を含む１つの観測サンプルを含む、複数の要素に関する観測サンプル集合を取得することと、複数の要素における各要素ごとに、観測サンプル集合に基づいて、当該要素の観測値と、複数の要素における少なくとも１つの他の要素の観測値、及び少なくとも１つの他の要素が当該要素への影響に基づいて特定される当該要素の推定値との間の差が従う分布を推定することと、少なくとも推定された分布に基づいて、複数の要素の間の因果関係を示す因果構造を特定することと、を含む動作を実行する。
【０００６】
本開示の第３態様において、コンピュータ読み取り可能な記憶媒体を提供し、当該コンピュータ読み取り可能な記憶媒体は、それに記憶されている機械により実行可能な命令を有し、当該機械により実行可能な命令がデバイスにより実行されると、当該デバイスに本開示の第１態様に記載の方法を実行させる。
【０００７】
発明の概要を提供することは、簡略化された形態で一連のコンセプトを紹介し、これらを下記の発明を実施するための具体的な形態において更なる説明をする。発明の概要は本開示の肝心な特徴又は必要な特徴を標記するためではなく、本開示の範囲を制限するためでもない。本開示の他の特徴は、以下の記述により容易に理解できるようになる。
【図面の簡単な説明】
【０００８】
以下の開示内容及び特許範囲から、本発明の目的、利点及び他の特徴はより明らかになる。ここで、例を示す目的を基にして、図面を参照しながら、好ましい実施例に対しての制限的ではない記述を示す。各図面において、同一又は対応した符号は同一又は対応した部分を示す。
【０００９】
【図１Ａ】本開示に係る実施例のデータ処理用の例示的なシステムを示すブロック図である。
【図１Ｂ】本開示に係る実施例のデータ処理用の例示的なシステムを示すブロック図である。
【図２】本開示に係る実施例の複数の要素の間の因果関係を特定するための模式図である。
【図３】本開示に係る実施例の例示的な方法を示すフローチャートである。
【図４】本開示に係る実施例の例示的な方法を示すフローチャートである。
【図５】本開示に係る実施例の例示的な方法を示すフローチャートである。
【図６】本開示に係る実施例の例示的な方法を示すフローチャートである。
【図７】本開示に係る実施例を実施できる例示的な装置を模式的に示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら本開示に係る実施例をより詳細に説明する。本開示は、図面により本開示のいくつかの実施例を示しているが、様々な形態により実施可能であり、ここで説明する実施例に限定されるように解釈されるべきでない。逆にこれらの実施例を提供することは本開示をより徹底的、かつ完全に理解するためであることを理解すべきである。本開示の図面及実施例は例示的なものにすぎず、本開示の保護範囲を限定するためのものではないと理解すべきである。
【００１１】
本開示に係る実施例の記述において、「含む」という用語及びそれに類似する用語は「含むが、これらに限定されない」と理解すべきである。「基づく」という用語は、「少なくとも部分的に基づく」と理解すべきである。「一実施例」又は「当該実施例」という用語は「少なくとも一実施例」と理解すべきである。「第１」、「第２」等の用語は異なる又は同一な対象を指してもよい。以下、さらに他の明示的な定義及び暗示的な定義を含んでもよい。
【００１２】
本開示に係る実施例において、「因果構造」（Ｃａｕｓａｌ  Ｓｔｒｕｃｔｕｒｅ）という用語とは、通常、システムにおける各要素の間の因果関係を記述する構成である。「要素」という用語は「変量」とも称される。「観測サンプル」という用語は直接に観測可能な複数の要素の１組の観測値を指し、その中、直接に観測可能な要素は「観測変量」とも称される。
【００１３】
上記のように、実際の生活において、多くの観測変量の間に存在する因果関係を速やかかつ正確に発見することは望まれている。
【００１４】
顧客サービス分野において、どの要素が顧客の通信キャリアに対する満足度を影響するかを特定するために、顧客の消費行為データ（例えば、顧客の年齢、毎月に使用したネットの通信量、無料の通信量の比率、毎月に使用したネットの通信量の総額等）、満足度調査データ及びキャリア戦略データを大量に収集してもよい。収集した各タイプのデータは１種の要素（又は変量）の観測値とも称する。これらの要素の間に存在する因果関係を発見することで、顧客満足度を影響する１つ又は複数の要素を特定することができる。さらに、当該１つ又は複数の要素の観測値を変更し、或いは当該１つ又は複数の要素に対して対応する戦略を立てることで、顧客が通信キャリアに対する満足度を向上させることができる。
【００１５】
健康分野において、患者の血圧に影響する要素を特定するために、例えば心拍数、心拍出量、アレルギー指数、総末梢血管抵抗、カテコールアミンの放出、血圧など、患者の一連の生理的な指標（即ち、一連の要素の観測値）を大量に収集してもよい。これらの生理的な指標の間に存在する因果関係を発見することで、患者の血圧に影響する生理的な指標（即ち、要素）を特定することができる。さらに、当該生理的な指標に影響し、或いは当該生理的な指標に対して対応する戦略を立てることで、患者の血圧を安定に保つことができる。
【００１６】
商品販売分野において、目標商品（例えば、傘）の売上げに影響する要素を特定するために、外部要素データ（例えば、天気、季節、温度、日付、店舗の大きさ等）、当該商品の販売データ（例えば、当該商品の売上げ、当該商品の価格等）、及び１つ又は複数の関連商品（例えば、アイスクリーム）の販売データ等を収集してもよい。収集した各タイプのデータを１種の要素の観測値とする。これらの要素の間に存在する因果関係を発見することで、目標商品の売上げに影響する１つ又は複数の要素を特定することができる。さらに、当該１つ又は複数の要素の観測値を変更し、或いは当該１つ又は複数の要素に対して対応する戦略を立てることで、目標商品の売上げを増加させることができる。
【００１７】
ソフトウェア開発分野において、故障率及び／又はソフトウェアの開発周期を影響する要素を特定するために、ソフトウェア開発の各種の要素の情報を収集してもよく、例えばソフトウェア開発の全体情報（例えば、開発周期、開発に投入されたリソースなど）及びソフトウェア開発の各々の段階の情報を含むが、これらに限定されない。ソフトウェア開発の各々の段階の情報は、例えばアーキテクチャ段階の情報（例えば、ソフトウェアアーキテクチャ方法、ソフトウェアアーキテクチャ階層の数など）、コーディング段階の情報（例えば、コード長、関数の数、プログラミング言語、モジュールの数など）、テスト段階の情報（例えば、ユニットテストの正確率又は故障率、ブラックボックステストの正確率又は故障率、ホワイトボックステストの正確率又は故障率等）、ソフトウェアの発行後の稼働段階の情報（例えば、稼働段階の正確率又は故障率等）を含んでもよい。収集した各タイプのデータを１種の要素の観測値とする。これらの要素の間に存在する因果関係を発見することで、ソフトウェアの開発周期及び／又は故障率を影響する１つ又は複数の要素を特定することができる。さらに、当該１つ又は複数の要素の観測値を変更し、或いは当該１つ又は複数の要素に対して対応する戦略を立てることで、ソフトウェアの開発周期及び／又は故障率を低下することができる。
【００１８】
ところで、如何なる介入もなく、又はランダムに対照実験する場合には、一般的に、複数の要素の観測データのみで複数の要素の間の因果関係を発見することは困難である。そのため、従来の観測データによる因果関係発見方法は、一般的に、色々と仮設をつくり、例えば、データ分布がガウス分布であることや、要素の間の関係がリニア関係であることなどを仮設する。しかしながら、実際に応用する際には、データが任意の分布に基づくものであり、かつ要素の間の関係がリニア性ではない可能性もある。
【００１９】
本開示に係る実施例によれば、データ処理するための方案（方法）を提供する。当該方案は、データ分布及び要素の間の関係に対して如何なる仮設もしない場合に複数の要素の間の因果関係を正確かつ確実に発見することができるため、上記問題及び／又は他の潜在的な問題を解決することができる。以下、上記した例示的なシチュエーションに合わせて本開示の各実施例を詳細に説明する。これは単に説明することを目的とし、如何なる形態で本発明の範囲を制限するためではないと理解すべきである。
【００２０】
図１Ａは、本開示に係る実施例のデータ処理するためのシステム１００を示す例示的なブロック図である。図１Ａに示すシステム１００は、本開示に係る実施例における１種の例を実現するものにすぎず、本開示の範囲を制限するためのものではないと理解すべきである。本開示に係る実施例は、他のシステム又はアーキテクチャにも同様に適用される。
【００２１】
図１Ａに示されるように、システム１００は、因果関係特定装置１２０を含んでもよい。因果関係特定装置１２０は、複数の要素に関する観測サンプル集合１１０を受信するとともに、その中から複数の要素の間の因果関係を表す因果構造１３０を特定することができる。選択的に、いくつの実施例において、システム１００は、さらに複数の要素に関する観測サンプル集合１１０を採集（収集）するための観測サンプル採集装置（図１Ａにおいて未図示）を含んでもよい。観測サンプル採集装置は観測サンプル集合１１０を取得するように、複数の要素の観測値をリアルタイムに採集し、或いは、定期的に又は不定期的に採集することができる。いくつの実施例において、観測サンプル採集装置は、それぞれ異なるタイプの要素の観測値を採集するための１つ又は複数の採集ユニットを含んでもよい。
【００２２】
観測サンプル集合１１０は、１つ又は複数の目標要素に関する複数の要素の観測サンプルを含んでもよい。観測サンプル集合１１０は、例えばＸ＝｛Ｘ１,Ｘ２,…,ＸＤ｝∈ＲＮ×Ｄとして表され、ただし、Ｎは観測サンプル集合１１０における観測サンプルの総数を示し、Ｄは要素の総数を示し、観測サンプル集合１１０における各々の観測サンプルはＤ個の要素を有する１組の観測値を含む。ベクトルＸｉ∈ＲＮ（ｉ  ∈［１,Ｄ］）はｉ個目の要素（以下、「要素ｉ」或いは「要素Ｘｉ」とも称される）のＮ個の観測値を示す。例えば、xi（n）  （ｉ  ∈ ［１,Ｄ］、ｎ  ∈ ［１,Ｎ］）、かつｎ  ∈  ［１,Ｎ］）は要素ｉのｎ個目の観測値を示す。因果構造１３０は有向非巡回グラフ（ＤＡＧ）で表されることができ、その中、各ノードは１つの要素を示し、各有向辺は１つの因果関係を示し、例えば有向辺「Ａ→Ｂ」は要素Ａが要素Ｂの原因であることを示す。
【００２３】
上記した通信キャリアの顧客満足度に関するシチュエーションを例とする場合に、例えば目標要素は「顧客満足度」であり、Ｄ個の要素を含む要素集合は顧客属性に関する要素（例えば、顧客レベル、顧客番号など）、顧客行為に関する要素（例えば、毎月に使用したネットの通信量、無料の通信量の比率、毎月に使用したネットの通信量の総額など）、顧客のフィードバックに関する要素（例えば、クレーム数、顧客満足度）及び顧客に対して立てた戦略要素（例えば、パケットオーバーの提示回数、タイミングなど）における１種類又は数種類などを含んでもよい。要素である「顧客レベル」を例とする場合に、ベクトルＸｉはＮ人の顧客のレベルからなり、かつxi（n）はＮ人の顧客におけるｎ人目の顧客のレベルを示す。要素である「毎月に使用したネットの通信量」（即ち、ｖｉ）を例とする場合に、ベクトルＸｉはＮ人の顧客が毎月に使用したネットの通信量からなり、かつxi（n）はＮ人の顧客におけるｎ人目の顧客が毎月に使用したネットの通信量を示す。因果構造１３０は、例えば顧客レベル、毎月に使用したネットの通信量、無料の通信量の比率、毎月に使用したネットの通信量の総額、顧客満足度等の要素の間の因果関係を示し、例えば目標要素である「顧客満足度」の原因はどの要素であることを指す。
【００２４】
上記した患者の血圧に関するシチュエーションを例とする場合に、例えば目標要素は「血圧」であり、Ｄ個の要素を含む要素集合は心拍数、心拍出量、アレルギー指数、総末梢血管抵抗、カテコールアミンの放出、血圧等を含んでもよい。要素である「心拍数」を例とする場合に、ベクトルＸｉはＮ人の患者の心拍数からなり、かつxi（n）はＮ人の患者におけるｎ人目の患者の心拍数を示す。要素である「心拍出量」を例とする場合に、ベクトルＸｉはＮ人の患者の心拍出量からなり、かつxi（n）はＮ人の患者におけるｎ人目の患者の心拍出量を示す。因果構造１３０は例えば心拍数、心拍出量、アレルギー指数、総末梢血管抵抗、カテコールアミンの放出、血圧等の要素の間の因果関係を示し、例えば目標要素である「血圧」の原因はどの要素であること指す。
【００２５】
上記した商品販売のシチュエーションを例とする場合に、例えば目標要素は「目標商品の売上げ」であり、Ｄ個の要素を含む要素集合は外部要素（例えば、天気、季節、温度、日付、店舗の大きさ等）、目標商品（例えば、傘）の販売行為に関する要素（例えば、目標商品の売上げ、目標商品の価格等）、１つ又は複数の関連商品（例えば、アイスクリーム）の販売行為に関する要素（例えば、関連商品の売上げ、関連商品の価格等）及び目標商品についての販売戦略要素（例えば、プロモーションの回数、頻度等）における１種類又は数種類を含んでもよい。要素である「温度」を例とする場合に、ベクトルＸｉはＮ日の温度からなり、かつxi（n）はｎ日目の温度を示す。要素である「目標商品の売上げ」を例とする場合に、ベクトルＸｉはＮ日の傘の売上げからなり、かつxi（n）はｎ日目の傘の売上げを示す。因果構造１３０は、例えば天気、季節、温度、日付、店舗の大きさ、目標商品の売上げ、目標商品の価格、関連商品の売上げ、関連商品の価格等の要素の間の因果関係を示し、例えば目標要素である「目標商品の売上げ」の原因はどの要素であること指す。
【００２６】
上記したソフトウェア開発のシチュエーションを例とする場合に、例えば目標要素は「ソフトウェアの開発周期」又は「ソフトウェアの稼働段階の故障率」であり、Ｄ個の要素を含む要素集合はソフトウェア開発の全体要素（例えば、開発周期、開発に投入されたリソース等）及びソフトウェア開発の各々の段階の要素における１種類又は数種類を含んでもよい。ソフトウェア開発の各々の段階の要素は例えばアーキテクチャ段階の要素（例えば、ソフトウェアアーキテクチャ方法、ソフトウェアアーキテクチャ階層の数など）、コーディング段階の要素（例えば、コード長、関数の数、プログラミング言語、モジュールの数など）、テスト段階の要素（例えば、ユニットテストの正確率又は故障率、ブラックボックステストの正確率又は故障率、ホワイトボックステストの正確率又は故障率等）、ソフトウェアの発行後の稼働段階の要素（例えば、稼働段階の正確率、稼働段階の故障率等）を含んでもよい。要素である「開発周期」を例とする場合に、ベクトルＸｉはＮ個のソフトウェア製品の開発周期からなり、かつxi（n）はｎ個目のソフトウェア製品の開発周期を示す。要素である「コード長」を例とする場合に、ベクトルＸｉはＮ個のソフトウェア製品のコード長からなり、かつxi（n）は第ｎ個のソフトウェア製品のコード長を示す。因果構造１３０は、例えばソフトウェアの開発周期、開発に投入されたリソース、アーキテクチャ方法、アーキテクチャ階層の数、コード長、関数の数、プログラミング言語、モジュールの数、ユニットテストの正確率又は故障率、ブラックボックステストの正確率又は故障率、ホワイトボックステストの正確率又は故障率、稼働段階の正確率、稼働段階の故障率等の要素の間の因果関係を示す。例えば、目標要素である「開発周期」の原因はどの要素であり、目標要素である「稼働段階の故障率」の原因はどの要素である。
【００２７】
選択的に、いくつの実施例において、システム１００は、さらに、因果構造１３０の態様を表すための因果関係表現装置（図１Ａにおいて未図示）を含む。いくつの実施例において、因果関係表現装置は視覚や聴覚などの異なる形態で因果構造１３０の態様を表現することができる。例えば、因果関係表現装置は、グラフ、マップ、テキストなどの形態で因果構造１３０を表現することができる。いくつの実施例において、因果関係表現装置は、因果構造１３０のすべての態様、即ち、すべての要素の間の因果関係を表現することができる。オプションとして、いくつの実施例において、因果関係表現装置は、因果構造１３０の一部の態様のみを表現し、例えば、１つ又は複数の目標要素に関連する因果関係のみを表現することができる。いくつの実施例において、目標要素の原因が複数の要素を含む場合に、因果関係表現装置は、さらに、複数の要素の対応する重要程度を表現し、例えば、異なる色及び／又は異なる重要程度を示す数値等の形態で複数の要素の対応する重要程度を表現することができる。本開示に係る実施例は、その態様について制限されない。
【００２８】
図１Ｂは本開示に係る実施例のデータ処理するためのシステム１０５を示す例示的なブロック図である。システム１０５は、例えば図１Ａに示す因果構造１３０を適用して最適化することができる。図１Ｂに示すシステム１０５は、本開示に係る実施例における１種の例を実現するものにすぎず、本開示の範囲を制限するためのものではないと理解すべきである。本開示に係る実施例は他のシステム又はアーキテクチャにも同様に適用される。
【００２９】
図１Ｂに示されるように、システム１０５は、観測サンプル影響装置１４０を含んでもよい。観測サンプル影響装置１４０は因果構造１３０に基づいて、複数の要素から目標要素の原因である少なくとも１つの要素を特定することができる。観測サンプル影響装置１４０は、少なくとも１つの要素の観測値を変更することで目標要素の観測値を影響することができ、これにより、変更された観測サンプル集合１５０を取得することができる。変更された観測サンプル集合１５０における少なくとも１つの観測サンプルは少なくとも１つの要素の変更後の観測値を含む。
【００３０】
上記した通信キャリアの顧客満足度に関するシチュエーションを例とする場合に、目標要素は例えば「顧客満足度」であり、因果構造１３０は例えば目標要素である「顧客満足度」の原因がどの要素（例えば、パケットが使い切る前の提示、お得なパケット等）であることを指すことができる。観測サンプル影響装置１４０は例えばこれらの要素の観測値を影響及び変更し、及び／又はこれらの要素に対して対応する戦略を立てる（例えば、パケットが使い切る前に顧客に対してより多くの提示を提供し、顧客に対してより多くのお得なパケットを提供する）ことで、顧客が通信キャリアに対する満足度を向上させることができる。
【００３１】
上記した患者の血圧に関するシチュエーションを例とする場合に、目標要素は例えば「血圧」であり、因果構造１３０は例えば目標要素である「血圧」の原因がどの生理的な指標であることを指すことができる。観測サンプル影響装置１４０は、例えばこれらの生理的な指標を影響及び変更し、及び／又はこれらの生理的な指標に対して対応する戦略を立てることで、患者の血圧を安定に保つことができる。
【００３２】
上記した商品販売のシチュエーションを例とする場合に、目標要素は例えば「傘の売上げ」であり、因果構造１３０は例えば目標要素である「傘の売上げ」の原因がどの要素（例えば、天気、販売される傘の数など）であることを指すことができる。観測サンプル影響装置１４０は例えばこれらの要素を影響及び変更し、及び／又はこれらの要素に対して対応する戦略を立てる（例えば、雨を降るときに販売に供される傘の数を増える）ことで、目標商品である傘の売上げを増加させることができる。
【００３３】
上記したソフトウェア開発のシチュエーションを例とする場合に、目標要素は例えば「開発周期」であり、因果構造１３０は例えば目標要素である「開発周期」の原因がどの要素（例えば、アーキテクチャ階層の数、プログラミング言語等）であることを指すことができる。観測サンプル影響装置１４０は、例えばこれらの要素を影響及び変更し、及び／又はこれらの要素に対して対応する戦略を立てる（例えば、ソフトウェアアーキテクチャの複雑度を低下し、よりフレンドリーなプログラミング言語を使用する等）ことで、ソフトウェア開発の周期を短縮する。また、例えば目標要素は「稼働段階のソフトウェアの故障率」であってもよく、因果構造１３０は例えば目標要素である「稼働段階のソフトウェアの故障率」の原因がどの要素（例えば、コード長、モジュールの数など）であることを指すことができる。観測サンプル影響装置１４０は例えばこれらの要素を影響及び変更し、及び／又はこれらの要素に対して対応する戦略を立てる（例えば、コード長を短くし、モジュールの数を減少するなど）ことで、稼働段階のソフトウェアの故障率を低下させることができる。
【００３４】
図１Ｂに示されるように、システム１０５は因果関係最適化装置１６０を含んでもよい。因果関係最適化装置１６０は、変更された観測サンプル集合１５０に基づいて因果構造１３０を最適化することができるため、因果構造１３０の正確性を高める。いくつの実施例において、因果関係最適化装置１６０は変更された観測サンプル集合１５０に基づいて複数の要素の間の因果関係（例えば、因果関係特定装置１２０の実行過程に類似すること）を改めて発見することができるため、最適化された因果構造を取得できる。この形態によれば、本開示に係る実施例は、因果発見の正確性及びロバスト性を一層向上させることができる。
【００３５】
図１Ａに示す因果関係特定装置１２０、図１Ｂに示す観測サンプル影響装置１４０及び因果関係最適化装置１６０は、お互いに分離されることが示されているが、これは説明を目的とすることにすぎず、本開示の範囲を限定するためではない。いくつの実施例において、図１Ａに示す因果関係特定装置１２０、図１Ｂに示す観測サンプル影響装置１４０及び因果関係最適化装置１６０は、同一の物理装置或いは複数の異なる物理装置で実現されることができる。いくつの実施例において、図１Ａに示す因果関係特定装置１２０及び図１Ｂに示す因果関係最適化装置１６０は同じ装置として構成されることができる。本開示に係る実施例は、その態様について制限されない。
【００３６】
図２は本開示に係る実施例の複数の要素の間の因果関係を特定するための模式図である。簡略化のため、かつ説明の便宜上、図２において、仮に観測サンプル集合１１０は要素２０１、２０２、２０３、２０４、２０５及び２０６の６個の要素に関し、すなわち、要素の数Ｄは６である。
【００３７】
図２に示されるように、因果関係特定装置１２０は例えば要素ペア特定ユニット１２１、因果構造検索ユニット１２２、及び因果構造最適化ユニット１２３を含んでもよい。因果関係特定装置１２０に含まれるこれらのユニットは例示的なものにすぎず、本開示の範囲を制限するためのものではないと理解すべきである。いくつの実施例において、因果関係特定装置１２０は、さらに未図示の付加ユニットを含んでもよく、及び／又は示されているユニットをいくつか省略してもよい。例えば、いくつの実施例において、要素ペア特定ユニット１２１及び／又は因果構造最適化ユニット１２３は省略されてもよい。
【００３８】
観測サンプル集合１１０は、要素２０１、２０２、２０３、２０４、２０５及び２０６に関する複数の観測サンプルを含む。初期の場合には、図２における観測サンプル集合１１０に示されるように、任意の２つの要素の間にも因果関係が存在する可能性がある。
【００３９】
いくつの実施例において、観測サンプル集合１１０は、複数の要素２０１、２０２、２０３、２０４、２０５及び２０６の中、因果関係が存在可能な要素ペアを特定するように、要素ペア特定ユニット１２１に入力される。要素ペア特定ユニット１２１は、既知又は将来に開発される方法の如何なる方法を利用して複数の要素２０１、２０２、２０３、２０４、２０５及び２０６の中、因果関係が存在可能な要素ペアを特定することができると理解すべきである。ここで、仮に複数の要素２０１、２０２、２０３、２０４、２０５及び２０６について特定された、因果関係が存在する可能な複数の要素ペアは、図２における２２０のようである。
【００４０】
いくつの実施例において、複数の要素ペア２２０が特定されると、複数の要素ペア２２０及び観測サンプル集合１１０の両方は、複数の要素ペア２２０における各要素ペアの間の因果関係（即ち、一方の要素が他方の要素の原因であること）を特定するように、因果構造検索ユニット１２２に入力されることができる。複数の要素ペア２２０における各要素ペアの間にすべて因果関係が存在することではないと理解すべきである。因果構造検索ユニット１２２は検索した因果構造２３０（以下、「ＤＡＧ２３０」とも称される）を出力する。
【００４１】
オプションとして、いくつの実施例において、要素ペア特定ユニット１２１は省略されてもよい。この場合には、観測サンプル集合１１０は因果構造検索ユニット１２２にそのまま入力される。因果構造検索ユニット１２２は、複数の要素２０１、２０２、２０３、２０４、２０５及び２０６における任意の２つの要素からなる要素ペアについて両者の間の因果関係を特定することで、因果構造２３０を出力する。これでわかるように、要素ペア特定ユニット１２１を追加することで、因果関係の検索空間を有効に減少でき、これにより、因果構造の発見を加速する。
【００４２】
いくつの実施例において、因果構造２３０が特定されると、因果構造２３０及び観測サンプル１１０の両方は、因果構造２３０に対してさらに最適化するように因果構造最適化ユニット１２３に入力されることができる。因果構造最適化ユニット１２３は、既知又は将来に開発される方法の如何なる方法を利用して因果構造２３０最適化することができる。いくつの実施例において、例えば、因果構造最適化ユニット１２３は、スパース回帰アルゴリズムを使用して因果構造検索ユニット１２２により特定された因果構造２３０を最適化し、これにより、ＤＡＧ２３０から非合理的ないくつの辺を排除する。なお、因果構造最適化ユニット１２３は、ＤＡＧ２３０におけるいくつの辺の方向を変更したり、それにいくつの辺を追加したりすることなどもできる。因果構造最適化ユニット１２３は、最適化された因果構造として因果構造１３０を出力することができる。
【００４３】
オプションとして、いくつの実施例において、因果構造最適化ユニット１２３は省略されることができる。この場合には、因果構造検索ユニット１２２は、検索した因果構造として因果構造１３０をそのまま出力することができる。
【００４４】
図２に示されるように、因果関係特定装置１２０から出力された因果構造１３０は、例えば指示要素２０１が要素２０６の原因であり、要素２０６が要素２０２及び要素２０５の原因であり、要素２０２が要素２０３及び２０５の原因であり、要素２０３が要素２０４の原因であり、かつ要素２０４が要素２０５の原因であるようになる。仮に目標要素が要素２０５であると、目標要素２０５の原因が要素２０２、２０４及び２０６であることを特定できる。
【００４５】
図３は、本開示に係る実施例の複数の要素の間の因果関係を特定するための方法３００を示すフローチャートである。例えば、方法３００は図１Ａに示す因果関係特定装置１２０によって実行される。方法３００は、さらに未図示の付加動作を含んでもよく、及び／又は示されている動作をいくつか省略してもよい。本開示に係る実施例は、その態様について制限されない。
【００４６】
ブロック３１０において、因果関係特定装置１２０は、複数の要素に関する観測サンプル集合（例えば、図１Ａ及び図２に示す観測サンプル集合１１０）を取得する。観測サンプル集合における１つの観測サンプルは、複数の要素に対応する観測値を含む。
【００４７】
ブロック３２０において、因果関係特定装置１２０は、複数の要素における各要素ごとに、観測サンプル集合１１０に基づいて当該要素の観測値と推定値との間の差が従う分布を推定する。いくつの実施例において、当該要素の推定値は複数の要素における少なくとも１つの他の要素の観測値、及び少なくとも１つの他の要素が当該要素への影響に基づいて特定されることができる。
【００４８】
いくつの実施例において、複数の要素における各要素ごとに、因果関係特定装置１２０は、少なくとも１つの他の要素が当該要素への影響を推定することができるため、推定した影響、観測サンプル集合１１０における当該要素の観測値、及び少なくとも１つの他の要素の対応する観測値に基づいて、当該要素の観測値と推定値との間の差が従う分布を推定する。
【００４９】
例えば、Ｄ個の要素における第ｊ個の要素（「要素ｊ」とも称される）について、ベクトルＸｊは下式で表せる。
【数１】
2020181578.tif 000003
ただし、
【数２】
2020181578.tif 000004
は推定されたｋ個目の要素（「要素ｋ」とも称される）が第ｊ個の要素（「要素ｊ」とも称される）への影響を示し、
【数３】
2020181578.tif 000005
はＤ個の要素における要素ｊの推定値を示し、εｊは要素ｊの観測値と推定値との間の残差を示す。当該残差が従う確率密度分布は、
【数４】
2020181578.tif 000006
で表すことができる。
【００５０】
いくつの実施例において、因果関係特定装置１２０は、Ｂ-スプライン回帰アルゴリズムを使用して
【数５】
2020181578.tif 000007
を推定することができる。例えば、要素Ｘｋごとに、
【数６】
2020181578.tif 000008
は下式で表せる。
【数７】
2020181578.tif 000009
ただし、ｃ及びαｍはいずれも実数であり、
【数８】
2020181578.tif 000010
はＢ-スプライン基底関数である。基底関数の数Ｍは予め決められたハイパーパラメータ（例えば、１０）及び／又は各要素がサンプル空間における異なる値の数（例えば、仮にある要素の値の範囲は［１,５］であり、かつ自然数であると、当該数が５である）に基づいて特定されることができる。いくつの実施例において、例えば、基底関数の数Ｍは予め決められたハイパーパラメータ（例えば、１０）及び各要素の唯一の値の数の両方の中、比較的小さい方の値であってもよい。
【００５１】
いくつの実施例において、因果関係特定装置１２０はカーネル密度推定アルゴリズムを使用して上記残差εｊの分布
【数９】
2020181578.tif 000011
を推定することができる。例えば、因果関係特定装置１２０はオープンソースパッケージであるＫｅｒｎＳｍｏｏｔｈから提供されたカーネル密度推定アルゴリズムを使用して上記残差の分布を推定することができる。因果関係特定装置１２０は、さらに、既知又は将来に開発される方法の如何なる方法を利用して上記残差の分布を推定することができると理解すべきである。本開示に係る実施例は、その態様について制限されない。
【００５２】
ブロック３３０において、因果関係特定装置１２０は、少なくとも推定した分布に基づいて複数の要素の間の因果関係を示す因果構造を特定する。
【００５３】
いくつの実施例において、因果関係特定装置１２０は、推定した分布に基づいて、当該因果構造を特定するための目標関数を生成する。例えば、目標関数は下式で表せる。
【数１０】
2020181578.tif 000012
【００５４】
これでわかるように、上記目標関数はペナルティ項を含まない。いくつの実施例において、因果関係特定装置１２０は当該目標関数を最小化することで複数の要素の間の因果関係を特定することができ、すなわち、
【数１１】
2020181578.tif 000013
ただし、
【数１２】
2020181578.tif 000014
は推定された複数の要素の間の因果関係を示す。
【００５５】
いくつの実施例において、因果関係特定装置１２０（例えば、因果構造検索ユニット１２２）は推定した分布に基づいてＤ×Ｄスコア行列を構築することができ、これにより、複数の要素における異なる要素ペアに関連する因果関係のスコアを記録する。「要素ｋ→要素ｊ」と「要素ｊ→要素ｋ」とは異なる因果関係を示すことを理解すべき、これは、両者が異なる要素ペアを示すためである。例えば、スコア行列における成分ｅ（ｋ,ｊ）（例えば、第ｋ行かつ第ｊ列の成分を示す）は成分ｋが成分ｊである尤度を示してもよい。複数の要素の間の因果関係は、例えばＤＡＧで表れ、その中、複数の要素に対応する複数のノードを含む。因果構造検索ユニット１２２は、当該スコア行列に基づいて、何回も繰り返すことで当該ＤＡＧに要素の間の因果関係を示す１つ又は複数の有向辺を追加し、これにより、複数の要素の間の因果関係を示すＤＡＧを取得する。
【００５６】
図４は、本開示に係る実施例の因果構造を特定する方法４００を示すフローチャートである。例えば、方法４００は図３におけるブロック３３０の１種の例として実現されることができる。方法４００は図１Ａに示す因果関係特定装置１２０（例えば、因果構造検索ユニット１２２）によって実行される。方法４００は、さらに未図示の付加動作を含んでもよく、及び／又は示されている動作をいくつか省略してもよいと理解すべきである。本開示に係る実施例は、その態様について制限されない。
【００５７】
ブロック４１０において、因果関係特定装置１２０は、推定した分布に基づいて複数の要素における複数の要素ペアに関連する複数の因果関係のスコア（即ち、Ｄ×Ｄスコア行列）を特定する。例えば、スコア行列における成分ｅ（ｋ,ｊ）は成分ｋが成分ｊである尤度を指す。具体的な構成において、例えば、スコア行列における成分ｅ（ｋ,ｊ）は負の対数尤度であり、すなわち、スコアが低いほど、要素ｋが要素ｊである尤度が高くなることを示す。例えば、初期の場合には、ｅ（ｋ,ｊ）は下式で表せる。
【数１３】
2020181578.tif 000015
【００５８】
ブロック４２０において、因果関係特定装置１２０は、スコア行列における複数の因果関係のスコアを比較することで最大尤度（例えば、スコアが最も低い成分ｅ（ｋ,ｊ））に関連する要素ペア（即ち、要素ｋ→要素ｊ）を特定できる。例えば、当該要素ペアは、要素ｋ（「第１要素」とも称される）が要素ｊ（「第２要素」とも称される）の原因であることを指す。そして、ブロック４３０において、因果関係特定装置１２０は、因果関係を示すＤＡＧに第１要素に対応する第１ノードから第２要素に対応する第２ノードへ向く辺を追加する。
【００５９】
図２に示す例示的なものを例として、表１は、６×６の１つの例示的なスコア行列を示している。
【表１】
2020181578.tif 000016
【００６０】
表１に示すスコア行列からわかるように、最大尤度（即ち、最低スコア１／６）に関連する要素ペアは要素２０４→要素２０５であるため、ＤＡＧ（例えば、如図２に示すＤＡＧ２３０）に要素２０４に対応するノードから要素２０５に対応するノードへ向く辺を追加することで、要素２０４が要素２０５の原因であることを示す。
【００６１】
ブロック４４０において、因果関係特定装置１２０は複数の因果関係のスコアの中、第２要素に関連する１つ又は複数の因果関係のスコアを更新することができる。上記例において、因果関係特定装置１２０は要素２０５に関連する１つ又は複数の因果関係のスコアを更新することができる。具体的には、因果関係特定装置１２０は表１に示すスコア行列における第５列における各々の成分を改めて計算する。例えば、ｅ（１,５）は要素２０１及び２０４の組み合わせが要素２０５の原因である尤度（例えば、負の対数尤度）に更新され、ｅ（２,５）は要素２０２及び２０４の組み合わせが要素２０５の原因である尤度に更新され、ｅ（３,５）は要素２０３及び２０４の組み合わせ是要素２０５の原因である尤度に更新され、ｅ（４,５）はゼロに更新され、かつｅ（６,５）は要素２０６及び２０４の組み合わせ是要素２０５の原因である尤度に更新される。なお、既に要素２０４が要素２０５の原因であり、即ち、要素２０５が要素２０４の原因である可能性がないことを特定したため、ｅ（５,４）は「−−」に更新され、次回の繰り返しの時にｅ（５,４）を考慮する必要がないことを示す。
いくつの実施例において、要素ｊに関連するスコアは下式で計算される。
【数１４】
2020181578.tif 000017
【００６２】
上記例において、ｅ（１,５）が更新されると、式（６）においてｊ＝５かつｋ∈［１,４］となり、ｅ（２,５）が更新されると、式（６）においてｊ＝５かつｋ∈［２,４］となり、ｅ（３,５）が更新されると、式（６）においてｊ＝５かつｋ∈［３,４］となり、ｅ（６,５）が更新されると、式（６）においてｊ＝５かつｋ∈［６,４］となる。
【００６３】
ブロック４５０において、因果関係特定装置１２０は、繰り返す回数が閾値の数に達したかどうかを特定する。いくつの実施例において、閾値の数は複数の要素ペアの数に基づいて特定されてもよい。例えば、Ｄ個の要素について、異なる要素ペアの数はＤ（Ｄ−１）であると、閾値の数はＤ（Ｄ−１）／２である。これは、要素ｋが要素ｊの原因であると特定したときに、同時に要素ｊが要素ｋの原因ではないことを特定できるためである。即ち、スコア行列における対応成分は、「−−」に更新され、次回の繰り返しの時に要素ｊ→要素ｋを考慮する必要がないことを示す。
【００６４】
図４に示されるように、繰り返す回数が閾値の数に達していない場合に、方法４００は４２０に移行し、次の繰り返しを実行する。さもなければ、因果関係特定装置１２０は複数の要素の間の因果関係を示すＤＡＧを出力する。
【００６５】
上記説明及び実験によれば、本開示に係る実施例は、データ分布及び要素の間の関係に対して如何なる仮設もしない場合に、複数の要素の間の因果関係を正確かつ確実に発見することができることを証明した。従来の技術案に比べて、本開示に係る実施例を使用して発見された因果構造は、より高い正確率及びリコール率を有し、事実上の複数の要素の間の因果関係により近づくことができる。
【００６６】
図５は、本開示に係る実施例の目標要素の観測値を影響する方法５００を示すフローチャートである。例えば、方法５００は図１Ｂに示す観測サンプル影響装置１４０によって実行される。いくつの実施例において、方法５００は方法３００の後に実行される。方法５００は、さらに未図示の付加動作を含んでもよく、及び／又は示されている動作をいくつか省略してもよいと理解すべきである。本開示に係る実施例は、その態様について制限されない。
【００６７】
ブロック５１０において、観測サンプル影響装置１４０は、因果構造に基づいて、複数の要素から目標要素の原因となる少なくとも１つの要素を特定する。そして、ブロック５２０において、観測サンプル影響装置１４０は、少なくとも１つの要素の観測値を変更することで目標要素の観測値を影響する。いくつの実施例において、例えば、観測サンプル影響装置１４０は、少なくとも１つの要素を影響及び変更し、及び／又は少なくとも１つの要素に対して対応する戦略を立てることで、目標要素の観測値を影響する。
【００６８】
上記した通信キャリアの顧客満足度に関するシチュエーションを例とする場合に、目標要素は例えば「顧客満足度」である。観測サンプル影響装置１４０は因果構造１３０に基づいて目標要素である「顧客満足度」の原因がどの要素（例えば、パケットが使い切る前の提示、お得なパケット等）であることを特定することができる。観測サンプル影響装置１４０は、さらにこれらの要素を影響及び変更し、及び／又はこれらの要素に対して対応する戦略を立てる（例えば、パケットが使い切る前に顧客に対してより多くの提示を提供し、顧客に対してより多くのお得なパケットを提供する）ことで、顧客が通信キャリアに対する満足度を向上させることができる。
【００６９】
上記した患者の血圧に関するシチュエーションを例とする場合に、目標要素は例えば「血圧」である。観測サンプル影響装置１４０は因果構造１３０に基づいて目標要素である「血圧」の原因がどの生理的な指標であることを特定することができる。観測サンプル影響装置１４０は、さらにこれらの生理的な指標を影響及び変更し、及び／又はこれらの生理的な指標に対して対応する戦略を立てることで、患者の血圧を安定に保つことができる。
【００７０】
上記した商品販売のシチュエーションを例とする場合に、目標要素は例えば「傘の売上げ」である。観測サンプル影響装置１４０は構造１３０に基づいて目標要素である「傘の売上げ」の原因がどの要素（例えば、天気、販売される傘の数など）であることを特定することができる。観測サンプル影響装置１４０は、さらにこれらの要素を影響及び変更し、及び／又はこれらの要素に対して対応する戦略を立てる（例えば、雨を降るときに販売に供される傘の数を増える）ことで、目標商品である傘の売上げを増加させることができる。
【００７１】
上記したソフトウェア開発のシチュエーションを例とする場合に、目標要素は例えば「開発周期」である。観測サンプル影響装置１４０は因果構造１３０に基づいて目標要素である「開発周期」の原因がどの要素（例えば、アーキテクチャ階層の数、プログラミング言語等）であることを特定することができる。観測サンプル影響装置１４０は、さらにこれらの要素を影響及び変更し、及び／又はこれらの要素に対して対応する戦略を立てる（例えば、ソフトウェアアーキテクチャの複雑度を低下し、よりフレンドリーなプログラミング言語を使用する等）ことで、ソフトウェア開発の周期を短縮する。また、例えば目標要素は「稼働段階のソフトウェアの故障率」である。観測サンプル影響装置１４０は、因果構造１３０に基づいて目標要素である「稼働段階のソフトウェアの故障率」の原因がどの要素（例えば、コード長、モジュールの数など）であることを特定することができる。観測サンプル影響装置１４０は、さらにこれらの要素を影響及び変更し、及び／又はこれらの要素に対して対応する戦略を立てる（例えば、コード長を短くし、モジュールの数を減少するなど）ことで、稼働段階のソフトウェアの故障率を低下させることができる。
【００７２】
図６は、本開示に係る実施例の因果関係を最適化するための方法６００を示すフローチャートである。例えば、方法６００は、図１Ｂに示す因果関係最適化装置１６０によって実行されることができる。いくつの実施例において、方法６００は、方法５００の後に実行される。方法６００は、さらに未図示の付加動作を含んでもよく、及び／又は示されている動作をいくつか省略してもよいと理解すべきである。本開示に係る実施例は、その態様について制限されない。
【００７３】
ブロック６１０において、因果関係最適化装置１６０は、複数の要素に関する変更後の観測サンプル集合を取得する。いくつの実施例において、変更後の観測サンプル集合における少なくとも１つの観測サンプルは、少なくとも１つの要素（例えば、少なくとも１つの要素が目標要素の原因である）の変更後の観測値を含んでもよい。そして、ブロック６２０において、因果関係最適化装置１６０は、変更後の観測サンプル集合に基づいて因果構造を最適化する。いくつの実施例において、例えば、因果関係最適化装置１６０は変更後の観測サンプル集合１５０に基づいて複数の要素の間の因果関係（例えば、因果関係特定装置１２０の実行過程に類似する）を改めて発見するため、最適化された因果構造を得られる。この形態によれば、本開示に係る実施例は、因果発見の正確性及びロバスト性を一層向上させることができる。
【００７４】
図７は、本開示に係る実施例を実施する例示的な装置７００を模式的に示すブロック図である。例えば、図１Ａに示す因果関係特定装置１２０、図１Ｂに示す観測サンプル影響装置１４０、及び／又は因果関係最適化装置１６０は、デバイス７００によって実施されることができる。図面に示されるように、デバイス７００は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）７０２に記憶されるコンピュータプログラム命令或いは記憶ユニット７０８からＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）７０３にロードされるコンピュータプログラム命令に基づいて、各種の適切な動作及び処理を実行できるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７０１を含む。ＲＡＭ７０３には、さらに、記憶装置７００が操作するために必要な各種のプログラム及びデータが記憶されてもよい。ＣＰＵ７０１、ＲＯＭ７０２及びＲＡＭ７０３は、バス７０４を介してお互いに接続されている。入出力（Ｉ／Ｏ）インターフェース７０５もバス７０４に接続されている。
【００７５】
例えばキーボードや、マウスなどの入力ユニット７０６と、例えば各種のタイプのディスプレイや、スピーカーなどの出力ユニット７０７と、例えば磁ディスクや、光ディスクなどの記憶ユニット７０８と、例えばネットワークアダプタ、モデム、無線通信トランシーバーなどの通信ユニット７０９とを含むデバイス７００の複数の部件は、Ｉ／Ｏインターフェース７０５に接続される。通信ユニット７０９はデバイス７００が例えばインターネットのコンピュータネットワーク及び／又は各種の通信ネットワークを介して他のデバイスと情報／データを交換することを許可する。
【００７６】
処理ユニット７０１は、例えば方法３００、４００、５００及び／又は６００である上記した各々の過程及び処理を実行するように構成されている。例えば、いくつの実施例において、方法３００、４００、５００及び／又は６００はコンピュータのソフトウェアのプログラムとして実現でき、例えば記憶ユニット７０８の機械読み取り可能な媒体に有形に含まれる。いくつの実施例において、コンピュータプログラムの一部或いは全部はＲＯＭ７０２及び／又は通信ユニット７０９を介してデバイス７００にロードされ、及び／又はインストールされる。コンピュータプログラムがＲＡＭ７０３にロードされてＣＰＵ７０１によって実行されるとき、上述した方法３００、４００、５００及び／又は６００における１つ又は複数のステップは実行される。
【００７７】
本開示はシステム、方法及び／又はコンピュータプログラム製品であってもよい。コンピュータプログラム製品はコンピュータ読み取り可能な記憶媒体を含み、当該記憶媒体に本開示の各々の態様を実行するためのコンピュータ読み取り可能なプログラム命令が格納されている。
【００７８】
コンピュータ読み取り可能な記憶媒体は、命令実行装置に使用される命令を保持して記憶できる物理装置であってもよい。コンピュータ読み取り可能な記憶媒体は、例えば電気記憶装置、磁気記憶装置、光記憶装置、電磁気記憶装置、半導体記憶装置、或いは上記装置の任意の適切な組み合わせであってもよいが、これらに限定されない。コンピュータ読み取り可能な記憶媒体のより具体的な例（完全に網羅されていないリスト）は、ポータブルコンピュータディスク、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）又はフラッシュメモリ、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｄｉｓｃ)、メモリースティック、フロッピーディスク、機械式エンコーダ、例えば命令が記憶されるパンチカード又は凹溝内の凸構造、及び上記の任意の適切な組み合わせを含む。ここで使用されるコンピュータ読み取り可能な記憶媒体は、例えば無線電波或いは他の伝送自在の電磁波、導波管又は他の伝送媒体によって伝送される電磁波（例えば、光ファイバーケーブルによる光パルス）、或いはワイヤーによって伝送される電気信号であり、一時的な信号自身として解釈されるべきではない。
【００７９】
ここで説明したコンピュータ読み取り可能なプログラム命令は、コンピュータ読み取り可能な記憶媒体から各々の計算／処理デバイスにダウンロードされ、或いは例えばインターネット、ＬＡＮ、ＷＡＮ及び／又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部記憶装置にダウンロードされる。ネットワークは、銅線伝送ケーブル、光ファイバー伝送、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び／又はエッジサーバーを含む。各計算／処理デバイスにおけるネットワークアダプターカード或いはネットワークインターフェースは、ネットワークからコンピュータ読み取り可能なプログラム命令を受信し、当該コンピュータ読み取り可能なプログラム命令を転送し、これにより、各々の計算／処理デバイスにおけるコンピュータ読み取り可能な記憶媒体に記憶する。
【００８０】
本開示の操作を実行するためのコンピュータプログラム命令は、アセンブリ命令、命令集アーキテクチャ（ＩＳＡ）命令、機械命令、機械関連命令、マイクロコード、ファームウェア命令、状態設定データ、或いは１種類又は数種類のプログラミング言語の任意組み合わせによってプログラミングされたソースコードまたはオブジェクトコードであってもよく、前記プログラミング言語は、例えばＳｍａｌｌｔａｌｋ、Ｃ＋＋等などの対象向けのプログラミング言語、及び例えば「Ｃ」言語又は類似のプログラミング言語などの通常の手続き型プログラミング言語を含む。コンピュータ読み取り可能なプログラム命令は、その全部がユーザのコンピュータで実行されてもよく、その一部がユーザのコンピュータで実行されてもよく、１つの独立なソフトウェアパッケージとして実行されてもよく、その一部がユーザのコンピュータで実行され、かつ一部がリモートコンピュータで実行されてもよく、或いはその全部がリモートコンピュータ又はサーバーで実行されてもよい。リモートコンピュータの場合、リモートコンピュータは、ＬＡＮ又はＷＡＮを含む任意の種類のネットワークを介してユーザのコンピュータに接続され、或いは、外部コンピュータに（例えばインターネットサービスプロバイダーによってインターネットを介して）接続されることができる。いくつの実施例において、コンピュータ読み取り可能なプログラム命令の状態情報を利用して、例えばプログラマブルロジック回路、ＦＰＧＡ（Ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）又はＰＬＡ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ａｒｒａｙ）などの電子回路をカスタマイズし、当該電子回路はコンピュータ読み取り可能なプログラム命令を実行することで、本開示の様々な態様を実現する。
【００８１】
ここで、本開示の実施例に係る方法、装置（システム）及びコンピュータプログラム製品のフローチャート及び／又はブロック図を参照しながら本開示の各々の態様を説明した。フローチャート及び／又はブロック図の各グロック、フローチャート及び／又はブロック図における各グロックの組み合わせは、いずれもコンピュータ読み取り可能なプログラム命令によって実現されることができると理解すべきである。
【００８２】
これらのコンピュータ読み取り可能なプログラム命令は、汎用コンピュータ、専用コンピュータ又は他のプログラマブルデータ処理装置の処理ユニットに提供されることができ、そのため、これらの命令がコンピュータ又は他のプログラマブルデータ処理装置の処理ユニットによって実行されるときに、フローチャート及び／又はブロック図における１つ又は複数のグロックにおける所定の機能／動作を実現する装置を構成するようにある機械を生産した。これらのコンピュータ読み取り可能なプログラム命令はコンピュータ読み取り可能な記憶媒体に記憶されてもよく、これらの命令はコンピュータ、プログラマブルデータ処理装置及び／又は他のデバイスを特定な形態で稼働させ、これにより、命令が記憶されているコンピュータ読み取り可能な媒体は、フローチャート及び／又はブロック図における１つ又は複数のグロックにおける所定の機能／動作の各々の態様を実現する命令を有するある製造品を含む。
【００８３】
コンピュータ読み取り可能なプログラム命令をコンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスにロードすることで、コンピュータ、他のプログラマブルデータ処理装置又は他のデバイスで一連の操作ステップを実行することができ、これにより、コンピュータによる実現過程を生じるため、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスで実行される命令にフローチャート及び／又はブロック図における１つ又は複数のグロックにおける所定の機能／動作を実行させる。
【００８４】
図面におけるフローチャート及びブロック図は、本開示に係る複数の実施例のシステム、方法、及びコンピュータプログラム製品の実現可能なシステムアーキテクチャ、機能及び操作を示した。この点について、フローチャート又はブロック図における各グロックは、所定のロジック機能を実現するための１つ又は複数の実行可能命令を含む１つのモジュール、プログラムセグメント又は命令の一部を代表する。いくつかの代替的なものとして、ブロックにマークされた機能は、図面に示された手順と異なる手順で作用できる。例えば、２つの連続するグロックは、実際にほぼ並行に実行し、かかる機能によって逆な手順で実行することもある。ブロック図及び／又はフローチャートにおける各グロック、ブロック図、及び／又はフローチャートにおけるグロックの組み合わせは、所定の機能又は動作を実行する専用のハードウェアによるシステムによって実現され、或いは専用ハードウェア及びコンピュータ命令の組み合わせによって実現される。
【００８５】
以上、既に本開示の各実施例を説明し、上記説明は例示的なものであり、挙げられた事項が全てではなく、かつ開示した各実施例を限定するためのものではない。説明した各実施例の範囲及び主旨を逸脱しないかぎり、様々な補正及び変更は当業者にとって自明である。本明細書に使用された用語は、各実施例の原理を最適に解釈し、実際の応用又は市場における技術の改善、或いは当業者が本開示の各実施例を理解できるように選択された。
【図１Ａ】
2020181578.tif 000018
【図１Ｂ】
2020181578.tif 000019
【図２】
2020181578.tif 000020
【図３】
2020181578.tif 000021
【図４】
2020181578.tif 000022
【図５】
2020181578.tif 000023
【図６】
2020181578.tif 000024
【図７】
2020181578.tif 000025