(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-25
(45)【発行日】2023-09-04
(54)【発明の名称】機械学習アプリケーションにおけるカテゴリフィールド値の取り扱い
(51)【国際特許分類】
G06N 3/04 20230101AFI20230828BHJP
G06Q 20/40 20120101ALI20230828BHJP
G06Q 10/04 20230101ALI20230828BHJP
G06N 3/08 20230101ALI20230828BHJP
【FI】
G06N3/04
G06Q20/40
G06Q10/04
G06N3/08
(21)【出願番号】P 2021555001
(86)(22)【出願日】2020-03-10
(86)【国際出願番号】 US2020021827
(87)【国際公開番号】W WO2020185741
(87)【国際公開日】2020-09-17
【審査請求日】2021-11-10
(32)【優先日】2019-03-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508097593
【氏名又は名称】エクスペディア, インコーポレイテッド
【氏名又は名称原語表記】Expedia, Inc.
【住所又は居所原語表記】1111 Expedia Group Way W., Seattle, WA 98119, United States of America
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】ニチカ バスカー
(72)【発明者】
【氏名】オミッド カシェフィ
【審査官】金田 孝之
(56)【参考文献】
【文献】Johannes Jurgovsky et al.,Sequence classification for credit-card fraud detection,Expert Systems With Applications,Elsevier Ltd.,2018年,Vol. 100,pp. 234-245,<DOI: 10.1016/j.eswa.2018.01.037>
【文献】Konstantin Ziegler et al.,Injecting Semantic Background Knowledge into Neural Networks using Graph Embeddings,2017 IEEE 26th International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE),IEEE,2017年,<DOI: 10.1109/WETICE.2017.36>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/04
G06N 3/08
G06N 20/00
G06Q 10/04
G06Q 20/40
(57)【特許請求の範囲】
【請求項1】
ラベル付けされた取引記録を取得するステップであって、各記録は、取引に対応し、かつ前記取引に関連するフィールドのセット内の個々のフィールドについての値を含み、かつ前記取引が不正であると判別されたかどうかの表示でラベル付けされている、ステップと、
階層型ニューラルネットワークについてのハイパーパラメータを取得するステップであって、前記ハイパーパラメータは、少なくとも前記フィールドのセット内のカテゴリフィールドおよび前記カテゴリフィールド値を多次元ベクトルに変換するために使用される埋め込み処理を識別するためのものである、ステップと、
前記多次元ベクトルを生成するステップと、
少なくとも補助ニューラルネットワークおよび主ニューラルネットワークを備える階層型ニューラルネットワークを生成するステップであって、
前記補助ニューラルネットワークは、入力として前記多次元ベクトルを取り込み、かつ各ベクトルについて前記ベクトルの低次元表現を出力し、
前記主ニューラルネットワークは、入力として、前記補助ニューラルネットワークによって出力された前記低次元表現と前記フィールドのセット内の非カテゴリフィールドの1つまたは複数の値との組み合わせを取り込み、かつ入力記録に対応する個々の取引が不正である可能性を示す二値分類を出力する、
ステップと、
学習済みモデルを取得するために、前記ラベル付けされた取引記録によって前記階層型ニューラルネットワークを訓練するステップと、
新しい取引が不正である可能性を判別するために、前記学習済みモデルによって新しい取引記録を処理するステップと、
前記新しい取引が不正である可能性を出力するステップと、
を含
み、
前記ハイパーパラメータは、前記フィールドのセット内の1つまたは複数の追加のカテゴリフィールドを識別し、前記階層型ニューラルネットワークは、前記1つまたは複数の追加のカテゴリフィールドのそれぞれについて追加の補助ニューラルネットワークを備えており、各追加の補助ニューラルネットワークの出力は、前記主ニューラルネットワークへの追加の入力を表している、
コンピュータ実装方法。
【請求項2】
前記低次元表現は、前記補助ニューラルネットワークの出力ニューロンのセットによって表される、請求項
1記載のコンピュータ実装方法。
【請求項3】
前記多次元ベクトルを生成するステップは、前記カテゴリフィールドの各値について、対応する多次元ベクトルを識別するルックアップテーブルを参照するステップを含む、請求項
1または2記載のコンピュータ実装方法。
【請求項4】
前記ルックアップテーブルは、前記カテゴリフィールドについての値のコーパスに機械学習アルゴリズムを事前に適用することによって生成される、請求項3記載のコンピュータ実装方法。
【請求項5】
前記階層型ニューラルネットワークは、さらに、前記補助ニューラルネットワークによって出力された前記低次元表現を前記主ニューラルネットワークに供給する中間ニューラルネットワークを備える、請求項
1から4までのいずれか1項記載のコンピュータ実装方法。
【請求項6】
前記中間ニューラルネットワークは、さらに、前記低次元表現を前記主ニューラルネットワークに供給する前に、前記補助ニューラルネットワークによって出力された前記低次元表現の次元を低減する、請求項
5記載のコンピュータ実装方法。
【請求項7】
前記埋め込み処理は、単語レベルまたは文字レベルの埋め込みの少なくとも1つを表す、請求項
6記載のコンピュータ実装方法。
【請求項8】
コンピューティングシステムであって、
プロセッサと、
コンピュータ実行可能命令を含むデータストアと、
を備え、
前記コンピュータ実行可能命令は、前記コンピューティングシステムによって実行される際に、前記コンピューティングシステムに、
ラベル付けされた記録を取得させ、各記録は、フィールドのセット内の個々のフィールドについての値を含み、かつ前記記録についての分類でラベル付けされており、
階層型ニューラルネットワークについてのハイパーパラメータを取得させ、前記ハイパーパラメータは、少なくとも前記フィールドのセット内のカテゴリフィールドおよび前記カテゴリフィールド値を多次元ベクトルに変換するために使用される埋め込みを識別するためのものであり、
少なくとも補助ニューラルネットワークおよび主ニューラルネットワークを備える階層型ニューラルネットワークを生成させ、
前記補助ニューラルネットワークは、入力として、埋め込み処理による前記カテゴリフィールドについての値の変換から得られる、前記フィールドのセット内の前記カテゴリフィールドの多次元ベクトルを取り込み、かつ各多次元ベクトルについて、前記多次元ベクトルの低次元表現を出力するものであり、
前記主ニューラルネットワークは、入力として、前記補助ニューラルネットワークによって出力された低次元表現と前記フィールドのセット内の非カテゴリフィールドの1つまたは複数の値との組み合わせを取り込み、かつ入力記録の二値分類を出力するものであり、
前記ラベル付けされた記録によって前記階層型ニューラルネットワークを訓練して学習済みモデルを取得させ、
前記学習済みモデルによって新しい記録を処理して前記新しい記録についての分類を判別させ、
前記新しい記録についての前記分類を出力させる、
ためのものであ
り、
前記ハイパーパラメータは、前記フィールドのセット内の1つまたは複数の追加のカテゴリフィールドを識別し、前記階層型ニューラルネットワークは、前記1つまたは複数の追加のカテゴリフィールドのそれぞれについての追加の補助ニューラルネットワークを備え、各追加の補助ニューラルネットワークの出力は、前記主ニューラルネットワークへの追加の入力を表す、
コンピューティングシステム。
【請求項9】
前記カテゴリフィールドは定性的な値を表し、前記非カテゴリフィールドは定量的な値を表す、請求項
8記載のシステム。
【請求項10】
前記階層型ニューラルネットワークは、訓練中に、前記非カテゴリフィールド値と前記多次元ベクトルの個々の値との間の相関関係の識別を防止し、かつ訓練中に前記非カテゴリフィールド値と前記低次元表現の個々の値との間の相関関係の識別を可能とするように構成されている、請求項
8または9記載のシステム。
【請求項11】
前記階層型ニューラルネットワークは、さらに、前記補助ニューラルネットワークによって出力された前記低次元表現を前記主ニューラルネットワークに供給する中間ニューラルネットワークを備える、請求項
8から10までのいずれか1項記載のシステム。
【請求項12】
前記中間ニューラルネットワークは、さらに、前記低次元表現を前記主ニューラルネットワークに供給する前に、前記補助ニューラルネットワークによって出力された前記低次元表現の次元を低減する、請求項
11記載のシステム。
【請求項13】
前記分類は、二値分類である、請求項
8から12までのいずれか1項記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
背景
一般的に言えば、機械学習とは、分析モデルの構築を自動化するためのデータ分析アプリケーションである。機械学習は、明示的に定義されたモデルを用いて検出することが困難または不可能なデータの相関関係を理解するために、様々な分野に適用されてきている。例えば、機械学習システム118に機械学習が適用され、取引時に知られている様々なデータフィールド(例えば、コスト、アカウント識別子、取引場所、購入アイテム)が、取引が不正である可能性の割合とどのように相関するかをモデル化している。これらのフィールドの値とこれに続く不正率とを相関させる履歴データが機械学習アルゴリズムに渡され、これにより統計モデルが生成される。新しい取引が試みられると、フィールドの値がモデルに渡され、その結果、新しい取引が不正である可能性の割合を示す数値が得られる。本技術分野では、ニューラルネットワーク、決定木、回帰アルゴリズム、ベイジアンアルゴリズムなど、数多くの機械学習モデルが知られている。
【0002】
機械学習で問題となるのは、カテゴリ変数の表現である。カテゴリ変数とは、一般的に、可能な値の限られたセットの1つを取り、各値が特定の個人やグループを表す変数のことである。例えば、色(例えば「緑」、「青」など)や場所(例えば「シアトル」、「ニューヨーク」など)がカテゴリ変数に含まれる。一般的に、カテゴリ変数は順序を意味するものではない。これに対し、順序値は、順序を示すために使用される。例えば、スコア(例えば、「1」、「2」、「3」など)は順序値でありうる。機械学習アルゴリズムは、一般的にデータの数値表現を取り込むように開発されている。しかしながら、多くの場合、機械学習アルゴリズムは、データの数値表現が順序数であることを前提に形成されている。これが誤った結論を導く。例えば、「緑」、「青」、「赤」という色が、1、2、3という値で表現されていた場合、機械学習アルゴリズムでは、「緑」と「赤」の平均値(1と3の合計の半分として表現される)が2、すなわち「青」に相当すると判別してしまうかもしれない。このような誤った結論は、モデルの出力にエラーをもたらす。
【0003】
カテゴリ変数の表現における難しさは、変数の次元性に起因することが多い。名目の用語として、2つのカテゴリ値は、人間が識別するのは簡単だが、機械で表現するのは難しい、多種多様な抽象的な次元での相関関係を表すことができる。例えば、「ボート(boat)」と「船(ship)」とは、人間には容易に強い相関関係があることがわかるが、機械にとってはその相関関係を表現することは困難である。このようなカテゴリ変数の抽象的な次元性を具体的な数値の形に落とし込む試みは、これまでにもいろいろとなされてきた。例えば、各カテゴリ値を、最終的に関連する値との関連性を示す単一の数値に還元することが一般的に行われている。例えば、不正検出の文脈では、不正に関連する名称には高い値が割り当てられ、不正に関連しない名称には低い値が割り当てられることがある。このようなアプローチは、名称が少し変わっただけで検出を逃れることができ、ありふれた名称を持つユーザが、不正を行ったと誤って非難される可能性があるため、好ましくない。逆に、各カテゴリ値を多次元値に変換する場合(変数の抽象的な次元性を具体的に表現しようとする場合)、機械学習モデルの複雑さが急激に増すことになる。例えば、機械学習アルゴリズムでは、一般的に、値の各次元が別個の「特徴量」として扱われ、この特徴量は、所定の出力を示す相関関係について他の別個の値と比較される値である。モデルの特徴量の数が増えるほど、モデルの複雑さも増す。しかしながら、多くの場合、多次元のカテゴリ変数の個々の値を個別に比較することはできない。例えば、“John Doe”という名称がn個の値のベクトルに変換された場合、そのn個の値のうち最初の値と、取引が開始されたネットワークアドレスとの間の相関関係は、予測値を持たないかもしれない。そのため、n個の値のそれぞれをネットワークアドレスと比較すると、計算資源の使用が過剰になり、非効率になる可能性がある。(これに対し、“John Doe”という名称を示すn個の値のセット全体をネットワークアドレスの範囲と比較すると、例えば、このような名称が不正に関連しており、不正が蔓延している国の住所から生じている場合には、予測値を持つ可能性がある。)このように、カテゴリ変数を低次元の値(例えば、単一の値)で表現することは、計算効率は高いものの、類似のカテゴリ変数間のインタラクションを無視したモデルになってしまう。逆に、カテゴリ変数を高次元の値で表現すると、計算効率が悪くなる。
【0004】
次に、本発明の様々な特徴の実施形態について、以下の図面を参照して説明する。図面全体を通して、参照される構成要素間の対応関係を示すために参照番号が再使用されうる。図面は、本明細書に記載された例示的な実施形態を説明するために提供されており、本開示の範囲を限定することを意図していない。
【図面の簡単な説明】
【0005】
【
図1】ニューラルネットワーク機械学習アルゴリズムを取引履歴データのカテゴリ変数に適用して不正取引の予測を容易にする機械学習システム118を示すブロック図である。
【
図2A】幾つかの実施形態による、ネットワーク環境内で不正検出機械学習モデルを初期化するためのデータの例示的な生成およびフローを示すブロック図である。
【
図2B】幾つかの実施形態による、ネットワーク環境内で機械学習システム118を使用するためのデータの例示的な生成およびフローを示すブロック図である。
【
図3A】幾つかの実施形態による、機械学習システム118によって使用されるニューラルネットワークアーキテクチャの例の視覚的表現である。
【
図3B】幾つかの実施形態による、機械学習システム118によって使用されるニューラルネットワークアーキテクチャの例の視覚的表現である。
【
図4】幾つかの実施形態による、不正検出方法を実行するように構成されたコンピューティングデバイスの一般的なアーキテクチャを示している。
【
図5】幾つかの実施形態による、不正検出方法の例を示すフロー図である。
【0006】
詳細な説明
概説すれば、本開示の態様は、機械学習モデル内で相関情報を分析するために必要とされる過剰な計算資源を制限または除去しつつ、カテゴリ変数の相関情報を維持するための機械学習モデル内でカテゴリ変数を効率的に取り扱うことに関する。本開示の実施形態は、例示的に、多数の類似したカテゴリ変数値が不正を示す場合を検出するために使用することができ、これにより他の類似したカテゴリ変数値の不正の試みを検出することができる。例えば、本開示の実施形態は、不正と、“John Doe”および“John Dohe”という名称の使用との間に強い相関関係があることを検出し、これにより“Jon Doe”という名称の使用も不正である可能性が高いと予測することができる。カテゴリ変数を効率的に取り扱うために、本開示の実施形態では、カテゴリ値の高次元数値表現を生成するための「埋め込み(embedding)」を使用している。埋め込みは、機械学習における既知の技術であり、値の重要な相関情報を維持しつつ、値(例えば、カテゴリ値)の次元を減らすことを試みる。そして、これらの高次元数値表現は、補助ニューラルネットワークの特徴量(例えば、補助ニューラルネットワークへの入力)として処理される。各補助ニューラルネットワークの出力は、主ニューラルネットワークの特徴量として、他の特徴量(例えば、非カテゴリ変数)と共に使用され、結果として、取引が不正である可能性の割合を提供するモデルなどの出力が得られる。高次元の数値表現を別々の補助ネットワークで処理することにより、このような表現の個々の次元と他の特徴量(例えば、非カテゴリ変数)とのインタラクションが制限され、ネットワーク全体の過剰な組み合わせ的成長が低減または除去される。各補助ネットワークの出力は、分析の対象となる他のデータに基づいて、適切な次元でカテゴリ特徴を表現するように制約されている。例えば、一般的に意味的または文脈的に相互に関連しない2つの変数(取引の名称と時間など)は、低次元の値(例えば、それぞれが主ネットワークの特徴量を表す単一の値)として主ネットワークで処理されうる。意味的または文脈的に相関性の高い変数(名称の変数の2つの値など)は、高次元で処理されうる。多少の意味的または文脈的な相関がある変数(内容的には重複しているが全体的な形が異なる、名称とメールアドレスなど)は、2つの初期補助ネットワークの出力を中間補助ネットワークに結合し、その出力を主ニューラルネットワークに供給するなどして、中間次元で処理されうる。このネットワークの組み合わせにより、階層型ニューラルネットワークを得ることができる。このようなネットワークの「階層」を使用することで、ニューラルネットワーク上の特徴量のインタラクションのレベルを、これらのインタラクションに期待される意味的または文脈的な関連性に関して制御することができ、これにより、先行モデルの過剰な計算資源の使用を発生させることなく、カテゴリ変数の高次元表現に基づいて機械学習を行うことができる。
【0007】
上述したように、カテゴリ変数を処理するためには、一般的に、変数の数値への初期変換が行われる。本開示の実施形態では、変数の高次元表現を生成するために、埋め込みを使用することができる。本明細書において、次元性とは、一般的に、カテゴリ値を表すために使用される数値の量を意味する。例えば、色の値「青」を数値「1」として表現することは、1次元の値と考えることができる。「青」をベクトル「[1,0]」で表現することは、2次元の値と考えることができる、など。
【0008】
埋め込みの一例として、「単語レベル」の埋め込み(「単語レベル表現」としても知られる)があり、これは、値の間の距離が単語の間の相関性を示すように、単語を多次元の値に変換しようとするものである。例えば、「ボート(boat)」と「船(ship)」という単語は、多次元空間での距離が小さい値に変換されうる(どちらも水上船舶(water craft)に関連しているため)。同様に、単語レベルの埋め込みでは、「船(ship)」と「郵便(mail)」は、多次元空間での距離が小さい値に変換されうる(どちらも小包を送ることに関連しているため)。しかしながら、同じ単語レベルの埋め込みによって、「ボート(boat)」と「郵便(mail)」とは多次元空間での距離が大きい値に変換されうる。このように、単語レベルの埋め込みは、単語を数値の形で表現しつつ、人間が読むことができる単語の高いレベルの相関情報を維持することができる。単語レベルの埋め込みは、本技術分野で一般的に知られているので、詳細には説明しない。しかしながら、簡単に言えば、単語レベルの埋め込みは、多くの場合、単語のコーパスに対する機械学習の先行適用に依存している。例えば、公開されたテキストに対して実行された機械学習分析は、「犬」および「猫」がテキスト内の「ペット」という単語の近くに頻繁に現れ、したがって関連していると示すかもしれない。したがって、埋め込みによる「犬」と「猫」との多次元表現は、多次元空間内で近いものになりうる。単語レベルの埋め込みアルゴリズムの一例として、GOOGLE(登録商標)が開発した“word2vec”アルゴリズムがあり、このアルゴリズムは、入力として単語を取り込み、その単語に関する文脈情報を保存しようとする多次元の値(「ベクトル」)を生成する。本技術分野では、他の単語レベルの埋め込みアルゴリズムが知られており、これらのいずれも本開示に関連して使用することができる。幾つかの実施形態では、単語レベルの埋め込みを取引履歴データで補完して、不正の可能性のある取引の文脈における特定の単語間の文脈上の関係を判別することができる。例えば、単語のコーパスは、単語と、関連する不正との対応関係を示すデータ(例えば、取引のデータフィールドでの各単語の使用、および取引が最終的に不正であると判別されたかどうかを示す履歴記録)と共にニューラルネットワークで訓練されうる。ニューラルネットワークの出力は、一般的なコーパスではなく、取引の文脈における単語の文脈的な関係を示す多次元表現であってもよい。幾つかの例では、単語レベルの埋め込みを判別するネットワークの訓練は、本明細書に記載されている不正検出モデルを訓練する前に、独立して行われる。他の例では、単語レベルの埋め込みを判別するネットワークの訓練は、本明細書に記載されている不正検出モデルの訓練と同時に行われる。例えば、単語レベルの埋め込みを提供するために訓練されるニューラルネットワークは、階層型ニューラルネットワークの補助ネットワークとして表されてもよい。
【0009】
埋め込みの別の例として、「文字レベル」の埋め込み(「文字レベル表現」としても知られる)があり、これは、単語を、その単語内の個々の文字を代表する多次元値に変換しようとするものである(単語レベルの埋め込みのように、単語の意味的な使用を代表するものとは逆である)。例えば、文字レベルの埋め込みでは、“hello”と“yellow”という単語は、重複する文字や単語の全体的な構造を考慮して、多次元空間において互いに近い値に変換されうる。文字レベルの埋め込みは、一般的な会話では見られない(または使用されない)カテゴリ値の小さな変化を捉えるのに有効かもしれない。例えば、“johnpdoe”と“jonhdoe”という2つのユーザネームは、コーパスには存在しないかもしれないので、単語レベルの埋め込みではユーザネームを表現するには不十分である。しかしながら、文字レベルの埋め込みであれば、両ユーザネームを類似の多次元値に変換できる可能性がある。単語レベルの埋め込みと同様に、文字レベルの埋め込みも本技術分野で一般に知られているため、詳細には説明しない。単語レベルの埋め込みアルゴリズムの一例として、入力として文字列を取り込み、文字列内のオブジェクトに関する文脈情報を保存しようとする多次元値(「ベクトル」)を生成する“seq2vec”アルゴリズムがある。seq2vecモデルは、“word2vec”と同様に、単語間の文脈情報を記述するために適用されることが多いが、このモデルは、個々の文字をオブジェクトとして識別し、文字間の文脈情報を見つけるように訓練されることもできる。このように、文字レベルの埋め込みモデルは、単語レベルの埋め込みモデルと同様に、入力として、文字列のコーパス(例えば、ある言語の単語の一般的なコーパス、不正の可能性のある取引の文脈で使用される単語のコーパスなど)を取り込み、文字間の文脈情報を保存しようとする多次元表現を出力する(例えば、コーパス内で互いに近くに現れる文字には、多次元空間内で互いに近くのベクトル値が割り当てられる)。他の単語レベルの埋め込みアルゴリズムも本技術分野で知られており、そのいずれも本開示に関連して使用することができる。
【0010】
所与のカテゴリ変数(例えば、取引を行った人の名称)に対する各値の高次元表現を取得した後、これらの表現は、出力(例えば、ニューロン)を生成するために補助ニューラルネットワークに渡すことができ、この出力は、次に、後続のニューラルネットワーク(例えば、中間ネットワークまたは主ネットワーク)の特徴量として使用される。各カテゴリ変数(例えば、名称、メールアドレス、場所など)について個別の補助ネットワークを構築し、各カテゴリ変数の出力を入力数に関して制約することができ、この入力数は、変数値の高次元表現における次元数に概ね等しい。例えば、名称が100次元のベクトルとして表現されている場合、補助ネットワークは、各名称の100次元を100個の入力値として取り込み、3~5個のニューロン出力を生成するかもしれない。これらの出力は、カテゴリ変数値の低次元表現を有効に表すもので、後続のニューラルネットワークに渡すことができる。主ネットワークの出力は、所望の結果(例えば、ある取引が不正であるか否かの二値分類)として確立される。補助ネットワークと主ネットワークとは同時に訓練され、補助ネットワークの出力は、埋め込み(同時に訓練されたモデルではなく、確立されたモデルに依存する)によって達成される一般化された低次元表現ではなく、所望の出力に固有の低次元表現(例えば、不正か非不正かの二値分類、または不正/濫用のタイプによる多クラス分類)を表すようにすることができる。このように、補助ニューラルネットワークによって生成されたカテゴリ変数の低次元表現は、高次元表現を主モデルに投入することを必要とせずに(そうしないと、上述のように、単一のモデルで1つまたは複数の高次元表現をモデル化しようとすることに関連するコストが発生する)、所望の最終結果に関する意味的または文脈的な情報を維持することが期待される。有利なことに、補助ネットワークの低次元出力を主ネットワークで利用することにより、ユーザは、既存の方法と比較して少ない計算資源でカテゴリ変数と非カテゴリ変数のインタラクションや相関関係をテストすることができる。
【0011】
本開示に照らして当業者であれば理解できるように、本明細書に開示されている実施形態は、カテゴリ変数に関連する機械学習を実施するコンピューティングシステムの能力を効率的に向上させるものである。具体的には、本開示の実施形態は、主要な機械学習モデルと、1つまたは複数の補助モデルとの組み合わせを使用することによって、このようなシステムの計算資源の使用効率を向上させ、その補助モデルは、主モデルに渡される他の特徴量とのこれらの高次元表現のインタラクションを制限しながら、高次元表現としてのカテゴリ変数の処理を可能にする。さらに、ここで開示されている実施形態は、コンピューティングシステムに固有の技術的問題、具体的には、機械学習を行うための計算資源が本質的に限られていること、および主モデル内のカテゴリ変数の高次元表現について機械学習を行おうとすると非効率が生じることに対処している。これらの技術的問題は、カテゴリ変数の高次元表現を処理し、特徴量としての出力を主モデルに供給するための補助モデルの使用を含む、本明細書に記載された様々な技術的解決策によって対処される。このように、本開示は、既存のデータ処理システムおよびコンピューティングシステム全般の改善を表すものである。
【0012】
本開示の実施形態では、ニューラルネットワークなどの特定の機械学習モデルを参照して説明しているが、本開示に従って他の機械学習モデルを使用してもよい。
【0013】
本開示の上述の態様および付随する多くの利点は、添付の図面と併せて以下の説明を参照することで、より容易に、より良く理解できるようになる。
【0014】
図1は、後のデータの分類を容易にするために、ニューラルネットワーク機械学習アルゴリズムを履歴データのカテゴリ変数および非カテゴリ変数に適用する機械学習システム118が使用される環境100を示すブロック図である。具体的には、機械学習システム118は、主ネットワークと補助ネットワークとの両方を含むニューラルネットワークモデルを生成することによって履歴データを処理し、補助ネットワークは、主ネットワークに出力を渡す前にカテゴリ変数の高次元表現を処理する。例示的な実施形態では、機械学習システム118は、取引履歴データを処理して、提案された新しい取引を不正または非不正とする二値分類を生成する。しかしながら、他の実施形態では、他のタイプのデータを処理して、二値または非二値の分類を含む他の分類を生成してもよい。例えば、主ネットワークの複数の出力ノードは、ネットワークが複数の分類システムで使用するための値を出力するように構成されてもよい。
図1の環境100は、クライアントデバイス102、取引システム106、および機械学習システム118を含むものとして描かれており、これらは全てネットワーク114を介して互いに通信していてもよい。
【0015】
取引システム106は、ネットワークベースの取引ファシリテータを例示的に表しており、クライアントから(クライアントデバイス102を介して)の取引を開始するための要求を処理するように動作する。取引は、例示的に、物的アイテム、非物的アイテム、サービスなどの購入または取得であってよい。多くの異なるタイプのネットワークベースの取引ファシリテータが本技術分野で知られている。したがって、取引システム106の動作の詳細は実施形態によって異なる可能性があり、本明細書では説明しない。しかしながら、議論を意図して、取引システム106は、取引に関連する様々なフィールドと、取引の最終的な結果(例えば、不正または非不正として)とを相関させる履歴データを維持していることを想定している。各取引のフィールドは様々であってよく、取引の時間、取引の金額などのフィールド、取引の1つまたは複数の当事者を識別するためのフィールド(例えば名称、生年月日、アカウント識別子またはユーザネーム、メールアドレス、住所、インターネットプロトコル(IP)アドレスなど)、取引の対象となるアイテム(例えば、購入したフライトの出発空港および到着空港、購入したアイテムのブランドなど、アイテムの特徴)、取引の支払い情報(例えば、支払い方法の種類や使用されたクレジットカード番号など)、または取引に関するその他の制約事項(例えば、取引が返金可能かどうか)などのフィールドが含まれうる。各取引の結果は、取引が完了した後にこれらの取引を監視することによって判別することができ、例えば、なりすました個人による不正であると後に報告された取引に対する「チャージバック」を監視することによって判別することができる。取引履歴データはデータストア110に例示的に保存されており、このデータストア110は、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ネットワーク接続ストレージ(NAS)、またはその他の永続的または実質的に永続的なデータストレージデバイスであってよい。
【0016】
クライアントデバイス102は一般に、取引を要求するために取引システムと対話するデバイスを表す。例えば、取引システム106は、クライアントデバイス102を使用するクライアントが、取引要求および要求に関連するデータフィールドを提出することができるグラフィカルユーザインタフェース(GUI)などのユーザインタフェースを提供してもよい。幾つかの例では、要求に関連するデータフィールドは、取引システム106によって独立して判別されてもよい(例えば、時間帯を独立して判別することによって、要求に関連するクライアントのデータを取得するためにプロファイル情報を参照することによって、など)。クライアントデバイス102は、任意の数の異なるコンピューティングデバイスを含んでもよい。例えば、個々のクライアントデバイス102は、ラップトップまたはタブレットコンピュータ、パーソナルコンピュータ、ウェアラブルコンピュータ、パーソナルデジタルアシスタント(PDA)、ハイブリッドPDA/携帯電話機、または携帯電話機であってもよい。
【0017】
クライアントデバイス102と取引システム106とは、ネットワーク114を介して情報交換することもできる。ネットワーク114は、任意の有線ネットワーク、無線ネットワーク、またはこれらの組み合わせであってよい。さらに、ネットワーク114は、パーソナルエリアネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、グローバルエリアネットワーク(インターネットなど)、ケーブルネットワーク、衛星ネットワーク、セルラー電話ネットワーク、またはこれらの組み合わせであってもよい。単一のネットワーク114として示されているが、幾つかの実施形態では、
図1の構成要素は、複数の、潜在的に異なるネットワークを介して通信してもよい。
【0018】
上述したように、取引システム106にとっては、取引を確定する前に不正取引を検出することが望ましい場合が多い。したがって、
図1では、取引システム106は、不正検出モデルの生成によって不正の検出を支援するように動作する機械学習システム118と通信しているように描かれている。具体的には、機械学習システム118は、補助ニューラルネットワークを使用してカテゴリ変数の高次元表現を処理するように構成されており、その出力は主ニューラルネットワークの特徴量として使用され、その出力は、次に取引を不正または非不正に分類することを表す(この分類は、例えば、不正が発生している可能性の割合としてモデル化することができる)。モデルの生成を容易にするために、機械学習システムは、ベクトル変換ユニット126、モデリングユニット130、およびリスク検出ユニット134を含む。ベクトル変換ユニット126は、カテゴリフィールド値(例えば、名称、メールアドレスなど)を、これらのフィールド値の高次元の数値表現に変換するように動作するコンピュータコードを含むことができる。各高次元の数値表現は、本明細書で全般的にベクトルと呼ばれている数値のセットの形を取ることができる。一実施形態では、カテゴリフィールド値は、上述したように、単語レベルまたは文字レベルの埋め込みなどの埋め込み技術を用いて、数値表現に変換される。モデリングユニット130は、階層型ニューラルネットワークなどの機械学習モデルを生成しかつ訓練するように動作するコードを表すことができ、高次元の数値表現は、主ネットワークに渡される前に、まず、1つまたは複数の補助ニューラルネットワークに渡される。学習済みモデルは、リスク検出ユニット134によって使用することができ、リスク検出ユニット134は、試みられた取引の新しいフィールド値を学習済みモデルに渡して、取引が不正である可能性に関する分類が行われるように動作するコンピュータコードを含むことができる。
【0019】
図2A~
図2Bを参照して、出力が主ニューラルネットワークの特徴量として使用される1つまたは複数の補助ネットワークを含む階層型ニューラルネットワークを生成、訓練および使用するための機械学習システム118の動作について、例示的なインタラクションを説明する。具体的には、
図2Aは、このような階層型ニューラルネットワークを生成しかつ訓練するために使用される例示的なインタラクションを描き、一方、
図2Bは、学習済みネットワークを使用して、試みられた取引の不正の可能性を予測するための例示的なインタラクションを描いている。
【0020】
インタラクションは(1)で始まり、取引システム106が機械学習システム118に取引履歴データを送信する。幾つかの実施形態では、取引履歴データは、取引システム106で処理されたまたは取引システム106に提出された過去の取引の生データで構成されていてもよい。例えば、履歴データは、3カ月の期間中に取引システム106で行われた全ての取引のリスト、ならびに取引に関連するフィールド、例えば、取引の時間、取引の金額、取引についての1つまたは複数の当事者を識別するためのフィールド(例えば、名称、生年月日、アカウント識別子またはユーザネーム、メールアドレス、住所、インターネットプロトコル(IP)アドレスなど)、取引に関連するアイテム(例えば、購入したフライトの出発空港および到着空港、購入したアイテムのブランドなど、アイテムの特徴)、取引の支払い情報(例えば、支払い方法の種類または使用されたクレジットカード番号など)、または取引に関するその他の制約条件(例えば、取引が返金可能かどうか)などであってよい。履歴データは、例示的に、所望のカテゴリ分類に関する取引の結果で「タグ付け」または「ラベル付け」される。例えば、各取引は、「不正」または「非不正」とラベル付けすることができる。幾つかの実施形態では、履歴データは、テキストファイル、表形式のスプレッドシート、または他のデータ保存形式の形で保存および送信することができる。
【0021】
(2)において、機械学習システム118は、所望のニューラルネットワークについてのニューラルネットワークハイパーパラメータを取得する。ハイパーパラメータは、例えば、取引システム106または機械学習システム118のオペレータによって指定されてもよい。一般的に、ハイパーパラメータは、カテゴリ的に扱われるべき履歴データ内のフィールドと、フィールド値に適用される埋め込みとを含みうる。ハイパーパラメータはさらに、補助ネットワーク、主ネットワーク、および中間ネットワーク(もしあれば)の観点から、ニューラルネットワークの全体的な望ましい構造を含んでもよい。例えば、ハイパーパラメータは、カテゴリフィールドごとに、そのカテゴリフィールドに関連する補助ネットワークの隠れ層の数およびその層のユニット数、ならびにその補助ネットワークの出力ニューロンの数を指定してもよい。ハイパーパラメータは、主ネットワークの隠れ層の数、各層のユニット数、主ネットワークに供給される他の非カテゴリ特徴を同様に指定することができる。補助ネットワークの出力と主ネットワークの入力(「特徴量」)との間で中間ネットワークを使用する場合、ハイパーパラメータはこのような中間ネットワークの構造を指定することができる。また、ニューラルネットワークに関して本技術分野で知られている様々な追加のハイパーパラメータを指定してもよい。
【0022】
(3)において、機械学習システム118(例えば、ベクトル変換ユニット126)は、ハイパーパラメータによって指定されているように、履歴データからのカテゴリフィールド値を、対応する高次元の数値表現(ベクトル)に変換する。例示的に、各カテゴリフィールド値は、フィールド値の文字列表現をベクトルに変換するために、上述した単語レベルの埋め込みまたは文字レベルの埋め込みの少なくとも1つによって処理されてもよい。所与のカテゴリフィールドについての単一の埋め込みを例示的に説明したが、幾つかの例では、同じフィールドが異なる埋め込みで表されていてもよく、それぞれが異なる補助ニューラルネットワークに渡される。例えば、名称のフィールドでは、意味的/文脈的な情報(例えば、似たような意味の単語が繰り返し使われていること)と、文字関連の情報(例えば、名称に使われている文字のわずかな違い)の両方を評価するために、単語レベルと文字レベルの両方の埋め込みによって表されることがある。
【0023】
その後、(4)において、機械学習システム118は(例えば、モデリングユニット130を介して)、ハイパーパラメータによってニューラルネットワークを生成し、訓練する。例示的に、ハイパーパラメータ内で指定された各カテゴリフィールドについて、モデリングユニット130は、フィールド値のベクトル表現内の値を入力として取り込み、後のネットワークへの入力として機能するノードのセットを出力として提供する補助ネットワークを生成してもよい。各補助ネットワークによって出力されるノードの数は、ハイパーパラメータ内で指定されてもよく、一般的に、補助ネットワークによって取り込まれるベクトル表現の次元よりも小さくてもよい。したがって、ノードのセットの出力は、それ自体がカテゴリフィールド値の低次元表現と見ることができる。モデリングユニット130は、ハイパーパラメータ内で指定された方法で、各補助ネットワークの出力を組み合わせてもよい。例えば、各補助ネットワークの出力は、主ネットワークへの入力として直接に使用されてもよく、または1つまたは複数の中間ネットワークへの出力として使用されてもよく、中間ネットワークの出力は、次に主ネットワークへの入力となる。モデリングユニット130は、主ネットワークへの入力として、1つまたは複数の非カテゴリフィールドをさらに供給してもよい。
【0024】
ネットワーク構造を生成した後、モデリングユニット130は、取引履歴データの少なくとも一部を使用してネットワークを訓練してもよい。定義されたニューラルネットワーク構造の一般的な訓練は本技術分野で知られており、したがって、本明細書では詳細には説明しない。しかしながら、簡単に言えば、モデリングユニット130は、例えば、履歴データを複数のデータセット(例えば、訓練セット、検証セット、およびテストセット)に分割し、階層型ニューラルネットワーク(補助ネットワーク、主ネットワーク、および任意の中間ネットワークを含むネットワーク全体)を用いてデータセットを処理し、各ノードで入力データに適用される重みを決定することができる。最終的には、提案された取引のフィールドを入力として取り込み、そのフィールドが所定のカテゴリ(例えば、不正または非不正)に分類される確率を出力とする最終モデルを生成することができる。
【0025】
図2Bは、幾つかの実施形態による、ネットワーク環境内で機械学習システム118を使用するためのデータの例示的な生成およびフローを示すブロック図である。データフローは、(5)ユーザが、クライアントデバイス102を介して、取引システム106上での取引の開始を要求したときに開始されうる。例えば、ユーザは、商業小売業者のオンラインウェブサイトからアイテムを購入しようとするかもしれない。取引を許可するかどうかの判別を助けるために、取引システム106は、(6)において、取引情報(例えば、上述したフィールドを含む)を機械学習システム118に供給する。その後、機械学習システム118は、(例えば、リスク検出ユニット134を介して)以前に学習させたモデルを取引情報に適用して、取引が不正である可能性を取得することができる。(8)において、機械学習システム118は、取引システム106が取引を許可するか否かを判別できるよう、最終的なリスクスコアを取引システム106に送信する。例示的には、取引システムは、閾値以上の取引の試みを拒否するか、またはさらなる処理(例えば、人間によるまたは自動化された検証)のために保持するように、閾値の可能性を確立することができる。
【0026】
図3A~
図3Bは、幾つかの実施形態による、一定期間の履歴データを調べることに少なくとも部分的に依拠して機械学習システム118によって生成されかつ訓練されうる例示的な階層型ニューラルネットワークの視覚的表現である。具体的には、
図3Aは、主ネットワークに接合された単一の補助ネットワークを有する階層型ニューラルネットワークを描いている。
図3Bは、複数の補助ネットワーク、中間ネットワーク、および主ネットワークを有する階層型ニューラルネットワークを描いている。
【0027】
具体的には、
図3Aでは、補助ネットワーク(影付きのノードとして示されている)を介して処理される単一のカテゴリフィールド(例えば、「名称」フィールド)を含み、その出力が主ネットワークへの入力(または特徴量)として渡される、例示的な階層型ニューラルネットワーク300が示されている。補助ネットワークは、カテゴリフィールド値(例えば、1つの取引エントリについての“John Doe”)に対応する入力ノード302を含む。補助ネットワークはさらに、埋め込みを介して多次元ベクトルに変換されるカテゴリフィールドについての値を表すベクトル層304を含む。ベクトル層304内の各ノードは、カテゴリフィールド値に埋め込みを適用して作成されたベクトル内の単一の数値を例示的に表す。したがって、
図3Aでは、カテゴリフィールド値を埋め込むと、5次元ベクトルになり、その個々の値がベクトル層304の個々のノードに渡される。実際には、カテゴリフィールド値は、非常に高次元のベクトル(例えば、100以上の次元)に変換されることもあり、したがって、ベクトル層304は、
図3Aに描かれているよりも多くのノードを有することもある。入力ノード302は完全性のために示されているが、幾つかの例では、カテゴリフィールド値が以前にベクトルに変換されているかもしれないので、補助ネットワークは入力ノードを除外してもよい。したがって、ベクトル層304は、補助ネットワークへの入力層として機能してもよい。
【0028】
さらに、階層型ネットワーク300は、主ネットワーク(影のないノードとして示されている)を含む。補助ネットワークの出力は、主ネットワークへの入力、すなわち特徴量307を表す。さらに、主ネットワークは、非カテゴリフィールド306(これは、例えば、非カテゴリフィールド値の、オペレータが定義した変換によって形成されてもよい)から追加の特徴量のセットを取り込む。主ネットワークの特徴量307は、隠れ層308を通って出力ノード310に到達する。幾つかの実施形態では、出力310は、カテゴリフィールド値302および他の非カテゴリフィールド値306(例えば、取引の金額、取引の時間、または他の数値データ)が与えられた場合の不正の可能性を示す最終スコアである。
【0029】
図3Aに示しているように、補助ニューラルネットワークの出力数は、ベクトル層304のサイズに比べて小さくなるように選択することができる。一実施形態では、補助ネットワークの出力は、3~5個のニューロンに設定される。低次元出力を有する補助ネットワークを使用することにより、カテゴリフィールドをネットワーク300に組み込むための他の技術と比較して、ネットワーク300の全体的な複雑さを低減することができる。例えば、単純な埋め込みと連結(concatenation)とに依存する従来のニューラルネットワークアーキテクチャでは、埋め込みを介してカテゴリ値を50次元のベクトルに変換し、そのベクトルをネットワークの他の特徴量と連結して、ネットワークに50個の特徴量を追加することになるかもしれない。特徴量の数が増えれば増えるほどネットワークは複雑になり、ネットワークの生成および訓練に要する時間も長くなる。そのため、特に複数のカテゴリ値を考慮する場合には、連結は非実用的かつ非効率的となる。この非効率性は、ニューラルネットワークが、特徴量をグループとしてではなく独立して考慮するように構成されていることによって、さらに悪化する。そのため、50個の特徴量としてベクトルを追加すると、ネットワークは個々に50個の特徴量と他の非カテゴリ特徴量との間の相関関係を不要に求めることになり、その相関関係は非現実的なものとなりうる。
【0030】
カテゴリ特徴量を他の非カテゴリ特徴量に単純に埋め込んで連結することに依拠している従来のニューラルネットワーク技術と比べて、ネットワーク300は、カテゴリフィールドのベクトル表現を他の非カテゴリ特徴量と連結せず、代わりに、補助ネットワークを介してカテゴリフィールドを処理している。従来の連結を回避することで、ネットワーク300は、ベクトル全体を意味的な単位として維持することができ、ベクトル内の各数値を個別に処理することによって意味的な関係を失うことがない。有利なことに、ネットワーク300は、各数字の間の不要かつ無意味なインタラクションを学習し、不要な複雑さならびに無効な関係およびインタラクションマッピングを不用意に課すことを回避することができる。
【0031】
図3Bは、複数の補助ネットワーク312、中間ネットワーク314、および主ネットワーク316を有する例示的な階層型ニューラルネットワーク311を描いている。ネットワーク311の多くの構成要素は、
図3Aのネットワーク300と類似しているので、あらためての説明はしない。しかしながら、ネットワーク300とは対照的に、
図3Bのネットワーク311は、3つの補助的なネットワークであるネットワーク312A~312Cを含む。各ネットワークは、例示的にカテゴリフィールドに対応しており、このフィールドは、それぞれの補助ネットワーク312を通して次元が低減される前に、埋め込みを介して高次元のベクトルに変換される。補助ネットワーク312の出力は、中間ネットワーク314への入力として使用され、これにより、出力の次元性が再び低減される。中間ネットワーク314の使用は、例えば、非カテゴリフィールド値との相関関係の検出を試みることなく複数のカテゴリフィールド値の間の相関関係の検出を可能にするために有益でありうる。例えば、中間ネットワーク314は、ユーザの名称、メールアドレス、および住所の間のより高いレベルの相関関係が検出されるように(例えばこれらの3つのフィールドが、所定の形式で相関するとき、不正の可能性が高くなるかまたは低くなるように)使用されうる。中間ネットワーク314の出力は、一般に、そのネットワーク314への入力に関して情報を失うので、主ネットワークは、ユーザの名称と他の非カテゴリフィールド(例えば、取引額)との間のより高いレベルの相関関係を検出しようとしなくてよい。このように、階層型ネットワーク311は、異なるフィールドのインタラクションを制御することを可能にし、非現実的ではなく関連性があると予想される相関関係のみを検査するようにネットワークを制限する。
【0032】
図4は、幾つかの実施形態による不正検出方法を実行するように構成されたコンピューティングデバイスの一般的なアーキテクチャを示している。
図4に描かれた機械学習システム118の一般的なアーキテクチャは、本開示の態様を実施するために使用されうるコンピュータハードウェアおよびソフトウェアの構成を含む。ハードウェアは、以下でより詳細に説明するように、物的な電子デバイス上に実装されてもよい。機械学習システム118は、
図4に示すものよりも多くの(または少ない)構成要素を含んでいてもよい。しかしながら、実施可能な開示の提供のためには、これらの概して従来の構成要素の全てが示されることは必須ではない。さらに、
図4に示された一般的なアーキテクチャは、
図1に示された他のコンポーネントの1つまたは複数を実装するために使用されうる。
【0033】
図示されているように、機械学習システム118は、処理ユニット490、ネットワークインタフェース492、コンピュータ可読媒体ドライブ494、および入出力デバイスインタフェース496を含み、これらの全てが通信バスによって互いに通信することができる。ネットワークインタフェース492は、1つまたは複数のネットワークまたはコンピューティングシステムへの接続性を提供することができる。したがって、処理ユニット490は、ネットワーク114を介して他のコンピューティングシステムまたはサービスから情報および命令を受信しうる。また、処理ユニット490は、メモリ480との間で通信を行い、さらに、入出力デバイスインタフェース496を介してオプションのディスプレイ(図示せず)のための出力情報を提供してもよい。また、入出力デバイスインタフェース496は、オプションの入力デバイス(図示せず)からの入力を受容することもできる。
【0034】
メモリ480は、本開示の1つまたは複数の態様を実施するために処理ユニット490が実行するコンピュータプログラム命令(一部の実施形態ではユニットとしてグループ化されている)を含むことができる。メモリ480は、RAM、3D XPOINTメモリ、フラッシュメモリ、磁気ストレージなど(これらに限定されない)を含む、1つまたは複数の層のメモリデバイスに対応する。
【0035】
メモリ480は、機械学習システム118の一般的な管理および動作において処理ユニット490が使用するためのコンピュータプログラム命令を提供するオペレーティングシステム484を格納することができる。メモリ480は、本開示の態様を実施するためのコンピュータプログラム命令および他の情報をさらに含んでもよい。例えば、一実施形態では、メモリ480は、コンピューティングデバイスに表示するためのユーザインタフェース(および/またはそのための命令)を、例えば、コンピューティングデバイスにインストールされたブラウザまたはアプリケーションなどのナビゲーションおよび/またはブラウジングインタフェースを介して生成するユーザインタフェースユニット482を含む。
【0036】
ユーザインタフェースユニット482に加えて、および/またはユーザインタフェースユニット482と組み合わせて、メモリ480は、カテゴリフィールドをベクトル表現に変換するように構成されたベクトル変換ユニット126を含んでもよい。ベクトル変換ユニット126は、これらの変換を容易にするために、ルックアップテーブル、マッピングなどを含んでもよい。例えば、ベクトル変換ユニット126がword2vecアルゴリズムを実装している場合、ユニット126は、辞書内の個々の単語を対応するベクトルに変換することを可能にするルックアップテーブルを含んでもよく、このルックアップテーブルは、単語のコーパスに対するword2vecアルゴリズムの別個の訓練によって生成されうる。ユニット126は、seq2vecアルゴリズムの実装によって生成されたテーブルまたはマッピングなど、文字レベルの埋め込みを容易にするための同様のルックアップテーブルまたはマッピングを含んでもよい。
【0037】
メモリ480は、階層型ニューラルネットワークを生成しかつ訓練するように構成されたモデリングユニット130をさらに含んでもよい。また、メモリ480は、取引データを学習済み機械学習モデルに通して不正を検出するためのリスク検出ユニット134を含んでもよい。
【0038】
図5は、補助ネットワークを使用して機械学習アプリケーションでカテゴリフィールド値を取り扱うための例示的なルーチン500を示すフロー図である。ルーチン500は、例えば、
図1の機械学習システム118によって実行されてもよい。より詳細には、ルーチン500は、イベントまたはアイテムを分類するために階層型ニューラルネットワークを生成しかつ訓練するためのインタラクションを描いている。
図5の文脈では、ルーチン500は、取引履歴データに基づいて、取引を不正または非不正に分類することを参照して説明される。しかしながら、他のタイプのデータもルーチン500を介して処理されうる。
【0039】
ルーチン500は、ブロック510で開始され、機械学習システム118が、ラベル付けされたデータを受信する。ラベル付けされたデータは、例えば、取引システム106からの過去の取引のリストであって、取引が不正であったかどうかによってラベル付けされたものを含みうる。幾つかの実施形態では、履歴データは、一定期間(例えば、過去12カ月間)に取引システム106を通して発生した全ての取引の過去の記録を含んでもよい。
【0040】
ついで、ルーチン500はブロック515に進み、システム118は、ラベル付けされたデータに基づいて訓練されるべき階層型ニューラルネットワークのハイパーパラメータを取得する。ハイパーパラメータは、例えば、ラベル付けされたデータのうちどのフィールドがカテゴリ化されているかの指示と、高次元ベクトルになるようにカテゴリフィールド値に適用される適切な埋め込みとを含みうる。さらに、ハイパーパラメータには、各カテゴリ値について作成される補助ネットワークの望ましい構造、例えば各補助ネットワークに含まれる隠れ層や出力ノードの数などが含まれうる。さらに、ハイパーパラメータは、主ネットワークに渡される前に1つまたは複数の補助ネットワークを、中間ネットワークを介して統合させるべきかどうか、ならびに中間ネットワークのサイズおよび構造など、階層型ニューラルネットワークの所望の階層を指定していてもよい。また、ハイパーパラメータには、隠れ層の数および各層のノード数など、主ネットワークのパラメータが含まれていてもよい。
【0041】
ブロック520において、機械学習システム118は、ハイパーパラメータ内で指示されているように、(ラベル付けされたデータで表現された)カテゴリフィールド値をベクトルに変換する。ブロック520の実装は、所定の変換に従ってフィールド値を埋め込むことを含んでもよい。幾つかの例では、これらの変換は、階層型ネットワークの訓練中に発生する可能性があり、したがって、別個のブロックとしてのブロック520の実装は不要である可能性がある。
【0042】
ブロック525において、機械学習システム118は、ハイパーパラメータ内で識別された各カテゴリフィールド値についての補助ネットワーク、主ネットワーク、および(ハイパーパラメータ内で指定されている場合)中間ネットワークを含む、階層型ニューラルネットワークを生成しかつ訓練する。生成される可能性のあるモデルの例は、上述の
図3Aおよび
図3Bに示されている。一実施形態では、ネットワークは、最初に各カテゴリ値に対する補助ネットワークを生成し、(ハイパーパラメータ内で指定されている場合)中間ネットワークを介してこれらの補助ネットワークの出力を統合し、補助ネットワーク(または代わりに1つまたは複数の中間ネットワーク)の出力を、主ネットワークへの入力として非カテゴリの特徴値と組み合わせることによって、ハイパーパラメータに基づいて手続通りに生成される。このように、ハイパーパラメータは階層型ネットワークの全体的な構造を考慮して指定されうるが、ネットワーク自体は人間のオペレータが明示的にモデル化する必要がない場合がある。ネットワークを生成した後、機械学習システム118は、従来のニューラルネットワークの訓練に従って、ラベル付けされたデータを介してネットワークを訓練する。その結果、入力フィールドの所定の記録について、出力として分類値(例えば、取引が不正であるというリスク)を生成するモデルが生成される。
【0043】
ブロック525で機械学習モデルが生成されかつ訓練された後、ブロック530で、機械学習システム118は、新しい取引データを受信する。幾つかの実施形態では、新しい取引データは、取引システム106上のユーザによって開始された新しい取引に対応しうるものであり、取引システム106は、レビューのためにこれを機械学習システム118に送信する。ブロック535で、システム118は、生成されかつ訓練された階層モデルを介して、受信したデータを処理し、分類値(例えば、取引が不正であるというリスク)を生成する。その後、ブロック545において、システム118は、分類値を(例えば取引システム106に)出力する。したがって、取引システム106は、分類値を使用して、例えば取引を許可するか拒否するかを判別しうる。その後、ルーチン500は終了する。
【0044】
本開示の実施形態は、以下の条項(clause)を考慮して説明することができる。
[条項1] 機械学習アプリケーションでカテゴリフィールド値を取り扱うシステムであって、
ラベル付けされた取引記録を備えるデータストアであって、各記録は、取引に対応し、かつ前記取引に関連するフィールドのセット内の個々のフィールドの値を含み、かつ前記取引が不正であると判別されたかどうかの表示でラベル付けされている、データストアと、
コンピュータ実行可能命令で構成された1つまたは複数のプロセッサであって、少なくとも、
階層型ニューラルネットワークのハイパーパラメータを取得し、前記ハイパーパラメータは、少なくとも前記フィールドのセット内のカテゴリフィールドおよび前記カテゴリフィールド値を多次元ベクトルに変換するために使用される埋め込み処理を識別し、
前記記録内の前記カテゴリフィールドのフィールド値を前記埋め込み処理によって変換することにより、前記カテゴリフィールドの前記多次元ベクトルを生成し、
補助ニューラルネットワークを生成し、前記補助ニューラルネットワークは、多次元ベクトルを入力として取り込み、かつ各ベクトルについてそのベクトルの低次元表現を出力し、
少なくとも前記補助ニューラルネットワークおよび主ニューラルネットワークを備える階層型ニューラルネットワークを生成し、前記主ニューラルネットワークは、入力として、前記補助ニューラルネットワークによって出力された前記低次元表現と前記フィールドのセット内の非カテゴリフィールドの1つまたは複数の値との組み合わせを取り込み、かつ入力記録に対応する個々の取引が不正である可能性を示す二値分類を出力し、
前記ラベル付けされた取引データによって前記階層型ニューラルネットワークを訓練して学習済みモデルを生成し、
前記学習済みモデルによって新しい取引記録を処理して、新しい取引が不正である可能性を判別し、
前記新しい取引が不正である可能性を出力する、
プロセッサと
を備える、システム。
[条項2] 前記カテゴリフィールドは、各取引の当事者の名称、ユーザネーム、メールアドレス、または住所のうちの少なくとも1つを表す、条項1記載のシステム。
[条項3] 前記非カテゴリフィールドは、各取引についての順序値または数値を表す、条項1記載のシステム。
[条項4] 前記順序値は、取引額または取引時間の少なくとも1つを含む、条項3記載のシステム。
[条項5] 前記埋め込み処理は、単語レベルまたは文字レベルの埋め込みの少なくとも1つを表す、条項1記載のシステム。
[条項6] コンピュータ実装方法であって、
ラベル付けされた取引記録を取得することであって、各記録は、取引に対応し、かつ前記取引に関連するフィールドのセット内の個々のフィールドの値を含み、かつ前記取引が不正であると判別されたかどうかの表示でラベル付けされている、ことと、
階層型ニューラルネットワークについてのハイパーパラメータを取得することであって、前記ハイパーパラメータは、少なくとも前記フィールドのセット内のカテゴリフィールドおよび前記カテゴリフィールド値を多次元ベクトルに変換するために使用される埋め込み処理を識別するためのものである、ことと、
前記多次元ベクトルを生成することと、
少なくとも補助ニューラルネットワークおよび主ニューラルネットワークを備える階層型ニューラルネットワークを生成することであって、
前記補助ニューラルネットワークは、入力として、前記多次元ベクトルを取り込み、各ベクトルについて、そのベクトルの低次元表現を出力し、
前記主ニューラルネットワークは、入力として、前記補助ニューラルネットワークによって出力された前記低次元表現と、前記フィールドのセット内の非カテゴリフィールドの1つまたは複数の値との組み合わせを取り込み、前記主ニューラルネットワークは、入力記録に対応する個々の取引が不正である可能性を示す二値分類を出力する、
ことと、
前記ラベル付けされた取引記録によって前記階層型ニューラルネットワークを訓練して学習済みモデルを生成することと、
前記学習済みモデルによって新しい取引記録を処理して、新しい取引が不正である可能性を判別することと、
前記新しい取引が不正である可能性を出力することと、
を含む、コンピュータ実装方法。
[条項7] 前記ハイパーパラメータは、前記フィールドのセット内の1つまたは複数の追加のカテゴリフィールドを識別し、前記階層型ニューラルネットワークは、前記1つまたは複数の追加のカテゴリフィールドのそれぞれについての追加の補助ニューラルネットワークを備えており、各追加の補助ニューラルネットワークの出力は、前記主ニューラルネットワークへの追加の入力を表している、条項6記載のコンピュータ実装方法。
[条項8] 前記低次元表現は、前記補助ニューラルネットワークの出力ニューロンのセットによって表される、条項7記載のコンピュータ実装方法。
[条項9] 前記多次元ベクトルを生成することは、前記カテゴリフィールドの各値について、対応する多次元ベクトルを識別するルックアップテーブルを参照することを含む、条項7記載のコンピュータ実装方法。
[条項10] 前記ルックアップテーブルは、前記カテゴリフィールドについての値のコーパスに機械学習アルゴリズムを事前に適用することによって生成される、条項7記載のコンピュータ実装方法。
[条項11] 前記階層型ニューラルネットワークは、さらに、前記補助ニューラルネットワークによって出力された前記低次元表現を前記主ニューラルネットワークに供給する中間ニューラルネットワークを備える、条項7記載のコンピュータ実装方法。
[条項12] 前記中間ニューラルネットワークは、さらに、前記低次元表現を前記主ニューラルネットワークに供給する前に、前記補助ニューラルネットワークによって出力された前記低次元表現の次元を低減する、条項11記載のコンピュータ実装方法。
[条項13] 前記埋め込み処理は、単語レベルまたは文字レベルの埋め込みの少なくとも1つを表す、条項7記載のコンピュータ実装方法。
[条項14] コンピュータ実行可能命令を含む非一時性コンピュータ可読媒体であって、前記コンピュータ実行可能命令は、コンピューティングシステムによって実行される際に、前記コンピューティングシステムに、
ラベル付けされた記録を取得させ、各記録は、フィールドのセット内の個々のフィールドの値を含み、かつ前記記録の分類でラベル付けされており、
階層型ニューラルネットワークについてのハイパーパラメータを取得させ、前記ハイパーパラメータは、少なくとも前記フィールドのセット内のカテゴリフィールドおよび前記カテゴリフィールド値を多次元ベクトルに変換するために使用される埋め込みを識別するためのものであり、
少なくとも補助ニューラルネットワークおよび主ニューラルネットワークを備える階層型ニューラルネットワークを生成させ、
前記補助ニューラルネットワークは、入力として、埋め込み処理による前記カテゴリフィールドについての値の変換から得られる、前記フィールドのセット内の前記カテゴリフィールドの多次元ベクトルを取り込み、かつ各多次元ベクトルについて、前記多次元ベクトルの低次元表現を出力するものであり、
前記主ニューラルネットワークは、入力として、前記補助ニューラルネットワークによって出力された前記低次元表現と、前記フィールドのセット内の非カテゴリフィールドの1つまたは複数の値との組み合わせを取り込み、かつ入力記録の二値分類を出力するものであり、
前記ラベル付けされた記録によって前記階層型ニューラルネットワークを訓練させて学習済みモデルを取得させ、
前記学習済みモデルによって新しい記録を処理させて前記新しい記録の分類を判別させ、
前記新しい記録の前記分類を出力させる、
ためのものである、非一時性コンピュータ可読媒体。
[条項15] 前記カテゴリフィールドは定性的な値を表し、前記非カテゴリフィールドは定量的な値を表す、条項14記載の非一時性コンピュータ可読媒体。
[条項16] 前記階層型ニューラルネットワークは、訓練中に、前記非カテゴリフィールド値と前記多次元ベクトルの個々の値との間の相関関係の識別を防止し、かつ訓練中に、前記非カテゴリフィールド値と前記低次元表現の個々の値との間の相関関係の識別を可能とするように構成されている、条項14記載の非一時性コンピュータ可読媒体。
[条項17] 前記ハイパーパラメータは、前記フィールドのセット内の1つまたは複数の追加のカテゴリフィールドを識別し、前記階層型ニューラルネットワークは、1つまたは複数の追加のカテゴリフィールドのそれぞれについての追加の補助ニューラルネットワークを備え、各追加の補助ニューラルネットワークの前記出力は、前記主ニューラルネットワークへの追加の入力を表す、条項14記載の非一時性コンピュータ可読媒体。
[条項18] 前記階層型ニューラルネットワークは、さらに、前記補助ニューラルネットワークによって出力された前記低次元表現を前記主ニューラルネットワークに供給する中間ニューラルネットワークを備える、条項14記載の非一時性コンピュータ可読媒体。
[条項19] 前記中間ニューラルネットワークは、さらに、前記低次元表現を前記主ニューラルネットワークに供給する前に、前記補助ニューラルネットワークによって出力された前記低次元表現の次元を低減する、条項18記載の非一時性コンピュータ可読媒体。
[条項20] 前記分類は、二値分類である、条項14記載の非一時性コンピュータ可読媒体。
【0045】
実施形態によっては、本明細書に記載されているプロセスまたはアルゴリズムのいずれかの特定の行為、イベント、または機能を、異なる順序で実行したり、追加したり、統合したり、または完全に省いたりすることができる(例えば、記載されている全ての操作またはイベントがアルゴリズムの実行のために必要ではない場合)。さらに、特定の実施形態では、操作またはイベントは、順次ではなく、例えば、マルチスレッド処理、割込み処理、または1つまたは複数のコンピュータプロセッサもしくはプロセッサコア、または他の並列アーキテクチャ上で、同時に実行することができる。
【0046】
本明細書に開示された実施形態に関連して説明された様々な例示的な論理ブロック、モジュール、ルーチン、およびアルゴリズムのステップは、電子ハードウェアとして、または電子ハードウェアと実行可能なソフトウェアとの組み合わせとして実装することができる。この互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、およびステップを、その機能性の観点から上記で全般的に説明してきた。このような機能がハードウェアとして実装されるか、あるいはハードウェア上で動作するソフトウェアとして実装されるかは、特定のアプリケーションとシステム全体に課される設計上の制約に依存する。説明した機能は、特定のアプリケーションごとに様々な方法で実装することができるが、このような実装の決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
【0047】
さらに、本明細書に開示された実施形態に関連して説明された様々な例示的な論理ブロックおよびモジュールは、類似性検出システム、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、離散的なゲートまたはトランジスタ論理、離散的なハードウェアコンポーネント、または本明細書に記載された機能を実行するように設計されたこれらの任意の組み合わせなどの機械によって実装または実行することができる。類似性検出システムは、マイクロプロセッサであるか、またはマイクロプロセッサを含むことができるが、代替として、類似性検出システムは、予測情報を推定しかつ通信するように構成されたコントローラ、マイクロコントローラ、またはステートマシン、これらの組み合わせなどであるか、またはこれらを含むことができる。類似性検出システムは、コンピュータ実行可能命令を処理するように構成された電気回路を含むことができる。本明細書では、主にデジタル技術に関して説明しているが、類似性検出システムは、主としてアナログコンポーネントを含むこともできる。例えば、本明細書に記載された予測アルゴリズムの一部または全部は、アナログ回路またはアナログとデジタルの混合回路で実装されてもよい。コンピューティング環境は、幾つかの例を挙げれば、これらに限定されるものではないが、マイクロプロセッサに基づくコンピュータシステム、メインフレームコンピュータ、デジタルシグナルプロセッサ、ポータブルコンピューティングデバイス、デバイスコントローラ、またはアプライアンス内の計算エンジンなど、任意のタイプのコンピュータシステムを含むことができる。
【0048】
本明細書に開示された実施形態に関連して説明された方法、プロセス、ルーチン、またはアルゴリズムの構成要素は、ハードウェアに直接に具現化することも、類似性検出システムによって実行されるソフトウェアモジュールに具現化することも、またはこれら2つの組み合わせに具現化することもできる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または任意の他の形態の非一時性コンピュータ可読記憶媒体に搭載することができる。例示的な記憶媒体は、類似性検出システムが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、類似性検出システムに結合させることができる。代替として、記憶媒体は、類似性検出システムと一体化させることができる。類似性検出システムと記憶媒体とは、ASICに搭載することができる。このASICは、ユーザ端末に搭載することができる。代替として、類似性検出システムと記憶媒体とは、ユーザ端末内に個別のコンポーネントとして搭載することができる。
【0049】
本明細書で使用されている、特に「できる(can)」、「できるかもしれない(could)」、「かもしれない(might)」、「かもしれない(may)」、「例えば(e.g.)」などのような仮定的な語句は、特に別段の記載がない限り、または使用されている文脈の中でその他に解釈されない限り、全般的に、ある実施形態が特定の特徴、構成要素、および/またはステップを含む一方で、他の実施形態がこれらを含まないことを伝えることを意図している。したがって、このような仮定的な語句は、全般的には、特徴、構成要素、および/またはステップが何らかの形で1つまたは複数の実施形態に必要であること、または1つまたは複数の実施形態が、他の入力または促しの有無にかかわらず、これらの特徴、構成要素、および/またはステップが含まれるかどうか、または任意の特定の実施形態で実行されるかどうかを決定するためのロジックを必ず含むことを示唆する意図はない。「備える(comprising)」、「含む(including)」、「有する(having)」などの用語は同義であり、包括的に、オープンエンド様式で使用されており、追加の構成要素、特徴、行為、操作などを除外するものではない。また、「または(or)」という用語は、包括的な意味(排他的な意味ではなく)で使用されており、例えば、構成要素のリストを接続するために使用される場合、「または(or)」という用語は、リスト内の構成要素の1つ、幾つか、または全てを意味する。
【0050】
「X、Y、またはZのうちの少なくとも1つ」といった表現のように離接的な語句は、別段の記載がない限り、ある項目や用語などが、X、Y、またはZのいずれか、またはこれらの組み合わせ(例えば、X、Y、および/またはZ)であってよいことを提示するために全般的に使用されるものとして、文脈と共に理解される。したがって、このような離接的な語句は、全般的に、ある実施形態が、Xの少なくとも1つ、Yの少なくとも1つ、またはZの少なくとも1つがそれぞれ存在することを必要とすることを意図するものではなく、またそのように解すべきでもない。
【0051】
他に明示されていない限り、“a”や“an”などの冠詞は、全般的に、1つまたは複数の記載項目を含むと解釈されるべきである。したがって、「~するように構成された装置(a device configured to)」などの表現は、1つまたは複数の記載された装置を含むことを意図している。このような1つまたは複数の記載された装置は、言及された記載を実行するように集合的に構成することもできる。例えば、「記載A、BおよびCを実行するように構成されたプロセッサ(a processor configured to carry out recitations A, B and C)」は、記載BおよびCを実行するように構成された第2のプロセッサと連携して記載Aを実行するように構成された第1のプロセッサを含むことができる。
【0052】
上記の詳細な説明では、様々な実施形態に適用される新規な特徴を示し、説明し、かつ指摘してきたが、本開示の精神から逸脱することなく、図示された装置またはアルゴリズムの形態および詳細における様々な省略、置換、および変更を行うことができると理解することができる。認識できるように、本明細書に記載された、ある実施形態は、幾つかの特徴が他とは別に使用または実施できるため、本明細書に記載された特徴および利点の全てを提供しない形態において具現化することができる。本明細書に開示された、ある実施形態の範囲は、前述の説明ではなく、添付の特許請求の範囲によって示される。特許請求の範囲の意味および等価物の範囲内に入る全ての変更は、その範囲内に包含されるものとする。