(57)【要約】      （修正有）【課題】エンティティ間のリソースフローの不一致を検出する。【解決手段】各エンティティのインカミング及びアウトゴーイングリソース値に関するデータを用いてエンティティ間の関係を表すネットワークグラフを生成するステップであって、各エンティティはネットワークグラフの頂点として表され、各関係はエッジとして表され、各エンティティのインカミング及びアウトゴーイング値はそのエンティティにおける各関係の属性ペアとして表されるステップと、目標頂点を選択するステップと、各目標エンティティについてアウトゴーイング値の合計と隣接頂点におけるインカミングリソース値の合計との間の外向き差分を計算しゼロでなければリソースフローの不一致を検出するステップと、及び／又は目標頂点におけるアウトゴーイング値の合計と隣接頂点におけるアウトゴーイング値の合計との間の内向き差分を計算しゼロでなければ、リソースフローの不一致を検出する。【選択図】図１
2018018512.tif 000002
【特許請求の範囲】
【請求項１】
目標エンティティと、前記目標エンティティがリソースを交換するエンティティとの間のリソースのインカミングフロー及びアウトゴーイングフローの間のミスマッチから生じる不一致を検出する、コンピュータにより実施される方法であって、
各エンティティのインカミング及びアウトゴーイングリソース値に関するデータを受け取るステップと、
受け取ったデータを用いて、エンティティ間の関係を表すネットワークグラフを生成するステップであって、各エンティティはネットワークグラフの頂点として表され、各関係はエッジとして表され、各エンティティのインカミング及びアウトゴーイング値はそのエンティティにおける各関係の属性ペアとして表される、ステップと、
目標頂点を選択するステップと、
各目標頂点について、
目標頂点におけるアウトゴーイング値の合計と、隣接頂点における目標頂点からのインカミングリソース値の合計との間の外向き差分を計算し、外向き差分がゼロでなければ、リソースフローの不一致を検出するステップ、及び／又は
目標頂点におけるアウトゴーイング値の合計と、隣接頂点における目標頂点へのアウトゴーイング値の合計との間の内向き差分を計算し、内向き差分がゼロでなければ、リソースフローの不一致を検出するステップを有する、
方法。
【請求項２】
目標頂点の選択は、数値的エクスポージャを用いて行われ、数値的エクスポージャが閾値を越えているとき、目標頂点を示す、請求項１に記載の方法。
【請求項３】
数値的エクスポージャは頂点の接続に基づき、好ましくは、リーフ頂点である隣接頂点のレベルに基づき、又はネットワークグラフ中の頂点を含む三角形のレベルに基づく、
請求項１または２に記載の方法。
【請求項４】
数値的エクスポージャは、隣接頂点の数と比較したインカミング及び／又はアウトゴーイングリソースのレベルに基づく、
請求項１ないし３いずれか一項に記載の方法。
【請求項５】
数値的エクスポージャは、頂点の隣接頂点を含む三角形の数の、頂点の隣接頂点の総数に対する比率に応じて決定される、請求項１ないし４いずれか一項に記載の方法。
【請求項６】
数値的エクスポージャは、ネットワークグラフ中のリーフ頂点である頂点の隣接頂点の、頂点の隣接頂点の総数に対する比率に応じて決定される、請求項１ないし５いずれか一項に記載の方法。
【請求項７】
数値的エクスポージャは、インカミング値及び／又はアウトゴーイング値の合計の、頂点の隣接頂点の総数に対する比率に応じて決定される、請求項１ないし６いずれか一項に記載の方法。
【請求項８】
リソースのインカミング及びアウトゴーイングフローに基づいて各目標頂点のローカルリスクを規格化するステップと、
隣接頂点のローカルリスク値を用いて、各頂点のローカルリスクを繰り返し更新して、各目標頂点の伝搬されたリスク値を提供するステップと、
ネットワークグラフが所定の収束閾値に収束するとき、及び／又は繰り返し回数が所定繰り返し閾値を越えるとき、繰り返して更新するステップを停止するステップとを含み、
伝搬されるリスク値は、不一致の検出として用いられる、
請求項１ないし７いずれか一項に記載の方法。
【請求項９】
各目標頂点と、頂点の隣接頂点との間のエッジを加重して、伝搬において加重を用いる、
請求項８に記載の方法。
【請求項１０】
ネットワークグラフに新しい頂点として新しいエンティティを追加するステップをさらに含み、
新しい頂点が元の頂点とオーバーラップしない場合、独立したネットワークグラフが新しい頂点間の関係を表す、
請求項１ないし９いずれか一項に記載の方法。
【請求項１１】
ネットワークグラフに新しい頂点として新しいエンティティを追加するステップをさらに含み、
新しい頂点が元の頂点とオーバーラップしない場合、新しい頂点と、新しい頂点の隣接頂点との間の不一致を計算し、
新しい頂点が元の頂点とオーバーラップする場合、新しい頂点と元の頂点とを照合し、元の頂点に新しいエッジを追加することにより、照合された頂点を形成し、不一致を計算し、
新しい頂点のサブネットワークグラフを、ネットワークグラフの補正部分として生成する、
請求項１ないし１０いずれか一項に記載の方法。
【請求項１２】
ネットワークグラフが生成されたとき、一以上のサーバ上のネットワークグラフの隣接行列を取得し、隣接行列を圧縮して、圧縮されたスパース行ベクトルを提供するステップと、
圧縮されたスパース行ベクトルを、一以上のサーバ上の隣接行列として格納するステップとをさらに含み、
一以上のサーバが、目標エンティティを選択するため、圧縮されたスパース行ベクトルにアクセスし、不一致を計算する、
請求項１ないし１１いずれか一項に記載の方法。
【請求項１３】
リソースは物理的または財務的なものであり、不一致は金銭的不正を示す、
請求項１ないし１２いずれか一項に記載の方法。
【請求項１４】
コンピュータで実行されたとき、目標エンティティと、前記目標エンティティがリソースを交換するエンティティとの間のリソースのインカミングフロー及びアウトゴーイングフローの間のミスマッチから生じる不一致を検出する方法を、コンピュータに実行させるプログラムであって、方法は、
各エンティティのインカミング及びアウトゴーイングリソース値に関するデータを受け取るステップと、
受け取ったデータを用いて、エンティティ間の関係を表すネットワークグラフを生成するステップであって、各エンティティはネットワークグラフの頂点として表され、各関係はエッジとして表され、各エンティティのインカミング及びアウトゴーイング値はそのエンティティにおける各関係の属性ペアとして表される、ステップと、
生成されたネットワークグラフ中の頂点の特徴を用いて目標頂点を選択するステップと、
各目標頂点について、
目標頂点におけるアウトゴーイング値と、隣接頂点における目標頂点からのインカミングリソース値の合計との間の外向き差分を計算し、内向き差分がゼロでなければ、リソースフローの不一致を検出するステップと、及び／又は
目標頂点におけるアウトゴーイング値と、隣接頂点から目標頂点へのアウトゴーイング値の合計との間の内向き差分を計算し、内向き差分がゼロでなければ、リソースフローの不一致を検出するステップ、を有する、
プログラム。
【請求項１５】
目標エンティティと、前記目標エンティティがリソースを交換するエンティティとの間のリソースのインカミングフロー及びアウトゴーイングフローの間のミスマッチから生じる不一致を検出するコンピュータ装置であって、
各エンティティのインカミング及びアウトゴーイングリソース値に関するデータを受け取るインターフェースと、
プロセッサであって、
受け取ったデータを用いて、エンティティ間の関係を表すネットワークグラフを生成し、各エンティティはネットワークグラフの頂点として表され、各関係はエッジとして表され、各エンティティのインカミング及びアウトゴーイング値はそのエンティティにおける各関係の属性ペアとして表され、
生成されたネットワークグラフ中の頂点の特徴を用いて目標頂点を選択し、
各目標頂点について、
目標頂点におけるアウトゴーイング値と、隣接頂点における目標頂点からのインカミングリソース値の合計との間の外向き差分を計算し、内向き差分がゼロでなければ、リソースフローの不一致を検出し、及び／又は
目標頂点におけるアウトゴーイング値と、隣接エンティティから目標頂点へのアウトゴーイング値の合計との間の内向き差分を計算し、内向き差分がゼロでなければ、リソースフローの不一致を検出する、プロセッサと、
不一致に関する情報を提示するユーザ出力とを有する、
コンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンティティ間のリソースフローの不一致の検出に関する。
【背景技術】
【０００２】
エンティティは、個人、自然人または法人、企業、およびリソースを交換するその他の個別に定義されたエンティティ（ｅｎｔｉｔｉｅｓ）であってもよい。問題の資源は、例えば水、ガスまたは電気の形式にあるユーティリティなどの物理的、自然的または人工的なものであってもよく、例えば災害救済のための衣類またはお米の形式にある人道援助などであってもよい。リソースはまた金銭的なものであってもよい。特に、サプライチェーンにおける不一致のグラフベースの不正検出（ｆｒａｕｄ  ｄｅｔｅｃｔｉｏｎ）のためのシステム、コンピュータプログラムおよび方法が提供される。これらの不一致（ｄｉｓｃｒｅｐａｎｃｉｅｓ）は、漏洩（リソースが油やガスなどの流体である場合）、接続の問題（例えば、リソースが電力である場合）または不正（リソースが金銭的である場合などその他の場合）を示す可能性がある。
【０００３】
最近、先進国と発展途上国の両方で債務の増大に応じて緊縮財政対策が行われていることにより、不正検出が勢いを増しており、公的予算への圧力が高まり、既存のアプローチを危険にさらす新しくより洗練された不正戦術が生まれている。従来、不正の検出は、広範な領域知識を有する主題の専門家によって行われている。主題の専門家は、通常、手作業でデータをスクリーニングし、「ｉｆ−ｔｈｅｎ」ルールの形の推論を進める。例えば、社会的便益の場合、２人の応募者が同じ携帯電話番号を使っていることが判明した場合、その応募者はほぼ同じであると考えられ、これは不正事件であるリスクが高いことを示す。手作業によるデータ処理およびスクリーニングは、大多数のケースで高い精度を提供するものの、時間がかかり、人為的間違いおよび個人間の変動や個人的な変動のリスクが高い。したがって、自動化されたソリューションが望ましい。
【０００４】
英国経済における不正対策のコストは、年間１００億ポンド以上になると考えられる。世界経済全体のコストは、世界のＧＤＰの３％から６％の間である可能性がある。さまざまなタイプの不正があり、それらはいくつかの基本は共通であるが、さまざまなタイプの被害者を対象とし、さまざまな特徴を示す。しかし、大部分の不正事件は、特定のパターンを発見することによって検出することができる。
【発明の概要】
【課題を解決するための手段】
【０００５】
本発明の第１の態様の一実施形態により、提供されるコンピュータにより実施される方法は、目標エンティティと、前記目標エンティティがリソースを交換するエンティティとの間のリソースのインカミングフロー（ｉｎｃｏｍｉｎｇ  ｆｌｏｗ）及びアウトゴーイング（ｏｕｔｇｏｉｎｇ）フローの間のミスマッチから生じる不一致を検出する、コンピュータにより実施される方法であって、各エンティティのインカミング及びアウトゴーイングリソース値に関するデータを受け取るステップと、受け取ったデータを用いて、エンティティ間の関係を表すネットワークグラフを生成するステップであって、各エンティティはネットワークグラフの頂点として表され、各関係はエッジとして表され、各エンティティのインカミング及びアウトゴーイング値はそのエンティティにおける各関係の属性ペアとして表される、ステップと、例えば、生成されたネットワークグラフ中の頂点の特徴を用いて目標頂点を選択するステップと、各目標エンティティについて、目標頂点におけるアウトゴーイング値の合計と、隣接頂点における目標頂点からのインカミングリソース値の合計との間の外向き差分（ｏｕｔｗａｒｄｓ  ｄｉｆｆｅｒｅｎｃｅ）を計算し、外向き差分がゼロでなければ、リソースフローの不一致を検出するステップと、及び／又は目標頂点におけるアウトゴーイング値の合計と、隣接頂点における目標頂点へのアウトゴーイング値の合計との間の内向き差分（ｉｎｗａｒｄｓ  ｄｉｆｆｅｒｅｎｃｅ）を計算し、内向き差分がゼロでなければ、リソースフローの不一致を検出するステップ、を有する。
【０００６】
発明者は、不正事例に巻き込まれる個人の行動間の複雑さは、グラフベースの方法に適していることに気づいた。
【０００７】
発明の実施形態は、グラフアルゴリズムとグラフベースの経験則（ｈｅｕｒｉｓｔｉｃｓ）とを用いて、エンティティ間のリソースフローにおける不一致を検出する方法、コンピュータプログラム、及び計算装置（またはシステム）を提供する。これらの不一致は、サプライチェーン内の不正検出、及び財務報告システム、例えば売上報告における不一致検出に適用できる。このグラフベースのアプローチは、複数の目標グラフ頂点からの軽い計算を（おそらく同時に）開始することにより、並列計算モデルの利益を受けて、性能を大幅に向上させることもできる。
【０００８】
公共事業／データ／お金／交通のフローにおける差分を検出でき、一方、不正行為又は接続問題／漏洩を表す不一致の影響は、追加的に伝搬でき、取引ネットワークの異常の完全なピクチャを提供できる。
【０００９】
目標頂点を選択するのに使う方法は、好適なものであればどんなものでもよい。一実施形態では、それは数値的エクスポージャ（ｎｕｍｅｒｉｃａｌ  ｅｘｐｏｓｕｒｅ）（不一致を計算せずに、不一致を表すより高い傾向を示す頂点の一以上の特徴に基づく数値）として表され、数値的エクスポージャが閾値を越える場合、好ましくは目標頂点を示す。数値的エクスポージャは、より疑わしい特徴（不一致を計算せずに、頂点の特徴に基づいて、不一致を表すより高い傾向）を表す場合、閾値よりも高くなり得る。
【００１０】
一般的な一例では、数値的エクスポージャ（選択）は頂点の接続に基づき、好ましくは、リーフ頂点である隣接頂点のレベルに基づき、又はネットワークグラフ中の頂点を含む三角形のレベルに基づく。
【００１１】
他の一般的な一例では、数値的エクスポージャ（選択）は、隣接頂点の数と比較したインカミング及び／又はアウトゴーイングリソースのレベルに基づく。
【００１２】
ある一例では、数値的エクスポージャ（選択）は、頂点の隣接頂点を含む三角形の数の、頂点の隣接頂点の総数に対する比率に応じて決定される。
【００１３】
さらに別のある一例では、数値的エクスポージャ（選択）は、ネットワークグラフ中のリーフ頂点である頂点の隣接頂点の、頂点の隣接頂点の総数に対する比率に基づき決定される。
【００１４】
さらに別のある一例では、数値的エクスポージャ（選択）は、インカミング値及び／又はアウトゴーイング値の合計の、頂点の隣接頂点の総数に対する比率に応じて決定される。
【００１５】
もちろん、これらの例の任意の組み合わせを用いて、具体的なエクスポージャを決定（目標頂点を選択）して、複数のファクタに基づく全体的対策（ｏｖｅｒａｌｌ  ｍｅａｓｕｒｅ）を与えてもよい。
【００１６】
リソースフローの不一致、それゆえ各目標頂点の（漏洩、不正などの）ローカルリスクは、上記の通り計算される。これらのローカルリスクを伝搬（ｐｒｏｐａｇａｔｅ）して、リソースフローを「偽って（ｍｉｓｄｅｃｌａｒｉｎｇ）」不正を働いているエンティティの特定を試みることも可能である。この偽り（ｍｉｓｄｅｃｌａｒａｔｉｏｎ）は、ネットワークグラフ中の直接的及び／又は間接的な隣接頂点（ｎｅｉｇｈｂｏｕｒｓ）における異常から検出可能であり得る。
【００１７】
ローカルリスクの伝搬は次の通り行われる：最初に、リソースのインカミング及びアウトゴーイングフローに基づいて各目標頂点のローカルリスクを規格化し；隣接頂点のローカルリスク値を用いて、各頂点のローカルリスクを繰り返し更新して、各目標頂点の伝搬されたリスク値を提供し；そして、ネットワークグラフが所定の収束閾値に収束するとき、及び／又は繰り返し回数が所定繰り返し閾値を越えるとき、繰り返して更新するステップを停止する。伝搬されるリスク値は、不一致の検出として用いられる。
【００１８】
伝搬は周知のページランク（ＰａｇｅＲａｎｋ）または加重ページランク（Ｗｅｉｇｈｔｅｄ  ＰａｇｅＲａｎｋ）アルゴリズムを用いても良い。
【００１９】
伝搬されるリスク値をローカルリスク値の替わりに用いて、又はローカルリスク値と共に用いて、不一致を検出してもよい。一実施形態では、（各目標エンティティの）ローカルリスクは、（例えば、グラフで表現され、またはエンティティ名と並べて単なる値として）ユーザに提示され、伝搬リスクを与えるために繰り返し更新され、繰り返し中に、及び最終値としてユーザに提示される。
【００２０】
伝搬を行えるようになる前に、ネットワーク全体の不一致を計算することは必須ではない。この場合、ユーザに提示できる結果は、動的であり、より多くが分かり、より多くの不一致が計算されると更新され得る部分解である。
【００２１】
本方法は、さらに、各目標頂点と、頂点の隣接頂点との間のエッジを加重して、伝搬において加重するステップをさらに含んでも良い。
【００２２】
より標準的な場合には、エッジ（ｅｄｇｅｓ）は加重を担う必要はない。加重が有向グラフ／ネットワークに追加される場合、グラフを通してリスクがどう伝搬され得るか、及びＡとＢが接続されていて、その接続が双方向であると仮定して、Ｂに対するＡの影響がその逆の（ＢからＡへの）影響と同じか、決定することができる。加重は、伝搬に用いることができる元のページランクアルゴリズムでは提供されず、改善されたバージョンで追加される。
【００２３】
初期構成後に、ネットワークグラフに新しいエンティティを追加する必要があることもある。新しい各エンティティは、グラフ中にすでにあるエンティティと同じ又は同様であってもよく、例えば、名前は異なるが、基本的に同じものを指していてもよい。これはオーバーラップしたエンティティまたは頂点と呼ぶ。
【００２４】
このように、本方法は、ネットワークグラフに新しい頂点として新しいエンティティを追加するステップをさらに含み、新しい頂点が元の頂点とオーバーラップしない場合、独立したネットワークグラフが新しい頂点間の関係を表す。
【００２５】
オーバーラップするエンティティがある場合、本方法は、ネットワークグラフに新しい頂点として新しいエンティティを追加するステップをさらに含み、新しい頂点が元の頂点とオーバーラップしない場合、新しい頂点と、新しい頂点の隣接頂点との間の不一致を計算する。
【００２６】
新しい頂点が元の頂点とオーバーラップする場合、新しい頂点と元の頂点とを照合し、元の頂点に新しいエッジを追加することにより、照合された頂点を形成し、不一致を計算し、新しい頂点のサブネットワークグラフを、ネットワークグラフの補正部分として生成する。
【００２７】
本方法は、一以上のサーバ又は任意の好ましい態様のその他のコンピュータに実装されてもよい。一実施形態では、前記方法は、さらに、ネットワークグラフが生成されたとき、一以上のサーバ上のネットワークグラフの隣接行列を取得し、隣接行列を圧縮して、圧縮されたスパース行ベクトルを提供するステップと、圧縮されたスパース行ベクトルを、一以上のサーバ上の隣接行列として格納するステップとを含み、一以上のサーバが、目標エンティティを選択するため、圧縮されたスパース行ベクトルにアクセスし、不一致を計算する。
【００２８】
本発明の第２の態様の一実施形態によると、コンピュータで実行されたとき、目標エンティティと、前記目標エンティティがリソースを交換するエンティティとの間のリソースのインカミングフロー及びアウトゴーイングフローの間のミスマッチから生じる不一致を検出する方法を、コンピュータに実行させるプログラムが提供される。この方法は、各エンティティのインカミング及びアウトゴーイングリソース値に関するデータを受け取るステップと、受け取ったデータを用いて、エンティティ間の関係を表すネットワークグラフを生成するステップであって、各エンティティはネットワークグラフの頂点として表され、各関係はエッジとして表され、各エンティティのインカミング及びアウトゴーイング値はそのエンティティにおける各関係の属性ペアとして表される、ステップと、生成されたネットワークグラフ中の頂点の特徴を用いて目標頂点を選択するステップと、各目標頂点について、目標頂点におけるアウトゴーイング値と、隣接頂点における目標頂点からのインカミングリソース値の合計との間の外向き差分を計算し、内向き差分がゼロでなければ、リソースフローの不一致を検出するステップと、及び／又は目標頂点におけるアウトゴーイング値と、隣接頂点から目標頂点へのアウトゴーイング値の合計との間の内向き差分を計算し、内向き差分がゼロでなければ、リソースフローの不一致を検出するステップ、を有する。
【００２９】
本発明の第３の態様の一実施形態によると、目標エンティティと、前記目標エンティティがリソースを交換するエンティティとの間のリソースのインカミングフロー及びアウトゴーイングフローの間のミスマッチから生じる不一致を検出するコンピュータ装置が提供される。該コンピュータ装置は、各エンティティのインカミング及びアウトゴーイングリソース値に関するデータを受け取るインターフェースと、プロセッサであって、受け取ったデータを用いて、エンティティ間の関係を表すネットワークグラフを生成し、各エンティティはネットワークグラフの頂点として表され、各関係はエッジとして表され、各エンティティのインカミング及びアウトゴーイング値はそのエンティティにおける各関係の属性ペアとして表され、生成されたネットワークグラフ中の頂点の特徴を用いて目標頂点を選択し、各目標頂点について、目標頂点におけるアウトゴーイング値と、隣接頂点における目標頂点からのインカミングリソース値の合計との間の外向き差分を計算し、内向き差分がゼロでなければ、リソースフローの不一致を検出し、及び／又は目標頂点におけるアウトゴーイング値と、隣接エンティティから目標頂点へのアウトゴーイング値の合計との間の内向き差分を計算し、内向き差分がゼロでなければ、リソースフローの不一致を検出する、プロセッサと、不一致に関する情報を提示するユーザ出力とを有する。
【００３０】
本発明の好ましい実施形態による装置又はコンピュータプログラムは、方法の態様の任意の組み合わせを含み得る。さらに別の実施形態による方法又はコンピュータ製品は、処理及びメモリ機能を要するという点でコンピュータにより実装されたものと言える。
【００３１】
好ましい実施形態による装置は、特定の機能を実行するように構成されているか、または単に実行することになっているとして説明される。この構成または配置は、ハードウェアまたはミドルウェアまたは任意の他の適切なシステムの使用によって行うことができる。好ましい実施形態では、構成または配置はソフトウェアによるものである。
【００３２】
したがって、１つの態様によれば、少なくとも１つのコンピュータにロードされると、先行する装置定義のいずれかまたはそれらの任意の組み合わせに従って装置となるようにそのコンピュータを構成するプログラムが提供される。
【００３３】
さらなる態様によれば、少なくとも１つのコンピュータにロードされたときに、前述の方法定義のいずれかまたはそれらの任意の組み合わせにしたがって方法ステップを実行するように少なくとも１つのコンピュータを構成するプログラムが提供される。
【００３４】
一般に、コンピュータは、定義された機能を提供するように構成または配置されているとして列挙された要素を含むことができる。例えば、このコンピュータは、メモリ、処理、およびネットワークインターフェースを含むことができる。
【００３５】
本発明は、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実施することができる。本発明は、１つ以上のハードウェアモジュールを実行する、またはその動作を制御する、コンピュータプログラムまたはコンピュータプログラム製品、すなわち、例えば機械可読記憶装置または伝搬信号などの非一時的情報担体に有形的に具体化されたコンピュータプログラムとして実施することができる。
【００３６】
コンピュータプログラムは、スタンドアロンプログラム、コンピュータプログラム部分または複数のコンピュータプログラムの形式であってもよく、コンパイルまたはインタプリタされた言語を含む任意の形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、またはデータ処理環境での使用に適した他のユニットを含む任意の形式で展開することができる。コンピュータプログラムは、１つのモジュール上で、または１つのサイトの複数のモジュール上で実行されるように、または複数のサイトにわたって分散され、通信ネットワークによって相互接続されるように展開することができる。
【００３７】
本発明の方法ステップは、コンピュータプログラムを実行して、入力データに作用して出力を生成することにより本発明の機能を実行する一以上のプログラム可能プロセッサにより実行できる。本発明の装置は、プログラムされたハードウェアとして、または例えばＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）を含む特殊用途論理回路として実施することができる。
【００３８】
コンピュータプログラムの実行に適したプロセッサは、例えば、特定目的及び汎用のマイクロプロセッサと、任意種類のデジタルコンピュータの任意一以上のプロセッサとを両方とも含む。一般的に、プロセッサは読み取り専用メモリまたはランダムアクセスメモリから命令またはデータまたはその両方を受け取る。コンピュータの必須要素は、命令及びデータを記憶する一以上のメモリデバイスに結合した、命令を実行するプロセッサである。
【００３９】
本発明は、特定の実施形態に関して説明される。他の実施形態も下記の請求項の範囲に入る。例えば、本発明のステップは、異なる順序で実行されても、依然として望ましい結果を達成することができる。オブジェクト指向プログラミング技術を使用せずに、複数のテストスクリプトバージョンを１つのユニットとして編集して呼び出すことができる。例えば、スクリプトオブジェクトの要素を構造化データベースまたはファイルシステムに編成することができ、スクリプトオブジェクトによって実行されると説明される動作を、テスト制御プログラムによって実行することができる。
【００４０】
本発明の要素は、プロセッサとメモリを用いて、様々なパーツの機能を記述する「生成器」、「選択器」、「計算器」などの用語を用いて説明することがある。当業者には言うまでもなく、このような機能的用語およびそれらの均等物は、空間的に分離されているが、結合して、確定された機能を果たすシステムの部分を指すことができる。同様に、システムの同じ物理的部分は、確定された二以上の機能を提供することができる。
【００４１】
例えば、別個に確定された手段は、必要に応じて同じメモリおよび／またはプロセッサを使用して実装することができる。
【図面の簡単な説明】
【００４２】
添付した図面を参照して、単なる例示により、本発明の好ましい特徴をここに説明する。
【図１】一般的な実施形態における方法を示すフローチャートである。
【図２】本発明の一般的な実施形態におけるメインシステムコンポーネントを示すブロック図である。
【図３】頂点におけるインカミングおよびアウトゴーイングリソースフロー値を含む、頂点ＡないしＧを有するネットワークグラフを示す図である。
【図４】一実施形態を示すブロック図である。
【図５】三角形を含むネットワークグラフからの抜粋を示す図である。
【図６】不一致値の伝搬を示すフローチャートである。
【図７】新しいエンティティのネットワークグラフへの追加を示すフローチャートである。
【図８】重複するエンティティの照合（ｒｅｃｏｎｃｉｌｉａｔｉｏｎ）を示す図である。
【発明を実施するための形態】
【００４３】
発明者が特定した問題は、かかるミスマッチを効率的に発見する自動化アプローチをどのように設計するか、及び過去の（及び／又は現在の）既知のアクティビティに基づいてハイリスク企業を予測するかという問題と見ることができる。
【００４４】
税目的で報告される収益の調査は、提案の方法及びシステムの、可能性のあるユースケースである。税務当局は一国の登記されたすべての企業からの完全なデータを有しているはずである。かかる税務データの提出はほぼすべての国で要求されている。例えば、スペインの税務所の場合、すべての会社は、スペイン内外の他のエンティティ（ｅｎｔｉｔｉｅｓ）との取引を報告するように求められている。この文書では、このようなデータが利用可能であり、アクセス可能であるものと仮定する。
【００４５】
上記の通り、電力供給と電力消費との間に明らかにミスマッチ（ｍｉｓｍａｔｃｈ）があるとき、故障したコンポーネントや送電網における不正検出の場合に、同様の技術を用いることができる。送電網の場合、電気料を支払う個人により主張される電力消費の単位はＫＷ（キロワット）であってもよく、測定は変電所や地域ディストリビュータの様々なレイヤで測定を行い得る。発明の実施形態は、消費と供給のアンバランス（ｕｎｂａｌａｎｃｅｄ  ｃｏｎｓｕｍｐｔｉｏｎ  ａｎｄ  ｐｒｏｖｉｓｉｏｎ）を検出する高速なアプローチを提供できる。このように、実施形態を用いて、公共事業関連の多くの場合に、メーター改ざんを検出することができる。
【００４６】
一般的に、本明細書に概要を記載するアプローチを適用して、ネットワークにおける「フロー（ｆｌｏｗ）」バランスを調べることができる。
【００４７】
一般的に、システムは、オフライン分析とオンライン分析との２つのモードで動作する。前者は、推論された知識でデータベースを更新し、後で、かかるオフライン推論を提供する。オフライン分析により幾つかの警告が生じた時、または人がシステムにあるエンティティの調査を促す時、人手による介入が生じる。システムは、例えば、ネットワークされた多数のコモディティコンピュータに収容された、データ集約型であるデータ駆動型のアプリケーションを使うことができる。クライアントサーバ構成を用いて、ユーザがクライアント側で操作することもできる。これは単に純粋なデータ量のため、好適な構成である。複数のサーバが地理的に配置されていても、複数のデータセンターにわたり分散されていてもよい。
【００４８】
図１は、一実施形態によるエンティティ間のリソースフローにおける不一致を検出する方法を示すフロー図である。ステップＳ１０において、各エンティティの、リソースのインカミング（ｉｎｃｏｍｉｎｇ）及びアウトゴーイング（ｏｕｔｇｏｉｎｇ）のフローに関するデータを受け取る。これらはリソース値（ｒｅｓｏｕｒｃｅ  ｖａｌｕｅｓ）であり、例えば、メガワット、スターリングポンド、または百万ユーロなどの単位を有してもよい。データは、直接的または間接的に、個人エンティティから、公共事業企業や税務当局などの中央当局から、または複数のソースが混じり合ったものから、受け取ることができる。Ｓ２０において、受け取ったデータを用いて、ネットワークグラフを生成する。これでは、各エンティティは頂点で表され、エンティティ間の関係は、それらのエンティティを表す頂点間のエッジである。インカミング値とアウトゴーイング値は頂点における属性ペアの形式をとる。よって、エンティティＡとエンティティＢとの間の関係では、頂点Ａは、エンティティＢに関連するインカミング値及びアウトゴーイング値でラベルされ、頂点Ｂは、エンティティＡに関連するインカミング値及びアウトゴーイング地でラベルされる。ほとんどの場合、これらの値は一致する傾向にあり、ＡのＢに関するインカミング値が１５、アウトゴーイング地が２０であれば、ＢのＡに関連するアウトゴーイング値は１５、インカミング値が２０である。
【００４９】
ステップＳ２０において、一旦、グラフが構成されると、ステップＳ３０において、頂点の特徴を用いて目標頂点が選択される。例えば、より高い接続性、値の高いリソースフロー、またはリスクの上昇を示すその他のフィーチャ（ｆｅａｔｕｒｅ）によって、エクスポージャ度が高い頂点は、グラフ中の他の頂点より不一致を示す傾向が高いという意味で、特徴はエクスポージャ（ｅｘｐｏｓｕｒｅ）を表しても良い。特徴は、（まだ生じていない）不一致自体の検出に依るのではなく、どの種類の頂点が不一致を有しやすいかに関する観察に依る。これは、タスクのサイズをカットする時間的及び処理能力的に効率の良い方法であるが、怪しいエンティティをより多く考慮することになる。
【００５０】
各目標エンティティに対して、ステップＳ４０ＡとＳ４０Ｂにおいて、外向き差分及び内向き差分を計算する。Ｓ４０Ａにおいて、目標頂点における（すべての関係の）アウトゴーイング値の和と、（目標頂点から１ホップのところにある直接近傍のみの）近傍頂点のうちの目標頂点からのインカミングリソースの和との間の差分として、外向き差分を計算する。通常、差分はゼロであり（Ａのデータはすべての近傍からのデータと一致する）、差分がゼロでなければ、不一致が検出される。
【００５１】
Ｓ４０Ｂにおいて、目標頂点における（すべての関係の）インカミング値の和と、（目標頂点から１ホップのところにある直接近傍のみの）近傍頂点のうちの目標頂点からのアウトゴーイングリソースの和との間の差分として、内向き差分を計算する。再度、差分はゼロであり（Ａのデータはすべての近傍からのデータと一致する）、差分がゼロでなければ、不一致が検出される。
【００５２】
幾つかの場合には、不一致の検出は内向き差分を用いて、又は外向き差分を用いて行えるが、多くの場合には、両方を計算して、より完全なチェックをする。
【００５３】
不一致を計算すると、本方法は、（可聴の警報の、又は表示され、又は自動電子メールなどの）警報の形式で警告を発することができる。留意点として、警報はエンティティ間のフローにおける問題に対するものであっても、意図的な誤報（不正）に対するものであっても、具体的でないものであってもよい。あるいは、非ゼロの不一致がユーザに表示されるだけであってもよい。
【００５４】
すべての目標頂点の不一致が計算されると、本方法は、他のすべての頂点を考慮しても、又は別途選択された頂点を考慮してもよい。本当に大きなネットワークグラフの場合、すべての頂点を考慮することは現実的ではないかも知れない。あるいは、大きなグラフの場合でも、本方法は、必要な処理パワーが少ない時には、（非目標）頂点の不一致を計算し続けても良く、かかる不一致を検出したら警告を生成または表示してもよい。
【００５５】
図２は、データストレージサーバなどの計算デバイスを示すブロック図である。この計算デバイスは本発明を具現化し、エンティティ間のリソースフローにおける不一致を検出する方法を実装するのに使われても良い。計算デバイスはプロセッサ９９３とメモリ９９４を有する。計算デバイスは、他の計算デバイスと、例えば本発明の実施形態の計算デバイスと通信するネットワークインターフェース９９７も含む。一例では、計算デバイスは、他の計算デバイスと協働して、ネットワークグラフを生成及び格納し、目標頂点を選択し、分散的に不一致を計算し、リスクを伝搬してもよい。
【００５６】
例えば、一実施形態は、かかる計算デバイスのネットワークより構成されていてもよい。任意的に、計算デバイスは、キーボードとマウス９９６などの一以上の入力メカニズムと、一以上のモニタ９９５などのディスプレイユニットとも含む。コンポーネントはバス９９２を介して互いに接続可能である。
【００５７】
メモリ９９４はコンピュータ読み取り可能媒体を含む。この用語は、例えば、コンピュータ実行可能命令を担い、又はその中にデータ構造を格納するように構成された１つの媒体又は複数の媒体（例えば、集中型または分散型データベース及び／又は関連するキャッシュ及びサーバ）を指す。コンピュータ実行可能命令は、例えば、命令とデータであって、汎用コンピュータ、特殊用途コンピュータ、又は特殊用途プロセッサデバイス（例えば、一以上のプロセッサ）によりアクセス可能であり、これらに一以上の機能又は動作を実行させるものを含んでもよい。このように、「コンピュータ読み取り可能記憶媒体」との用語は、そのマシンにより実行される一組の命令を記憶、エンコード、または担うことができ、そのマシンに、本開示の方法のいずれかを実行させる任意の媒体を含む。したがって、「コンピュータ読み取り可能記憶媒体」との用語は、固体メモリ、光媒体及び磁気媒体を含むが、これらに限定されない。限定ではなく例として、かかるコンピュータ読み取り可能媒体は、非一時的コンピュータ読み取り可能記憶媒体を含む、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、電気的消去可能プログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）又はその他の光ディスク記憶媒体、磁気ディスク記憶媒体又はその他の磁気記憶デバイス、フラッシュメモリデバイス（例えば、固体メモリデバイス）を含む。
【００５８】
プロセッサ９９３は、計算デバイスを制御し、処理動作を実行し、例えば、本明細書及び特許請求の範囲に記載した様々な機能を実装する、メモリに格納されたコードを実行するように構成されている。メモリ９９４はプロセッサ９９３により読み書きされるデータを格納する。本明細書に説明するように、プロセッサは、マイクロプロセッサ、中央処理装置などの一以上の汎用処理デバイスを含んでも良い。プロセッサは、例えば、ＣＩＳＣ（ｃｏｍｐｌｅｘ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ｃｏｍｐｕｔｉｎｇ）マイクロプロセッサ、ＲＩＳＣ（ｒｅｄｕｃｅｄ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ｃｏｍｐｕｔｉｎｇ）マイクロプロセッサ、ＶＬＩＷ（ｖｅｒｙ  ｌｏｎｇ  ｉｎｓｔｒｕｃｔｉｏｎ  ｗｏｒｄ）マイクロプロセッサ、他の命令セットを実装したプロセッサ、又は複数の命令セットの組み合わせを実装したプロセッサを含む。プロセッサは、例えば、一以上の特殊用途処理デバイス、例えば特定用途集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサなどを含む。一以上の実施形態では、プロセッサは、本明細書で説明される動作及びステップを実行する命令を実行するように構成されている。すなわち、プロセッサは、リソースフローを受け取り、ネットワークグラフの一部または全部を生成し、目標エンティティを選択し、内向き差分及び／又は外向き差分を計算する命令を実行できる。
【００５９】
ディスプレイユニット９９７は、計算デバイスにより格納されたデータの表現、例えば、ネットワークグラフ、リソースフロー、又はエンティティ名と、頂点における関連不一致／リスク値とのリストを表示してもよい。また、ディスプレイユニットは、例えば、カーソル及びダイアローグボックス及びスクリーンを表示して、ユーザと、計算デバイスに記憶されたプログラム及びデータとの間のインターラクションを可能にする。入力メカニズム９９６は、例えば、ユーザが計算デバイスにデータ及び命令を入力できるようにする。例えば、ユーザは、目標頂点を特定するのに用いられる頂点特徴を選択してもよい。
【００６０】
ネットワークインターフェース（ネットワークＩ／Ｆ）９９７は、インターネットなどのネットワークに接続されてもよく、そのネットワークを介して他の計算デバイスに接続可能である。ネットワークＩ／Ｆ９９７は、例えば、ネットワークを介して他の装置との間でのデータ入出力を制御する。マイクロホン、スピーカ、プリンタ、パワーサプライ、ファン、ケース、スキャナー、トラッカーボールなどの他の周辺デバイスが計算デバイスに含まれても良い。
【００６１】
プロセッサ９９３（または複数のプロセッサ）は、メモリ９９４に格納された処理命令（プログラム）を実行し、ネットワークＩ／Ｆを介してデータを交換する。特に、プロセッサ９９３は、処理命令を実行し、ネットワークＩ／Ｆを介して、ネットワークグラフの一部または全部に含まれるエンティティのインカミング及びアウトゴーイングリソース値を、エンティティの識別情報と共に受け取る。さらにまた、プロセッサ９９３は、処理命令を実行し、本明細書に記載のネットワークグラフの一部または全部を生成し、目標エンティティを選択し、そのネットワークグラフの一部または全部の目標エンティティの内向き差分及び外向き差分を計算し、不一致を検出する。プロセッサ９９３は、ネットワークグラフの一部または全部と関連データとを、隣接行列として、可能性としては圧縮されたスパース行ベクトル（ｃｏｍｐｒｅｓｓｅｄ  ｓｐａｒｓｅ  ｒｏｗ  ｖｅｃｔｏｒ）として、接続された記憶ユニットに格納し、及び／又はそのグラフ／データをネットワークＩ／Ｆ９９７を介して他のデバイスに送信してもよい。
【００６２】
本発明を具体化する方法は、図２に示したような計算デバイスで実行されてもよい。かかる計算デバイスは、図２に示したすべてのコンポーネントを有する必要はなく、それらのコンポーネントの一部により構成されてもよい。本発明を実施する方法は、ネットワークを介して一以上のデータ記憶サーバと通信する１つの計算デバイスにより実行されてもよい。計算デバイスは、それ自体、インカミングリソースフローとアウトゴーイングリソースフロー、及び計算した場合には、不一致と伝搬リスク（ｐｒｏｐａｇａｔｅｄ  ｒｉｓｋｓ）で注釈されたネットワークグラフを格納する。
【００６３】
本発明を具現化する方法は、互いに協働する複数の計算デバイスにより実行されてもよい。複数の計算デバイスのうちの一以上は、ネットワークグラフの少なくとも一部を記憶するデータストレージサーバであってもよい。ネットワークグラフ全体は複数のサブグラフから構成されていてもよい。ネットワークグラフ全体が様々なサーバに分散される場合、各サーバはそれに割り当てられたグラフの部分（ｆｒａｇｍｅｎｔ）に並列に、ネットワークを処理できる。計算は、実際上、（頂点プログラミングとしても知られる）頂点ローカル処理である。巨大並列アーキテクチャの場合、すべての頂点は並列に処理を開始できる。あるいは、複数の頂点は、順次的に処理できるだけである。この場合、システムは、どの頂点が目標頂点として最初に処理されるべきか決定する必要がある。他の頂点の処理優先度は低くてもよく、後で処理されてもよい（またはまったく処理されなくてもよい）。
【００６４】
以下、実行例を用いて発明の実施形態の詳細を技術的に説明する。しかし、これは提案の方法の適用性の限定と解してはならない。一般的に、本方法は、エンティティ間の接続を定量化できる場合、どんなリソースフローシナリオにも適用できる。
【００６５】
＜実行例＞
不正行動（すなわち、不正／漏洩などのリスクが高いいことを示す行動）は、通常の取引行動に埋め込まれている。このセクションでは、通常のサプライチェーンを一例として用いる。企業のリストＣ＝｛ｃ０，・・・，ｃｉ，ｃｊ，・・・ｃｎ｝があり、その企業間で頻繁に取引されていると仮定する。不正行動は、供給者からのデータが受領者からのデータとマッチしない時に現れる。例えば、行われていない作業に対する支払いがされたり、二重支払いがされたり、ゴーストエンティティに対して支払いがされたりすることがある。かかるミスマッチ（ｍｉｓｍａｔｃｈｅｓ）の結果として脱税が発生することがある。しかし、発明者が気づいたこととして、ＡからのデータをＢからのデータとチェックする単純な方法は、より複雑な不一致を検出するには十分ではない。
【００６６】
下記の表１は、税務当局に報告する財務データの形式で、エンティティＡとＢとの間のリソース値を示す。
【表１】
2018018512.tif 000003
【００６７】
ＡはＢに対する財またはサービスに対する１５Ｋユーロの支払いと、Ｂとの取引による１２Ｋユーロの売上とをレポートしている。この売上は正味売上（ｎｅｔ  ｒｅｖｅｎｕｅ）ではなく、単なるキャッシュフローである。第１行について、Ｂは入力パーティであると考えられ、その数字は、ＢがＡと取引した時に、２０Ｋユーロの支払いと１５ｋユーロの売上とを報告した第２行から借りたものである。これはすでに数字のミスマッチをハイライトし、少なくとも一方の会社が誤報していることを示唆している。
【００６８】
ＡとＢ及びその他の幾つかのエンティティに対応する頂点を含むグラフは、図３に示した通りであり得る。
【００６９】
エッジにプロパティ（ｐｒｏｐｅｒｔｉｅｓ）を有すること及び／又は有向グラフとなり、グラフ処理の複雑性が増すことを避けるために、収入及びコストの数字は頂点の属性として定義される。読み出しの高速化のため、これはキー値ペア（ｋｅｙ−ｖａｌｕｅ  ｐａｉｒｓ）として定義される。ここで、キーは隣接する頂点であり、値は収入及びコストの数字のペアである。上図において、Ａ−Ｂ−ＣとＡ−Ｄ−Ｅは隣接三角形（ｎｅｉｇｈｂｏｕｒｈｏｏｄ  ｔｒｉａｎｇｌｅｓ）であり、Ａが目標頂点として、より早く調査されなければならないことを示唆する。
【００７０】
提案のソリューションのアーキテクチャ的基礎を図４に示す。ここで、生データを用いて、ネットワークグラフを生成するネットワーク構成モジュールにおけるネットワーク構成し、及び不一致を検出し、また、図の右側に示した行列フォーマットを提供する分析モジュールにおける分析する。これらのモジュールは、サーバ０・・・ｉ・・・ｎにより提供されても、別の（１つまたは複数の）プロセッサに設けられてもよい。グラフ／ネットワークは、ＣＳＲ（ｃｏｍｐｒｅｓｓｅｄ  ｓｐａｒｓｅ  ｒｏｗ）フォーマットに変換され、都合の良い任意の配信メカニズムによりサーバ０・・・ｉ・・・ｎに格納される。
【００７１】
このように、生データに基づき、関与する様々なエンティティ間のフロー（この例ではお金）を捕捉する供給ネットワークが構成される。空間効率が高いデータ構造が選択され、分散データ記憶を容易にするが、計算効率が大幅に低下することはない。分析モジュールは、「構造化された」データから疑わしいパターンを明らかにして抽出するグラフベースのアルゴリズムを用いる。
【００７２】
サプライヤー／コンシューマリンクのセットは、実際に、取引関係のネットワークを形成する。グラフベースアルゴリズムを用いて、不一致をチェックすることにより、取引上のつながりをスクリーニングすることができる。目標にするハイリスク企業を予測するとき、グラフベースの方法を本明細書に説明するように用いることもできる。
【００７３】
この実施形態のソリューションは次を含む：
１．  広範な並列プログラミング環境をレバレッジして、サプライチェーンにおける既存の不正事例（ｆｒａｕｄ  ｃａｓｅｓ）を調べる方法。
２．  ハイリスクエンティティの潜在的不正行為を計算する方法。
＜サプライチェーンネットワークの構成＞
サプライチェーンネットワークが、属性付き無向グラフとして構成される。かかるグラフは次のように定義される：
Ｇ＝〈Ｖ，Ｅ〉、ここでＶは頂点の集合であり、Ｅは（ｖｉ，ｖｊ），ｖｉ，ｖｊ∈Ｖのエッジの集合である。γは、頂点を属性の集合にマッピングする関数γ：Ｖ→Ａである。属性を用いて頂点にプロパティ（ｐｒｏｐｅｒｔｉｅｓ）を記録できる。例えば、属性を用いて、頂点がどれだけの影響を隣接頂点から受けるか、及び／又は隣接頂点に及ぼすか示すことができる。ここで、属性はインカミング及びアウトゴーイングリソースフローを表す。端の頂点にエッジ指向の値（ｅｄｇｅ−ｏｒｉｅｎｔｅｄ  ｖａｌｕｅ）を置く利点は、幾つかのアルゴリズムでは有向グラフよりコストがかからないグラフが無向グラフに単純化できる点にある。
【００７４】
サプライチェーンネットワークは次のように構成できる：
１．  各エンティティ／企業（例えば、税務署に登録されたもの、企業社会的責任組織により監視されているもの、又は公共事業企業に登録されたもの）に対して、情報を記録する頂点が生成される。
２．  ２つのエンティティ間の取引関係は、対応する頂点間のエッジを確定する。
３．  各頂点ｖにおいて、各エッジに対して属性のペアが宣言され、ｖに接続された隣接頂点のインカミング及びアウトゴーイングする影響値を記録する。
【００７５】
また、属性値は、与えられた時間ウィンドウにより調整され得る。この場合、属性は、時間の関数として、〈ｖｉ，ｖｊ〉：ｆ（ｔ）及び〈ｖｊ，ｖｉ〉：ｇ（ｔ）のようにエッジでインデックスされ得る。
【００７６】
各属性に記録された複数の値があってもよい。例えば、値は、累積的なリソースフロー、及び過去からの不一致の値を反映し得る。また、ある期間にわたる調整された不一致の値であってもよい。例えば、２つのエンティティ間のつながりを、ある会計年度について、または他の調査の時間フレーム内で、調査することができる。ツリー（デジタルツリーまたは接頭ツリー（ｐｒｅｆｉｘ  ｔｒｅｅ））ベースのインデックスを用いて、時間セグメントの範囲に基づいて、データシリーズデータ及び高速読み出しデータを分割（ｆｒａｇｍｅｎｔ）することができる。
【００７７】
グラフ／ネットワークを構成するとき、幾つかの特定ドメイン制約を適用してもよい。例えば、サプライチェーンのスナップショットグラフ／ネットワークを構成するとき、終了した（ｃｌｏｓｅｄ）取引／購入のみを用いて、まだ行われていないトランザクションによる偶発的な不一致を回避することができる。仮定は、税金がそれらの終了した取引にのみ適用されるということである。
＜データ構造及び記憶＞
グラフ／ネットワークの典型的な記憶データ構造は隣接行列である。それで得られるネットワークはスパース（ｓｐａｒｓｅ）であり、冗長性が大きく、ディスク利用が非効率である。ＣＳＲ（ｃｏｍｐｒｅｓｓｅｄ  ｓｐａｒｓｅ  ｒｏｗ）アプローチはディスク使用量を低減するように適用されている。
【００７８】
全体的データサイズが一つのデータサーバの容量を超える場合、ＣＳＲベクトルは複数のサーバに均等に配分される。列インデックスアレイ（ｃｏｌｕｍｎーｉｎｄｉｃｅｓ  ａｒｒａｙ）は行オフセット（ｒｏｗ−ｏｆｆｓｅｔｓ）に基づき分割（ｂｒｏｋｅｎ）され、１つの隣接リストが異なるマシンに格納されないようにする。これにより、レベル同期幅優先検索（ｌｅｖｅｌ−ｓｙｎｃｈｒｏｎｉｓｅｄ  ｂｒｅａｄｔｈ  ｆｉｒｓｔ  ｓｅａｒｃｈ）におけるネットワーク通信オーバーヘッドが低減される。
＜不一致の発見＞
重要な目的は、インカミング及びアウトゴーイングエッジ間の累積的な不一致を発見することである。グラフの、接続されたコンポーネントについて、全体的な内向き及び外向き影響ファクタをバランスすべきことが期待される。バランスされていないコンポーネントは、リスクが高いケースを意味する。累積値は次のように簡単に計算される：Ｏｔが外向き影響値（ｏｕｔｗａｒｄｓ  ｉｎｆｌｕｅｎｃｅ  ｖａｌｕｅ）の合計値（例えば、企業により報告された総売上または引当金）を示し、Ｏ〈ｉ，ｊ〉がエッジ〈ｉ，ｊ〉に沿った外向き値を示し、ＩｔとＩ〈ｉ，ｊ〉が内向き値を示すとする。
１．  頂点ｖのすべての１ホップ隣接頂点（ｎｅｉｇｈｂｏｕｒｓ）を計算する。
２．  ｖの隣接頂点Ｎに対して、
【数１】
2018018512.tif 000004
を計算する。
基本的に、外向き値と、隣接内向き値の合計との差分が計算される。
不一致、すなわちΔｏｕｔ≠０は、財務報告における間違いを示す。
３．  この結果は、内向き差分と相互参照される。内向き差分は
【数２】
2018018512.tif 000005
として計算される。
【００７９】
頂点の隣接頂点は、対応するローカルＣＳＲベクトルから簡単に読み出しできる。
＜並列処理＞
各サーバにおいて、並列処理を実行し、例えば、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の固有マルチスレッド容量をレバレッジする。各頂点は、並列性を最大化するため、１つのＧＰＵスレッドに割り当てられる。第１に、１ホップ隣接両店のみを読み出す必要がある。上記の通り１つの頂点を専用スレッドに割り当てることが可能であり、冗長性や通信オーバーヘッドは過大にならない。第２に、可能性として多数のスレッドが１つのＧＰＵ上で実行できる（例えば、ＧｅＦｏｒｃｅ  ＧＴＸ４８０  ＧＰＵ上では２３０００ＣＵＤＡスレッドを実行できる）が、非常に多数の頂点とは、もっと多いことがある。最初の目標頂点のセットを選択するストラテジが必要であり、すべての頂点を完全に処理することは必ずしも必要ない。ＧＰＵベースの並列化により、問題自体に幾つかの制約が課され、サプライチェーンネットワークベースの不正検出（ｆｒａｕｄ  ｄｅｔｅｃｔｉｏｎ）が特に適切になる。
【００８０】
各頂点について、そのＣＳＲベクトルはＶＣＳＲとして読み出され、各ｖｉ∈ＶＣＳＲについて、ρ（ｖｉ）→ｓｊにより頂点のサーバが得られる。各サーバは完全な隣接リストを保持し、対応する隣接頂点を保持するすべてのサーバにブロードキャストする。メッセージを受け取ると、ｓｊは対応する値を送り返し、そのサーバにローカルに保持されたｖｉの状態を交信する。
＜目標頂点の選択＞
すべての頂点に対してΔｏｕｔとΔｉｎとを計算することは、大きなネットワークの場合、非効率である。次の経験則を適用して、最初の、疑わしい頂点のグループを選択できる。
【００８１】
仮定として、頂点の隣接頂点の特徴は、ネットワーク全体から学習できるパワー則（ｐｏｗｅｒ  ｌａｗ）に従わなければならない。次の特徴のうちいずれか、またはその組み合わせを用いて、ハイリスクな頂点を検出できる。
１．  隣接頂点（ｎｅｉｇｈｂｏｕｒｓ）の数（頂点度）対隣接頂点を含む三角形の数
【数３】
2018018512.tif 000006
仮定として、頂点の多数の隣接頂点が三角形パターンを示すとき、その頂点はハイリスク頂点であることが大いにあり得るとする。図５は、三角形を有するサブグラフの例を示す。隣接頂点ｂ、ｃは、ａと三角形を構成するが、ｅ、ｆ、ｄ、ａは三角形を構成しない。グラフ中の三角形は、不正検出のための重要なヒューリステッィク（ｈｅｕｒｉｓｔｉｃｓ）として用いられることが多い。
２．  隣接頂点の数（頂点度）対隣接頂点中のリーフ頂点（頂点度１のノード）の数
【数４】
2018018512.tif 000007
仮定として、誰かの取引パートナーの多くが、一回だけのパートナーであるか、又は１パートナー取引業者である場合、ハイリスクを表す。
３．  隣接頂点数（頂点度）対全体的取引値／キャッシュフロー（外向き値と内向き値の合計）
仮定として、取引値が、パワー則分布に基づいて計算される「通常の」取引量と比較して不釣り合いに大きいとき、ハイリスクであることを示唆する。
【００８２】
上記は、レバレッジできる経験則の例である。パワー則分布からの明らかな変異が特定されたら、他のグラフ指向の方法を適用することもできる。一般的に、他のパワー則ベースの特徴は、全体（ｅｎｔｉｒｅ  ｐｏｐｕｌａｔｉｏｎ）に基づいて学習することができる。
＜悪い行為の伝搬＞
１つの頂点で検出された不一致が、サプライチェーンの上流における不正行為の結果であり、インバランスの真の原因が、外見的には適法の財務数字で隠されていることがある。これは不一致伝搬（ｄｉｓｃｒｅｐａｎｃｉｅｓ  ｐｒｏｐａｇａｔｉｏｎ）により発見できる。
【００８３】
不一致の計算から、各頂点はローカルリスク／不一致の値でラベルされる。加重ページランク（ＰａｇｅＲａｎｋ）アルゴリズムを用いて、ローカルリスク値を、規格化された外向き／内向き値又は規格化された集計値（頂点間の全体的なつながりを示すもの）を有するエッジに沿った隣接頂点に、ローカルリスク値をフラッディング（ｆｌｏｏｄ）することもできる。「フラッディング（ｆｌｏｏｄｉｎｇ）」との用語は、ローカルな頂点の影響をグラフエッジに沿って、直接的及び間接的な隣接頂点（ｎｅｉｇｈｂｏｕｒｓ）に、カスケード（ｃａｓｃａｄｉｎｇ）することを意味する。ページランク（ＰａｇｅＲａｎｋ）はある種のフラッディング方法である。要するに、各頂点はリスク値で初期化され、リスク値はこのフラッディング方法を用いて微調整される。
【００８４】
アルゴリズムが収束するとき、各頂点における集計／伝搬リスク値は、ローカルな頂点に課される不正行為の重要性を反映する。
【００８５】
このプロセスをより詳細に考慮して、各頂点に、規格化（キャッシュ）フロー不一致として、初期リスク値が割り当てられる。この値は、
（外１）
2018018512.tif 000008
として規格化でき、負値を回避できる。この初期リスク値は、頂点の初期状態として考えられる。すべてのエッジはエッジ加重ｗに関連している。エッジ加重は、元のページランクアルゴリズムを一般化するために導入される。ここで、エッジ加重は、ユーザによって、あるタイプのキャッシュフローに割り当てできる（例えば、ある時間ウィンドウ中のキャッシュフロー、又は２つのタイプのエンティティ間のキャッシュフロー、エンティティタイプはユーザにより確定され、頂点属性として記録できる）。
【００８６】
次に、システムは、初期状態とエッジ加重とを用いて、頂点のすべての隣接頂点（ｎｅｉｇｈｂｏｕｒｓ）を繰り返し更新する。図５のサブグラフにおいて、頂点「ａ」は初期値ｘａを有すると仮定する。これを使用し、関数
（外２）
2018018512.tif 000009
を用いて、頂点「ｃ」を更新することができる。この繰り返しプロセスは、グラフ全体が収束するまで、すなわち
（外３）
2018018512.tif 000010
となるまで続く。ここで、αは所定の閾値であり、Δは現在値と前の繰り返しの値との間の差分である。または、繰り返し回数ｉが所定の限度に達するまで、すなわち
（外４）
2018018512.tif 000011
となるまで続く。かかる加重ページランクプロセスを実行する既存のソフトウェアツールがある。
【００８７】
出力は、フラッディング／繰り返しが終了した時に更新された頂点リスク値である。これは、キー値が頂点ＩＤであり、値がリファインされたリスク値である、キー値ペアのリストであってもよい。
【００８８】
図６は、不一致値の伝搬を示すフローチャートである。ステップＳ５０において、初期リスク値は不一致に基づく。ステップＳ６０において、リスクは、例えば、加重ページランクを用いて伝搬される。ステップＳ７０において、各繰り返しにおけるステップ変化が変換閾値以下かチェックする。以下でなければ、伝搬を継続する。ステップ変化が閾値以下であれば、プロセスは終了しており、ステップＳ８０において、終了し最終値を出力する。
【００８９】
既知の伝搬リスク値は、伝搬集束時に取得されるが、新子データが追加され、さらに分析が必要である場合、これを用いて、他のグラフベースの規則と組み合わせて、ハイリスクエンティティを特定することができる。以下により詳しく説明する。
＜新しいエンティティの追加＞
今までは、ネットワークグラフは一から構成された。このセクションは、例えば、新しい企業が税務署に登録された時の、グラフへの新しい挿入を扱う。これはユーザ入力によりトリガーされ得る。
【００９０】
２つの更新シナリオが想定される：
１．  ２つのデータセットの照合。この場合、両方の頂点セットが完全であり、独自に意味を成すものと仮定する。この場合、目標は、グラフに加わる各データセットから見かけ上同様な頂点を整合／照合することである。整合（ａｌｉｇｎｍｅｎｔ）とマージ（ｍｅｒｇｅ）を行うと、伝搬（ｐｒｏｐａｇａｔｉｏｎ）を実行できる。整合された頂点は橋渡し頂点（ｂｒｉｄｇｉｎｇ  ｖｅｒｔｉｃｅｓ）となり、マージされた複数の部分において伝搬を実行できるようにする。これについては後でより詳しく説明する。
２．  既存のデータセットへの新しいレポートの追加。ここでは、頂点の識別情報（ｖｅｒｔｅｘ  ｉｄｅｎｔｉｆｙ）は既知であると仮定する。これにより、実際、エッジ上のフローが簡単に更新される。
【００９１】
既存のネットワークに新しく追加されたサブグラフ（ｓｕｂｇｒａｐｈ）中の頂点は、既存の頂点とオーバーラップ（し、同一の又は密接に関係するエンティティを表す）するか、又はオーバーラップしない。前者の場合、オーバーラップしている頂点は、既存のネットワークと照合（ｒｅｃｏｎｃｉｌｅｄ）される必要がある。同時に、オーバーラップしていない頂点を処理（例えば、不一致計算）できる。２つのデータセット間の境界頂点（ｂｏｕｎｄａｒｙ  ｖｅｒｔｉｃｅｓ）は、オーバーラップしている頂点と照合されてもよい。
【００９２】
オーバーラップしていない頂点を処理する場合、システムは、かかる処理が、オーバーラップしている／境界上の頂点（の値の変化）に影響するか考慮し、記録する。性能改善のため、新しく追加される部分をマージした後に、変更／影響されるもののみを再処理する。
【００９３】
新しいサブネットワーク又は更新されたサブネットワークでのネットワークの更新は、異なる２つの場合に行われる。サブネットワークが既存のエンティティと整合され得る場合、完全なネットワーク再処理を行う必要があるかも知れない。
【００９４】
そうでなければ、実質的に独立なグラフである新しく変更されたサブネットワークに、処理を限定してもよい。
【００９５】
整合（ａｌｉｇｎｍｅｎｔ）が可能である場合、再処理は２段階で行い得る：
１）  サブネットワークにおける処理を境界までに制限する。
サブネットワークは通常、サイズが小さい。複数のサブネットワークがあるとき、すべてのサブネットワークを同時に並行処理する。
２）  変更された境界エンティティからの並列処理
このように、このプロセスは一般に、２つのステップを含む。すなわち、整合と、直接影響される値／エンティティとが再処理されるオンライン処理；及び変更された値が他の潜在的に影響を受けるエンティティ／部分に広く伝搬されるオフライン処理を含む。
【００９６】
第１のステップでは、境界エンティティまで、整合とローカルの更新が実行される。第２のステップでは、第１のステップで状態が更新されたエンティティがあれば、かかる変更は、グラフ／ネットワークの他の部分に変更されなければならない。この場合、完全なネットワーク再処理を実行する必要がある。かかる再処理は、システムリソースが許せば実行され得る。
【００９７】
図７は、一以上の新しいエンティティのネットワークグラフへの追加を示すフローチャートである。最初に、ステップＳ９０において、新しいエンティティが既存のネットワークとマッチング（ｍａｔｃｈｅｄ）される。ステップＳ１００において既存のエンティティ（オーバーラップ）又は既存のエンティティとの関係が発見されれば、グラフ整合ステップＳ１１０を行い、マッチするエンティティを特定する。
【００９８】
ステップＳ１２０とＳ１３０は、上記の２つの段階１）と２）に説明した通りであり、境界までのローカルの更新のため、又はリソースが許せば、あるいは必要であれば、より大きなスケールの更新のためである。結果はステップＳ１４０における出力である。既存のエンティティがなければ、又は既存のエンティティとの関係がなければ、新しいエンティティはステップＳ１５０において独立のグラフとして扱われる。
【００９９】
図８は、（少数の頂点のみを示した）古いネットワークと、（同様に一部のみ示した）新しいネットワークとの間の照合（ｒｅｃｏｎｃｉｌｉａｔｉｏｎ）の一例を示す。右側の４つの頂点は新しく追加されたものであり、左側のものは既存のものである。外側の楕円はオーバーラップする頂点を示し、内側の楕円は古いネットワークと新しいネットワークの同じエンティティ間の照合マッピング（ｒｅｃｏｎｃｉｌｉａｔｉｏｎ  ｍａｐｐｉｎｇｓ）を示す。
【０１００】
更新により完全なネットワーク再計算がトリガーされる場合、同じリスク計算及びハイリスク頂点選択手順を用いて、新しく追加された部分も考慮することができる。
＜利点＞
発明の実施形態における提案したアプローチの幾つかの利点は、次の態様から分かる。
１．  高度な並列アプローチにより、利用可能な計算リソースを十分に活用できる。提案のアプローチは容易にスケールアップでき、システム性能を改善できる。
２．  伝搬モデルにより、不正の検出と、関連する企業にどういう影響があり、不正行為に巻き込まれるか明らかにすることができる。
【０１０１】
次の付記を記す。
（付記１）  目標エンティティと、前記目標エンティティがリソースを交換するエンティティとの間のリソースのインカミングフロー及びアウトゴーイングフローの間のミスマッチから生じる不一致を検出する、コンピュータにより実施される方法であって、
各エンティティのインカミング及びアウトゴーイングリソース値に関するデータを受け取るステップと、
受け取ったデータを用いて、エンティティ間の関係を表すネットワークグラフを生成するステップであって、各エンティティはネットワークグラフの頂点として表され、各関係はエッジとして表され、各エンティティのインカミング及びアウトゴーイング値はそのエンティティにおける各関係の属性ペアとして表される、ステップと、
目標頂点を選択するステップと、
各目標頂点について、
目標頂点におけるアウトゴーイング値の合計と、隣接頂点における目標頂点からのインカミングリソース値の合計との間の外向き差分を計算し、外向き差分がゼロでなければ、リソースフローの不一致を検出するステップ、及び／又は
目標頂点におけるアウトゴーイング値の合計と、隣接頂点における目標頂点へのアウトゴーイング値の合計との間の内向き差分を計算し、内向き差分がゼロでなければ、リソースフローの不一致を検出するステップを有する、
方法。
（付記２）  目標頂点の選択は、数値的エクスポージャを用いて行われ、数値的エクスポージャが閾値を越えているとき、目標頂点を示す、付記１に記載の方法。
（付記３）  数値的エクスポージャは頂点の接続に基づき、好ましくは、リーフ頂点である隣接頂点のレベルに基づき、又はネットワークグラフ中の頂点を含む三角形のレベルに基づく、
付記１または２に記載の方法。
（付記４）  数値的エクスポージャは、隣接頂点の数と比較したインカミング及び／又はアウトゴーイングリソースのレベルに基づく、
付記１ないし３いずれか一項に記載の方法。
（付記５）  数値的エクスポージャは、頂点の隣接頂点を含む三角形の数の、頂点の隣接頂点の総数に対する比率に応じて決定される、付記１ないし４いずれか一項に記載の方法。
（付記６）  数値的エクスポージャは、ネットワークグラフ中のリーフ頂点である頂点の隣接頂点の、頂点の隣接頂点の総数に対する比率に応じて決定される、付記１ないし５いずれか一項に記載の方法。
（付記７）  数値的エクスポージャは、インカミング値及び／又はアウトゴーイング値の合計の、頂点の隣接頂点の総数に対する比率に応じて決定される、付記１ないし６いずれか一項に記載の方法。
（付記８）  リソースのインカミング及びアウトゴーイングフローに基づいて各目標頂点のローカルリスクを規格化するステップと、
隣接頂点のローカルリスク値を用いて、各頂点のローカルリスクを繰り返し更新して、各目標頂点の伝搬されたリスク値を提供するステップと、
ネットワークグラフが所定の収束閾値に収束するとき、及び／又は繰り返し回数が所定繰り返し閾値を越えるとき、繰り返して更新するステップを停止するステップとを含み、
伝搬されるリスク値は、不一致の検出として用いられる、
付記１ないし７いずれか一項に記載の方法。
（付記９）  各目標頂点と、頂点の隣接頂点との間のエッジを加重して、伝搬において加重を用いる、
付記８に記載の方法。
（付記１０）  ネットワークグラフに新しい頂点として新しいエンティティを追加するステップをさらに含み、
新しい頂点が元の頂点とオーバーラップしない場合、独立したネットワークグラフが新しい頂点間の関係を表す、
付記１ないし９いずれか一項に記載の方法。
（付記１１）  ネットワークグラフに新しい頂点として新しいエンティティを追加するステップをさらに含み、
新しい頂点が元の頂点とオーバーラップしない場合、新しい頂点と、新しい頂点の隣接頂点との間の不一致を計算し、
新しい頂点が元の頂点とオーバーラップする場合、新しい頂点と元の頂点とを照合し、元の頂点に新しいエッジを追加することにより、照合された頂点を形成し、不一致を計算し、
新しい頂点のサブネットワークグラフを、ネットワークグラフの補正部分として生成する、
付記１ないし１０いずれか一項に記載の方法。
（付記１２）  ネットワークグラフが生成されたとき、一以上のサーバ上のネットワークグラフの隣接行列を取得し、隣接行列を圧縮して、圧縮されたスパース行ベクトルを提供するステップと、
圧縮されたスパース行ベクトルを、一以上のサーバ上の隣接行列として格納するステップとをさらに含み、
一以上のサーバが、目標エンティティを選択するため、圧縮されたスパース行ベクトルにアクセスし、不一致を計算する、
付記１ないし１１いずれか一項に記載の方法。
（付記１３）  リソースは物理的または財務的なものであり、不一致は金銭的不正を示す、
付記１ないし１２いずれか一項に記載の方法。
（付記１４）  コンピュータで実行されたとき、目標エンティティと、前記目標エンティティがリソースを交換するエンティティとの間のリソースのインカミングフロー及びアウトゴーイングフローの間のミスマッチから生じる不一致を検出する方法を、コンピュータに実行させるプログラムであって、方法は、
各エンティティのインカミング及びアウトゴーイングリソース値に関するデータを受け取るステップと、
受け取ったデータを用いて、エンティティ間の関係を表すネットワークグラフを生成するステップであって、各エンティティはネットワークグラフの頂点として表され、各関係はエッジとして表され、各エンティティのインカミング及びアウトゴーイング値はそのエンティティにおける各関係の属性ペアとして表される、ステップと、
生成されたネットワークグラフ中の頂点の特徴を用いて目標頂点を選択するステップと、
各目標頂点について、
目標頂点におけるアウトゴーイング値と、隣接頂点における目標頂点からのインカミングリソース値の合計との間の外向き差分を計算し、内向き差分がゼロでなければ、リソースフローの不一致を検出するステップと、及び／又は
目標頂点におけるアウトゴーイング値と、隣接頂点から目標頂点へのアウトゴーイング値の合計との間の内向き差分を計算し、内向き差分がゼロでなければ、リソースフローの不一致を検出するステップ、を有する、
プログラム。
（付記１５）  目標エンティティと、前記目標エンティティがリソースを交換するエンティティとの間のリソースのインカミングフロー及びアウトゴーイングフローの間のミスマッチから生じる不一致を検出するコンピュータ装置であって、
各エンティティのインカミング及びアウトゴーイングリソース値に関するデータを受け取るインターフェースと、
プロセッサであって、
受け取ったデータを用いて、エンティティ間の関係を表すネットワークグラフを生成し、各エンティティはネットワークグラフの頂点として表され、各関係はエッジとして表され、各エンティティのインカミング及びアウトゴーイング値はそのエンティティにおける各関係の属性ペアとして表され、
生成されたネットワークグラフ中の頂点の特徴を用いて目標頂点を選択し、
各目標頂点について、
目標頂点におけるアウトゴーイング値と、隣接頂点における目標頂点からのインカミングリソース値の合計との間の外向き差分を計算し、内向き差分がゼロでなければ、リソースフローの不一致を検出し、及び／又は
目標頂点におけるアウトゴーイング値と、隣接エンティティから目標頂点へのアウトゴーイング値の合計との間の内向き差分を計算し、内向き差分がゼロでなければ、リソースフローの不一致を検出する、プロセッサと、
不一致に関する情報を提示するユーザ出力とを有する、
コンピュータ装置。
【図１】
2018018512.tif 000012
【図２】
2018018512.tif 000013
【図３】
2018018512.tif 000014
【図４】
2018018512.tif 000015
【図５】
2018018512.tif 000016
【図６】
2018018512.tif 000017
【図７】
2018018512.tif 000018
【図８】
2018018512.tif 000019