IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

<>
  • 特許-データ処理方法、装置、及び媒体 図1A
  • 特許-データ処理方法、装置、及び媒体 図1B
  • 特許-データ処理方法、装置、及び媒体 図2
  • 特許-データ処理方法、装置、及び媒体 図3
  • 特許-データ処理方法、装置、及び媒体 図4
  • 特許-データ処理方法、装置、及び媒体 図5
  • 特許-データ処理方法、装置、及び媒体 図6
  • 特許-データ処理方法、装置、及び媒体 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-29
(45)【発行日】2024-08-06
(54)【発明の名称】データ処理方法、装置、及び媒体
(51)【国際特許分類】
   G06N 7/01 20230101AFI20240730BHJP
   G06F 18/2321 20230101ALI20240730BHJP
【FI】
G06N7/01
G06F18/2321
【請求項の数】 25
(21)【出願番号】P 2020076886
(22)【出願日】2020-04-23
(65)【公開番号】P2020181578
(43)【公開日】2020-11-05
【審査請求日】2023-04-05
(31)【優先権主張番号】201910335036.8
(32)【優先日】2019-04-24
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】フェン ルー
(72)【発明者】
【氏名】ツイ ルーイェ
(72)【発明者】
【氏名】ウェイ ウェンジュアン
(72)【発明者】
【氏名】リュウ チュンチェン
【審査官】藤原 敬利
(56)【参考文献】
【文献】特開2008-003866(JP,A)
【文献】米国特許出願公開第2019/0102680(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00 -99/00
G06F 18/2321
(57)【特許請求の範囲】
【請求項1】
コンピュータが、複数の要素の対応する観測値を含む1つの観測サンプルを含む、前記複数の要素に関する観測サンプル集合を取得することと、
前記コンピュータが、前記複数の要素における各要素ごとに、前記観測サンプル集合に基づいて、前記要素の観測値と、前記複数の要素における少なくとも1つの他の要素の観測値及び前記少なくとも1つの他の要素が前記要素への影響に基づいて特定される前記要素の推定値との間の差が従う分布を推定することと、
前記コンピュータが、少なくとも推定された前記分布に基づいて、前記複数の要素の間の因果関係を示す因果構造を特定することと、
を含むデータ処理方法。
【請求項2】
前記複数の要素は目標要素を含み、
前記方法は、さらに、
特定された前記因果構造に基づいて、前記複数の要素から前記目標要素の原因となる少なくとも1つの要素を特定することと、
前記少なくとも1つの要素の観測値を変更することで、前記目標要素の観測値を影響することと、を含む請求項1に記載の方法。
【請求項3】
さらに、
前記少なくとも1つの要素の変更後の観測値を含む少なくとも1つの観測サンプルを含む、前記複数の要素に関する変更後の観測サンプル集合を取得することと、
前記変更後の観測サンプル集合に基づいて、前記因果構造を最適化することと、を含む請求項2に記載の方法。
【請求項4】
前記分布を推定することは、
前記少なくとも1つの他の要素が前記要素への前記影響を推定することと、
前記影響、前記観測サンプル集合における前記要素の観測値、及び前記少なくとも1つの他の要素の観測値に基づいて、前記分布を推定することと、を含む請求項1に記載の方法。
【請求項5】
前記影響を推定することは、
B-スプライン回帰アルゴリズムを使用して前記影響を推定することを含む請求項4に記載の方法。
【請求項6】
前記分布を推定することは、
カーネル密度推定アルゴリズムを使用して前記分布を推定することを含む請求項4に記載の方法。
【請求項7】
前記分布はガウス分布と異なる請求項1に記載の方法。
【請求項8】
前記因果構造を特定することは、
前記分布に基づいて、前記因果構造を特定するための、ペナルティ項が含まれない目標関数を生成することと、
前記目標関数を最小化することで、前記因果構造を特定することと、を含む請求項1に記載の方法。
【請求項9】
前記因果構造は有向非巡回グラフで表され、前記有向非巡回グラフは前記複数の要素に対応する複数のノードを含み、
前記複数の要素における複数の要素ペアの第1要素ペアの因果関係のスコアは、前記第1要素ペアにおける一方の要素が他方の要素である原因の尤度を示し、
前記因果構造を特定することは、
前記分布に基づいて、前記複数の要素ペアに関連する複数の因果関係のスコアを特定することと、
繰り返す回数が閾値の数に達するまで、
前記複数の因果関係のスコアを比較することで、前記複数の要素ペアの中、第2要素ペアにおける第1要素が前記第2要素ペアにおける第2要素の原因であることを示し、かつ最大尤度に関連する前記第2要素ペアを特定する操作と、
前記有向非巡回グラフに、前記第1要素に対応する第1ノードから前記第2要素に対応する第2ノードへ向く辺を追加する操作と、
前記複数の因果関係のスコアの中、前記第2要素に関連する1つ又は複数の因果関係のスコアを更新操作と、
を繰り返して実行することと、を含む請求項1に記載の方法。
【請求項10】
前記閾値の数は前記複数の要素ペアの数から特定される請求項9に記載の方法。
【請求項11】
さらに、
前記複数の要素から因果関係が存在可能な2つの要素を、前記複数の要素ペアの1つとして特定することを含む請求項9に記載の方法。
【請求項12】
さらに、
スパース回帰アルゴリズムを使用して、前記有向非巡回グラフの辺を最適化することを含む請求項9に記載の方法。
【請求項13】
少なくとも1つの処理ユニットと、
前記少なくとも1つの処理ユニットにカップリングされ、かつ前記少なくとも1つの処理ユニットにより実行される命令を記憶するための少なくとも1つのメモリと、を備え、
前記命令が前記少なくとも1つの処理ユニットにより実行されると、
複数の要素の対応する観測値を含む1つの観測サンプルを含む、前記複数の要素に関する観測サンプル集合を取得することと、
前記複数の要素における各要素ごとに、前記観測サンプル集合に基づいて、前記要素の観測値と、前記複数の要素における少なくとも1つの他の要素の観測値及び前記少なくとも1つの他の要素が前記要素への影響に基づいて特定される前記要素の推定値との間の差が従う分布を推定することと、
少なくとも推定された前記分布に基づいて、前記複数の要素の間の因果関係を示す因果構造を特定することと、を含む動作を実行するデータ処理用の装置。
【請求項14】
前記複数の要素は目標要素を含み、
前記動作は、さらに、
特定された前記因果構造に基づいて、前記複数の要素から前記目標要素の原因となる少なくとも1つの要素を特定することと、
前記少なくとも1つの要素の観測値を変更することで、前記目標要素の観測値を影響することと、を含む請求項13に記載の装置。
【請求項15】
前記動作は、さらに、
前記少なくとも1つの要素の変更後の観測値を含む少なくとも1つの観測サンプルを含む、前記複数の要素に関する変更後の観測サンプル集合を取得することと、
前記変更後の観測サンプル集合に基づいて、前記因果構造を最適化することと、を含む請求項14に記載の装置。
【請求項16】
前記分布を推定することは、
前記少なくとも1つの他の要素が前記要素への前記影響を推定することと、
前記影響、前記観測サンプル集合における前記要素の観測値、及び前記少なくとも1つの他の要素の観測値に基づいて、前記分布を推定することと、を含む請求項13に記載の装置。
【請求項17】
前記影響を推定することは、
B-スプライン回帰アルゴリズムを使用して前記影響を推定することを含む請求項16に記載の装置。
【請求項18】
前記分布を推定することは、
カーネル密度推定アルゴリズムを使用して前記分布を推定することを含む請求項16に記載の装置。
【請求項19】
前記分布はガウス分布と異なる請求項13に記載の装置。
【請求項20】
前記因果構造を特定することは、
前記分布に基づいて、前記因果構造を特定するための、ペナルティ項が含まれない目標関数を生成することと、
前記目標関数を最小化することで、前記因果構造を特定することと、を含む請求項13に記載の装置。
【請求項21】
前記因果構造は有向非巡回グラフで表され、前記有向非巡回グラフは前記複数の要素に対応する複数のノードを含み、
前記複数の要素における複数の要素ペアの第1要素ペアの因果関係のスコアは、前記第1要素ペアにおける一方の要素が他方の要素である原因の尤度を示し、
前記因果構造を特定することは、
前記分布に基づいて、前記複数の要素ペアに関連する複数の因果関係のスコアを特定することと、
繰り返す回数が閾値の数に達するまで、
前記複数の因果関係のスコアを比較することで、前記複数の要素ペアの中、第2要素ペアにおける第1要素が前記第2要素ペアにおける第2要素の原因であることを示し、かつ最大尤度に関連する前記第2要素ペアを特定する操作と、
前記有向非巡回グラフに前記第1要素に対応する第1ノードから前記第2要素に対応する第2ノードへ向く辺を追加する操作と、
前記複数の因果関係のスコアの中、前記第2要素に関連する1つ又は複数の因果関係のスコアを更新操作と、
を繰り返して実行することと、を含む請求項13に記載の装置。
【請求項22】
前記閾値の数は前記複数の要素ペアの数から特定される請求項21に記載の装置。
【請求項23】
前記動作は、さらに、
前記複数の要素から因果関係が存在可能な2つの要素を、前記複数の要素ペアの1つとして特定することを含む請求項21に記載の装置。
【請求項24】
前記動作は、さらに、
スパース回帰アルゴリズムを使用して、前記有向非巡回グラフの辺を最適化することを含む請求項21に記載の装置。
【請求項25】
機械により実行可能な命令を記憶しており、前記機械により実行可能な命令がデバイスにより実行されると、前記デバイスに請求項1~12のいずれか1項に記載の方法を実行させるコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示に係る実施例は、機械学習分野に関し、具体的には、データ処理方法、装置、及びコンピュータ読み取り可能な記憶媒体に関する。
【背景技術】
【0002】
情報技術の飛躍的な発展に伴い、データの規模が急速に大きくなっている。機械学習は、このような背景及びトレンドでますます広く注目されている。中でも、因果発見は、現実の生活において、例えばサプライチェーン、医療健康及びリテール等などの分野において幅広く適用されている。ここで、上記の因果発見とは、複数の要素に関するサンプルデータから複数の要素の間に存在する因果関係を発見することである。例えば、リテール分野では、因果発見の結果は、各種の販売戦略を立てることを補助するために用いられることができ、医療健康分野では、因果発見の結果は、患者に対する治療方案等を作成することを補助するために用いられることができる。
【発明の概要】
【0003】
本開示に係る実施例はデータ処理方法、装置、及びコンピュータ読み取り可能な記憶媒体を提供する。
【0004】
本開示の第1態様において、データ処理方法を提供する。当該方法は、複数の要素の対応する観測値を含む1つの観測サンプルを含む、複数の要素に関する観測サンプル集合を取得することと、複数の要素における各要素ごとに、観測サンプル集合に基づいて、当該要素の観測値と、複数の要素における少なくとも1つの他の要素の観測値、及び少なくとも1つの他の要素が当該要素への影響に基づいて特定される当該要素の推定値との間の差が従う分布を推定することと、少なくとも推定された分布に基づいて、複数の要素の間の因果関係を示す因果構造を特定することと、を含む。
【0005】
本開示の第2態様において、データ処理用の装置を提供する。当該装置は少なくとも1つの処理ユニット及び少なくとも1つのメモリと、を備える。少なくとも1つのメモリは少なくとも1つの処理ユニットにカップリングされ、かつ少なくとも1つの処理ユニットにより実行される命令を記憶し、命令が少なくとも1つの処理ユニットにより実行されると、当該装置は、複数の要素の対応する観測値を含む1つの観測サンプルを含む、複数の要素に関する観測サンプル集合を取得することと、複数の要素における各要素ごとに、観測サンプル集合に基づいて、当該要素の観測値と、複数の要素における少なくとも1つの他の要素の観測値、及び少なくとも1つの他の要素が当該要素への影響に基づいて特定される当該要素の推定値との間の差が従う分布を推定することと、少なくとも推定された分布に基づいて、複数の要素の間の因果関係を示す因果構造を特定することと、を含む動作を実行する。
【0006】
本開示の第3態様において、コンピュータ読み取り可能な記憶媒体を提供し、当該コンピュータ読み取り可能な記憶媒体は、それに記憶されている機械により実行可能な命令を有し、当該機械により実行可能な命令がデバイスにより実行されると、当該デバイスに本開示の第1態様に記載の方法を実行させる。
【0007】
発明の概要を提供することは、簡略化された形態で一連のコンセプトを紹介し、これらを下記の発明を実施するための具体的な形態において更なる説明をする。発明の概要は本開示の肝心な特徴又は必要な特徴を標記するためではなく、本開示の範囲を制限するためでもない。本開示の他の特徴は、以下の記述により容易に理解できるようになる。
【図面の簡単な説明】
【0008】
以下の開示内容及び特許範囲から、本発明の目的、利点及び他の特徴はより明らかになる。ここで、例を示す目的を基にして、図面を参照しながら、好ましい実施例に対しての制限的ではない記述を示す。各図面において、同一又は対応した符号は同一又は対応した部分を示す。
【0009】
図1A】本開示に係る実施例のデータ処理用の例示的なシステムを示すブロック図である。
図1B】本開示に係る実施例のデータ処理用の例示的なシステムを示すブロック図である。
図2】本開示に係る実施例の複数の要素の間の因果関係を特定するための模式図である。
図3】本開示に係る実施例の例示的な方法を示すフローチャートである。
図4】本開示に係る実施例の例示的な方法を示すフローチャートである。
図5】本開示に係る実施例の例示的な方法を示すフローチャートである。
図6】本開示に係る実施例の例示的な方法を示すフローチャートである。
図7】本開示に係る実施例を実施できる例示的な装置を模式的に示すブロック図である。
【発明を実施するための形態】
【0010】
以下、図面を参照しながら本開示に係る実施例をより詳細に説明する。本開示は、図面により本開示のいくつかの実施例を示しているが、様々な形態により実施可能であり、ここで説明する実施例に限定されるように解釈されるべきでない。逆にこれらの実施例を提供することは本開示をより徹底的、かつ完全に理解するためであることを理解すべきである。本開示の図面及実施例は例示的なものにすぎず、本開示の保護範囲を限定するためのものではないと理解すべきである。
【0011】
本開示に係る実施例の記述において、「含む」という用語及びそれに類似する用語は「含むが、これらに限定されない」と理解すべきである。「基づく」という用語は、「少なくとも部分的に基づく」と理解すべきである。「一実施例」又は「当該実施例」という用語は「少なくとも一実施例」と理解すべきである。「第1」、「第2」等の用語は異なる又は同一な対象を指してもよい。以下、さらに他の明示的な定義及び暗示的な定義を含んでもよい。
【0012】
本開示に係る実施例において、「因果構造」(Causal Structure)という用語とは、通常、システムにおける各要素の間の因果関係を記述する構成である。「要素」という用語は「変量」とも称される。「観測サンプル」という用語は直接に観測可能な複数の要素の1組の観測値を指し、その中、直接に観測可能な要素は「観測変量」とも称される。
【0013】
上記のように、実際の生活において、多くの観測変量の間に存在する因果関係を速やかかつ正確に発見することは望まれている。
【0014】
顧客サービス分野において、どの要素が顧客の通信キャリアに対する満足度を影響するかを特定するために、顧客の消費行為データ(例えば、顧客の年齢、毎月に使用したネットの通信量、無料の通信量の比率、毎月に使用したネットの通信量の総額等)、満足度調査データ及びキャリア戦略データを大量に収集してもよい。収集した各タイプのデータは1種の要素(又は変量)の観測値とも称する。これらの要素の間に存在する因果関係を発見することで、顧客満足度を影響する1つ又は複数の要素を特定することができる。さらに、当該1つ又は複数の要素の観測値を変更し、或いは当該1つ又は複数の要素に対して対応する戦略を立てることで、顧客が通信キャリアに対する満足度を向上させることができる。
【0015】
健康分野において、患者の血圧に影響する要素を特定するために、例えば心拍数、心拍出量、アレルギー指数、総末梢血管抵抗、カテコールアミンの放出、血圧など、患者の一連の生理的な指標(即ち、一連の要素の観測値)を大量に収集してもよい。これらの生理的な指標の間に存在する因果関係を発見することで、患者の血圧に影響する生理的な指標(即ち、要素)を特定することができる。さらに、当該生理的な指標に影響し、或いは当該生理的な指標に対して対応する戦略を立てることで、患者の血圧を安定に保つことができる。
【0016】
商品販売分野において、目標商品(例えば、傘)の売上げに影響する要素を特定するために、外部要素データ(例えば、天気、季節、温度、日付、店舗の大きさ等)、当該商品の販売データ(例えば、当該商品の売上げ、当該商品の価格等)、及び1つ又は複数の関連商品(例えば、アイスクリーム)の販売データ等を収集してもよい。収集した各タイプのデータを1種の要素の観測値とする。これらの要素の間に存在する因果関係を発見することで、目標商品の売上げに影響する1つ又は複数の要素を特定することができる。さらに、当該1つ又は複数の要素の観測値を変更し、或いは当該1つ又は複数の要素に対して対応する戦略を立てることで、目標商品の売上げを増加させることができる。
【0017】
ソフトウェア開発分野において、故障率及び/又はソフトウェアの開発周期を影響する要素を特定するために、ソフトウェア開発の各種の要素の情報を収集してもよく、例えばソフトウェア開発の全体情報(例えば、開発周期、開発に投入されたリソースなど)及びソフトウェア開発の各々の段階の情報を含むが、これらに限定されない。ソフトウェア開発の各々の段階の情報は、例えばアーキテクチャ段階の情報(例えば、ソフトウェアアーキテクチャ方法、ソフトウェアアーキテクチャ階層の数など)、コーディング段階の情報(例えば、コード長、関数の数、プログラミング言語、モジュールの数など)、テスト段階の情報(例えば、ユニットテストの正確率又は故障率、ブラックボックステストの正確率又は故障率、ホワイトボックステストの正確率又は故障率等)、ソフトウェアの発行後の稼働段階の情報(例えば、稼働段階の正確率又は故障率等)を含んでもよい。収集した各タイプのデータを1種の要素の観測値とする。これらの要素の間に存在する因果関係を発見することで、ソフトウェアの開発周期及び/又は故障率を影響する1つ又は複数の要素を特定することができる。さらに、当該1つ又は複数の要素の観測値を変更し、或いは当該1つ又は複数の要素に対して対応する戦略を立てることで、ソフトウェアの開発周期及び/又は故障率を低下することができる。
【0018】
ところで、如何なる介入もなく、又はランダムに対照実験する場合には、一般的に、複数の要素の観測データのみで複数の要素の間の因果関係を発見することは困難である。そのため、従来の観測データによる因果関係発見方法は、一般的に、色々と仮設をつくり、例えば、データ分布がガウス分布であることや、要素の間の関係がリニア関係であることなどを仮設する。しかしながら、実際に応用する際には、データが任意の分布に基づくものであり、かつ要素の間の関係がリニア性ではない可能性もある。
【0019】
本開示に係る実施例によれば、データ処理するための方案(方法)を提供する。当該方案は、データ分布及び要素の間の関係に対して如何なる仮設もしない場合に複数の要素の間の因果関係を正確かつ確実に発見することができるため、上記問題及び/又は他の潜在的な問題を解決することができる。以下、上記した例示的なシチュエーションに合わせて本開示の各実施例を詳細に説明する。これは単に説明することを目的とし、如何なる形態で本発明の範囲を制限するためではないと理解すべきである。
【0020】
図1Aは、本開示に係る実施例のデータ処理するためのシステム100を示す例示的なブロック図である。図1Aに示すシステム100は、本開示に係る実施例における1種の例を実現するものにすぎず、本開示の範囲を制限するためのものではないと理解すべきである。本開示に係る実施例は、他のシステム又はアーキテクチャにも同様に適用される。
【0021】
図1Aに示されるように、システム100は、因果関係特定装置120を含んでもよい。因果関係特定装置120は、複数の要素に関する観測サンプル集合110を受信するとともに、その中から複数の要素の間の因果関係を表す因果構造130を特定することができる。選択的に、いくつの実施例において、システム100は、さらに複数の要素に関する観測サンプル集合110を採集(収集)するための観測サンプル採集装置(図1Aにおいて未図示)を含んでもよい。観測サンプル採集装置は観測サンプル集合110を取得するように、複数の要素の観測値をリアルタイムに採集し、或いは、定期的に又は不定期的に採集することができる。いくつの実施例において、観測サンプル採集装置は、それぞれ異なるタイプの要素の観測値を採集するための1つ又は複数の採集ユニットを含んでもよい。
【0022】
観測サンプル集合110は、1つ又は複数の目標要素に関する複数の要素の観測サンプルを含んでもよい。観測サンプル集合110は、例えばX={X,X,…,X}∈RN×Dとして表され、ただし、Nは観測サンプル集合110における観測サンプルの総数を示し、Dは要素の総数を示し、観測サンプル集合110における各々の観測サンプルはD個の要素を有する1組の観測値を含む。ベクトルX∈R(i ∈[1,D])はi個目の要素(以下、「要素i」或いは「要素X」とも称される)のN個の観測値を示す。例えば、xi (n) (i ∈ [1,D]、n ∈ [1,N])、かつn ∈ [1,N])は要素iのn個目の観測値を示す。因果構造130は有向非巡回グラフ(DAG)で表されることができ、その中、各ノードは1つの要素を示し、各有向辺は1つの因果関係を示し、例えば有向辺「A→B」は要素Aが要素Bの原因であることを示す。
【0023】
上記した通信キャリアの顧客満足度に関するシチュエーションを例とする場合に、例えば目標要素は「顧客満足度」であり、D個の要素を含む要素集合は顧客属性に関する要素(例えば、顧客レベル、顧客番号など)、顧客行為に関する要素(例えば、毎月に使用したネットの通信量、無料の通信量の比率、毎月に使用したネットの通信量の総額など)、顧客のフィードバックに関する要素(例えば、クレーム数、顧客満足度)及び顧客に対して立てた戦略要素(例えば、パケットオーバーの提示回数、タイミングなど)における1種類又は数種類などを含んでもよい。要素である「顧客レベル」を例とする場合に、ベクトルXはN人の顧客のレベルからなり、かつxi (n)はN人の顧客におけるn人目の顧客のレベルを示す。要素である「毎月に使用したネットの通信量」(即ち、v)を例とする場合に、ベクトルXはN人の顧客が毎月に使用したネットの通信量からなり、かつxi (n)はN人の顧客におけるn人目の顧客が毎月に使用したネットの通信量を示す。因果構造130は、例えば顧客レベル、毎月に使用したネットの通信量、無料の通信量の比率、毎月に使用したネットの通信量の総額、顧客満足度等の要素の間の因果関係を示し、例えば目標要素である「顧客満足度」の原因はどの要素であることを指す。
【0024】
上記した患者の血圧に関するシチュエーションを例とする場合に、例えば目標要素は「血圧」であり、D個の要素を含む要素集合は心拍数、心拍出量、アレルギー指数、総末梢血管抵抗、カテコールアミンの放出、血圧等を含んでもよい。要素である「心拍数」を例とする場合に、ベクトルXはN人の患者の心拍数からなり、かつxi (n)はN人の患者におけるn人目の患者の心拍数を示す。要素である「心拍出量」を例とする場合に、ベクトルXはN人の患者の心拍出量からなり、かつxi (n)はN人の患者におけるn人目の患者の心拍出量を示す。因果構造130は例えば心拍数、心拍出量、アレルギー指数、総末梢血管抵抗、カテコールアミンの放出、血圧等の要素の間の因果関係を示し、例えば目標要素である「血圧」の原因はどの要素であること指す。
【0025】
上記した商品販売のシチュエーションを例とする場合に、例えば目標要素は「目標商品の売上げ」であり、D個の要素を含む要素集合は外部要素(例えば、天気、季節、温度、日付、店舗の大きさ等)、目標商品(例えば、傘)の販売行為に関する要素(例えば、目標商品の売上げ、目標商品の価格等)、1つ又は複数の関連商品(例えば、アイスクリーム)の販売行為に関する要素(例えば、関連商品の売上げ、関連商品の価格等)及び目標商品についての販売戦略要素(例えば、プロモーションの回数、頻度等)における1種類又は数種類を含んでもよい。要素である「温度」を例とする場合に、ベクトルXはN日の温度からなり、かつxi (n)はn日目の温度を示す。要素である「目標商品の売上げ」を例とする場合に、ベクトルXはN日の傘の売上げからなり、かつxi (n)はn日目の傘の売上げを示す。因果構造130は、例えば天気、季節、温度、日付、店舗の大きさ、目標商品の売上げ、目標商品の価格、関連商品の売上げ、関連商品の価格等の要素の間の因果関係を示し、例えば目標要素である「目標商品の売上げ」の原因はどの要素であること指す。
【0026】
上記したソフトウェア開発のシチュエーションを例とする場合に、例えば目標要素は「ソフトウェアの開発周期」又は「ソフトウェアの稼働段階の故障率」であり、D個の要素を含む要素集合はソフトウェア開発の全体要素(例えば、開発周期、開発に投入されたリソース等)及びソフトウェア開発の各々の段階の要素における1種類又は数種類を含んでもよい。ソフトウェア開発の各々の段階の要素は例えばアーキテクチャ段階の要素(例えば、ソフトウェアアーキテクチャ方法、ソフトウェアアーキテクチャ階層の数など)、コーディング段階の要素(例えば、コード長、関数の数、プログラミング言語、モジュールの数など)、テスト段階の要素(例えば、ユニットテストの正確率又は故障率、ブラックボックステストの正確率又は故障率、ホワイトボックステストの正確率又は故障率等)、ソフトウェアの発行後の稼働段階の要素(例えば、稼働段階の正確率、稼働段階の故障率等)を含んでもよい。要素である「開発周期」を例とする場合に、ベクトルXiはN個のソフトウェア製品の開発周期からなり、かつxi (n)はn個目のソフトウェア製品の開発周期を示す。要素である「コード長」を例とする場合に、ベクトルXはN個のソフトウェア製品のコード長からなり、かつxi (n)は第n個のソフトウェア製品のコード長を示す。因果構造130は、例えばソフトウェアの開発周期、開発に投入されたリソース、アーキテクチャ方法、アーキテクチャ階層の数、コード長、関数の数、プログラミング言語、モジュールの数、ユニットテストの正確率又は故障率、ブラックボックステストの正確率又は故障率、ホワイトボックステストの正確率又は故障率、稼働段階の正確率、稼働段階の故障率等の要素の間の因果関係を示す。例えば、目標要素である「開発周期」の原因はどの要素であり、目標要素である「稼働段階の故障率」の原因はどの要素である。
【0027】
選択的に、いくつの実施例において、システム100は、さらに、因果構造130の態様を表すための因果関係表現装置(図1Aにおいて未図示)を含む。いくつの実施例において、因果関係表現装置は視覚や聴覚などの異なる形態で因果構造130の態様を表現することができる。例えば、因果関係表現装置は、グラフ、マップ、テキストなどの形態で因果構造130を表現することができる。いくつの実施例において、因果関係表現装置は、因果構造130のすべての態様、即ち、すべての要素の間の因果関係を表現することができる。オプションとして、いくつの実施例において、因果関係表現装置は、因果構造130の一部の態様のみを表現し、例えば、1つ又は複数の目標要素に関連する因果関係のみを表現することができる。いくつの実施例において、目標要素の原因が複数の要素を含む場合に、因果関係表現装置は、さらに、複数の要素の対応する重要程度を表現し、例えば、異なる色及び/又は異なる重要程度を示す数値等の形態で複数の要素の対応する重要程度を表現することができる。本開示に係る実施例は、その態様について制限されない。
【0028】
図1Bは本開示に係る実施例のデータ処理するためのシステム105を示す例示的なブロック図である。システム105は、例えば図1Aに示す因果構造130を適用して最適化することができる。図1Bに示すシステム105は、本開示に係る実施例における1種の例を実現するものにすぎず、本開示の範囲を制限するためのものではないと理解すべきである。本開示に係る実施例は他のシステム又はアーキテクチャにも同様に適用される。
【0029】
図1Bに示されるように、システム105は、観測サンプル影響装置140を含んでもよい。観測サンプル影響装置140は因果構造130に基づいて、複数の要素から目標要素の原因である少なくとも1つの要素を特定することができる。観測サンプル影響装置140は、少なくとも1つの要素の観測値を変更することで目標要素の観測値を影響することができ、これにより、変更された観測サンプル集合150を取得することができる。変更された観測サンプル集合150における少なくとも1つの観測サンプルは少なくとも1つの要素の変更後の観測値を含む。
【0030】
上記した通信キャリアの顧客満足度に関するシチュエーションを例とする場合に、目標要素は例えば「顧客満足度」であり、因果構造130は例えば目標要素である「顧客満足度」の原因がどの要素(例えば、パケットが使い切る前の提示、お得なパケット等)であることを指すことができる。観測サンプル影響装置140は例えばこれらの要素の観測値を影響及び変更し、及び/又はこれらの要素に対して対応する戦略を立てる(例えば、パケットが使い切る前に顧客に対してより多くの提示を提供し、顧客に対してより多くのお得なパケットを提供する)ことで、顧客が通信キャリアに対する満足度を向上させることができる。
【0031】
上記した患者の血圧に関するシチュエーションを例とする場合に、目標要素は例えば「血圧」であり、因果構造130は例えば目標要素である「血圧」の原因がどの生理的な指標であることを指すことができる。観測サンプル影響装置140は、例えばこれらの生理的な指標を影響及び変更し、及び/又はこれらの生理的な指標に対して対応する戦略を立てることで、患者の血圧を安定に保つことができる。
【0032】
上記した商品販売のシチュエーションを例とする場合に、目標要素は例えば「傘の売上げ」であり、因果構造130は例えば目標要素である「傘の売上げ」の原因がどの要素(例えば、天気、販売される傘の数など)であることを指すことができる。観測サンプル影響装置140は例えばこれらの要素を影響及び変更し、及び/又はこれらの要素に対して対応する戦略を立てる(例えば、雨を降るときに販売に供される傘の数を増える)ことで、目標商品である傘の売上げを増加させることができる。
【0033】
上記したソフトウェア開発のシチュエーションを例とする場合に、目標要素は例えば「開発周期」であり、因果構造130は例えば目標要素である「開発周期」の原因がどの要素(例えば、アーキテクチャ階層の数、プログラミング言語等)であることを指すことができる。観測サンプル影響装置140は、例えばこれらの要素を影響及び変更し、及び/又はこれらの要素に対して対応する戦略を立てる(例えば、ソフトウェアアーキテクチャの複雑度を低下し、よりフレンドリーなプログラミング言語を使用する等)ことで、ソフトウェア開発の周期を短縮する。また、例えば目標要素は「稼働段階のソフトウェアの故障率」であってもよく、因果構造130は例えば目標要素である「稼働段階のソフトウェアの故障率」の原因がどの要素(例えば、コード長、モジュールの数など)であることを指すことができる。観測サンプル影響装置140は例えばこれらの要素を影響及び変更し、及び/又はこれらの要素に対して対応する戦略を立てる(例えば、コード長を短くし、モジュールの数を減少するなど)ことで、稼働段階のソフトウェアの故障率を低下させることができる。
【0034】
図1Bに示されるように、システム105は因果関係最適化装置160を含んでもよい。因果関係最適化装置160は、変更された観測サンプル集合150に基づいて因果構造130を最適化することができるため、因果構造130の正確性を高める。いくつの実施例において、因果関係最適化装置160は変更された観測サンプル集合150に基づいて複数の要素の間の因果関係(例えば、因果関係特定装置120の実行過程に類似すること)を改めて発見することができるため、最適化された因果構造を取得できる。この形態によれば、本開示に係る実施例は、因果発見の正確性及びロバスト性を一層向上させることができる。
【0035】
図1Aに示す因果関係特定装置120、図1Bに示す観測サンプル影響装置140及び因果関係最適化装置160は、お互いに分離されることが示されているが、これは説明を目的とすることにすぎず、本開示の範囲を限定するためではない。いくつの実施例において、図1Aに示す因果関係特定装置120、図1Bに示す観測サンプル影響装置140及び因果関係最適化装置160は、同一の物理装置或いは複数の異なる物理装置で実現されることができる。いくつの実施例において、図1Aに示す因果関係特定装置120及び図1Bに示す因果関係最適化装置160は同じ装置として構成されることができる。本開示に係る実施例は、その態様について制限されない。
【0036】
図2は本開示に係る実施例の複数の要素の間の因果関係を特定するための模式図である。簡略化のため、かつ説明の便宜上、図2において、仮に観測サンプル集合110は要素201、202、203、204、205及び206の6個の要素に関し、すなわち、要素の数Dは6である。
【0037】
図2に示されるように、因果関係特定装置120は例えば要素ペア特定ユニット121、因果構造検索ユニット122、及び因果構造最適化ユニット123を含んでもよい。因果関係特定装置120に含まれるこれらのユニットは例示的なものにすぎず、本開示の範囲を制限するためのものではないと理解すべきである。いくつの実施例において、因果関係特定装置120は、さらに未図示の付加ユニットを含んでもよく、及び/又は示されているユニットをいくつか省略してもよい。例えば、いくつの実施例において、要素ペア特定ユニット121及び/又は因果構造最適化ユニット123は省略されてもよい。
【0038】
観測サンプル集合110は、要素201、202、203、204、205及び206に関する複数の観測サンプルを含む。初期の場合には、図2における観測サンプル集合110に示されるように、任意の2つの要素の間にも因果関係が存在する可能性がある。
【0039】
いくつの実施例において、観測サンプル集合110は、複数の要素201、202、203、204、205及び206の中、因果関係が存在可能な要素ペアを特定するように、要素ペア特定ユニット121に入力される。要素ペア特定ユニット121は、既知又は将来に開発される方法の如何なる方法を利用して複数の要素201、202、203、204、205及び206の中、因果関係が存在可能な要素ペアを特定することができると理解すべきである。ここで、仮に複数の要素201、202、203、204、205及び206について特定された、因果関係が存在する可能な複数の要素ペアは、図2における220のようである。
【0040】
いくつの実施例において、複数の要素ペア220が特定されると、複数の要素ペア220及び観測サンプル集合110の両方は、複数の要素ペア220における各要素ペアの間の因果関係(即ち、一方の要素が他方の要素の原因であること)を特定するように、因果構造検索ユニット122に入力されることができる。複数の要素ペア220における各要素ペアの間にすべて因果関係が存在することではないと理解すべきである。因果構造検索ユニット122は検索した因果構造230(以下、「DAG230」とも称される)を出力する。
【0041】
オプションとして、いくつの実施例において、要素ペア特定ユニット121は省略されてもよい。この場合には、観測サンプル集合110は因果構造検索ユニット122にそのまま入力される。因果構造検索ユニット122は、複数の要素201、202、203、204、205及び206における任意の2つの要素からなる要素ペアについて両者の間の因果関係を特定することで、因果構造230を出力する。これでわかるように、要素ペア特定ユニット121を追加することで、因果関係の検索空間を有効に減少でき、これにより、因果構造の発見を加速する。
【0042】
いくつの実施例において、因果構造230が特定されると、因果構造230及び観測サンプル110の両方は、因果構造230に対してさらに最適化するように因果構造最適化ユニット123に入力されることができる。因果構造最適化ユニット123は、既知又は将来に開発される方法の如何なる方法を利用して因果構造230最適化することができる。いくつの実施例において、例えば、因果構造最適化ユニット123は、スパース回帰アルゴリズムを使用して因果構造検索ユニット122により特定された因果構造230を最適化し、これにより、DAG230から非合理的ないくつの辺を排除する。なお、因果構造最適化ユニット123は、DAG230におけるいくつの辺の方向を変更したり、それにいくつの辺を追加したりすることなどもできる。因果構造最適化ユニット123は、最適化された因果構造として因果構造130を出力することができる。
【0043】
オプションとして、いくつの実施例において、因果構造最適化ユニット123は省略されることができる。この場合には、因果構造検索ユニット122は、検索した因果構造として因果構造130をそのまま出力することができる。
【0044】
図2に示されるように、因果関係特定装置120から出力された因果構造130は、例えば指示要素201が要素206の原因であり、要素206が要素202及び要素205の原因であり、要素202が要素203及び205の原因であり、要素203が要素204の原因であり、かつ要素204が要素205の原因であるようになる。仮に目標要素が要素205であると、目標要素205の原因が要素202、204及び206であることを特定できる。
【0045】
図3は、本開示に係る実施例の複数の要素の間の因果関係を特定するための方法300を示すフローチャートである。例えば、方法300は図1Aに示す因果関係特定装置120によって実行される。方法300は、さらに未図示の付加動作を含んでもよく、及び/又は示されている動作をいくつか省略してもよい。本開示に係る実施例は、その態様について制限されない。
【0046】
ブロック310において、因果関係特定装置120は、複数の要素に関する観測サンプル集合(例えば、図1A及び図2に示す観測サンプル集合110)を取得する。観測サンプル集合における1つの観測サンプルは、複数の要素に対応する観測値を含む。
【0047】
ブロック320において、因果関係特定装置120は、複数の要素における各要素ごとに、観測サンプル集合110に基づいて当該要素の観測値と推定値との間の差が従う分布を推定する。いくつの実施例において、当該要素の推定値は複数の要素における少なくとも1つの他の要素の観測値、及び少なくとも1つの他の要素が当該要素への影響に基づいて特定されることができる。
【0048】
いくつの実施例において、複数の要素における各要素ごとに、因果関係特定装置120は、少なくとも1つの他の要素が当該要素への影響を推定することができるため、推定した影響、観測サンプル集合110における当該要素の観測値、及び少なくとも1つの他の要素の対応する観測値に基づいて、当該要素の観測値と推定値との間の差が従う分布を推定する。
【0049】
例えば、D個の要素における第j個の要素(「要素j」とも称される)について、ベクトルXは下式で表せる。
【数1】
ただし、
【数2】
は推定されたk個目の要素(「要素k」とも称される)が第j個の要素(「要素j」とも称される)への影響を示し、
【数3】
はD個の要素における要素jの推定値を示し、εは要素jの観測値と推定値との間の残差を示す。当該残差が従う確率密度分布は、
【数4】
で表すことができる。
【0050】
いくつの実施例において、因果関係特定装置120は、B-スプライン回帰アルゴリズムを使用して
【数5】
を推定することができる。例えば、要素Xごとに、
【数6】
は下式で表せる。
【数7】
ただし、c及びαはいずれも実数であり、
【数8】
はB-スプライン基底関数である。基底関数の数Mは予め決められたハイパーパラメータ(例えば、10)及び/又は各要素がサンプル空間における異なる値の数(例えば、仮にある要素の値の範囲は[1,5]であり、かつ自然数であると、当該数が5である)に基づいて特定されることができる。いくつの実施例において、例えば、基底関数の数Mは予め決められたハイパーパラメータ(例えば、10)及び各要素の唯一の値の数の両方の中、比較的小さい方の値であってもよい。
【0051】
いくつの実施例において、因果関係特定装置120はカーネル密度推定アルゴリズムを使用して上記残差εの分布
【数9】
を推定することができる。例えば、因果関係特定装置120はオープンソースパッケージであるKernSmoothから提供されたカーネル密度推定アルゴリズムを使用して上記残差の分布を推定することができる。因果関係特定装置120は、さらに、既知又は将来に開発される方法の如何なる方法を利用して上記残差の分布を推定することができると理解すべきである。本開示に係る実施例は、その態様について制限されない。
【0052】
ブロック330において、因果関係特定装置120は、少なくとも推定した分布に基づいて複数の要素の間の因果関係を示す因果構造を特定する。
【0053】
いくつの実施例において、因果関係特定装置120は、推定した分布に基づいて、当該因果構造を特定するための目標関数を生成する。例えば、目標関数は下式で表せる。
【数10】
【0054】
これでわかるように、上記目標関数はペナルティ項を含まない。いくつの実施例において、因果関係特定装置120は当該目標関数を最小化することで複数の要素の間の因果関係を特定することができ、すなわち、
【数11】
ただし、
【数12】
は推定された複数の要素の間の因果関係を示す。
【0055】
いくつの実施例において、因果関係特定装置120(例えば、因果構造検索ユニット122)は推定した分布に基づいてD×Dスコア行列を構築することができ、これにより、複数の要素における異なる要素ペアに関連する因果関係のスコアを記録する。「要素k→要素j」と「要素j→要素k」とは異なる因果関係を示すことを理解すべき、これは、両者が異なる要素ペアを示すためである。例えば、スコア行列における成分e(k,j)(例えば、第k行かつ第j列の成分を示す)は成分kが成分jである尤度を示してもよい。複数の要素の間の因果関係は、例えばDAGで表れ、その中、複数の要素に対応する複数のノードを含む。因果構造検索ユニット122は、当該スコア行列に基づいて、何回も繰り返すことで当該DAGに要素の間の因果関係を示す1つ又は複数の有向辺を追加し、これにより、複数の要素の間の因果関係を示すDAGを取得する。
【0056】
図4は、本開示に係る実施例の因果構造を特定する方法400を示すフローチャートである。例えば、方法400は図3におけるブロック330の1種の例として実現されることができる。方法400は図1Aに示す因果関係特定装置120(例えば、因果構造検索ユニット122)によって実行される。方法400は、さらに未図示の付加動作を含んでもよく、及び/又は示されている動作をいくつか省略してもよいと理解すべきである。本開示に係る実施例は、その態様について制限されない。
【0057】
ブロック410において、因果関係特定装置120は、推定した分布に基づいて複数の要素における複数の要素ペアに関連する複数の因果関係のスコア(即ち、D×Dスコア行列)を特定する。例えば、スコア行列における成分e(k,j)は成分kが成分jである尤度を指す。具体的な構成において、例えば、スコア行列における成分e(k,j)は負の対数尤度であり、すなわち、スコアが低いほど、要素kが要素jである尤度が高くなることを示す。例えば、初期の場合には、e(k,j)は下式で表せる。
【数13】
【0058】
ブロック420において、因果関係特定装置120は、スコア行列における複数の因果関係のスコアを比較することで最大尤度(例えば、スコアが最も低い成分e(k,j))に関連する要素ペア(即ち、要素k→要素j)を特定できる。例えば、当該要素ペアは、要素k(「第1要素」とも称される)が要素j(「第2要素」とも称される)の原因であることを指す。そして、ブロック430において、因果関係特定装置120は、因果関係を示すDAGに第1要素に対応する第1ノードから第2要素に対応する第2ノードへ向く辺を追加する。
【0059】
図2に示す例示的なものを例として、表1は、6×6の1つの例示的なスコア行列を示している。
【表1】
【0060】
表1に示すスコア行列からわかるように、最大尤度(即ち、最低スコア1/6)に関連する要素ペアは要素204→要素205であるため、DAG(例えば、如図2に示すDAG230)に要素204に対応するノードから要素205に対応するノードへ向く辺を追加することで、要素204が要素205の原因であることを示す。
【0061】
ブロック440において、因果関係特定装置120は複数の因果関係のスコアの中、第2要素に関連する1つ又は複数の因果関係のスコアを更新することができる。上記例において、因果関係特定装置120は要素205に関連する1つ又は複数の因果関係のスコアを更新することができる。具体的には、因果関係特定装置120は表1に示すスコア行列における第5列における各々の成分を改めて計算する。例えば、e(1,5)は要素201及び204の組み合わせが要素205の原因である尤度(例えば、負の対数尤度)に更新され、e(2,5)は要素202及び204の組み合わせが要素205の原因である尤度に更新され、e(3,5)は要素203及び204の組み合わせ是要素205の原因である尤度に更新され、e(4,5)はゼロに更新され、かつe(6,5)は要素206及び204の組み合わせ是要素205の原因である尤度に更新される。なお、既に要素204が要素205の原因であり、即ち、要素205が要素204の原因である可能性がないことを特定したため、e(5,4)は「--」に更新され、次回の繰り返しの時にe(5,4)を考慮する必要がないことを示す。
いくつの実施例において、要素jに関連するスコアは下式で計算される。
【数14】
【0062】
上記例において、e(1,5)が更新されると、式(6)においてj=5かつk∈[1,4]となり、e(2,5)が更新されると、式(6)においてj=5かつk∈[2,4]となり、e(3,5)が更新されると、式(6)においてj=5かつk∈[3,4]となり、e(6,5)が更新されると、式(6)においてj=5かつk∈[6,4]となる。
【0063】
ブロック450において、因果関係特定装置120は、繰り返す回数が閾値の数に達したかどうかを特定する。いくつの実施例において、閾値の数は複数の要素ペアの数に基づいて特定されてもよい。例えば、D個の要素について、異なる要素ペアの数はD(D-1)であると、閾値の数はD(D-1)/2である。これは、要素kが要素jの原因であると特定したときに、同時に要素jが要素kの原因ではないことを特定できるためである。即ち、スコア行列における対応成分は、「--」に更新され、次回の繰り返しの時に要素j→要素kを考慮する必要がないことを示す。
【0064】
図4に示されるように、繰り返す回数が閾値の数に達していない場合に、方法400は420に移行し、次の繰り返しを実行する。さもなければ、因果関係特定装置120は複数の要素の間の因果関係を示すDAGを出力する。
【0065】
上記説明及び実験によれば、本開示に係る実施例は、データ分布及び要素の間の関係に対して如何なる仮設もしない場合に、複数の要素の間の因果関係を正確かつ確実に発見することができることを証明した。従来の技術案に比べて、本開示に係る実施例を使用して発見された因果構造は、より高い正確率及びリコール率を有し、事実上の複数の要素の間の因果関係により近づくことができる。
【0066】
図5は、本開示に係る実施例の目標要素の観測値を影響する方法500を示すフローチャートである。例えば、方法500は図1Bに示す観測サンプル影響装置140によって実行される。いくつの実施例において、方法500は方法300の後に実行される。方法500は、さらに未図示の付加動作を含んでもよく、及び/又は示されている動作をいくつか省略してもよいと理解すべきである。本開示に係る実施例は、その態様について制限されない。
【0067】
ブロック510において、観測サンプル影響装置140は、因果構造に基づいて、複数の要素から目標要素の原因となる少なくとも1つの要素を特定する。そして、ブロック520において、観測サンプル影響装置140は、少なくとも1つの要素の観測値を変更することで目標要素の観測値を影響する。いくつの実施例において、例えば、観測サンプル影響装置140は、少なくとも1つの要素を影響及び変更し、及び/又は少なくとも1つの要素に対して対応する戦略を立てることで、目標要素の観測値を影響する。
【0068】
上記した通信キャリアの顧客満足度に関するシチュエーションを例とする場合に、目標要素は例えば「顧客満足度」である。観測サンプル影響装置140は因果構造130に基づいて目標要素である「顧客満足度」の原因がどの要素(例えば、パケットが使い切る前の提示、お得なパケット等)であることを特定することができる。観測サンプル影響装置140は、さらにこれらの要素を影響及び変更し、及び/又はこれらの要素に対して対応する戦略を立てる(例えば、パケットが使い切る前に顧客に対してより多くの提示を提供し、顧客に対してより多くのお得なパケットを提供する)ことで、顧客が通信キャリアに対する満足度を向上させることができる。
【0069】
上記した患者の血圧に関するシチュエーションを例とする場合に、目標要素は例えば「血圧」である。観測サンプル影響装置140は因果構造130に基づいて目標要素である「血圧」の原因がどの生理的な指標であることを特定することができる。観測サンプル影響装置140は、さらにこれらの生理的な指標を影響及び変更し、及び/又はこれらの生理的な指標に対して対応する戦略を立てることで、患者の血圧を安定に保つことができる。
【0070】
上記した商品販売のシチュエーションを例とする場合に、目標要素は例えば「傘の売上げ」である。観測サンプル影響装置140は構造130に基づいて目標要素である「傘の売上げ」の原因がどの要素(例えば、天気、販売される傘の数など)であることを特定することができる。観測サンプル影響装置140は、さらにこれらの要素を影響及び変更し、及び/又はこれらの要素に対して対応する戦略を立てる(例えば、雨を降るときに販売に供される傘の数を増える)ことで、目標商品である傘の売上げを増加させることができる。
【0071】
上記したソフトウェア開発のシチュエーションを例とする場合に、目標要素は例えば「開発周期」である。観測サンプル影響装置140は因果構造130に基づいて目標要素である「開発周期」の原因がどの要素(例えば、アーキテクチャ階層の数、プログラミング言語等)であることを特定することができる。観測サンプル影響装置140は、さらにこれらの要素を影響及び変更し、及び/又はこれらの要素に対して対応する戦略を立てる(例えば、ソフトウェアアーキテクチャの複雑度を低下し、よりフレンドリーなプログラミング言語を使用する等)ことで、ソフトウェア開発の周期を短縮する。また、例えば目標要素は「稼働段階のソフトウェアの故障率」である。観測サンプル影響装置140は、因果構造130に基づいて目標要素である「稼働段階のソフトウェアの故障率」の原因がどの要素(例えば、コード長、モジュールの数など)であることを特定することができる。観測サンプル影響装置140は、さらにこれらの要素を影響及び変更し、及び/又はこれらの要素に対して対応する戦略を立てる(例えば、コード長を短くし、モジュールの数を減少するなど)ことで、稼働段階のソフトウェアの故障率を低下させることができる。
【0072】
図6は、本開示に係る実施例の因果関係を最適化するための方法600を示すフローチャートである。例えば、方法600は、図1Bに示す因果関係最適化装置160によって実行されることができる。いくつの実施例において、方法600は、方法500の後に実行される。方法600は、さらに未図示の付加動作を含んでもよく、及び/又は示されている動作をいくつか省略してもよいと理解すべきである。本開示に係る実施例は、その態様について制限されない。
【0073】
ブロック610において、因果関係最適化装置160は、複数の要素に関する変更後の観測サンプル集合を取得する。いくつの実施例において、変更後の観測サンプル集合における少なくとも1つの観測サンプルは、少なくとも1つの要素(例えば、少なくとも1つの要素が目標要素の原因である)の変更後の観測値を含んでもよい。そして、ブロック620において、因果関係最適化装置160は、変更後の観測サンプル集合に基づいて因果構造を最適化する。いくつの実施例において、例えば、因果関係最適化装置160は変更後の観測サンプル集合150に基づいて複数の要素の間の因果関係(例えば、因果関係特定装置120の実行過程に類似する)を改めて発見するため、最適化された因果構造を得られる。この形態によれば、本開示に係る実施例は、因果発見の正確性及びロバスト性を一層向上させることができる。
【0074】
図7は、本開示に係る実施例を実施する例示的な装置700を模式的に示すブロック図である。例えば、図1Aに示す因果関係特定装置120、図1Bに示す観測サンプル影響装置140、及び/又は因果関係最適化装置160は、デバイス700によって実施されることができる。図面に示されるように、デバイス700は、ROM(Read Only Memory)702に記憶されるコンピュータプログラム命令或いは記憶ユニット708からRAM(Random Access Memory)703にロードされるコンピュータプログラム命令に基づいて、各種の適切な動作及び処理を実行できるCPU(Central Processing Unit)701を含む。RAM703には、さらに、記憶装置700が操作するために必要な各種のプログラム及びデータが記憶されてもよい。CPU701、ROM702及びRAM703は、バス704を介してお互いに接続されている。入出力(I/O)インターフェース705もバス704に接続されている。
【0075】
例えばキーボードや、マウスなどの入力ユニット706と、例えば各種のタイプのディスプレイや、スピーカーなどの出力ユニット707と、例えば磁ディスクや、光ディスクなどの記憶ユニット708と、例えばネットワークアダプタ、モデム、無線通信トランシーバーなどの通信ユニット709とを含むデバイス700の複数の部件は、I/Oインターフェース705に接続される。通信ユニット709はデバイス700が例えばインターネットのコンピュータネットワーク及び/又は各種の通信ネットワークを介して他のデバイスと情報/データを交換することを許可する。
【0076】
処理ユニット701は、例えば方法300、400、500及び/又は600である上記した各々の過程及び処理を実行するように構成されている。例えば、いくつの実施例において、方法300、400、500及び/又は600はコンピュータのソフトウェアのプログラムとして実現でき、例えば記憶ユニット708の機械読み取り可能な媒体に有形に含まれる。いくつの実施例において、コンピュータプログラムの一部或いは全部はROM702及び/又は通信ユニット709を介してデバイス700にロードされ、及び/又はインストールされる。コンピュータプログラムがRAM703にロードされてCPU701によって実行されるとき、上述した方法300、400、500及び/又は600における1つ又は複数のステップは実行される。
【0077】
本開示はシステム、方法及び/又はコンピュータプログラム製品であってもよい。コンピュータプログラム製品はコンピュータ読み取り可能な記憶媒体を含み、当該記憶媒体に本開示の各々の態様を実行するためのコンピュータ読み取り可能なプログラム命令が格納されている。
【0078】
コンピュータ読み取り可能な記憶媒体は、命令実行装置に使用される命令を保持して記憶できる物理装置であってもよい。コンピュータ読み取り可能な記憶媒体は、例えば電気記憶装置、磁気記憶装置、光記憶装置、電磁気記憶装置、半導体記憶装置、或いは上記装置の任意の適切な組み合わせであってもよいが、これらに限定されない。コンピュータ読み取り可能な記憶媒体のより具体的な例(完全に網羅されていないリスト)は、ポータブルコンピュータディスク、ハードディスク、RAM(Random Access Memory)、ROM(Read Only Memory)、EPROM(Erasable Programmable Read Only Memory)又はフラッシュメモリ、SRAM(Static Random-Access Memory)、CD-ROM、DVD(Digital Video Disc)、メモリースティック、フロッピーディスク、機械式エンコーダ、例えば命令が記憶されるパンチカード又は凹溝内の凸構造、及び上記の任意の適切な組み合わせを含む。ここで使用されるコンピュータ読み取り可能な記憶媒体は、例えば無線電波或いは他の伝送自在の電磁波、導波管又は他の伝送媒体によって伝送される電磁波(例えば、光ファイバーケーブルによる光パルス)、或いはワイヤーによって伝送される電気信号であり、一時的な信号自身として解釈されるべきではない。
【0079】
ここで説明したコンピュータ読み取り可能なプログラム命令は、コンピュータ読み取り可能な記憶媒体から各々の計算/処理デバイスにダウンロードされ、或いは例えばインターネット、LAN、WAN及び/又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部記憶装置にダウンロードされる。ネットワークは、銅線伝送ケーブル、光ファイバー伝送、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバーを含む。各計算/処理デバイスにおけるネットワークアダプターカード或いはネットワークインターフェースは、ネットワークからコンピュータ読み取り可能なプログラム命令を受信し、当該コンピュータ読み取り可能なプログラム命令を転送し、これにより、各々の計算/処理デバイスにおけるコンピュータ読み取り可能な記憶媒体に記憶する。
【0080】
本開示の操作を実行するためのコンピュータプログラム命令は、アセンブリ命令、命令集アーキテクチャ(ISA)命令、機械命令、機械関連命令、マイクロコード、ファームウェア命令、状態設定データ、或いは1種類又は数種類のプログラミング言語の任意組み合わせによってプログラミングされたソースコードまたはオブジェクトコードであってもよく、前記プログラミング言語は、例えばSmalltalk、C++等などの対象向けのプログラミング言語、及び例えば「C」言語又は類似のプログラミング言語などの通常の手続き型プログラミング言語を含む。コンピュータ読み取り可能なプログラム命令は、その全部がユーザのコンピュータで実行されてもよく、その一部がユーザのコンピュータで実行されてもよく、1つの独立なソフトウェアパッケージとして実行されてもよく、その一部がユーザのコンピュータで実行され、かつ一部がリモートコンピュータで実行されてもよく、或いはその全部がリモートコンピュータ又はサーバーで実行されてもよい。リモートコンピュータの場合、リモートコンピュータは、LAN又はWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続され、或いは、外部コンピュータに(例えばインターネットサービスプロバイダーによってインターネットを介して)接続されることができる。いくつの実施例において、コンピュータ読み取り可能なプログラム命令の状態情報を利用して、例えばプログラマブルロジック回路、FPGA(Field-programmable Gate Array)又はPLA(Programmable Logic Array)などの電子回路をカスタマイズし、当該電子回路はコンピュータ読み取り可能なプログラム命令を実行することで、本開示の様々な態様を実現する。
【0081】
ここで、本開示の実施例に係る方法、装置(システム)及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照しながら本開示の各々の態様を説明した。フローチャート及び/又はブロック図の各グロック、フローチャート及び/又はブロック図における各グロックの組み合わせは、いずれもコンピュータ読み取り可能なプログラム命令によって実現されることができると理解すべきである。
【0082】
これらのコンピュータ読み取り可能なプログラム命令は、汎用コンピュータ、専用コンピュータ又は他のプログラマブルデータ処理装置の処理ユニットに提供されることができ、そのため、これらの命令がコンピュータ又は他のプログラマブルデータ処理装置の処理ユニットによって実行されるときに、フローチャート及び/又はブロック図における1つ又は複数のグロックにおける所定の機能/動作を実現する装置を構成するようにある機械を生産した。これらのコンピュータ読み取り可能なプログラム命令はコンピュータ読み取り可能な記憶媒体に記憶されてもよく、これらの命令はコンピュータ、プログラマブルデータ処理装置及び/又は他のデバイスを特定な形態で稼働させ、これにより、命令が記憶されているコンピュータ読み取り可能な媒体は、フローチャート及び/又はブロック図における1つ又は複数のグロックにおける所定の機能/動作の各々の態様を実現する命令を有するある製造品を含む。
【0083】
コンピュータ読み取り可能なプログラム命令をコンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスにロードすることで、コンピュータ、他のプログラマブルデータ処理装置又は他のデバイスで一連の操作ステップを実行することができ、これにより、コンピュータによる実現過程を生じるため、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスで実行される命令にフローチャート及び/又はブロック図における1つ又は複数のグロックにおける所定の機能/動作を実行させる。
【0084】
図面におけるフローチャート及びブロック図は、本開示に係る複数の実施例のシステム、方法、及びコンピュータプログラム製品の実現可能なシステムアーキテクチャ、機能及び操作を示した。この点について、フローチャート又はブロック図における各グロックは、所定のロジック機能を実現するための1つ又は複数の実行可能命令を含む1つのモジュール、プログラムセグメント又は命令の一部を代表する。いくつかの代替的なものとして、ブロックにマークされた機能は、図面に示された手順と異なる手順で作用できる。例えば、2つの連続するグロックは、実際にほぼ並行に実行し、かかる機能によって逆な手順で実行することもある。ブロック図及び/又はフローチャートにおける各グロック、ブロック図、及び/又はフローチャートにおけるグロックの組み合わせは、所定の機能又は動作を実行する専用のハードウェアによるシステムによって実現され、或いは専用ハードウェア及びコンピュータ命令の組み合わせによって実現される。
【0085】
以上、既に本開示の各実施例を説明し、上記説明は例示的なものであり、挙げられた事項が全てではなく、かつ開示した各実施例を限定するためのものではない。説明した各実施例の範囲及び主旨を逸脱しないかぎり、様々な補正及び変更は当業者にとって自明である。本明細書に使用された用語は、各実施例の原理を最適に解釈し、実際の応用又は市場における技術の改善、或いは当業者が本開示の各実施例を理解できるように選択された。
図1A
図1B
図2
図3
図4
図5
図6
図7