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

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

▶ エスアーペー エスエーの特許一覧

特許7229148プライバシーを保護しながら分散された顧客データ上で機械学習すること
<>
  • 特許-プライバシーを保護しながら分散された顧客データ上で機械学習すること 図1
  • 特許-プライバシーを保護しながら分散された顧客データ上で機械学習すること 図2
  • 特許-プライバシーを保護しながら分散された顧客データ上で機械学習すること 図3A
  • 特許-プライバシーを保護しながら分散された顧客データ上で機械学習すること 図3B
  • 特許-プライバシーを保護しながら分散された顧客データ上で機械学習すること 図4A
  • 特許-プライバシーを保護しながら分散された顧客データ上で機械学習すること 図4B
  • 特許-プライバシーを保護しながら分散された顧客データ上で機械学習すること 図5
  • 特許-プライバシーを保護しながら分散された顧客データ上で機械学習すること 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-16
(45)【発行日】2023-02-27
(54)【発明の名称】プライバシーを保護しながら分散された顧客データ上で機械学習すること
(51)【国際特許分類】
   G06F 21/62 20130101AFI20230217BHJP
   G06N 20/00 20190101ALI20230217BHJP
【FI】
G06F21/62 354
G06N20/00
【請求項の数】 17
【外国語出願】
(21)【出願番号】P 2019229271
(22)【出願日】2019-12-19
(65)【公開番号】P2020187723
(43)【公開日】2020-11-19
【審査請求日】2020-12-14
(31)【優先権主張番号】16/410,076
(32)【優先日】2019-05-13
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】300015447
【氏名又は名称】エスアーペー エスエー
【住所又は居所原語表記】Dietmar-Hopp-Allee 16, 69190 Walldorf, Germany
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ペーター・エバーライン
(72)【発明者】
【氏名】フォルカー・ドリーゼン
【審査官】打出 義尚
(56)【参考文献】
【文献】国際公開第2018/017467(WO,A1)
【文献】特開2000-293421(JP,A)
【文献】特開2018-194904(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
トレーニングブローカーが、データベンダーから機械学習(ML)モデルをトレーニングしてほしいという要求を受け取るステップと、
前記トレーニングブローカーによって、顧客の複数のデータソースの各個々のデータソースから、トレーニングプロセスに必要とされないフィールドを取り除いた、前記モデルをトレーニングするための匿名化されたデータを取得するステップであって、前記匿名化されたデータが、各個々のデータソースからのプロダクションデータの機微な情報の匿名化によって提供されているデータサイエンススキーマを介してアクセスされる、取得するステップと、
データベンダーが、前記匿名化されたデータを使用して前記MLモデルをトレーニングするために前記匿名化されたデータへアクセスするステップと
を含
前記プロダクションデータのプロダクションデータスキーマに基づいて前記データサイエンススキーマを作成するステップであって、前記データサイエンススキーマが前記プロダクションデータへの読取り専用アクセスを与え、前記データサイエンススキーマが、非個人化データを複製せずに前記プロダクションデータ中の非個人化データに限定されるアクセスを与える、作成するステップと、
前記プロダクションデータへのアクセスを与えるために前記データサイエンススキーマを使用するステップと
をさらに含む、
コンピュータ実装方法。
【請求項2】
前記匿名化されたデータを取得するステップが、
前記複数のデータソースの各個々のデータソースに、前記匿名化されたデータの要求を行うステップと、
前記複数のデータソースの各個々のデータソースから、前記匿名化されたデータを受け取るステップと、
前記匿名化されたデータを、前記トレーニングブローカーによって保守されるキャッシュに記憶するステップであって、データベンダーに前記匿名化されたデータへのアクセスを与えることが、前記キャッシュへのアクセスを与えることを含む、記憶するステップと
を含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記匿名化されたデータを取得するステップが、
前記複数のデータソースの各個々のデータソースに、前記モデルを提供するステップと、
前記複数のデータソースの各個々のデータソースから、トレーニングによって更新されたモデルを受け取るステップであって、前記更新されたモデルが、前記個々のデータソースが前記個々のデータソースで実行される機械学習モデルトレーニングを使用すること、および前記個々のデータソースにローカルに利用可能な前記匿名化されたデータを使用することによって作成される、受け取るステップと、
前記複数のデータソースの他の個々のデータソースに対して、前記提供するステップと、前記受け取るステップとを繰り返すステップと、
前記トレーニングブローカーによって前記データベンダーに前記更新されたモデルを提供するステップと
をさらに含む、請求項1に記載のコンピュータ実装方法
【請求項4】
個々のデータソースでユーザに、評価のために前記データサイエンススキーマへのアクセスを与えるステップ
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記個々のデータソースに帰することができる数値を取り除くために、前記匿名化されたデータ中の数値データのフィールドの数値をスケーリングするステップ
をさらに含む、請求項2に記載のコンピュータ実装方法。
【請求項6】
前記個々のデータソースに帰することができる値を取り除くために、前記プロダクションデータ中のフィールドをグローバル一意識別子(GUID)にマップするステップと、
前記匿名化されたデータとともに前記GUIDを記憶するステップと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記プロダクションデータのサブセットを受け取るためにパイプラインを作成するステップと、
MLモデルをトレーニングするのに必要とされるトレーニングデータのために前記プロダクションデータを読み取るステップと、
前記トレーニングデータを前記パイプラインにアクセス可能なデータベーステーブルに記憶するステップと、
前記データサイエンススキーマを使用して前記データベーステーブルへのアクセスを与えるステップと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
動作を行うためにコンピュータシステムによって実行可能な1つまたは複数の命令を記憶する非一時的コンピュータ可読媒体であって、前記動作が、
トレーニングブローカーが、データベンダーから機械学習(ML)モデルをトレーニングしてほしいという要求を受け取ることと、
前記トレーニングブローカーによって顧客の複数のデータソースの各個々のデータソースから、トレーニングプロセスに必要とされないフィールドを取り除いた、前記モデルをトレーニングするための匿名化されたデータを取得することであって、前記匿名化されたデータが、各個々のデータソースからプロダクションデータの機微な情報の匿名化によって提供されているデータサイエンススキーマを介してアクセスされる、取得することと、
データベンダーが、前記匿名化されたデータを使用して前記MLモデルをトレーニングするために前記匿名化されたデータへアクセスすることと
を含む、非一時的コンピュータ可読媒体であって、
前記動作が、
前記プロダクションデータのプロダクションデータスキーマに基づいて前記データサイエンススキーマを作成することであって、前記データサイエンススキーマが前記プロダクションデータへの読取り専用アクセスを与え、前記データサイエンススキーマが、非個人化データを複製せずに前記プロダクションデータ中の非個人化データに限定されるアクセスを与える、作成することと、
前記プロダクションデータへのアクセスを与えるために前記データサイエンススキーマを使用することと
をさらに含む、
非一時的コンピュータ可読媒体。
【請求項9】
前記匿名化されたデータを取得することが、
前記複数のデータソースの各個々のデータソースに、前記匿名化されたデータの要求を行うことと、
前記複数のデータソースの各個々のデータソースから、前記匿名化されたデータを受け取ることと、
前記匿名化されたデータを、前記トレーニングブローカーによって保守されるキャッシュに記憶することであって、データベンダーに前記匿名化されたデータへのアクセスを与えることが、前記キャッシュへのアクセスを与えることを含む、記憶することと
を含む、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項10】
前記匿名化されたデータを取得することが、
記複数のデータソースの各個々のデータソースに、前記モデルを提供することと、
前記複数のデータソースの各個々のデータソースから、トレーニングによって更新されたモデルを受け取ることであって、前記更新されたモデルが、前記個々のデータソースが前記個々のデータソースで実行される機械学習モデルトレーニングを使用すること、および前記個々のデータソースにローカルに利用可能な前記匿名化されたデータを使用することによって作成される、受け取ることと、
前記複数のデータソースの他の個々のデータソースに対して、前記提供することと、前記受け取ることとを繰り返すことと、
前記トレーニングブローカーによって前記データベンダーに前記更新されたモデルを提供することと
をさらに含む、請求項8に記載の非一時的コンピュータ可読媒体
【請求項11】
記動作が、
各個々のデータソースでユーザに、評価のために前記データサイエンススキーマへのアクセスを与えること
をさらに含む、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項12】
前記動作が、
前記個々のデータソースに帰することができる数値を取り除くために、前記匿名化されたデータ中の数値データのフィールドの数値をスケーリングすること
をさらに含む、請求項9に記載の非一時的コンピュータ可読媒体。
【請求項13】
前記動作が、
前記個々のデータソースに帰することができる値を取り除くために、前記プロダクションデータ中のフィールドをグローバル一意識別子(GUID)にマップすることと、
前記匿名化されたデータとともに前記GUIDを記憶することと
をさらに含む、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項14】
前記動作が、
前記プロダクションデータのサブセットを受け取るためにパイプラインを作成することと、
MLモデルをトレーニングするのに必要とされるトレーニングデータのために前記プロダクションデータを読み取ることと、
前記トレーニングデータを前記パイプラインにアクセス可能なデータベーステーブルに記憶することと、
前記データサイエンススキーマを使用して前記データベーステーブルへのアクセスを与えることと
をさらに含む、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項15】
コンピュータ実装システムであって、
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータと相互動作可能に結合され、1つまたは複数の命令を記憶する有形の非一時的機械可読媒体を有する、1つまたは複数のコンピュータメモリデバイスであって、前記1つまたは複数の命令が、前記1つまたは複数のコンピュータによって実行されると、
トレーニングブローカーが、データベンダーから機械学習(ML)モデルをトレーニングしてほしいという要求を受け取ることと、
前記トレーニングブローカーによって顧客の複数のデータソースの各個々のデータソースから、トレーニングプロセスに必要とされないフィールドを取り除いた、前記モデルをトレーニングするための匿名化されたデータを取得することであって、前記匿名化されたデータが、各個々のデータソースからプロダクションデータの機微な情報の匿名化によって提供されているデータサイエンススキーマを介してアクセスされる、取得することと、
データベンダーが、前記匿名化されたデータを使用して前記MLモデルをトレーニングするために前記匿名化されたデータへアクセスすることと
を含む、1つまたは複数の動作を行う、1つまたは複数のコンピュータメモリデバイスと
を備える、コンピュータ実装システムであって、
前記動作が、
前記プロダクションデータのプロダクションデータスキーマに基づいて前記データサイエンススキーマを作成することであって、前記データサイエンススキーマが前記プロダクションデータへの読取り専用アクセスを与え、前記データサイエンススキーマが、非個人化データを複製せずに前記プロダクションデータ中の非個人化データに限定されるアクセスを与える、作成することと、
前記プロダクションデータへのアクセスを与えるために前記データサイエンススキーマを使用することと
をさらに含む、
コンピュータ実装システム。
【請求項16】
前記匿名化されたデータを取得することが、
前記複数のデータソースの各個々のデータソースに、前記匿名化されたデータの要求を行うことと、
前記複数のデータソースの各個々のデータソースから、前記匿名化されたデータを受け取ることと、
前記匿名化されたデータを、前記トレーニングブローカーによって保守されるキャッシュに記憶することであって、データベンダーに前記匿名化されたデータへのアクセスを与えることが、前記キャッシュへのアクセスを与えることを含む、記憶することと
を含む、請求項15に記載のコンピュータ実装システム。
【請求項17】
前記匿名化されたデータを取得することが、
前記複数のデータソースの各個々のデータソースに、前記モデルを提供することと、
前記複数のデータソースの各個々のデータソースから、トレーニングによって更新されたモデルを受け取ることであって、前記更新されたモデルが、前記個々のデータソースが前記個々のデータソースで実行される機械学習モデルトレーニングを使用すること、および前記個々のデータソースにローカルに利用可能な前記匿名化されたデータを使用することによって作成される、受け取ることと、
前記複数のデータソースの他の個々のデータソースに対して、前記提供することと、前記受け取ることとを繰り返すことと、
前記トレーニングブローカーによって前記データベンダーに前記更新されたモデルを提供することと
をさらに含む、請求項15に記載のコンピュータ実装システム
【発明の詳細な説明】
【背景技術】
【0001】
機械学習技法は、たとえば、作られたテストデータの代わりに、プロダクションデータが使用されるとき、改善された結果をもたらすことができる。しかしながら、プロダクションデータは、個人的または機微な情報を含む可能性がある。機械学習技法から恩恵を受ける、会社または企業などの顧客は、個人的または機微な情報を提供することに関して懸念をもつことがある。個人情報は、たとえば、名前、住所、電話番号、アカウント番号、およびコンピュータクレデンシャル(computer credential)など、個人を特定できる情報(PII:personally identifiable information)を含むことができる。機微な情報は、たとえば、勘定残高、他の数量または測定値、および人口統計学的情報を含むことができる。結果として、顧客は、データがプライバシーに関係する情報または一般的に機微な情報を含んでいる可能性があるので、モデルを作成するベンダーに顧客のデータを提供することを避ける。
【発明の概要】
【課題を解決するための手段】
【0002】
本開示は、プライバシーへの影響を最小に維持しながら、分散された顧客データ上で機械学習を行うための技法について説明する。一実装形態では、コンピュータ実装方法が、トレーニングブローカーにおいて、機械学習(ML)モデルをトレーニングしてほしいという要求を受け取るステップと、トレーニングブローカーによって複数のデータソースの各個々のデータソースから、モデルをトレーニングするための匿名化されたデータを取得するステップであって、匿名化されたデータが、各個々のデータソースからのプロダクションデータの機微な情報の匿名化によって提供されているデータサイエンススキーマを介してアクセスされる、取得するステップと、データベンダーに、匿名化されたデータを使用してMLモデルをトレーニングするために匿名化されたデータへのアクセスを与えるステップとを含む。
【0003】
説明する主題は、コンピュータ実装方法と、コンピュータ実装方法を行うためのコンピュータ可読命令を記憶する、非一時的コンピュータ可読媒体と、1つまたは複数のコンピュータと相互動作可能に結合された1つまたは複数のコンピュータメモリデバイスを含み、1つまたは複数のコンピュータによって実行されると、コンピュータ実装方法を行う命令を記憶した、有形の非一時的機械可読媒体を有する/コンピュータ可読命令が非一時的コンピュータ可読媒体に記憶された、コンピュータ実装システムとを使用して実装することができる。
【0004】
本明細書で説明する主題は、以下の利点のうちの1つまたは複数を実現するために実装することができる。第1に、実際のプロダクションデータが、個人的または機微な情報を損なうことなく、モデルをトレーニングするために使用され、顧客のためのデータ機密性を増強し得る。第2に、異なる顧客のデータを使用するモデルトレーニングサービスが、顧客がベンダーデータベースに顧客のデータを複製する必要なしに作成され得る。第3に、生成されたデータは適切な結果をもたらさない場合があるので、実際のプロダクションデータの使用は、モデルの性能および精度を向上させることができる。第4に、機械学習モデルが、分散された顧客向けに個人個人で作成され得る。第5に、モデルをトレーニングするために使用される個々の顧客データを、個人などのデータソースまで遡って突きとめることができない。
【0005】
本明細書の主題の1つまたは複数の実装形態の詳細を、発明を実施するための形態、特許請求の範囲、および添付の図面に示す。発明を実施するための形態、特許請求の範囲、および添付の図面から当業者には、主題の他の特徴、態様、および利点が明らかとなるであろう。
【図面の簡単な説明】
【0006】
図1】本開示の一実装形態による、前処理システムの一例を示すブロック図である。
図2】本開示の一実装形態による、前処理システムを使用するモデルトレーニングシステムの一例を示すブロック図である。
図3A】本開示の一実装形態による、モデルトレーニングシステムのデータからモデルの変形態の一例を集合的に示すブロック図である。
図3B】本開示の一実装形態による、モデルトレーニングシステムのデータからモデルの変形態の一例を集合的に示すブロック図である。
図4A】本開示の一実装形態による、モデルトレーニングシステムのモデルからデータの変形態の一例を集合的に示すブロック図である。
図4B】本開示の一実装形態による、モデルトレーニングシステムのモデルからデータの変形態の一例を集合的に示すブロック図である。
図5】本開示の一実装形態による、モデルの機械学習トレーニングに使用される匿名化されたデータを仲介するためにトレーニングブローカーを使用するためのコンピュータ実装方法の一例を示すフローチャートである。
図6】本開示の一実装形態による、説明するアルゴリズム、方法、機能、処理、フロー、および手順に関連する計算機能を与えるように使用されるコンピュータ実装システムの一例を示すブロック図である。
【発明を実施するための形態】
【0007】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
以下の詳細な説明は、分散された顧客データ上で、プライバシーを保護しながら機械学習を行うための技法について説明し、1つまたは複数の特定の実装形態の状況で開示する主題を当業者が作成し、使用できるように提示される。開示する実装形態の様々な変更形態、修正形態、および置換形態を作成することができ、当業者には直ちに明らかになるであろう。定義される一般的原理は、本開示の範囲から逸脱することなく、他の実装形態および用途に適用することができる。場合によっては、説明する主題の理解を得るために不必要であり、かつ当業者の技能のうちである1つまたは複数の技術的詳細が、1つまたは複数の記載する実装形態を曖昧にしないように、省略されることがある。本開示は、説明するまたは図示する実装形態に限定されるものではなく、説明する原理および特徴と一致する最大の範囲を与えられるものとする。
【0008】
多くの顧客は、顧客の顧客サイトに展開される標準ソフトウェアを使用する。たとえば、顧客は、同じ企業資源計画(ERP)ソフトウェアを使用する場合がある。場合によっては、ERPソフトウェアは、顧客固有の拡張機能など、アドオン機能を含む。アドオン機能のいくつかは、機械学習(ML)機能に関係することがあり、ML機能は、すべての顧客および顧客のデータに適用される技法を含むことができる。たとえば、ML技法は、同じERPソフトウェアを使用する顧客に共通しているデータの基礎に基づくことがある。データは、異なるタイプのアプリケーションの間で共有されるフォーマットを含む、共通のフォーマットになっていることがある。一例として、ML技法は、販売注文、販売注文項目、インボイス、人的資源(HR)データ、およびデータの組合せに適用することができる。これらのデータタイプの各々が、1つの共通のデータフォーマットにマップされる異なるソフトウェア製品に記憶されたデータセットに対して規定された事実上の業界標準に基づくデータ構造を使用することができる。
【0009】
たとえばソフトウェアベンダーが、所与の製品または製品群で使用される情報に基づいているMLモデルを作成したい場合がある。MLモデル、データ分析、およびモデルトレーニングは、しばしば実際の顧客データ、またはプロダクションデータを使用することから恩恵を受けることができる。プロダクションデータは、たとえば、生成されたデータが容認可能または現実的な結果を与えないシナリオにおいて必要不可欠である場合がある。この場合、顧客が、店舗用の製品またはクラウドベースの製品に対するプロダクションデータを提供するよう求められてもよい。ベンダーに顧客データを読み取ることを禁止するデータアクセス規制または要件が存在してもよい。いくつかの会社は、会社の方針により、いくつかのタイプの顧客データへのアクセスを禁止してもよい。一般データ保護規則(GDPR)ルールなど、機微なデータ(たとえば、PII)へのアクセスを禁止する政府または法的規制が存在してもよい。
【0010】
データプライバシー懸念の結果として、たとえば、実際の顧客データに基づいて機械学習モデルを作成する最良の方法に関して、課題が存在することがある。この課題は、数人の顧客(たとえば、異なる場所にいる)の間でデータが分散され、ベンダーがデータへの直接アクセスを許可されないとき、より困難になり得る。データの一部がアクセス可能であるときでも、顧客データプライバシーを維持することが、依然として課題を提起する。
【0011】
データ処理
いくつかの実装形態では、モデルに使用するためにデータがアクセスされる前に、データの前処理が行われ得る。この前処理は、機械学習プロセスがデータベースに記憶されるデータに直接アクセスすること、またはこれを使用することがないように導かれ得る。ソフトウェアベンダーによって設けられる前処理機構は、一般的に、特定のデータ構造およびデータタイプに依存する。たとえば、トレーニングプロセスに必要とされないフィールドは、フィルタ処理で除くことができる。フィルタ処理されるフィールドは、たとえば、モデルには必要とされない個人データを含むことができる。フィルタ処理は、データがトレーニングプロセスによって読み取られる、またはこれにアクセス可能にされないことを保証することができる。いくつかの実装形態では、テキスト、文字列、およびグローバル一意識別子(GUID)などのフィールドを数字(乱数を含む)に変換する、またはソースデータのリバースエンジニアリングおよび再作成を防ぐ他の形に変換するために、データセットまたはデータベース上で機構を使用することができる。
【0012】
図1は、本開示の一実装形態による、前処理システム100の一例を示すブロック図である。前処理システム100は、アプリケーション104のために働くデータベース102内のデータを前処理するために使用され得る。データエクスポーザコントロール106が、データをモデルに提供することができる。データベース102は、アプリケーション104のために働く顧客プロダクションデータスキーマ108と、データエクスポーザコントロール106のために働くデータサイエンススキーマ110とを含む。プロダクションデータスキーマ108は、ビュー114を介してデータベーステーブル112へのアクセスを与える。データサイエンススキーマ110は、ビュー118を介してデータベーステーブル116へのアクセスを与える。いくつかの実装形態では、データエクスポーザコントロール106は、プロダクションデータのサブセットを受け取るパイプライン120を介してデータにアクセスすることもできる。
【0013】
いくつかの実装形態では、前処理システム100は、データサイエンススキーマ110などのさらなるデータベーススキーマの使用により確立されるフィルタ処理をサポートすることができる。さらなるデータベーススキーマが、他の場合は顧客プロダクションデータスキーマ108を使用してアクセス可能であるプロダクションデータの特定のサブセットへのアクセスを許可する、ビュー118などのオブジェクトを含むことができる。いくつかの実装形態では、特定のフィールドへの(書込みアクセスを不可にしながら)読取りアクセスを選択的に許可するビューが作成され得る。たとえば、名前を含むデータフィールドが、フィルタ処理で除かれることがあり、または名前もしくは他のフィールドが、元の名前を匿名化するグローバル一意識別子(GUID)にマップされることがある。GUIDは、たとえば、2つ以上のテーブルに加わるために、通常使用される個人情報を表す値に取って代わることができる。いくつかの実装形態では、数値は、任意の数でスケーリングされ得る。このようにして、数値データの幅(および数値データ内の相対関係)が、実際の値を公開することなく、比較され得る。
【0014】
いくつかの実装形態では、第2のフィルタ処理機構が、パイプライン120などのデータパイプラインの作成および使用を含むことができる。たとえばデータパイプラインを使用するとき、顧客プロダクションデータスキーマ108を使用して読み取られるデータが変換され、データサイエンススキーマ110によってアクセス可能なデータベーステーブル116に記憶され得る。顧客(たとえば、顧客の管理者を介して)は、データサイエンススキーマ110を使用してアクセス可能なデータを定義することを含めて、データサイエンススキーマ110を制御することができる。ユーザインターフェースは、公開される情報のタイプを見るために顧客によって使用され得る。機械学習に公開されてはならないいくつかのデータセットについて、ビュー、テーブル、およびテーブル行を削除することができる。公開されるデータが顧客に容認可能であることを顧客が確認できるように、データを公開するために使用されるアプリケーションプログラミングインターフェース(API)を顧客に提供することができる。
【0015】
図2は、本開示の一実装形態による、前処理システム100を使用するモデルトレーニングシステム200の一例を示すブロック図である。モデルトレーニングシステム200は、モデル206をトレーニングするために、機械学習(ML)モデルトレーニング202または204(または組合せ)を使用することができる。
【0016】
トレーニング
データの前処理が完了された後、モデル206のトレーニングが行われ得る。いくつかの実装形態では、トレーニング、すなわち、1)データからモデルのMLモデルトレーニング202、または2)モデルからデータのMLモデルトレーニング204を行うために、少なくとも2つの異なる手法を使用することができる。
【0017】
データからモデルの変形態(または手法)では、メモリ208内のデータが、(たとえば、データにアクセスすることによって、またはデータを受け取ることによって)モデルに運ばれる。データは、ベンダーにおいてデータサイエンススキーマ210を使用してアクセスされる。データは、トレーニングブローカー212を通過する。
【0018】
モデルからデータの変形態では、モデルは、(たとえば、モデルを顧客の場所に提供することによって)データ場所で使用するために提供される。モデルが所与の顧客のためにトレーニングされると、更新されたモデルは、トレーニングブローカー212に提供され、トレーニングブローカー212は更新されたモデルをさらなる顧客に渡すことができる。
【0019】
いくつかの実装形態では、データからモデルの変形態は、最適な手法であるとみなすことができる。これは、トレーニングを実行するために必要とされる特定のハードウェアが、データの場所に存在すると想定することができないためである。たとえば、それは、すべての顧客が、モデルを実行するために必要なグラフィックス処理ユニット(GPU)または特定用途向け集積回路(ASIC)ハードウェアを有するとは限らない場合であってもよい。また、トレーニングがかなりの資源を消費する場合、および顧客データセンターで資源が利用可能でない場合、資源はベンダーによって提供され得る。
【0020】
いくつかの実装形態では、モデルからデータの変形態は、(たとえば、「転移学習」のために)データ場所に分散できるモデルに限定され得る。結果として、モデルからデータの変形態は、モデルのみがトレーニングのためにネットワークを介して送られる(データは送られない)ので、大きいデータ量により好適であり得る。
【0021】
データからモデルの変形態
図3Aおよび図3Bは、本開示の一実装形態による、モデルトレーニングシステムのデータからモデルの変形態300の一例をまとめて示すブロック図である。データからモデルの変形態300は、分散された顧客データを使用して集中型トレーニングを提供することができる。トレーニングが行われる前に、データは、たとえば、顧客データベース内のデータサイエンススキーマからデータを読み取ること、およびトレーニングブローカーにデータをキャッシュすることによって、前処理することができる。
【0022】
モデルトレーニングは、たとえば、ステップ1 302において、関係するデータがキャッシュされるよう要求することを含む、シナリオXをトレーニングしてほしいという要求が行われるとき、開始することができる。たとえば、ベンダーデータセンター304のベンダーが、特定のトレーニングごとにどのデータがキャッシュされるか(306)を指定することができる。キャッシュされるデータを特定する情報は、トレーニングブローカー212に渡され得る。ベンダーデータセンター304は、顧客308の構成要素と同様の構成要素を含むことができ、アプリケーション310と、データベース312とを含む。データベース312は、ベンダー独自のデータスキーマ314と、データサイエンススキーマ316とを含む。ベンダーデータセンター304は、モデルをトレーニングすることができる、データからモデルのMLトレーニングモジュール320を含む。データ匿名化および変換318が、顧客の個人的および機微なデータが保護されることを保証することができる。
【0023】
トレーニングブローカー212は、次いで、順不同を含む、任意の順序とすることができる、参加する顧客からのレコードを読み取ることができる。たとえば、ステップ2a~ステップ2m 324において、データを読み取ることは、トレーニングブローカー212によって呼び出される顧客の単一レコードにアクセスすることを含むことができる。データがトレーニングブローカー212によってアクセスされ、キャッシュされた後、トレーニングのためにキャッシュへのアクセスが与えられるステップ3 326において、モデルトレーニングを行うことができる。トレーニングブローカー212から読み取られたデータ上で実際のトレーニングが行われる時間の間、トレーニングブローカー212は、接続されたすべての顧客からレコードをランダムに配信することができる。結果として、トレーニングアルゴリズムは、どのデータがどの顧客から来たかを含む、個人的なまたはプライバシーセンシティブなデータ所有者情報にアクセスしない。
【0024】
キャッシュは、元のデータベーステーブルの一意のキー制約を実施する必要がないので、同じキーをもつ行が、異なる顧客から読み取られ、キャッシュされ得る。顧客名および顧客のデータベース名(またはレコードを特定の顧客にマップすることを可能にする他の情報)は、キャッシュのレコードに追加されない。場合によっては、これらのタイプのプライバシー保護技法は、外部の信頼できる第三者によって監督され得る。
【0025】
機械モデルトレーニングは、たとえば異なる顧客によってアクセス可能ないくつかの異なる出所の複数のデータセットを表すデータのスーパーセットを読み取ることができる。いくつかの実装形態では、最小数(たとえば、10人)の顧客からのデータが使用されることを意味する、最小数のソースを指定することができる。いくつかの実装形態では、外部の信頼できる第三者が最小値を監視し、徹底することができる。
【0026】
いくつかの実装形態では、白色雑音レコードのセットが、読取り中にキャッシュに導入されることがある。このように、トレーニングアルゴリズムは、アクセスされるデータが、接続された顧客システムのいずれかから来るか、それともたとえば白色雑音発生装置から来るかを決定することができない。白色雑音データセットは、モデルのトレーニングを妨害しないように設計することができる。
【0027】
モデルからデータの変形態
図4Aおよび図4Bは、本開示の一実装形態による、モデルトレーニングシステムのモデルからデータの変形態400の一例をまとめて示すブロック図である。モデルからデータの変形態は、顧客データにわたって反復される分散型トレーニングをサポートすることができる。モデルからデータの手法は、トレーニングされたモデルがさらなるデータでのトレーニングにより改善され得るという概念を包含する「転移学習」に対応するモデルに使用され得る。いくつかの実装形態では、この手法は、以下のステップを含み、ニューラルネットワークと同様の方法で実装され得る。
【0028】
ステップ1a 402において、モデルはベンダーデータ上でトレーニングされる。ルートモデルは、ベンダーによって生成できるベンダー独自のデータに基づいて作成することができ、データは、より低いがそれでも有効な品質を有する。ルートモデルは最初に、最初の顧客のデータのプライバシーを保護するようにして作成することができる。たとえば、第1の顧客からのモデルの更新されたバージョンが、その後、トレーニングブローカー212に返されるとき、モデルは全く顧客のデータのみに基づくものではなく、したがって、顧客にマップすることができない。ステップ1b 404において、モデルは、さらなるトレーニングのためにトレーニングブローカー212に渡される。
【0029】
次いでモデルの再トレーニングが、たとえば、顧客1人ずつ行われ得る。ステップ2a 406において、トレーニングブローカー212は、顧客のデータ上でのさらなるトレーニングのために、ルートモデルを顧客308のパイプラインの第1の顧客に提供することができる。ステップ3a 408において、第1の顧客は、顧客1のデータを使用してモデルを再トレーニングすることができる。ステップ4a 410において、モデルをトレーニングした後、第1の顧客は、再トレーニングされたモデルをトレーニングブローカー212に渡すことができる。結果として、モデルバージョン412が再トレーニングされると、モデルバージョン414が作成される。一般に、モデルが顧客によって再トレーニングされるとき、モデルのバージョンVnからモデルのバージョンVn+1が作成され得る。この例では、モデルがステップ1b 404において初めてトレーニングブローカー212に渡された後、バージョンはn=1であり、モデルが第1の顧客によって再トレーニングされた後、バージョンはn=2である。モデルの各バージョンが作成された後、更新されたモデルは、次いで、現在の例では顧客308のパイプラインの顧客2から顧客mを含む、次の顧客に送られる。
【0030】
ステップ406~410と同様のステップが、残りの顧客2から顧客mに対して顧客ごとに繰り返され得る。たとえば、ステップ416において、トレーニングブローカー212は、ルートモデルの更新されたバージョン(たとえば、バージョンVx+1)を、顧客308のパイプラインのm番目の顧客に提供することができる。結果として、m番目の顧客に渡されるモデルバージョンVx 422が、モデルバージョンVx+1 424を作成するために再トレーニングされ得る。
【0031】
モデルが幾人かの顧客のデータでトレーニングされると、モデルはテストすることができる。ステップ5 426において、トレーニングブローカー212は、更新されたモデルの精度をベンダーがテストすることができるベンダーデータセンター304にモデル(たとえば、バージョンx+1)を渡すことができる。精度は、たとえば、データサイエンティストに報告され得る。モデルからデータの変形態400のステップは、モデルの精度がたとえば所定のしきい値を超える精度を有して十分に良いと決定されるまで繰り返され得る。
【0032】
変形態を拡張する
いくつかの実装形態では、変形態300および変形態400の両方が、追加されたパブリックデータを使用して、たとえば、中央情報局(CIA)ワールドファクトブックからのデータまたはウィキペディアからのデータを使用して、トレーニングするために拡張され得る。データからモデルの変形態300の場合、パブリックデータは、顧客データと同様にしてアクセスされ、実際の顧客データと混合され得る。モデルからデータの変形態400の場合、パブリックデータは、ルートモデルをトレーニングするために使用され得る。パブリックデータが顧客の場所でのトレーニング中に顧客データと相関関係にあることが望ましい場合、パブリックデータは、顧客データセンターでのトレーニング中に読み取ることができる。
【0033】
いくつかの実装形態では、ベンダーが、モデルからデータの変形態を使用する顧客に順不同のトレーニングを使用してモデルをトレーニングしたい場合がある。たとえば、モデルは顧客Aに、顧客のデータの20%でモデルをトレーニングする命令とともに提供されることがある。モデルは、顧客B~顧客Zの各々によって、同じく顧客のデータの20%を使用してモデルをトレーニングする命令とともに、連続的に再トレーニングされ得る。すべての顧客が、顧客のデータの20%を使用してモデルを再トレーニングすると、ベンダーは、場合によっては再トレーニングの別のフェーズに入ることができる。たとえば、顧客の任意の順で、顧客A~顧客Zの各々が、顧客のデータの次のN%(たとえば、30%)でモデルを再トレーニングするよう命令されることがある。顧客がモデルを再トレーニングするたびに、モデルはその時点までに他の顧客によってすでにトレーニングまたは再トレーニングされている。
【0034】
いくつかの実装形態では、トレーニングが行われる方法を、ベンダーまたは他のエンティティが指定することができる。たとえば、ベンダーは、顧客の数およびトレーニングに使用される顧客のタイプのプロファイルを指定することができる。この例では、トレーニングブローカーは、特定の顧客を選択することができ、たとえば、どの産業から顧客を選択するかを選択することができる。
【0035】
実施例
いくつかの団体の収集した知識を反映することができる、MLモデルをトレーニングするための以下の例では、各団体が、それ自体のデータベースを有することができ、顧客は、1つまたは複数の団体であることがある。
【0036】
情報サービスモデルの一例では、ベンダーが、機械学習によって、かつ参加する顧客のデータに基づいて強化された情報サービスを提供することを提案してもよい。顧客がサービスを購入する(または利用する)ことを希望する場合、顧客は、ベンダーにデータを提供することに同意することができる。ベンダーは、参加する顧客にサービスを作成し、提供するために、寄与するすべての顧客のデータを使用することができる。情報サービスモデルのいくつかの実装形態では、ベンダーは、ある価格で顧客にサービスを提案することができ、ベンダーは、場合によっては、サービスをサポートするデータを提供する顧客に割引価格を提供することができる。
【0037】
第1の例では、ベンダーが、様々な広告チャンネルに費やされるマーケティング投資に関係する推薦を行うサービスを提案したい場合がある。顧客は、顧客の製品、収益、およびマーケティング活動に関するデータを提供することができる。
【0038】
MLモデルは、製品タイプ(たとえば、ヘッドフォン、テレビジョン、または衣類)、製品の価格、および使用されるマーケティングのタイプ(たとえば、電子メールキャンペーンを含む広告チャネル、オンライン広告、テレビ広告、または新聞広告)など、顧客推論に関係するパラメータを、入力として使用することができる。モデルは、チャンネルの評価値を返すことができる。たとえば、モデルは、テレビ広告を0.3値、電子メール広告を0.1値、オンライン広告を0.8値で格付けし、オンライン広告がマーケティングのために最高値のチャンネルを提供することを顧客に示してもよい。
【0039】
この例では、モデルをトレーニングするのに必要とされる情報は、顧客推論値に加えて、マーケティングコストおよび特定のキャンペーン前後の売上高に関連する情報を含むことができる。パラメータは、会社内部の秘密を公開しないように、正規化され得る。一例として、売上高値が、100万(または別の値)に正規化され得る。このようにして、実際の売上情報は、ベンダーには見えないが、スケーリングされた値への変化(たとえば、100万から120万への変化)が見える。いくつかの実装形態では、製品タイプおよび広告チャンネルを正規化するために、パブリックオントロジー(public ontology)を使用することができる。
【0040】
第2の例では、ベンダーが、求人票の応募者の推薦を行うサービスを提案したい場合がある。サービスを利用する顧客は、応募者の履歴書、職務明細書、および応募者の仕事上の成功など、応募者に関するデータを提供することができる。MLモデルは、たとえば、応募者が応募者の仕事をいかによくこなす可能性があるかという評価または予測を作成するために、履歴書および職務内容からのデータなど、入力されたパラメータを使用することができる。雇用する団体は、したがって、高い格付けの応募者を面接に招くことに集中することができる。
【0041】
モデルは、履歴情報、職務経歴情報、採用/不採用の決定、年次人事評価、および昇進経路を使用して、トレーニングされ得る。学歴、知識、および経験など、履歴書内の職務経歴および情報を正規化するために、パブリックオントロジー(またはベンダーオントロジー)が使用され得る。
【0042】
図5は、本開示の一実装形態による、モデルの機械学習トレーニングのために使用される匿名化されたデータを仲介するためにトレーニングブローカーを使用するためのコンピュータ実装方法500の一例を示すフローチャートである。提示を明快にするために、以下の説明は、一般的に、この説明の他の図の文脈において方法500を説明する。しかしながら、方法500は、たとえば、任意のシステム、環境、ソフトウェア、およびハードウェア、または必要に応じてシステム、環境、ソフトウェア、およびハードウェアの組合せによって行われ得ることは理解されよう。いくつかの実装形態では、方法500の様々なステップは、並行して、組み合わせて、ループで、または任意の順序で実行され得る。
【0043】
502において、機械学習(ML)モデルをトレーニングしてほしいという要求が、トレーニングブローカーにおいて受け取られる。一例として、図3Aを参照すると(ステップ1 302において)、トレーニングブローカー212は、ベンダーデータセンター304から要求を受け取ることができる。関係するデータをキャッシュしてほしいという要求を含む、シナリオXをトレーニングしてほしいという要求が作成されることがある。502から、方法500は、504に進む。
【0044】
504において、モデルをトレーニングするための匿名化されたデータが、複数のデータソースの各個々のデータソースからトレーニングブローカーによって取得される。匿名化されたデータは、各個々のデータソースからのプロダクションデータの機微な情報の匿名化によって提供されているデータサイエンススキーマを介してアクセスされる。たとえば、ステップ2a~2m 324において、トレーニングブローカー212は、参加する顧客308からレコードを読み取ることができる。データを読み取ることは、トレーニングブローカー212によって呼び出される顧客の単一レコードにアクセスすることを含むことができる。データへのアクセスは、たとえば、データサイエンススキーマ110を介して与えられ得る。504から、方法500は、506に進む。
【0045】
506において、匿名化されたデータへのアクセスが、匿名化されたデータを使用してMLモデルをトレーニングするためにデータベンダーに与えられる。一例として、データがトレーニングブローカー212によってアクセスされ、キャッシュされた後、トレーニングのためにキャッシュへのアクセスが与えられるステップ3 326において、モデルトレーニングを行うことができる。トレーニングブローカー212から読み取られたデータ上で実際のトレーニングが行われる時間の間、トレーニングブローカー212は、接続されたすべての顧客からランダムにレコードを配信することができる。506の後、方法500は停止することができる。
【0046】
データからモデルの変形態に基づく実装形態を含む、いくつかの実装形態では、匿名化されたデータを取得することおよびその後のMLモデルのトレーニングは、トレーニングブローカー、個々のデータソース、およびデータベンダーの間で以下の対話を含む。匿名化されたデータの要求が、複数のデータソースの各個々のデータソースに与えられ、匿名化されたデータは、複数のデータソースの各個々のデータソースから受け取られる。匿名化されたデータは、トレーニングブローカーによって保守されるキャッシュに記憶され、匿名化されたデータへのアクセスが、データベンダーに与えられる。たとえば、ステップ2a~2m 324によって、トレーニングブローカー212は、参加している顧客308からレコードを読み取ることができる。トレーニングブローカー212は、データをキャッシュし(306)、ステップ3 326においてトレーニングのためにキャッシュへのアクセスがベンダーデータセンター304に与えられる。
【0047】
モデルからデータの変形態に基づく実施形態を含む、いくつかの実装形態では、匿名化されたデータを取得することおよびその後のMLモデルのトレーニングは、トレーニングブローカー、個々のデータソース、およびデータベンダーの間で以下の対話を含む。モデルは、複数のデータソースの各個々のデータソースに提供される。複数のデータソースの各個々のデータソースから、更新されたモデルが受け取られ、更新されたモデルは、個々のデータソースで実行される機械学習モデルトレーニングを使用して、および個々のデータソースにローカルに利用可能な匿名化されたデータを使用して、個々のデータソースによって作成される。提供することと、受け取ることとは、複数のデータソースの他の個々のデータソースに対して繰り返される。更新されたモデルは、トレーニングブローカーによってデータベンダーに提供される。一例として、図4Aを参照すると、ステップ2a 406において、トレーニングブローカー212は、顧客のデータ上でのさらなるトレーニングのために、ルートモデルを顧客308のパイプラインの第1の顧客に提供することができる。ステップ3a 408において、第1の顧客は、顧客1のデータを使用してモデルを再トレーニングすることができる。ステップ4a 410において、モデルをトレーニングした後、第1の顧客は、再トレーニングされたモデルをトレーニングブローカー212に渡すことができる。ステップ5a 426において、トレーニングブローカー212は、ベンダーデータセンター304にモデルを渡すことができ、更新されたモデルの精度がベンダーによってテストされ得る。
【0048】
いくつかの実装形態では、方法500は、データサイエンススキーマを作成し、使用することをさらに含むことができる。たとえば、データサイエンススキーマ110は、プロダクションデータのプロダクションデータスキーマ108に基づいて作成することができる。データサイエンススキーマは、プロダクションデータへの読取り専用アクセスを与え、アクセスはプロダクションデータ中の非個人化データに限定される。データサイエンススキーマ110を使用することによって、非個人化データの複製が必要とされない。データサイエンススキーマは、プロダクションデータへのアクセスを与えるために使用される。
【0049】
いくつかの実施形態では、方法500は、各個々のデータソースでのユーザによる評価のためにデータサイエンススキーマへのアクセスを与えるステップをさらに含むことができる。たとえば、公開されるデータが容認可能であることを顧客308が確認できるように、データを公開するために使用されるAPIを顧客に提供することができる。
【0050】
いくつかの実装形態では、方法500は、個々のデータソースに帰することができる数値を取り除くために、匿名化されたデータ中の数値をスケーリングすることをさらに含むことができる。たとえば、数値は、任意の数でスケーリングすることができる。このようにして、数値データの幅(および数値データ内の相対関係)が、実際の値を公開することなく、比較され得る。
【0051】
いくつかの実装形態では、方法500は、個々のデータソースに帰することができる値を取り除くために、プロダクションデータにおけるフィールドをGUIDにマップすることをさらに含むことができる。GUIDは、たとえば、匿名化されたデータとともに記憶することができる。
【0052】
いくつかの実装形態では、方法500は、パイプラインの使用をさらに含むことができる。プロダクションデータのサブセットを(たとえば、テーブル112から)受け取るために、パイプライン(たとえば、パイプライン120)が作成される。プロダクションデータは、MLモデルをトレーニングするのに必要とされるトレーニングデータを与えるために読み取られる。トレーニングデータは、たとえば、パイプライン120にアクセス可能なデータベーステーブル116に記憶される。データベーステーブルへのアクセスは、たとえば、データサイエンススキーマ110を使用して行われ得る。
【0053】
図6は、本開示の一実装形態による、説明するアルゴリズム、方法、機能、プロセス、フロー、および手順に関連する計算機能を提供するために使用されるコンピュータ実装システム600の一例を示すブロック図である。図示した実装形態では、システム600は、コンピュータ602と、ネットワーク630とを含む。
【0054】
図示したコンピュータ602は、サーバ、デスクトップコンピュータ、ラップトップ/ノートブックコンピュータ、ワイヤレスデータポート、スマートフォン、携帯情報端末(PDA)、タブレットコンピュータ、これらのデバイス内の1つもしくは複数のプロセッサなどの任意のコンピューティングデバイス、またはコンピューティングデバイスの物理インスタンスもしくは仮想インスタンスを含むコンピューティングデバイスの組合せ、またはコンピューティングデバイスの物理インスタンスもしくは仮想インスタンスの組合せを含むよう意図されている。さらに、コンピュータ602は、キーパッド、キーボード、もしくはタッチスクリーン、またはユーザ情報を受け付けることができる入力デバイスの組合せなどの入力デバイスと、デジタルデータ、視覚情報、オーディオ情報、別のタイプの情報、または情報のタイプの組合せを含む、コンピュータ602の動作に関連する情報を、グラフィカルタイプユーザインターフェース(UI)(もしくはGUI)または他のUI上で伝える出力デバイスとを含むことができる。
【0055】
コンピュータ602は、たとえば、クライアント、ネットワーク構成要素、サーバ、またはデータベースもしくは別の永続性(persistency)としての、分散コンピューティングシステムにおける役割、または本開示で説明する主題を行うための役割の組合せにおいて、機能することができる。図示したコンピュータ602は、ネットワーク630と通信可能に結合される。いくつかの実装形態では、コンピュータ602の1つまたは複数の構成要素は、クラウドコンピューティング、ローカル、またはグローバルを含む環境または環境の組合せの中で動作するように構成することができる。
【0056】
ハイレベルでは、コンピュータ602は、説明する主題に関連するデータおよび情報を受け取る、送る、処理する、記憶する、または管理するように動作可能な電子計算機である。いくつかの実装形態によれば、コンピュータ602は、アプリケーションサーバ、電子メールサーバ、ウェブサーバ、キャッシングサーバ、ストリーミングデータサーバ、またはサーバの任意の組合せなどのサーバを含む、またはサーバと通信可能に結合されることもある。
【0057】
コンピュータ602は、ネットワーク630を介して(たとえば、別のコンピュータ602上で実行しているクライアントソフトウェアアプリケーションから)要求を受け取り、ソフトウェアアプリケーションまたはソフトウェアアプリケーションの組合せを使用して受け取った要求を処理することによって受け取った要求に応答することができる。加えて、要求は、内部ユーザ(たとえば、コマンドコンソールからまたは別の内部アクセス方法によって)、外部もしくは第3者、または他のエンティティ、個人、システム、もしくはコンピュータから、コンピュータ602に送られることもある。
【0058】
コンピュータ602の構成要素の各々は、システムバス603を使用して通信することができる。いくつかの実装形態では、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せを含む、コンピュータ602の構成要素のいずれかまたは全部が、アプリケーションプログラミングインターフェース(API)612、サービスレイヤ613、またはAPI 612とサービスレイヤ613の組合せを使用して、システムバス603を介してインターフェースすることができる。API 612は、ルーチン、データ構造、およびオブジェクトクラスの仕様を含むことができる。API 612は、コンピュータ言語に依存しない、または依存することがあり、完全なインターフェース、単一機能、またはAPIのセットを指す。サービスレイヤ613は、コンピュータ602またはコンピュータ602に通信可能に結合された他の構成要素(図示の有無にかかわらず)に、ソフトウェアサービスを提供する。コンピュータ602の機能は、サービスレイヤ613を使用するすべてのサービスの消費者にアクセス可能とすることができる。サービスレイヤ613によって提供されるソフトウェアサービスなどのソフトウェアサービスは、再利用可能な、規定されたインターフェースを介して規定された機能を提供する。たとえば、インターフェースは、コンピューティング言語(たとえば、JAVA(登録商標)もしくはC++)、またはコンピューティング言語の組合せで書かれて、特定のフォーマット(たとえば、拡張可能マークアップ言語(XML))またはフォーマットの組合せでデータを提供するソフトウェアとすることができる。コンピュータ602の一体型構成要素として図示しているが、代替実装形態は、API 612またはサービスレイヤ613を、コンピュータ602の他の構成要素またはコンピュータ602に通信可能に結合された他の構成要素(図示の有無にかかわらず)に対して独立した構成要素として示すことができる。さらに、API 612またはサービスレイヤ613のいずれかまたはすべての部分が、本開示の範囲から逸脱することなく、別のソフトウェアモジュール、企業アプリケーション、またはハードウェアモジュールの子またはサブモジュールとして実装され得る。
【0059】
コンピュータ602は、インターフェース604を含む。単一のインターフェース604として図示しているが、特定の必要、要望、またはコンピュータ602の特定の実装形態に従って、2つ以上のインターフェース604が使用され得る。インターフェース604は、分散環境においてネットワーク630に通信可能につながる別のコンピューティングシステム(図示の有無にかかわらず)と通信するためにコンピュータ602によって使用される。一般的に、インターフェース604は、ネットワーク630と通信するように動作可能であり、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアの組合せに符号化された論理を含む。より具体的には、インターフェース604は、ネットワーク630またはインターフェース604のハードウェアが図示したコンピュータ602の内部または外部の物理的信号を通信するよう動作可能であるように、通信と関連する1つまたは複数の通信プロトコルをサポートするソフトウェアを含むことができる。
【0060】
コンピュータ602は、プロセッサ605を含む。単一のプロセッサ605として図示しているが、特定の必要、要望、またはコンピュータ602の特定の実装形態に従って、2つ以上のプロセッサ605が使用され得る。一般的に、プロセッサ605は、本開示で説明するように、コンピュータ602の動作、ならびに任意のアルゴリズム、方法、機能、プロセス、フロー、および手順を行うために、命令を実行し、データを操作する。
【0061】
コンピュータ602はまた、コンピュータ602、ネットワーク630に通信可能につながる別の構成要素(図示の有無にかかわらず)、またはコンピュータ602と別の構成要素の組合せのために、データを保持することができるデータベース606を含む。たとえば、データベース606は、本開示と一致するデータを記憶するインメモリまたは従来のデータベースとすることができる。いくつかの実装形態では、データベース606は、特定の必要、要望、またはコンピュータ602の特定の実装形態、および記載した機能に従って、2つ以上の異なるデータベースタイプの組合せ(たとえば、ハイブリッドインメモリおよび従来のデータベース)とすることができる。単一のデータベース606として図示しているが、特定の必要、要望、またはコンピュータ602の特定の実装形態、および記載した機能に従って、同様のまたは異なるタイプの2つ以上のデータベースが使用され得る。データベース606をコンピュータ602の一体型構成要素として示しているが、代替実装形態では、データベース606は、コンピュータ602の外部にあることがある。
【0062】
コンピュータ602はまた、コンピュータ602、ネットワーク630に通信可能につながる1つもしくは複数の別の構成要素(図示の有無にかかわらず)、またはコンピュータ602と別の構成要素の組合せのために、データを保持することができるメモリ607を含む。メモリ607は、本開示と一致する任意のデータを記憶することができる。いくつかの実装形態では、メモリ607は、特定の必要、要望、またはコンピュータ602の特定の実装形態、および記載した機能に従って、2つ以上の異なるタイプのメモリの組合せ(たとえば、半導体と磁気ストレージの組合せ)とすることができる。単一のメモリ607として図示しているが、特定の必要、要望、またはコンピュータ602の特定の実装形態、および記載した機能に従って、同様のまたは異なるタイプの2つ以上のメモリ607が使用され得る。メモリ607をコンピュータ602の一体型構成要素として示しているが、代替実装形態では、メモリ607は、コンピュータ602の外部にあることがある。
【0063】
アプリケーション608は、特に本開示で説明する機能に関して、特定の必要、要望、またはコンピュータ602の特定の実装形態に従った機能を提供するアルゴリズムソフトウェアエンジンである。たとえば、アプリケーション608は、1つまたは複数の構成要素、モジュール、またはアプリケーションとして働く。さらに、単一のアプリケーション608として図示しているが、アプリケーション608は、コンピュータ602上に複数のアプリケーション608として実装され得る。加えて、コンピュータ602と一体として示しているが、代替実装形態では、アプリケーション608は、コンピュータ602の外部にあることがある。
【0064】
コンピュータ602はまた、電力供給614を含むことができる。電力供給614は、ユーザが交換可能であるか、またはユーザが交換可能ではないように構成され得る、再充電可能なまたは使い捨てのバッテリーを含むことができる。いくつかの実装形態では、電力供給614は、電力変換または管理回路(再充電、スタンバイ、または別の電力管理機能を含む)を含むことができる。いくつかの実装形態では、電力供給614は、たとえば、コンピュータ602に電力を供給する、または充電式バッテリーを充電するために、コンピュータ602が壁コンセントまたは別の電源に差し込まれることを可能にする電源プラグを含むことができる。
【0065】
コンピュータ602を含むコンピュータシステムと関連する、またはこれの外部の任意の数のコンピュータ602があることがあり、各コンピュータ602がネットワーク630を介して通信する。さらに、「クライアント」、「ユーザ」という用語、または他の適切な用語は、本開示の範囲から逸脱することなく、適宜に互いに区別なく使用されることがある。さらに、本開示は、多くのユーザが1つのコンピュータ602を使用できること、または1人のユーザが複数のコンピュータ602を使用できることを考える。
【0066】
主題の説明する実装形態は、1つまたは複数の特徴を、単独でまたは組み合わせて含むことができる。
【0067】
たとえば、第1の実装形態では、コンピュータ実装方法が、トレーニングブローカーにおいて、機械学習(ML)モデルをトレーニングしてほしいという要求を受け取るステップと、トレーニングブローカーによって複数のデータソースの各個々のデータソースから、モデルをトレーニングするための匿名化されたデータを取得するステップであって、匿名化されたデータが、各個々のデータソースからのプロダクションデータの機微な情報の匿名化によって提供されているデータサイエンススキーマを介してアクセスされる、取得するステップと、データベンダーに、匿名化されたデータを使用してMLモデルをトレーニングするために匿名化されたデータへのアクセスを与えるステップとを含む。
【0068】
上記および他の説明した実装形態は各々、場合によっては、以下の特徴のうち1つまたは複数を含むことがある。
【0069】
第1の特徴であって、以下の特徴のいずれかと組み合わせることができ、匿名化されたデータを取得することが、複数のデータソースの各個々のデータソースに、匿名化されたデータの要求を与えることと、複数のデータソースの各個々のデータソースから、匿名化されたデータを受け取ることと、匿名化されたデータをトレーニングブローカーによって保守されるキャッシュに記憶することとを含み、データベンダーに、匿名化されたデータへのアクセスを与えることが、キャッシュへのアクセスを与えることを含む、第1の特徴。
【0070】
第2の特徴であって、前または以下の特徴のいずれかと組み合わせることができ、匿名化されたデータを取得することが、複数のデータソースの各個々のデータソースにモデルを与えることと、複数のデータソースの各個々のデータソースから、更新されたモデルを受け取ることであって、更新されたモデルが、個々のデータソースで実行される機械学習モデルトレーニングを使用して、および個々のデータソースにローカルに利用可能な匿名化されたデータを使用して、個々のデータソースによって作成される、受け取ることと、複数のデータソースの他の個々のデータソースに対して与えることおよび受け取ることを繰り返すことと、トレーニングブローカーによってデータベンダーに更新されたモデルを与えることとを含む、第2の特徴。
【0071】
第3の特徴であって、前または以下の特徴のいずれかと組み合わせることができ、プロダクションデータのプロダクションデータスキーマに基づいてデータサイエンススキーマを作成することであって、データサイエンススキーマがプロダクションデータへの読取り専用アクセスを与え、データサイエンススキーマが、非個人化データを複製せずにプロダクションデータ中の非個人化データに限定されるアクセスを与える、作成することと、プロダクションデータへのアクセスを与えるためにデータサイエンススキーマを使用することとをさらに含む、第3の特徴。
【0072】
第4の特徴であって、前または以下の特徴のいずれかと組み合わせることができ、各個々のデータソースでユーザに、評価のためにデータサイエンススキーマへのアクセスを与えることをさらに含む、第4の特徴。
【0073】
第5の特徴であって、前または以下の特徴のいずれかと組み合わせることができ、個々のデータソースに帰することができる数値を取り除くために、匿名化されたデータ中の数値をスケーリングすることをさらに含む、第5の特徴。
【0074】
第6の特徴であって、前または以下の特徴のいずれかと組み合わせることができ、個々のデータソースに帰することができる値を取り除くために、プロダクションデータ中のフィールドをグローバル一意識別子(GUID)にマップすることと、匿名化データとともにGUIDを記憶することをさらに含む、第6の特徴。
【0075】
第7の特徴であって、前または以下の特徴のいずれかと組み合わせることができ、プロダクションデータのサブセットを受け取るためのパイプラインを作成することと、MLモデルをトレーニングするのに必要とされるトレーニングデータのためにプロダクションデータを読み取ることと、パイプラインにアクセス可能なデータベーステーブルにトレーニングデータを記憶することと、データサイエンススキーマを使用してデータベーステーブルへのアクセスを与えることとをさらに含む、第7の特徴。
【0076】
第2の実装形態では、コンピュータ可読媒体が、動作を行うためにコンピュータシステムによって実行可能な1つまたは複数の命令を記憶し、動作が、複数のデータソースの各個々のデータソースに、匿名化されたデータの要求を与えることと、複数のデータソースの各個々のデータソースから、匿名化されたデータを受け取ることと、匿名化されたデータをトレーニングブローカーによって保守されるキャッシュに記憶することとを含み、データベンダーに、匿名化されたデータへのアクセスを与えることが、キャッシュへのアクセスを与えることを含む。
【0077】
上記および他の説明した実装形態は各々、場合によっては、以下の特徴のうち1つまたは複数を含むことがある。
【0078】
第1の特徴であって、以下の特徴のいずれかと組み合わせることができ、匿名化されたデータを取得することが、複数のデータソースの各個々のデータソースに、匿名化されたデータの要求を与えることと、複数のデータソースの各個々のデータソースから、匿名化されたデータを受け取ることと、匿名化されたデータをトレーニングブローカーによって保守されるキャッシュに記憶することとを含み、データベンダーに、匿名化されたデータへのアクセスを与えることが、キャッシュへのアクセスを与えることを含む、第1の特徴。
【0079】
第2の特徴であって、前または以下の特徴のいずれかと組み合わせることができ、匿名化されたデータを取得することが、複数のデータソースの各個々のデータソースにモデルを与えることと、複数のデータソースの各個々のデータソースから、更新されたモデルを受け取ることであって、更新されたモデルが、個々のデータソースで実行される機械学習モデルトレーニングを使用して、および個々のデータソースにローカルに利用可能な匿名化されたデータを使用して、個々のデータソースによって作成される、受け取ることと、複数のデータソースの他の個々のデータソースに対して与えることおよび受け取ることを繰り返すことと、トレーニングブローカーによってデータベンダーに更新されたモデルを与えることとを含む、第2の特徴。
【0080】
第3の特徴であって、前または以下の特徴のいずれかと組み合わせることができ、動作は、プロダクションデータのプロダクションデータスキーマに基づいてデータサイエンススキーマを作成することであって、データサイエンススキーマがプロダクションデータへの読取り専用アクセスを与え、データサイエンススキーマが、非個人化データを複製せずにプロダクションデータ中の非個人化データに限定されるアクセスを与える、作成することと、プロダクションデータへのアクセスを与えるためにデータサイエンススキーマを使用することとをさらに含む、第3の特徴。
【0081】
第4の特徴であって、前または以下の特徴のいずれかと組み合わせることができ、動作は、各個々のデータソースでユーザに、評価のためにデータサイエンススキーマへのアクセスを与えることをさらに含む、第4の特徴。
【0082】
第5の特徴であって、前または以下の特徴のいずれかと組み合わせることができ、動作は、個々のデータソースに帰することができる数値を取り除くために、匿名化されたデータ中の数値をスケーリングすることをさらに含む、第5の特徴。
【0083】
第6の特徴であって、前または以下の特徴のいずれかと組み合わせることができ、動作は、個々のデータソースに帰することができる値を取り除くために、プロダクションデータ中のフィールドをグローバル一意識別子(GUID)にマップすることと、匿名化データとともにGUIDを記憶することとをさらに含む、第6の特徴。
【0084】
第7の特徴であって、前または以下の特徴のいずれかと組み合わせることができ、動作は、プロダクションデータのサブセットを受け取るためのパイプラインを作成することと、MLモデルをトレーニングするのに必要とされるトレーニングデータのためにプロダクションデータを読み取ることと、パイプラインにアクセス可能なデータベースにトレーニングデータを記憶することと、データサイエンススキーマを使用してデータベーステーブルへのアクセスを与えることとをさらに含む、第7の特徴。
【0085】
第3の実装形態では、コンピュータ実装システムが、1つまたは複数のコンピュータと、1つまたは複数のコンピュータと相互動作可能に結合され、1つまたは複数の命令を記憶する有形の非一時的機械可読媒体を有する1つまたは複数のコンピュータメモリデバイスとを含み、1つまたは複数の命令は、1つまたは複数のコンピュータによって実行されると、複数のデータソースの各個々のデータソースに、匿名化されたデータの要求を与えることと、複数のデータソースの各個々のデータソースから、匿名化されたデータを受け取ることと、匿名化されたデータをトレーニングブローカーによって保守されるキャッシュに記憶することとを含む1つまたは複数の動作を行い、データベンダーに、匿名化されたデータへのアクセスを与えることが、キャッシュへのアクセスを与えることを含む。
【0086】
上記および他の説明した実装形態は各々、場合によっては、以下の特徴のうち1つまたは複数を含むことがある。
【0087】
第1の特徴であって、以下の特徴のいずれかと組み合わせることができ、匿名化されたデータを取得することが、複数のデータソースの各個々のデータソースに、匿名化されたデータの要求を与えることと、複数のデータソースの各個々のデータソースから、匿名化されたデータを受け取ることと、匿名化されたデータをトレーニングブローカーによって保守されるキャッシュに記憶することとを含み、データベンダーに、匿名化されたデータへのアクセスを与えることが、キャッシュへのアクセスを与えることを含む、第1の特徴。
【0088】
第2の特徴であって、前または以下の特徴のいずれかと組み合わせることができ、匿名化されたデータを取得することが、複数のデータソースの各個々のデータソースにモデルを与えることと、複数のデータソースの各個々のデータソースから、更新されたモデルを受け取ることであって、更新されたモデルが、個々のデータソースで実行される機械学習モデルトレーニングを使用して、および個々のデータソースにローカルに利用可能な匿名化されたデータを使用して、個々のデータソースによって作成される、受け取ることと、複数のデータソースの他の個々のデータソースに対して与えることおよび受け取ることを繰り返すことと、トレーニングブローカーによってデータベンダーに更新されたモデルを与えることとを含む、第2の特徴。
【0089】
第3の特徴であって、前または以下の特徴のいずれかと組み合わせることができ、動作は、プロダクションデータのプロダクションデータスキーマに基づいてデータサイエンススキーマを作成することであって、データサイエンススキーマがプロダクションデータへの読取り専用アクセスを与え、データサイエンススキーマが、非個人化データを複製せずにプロダクションデータ中の非個人化データに限定されるアクセスを与える、作成することと、プロダクションデータへのアクセスを与えるためにデータサイエンススキーマを使用することとをさらに含む、第3の特徴。
【0090】
本明細書で説明する主題および機能的動作の実装形態は、デジタル電子回路において、有形に具現化されたコンピュータソフトウェアもしくはファームウェアにおいて、本明細書で開示する構造およびそれらの構造的に同等のものを含む、コンピュータハードウェアにおいて、またはそれらの任意の組合せにおいて、実装されることがある。説明する主題のソフトウェア実装形態は、1つまたは複数のコンピュータプログラムとして、すなわち、コンピュータまたはコンピュータ実装システムによる実行のために、またはこれらの動作を制御するために、有形の非一時的コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして、実装されることがある。代替または追加として、プログラム命令は、人工的に生成される伝搬信号、たとえば、コンピュータまたはコンピュータ実装システムによる実行のために受信機装置に送信するための情報を符号化するために生成される機械生成の電気、光、または電磁信号の中/上に符号化されることがある。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはコンピュータ記憶媒体の組合せであることがある。1つまたは複数のコンピュータを構成するとは、ソフトウェアが1つまたは複数のコンピュータによって実行されると、特定のコンピューティング動作が行われるように、1つまたは複数のコンピュータが、ハードウェア、ファームウェア、またはソフトウェア(またはハードウェア、ファームウェア、およびソフトウェアの組合せ)をインストールしていることを意味する。
【0091】
「リアルタイム(real-time)」、「リアルタイム(real time)」、「リアルタイム(realtime)」、「リアル(高速)タイム(RFT)」、「ほぼリアルタイム(NRT)」、「準リアルタイム」という用語、または(当業者に理解される)同様の用語は、アクションおよび応答が時間的に近接して、アクションおよび応答が実質的に同時に発生すると個人が知覚することを意味する。たとえば、データにアクセスするための個人のアクションに続くデータの表示への応答の(または表示の開始の)時間差は、1ミリ秒(ms)未満、1秒(s)未満、または5s未満であることがある。要求されたデータは、瞬時に表示される(または表示するために起動される)必要はないが、説明するコンピューティングシステムの処理限界、およびたとえば、データを収集する、正確に測定する、分析する、処理する、記憶する、または送信するのに必要とされる時間を考慮に入れながら、意図的な遅延無しで表示(または表示するために起動)される。
【0092】
「データ処理装置」、「コンピュータ」、または「電子コンピュータデバイス」という用語(または、当業者に理解される同義語)は、データ処理ハードウェアを指し、例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。コンピュータはまた、専用論理回路、たとえば、中央処理ユニット(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)とすること、またはこれらをさらに含むことができる。いくつかの実装形態では、コンピュータまたはコンピュータ実装システムまたは専用論理回路(またはコンピュータもしくはコンピュータ実装システムおよび専用論理回路の組合せ)は、ハードウェアベースまたはソフトウェアベース(またはハードウェアベースとソフトウェアベースの両方の組合せ)とすることができる。コンピュータは、場合によって、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェアを構成するコード、プロトコルスタック、データベース管理システム、オペレーティングシステム、または実行環境の組合せを含むことができる。本開示は、オペレーティングシステム、たとえばLINUX、UNIX(登録商標)、WINDOWS(登録商標)、MAC OS、ANDROID(登録商標)、もしくはIOS、またはオペレーティングシステムの組合せを備えるコンピュータまたはコンピュータ実装システムの使用を考える。
【0093】
プログラム、ソフトウェア、ソフトウェアアプリケーション、ユニット、モジュール、ソフトウェアモジュール、スクリプト、コード、または他の構成要素と呼ばれる、または説明されることもある、コンピュータプログラムは、コンパイラ型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、プログラミング言語の任意の形態で書くことができ、またコンピュータプログラムは、たとえば、スタンドアロンプログラム、モジュール、コンポーネント、またはサブルーチンとして含み、コンピューティング環境で使用するために、任意の形態で展開されることがある。コンピュータプログラムは、ファイルシステムのファイルに対応することがあるが、対応する必要はない。プログラムは、他のプログラムまたはデータ、たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプトを入れたファイルの一部分に、当該プログラムに専用の単一ファイルに、または複数の協調ファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに、記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するもしくは複数のサイトにわたって分散し、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配置することができる。
【0094】
様々な図に示したプログラムの部分は、説明する特徴または機能を様々な目的、方法、または他のプロセスを使用して実装するユニットまたはモジュールなどの個々の構成要素として示され得るが、プログラムは、代わりにいくつかのサブユニット、サブモジュール、第三者サービス、構成要素、ライブラリ、および他の構成要素を適宜に含むことができる。逆に、様々な構成要素の特徴および機能は、適宜に、単一構成要素に結合することができる。計算による決定を行うために使用されるしきい値は、静的に、動的に、または静的と動的の両方において決定することができる。
【0095】
説明する方法、プロセス、または論理フローは、本開示と一致する機能の1つまたは複数の例を表し、説明または図示した実装形態に本開示を限定することを意図せず、説明する原理および特徴と一致する最も広い範囲を与えられることを意図している。説明する方法、プロセス、または論理フローは、1つまたは複数のプログラマブルコンピュータが、入力データで動作し、出力データを生成することによって機能を行うために1つまたは複数のコンピュータプログラムを実行することによって行われ得る。方法、プロセス、または論理フローは、専用論理回路、たとえばCPU、FPGA、またはASICによって行われることもあり、コンピュータがこれらとして実装されることもある。
【0096】
コンピュータプログラムを実行するためのコンピュータは、汎用または専用マイクロプロセッサ、または両方、または別のタイプのCPUをベースとすることができる。一般的にCPUが、メモリから命令およびデータを受け取り、メモリに書き込む。コンピュータの必須要素は、命令を行うまたは実行するためのCPU、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般的にコンピュータはまた、データを記憶するための1つもしくは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含み、またはこれらからデータを受け取る、もしくはこれらにデータを転送する、もしくはその両方を行うために動作可能に結合される。しかしながら、コンピュータがそのようなデバイスを有する必要はない。さらに、コンピュータが別のデバイス、たとえば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブルメモリストレージデバイスに、埋め込まれることがある。
【0097】
コンピュータプログラム命令およびデータを記憶するための非一時的コンピュータ可読媒体は、あらゆる形態の永久/非永久または揮発性/不揮発性メモリ、媒体、およびメモリデバイスを含むことができ、例として、半導体メモリデバイス、たとえばランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、およびフラッシュメモリデバイス、磁気デバイス、たとえばテープ、カートリッジ、カセット、内蔵/リムーバブルディスク、光磁気ディスク、ならびに光メモリデバイス、たとえばデジタル多用途/ビデオディスク(DVD)、コンパクトディスク(CD)-ROM、DVD+/-R、DVD-RAM、DVD-ROM、高精細/密度(HD)-DVD、およびBLU-RAY/BLURAY DISC (BD)、および他の光メモリ技術を含む。メモリは、動的情報、または任意のパラメータ、変数、アルゴリズム、命令、ルール、制約、もしくは参照を含む他の適切な情報を記憶する、キャッシュ、クラス、フレームワーク、アプリケーション、モジュール、バックアップデータ、ジョブ、ウェブページ、ウェブページテンプレート、データ構造、データベーステーブル、リポジトリを含む、様々なオブジェクトまたはデータを記憶することができる。さらに、メモリは、ログ、ポリシー、セキュリティもしくはアクセスデータ、または報告ファイルなどの、他の適切なデータを含むことができる。プロセッサおよびメモリは、専用論理回路によって補われる、または専用論理回路に組み込まれることがある。
【0098】
ユーザとの対話を可能にするために、本明細書で説明する主題の実装形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)、またはプラズマモニタと、ユーザがそれによってコンピュータに入力を行うことができるキーボードおよびポインティングデバイス、たとえばマウス、トラックボール、またはトラックパッドとを有するコンピュータ上に実装することができる。また、感圧性をもつタブレットコンピュータ表面などのタッチスクリーン、または容量もしくは電気センシングを使用するマルチタッチスクリーンを使用して、コンピュータに入力を行うこともできる。ユーザと対話するために、他のタイプのデバイスを使用することができる。たとえば、ユーザに与えるフィードバックは、任意の形態の感覚フィードバック(視覚的、聴覚的、触覚的、または組合せのフィードバックタイプなど)とすることができる。ユーザからの入力は、音、発話、または触覚入力を含む、任意の形態で受け取ることができる。加えて、コンピュータが、ユーザによって使用されるクライアントコンピューティングデバイスに文書を送り、それから文書を受け取ることによって(たとえば、ウェブブラウザから受け取られる要求に応じてユーザのモバイルコンピューティングデバイス上のウェブブラウザにウェブページを送ることによって)ユーザと対話することができる。
【0099】
「グラフィカルユーザインターフェース」または「GUI」という用語は、1つまたは複数のグラフィカルユーザインターフェースおよび特定のグラフィカルユーザインターフェースの表示の各々を描写するために、単数形または複数形で使用することができる。したがって、GUIは、限定はしないが、ウェブブラウザ、タッチスクリーン、またはコマンドラインインターフェース(CLI)を含む、情報を処理し、情報結果をユーザに効率的に提示する任意のグラフィカルユーザインターフェースを表すことができる。一般に、GUIは、インタラクティブフィールド、プルダウンリスト、およびボタンなど、一部または全部がウェブブラウザと関連する、いくつかのユーザインターフェース(UI)要素を含むことができる。これらおよび他のUI要素は、ウェブブラウザの機能に関連する、またはこれを表すことがある。
【0100】
本明細書で説明する主題の実装形態は、たとえばデータサーバとして、バックエンド構成要素を含むコンピューティングシステム、またはミドルウェア構成要素、たとえばアプリケーションサーバを含むコンピューティングシステム、またはフロントエンド構成要素、たとえば、それによりユーザが本明細書で説明する主題の実装形態と対話することができるグラフィカルユーザインターフェース、もしくはインターネットブラウザを有するクライアントコンピュータを含む、コンピューティングシステム、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装可能である。システムの構成要素は、ワイヤラインまたはワイヤレスデジタルデータ通信の任意の形態または媒体(またはデータ通信の組合せ)、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、マイクロ波アクセス世界規模相互運用(WIMAX)、たとえば802.11 a/b/g/nまたは802.20(または802.11xと802.20の組合せまたは本開示と一致する他のプロトコル)、インターネットの全部もしくは一部、別の通信ネットワーク、または通信ネットワークの組合せを使用するワイヤレスローカルエリアネットワーク(WLAN)を含む。通信ネットワークは、ネットワークノード間で、たとえば、インターネットプロトコル(IP)パケット、フレームリレーフレーム、非同期転送モード(ATM)セル、音声、ビデオ、データ、または他の情報を用いて通信することができる。
【0101】
コンピューティングシステムは、クライアントと、サーバとを含むことができる。クライアントおよびサーバは、一般的に互いから遠くにあり、典型的には通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータで実行している、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【0102】
本明細書は、多くの特定の実装形態の詳細を含むが、これらはいかなる発明の概念の範囲への、または特許請求され得るものの範囲への制限として解釈されるべきではなく、むしろ特定の発明の概念の特定の実装形態に固有であり得る特徴の説明として解釈されるべきである。本明細書において別個の実装形態の文脈で説明されるいくつかの特徴は、単一の実装形態において組み合わせて実装されることもある。逆に、単一の実装形態の文脈で説明される様々な特徴は、複数の実装形態において別々に、または任意の部分組合せで実装されることもある。さらに、前に説明した特徴は、いくつかの組合せで機能するものとして説明され、初めにそのように請求されることさえあるが、請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除されることがあり、請求される組合せは、部分組合せ、または部分組合せの変形を対象とし得る。
【0103】
主題の特定の実装形態について説明した。当業者には明らかであるように、他の実装形態、変更形態、および説明する実装形態の置換形態は、以下の特許請求の範囲内に入る。動作は、特定の順序で図面または特許請求の範囲に示されるが、これは、望ましい結果を達成するために、このような動作が図示された特定の順序でもしくは順次に行われること、または例示したすべての動作が行われる(いくつかの動作はオプションと見なされ得る)ことを必要とするものと理解されるべきではない。いくつかの状況では、マルチタスキングまたは並列処理(またはマルチタスキングと並列処理の組合せ)が有利であり、適切と考えられるように行われ得る。
【0104】
さらに、前に説明した実装形態における様々なシステムモジュールおよび構成要素の分離または統合は、すべての実装形態においてそのような分離または統合を必要とすると理解されるべきではなく、説明するプログラム構成要素およびシステムは、一般的に単一のソフトウェア製品に統合される、または複数のソフトウェア製品にパッケージ化されることがあると理解されるべきである。
【0105】
したがって、前に説明した例示的な実装形態は、本開示を定義または制約しない。他の変形形態、代用形態、および変更形態もまた、本開示の趣旨および範囲から逸脱することなく考えられる。
【0106】
さらに、請求されるいずれの実装形態も、少なくともコンピュータ実装方法と、コンピュータ実装方法を行うためのコンピュータ可読命令を記憶する非一時的コンピュータ可読媒体と、コンピュータ実装方法または非一時的コンピュータ可読媒体に記憶された命令を行うように構成されたハードウェアプロセッサと相互動作可能に結合されたコンピュータメモリを含むコンピュータシステムとに、適用可能であると見なされる。
【符号の説明】
【0107】
100 前処理システム
102 データベース
104 アプリケーション
106 データエクスポーザコントロール
108 顧客プロダクションデータスキーマ
110 データサイエンススキーマ
112 データベーステーブル
114 ビュー
116 データベーステーブル
118 ビュー
120 パイプライン
200 モデルトレーニングシステム
202 機械学習(ML)モデルトレーニング
204 MLモデルトレーニング
206 モデル
208 メモリ
210 データサイエンススキーマ
212 トレーニングブローカー
600 コンピュータ実装システム
602 コンピュータ
603 システムバス
604 インターフェース
605 プロセッサ
606 データベース
607 メモリ
608 アプリケーション
612 アプリケーションプログラミングインターフェース(API)
613 サービスレイヤ
614 電力供給
630 ネットワーク
図1
図2
図3A
図3B
図4A
図4B
図5
図6