(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-15
(45)【発行日】2023-12-25
(54)【発明の名称】順次スパースアテンションを用いた解釈可能な表形式データ学習
(51)【国際特許分類】
G06N 3/04 20230101AFI20231218BHJP
【FI】
G06N3/04
(21)【出願番号】P 2022506655
(86)(22)【出願日】2020-08-02
(86)【国際出願番号】 US2020044688
(87)【国際公開番号】W WO2021026045
(87)【国際公開日】2021-02-11
【審査請求日】2022-05-18
(32)【優先日】2019-08-02
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】アリク,セルジャン・オメール
(72)【発明者】
【氏名】フィスター,トーマス・ジョン
【審査官】北川 純次
(56)【参考文献】
【文献】米国特許出願公開第2018/0293462(US,A1)
【文献】米国特許出願公開第2018/0307978(US,A1)
【文献】KE, Guolin et al.,TabNN: A Universal Neural Network Solution for Tabular Data,OpenReview.net [online],2018年,pp. 1-14,[検索日 2023.07.18], インターネット:<URL:https://openreview.net/forum?id=r1eJssCqY7>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
方法であって、
データ処理ハードウェア(132)上で実行する深層表形式データ学習ネットワーク(TabNet)(200)において、特徴(206、206a-n)のセットを受信することと、
複数の順次処理ステップ(S、Si-n)の各々について、
前記データ処理ハードウェア(132)が、前記TabNet(200)のスパースマスク(214)を用いて、前記特徴(206、206a-n)のセットのうちの関連特徴(216、216a-n)のサブセットを選択することと、
前記データ処理ハードウェア(132)が、前記TabNet(200)の特徴トランスフォーマ(224)を用いて、前記関連特徴(216、216a-n)のサブセットを処理して、前記複数の順次処理ステップ(S、Si-n)における次の処理ステップ(S、Si+1)のために決定ステップ出力(208)および情報(226)を生成することと、
前記データ処理ハードウェア(132)が、前記情報(226)を前記次の処理ステップ(S、Si+1)に提供することと、
前記データ処理ハードウェア(132)が、前記複数の順次処理ステップ(S、Si-n)のために生成された前記決定ステップ出力(208、208a-n)を集約することによって、最終決定出力(208、208F)を決定することとを含み、
前記複数の順次処理ステップ(S、Si-n)の各々について、前記データ処理ハードウェア(132)が、前記TabNet(200)のアテンティブトランスフォーマ(212)を用いて、前記特徴(206、206a-n)のセット内の各特徴(206)が前記複数の順次処理ステップ(S、Si-n)の各先行する処理ステップ(S、Si-1)において何回処理されたかの集計を求めることをさらに含み、
前記情報(226)を前記次の処理ステップ(S、Si+1)に提供することは、提供された情報(226)に基づいて、前記特徴(206、206a-n)のセット内の各特徴(206)が前記複数の順次処理ステップ(S、Si-n)の各先行する処理ステップ(S、Si-1)において何回処理されたかの集計を求める、前記TabNet(200)のアテンティブトランスフォーマ(212)に、前記情報(226)を提供することを含む、方法(300)。
【請求項2】
前記アテンティブトランスフォーマ(212)は、完全接続層(FC)およびバッチ正規化(BN)を含む、請求項1に記載の方法(300)。
【請求項3】
前記特徴のセット(206)は、表形式データ(12)を含む、請求項1または2に記載の方法(300)。
【請求項4】
前記TabNet(200)の前記特徴トランスフォーマ(224)は、完全接続層(FC)と、バッチ正規化(BN)と、汎用線形ユニット(GLU)非線形性とを各々が含む複数のニューラルネットワーク層(L、La-n)を備える、請求項1~3のいずれか1項に記載の方法(300)。
【請求項5】
前記複数のニューラルネットワーク層(L、L1-n)の第1の部分は、前記複数の順次処理ステップ(S、Si-n)の各々にわたって共有され、前記複数のニューラルネットワーク層(L、L1-n)の残りの第2の部分は、前記複数の順次処理ステップ(S、Si-n)の対応する処理ステップ(S、Si)に依存する、請求項4に記載の方法(300)。
【請求項6】
前記関連特徴(216、216a-n)のサブセットを処理することによって生成された前記決定ステップ出力(208)は、前記TabNet(200)の調整された線形ユニット(ReLU)(240)を通過する、請求項1~5のいずれか1項に記載の方法(300)。
【請求項7】
前記関連特徴(216、216a-n)のサブセットは、表形式データ(12)の相互依存特徴列に対応する、請求項1~6のいずれか1項に記載の方法(300)。
【請求項8】
前記データ処理ハードウェア(132)において、1つ以上の欠落特徴(206、206M)を含む表形式データ(12)を受信することと、
前記データ処理ハードウェア(132)が、TabNet(200)での教師なし事前トレーニングを用いて、前記1つ以上の欠落特徴(206、206M)を予測することとをさらに含む、請求項1~7のいずれか1項に記載の方法(300)。
【請求項9】
システム(100)であって、
データ処理ハードウェア(132)と、
前記データ処理ハードウェア(132)と通信し、前記データ処理ハードウェア(132)上で実行されると前記データ処理ハードウェア(132)に動作を実行させる命令を記憶するメモリハードウェア(134)とを備え、前記動作は、
データ処理ハードウェア(132)上で実行する深層表形式データ学習ネットワーク(TabNet)(200)において、特徴(206、206a-n)のセットを受信することと、
複数の順次処理ステップ(S、Si-n)の各々について、
前記TabNet(200)のスパースマスク(214)を用いて、前記特徴(206、206a-n)のセットのうちの関連特徴(216、216a-n)のサブセットを選択することと、
前記TabNet(200)の特徴トランスフォーマ(224)を用いて、前記関連特徴(216、216a-n)のサブセットを処理して、前記複数の順次処理ステップ(S、Si-n)における次の処理ステップ(S、Si+1)のために決定ステップ出力(208)および情報(226)を生成することと、
前記情報(226)を前記次の処理ステップ(S、Si+1)に提供することと、
前記複数の順次処理ステップ(S、Si-n)のために生成された前記決定ステップ出力(208、208a-n)を集約することによって、最終決定出力(208、208F)を決定することとを含み、
前記動作は、前記複数の順次処理ステップ(S、Si-n)の各々について、前記TabNet(200)のアテンティブトランスフォーマ(212)を用いて、前記特徴(206、206a-n)のセット内の各特徴(206)が、前記複数の順次処理ステップ(S、Si-n)の各先行する処理ステップ(S、Si-1)において何回処理されたかの集計を求めることをさらに含み、
前記情報(226)を前記次の処理ステップ(S、Si+1)に提供することは、提供された情報(226)に基づいて、前記特徴(206、206a-n)のセット内の各特徴(206)が前記複数の順次処理ステップ(S、Si-n)の各先行する処理ステップ(S、Si-1)において何回処理されたかの集計を求める、前記TabNet(200)のアテンティブトランスフォーマ(212)に、前記情報(226)を提供することを含む、システム(100)。
【請求項10】
前記アテンティブトランスフォーマ(212)は、完全接続層(FC)およびバッチ正規化(BN)を含む、請求項9に記載のシステム(100)。
【請求項11】
前記特徴(206)のセットは、表形式データ(12)を含む、請求項9または10に記載のシステム(100)。
【請求項12】
前記TabNet(200)の前記特徴トランスフォーマ(224)は、完全接続層(FC)と、バッチ正規化(BN)と、汎用線形ユニット(GLU)非線形性とを各々が含む複数のニューラルネットワーク層(L、La-n)を備える、請求項9~11のいずれか1項に記載のシステム(100)。
【請求項13】
前記複数のニューラルネットワーク層(L、L1-n)の第1の部分は、前記複数の順次処理ステップ(S、Si-n)の各々にわたって共有され、前記複数のニューラルネットワーク層(L、L1-n)の残りの第2の部分は、前記複数の順次処理ステップ(S、Si-n)の対応する処理ステップ(S、Si)に依存する、請求項12に記載のシステム(100)。
【請求項14】
前記関連特徴(216、216a-n)のサブセットを処理することによって生成された前記決定ステップ出力(208)は、前記TabNet(200)の調整された線形ユニット(ReLU)(240)を通過する、請求項9~13のいずれか1項に記載のシステム(100)。
【請求項15】
前記関連特徴(216、216a-n)のサブセットは、表形式データ(12)の相互依存特徴列に対応する、請求項9~14のいずれか1項に記載のシステム(100)。
【請求項16】
前記動作はさらに、
1つ以上の欠落特徴(206、206M)を含む表形式データ(12)を受信することと、
前記TabNet(200)での教師なし事前トレーニングを用いて、前記1つ以上の欠落特徴(206、206M)を予測することとを含む、請求項9~15のいずれか1項に記載のシステム(100)。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、順次スパースアテンションを用いた解釈可能な表形式データ学習に関する。
【背景技術】
【0002】
背景
機械学習モデルは、入力を受信し、受信された入力に基づいて、出力、たとえば、予測された出力を生成する。いくつかの機械学習モデルは、パラメトリックモデルであり、受信した入力およびモデルのパラメータの値に基づいて出力を生成する。
【0003】
いくつかの機械学習モデルは、受信した入力に対する出力を生成するためにモデルの複数の層を用いる深層モデルである。たとえば、ディープニューラルネットワークは、出力層と、各々が受け取った入力に非線形変換を適用して出力を生成する1つ以上の隠れ層とを含む深層機械学習モデルである。
【発明の概要】
【発明が解決しようとする課題】
【0004】
概要
本開示の一態様は、表形式データを解釈する方法を提供する。本方法は、データ処理ハードウェア上で実行される深層表形式データ学習ネットワーク(TabNet)で、特徴のセットを受信することを含む。本方法はまた、複数の順次処理ステップの各々について、データ処理ハードウェアが、TabNetのスパースマスクを用いて、特徴のセットのうちの関連特徴のサブセットを選択することと、データ処理ハードウェアが、TabNetの特徴トランスフォーマを用いて、関連特徴のサブセットを処理して、複数の順次処理ステップにおける次の処理ステップのための決定ステップ出力および情報を生成することと、データ処理ハードウェアが、情報を次の処理ステップに提供することとを含む。本方法はまた、データ処理ハードウェアが、複数の順次処理ステップのために生成された決定ステップ出力を集約することによって、最終決定出力を決定することを含む。
【0005】
本開示の実現例は、以下の任意選択の特徴のうちの1つ以上を含み得る。いくつかの実現例では、本方法はまた、複数の処理ステップの各々について、データ処理ハードウェアが、TabNetのアテンティブトランスフォーマを用いて、特徴のセット内の各特徴が複数の順次処理ステップの各先行する処理ステップにおいて何回処理されたかの集計を求めるステップを含む。これらの実現例では、アテンティブトランスフォーマは、完全接続層およびバッチ正規化を含み得る。
【0006】
いくつかの例では、情報を次の処理ステップに提供することは、提供された情報に基づいて、特徴のセット内の各特徴が複数の順次処理ステップの各先行する処理ステップにおいて何回処理されたかの集計を求める、TabNetのアテンティブトランスフォーマに、情報を提供することを含む。特徴のセットは、表形式データを含み得る。任意選択で、TabNetの特徴トランスフォーマは、完全接続層、バッチ正規化、および汎用線形ユニット(GLU)非線形性を各々が含む複数のニューラルネットワーク層を含み得る。ここで、複数のニューラルネットワーク層の第1の部分は、複数の順次処理ステップの各々にわたって共有され得、複数のニューラルネットワーク層の残りの第2の部分は、複数の順次処理ステップのうちの対応する処理ステップに依存し得る。
【0007】
関連特徴のサブセットを処理することによって生成される決定ステップ出力は、TabNetの調整された線形ユニット(ReLU)を通過し得る。加えて、特徴のサブセットは、表形式データの相互依存特徴列に対応し得る。いくつかの実現例では、本方法はまた、データ処理ハードウェアにおいて、1つ以上のマスクされた特徴を含む表形式データを受信することと、データ処理ハードウェアが、教師なし事前トレーニングを用いて、1つ以上のマスクされた特徴を予測することとを含む。
【0008】
本開示の別の態様は、表形式データを解釈するためのシステムを提供する。本システムは、データ処理ハードウェアと、データ処理ハードウェアと通信するメモリハードウェアとを含む。メモリハードウェアは、データ処理ハードウェア上で実行されると、データ処理ハードウェアに、データ処理ハードウェア上で実行される深層表形式データ学習ネットワーク(TabNet)において特徴のセットを受信することを含む動作を実行させる命令を記憶する。動作はまた、複数の順次処理ステップの各々について、TabNetのスパースマスクを用いて、特徴のセットのうちの関連特徴のサブセットを選択することと、TabNetの特徴トランスフォーマを用いて、関連特徴のサブセットを処理して、複数の順次処理ステップにおける次の処理ステップのための決定ステップ出力および情報を生成することと、情報を次の処理ステップに提供することとを含む。動作はまた、複数の順次処理ステップのために生成された決定ステップ出力を集約することによって最終決定出力を決定することを含む。
【0009】
この態様は、以下の任意選択の特徴のうちの1つ以上を含むことができる。いくつかの実現例では、動作はまた、複数の処理ステップの各々について、TabNetのアテンティブトランスフォーマを用いて、特徴のセット内の各特徴が複数の順次処理ステップの各先行する処理ステップにおいて何回処理されたかの集計を求めることを含む。これらの実現例では、アテンティブトランスフォーマは、完全接続層およびバッチ正規化を含み得る。
【0010】
いくつかの例では、次の処理ステップに情報を提供することは、提供された情報に基づいて、特徴のセット内の各特徴が複数の順次処理ステップの各先行する処理ステップにおいて何回処理されたかの集計を求める、TabNetのアテンティブトランスフォーマに情報を提供することを含む。特徴のセットは、表形式データを含み得る。任意選択で、TabNetの特徴トランスフォーマは、完全接続層、バッチ正規化、および汎用線形ユニット(GLU)非線形性を各々が含む複数のニューラルネットワーク層を含み得る。ここで、複数のニューラルネットワーク層の第1の部分は、複数の順次処理ステップの各々にわたって共有され得、複数のニューラルネットワーク層の残りの第2の部分は、複数の順次処理ステップのうちの対応する処理ステップに依存し得る。
【0011】
関連特徴のサブセットを処理することによって生成される決定ステップ出力は、TabNetの調整された線形ユニット(ReLU)を通過し得る。加えて、特徴のサブセットは、表形式データの相互依存特徴列に対応し得る。いくつかの実現例では、動作はまた、1つ以上のマスクされた特徴を含む表形式データを受信することと、教師なし事前トレーニングを用いて1つ以上のマスクされた特徴を予測することとを含む。
【0012】
本開示の1つ以上の実現例の詳細は、添付の図面および以下の説明に記載されている。他の態様、特徴、および利点は、説明および図面、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0013】
【
図2A】表形式データを解釈するための例示的なモデルの概略図である。
【
図2B】表形式データを解釈するための例示的なモデルの概略図である。
【
図2C】表形式データを解釈するための例示的なモデルの概略図である。
【
図2D】表形式データを解釈するための例示的なモデルの概略図である。
【
図2E】表形式データを解釈するための例示的なモデルの概略図である。
【
図2F】表形式データを解釈するための例示的なモデルの概略図である。
【
図2G】表形式データを解釈するための例示的なモデルの概略図である。
【
図3】表形式データを解釈する方法のための動作の例示的な構成のフローチャートである。
【
図4】本明細書で説明されるシステムおよび方法を実現するために用いられ得る例示的なコンピューティングデバイスの概略図である
【発明を実施するための形態】
【0014】
様々な図面における同様の参照符号は、同様の要素を示す。
詳細な説明
ニューラルネットワークは、概して、画像、テキスト、およびオーディオ等のデータタイプを処理することに成功している。計算において最も一般的なデータタイプの1つであるにもかかわらず、後れを取っているように見えるさらに1つのタイプのデータは、表形式データである。表形式データとは、表形式にあるデータである。しばしば、ニューラルネットワークを用いる代わりに、表形式データは、解釈可能で、表現的に効率的で、トレーニングするのが高速である能力に起因して、決定木を用いる傾向がある。たとえば、決定木の解釈可能性により、特定の結果を単にコンテキストなしで受け取るのではなく、決定木がその特定の結果にどのように到達したかを理解できる。決定木が解釈可能であるのは、決定が決定木のノードを介して追跡され得るからである。表形式データのレルムでは、特定の結果をもたらした決定に関する懸念として顕在化する信頼問題があり得る。たとえば、ある従業員のボーナス報酬がある数字であるべきであると決定木がどのように予測したか、またはある申請者が特定のサイズのローンについて資格があるとローン処理ツールがどのように予測したか?これらの場合、決定の前後関係を調べたい者がいるかもしれない。
【0015】
従来、ニューラルネットワークは、ニューラルネットワークを過剰パラメータ化させ得るスタックされた層に基づく。過剰にパラメータ化されることによって、従来のニューラルネットワークは、表形式決定マニホールドについて最適な解を見つけることができない傾向がある。しかしながら、ニューラルネットワークは、表形式データに適切に適合される場合、他のデータタイプに対するそれらの性能に基づいて予想されるであろう同様の利益を提供し得る。たとえば、ニューラルネットワークは、大きなデータセットに特に有用であり、目的に向けて効率的な学習を導くためにそれらの入力への逆伝播を採用することができる。表形式データ用に設計されたニューラルネットワークでは、ニューラルネットワークはまた、複数のデータタイプ(たとえば、画像)を表形式データと組み合わせて効率的に符号化し、現在、ツリーベースの表形式データ学習方法の重要な側面である特徴エンジニアリングの必要性を最小限にし、現在、決定木モデルにとって困難であることがわかっている(たとえば、決定木は、分割点を動的に適応させることに苦心している)ストリーミングデータからの学習を可能にし、そして、ドメイン適応のための表現学習、生成モデリング、および半教師あり学習を可能にする。
【0016】
ニューラルネットワークの一般的な利益を組み込みながら、表形式データに関するニューラルネットワークの既存の欠点のいくつかに対処するために、TabNetは、決定木のような様式で学習するように設計されたニューラルネットワークである。言い換えれば、TabNetは、解釈可能性およびスパースな特徴選択を提供することを目的としている。TabNetは、いかなる特徴前処理も伴わずに生の表形式データを入力し、勾配降下ベースの最適化を用いてトレーニングされて、柔軟な表現を学習し、エンドツーエンド学習への柔軟な統合を可能にする。さらに、TabNetは、順次アテンションを用いて、各決定ステップで解釈する特徴を選択し、それを解釈可能にし、顕著な特徴に焦点を当てることを可能にする。特徴選択は、エンドツーエンド学習を用いた単一のディープラーニングアーキテクチャにおいて入力ごとに(すなわち、瞬間的に)異なり得る。このアプローチを用いて、TabNetは、分類および回帰問題のための種々のデータセットに関して、他の表形式学習モデル(たとえば、決定木モデル)よりも性能が優れているかまたは同等であることが証明されている。解釈可能性に関しては、TabNetは2種類の解釈可能性を提供する。それは、入力特徴の重要性およびそれらの組み合わせ方を視覚化するローカル解釈可能性を可能にすると同時に、トレーニングされたモデルに関連して各入力特徴の寄与を定量化するグローバル解釈可能性も有する。さらに、表形式データの場合、TabNetは、欠落した特徴を予測するために教師なし事前トレーニングなどの技法を用いることができる。
【0017】
特徴選択は、概して、各特徴が所与の予測に対してどの程度有用であるかに基づいて、より大きな特徴のプールから特徴のサブセットを選択するプロセスを指す。特徴がトレーニングデータセット全体に基づいて選択されるとき、このタイプの特徴選択は、グローバル特徴選択方法と呼ばれる。対照的に、インスタンスごとの特徴選択方法は、各入力に対して個々に特徴を選択することを指す。いくつかの方法は、所与の応答変数における選択された特徴間の相互情報を最大化するようにモデルをトレーニングするが、TabNetは、単一のモデルが特徴選択および出力マッピングをあわせて実行することを可能にする、エンドツーエンド学習における制御可能なスパース性を伴うソフト特徴選択を用いる。このソフト特徴選択能力は、次いで、順次アテンションを用いて、制御可能なスパース性で埋め込まれる。さらに、表形式データを異なるデータタイプにマッピングしようとするいくつかのモデルとは異なり、TabNetは、表形式データに対する教師付き学習または自己教師付き学習に対して順次アテンションを適用することができる。TabNetは、決定境界を表すために特徴選択プロセスを用いて特徴の線形結合が選択されるツリー状の機能を有するように設計される。TabNetは、トレーニングデータセットを用いて、スパースなインスタンス単位選択を学習し、各決定ステップが、選択された特徴に基づく決定の一部に寄与することができる順次マルチステップアーキテクチャを構築し、選択された特徴の非線形処理を実行し、より高い次元およびより多くのステップを介してアンサンブルを模倣する。このアプローチを用いて、TabNetは、ニューラルネットワークの利益を、表形式データのためのツリーベースの決定モデルの利益と結合する。
【0018】
図1は、データ管理環境100の一例を示す。ユーザ10に関連付けられるユーザデバイス110は、そのコンピューティングリソース112(たとえば、データ処理ハードウェア114および/またはメモリハードウェア116)の実行中にユーザデータ12を生成する。たとえば、ユーザ10は、ユーザデバイス110のデータ処理ハードウェア114上で動作する1つ以上のアプリケーション(たとえば、リアルタイムアプリケーション)を用いて、ユーザデータ12を生成する。いくつかの例では、ユーザデバイス110は、1つ以上の遠隔システム130と(たとえばネットワーク120を介して)通信する能力を有するそれ自体のコンピューティングリソース112を用いる(たとえばユーザ10の位置に関連する)ローカルデバイスである。加えて、または代替として、ユーザデバイス110は、ユーザ10のためにアプリケーションを動作させるために、遠隔リソース(たとえば、遠隔コンピューティングリソース132)へのそのアクセスを活用する。ユーザデバイス110の使用を通して生成されるユーザデータ12は、最初に、(たとえば、メモリハードウェア116のデータストレージ118などに)ローカルに記憶され、次いで、遠隔システム130に通信されてもよく、または作成時にネットワーク120を通して遠隔システム130に送信されてもよい。たとえば、ユーザデバイス110は、遠隔システム130を用いて、ユーザデータをストレージシステム140に通信する。
【0019】
いくつかの例では、ユーザ10は、遠隔システム130(たとえば、クラウドコンピューティング環境)のコンピューティングリソース132を、ユーザデータ12の記憶および/または管理のために利用する。これらの例では、遠隔システム130は、ユーザデータ12を、それが様々なユーザアプリケーションによって生成されているときに、受信することができる。ここで、ユーザデータ12は、ユーザ10の調整で遠隔システム130に送信されるユーザデータ12のデータストリーム(たとえば、記憶および/またはさらなる処理のために遠隔システム130に到着するデータの連続的または概して連続的な供給)または離散セットを指し得る。ユーザデバイス110と同様に、遠隔システム130は、遠隔データ処理ハードウェア134(たとえば、サーバおよび/またはCPU)ならびにメモリハードウェア136(たとえば、ディスク、データベース、または他の形態のデータストレージ)等のコンピューティングリソース132を含む。
【0020】
いくつかの構成では、遠隔コンピューティングリソース132は、遠隔システム130と関連付けられ、および/または通信する、種々のシステムによって利用されるリソースである。
図1は、データストレージシステム140およびマネージャ150と通信する遠隔システム130を示すが、遠隔システム130は、他のデータ関連システム(たとえば、クエリシステムおよび/または分析システム)と通信してもよい。遠隔システム130は、そのコンピューティングリソース132とともに、マネージャ150および/またはデータ処理モデル200の1つ以上の機能をホストするように構成されてもよい。いくつかの実現例では、遠隔システム130は分散型システムであり、そのコンピューティングリソース132は、ネットワーク120を介してアクセス可能な1つ以上の位置にわたって分散される。
【0021】
いくつかの例では、ストレージシステム140は、ユーザ10(または複数のユーザ)のためのデータストレージの手段としてデータウェアハウス142(たとえば、データストアおよび/または複数のデータベース)を動作させるように構成される。概して、データウェアハウス142は、1つ以上のソースからのデータを記憶し、自身のソースからのデータを分析、報告、および/または統合するように設計され得る。データウェアハウス142は、ユーザ(たとえば、組織ユーザ)が、中央ストレージデポジトリおよびストレージデータアクセスポイントを有することを可能にする。データウェアハウス142等の中央デポジトリにユーザデータ12を含むことによって、データウェアハウス142は、(たとえば、分析システムによる)データ分析および/またはデータ報告等の機能のためのデータ検索を単純化してもよい。さらに、データウェアハウス142は、ユーザ10(たとえば、組織ユーザ)が、大量の履歴データを記憶し、データ傾向を理解することができるように、かなりの量のデータを記憶するように構成されてもよい。データウェアハウス142は、ユーザのデータ12のための主要または唯一のデータストレージデポジトリであり得るため、ストレージシステム140は、しばしば、ユーザ10と関連付けられるユーザデバイス110から大量のデータを受信し得る。加えて、または代替として、ストレージシステム140として、ストレージシステム140および/またはストレージウェアハウス142は、データセキュリティ(たとえば、データ冗長性)のため、単一のデータソースからの複数のユーザ(たとえば、組織の複数の従業員)のため、および/または同時マルチユーザアクセスのために、構成され得る。いくつかの構成では、データウェアハウス142は、データが、デフォルトで、新たな着信データによって上書きまたは消去されないように、永続的および/または不揮発性である。
【0022】
概して言えば、データストレージシステム140は、表形式データと称されるテーブル形式でユーザデータ12を受信し、ユーザデータ12は、テーブルの行および列を埋める。表形式データでは、テーブル内のユーザデータ12は、ユーザデータ12に関連付けられたスキーマまたは見出しに対応する行および列を有し得る。たとえば、ユーザデータ12は、ユーザ10によって行われた商取引を指してもよい。この例では、ユーザデータ12は、売り手、買い手、取引価格、取引数量、およびユーザ10がその取引に関して収集する他のトランザクションデータに関する列を含むことができる。ここで、各行は、トランザクション番号もしくは識別子および/もしくはトランザクションに関連付けられる時間エントリなどの見出しまたはスキーマを有することができる。ストレージシステム140は、特定のフォーマット(たとえば、トランザクションテーブルフォーマット)でユーザデータ12を受信し得るので、ストレージシステム140は、(たとえば、ユーザデータ12にさらなるコンテキストまたは定義を提供する、)ユーザデータ12に関連付けられたフォーマットの要素(たとえば、関係、見出し、または他のスキーマ)が、データストレージシステム140と通信する他のシステム(たとえば、クエリシステムまたはデータ分析システムなどのデータ検索システム)にアクセス可能であるように、ユーザデータ12を記憶するように構成される。
【0023】
図1をさらに参照すると、データ管理環境100はマネージャ150も含む。マネージャ150は、概して、データ記憶を調整する(たとえば、最適化する)ように構成される。マネージャ150は、データ処理モデル200(TabNet200とも呼ばれる)を用いてデータストレージシステム140と通信するシステムに関連する動作を実行および/または調整することによって、この最適化を実行することができる。ここで、データ記憶を行っている間に、TabNet200は、マネージャ150において受信された表形式データの態様を学習し得る機械学習モデルとして構成される。この学習に基づいて、TabNet200は、様々な管理機能を支援することができる。たとえば、TabNet200は、ユーザデータ12内の欠落データまたは不完全なデータ(欠落特徴と呼ばれる)を識別し、欠落データに対するデータエントリを予測または生成(または提案)するように構成される。同様に、不完全なデータのエントリを予測する代わりに、ユーザ10は、(マネージャ150を介して)TabNet200に対して、ユーザ10について記憶された他のデータに基づいてエントリが何であるべきかを予測することを要求することができる。たとえば、ユーザ10は、新たな従業員に対して、その従業員の以前の経験および技能に基づいて、どれだけ支払うべきかを知りたい企業である。ここで、TabNet200は、ストレージシステム140に記憶された従業員経理ユーザデータ12を解釈し、それは、たとえば、給与、役職、部門、経験年数等を含み、それが解釈するユーザデータ12に基づいて、新たな従業員の給与の予測を出力するであろう。いくつかの例では、マネージャ150は、ユーザデータ12の列間の関係を依然として保持しながら、ユーザデータ12がどのように記憶され得るかを理解するために、TabNet200を用いてユーザデータ12の相互依存性を解釈する。言い換えれば、TabNet200は、記憶目的でユーザデータ12をどこで分割すべきかを示す分割点を識別することができる。
【0024】
図1などのいくつかの実現例では、マネージャ150は、ユーザ10からユーザデータ12を受信し、ストレージシステム140における記憶動作を容易にするように構成される。たとえば、マネージャ150は、受信時にユーザデータ12を取り込み、ユーザデータ12をストレージ最適化フォーマットに変換することができる。ここで、「取り込み」とは、システムが取り込まれたユーザデータを(たとえば、クエリシステムおよび/または分析システムによって)用いることを可能にするために、ユーザデータ12をストレージシステム140に(たとえば、データウェアハウス142に)取得および/またはインポートすることを指す。取り込み中、マネージャ150は、TabNet200を用いて、ユーザデータ12のフォーマットを検証し(たとえば、ストレージシステム140の許容可能なフォーマットに準拠する)、および/またはユーザデータ12をデータウェアハウス142(たとえば、ユーザ10のユーザデータ12に対して指定されたデータウェアハウス142内の特定のデータ記憶位置)にルーティングすることができる。
【0025】
図2A~
図2Gを参照すると、TabNet200は概して、エンコーダ202とデコーダ204とを含む。TabNet200は、エンコーダ202において特徴206、206a-nのセットを受信し、各処理決定ステップSにおいて特徴206a-nのサブセット216を決定ステップ出力208に処理し、決定ステップ出力208(すなわち、複数の処理された特徴表現)を最終決定出力208
Fに集約するように構成される。表形式データは、一般に、より一般的にはテーブルエントリと呼ばれる複数の特徴206a-nを有するテーブルフォーマットにおけるデータを指す。概して、テーブルフォーマットは、一連の列と、各列に対するいくつかの行エントリとを含む。特定の列に対する各行エントリは、典型的には、列の見出しに関連する。言い換えれば、「給与」の見出し(たとえば、カテゴリ的見出し)を有する列は、給与を表す数値の行エントリを有する。テーブルエントリは、本質的に数値的またはカテゴリ的であり得るので、同様に、特徴206は、数値的特徴206またはカテゴリ的特徴206を指し得る。たとえば、
図2Aは、ユーザデータ12のテーブルに対応する複数の特徴206、206a-nを示し、ここで、「年齢」、「婚姻ステータス」、「学位」、「職務」、「部門」、「現在の給与」、「追加の補償」、「以前の給与」、「年次休暇 」および「雇用日」の見出しはカテゴリ的特徴206であり、「年齢」、「現在の給与」、「前年追加補償」、「以前の給与」、「年次休暇 」および「雇用日」に対応する行エントリデータのいくつかは数値的特徴206である。特徴206が数値的特徴206である場合、TabNet200は、この数値的特徴206をその生の形態で用いるように構成され得る。特徴206がカテゴリ的特徴206である場合、TabNet200は、カテゴリ的特徴206をトレーニング可能な埋め込みにマッピングするように構成され得る。ここで、TabNet200は、典型的には、特徴206に対してグローバルな正規化を実行せず、むしろ、処理中に(たとえば、特徴トランスフォーマ222および/またはアテンティブトランスフォーマ212で)バッチ正規化(BN)を実行する。各決定ステップSは、同じ次元サイズの特徴206を受け取ることができる。
【0026】
ここで、エンコーダ202は、分類または回帰のいずれかを実行することができる。エンコーダ202は、概して、各決定ステップSにおいて特徴セレクタ210および特徴プロセッサ220を含む。エンコーダ202は、N個の決定ステップSを用いてマルチステップ処理(たとえば、
図2Cに示される)を実行する。複数の決定ステップSでは、現在のステップS
iに対する入力は、前のステップS
i-1からの処理情報である。たとえば、
図2Aでは、特徴セレクタ210は最初に(たとえば、前のステップS
i-1からの特徴206のサブセット216に関して)処理情報を考慮しており、特徴プロセッサ220は(たとえば、現在のステップS
iの特徴206のサブセット216に関して)処理情報を生成している。各決定ステップS
i-nの決定出力208は、次いで、最終決定出力208
Fを生成するために用いられる。たとえば、
図2Aは、最終決定出力208
Fを形成する3つのステップSからの決定出力208a-cを示す。
【0027】
特徴選択は、概して、応答変数(最終決定出力208F)を記述するために、低減された数の説明変数(たとえば、特徴206)を選択するプロセスを指す。特徴選択のプロセスは、TabNet200が処理することを決定する変数(たとえば、特徴206)が実際に所望の決定出力に関連することを保証するので、特徴選択は、過剰適合に関する問題を防止するのに役立つ。特徴選択を用いることによって、TabNet200は、モデルが意味のある変数を用い、冗長もしくは無意味な変数を除去または無視することがわかるとき、モデルが概して解釈するのがより容易である、という事実によって、解釈可能性も獲得する。たとえば、TabNet200が年末ボーナス報酬を予測するように構成される場合、従業員の婚姻ステータスに対応する特徴206(または変数)は、現在の給与および職務役割などの特徴206と比較すると、あまり重要ではないか、または潜在的に意味がない。
【0028】
いくつかの例では、特徴セレクタ210は、複数の特徴206を受け取り、複数の特徴206から所望の決定出力に対応する顕著な特徴206を選択して、関連特徴206Rのサブセット216を形成する。たとえば、
図2Aの例では、所望の決定出力が複数の特徴206からの年末ボーナス報酬の予測である場合、特徴セレクタ210は、関連特徴206Rを、職業関連特徴206として特徴206の第1のサブセット216、216aとして識別し、会計関連特徴206として特徴206の第2のサブセット216、216bとして識別する。
【0029】
いくつかの実現例では、特徴選択を実行するために、特徴セレクタ210は、アテンティブトランスフォーマ212と特徴マスク214とを含む。たとえば、特徴マスク214は、顕著な特徴206のソフト選択のための学習可能マスクである。いくつかの例では、特徴マスク214は、スパース選択(スパースマスクと呼ばれる)を用いて、決定ステップSの学習能力が無関係の特徴206で無駄にならないように、最も顕著な特徴206(たとえば、
図2Aにおいて関連特徴206R、206Ra-gとして示される)を選択する。これは、各特徴206が有意義に選択されるので、TabNet200がパラメータ効率的になることを可能にする。たとえば、「職業関連」および「会計関連」の第1および第2のサブセット216a-bは、「年齢」、「婚姻ステータス」、または「雇用日」などの他の特徴206と比較して、従業員の年末ボーナス報酬の値に有意義に影響を及ぼし得る。
【0030】
いくつかの構成では、アテンティブトランスフォーマ212は、先行するステップS
i-1からの(たとえば、特徴プロセッサ220からの)処理された特徴222に基づいてマスク214を取得する。スパースマスク214を得るために、アテンティブトランスフォーマ212は、(たとえば、
図2Cに示すように)スパースマックス正規化を用いることができる。ここで、スパースマックスとは、ソフトマックスのような従来の活性化関数に類似しているが、スパースマックスがスパース確率(すなわち、少数の非ゼロ確率と、ゼロ確率を有する大部分の項)を出力することができる点で異なる。たとえば、スパースマックスは、特徴206に対する確率を生成するが、(ソフトマックスのように)すべての入力特徴206に対して非ゼロ確率を生成する代わりに、スパースマックスは、サブセット216の関連特徴206Rのみに対して非ゼロ確率を生成する。残りの、または関連しない特徴206は、概して、スパースマックス関数がゼロに設定する小さい確率を有する特徴206である。したがって、スパースマックス正規化は、確率的単体上へのユークリッド投影を促進する。スパースマックス正規化は、大多数のデータセットに対するスパースな特徴選択の目標を有しながら、効率的な特徴選択性能を可能にする。たとえば、以下の式は、アテンティブトランスフォーマ212からのマスク関数を表し得る:
【0031】
【0032】
ここで、P[i-1]は前のスケール項であり、hiはトレーニング可能な関数であり、a[i-1]は前のステップSi-1からの処理された特徴222を指す。P[i]は、以下のように表され得る:
【0033】
【0034】
ここで、yは緩和パラメータであり、y=1の場合、特徴206は1つの決定ステップSにおいてのみ用いられるように強制される。したがって、yが増加すると、複数の決定ステップSにおいて特徴206を用いるよう、より多くの柔軟性が存在する。いくつかの実現例では、式(1)によって示されるように、アテンティブトランスフォーマ212は、トレーニング可能な関数を用いることによってトレーニング可能なマスクを取得する。たとえば、アテンティブトランスフォーマ212は、特徴206を受け取り、前のスケール情報で変調される単一層L,L
1マッピングを介して特徴206を処理して、前の決定ステップSにおいて特定の特徴206にどのくらいのアテンションが以前に集中していたかを理解する。言い換えれば、前のスケールは、すべての前のステップS
i-1について、各特徴206が、現在の決定ステップS
iの前に特徴処理のために関連特徴206Rとしてエンコーダ202によってどれだけ用いられたかを(たとえば集約に基づいて)判断する。
図2Cなどのいくつかの例では、アテンティブトランスフォーマ212の単層L
1構造は、バッチ正規化(BN)を実行する完全接続層(FC)を含む。いくつかの例では、関連特徴206Rのサブセット216のために選択される特徴206のスパース性は、エントロピーの形態でスパース性正則化を用いて制御され得る。たとえば、以下の損失方程式を用いてスパース性を制御することができる:
【0035】
【0036】
ここで、εは数値安定性のための小さい数であり、Bはバッチサイズであり、Dは特徴206の次元サイズである。次いで、スパース性の実現は、TabNet200の全体的な損失と組み合わされてもよい。
【0037】
特徴プロセッサ220は、特徴206のサブセット216のフィルタリングされた特徴206を、処理された特徴222に処理して、決定ステップ出力208を形成するように構成される。特徴プロセッサ220が特徴206のサブセット216を処理された特徴222に処理すると、決定ステップ出力208、および決定ステップ情報226と呼ばれる、決定ステップSに関する情報が、後続の決定ステップS
i+1に供給される。たとえば、
図2B~
図2Dは、特徴プロセッサ220の特徴トランスフォーマ224に続く分割を示す。
図2Dに示されるように、分割は、現在のステップS
i(たとえば、第1のステップS
1として示される)から後続のステップS
i+1(たとえば、第2のステップS
2として示される)の特徴セレクタ210に処理された特徴222を供給する。たとえば、分割は、処理された特徴222を第1のステップS
1から特徴セレクタ210のアテンティブトランスフォーマ212に供給する。アテンティブトランスフォーマ212は、この処理された特徴222を、たとえば、(たとえば、
図2Cに示される)それの前のスケール機能において用いて、第2のステップS
2においてどの特徴206が関連特徴206Rのサブセット216として選択されるべきかを判断することができる。
【0038】
いくつかの例では、高容量でパラメータ効率的かつロバストな学習を保証するために、特徴プロセッサ220は特徴トランスフォーマ224を含む。特徴トランスフォーマ224は、複数の処理層L、L
1-nを含み得る。いくつかの実現例では、特徴トランスフォーマ224は、特徴トランスフォーマ224がすべての決定ステップS
i-Nにわたって共有するいくつかの層L(たとえば、
図2Cにおいて第1および第2の層L、L
1-2として示される)ならびにいくつかの決定ステップ依存層L(たとえば、
図2Cにおいて第3および第4の層L、L
3-4として示される)とともに構成される。共有層および決定ステップ依存層Lを用いて、特徴トランスフォーマ224は、層L間の連結を実行することができる。たとえば、
図2Cは、2つの共有層L、L
1-2を示し、各共有層Lは、完全接続層(FC)と、それに続くバッチ正規化BNおよびゲート線形ユニット(GLU)非線形性とを含む。ここで、特徴トランスフォーマ224は、各共有層L
1-2を互いに連結し、その連結を決定ステップ依存層L
3-4に供給する。この例では、特徴トランスフォーマ224は、2つの決定ステップ依存層L
3-4を含み、共有層Lと同様に、各決定ステップ依存層Lは、完全接続層(FC)と、それに続くバッチ正規化BNおよびゲート線形ユニット(GLU)非線形性を含む。各決定ステップ依存層L
3-4は、共用層L
1-2と連結されるとともに、互いに連結されてもよい。これらの共有された決定ステップ層Lおよび決定ステップ依存層Lを用いて、特徴トランスフォーマ224は、特徴206のサブセット216(たとえば、サブセット216の各関連特徴206R)を、処理された特徴222に処理する。
【0039】
いくつかの構成では、決定ステップSごとに決定埋め込み242を判断するために、特徴プロセッサ220は、調整された線形ユニット(RELU)240を含む。RELUは、すべての正の値の間に線形関係を生成し、すべての負の値に対してゼロを生成するタイプの活性化関数である。ここで、RELU240は、スパースに活性化される(すなわち、正の値でのみ活性化される)ため、スパース学習に対して良好に機能する。これらの構成では、RELU240は、処理された特徴222に対する決定ステップ出力208を受信し、決定ステップ出力208を表すための埋め込み(たとえば、決定ステップ埋め込み242)を生成する。たとえば、決定埋め込み242は、
【0040】
【0041】
として構築することができ、ここで、Nstepsは決定ステップの総数である。いくつかの例では、RELU240は、現在のステップSiからの決定ステップ埋め込み242を、後続および/または前の決定ステップSからの決定ステップ埋め込み242と組み合わされる(たとえば連結される)よう出力して、決定埋め込み242を認識可能な特徴206に復号するために、デコーダ204に通信される、すべてのステップSについての全体的な決定埋め込み242を形成する。
【0042】
いくつかの実現例では、RELU240はまた、決定ステップ情報226をアグリゲータ250に渡す。ここで、アグリゲータ250は、各決定ステップSから決定ステップ情報226を受信するように構成される。決定ステップ情報226を用いて、アグリゲータ250は、この情報を互いに連結することができる。いくつかの例では、アグリゲータ250は、特徴選択210に関する情報(たとえば、マスク214からのフィードバックラインとして
図2Cおよび
図2Dに示されている)も受信する。ここで、決定ステップ情報226および/または特徴選択情報の集約は、TabNet200が最終決定208
Fに関する何らかのコンテキストをユーザ10またはマネージャ150に提供することができるように、TabNet200の機能へのさらなる解釈可能性のために用いられ得る。言い換えれば、TabNet200は、年末ボーナス報酬を予測するための関連特徴206Rが職業関連(たとえば、関連特徴206Ra-c)および会計関連(たとえば、関連特徴206Rd-g)であったことをユーザ10またはマネージャ150に知らせることができる。
【0043】
TabNet200のデコーダ204は、決定出力208の符号化された表現を受信し、符号化された表現を解釈可能な決定出力208に復号するように構成される。たとえば、デコーダ204は、符号化された表現が、エンコーダ機能にとって効率的なコンピュータ可読符号化表現から、決定出力208の人間可読復号表現(すなわち、再構築された特徴)に変換されることを可能にする。
図2B、
図2C、および
図2Eを参照すると、デコーダ204は、エンコーダ202からの決定出力の符号化された表現として決定埋め込み242を受信し、特徴トランスフォーマ224を用いて決定埋め込み242を決定出力208に変換する。たとえば、デコーダ204は、符号化された表現(たとえば、決定埋め込み242)を復号するために完全接続(FC)層が後に続く1つ以上の特徴トランスフォーマ224を含む。いくつかの例では、エンコーダ202は、デコーダ204が各決定ステップ出力208を最終決定出力208
Fに組み合わせるように構成されるように、各ステップSにおける決定埋め込み242をデコーダ204に通信する。例えば、デコーダ204は、線形マッピングを適用して、最終決定208
Fを取得することができる。複数ステップ例として、
図2Eは、エンコーダ202が、第1のステップS
1および第2のステップS
2からの2つの決定ステップ出力208を最終決定出力208
Fに連結することを示す。
【0044】
図2Gは、TabNet200の機能の実世界の例を示す。ここで、ユーザ10は、ユーザデータ12を(たとえば、マネージャ150を介して)TabNet200に提供する。ユーザデータ12は、年齢、資本利得、教育、職業、性別、および関係に対応する特徴206を有する表形式である。ここで、ユーザ10は、TabNet200を用いて、データの各行に対応する個人の各々が5万ドルを超える年収を有すると予測されるかどうかを予測する。図示されていないが、TabNet200は、推論(すなわち、リアルタイムアプリケーション)に先立って、最初に、特徴206のセットに基づく収入のいくつかの局面を示す、実際の収入情報または正解ラベルを伴う、トレーニング例のセット上で、トレーニングされるであろう。一旦トレーニングプロセスがTabNet200をトレーニングすると、TabNet200は、
図2Gに示されるユーザデータ12を複数の特徴206とともに受信し、TabNet200がユーザデータ12から学習したことに基づいて、各個人が5万を超える収入を有するかどうかの予測(たとえば、デコーダ204の最終決定出力208
F)を生成することができる。
【0045】
概して、TabNet200は、特定のタスクのための教師あり学習を実行する。さらにいくつかの例では、教師あり学習の前に教師なし表現学習を実行することは、特定のタスクを教師あり学習するためのTabNet200の機能を改善する。たとえば、TabNet200は、表形式データにおいて欠落した特徴206、206Mを予測するタスクのために用いられ得る。これは、多くの場合、実世界の表形式データセットが、同じ列または関連する相互依存列内の他の関連特徴206に基づいて欠落特徴206Mを予測するためにTabNet200が理解することを学習することができる相互依存特徴列を有するため、有利であり得る。たとえば、
図2Gは、いくつかの欠落特徴206、206M、206Ma-nを有するテーブルエントリとしてユーザデータ12を示す。ここでは、教育レベルに関する欠落エントリについて、TabNet200は、職業などの関連特徴206を用いて欠落特徴206Mを予測し得る。同様に、性別に関する欠落特徴206Mは、他の性別エントリから、関係エントリと組み合わせて予測されてもよい。教師なし表現学習を実行するために、TabNet200は、自己教師あり目的を事前トレーナ260とともに用いる。たとえば、Se∈{0,1}BxDのバイナリマスクを用いて、TabNet200のエンコーダ202は、(1-S)・fを入力し、デコーダ204は、再構築された特徴S・fを出力する。ここで、エンコーダ202は、TabNet200が既知の特徴206を強調し、デコーダの完全結合層(FC)がSで乗算されて、未知のまたは欠落した特徴206Mを単に出力するように、前のスケール項をP[0]=(1-S)になるように初期化してもよい。教師なし表現学習では、正解データの母集団標準偏差での正規化は、特徴206について潜在的に非常に異なる値を切り捨てるために重要であり得る。
【0046】
図3は、表形式データを解釈する方法300のための動作の例示的な構成のフローチャートである。動作302において、方法300は、データ処理ハードウェア132上で実行される深層表形式データ学習ネットワーク(TabNet)200において、特徴206、206a-nのセットを受信する。動作304において、方法300は、複数の順次処理ステップS、S
i-nの各々に対してサブ動作304a-cを実行する。動作304aにおいて、方法300は、TabNet200のスパースマスク214を用いて、特徴206、206a-nのセットの関連特徴216、216a-nのサブセットを選択する。動作304bにおいて、方法300は、TabNet200の特徴トランスフォーマ224を用いて、関連特徴216、216a-nのサブセットを処理して、複数の順次処理ステップS、S
i-nにおける次の処理ステップS、S
i+1のために決定ステップ出力208および情報226を生成する。動作304cにおいて、方法300は、情報226を次の処理ステップS、S
i+1に提供する。動作306において、方法300は、複数の順次処理ステップS、S
i-nのために生成された決定ステップ出力208、208a-nを集約することによって最終決定出力208、208
Fを決定する。
【0047】
図4は、本明細書で説明するシステム(たとえば、マネージャ150および/またはTabNet200)ならびに方法(たとえば、方法300)を実現するために用いられ得る例示的なコンピューティングデバイス400の概略図である。コンピューティングデバイス400は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなど、様々な形態のデジタルコンピュータを表すことが意図されている。本明細書に示された構成要素、それらの接続および関係、ならびにそれらの機能は、例示的なものにすぎず、本明細書に記載および/または特許請求される本発明の実現例を限定するものではない。
【0048】
コンピューティングデバイス400は、プロセッサ410と、メモリ420と、ストレージデバイス430と、メモリ420および高速拡張ポート450に接続する高速インターフェイス/コントローラ440と、低速バス470およびストレージデバイス430に接続する低速インターフェイス/コントローラ460とを含む。コンポーネント410,420,430,440,450,および460の各々は、様々なバスを用いて相互接続され、共通のマザーボード上に、または必要に応じて他の方法で実現され得る。プロセッサ410は、高速インターフェイス440に結合されたディスプレイ480などの外部入力/出力装置上にグラフィカルユーザインターフェイス(GUI)のためのグラフィカル情報を表示するために、メモリ420またはストレージデバイス430に記憶された命令を含む、コンピューティングデバイス400内で実行するための命令を処理することができる。他の実現例では、複数のプロセッサおよび/または複数のバスが、必要に応じて、複数のメモリおよび複数のタイプのメモリとともに用いられ得る。また、複数のコンピューティングデバイス400が接続されてもよく、各デバイスは、(たとえば、サーババンクとして、ブレードサーバのグループとして、またはマルチプロセッサシステムとして)必要な動作の部分を提供する。
【0049】
メモリ420は、コンピューティングデバイス400内で情報を非一時的に記憶する。メモリ420は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであってもよい。非一時的メモリ420は、コンピューティングデバイス400による使用のためにプログラム(たとえば、命令のシーケンス)またはデータ(たとえば、プログラム状態情報)を一時的または永続的に記憶するために用いられる物理デバイスであり得る。不揮発性メモリの例は、フラッシュメモリおよび読み出し専用メモリ(ROM)/プログラマブル読み出し専用メモリ(PROM)/消去可能プログラマブル読み出し専用メモリ(EPROM)/電子的消去可能プログラマブル読み出し専用メモリ(EEPROM)(たとえば、ブートプログラムなどのファームウェアに典型的に用いられる)を含むが、これらに限定されない。揮発性メモリの例には、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、ならびにディスクまたはテープが含まれるが、これらに限定されない。
【0050】
ストレージデバイス430は、コンピューティングデバイス400のために大容量ストレージを提供することができる。いくつかの実現例では、ストレージデバイス430はコンピュータ可読媒体である。様々な異なる実現例では、ストレージデバイス430は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他の構成におけるデバイスを含むデバイスのアレイであり得る。さらなる実現例では、コンピュータプログラム製品は、情報担体において有形に具現化される。コンピュータプログラム製品は、実行されると上述の方法などの1つ以上の方法を実行する命令を含む。情報担体は、メモリ420、ストレージデバイス430、もしくはプロセッサ410上のメモリなどの、コンピュータ可読媒体または機械可読媒体である。
【0051】
高速コントローラ440は、コンピューティングデバイス400のための帯域幅集約型動作を管理し、低速コントローラ460は、低帯域幅集約型動作を管理する。そのような役割の割り当ては、例示的なものにすぎない。いくつかの実現例では、高速コントローラ440は、メモリ420、ディスプレイ480(たとえば、グラフィックスプロセッサまたはアクセラレータを通して)、および様々な拡張カード(図示せず)を受け入れ得る高速拡張ポート450に結合される。いくつかの実現例では、低速コントローラ460は、ストレージデバイス430および低速拡張ポート490に結合される。様々な通信ポート(たとえば、USB、Bluetooth(登録商標)、イーサネット(登録商標)、無線イーサネット(登録商標))を含み得る低速拡張ポート490は、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータなどのネットワーキングデバイスなどの1つ以上の入力/出力装置に、たとえばネットワークアダプタを介して結合され得る。
【0052】
コンピューティングデバイス400は、図に示されるように、いくつかの異なる形態で実現され得る。たとえば、それは、標準的なサーバ400aとして、もしくはそのようなサーバ400aのグループにおいて複数回、ラップトップコンピュータ400bとして、またはラックサーバシステム400cの一部として実現され得る。
【0053】
本明細書に記載のシステムおよび技術のさまざまな実現例は、デジタル電子および/もしくは光学回路系、集積回路系、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、ならびに/またはそれらの組合せで実現され得る。これらのさまざまな実現例は、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムにおける実現例を含んでいてもよく、当該プロセッサは専用であっても汎用であってもよく、ストレージシステム、少なくとも1つの入力装置、および少なくとも1つの出力装置からデータおよび命令を受信するように、かつこれらにデータおよび命令を送信するように結合されている。
【0054】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られる)は、プログラム可能なプロセッサのための機械命令を含み、高水準手続き型および/もしくはオブジェクト指向型プログラミング言語で、ならびに/またはアセンブリ/機械言語で実装することができる。本明細書で使用されるとき、用語「機械可読媒体」および「コンピュータ可読媒体」は、機械命令を機械可読信号として受信する機械可読媒体を含む、機械命令および/またはデータをプログラマブルプロセッサに提供するよう使用される任意のコンピュータプログラム製品、非一時的コンピュータ可読媒体、装置および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。「機械可読信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0055】
本明細書に記載されるプロセスおよび論理フローは、入力データを操作し出力を生成することにより機能を実行するよう1つ以上のプログラマブルプロセッサが1つ以上のコンピュータプログラムを実行することによって実行され得る。本プロセスおよび論理フローは、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によっても実行され得る。コンピュータプログラムの実行に好適であるプロセッサは、例として、汎用マイクロプロセッサおよび特殊目的マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含んでもよい。一般に、プロセッサは、リードオンリメモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受取ることになる。コンピュータの必須要素は、命令を実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つ以上のメモリデバイスである。一般に、コンピュータはさらに、たとえば磁気ディスク、光磁気ディスクまたは光ディスクといった、データを格納するための1つ以上の大容量記憶装置を含むか、当該1つ以上の大容量記憶装置からデータを受取るかもしくは当該1つ以上の大容量記憶装置にデータを転送するよう作動的に結合されるか、またはその両方を行う。しかしながら、コンピュータはそのような装置を有する必要はない。コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスク;光磁気ディスク;およびCD ROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体、ならびにメモリデバイスを含む。プロセッサおよびメモリは、特殊目的論理回路によって補足され得るか、または特殊目的論理回路に組み込まれ得る。
【0056】
ユーザとの対話を提供するために、本開示の1つ以上の局面は、たとえばCRT(陰極線管)、LCD(液晶ディスプレイ)モニタまたはタッチスクリーンといったユーザに対して情報を表示するための表示装置と、選択肢的にキーボードおよびたとえばマウス、トラックボールといったユーザがコンピュータに入力を提供可能であるポインティングデバイスとを有するコンピュータ上で実現され得る。他の種類のデバイスを用いて、ユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形態で受信することができる。加えて、コンピュータは、ユーザが使用するデバイスにドキュメントを送信し、ユーザが使用するデバイスからドキュメントを受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受信された要求に応答してそのウェブブラウザにウェブページを送信することによって、ユーザと対話し得る。
【0057】
いくつかの実現例について説明した。それにもかかわらず、本開示の精神および範囲から逸脱することなく、様々な修正がなされ得ることが理解されるであろう。したがって、他の実現例は特許請求の範囲内にある。