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

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

▶ グーグル インコーポレイテッドの特許一覧

特許7241862機械学習モデルを使用した、偏りのあるデータの拒否
<>
  • 特許-機械学習モデルを使用した、偏りのあるデータの拒否 図1
  • 特許-機械学習モデルを使用した、偏りのあるデータの拒否 図2A
  • 特許-機械学習モデルを使用した、偏りのあるデータの拒否 図2B
  • 特許-機械学習モデルを使用した、偏りのあるデータの拒否 図2C
  • 特許-機械学習モデルを使用した、偏りのあるデータの拒否 図2D
  • 特許-機械学習モデルを使用した、偏りのあるデータの拒否 図2E
  • 特許-機械学習モデルを使用した、偏りのあるデータの拒否 図3
  • 特許-機械学習モデルを使用した、偏りのあるデータの拒否 図4
  • 特許-機械学習モデルを使用した、偏りのあるデータの拒否 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-09
(45)【発行日】2023-03-17
(54)【発明の名称】機械学習モデルを使用した、偏りのあるデータの拒否
(51)【国際特許分類】
   G06F 16/9035 20190101AFI20230310BHJP
   G06F 16/906 20190101ALI20230310BHJP
   G06N 20/00 20190101ALI20230310BHJP
【FI】
G06F16/9035
G06F16/906
G06N20/00
【請求項の数】 11
(21)【出願番号】P 2021513216
(86)(22)【出願日】2019-08-26
(65)【公表番号】
(43)【公表日】2022-01-04
(86)【国際出願番号】 US2019048113
(87)【国際公開番号】W WO2020055580
(87)【国際公開日】2020-03-19
【審査請求日】2021-05-21
(31)【優先権主張番号】16/126,742
(32)【優先日】2018-09-10
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ファーラー,クリストファー
(72)【発明者】
【氏名】ロス,スティーブン
【審査官】松尾 真人
(56)【参考文献】
【文献】特開2010-204966(JP,A)
【文献】特開2007-080263(JP,A)
【文献】特開2010-044674(JP,A)
【文献】国際公開第2009/135076(WO,A1)
【文献】鎌田 隆信,ウェブ上のテキストの書き手の属性推定のための領域適応,言語処理学会第22回年次大会 発表論文集 [online] ,言語処理学会,2016年02月29日,pp.1157~1160,Internet<URL:http://www.anlp.jp/proceedings/annual_meeting/2016/pdf_dir/B7-5.pdf>
【文献】鈴木 祐太,未知ドメイン対応型判別分析のための個人差適応型分布パラメータ推定,第74回(平成24年)全国大会講演論文集(1) アーキテクチャ ソフトウェア科学・工学 データベースとメディア, 一般社団法人 情報処理学会,2012年03月06日,pp.1-315~1-316,6K-6
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
方法であって、
データ処理ハードウェアで、偏り訓練データセットを受信するステップを含み、前記偏り訓練データセットは目標母集団の偏りに敏感な変数の確率分布に基づいており、前記方法はさらに、
前記データ処理ハードウェアが、前記目標母集団の少なくとも1つのそれぞれの偏りに敏感な変数に基づいて、前記偏り訓練データセットをクラスタに分割するステップを含み、前記クラスタの各クラスタは対応する偏りクラスタ重みを含み、前記方法はさらに、
前記データ処理ハードウェアで、機械学習モデルのための訓練データセットを受信するステップと、
前記データ処理ハードウェアが、前記機械学習モデルのための前記訓練データセットを訓練クラスタに分割するステップとを含み、各訓練クラスタは、前記目標母集団の少なくとも1つの対応する偏りに敏感な変数に関連付けられ、対応する訓練データセット重みを含み、前記方法はさらに、
前記データ処理ハードウェアが、各訓練データセット重みを、それぞれの偏りクラスタ重みと整合して、調節された訓練データセットを形成するように調節するステップと、
前記データ処理ハードウェアが、前記調節された訓練データセットを、偏りのない訓練データセットとして、前記機械学習モデルに提供するステップとを含む、方法。
【請求項2】
前記調節された訓練データセットを前記偏りのない訓練データセットとして前記機械学習モデルに提供するステップは、前記偏りのない訓練データセットを用いて前記機械学習モデルを訓練するステップを含む、請求項1に記載の方法。
【請求項3】
前記データ処理ハードウェアが、前記偏りのない訓練データセットを用いて前記機械学習モデルを訓練するステップと、
前記データ処理ハードウェアで、少なくとも1つのそれぞれの偏りに敏感な変数を含むサンプルデータセットを受信するステップと、
前記データ処理ハードウェアが、訓練された前記機械学習モデルを使用して、受信された前記サンプルデータセットに基づいた、偏りのない予測値を生成するステップとをさらに含む、請求項1または2に記載の方法。
【請求項4】
各訓練データセット重みを、前記それぞれの偏りクラスタ重みと整合するように調節するステップは、各訓練データセット重みについて、
共通の偏りに敏感な変数に基づいて、前記訓練データセット重みを前記それぞれの偏りクラスタ重みと整合させるステップと、
前記訓練データセット重みが前記それぞれの偏りクラスタ重みと整合するまで、前記訓練データセットからデータを除去するステップとを含む、請求項1~3のいずれか1項に記載の方法。
【請求項5】
各訓練データセット重みを、前記それぞれの偏りクラスタ重みと整合するように調節するステップは、各訓練データセット重みについて、
共通の偏りに敏感な変数に基づいて、前記訓練データセット重みを前記それぞれの偏りクラスタ重みと整合させるステップと、
前記訓練データセット重みが前記それぞれの偏りクラスタ重みと整合するまで、前記訓練データセットからデータを複製するステップとを含む、請求項1~4のいずれか1項に記載の方法。
【請求項6】
各訓練データセット重みを、前記それぞれの偏りクラスタ重みと整合するように調節するステップは、各訓練データセット重みについて、
共通の偏りに敏感な変数に基づいて、前記訓練データセット重みを前記偏りクラスタ重みと整合させるステップと、
前記訓練データセット重みが前記それぞれの偏りクラスタ重みよりも小さい場合、前記訓練データセット重みに対応する訓練データに対する前記機械学習モデルの訓練を増加させることを示す重要性重みを関連付けるステップとを含む、請求項1~5のいずれか1項に記載の方法。
【請求項7】
各訓練データセット重みを、前記それぞれの偏りクラスタ重みと整合するように調節するステップは、各訓練データセット重みについて、
共通の偏りに敏感な変数に基づいて、前記訓練データセット重みを前記偏りクラスタ重みと整合させるステップと、
前記訓練データセット重みが前記それぞれの偏りクラスタ重みよりも大きい場合、前記訓練データセット重みに対応する訓練データに対する前記機械学習モデルの訓練を減少させることを示す重要性重みを関連付けるステップとを含む、請求項1~6のいずれか1項に記載の方法。
【請求項8】
各訓練データセット重みを、前記それぞれの偏りクラスタ重みと整合するように調節するステップはさらに、各訓練データセット重みについて、
共通の偏りに敏感な変数に基づいて、前記訓練データセット重みを前記それぞれの偏りクラスタ重みと整合させるステップと、
前記訓練データセット重みが前記それぞれの偏りクラスタ重みよりも小さい場合、前記訓練データセット重みに対応する訓練データに対する前記機械学習モデルの訓練を増加させることを示す重要性重みを関連付けるステップと、
前記訓練データセット重みが対応する偏りクラスタ重みよりも大きい場合、前記訓練データセット重みに対応する訓練データに対する前記機械学習モデルの訓練を減少させることを示す重要性重みを関連付けるステップとを含む、請求項1~7のいずれか1項に記載の方法。
【請求項9】
前記偏り訓練データセットをクラスタに分割するステップは、前記偏り訓練データセットの前記目標母集団のサイズに対するそれぞれのクラスタのサイズの比に基づいて、各クラスタについての前記偏りクラスタ重みを判定するステップを含む、請求項1~8のいずれか1項に記載の方法。
【請求項10】
前記偏りに敏感な変数に対応する偏り特徴を規定することをさらに含、請求項1~9のいずれか1項に記載の方法。
【請求項11】
システムであって、
データ処理ハードウェアと、
前記データ処理ハードウェアと通信しているメモリハードウェアとを含み、前記メモリハードウェアは、前記データ処理ハードウェア上で実行されると前記データ処理ハードウェアに請求項1~10のいずれか1項に記載された方法を実行させる命令を格納している、システム。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
この開示は、機械学習モデルを使用して偏りのあるデータを拒否することに関する。
【背景技術】
【0002】
背景
一般的に言えば、偏りとは、パラメータを過大評価または過小評価する統計値の傾向である。この点で、データの収集およびデータの分析は典型的には、何らかの固有の偏りを含む。これらの偏りは、収集および分析の方法、または、当該収集および分析を行なうエンティティ(主体)に起因する場合がある。たとえば、人間によって設計され行なわれたデータ研究が、特定の仮説、人間の設計制約(たとえば人間の能力)、サンプリング制約などを提供する場合がある。これらの要素を提供することにより、当該研究のデータ結果は、さまざまなサンプリング誤差、測定誤差、または、当該研究のための目標母集団を表わしていないサンプルにより広範に基づいた誤差を含む可能性がある。コンピュータ処理は、技術が人間の活動とは比べものにならない速度でデータを収集および分析することを可能にするため、データ処理手法は、偏りの問題を同等に克服しなければならない。さもなければ、特にバルクデータのためのデータ処理は、偏りの問題を増幅して、人間の活動によって生じる偏りとは比べものにならない結果を生み出すおそれがある。
【発明の概要】
【課題を解決するための手段】
【0003】
概要
この開示の1つの局面は、機械学習モデルを使用して偏りのあるデータを拒否するための方法を提供する。方法は、データ処理ハードウェアで、偏り訓練データセットを受信するステップを含み、偏り訓練データセットは目標母集団の偏りに敏感な変数(bias-sensitive variable)の確率分布に基づいている。方法はまた、データ処理ハードウェアが、目標母集団の少なくとも1つのそれぞれの偏りに敏感な変数に基づいて、偏り訓練データセットをクラスタに分割するステップを含み、クラスタの各クラスタは対応する偏りクラスタ重みを含む。方法はさらに、データ処理ハードウェアで、機械学習モデルのための訓練データセットを受信するステップと、データ処理ハードウェアが、機械学習モデルのための訓練データセットを訓練クラスタに分割するステップとを含む。各訓練クラスタは、目標母集団の少なくとも1つの対応する偏りに敏感な変数に関連付けられ、対応する訓練データセット重みを含む。方法はまた、データ処理ハードウェアが、各訓練データセット重みを、それぞれの偏りクラスタ重みと整合して、調節された訓練データセットを形成するように調節するステップを含む。方法はさらに、データ処理ハードウェアが、調節された訓練データセットを、偏りのない訓練データセットとして、機械学習モデルに提供するステップとを含む。
【0004】
この開示の実現化例は、以下のオプションの機能のうちの1つ以上を含んでいてもよい。いくつかの実現化例では、調節された訓練データセットを偏りのない訓練データセットとして機械学習モデルに提供するステップは、偏りのない訓練データセットを用いて機械学習モデルを訓練するステップを含む。方法は、データ処理ハードウェアが、偏りのない訓練データセットを用いて機械学習モデルを訓練するステップを含んでいてもよく、または、データ処理ハードウェアで、少なくとも1つのそれぞれの偏りに敏感な変数を含むサンプルデータセットを受信するステップを含んでいてもよい。ここで、方法はまた、データ処理ハードウェアが、訓練された機械学習モデルを使用して、受信されたサンプルデータセットに基づいた、偏りのない予測値を生成するステップを含んでいてもよい。
【0005】
いくつかの例では、各訓練データセット重みを、それぞれの偏りクラスタ重みと整合するように調節するステップは、各訓練データセット重みについて、共通の偏りに敏感な変数に基づいて、訓練データセット重みをそれぞれの偏りクラスタ重みと整合させるステップと、訓練データセット重みがそれぞれの偏りクラスタ重みと整合するまで、訓練データセットからデータを除去するステップとを含む。他の例では、各訓練データセット重みを、それぞれの偏りクラスタ重みと整合するように調節するステップは、各訓練データセット重みについて、共通の偏りに敏感な変数に基づいて、訓練データセット重みをそれぞれの偏りクラスタ重みと整合させるステップと、各訓練データセット重みがそれぞれの偏りクラスタ重みと整合するまで、訓練データセットからデータを複製するステップとを含む。
【0006】
いくつかの構成では、各訓練データセット重みについて、各訓練データセット重みを、それぞれの偏りクラスタ重みと整合するように調節するステップは、共通の偏りに敏感な変数に基づいて、訓練データセット重みを偏りクラスタ重みと整合させるステップを含む。訓練データセット重みがそれぞれの偏りクラスタ重みよりも小さい場合、方法は、訓練データセット重みに対応する訓練データに対する機械学習モデルの訓練を増加させることを示す重要性重みを関連付けるステップを含んでいてもよい。それに加えて、またはそれに代えて、各訓練データセット重みについて、各訓練データセット重みを、それぞれの偏りクラスタ重みと整合するように調節するステップは、共通の偏りに敏感な変数に基づいて、訓練データセット重みを偏りクラスタ重みと整合させるステップを含んでいてもよい。ここで、訓練データセット重みがそれぞれの偏りクラスタ重みよりも大きい場合、方法は、訓練データセット重みに対応する訓練データに対する機械学習モデルの訓練を減少させることを示す重要性重みを関連付けるステップを含んでいてもよい。
【0007】
いくつかの実現化例では、訓練データセット重みの各訓練データセット重みを、それぞれの偏りクラスタ重みと整合するように調節するステップは、各訓練データセット重みについて、共通の偏りに敏感な変数に基づいて、訓練データセット重みをそれぞれの偏りクラスタ重みと整合させるステップを含む。訓練データセット重みがそれぞれの偏りクラスタ重みよりも小さい場合、方法は、訓練データセット重みに対応する訓練データに対する機械学習モデルの訓練を増加させることを示す重要性重みを関連付けるステップを含み、訓練データセット重みがそれぞれの偏りクラスタ重みよりも大きい場合、方法は、訓練データセット重みに対応する訓練データに対する機械学習モデルの訓練を減少させることを示す重要性重みを関連付けるステップを含む。
【0008】
いくつかの例では、偏り訓練データセットをクラスタに分割するステップは、偏り訓練データセットの目標母集団のサイズに対するそれぞれのクラスタのサイズの比に基づいて、各クラスタについての偏りクラスタ重みを判定するステップを含む。偏り訓練データセットを訓練することは、偏り特徴を規定することを含んでいてもよく、偏り特徴は、偏りに敏感な変数に対応する。
【0009】
この開示の別の局面は、機械学習モデルを使用して偏りのあるデータを拒否するためのシステムを提供する。システムは、データ処理ハードウェアと、データ処理ハードウェアと通信しているメモリハードウェアとを含む。メモリハードウェアは、データ処理ハードウェア上で実行されるとデータ処理ハードウェアに動作を行なわせる命令を格納している。動作は、偏り訓練データセットを受信することを含み、偏り訓練データセットは目標母集団の偏りに敏感な変数の確率分布に基づいている。動作はまた、目標母集団の少なくとも1つのそれぞれの偏りに敏感な変数に基づいて、偏り訓練データセットをクラスタに分割することを含み、クラスタの各クラスタは偏りクラスタ重みを含む。動作はさらに、機械学習モデルのための訓練データセットを受信することと、データ処理ハードウェアが、機械学習モデルのための訓練データセットを訓練クラスタに分割することとを含む。各訓練クラスタは、目標母集団の少なくとも1つの対応する偏りに敏感な変数に関連付けられ、対応する訓練データセット重みを含む。動作はまた、各訓練データセット重みを、それぞれの偏りクラスタ重みと整合して、調節された訓練データセットを形成するように調節することを含む。方法はさらに、調節された訓練データセットを、偏りのない訓練データセットとして、機械学習モデルに提供することを含む。
【0010】
この局面は、以下のオプションの機能のうちの1つ以上を含んでいてもよい。いくつかの構成では、調節された訓練データセットを偏りのない訓練データセットとして機械学習モデルに提供する動作は、偏りのない訓練データセットを用いて機械学習モデルを訓練することを含む。動作はまた、偏りのない訓練データセットを用いて機械学習モデルを訓練することと、少なくとも1つのそれぞれの偏りに敏感な変数を含むサンプルデータセットを受信することと、機械学習モデルを使用して、受信されたサンプルデータセットに基づいた、偏りのない予測値を生成することとを含んでいてもよい。
【0011】
いくつかの実現化例では、各訓練データセット重みを、それぞれの偏りクラスタ重みと整合するように調節する動作はさらに、各訓練データセット重みについて、共通の偏りに敏感な変数に基づいて、訓練データセット重みをそれぞれの偏りクラスタ重みと整合させることと、訓練データセット重みがそれぞれの偏りクラスタ重みと整合するまで、訓練データセットからデータを除去することとを含む。他の例では、各訓練データセット重みを、それぞれの偏りクラスタ重みと整合するように調節する動作は、各訓練データセット重みについて、共通の偏りに敏感な変数に基づいて、訓練データセット重みを偏りクラスタ重みと整合させることと、各訓練データセット重みがそれぞれの偏りクラスタ重みと整合するまで、訓練データセットからデータを複製することとを含む。
【0012】
いくつかの例では、各訓練データセット重みを、それぞれの偏りクラスタ重みと整合するように調節する動作は、各訓練データセット重みについて、共通の偏りに敏感な変数に基づいて、訓練データセット重みを偏りクラスタ重みと整合させることを含む。この例では、それぞれの訓練データセット重みがそれぞれの偏りクラスタ重みよりも小さい場合、動作は、訓練データセット重みに対応する訓練データに対する機械学習モデルの訓練を増加させることを示す重要性重みを関連付けることを含む。他の例では、各訓練データセット重みを、それぞれの偏りクラスタ重みと整合するように調節する動作は、共通の偏りに敏感な変数に基づいて、訓練データセット重みを偏りクラスタ重みと整合させることを含んでいてもよい。この例では、それぞれの訓練データセット重みが対応する偏りクラスタ重みよりも大きい場合、動作は、訓練データセット重みに対応する訓練データに対する機械学習モデルの訓練を減少させることを示す重要性重みを関連付けることを含む。
【0013】
それに加えて、またはそれに代えて、各訓練データセット重みを、それぞれの偏りクラスタ重みと整合するように調節する動作は、各訓練データセット重みについて、共通の偏りに敏感な変数に基づいて、訓練データセット重みをそれぞれの偏りクラスタ重みと整合させることを含んでいてもよい。ここで、それぞれの訓練データセット重みがそれぞれの偏りクラスタ重みよりも小さい場合、訓練データセット重みに対応する訓練データに対する機械学習モデルの訓練を増加させることを示す重要性重みを関連付け、訓練データセット重みがそれぞれの偏りクラスタ重みよりも大きい場合、訓練データセット重みに対応する訓練データに対する機械学習モデルの訓練を減少させることを示す重要性重みを関連付ける。
【0014】
いくつかの構成では、偏り訓練データセットをクラスタに分割する動作は、偏り訓練データセットの目標母集団のサイズに対するそれぞれのクラスタのサイズの比に基づいて、各クラスタについての偏りクラスタ重みを判定することを含む。偏り訓練データセットを訓練する動作は、偏り特徴を規定することを含んでいてもよく、偏り特徴は、偏りに敏感な変数に対応する。
【0015】
この開示の1つ以上の実現化例の詳細が、添付図面および以下の説明において述べられる。他の局面、特徴、および利点は、説明および図面から、および請求項から明らかになるであろう。
【0016】
さまざまな図面における同じ参照符号は、同じ要素を示す。
【図面の簡単な説明】
【0017】
図1】例示的な機械学習環境の概略図である。
図2A】偏り拒否モデルのための例示的な処理段階の概略図である。
図2B図2Aの訓練段階中の例示的な偏り拒否モデルの概略図である。
図2C図2Aの偏り防止(unbiasing)段階中の例示的な偏り拒否モデルの概略図である。
図2D図2Aの偏り防止段階中に偏り拒否モデルによって行なわれる例示的な調節の概略図である。
図2E図2Aの偏り防止段階中に偏り拒否モデルによって行なわれる例示的な調節の概略図である。
図3】機械学習モデルが偏り拒否モデルから偏りのない訓練データを取り入れるための例示的な処理段階の概略図である。
図4】機械学習環境内の機械学習モデルの偏りを防止するための例示的な方法のフロー図である。
図5】ここに説明されるシステムおよび方法を実現するために使用され得る例示的なコンピューティングデバイスの概略図である。
【発明を実施するための形態】
【0018】
詳細な説明
図1は、機械学習環境10の一例である。機械学習環境10は一般に、ネットワーク120を介してアクセス可能なリソース110を有する分散型システム100(たとえば、クラウド環境などのリモートシステム)と、偏り拒否モデル200と、機械学習モデル300とを含む。リソース110は、偏り拒否モデル200および/または機械学習モデル300を訓練する際に使用するために、ならびに、ここに開示される機械学習機能を行なうために、偏り拒否モデル200および/または機械学習モデル300にアクセス可能である。分散型システム100は、偏り拒否モデル200および/または機械学習モデル300を動作させることができるコンピューティングリソース(たとえばリソース110)を有する任意のコンピュータ処理システムであってもよい。いくつかの例では、偏り拒否モデル200および/または機械学習モデル300は、ネットワーク120を介して分散型システム100にアクセス可能である、または他の態様で分散型システム100と通信しているデバイス上で動作する。たとえば、デバイスは、分散型システム100に関連付けられたウェブベースのアプリケーションを実行してもよい。
【0019】
一般に、分散型システム100のリソース110は、ハードウェアリソース110h、110h1-iと、ソフトウェアリソース110s、110s1-iとを含んでいてもよい。ハードウェアリソース110hは、データ処理ハードウェア112と、メモリハードウェア114とを含む。ソフトウェアリソース110sは、ソフトウェアアプリケーション、ソフトウェアサービス、アプリケーションプログラミングインターフェイス(application programming interface:API)などを含んでいてもよい。ソフトウェアリソース110sは、ハードウェアリソース110h上に存在して(たとえば、メモリハードウェア114に格納されて)いてもよく、または、データ処理ハードウェア112上で実行される命令を含んでいてもよい。
【0020】
ソフトウェアアプリケーション(すなわち、ソフトウェアリソース110s)とは、コンピューティングデバイスにタスクを行なわせるコンピュータソフトウェアを指していてもよい。いくつかの例では、ソフトウェアアプリケーションは、「アプリケーション」、「アプリ」、または「プログラム」と呼ばれてもよい。例示的なアプリケーションは、システム診断アプリケーション、システム管理アプリケーション、システム保守アプリケーション、文書処理アプリケーション、表計算アプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲーミングアプリケーションを含むものの、それらに限定されない。
【0021】
メモリハードウェア114は、プログラム(たとえば命令のシーケンス)またはデータ(たとえばプログラム状態情報)を、データ処理ハードウェア112による使用のために一時的または永続的に格納するために使用される物理デバイスであり得る非一時的メモリである。メモリハードウェア114は、揮発性および/または不揮発性アドレス可能半導体メモリであってもよい。不揮発性メモリの例は、フラッシュメモリおよび読出専用メモリ(read-only memory:ROM)/プログラマブル読出専用メモリ(programmable read-only memory:PROM)/消去可能プログラマブル読出専用メモリ(erasable programmable read-only memory:EPROM)/電子的消去可能プログラマブル読出専用メモリ(electronically erasable programmable read-only memory:EEPROM)(たとえば、典型的にはブートプログラムなどのファームウェアのために使用される)、およびディスクまたはテープを含むものの、それらに限定されない。揮発性メモリの例は、ランダムアクセスメモリ(random access memory:RAM)、ダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)、スタティックランダムアクセスメモリ(static random access memory:SRAM)、および相変化メモリ(phase change memory:PCM)を含むものの、それらに限定されない。
【0022】
図示された例では、偏り拒否モデル200は、機械学習モデル300に悪影響を及ぼさないように偏りの問題に対処するために、リソース110とともに動作する。言い換えれば、偏り拒否モデル200は、偏りのあるデータを含む機械学習(machine learning:ML)訓練データセット302に基づいて機械学習モデル300を訓練するのを防止するように構成される。これは、ML訓練データセット302に関連付けられているものの、当該偏りのあるデータが除去された、偏りのない訓練データセット206を、MLモデル300を訓練する際に使用するために生成/出力することによる。ML訓練データセット302内の偏りのあるデータに基づいて機械学習モデル300を訓練するのを防止することによって、機械学習モデル300は、当該偏りのあるデータによって影響されず、したがって、推論中に偏りのない予測値310(図3)を生成することができる。このため、偏り拒否モデル200は、MLモデル300を訓練する際に使用するための偏りのない訓練データセット206を出力/生成することによって、MLモデル300を訓練する前にML訓練データセット302内の偏りのあるデータを除去/調節するフィルタに対応する。
【0023】
図2Aは、1番目の訓練段階202と、1番目の訓練段階202に続く2番目の偏り防止段階204との実行中の偏り拒否モデル200を示す。訓練段階202中、偏り拒否モデル200は、偏り訓練データセット130を受信し、偏りクラスタ重み214を出力する。偏り防止段階204中、偏り拒否モデル200は、ML訓練データセット302を受信し、訓練段階202から出力された偏りクラスタ重み214を使用して、ML訓練データセット302から偏りのあるデータが除去された、偏りのない訓練データセット206を出力する。
【0024】
ここで、「重み」(たとえば、偏りクラスタ重み214、214a~n、および訓練データセット重み218、218a~n)という用語は、クラスタ化のプロセスから形成された独自のクラスタにマッピングする、比などの値を指す。母集団については、各クラスタは、母集団の一部に関していてもよく、このため、その一部の値は、クラスタ(たとえば、母集団のサブセット)に関連付けられた重みであってもよい。言い換えれば、母集団をサブセットにクラスタ化することによって、各サブセットは、母集団に対する特性(たとえば重み)を本質的に有する。より一般的には、偏りクラスタ212または訓練クラスタ216などのクラスタとは、人々に関する訓練データをグループ化するために使用され得る、当該人々のグループ化を指す。人々のグループ化は、自分の訓練データにおける連続的な範囲の変数値を共有する人々を含んでいてもよい(たとえば、25~27才のアジア系女性についてのクラスタは、1人の25才のアジア系女性での1つの訓練例と、1人の26才のアジア系女性での別の訓練例と、この一組の値を共有する他の訓練例とを含み得る)。
【0025】
他の実現化例では、クラスタは、自分の訓練データがクラスタ化アルゴリズム(たとえばクラスタ化モデル)によってクラスタ化される人々を含む。クラスタ化アルゴリズムは、人々(または人々の特性)の間の距離がより短いことに基づいて類似しているとアルゴリズムが考えるグループに、人々を入れる。より短い距離によってグループ化することは、多くの変数値がそれぞれの母集団において増加するにつれてクラスタの数が指数関数的に増加することを回避し得る。クラスタ化は、訓練データ(たとえば人々)間の距離を判定するために、重要な変数(たとえば偏り変数)および/または他の変数にしたがって行なわれてもよい。たとえば、クラスタ化は他の変数に基づいて行なわれるが、データをクラスタ化するための最終判定は、重要な変数(たとえば偏り変数)に基づいている。一例として、クラスタ化プロセスは、18才および19才の男性のオーストリア人およびドイツ人をともに単一のクラスタにグループ化する。なぜなら、それは、規定された測定基準(たとえば、使用言語、関連する関心事、ソーシャルネットワークでつながるかまたは同じ組織のメンバーである頻度)に基づいて、類似性(たとえば、互いの間のより短い距離)を認識するためである。広範囲の潜在的なクラスタ化アプローチを示す別の例として、クラスタ化プロセスは、(1)18才のオーストリア人、(2)18才のドイツ人、(3)19才のオーストリア人、および(4)19才のドイツ人というカテゴリーをカバーする4つの別個のグループを有し得る。
【0026】
図2Aをさらに参照して、訓練段階202中、偏り拒否モデル200は、目標母集団の偏りに敏感な変数132の確率分布に基づいた偏り訓練データセット130を受信する。偏りに敏感な変数132とは、目標母集団のデータサンプルにおいて過大表現または過小表現されると、目標母集団のサンプリングからの偏りのある予測の可能性の増加をもたらす変数を指す。言い換えれば、偏りに敏感な変数132の正確な表現からの若干のずれが、歪んだ予測分析をもたらす可能性がある。したがって、機械学習モデル300などの機械学習モデルが、偏りに敏感な変数132の正確な訓練データセットなしで構成される(すなわち訓練される)場合、機械学習モデルは、偏りのある予測、および偏りのあるコンピューティング分析論を本質的に生成するかもしれない。偏りに敏感な変数132のいくつかの例は、人種、ジェンダー、性別、年齢、国籍、信仰している宗教、所属する政党、豊かさなどを含む。言い換えれば、偏りに敏感な変数132は、人間の特性または属性(偏り特徴とも呼ばれる)であってもよい。
【0027】
いくつかの構成では、偏りに敏感な変数132は、政治情勢(たとえば、移民/市民権、人種間関係など)、最新の出来事(抗議、スキャンダル、ニュース、天気など)、または大衆文化(映画、本、アート、フィルム、有名人、スポーツなど)といった要因に基づいて動的に変化する。いくつかの実現化例では、偏りに敏感な変数132は、機械学習モデル300とともに使用されるデータのタイプ、または、機械学習モデル300によって行なわれるモデリングのタイプに基づいて判定される。たとえば、カリフォルニアの人口統計をモデル化する機械学習モデル300は、ニューハンプシャーの人口統計をモデル化する機械学習モデル300とは異なる偏りに敏感な変数132を有し得る。すなわち、人種的に多様でない州としてのニューハンプシャーは必然的に、カリフォルニアの人口統計に影響を与えるいくつかの偏りに敏感な変数132を含まないかもしれない。
【0028】
他の構成では、偏りに敏感な変数132は、いったん識別および/または前もってプログラムされると変化しないグローバル変数である。オプションで、エンティティが偏りに敏感な変数132を規定する場合、エンティティはまず、予測に最も大きい影響を与える偏りに敏感な変数132を分析するように、機械学習モデル300の予測結果をモデル化してもよい。たとえば、エンティティは、機械学習モデル300の予測についての期待される結果のベースラインを有しており、当該期待される結果と比べて、偏差および分散などの統計値に基づいて偏りに敏感な変数132の影響を判定する。
【0029】
いくつかの例では、目標母集団は、所与の変数または一組の変数についてのデータセット全体である。ここで、偏り拒否モデル200および/または機械学習モデル300は、目標母集団に対応して訓練されても、および/または予測を行なってもよい。基本的な一例として、機械学習モデル300は、カリフォルニアの人口である目標母集団についての値を予測するように構成されてもよい。カリフォルニアの人口に関する予測を正確に行なうために、各モデル200、300は、カリフォルニアの人口に関連付けられたデータに基づいて訓練する。
【0030】
受信された偏り訓練データセット130に基づいて偏り拒否モデル200を訓練した後で、偏り拒否モデル200は、偏り防止段階204中に、MLモデル300を訓練する際に使用するために意図されたML訓練データセット302を調節するように構成される。MLモデル300を訓練する前にML訓練データセット302を調節することによって、偏り拒否モデル200は、偏りのない訓練データセット206を生成し、偏りのない訓練データセット206をMLモデル300に提供する。言い換えれば、偏り防止段階204中、偏り拒否モデル200は、訓練段階202中の偏り訓練データセット130に基づく偏り拒否モデル200の訓練に基づいて、(たとえば偏りのあるデータを潜在的に含み得る)ML訓練データセット302を、偏りのない訓練データセット206に変換する。いくつかの例では、偏り拒否モデル200は、2つ以上の偏り訓練データセット130を用いて訓練する。たとえば、偏り拒否モデル200は、新しいまたは更新された偏り訓練データセット130への経時変化を連続的に勘案するように、当該偏り訓練データセット130に基づいて動的に訓練する。訓練段階202および偏り防止段階204は、連続的にまたは同時に実行されてもよく、またはそれら双方の何らかの組合せであってもよい。
【0031】
図2Bは、訓練段階202中の偏り拒否モデル200の一例を示す。ここで、偏り拒否モデル200は、目標母集団に対応する偏り訓練データセット130を受信する。いくつかの実現化例では、偏り拒否モデル200のアドミニストレータ、または偏り拒否モデル200へのアクセスを有するユーザ(たとえば、特定の一組の偏り特徴を懸念するユーザ)などのエンティティ140が、偏り訓練データセット130についての偏りに敏感な変数132に対応する偏り特徴を規定する。たとえば、図2Bは、訓練段階202中、偏り特徴および/または偏りに敏感な変数132を規定するエンティティ140がオプションであることを示すように、点線に関連付けられたエンティティ140を示す。いくつかの例では、偏り拒否モデル200を実現するエンティティまたは設計者は、特定の一組の偏り特徴のために偏り拒否モデル200を設計する。これらの例では、エンティティ140は、偏り特徴および/または偏りに敏感な変数132を供給しなくてもよい。いくつかの構成では、偏り訓練データセット130は、目標母集団データセット全体を含む。たとえば、偏りに敏感な変数132が人口統計学的に敏感な変数(たとえば、人種、ジェンダー、年齢、国籍など)に対応する場合、偏り拒否モデル200は、米国についての人口統計データの完全なデータセットを、偏り訓練データセット130として受信してもよい。
【0032】
偏り拒否モデル200は、分割器210と、調節器220とを含む。分割器210は、目標母集団の少なくとも1つのそれぞれの偏りに敏感な変数132に基づいて、偏り訓練データセット130を偏りクラスタ212、212a~nに分割するように構成される。たとえば、図2Bは、人種、ジェンダー、および年齢としての、偏りに敏感な変数132、132a~nを示す。いくつかの例では、各偏りクラスタ212は、各々の偏りに敏感な変数132の組合せに対応する。一例として、人種、ジェンダー、および年齢という偏りに敏感な変数132を用いて、各偏りクラスタ212は、1つのタイプの人種(たとえば黒人、白人、ヒスパニック系など)、1つのタイプのジェンダー(たとえば男性、女性、トランスジェンダー)、および1つのタイプの年齢層(たとえば19~30才、31~44才、45~59才、60才以上など)に対応する。分割器210が偏り訓練データセット130を偏りクラスタ212に分割する場合、分割器210はまた、偏りクラスタ212、212a~nが、関連付けられた偏りクラスタ重み214、214a~nを有するように、各偏りクラスタ212について対応する偏りクラスタ重み214を判定するように構成される。いくつかの例では、偏りクラスタ重み214は、目標母集団に対する、偏りクラスタ212についての母集団比率(population fraction)を表わす。たとえば、偏りクラスタ重み214は、偏り訓練データセット130の目標母集団のサイズに対するそれぞれの偏りクラスタ212のサイズの比を表わしていてもよい。いくつかの例では、各偏りクラスタ重み214を判定するために、分割器210は、各偏りクラスタ212の母集団比率を判定し、各母集団比率を全偏りクラスタ212の最大母集団比率で除算する(たとえば、各偏りクラスタ重み214は1よりも小さい)。他の例では、各偏りクラスタ重み214を判定するために、分割器210は、各偏りクラスタ212の母集団比率を判定し、各母集団比率を全偏りクラスタ212の最小母集団比率で除算する(たとえば、各偏りクラスタ重み214は1よりも大きい)。
【0033】
いくつかの構成では、分割器210は、訓練段階202中、偏りクラスタ212についての偏りクラスタ重み214を調節器220に通信する。たとえば、調節器220は、偏りクラスタ重み214のデータストア222を含む。他の例では、分割器210は、偏り防止段階204中に調節器220がアクセスするために、偏りクラスタ重み214を(たとえば分割器210のデータストアに)格納する。
【0034】
図2Cは、偏り防止段階204中の偏り拒否モデル200の一例を示す。偏り防止段階204中、偏り拒否モデル200は、MLモデル300を訓練する際に使用するために意図されたML訓練データセット302を受信する。たとえば、訓練データセット302は、潜在的に偏りがあるかもしれない(たとえば、偏りのあるデータを含むかもしれない)未処理の訓練データセットを含むかもしれない。いくつかの実現化例では、訓練データセット302は、目標母集団のサンプルであり、そのため、目標母集団の偏りに敏感な変数132を不正確に反映するかもしれない。たとえば、目標母集団は、白人が25%という人種構成を有するかもしれず、一方、訓練データセット302は、白人が45%というサンプリング人種構成を示すかもしれない。このため、目標母集団の偏りに敏感な変数132を不正確に反映するML訓練データ302に基づいてMLモデル300を訓練するのを防止するために、偏り拒否モデル200は、偏り防止段階204中に分割器210および調節器220を用いてこの偏り(たとえば20%の差)を調節しようと努める。
【0035】
分割器210が図2Bの訓練段階202中に偏り訓練データセット130を偏りクラスタ212に分割する方法と同様に、分割器210は、偏り防止段階204中に、受信されたML訓練データセット302を訓練クラスタ216に分割するように構成される。ここで、各訓練クラスタ216は、目標母集団の少なくとも1つの対応する偏りに敏感な変数132に関連付けられる。分割器210はさらに、分割された訓練クラスタ216a~nが、関連付けられた訓練データセット重み218、218a~nを含むように、分割された各訓練クラスタ216について、対応する訓練データセット重み218、218a~nを生成するように構成される。いくつかの例では、それぞれの訓練データセット重み218は、訓練データセット302に関連付けられたサンプル母集団に対する、訓練クラスタ216についての母集団比率を表わす。たとえば、訓練データセット重み218は、訓練データセット302のサンプル母集団のサイズに対するそれぞれの訓練クラスタ216のサイズの比を表わしていてもよい。いくつかの例では、各訓練データセット重み218を判定するために、分割器210は、各訓練クラスタ216の母集団比率を判定し、各母集団比率を訓練クラスタ216a~nの最大母集団比率で除算する(たとえば、各訓練データセット重み218は1よりも小さい)。他の例では、各訓練データセット重み218を判定するために、分割器210は、各訓練クラスタ216の母集団比率を判定し、各母集団比率を訓練クラスタ216a~nの最小母集団比率で除算する(たとえば、各訓練データセット重み218は1よりも大きい)。
【0036】
調節器220は、目標母集団の偏りに敏感な変数132についての確率分布と整合するために、訓練データセット重み218a~nを調節するように構成される。いくつかの実現化例では、調節器220は、訓練データセット重み218を偏りクラスタ重み214と比較することによって訓練データセット重み218を調節するプロセス226を実行する。たとえば、図2C~2Eは、調節器220が、偏りクラスタ重みデータストア222からの偏りクラスタ重み214と、訓練重みデータストア224からの訓練データセット重み218とを検索して比較し、比較に基づいて訓練データセット重み218を調節するために、プロセス226を実行することを示す。たとえば、それぞれの訓練データセット重み218と偏りクラスタ重み214との相対的な差に基づいて、調節器220は、それぞれの訓練データセット重み218を、対応する偏りクラスタ重み214と整合するように調節してもよい。したがって、訓練データセット重み218を調節するために調節器220によって実行されるプロセス226は、調節された訓練データセット重みを生成/出力し、または、より一般的には、MLモデル300を訓練するための偏りのない訓練データセット206を形成する調節された訓練データセット208を生成/出力する。
【0037】
いくつかの実現化例では、調節器220は、まず、整合する偏りに敏感な変数132に基づいて、1つ以上の訓練データセット重み218を1つ以上の偏りクラスタ重み214と整合させることによって、プロセス226を実行する。たとえば、訓練データセット重み218と偏りクラスタ重み214とが各々、共通の偏りに敏感な変数132または偏りに敏感な変数132の組合せを共有する場合、調節器220は、訓練データセット重み218を、整合する(すなわち、対応する)偏りクラスタ重み214を用いて調節し、対応する調節された訓練データセット重みまたは調節された訓練データセット208を出力してもよい。
【0038】
図2Dを参照して、調節器220は、共通の偏りに敏感な変数132または偏りに敏感な変数132の組合せを共有する訓練データセット重み218と偏りクラスタ重み214とを比較する。ML訓練データセット302が偏りに敏感な変数132を過大表現する場合、訓練データセット重み218は、偏りクラスタ重み214を上回る(たとえば、偏りクラスタ重み214よりも大きい)(たとえば、訓練データセット302は、白人が20%多い人種構成を示す)。この過大表現に応答して、調節器220によって実行されるプロセス226は、訓練データセット重み218が偏りクラスタ重み214と整合するまで訓練データセット302からデータを除去することによって訓練データセット重み218を調節するデータ除去調節プロセスに対応してもよい。一方、訓練データセット302が偏りに敏感な変数132を過小表現する場合、訓練データセット重み218は、偏りクラスタ重み214よりも小さい(たとえば、訓練データセット302は、黒人が20%少ない人種構成を示す)。この過小表現に応答して、調節器220上で実行されるプロセス226は、訓練データセット重み218が偏りクラスタ重み214と整合するまで訓練データセット302からデータを複製することによって訓練データセット重み218を調節するデータ複製プロセスに対応してもよい。いくつかの実現化例では、調節器220は、訓練データセット302の完全性を維持するために、訓練データセット302からデータをランダムに複製または除去する。
【0039】
訓練データセット重み218が偏りクラスタ重み214と整合するまで訓練データセット302からデータを除去するかまたは訓練データセット302にデータを追加する図2のプロセス226とは対照的に、図2Eは、各訓練データセット重み218に関連付けられた重要性重み228を調節する調節器220上で実行されるプロセス226を示す。具体的には、プロセスは、重要性重み228を、関連付けられた訓練データセット重み218に対応する訓練データセット302のデータに関連付ける。重要性重み228は、機械学習モデル300を訓練しながら、訓練データセット重み218に対応する基礎的データを提供するための重みがどれぐらいかを理解するために、機械学習モデル300の訓練段階304(図3)への表示を提供する。いくつかの例では、訓練データセット重み218が偏りクラスタ重み214よりも大きい場合、調節器220は、それぞれの訓練データセット重み218に対応する訓練データに対する機械学習モデル300の訓練を減少させることを示す重要性重み228を関連付ける。他の例では、訓練データセット重み218が偏りクラスタ重み214よりも小さい場合、調節器220は、それぞれの訓練データセット重み218に対応する訓練データに対する機械学習モデル300の訓練を増加させることを示す重要性重み228を関連付ける。
【0040】
いくつかの構成では、調節器220は、統計的分析に基づいて偏りのない訓練データセット206を形成するために、調節された訓練データセット重みおよび/または調節された訓練データセット208を判定する。たとえば、偏り防止段階204中、分割器210および/または調節器220は、共通の偏りに敏感な変数132または偏りに敏感な変数132の組合せを偏りクラスタ212と共有する訓練クラスタ216を認識する。ここで、偏り拒否モデル200は、偏り訓練データセット130の目標母集団と、ML訓練データセット302内のデータの分布との間で、統計的検定(たとえばカイ二乗検定)を行なってもよい。偏り訓練データセット130と訓練データセット302とが(たとえば偏りに敏感な変数132に対して)同じ分布を有していないことを統計的検定が(たとえば、95%などの信頼区間によって)示す場合、調節器220は、調節された訓練データセット重みとして乗算器を生成し、乗算器は、偏り訓練データセット130と整合するML訓練データセット302についてのデータの分布を生成するML訓練データセット302内の多くのサンプルを示す。
【0041】
図2A~2Eによって示すように、偏り拒否モデル200は、機械学習モデル300を訓練するための偏りのない訓練データセット206を生成する。図3は、機械学習モデル300が偏りのない訓練データセット206に基づいて訓練する一例である。機械学習モデル300などの機械学習モデルは一般に、データセットおよび結果セットに基づいて教えられ(または訓練され)、当該データセットに類似した入力データに基づいてそれ自体の出力を予測する。いくつかの実現化例では、偏り拒否モデル200と同様に、機械学習モデル300はまず、訓練段階304中に訓練を受け、次に、サンプルデータセット308を入力として受信し、偏りのない予測値310を出力する予測段階(たとえば推論)306を経る。予測段階306中、機械学習モデル300は、少なくとも1つの偏りに敏感な変数132を含むサンプルデータセットなどのサンプルデータセット308を受信し、偏りのない訓練データセット206に基づいて訓練された関連付けられた機械学習機能性を利用して、受信されたサンプルデータセット308に基づいた、偏りのない予測値310を生成する。
【0042】
いくつかの例では、機械学習モデル300は、偏りのない2つ以上の訓練データセット206を用いて訓練する。たとえば、機械学習モデル300は、動作中、動的に変化するデータセットを連続的に勘案するように動的に訓練する。言い換えれば、訓練段階304および予測段階306は、連続的にまたは同時に実行されてもよく、またはそれら双方の何らかの組合せであってもよい。
【0043】
偏り拒否モデル200および/または機械学習モデル300は、ここに説明されるいずれかのモデル200、300の機能性を実行するために機械学習アルゴリズムを採用する任意のタイプの機械学習モデル(たとえば、教師あり、教師なし、強化、アンサンブル/決定木、ディープラーニング、ニューラルネットワーク、再帰的、線形など)であってもよい。おおまかに言えば、アルゴリズムは、教師あり学習、教師なし学習、アクティブラーニング、または、アルゴリズムのいくつかのハイブリッドの組合せに関連していてもよい。これらの広範なアルゴリズムのいくつかの具体例は、線形回帰アルゴリズム、ロジスティック回帰アルゴリズム、決定木ベースのアルゴリズム、サポートベクトルマシンアルゴリズム、単純ベイズ分類器、k最近傍アルゴリズム、次元縮小アルゴリズム、勾配ブースティングアルゴリズムなどといった機械学習アルゴリズムを含む。
【0044】
図4は、図1の機械学習環境10内の機械学習モデル300の偏りを防止するための動作を有する例示的な方法400である。動作402で、方法400は、偏り訓練データセット130を受信する。偏り訓練データセット130は、目標母集団の偏りに敏感な変数132の確率分布に基づいている。動作404で、方法400は、目標母集団の少なくとも1つのそれぞれの偏りに敏感な変数132に基づいて、偏り訓練データセット130をクラスタ212に分割する。各クラスタ212は、偏りクラスタ重み214を含む。動作406で、方法400は、機械学習モデル300を訓練する際に使用するために意図された訓練データセット302を受信する。動作408で、方法400は、訓練データセット302を訓練クラスタに分割し、各訓練クラスタ216は、目標母集団の少なくとも1つの対応する偏りに敏感な変数132に関連付けられる。動作410で、方法400は、分割された訓練データセット302の各訓練クラスタ216に対応する訓練データセット重み218を生成する。動作412で、方法400は、各訓練データセット重みを、それぞれの偏りクラスタ重み214と整合するように調節する。
【0045】
図5は、この文書で説明されるシステムおよび方法(たとえば、偏り拒否モデル200および/または機械学習モデル300)を実現するために使用され得る例示的なコンピューティングデバイス500の概略図である。コンピューティングデバイス500は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータといった、さまざまな形態のデジタルコンピュータを表わすよう意図されている。ここに示すコンポーネント、それらの接続および関係、ならびにそれらの機能は単なる例示であることが意図されており、この文書で説明される、および/または請求項に記載のこの発明の実現化例を限定するよう意図されてはいない。
【0046】
コンピューティングデバイス500は、プロセッサ510と、メモリ520と、記憶装置530と、メモリ520および高速拡張ポート550に接続している高速インターフェイス/コントローラ540と、低速バス570および記憶装置530に接続している低速インターフェイス/コントローラ560とを含む。コンポーネント510、520、530、540、550、および560の各々は、さまざまなバスを使用して相互接続されており、共通のマザーボード上にまたは他の態様で適宜搭載されてもよい。プロセッサ510は、コンピューティングデバイス500内で実行される命令を処理可能であり、これらの命令は、グラフィカルユーザインターフェイス(graphical user interface:GUI)のためのグラフィック情報を、高速インターフェイス540に結合されたディスプレイ580などの外部入出力デバイス上に表示するために、メモリ520内または記憶装置530上に格納された命令を含む。他の実現化例では、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数のタイプのメモリとともに適宜使用されてもよい。また、複数のコンピューティングデバイス500が接続されてもよく、各デバイスは(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な動作の部分を提供する。
【0047】
メモリ520は、情報をコンピューティングデバイス500内に非一時的に格納する。メモリ520は、コンピュータ読取可能媒体、揮発性メモリユニット、または不揮発性メモリユニットであってもよい。非一時的メモリ520は、プログラム(たとえば命令のシーケンス)またはデータ(たとえばプログラム状態情報)を、コンピューティングデバイス500による使用のために一時的または永続的に格納するために使用される物理デバイスであってもよい。不揮発性メモリの例は、フラッシュメモリおよび読出専用メモリ(ROM)/プログラマブル読出専用メモリ(PROM)/消去可能プログラマブル読出専用メモリ(EPROM)/電子的消去可能プログラマブル読出専用メモリ(EEPROM)(たとえば、典型的にはブートプログラムなどのファームウェアのために使用される)を含むものの、それらに限定されない。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープを含むものの、それらに限定されない。
【0048】
記憶装置530は、コンピューティングデバイス500のための大容量記憶を提供可能である。いくつかの実現化例では、記憶装置530は、コンピュータ読取可能媒体である。さまざまな異なる実現化例では、記憶装置530は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイス、フラッシュメモリまたは他の同様のソリッドステートメモリデバイス、もしくは、ストレージエリアネットワークまたは他の構成におけるデバイスを含むデバイスのアレイであってもよい。追加の実現化例では、コンピュータプログラム製品が情報担体において有形に具現化され得る。コンピュータプログラム製品は、実行されると上述のような1つ以上の方法を行なう命令を含む。情報担体は、メモリ520、記憶装置530、またはプロセッサ510上のメモリといった、コンピュータ読取可能媒体または機械読取可能媒体である。
【0049】
高速コントローラ540はコンピューティングデバイス500のための帯域幅集約的な動作を管理し、一方、低速コントローラ560はより低い帯域幅集約的な動作を管理する。役目のそのような割当ては例示に過ぎない。いくつかの実現化例では、高速コントローラ540は、メモリ520、ディスプレイ580に(たとえば、グラフィックスプロセッサまたはアクセラレータを介して)結合されるとともに、さまざまな拡張カード(図示せず)を受け付け得る高速拡張ポート550に結合される。いくつかの実現化例では、低速コントローラ560は、記憶装置530および低速拡張ポート590に結合される。さまざまな通信ポート(たとえば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポート590は、キーボード、ポインティングデバイス、スキャナなどの1つ以上の入出力デバイスに、もしくは、スイッチまたはルータなどのネットワーキングデバイスに、たとえばネットワークアダプタを介して結合されてもよい。
【0050】
コンピューティングデバイス500は、図に示すように多くの異なる形態で実現されてもよい。たとえばそれは、標準サーバ500aとして、またはそのようなサーバ500aのグループで複数回実現されてもよく、ラップトップコンピュータ500bとして、またはラックサーバシステム500cの一部として実現されてもよい。
【0051】
ここに説明されるシステムおよび手法のさまざまな実現化例は、デジタル電子および/または光学回路、集積回路、特別に設計されたASIC(application specific integrated circuit:特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せにおいて実現され得る。これらのさまざまな実現化例は、データおよび命令を記憶システムとの間で送受信するように結合された、専用または汎用であり得る少なくとも1つのプログラマブルプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含むプログラマブルシステム上で実行可能および/または解釈可能である1つ以上のコンピュータプログラムにおける実現を含み得る。
【0052】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られている)は、プログラマブルプロセッサのための機械命令を含み、高レベルの手続き型および/またはオブジェクト指向プログラミング言語で、および/またはアセンブリ/機械語で実現され得る。ここに使用されるように、「機械読取可能媒体」および「コンピュータ読取可能媒体」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、非一時的コンピュータ読取可能媒体、機器および/またはデバイス(たとえば磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(Programmable Logic Device:PLD))を指し、機械命令を機械読取可能信号として受信する機械読取可能媒体を含む。「機械読取可能信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0053】
この明細書で説明されるプロセスおよび論理フローは、1つ以上のプログラマブルプロセッサが、入力データに基づいて動作することおよび出力を生成することによって機能を行なうために1つ以上のコンピュータプログラムを実行することによって行なわれ得る。プロセスおよび論理フローはまた、たとえばFPGA(field programmable gate array:フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)といった専用論理回路によって行なわれ得る。コンピュータプログラムの実行にとって好適であるプロセッサは、一例として、汎用および専用マイクロプロセッサと、任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサとを含む。一般に、プロセッサは、命令およびデータを、読出専用メモリまたはランダムアクセスメモリまたはそれら双方から受信するであろう。コンピュータの本質的要素は、命令を行なうためのプロセッサと、命令およびデータを格納するための1つ以上のメモリデバイスとである。一般に、コンピュータはまた、たとえば磁気ディスク、光磁気ディスク、または光ディスクといった、データを格納するための1つ以上の大容量記憶装置を含むであろう。もしくは、当該大容量記憶装置からデータを受信し、または当該大容量記憶装置にデータを転送し、またはそれら双方を行なうように動作可能に結合されるであろう。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを格納するのに好適であるコンピュータ読取可能媒体は、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含み、一例として、半導体メモリ装置、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、たとえば内部ハードディスクまたはリムーバブルディスク;光磁気ディスク;ならびに、CD ROMおよびDVD-ROMディスクを含む。プロセッサおよびメモリは、専用論理回路によって補足され、または専用論理回路に組込まれ得る。
【0054】
ユーザとの対話を提供するために、この開示の1つ以上の局面は、情報をユーザに表示するためのディスプレイデバイス、たとえばCRT(cathode ray tube:陰極線管)、LCD(liquid crystal display:液晶ディスプレイ)モニター、またはタッチスクリーンと、オプションで、ユーザがコンピュータへの入力を提供できるようにするキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールとを有するコンピュータ上で実現され得る。他の種類のデバイスも同様に、ユーザとの対話を提供するために使用され得る。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得る。また、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、当該デバイスから文書を受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受信された要求に応答してウェブページを当該ウェブブラウザに送信することによって、ユーザと対話することができる。
【0055】
多くの実現化例が説明されてきた。にもかかわらず、この開示の精神および範囲から逸脱することなく、さまざまな変更を行なってもよいということが理解されるであろう。したがって、他の実現化例は、請求の範囲内にある。
図1
図2A
図2B
図2C
図2D
図2E
図3
図4
図5