(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-08-01
(54)【発明の名称】トランザクションデータ処理のためのニューラルネットワークアーキテクチャ
(51)【国際特許分類】
G06N 3/0442 20230101AFI20230725BHJP
【FI】
G06N3/0442
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023501395
(86)(22)【出願日】2021-05-24
(85)【翻訳文提出日】2023-03-03
(86)【国際出願番号】 EP2021063766
(87)【国際公開番号】W WO2022008130
(87)【国際公開日】2022-01-13
(32)【優先日】2020-07-09
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】523008082
【氏名又は名称】フィーチャースペース・リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ケニー・ウォン
(72)【発明者】
【氏名】カクペル・キーラク
(72)【発明者】
【氏名】マルコ・バルサッチ
(72)【発明者】
【氏名】デイヴィッド・サットン
(72)【発明者】
【氏名】ジェイソン・ウォン
(57)【要約】
トランザクションに関連するデータを処理するための例示的な機械学習システムが説明される。機械学習システムは、再帰型ニューラルネットワークアーキテクチャを伴う第1の処理ステージを有する。再帰型ニューラルネットワークアーキテクチャは、提案されたトランザクションと事前トランザクションとの間の時間差を表すデータに基づいて以前の反復に対する状態データを修正するための忘却ゲートを有する。機械学習システムはまた、第1の処理ステージに通信可能に結合されたアテンションニューラルネットワークアーキテクチャを伴う第2の処理ステージを有する。機械学習システムは、第2の処理ステージからの出力データを、アクションのシーケンス内の異常を提案されたトランザクションが提示する尤度を表すスカラー値にマッピングするように構成される。スカラー値は、提案されたトランザクションを承認すべきかそれとも拒絶すべきかを決定するために使用される。
【特許請求の範囲】
【請求項1】
トランザクションに関連するデータを処理するための機械学習システムであって、
再帰型ニューラルネットワークアーキテクチャを備える第1の処理ステージであって、前記再帰型ニューラルネットワークアーキテクチャが、提案されたトランザクションと事前トランザクションとの間の時間差を表すデータに基づいて以前の反復に対する状態データを修正するための忘却ゲートを備え、前記再帰型ニューラルネットワークアーキテクチャが、前記修正された状態データおよび前記提案されたトランザクションのためのデータを使用して出力データを生成する、第1の処理ステージと、
前記第1の処理ステージに通信可能に結合されたアテンションニューラルネットワークアーキテクチャを備える第2の処理ステージであって、前記アテンションニューラルネットワークアーキテクチャが、入力特徴テンソルにアテンション重みを適用して出力データを生成するためのニューラルネットワーク層を備え、前記入力特徴テンソルが、少なくとも、時間差を表す前記データおよび前記第1の処理ステージからの履歴出力データから生成され、前記アテンション重みが、前記入力特徴テンソル、および前記第1の処理ステージからの現在の出力データに基づいて計算される、第2の処理ステージとを備え、
前記機械学習システムが、前記第2の処理ステージからの前記出力データを、アクションのシーケンス内の異常を前記提案されたトランザクションが提示する尤度を表すスカラー値にマッピングするように構成され、
前記スカラー値が、前記提案されたトランザクションを承認すべきかそれとも拒絶すべきかを決定するために使用される、
機械学習システム。
【請求項2】
前記再帰型ニューラルネットワークアーキテクチャが、
少なくとも、前記提案されたトランザクションと前記事前トランザクションとの間の時間差を表す前記データを出力するために使用可能なデータを受信するための、時間差インターフェースと、
少なくとも、前記提案されたトランザクションのためのデータを受信するための、トランザクションデータ入力インターフェースと、
前記以前の反復に対する前記状態データを受信するための状態入力インターフェースであって、前記状態データが、前記事前トランザクションを含む以前のトランザクションのセットのためのデータへの、前記再帰型ニューラルネットワークアーキテクチャの以前の適用を介して生成される、状態入力インターフェースと、
前記修正された状態データと前記提案されたトランザクションのためのデータとを組み合わせて前記出力データを生成するための組合せ論理であって、前記出力データが、現在の反復に対する状態データを備える、組合せ論理とを備える、
請求項1に記載の機械学習システム。
【請求項3】
前記アテンションニューラルネットワークアーキテクチャが、
少なくとも、時間差、および前記提案されたトランザクションと1つまたは複数のさらなる事前トランザクションとの間の1つまたは複数の時間差を表す前記データを備える、時間差データを受信するための、時間差インターフェースと、
前記第1の処理ステージから履歴出力データを受信するための、履歴入力インターフェースと、
前記第1の処理ステージから現在の出力データを受信するための、現在入力インターフェースとを備える、
請求項1または2に記載の機械学習システム。
【請求項4】
前記アテンションニューラルネットワークアーキテクチャが、
前記時間差インターフェースおよび前記履歴入力インターフェースから導出されるデータを組み合わせて前記入力特徴テンソルを生成するための、組合せ論理と、
前記現在入力インターフェースにおいて受信される前記データから少なくとも1つのアテンション照会ベクトルを計算するための、少なくとも1つのニューラルネットワーク層と、
前記入力特徴テンソルから少なくとも1つのアテンション鍵ベクトルを計算するための、少なくとも1つのニューラルネットワーク層と、
前記入力特徴テンソルから少なくとも1つのアテンション値ベクトルを計算するための、少なくとも1つのニューラルネットワーク層とを備える、
請求項3に記載の機械学習システム。
【請求項5】
前記アテンションニューラルネットワークアーキテクチャが、
前記時間差データにパラメータ化関数を適用するための少なくとも1つの時間符号化層を備え、
前記少なくとも1つの時間符号化層の出力が、前記少なくとも1つのアテンション鍵ベクトルおよび前記少なくとも1つのアテンション照会ベクトルと一緒に前記アテンション重みを生成するために使用される、
請求項4に記載の機械学習システム。
【請求項6】
前記忘却ゲートが、アクティブ化ベクトルを出力するために時間差を表す前記データに適用されるパラメータ化指数関数を実施する時間差符号化を備え、前記アクティブ化ベクトルが、要素ごとの乗算を通して前記状態データを修正する、請求項1から5のいずれか一項に記載の機械学習システム。
【請求項7】
前記パラメータ化指数関数のパラメータが、異なる時間減衰期間を表すように固定される、請求項6に記載の機械学習システム。
【請求項8】
前記アテンションニューラルネットワークアーキテクチャが、
前記提案されたトランザクションと事前トランザクションのセットの各々との間で異なる時間を表す時間差データを符号化するための時間符号化層を備え、
前記アテンション重みの計算用の値入力データを計算する際の使用のために、前記時間符号化層の出力が前記第1の処理ステージからの前記履歴出力データと組み合わせられる、
請求項1から7のいずれか一項に記載の機械学習システム。
【請求項9】
前記第2の処理ステージが、多重ヘッド型自己アテンションメカニズムを形成する複数のアテンションニューラルネットワークアーキテクチャを備え、前記アテンションニューラルネットワークアーキテクチャが並行して適用され、前記第2の処理ステージのための出力データを生成するために前記出力が組み合わせられる、請求項1から8のいずれか一項に記載の機械学習システム。
【請求項10】
前記第2の処理ステージから少なくとも出力データを受信するとともに前記出力データを前記スカラー値にマッピングするための、1つまたは複数のニューラルネットワーク層を備える、完全接続ニューラルネットワークアーキテクチャを備える、
請求項1から9のいずれか一項に記載の機械学習システム。
【請求項11】
前記完全接続ニューラルネットワークアーキテクチャがまた、前記スカラー値を生成するために前記第1の処理ステージから出力データを受信する、請求項10に記載の機械学習システム。
【請求項12】
少なくとも前記第1の処理ステージの前に、前記提案されたトランザクションのための前記データを前処理するための、1つまたは複数のニューラルネットワーク層を備える、完全接続ニューラルネットワークアーキテクチャを備える、
請求項1から11のいずれか一項に記載の機械学習システム。
【請求項13】
スカラー出力が、前記提案されたトランザクションがアクションのシーケンス内で異常となる確率を表す0と1との間の正規化された値である、請求項1から12のいずれか一項に記載の機械学習システム。
【請求項14】
前記第1の処理ステージおよび前記第2の処理ステージのうちの1つまたは複数をそれぞれバイパスする1つまたは複数のスキップ接続を備える、請求項1から13のいずれか一項に記載の機械学習システム。
【請求項15】
提案されたトランザクションに関連するデータを処理する方法であって、
クライアントトランザクション処理システムから着信イベントを受信するステップであって、前記着信イベントが、前記提案されたトランザクションに対する承認決定を求める要求に関連する、ステップと、
前記提案されたトランザクションのためのデータを抽出するために前記着信イベントを構文解析するステップであって、前記提案されたトランザクションと事前トランザクションとの間の時間差を決定するステップを含むステップと、
前記抽出されたデータおよび前記時間差に基づいてアクションのシーケンス内の異常を前記提案されたトランザクションが提示する尤度を表す前記スカラー値を出力するために、請求項1から10のいずれか一項に記載の前記機械学習システムを適用するステップであって、少なくとも、以前の反復に対する前記状態データ、前記第1の処理ステージからの履歴出力データ、および前記提案されたトランザクションと1つまたは複数のさらなる履歴トランザクションとの間の時間差を取り出すために、記憶リポジトリにアクセスするステップを備えるステップと、
前記機械学習システムによって出力される前記スカラー値に基づいてバイナリ出力を決定するステップであって、前記バイナリ出力が、前記提案されたトランザクションが承認されるのかそれとも拒絶されるのかを表す、ステップと、
前記バイナリ出力を前記クライアントトランザクション処理システムに戻すステップと
を備える方法。
【請求項16】
前記着信イベントの受信から前記バイナリ出力の前記戻りまでのレイテンシが1秒よりも短い、請求項15に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、トランザクションデータに機械学習システムを適用するためのシステムおよび方法に関する。いくつかの例は、リアルタイムトランザクション処理における使用のための機械学習システムに関する。いくつかの例は、リアルタイムトランザクション処理における使用のための機械学習システムをトレーニングするための方法に関する。
【背景技術】
【0002】
全世界の支払いのうちの3/4を超えるものが、いくつかの形態の支払いカードまたは電子ウォレットを使用して、ここ20年間にわたってデジタル支払いが急増している。ポイントオブセールシステムは、現金ベースではなく次第にデジタルになりつつある。平たく言えば、商業の世界的なシステムは、今や電子データ処理プラットフォームをおおいに当てにしている。このことは、主に素人のユーザからは隠されている多くの工学課題を提示する。たとえば、デジタルトランザクションは、リアルタイムで、すなわち、購入の時点においてコンピュータデバイスが遭遇する最低限のレベルの遅延を伴って、完了される必要がある。デジタルトランザクションはまた、攻撃および搾取に対してセキュアで耐性がある必要がある。デジタルトランザクションの処理はまた、支払いのための世界的な電子システムの歴史的な発展によって制約される。たとえば、多くの基盤は、50年よりも前に使用されたメインフレームアーキテクチャ向けに設計されたモデルの周囲で、依然として構成される。
【0003】
デジタルトランザクションが増えるにつれて、新たなセキュリティリスクも明らかになりつつある。デジタルトランザクションは、不正行為および悪意のある活動のための新たな機会を提示する。2015年に、デジタルトランザクションのうちの7%が不正であったこと、およびその数字がオンラインでのより多くの経済活動の推移に伴って増大する一方であることが推定された。不正行為損失は、(たとえば、USドル単位で)世界の人口の4倍となるものと推定され、かつ増大しつつある。
【0004】
不正行為のようなリスクは商業に関与する企業にとって経済問題であるが、トランザクションを処理するための技術システムの実装は工学課題である。従来、銀行、小売商、およびカード発行者は、いくつかのトランザクションを伝達または阻止するために、事務員によって手作業で実施される「紙の」規則または手順を策定した。トランザクションがデジタルになったので、トランザクションを処理するための技術システムを構築する1つの手法は、策定された基準のこれらのセットをコンピュータ技術者に供給すること、およびトランザクションのデジタル表現を使用してそれらを実施するように、すなわち、手で書かれた規則を電子トランザクションデータに適用され得るコーディングされた論理ステートメントに変換するように、コンピュータ技術者に依頼することになった。この従来の手法は、デジタルトランザクションボリュームが増大していくにつれて、いくつかの問題にぶつかった。第1に、適用されるいかなる処理も、「リアルタイムで」、たとえば、ミリ秒のレイテンシを伴って行われる必要がある。第2に、負荷が経時的に予想外に変動して(たとえば、新たな製品または1組のチケットの売出しは、平均負荷レベルを容易に数倍に大きくすることがある)、1秒ごとに何千ものトランザクションが処理される必要がある(たとえば、一般の「負荷」は毎秒1000~2000であり得る)。第3に、トランザクションプロセッサおよび銀行の、デジタル記憶システムは、しばしば、セキュリティ理由のためにサイロに入れられるかまたは区分され、しかも、デジタルトランザクションは、しばしば、商業システムの相互接続されたウェブを必要とする。第4に、報告される実際の不正行為および予測される不正行為の大規模な分析が、今では可能である。このことは、不正行為検出に対する従来の手法が水準に達しておらず、確度が低く偽陽性が高いものと見出されることを示す。このことは、次いで、デジタルトランザクション処理に対する物理的な影響を有し、より多くの純正のポイントオブセールおよびオンライン購入が拒絶され、新たなデジタルシステムを搾取することを求める人々は、しばしば、それを持ち逃げする。
【0005】
ここ数年間で、より多くの機械学習手法がトランザクションデータの処理に向くようになっている。学究的世界において機械学習モデルが成熟するにつれて、技術者は、それらをトランザクションデータの処理に適用することを試み始めている。しかしながら、このことは再び問題にぶつかる。技術者に、学問的または理論的な機械学習モデルが提供され、それを実装するように要請される場合でも、このことは簡単ではない。たとえば、大規模なトランザクション処理システムの問題が作用し始める。機械学習モデルは、研究室の中のような無制限の推定時間という贅沢を有しない。このことは、いくつかのモデルをリアルタイム設定で実施するのが単に実際的でないこと、または実世界のサーバが遭遇するボリュームレベルでリアルタイム処理を可能にするためにそれらが著しい適合を必要とすることを意味する。その上、技術者は、アクセスセキュリティに基づいて、かつデータ更新の速度が極端である状況において、サイロに入れられるかまたは区分されるデータに対して機械学習モデルを実装するという問題と競合する必要がある。したがって、トランザクション処理システムを構築する技術者が直面する問題はネットワークまたはデータベース技術者が直面する問題に近いものとして見られる場合があり、機械学習モデルは、けれども処理基盤によって設定されるシステムスループットおよび照会応答時間制約を満たして適用される必要がある。これらの問題の簡単な解決策がない。実際、多くのトランザクション処理システムが機密であり、プロプライエタリであり、かつ古い技術に基づくという事実は、技術者が、隣接するこれらの分野の中で策定された知識体系を有さず、しばしば、トランザクション処理の分野に固有の課題に直面することを意味する。その上、大規模で実際的な機械学習の分野は依然としてまだ浅く、技術者が依拠できる確立された設計パターンまたは教科書がほとんどない。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】「Attention is All You Need」、Vaswaniら、arXiv、2017年12月6日
【非特許文献2】「Variational Autoencoder based Anomaly Detection using Reconstruction Probability」、AnおよびCho、SNU Data Mining Center、IEにおける 2015-2特別講義
【非特許文献3】Chawlaら、Journal of Artificial Intelligence Research 16 (2002) 321~357
【非特許文献4】Ratnerら、「Snorkel: Rapid Training Data Creation with Weak Supervision」、arXiv、2017年11月28日
【発明の概要】
【課題を解決するための手段】
【0007】
添付の独立請求項の中に本発明の態様が述べられる。本発明のいくつかの変形形態が、次いで、添付の従属請求項の中に述べられる。以下の発明を実施するための形態の中で、さらなる態様、変形形態、および例が提示される。
【0008】
ここで、本発明の例が、添付の図面を参照しながら単に例として説明される。
【図面の簡単な説明】
【0009】
【
図1A】トランザクション処理のための様々な例示的な電子基盤を示す概略図である。
【
図1B】トランザクション処理のための様々な例示的な電子基盤を示す概略図である。
【
図1C】トランザクション処理のための様々な例示的な電子基盤を示す概略図である。
【
図2A】機械学習トランザクション処理システムによる使用のためのデータ記憶システムの様々な例を示す概略図である。
【
図2B】機械学習トランザクション処理システムによる使用のためのデータ記憶システムの様々な例を示す概略図である。
【
図3A】トランザクションデータの様々な例を示す概略図である。
【
図3B】トランザクションデータの様々な例を示す概略図である。
【
図4】機械学習トランザクション処理システムの例示的な構成要素を示す概略図である。
【
図5A】トランザクションデータに対して様々なコンピューティングエンティティによって実行されるプロセスの例示的なセットを示すシーケンス図である。
【
図5B】トランザクションデータに対して様々なコンピューティングエンティティによって実行されるプロセスの例示的なセットを示すシーケンス図である。
【
図6A】トランザクションデータの処理のための機械学習システムの第1の構成のための例示的な構成要素のセットを示す概略図である。
【
図6B】
図6Aの例示的な機械学習システムのための第1のステージを示す概略図である。
【
図6C】
図6Bの例示的な機械学習システムのための第2のステージを示す概略図である。
【
図7】トランザクションデータの処理のための機械学習システムの第2の構成のための例示的な構成要素のセットを示す概略図である。
【
図8】機械学習システムのための例示的なトレーニング構成を示す概略図である。
【
図9】合成データサンプルを使用するトレーニングの方法のために適合される例示的な機械学習システムを示す概略図である。
【
図10】一例に従って合成データサンプルを生成するための処理パイプラインを示す概略図である。
【
図11A】トランザクションデータのセットの例示的な部分を示す概略図である。
【
図11B】例示的な特徴ベクトルを示す概略図である。
【
図12】合成データサンプルを使用して機械学習システムをトレーニングするための例示的な方法を示すフローチャートである。
【
図13】機械学習システムを適用するための例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【0010】
導入
本明細書で説明するいくつかの例は、トランザクション処理における使用のための機械学習システムに関する。いくつかの例では、トランザクションまたはエンティティが、活動またはアクションの、以前に観測および/または予測されたパターンに整合するかどうかという表示、たとえば、トランザクションまたはエンティティが「正常」であるのかそれとも「異常」であるのかという表示を提供するために、リアルタイム大量トランザクション処理パイプラインの中で機械学習システムが適用される。「挙動の」という用語は、本明細書では活動またはアクションのこのパターンを指すために使用される。その表示は、既定の範囲(たとえば、0~1)内で正規化され、かつ次いで、支払いシステムの不正行為および他の誤用を防止するために使用可能な、スカラー値を備えてよい。機械学習システムは、偽陽性を低減するとともに出力メトリックの確度を維持するように、より多くのトランザクションデータが取得されると更新される、たとえば、新たなデータに基づいて絶えずトレーニングされる、機械学習モデルを適用し得る。支払いカードの物理的な存在が確認され得ない事例(たとえば、「カード不在(card-not-present)」と呼ばれるオンライントランザクション)での不正行為を防止するために、または高価なトランザクションが日常業務であり得るとともに挙動のパターンを「予想外」として分類することが困難であり得る商業トランザクションに対して、本例は特に有用であり得る。したがって、これらのトランザクションが主に「オンライン」となり、すなわち、1つまたは複数の公衆通信ネットワークを介してデジタル的に行われるとき、本例はトランザクションの処理を容易にする。
【0011】
本明細書で説明するいくつかの例は、口座名義人および小売商などのいくつかのエンティティに固有となるように機械学習モデルが編整されることを可能にする。たとえば、機械学習モデルは、劣悪な確度をもたらす概略的な群挙動または集約挙動ではなく、挙動のエンティティ固有パターンをモデリングし得る。本明細書で説明する機械学習システムは、大規模なトランザクションフローにもかかわらず、かつ/または様々なデータソースの隔離に対する必要にもかかわらず、動的に更新する機械学習モデルを提供することができる。
【0012】
本例は、限定はしないが、カード支払い、いわゆる「ワイヤ」振替、ピアツーピア支払い、銀行自動精算システム(BACS:Bankers' Automated Clearing System)支払い、および自動支払い処理装置(ACH:Automated Clearing House)支払いを含む、多種多様なデジタルトランザクションに適用され得る。機械学習システムの出力は、カード不正行為、アプリケーション不正行為、支払い不正行為、小売商不正行為、ゲーミング不正行為、および資金洗浄などの、多種多様な不正かつ犯罪的な挙動を防止するために使用され得る。
【0013】
たとえば、下の
図1A~
図13に従って構成および/またはトレーニングされるような、現在の例示的な機械学習システムは、1秒または1秒未満の処理レイテンシを提供するために、かつ大規模な処理値(たとえば、年間数十億ものトランザクション)を管理するために、容易に並列化され得る高速な推定を可能にする。
【0014】
2つの特定の態様が以下で説明される。
図1A~
図5Bは、両方の態様のためのコンテキストを提供する。第1の態様は、
図6A~
図6Cに示すような特定のニューラルネットワークアーキテクチャの形態をなす機械学習システムに関する。第2の態様は、詳細には、機械学習システムをトレーニングする方法に関し、
図9~
図13を参照しながら説明される。第1および第2の態様は、好ましくは別個にかつ独立して適用され得る。たとえば、
図7および
図8は、第2の態様に従ってトレーニングされ得る代替の機械学習システムの例を提供し、
図8は、第1の態様を参照しながら説明する機械学習システムをトレーニングするための代替方法を示す。しかしながら、場合によっては、それらは一緒に適用されてよく、たとえば、第2の態様のトレーニングの方法が、第1の態様の機械学習システムをトレーニングするために適用されてよい。両方の態様は、他のシステムおよび方法と比較して特定の技術的利点をもたらし、これらは以下のテキストの中で述べられる。
【0015】
いくつかの用語定義
「データ」という用語は、1つまたは複数のプログラミング言語内の知られているビット構造によって表されるものなどのデジタル情報を指すために、本明細書では様々なコンテキストにおいて使用される。使用中、データとは、コンピュータメモリ内のビットシーケンスとして記憶されるデジタル情報を指してよい。いくつかの機械学習モデルは、既定のビットフォーマットのデータの構造化されたアレイに対して動作し得る。当技術分野の用語を使用すると、これらは多次元アレイまたは「テンソル」と呼ばれることがある。機械学習方法の場合、たとえば、複数の次元において規定済みの範囲を有する、多次元アレイが、既定のフォーマット(たとえば、nビットの整数または浮動小数点数、符号付きまたは符号なし)に従って記憶された値のシーケンスまたはベクトルとして(たとえば、メモリ内で)表されるように、「平坦化」され得ることに留意されたい。したがって、本明細書で使用する「テンソル」という用語は、1つまたは複数の次元を有する多次元アレイ(たとえば、ベクトル、行列、容量測定のアレイなど)をカバーする。
【0016】
「構造化数値表現」という用語は、整数またはフロート値などの一般のデータタイプを有する数値を記憶する、1つまたは複数の次元のアレイなどの、構造化された形態をなす数値データを指すために使用される。構造化数値表現は、(機械学習用語内で使用されるような)テンソルを備えてよい。構造化数値表現は、通常、インデックス付けされかつ/または連続するメモリロケーションのセットとして記憶され、たとえば、64ビットフロートの1次元アレイは、64ビットコンピューティングシステムにおける64ビットメモリロケーションの連続するシーケンスとして、コンピュータメモリの中で表されてよい。
【0017】
「トランザクションデータ」という用語は、本明細書ではトランザクションに関連する電子データを指すために使用される。トランザクションは、支払いまたは両替を実施するための、異なる電子システム間での一連の通信を備える。一般に、トランザクションデータは、トランザクション処理に関係するとともにトランザクション処理にとって有益であり得るイベント(たとえば、適時に着手されるアクション)を示すデータを備えてよい。トランザクションデータは、構造化されたデータ、構造化されていないデータ、および半構造化されたデータを備えてよい。トランザクションデータはまた、トランザクションを処理するために使用されるデータなどの、トランザクションに関連するデータを含んでよい。場合によっては、トランザクションデータは、1つまたは複数の電子デバイスに関して取られるアクションを指すために広く使用され得る。トランザクションデータは、正確な実装形態に応じて様々な形態を取ってよい。しかしながら、様々なデータタイプおよびフォーマットが前処理または後処理によって適宜に変換され得る。
【0018】
「インターフェース」という用語は、本明細書ではデータ入力およびデータ出力のうちの1つまたは複数を可能にする任意の物理的および/または論理的なインターフェースを指すために使用される。インターフェースは、データを送りかつ/もしくは受信するように適合されたネットワークインターフェースによって、または命令のセットを実行するプロセッサによって実施されるように1つもしくは複数のメモリロケーションからデータを取り出すことによって、実装されてよい。インターフェースはまた、特定の媒体を介した有線通信またはワイヤレス通信を可能にするためのハードウェアなどの、データがそれを介して受信される物理(ネットワーク)結合を備えてよい。インターフェースは、アプリケーションプログラミングインターフェースおよび/またはメソッドコールもしくはメソッドリターンを備えてよい。たとえば、ソフトウェア実装形態では、インターフェースは、メソッドコールを介して開始された関数への通過データおよび/またはメモリ参照を備えてよく、ここで、関数は、1つまたは複数のプロセッサによって実行されるコンピュータプログラムコードを備え、ハードウェア実装形態では、インターフェースは、異なるチップ、チップセット、またはチップの部分の間に、有線の相互接続部を備えてよい。図面において、データ転送を表す内向きおよび/または外向きの矢印を有する、処理ブロックの境界によって、インターフェースが示されることがある。
【0019】
「構成要素」および「モジュール」という用語は、(たとえば、入力データを出力データにマッピングする形態で)特定の機能を有するハードウェア構造、または一般的なハードウェアと特定のソフトウェア(たとえば、1つまたは複数の汎用プロセッサ上で実行される特定のコンピュータプログラムコード)との組合せのいずれかを指すために、互換的に使用される。構成要素またはモジュールは、パッケージ化された特定のチップセット、たとえば、特定用途向け集積回路(ASIC)もしくはプログラム済みのフィールドプログラマブルゲートアレイ(FPGA)として、かつ/またはプロセッサによる使用において実行されるような、ソフトウェアオブジェクト、クラス、クラスインスタンス、スクリプト、コード部分などとして、実装されてよい。
【0020】
「機械学習モデル」という用語は、本明細書では機械学習モデルまたは機械学習機能の少なくともハードウェア実行型の実装形態を指すために使用される。機械学習の分野内の知られているモデルは、ロジスティック回帰モデル、単純ベイズモデル、ランダムフォレスト、サポートベクトルマシン、および人工ニューラルネットワークを含む。分類器の実装は、限定はしないが、scikit-learn、TensorFlow、およびPyTorchを含む、1つまたは複数の機械学習プログラミングライブラリ内で行われてよい。
【0021】
「マッピングする」という用語は、本明細書ではデータ値の第2のセットへのデータ値の第1のセットの変換(transformation)または変換(conversion)を指すために使用される。データ値のその2つのセットは、出力アレイが入力アレイよりも次元数が小さいものであって、異なるサイズのアレイであってよい。入力アレイおよび出力アレイは、共通のまたは異なるデータタイプを有してよい。いくつかの例では、マッピングは、スカラー値への一方向マッピングである。
【0022】
「ニューラルネットワークアーキテクチャ」という用語は、特定のデータ処理タスクを実行するように構成される1つまたは複数の人工ニューラルネットワークのセットを指す。たとえば、「ニューラルネットワークアーキテクチャ」は、1つまたは複数のニューラルネットワークタイプの1つまたは複数のニューラルネットワーク層の特定の構成を備えてよい。ニューラルネットワークタイプは、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク、およびフィードフォワードニューラルネットワークを含む。畳み込みニューラルネットワークは、1つまたは複数の畳み込み演算の適用を伴う。再帰型ニューラルネットワークは、入力のシーケンス中に更新される内部状態を伴う。したがって、再帰型ニューラルネットワークは、再帰型接続またはフィードバック接続の形態を含むように見られ、それによって、所与の時間または反復(たとえば、t)における再帰型ニューラルネットワークの状態は、以前の時間または反復(たとえば、t-1)における再帰型ニューラルネットワークの状態を使用して更新される。フィードフォワードニューラルネットワークは、フィードバックを有しない変換演算を伴い、たとえば、演算は、入力から出力まで一方向のシーケンスの中で適用される。フィードフォワードニューラルネットワークは、単純な「ニューラルネットワーク」、「多層パーセプトロン」、「完全接続」ニューラルネットワーク、または「高密度」、「線形」、もしくは「ディープ」ニューラルネットワーク(それらが複数のニューラルネットワーク層を直列に備えるときは後者)と呼ばれることがある。本明細書で説明するいくつかの例は、再帰型ニューラルネットワークおよび完全接続ニューラルネットワークを利用する。
【0023】
通常は機械学習プログラミングツールおよびライブラリ内で規定されるような「ニューラルネットワーク層」は、入力データを出力データにマッピングする演算と見なされてよい。「ニューラルネットワーク層」は、入力データを出力データにマッピングするために、重みなどの1つまたは複数のパラメータを適用し得る。1つまたは複数のバイアス項も適用されてよい。ニューラルネットワーク層の重みおよびバイアスは、1つまたは複数の多次元アレイまたは行列を使用して適用され得る。概して、ニューラルネットワーク層は、その層によって入力データが出力データにどのようにマッピングされるのかにその値が影響を及ぼす、複数のパラメータを有する。これらのパラメータは、目的関数を最適化することによって教師あり方式でトレーニングされ得る。このことは、通常、損失関数を最小化することを伴う。いくつかのパラメータはまた、別の方式で事前トレーニングまたは固定され得る。固定されたパラメータは、ニューラルネットワーク層の演算を制御する構成データと見なされてよい。ニューラルネットワーク層またはニューラルネットワークアーキテクチャは、固定されたパラメータと学習可能なパラメータとの混合物を備えてよい。再帰型ニューラルネットワーク層は、再帰状態を更新し入力データを変換するために、一連の演算を適用し得る。再帰状態の更新および入力データの変換は、以前の再帰状態および入力データのうちの1つまたは複数の変換を伴ってよい。再帰型ニューラルネットワーク層は、機械学習プログラミングツールおよびライブラリ内で適用され得るように、モデリングされた再帰ユニットを展開することによってトレーニングされ得る。再帰型ニューラルネットワークは、様々なゲーティング動作を適用すべきいくつかの(副)層を備えるように見えることがあるが、ほとんどの機械学習プログラミングツールおよびライブラリは、再帰型ニューラルネットワークの適用を、全体として「ニューラルネットワーク層」と呼び、ここではこの慣例に従う。最後に、フィードフォワードニューラルネットワーク層は、重みおよびバイアスのセットのうちの1つまたは複数を入力データに適用して出力データを生成し得る。この動作は、(たとえば、1という値を入力データ上に付け加えることによってバイアス項が含められ得る場合)行列演算として表されてよい。代替として、バイアスは、別個の加算演算を通じて適用されてよい。上記で説明したように、「テンソル」という用語は、機械学習ライブラリのように、複数の次元を有し得るアレイを指すために使用され、たとえば、テンソルは、ベクトル、行列、または次元数がもっと大きいデータ構造を備えてよい。好ましい例では、説明するテンソルは、既定の個数の要素を有するベクトルを備えてよい。
【0024】
複雑な非線形関数をモデリングするために、上記で説明したようなニューラルネットワーク層には、非線形の活性化関数が後続し得る。一般の活性化関数は、シグモイド関数、双曲線正接関数、および正規化線形ユニット(RELU:Rectified Linear Unit)を含む。多くの他の活性化関数が存在し適用され得る。活性化関数は、テストおよび選好に基づいて選択されてよい。活性化関数は、いくつかの環境では省略されてよく、かつ/またはニューラルネットワーク層の内部構造の一部を形成し得る。
【0025】
本明細書で説明する例示的なニューラルネットワークアーキテクチャは、トレーニングを介して構成され得る。場合によっては、「学習可能な」または「トレーニング可能な」パラメータが、逆伝搬と呼ばれる手法を使用してトレーニングされ得る。逆伝搬の間、各ニューラルネットワークアーキテクチャを構成するニューラルネットワーク層は、(たとえば、ランダム化された重みを用いて)初期化され、次いで、トレーニングセットからの入力データのセットを使用して予測を行うために使用される(たとえば、いわゆる「順方向」パス)。予測は、損失関数を評価するために使用される。たとえば、「グラウンドトゥルースな」出力が、予測される出力と比較されてよく、その差分が損失関数の一部を形成し得る。いくつかの例では、損失関数は、予測されるスカラー値とバイナリのグラウンドトゥルースラベルとの間の絶対差分に基づいてよい。トレーニングセットは、トランザクションのセットを備えてよい。勾配降下法が使用される場合、損失関数は、ニューラルネットワークアーキテクチャのパラメータに対して損失関数の勾配を決定するために使用され、ここで、勾配は、次いで、ニューラルネットワークアーキテクチャのパラメータ値への更新を逆伝搬させるために使用される。通常、更新は、ニューラルネットワーク層の重みの導関数に従って伝搬される。たとえば、損失関数を最小化する重みへの更新を決定するために、ニューラルネットワーク層の重みに対する損失関数の勾配が決定および使用されてよい。この場合、勾配降下、確率論的勾配降下、Adamなどの最適化技法が、重みを調整するために使用され得る。ニューラルネットワーク層を通じて順に後方に動作して損失関数の勾配を効率的に計算するために、連鎖法則および自己微分関数が適用されてよい。
【0026】
例示的なトランザクション処理システム
図1A~
図1Cは、例示的なトランザクション処理システム100、102、104のセットを示す。これらの例示的なトランザクション処理システムは、本明細書で説明する発明のためのコンテキストを提供するために説明されるが、限定的として見られるべきでなく、任意の一実装形態の構成は、その実装形態の特定の要件に基づいて異なる場合がある。しかしながら、説明する例示的なトランザクション処理システムは、以下の説明にとって重要な、いくつかの高いレベルの技術的特徴を当業者が識別することを可能にする。3つの例示的なトランザクション処理システム100、102、104は、変形が行われ得る様々な領域を示す。
【0027】
図1A~
図1Cは、トランザクションを開始するように構成されるクライアントデバイス110のセットを示す。この例では、クライアントデバイス110のセットは、スマートフォン110-A、コンピュータ110-B、ポイントオブセール(POS)システム110-C、およびポータブル商業デバイス110-Dを備える。これらのクライアントデバイス110は、非網羅的な例のセットを提供する。一般に、トランザクションに着手するために任意の電子デバイスまたはデバイスのセットが使用されてよい。ある場合には、トランザクションは購入または支払いを備える。たとえば、購入または支払いは、スマートフォン110-Aまたはコンピュータ110-Bを通して行われるオンラインまたはモバイルの購入または支払いであってよく、あるいはPOSシステム110-Cまたはポータブル商業デバイス110-Dを介するような、商業店舗において行われる購入または支払いであってもよい。購入または支払いは、商品および/またはサービス向けであってよい。
【0028】
図1A~
図1Cでは、クライアントデバイス110は、1つまたは複数のコンピュータネットワーク120に通信可能に結合される。クライアントデバイス110は、電気通信ネットワークを含む1つまたは複数の有線および/またはワイヤレスのネットワークによることを含む様々な方法で、通信可能に結合され得る。好ましい例では、1つまたは複数のコンピュータネットワークを横断するすべての通信は、たとえば、トランスポートレイヤセキュリティ(TLS)プロトコルを使用してセキュアにされる。
図1Aにおいて、2つのコンピュータネットワークが120-Aおよび120-Bと示される。これらは、別個のネットワーク、または共通のネットワークの異なる部分であってよい。第1のコンピュータネットワーク120-Aは、クライアントデバイス110を商業サーバ130に通信可能に結合する。商業サーバ130は、トランザクションのためのプロセスフローを実施するコンピュータプロセスを実行し得る。たとえば、商業サーバ130は、POSシステム110-Cもしくはポータブル商業デバイス110-Dから受信されるトランザクション要求を処理するバックエンドサーバであってよく、または購入が行われ得るウェブサイトを実施するためにオンライン小売商によって使用されてもよい。
図1A~
図1Cの例が実際のアーキテクチャの必要な簡略化であること、たとえば、製品および/またはサービスを詳述するハイパーテキストマークアップ言語(HTML)ページを提供するための、かつ支払いプロセスを処理するための、別個のサーバデバイスを含む、オンライン小売商を実施する相互作用中のいくつかのサーバデバイスがあり得ることが諒解されよう。
【0029】
図1Aにおいて、商業サーバ130は、トランザクションを処理するためにバックエンドサーバデバイスのさらなるセットに通信可能に結合される。
図1Aにおいて、商業サーバ130は、第2のネットワーク120-Bを介して支払いプロセッササーバ140に通信可能に結合される。支払いプロセッササーバ140は、トランザクションデータ146を記憶する第1のデータ記憶デバイス142および補助データ148を記憶する第2のデータ記憶デバイス144に通信可能に結合される。トランザクションデータ146は、ある時間期間にわたって着手される様々なトランザクションに関係するトランザクションデータのバッチを備えてよい。補助データ148は、小売商データおよび/またはエンドユーザデータを記憶するレコードなどの、トランザクションに関連するデータを備えてよい。
図1Aにおいて、支払いプロセッササーバ140は、第2のネットワーク120-Bを介して機械学習サーバ150に通信可能に結合される。機械学習サーバ150は、トランザクションデータの処理用の機械学習システム160を実装する。機械学習システム160は、入力データ162を受信し、これを、クライアントデバイス110に起因するトランザクションなどの特定のトランザクションを処理するために支払いプロセッササーバ140によって使用される出力データ164にマッピングするように構成される。ある場合には、機械学習システム160は、少なくとも、特定のトランザクションに関連するトランザクションデータを受信し、トランザクションが許可(すなわち、承認)されるべきかそれとも拒絶されるべきかを決定するために支払いプロセッササーバ140によって使用される警報または数値出力を提供する。したがって、機械学習システム160の出力は、不正行為、または一般的な悪意があるかもしくは異常な活動の、ラベル、警報、または他の表示を備えてよい。出力は、スコアまたは確率などの確率的表示を備えてよい。ある場合には、出力データ164はスカラー数値を備えてよい。入力データ162は、トランザクションデータ146および補助データ148のうちの1つまたは複数から導出されるデータをさらに備えてよい。ある場合には、出力データ164は、過去の観測または測定に基づく、挙動の予想される特定のパターンからの偏差のレベルを示す。たとえば、これが頻繁に、挙動の観測されるパターンとは著しく、特に大規模に異なるとき、これは不正行為または犯罪的な挙動を示す場合がある。出力データ164は、挙動の測定値を形成し得る。エンドユーザまたは顧客、小売商(これらが異なることがある場合、ポイントオブセールおよびバックエンドロケーションまたはエンティティを含む)、および銀行などの、トランザクションプロセスフロー内の異なるエンティティ間の、観測される相互作用に基づいて、挙動の予想されるパターンが明示的または暗黙的のいずれかで規定されてよい。
【0030】
機械学習システム160は、トランザクション処理パイプラインの一部として実装され得る。例示的なトランザクション処理パイプラインが、
図5Aおよび
図5Bに関して後で説明される。トランザクション処理パイプラインは、クライアントデバイス110、商業サーバ130、支払いプロセッササーバ140、および機械学習サーバ150の間の電子通信を備えてよい。発行銀行からの許可を提供するバンキングサーバなどの、他のサーバデバイスも関与する場合がある。場合によっては、クライアントデバイス110は、支払いプロセッササーバ140と直接通信してよい。使用中に、トランザクション処理パイプラインは、通常は100または200ミリ秒以内に完了される必要がある。概して、1秒未満の処理時間がリアルタイムと見なされてよい(たとえば、人間は、通常、400msの時間スパンでイベントを知覚する)。さらに、100~200msが、トランザクション処理のための全ラウンドトリップ時間の所望の最大レイテンシであり得、この時間スパン内で、機械学習システム160のために割り当てられる時間は、その時間のうちのほとんどがトランザクション処理フローの中の他の動作のために確保され得るとき、10ms(すなわち、ターゲット処理時間のうちの、その5~10%未満)などの、この全量のうちのごく一部であってよい。このことは、機械学習システム160の実装にとって技術上の制約を提示する。さらに、実世界の実装形態では、平均処理ボリュームは毎秒1000~2000程度であり得る。このことは、ほとんどの「既製の(off-the-shelf)」機械学習システムが機械学習システム160を実装するのに適さないことを意味する。そのことは、学術的な論文の中に記載されるほとんどの機械学習手法が、自明でない適合を伴わずに上述のトランザクション処理パイプライン内で実施され得ないことをさらに意味する。異常が、それらのちょうどその性質によって、まれな事象であり、そのため、正確な機械学習システムはトレーニングするのが困難であるという問題もある。
【0031】
図1Bは、
図1Aの例示的なトランザクション処理システム100の変形形態102を示す。この変形形態102では、機械学習システム160は、たとえば、支払いプロセッササーバ140によって実行され、かつ/または支払いプロセッササーバ140と同じローカルネットワーク内のローカルに結合されたサーバ上で実行される、支払いプロセッサコンピュータ基盤内に実装される。
図1Bの変形形態102は、より高速な応答時間、より大きい制御、および改善されたセキュリティを可能にするので、もっと大型の支払いプロセッサにとって好ましい場合がある。しかしながら、機能的には、そのトランザクション処理パイプラインは、
図1Aのトランザクション処理パイプラインと類似であってよい。たとえば、
図1Aの例では、機械学習システム160は、ハイパーテキスト転送プロトコルセキュア(HTTPS)を使用するリプレゼンテーションステートトランスファ(REST)APIコールなどの、セキュアな外部アプリケーションプログラミングインターフェース(API)コールによって開始され得るが、
図1Bでは、機械学習システム160は、内部APIコールによって開始されてよく、ただし、ここで、一般のエンドAPIが、両方の要求を処理してよい(たとえば、REST HTTPS APIは、内部API用の外部ラッパーを提供し得る)。
【0032】
図1Cは、
図1Aの例示的なトランザクション処理システム100の別の変形形態104を示す。この変形形態104では、機械学習システム160は、ローカルデータ記憶デバイス170に通信可能に結合される。たとえば、データ記憶デバイス170は、機械学習サーバ150と同じローカルネットワーク上にあってよく、または機械学習サーバ150にアクセス可能なローカルストレージネットワークを備えてもよい。この場合、複数のローカルデータ記憶デバイス170-A~170-Nがあり、ここで、各データ記憶デバイスは区分された補助データ172を記憶する。区分された補助データ172は、1つまたは複数の機械学習モデル用のパラメータを備えてよい。ある場合には、補助データ172は、機械学習モデルに対する状態を備えてよく、ここで、状態は、ユーザまたは小売商などの特定のエンティティに関係し得る。補助データ172の区分は、支払いプロセッサ、1つもしくは複数の銀行、および/または1つもしくは複数の小売商などの第三者によって設定されるセキュリティ要件を満たすために適用される必要があり得る。使用中に、機械学習システム160は、入力データ162に基づいて、複数のローカルデータ記憶デバイス170-A~170-Nを介して補助データ172-A~172-Nにアクセスする。たとえば、入力データ162は、特定のソースからのAPI要求を通して受信されてよく、かつ/またはAPI要求を処理するために特定の区分が使用されるべきであることを識別するデータを備えてよい。セキュリティ要件を満たすために適用され得る様々な記憶システムのより詳細が、
図2Aおよび
図2Bの中で述べられる。
【0033】
例示的なデータ記憶構成
図2Aおよび
図2Bは、トランザクションデータの処理のために例示的な機械学習システム210によって使用され得る2つの例示的なデータ記憶構成200および202を示す。
図2Aおよび
図2Bの例は、実装のために利用可能な様々なオプションを示す2つの非限定的な例であり、個々の環境に従って特定の構成が選択されてよい。機械学習システム210は、
図1A~
図1Cの、前の例において説明した、機械学習システム160の実装形態を備えてよい。
図2Aおよび
図2Bの例は、たとえば、機械学習システム210が異種エンティティのためのトランザクションデータをセキュアに処理するために、異種暗号パラメータを使用してセキュアにされる、トランザクションデータの処理を可能にする。たとえば、内部のトランザクション処理システム内で、セキュアなトランザクションデータおよび補助データの単一のセットのために、または単一の支払いプロセッサによる使用のためのホストされたシステムとして、機械学習システム160が実装される場合、
図2Aおよび
図2Bの構成が使用されなくてよいことが諒解されよう。
【0034】
図2Aは、データバス220に通信可能に結合された機械学習システム210を示す。データバス220は、機械学習サーバ150の内部データバスを備えてよく、またはストレージエリアネットワークの一部を形成してもよい。データバス220は、機械学習システム210を複数のデータ記憶デバイス230、232に通信可能に結合する。データ記憶デバイス230、232は、磁気ハードディスクおよびソリッドステートデバイスなどの、任意の知られているデータ記憶デバイスを備えてよい。
図2Aではデータ記憶デバイス230、232は異なるデバイスとして示されるが、代替として、それらが共通のデータ記憶デバイス内の記憶域の、異なる物理的領域または部分を形成してもよい。
図2Aにおいて、複数のデータ記憶デバイス230、232は、履歴トランザクションデータ240および補助データ242を記憶する。
図2Aにおいて、データ記憶デバイス230の第1のセットが履歴トランザクションデータ240を記憶し、データ記憶デバイス232の第2のセットが補助データ242を記憶する。補助データ242は、(ニューラルネットワークアーキテクチャのためのトレーニング済みのパラメータ、および/またはランダムフォレストモデルのための構成パラメータなどの)機械学習モデルのセットのためのモデルパラメータおよびそれらのモデルのための状態データのうちの1つまたは複数を備えてよい。ある場合には、履歴トランザクションデータ240-A~Nおよび補助データ242-A~Nの異なるセットが、機械学習システム210によって提供されるサービスをセキュアかつ集合的に使用する異なるエンティティに関連付けられ、たとえば、これらは、それらのエンティティに機械学習サービスを提供する条件の一部として、別個に保たれることを必要とする、様々な銀行のためのデータを表してよい。
【0035】
図2Bは、履歴トランザクションデータ240-A~Nおよび補助データ242-A~Nの異なるセットが記憶され得る別のやり方を示す。
図2Bにおいて、機械学習システム210は、データ転送チャネル250を介して少なくとも1つのデータ記憶デバイス260に通信可能に結合される。データ転送チャネル250は、ローカルストレージバス、ローカルストレージエリアネットワーク、および/または(たとえば、インターネットなどのセキュアでないネットワークの上方で覆われるような)リモートセキュアストレージ結合を備えてよい。
図2Bにおいて、セキュアな論理記憶層270が、物理的なデータ記憶デバイス260を使用して設けられる。セキュアな論理記憶層270は、少なくとも1つのデータ記憶デバイス260とは独立して実際に実装される間、機械学習システム210には別個の物理記憶デバイスとして見える、仮想化システムであってよい。論理記憶層270は、エンティティのグループに関係する(たとえば、様々な発行銀行などに関係する)データのための別個の暗号化された区分280を提供してよく、履歴トランザクションデータ240-A~Nおよび補助データ242-A~Nの異なるセットが、対応する区分280-A~Nの中に記憶されてよい。場合によっては、
図1A~
図1Cに示したサーバシステムのうちの1つまたは複数によって記憶されるデータに基づく処理のためにトランザクションが受信されると、エンティティは動的に作成され得る。
【0036】
例示的なトランザクションデータ
図3Aおよび
図3Bは、160または210などの機械学習システムによって処理され得るトランザクションデータの例を示す。
図3Aは、時間順のレコード300のセットをトランザクションデータがどのように備え得るのかを示し、ここで、各レコードはタイムスタンプを有し、複数のトランザクションフィールドを備える。場合によっては、トランザクションデータは、タイムスタンプに基づいてグループ化および/またはフィルタ処理されてよい。たとえば、
図3Aは、現在のトランザクションに関連する現在のトランザクションデータ310、および現在のトランザクションの既定の時間範囲内にある「もっと古い」すなわち履歴トランザクションデータ320への、トランザクションデータの区分を示す。その時間範囲は、任意の機械学習システムのハイパーパラメータとして設定されてよい。代替として、「もっと古い」すなわち履歴トランザクションデータ320は、いくつかの個数のトランザクションとして設定されてよい。2つの手法の混合物も可能である。
【0037】
図3Bは、1つまたは複数の機械学習モデルによる処理のために特定のトランザクションのためのトランザクションデータ330がどのように数値形式で記憶され得るのかを示す。たとえば、
図3Bにおいて、トランザクションデータは、少なくともフィールド、すなわち、トランザクション量、(たとえば、Unixエポックとしての)タイムスタンプ、トランザクションタイプ(たとえば、カード支払いまたは口座引き落とし)、製品説明または製品識別子(すなわち、購入中の物品に関係する)、小売商識別子、発行銀行識別子、文字のセット(たとえば、既定の文字長のフィールド内のUnicode文字)、国識別子などを有する。多種多様なデータタイプおよびフォーマットが受信および前処理されて適切な数値表現になり得ることに留意されたい。場合によっては、クライアントデバイスによって生成され商業サーバ130へ送られるトランザクションデータなどの、発生するトランザクションデータが、1つまたは複数の機械学習モデルの適用のために英数字データタイプを数値データタイプに変換するために前処理される。トランザクションデータの中に存在する他のフィールドは、限定はしないが、口座番号(たとえば、クレジットカード番号)、トランザクションが行われつつある場所のロケーション、およびトランザクションが実行される方式(たとえば、本人自身による、電話を介する、ウェブサイト上での)を含むことができる。
【0038】
例示的な機械学習システム
図4は、トランザクションデータを処理するために使用され得る機械学習システム402の一例400を示す。機械学習システム402は、機械学習システム160および210のうちの1つまたは複数を実施し得る。機械学習システム402は入力データ410を受信する。入力データ410の形式は、どの機械学習モデルが機械学習システム402によって適用中であるのかに依存し得る。トランザクション、たとえば、上記で説明したように進行中であるトランザクションに関して、機械学習システム402が不正行為検出または異常検出を実行するように構成される場合には、入力データ410は、330などのトランザクションデータ(すなわち、トランザクションのためのデータパッケージの一部を形成するデータ)、ならびに(
図3Aの中の300などの)履歴トランザクションデータから導出されるデータ、および/または(
図1A~
図1Cの中の148または
図2Aおよび
図2Bの中の242などの)補助データから導出されるデータを備えてよい。補助データは、トランザクションに関連する1次データの中で識別される1つまたは複数のエンティティにリンクされた2次データを備えてよい。たとえば、進行中であるトランザクションのためのトランザクションデータが、トランザクションデータの中に存在する一意識別子を介するような、トランザクションに関連するユーザ、小売商、および(ユーザのための発行銀行、および商業銀行などの)1つまたは複数の銀行を識別する場合、補助データは、これらのトランザクションエンティティに関係するデータを備えてよい。補助データはまた、相互作用ログおよび/または認証レコードなどの、活動のレコードから導出されるデータを備えてよい。ある場合には、補助データは、1つまたは複数の静的なデータレコードの中に記憶され、受信トランザクションデータに基づいてこれらのレコードから取り出される。追加または代替として、補助データは、トランザクションデータの内容に基づいて取り出される機械学習モデルパラメータを備えてよい。たとえば、機械学習モデルは、ユーザ、小売商、および発行銀行のうちの1つまたは複数に固有のパラメータを有してよく、これらのパラメータは、これらのうちのどれがトランザクションデータの中で識別されるのかに基づいて取り出されてよい。たとえば、ユーザ、小売商、および発行銀行のうちの1つまたは複数は、前記エンティティに対する取出し可能またはマッピング可能なテンソル表現を備えてよい、対応する埋込みを有してよい。たとえば、各ユーザまたは小売商は、たとえば、ユーザインデックスまたは小売商インデックスに基づいて、データベースもしくは他のデータストレージから取り出され得るかまたは埋込み層によって生成され得るかのいずれかの、テンソル表現(たとえば、サイズ128~1024の浮動小数点ベクトル)を有してよい。
【0039】
入力データ410は、入力データインターフェース412において受信される。入力データインターフェース412は、上記で説明したような内部または外部のAPIインターフェースなどのAPIインターフェースを備えてよい。ある場合には、
図1A~
図1Cに示すような支払いプロセッササーバ140が、このインターフェースへの要求を行い、ここで、要求ペイロードはトランザクションデータを含む。APIインターフェースは、トランザクションデータの形式またはそのソースに関してアグノスティックとなるように規定されてよい。入力データインターフェース412は、機械学習モデルプラットフォーム414に通信可能に結合される。ある場合には、入力データインターフェース412へ行われる要求は、インターフェースに供給されたトランザクションデータを使用する機械学習モデルプラットフォーム414の実行をトリガする。機械学習モデルプラットフォーム414は、入力データ410への1つまたは複数の機械学習モデルの適用のための実行環境として構成される。ある場合には、機械学習モデルプラットフォーム414は、複数の異なる選択可能な機械学習モデルに対する実行ラッパーとして構成される。たとえば、機械学習モデルは、(たとえば、拡張マークアップ言語XMLなどのマークアップ言語と類似の、またはそれらを使用する)モデル定義言語を使用して定義され得る。モデル定義言語は、SQL、TensorFlow、Caffe、Thinc、およびPyTorchを(特に、独立して、または組合せで)含んでよい。ある場合には、モデル定義言語は、定義された機械学習モデルのトレーニングおよび推定のうちの1つまたは複数を実施するために実行可能なコンピュータプログラムコードを備える。機械学習モデルは、たとえば、特に、人工ニューラルネットワークアーキテクチャ、アンサンブルモデル、回帰モデル、ランダムフォレストなどの決定木、グラフモデル、およびベイズネットワークを備えてよい。人工ニューラルネットワークに基づく1つの例示的な機械学習モデルが、
図6A~
図6Cを参照しながら後で説明され、ランダムフォレストモデルに基づく1つの例示的な機械学習モデルが、
図7を参照しながら後で説明される。機械学習モデルプラットフォーム414は、異なる機械学習モデルが共通の(すなわち、共有される)方式で適用されるような、共通の(すなわち、共有される)入力定義および出力定義を定義し得る。
【0040】
本例では、機械学習モデルプラットフォーム414は、少なくとも単一のスカラー出力416を提供するように構成される。これは、0~1などの既定の範囲内で正規化され得る。正規化されると、スカラー出力416は、入力データ410に関連するトランザクションが不正または異常である確率として見られてよい。この場合、「0」という値は、ユーザ、小売商、および発行銀行のうちの1つまたは複数に対する活動の正常パターンに整合するトランザクションを表してよく、「1」という値は、トランザクションが不正または異常であること、すなわち、活動の予想されるパターンに整合しないことを示してよい(とはいえ、正規化された範囲が、反転させられるかまたは異なる境界内にあるような異なる場合があり、かつ同じ機能的影響を有することに、当業者は気づく)。値の範囲が0~1として規定され得るが、出力値が、この範囲内で一様に分散されない場合があり、たとえば、「0.2」という値が「正常」イベントに対する共通の出力である場合があり、「0.8」という値が典型的な「異常な」または不正なイベントに対してしきい値を超えるものとして見られる場合があることに留意されたい。機械学習プラットフォーム414によって実装される機械学習モデルは、次元数が大きい入力データ(たとえば、トランザクションデータおよび任意の取出し補助データ)と単一値出力との間の、ある形態のマッピングをそのように実装し得る。ある場合には、たとえば、機械学習プラットフォーム414は、機械学習モデルのための入力データを数値フォーマットで受信するように構成されてよく、定義される各機械学習モデルは、同様の方法で定義された入力データをマッピングするように構成される。機械学習モデルプラットフォーム414によって適用される厳密な機械学習モデル、およびそのモデル用のパラメータは、構成データに基づいて決定され得る。構成データは、入力データ410内に含まれてよく、かつ/または入力データ410を使用して識別されてよく、かつ/または機械学習プラットフォーム414によって構文解析される1つまたは複数の構成ファイルに基づいて設定されてよい。
【0041】
場合によっては、機械学習モデルプラットフォーム414は、コンテキストに応じて追加の出力を提供し得る。いくつかの実装形態では、機械学習モデルプラットフォーム414は、疑わしい入力属性の観点から、機械学習モデルの出力の、人間との親和性のある説明をキャプチャする、「理由コード」を戻すように構成され得る。たとえば、入力表現内の1つまたは複数の入力要素または入力ユニットのうちのどれが、モデル出力、たとえば、「amount」チャネルが学習済みのしきい値を超えることと(埋込みまたはインデックスなどの)「merchant」要素またはユニットのセットが所与のクラスタの外側にあることとの組合せに影響を及ぼしたのかを、機械学習モデルプラットフォーム414は示してよい。機械学習モデルプラットフォーム414が決定木を実施する場合には、これらの追加の出力は、決定木を通じる経路、または木のアンサンブルに基づく集約特徴重要度を備えてよい。ニューラルネットワークアーキテクチャの場合、これは、層出力アクティブ化、および/または肯定的なアクティブ化を伴う層フィルタを備えてよい。
【0042】
図4において、いくつかの実装形態は、スカラー出力416を受信する随意の警報システム418を備えてよい。他の実装形態では、スカラー出力416は、後処理を伴わずに出力データインターフェース420に直接渡されてよい。後者の場合には、スカラー出力416は、入力データインターフェース412への元の要求に対する応答の中にパッケージ化されてよい。どちらの場合も、スカラー出力416から導出される出力データ422が、機械学習システム402の出力として提供される。トランザクションデータの最終処理を可能にするために出力データ422が戻される。たとえば、出力データ422は、支払いプロセッササーバ140に戻されてよく、トランザクションを承認または拒絶するための決定の基礎として使用されてよい。実装要件に応じて、ある場合には、警報システム418は、スカラー出力416を処理して、トランザクションが承認されるべきかそれとも拒絶されるべきかを示すバイナリ値を戻してよい(たとえば、「1」は、拒絶するに等しい)。場合によっては、スカラー出力416にしきい値を適用することによって決定が行われてよい。このしきい値はコンテキスト依存であり得る。場合によっては、警報システム418および/または出力データインターフェース420はまた、説明データ(たとえば、上記で説明した「理由コード」)および/または元の入力データなどの追加の入力を受信し得る。出力データインターフェース420は、(たとえば、少なくともロギングおよび/または後の検討のために)これらの入力をスカラー出力416と組み合わせる、出力データ422に対する出力データパッケージを生成し得る。同様に、警報システム418によって生成される警報は、たとえば、スカラー出力416に加えて、上述の追加の入力を含んでよく、かつ/または追加としてそれに基づいてよい。
【0043】
好ましい実装形態では、機械学習システム402は、狭く規定された時間範囲内でボリュームが大きいトランザクションを処理するために「オンライン」モードで使用される。たとえば、正常処理条件では、機械学習システム402は、7~12ms以内に要求を処理してよく、毎秒1000~2000個の要求を管理できる場合がある(これらは実世界の動作条件からの中位の制約である)。しかしながら、機械学習システム402はまた、たとえば、選択された履歴トランザクションを入力データインターフェース412に提供することによって、「オフライン」モードで使用されてもよい。オフラインモードでは、入力データは、バッチ(すなわち、グループ)をなして入力データインターフェースに渡されてよい。機械学習システム402はまた、トランザクションだけでなく、またはトランザクションの代わりに、エンティティに対するスカラー出力を提供する機械学習モデルを実施できる場合がある。たとえば、機械学習システム402は、識別されたユーザ(たとえば、カード保有者または支払い口座名義人)または識別された小売商に関連する要求を受信してよく、ユーザまたは小売商が不正であり、悪意があり、または異常であるという尤度(すなわち、一般的な脅威またはリスク)を示すスカラー出力416を提供するように構成されてよい。たとえば、これは、継続的もしくは周期的な監視プロセスの一部、または(たとえば、サービスに対する適用の一部としての)1回限りの要求を形成し得る。特定のエンティティに対するスカラー出力の提供は、トランザクションデータ(たとえば、
図3Aの中であるべきものと類似の、エンティティのためのトランザクションデータ)のシーケンス内の、それを含む最後の承認済みのトランザクションまでのトランザクションデータのセットに基づいてよい。
【0044】
例示的なトランザクションプロセスフロー
図5Aおよび
図5Bは、2つの可能な例示的なトランザクションプロセスフロー500および550を示す。これらのプロセスフローは、
図1A~1Cに示す例示的なトランザクションプロセスシステム100、102、104ならびに他のシステムのコンテキストにおいて行われてよい。プロセスフロー500および550は、機械学習トランザクション処理システムが適用され得るコンテキストの一例として提供されるが、すべてのトランザクションプロセスフローが必ずしも
図5Aおよび
図5Bに示すプロセスに従うとは限らず、プロセスフローは、実装形態間で、システム間で、かつ経時的に変わる場合がある。例示的なトランザクションプロセスフロー500および550は、2つの可能な事例、すなわち、トランザクションが承認されるトランザクションプロセスフロー500によって表される第1の事例、およびトランザクションが拒絶されるトランザクションプロセスフロー550によって表される第2の事例を反映する。各トランザクションプロセスフロー500、550は、相互作用する5つのシステムおよびデバイス、すなわち、POSまたはユーザデバイス502、商業システム504、支払いプロセッサ(PP)システム506、機械学習(ML)システム508、および発行銀行システム510の同じセットを伴う。POSまたはユーザデバイス502は、クライアントデバイス110のうちの1つを備えてよく、商業システム504は、商業サーバ130を備えてよく、支払いプロセッサシステム506は、支払いプロセッササーバ140を備えてよく、機械学習システム508は、機械学習システム160、210、および/または402の実装形態を備えてよい。発行銀行システム510は、発行銀行に代わってトランザクション機能を実施する1つまたは複数のサーバデバイスを備えてよい。相互作用する5つのシステムおよびデバイス502~510は、ネットワーク120などの1つまたは複数の内部通信チャネルまたは外部通信チャネルによって通信可能に結合され得る。場合によっては、これらのシステムのうちのいくつかのシステムが組み合わせられてよく、たとえば、発行銀行はまた、支払いプロセッサの働きをしてよく、そのため、システム506および510は、共通のシステムとともに実装され得る。他の場合には、特に小売商に対して(たとえば、支払いプロセッサまたは発行銀行を伴うことなく)類似のプロセスフローが実行されてよい。この場合、機械学習システム508は、商業システム504と直接通信し得る。これらの変形形態では、一般的な機能的トランザクションプロセスフローは以下で説明するものと類似のままであってよい。
【0045】
図5Aと
図5Bの両方におけるトランザクションプロセスフローは、いくつかの共通の(すなわち、共有される)プロセス512~528を備える。ブロック512において、POSまたはユーザデバイス502がトランザクションを開始する。POSデバイスの場合、このことは、レジ係が電子支払いを行うことを試みるためにフロントエンドデバイスを使用することを備えてよく、ユーザデバイス502の場合、このことは、ユーザがクレジットカードもしくはデビットカードまたはオンライン支払いアカウントを使用してオンライン購入を行うこと(たとえば、オンラインバスケット内の「完了」をクリックすること)を備えてよい。ブロック514において、商業システム504によって電子データとして支払い詳細が受信される。ブロック516において、トランザクションは、商業システム504によって処理され、支払いを許可すべき支払いプロセッサシステム506へ要求が行われる。ブロック518において、支払いプロセッサシステム506は、商業システム504から要求を受信する。要求は、プロプライエタリな通信チャネルを介して、または公衆ネットワークを介したセキュアな要求(たとえば、インターネットを介したHTTPS要求)として行われてよい。支払いプロセッサシステム506は、次いで、トランザクションを処理する際の使用のためのスコアまたは確率を求めて機械学習システム508へ要求を行う。ブロック518は、要求の一部として機械学習システム508へ送られるトランザクションデータと組み合わせるために補助データを取り出すことを追加の備えてよい。他の場合には、機械学習システム508は、(たとえば、
図2Aおよび
図2Bの構成と類似の)補助データを記憶するデータ記憶デバイスへのアクセスを有してよく、そのため、内部動作の一部として(たとえば、トランザクションデータ内で提供され、かつ/または実装された機械学習モデルの一部として定義されるような、識別子に基づいて)このデータを取り出す。
【0046】
ブロック520は、支払いプロセッサシステム506からの任意の要求の前に行われるモデル初期化動作を示す。たとえば、モデル初期化動作は、定義済みの機械学習モデル、および定義済みの機械学習モデルをインスタンス化するパラメータをロードすることを備えてよい。ブロック522において、機械学習システム508は、(たとえば、
図4の中の412などのデータ入力インターフェースを介して)支払いプロセッサシステム506から要求を受信する。ブロック522において、機械学習システム508は、ブロック520において初期化された機械学習モデルの適用の前に、任意の定義済みの前処理を実行してよい。たとえば、トランザクションデータが依然として文字列または文字トランザクション記述によって識別される小売商などの文字データのままである場合には、これは、(たとえば、ルックアップ演算もしくは他のマッピングを介して文字列カテゴリーデータを識別子に変換することによって、かつ/または文字もしくは文字のグループをベクトル埋込みにマッピングすることによって)好適な構造化数値データに変換されてよい。次いで、ブロック524において、機械学習システム506は、受信された要求から導出された入力データをモデルに供給して、インスタンス化された機械学習モデルを適用する。このことは、
図4を参照しながら説明したような機械学習モデルプラットフォーム414を適用することを備えてよい。ブロック526において、インスタンス化された機械学習モデルによってスカラー出力が生成される。これは、機械学習システム508において「承認」もしくは「拒絶」バイナリ決定を決定するために処理されてよく、または好ましい場合には、ブロック518において行われた要求への応答として支払いプロセッサシステム506に戻される。
【0047】
ブロック528において、機械学習システム508の出力が、支払いプロセッサシステム506によって受信され、トランザクションを承認または拒絶するために使用される。
図5Aは、機械学習システム508の出力に基づいてトランザクションが承認されるプロセスを示し、
図5Bは、機械学習システム508の出力に基づいてトランザクションが拒絶されるプロセスを示す。
図5Aでは、ブロック528において、トランザクションが承認される。次いで、ブロック530において、発行銀行システム532へ要求が行われる。ブロック534において、発行銀行システム532は、要求を承認または拒絶する。たとえば、発行銀行システム532は、エンドユーザまたはカード所有者がトランザクションコストをカバーするための十分な資金および承認を有する場合、要求を承認してよい。場合によっては、発行銀行システム532は、第2のレベルのセキュリティを適用してよく、ただし、発行銀行が、支払いプロセッサが機械学習システム508を使用することによって実行される異常検出に依拠する場合、このことは必要とされなくてよい。ブロック536において、発行銀行システム510からの許可が支払いプロセッサシステム506に戻され、支払いプロセッサシステム506は、ブロック538において商業システム504へ応答を送り、商業システム504は、ブロック540においてPOSまたはユーザデバイス502に応答する。ブロック534において発行銀行システム510がトランザクションを承認する場合、トランザクションは完了されてよく、肯定的な応答は、商業システム504を介してPOSまたはユーザデバイス502に戻した。エンドユーザは、POSまたはユーザデバイス502のスクリーン上の「許可済み」メッセージとして、これに遭遇し得る。商業システム504は、次いで、購入を完了し得る(たとえば、購入を遂行するための内部処理を開始してよい)。
【0048】
もっと後の時点において、商業システム504および機械学習システム508のうちの1つまたは複数が、たとえば、前の例におけるトランザクションデータ146、240、または300の一部として、トランザクションに関係するデータをセーブしてよい。このことは、破線ブロック542および544において示される。トランザクションデータは、機械学習システム508の出力(たとえば、スカラー不正行為または異常確率)およびトランザクションの最終結果(たとえば、トランザクションが承認されたのかそれとも拒絶されたのか)のうちの1つまたは複数と一緒にセーブされてよい。セーブされるデータは、機械学習システム508によって実装される機械学習モデルのためのトレーニングデータとしての(たとえば、
図8および
図10のうちの1つまたは複数に示すトレーニングデータのためのベースとしての)使用のために記憶されてよい。セーブされるデータはまた、ブロック524の将来の反復の一部としてアクセスされてよく、たとえば、将来の補助データの一部を形成し得る。場合によっては、トランザクションの時間においてトランザクションの最終結果または最終成果が知られていない場合がある。たとえば、トランザクションは、アナリストおよび/もしくは自動化システムによる後の検討を介して、またはユーザからのフィードバックに基づいて(たとえば、ユーザが、不正行為を報告するか、または支払いカードもしくはアカウントがいくつかの日付から危険にさらされたことを示すとき)、異常としてラベル付けされるだけでよい。これらの場合には、機械学習システム508をトレーニングする目的のためのグラウンドトゥルースラベルが、トランザクション自体に続いて経時的に収集されてよい。
【0049】
次に
図5Bの代替プロセスフローを参照すると、この場合、機械学習システム508および支払いプロセッサシステム506のうちの1つまたは複数は、機械学習システム508の出力に基づいてトランザクションを拒絶する。たとえば、機械学習システム508のスカラー出力が、取り出されたしきい値を超える場合、トランザクションが拒絶されてよい。ブロック552において、支払いプロセッサシステム506は、商業システム504への応答を発行し、そうした応答がブロック554において受信される。ブロック554において、商業システム504は、トランザクションが完了することを防止するためのステップに着手し、適切な応答をPOSまたはユーザデバイス502に戻す。この応答はブロック556において受信され、エンドユーザまたは顧客には、たとえば、スクリーン上の「拒絶済み」メッセージを介して、彼らの支払いが拒絶されたことが通知され得る。エンドユーザまたは顧客は、異なる支払い方法を使用するように促されてよい。
図5Bに示さないが、場合によっては、発行銀行システム510には、特定の口座名義人に関係するトランザクションが拒絶されたことが通知され得る。発行銀行システム510には、
図5Bに示すプロセスの一部として通知されてよく、または周期的な(たとえば、毎日の)更新の一部として通知されてもよい。とはいえ、トランザクションは、(承認されなかったとき)トランザクションデータ146、240、または300の一部にならない場合があり、ブロック544によって示すように少なくとも機械学習システム508によって依然としてロギングされ得る。たとえば、
図5Aに関して、トランザクションデータは、機械学習システム508の出力(たとえば、スカラー不正行為または異常確率)およびトランザクションの最終結果(たとえば、トランザクションが拒絶されたこと)と一緒にセーブされてよい。
【0050】
機械学習システムのための第1の例示的な構成
図1A~
図1C、
図2Aおよび
図2B、
図4、ならびに
図5Aおよび
図5Bの中の機械学習システム160、210、402、および508などの、本明細書で説明するいくつかの例は、本明細書で説明するトランザクション処理を提供するために様々な機械学習モデルおよび構成が使用されることを可能にする、モジュール式プラットフォームとして実装されてよい。このモジュール式プラットフォームは、技術改善として、かつ/または利用可能なデータの特定の特性に基づいて、様々な機械学習モデルおよび構成が使用されることを可能にし得る。本明細書において、機械学習システムの2つの例示的な構成が提供され、第1の構成が
図6A~
図6Cに示され、第2の構成が
図7に示される。これらは独立してかつ別個に使用されてよい。
図6A~
図6Cの第1の構成はニューラルネットワークアーキテクチャを示し、
図7の第2の構成はランダムフォレスト実装形態を示す。
【0051】
図6Aは、機械学習システム600のための第1の例示的な構成を示す。
図6Aにおいて、機械学習システム600は入力データ601を受信し、これをスカラー出力602にマッピングする。この一般的な処理は、前の例を参照しながら説明したような同じフレームワークに従う。機械学習システム600は、第1の処理ステージ603および第2の処理ステージ604を備える。
図6Bにおいて第1の処理ステージ603がより詳細に示され、
図6Cにおいて第2の処理ステージ604がより詳細に示される。提案されたトランザクションに対するスカラー出力602を生成するために、少なくとも提案されたトランザクションに関連するデータに機械学習システム600が適用される。スカラー出力602は、提案されたトランザクションが挙動の異常を提示する、たとえば、提案されたトランザクションが、アクションまたはイベントの予想されるかまたは典型的なパターンとは異なる、アクションまたはイベントのパターンを具現する、尤度を表す。場合によっては、スカラー出力602は、提案されたトランザクションがアクションのシーケンスの中の異常を提示する確率を表し、ここで、アクションは、少なくとも以前のトランザクションを含み、エンティティと1つまたは複数のコンピュータシステムとの間の他の相互作用を同じく含むことがある。スカラー出力602は、たとえば、
図5Aおよび
図5Bを参照しながら説明したように、提案されたトランザクションに対する承認決定を完了するために使用されてよく、提案されたトランザクションを承認すべきかそれとも拒絶すべきかを決めるために使用されてよい。
【0052】
図6Aにおいて、入力データ601は、トランザクション時間データ606およびトランザクション特徴データ608を備える。トランザクション時間データ606は、
図3Bに示すものなどのタイムスタンプ、またはトランザクションの日付および/もしくは時間を表す任意の他のデータフォーマットから導出されるデータを備えてよい。トランザクションの日付および/または時間は、110もしくは502などのクライアントコンピューティングデバイスにおいてトランザクションが開始された時間として設定されてよく、または、たとえば、
図5Aおよび
図5Bの中のブロック522において受信されるような要求の時間と類似の、機械学習システム600において要求が受信された時間として設定されてもよい。ある場合には、
図6Cを参照しながら後で示すように、トランザクション時間データ606は、現在の提案されたトランザクション、および1つまたは複数の事前トランザクションの履歴セットなどの、複数のトランザクションに対する時間データを備えてよい。1つまたは複数の事前トランザクションの履歴セットのための時間データは、要求とともに受信されてよく、かつ/または機械学習システム600に通信可能に結合された記憶デバイスから取り出されてよい。本例では、トランザクション時間データ606は、1つまたは複数のニューラルネットワークアーキテクチャの適用のための相対時間データに変換される。詳細には、トランザクション時間データ606は、時間差値のセットに変換され、ここで、時間差値は、現在の提案されたトランザクションと1つまたは複数の事前トランザクションのうちの各事前トランザクションとの間の時間差を表す。たとえば、その時間差は、秒単位、分単位、または時間単位での正規化された時間差を備えてよい。時間差値は、提案されたトランザクションに対するタイムスタンプから事前トランザクションの1つまたは複数のタイムスタンプを減算することによって計算され得る。時間差値は、最大既定時間差で除算することおよび/または最大時間差値においてクリップされることによって正規化され得る。ある場合には、1つまたは複数の事前トランザクションが、既定の時間範囲(たとえば、
図3Aの中のセット320)および/または既定の個数のトランザクションから選択されてよい。この既定の時間範囲、および/または既定の個数のトランザクションの最大時間差が、時間差値を正規化するために使用されてよい。
【0053】
推定モードでは、機械学習システム600は、第1の処理ステージ603および第2の処理ステージ604を使用して、入力データ601から特徴のセットを検出する。第1の処理ステージ603と第2の処理ステージ604の両方からの出力データが、次いで、スカラー値602を計算するために使用される。
図6Aにおいて、機械学習システム600は第1の多層パーセプトロン610を備える。第1の多層パーセプトロンは、少なくとも第1の処理ステージ603の前に、提案されたトランザクションのためのデータを前処理するための複数のニューラルネットワーク層(たとえば、1~10個の層)を備える、完全接続ニューラルネットワークアーキテクチャを備える。ここでは多層パーセプトロンが説明されるが、いくつかの実装形態では、(たとえば、受信トランザクションデータ608がすでに好適なフォーマットをなす場合)前処理は省略されてよく、かつ/または線形マッピングの単一の層だけが提供されてよい。いくつかの例では、前処理は、入力トランザクションデータのための「埋込み」層または「初期マッピング」層の形態として見られてよい。場合によっては、第1の多層パーセプトロン610のニューラルネットワーク層のうちの1つまたは複数は、受信トランザクションデータ608の学習済みのスケーリングおよび/または正規化を提供し得る。概して、第1の多層パーセプトロン610の完全接続ニューラルネットワークアーキテクチャは、提案されたトランザクションに関連する入力データをさらなる処理のための特徴ベクトルに変換するステージを、学習済みの第1の特徴が前処理することを表す。場合によっては、完全接続ニューラルネットワークアーキテクチャは、トランザクション特徴データ608の要素間のいくつかの関係、たとえば、いくつかの相関を学習してよく、これらの相関を考慮に入れる効率的な表現を出力してよい。ある場合には、入力トランザクションデータ608は、整数および/または符号小数点数を備えてよく、第1の多層パーセプトロン610の出力は、0と1との間の値のベクトルを備えてよい。第1の多層パーセプトロン610の要素またはユニットの個数(すなわち、出力ベクトルサイズ)は、構成可能なハイパーパラメータとして設定されてよい。場合によっては、要素またはユニットの個数は32個と2048個との間であってよい。
【0054】
入力トランザクションデータ608が、(たとえば、クライアントデバイス、POSデバイス、商業サーバデバイス、および支払いプロセッササーバデバイスのうちの1つまたは複数を介して受信されるような)提案されたトランザクションからのデータ、および提案されたトランザクションに関連するデータパケットの中に含まれない、提案されたトランザクションに関連するデータを備えてよいことに留意されたい。たとえば、
図1A~
図1Cならびに
図2Aおよび
図2Bを参照しながら説明したように、入力トランザクションデータ608は、(148および242などの)補助データをさらに備えてよく、ここで、補助データは、(
図1Cに示すような)機械学習システム600によって、かつ/または(
図1Aまたは
図1Bに示すような)支払いプロセッササーバ140によって取り出される。入力トランザクションデータ608の中に含まれる厳密な内容は、実装形態間で変わることがある。本例は、トランザクションデータの厳密な形式ではなく、そのデータの処理のための一般的な技術的アーキテクチャに関係している。概して、機械学習システム600がニューラルネットワーク層のセットを備えるとき、パラメータは、どんな入力データ構成でも望まれることに基づいて、またはどんな入力データが利用可能であるのかに基づいて学習され得る。本例は、本明細書で説明する速度および規模におけるトランザクション処理を可能にするための、そのような技術的アーキテクチャの工学設計に関係している。
【0055】
図6Aの例では、トランザクション時間データ606、および第1の多層パーセプトロン610の出力は、第1の処理ステージ603によって受信される。第1の処理ステージ603は、
図6Aの中の処理層Aとして示される再帰型ニューラルネットワークアーキテクチャ620を備える。再帰型ニューラルネットワークアーキテクチャ620は、トランザクション時間データ606、および第1の多層パーセプトロン610の出力を受信し、ニューラルネットワークマッピング(たとえば、1つまたは複数のパラメータ化関数)を通して出力データを生成する。たとえば、再帰型ニューラルネットワークアーキテクチャ620は、内部的に保持される状態を使用して、トランザクション時間データ606、および第1の多層パーセプトロン610の出力をマッピングして、既定のサイズの固定サイズベクトル出力にする。再帰型ニューラルネットワークアーキテクチャ620の出力は、次いで、第2の処理ステージ604によって受信され、スカラー出力602を生成するために使用される。再帰型ニューラルネットワークアーキテクチャ620に対する例示的な構成が
図6Bに示される。概して、第1の処理ステージ603は、トランザクションデータの時系列データ特性に特に適している、間隔が不規則な時間データの特別に適合された表現を生み出す。たとえば、時系列処理に対する、比較に基づくニューラル手法は、しばしば、間隔が規則的な時間サンプルを必要とする。これは、支払い要求の非同期の性質に合わない。場合によっては、再帰型ニューラルネットワークアーキテクチャ620は学習可能な関数を備えてよい。いくつかの実装形態にとって好ましいことがある他の場合には、再帰型ニューラルネットワークアーキテクチャ620は、時間減衰関数などの関数を実装するために、固定されるかまたは提供されるパラメータを使用し得る。この事例におけるパラメータは、もっと広いモデルの特性に基づいてかつ領域知識によって構成されてよい。いずれの場合も、再帰型ニューラルネットワークアーキテクチャ620のパラメータは、間隔が不均等な時間間隔におけるトランザクションに対する特徴の知的集約を可能にし得る。
【0056】
図6Aの第2の処理ステージ604は、1つまたは複数のアテンションニューラルネットワークアーキテクチャ660を備える。複数のアテンションニューラルネットワークアーキテクチャが使用される場合には、たとえば、多重ヘッド型アテンション構成を提供するために、並行して提供されるb個のアーキテクチャがあってよく、ここで、b個のアーキテクチャの各々は、同じ入力を受信するが異なるニューラルネットワークパラメータを有し、それらが、同じデータから特徴の異なるセットを抽出することを可能にする。より詳細には、異なるアテンションヘッドは、異なる時間期間に焦点を当ててよく、たとえば、1つのアテンションヘッドは、過去の1時間からのトランザクションに焦点を当てる場合があるが、別のアテンションヘッドは、過去の1か月からのトランザクションに焦点を当てる場合がある。このようにして、第1のアテンションニューラルネットワークアーキテクチャは、少なくとも、トランザクション時間データ606、および再帰型ニューラルネットワークアーキテクチャ620からの出力データを受信し、これを使用して出力データを生成する。第2の処理ステージ604のために1つの「ヘッド」しか使用されない場合、この出力データは、スカラー値602の生成のために第2の多層パーセプトロン690に渡される。第2の処理ステージ604のために複数の「ヘッド」が使用される場合、アテンションニューラルネットワークアーキテクチャごとの出力データは、第2の処理ステージ604のための出力データを形成するために組み合わせられてよい。ある場合には、アテンションニューラルネットワークアーキテクチャごとの出力データは、少なくとも連結されてよい。さらなる1つの事例では、次元数低減のために、連結された出力データが少なくとも1つの完全接続ニューラルネットワーク層に入力されてよい。たとえば、この機能は、第2のマルチプレーヤパーセプトロン690によって提供され得る。アテンションニューラルネットワークアーキテクチャ660ごとの例示的な構成が
図6Cに示される。第1の多層パーセプトロン610および/または第2の多層パーセプトロン690は、一例として、実装形態に応じて(ReLU関数などの対応する活性化関数を有する)1~10個の間の高密度層または完全接続層を備えてよい。再び、第1の多層パーセプトロン610および/または第2の多層パーセプトロン690のための要素またはユニット(チャネルと呼ばれることがある)の個数は、32個から2048個までにわたることがあり、層の間で変化してよく、たとえば、入力から出力まで減少してよい。
【0057】
図6Aにおいて、少なくとも、第2の処理ステージ604の、すなわち、1つまたは複数のアテンションニューラルネットワークアーキテクチャ660からの出力データの形態をなす出力は、第2のマルチプレーヤパーセプトロン690によってスカラー出力602にマッピングされる。1つまたは複数のアテンションニューラルネットワークアーキテクチャ660のうちの最後のものからの出力データは、既定の長さ(たとえば、1~1024要素)のベクトルを備えてよい。既定の長さは、第1の多層パーセプトロン610の出力と同じ長さであってよく、または多重ヘッドアテンションが使用される場合、(たとえば、複数の出力ベクトルが連結されるとき)もっと長くてもよい。ある場合には、各アテンションヘッドの出力長(すなわち、サイズ)は、別個のハイパーパラメータとして設定されてよい。いくつかのテスト構成では、アテンションヘッドごとの出力サイズは、約5~約500要素またはユニットに及んだ。第2のマルチプレーヤパーセプトロン690は、少なくとも、第2の処理ステージ604からの出力データを受信するために、また出力データをスカラー値602にマッピングするために、複数のニューラルネットワーク層を備える完全接続ニューラルネットワークアーキテクチャを備える。これは、一連の次元数低減層を備えてよい。複数のニューラルネットワーク層の中の最後の活性化関数は、出力を0~1という範囲にマッピングするためのシグモイド活性化関数を備えてよい。第2のマルチプレーヤパーセプトロン690は、複数のアテンションヘッドの各々によって出力される特徴の間の相関を抽出するように、また1つまたは複数の非線形関数を適用して最後にスカラー値602を出力するようにトレーニングされ得る。
【0058】
図6Aの中の破線によって示すように、いくつかの変形形態では、第1の処理ステージ603および第2の処理ステージ604のうちの1つまたは複数をそれぞれバイパスする、1つまたは複数のスキップ接続692、694が提供されてよい。第1のスキップ接続692は第1の処理ステージ603をバイパスし、第2のスキップ接続は第2の処理ステージ604をバイパスする。これらのようなスキップ接続は、(たとえば、勾配が各層をバイパスすることを可能にし、そのため、「勾配消失」問題を回避することによって)トレーニングを改善し得る。それらはまた、もっと後の層が中間層のもっと早い入力と出力との間の相関に対して演算することを可能にすることによって、確度を改善し得る(たとえば、アテンション層660単体の出力のみよりも「良好な」決定を行うために、第1の多層パーセプトロン610、およびアテンション層660のうちの1つによって出力される、特徴の間の単純なマッピングが第2の多層パーセプトロン690によって使用可能である、いくつかの事例があり得る)。
【0059】
場合によっては、正規化されたトランザクションデータ特徴ベクトルと見なされてよい、第1の多層パーセプトロン610の出力は、1つまたは複数のアテンションニューラルネットワークアーキテクチャ660に入力を提供するために、再帰型ニューラルネットワークアーキテクチャ620の出力データと連結されてよく、または別のやり方で組み合わせられてよい。ある場合には、第1のスキップ接続692は、残差接続を備えてよい。同様に、場合によっては、正規化されたトランザクションデータ特徴ベクトルと見なされてよい、第1の多層パーセプトロン610の出力は、第2の多層パーセプトロン690に入力を提供するために、1つまたは複数のアテンションニューラルネットワークアーキテクチャ660の出力データと連結されてよく、または別のやり方で組み合わせられてよい。ある場合には、第2のスキップ接続694は、残差接続を備えてよい。概して、
図6Aにおいて、第1の処理ステージ603(すなわち、層A)の周囲の第1のスキップ接続692、および第2の処理ステージ604(すなわち、層B)の周囲の第2のスキップ接続694が破線を用いて図示され、スキップ接続692、694の両方が設けられる場合、事実上、第1の処理ステージ603と第2の処理ステージ604の両方(すなわち、組み合わせられた層Aおよび層B)の周囲にスキップ接続がある。残差接続は、ニューラルネットワーク層がマッピング関数を学習する容易さを改善し得る。スキップ接続が使用されるかどうか、およびそれらが連結、加算、または別の演算子(たとえば、減算または乗算)を介して結びつくかどうかは、機械学習システム600のための構成データの中のハイパーパラメータとして設定されてよく、特定の実装形態に対する実験に基づいて設定されてよい。
【0060】
図6Aの構成は、1秒未満のトランザクション処理のために必要とされる、入力トランザクションデータに対する高速推定にとって、特に有益であるものと見出されている。たとえば、現代の深層学習規格によってネットワークアーキテクチャ全体の中の層の数は少なく、そのことは、生のトランザクションデータに対して推定を実行するときの低レイテンシに寄与する。第1の多層パーセプトロン610は、残りの構成の高い確度を可能にするとともに構成の安定なトレーニングを容易にする形態でそれらが提供されるように、たとえば、学習可能なパラメータを使用して、トランザクションデータを前処理するように有利な構成される。現在のトランザクションと事前トランザクションとの間の相対時間差の使用は、スカラー出力を決定するために構成によって使用可能なフォーマットで時間情報が定量化されることを可能にし、(大きいかまたは扱いにくい場合がある)絶対的なタイムスタンプ値に依存しない効率的な方法で時間が表されることを可能にする。その上、絶対的なタイムスタンプ値への依存は、エンティティおよび/または時間期間にわたる一般化可能性の欠如につながる場合があり、そうした欠如は、機械学習モデルの劣悪な性能につながる場合がある。第1の処理ステージ620は、第1の多層パーセプトロン610によってステートフルに出力されるトランザクション特徴ベクトルを処理するように構成され、以前の状態の使用は、提案されたトランザクションに関する時間差データに対して演算するパラメータを通して決定され、たとえば、再帰型ニューラルネットワークアーキテクチャ620は、提案されたトランザクションと以前のトランザクションとの間の時間ギャップに基づいて、以前のトランザクションデータを使用するように(たとえば、どのように「覚えているのか」または「忘れるのか」)構成され、ここで、以前のトランザクションデータは、複数の以前のトランザクションに対するトランザクション特徴ベクトルの集約された関数である。したがって、第1の処理ステージ603は、以前のトランザクションに関して潜在的に無限の範囲を有し、この範囲に基づいて特徴を抽出するように構成される。詳細には、再帰型ニューラルネットワークアーキテクチャ620は、そのエンティティに対する以前の状態ベクトル(
図6Bの中の以前の反復622からの入力によって示される)を介して、同じエンティティに対する以前のトランザクションに「気づいている」だけである。状態ベクトルは固定されたサイズを有し、厳密なサイズはモデルのハイパーパラメータを備える(たとえば、これは4~128要素という範囲の中にあってよい)。したがって、再帰型ニューラルネットワークアーキテクチャ620は、この固定サイズベクトルの形態内で、任意の時点までの任意のエンティティの過去の挙動を要約しなければならない。これは、次いで、第2の処理ステージ604と対比し、第2の処理ステージ604は、すべてのイベント、またはイベント時間に基づくイベントのサブセットなどの、エンティティに対する履歴イベントにアクセスする。場合によっては、第2の処理ステージ604は、固定された入力範囲(たとえば、第2の処理ステージ604が考慮する、固定された個数の入力特徴ベクトル)を有してよいが、その固定された入力範囲にわたって(自己)アテンションを適用してよい。場合によっては、第2の処理ステージ604の入力範囲は、イベント時間の観点から規定されてよく、たとえば、アテンションヘッドは、過去1か月以内に起こった、同じエンティティに対するイベントしか見ない場合があり、ここで、各アテンションヘッドの時間範囲はハイパーパラメータとして規定される。場合によっては、第2の処理ステージ604の入力範囲は、時間制限を有しなくてよく、そのため、同じエンティティに対するすべての履歴イベントを取り入れてよい。選ばれるいかなる構成も、エンティティごとに利用可能なイベントデータ項目の平均の個数、および/または任意の処理リソース制約に依存し得る(たとえば、時間制限アテンションヘッドは、より高速であってよく、実装するのにより容易であってよい)。
【0061】
第1の処理ステージ603および第2の処理ステージ604は、スカラー値602の決定のために情報が抽出されることを可能にする、差別化された、しかも相補的な処理を、そのように適用する。第2の処理ステージ604は、大規模に高速推定が可能となる効率的な方法でニューラルアテンションを適用する。実際、並列化されたトランザクション処理の規模(たとえば、
図6Aに示すような推定のための、かつサーバコンピュータデバイス上で毎秒1000~2000トランザクションを管理するために並列化可能な、ミリ秒)に対処するために、第1の処理ステージ603および第2の処理ステージ604の、両方のニューラルネットワークアーキテクチャが高速計算のために構成される。たとえば、第1の処理ステージ603と第2の処理ステージ604の両方が、比較に基づくニューラルネットワークアーキテクチャにおいて使用されるいくつかの構成要素を省略することは、しかもなお正確な推定を可能にする。
【0062】
第1の処理ステージ603の再帰型ニューラルネットワークアーキテクチャ620のための例示的な構成が
図6Bに示される。再帰型ニューラルネットワークアーキテクチャ620は、入力データを受信するための3つの入力インターフェース、すなわち、提案されたトランザクションと事前トランザクションとの間の時間差を出力するために使用可能なデータを受信するための時間差インターフェース606、提案されたトランザクション用のデータを受信するためのトランザクションデータ入力インターフェース618、および以前の反復に対する状態データを受信するための状態入力インターフェース622を備える。これらのインターフェースは、受動インターフェースを備えてよく、たとえば、参照されるメモリロケーションを介してデータを受信するメソッドAPIを備えてよく、かつ/または能動インターフェースを備えてよく、たとえば、(たとえば、絶対時間データに基づいて時間差を計算する)前処理がすでに適用されていない場合、前処理を適用してよい。機能的には、動作は同じである。時間差インターフェース606は、現在の提案されたトランザクションiと以前のまたは事前トランザクションi-1との間の時間間隔を表すデータを備える時間間隔Δt
i,i-1を受信(または、受信された時間データに基づいて計算)してよく、ただし、iは、再帰型ニューラルネットワークアーキテクチャ620に対する反復インデックスを表す。時間間隔Δt
i,i-1の厳密な形式は、実装形態間で変わることがある。第iのトランザクションと第i-1のトランザクションとの間の間隔が示されるが、場合によっては、たとえば、第jのトランザクションに対する状態の適切な取出しを用いて、第iのトランザクションと第jのトランザクション(ただし、i>j)との間の、異なる間隔が使用されてよい。時間間隔Δt
i,i-1 606は、Unixエポック間の秒単位での整数値、時間単位での10進の期間を表す浮動小数点値、各要素が整数値または0と1との間の正規化された値である、秒、分、時間、日、月、年のベクトル、または埋込み層からの時間差埋込みのうちの1つまたは複数として表されてよい。好ましい事例では、時間間隔Δt
i,i-1 606は、同じエンティティに対する以前のトランザクションと提案されたトランザクションとの間で経過した秒数を表すスカラーフロート(すなわち、浮動小数点)値を備えてよい。別の場合には、時間差インターフェース606は、提案されたトランザクションおよび事前トランザクションのためのタイムスタンプデータを受信してよく、時間間隔Δt
i,i-1のデータ表現を出力してよい。トランザクションデータインターフェース618は、たとえば、各要素が0と1との間の正規化された値を備えて、第1の多層パーセプトロン610によって出力されるようなトランザクション特徴ベクトル(すなわち、固定長ベクトル)を受信してよい。
【0063】
再帰型ニューラルネットワークアーキテクチャ620は、メモリまたは通信可能に結合された記憶デバイスから取り出され得る、記憶された状態を有する。再帰型ニューラルネットワークアーキテクチャ620は、状態入力インターフェース622において、以前の反復(たとえば、i-1)からの状態データを受信し、状態出力インターフェース624において、現在の反復(たとえば、i)に対する状態データを出力する。状態入力インターフェース622において受信される状態データは、事前トランザクションを含む以前のトランザクションのセットのためのデータへの、再帰型ニューラルネットワークアーキテクチャ620の以前の適用に続いて取り出される。概して、再帰型ニューラルネットワークアーキテクチャ620は、一度に(すなわち、反復ごとに)1つのイベント(たとえば、1つのトランザクションまたはトランザクション関連イベント)に対して動作するように構成され、
図6Bは、(効率を得るために計算は複数のイベントおよび/またはエンティティにわたってベクトル化および/または並列化され得るが)共通の(すなわち、同じ)エンティティに対する単一のイベントに対して規定されるような概略的処理を示す。
図6Bの再帰型ニューラルネットワークアーキテクチャ620は、[current_input, previous_state]から[current_output, new_state]を計算する処理層をそのように備え、ここで、それらのデータ項目の各々は、固定長ベクトル表現を備えてよい。現在の出力(たとえば、630)が、現在のイベントに対する入力だけでなく、同じエンティティに対する履歴イベントのセットからの入力にも依存するという事実は、層の再帰的な性質の特性である(たとえば、現在の各出力は以前の状態に依存し、以前の状態はさらに以前の状態に依存し、以下同様である)。
【0064】
再帰型ニューラルネットワークアーキテクチャ620は、時間差入力インターフェース606によって出力されるデータに基づいて以前の反復に対する状態データを修正するための忘却ゲート626を備える。たとえば、時間差インターフェース606は、時間間隔Δt
i,i-1を表すデータ(すなわち、提案されたトランザクションと事前トランザクションとの間の時間差を表すデータ)を出力してよく、これが忘却ゲート626への入力として使用される。忘却ゲート622内で、忘却ゲートのためのアクティブ化ベクトルを生成するために、時間間隔Δt
i,i-1を表すデータに時間差符号化φ
d628が適用される。時間差符号化φ
d628は、時間減衰関数などのパラメータ化関数を実施し得る。ある場合には、時間差符号化φ
d628は、形式f(s) = [e
(-s / w_1), e
(-s / w_2),..., e
(-s / w_d)]のベクトル化指数時間減衰関数として、すなわち、秒単位での「減衰長」を表す重みのセットを備える[w_1, w_2…w_d]を用いた一連のパラメータ化時間減衰計算として適用されてよく、ただし、dは再帰状態ベクトルのサイズである。この場合、Δt
i,i-1は、長さdのベクトルを出力するためにsとしての関数に渡され、たとえば、同じエンティティに対する以前のイベント(たとえば、トランザクション)と現在のイベント(たとえば、提案されたトランザクション)との間で経過した秒数を表すスカラーフロート値として渡されてよい。時間差符号化φ
d628は、時間間隔Δt
i,i-1の表現を変換するために使用される重み付けベクトルまたは重み付け行列を備えてよい。時間差符号化φ
d628は、固定された(たとえば、手作業で構成可能な)パラメータであってよく、かつ/または再帰型ニューラルネットワークアーキテクチャ620のトレーニング可能なパラメータを備えてよい。指数関数事例では、減衰長は、短期挙動と長期挙動の両方がキャプチャされるような、数分間から数週間までの減衰を表す様々な値の混合物を備えてよい(または、トレーニングされてよい)。次いで、状態入力インターフェース622において受信された状態データに重み付けして、修正された状態ベクトルを出力するために、アクティブ化ベクトルが使用される。
図6Bにおいて、要素ごとの乗算632を使用して(たとえば、アダマール積が計算される)、以前の反復のための状態データにアクティブ化ベクトルが適用される。この例では、状態データは、トランザクションデータ入力インターフェース618によって出力されるトランザクション特徴ベクトルと同じ長さ(すなわち、第1の多層パーセプトロン610の出力と同じ長さ)となるベクトルを備える。忘却ゲート626は、事実上、以前の反復からの状態データのうちのどのくらいが覚えられているのか、およびどのくらいが忘れられているのかを制御する。
図6Bに示す構成は、現在のトランザクションプロセスコンテキストに対して扱いやすいトレーニングおよび高速推定を可能にするように、意図的に構成されている。たとえば、入力ゲートまたは出力ゲートなどの、比較に基づく実装形態において提供される、いくつかの他のゲートが省略される。
【0065】
忘却ゲート626を介した修正に続いて、修正済みの状態データは、組合せ論理634を介して、トランザクションデータ入力インターフェース618によって出力されるトランザクション特徴ベクトルと組み合わせられて、提案されたトランザクション(および、現在の反復i)のための出力データ630を生成する。組合せ論理634は、要素ごとの加算(すなわち、通常のベクトル加算)を実施し得る。出力データ630はまた、状態出力インターフェース624のための出力を形成する。状態出力インターフェース624の出力は、次いで、次のトランザクションまでメモリの中にキャッシュされ得るかまたは別のやり方で記憶され得る。
【0066】
好ましい実装形態では、再帰型ニューラルネットワークアーキテクチャ620によって使用される状態データは、特定のユーザ、口座名義人、または小売商アカウントに依存する、すなわち、それらに固有の、エンティティである。このようにして、適切なエンティティがトランザクションデータ前処理の一部として識別されてよく、機械学習システム600はそのエンティティ向けに構成されてよい。ある場合には、機械学習システム600は、エンティティごとにニューラルネットワークアーキテクチャのための同じパラメータを適用してよいが、別個に状態データを記憶してよく、そのエンティティに関連付けられる(たとえば、それによってインデックス付けされる)履歴トランザクションデータおよび/または補助データのみを取り出してよい。したがって、機械学習システム600は、たとえば、
図2Aおよび
図2Bを参照しながら説明した、エンティティ状態記憶装置を備えてよく、それによって、異なるエンティティのためのデータが事実上区分され得る。他の場合には、忘却ゲート626のためのパラメータが、複数のエンティティにわたって共有され得る。このことは、全体的な機械学習システムのエンティティごとの学習可能なパラメータの数を減らすために有利であり得る。たとえば、上記で説明した指数時間減衰重みは、固定されてよく複数のエンティティにわたって共有されてよいが、状態データは各エンティティに固有であってよい。
【0067】
図6Cは、第2の処理ステージ604のための例示的な構成を示す。
図6Cは、1つまたは複数の「ヘッド」を有するアテンション構成の1つの「ヘッド」を形成し得る例示的なアテンションニューラルネットワークアーキテクチャ660を示す。
図6Cにおいて、アテンションニューラルネットワークアーキテクチャ660は、第1の処理ステージ603から入力を受信し、ここで、入力は、同じエンティティに対する現在のイベントおよび以前のイベントのセットに関係する。アテンション構成の各「ヘッド」は、同じ入力データを受信し得るが異なるパラメータデータを備えてよく、それによって、各「ヘッド」はパラメータの様々なセットを学習することができる。アテンションニューラルネットワークアーキテクチャ660が、入力のどんな部分に注意すべきかを部分的にその入力に基づいて決定するので、
図6Cの例示的な構成は、自己アテンションアーキテクチャと呼ばれることがある。
図6Cの例示的な構成では、入力特徴ベクトルは、第1の処理ステージ603からの以前の反復出力に少なくとも部分的に基づいて生成され、第1の処理ステージ603に対する現在の反復出力に基づいて重み付けされる。入力特徴ベクトルはまた、提案されたトランザクションと1つまたは複数の事前トランザクションとの間の時間間隔が、適用される重みに影響を及ぼし得るような、時間差を表すデータに基づいて生成される。実際には、このことは、時間データはどのように間隔が不規則であるのかに基づいて、差分重み付けを行う。概して、アテンションニューラルネットワークアーキテクチャ660は、アテンション重みを入力特徴ベクトルに適用してアテンションニューラルネットワークアーキテクチャ660のための出力データを生成するための、ニューラルネットワーク層を備える。アテンション重みは、入力特徴ベクトルおよび第1の処理ステージ603からの現在の出力データに基づいて計算される。このことは以下でより詳細に説明される。
【0068】
図6Cにおいて、アテンションニューラルネットワークアーキテクチャは、時間差インターフェース662、履歴入力インターフェース664、および現在入力インターフェース666を備える。時間差インターフェース662は、再帰型ニューラルネットワークアーキテクチャ620の時間差インターフェース606と類似であるが、この場合、相対時間間隔Δt
i,i-1、...、Δt
i,1、すなわち、現在の提案されたトランザクションと履歴または事前トランザクションのセット(の各々)との間の複数の時間差のベクトルを出力するように構成される。たとえば、これは連結された複数の時間間隔値であってよく、ここで、各時間間隔値は時間差インターフェース606によって出力される形式と類似である。時間差インターフェース662は、相対時間間隔のこのベクトルとして時間データを受信してよく、または絶対時間データを受信し、この絶対時間データに基づいて相対時間間隔を計算してもよい。好ましい例では、時間差インターフェース662は、時間差入力インターフェース606によって受信されるような時間差、および提案されたトランザクションと1つまたは複数のさらなる事前トランザクションとの間の1つまたは複数の時間差を表すデータを少なくとも備える、時間差データを受信する。履歴入力インターフェース664は、第1の処理ステージ603から履歴出力データを受信する。たとえば、これは、既定の時間期間または反復の回数にわたってバッファリングされる、再帰型ニューラルネットワークアーキテクチャ620の出力を備えてよい。
【0069】
ある場合には、履歴入力インターフェース664と時間差インターフェース662の両方が、(本例ではi-1であり、以下でTとして参照される)固定または既定の回数の以前の反復に関係する計算用のデータを出力する。または言い換えれば、履歴入力インターフェース664および時間差インターフェース662は、履歴イベントのサブセットに関係する計算用のデータを出力するように構成され得る。そのサブセットは、制限された数のイベント(たとえば、エンティティに対する直近の10個のイベント)、構成済みの時間期間(たとえば、同じエンティティに対する過去1か月)、またはその両方(たとえば、直近の10個のイベントにおいて上限が定められた過去1か月間のイベント)に基づいて制約されてよい。このことは、データサイズ制約および計算の扱いやすさを管理するのに好ましい。しかしながら、いくつかのトランザクションが小さい場合、以前の反復の数は各反復とともに拡大する場合がある。
【0070】
最後に、現在入力インターフェース666は、第1の処理ステージ603から現在の出力データを受信する。
図6Cに示すアテンションニューラルネットワークアーキテクチャ660の場合、これは、少なくとも、現在の反復に対する再帰型ニューラルネットワークアーキテクチャ620からの出力データ(すなわち、
図6Bの中の出力データ630)である。場合によっては、たとえば、
図6Aの中の破線によって示されるものなどのスキップ接続が使用されるとき、現在入力インターフェース666は、第1の処理ステージ603からの出力(たとえば、再帰型ニューラルネットワークアーキテクチャ620からの出力データ)と第1の処理ステージ604のための入力(たとえば、
図6Bに示すように受信される入力トランザクションデータ618)との組合せを受信してよい。
【0071】
図6Cの例では、時間差インターフェース662から受信された時間差データは、時間差符号化φ
e668を使用して修正される。
図6Bの中の時間差符号化φ
d628のように、時間差符号化φ
e668は、時間差データに適用されるパラメータ化関数を備えてよい。時間差符号化φ
e668のためのパラメータは、実装形態に応じて固定されてよくまたはトレーニング可能(すなわち、学習済み)であってよい。いくつかの実装形態では、時間差符号化φ
e668は、
図6Bの中の時間差符号化φ
d628に関して説明したものと類似の指数時間減衰関数を備えてよい。他の実装形態では、それは完全接続ニューラルネットワーク層を備えてよい。ある場合には、時間差符号化φ
e668は、イベント時間差ごとに1つのベクトルを有する、ベクトルの集合を備えるテンソル(すなわち、行列)を出力してよい。各ベクトルは、特定の履歴イベントと現在の発明(たとえば、現在の提案されたトランザクション)との間で経過した時間に基づいて計算されてよい。ある場合には、時間差符号化φ
e668内の各ベクトルは、
図6Bの中の時間差符号化φ
d628と同様の方法で計算されてよく、このことが各時間差に対して反復される。他の場合には、(重み付き)シヌソイド関数に基づく符号化などの、様々な位置符号化が使用され得る。シヌソイド位置符号化の一例は、参照により本明細書に組み込まれる、(2017年12月6日にarXiv上で出版された)Vaswaniらによる論文「Attention is All You Need」の中に記載されている。時間差符号化φ
e668は、時間符号化を実施するために使用され得る重みの行列に基づいてパラメータ化されてよい。
図6Bの中の時間差符号化φ
d628に関して、時間差符号化φ
e668のためのパラメータは、固定(たとえば、既定の構成値として供給)されてよく、かつ/または(エンドツーエンドの)トレーニングを介して学習されてよい。
【0072】
本例では、時間差符号化φe668の出力は、時間差ごとに1つの符号化ベクトルを有する、相対時間符号化の行列を備える。これは連結ブロック670において受信される。連結ブロック670は、相対時間符号化と第1の処理ステージ603からの履歴出力データ、たとえば、反復i-1~1のための、再帰型ニューラルネットワークアーキテクチャ620からのバッファリングされた出力のセットとを連結する。たとえば、特定の時間差に関係する時間符号化の各ベクトルは、対応する符号化イベントに対するベクトルと連結されてよい。したがって、連結ブロック670は、概して、(たとえば、この入力データがベクトル形式をなす場合)時間差データと第1の処理ステージ603からの履歴出力データとを組み合わせる特徴テンソルを出力する。特徴テンソルは、次いで、鍵ベクトルおよび値ベクトル決定のための入力として使用される。特徴テンソルは、より長い平坦化されたベクトルとして、または多次元アレイ(たとえば、反復インデックスによってインデックス付けされた1次元を有する、バッファのようなデータ構造)として構成されてよい。
【0073】
図6Cの中のアテンションニューラルネットワークアーキテクチャ660は、単一ヘッド自己アテンションシステムを実装するように見られてよい。アテンションシステムは、鍵ベクトル、照会ベクトル、および値ベクトルを使用する。
図6Cの例では、値ベクトルは値ベクトル計算動作672を使用して計算され、鍵ベクトルは鍵ベクトル計算動作674を使用して計算され、照会ベクトルは照会ベクトル計算動作676を使用して計算される。場合によっては、ベクトルは、反復ごとに計算されて、その反復のためのアテンション重みを生成し得る。値ベクトル計算動作672と鍵ベクトル計算動作674の両方が、連結ブロック670の出力を入力として受信し、すなわち、時間差データ、および第1の処理ステージ603からの履歴出力データを使用して計算される、特徴ベクトル、または特徴テンソルの要素を受信する。鍵、照会、および値という用語は、アテンションを適用するために使用される様々な表現を指すために当技術分野において使用される。たとえば、これらの用語は、鍵のセットに対して照会がマッピングされて整合としての1つまたは複数の値を戻す、情報取出しシステムを参照しながら策定された。ニューラルアテンションでは、高いレベルにおいて、照会ベクトルが鍵ベクトルと比較され、アテンション重みのセットを決定するために使用される。場合によっては、1つまたは複数の照会ベクトルが(たとえば、行列演算を介して)複数の鍵ベクトルと比較されてアテンション重みのセットを生成してよく、ここで、各重みは異なる反復インデックスに関係する。アテンション重みのセットが少なくとも1つの値ベクトルに適用されて、重み付きベクトル出力を提供する。場合によっては、反復ごとの重み付き値ベクトルが終末加重和(end-weighted sum)をなして組み合わせられて、(688などの)出力ベクトルを生成する。値ベクトル計算動作672、鍵ベクトル計算動作674、および照会ベクトル計算動作676の各々は、(たとえば、1つまたは複数のニューラルネットワーク層を介して適用されるような)パラメータ重みの1つまたは複数のセットの適用を備え、ここで、パラメータ重みは、アテンションニューラルネットワークアーキテクチャ660の学習可能なパラメータである。したがって、アテンションニューラルネットワークアーキテクチャ660は、適切な鍵ベクトルおよび値ベクトルを生成するために、連結ブロック670によって出力される入力特徴テンソルをどのように変換すべきかを、また適切な照会ベクトルを生成するために、第1の処理ステージ603からの現在の出力データをどのように変換すべきかを、「学習する」。事実上、照会ベクトル計算動作676によって計算される照会ベクトルは、入力特徴ベクトルに重み付けする(すなわち、いくつかの側面を強調し、他の側面をあまり強調しない)ために使用すべき情報を、入力特徴ベクトル(すなわち、時間差データ、および再帰型ニューラルネットワークアーキテクチャ620の以前の出力)の中で探すために、再帰型ニューラルネットワークアーキテクチャ620の現在の出力がどのように表されるべきかを表す。値ベクトル計算動作672、鍵ベクトル計算動作674、および照会ベクトル計算動作676の各々の中で使用される重みがトレーニング可能なパラメータであるので、トレーニングを介して、アテンションニューラルネットワークアーキテクチャ660は、入力データを操作して、トランザクションにおける挙動の異常を表す正確なスカラー出力につながる出力データを生成するための、最善の方法を学習する。
【0074】
アテンションを適用するメカニズムを参照すると、照会ベクトル計算動作676によって出力される照会ベクトルは、鍵ベクトルと照会ベクトルとのドット積を計算する第1のドット(すなわち、スカラー)積演算678を使用して鍵ベクトル計算動作672によって出力される鍵ベクトルに適用される。このことは、履歴データの中で反復ごとにドット積の結果を出力するように、複数の鍵ベクトルおよび/または複数の照会ベクトルのセットに対して実行されてよい。並行して、さらなる時間差符号化φw680が、時間差インターフェース662によって出力される時間差データに適用される。時間差符号化φw680は、時間差符号化φd628および時間差符号化φe628のうちの1つまたは複数に対して説明した関数と類似の関数を再び適用してよい。ある場合には、時間差符号化φw680は、同じエンティティに対する(履歴イベント、現在のイベント)のペアごとに1つの値を出力する。その値は、履歴イベントと現在のイベントとの間で経過した時間の関数、たとえば、Δti,jの関数である、スカラー値を備えてよく、ただし、iは現在のイベントであり、jは履歴イベントである。時間差符号化φw680によって適用される関数は、様々な形式をとってよい。前述のように、その関数のためのパラメータは、固定されてよくまたはトレーニング可能であってもよい。ある場合には、パラメータは、いくつかの時間間隔からのイベント(たとえば、同じエンティティに対する過去1週間からのイベント)に、より大きい重みを割り当てて、その時間間隔からのイベントにもっと注意することをアテンション層に勧めるように構成されてよい。したがって、時間差符号化φw680のパラメータを制御することによることを介して、特定のアテンション層は、特定の時間間隔にもっと注意するかまたはさほど注意しないように構成され得る。パラメータが構成パラメータとして定義される場合、これは演算子がアテンション層の動作を制御することを可能にしてよく、パラメータがニューラルネットワークアーキテクチャのトレーニング中に学習される場合、パラメータは異常の成功した分類を増やす値に集束し得る。
【0075】
時間差符号化φw680を適用した出力は、次いで、組合せ論理682において、第1のドット積演算678によって出力されたドット積と組み合わせられる。動作682において、(履歴イベント、現在のイベント)に対する時間ベースの重みが(現在のイベントに対する照会ベクトル、履歴イベントに対する鍵ベクトル)の間のドット積に加算され、そうしたドット積はスカラーであってよい。組合せ論理682は、事実上、鍵ベクトルおよび照会ベクトルを使用して計算されたアテンション重みの初期セットを、重み付き時間差データを用いて調整する。時間差符号化φw680を介して時間差インターフェース662によって出力される時間差データの重み付けは、いくつかの時間間隔の中でいくつかのサンプルに他よりも強く注意することを、アテンションニューラルネットワークアーキテクチャ660に勧めるように、アテンション重みが調整されることを可能にするので、重要である。たとえば、この調整が、しばしば、提案されたトランザクションからの1週間の辺りなどの、学習済みの時間範囲内のトランザクションデータ特徴を強調することが、いくつかのテストの中で見出されている。
【0076】
最後に、入力特徴テンソル、および第1の処理ステージからの現在の出力データからの、アテンション重みの計算を完了するために、ソフトマックス演算684が適用され、ソフトマックス演算684の出力と値ベクトル計算動作672によって出力される1つまたは複数の値ベクトルとのドット(すなわち、スカラー)積が、第2のドット積演算686によって計算される。第2のドット積演算686は、事実上、ソフトマックス演算684によって出力された正規化済みのアテンション重みを1つまたは複数の値ベクトルに適用して、アテンションニューラルネットワークアーキテクチャ660のための出力データ688を提供する。ソフトマックス演算684は、ソフトマックスすなわち正規化された指数関数を適用して、確率のセットとして見られてよい正規化されたアテンション重みのセットを出力する(すなわち、それらは総計1になり各々が区間0~1の中にある)。第2のドット積演算686は、次いで、計算されたアテンション重みによって重み付けされるような、入力特徴テンソルの反復の加重和を計算する。
【0077】
たとえば、再帰型ニューラルネットワークアーキテクチャの出力は、各反復jに対して長さLのベクトルAjとして表されてよい。現在の反復iと事前反復jとの間の時間差(ただし、i≠j)は、Δti,jとして表されてよい。この時間差は、スカラー浮動小数点値であってよい。動作においては、再帰型ニューラルネットワークアーキテクチャは、以前の状態(たとえば、j=i-1)を表すAi-jを受信し、時間差符号化φdを使用して時間差を符号化する。φdがパラメータのベクトル、たとえば、長さKの時間減衰重みのセットである場合、忘却ゲート626は、fi(φd,Δti,j)を最初に計算し、次いで、・が要素ごとの乗算であって、修正された状態SiをSi = fi (φd,Δti,j)・Ajとして、またXiが、(たとえば、第1の多層パーセプトロン610によって出力されるような)同じく長さがKである、反復iに対する入力トランザクションデータ特徴ベクトルであって、出力Ai = Si + Xiを計算する。次にアテンションニューラルネットワークアーキテクチャ660を参照すると、時間差インターフェース662は、T個の時間差、すなわち、j = i-1~i-Tに対してΔti,jを備える、多次元アレイ(たとえば、ベクトル)を受信してよい。各時間差が上記のような符号小数点スカラーである場合、時間差インターフェース662への入力は、サイズTのベクトルΔiであってよい。同様に、履歴入力インターフェース664は、再帰型ニューラルネットワークアーキテクチャのバッファリングされた出力(j = i-1~i-Tに対して)Ajを表す、サイズK×Tの多次元アレイHiを受信してよい。現在入力インターフェース666は、次いで、現在の反復に対するAiを受信する。時間差符号化φe668は、パラメータ化関数fe(φe,Δi)を同様に実施してよく、ただし、φeは、時間差符号化のためのパラメータのセットである。この関数は、時間差ごとのベクトル、すなわち、多次元アレイ(または、行列)Ei、またはサイズM×Tを出力してよく、ただし、Mは、時間差符号化の長さである。連結演算670は、次いで、各ソースからのT個のベクトルのうちの対応するベクトルをスタックして(K+M)×T行列を出力してよい。値計算動作672および鍵計算動作674は、それぞれ、入力を形成するT個のサンプル(すなわち、連結されたT個の時間間隔およびバッファリングされた出力)の各々に対して値ベクトルおよび鍵ベクトルを生成してよい。第1のドット積演算678において、照会ベクトルとT個の鍵ベクトルの各々とのドット積が計算されて、T個の初期アテンション重みを生成してよい。時間差符号化φw680は、パラメータサイズT×Tの行列を適用してよく、パラメータ化関数fw(φw,Δi)の適用に続いて、長さTの重み付き時間ベクトルDiを生成してよく(すなわち、Di = fw(φw,Δi))、重み付き時間ベクトルDiは、次いで、組合せ論理682においてT個の初期アテンション重みのベクトルに加算され、すなわち、
【0078】
【0079】
となる。上記で説明したように、時間差符号化φw680からのスカラー時間ベースの重み、およびスカラー鍵照会ドット積重みがあり、これらは構成要素682において一緒に加算される(組み合わせられる)。ソフトマックス関数が、次いで、ソフトマックス演算684において適用され、
【0080】
【0081】
となる。T個のアテンション重みのベクトル
【0082】
【0083】
が、次いで、値ベクトル計算動作674によって出力されるT個の値ベクトルの各々に重み付けするために使用されてよく、出力Biが、
【0084】
【0085】
として生成されてよく、ただし、
【0086】
【0087】
は、T個のアテンション重み値のうちの1つであり、Vi,jは対応する値ベクトルである。得られた出力ベクトルBiは、このとき、(M+Kであり得る)値ベクトルと同じ長さ、または値ベクトル計算動作672内で行列乗算によって設定されるカスタマイズ可能な長さである。
【0088】
上記で説明したような1つまたは複数のアテンションニューラルネットワークアーキテクチャ660を使用する第2の処理ステージ604は、トランザクション要求とともに受信されるデータおよび/または補助データであってよい、提案されたトランザクションに関係するアクションまたはイベントのシーケンスが評価および重み付けされることを可能にし、特徴を構成する様々なアクションの相対時間が重み付けの一部として使用されてよい。いくつかの例では、入力トランザクション特徴608はまた、マウスクリックなどの測定されたユーザ入力のシーケンス、および/または口座履歴の変更などの、ユーザに関連する他のアクションを含んでよい。このことは、出力スカラー値が入力データ内のパターンに敏感となることを可能にする。たとえば、数秒以内の2つのトランザクション要求は、数日以内の2つのトランザクション要求とは異なる、検出されたパターンに関係し得る。
【0089】
図6A~
図6Cに示すような第1の例示的な構成のアーキテクチャは、データのシーケンスの中の上記のパターンが検出されることを可能にしない、比較に基づくトランザクション処理方法およびシステムにまさる利点をそのように提供する。具体的には、
図6A~
図6Cに示すような第1の例示的な構成は、偽陽性を減らすことおよび真陽性を増やすことなどの確度改善をもたらし、本明細書で説明するコンテキスト内で機械学習を適用することを試みるときに従来より見出されている誤差および準最適な結果を回避する。たとえば、上記で説明した機械学習アーキテクチャは、異なるタイプの個々のアクションの時間間隔および時間密度の適切な認識を用いて、経時的に非同期アクションのシーケンスを識別することができ、かつそこから推定を行うことができる。第1の処理ステージ603のステートフル処理および第2のプロセスステージ604の適応型アテンションメカニズムを使用することによって、第1の例示的な構成は、(ユーザまたは小売商などの)エンティティの長期傾向が確立された有用な関数を学習することができる。
【0090】
図6Aの第1の処理ステージ603および第2の処理ステージ604は相乗的に一緒に動作するが、いくつかの例では、これらの各々を別個に、たとえば、第1の多層パーセプトロン610および第2の多層パーセプトロン690のうちの1つまたは複数を用いるかまたは用いずに、実施することが可能である。たとえば、いくつかの実装形態では、第2の処理ステージ604が省略されてよく、その結果、第2の多層パーセプトロン690は、単に第1の処理ステージ603の出力に対して動作し、または第1の処理ステージ603が省略されてよく、その結果、第2の処理ステージ604は、第1の多層パーセプトロン610によって出力される特徴ベクトル(たとえば、現在のデータおよび履歴データのうちの1つまたは複数に対してA
iではなくX
i)を受信する。
【0091】
場合によっては、忘却ゲート626は、時間減衰処理の形態として実装されてよく、ここで、ニューラルネットワークセル(すなわち、再帰型ニューラルネットワークアーキテクチャ620)は、ローカルメモリ(すなわち、状態)を有し、そのメモリは、新たなデータサンプルの処理の前に時間減衰される。時間差符号化φd628は、いくつかの例では、1つまたは複数の指数時間減衰係数を備えてよい。
【0092】
第1の処理ステージ603は、事前入力に対する新たな入力の加重和を計算するものとして見られてよい。忘却ゲート626は、加算への過去のトランザクションの寄与を調整するための時間減衰の形態として働く。トランザクションのペアが、介在する期間の中で起こった、いかなることからも独立して行われると見なされてよいので、時間減衰は、純粋に時間の関数であり得る。その結果、第1の処理ステージ603は、直近のトランザクションでない事前トランザクションの寄与のための長期記憶を提供する。
【0093】
上記で説明したように、いくつかの実装形態では、(φd628、φe668、およびφw680のうちの1つまたは複数などの)時間差符号化は、時間間隔fi(φi,Δti,j)を表すデータの関数として適用されてよく、ただし、φiはパラメータのセットである。少なくとも忘却ゲート626実装形態では、f(Δti,i-a) * f(Δti,i-b) = f(Δti,i-a+Δti,i-b)のように関数が制約されることがある。たとえば、関数は指数関数を備えてよい。ある場合には、重み付けが適用されてよく、指数活性化関数が後続する。この場合、反復の寄与は、反復の間のギャップにしか依存せず、いかなる中間の反復からも独立している。
【0094】
たとえば、上記の変形形態において、たとえば、3つのトランザクションに関係する、3つのイベントまたはアクションを伴う場合を考える。第1のイベント(A)が真夜中に行われ、第2のイベント(B)が午前3時(すなわち、イベントAの3時間後)に行われ、第3のイベント(C)が午前9時(すなわち、イベントBの6時間後かつイベントAの9時間後)に行われる。再帰型ニューラルネットワークアーキテクチャは、以前のイベント(i-1)と現在のイベント(i)との間の間隔に基づいて以前の状態Si-1から現在の状態Siを決定してから、それを現在のイベントに対する入力Xiに加算してよい。この場合、すべての更新に対して、再帰型ニューラルネットワークアーキテクチャは状態Si = Xi + f(ti - ti-1).Si-1を計算してよい。3つのイベントに対して、様々な状態が、SA = XA + 0、SB = XB + f(3時間).SA、かつSC = XC + f(6時間).SBとして計算されてよく、そのことは、SC = XC + f(6時間).XB + f(6時間).f(3時間).XAと均等である。たとえば、関数が指数時間減衰を適用する場合に、f(Δti,i-a)* f(Δti,i-b) = f(Δti,i-a+Δti,i-b)であるとき、SC = XC + f(6時間).XB + f(9時間).XAとなり、すなわち、状態は、以前の状態の重み付き線形結合であり、ここで、各寄与は独立して決定されてよい。
【0095】
ある場合には、忘却ゲート626は、1つまたは複数の一定の減衰率または減衰係数(場合によっては、複数のそのような係数)を有する、指数時間減衰を適用してよい。これらの減衰率または減衰係数は、再帰型ニューラルネットワークアーキテクチャ620のハイパーパラメータとして設定されてよく、または学習されてもよい。いくつかの例では、指数時間減衰は、再帰型ニューラルネットワークアーキテクチャの状態への過去のアクションの寄与が、より最近のイベントが行われてからの経過時間に単に依存することを保証することができる。言い換えれば、エンティティがこの変形形態を使用することに起因する、イベント間の経過時間は、介在する時間の中で実行された、いかなる他のアクションからも独立し得る。再帰型ニューラルネットワークアーキテクチャ620における時間減衰の使用はまた、長期メモリ記憶を許容し、ここで、長期メモリ記憶の持続時間は、たとえば、指数時間減衰の半減期パラメータによって設定され得る。そのような場合、半減期の範囲を実施する関数が使用され得、それはアクションパターンの符号化を促進し、異なる時間期間にわたって変化する。
【0096】
場合によっては、すべての時間符号化は、学習されたパラメータではなく、固定された(すなわち、取り出されるかまたは供給される)パラメータ値(たとえば、構成データとして設定される)を使用してよい。この場合、時間差に関する履歴特徴ベクトルおよび現在の特徴ベクトルの、すべての変換および/または集約が、アーキテクチャに「課せられる」場合がある。このことは、システムの制御可能性を大きくしてよく、アテンションヘッドおよび/または多層パーセプトロンのための学習可能なパラメータのトレーニングを容易に(さらには、案内)し得る。たとえば、異なる時間期間の間、指数時間減衰に対する値を設定することによって、これらの異なる時間期間にマッピングされ得る学習済みの特徴に、本明細書で説明する機械学習システムのための足場を提供する、有用な時間差符号化が生成される。さらに、学習可能でないパラメータは、処理およびトレーニングの速度を高め、そのことは、特に高速な大量トランザクション処理に適合する。
【0097】
機械学習システムのための第2の例示的な構成
上の
図6A~
図6Cは、機械学習システムのための可能な一構成を示す。第2の代替構成700が
図7に示される。第1および第2の構成は限定的でなく、本明細書で説明するいくつかの例は、第1の構成と第2の構成の両方の構成とは異なる機械学習モデル、たとえば、他のニューラルネットワークアーキテクチャおよび/またはベイズ構成を使用して実行されてよい。第1の例示的な構成600のように、第2の例示的な構成700は、
図1A~
図1C、
図2Aおよび
図2B、
図4、ならびに
図5Aおよび
図5Bの中の、機械学習システム160、210、(機械学習モデルプラットフォーム414によってロードされる実装形態をその構成が備え得る場合)402、および508のうちの1つまたは複数を実施するために使用されてよい。
【0098】
図7の第2の構成700は、ランダムフォレストモデルに基づく。ランダムフォレストモデルは入力特徴ベクトル710に適用され、並行して適用される複数の決定木720を備える。各決定木722、724、726は、異なる分類値C
i730を出力する。3つの決定木722、724、および726、ならびに3つの分類値732、734、および736が
図7に示されるが、合計N個の決定木があってよく、ただし、Nは構成パラメータであり数百個に達してよい。分類値730は、決定木720の各々からの分類値730を組み合わせて最終スカラー出力750を生成する、アンサンブルプロセッサ740に渡される。アンサンブルプロセッサ740は、各決定木720の決定の重み付き出力を計算してよく、かつ/または投票プロシージャを適用してよい。
【0099】
トランザクションデータを処理するための機械学習システムのトレーニング
いくつかの例では、本明細書で説明するものなどの機械学習システムは、ラベル付けされたトレーニングデータを使用してトレーニングしていることがある。たとえば、「正常」または「不正」としてラベル付けされているトランザクションに関連するデータを備えるトレーニングセットが提供されてよい。ある場合には、これらのラベルは、報告された不正な活動に基づいて、すなわち、不正行為の過去の報告を使用して、与えられてよい。たとえば、不正行為の後続の報告を用いずに承認および処理されているトランザクションに関連するデータは、「0」すなわち「正常」としてラベル付けされてよく、拒絶されているトランザクション、および/または不正として後で報告されており別のやり方でマークまたは阻止されているトランザクションに関連するデータは、「1」すなわち異常としてラベル付けされてよい。トレーニングのこの方法の一例が、
図8を参照しながら説明される。
【0100】
本明細書で説明する他の例では、機械学習システムをトレーニングするための改善されたパイプラインが提示される。この改善されたパイプラインは、トランザクションデータを処理するように適合される、本明細書で説明するものなどの機械学習システムのトレーニングを可能にする。パイプラインをトレーニングすることは、トレーニング用の合成データサンプルの生成を可能にする。通常、グラウンドトゥルースのトレーニングラベルの、バランスのとれたセットを可能にする、「予想外の」アクションパターンの例がほとんどないので、トランザクションにおける(たとえば、不正行為または他の悪意のある活動を表す)異常の分類のために機械学習システムをトレーニングすることを試みるとき、これは特に有用である。機械学習システムをトレーニングするための改善されたパイプラインは、機械学習システムを適用する前の特徴ベクトル生成プロセスへの適合、およびトレーニングプロシージャへの適合を伴う。以下のセクションでは、特徴ベクトル生成プロセスへの適合が最初に説明されてから、トレーニング自体を説明する。トレーニングのこの方法の例が、
図9~
図13を参照しながら説明される。
【0101】
事前ラベル付けトレーニング例
図8は、事前にラベル付けされたトレーニングセットを使用するトランザクション処理のために機械学習システムをトレーニングする例800を示す。この方法は、ラベル付けされるトレーニングデータの大規模な本体が利用可能である事例のために使用されてよい。しかしながら、この方法は限定を有することがあり、トランザクション処理のためのトレーニングの改善された方法が、
図9~
図13を参照しながら以下で説明される。
【0102】
図8の例800では、トレーニングデータ810が取得される。トレーニングデータ810は、数値テンソルとして構成された特徴値であってよい、特徴データ812、および、この場合、アクションの正常パターンに関連するトランザクションを表す「0」という値、またはアクションの異常もしくは不正なパターンに関連するトランザクションを表す「1」という値のいずれかである、ラベル814を備える。トレーニングモードでは、好ましくはスカラー出力を備える分類850の出力のために、特徴データ812が機械学習システム840に提供される。機械学習システム840は、パラメータ842のセットを用いてパラメータ化される。これらはランダム値のセットに初期化されてよい。使用中に、トレーニングエンジン860は、特徴データの特定のセットに対して機械学習システム840の出力を受信し、それを特徴データのそのセットに対するラベルと比較する。トレーニングエンジン860は、予測とラベルとの間の誤差を計算する、ロジスティック対数損失関数などの損失関数を評価してよい。この誤差は、次いで、パラメータ842を調整するために使用される。
【0103】
機械学習システム840が、
図6A~
図6Cを参照しながら説明した第1の構成600を備える場合には、パラメータ842は、構成要素628、668、672、674、676、および680のうちの1つまたは複数に関連するニューラルネットワーク重み(および、場合によっては、バイアス、ただし、これらは重みの中に組み込まれてよい)を備えてよい。この場合、特徴データ812は、ラベルに関連する両方の現在のトランザクションを、ただし、再帰型ニューラルネットワークアーキテクチャ620のための状態データ、時間差データ、およびアテンションニューラルネットワークアーキテクチャ660のための入力を生成するために使用される履歴データも備えてよい。
【0104】
場合によっては、機械学習システム840のトレーニングおよび/または検証は、外部的にラベル付けされたデータを使用して実行されてよい。これは、取得するのに困難である場合があるが、たとえば、どのトランザクションが払い戻されたのかを示すトランザクション「入金相殺」情報のデータフィードから発生し得る(トランザクションが不正または異常であったことをこれが示し得るので)。場合によっては、トランザクション入金相殺情報を、ユーザによって異が唱えられたトランザクションに関連させるために、相関演算が実行されてよい(たとえば、払い戻しは、不正行為ではなく欠陥製品に起因する場合がある)。出力におけるフィードバックは、機械学習システムが適応的に動作するとともに経時的なモデルドリフトに対して自己補正することを可能にし得る。
【0105】
特徴ベクトル生成
図9は、ラベル付けされていないデータに基づくトレーニングを可能にするための適合を伴う例示的な機械学習システム900を示す。
図9において、例示的な機械学習システム900は、観測可能な特徴およびコンテキスト特徴に基づいて特徴ベクトルを生成する。機械学習システム900は、観測可能特徴生成器910およびコンテキスト特徴生成器930を備える。これらは各々、トレーニングされたバイナリ分類器940に入力として提供される特徴ベクトル930の異なる部分を生成するように構成される。バイナリ分類器940は、入力特徴ベクトル930をスカラー出力950にマッピングするようにトレーニングされる。スカラー出力950は、異常が存在することを示す。たとえば、バイナリ分類器940は、割り当て可能な2つのラベルを有するデータに対してトレーニングされてよい。場合によっては、これらのラベルは「0」および「1」であってよく、ここで、「0」は異常なしを表し、「1」は異常が存在することを表す。この場合、バイナリ分類器940は、異常が存在する確率を表す、0と1との間の値を出力してよい。バイナリ分類器940は、パラメータ942のセットを用いてパラメータ化される。たとえば、これらは、ニューラルネットワークアーキテクチャのための重み、および/または決定木もしくはランダムフォレストモデルのための分岐重みを備えてよい。これらのパラメータは、以下でより詳細に説明されるトレーニングの方法を介して「学習」されてよい。バイナリ分類器940のスカラー出力950は、現在のトランザクションまたは提案されたトランザクションを処理するために使用されてよい。
【0106】
図9において、観測可能特徴生成器910は、トランザクションデータ912、914を受信し、これを使用して観測可能な特徴ベクトル916を生成する。コンテキスト特徴生成器930は、補助データ922、924を受信し、これを使用してコンテキスト特徴ベクトル926を生成する。観測可能な特徴ベクトル916およびコンテキスト特徴ベクトル926は、次いで、全体的な特徴ベクトル930を生成するために組み合わせられる。ある場合には、観測可能な特徴ベクトル916およびコンテキスト特徴ベクトル926は、2つの特徴ベクトル916と926とを連結することによって組み合わせられて、もっと長いベクトルを生成し得る。他の場合には、観測可能な特徴ベクトル916およびコンテキスト特徴ベクトル926を入力として受信し、かつこの入力を特徴ベクトル930にマッピングする、組合せ論理および/または1つもしくは複数のニューラルネットワーク層が使用されてよい。
【0107】
図9において、観測可能特徴生成器910は、2つのタイプのトランザクションデータを受信する。トランザクションデータ912の第1の部分は、分類されつつある特定のトランザクションに関係するデータを備える。たとえば、これは、
図5Aおよび
図5Bの中で処理されるものと示されるような、現在のトランザクションまたは提案されたトランザクションを備えてよい。トランザクションデータ912の第1の部分は、提案されたトランザクションを処理するための要求とともに受信されたデータパケットから導出されるデータを備えてよい。トランザクションデータ914の第2の部分は、提案されたトランザクションに基づいて規定されたグループ内にあるトランザクションに関係するデータを備える。たとえば、これらは、規定された時間ウィンドウ内にあるトランザクションを備えてよい。これは、提案されたトランザクションのタイムスタンプに関して設定される(絶対的な)既定の時間範囲に基づいて、または個別の個数のトランザクション(たとえば、提案されたトランザクションに関連する特定のユーザに対する最後のX個のトランザクション)に関して規定される相対時間範囲に基づいて規定されてよい。したがって、観測可能特徴生成器910は、提案されたトランザクションから導出されるデータを少なくとも含む、最近観測されたデータに基づいて観測可能な特徴ベクトル916を生成すると言われてよい。比較において、コンテキスト特徴生成器920は、時間ウィンドウの外側のトランザクションデータ、および提案されたトランザクションに対して一意に識別可能なエンティティに関係する取り出されたデータのうちの1つまたは複数に基づいて、コンテキスト特徴ベクトル926を生成する。たとえば、
図9は、コンテキスト特徴生成器920が補助データ922および履歴トランザクションデータ924を受信することを示す。一意に識別可能なエンティティは、特定のエンドユーザ(たとえば、カード所有者)または小売商であってよく、補助データ922は、一意に識別可能なエンティティに関連するレコードから取り出されるデータ(たとえば、過去のトランザクションを表すトランザクションデータとは別個である、いわゆる静的データ)であってよい。補助データ922は、前に説明したような補助データ146または242を備えてよい。履歴トランザクションデータ924は、時間ウィンドウの外側にあるトランザクションに関連するデータ、たとえば、提案されたトランザクションのタイムスタンプに関して設定される上述の既定の時間範囲、または相対時間範囲の外側にある、トランザクションから導出されるデータを備えてよい。コンテキスト特徴生成器920は、履歴トランザクションデータ924にわたって集約メトリックを計算し(または、事前計算された集約メトリックを取り出し)、次いで、コンテキスト特徴ベクトルの中に集約メトリックを含めるように構成されてよい。集約メトリックは、単純な統計メトリック、またはもっと高度なニューラルネットワーク抽出型の特徴を備えてよい。
【0108】
機械学習システムをトレーニングするためのパイプライン
図10は、
図9の特徴生成プロセスを頼りにする機械学習システムをトレーニングするためのパイプライン1000を示す。パイプライン1000は、データサンプル1012のトレーニングセット1010に対して動作する。この例では、トレーニングセット1000は、ラベル付けされていないデータを備え、すなわち、データサンプル1012は、それらが正常な挙動に関係するかどうか、またはそれらが異常な挙動に関係するかどうかを示す、ラベル(すなわち、割り当てられたデータ値)を有しない。他の場合には、トレーニングセットのうちのいくつか(すなわち、少なくとも一部分)がラベル付けされてよいが、これは利用可能なデータのうちの小さい割合であってよい。データサンプルは、
図9に示す特徴ベクトル930と類似の特徴ベクトルであってよい。データサンプルは、
図9の構成によって生成されるような特徴ベクトル、および/または
図9の構成によって生成されなかったが、機械学習システムを形成するバイナリ分類器がトレーニングされるための履歴入力データを表す、特徴ベクトルを備えてよい。
【0109】
パイプライン1000は、データ区分ステージ1020とともに始まる。これは、トレーニングセット1010に対して動作し、トレーニングセット1010の中のデータサンプル1012のデータを区分して、区分されたデータ1030を生成する。詳細には、データ区分ステージ1020は、データサンプルを2つの特徴セット、すなわち、観測可能な特徴を表す第1の特徴セット1032、およびコンテキスト特徴を表す第2の特徴セット1034に区分する。第1の特徴セット1032および第2の特徴セット1034は、
図9を参照しながら説明したような観測可能な特徴ベクトル916およびコンテキスト特徴ベクトル926であってよい。
図9の前処理を使用してデータサンプル1012が特徴ベクトル930として生成された場合には、データ区分ステージ1020は、連結された特徴ベクトルを区分すること(たとえば、特徴ベクトルを要素の2つの既定のセットに分割すること)を備えてよい。データサンプル1012が、たとえば、入力データ912、914、922、および/または924と類似の、前処理の前のデータの集合を備える場合には、データ区分ステージ1020は、データソースおよび/または時間データに従ってデータを区分してよい。ある場合には、データ区分ステージ1020は、観測可能特徴生成器910およびコンテキスト特徴生成器920と同様の方法で機能し得る。
【0110】
第1の特徴セット1032は、
図9を参照しながら説明したような観測可能な特徴ベクトル916およびコンテキスト特徴ベクトル926の特性と類似の特性を有してよい。たとえば、観測可能な特徴は、少なくとも部分的には、各データサンプルに関連するトランザクションに関して規定されるトランザクションデータの時間ウィンドウから導出されてよい。コンテキスト特徴は、少なくとも部分的には、時間ウィンドウの外側のトランザクションデータ、およびデータサンプルに関連するトランザクションに対する一意に識別可能なエンティティに関係する取り出されたデータのうちの1つまたは複数から導出されてよい。
図10において、特徴ベクトルペア
【0111】
【0112】
および
【0113】
【0114】
のn個のセットがあり、ただし、iは特定の第iのデータサンプルを表し、Oは観測可能な特徴を表し、Cはコンテキスト特徴を表す。
【0115】
データ区分ステージ1020に続いて、区分されたデータサンプル1030は合成データ生成ステージ1040に渡される。合成データ生成ステージ1040の間、合成データサンプル1050のセットが生成される。合成データサンプル1050は、一意に識別可能なエンティティのセットのうちの2つの異なるエンティティにそれぞれ関係する2つの特徴セットからの特徴を組み合わせることによって生成される。たとえば、このことは、特徴1034の第2のセットをエンティティ識別子によってインデックス付けされたグループに加え、次いで、特徴1032の第1のセットを通じて反復し、グループからのペアにされた部分をランダムに選択することによって実行されてよく、ここで、選択されるペアにされた部分のエンティティ識別子は、特徴部分の対応する第1のセットのエンティティ識別子に整合しない。合成データサンプル1050は、特徴1032、1034の第1および第2のセットからの、混合されたペア1052、1054をそのように備える。
【0116】
合成データ生成ステージ1040に続いて、元の区分されたデータ1030および合成データサンプル1050が、データラベル付けステージ1060に渡される。データラベル付けステージ1060の間、元の区分されたデータ1030には、異常が存在しないことを示すラベルが割り当てられる。この場合、そのラベルは数値「0」である。合成データサンプル1050には、次いで、異常が存在することを示すラベルが割り当てられる。この場合、そのラベルは数値「1」である。ラベル付けされたデータサンプルの2つのセットは、次いで、組み合わせられて、ラベル付けされたデータを備える増補されたトレーニングセット1070になる。
図10でわかるように、増補されたトレーニングセット1070は、たとえば、別個の特徴ベクトルまたはベクトル要素のセット、および「0」または「1」となる割り当てられたラベル1076によって表されるような、観測可能な特徴1072とコンテキスト特徴1074とのペアを備える。増補されたデータセット1070は、次いで、前の例の機械学習システムを実施するバイナリ分類器をトレーニングするために使用されてよい。たとえば、増補されたデータセット1070は、
図9に示すバイナリ分類器940をトレーニングするために、すなわち、パラメータ942のセットを決定するために、使用されてよい。バイナリ分類器940がニューラルネットワークアーキテクチャを備える場合には、トレーニングの間、スカラー出力950の形式での、バイナリ分類器940からの予測は、割り当てられたラベル1076内で、たとえば、損失関数において比較されてよく、スカラー出力950とラベルの中の数値0または1のうちの1つとの間の差分に基づく誤差は、ニューラルネットワークアーキテクチャを通じて戻って伝搬し得る。この場合、ニューラルネットワークアーキテクチャの重みに関する損失関数の差分が決定されてよく、たとえば、勾配降下すなわちその変動のうちの1つを使用してそれらの重みを更新するために使用されてよい。たとえば、これは、
図6A~
図6Cに示すニューラルネットワークアーキテクチャのために使用されてよい。バイナリ分類器940が、たとえば、
図7に示すようなランダムフォレスト分類器を備える場合には、増補されたトレーニングセットが、データサンプルのセット(部分1072と1074との連結)および対応するラベル1076のセットとして、(機械学習プログラミングライブラリの中で定義されるようなrandom_forest.fit(X, y)などの)モデル「当てはめ(fitting)」法に渡されてよい。
【0117】
現在のトレーニングパイプラインは、ラベルを有しないトランザクションデータに対して異常分類器をトレーニングすることの、技術的問題の解決策をそのように提供する。一般に、確度がもっと劣悪であり広範な較正を必要とする、教師なし分類器を見るではなく、本例は、その問題が教師あり学習問題として組み立て直されることを可能にするように特徴生成プロセスを適合させる。このことは、次いで、予想される挙動からの偏差とより密に整合する、トランザクションデータにおける異常を識別できる、より強力な教師あり学習モデルが使用されることを可能にする。本例は、トレーニングデータを特徴の2つのセット、すなわち、いわゆる観測可能な特徴に基づく特徴、すなわち、分類されつつあるトランザクションから取得されるかまたはそれを使用して計算されるデータの、第1のセット、およびいわゆるコンテキスト特徴に基づく特徴、すなわち、分類されつつあるトランザクションのためのデータを使用して取得または計算されないデータ、たとえば、分類されつつあるトランザクションに関連する1つもしくは複数の特定のエンティティに関係する履歴トランザクションデータおよびまたはルックアップデータから導出される特徴の、第2のセットに分割する。さらに、トランザクション処理を折りたたんで単一のバイナリ分類にすることが、この手法を効果的にすることを可能にし、しかもなお、たとえば、分類されつつあるトランザクションを承認すべきかそれとも拒絶すべきかを決定するための、有効な出力を可能にする。
【0118】
図11Aおよび
図11Bは、トレーニングの現在のプロセスにとって重要な、
図3Aおよび
図3Bの例の変形形態を示す。
図11Aは、一意に識別可能なエンティティに対するトランザクションデータ1100のセットを概略的に示す。たとえば、これらは、カード所有者などのエンドユーザまたは特定の支払いアカウントに対して記録される、経時的なトランザクションを備えてよい。それらはまた、特定の小売商に関連するトランザクションを備えてよい。トランザクションデータ1100は、承認されたトランザクションのレコードを備えてよい。
図11Aはまた、提案されたトランザクション1102のためのデータを示す。これは、まだ承認されるかまたは拒絶すべき、提案されたトランザクションのための受信されたデータを備えてよい。トランザクションが承認される場合、提案されたトランザクション1102のためのデータがトランザクションデータ1100に加えられてよい。
【0119】
図11Aはまた、観測可能な特徴およびコンテキスト特徴がトランザクションデータ1100に関してどのように規定され得るのかを示す。各垂直部分が、異なるトランザクションのためのデータを表す場合、観測可能な特徴は、トランザクションデータの第1のセット1110から計算される特徴として規定されてよく、コンテキスト特徴は、トランザクションデータの第2のセット1120から計算される特徴として規定されてよい。トランザクションデータの第1のセット1110は、少なくとも、提案されたトランザクション1102のためのデータを含み、提案されたトランザクションの周囲をベースに規定されるアクションまたは挙動の未加工の観測として見られてよい。したがって、観測可能な特徴は、それらのアクションを通じて表現されるような、エンティティの現在の挙動または最近の挙動の「観測」に関係し、ここで、それらのアクションは、トランザクションデータ1110を介して立証される。トランザクションデータの第2のセット1120は、提案されたトランザクション1102を含まず、提案されたトランザクション1102のためのデータと同等である履歴メトリックを計算するために使用され得る。コンテキスト特徴は、トランザクションデータの第2のセット1120の中で表されるようなアクションまたは挙動に基づく、現在の挙動または最近の挙動の予測を備えてよい。
【0120】
図11Bは、特徴ベクトル1140の一例を示す。特徴ベクトル1140は、
図10からのデータサンプル1012または
図9からの特徴ベクトル930を備えてよい。
図11Bは、入力データを数値に変換する前処理の第1のセットに後続する特徴ベクトル1140を示す。示されている数値を正規化された値(たとえば、0と1との間または-1と1との間の浮動小数点値)にさらに変換するために、規定された範囲またはニューラルネットワークマッピングのいずれかに基づくさらなる前処理が同じく実行されてよいことに留意されたい。特徴ベクトル1140は、異なるデータ入力に関係するいくつかのベクトル要素を備える。たとえば、特徴ベクトル1140は、提案されたトランザクションに対する(たとえば、その土地の通貨単位での)額を規定するエントリ「amount」、トランザクションデータの第1のセット1110内で費やされる総額を規定するエントリ「aggregate_amount」、提案されたトランザクションのために使用されつつある小売商に対する一意識別子であるエントリ「merchant_id」、提案されたトランザクションを行うユーザエンティティが、小売商識別子によって規定された小売商を使用することになる尤度を表すエントリ「merchant_likelihood」、トランザクションデータの第2のセット1120からのトランザクション額の集約メトリック(たとえば、合計)を表すエントリ「total_amount」、トランザクションが現在のユーザエンティティの主要アカウントに関連するかどうかを示すブール値であるエントリ「primary_account」、トランザクションデータの第2のセット1120からのトランザクション額の別の集約メトリック(たとえば、中央値)を表すエントリ「me_amount」、および現在のユーザエンティティの母国を表すエントリ「country_id」を備える。この場合、エントリ「amount」、「aggregate_amount」、および「merchant_id」は、観測可能な特徴を表してよく、残りのエントリはコンテキスト特徴を表してよい。
【0121】
機械学習システムをトレーニングする方法
図12は、トランザクションデータ内の異常を検出するように教師あり機械学習システムをトレーニングする例示的な方法1200を示す。方法1200は、
図10に示すパイプライン1000を実施するために使用され得る。ブロック1202において、方法1200は、データサンプルのトレーニングセットを取得することを備える。データサンプルは、
図10の中の1012などのデータサンプルを備えてよい。各データサンプルは、少なくとも部分的にはトランザクションデータから導出され、一意に識別可能なエンティティのセットのうちの1つに関連付けられる。たとえば、データサンプルは、ユーザまたは小売商に関係する1つまたは複数の一意識別子を有してよく、またはそれに基づいて取り出されてもよい。この方法では、トレーニングセットの少なくとも一部分はラベル付けされていない。たとえば、それは、割り当てられた異常ラベルを有しない、
図11Bに示す1140などの特徴ベクトルを備えてよい。
【0122】
ブロック1204において、方法1200は、異常が存在しないことを示すラベルをトレーニングセットの中のラベル付けされていないデータサンプルに割り当てることを備える。たとえば、そのようなラベルは、
図10の中のラベル1076の一部として割り当てられた図示の「0」ラベルであってよい。ラベルは、数値またはバイナリ値を備えてよい。データサンプルは、トランザクションデータ、たとえば、
図11Aに示すような少なくともデータ1100から導出されるので、それらは処理されたトランザクションに関係し、そのため、たとえば、トランザクション処理中に予想されるデータの、「正常な」挙動を表すものと想定される。
【0123】
ブロック1206において、方法は、トレーニングセットの中のデータサンプルのデータを2つの特徴セット、すなわち、観測可能な特徴を表す第1の特徴セット、およびコンテキスト特徴を表す第2の特徴セットに区分することを備える。観測可能な特徴は、現在のトランザクションのための少なくともトランザクションデータの関数、たとえば、
図11Aの中の少なくともトランザクションデータ1102の関数から導出される。コンテキスト特徴は、現在のトランザクションを除外する履歴トランザクションデータおよび現在のトランザクションに対する一意に識別可能なエンティティに関係する取り出されたデータの関数のうちの1つまたは複数から導出される。たとえば、コンテキスト特徴は、
図9の中のデータ922および924と類似のデータから導出されてよい。区分された例示的な特徴1030が
図10に示される。
【0124】
ブロック1208において、一意に識別可能なエンティティのセットの2つの異なるエンティティにそれぞれ関係する2つの特徴セットからの特徴を組み合わせることによって合成データサンプルが生成される。たとえば、各データサンプルは、直接(たとえば、エンティティに対する現在の一意識別子を介して)または間接的に(たとえば、データ行列の中の特定の位置を介して)、一意に識別可能な特定のエンティティに関連付けられてよく、そのため、データサンプルのコンテキスト部分は、一意に識別可能な特定のエンティティと直接または間接的に関連付けられない別のデータサンプルのコンテキスト部分と交換されてよい。
【0125】
ブロック1210において、方法1200は、異常が存在することを示すラベルを合成データサンプルに割り当てることを備える。たとえば、このことは、
図10の中のラベル1076において示すように1という数値を割り当てることを備えてよい。合成データサンプルは、観測可能な特徴とコンテキスト特徴との間の不整合に基づいて生成されているので、トレーニングに対する異常の肯定的な例として理解されてよい。ブロック1212において、ブロック1202において取得された元のトレーニングセットは、合成データサンプルを有する増補されたトレーニングセットである。このことは、ブロック1202において取得されたデータサンプルをその行が表すデータ行列の底部に合成データサンプルを連結することと、「0」ラベルの列挙に「1」ラベルを連結することとを備えてよい。ブロック1212はまた、増補に続いてデータサンプルをシャッフルすることを含んでよい(ただし、データサンプルと割り当てられたラベルとの間の対応を保持する)。
【0126】
最後に、ブロック1214において、方法1200は、増補されたトレーニングセットおよび割り当てられたラベルを用いて教師あり機械学習システムをトレーニングすることを備える。このことは、増補されたトレーニングセットおよび割り当てられたラベルをトレーニングデータとして用いる、知られているトレーニングプロシージャを適用することを備えてよい。教師あり機械学習システムは、機械学習システム160、210、402、508、600、700、または940のうちの1つまたは複数の一実装形態であってよい。教師あり機械学習システムは、たとえば、前の例で説明したような、決定木のセットに基づくアンサンブルシステムおよび再帰型ニューラルネットワークのうちの1つまたは複数を備えてよい。トレーニングに続いて、たとえば、学習済みのパラメータ値のセットの決定に続いて、トレーニングされた教師あり機械学習システムは、新たなデータサンプルが供給されると異常が存在することを示す値を出力するために、構成され、学習済みのパラメータ値を使用する。
【0127】
ある場合には、観測可能な特徴が、現在のトランザクションに対する既定の時間ウィンドウ内でトランザクションデータの関数から導出される。たとえば、これは、(24時間以内などの)規定された時間範囲および/または規定された個数のトランザクション(たとえば、最後の3つのアクション)を備えてよい。既定の時間ウィンドウは、たとえば、
図11Aに示すようなトランザクションデータの第1のセット1110に関係してよい。コンテキスト特徴が、次いで、既定の時間ウィンドウの外側でトランザクションデータから導出される。たとえば、これらは、
図11Aに示すようなトランザクションデータの第2のセット1120から導出されてよい。
【0128】
観測可能な特徴のうちの1つまたは複数は、現在のトランザクションの時間に関して規定される既定の時間期間の間にトランザクションデータから計算される集約メトリックを備えてよい。たとえば、これらの観測可能な特徴は、(平均値、最頻値、または中央値などの)統計メトリック、またはニューラルネットワークマッピングによって学習されたような関数を備えてよい。たとえば、既定の時間期間は、
図11Aに示すようなトランザクションデータの第1のセット1110などのトランザクションデータのセットに関係し得る。この場合、ブロック1202は、所与のデータサンプルに対して、現在のトランザクションのためのトランザクションデータを取得することであって、トランザクションデータが、一意に識別可能なエンティティに対する識別子を備えることと、一意に識別可能なエンティティに対するルックアップデータを取得することとを備えてよい。たとえば、データサンプルは、ユーザ、口座名義人、または小売商に対する一意識別子を含んでよい。取得されるルックアップデータは、
図1A~
図1Cの中の148または
図2Aおよび
図2Bの中の242などのなどの補助データを備えてよい。一意識別子は、識別子によってインデックス付けされる、すなわち、識別されたユーザ、口座名義人、または小売商に属する、補助データ(たとえば、メタデータ)を取り出すために使用されてよい。現在のトランザクションのためのトランザクションデータは、第1の特徴セットを導出するために使用され、取得されたルックアップデータは、第2の特徴セットを導出するために使用される。ブロック1202はまた、時間ウィンドウの間、一意に識別可能なエンティティに対するトランザクションデータを取得することと、トランザクションデータから1つまたは複数の集約済みのメトリックを計算することとを備えてよい。たとえば、一意識別子はまた、
図11Aに示されるトランザクションデータの第1のセット1110と類似のデータを取得するために使用されてよく、1つまたは複数の集約済みのメトリックは、第1の特徴セットを導出するためにこのデータから計算されてよい。場合によっては、履歴トランザクションデータも、一意に識別可能なエンティティに対して取得されてよい。この履歴トランザクションデータは、
図11Aの中のトランザクションデータの第2のセット1120などの、時間ウィンドウの外側にあるトランザクションデータを備えてよい。1つまたは複数の集約済みのメトリックは、履歴トランザクションデータから計算されてよく、第2の特徴セットを導出するために使用されてよい。
【0129】
図9および他の例を参照しながら説明したように、方法1200によってトレーニングされる教師あり機械学習システムは、異常の尤度を表す既定の範囲内の値を出力するバイナリ分類器を備えてよい。異常が存在しないことまたは存在することを示すラベルは、そのとき、トレーニングに対して数値損失が計算されることを可能にする、0および1または-1および1などの2つの数値を備えてよい。
【0130】
いくつかの例では、少なくともブロック1214は、機械学習システムを再トレーニングするために規則的な間隔で実行されてよい。この場合、方法1200のデータ増補手法が、ブロック1214の最後の実行から徐々に増える利用可能なデータに適用されてよい。この場合、生成されるラベル付け済みのトレーニングデータ、すなわち、新たなデータにおけるブロック1202~1212の反復によって生み出される新たなデータは、以前に利用可能なデータと連結されて、すなわち、トレーニングセットのサイズを大きくしてよい。
【0131】
異常を検出する例示的な方法
図13は、トランザクションデータ内の異常を検出する例示的な方法1300を示す。例示的な方法1300は、
図9~
図12を参照しながら説明したトレーニング方法を使用してトレーニングされる教師あり機械学習システムを適用するための好適な適合を伴って、
図5Aおよび
図5Bの例示的なトランザクションプロセスフロー500および550と統合されてよい。
【0132】
ブロック1302において、方法1300は、異常検出のためにトランザクションデータを受信することを備える。このことは、
図5Aの中のブロック522と類似の動作を備えてよい。トランザクションデータは、たとえば、
図5Aおよび
図5Bの中のブロック512~518を参照しながら説明したように、提案されたトランザクションに関係し得る。トランザクションデータは、たとえば、内部関数または外部のRESTfulインターフェースに関してAPI要求に付随する、データパケットとして受信されてよい。ブロック1304において、受信トランザクションデータに基づいて特徴の第1のセットが生成される。このことは、
図5Aおよび
図5Bの中の1つまたはブロック522もしくは524の一部として実行されてよい。そのことは、
図9を参照しながら説明したように、観測可能な特徴ベクトル916を生成するために観測可能特徴生成器910を適用することを備えてよい。特徴の第1のセットは、API要求に付随するデータパケット、すなわち、提案されたトランザクションのためのデータに少なくとも基づいて計算される、数値のベクトルとして構成されてよい。
【0133】
ブロック1306において、方法1300は、受信トランザクションデータに関連する一意に識別可能なエンティティを決定することを備える。このことは、たとえば、API要求を構文解析することと、提案されたトランザクションに対するユーザおよび提案されたトランザクションに対する小売商のうちの1つまたは複数に対する識別子を抽出することとを備えてよい。ブロック1308において、方法1300は、一意に識別可能なエンティティに関連する補助データを取得することを備える。このことは、
図1A~
図1C、
図2A~
図2B、および
図9の中の補助データ148、242、および922のうちの1つまたは複数などのデータを取得することを備えてよい。補助データはまた、
図1A~
図1C、
図2A~
図2B、および
図9の中のトランザクションデータ146、240、および924のうちの1つまたは複数などの履歴トランザクションデータを備えてよく、またはそこから計算されてもよい。識別子が抽出される場合、これは、一意に識別可能なエンティティに基づいて履歴トランザクションデータを位置特定および/またはフィルタ処理するために、たとえば、特定のユーザアカウントに関係するトランザクションデータを取り出すために、使用されてよい。
【0134】
ブロック1310において、取得された補助データに基づいて特徴の第2のセットが生成される。このことは、
図9を参照しながら説明したようなコンテキスト特徴ベクトル926を生成するためにコンテキスト特徴生成器920を適用することを備えてよい。特徴の第2のセットは、ベクトル表現での数値として表されてよい。ある場合には、履歴トランザクションデータが、前記ベクトル表現に対する値のうちの1つまたは複数を決定するために処理されてよい。たとえば、1つもしくは複数の統計メトリックが、履歴トランザクションデータから計算されてよく、かつ/または履歴トランザクションデータが、トレーニング済みのパラメータのセットに基づいて特徴を抽出するために1つもしくは複数のニューラルネットワークアーキテクチャによって処理されてよい。これらのパラメータは、以下で説明する機械学習システムのパラメータを用いてトレーニングされてよい。場合によっては、ブロック1310は、一意に識別可能なエンティティに対する履歴トランザクションデータを取得することを備えてよく、ここで、履歴トランザクションデータは、受信トランザクションデータに関して規定された時間ウィンドウの外側にあるトランザクションデータを備える。この場合、ブロック1310は、履歴トランザクションデータから1つまたは複数の集約済みのメトリックを計算することと、少なくとも1つまたは複数の集約済みのメトリックから第2の特徴セットを生成することとを備えてよい。
【0135】
ブロック1312において、特徴の生成された第1および第2のセットに基づいて教師あり機械学習システムのために入力データが生成される。教師あり機械学習システムは、上記で説明した機械学習システム160、210、402、600、700、および940のうちの1つまたは複数の実装形態を備えてよい。教師あり機械学習システムは、履歴データサンプルおよび合成データサンプルを備えるトレーニングセットに基づいてトレーニングされる。合成データサンプルは、一意に識別可能なエンティティのセットの2つの異なるエンティティ、たとえば、2つの異なるユーザまたは小売商にそれぞれ関係する、履歴データサンプルからの特徴の第1および第2のセットの特徴を組み合わせることによって生成される。たとえば、トレーニングセットは、
図10に示す増補されたトレーニングセット1070を備えてよく、ここで、合成データサンプルは合成データサンプル1050を備え、履歴データサンプルは元のトレーニングセット1010を備える。合成データサンプルには、トレーニングに対して異常が存在することを示すラベル(たとえば、
図10の中のラベル1076に示すような「1」)が割り当てられ、履歴データサンプル内のラベル付けされていないデータサンプルには、トレーニングに対して異常が存在しないことを示すラベル(たとえば、
図10の中のラベル1076に示すような「0」)が割り当てられる。トレーニングは、機械学習コンピュータプログラムコードライブラリの中の関数に合う利用可能なモデルを適用することを備えてよい。教師あり機械学習システムがニューラルネットワークアーキテクチャを備える場合には、トレーニングは、教師あり機械学習システムによって出力される予測と割り当てられたラベルとの間の差分に基づく損失関数を使用する、勾配降下を用いた逆伝搬を適用することを備えてよい。トレーニングは、方法1300の適用の前に構成ステージにおいて実行されてよい。いくつかの機械学習システムの場合、より多くのデータが生成されるので(たとえば、
図5Aおよび
図5Bにおいて実証されたように、より多くのトランザクションが承認または拒絶されるので)、トレーニングはオンラインで適用されてよい。選択される教師あり機械学習システムに応じて、オフライントレーニング方法とオンライントレーニング方法の両方が使用されてよい。入力データを生成することは、
図9に示す入力特徴ベクトル930と類似の入力特徴ベクトルを生成することを備えてよい。場合によっては、まだ実行されていない場合、テキストデータおよびカテゴリーデータを数値の均等物に変換すること、データを正規化すること、次元数低減などを含む前処理が、入力データを生成するために適用されてよい。
【0136】
ブロック1314において、入力データに教師あり機械学習システムが適用される。このことは、「推定」ステップと呼ばれることがある、教師あり機械学習システムの順方向パスを実行することを備えてよい。教師あり機械学習システムは、異常が存在することを示す値を出力するように構成されたバイナリ分類器を備える。たとえば、出力値は、
図4および
図9の中の出力416または950などのスカラー値を備えてよい。その値は、(たとえば、シグモイド非線形性を使用して)0~1という範囲内で正規化されてよい。このことは、
図5Aおよび
図5Bの中のブロック524を参照しながら説明したように実行されてよい。
【0137】
ブロック1316において、教師あり機械学習システムによって出力される値に基づいて受信トランザクションデータが選択的にラベル付けされる。このことは、(たとえば、
図4を参照しながら説明したような)教師あり機械学習システムによって、かつ/または
図5Aおよび
図5Bの中のブロック528または552における支払いプロセッサシステム506などの別個のコンピューティングデバイスによって出力に基づいて実行されてよい。ラベル付けは、スカラー値とともに元のAPI要求への応答を送ることを備えてよい。そのことはまた、「異常」または「異常でない」というバイナリラベルを出力するためのしきい値の適用などの、1つまたは複数のカスタムな後処理計算を適用することを備えてよい。
【0138】
場合によっては、ブロック1316は、教師あり機械学習システムの出力に基づいてトランザクションを承認または拒絶することを備えてよい。このことは、トランザクションデータ内の少なくとも1つのトランザクションが受諾されるのかそれとも拒否されるのかを、教師あり機械学習システムによって出力される値に基づいて制御するための、制御データを生成することを備えてよい。たとえば、単純な事例では、教師あり機械学習システムの出力にしきい値が適用されてよく、しきい値よりも大きい(「異常」を表す)値は拒絶されてよく、しきい値よりも小さい(「正常な」アクションを表す)値は承認されてよく、しきい値に等しい値に対して好適な決定が行われる。
図1A~
図1Cおよび
図5A~
図5Bに示すものなどのいくつかの事例では、トランザクションデータは、承認されるべきトランザクションに関するポイントオブセールデバイスから受信されてよい。これらの場合には、ブロック1316は、教師あり機械学習システムによって出力される値が既定のしきい値未満であることへのトランザクション応答を承認することを備えてよい。
【0139】
いくつかの例では、ブロック1316は、教師あり機械学習システムによって出力される値に基づいて、受信トランザクションデータに関連する一意に識別可能なエンティティに選択的にフラグ付けすることを備える。たとえば、このことは、ユーザまたは小売商に不正としてフラグ付けすることを備えてよい。
【0140】
図9~
図13の第2の態様に関係するいくつかの例は、トランザクションが、予想される(すなわち、正常な)挙動に関係するのか、それとも予想外の(すなわち、異常な)挙動に関係するのかを示すように機械学習システムをトレーニングすることの技術的問題に対処し、ここで、挙動とは、単に経時的に1つまたは複数の電子システムに関して取られるアクションのセットを指す。本例は、トランザクション処理を伴う、すなわち、利用可能なデータのリポジトリがあるが、これが通常はラベル付けされていない履歴データを表し、予想外の挙動が元来まれである(たとえば、事例のうちの10%未満が「予想外」である)という問題に対処する。したがって、機械学習技術者は、ガウス(「正規」)分布という想定に基づいて設計されたような、これらのような従来の多くのツールを使用することができないが、異常は、通常、べき法則分布によって特徴づけられる。機械学習技術者はさらに、機械学習システムをトレーニングするためのラベル付けされたデータの欠如に直面する。これらの問題はさらに、機械学習の当技術分野において広くは認識されず、機械学習技術者が、解決策がないことを示すこと、または生産システムの中で使用され得る高い確度の結果をもたらさない教師なし学習手法を試しに適用することが一般的である。
【0141】
対照的に、第2の態様の本例は、ラベルが劣悪な状況の中で大きいクラスの異常トランザクションを識別することの問題を解決する。トランザクションを識別する機械学習システムが提案され、ここで、コンピューティングシステムとの観測される(すなわち、測定される)相互作用は、過去の相互作用に基づくか、または補助的な情報に基づくかのいずれかで、予想される相互作用とは異なる。本例では、利用可能なデータを増補して教師あり学習問題として問題を再び持ち出すことによって機能するトレーニングの方法が提案される。これは、比較に基づく機械学習システムよりも、予想される相互作用からの偏差とより密に整合する異常を識別できる、強力な教師あり学習アルゴリズムの使用を可能にする。実際には、提案される例は、トランザクションに不正として、より正確にラベル付けするように、教師あり機械学習がトレーニングされることを可能にする。本例の実装形態は、トランザクションが、1秒未満のレイテンシを伴って大量に(毎秒1000~2000トランザクション)処理される必要がある生産環境の中で、首尾よくテストされている。本明細書で説明する機械学習システムは、単純なスカラー値を出力するように特に設計され、このことは、依然としてバイナリ承認が出力に基づくことを可能にし、しかも本明細書で説明され大規模な生産実施のために構成された方式で機械学習構成がトレーニングされることを可能にし、スカラー値は、事実上、入力情報の大きい本体(たとえば、次元数が大きい入力ベクトル)を折りたたんで情報の特異点にするので、小さいけれども有益である。テストでは、このスカラー値がトランザクション承認のために使用可能であり、そのことは、生産システムを摩耗させて停止させることがある偽陽性を回避し、手でラベル付けされた異常と整合する真陽性をまた同じく識別する。このことは、電子支払いシステムの大規模な犯罪的悪用を回避する、より広い利点をもたらす。
【0142】
データセットの中の異常を検出する、比較に基づくいくつかの手法がある。これらは、教師なし異常値検出、合成少数オーバーサンプリング技法(SMOTE:Synthetic Minority Over-sampling Technique)、「Snorkel」システム、半教師あり学習システム、およびアクティブ学習システムを含む。
【0143】
教師なし異常値検出では、予想される挙動からの偏差を定量化するために有益であるものと見なされる特徴が生成され、ここで、その特徴が異常検出システムに入力され、異常検出システムは、特徴の集団内で、それらの特徴の全体的なデータ分布と比較して異常値である特徴を識別するように構成される。教師なし異常値検出を実行するための手法は、木ベースの分離フォレスト、敵対的生成ネットワーク、または変分オートエンコーダを使用することを含む。参照により本明細書に組み込まれる、AnおよびChoによる論文「Variational Autoencoder based Anomaly Detection using Reconstruction Probability」(SNU Data Mining Center、IEにおける2015-2特別講義)は、変分オートエンコーダからの再構成確率を使用する異常検出方法を記載している。しかしながら、これらの手法は複雑であり、トランザクション処理の制約と調和させるのが困難である。
【0144】
参照により本明細書に組み込まれる、Journal of Artificial Intelligence Research 16 (2002) 321~357において出版されたChawlaらによる同じ名称の論文に記載されるようなSMOTEは、データサンプルからの少数の(異常な)クラスをオーバーサンプルするとともに大多数の(正常な)クラスをアンダーサンプルする手法を記載している。しかしながら、この手法は、結果として生じた、確度に対する問題を伴って、「異常」とラベル付けされたデータサンプルに過剰に依拠する。Snorkelシステムは、参照により本明細書に組み込まれる、(2017年11月28日にarXivにおいて出版された)「Snorkel: Rapid Training Data Creation with Weak Supervision」と題するRatnerらによる論文の中に記載されている。それは、手でラベル付けされたデータを用いずにユーザが機械学習モデルをトレーニングすることを可能にする。それは、主にテキストベースの医療データ向けに設計され、ユーザが割り当てたラベルを分解されたコンテキスト階層に適用することによって弱い監督ソースを組み込むことを探索する。しかしながら、Snorkelシステムは、トランザクション処理システム内で使用されるデータの形式にはさほど適しておらず、生成的なラベル付けの確率的方法は、生産トランザクション処理システムに対する確度問題の可能性を持ち込む。それはまた、「expert」ラベルのソースを必要とする。
【0145】
半教師あり学習手法は、ラベル付けされたいくつかのトレーニングデータがあるがラベル付けされていないデータのバッチがあり得る状況を扱う。大部分の半教師あり方法は、ラベル付けされていないデータポイントに対して、見込みのあるラベルを(暗黙的または明示的に)推測して、それらがトレーニングにおいて使用されることを可能にする。しかしながら、半教師あり手法は、教師なし手法のように、より複雑かつハイパーパラメータ構成に対してより敏感となる傾向がある。それらはまた、高確度ラベルの小さいセットに依存する。アクティブ学習手法は、データのサブセットにラベル付けし、次いで、このラベル付けされたサブセットを使用して、ラベル付けされていないデータのより広いセットにラベルを適用するために、(人間のエキスパートなどの)オラクルを使用する。しかしながら、オラクルは容量が限定され、どのデータポイントをオラクルへ送るべきかについての用心深い選択を行うことが重要である。したがって、アクティブ学習は、できるだけ速くできるだけ多く学習するように、ラベル付けされていないどのデータポイントをオラクルへ送るべきかを選択することを、主に対象とする。
【0146】
したがって、これらの手法は、一般の設定におけるラベルスパース性問題に対処することを試みるが、トランザクション処理コンテキストに対して不適当となる傾向を有し、さらにそのトランザクションデータ内のアクションの予想外のパターンを検出することの問題を解決する助けとはならない。
【0147】
本明細書で説明する機械学習システムをトレーニングするいくつかの例は、以前に処理されたトランザクションをカバーする、ラベル付けされていない大規模なデータセットの利用可能性に基づいて動作し、ここで、
図1A~
図1Cに関して説明したトランザクションデータなどのデータの各部分は、カード口座名義人または小売商などの一意に識別可能なエンティティに関連付けられる(たとえば、インデックス付けされる)。本明細書で説明する例は、入力データを2つの特徴セットのタプル{C, O}に区分し、ここで、「C」は「コンテキスト」機械学習特徴のセットを示し、「O」は「観測可能な」機械学習特徴のセットを示す。このタプルは、電子支払い処理システムに関するエンティティによって着手される特定のアクション、たとえば、提案されたトランザクションに関係し得る。それはまた、他の場合には、1週間の活動などの、集約された期間のアクションに関係し得る。これらの例では、観測可能な特徴は、そのようなアクションの、または24時間の中で開始されるすべてのアクションなどのアクションを含む時間期間のステートフル集約の、未加工の観測に基づいて計算される。アクションは、ここでは、支払いプロセッサシステムへの、支払いを求める要求の提起に関係し得る。観測可能な特徴は、それらのアクションを通じて表現されるような、エンティティの現在の挙動または最近の挙動の観測として見られてよい。コンテキスト特徴は、観測可能な特徴を予測するために使用可能な補助データのもっと広いセットに基づいて計算されてよい。コンテキスト特徴は、どんなデータソースが利用可能であるのか、および/または予測を行うべき入力データを受信する機械学習システムの構成に依存し得る。
【0148】
本明細書で説明するいくつかの例は、支払い処理、および活動の検出される予想外のパターンを容易にするために、いくつかの方法で使用されてよい。ある場合には、コンテキスト特徴は、異なる小売商などの他のエンティティ、異なる地理的領域に位置するエンティティ、異なる受領者エンティティなどとの、相互作用の尤度に基づいて計算されてよい。この場合、機械学習システムによって出力されるスカラー値は、悪意のある第三者が支払いデータへのアクセスを獲得している(たとえば、アカウント詳細を「ハッキング」しており、不正な支払いを行うことを試みている)かどうかを決定する助けとなるために使用されてよい。他の場合には、スカラー出力は、電子システムの誤用、たとえば、誤った情報を用いてアカウントをオープンすることを識別するために使用されてよい。これらの場合には、機械学習システムは、事前開示された情報と矛盾するかまたはそれに適合しないエンティティに対するトランザクション履歴を識別するために使用されてよい。たとえば、これらの場合には、規定された時間期間にわたるトランザクションの頻度、値、および宛先を備える、観測可能な特徴が使用されてよく、年齢、職業、居住国などの、エンティティに関連するメタデータを要約するコンテキスト特徴が使用されてよい。また別の場合には、機械学習システムのスカラー出力は、過去のデータまたは開示されたデータに基づいて予想に整合しない電子挙動のパターンを検出することなどの、小売商が疑わしい活動に関与しつつあるかどうかを決定するために使用されてよい。たとえば、この事例におけるコンテキスト特徴は、ロケーション情報を含む、エンティティの特性を備えてよい。本例は、これらの事例の各々において適用されてよい。
【0149】
本明細書で説明するいくつかの例は、ラベル付けされていない履歴トレーニングデータに対するバイナリラベルを合成する、トレーニングのためのデータ増補方法を提案する。この方法内では、履歴トレーニングデータ内の既存のデータサンプル{C, O}には、異常が存在しないことを示すラベルが割り当てられる。次いで、トレーニングデータの中に別個に存在するが一緒には存在しないコンテキスト特徴と観測可能な特徴とを組み合わせることによって、合成されたタプル(すなわち、データサンプル){C, O'}または{C', O}が生成され、たとえば、entity_1に関連する、ある{C, O}からのCが、entity_2に関連する別の{C', O'}からのO'とペアにされる。この増補されたデータセットに対してトレーニングされると、異常が存在するかどうかを決定するために、新たなデータサンプル{C*, O*}に機械学習システムが適用されてよい。機械学習システムの出力は、現状のまま使用されてよく、または(たとえば、他の出力データを予測するためにトレーニングされる別の機械学習システムへの入力特徴としての)処理のさらなるパイプラインのための基礎を提供してよい。
【0150】
本明細書で説明するいくつかの例は、関連するラベルを提供するために入力特徴ベクトルのデータ区分とデータ増補プロセスとの組合せを使用する教師あり学習問題としての、トランザクションデータにおける異常検出の問題を引き起こす。確実にラベル付けされたデータサンプルの観測可能な特徴が、様々なエンティティの観測されたアクションから引き寄せられてよく、したがって、様々なエンティティのコンテキスト特徴から生成されるので、データ増補プロセスは、「異常」ラベルがアクションパターンの中の異常を示すことを保証する。このことは、エンティティのコンテキストに関連する予想に対して異常を検出するために分散ベースの教師なし異常検出を利用する、比較に基づく手法よりも、正確なスカラー出力を生み出す。現在のトレーニングプロセスを通じて、トレーニングされた教師あり機械学習システムは、エンティティの予想されるアクションからの偏差と相関した特定のタイプのデータ異常をもっと高度に考察するように「学習する」。対照的に、従来の教師なし異常値検出方法は、異常がエンティティに対する予想されるアクションからの偏差と相関するかどうかにかかわらず、すべてのデータ異常を等しく関心があるものとして取り扱い、たとえば、それらのアクション内の時間相関およびパターンを考慮に入れない。
【0151】
本明細書で説明する第2の態様に関係するいくつかの例は、確実にラベル付けされたデータ「異常」を必要としないトランザクション処理のための機械学習システムのトレーニングが利用可能となることを可能にする。このことは、比較に基づくアップサンプリング、弱い教師あり手法および半教師あり手法から、その手法を区別する。さらに、本明細書で説明するいくつかの例は、肯定的な(すなわち、異常な)データサンプルがラベルを失いつつあり得るという問題だけでなく、まず第一に肯定的なデータサンプルがまれであり得るという問題にも対処し、このことは、弱い教師あり手法および半教師あり手法によって対処されない。グラウンドトゥルースラベルが存在するが信じられないほどまれである場合には、アップサンプリングにおける比較に基づく手法、弱いラベル付け、アクティブ学習、および半教師あり学習は、ラベル付けされたデータの中で符号化される多様なアクションパターンにおける制限に対処することができない。説明する例は、大量の関連する肯定的な(すなわち、異常な)ラベルの生成を可能にして、教師あり機械学習システムが、複雑な決定境界を学習すること、および(たとえば、埋込みを通じて)特徴抽出を自動化することを容易にし、その両方が、改善された性能につながる。その上、本明細書で説明するいくつかの例は、アクティブ学習手法の場合のような、要求時にデータポイントをラベル付けするために存在すべき「オラクル」を必要とせず、われわれの手法は、弱い教師あり手法の場合のような、人間のエキスパートからの、またはプロキシ信号からの、入力も必要としない。
【0152】
本明細書でのいくつかの例では、第1の提案されたトランザクションに関連する第1の情報を受信し、第1の提案されたトランザクションに関連する少なくとも1つの事前トランザクションに関連する第2の情報を取り出し、第3の情報を生成するために第2の情報を使用して時間遅延式アルゴリズムを計算するように構成された、(
図6Aの第1の処理ステージ603などの)トランザクション処理モジュールと、トランザクション処理モジュールに通信可能に結合された(
図6Aの第2の処理ステージ604などの)重み付けモジュールとを備える、トランザクション処理システムが説明され、重み付けモジュールは、ニューラルベースの処理モジュールから第3の情報を受信し、第4の情報を生成するために第3の情報に重み付け係数を適用し、出力を生成するために第1の情報および第4の情報を使用して少なくとも1つの処理アルゴリズムを計算するように構成され、出力は、第1の提案されたトランザクションが不正であるかどうかを決定するために追加のトランザクション処理モジュールによって使用される。いくつかの例では、不正なトランザクションを検出するための方法も説明され、方法は、第1の提案されたトランザクションに関連する第1の情報をトランザクション処理モジュールによって受信することと、第1の提案されたトランザクションに関連する少なくとも1つの事前トランザクションに関連する第2の情報を記憶リポジトリからトランザクション処理モジュールによって取り出すことと、第3の情報を生成するために第2の情報を使用して時間遅延式アルゴリズムをトランザクション処理モジュールによって計算することと、トランザクション処理モジュールから第3の情報を重み付けモジュールによって受信することと、第4の情報を生成するために第3の情報に重み付け係数を重み付けモジュールによって適用することと、出力を生成するために第1の情報および第4の情報を使用して少なくとも1つの処理アルゴリズムを重み付けモジュールによって計算することとを備え、出力は、第1の提案されたトランザクションが不正であるかどうかを決定するために追加のトランザクション処理モジュールによって使用される。
【0153】
本明細書で説明するいくつかの例は、コンピュータ可読記憶媒体内に記憶される命令を介して実施され得る。コンピュータ可読媒体は、回転磁気ディスク、回転光ディスク、フラッシュランダムアクセスメモリ(RAM)チップ、および他の機械的に移動する記憶媒体またはソリッドステート記憶媒体のうちの1つまたは複数を備えてよい。使用中に、上記で説明した動作をプロセッサに実行させるために、前記プロセッサのうちの1つまたは複数によって命令が実行される。上記の実施形態、変形形態、および例は、例示的として理解されるものとする。さらなる実施形態、変形形態、および例が想定される。各例のいくつかの構成要素が別個に説明されているが、1つの例を参照しながら説明した機能性が別の例において好適に実装され得ること、およびいくつかの構成要素が実装形態に応じて省略されてよいことを理解されたい。任意の一例に関して説明した任意の特徴が、単独で、または説明した他の特徴と組み合わせて使用されてよく、同じく例のうちの任意の他の例または例のうちの任意の他の例の任意の組合せの1つまたは複数の特徴と組み合わせて使用されてよいことを、理解されたい。たとえば、システム構成要素に関して説明した特徴はまた、説明した方法の一部として実行されるように適合され得る。さらに、上記で説明されない均等物および修正も、添付の特許請求の範囲において定義される本発明の範囲から逸脱することなく採用されてよい。
【符号の説明】
【0154】
100、102、104 トランザクション処理システム
110 クライアントデバイス
120 コンピュータネットワーク
130 商業サーバ
140 支払いプロセッササーバ
142 第1のデータ記憶デバイス
144 第2のデータ記憶デバイス
146 トランザクションデータ
148 補助データ
150 機械学習サーバ
160 機械学習システム
162 入力データ
164 出力データ
170 ローカルデータ記憶デバイス
172 補助データ
200、202 データ記憶構成
210 機械学習システム
220 データバス
230、232 データ記憶デバイス
240 履歴トランザクションデータ
242 補助データ
250 データ転送チャネル
260 データ記憶デバイス
270 論理記憶層
280 区分
300 レコード
310 現在のトランザクションデータ
320 履歴トランザクションデータ
402 機械学習システム
410 入力データ
412 入力データインターフェース
414 機械学習モデルプラットフォーム
416 スカラー出力
418 警報システム
420 出力データインターフェース
422 出力データ
502 POSまたはユーザデバイス
504 商業システム
506 支払いプロセッサ(PP)システム
508 機械学習(ML)システム
510 発行銀行システム
600 機械学習システム
601 入力データ
602 スカラー出力
603 第1の処理ステージ
604 第2の処理ステージ
606 トランザクション時間データ、時間差インターフェース、時間差入力インターフェース
608 トランザクション特徴データ、受信トランザクションデータ、入力トランザクションデータ
610 第1の多層パーセプトロン
618 トランザクションデータ入力インターフェース
620 再帰型ニューラルネットワークアーキテクチャ
622 状態入力インターフェース
624 状態出力インターフェース
626 忘却ゲート
628 時間差符号化φd
630 出力データ
632 乗算
634 組合せ論理
660 アテンションニューラルネットワークアーキテクチャ
662 時間差インターフェース
664 履歴入力インターフェース
666 現在入力インターフェース
668 時間差符号化φe
670 連結ブロック
672 値ベクトル計算動作
674 鍵ベクトル計算動作
676 照会ベクトル計算動作
678 第1のドット積演算
680 時間差符号化φw
682 組合せ論理
684 ソフトマックス演算
686 第2のドット積演算
688 出力データ
690 第2の多層パーセプトロン
692 第1のスキップ接続
694 第2のスキップ接続
710 入力特徴ベクトル
720、722、724、726 決定木
730、732、734、736 分類値
740 アンサンブルプロセッサ
750 最終スカラー出力
810 トレーニングデータ
812 特徴データ
814 ラベル
840 機械学習システム
842 パラメータ
850 分類
860 トレーニングエンジン
900 機械学習システム
910 観測可能特徴生成器
912、914 トランザクションデータ
916 観測可能な特徴ベクトル
920 コンテキスト特徴生成器
922、924 補助データ
926 コンテキスト特徴ベクトル
930 入力特徴ベクトル
940 バイナリ分類器
942 パラメータ
950 スカラー出力
1000 パイプライン
1010 トレーニングセット
1012 データサンプル
1020 データ区分ステージ
1030 区分されたデータ
1032 第1の特徴セット
1034 第2の特徴セット
1040 合成データ生成ステージ
1050 合成データサンプル
1052、1054 混合されたペア
1060 データラベル付けステージ
1070 増補されたトレーニングセット
1072 観測可能な特徴
1074 コンテキスト特徴
1076 ラベル
1100 トランザクションデータ
1102 提案されたトランザクション
1110 トランザクションデータの第1のセット
1120 トランザクションデータの第2のセット
1140 特徴ベクトル
【国際調査報告】