(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-19
(54)【発明の名称】自動特徴量エンジニアリングを運用するシステムおよび方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20231012BHJP
【FI】
G06N20/00
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023519186
(86)(22)【出願日】2021-09-16
(85)【翻訳文提出日】2023-03-27
(86)【国際出願番号】 US2021050752
(87)【国際公開番号】W WO2022072150
(87)【国際公開日】2022-04-07
(32)【優先日】2020-09-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519405569
【氏名又は名称】アルテリックス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ジェームズ マックス カンター
(72)【発明者】
【氏名】カリヤン クマル ヴェラマチャネニー
(57)【要約】
特徴量エンジニアリングツールは、機械学習モデルをトレーニングするための特徴のグループを自動的に生成する。特徴量エンジニアリングツールは、データセットのプリミティブを選択し、選択的プリミティブおよびデータセットに基づいて複数の特徴を合成する。特徴量エンジニアリングツールは、複数の特徴をデータセットの異なる部分に繰り返し適用し、複数の特徴の有用性を評価する。評価に基づいて、複数の特徴のいくつかを除去して、特徴のグループを取得する。特徴量エンジニアリングツールはまた、グループ内の各特徴の重要度係数を決定する。機械学習モデルは、特徴およびそれらの重要度係数に基づいて生成され、新しいデータに基づいて予測を行うために使用することができる。
【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
データソースからデータセットを受信するステップと、
前記受信されたデータセットに基づいて複数のプリミティブのプールからプリミティブを選択するステップであって、前記選択されたプリミティブのそれぞれは、1つまたは複数の特徴を合成するために前記データセットの少なくとも一部に適用されるように構成されている、選択するステップと、
前記選択されたプリミティブを前記受信されたデータセットに適用することによって、複数の特徴を合成するステップと、
前記複数の特徴を反復的に評価し、前記複数の特徴から一部の特徴を除去し、特徴のサブセットを取得するステップであって、各反復は、
前記データセットの異なる部分を前記評価された特徴に適用することによって、前記複数の特徴のうちの少なくとも一部の特徴の有用性を評価するステップと、
前記評価された特徴の有用性に基づいて前記評価された特徴の一部を除去し、前記特徴のサブセットを生成するステップとを含む、評価するステップと、
前記特徴のサブセットのそれぞれの特徴の重要度係数を決定するステップと、
前記特徴のサブセットおよび前記特徴のサブセットのそれぞれの特徴の前記重要度係数に基づいて機械学習モデルを生成するステップであって、前記機械学習モデルは、新しいデータに基づいて予測を行うために使用されるように構成される、生成するステップを備えた方法。
【請求項2】
前記受信されたデータセットに基づいて前記複数のプリミティブから前記プリミティブを選択するステップは、
前記受信されたデータセットの意味表現を生成するステップと、
前記受信されたデータセットの前記意味表現に一致する属性に関連付けられたプリミティブを選択するステップと
を含む請求項1に記載の方法。
【請求項3】
前記受信されたデータセットに基づいて前記複数のプリミティブから前記プリミティブを選択するステップは、
前記受信されたデータセットから代表的なベクトルを生成するステップと、
前記代表的なベクトルを機械学習モデルに入力するステップであって、前記機械学習モデルが、前記代表的なベクトルに基づいて前記選択されたプリミティブを出力する、ステップと
を含む請求項1に記載の方法。
【請求項4】
前記複数の特徴を反復的に評価し、前記複数の特徴から一部の特徴を除去し、前記特徴のサブセットを取得するステップは、
前記複数の特徴を前記データセットの第1の部分に適用し、前記複数の特徴のそれぞれの第1の有用性スコアを決定するステップと、
前記複数の特徴のそれぞれの前記第1の有用性スコアに基づいて前記複数の特徴の一部を除去し、特徴の予備サブセットを取得するステップと、
前記特徴の予備サブセットをデータセットの第2の部分に適用し、前記特徴の予備サブセットのそれぞれの第2の有用性スコアを決定するステップと、
前記特徴の予備サブセットのそれぞれの第2の有用性スコアに基づいて、前記特徴の予備サブセットから前記特徴の予備サブセットの一部を除去するステップと
を含む請求項1に記載の方法。
【請求項5】
前記特徴のサブセットのそれぞれについての前記重要度係数を決定するステップは、
前記特徴のサブセットおよび前記データセットの第1の部分を機械学習モデルに入力することによって前記特徴のサブセットをランク付けするステップであって、前記機械学習モデルは、前記特徴のサブセットのそれぞれについて第1のランキングスコアを出力する、ステップと、
それらのランキングスコアに基づいて、前記特徴のサブセットの前記重要度係数を決定するステップと
を含む請求項1に記載の方法。
【請求項6】
前記特徴のサブセットおよび前記データセットの第2の部分を機械学習モデルに入力することによって前記特徴のサブセットをランク付けするステップであって、前記機械学習モデルは、前記特徴のサブセットのそれぞれについて第2のランキングスコアを出力する、ステップと、
前記特徴の前記ランキングスコアに基づいて、前記特徴のサブセットのそれぞれについて第2の重要度係数を決定するステップと、
前記特徴の第2の重要度スコアに基づいて、前記特徴のサブセットのそれぞれの前記重要度スコアを調整するステップと
をさらに含む請求項5に記載の方法。
【請求項7】
前記プリミティブのサブセットおよび前記受信されたデータセットに基づいて前記複数の特徴を合成するステップは、
前記サブセット内のそれぞれのプリミティブについて、
前記データセット内の1つまたは複数の変数を識別するステップと、
前記プリミティブを前記1つまたは複数の変数に適用して、前記複数の特徴のうちの1つまたは複数の特徴を生成するステップと
を含む請求項1に記載の方法。
【請求項8】
システムであって、
コンピュータプログラム命令を実行するためのコンピュータプロセッサと、
前記コンピュータプロセッサが動作を実行するために実行可能なコンピュータプログラム命令を格納する非一時的なコンピュータ可読メモリと、
を備え、前記動作は、
データソースからデータセットを受信することと、
前記受信されたデータセットに基づいて複数のプリミティブのプールからプリミティブを選択することであって、前記選択されたプリミティブのそれぞれは、1つまたは複数の特徴を合成するために前記データセットの少なくとも一部に適用されるように構成されている、ことと、
前記選択されたプリミティブを前記受信されたデータセットに適用することによって、複数の特徴を合成することと、
前記複数の特徴を反復的に評価し、前記複数の特徴から一部の特徴を除去し、特徴のサブセットを取得することであって、各反復は、
前記データセットの異なる部分を前記評価された特徴に適用することによって、前記複数の特徴のうちの少なくとも一部の特徴の有用性を評価することと、
前記評価された特徴の有用性に基づいて前記評価された特徴の一部を除去し、前記特徴のサブセットを生成することとを含む、ことと、
前記特徴のサブセットのそれぞれの特徴の重要度係数を決定することと、
前記特徴のサブセットおよび前記特徴のサブセットのそれぞれの特徴の前記重要度係数に基づいて機械学習モデルを生成することであって、前記機械学習モデルは、新しいデータに基づいて予測を行うために使用されるように構成されること
を備えたシステム。
【請求項9】
前記受信されたデータセットに基づいて前記複数のプリミティブから前記プリミティブを選択することは、
前記受信されたデータセットの意味表現を生成することと、
前記受信されたデータセットの前記意味表現に一致する属性に関連付けられたプリミティブを選択することと
を含む請求項8に記載のシステム。
【請求項10】
前記受信されたデータセットに基づいて前記複数のプリミティブから前記プリミティブのサブセットを選択することは、
前記受信されたデータセットから代表的なベクトルを生成することと、
前記代表的なベクトルを機械学習モデルに入力することであって、前記機械学習モデルは、前記代表的なベクトルに基づいて前記選択されたプリミティブを出力する、ことと
を含む請求項8に記載のシステム。
【請求項11】
前記複数の特徴を反復的に評価し、前記複数の特徴から一部の特徴を除去し、前記特徴のサブセットを取得することは、
前記複数の特徴を前記データセットの第1の部分に適用し、前記複数の特徴のそれぞれの第1の有用性スコアを決定することと、
前記複数の特徴のそれぞれの前記第1の有用性スコアに基づいて前記複数の特徴の一部を除去し、特徴の予備サブセットを取得することと、
前記特徴の予備サブセットをデータセットの第2の部分に適用し、前記特徴の予備サブセットのそれぞれの第2の有用性スコアを決定することと、
前記特徴の予備サブセットのそれぞれの第2の有用性スコアに基づいて、前記特徴の予備サブセットから前記特徴の予備サブセットの一部を除去することと
を含む請求項8に記載のシステム。
【請求項12】
前記特徴のサブセットのそれぞれについての前記重要度係数を決定することは、
前記特徴のサブセットおよび前記データセットの第1の部分を機械学習モデルに入力することによって前記特徴のサブセットをランク付けすることであって、前記機械学習モデルは、前記特徴のサブセットのそれぞれについて第1のランキングスコアを出力する、ことと、
それらのランキングスコアに基づいて、前記特徴のサブセットの前記重要度係数を決定することと
を含む請求項8に記載のシステム。
【請求項13】
前記特徴のサブセットおよび前記データセットの第2の部分を機械学習モデルに入力することによって前記特徴のサブセットをランク付けすることであって、前記機械学習モデルは、前記特徴のサブセットのそれぞれについて第2のランキングスコアを出力する、ことと、
前記特徴の前記ランキングスコアに基づいて、前記特徴のサブセットのそれぞれについて第2の重要度係数を決定することと、
前記特徴の第2の重要度スコアに基づいて、前記特徴のサブセットのそれぞれの前記重要度スコアを調整することと
をさらに含む請求項12に記載のシステム。
【請求項14】
前記プリミティブのサブセットおよび前記受信されたデータセットに基づいて前記複数の特徴を合成することは、
前記サブセット内のそれぞれのプリミティブについて、
前記データセット内の1つまたは複数の変数を識別することと、
前記プリミティブを前記1つまたは複数の変数に適用して、前記複数の特徴のうちの1つまたは複数の特徴を生成することと
を含む請求項8に記載のシステム。
【請求項15】
データ分析システムにおいてデータブロックを処理するための実行可能なコンピュータプログラム命令を格納する非一時的なコンピュータ可読メモリであって、前記命令は、
データソースからデータセットを受信することと、
前記受信されたデータセットに基づいて複数のプリミティブのプールからプリミティブを選択することであって、前記選択されたプリミティブのそれぞれは、1つまたは複数の特徴を合成するために前記データセットの少なくとも一部に適用されるように構成されている、ことと、
前記選択されたプリミティブを前記受信されたデータセットに適用することによって、複数の特徴を合成することと、
前記複数の特徴を反復的に評価し、前記複数の特徴から一部の特徴を除去し、特徴のサブセットを取得することであって、各反復は、
前記データセットの異なる部分を前記評価された特徴に適用することによって、前記複数の特徴のうちの少なくとも一部の特徴の有用性を評価することと、
前記評価された特徴の有用性に基づいて前記評価された特徴の一部を除去し、前記特徴のサブセットを生成することとを含む、ことと、
前記特徴のサブセットのそれぞれの特徴の重要度係数を決定することと、
前記特徴のサブセットおよび前記特徴のサブセットのそれぞれの特徴の前記重要度係数に基づいて機械学習モデルを生成することであって、前記機械学習モデルは、新しいデータに基づいて予測を行うために使用されるように構成されることと
を含む操作を実行するために実行可能である、非一時的なコンピュータ可読メモリ。
【請求項16】
前記受信されたデータセットに基づいて前記複数のプリミティブから前記プリミティブを選択することは、
前記受信されたデータセットの意味表現を生成することと、
前記受信されたデータセットの前記意味表現に一致する属性に関連付けられたプリミティブを選択することと
を含む請求項15に記載の非一時的なコンピュータ可読メモリ。
【請求項17】
前記受信されたデータセットに基づいて前記複数のプリミティブから前記プリミティブを選択することは、
前記受信されたデータセットから代表的なベクトルを生成することと、
前記代表的なベクトルを機械学習モデルに入力することであって、前記機械学習モデルは、前記代表的なベクトルに基づいて前記選択されたプリミティブを出力する、ことと
を含む請求項15に記載の非一時的なコンピュータ可読メモリ。
【請求項18】
前記複数の特徴を反復的に評価し、前記複数の特徴から一部の特徴を除去し、前記特徴のサブセットを取得することは、
前記複数の特徴を前記データセットの第1の部分に適用し、前記複数の特徴のそれぞれの第1の有用性スコアを決定することと、
前記複数の特徴のそれぞれの前記第1の有用性スコアに基づいて前記複数の特徴の一部を除去し、特徴の予備サブセットを取得することと、
前記特徴の予備サブセットをデータセットの第2の部分に適用し、前記特徴の予備サブセットのそれぞれの第2の有用性スコアを決定することと、
前記特徴の予備サブセットのそれぞれの第2の有用性スコアに基づいて、前記特徴の予備サブセットから前記特徴の予備サブセットの一部を除去することを含む請求項15に記載の非一時的なコンピュータ可読メモリ。
【請求項19】
前記特徴のサブセットのそれぞれについての前記重要度係数を決定することは、
前記特徴のサブセットおよび前記データセットの第1の部分を機械学習モデルに入力することによって前記特徴のサブセットをランク付けすることであって、前記機械学習モデルは、前記特徴のサブセットのそれぞれについて第1のランキングスコアを出力する、ことと、
それらのランキングスコアに基づいて、前記特徴のサブセットの前記重要度係数を決定することと
を含む請求項15に記載の非一時的なコンピュータ可読メモリ。
【請求項20】
前記特徴のサブセットおよび前記データセットの第2の部分を機械学習モデルに入力することによって前記特徴のサブセットをランク付けすることであって、前記機械学習モデルは、前記特徴のサブセットのそれぞれについて第2のランキングスコアを出力する、ことと、
前記特徴の前記ランキングスコアに基づいて、前記特徴のサブセットのそれぞれについて第2の重要度係数を決定することと、
前記特徴の第2の重要度スコアに基づいて、前記特徴のサブセットのそれぞれの前記重要度スコアを調整することと
をさらに含む請求項19に記載の非一時的なコンピュータ可読メモリ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、データストリームの処理に関し、特に、ストリーム内のデータに対して機械学習を実行するのに有効な特徴量エンジニアリングに関する。
【背景技術】
【0002】
本出願は、2020年9月30日に出願された米国非仮特許出願第17/039,428号の優先権を主張し、参照によりその全体が組み込まれる。
【0003】
特徴量エンジニアリングは、典型的に、ビジネスや他の企業によって分析される複雑なデータの予測特徴を識別し、抽出するプロセスである。特徴は、機械学習モデルによる予測の正確性の鍵である。したがって、特徴量エンジニアリングは、データ分析プロジェクトが成功するかどうかの決定要因となることがよくある。特徴量エンジニアリングは、一般的に、時間のかかるプロセスである。現在利用可能な特徴量エンジニアリングツールでは、以前の作業を再利用することが困難であるため、まったく新しい特徴量エンジニアリングパイプラインが、すべてのデータ分析プロジェクトに対して構築される必要がある。また、現在利用可能な特徴量エンジニアリングツールは、一般的に、良好な予測精度を達成するために大量のデータを必要とする。したがって、現在の特徴量エンジニアリングツールは、企業のデータ処理ニーズに効率的に対応することができない。
【発明の概要】
【0004】
上記およびその他の問題は、データ分析システムでデータブロックを処理するための方法、コンピュータ実装のデータ分析システム、およびコンピュータ読み取り可能なメモリによって対処される。本方法の一実施形態は、データソースからデータセットを受信するステップを含む。この方法は、受信したデータセットに基づいて複数のプリミティブのプールからプリミティブを選択するステップをさらに含む。選択されたプリミティブのそれぞれは、1つまた複数の特徴を合成するためにデータセットの少なくとも一部に適用されるように構成される。この方法は、選択されたプリミティブを受信されたデータセットに適用することによって、複数の特徴を合成するステップをさらに含む。この方法は、複数の特徴を反復的に評価し、複数の特徴から一部の特徴を除去し、特徴のサブセットを取得するステップをさらに含む。各反復は、データセットの異なる部分を評価された特徴に適用することによって、複数の特徴のうちの少なくとも一部の特徴の有用性を評価するステップと、評価された特徴の有用性に基づいて評価された特徴の一部を除去し、特徴のサブセットを生成するステップとを含む、評価するステップとを含む。方法はまた、特徴のサブセットのそれぞれの特徴の重要度係数を決定することを含む。方法はまた、特徴のサブセットおよび特徴のサブセットの各特徴の重要度係数に基づいて、機械学習モデルを生成することを含む。機械学習モデルは、新しいデータに基づいて予測を行うために使用されるように構成される。
【0005】
コンピュータ実装データ分析システムの一実施形態は、コンピュータプログラム命令を実行するためのコンピュータプロセッサを含む。このシステムは、動作を実行するコンピュータプロセッサによって、実行可能なコンピュータプログラム命令を格納する非一時的なコンピュータ可読メモリも含む。動作は、データソースからデータセットを受信することを含む。動作は、受信されたデータセットに基づいて複数のプリミティブのプールからプリミティブを選択することをさらに含む。選択されたプリミティブのそれぞれは、1つまた複数の特徴を合成するためにデータセットの少なくとも一部に適用されるように構成される。この動作は、選択されたプリミティブを受信されたデータセットに適用することによって、複数の特徴を合成することをさらに含む。この動作は、複数の特徴を反復的に評価し、複数の特徴から一部の特徴を除去し、特徴のサブセットを取得することをさらに含む。各反復は、データセットの異なる部分を評価された特徴に適用することによって、複数の特徴のうちの少なくとも一部の特徴の有用性を評価することと、評価された特徴の有用性に基づいて評価された特徴の一部を除去し、特徴のサブセットを生成することとを含む。動作はまた、特徴のサブセットのそれぞれの特徴の重要度係数を決定することを含む。方法はまた、特徴のサブセットおよび特徴のサブセットのそれぞれの特徴の重要度係数に基づいて、機械学習モデルを生成することを含む。機械学習モデルは、新しいデータに基づいて予測を行うために使用されるように構成される。
【0006】
非一時的なコンピュータ可読メモリの実施形態は、実行可能なコンピュータプログラム命令を格納する。この命令は、動作を実行するために実行可能である。動作は、データソースからデータセットを受信することを含む。動作は、受信されたデータセットに基づいて複数のプリミティブのプールからプリミティブを選択することをさらに含む。選択されたプリミティブのそれぞれは、1つまた複数の特徴を合成するためにデータセットの少なくとも一部に適用されるように構成される。この動作は、選択されたプリミティブを受信されたデータセットに適用することによって、複数の特徴を合成することをさらに含む。この動作は、複数の特徴を反復的に評価し、複数の特徴から一部の特徴を除去し、特徴のサブセットを取得することをさらに含む。各反復は、データセットの異なる部分を評価された特徴に適用することによって、複数の特徴のうちの少なくとも一部の特徴の有用性を評価することと、評価された特徴の有用性に基づいて評価された特徴の一部を除去し、特徴のサブセットを生成することとを含む。動作はまた、特徴のサブセットのそれぞれの特徴の重要度係数を決定することを含む。方法はまた、特徴のサブセットおよび特徴のサブセットのそれぞれの特徴の重要度係数に基づいて、機械学習モデルを生成することを含む。機械学習モデルは、新しいデータに基づいて予測を行うために使用されるように構成される。
【図面の簡単な説明】
【0007】
本発明のさらなる特徴および利点は、添付の図を参照して、以下の本発明の詳細な説明から明らかになるであろう。
【
図1】一実施形態による、機械学習サーバーを含む機械学習環境を示すブロック図である。
【
図2】一実施形態による、機械学習サーバーの特徴量エンジニアリングアプリケーションのより詳細な図を示すブロック図である。
【
図3】一実施形態による、特徴量エンジニアリングアプリケーションの特徴生成モジュールのより詳細な図を示すブロック図である。
【
図4】一実施形態による、機械学習モデルの生成方法を示すフローチャートである。
【
図5】一実施形態による、機械学習モデルをトレーニングし、トレーニングされたモデルを使用して予測を行う方法を示すフローチャートである。
【
図6】一実施形態による、
図1の機械学習サーバーとして使用するための典型的なコンピュータシステムの機能図を示すハイレベルブロック図である。
【0008】
図面は、例示のみを目的として、多様な実施形態を示している。当業者は、本明細書に例示された構造および方法の代替的実施形態が、本明細書に記載の本発明の原理から逸脱することなく利用することができることを以下の説明から容易に認識する。様々な図面における同様の参照記号および表示は、同様の要素を指す。
【発明を実施するための形態】
【0009】
図1は、一実施形態による、機械学習サーバー110を含む機械学習環境100を示すブロック図である。環境100は、ネットワーク130を介して機械学習サーバー110に接続された多様なデータソース120をさらに含む。図示の環境100は、多様なデータソース120に結合された1つの機械学習サーバー110のみを含むが、実施形態は、多様な機械学習サーバーおよび単一のデータソースを有することができる。
【0010】
データソース120は、電子データをデータ分析システム110に提供する。データソース120は、ハードディスクドライブ(HDD)またはソリッドステートドライブ(SSD)などのストレージデバイス、複数のストレージデバイスへのアクセスを管理および提供するコンピュータ、ストレージエリアネットワーク(SAN)、データベース、またはクラウドストレージシステムであり得る。データソース120はまた、別のソースからデータを取り出すことができるコンピュータシステムであってもよい。データソース120は、機械学習サーバー110から遠隔であってもよく、ネットワーク130を介してデータを提供してもよい。さらに、データソース120の一部またはすべては、データ分析システムに直接に結合され、ネットワーク130を介してデータを渡すことなく、データを提供してもよい。
【0011】
データソース120によって提供されるデータは、データレコード(例えば、行)に編成することができる。各データ レコードは、1つまたは複数の値が含まれる。例えば、データソース120によって提供されるデータレコードは、一連のコンマ区切りされた値を含む場合がある。データは、データ分析システム110を使用する企業に関連する情報を記述する。例えば、データソース120からのデータは、ウェブサイト上でアクセス可能なコンテンツおよび/またはアプリケーションとのコンピュータベースの相互作用(例えば、クリック追跡データ)を記述することができる。別の例として、データソース120からのデータは、オンラインおよび/または店舗での顧客取引を記述することができる。企業は、製造業、販売業、金融業、銀行業などの様々な産業の1つまたは複数に属することができる。
【0012】
機械学習サーバー110は、機械学習モデルを構築し、機械学習モデルを提供してデータに基づく予測を行うために利用されるコンピュータベースのシステムである。例示的な予測は、顧客が一定期間内に取引を行うかどうか、取引が不正であるかどうか、ユーザーがコンピュータベースの相互作用を実行するかどうかなどを含む。データは、ネットワーク130を介して1つまたは複数の多様なデータソース120から回収、収集、またはアクセスされる。機械学習サーバー110は、多種多様なデータソース120からのデータへのアクセス、準備、ブレンディング、および分析に用いられるスケーラブルなソフトウェアツール及びハードウェアリソースを実装することができる。機械学習サーバー110は、本明細書で記述される特徴量エンジニアリングおよびモデリング技術を含む機械学習機能を実装するために使用されるコンピューティングデバイスであり得る。
【0013】
機械学習サーバー110は、特徴量エンジニアリングアプリケーション140およびモデリングアプリケーション150として
図1に示される1つまたは複数のソフトウェアアプリケーションをサポートするように構成され得る。特徴量エンジニアリングアプリケーション140は、自動化された特徴量エンジニアリングを実行し、データソース120によって提供されるデータ(例えば、時間および関係データセット)から予測変数、すなわち特徴を抽出する。各特徴は、対応する機械学習モデルを使用して行われる予測(ターゲット予測と呼ばれる)に潜在的に関連する変数である。
【0014】
一実施形態では、特徴量エンジニアリングアプリケーション140は、データに基づいてプリミティブのプールからプリミティブを選択する。プリミティブのプールは、特徴量エンジニアリングアプリケーション140によって維持される。プリミティブは、データセット内の生データに適用して、関連付けられた値を有する1つまたは複数の新しい特徴を作成することができる個々の計算を定義する。選択されたプリミティブは、入力および出力データタイプを制限するため、さまざまな種類のデータセットに適用して積み重ねて新しい計算を作成できる。特徴量エンジニアリングアプリケーション140は、選択されたプリミティブをデータソースによって提供されるデータに適用することによって特徴を合成する。次に、特徴を評価して、データの異なる部分を各反復の特徴に適用する反復プロセスを通じて、それぞれの特徴の重要性を決定する。特徴量エンジニアリングアプリケーション140は、反復ごとに一部の特徴を除去して、除去された特徴よりも予測に役立つ特徴のサブセットを取得する。
【0015】
サブセット内の各特徴について、特徴量エンジニアリングアプリケーション140は、例えばランダムフォレストを使用することによって、重要度係数を決定する。重要度係数は、特徴がターゲット予測にどの程度重要/関連があるかを示す。サブセット内の特徴およびそれらの重要度係数は、モデリングアプリケーション150に送信されて、機械学習モデルを構築することができる。
【0016】
特徴量エンジニアリングアプリケーション140の1つの利点は、プリミティブの使用することにより、特徴が生データから抽出される従来の特徴量エンジニアリングプロセスよりも特徴量エンジニアリングプロセスをより効率的にすることである。また、特徴量エンジニアリングアプリケーション140は、プリミティブから生成された特徴の評価および重要度係数に基づいてプリミティブを評価することができる。プリミティブの評価を記述するメタデータを生成し、そのメタデータを使用して、別のデータまたは別の予測問題に対してプリミティブを選択するかどうかを決定できる。従来の特徴量エンジニアリングプロセスは、特徴をより迅速かつ適切にエンジニアリングするためのいずれかガイダンスまたはソリューションを提供することなく、多数の特徴(数百万など)を生成できる。特徴量エンジニアリングアプリケーション140の別の利点は、特徴を評価するために大量のデータを必要としないことである。むしろ、特徴を評価するために反復的な方法を適用し、各反復でデータの異なる部分を使用する。
【0017】
特徴量エンジニアリングアプリケーション140は、ユーザーが特徴量エンジニアリングプロセスに貢献することを可能にするグラフィカルユーザーインタフェース(GUI)を提供することができる。一例として、特徴量エンジニアリングアプリケーション140に関連付けられたGUIは、ユーザーが特徴量エンジニアリングアプリケーション140によって選択された特徴を編集することを可能にする特徴選択ツールを提供する。また、考慮すべき変数を指定し、特徴の最大許容深さ、生成された特徴の最大数、含まれるデータの日付範囲(例えば、カットオフ時間によって指定される)などの特徴の特性を変更するオプションをユーザーに提供することもできる。特徴量エンジニアリングアプリケーション140についてのより詳細は、
図2~
図4と併せて記述される。
【0018】
モデリングアプリケーション150は、特徴量エンジニアリングアプリケーション140から受信した特徴および特徴の重要度係数を用いて機械学習モデルをトレーニングする。線形サポートベクトルマシン(線形SVM)、他のアルゴリズム(例えば、AdaBoost)のブースティング、ニューラルネットワーク、ロジスティック回帰、ナイーブベイズ、メモリベースの学習、ランダムフォレスト、バッグ木、決定木、ブースト木、またはブーストスタンプなどの異なる機械学習技術は、異なる実施形態で使用され得る。生成された機械学習モデルは、新しいデータセット(例えば、同じまたは異なるデータソース120からのデータセット)から抽出された特徴に適用されると、ターゲット予測を行う。新しいデータセットは、1つまたは複数の特徴が欠落している可能性があるが、これらの特徴は、ヌル(null) 値で依然として含まれる可能性がある。いくつかの実施形態では、モデリングアプリケーション150は、次元削減を適用して(例えば、線形判別分析(LDA)、主成分分析(PCA)などを介して)、新しいデータセットの特徴のデータ量をより小さく、より代表的なデータセットに低減する。
【0019】
いくつかの実施形態では、モデリングアプリケーション150は、新しいデータセットに展開する前に予測を検証する。例えば、モデリングアプリケーション150は、モデルの精度を定量化するために、トレーニングされたモデルを検証データセットに適用する。精度測定に適用される一般的な指標には、適合率=真陽性(TP)/((真陽性(TP)+偽陽性(FP)) および再現率=真陽性(TP)/((真陽性(TP)+偽陰性(FN))が含まれ、適合率は、モデルが予測した合計のうち(TP+TFまたは偽陽性)、モデルが正しく予測した結果(TPまたは真陽性)の数であり、再現率は、実際に発生した合計数(TP+FNまたは偽陰性)のうち、モデルが正しく予測(TP)した結果の数である。F値(F値=2*PR(適合率*再現率)/P+R(適合率+再現率))は、適合率と再現率を1つの尺度に統合する。一実施形態では、モデリングアプリケーション150は、機械学習モデルが十分に正確であるという精度測定指示、またはいくつかのトレーニングラウンドが行われたなどの停止条件が発生するまで、機械学習モデルを反復的に再トレーニングする。
【0020】
いくつかの実施形態では、モデリングアプリケーション150は、特定のビジネスニーズに合わせて機械学習モデルを調整する。例えば、モデリングアプリケーション150は、不正な金融取引を認識するための機械学習モデルを構築し、例えば、より重要な取引を強調する方法で予測される確率を変換することによって、ビジネスのニーズを反映するためにより重要な(例えば、高価値取引)不正取引を強調するようにモデルを調整する。モデリングアプリケーション150についてのより詳細は、
図5と併せて記述される。
【0021】
ネットワーク130は、機械学習サーバー110とデータソース120との間の通信経路を表す。一実施形態では、ネットワーク130は、インターネットであり、標準の通信技術および/またはプロトコルを使用する。したがって、ネットワーク130は、イーサネット、802.11、WiMAX(worldwide interoperability for microwave accesss)、3G、ロングタームエボリューション(LTE)、デジタル加入者線(DSL)、非同期転送モード(ATM)、InfiniBand、PCI Express Advanced Switchingなどの技術を使用するリンクを含むことができる。同様に、ネットワーク130で使用されるネットワーキングプロトコルは、マルチプロトコルラベルスイッチング(MPLS)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザーデータグラムプロトコル(UDP)、hypertext transport protocol(HTTP)、シンプルメール転送プロトコル(SMTP)、ファイル転送プロトコル(FTP)などを含むことができる。
【0022】
ネットワーク130を介して交換されるデータは、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)などを含む技術および/またはフォーマットを使用して表されることができる。さらに、すべてまたは一部のリンクは、セキュアソケットレイヤー(SSL)、トランスポートレイヤーセキュリティ(TLS)、仮想プライベートネットワーク(VPN)、インターネットプロトコルセキュリティ(IPsec)などの従来の暗号化技術を使用して、暗号化されることができる。別の実施形態では、実在物は、上記の技術の代わりに、またはそれに加えて、カスタムおよび/または専用のデータ通信技術を使用することができる。
【0023】
図2は、一実施形態による、特徴量エンジニアリングアプリケーション200を示すブロック図である。特徴量エンジニアリングアプリケーション200は、
図1の特徴量エンジニアリングアプリケーション140の一実施形態である。特徴量エンジニアリングアプリケーション200は、プリミティブ選択モジュール210、特徴生成モジュール220、モデル生成モジュール230、及びデータベース240を含む。特徴量エンジニアリングアプリケーション200は、データソース120からデータセットを受信し、データセットに基づいて機械学習モデルを生成する。当業者は、他の実施形態がここで説明したものとは異なるおよび/または他のコンポーネントを有することができ、機能が異なる方法でコンポーネントの間に分散できることを認識するであろう。
【0024】
プリミティブ選択モジュール210は、特徴量エンジニアリングアプリケーション200によって維持されるプリミティブのプールから1つまたは複数のプリミティブを選択する。プリミティブのプールは、数百または数千のプリミティブなどの多数のプリミティブを含む。各プリミティブは、データに適用されると、データに対して計算を実行し、関連付けられた値を有する特徴を生成するアルゴリズムを備えている。プリミティブは、1つまたは複数の属性に関連付けられている。プリミティブの属性は、プリミティブの記述(例えば、データに適用されるときにプリミティブによって実行される計算を指定する自然言語記述)、入力タイプ(すなわち、入力データのタイプ)、戻り値タイプ(すなわち、出力データのタイプ)、プリミティブが以前の特徴量エンジニアリングプロセスにおいてどれほど有用であったかを示すプリミティブのメタデータ、または他の属性であり得る。
【0025】
いくつかの実施形態では、プリミティブのプールは、多様な異なるタイプのプリミティブを含む。プリミティブの1つのタイプは、集約プリミティブである。集約プリミティブは、データセットに適用されると、データセット内の関連データを識別し、関連データに対して判定を実行し、判定を要約および/または集約する値を作成する。例えば、集約プリミティブ「カウント」は、データセット内の関連する行の値を識別し、値の各々が非ヌル(null)値であるかどうかを判定し、データセットの行の非ヌル(null)値の数のカウントを返す(出力する)。別のタイプのプリミティブは、変換プリミティブである。変換プリミティブは、データセットに適用されると、データセット内の1つまたは複数の既存の変数から新しい変数を作成する。例えば、変換プリミティブ「ウィークエンド」は、データセット内のタイムスタンプを評価し、タイムスタンプによって示される日付が週末に発生するかどうかを示すバイナリ値(例えば、真または偽)を返す。別の例示的な変換プリミティブは、タイムスタンプを評価し、指定された日付までの日数(例えば、特定の休日までの日数)を示すカウントを返す。
【0026】
プリミティブ選択モジュール210は、
図1のデータソース120の1つなどのデータソースから受信したデータセットに基づいてプリミティブのセットを選択する。いくつかの実施形態では、プリミティブ選択モジュール210は、プリミティブを選択するためにスキムビューアプローチ、サマリービューアプローチ、または両方のアプローチを使用する。スキムビューアプローチでは、プリミティブ選択モジュール210は、データセットの1つまたは複数の意味表現を識別する。データセットの意味表現は、データセットの特性を記述し、データセット内のデータに対して計算を実行せずに取得し得る。データセットの意味表現の例には、データセット内の1つまたは複数の特定の変数(列の名前など)の存在、列の数、行の数、データセットの入力タイプ、データセットのその他の属性、およびそれらのいくつかの組み合わせが含まれる。スキムビューアプローチを使用してプリミティブを選択するために、プリミティブ選択モジュール210は、データセットの識別された意味表現がプール内のプリミティブの属性と一致するかどうかを判定する。一致がある場合、プリミティブ選択モジュール210は、プリミティブを選択する。
【0027】
スキムビューアプローチは、ルールベースの分析である。データセットの識別された意味表現がプリミティブの属性と一致するかどうかの決定は、特徴量エンジニアリングアプリケーション200によって維持されるルールに基づいている。ルールは、例えば、データセットの意味表現とプリミティブの属性のキーワードの一致に基づいて、データセットのどの意味表現がプリミティブのどの属性と一致するかを指定する。一例では、データセットの意味表現は、列名「生年月日」であり、プリミティブ選択モジュール210は、その入力タイプがデータセットの意味表現に一致する「生年月日」であるプリミティブを選択する。別の例では、データセットの意味表現は、列名「タイムスタンプ」であり、プリミティブ選択モジュール210は、プリミティブがタイムスタンプを示すデータと共に使用するのに適切であることを示す属性を有するプリミティブを選択する。
【0028】
サマリービューアプローチでは、プリミティブ選択モジュール210は、データセットから代表的なベクトルを生成する。代表的なベクトルは、データセット内のテーブルの数、テーブルあたりの列の数、各列の平均数、および各行の平均数を示すデータなど、データセットを記述するデータを符号化する。したがって、代表的なベクトルは、データセットのフィンガープリントとして機能する。フィンガープリントは、データセットのコンパクトな表現であり、ハッシュ関数、ラビンのフィンガープリントアルゴリズム、または他のタイプのフィンガープリント関数などの1つまたは複数のフィンガープリント関数をデータセットに適用することによって生成され得る。
【0029】
プリミティブ選択モジュール210は、代表的なベクトルに基づいてデータセットのプリミティブを選択する。例えば、プリミティブ選択モジュール210は、データセットの代表的なベクトルを機械学習モデルに入力する。機械学習モデルは、データセットのためのプリミティブを出力する。機械学習モデルは、例えば、代表的なベクトルに基づいてデータセットのためのプリミティブを選択するようにプリミティブ選択モジュール210によってトレーニングされる。これは、複数のトレーニングデータセットの複数の代表的なベクトル、および複数のトレーニング データセットのそれぞれのプリミティブのセットを含むトレーニング データに基づいてトレーニングすることができる。複数のトレーニングデータセットのそれぞれについてのプリミティブのセットは、対応するトレーニングデータセットに基づいて予測を行うために有用であると判定された特徴を生成するために使用されている。いくつかの実施形態では、機械学習モデルは、継続的にトレーニングされる。例えば、プリミティブ選択モジュール210は、データセットの代表的なベクトルおよび選択されたプリミティブの少なくともいくつかに基づいて、機械学習モデルをさらにトレーニングすることができる。
【0030】
プリミティブ選択モジュール210は、特徴量エンジニアリングアプリケーション200によってサポートされるGUI内のユーザー(例えば、データ分析エンジニア)に表示するために選択されたプリミティブを提供することができる。GUIはまた、プリミティブのセットに他のプリミティブを追加する、新しいプリミティブを作成する、選択されたプリミティブ、他のタイプのアクション、またはそれらのいくつかの組み合わせを除去するなど、ユーザーがプリミティブを編集することを可能にし得る。
【0031】
特徴生成モジュール220は、グループ内の各特徴のグループおよび重要度係数を生成する。いくつかの実施形態では、特徴生成モジュール220は、選択されたプリミティブおよびデータセットに基づいて複数の特徴を合成する。いくつかの実施形態では、特徴生成モジュール220は、選択されたプリミティブのそれぞれをデータセットの少なくとも一部に適用して、1つまたは複数の特徴を合成する。例えば、特徴生成モジュール220は、データセット内の「タイムスタンプ」という名前の列に「ウィークエンド」プリミティブを適用して、日付が週末に発生するかどうかを示す特徴を合成する。特徴生成モジュール220は、数百または数百万の特徴のような、データセットのための多数の特徴を合成することができる。
【0032】
特徴生成モジュール220は、特徴を評価し、評価に基づいて特徴の一部を除去して、特徴のグループを取得する。いくつかの実施形態では、特徴生成モジュール220は、反復プロセスを通じて特徴を評価する。反復の各ラウンドにおいて、特徴生成モジュール220は、以前の反復によって除去されなかった特徴(「残りの特徴」とも称される)をデータセットの異なる部分に適用し、各特徴の有用性スコアを決定する。特徴生成モジュール220は、残りの特徴から有用性スコアが最も低い一部の特徴を除去する。いくつかの実施形態では、特徴生成モジュール220は、ランダムフォレストを使用して特徴の有用性スコアを決定する。
【0033】
反復が行われ、特徴のグループが取得された後、特徴生成モジュール220は、グループ内の各特徴の重要度係数を決定する。特徴の重要度係数は、特徴がターゲット変数を予測するためにどれほど重要であるかを示す。いくつかの実施形態では、特徴生成モジュール220は、ランダムフォレスト、例えば、データセットの少なくとも一部に基づいて構築されたフォレストを使用することによって重要度係数を決定する。いくつかの実施形態では、特徴生成モジュール220は、特徴およびデータセットの異なる部分を機械学習モデルに入力することによって特徴の重要度スコアを調整する。機械学習モデルは、特徴の第2の重要度スコアを出力する。特徴生成モジュール220は、重要度係数を第2の重要度スコアと比較して、重要度係数を調整するかどうかを決定する。例えば、特徴生成モジュール220は、重要度係数を重要度係数と第2の重要度係数の平均に変更することができる。
【0034】
次に、特徴生成モジュール220は、特徴のグループおよびそれらの重要度係数をモデリングアプリケーション、例えば、モデリングアプリケーション150に送信して、機械学習モデルをトレーニングする。
【0035】
いくつかの実施形態では、特徴生成モジュール220は、インクリメンタルアプローチに基づいて追加の特徴を生成し得る。例えば、特徴生成モジュール220は、例えば特徴のグループが生成され、それらの重要度係数が決定された後に、プリミティブ選択モジュール210を通じてユーザーによって追加された新しいプリミティブを受信する。特徴生成モジュール220は、追加の特徴を生成し、追加の特徴を評価し、および/または生成および評価された特徴のグループを変更することなく、新しいプリミティブに基づいて追加の特徴の重要度係数を決定する。
【0036】
メタデータ生成モジュール230は、グループ内の特徴を合成するために使用されるプリミティブに関連付けられたメタデータを生成する。プリミティブのメタデータは、プリミティブがデータセットにとってどれほど役立つかを示す。メタデータ生成モジュール230は、有用性スコアおよび/またはプリミティブから生成された特徴の重要度係数に基づいて、プリミティブのメタデータを生成し得る。メタデータは、他のデータセットおよび/または異なる予測のためのプリミティブを選択するために、後続の特徴量エンジニアリングプロセスにおいてプリミティブ選択モジュール210によって使用され得る。メタデータ生成モジュール230は、グループ内の特徴を合成するために使用されたプリミティブの代表的なベクトルを検索し、代表的なベクトルおよびプリミティブを、代表的なベクトルに基づいてプリミティブを選択するために使用される機械学習モデルにフィードバックすることができ、機械学習モデルをさらにトレーニングする。
【0037】
いくつかの実施形態では、メタデータ生成モジュール230は、グループ内の特徴の自然言語記述を生成する。特徴の自然言語記述は、特徴に含まれるアルゴリズム、特徴をデータに適用する結果、特徴の機能など、特徴の属性を記述する情報を含む。
【0038】
データベース240は、特徴量エンジニアリングアプリケーション200によって受信され、使用され、生成されたデータなど、特徴量エンジニアリングアプリケーション200に関連付けられたデータを格納する。例えば、データベース240は、データソース、プリミティブ、特徴、特徴の重要度係数、特徴の有用性スコアを決定するために使用されるランダムフォレスト、プリミティブを選択し、特徴の重要度係数を決定するための機械学習モデル、メタデータ生成モジュール230によって生成されるメタデータなどから受信されるデータセットを格納する。
【0039】
図3は、一実施形態による、特徴生成モジュール300を示すブロック図である。特徴生成モジュール300は、
図2の特徴生成モジュール220の一実施形態である。それは、機械学習モデルをトレーニングするためのデータセットに基づいて特徴を生成する。特徴生成モジュール300は、合成モジュール310、評価モジュール320、ランキングモジュール330、および完成化モジュール340を含む。当業者は、他の実施形態がここで記述したものとは異なるおよび/または他のコンポーネントを有することができ、機能が異なる方法でコンポーネントの間に分散できることを認識するであろう。
【0040】
合成モジュール310は、データセットおよびデータセットのために選択されたプリミティブに基づいて、複数の特徴を合成する。各プリミティブについて、合成モジュール310は、データセットの一部、例えば、データセットの1つまたは複数の列を識別する。例えば、生年月日の入力タイプを有するプリミティブの場合、合成モジュール310は、データセット内の生年月日列のデータを識別する。合成モジュール310は、識別された列にプリミティブを適用して、列の各行の特徴を生成する。合成モジュール310は、数百または数百万などのデータセットのための多数の特徴を生成することができる。
【0041】
評価モジュール320は、合成された特徴の有用性スコアを決定する。特徴の有用性スコアは、データセットに基づいて行われた予測に対して特徴がどの程度有用であるかを示す。いくつかの実施形態では、評価モジュール320は、データセットの異なる部分を特徴に反復的に適用して、特徴の有用性を評価する。例えば、第1の反復では、評価モジュール320は、データセットの所定の割合(25%など)を特徴に適用して、第1のランダムフォレストを構築する。第1のランダムフォレストには、多数の決定木が含まれる。各決定木は、複数のノードを含む。すべてのノードは、特徴に対応し、特徴の値に基づいてノードを介してツリーを転送する方法を説明する条件を含む(例えば、週末に日付が発生した場合は、1つの分岐を取り、そうでない場合は、別の分岐を取る)。各ノードの特徴は、情報利得またはジニ不純度低減に基づいて決定される。情報利得またはジニ不純度の低減を最大化する特徴が、分割特徴として選択される。評価モジュール320は、決定木にわたる特徴による情報利得またはジニ不純度の低減のいずれかに基づいて、特徴の個々の有用性スコアを決定する。特徴の個々の有用性スコアは、1つの決定木に固有です。ランダムフォレスト内の決定木のそれぞれについて特徴の個々の有用性スコアを決定した後、評価モジュール320は、特徴の個々の有用性スコアを組み合わせることによって特徴の第1の有用性スコアを決定する。一例では、特徴の第1の有用性スコアは、特徴の個々の有用性スコアの平均である。評価モジュール320は、特徴の80%が残るように、最も低い第1の有用性スコアを有する特徴の20%を除去する。これらの特徴は、第1の残りの特徴と呼ばれる。
【0042】
第2の反復において、評価モジュール320は、第1の残りの特徴をデータセットの異なる部分に適用する。データセットの異なる部分は、第1の反復で使用されるデータセットの部分とは異なるデータセットの25%であり得るか、または第1の反復で使用されるデータセットの部分を含むデータセットの50%であり得る。評価モジュール320は、データセットの異なる部分を使用して第2のランダムフォレストを構築し、第2のランダムフォレストを使用することによって、残りの特徴のそれぞれについて第2の有用性スコアを決定する。評価モジュール320は、第1の残りの特徴の20%および第1の残りの特徴の残りを除去する(すなわち、第1の残りの特徴の80%が第2の残りの特徴を形成する)。
【0043】
同様に、後続の反復ごとに、評価モジュール320は、前のラウンドからの残りの特徴をデータセットの異なる部分に適用し、前のラウンドからの残りの特徴の有用性スコアを決定し、残りの特徴のいくつかを除去して、より小さな特徴のグループを取得する。
【0044】
評価モジュール320は、条件が満たされていると判定するまで繰り返しプロセスを継続することができる。条件は、閾値数の特徴が残っていること、残りの特徴の最低有用性スコアが閾値を上回っていること、データセット全体が特徴に適用されていること、閾値数のラウンドが反復、他の条件、またはそれらのいくつかの組み合わせで完了していることであり得る。最後のラウンドの残りの特徴、すなわち、評価モジュール320によって除去されない特徴は、機械学習モデルをトレーニングするために選択される。
【0045】
ランキングモジュール330は、選択された特徴をランク付けし、選択された特徴ごとに重要度スコアを決定する。いくつかの実施形態では、ランキングモジュール330は、選択された特徴およびデータセットに基づいてランダムフォレストを構築する。ランキングモジュール330は、ランダムフォレスト内の各決定木に基づいて選択された特徴の個々のランキングスコアを決定し、選択された特徴のランキングスコアとして個々のランキングスコアの平均を取得する。ランキングモジュール330は、それらのランキングスコアに基づいて、選択された特徴の重要度係数を決定する。例えば、ランキングモジュール330は、それらのランキングスコアに基づいて選択された特徴をランク付けし、最高ランクの選択された特徴の重要度スコアが1であると決定する。次いで、ランキングモジュール330は、選択された特徴の残りのそれぞれのランキングスコアと最高ランクの選択された特徴のランキングスコアとの比を、対応する選択された特徴の重要度係数として決定する。
【0046】
完成化モジュール340は、選択された特徴を完成化する。いくつかの実施形態では、完成化モジュール340は、選択された特徴を再ランク付けして、選択された特徴のそれぞれについて第2のランク付けスコアを決定する。特徴の第2のランキングスコアがその初期ランキングスコアと異なるという判定に応答して、完成化モジュール340は、グループから特徴を除去し、特徴の重要度の不確実性を示す特徴のメタデータを生成し、矛盾および不確実性をエンドユーザーに警告することができる。
【0047】
図4は、一実施形態による、機械学習モデルの生成する方法400を示すフローチャートである。いくつかの実施形態では、方法は、特徴量エンジニアリングアプリケーション140によって実行されるが、方法における動作の一部またはすべては、他の実施形態では、他のエンティティによって実行され得る。いくつかの実施形態では、フローチャートの動作は、異なる順序で実行され、異なるおよび/または追加のステップを含む。
【0048】
特徴量エンジニアリングアプリケーション140は、データソース、例えば、データソース120のうちの1つからデータセットを受信する410。
【0049】
特徴量エンジニアリングアプリケーション140は、受信したデータセットに基づいてプリミティブのプールからプリミティブを選択する420。各々の選択されたプリミティブは、1つまた複数の特徴を合成するためにデータセットの少なくとも一部に適用されるように構成される。いくつかの実施形態では、特徴量エンジニアリングアプリケーション140は、データセットの意味表現を生成し、データセットの意味表現に一致する属性に関連付けられたプリミティブを選択することによって、プリミティブを選択する。追加または代替として、特徴量エンジニアリングアプリケーション140は、データセットの代表ベクトルを生成し、代表ベクトルを機械学習モデルに入力する。機械学習モデルは、ベクトルに基づいて選択されたプリミティブを出力する。
【0050】
特徴量エンジニアリングアプリケーション140は、選択されたプリミティブおよび受信されたデータセットに基づいて複数の特徴を合成する430。特徴量エンジニアリングアプリケーション140は、選択されたプリミティブのそれぞれをデータセットの関連部分に適用して、特徴を合成する。例えば、選択されたプリミティブごとに、特徴量エンジニアリングアプリケーション140は、データセット内の1つまたは複数の変数を識別し、プリミティブを変数に適用して特徴を生成する。
【0051】
特徴量エンジニアリングアプリケーション140は、複数の特徴を繰り返し評価440して、複数の特徴から一部の特徴を除去して、特徴のサブセットを取得する。各反復において、特徴量エンジニアリングアプリケーション140は、データセットの異なる部分を評価された特徴に適用することによって複数の特徴のうちの少なくとも一部の特徴の有用性を評価し、評価された特徴の有用性に基づいて評価された特徴のいくつかを除去する。
【0052】
特徴量エンジニアリングアプリケーション140は、特徴のサブセットの各特徴の重要度係数を決定する450。いくつかの実施形態では、特徴量エンジニアリングアプリケーション140は、特徴のサブセットおよびデータセットの少なくとも一部に基づいてランダムフォレストを構築し、特徴のサブセットの重要度係数を決定する。
【0053】
特徴量エンジニアリングアプリケーション140は、特徴のサブセットおよび特徴のサブセットの各特徴の重要度係数に基づいて機械学習モデルを生成する460。機械学習モデルは、新しいデータに基づいて予測を行うために使用されるように構成される。
【0054】
図5は、一実施形態による、機械学習モデルをトレーニングし、トレーニングされたモデルを使用して予測を行う方法500を示すフローチャートである。いくつかの実施形態では、方法は、特徴量エンジニアリングアプリケーション140によって実行されるが、方法における動作の一部またはすべては、他の実施形態では、他のエンティティによって実行され得る。いくつかの実施形態では、フローチャートの動作は、異なる順序で実行され、異なるおよび/または追加のステップを含む。
【0055】
モデリングアプリケーション150は、特徴および特徴の重要度係数に基づいてモデルをトレーニングする510。いくつかの実施形態では、特徴および重要度係数は、特徴量エンジニアリングアプリケーション140によって、例えば、上述の方法400を使用することによって生成される。モデリングアプリケーション150は、異なる実施形態において異なる機械学習技術を使用し得る。機械学習技術の例としては、線形サポートベクトルマシン(線形SVM)、他のアルゴリズム(例えば、AdaBoost)のブースティング、ニューラルネットワーク、ロジスティック回帰、ナイーブベイズ、メモリベースの学習、ランダムフォレスト、バッグ木、決定木、ブースト木、またはブーストスタンプなどを含む。
【0056】
モデリングアプリケーション150は、企業に関連付けられたデータソース(例えば、データソース120)からデータセットを受信する520。企業は、製造業、販売業、金融業、銀行業などの様々な産業の1つまたは複数に属することができる。いくつかの実施形態では、モデリングアプリケーション150は、特定の産業のニーズに合わせてトレーニングされたモデルを調整する。例えば、トレーニングされたモデルは、不正な金融取引を認識することであり、モデリングアプリケーション150は、例えば、より重要な取引を強調する方法で予測された確率を変換することによって、企業のニーズを反映するためにより重要である不正な取引(例えば、高価値取引)を強調するようにトレーニングされたモデルを調整する。
【0057】
モデリングアプリケーション150は、受信したデータセットから特徴の値を取得する530。いくつかの実施形態では、モデリングアプリケーション150は、例えば、特徴がデータセットに含まれる変数である実施形態では、データセットから特徴の値を検索する。いくつかの実施形態では、モデリングアプリケーション150は、特徴を合成するために使用されたプリミティブをデータセットに適用することによって、特徴の値を取得する。
【0058】
モデリングアプリケーション150は、トレーニングされたモデルに特徴の値を入力する540。トレーニングされたモデルは、予測を出力する。予測は、顧客が一定期間内に取引を行うかどうか、取引が不正であるかどうか、ユーザーがコンピュータベースの相互作用を実行するかどうかなどの予測であり得る。
【0059】
図6は、一実施形態による、
図1の機械学習サーバー110として使用するための典型的なコンピュータシステム600の機能図を示すハイレベルブロック図である。
【0060】
例示されるコンピュータシステムは、チップセット604に結合された少なくとも1つのプロセッサ602を含む。プロセッサ602は、同じダイ上に多様なプロセッサコアを含むことができる。チップセット604は、メモリコントローラーハブ620および入力/出力(I/O)コントローラーハブ622を含む。メモリ606およびグラフィックアダプター612は、メモリコントローラーハブ620に結合されて、ディスプレイ618は、グラフィックアダプター612に結合される。ストレージデバイス608、キーボード610、ポインティングデバイス614、およびネットワークアダプター616は、I/Oコントローラーハブ622に結合され得る。いくつかの別の実施形態では、コンピュータシステム600は、追加のコンポーネント、より少ないコンポーネント、または異なるコンポーネントを有してもよく、コンポーネントは、異なる結合であってもよい。例えば、コンピュータシステム600の実施形態は、ディスプレイおよび/またはキーボードを欠く場合がある。加えて、コンピュータシステム600は、いくつかの実施形態では、ラック搭載ブレードサーバーとして、またはクラウドサーバーインスタンスとしてインスタンス化され得る。
【0061】
メモリ606は、プロセッサ602によって使用される命令およびデータを保持する。いくつかの実施形態では、メモリ606は、ランダムアクセスメモリである。ストレージデバイス608は、非一時的なコンピュータ可読記憶媒体である。ストレージデバイス608は、HDD、SSD、または他のタイプの非一時的なコンピュータ可読記憶媒体とすることができる。機械学習サーバー110によって処理および分析されたデータは、メモリ606および/またはストレージデバイス608に格納され得る。
【0062】
ポインティングデバイス614は、マウス、トラックボール、または他のタイプのポインティングデバイスであり得、キーボード610と組み合わせて使用して、データをコンピュータシステム600に入力する。グラフィックアダプター612は、画像および他の情報をディスプレイ618に表示する。ある実施形態において、ディスプレイ618は、ユーザー入力および選択を受信するためのタッチスクリーン機能を含む。ネットワークアダプター616は、コンピュータシステム600をネットワーク160に結合する。
【0063】
コンピュータシステム600は、本明細書で説明される機能を提供するためのコンピュータモジュールを実行するように適合されている。本明細書で使用される「モジュール」という用語は、特定の機能を提供するためのコンピュータプログラム命令およびその他のロジックを指す。モジュールは、ハードウェア、ファームウェア、および/またはソフトウェアで実装されることができる。モジュールは、1つまたは複数のプロセスを含むことができ、および/またはプロセスの一部のみによって提供されることができる。モジュールは、典型的にストレージデバイス608に格納され、メモリ606にロードされ、プロセッサ602によって実行される。
【0064】
コンポーネントの特定の命名、用語の大文字化、属性、データ構造、またはその他のプログラミングまたは構造上の側面は、必須または重要ではなく、説明されている実施形態を実装するメカニズムは、異なる名前、フォーマット、またはプロトコルを有してもよい。さらに、システムは、説明したようにハードウェアとソフトウェアの組み合わせを介して、または完全にハードウェア要素で実装され得る。また、本明細書で記述される様々なシステムコンポーネント間の機能の特定の分割は、単なる例示であり、必須ではない。単一のシステムコンポーネントによって実行される機能は、代わりに多様なコンポーネントによって実行される場合があり、多様なコンポーネントによって実行される機能は、代わりに単一のコンポーネントによって実行される場合がある。
【0065】
上記の説明のいくつかの部分は、情報の動作のアルゴリズムおよび記号表現に関する特徴を示している。これらのアルゴリズムの記述および表現は、データ処理技術の当業者が自分の作業の内容を他の当業者に最も効果的に伝えるために使用する手段である。これらの動作は、機能的または論理的に説明されているが、コンピュータプログラムによって実装されると理解される。さらに、一般性を失うことなく、これらの動作の配置をモジュールまたは機能名で参照すると便利な場合もある。
【0066】
上記の説明から明らかなように特に明記しない限り、説明全体を通して、「処理する」または「コンピューティングする」または「計算する」または「決定する」または「表示する」などの用語を利用する説明は、コンピュータシステムのメモリまたはレジスタ、またはその他の情報ストレージ、伝送または表示デバイス内の物理(電子)量として表されるデータを動作および変換する、コンピュータシステムまたは同様の電子コンピューティングデバイスのアクションとプロセスと関連する。
【0067】
本明細書で説明される特定の実施形態は、アルゴリズムの形式で説明される処理ステップおよび命令を含む。実施形態の処理ステップおよび命令は、ソフトウェア、ファームウェア、またはハードウェアで実施でき、ソフトウェアで実施した場合、ダウンロードしてリアルタイムネットワークオペレーティングシステムで使用される異なるプラットフォームに常駐し、そこから動作できることに留意されたい。
【0068】
最後に、明細書で使用される文言は、主に読みやすさと説明目的のために選択されたものであり、本発明の主題を描写または制限するために選択されたものではないことに留意されたい。したがって、実施形態の開示は、例示的であることを意図しているが、限定を意図したものではない。
【手続補正書】
【提出日】2023-04-26
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
データソースからデータセットを受信するステップと、
前記受信されたデータセットに基づいて複数のプリミティブのプールからプリミティブを選択するステップであって、前記選択されたプリミティブのそれぞれは、1つまたは複数の特徴を合成するために前記データセットの少なくとも一部に適用されるように構成されている、選択するステップと、
前記選択されたプリミティブを前記受信されたデータセットに適用することによって、複数の特徴を合成するステップと、
前記複数の特徴を反復的に評価し、前記複数の特徴から一部の特徴を除去し、特徴のサブセットを取得するステップであって、各反復は、
前記データセットの異なる部分を前記評価された特徴に適用することによって、前記複数の特徴のうちの少なくとも一部の特徴の有用性を評価するステップと、
前記評価された特徴の有用性に基づいて前記評価された特徴の一部を除去し、前記特徴のサブセットを生成するステップとを含む、評価するステップと、
前記特徴のサブセットのそれぞれの特徴の重要度係数を決定するステップと、
前記特徴のサブセットおよび前記特徴のサブセットのそれぞれの特徴の前記重要度係数に基づいて機械学習モデルを生成するステップであって、前記機械学習モデルは、新しいデータに基づいて予測を行うために使用されるように構成される、生成するステップを備えた方法。
【請求項2】
前記受信されたデータセットに基づいて前記複数のプリミティブから前記プリミティブを選択するステップは、
前記受信されたデータセットの意味表現を生成するステップと、
前記受信されたデータセットの前記意味表現に一致する属性に関連付けられたプリミティブを選択するステップと
を含む請求項1に記載の方法。
【請求項3】
前記受信されたデータセットに基づいて前記複数のプリミティブから前記プリミティブを選択するステップは、
前記受信されたデータセットから代表的なベクトルを生成するステップと、
前記代表的なベクトルを機械学習モデルに入力するステップであって、前記機械学習モデルが、前記代表的なベクトルに基づいて前記選択されたプリミティブを出力する、ステップと
を含む請求項1に記載の方法。
【請求項4】
前記複数の特徴を反復的に評価し、前記複数の特徴から一部の特徴を除去し、前記特徴のサブセットを取得するステップは、
前記複数の特徴を前記データセットの第1の部分に適用し、前記複数の特徴のそれぞれの第1の有用性スコアを決定するステップと、
前記複数の特徴のそれぞれの前記第1の有用性スコアに基づいて前記複数の特徴の一部を除去し、特徴の予備サブセットを取得するステップと、
前記特徴の予備サブセットをデータセットの第2の部分に適用し、前記特徴の予備サブセットのそれぞれの第2の有用性スコアを決定するステップと、
前記特徴の予備サブセットのそれぞれの第2の有用性スコアに基づいて、前記特徴の予備サブセットから前記特徴の予備サブセットの一部を除去するステップと
を含む請求項1に記載の方法。
【請求項5】
前記特徴のサブセットのそれぞれについての前記重要度係数を決定するステップは、
前記特徴のサブセットおよび前記データセットの第1の部分を機械学習モデルに入力することによって前記特徴のサブセットをランク付けするステップであって、前記機械学習モデルは、前記特徴のサブセットのそれぞれについて第1のランキングスコアを出力する、ステップと、
それらのランキングスコアに基づいて、前記特徴のサブセットの前記重要度係数を決定するステップと
を含む請求項1に記載の方法。
【請求項6】
前記特徴のサブセットおよび前記データセットの第2の部分を機械学習モデルに入力することによって前記特徴のサブセットをランク付けするステップであって、前記機械学習モデルは、前記特徴のサブセットのそれぞれについて第2のランキングスコアを出力する、ステップと、
前記特徴の前記ランキングスコアに基づいて、前記特徴のサブセットのそれぞれについて第2の重要度係数を決定するステップと、
前記特徴の第2の重要度
係数に基づいて、前記特徴のサブセットのそれぞれの前記重要度スコアを調整するステップと
をさらに含む請求項5に記載の方法。
【請求項7】
前記プリミティブのサブセットおよび前記受信されたデータセットに基づいて前記複数の特徴を合成するステップは、
前記サブセット内のそれぞれのプリミティブについて、
前記データセット内の1つまたは複数の変数を識別するステップと、
前記プリミティブを前記1つまたは複数の変数に適用して、前記複数の特徴のうちの1つまたは複数の特徴を生成するステップと
を含む請求項1に記載の方法。
【請求項8】
システムであって、
コンピュータプログラム命令を実行するためのコンピュータプロセッサと、
前記コンピュータプロセッサが動作を実行するために実行可能なコンピュータプログラム命令を格納する非一時的なコンピュータ可読メモリと、
を備え、前記動作は、
データソースからデータセットを受信することと、
前記受信されたデータセットに基づいて複数のプリミティブのプールからプリミティブを選択することであって、前記選択されたプリミティブのそれぞれは、1つまたは複数の特徴を合成するために前記データセットの少なくとも一部に適用されるように構成されている、ことと、
前記選択されたプリミティブを前記受信されたデータセットに適用することによって、複数の特徴を合成することと、
前記複数の特徴を反復的に評価し、前記複数の特徴から一部の特徴を除去し、特徴のサブセットを取得することであって、各反復は、
前記データセットの異なる部分を前記評価された特徴に適用することによって、前記複数の特徴のうちの少なくとも一部の特徴の有用性を評価することと、
前記評価された特徴の有用性に基づいて前記評価された特徴の一部を除去し、前記特徴のサブセットを生成することとを含む、ことと、
前記特徴のサブセットのそれぞれの特徴の重要度係数を決定することと、
前記特徴のサブセットおよび前記特徴のサブセットのそれぞれの特徴の前記重要度係数に基づいて機械学習モデルを生成することであって、前記機械学習モデルは、新しいデータに基づいて予測を行うために使用されるように構成されること
を備えたシステム。
【請求項9】
前記受信されたデータセットに基づいて前記複数のプリミティブから前記プリミティブを選択することは、
前記受信されたデータセットの意味表現を生成することと、
前記受信されたデータセットの前記意味表現に一致する属性に関連付けられたプリミティブを選択することと
を含む請求項8に記載のシステム。
【請求項10】
前記受信されたデータセットに基づいて前記複数のプリミティブから前記プリミティブのサブセットを選択することは、
前記受信されたデータセットから代表的なベクトルを生成することと、
前記代表的なベクトルを機械学習モデルに入力することであって、前記機械学習モデルは、前記代表的なベクトルに基づいて前記選択されたプリミティブを出力する、ことと
を含む請求項8に記載のシステム。
【請求項11】
前記複数の特徴を反復的に評価し、前記複数の特徴から一部の特徴を除去し、前記特徴のサブセットを取得することは、
前記複数の特徴を前記データセットの第1の部分に適用し、前記複数の特徴のそれぞれの第1の有用性スコアを決定することと、
前記複数の特徴のそれぞれの前記第1の有用性スコアに基づいて前記複数の特徴の一部を除去し、特徴の予備サブセットを取得することと、
前記特徴の予備サブセットをデータセットの第2の部分に適用し、前記特徴の予備サブセットのそれぞれの第2の有用性スコアを決定することと、
前記特徴の予備サブセットのそれぞれの第2の有用性スコアに基づいて、前記特徴の予備サブセットから前記特徴の予備サブセットの一部を除去することと
を含む請求項8に記載のシステム。
【請求項12】
前記特徴のサブセットのそれぞれについての前記重要度係数を決定することは、
前記特徴のサブセットおよび前記データセットの第1の部分を機械学習モデルに入力することによって前記特徴のサブセットをランク付けすることであって、前記機械学習モデルは、前記特徴のサブセットのそれぞれについて第1のランキングスコアを出力する、ことと、
それらのランキングスコアに基づいて、前記特徴のサブセットの前記重要度係数を決定することと
を含む請求項8に記載のシステム。
【請求項13】
前記特徴のサブセットおよび前記データセットの第2の部分を機械学習モデルに入力することによって前記特徴のサブセットをランク付けすることであって、前記機械学習モデルは、前記特徴のサブセットのそれぞれについて第2のランキングスコアを出力する、ことと、
前記特徴の前記ランキングスコアに基づいて、前記特徴のサブセットのそれぞれについて第2の重要度係数を決定することと、
前記特徴の第2の重要度
係数に基づいて、前記特徴のサブセットのそれぞれの前記重要度スコアを調整することと
をさらに含む請求項12に記載のシステム。
【請求項14】
前記プリミティブのサブセットおよび前記受信されたデータセットに基づいて前記複数の特徴を合成することは、
前記サブセット内のそれぞれのプリミティブについて、
前記データセット内の1つまたは複数の変数を識別することと、
前記プリミティブを前記1つまたは複数の変数に適用して、前記複数の特徴のうちの1つまたは複数の特徴を生成することと
を含む請求項8に記載のシステム。
【請求項15】
データ分析システムにおいてデータブロックを処理するための実行可能なコンピュータプログラム命令を格納する非一時的なコンピュータ可読メモリであって、前記命令は、
データソースからデータセットを受信することと、
前記受信されたデータセットに基づいて複数のプリミティブのプールからプリミティブを選択することであって、前記選択されたプリミティブのそれぞれは、1つまたは複数の特徴を合成するために前記データセットの少なくとも一部に適用されるように構成されている、ことと、
前記選択されたプリミティブを前記受信されたデータセットに適用することによって、複数の特徴を合成することと、
前記複数の特徴を反復的に評価し、前記複数の特徴から一部の特徴を除去し、特徴のサブセットを取得することであって、各反復は、
前記データセットの異なる部分を前記評価された特徴に適用することによって、前記複数の特徴のうちの少なくとも一部の特徴の有用性を評価することと、
前記評価された特徴の有用性に基づいて前記評価された特徴の一部を除去し、前記特徴のサブセットを生成することとを含む、ことと、
前記特徴のサブセットのそれぞれの特徴の重要度係数を決定することと、
前記特徴のサブセットおよび前記特徴のサブセットのそれぞれの特徴の前記重要度係数に基づいて機械学習モデルを生成することであって、前記機械学習モデルは、新しいデータに基づいて予測を行うために使用されるように構成されることと
を含む操作を実行するために実行可能である、非一時的なコンピュータ可読メモリ。
【請求項16】
前記受信されたデータセットに基づいて前記複数のプリミティブから前記プリミティブを選択することは、
前記受信されたデータセットの意味表現を生成することと、
前記受信されたデータセットの前記意味表現に一致する属性に関連付けられたプリミティブを選択することと
を含む請求項15に記載の非一時的なコンピュータ可読メモリ。
【請求項17】
前記受信されたデータセットに基づいて前記複数のプリミティブから前記プリミティブを選択することは、
前記受信されたデータセットから代表的なベクトルを生成することと、
前記代表的なベクトルを機械学習モデルに入力することであって、前記機械学習モデルは、前記代表的なベクトルに基づいて前記選択されたプリミティブを出力する、ことと
を含む請求項15に記載の非一時的なコンピュータ可読メモリ。
【請求項18】
前記複数の特徴を反復的に評価し、前記複数の特徴から一部の特徴を除去し、前記特徴のサブセットを取得することは、
前記複数の特徴を前記データセットの第1の部分に適用し、前記複数の特徴のそれぞれの第1の有用性スコアを決定することと、
前記複数の特徴のそれぞれの前記第1の有用性スコアに基づいて前記複数の特徴の一部を除去し、特徴の予備サブセットを取得することと、
前記特徴の予備サブセットをデータセットの第2の部分に適用し、前記特徴の予備サブセットのそれぞれの第2の有用性スコアを決定することと、
前記特徴の予備サブセットのそれぞれの第2の有用性スコアに基づいて、前記特徴の予備サブセットから前記特徴の予備サブセットの一部を除去することを含む請求項15に記載の非一時的なコンピュータ可読メモリ。
【請求項19】
前記特徴のサブセットのそれぞれについての前記重要度係数を決定することは、
前記特徴のサブセットおよび前記データセットの第1の部分を機械学習モデルに入力することによって前記特徴のサブセットをランク付けすることであって、前記機械学習モデルは、前記特徴のサブセットのそれぞれについて第1のランキングスコアを出力する、ことと、
それらのランキングスコアに基づいて、前記特徴のサブセットの前記重要度係数を決定することと
を含む請求項15に記載の非一時的なコンピュータ可読メモリ。
【請求項20】
前記特徴のサブセットおよび前記データセットの第2の部分を機械学習モデルに入力することによって前記特徴のサブセットをランク付けすることであって、前記機械学習モデルは、前記特徴のサブセットのそれぞれについて第2のランキングスコアを出力する、ことと、
前記特徴の前記ランキングスコアに基づいて、前記特徴のサブセットのそれぞれについて第2の重要度係数を決定することと、
前記特徴の第2の重要度
係数に基づいて、前記特徴のサブセットのそれぞれの前記重要度スコアを調整することと
をさらに含む請求項19に記載の非一時的なコンピュータ可読メモリ。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0010
【補正方法】変更
【補正の内容】
【0010】
データソース120は、電子データを機械学習サーバー110に提供する。データソース120は、ハードディスクドライブ(HDD)またはソリッドステートドライブ(SSD)などのストレージデバイス、複数のストレージデバイスへのアクセスを管理および提供するコンピュータ、ストレージエリアネットワーク(SAN)、データベース、またはクラウドストレージシステムであり得る。データソース120はまた、別のソースからデータを取り出すことができるコンピュータシステムであってもよい。データソース120は、機械学習サーバー110から遠隔であってもよく、ネットワーク130を介してデータを提供してもよい。さらに、データソース120の一部またはすべては、データ分析システムに直接に結合され、ネットワーク130を介してデータを渡すことなく、データを提供してもよい。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0011
【補正方法】変更
【補正の内容】
【0011】
データソース120によって提供されるデータは、データレコード(例えば、行)に編成することができる。各データ レコードは、1つまたは複数の値が含まれる。例えば、データソース120によって提供されるデータレコードは、一連のコンマ区切りされた値を含む場合がある。データは、機械学習サーバー110を使用する企業に関連する情報を記述する。例えば、データソース120からのデータは、ウェブサイト上でアクセス可能なコンテンツおよび/またはアプリケーションとのコンピュータベースの相互作用(例えば、クリック追跡データ)を記述することができる。別の例として、データソース120からのデータは、オンラインおよび/または店舗での顧客取引を記述することができる。企業は、製造業、販売業、金融業、銀行業などの様々な産業の1つまたは複数に属することができる。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0023
【補正方法】変更
【補正の内容】
【0023】
図2は、一実施形態による、特徴量エンジニアリングアプリケーション200を示すブロック図である。特徴量エンジニアリングアプリケーション200は、
図1の特徴量エンジニアリングアプリケーション140の一実施形態である。特徴量エンジニアリングアプリケーション200は、プリミティブ選択モジュール210、特徴生成モジュール220、
メタデータ生成モジュール230、及びデータベース240を含む。特徴量エンジニアリングアプリケーション200は、データソース120からデータセットを受信し、データセットに基づいて機械学習モデルを生成する。当業者は、他の実施形態がここで説明したものとは異なるおよび/または他のコンポーネントを有することができ、機能が異なる方法でコンポーネントの間に分散できることを認識するであろう。
【国際調査報告】