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

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

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

<>
  • 特許-ブースティングおよび行列因数分解 図1
  • 特許-ブースティングおよび行列因数分解 図2
  • 特許-ブースティングおよび行列因数分解 図3
  • 特許-ブースティングおよび行列因数分解 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-30
(45)【発行日】2023-11-08
(54)【発明の名称】ブースティングおよび行列因数分解
(51)【国際特許分類】
   G06N 20/00 20190101AFI20231031BHJP
   G06N 3/09 20230101ALI20231031BHJP
   G06F 17/14 20060101ALI20231031BHJP
【FI】
G06N20/00 130
G06N3/09
G06F17/14 510
【請求項の数】 20
(21)【出願番号】P 2022530961
(86)(22)【出願日】2021-03-26
(65)【公表番号】
(43)【公表日】2023-05-30
(86)【国際出願番号】 US2021024274
(87)【国際公開番号】W WO2022203678
(87)【国際公開日】2022-09-29
【審査請求日】2022-07-13
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ガン・ワン
(72)【発明者】
【氏名】ペンユ・ヘ
【審査官】山本 俊介
(56)【参考文献】
【文献】特表2021-504844(JP,A)
【文献】米国特許第10248664(US,B1)
【文献】Patricio Cerda et al.,Encoding high-cardinality string categorical variables,arXiv [online],2020年05月18日,https://arxiv.org/abs/1907.01860,[2023年9月25日検索]
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 17/14
(57)【特許請求の範囲】
【請求項1】
複数のトレーニングサンプルを備えるトレーニングデータセットを取得するステップであって、各トレーニングサンプルが、特徴変数と、1つまたは複数の出力変数とを含む、ステップと、
前記トレーニングデータセットを使用して、前記トレーニングデータセットのスパース表現である第1の行列を生成するステップであって、前記第1の行列を生成するステップが、
前記特徴変数の中の各数値的特徴変数に基づいて前記特徴変数のカテゴリ的表現を生成するステップと、
各カテゴリ的特徴変数を符号化することによって、前記特徴変数の中の各カテゴリ的特徴変数の符号化表現を生成するステップと
を含む、ステップと、
第2の行列を含む1つまたは複数の行列を生成するために、前記トレーニングデータセットの行列表現を因数分解するステップと、
(i)前記第2の行列と(ii)正規化項とを使用して第3の行列を生成するステップと、
(i)1つまたは複数の行列と(ii)前記第3の行列とに基づいて第4の行列を生成するステップと、
複数の調整可能なパラメータを含むベクトルを使用して前記第1の行列の各特徴を表現するステップと、
(i)損失関数、(ii)前記第4の行列、および(iii)前記第1の行列の組合せを使用して前記調整可能なパラメータの値を調整するステップと
を含むコンピュータ実装方法。
【請求項2】
前記損失関数が、
【数1】
の形態の特定の損失関数によって提供される所与の結果に対応する結果を提供する損失関数であり、Rが、残差であり、yiが、前記出力変数であり、cが、定数であり、Eが、前記符号化表現である、請求項1に記載のコンピュータ実装方法。
【請求項3】
各数値的特徴変数に基づいて前記特徴変数のカテゴリ的表現を生成するステップが、
ノットのセットを選択するステップと、
前記数値的特徴を(i)埋め込みの加重和、または(ii)前記埋め込みの加重平均のいずれかとして表現するステップと、
補間技法を使用して、前記埋め込みの対応する重みを生成するステップと、
前記対応する重みを使用して、前記第1の行列内の各数値的変数を表現するステップと
を含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記埋め込みの前記対応する重みを生成するための前記補間技法が、スプライン補間を含む、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記トレーニングサンプル内に含まれる順序的特徴のセットのカテゴリ的表現を生成するステップであって、
前記順序的特徴のセットに対して離散フーリエ変換(DFT)または離散ウェーブレット変換(DWT)を実行するステップと、
少なくとも部分的にDFTまたはDWT変換行列に基づいて、前記順序的特徴のセットにカテゴリ的表現を割り当てるステップと
を含む、ステップ
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記調整可能なパラメータの値を調整するステップが、前記損失関数の残差がもはや低減され得ないか、モデル品質の尺度が品質しきい値を満たすか、または前記モデルのサイズが最大モデルサイズしきい値に達するまで、前記損失関数の残差を予測するために一連のモデルを反復的に生成するステップを含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記調整可能なパラメータの値を調整するステップが、前記損失関数の導関数に基づいて疑似残差を生成するステップをさらに含む、請求項6に記載のコンピュータ実装方法。
【請求項8】
各々のその後に生成されたモデルが、前記一連のモデルにおける以前に生成されたモデルの結合された残差値を予測するためにトレーニングされる、請求項5に記載のコンピュータ実装方法。
【請求項9】
前記調整可能なパラメータの値を調整するステップは、前記モデルのサイズが、前記モデルをトレーニングまたは呼び出すデバイスのメモリ制約に少なくとも部分的に基づくモデルサイズしきい値に達するまで、前記調整可能なパラメータの前記値を反復的に調整するステップを含む、請求項1に記載のコンピュータ実装方法。
【請求項10】
複数のトレーニングサンプルを備えるトレーニングデータセットを取得することであって、各トレーニングサンプルが、特徴変数と、1つまたは複数の出力変数とを含む、取得することと、
前記トレーニングデータセットを使用して、前記トレーニングデータセットのスパース表現である第1の行列を生成することであって、前記第1の行列を生成することが、
前記特徴変数の中の各数値的特徴変数に基づいて前記特徴変数のカテゴリ的表現を生成することと、
各カテゴリ的特徴変数を符号化することによって、前記特徴変数の中の各カテゴリ的特徴変数の符号化表現を生成することと
を含む、生成することと、
第2の行列を含む1つまたは複数の行列を生成するために、前記トレーニングデータセットの前記行列表現を因数分解することと、
(i)前記第2の行列と(ii)正規化項とを使用して第3の行列を生成することと、
(i)1つまたは複数の行列と(ii)前記第3の行列とに基づいて第4の行列を生成することと、
複数の調整可能なパラメータを含むベクトルを使用して前記第1の行列の各特徴を表現することと、
(i)損失関数、(ii)前記第4の行列、および(iii)前記第1の行列の組合せを使用して前記調整可能なパラメータの値を調整することと
を含む、システム。
【請求項11】
前記損失関数が、
【数2】
の形態の特定の損失関数によって提供される所与の結果に対応する結果を提供する損失関数であり、Rが、残差であり、yiが、前記出力変数であり、cが、定数であり、Eが、前記符号化表現である、請求項10に記載のシステム。
【請求項12】
各数値的特徴変数に基づいて前記特徴変数のカテゴリ的表現を生成することが、
ノットのセットを選択することと、
前記数値的特徴を(i)埋め込みの加重和、または(ii)前記埋め込みの加重平均のいずれかとして表現することと、
補間技法を使用して、前記埋め込みの対応する重みを生成することと、
前記対応する重みを使用して、前記第1の行列内の各数値的変数を表現することと
を含む、請求項10に記載のシステム。
【請求項13】
前記埋め込みの前記対応する重みを生成するための前記補間技法が、スプライン補間を含む、請求項12に記載のシステム。
【請求項14】
前記トレーニングサンプル内に含まれる順序的特徴のセットのカテゴリ的表現を生成することであって、
前記順序的特徴のセットに対して離散フーリエ変換(DFT)または離散ウェーブレット変換(DWT)を実行することと、
少なくとも部分的にDFTまたはDWT変換行列に基づいて、前記順序的特徴のセットにカテゴリ的表現を割り当てることと
を含む生成すること
をさらに含む、請求項10に記載のシステム。
【請求項15】
前記調整可能なパラメータの値を調整することが、前記損失関数の残差がもはや低減され得ないか、モデル品質の尺度が品質しきい値を満たすか、または前記モデルのサイズが最大モデルサイズしきい値に達するまで、前記損失関数の残差を予測するために一連のモデルを反復的に生成することを含む、請求項10に記載のシステム。
【請求項16】
前記調整可能なパラメータの値を調整することが、前記損失関数の導関数に基づいて疑似残差を生成することをさらに含む、請求項15に記載のシステム。
【請求項17】
各々のその後に生成されたモデルが、前記一連のモデルにおける以前に生成されたモデルの結合された残差値を予測するためにトレーニングされる、請求項14に記載のシステム。
【請求項18】
前記調整可能なパラメータの値を調整することは、前記モデルのサイズが、前記モデルをトレーニングまたは呼び出すデバイスのメモリ制約に少なくとも部分的に基づくモデルサイズしきい値に達するまで、前記調整可能なパラメータの前記値を反復的に調整することを含む、請求項10に記載のシステム。
【請求項19】
1つまたは複数のデータ処理装置によって実行されると、前記1つまたは複数のデータ処理装置に、
複数のトレーニングサンプルを備えるトレーニングデータセットを取得する動作であって、各トレーニングサンプルが、特徴変数と、1つまたは複数の出力変数とを含む、動作と、
前記トレーニングデータセットを使用して、前記トレーニングデータセットのスパース表現である第1の行列を生成する動作であって、前記第1の行列を生成する動作が、
前記特徴変数の中の各数値的特徴変数に基づいて前記特徴変数のカテゴリ的表現を生成する動作と、
各カテゴリ的特徴変数を符号化することによって、前記特徴変数の中の各カテゴリ的特徴変数の符号化表現を生成する動作と
を含む、動作と、
第2の行列を含む1つまたは複数の行列を生成するために、前記トレーニングデータセットの前記行列表現を因数分解する動作と、
(i)前記第2の行列と(ii)正規化項とを使用して第3の行列を生成する動作と、
(i)1つまたは複数の行列と(ii)前記第3の行列とに基づいて第4の行列を生成する動作と、
複数の調整可能なパラメータを含むベクトルを使用して前記第1の行列の各特徴を表現する動作と、
(i)損失関数、(ii)前記第4の行列、および(iii)前記第1の行列の組合せを使用して前記調整可能なパラメータの値を調整する動作と
を含む動作を実行させる命令を記憶する非一時的コンピュータ可読媒体。
【請求項20】
前記損失関数が、
【数3】
の形態の特定の損失関数によって提供される所与の結果に対応する結果を提供する損失関数である、請求項19に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、データを処理することおよび機械学習モデルに関する。
【背景技術】
【0002】
機械学習は、必ずしも明示的にプログラムされることなく、コンピュータに学習および作動する方法を教えることを目的とする一種の人工知能である。より具体的には、機械学習は、コンピュータ実行可能プログラムが経験を通じて「学習する」ことを可能にするモデルを構築し、適応させることを伴うデータ分析の手法である。機械学習は、予測を行う能力を改善するためにモデルを適応させるアルゴリズムの設計を伴う。これは、最初に、結果(ラベル)が既知である履歴データ(トレーニングデータ)を使用して機械学習モデルをトレーニングすることによって行われ、これは、教師あり学習と呼ばれる。コンピュータは、トレーニング期間中にルールまたは関係を識別し、機械学習モデルの学習パラメータを学習し得る。次いで、新しい入力を使用して、機械学習モデルは、識別されたルールまたは関係に基づいて予測を生成することができる。
【発明の概要】
【課題を解決するための手段】
【0003】
一般に、本明細書において説明される主題の1つの革新的な態様は、複数のトレーニングサンプルを含むトレーニングデータセットを取得する動作であって、各トレーニングサンプルが、特徴変数と、1つまたは複数の出力変数とを含む、動作と、トレーニングデータセットを使用して、トレーニングデータセットのスパース表現である第1の行列を生成する動作であって、第1の行列を生成する動作が、特徴変数の中の各数値的特徴変数に基づいて特徴変数のカテゴリ的表現を生成する動作と、各カテゴリ的特徴変数を符号化することによって、特徴変数の中の各カテゴリ的特徴変数の符号化表現を生成する動作とを含む、動作と、第2の行列を含む1つまたは複数の行列を生成するために、トレーニングデータセットの行列表現を因数分解する動作と、(i)第2の行列と(ii)正規化項とを使用して第3の行列を生成する動作と、(i)1つまたは複数の行列と(ii)第3の行列とに基づいて第4の行列を生成する動作と、複数の調整可能なパラメータを含むベクトルを使用して第1の行列の各特徴を表現する動作と、(i)損失関数、(ii)第4の行列、および(iii)第1の行列の組合せを使用して調整可能なパラメータの値を調整する動作とを含む方法において具体化され得る。
【0004】
この態様の他の実装形態は、コンピュータ記憶デバイス上に符号化された方法の態様を実行するように構成された、対応する装置、システム、およびコンピュータプログラムを含む。これらおよび他の実装形態は、各々、以下の特徴のうちの1つまたは複数をオプションで含むことができる。
【0005】
方法は、
【数1】
の形態の特定の損失関数によって提供される所与の結果に対応する結果を提供する損失関数を含むことができ、ここで、Rは、残差であり、yiは、出力変数であり、cは、定数であり、Eは、符号化表現である。
【0006】
方法は、各数値的特徴変数に基づいて特徴変数のカテゴリ的表現を生成することであって、ノットのセットを選択することと、数値的特徴を(i)埋め込みの加重和、または(ii)埋め込みの加重平均のいずれかとして表現することと、補間技法を使用して、埋め込みの対応する重みを生成することと、対応する重みを使用して、第1の行列内の各数値的変数を表現することとを含む、生成することを含むことができる。
【0007】
方法は、スプライン補間を含む、埋め込みの対応する重みを生成するための補間技法を含むことができる。
【0008】
方法は、トレーニングサンプル内に含まれる順序的特徴のセットのカテゴリ的表現を生成することであって、順序的特徴のセットに対して離散フーリエ変換(DFT(Discrete Fourier Transform))または離散ウェーブレット変換(DWT(Discrete Wavelet Transform))を実行することと、少なくとも部分的にDFTまたはDWT変換行列に基づいて、順序的特徴のセットにカテゴリ的表現を割り当てることとを含む、生成することを含むことができる。
【0009】
方法は、損失関数の残差がもはや低減され得ないか、モデル品質の尺度が品質しきい値を満たすか、またはモデルのサイズが最大モデルサイズしきい値に達するまで、損失関数の残差を予測するために一連のモデルを反復的に生成することを含む、調整可能なパラメータの値を調整することを含むことができる。
【0010】
方法は、損失関数の導関数に基づいて疑似残差を生成することをさらに含むことができる、調整可能なパラメータの値を調整することを含むことができる。
【0011】
方法は、各々のその後に生成されたモデルの一連のモデルにおける以前に生成されたモデルの結合された残差値を予測するためにトレーニングすることを含むことができる。
【0012】
方法は、モデルのサイズが、モデルをトレーニングまたは呼び出すデバイスのメモリ制約に少なくとも部分的に基づくモデルサイズしきい値に達するまで、調整可能なパラメータの値を反復的に調整することを含む、調整可能なパラメータの値を調整することをさらに含むことができる。
【0013】
本明細書で説明される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装され得る。たとえば、この文書全体を通して論じられる技法は、計算コストが高く、より長いトレーニング期間を必要とする他の学習モデルと比較して、トレーニングするためにより少ないトレーニングリソースおよび計算リソースを必要とする新しいモデルアーキテクチャに基づいて、トレーニング済み機械学習モデルを生成し、しかも高い精度を提供することができる。一般に、複雑な機械学習モデルは、トレーニングデータにおける複雑な関係を学習することができるが、携帯電話などの計算能力の低いデバイスにはあまり好ましくなく、しかしこの新しいアーキテクチャは、計算能力の低いデバイスを使用してそれらの複雑な関係を学習または予測することを可能にし、他の機械学習モデルよりも効率的にする。他のアーキテクチャを使用する複雑なモデルからの推論における遅延も、それらの他のモデルを、健康および救急におけるリアルタイム用途および重要なシステムにとって不利にするが、本明細書で論じられるアーキテクチャは、健康および救急におけるリアルタイム用途および重要なシステムに使用され得る。実際、本明細書で論じられる技法を使用して生成されたモデルは、典型的なニューラルネットワークモデルよりも何桁も小さく、高速である可能性がある。
【0014】
本明細書で説明される機械学習モデルは、他の既存の機械学習モデルと比較してより高い程度の解釈可能性も有し、これは、モデル予測が人間のオペレータにとって意味をなさなければならない健康などの分野における使用にさらに適するようにし、それによって、他の機械学習モデルに対する改善を提供する。この文書において提示される機械学習モデルはまた、多種多様なモデリング問題にとって有利にする二項分類およびマルチタスク分類、回帰、ランク付けに至る広範囲のモデリング問題において使用され得、それによって、現在の機械学習モデルを、それらが適用され得るモデリング問題のタイプにおいて制限される他の機械学習モデルよりも柔軟にする。
【0015】
本明細書で説明される主題の1つまたは複数の実施形態の詳細については、添付図面および以下の説明において記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0016】
図1】機械学習モデルの例示的なトレーニングシステムのブロック図である。
図2】第1の行列を生成するための例示的なプロセスのフロー図である。
図3】機械学習モデルのモデルパラメータをトレーニングする例示的なプロセスのフロー図である。
図4】説明されている動作を実行するために使用され得る例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0017】
この文書は、トレーニングデータのセットにおいて機械学習モデルをトレーニングすることに応答してトレーニング済み機械学習モデルを生成および提供するように構成された方法、システム、装置、および1つまたは複数の場所における1つまたは複数のコンピュータ上のコンピュータ可読媒体を開示する。
【0018】
本明細書および特許請求の範囲において使用される場合、以下の用語は、使用の文脈が他に明確に指定しない限り、以下の意味を有する。
【0019】
特徴:特徴は、観察されている現象の個々の測定可能な特性または特質である。
【0020】
カテゴリ的特徴:グループに分けられる特徴。一般に、これらの特徴は、それらが割り当てられたグループに基づいて、限られた数の可能な値を取る。
【0021】
数値的特徴:自然言語の説明ではなく、数において表現され得る特徴。時には定量的特徴とも呼ばれ、数値的特徴は、数値の形態において収集される。数値的特徴は、これらの数値を用いて算術演算を実行するその能力により、他の数値形態のデータ型とそれ自体を区別する。
【0022】
順序的特徴:これらの特徴は、それに設定された順序またはスケールを有する一種のカテゴリデータである。
【0023】
スプライン:各々が特定の区間を有する区分的多項式から構成された関数。2つの区分的多項式が交わる点は、制御点またはノットと呼ばれる。
【0024】
図1は、機械学習モデル102の例示的なトレーニングシステム100を示す。トレーニングシステム100は、トレーニング済み機械学習モデル102を生成および提供するように構成される。モデル102は、入力を受信し、入力に基づいて出力を生成するために機械学習モデルパラメータのセットの現在の値に従って入力を処理するように構成される。一般に、モデル102は、限定はしないが、画像、ビデオ、サウンド、およびテキストデータを含む任意の種類のデータ入力を受信し、入力に基づいて任意の種類のスコア、予測、分類、または回帰出力を生成するように構成され得る。出力データは、入力データと同じタイプもしくはモダリティであり得、または異なり得る。モデルのいくつかの用途について以下に説明し、他の用途は、機械制御システムにおける使用を含む。
【0025】
たとえば、モデル102が、画像または画像から抽出された特徴であるトレーニング例を処理するように構成されている場合、所与の画像に対してモデル102によって生成される出力は、オブジェクトカテゴリのセットの各々に対するスコアであり得、各スコアは、画像がカテゴリに属するオブジェクトを描写する推定尤度を表す。
【0026】
別の例として、モデル102が、インターネットリソース(たとえば、ウェブページ)、ドキュメント、もしくはドキュメントの一部、またはインターネットリソース、ドキュメント、もしくはドキュメントの一部から抽出された特徴であるトレーニング例を処理するように構成されている場合、所与のインターネットリソース、ドキュメント、またはドキュメントの一部に対してモデル102によって生成される出力は、トピックのセットの各々に対するスコアであり得、各スコアは、インターネットリソース、ドキュメント、またはドキュメント部分がトピックに関するものである推定尤度を表す。
【0027】
別の例として、モデル102が、特定のデジタル構成要素(たとえば、広告の形態における情報を含むオーディオ、ビデオ、テキスト、または他の情報)に対する印象文脈の特徴であるトレーニング例を処理するように構成されている場合、モデル102によって生成される出力は、特定のデジタル構成要素がクリックされる推定尤度を表すスコアであり得る。
【0028】
別の例として、モデル102が、ユーザのパーソナライズされた推奨の特徴、たとえば、推奨の文脈を特徴付ける特徴、たとえば、ユーザによって取られた以前のアクションを特徴付ける特徴であるトレーニング例を処理するように構成されている場合、モデル102によって生成される出力は、推奨のセットの各々に対するスコアであり得、各スコアは、ユーザが推奨を提供されていることに対して好意的に応答する推定尤度を表す。
【0029】
別の例として、モデル102が、ある言語におけるテキストのシーケンスであるトレーニング例を処理するように構成されている場合、モデル102によって生成される出力は、別の言語におけるテキストのシーケンスのセットの中のテキストの各シーケンスに対するスコアであり得、各スコアは、他の言語におけるテキストのシーケンスが入力テキストの他の言語への適切な翻訳である推定尤度を表す。
【0030】
別の例として、モデル102が、話された発話を表すシーケンスであるトレーニング例を処理するように構成されている場合、モデル102によって生成される出力は、テキストの断片のセットの中のテキストの各断片に対するスコアであり得、各スコアは、テキストの断片が発話に対する正しいトランスクリプトである推定尤度を表す。
【0031】
トレーニングデータセット104は、複数のトレーニング例を含む。各トレーニング例は、1つまたは複数の特徴と、対応するターゲット出力とを含む。トレーニング例に対応するターゲット出力は、トレーニング例の1つまたは複数の特徴を処理することに応答したモデル102の好ましい、または目標の出力を指す。
【0032】
いくつかの実装形態において、トレーニング入力と対応するターゲット出力とを指定するのではなく、トレーニング例は、複数の時間ステップにわたるエージェントと環境との相互作用を特徴付ける「経験タプル」のシーケンスを指定する。各経験タプルは、(i)それぞれの時間ステップにおける環境の状態を特徴付ける観察と、(ii)それぞれの時間ステップにおいてエージェントによって実行されたアクションと、(iii)次の時間ステップにおける環境のその後の状態を特徴付けるその後の観察と、(iv)時間ステップにおいてエージェントがアクションを実行した結果として受け取られた報酬とを含む。
【0033】
システム100は、様々な方法のいずれかにおいてトレーニングデータセット104を受信することができる。たとえば、システム100は、たとえば、システム100によって利用可能にされるアプリケーションプログラミングインターフェース(API(application programming interface))を使用して、データ通信ネットワークを介してシステムのリモートユーザからのアップロードとしてトレーニングデータセット104を受信することができる。
【0034】
システム100は、データ分析エンジン110を含むことができる。いくつかの実装形態において、データ分析エンジン110は、学習アルゴリズムの予測力を高めるために、特徴を作成および/または選択するためにトレーニングデータセット104のトレーニング例の1つまたは複数の特徴を作成または処理するための技法および方法を実装することができる。一般に、機械学習モデルのためのトレーニングデータは、モデルが構築されることを可能にするフォーマットにおいて提示されなければならない。構造化(数値/カテゴリ/名目)データであろうと非構造化(テキスト、オーディオ、画像、ビデオ)であろうと、モデルは、一般に、トレーニング例が行を形成し、特徴が列を形成する表形式を受け入れる。しかしながら、他のフォーマットが可能である。説明の目的のために、トレーニングデータセット104は、{xi,yi}、...{xN,yN}の形態のN個のトレーニング例を有するものとして定義され得、ここで、xiは、i番目のトレーニング例の特徴ベクトルであり、yiは、ターゲット出力である。特徴ベクトルxiの次元は、固定されているので、トレーニングデータセットは、表または行列を使用して表現され得る。
【0035】
埋め込みの使用は、カテゴリ的特徴にとって自然であるが、数値的特徴に対する埋め込みの使用は、数値的特徴のしばしば連続的な値を特徴空間内の離散点に変換することを必要とする。いくつかの実装形態において、そのような離散点は、制御点またはノットと呼ばれる。いくつかの実装形態において、データ分析エンジン110は、三次スプライン補間を使用して、トレーニングデータセット104の1つまたは複数の特徴の中の各数値的特徴の値を離散点に処理する。三次スプライン補間は、既知の点のセットの境界内に新しい点を構築することができる。これらの新しい点は、それ自体が複数の三次区分的多項式からなる補間関数(スプラインと呼ばれる)の関数値である。
【0036】
説明の目的のために、1つの数値的特徴xおよびターゲット出力yのn個のトレーニング例を含むトレーニングデータセット104を検討する。いくつかの実装形態において、データ分析エンジン110は、{(xi,Yi):i=1,...n}のように任意の数のノット(たとえば、n+1ノット)を使用して正当な特徴値xを分位(quantile)することができ、ここで、Yiは、xiに対するK次元埋め込み表現であり、x0<x1<...<xnである。
【0037】
いくつかの実装形態において、0≦t<x(k+2)-xk+1である数値的特徴xk+1+tの値について、数値的特徴の値は、{Yk,Yk+1,Yk+2,Yk+3}および{wk,wk+1,wk+2,wk+3}の加重和によって決定され得る埋め込みY(すなわち、埋め込み空間内のベクトル)によって表現され得る。いくつかの実装形態において、埋め込みYは、以下の形態を取ることができる。
Y=wk*Yk+wk+1*Yk+1+wk+2*Yk+2+wk+3*Yk+3 1
【0038】
いくつかの実装形態において、重み{wk,wk+1,wk+2,wk+3}は、以下の式を使用して計算され得、
【数2】
ここで、h00(t)、h10(t)、h01(t)、h11(t)は、以下の式を使用して決定され得る区間[xk+1,xk+2]間を補間する三次エルミートスプラインを表すエルミート基底関数である。
【数3】
【0039】
いくつかの実装形態において、数値的特徴xiの値が区間[xk+1,xk+2]内にある場合、データ分析エンジン110は、数値的特徴の埋め込みを、xiから独立して選択された4つの値についての4つの埋め込みの加重和として表すために、重みwk、wk+1、wk+2、wk+3を使用することができる。それらの4つの値は、xk、xk+1、xk+2、およびxk+3であり得る。それらの4つの点は、制御点またはノットの例である。
【0040】
いくつかの実装形態において、数値的特徴xiの値が、区間[x0,x1]内にある場合、データ分析エンジン110は、数値的特徴xiを表すために重みw0、w1、およびw2を計算するために、前述の式6~12に加えて式13および14を使用することができる。
【数4】
式13および14を使用する場合、式2、3、および4は、それぞれ以下の形態を取ることができる。
【数5】
【0041】
いくつかの実装形態において、数値的特徴xiの値が区間[xn-1,xn]内にある場合、データ分析エンジン110は、数値的特徴xiを表すために重みwn-2、wn-1、およびwnを計算するために、前述の式6~12に加えて式18および19を使用することができる。
【数6】
式18および19を使用する場合、式2、3、および4は、それぞれ以下の形態を取ることができる。
【数7】
【0042】
いくつかの実装形態において、データ分析エンジン110は、ノットの数および位置をさらに最適化(たとえば、改善または他の方法で調整)することができる。たとえば、xi,jがi番目のトレーニング例のj番目の数値的特徴の値であると仮定する。さらに、j番目の特徴の観測値が、[min(xi,j),max(xi,j)]の範囲であると仮定する。xi,jが[min(xi,j),max(xi,j)]の範囲内に均等に分散されている場合、データ分析エンジン110は、範囲と等しい距離のノットを選択することができる。xi,jが範囲内に均等に分散されていない場合、データ分析エンジン110は、値xi,jの密度に基づいてノットを選択することができる。たとえば、データ分析エンジン110は、任意のxi,jがノットの隣接するペア間に入る確率を等しくし、それによって、埋め込みを学習するための十分なサポートを提供するxi,jの分布の分位数に基づいてノットを選択することができる。
【0043】
いくつかの実装形態において、データ分析エンジン110は、フーリエ変換(FT(Fourier Transform))の一般化であるアダマール変換(HT(Hadamard Transform))を使用してノットの選択を最適化することができる。他の実装形態において、データ分析エンジン110は、HTの代わりにハールウェーブレット変換(HWT(Haar Wavelet Transform))を使用することもできる。しかしながら、HTおよびHWTがどのように使用され得るかの適切な方法および技法を説明することは、機械学習モデル102の動きの理解によって与えられる。説明の目的のために、文書の以下のセクションは、機械学習モデル102をトレーニングする方法および技法を紹介する。
【0044】
図2は、第1の行列を生成するための例示的なプロセス200のフロー図である。トレーニングプロセスの定式化をサポートするために、第1の行列は、Aと呼ばれる。プロセス200の動作は、たとえば、データ分析エンジン110によって実施され得る。プロセス200の動作はまた、非一時的であり得る1つまたは複数のコンピュータ可読媒体上に記憶された命令として実装され得、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス200の動作を実行させることができる。トレーニングデータセット104は、行と列とを含む表形式を使用して表され、各行は、トレーニング例であり、各列は、トレーニング例の特徴である。もちろん、他の適切なフォーマットが使用され得る。
【0045】
いくつかの実装形態において、第1の行列は、ワンホット符号化などの符号化技法を使用してトレーニングデータセット104のカテゴリ的特徴を符号化することによって生成されたスパース行列である。しかしながら、トレーニングデータセット104は、他のタイプの特徴(たとえば、数値および順序)を含むことができ、データ分析エンジンは、数値的特徴と順序的特徴とを処理し、それらを上記の方法に従ってカテゴリ的特徴に変換することができる。
【0046】
データ分析エンジン110は、トレーニングデータセットから特徴を選択する(202)。たとえば、データ分析エンジン110は、処理のためにトレーニングデータセット104の1つまたは複数の特徴の中から特徴を反復的に選択することができる。他の実装形態において、各特徴の処理が他の特徴の処理から独立しているので、データ分析エンジン110は、処理のためにトレーニングデータセット104からの1つまたは複数の特徴から複数の特徴を同時に選択することができ、それによって、より少ない計算時間を消費する。
【0047】
データ分析エンジン110は、選択された特徴がカテゴリ的特徴であるかどうかを判定することができる(204)。たとえば、データ分析エンジン110は、トレーニングデータセット104から選択された特徴がカテゴリ的特徴であるかどうかを判定するために、当該技術分野において知られている方法を実施することができる。特徴がカテゴリ的であると判定された場合、データ分析エンジン110は、プロセス200のステップ208に進むことができる。特徴がカテゴリ的でないと判定された場合、データ分析エンジン110は、特徴をカテゴリ的特徴に変換するためにプロセス200のステップ206を使用することができる。
【0048】
データ分析エンジン110は、非カテゴリ的特徴の値を特徴空間内の離散点に変換することができる(206)。たとえば、データ分析エンジン110は、特定の特徴がカテゴリ的ではない(すなわち、特定の特徴が数値的である)と判定した後、特定の特徴の値をノットに基づく加重平均に変換するために三次スプライン補間法(上記)を使用することができる。たとえば、数値的特徴xiは、k次元の埋め込みYiを使用して表され得る。
【0049】
データ分析エンジン110は、特徴の符号化表現を生成することができる(208)。たとえば、データ分析エンジン110は、カテゴリ的特徴の符号化表現を生成するために、ワンホット符号化などの方法を使用することができる。一般に、ワンホット符号化は、特定の特徴のカテゴリに応じて、カテゴリ的特徴を1および0のベクトルに変換する。たとえば、性別を識別する特定の特徴が男性および女性の値を取る場合、ワンホット符号化された表現は、特定の特徴が男性である場合、表現の第1の特徴が1の値を有することになる(第2の値が0の値を有することになる)ように、2つの特徴を有することができる。これに対応して、特定の特徴が女性である場合、表現の第1の特徴は、0の値を有することになる(第2の特徴は、1の値を有することになる)。
【0050】
プロセス200のステップ208の前に、カテゴリ的でない特徴は、カテゴリ的表現を生成するためにステップ206において処理されたので、トレーニングデータセット内のすべての特徴は、カテゴリ的であることに留意されたい。ステップ208は、カテゴリ的特徴の符号化表現を生成するためにワンホット符号化技法を使用するものとして説明されてきたが、その目的のために任意の適切な符号化技法が使用され得ることも留意されるべきである。
【0051】
いくつかの実装形態において、第1の行列を生成した後、データ分析エンジン110は、第1の行列を1つまたは複数の行列に分解するために特異値分解(SVD(singular value decomposition))を使用することができる。SVD法は、以下の式を使用して表され得る。
A=U*Σ*VT 23
ここで、Aは、n>mのようなn×m行列であり、Uは、n×m直交行列であり、Σは、m×m対角行列(第2の行列とも呼ばれる)であり、Vは、m×m直交行列である。
【0052】
いくつかの実装形態において、データ分析エンジン110は、正規化項λを使用して、第3の行列Σ-1、すなわち、行列Σの逆行列を計算することができる。Σ-1は、以下の式を使用して計算され得、
【数8】
ここで、Σ=diag(σ1,...σγ)およびσ1,...σγは、特異値である。
【0053】
いくつかの実装形態において、式24は、式25を使用して第1の行列の逆行列(第4の行列とも呼ばれる)を計算するために使用され得る。
【数9】
【0054】
いくつかの実装形態において、システム100は、1つまたは複数のプロセッサを含むことができ、各反復において、損失関数106に基づいてモデル102をトレーニングするように構成されたトレーニングエンジン108をさらに含むことができる。いくつかの実装形態において、トレーニングエンジン108は、損失関数106によって生成される損失値を減少させるために、モデルパラメータ103の値をモデルパラメータ103の現在値から調整することによってモデル102をトレーニングすることができる。
【0055】
いくつかの実装形態において、データ分析エンジン110は、トレーニングデータセット104の各特徴を、特徴の一意の値および/またはレベル(特徴のカーディナリティ(cardinality)とも呼ばれる)に基づいて決定された次元Kの埋め込み表現にマッピングすることができる。たとえば、トレーニングデータセット104がN個のトレーニング例を有し、各トレーニング例がM個の特徴を有する場合、i番目のトレーニング例のj番目の特徴の値は、次元Kの埋め込みEi,jを使用して表され得、ここで、Ei,j∈RKである。カテゴリ的特徴xjの別個の値ごとに、特徴jに対する|xj|の別個の埋め込みをもたらす別個の埋め込みEjが存在し、ここで、|xj|は、カテゴリ的特徴jのカーディナリティであることが留意されるべきである。
【0056】
いくつかの実装形態において、機械学習モデル102をトレーニングする間、機械学習モデルは、以下の式に従って予測することができ、
【数10】
ここで、Cは、
【数11】
として定義され得る定数であり得る。
【0057】
トレーニングエンジン108は、トレーニング可能なパラメータckおよび埋め込み表現の値を調整することによって、K回の反復を使用して機械学習モデルをトレーニングすることができる。たとえば、トレーニングプロセスのk回目の反復中、トレーニングエンジンは、すべての特徴についてのトレーニング可能なパラメータckと|xj|の埋め込みの各々のk番目の値とを計算することができる。
【0058】
一般に、機械学習モデルの残差は、モデル予測とターゲット出力との間の差である。機械学習モデル102によれば、トレーニングプロセスのk回目の反復の残差は、式26および27を使用して計算され得る。残差は、以下の形態において表され得、ここで、yiは、サンプルiに対するターゲット出力である。
【数12】
【0059】
いくつかの実装形態において、後続の各トレーニング反復に対するターゲット出力は、前の反復からの残差であり得る。たとえば、k回目の間のターゲット出力yiは、k-1回目のトレーニング反復において式28を使用して計算された残差Rk-1,iであり、これは、論理的には、各トレーニング反復が前のトレーニング反復の残差(予測誤差とも呼ばれる)に基づいてモデルパラメータを学習しようとすることを意味する。このトレーニングプロセスは、
【数13】
として表され得るN個の式の過剰決定系を生成することができ、ここで、i=1、2、...Nである。
【0060】
いくつかの実装形態において、N個の式の過剰決定系は、たとえば、式30によって表されるように、ckを式29の右辺に移動し、結果として生じる式の両辺の対数を取ることによって対数空間に変換され得、
【数14】
ここで、任意の1≦i≦Nに対してRk-1,i-ck>0である。
【0061】
Xが第1の行列の列に対応する連結されたすべての特徴に対する|xj|の埋め込み表現の各々のk番目の値である場合、
【数15】
であることが留意されるべきである。式30を使用して、N個の式の過剰決定系は、
A*X=B 31
としてさらに表され得、ここで、Bi=log(Rk-1,i-ck)である。
【0062】
式31は、定式化において切片がない古典的な線形回帰問題の定式化と類似し得ることが留意されるべきである。いくつかの実装形態において、式31は、第1の行列A内に余分な列を追加することによって、[A 1]*[X b]T=Bに修正され得る。いくつかの実装形態において、第1の行列A内に余分な列を追加することは、トレーニングデータセット104のトレーニング例の各々に単一の値を有するカテゴリ的特徴を追加することによって達成され得る。
【0063】
いくつかの実装形態において、トレーニングエンジン108は、過剰決定系の式31におけるXを計算することができる。A*X=BおよびA=U*Σ*VTであるので、以下の式
U*Σ*VT*X=B 32
が導出され得、これは、
V*Σ-1*UT*U*Σ*VT*X=V*Σ-1*UT*B 33
をもたらす。行列U*UT=I、V*VT=I、およびΣ*ΣT=Iであるので、式33は、以下のようにXを導出するために使用され得、
X=V*Σ-1*UT*B=A-1*B 34
ここで、A-1は、式25とBi=log log(Rk-1,i-ck)とを使用して計算される。
【0064】
いくつかの実装形態において、トレーニングエンジン108は、以下に説明するヒューリスティックスに基づいてckの値を選択することができる。
min(Rk-1,i)-ck>1およびlog(max(Rk-1,i)-ck)>log(min(Rk-1,i)-ck)>0である場合、ckの値は、log(max(Rk-1,i)-ck)およびmax((log(Rk-1,i-ck))2)を低減するように増加され得る。
max(Rk-1,i)-ck<1および0>log(max(Rk-1,i)-ck)>log(min(Rk-1,i)-ck)である場合、ckの値は、max((log(Rk-1,i-ck))2)を低減するように減少され得る。
max((log(Rk-1,i-ck))2)の値は、
【数16】
のとき、
【数17】
のように最小に低減することができる。
【0065】
いくつかの実装形態において、トレーニングエンジン108は、ckに対する最適値を選択することによって|A*X-B|2の値が最小化され得るという直観に基づいて、ckの選択をさらに最適化することができる。これは、関数L(ck)を使用して表され得、ここで、
L(ck)=BT*(I-A*(AT*A)-1*AT)*B 35
である。C=I-A*(AT*A)-1*ATを計算することによって、式35は、
L(ck)=BT*C*B=ΣiΣjCi,j*log(Rk-1,i-ck)*log(Rk-1,j-ck) 36
の形態を取ることができる。
【0066】
いくつかの実装形態において、トレーニングエンジン108は、L(ck)を最小化するckの値を見つけるために、一次反復最適化アルゴリズムである勾配降下アルゴリズムを使用することができる。勾配降下アルゴリズムは、関数L(ck)の一次導関数を使用する。関数の一次導関数は、以下の形態を取る。
【数18】
【0067】
いくつかの実装形態において、トレーニングエンジン108は、L(ck)を最小化するckの値を見つけるために、二次反復最適化アルゴリズムであるニュートン法または確率的ニュートン法を使用することができる。ニュートン法および確率的ニュートン法は、関数L(ck)の二次導関数を使用する。関数の二次導関数は、以下の形態を取る。
【数19】
【0068】
ckの値を最適化するこの技法は、ここでは、各反復は、単一の未知のckのみを有し、これを単一変数最適化問題にするのに対し、ニューラルネットワーク最適化問題は、数百万または数十億の変数の処理を必要とする可能性があり、数百または数百万の変数の極小値を見つけなければならないので、たとえば、ニューラルネットの使用とは異なる可能性がある。したがって、ckを最適化するためのこの技法は、ニューラルネットワーク最適化に比べて、リソースおよびトレーニング時間の大幅な削減を提供することが容易にわかる。
【0069】
いくつかの実装形態において、トレーニングエンジン108は、確率的勾配降下(SGD(stochastic gradient descent))アルゴリズムを使用して、コスト関数を直接最適化することができる。機械学習モデルのコスト関数は、以下の形態を有することができる。
【数20】
【0070】
いくつかの実装形態において、トレーニングエンジン108は、トレーニング可能なパラメータを最適化するために、座標降下アルゴリズムを使用することができる。そのような実装形態において、座標降下アルゴリズムは、Cの新しい値を計算することができ、ここで、新しい値C'は、
【数21】
を使用して計算され得る。
【0071】
いくつかの実装形態において、トレーニングエンジン108は、過剰決定系を使用して、特定の特徴に対する値の埋め込み表現を計算することができる。たとえば、過剰決定系A*X=Bは、QR分解を使用してXについて解かれ得る。そのような場合、解Xは、K次元ベクトルであり、log(max(XK'∈))は、埋め込みにおけるk番目の要素の新しい値であり、∈は、小さい正の数である。そのような過剰決定系は、以下のように表され得、
【数22】
である。
【0072】
いくつかの実装形態において、機械学習モデル102のトレーニングプロセスの終了基準は、トレーニングプロセスのk回目の反復後の残差に基づいて決定され得る。たとえば、上記で説明した反復最適化方法が、残差の大きさをさらに最小化することができない場合、トレーニングプロセスは、終了され得、次元Kと、定数Cと、すべての特徴に対するすべての埋め込み表現とを含むモデルパラメータの現在の値が、最終的な値と見なされ得る。
【0073】
いくつかの実装形態において、トレーニングプロセスの終了基準は、適合率、再現率、F1スコア、またはPR AUCなどの測定基準を使用して測定され得る機械学習予測精度であり得る。たとえば、トレーニングエンジン108は、現在のモデルパラメータを用いた機械学習モデル102の精度が所定のしきい値に達したときに、トレーニングプロセスを終了することができる。
【0074】
HTおよびHWTを使用するノットの選択に戻る。K次元の各々1つについて、データ分析エンジン110およびトレーニングエンジン108は、範囲[min(xi,j),max(xi,j)]内に入る特徴値xi,jを浮動小数点数にマッピングする関数f'を学習する。Fは、学習されるべき実際の未知の滑らかな関数を表すと仮定する。x0=min(xi,j)およびxn=max(xi,j)である等間隔のノットx0<x1<...<xnについて、上記で説明した方法は、fに十分に近い三次スプラインf'を学習する。近さを評価するために、x0<xi<xnである任意のxiにおけるfとf'の両方を評価し、ここで、よくトレーニングされたモデルについて|f(xi)-f'(xi)|<∈である。m+1個のノットを有する三次スプラインを表現するために、モデルは、m+1個のパラメータ、すなわち、{f'(x0),f'(x1),...f'(xm)}が学習されることを必要とする。選択されたmの値が必要以上に大きい場合、モデルパラメータ{f'(x0),f'(x1),...f'(xm)}において多くの冗長性が存在する場合がある。モデルパラメータ{f'(x0),f'(x1),...f'(xm)}を圧縮する、すなわち、三次スプライン適合性の品質を低下させることなくモデルサイズを縮小することができる場合がある。{f'(x0),f'(x1),...f'(xm)}をm+1個の点においてサンプリングされた一次元連続信号とみなす場合、フーリエ変換(FT)の一般化であるアダマール変換(HT)、または1つの可能なウェーブレット変換であるハールウェーブレット変換(HWT)のいずれかを使用して、一次元信号を周波数領域に変換し得る。連続的な一次元信号は、しばしば、周波数領域においてより良好に圧縮され得る。
【0075】
いくつかの実装形態において、データ分析エンジン110は、アダマール変換を使用して、関数fを周波数領域(Fと表記される)に変換することができる。アダマール変換の変換行列は、以下の形態を取ることができ、
【数23】
ここで、i、jは、数iおよびjのバイナリ表現のビットごとのドット積である。fをFに変換することは、ベクトル{f'(x0),f'(x1),...f'(xm)}を射影することと同等であるので、以下の関係
Hn*{f'(x0),f'(x1),...f'(xm)}T={F'(x0),F'(x1),...F'(xm)} 43
を保ち、ここで、m=2nである。
【0076】
いくつかの実装形態において、トレーニングエンジン108は、周波数領域において機械学習モデル102をトレーニングすることができる。たとえば、式6~12および44は、各YがすべてのF'(x0),F'(x1),...F'(xm)の線形結合であると結論づけるために使用され得る。トレーニングエンジン108は、次いで、第1の行列を構築し、式31~38を直接使用して、F'(x0),F'(x1),...F'(xm)の値を計算することができる。
【数24】
周波数領域において機械学習モデル102をトレーニングする場合、学習された埋め込みにおける各要素は、周波数領域における周波数の係数(すなわち、周波数の線形結合の重み)である。値が本当に小さい要素について、トレーニングエンジン108は、モデルパラメータの数、モデル容量を低減し、過剰適合を回避するために、これらの要素値を0に設定することができる。周波数領域における圧縮がより効率的である場合がある。
【0077】
いくつかの実装形態において、正規化、たとえば、式24の適用は、学習された埋め込みにおける要素値を0に向けて縮小させることができる。値が本当に小さい要素について、トレーニングエンジン108は、モデルパラメータの数、モデル容量を低減し、過剰適合を回避するために、これらの要素値を0に設定することができる。
【0078】
いくつかの実装形態において、トレーニングデータセット104内の特徴が順序的特徴を含む場合、データ分析エンジン110は、(上記で説明した)アダマール変換法を使用することができる。そのような実装形態において、順序的特徴の別個の値の数は、別個の値の数を
【数25】
に増加させるためにパディングされ得、ここで、ceiling(x)は、xよりも小さくない最小の整数を返す。
【0079】
一般に、機械学習モデルは、回帰、分類、およびランク付けなどの様々なタスクに対して使用され得る。以下のセクションは、上記で説明した機械学習モデル102がそのようなタスクに対してどのように使用され得るかについて説明する。
【0080】
《マルチクラス分類》
{xi,li},...{xN,lN}の形態のN個のトレーニング例のトレーニングデータセット102が存在すると仮定し、ここで、xiは、i番目のトレーニング例の特徴ベクトルであり、liは、対応するターゲットラベルであり、ここで、liは、すべての可能なラベルLのインスタンスであり、すなわち、li∈Lである。各トレーニング例の特徴の数は、M-1、すなわち、xi,1,...xi,M-1であるとさらに仮定する。
【0081】
マルチクラス分類問題は、トレーニング例に対するクラスラベルを予測するために分類子Fを見つけることであり、すなわち、F(xi,1,...xi,M-1)=liである。マルチクラス分類問題は、各クラスに関する回帰問題に、すなわち、すべてのxi,M∈Lについて、xi,M=1iの場合、F'(xi,1,...xi,M)=1であり、そうでない場合、0であるように分類子F'を見つけることに再定式化され得る。
【0082】
トレーニングプロセス中、データ分析エンジン110は、トレーニングデータセット102のN個のトレーニング例をN*L個のトレーニング例に変換することができ、ここで、N個のトレーニング例は、ターゲットラベル1を有し、N*(L-1)個のトレーニング例は、ラベル0を有する。分類問題が不均衡なデータセットに悩まされる場合、トレーニング例に重みが割り当てられ得る。たとえば、ハイパーパラメータδ>0が定義され得、生成されたトレーニング例およびラベルは、以下のように修正され得る。すべてのxi,M∈Lについて、
xi,M=liの場合、δ*(L-1)*F(xi,1,...xi,M-1,xi,M)=δ*(L-1)であり、
そうでない場合、F'(xi,1,...xi,M-1,xi,M)=0であり、
ここで、ラベルとして1を有するトレーニング例に対する重みは、δ*(L-1)である。δ=1を選択することは、完全にバランスの取れた二項分類問題を結果として生じることになる。δの値を増加させるとF'の予測結果におけるクラス内分散が低減することも留意されるべきである。
【0083】
次いで、最適な分類子F'は、式26とこの文書で説明する対応する解とを使用して計算され得る。各ラベルli∈Lがトレーニング中にK次元の埋め込みを有することが留意されるべきである。最も可能性が高いラベルを予測するために、式26は、次元K+1の2つのベクトルのドット積に再フォーマットされ得、ここで、最大のドット積を有するラベルは、トレーニング例xi,1,...xi,M-1に対するラベルである最も高い尤度を有する。
【0084】
(以下に提示される)2つのベクトルのうちの第1のものは、可能なラベルから独立することができ、i番目のトレーニング例xi,1,...xi,M-1に対する特徴の値にのみ関連付けられ得る。
【数26】
(以下に提示される)2つのベクトルのうちの第2のものは、ラベルの埋め込みであり、i番目のトレーニング例xi,1,...xi,M-1に対する特徴の値から独立することができる。
【数27】
【0085】
《マルチタスク分類/回帰》
各トレーニング例が特徴xi,1,...xi,M-1とラベル
【数28】
とを有するN個のトレーニング例のトレーニングデータセット102が存在すると仮定し、ここで、{t1,...tT}は、タスクである。
【0086】
トレーニングプロセス中、データ分析エンジン110は、値{t1,...tT}を有するダミーのカテゴリ的特徴ベクトルXmを定義することによって、マルチタスク問題を同等のシングルタスク問題に変換することができる。i番目のトレーニング例は、以下のようにT個のトレーニング例にさらに拡張され得る。
【数29】
【0087】
次いで、トレーニングエンジン108は、各ラベルが埋め込みを有する(上記で説明した)マルチクラス分類問題と同様の各タスクtに対するK次元のembeddingtを学習するために、上記で説明した技法および方法に従って関数Fをトレーニングすることができる。
【0088】
マルチクラス分類問題と同様に、トレーニングエンジン108は、ベクトル{p1,...pK}を計算することができ、ここで、
【数30】
は、可能なタスクから独立しており、i番目のトレーニング例xi,1,...xi,M-1の特徴の値にのみ関連付けられる。次いで、タスクtの予測結果は、
【数31】
を使用して計算され得る。
【0089】
《ランク付け》
一般に、ランク付け学習(learning-to-rank)問題は、項目中立の文脈的特徴のセット{X1,...XM}および項目固有の特徴のセット{Y1,...YN}として定式化され得る。一般に、N=1であり、Y1は、カテゴリ的特徴である。トレーニング中、ペアワイズ手法を使用して、各トレーニング例は、(1)文脈的特徴の値{X1,...XM}と、(2)第1の項目に関する項目固有の特徴の値{y1,1,...y1,n}と、(3)第2の項目に関する項目固有の特徴の値{y2,1,...y2,n}と、(4)2つの項目間の順序を示すラベルL、すなわち、第1の項目が第2の項目よりも低くランク付けされるべきである場合、L=-1、そうでない場合、L=1とを含む。クエリ中、各クエリは、(1)文脈的特徴の値{x1,...xM}と、(2)項目固有の特徴が値{yz,1,...yz,n}を有するZ個の項目とを含み、ここで、z∈[1,Z]である。
【0090】
トレーニング中、トレーニングエンジン108は、2つの項目間に二項演算子を定義することができ、その結果は、演算子の左側(LHS(left-hand-side))における項目が演算子の右側(RHS(right-hand-side))における項目よりも高くランク付けされるべきかどうかに基づいて、真または偽のいずれかである。
【0091】
{Y1,...YN}内の項目固有の特徴ごとに、データ分析エンジン110は、LHS対RHSを符号化するために2つの項目固有の特徴、すなわち、{LHS_Y1,...LHS_YN}および{RHS_Y1,...RHS_YN}を定義することができ、ここで、Yi、LHS_Yi、およびRHS_Yiは、同じデータ型を有し、それらの値は、同じセマンティックを有する。機械学習モデル102における特徴セットは、サイズM+2*Nの特徴の{X1,...XM,LHS_Y1,...LHS_YN,RHS_Y1,...RHS_YN}の形態であり得る。
【0092】
トレーニング例{{x1,...xM},{y1,1,...y1,n},{y2,1,...y2,n},L}ごとに、トレーニングエンジン108は、4つのトレーニング例を処理することができる。トレーニング例は、以下の通りである。
ラベルLを有する{x1,...xm,y1,1,...y1,n,y2,1,...y2,n}
ラベル-Lを有する{x1,...xm,y2,1,...y2,n,y1,1,...y1,n}
ラベル0を有する{x1,...xm,y1,1,...y1,n,y1,1,...y1,n}
ラベル0を有する{x1,...xm,y2,1,...y2,n,y2,1,...y2,n}
第1のトレーニング例は、元のトレーニング例であり得、第2のトレーニング例は、2つの項目が入れ替えられた場合、モデル102の予測が逆転されるべきであるという観察による第1のトレーニング例の否定的な例であり得ることが留意されるべきである。トレーニング例3および4は、2つの類似した項目が同じランクであるべきであることを示す制約である。
【0093】
クエリ内の文脈的特徴の値が{x1,...xm}であり、クエリがx個の項目、すなわち、{z1,...zx}をランク付けする必要があり、その項目固有の特徴が値
【数32】
を有し、ここで、zi∈{zi,...zx}であると仮定する。2つの任意の項目zi、zj∈{z1,...zx}が与えられると、トレーニングエンジン108は、以下のように関数F+およびF-を計算する。
【数33】
【0094】
次いで、トレーニングエンジン108は、
cap(x,minValue,maxValue)=min(max(x,minValue),maxValue)
を定義することができる。これは、結果として
【数34】
を生じることができ、ここで、-1≦F(zi,zj)≦1.F(zi,zj)は、ziをzjの上位にランク付けする報酬である。
【0095】
次いで、トレーニングエンジン108は、全体の報酬、すなわち、
【数35】
を最大化する{zi,...zx}の順列、すなわち、
【数36】
を見つけることができる。
【0096】
図3は、機械学習モデルをトレーニングするための例示的なプロセス300のフローチャートである。プロセス300の動作は、たとえば、図1のシステム100のデータ分析エンジン110およびトレーニングエンジン108、または1つもしくは複数のデータ処理装置によって実施され得る。プロセス300の動作はまた、コンピュータ可読媒体上に記憶された命令として実装され得、ここで、命令の実行は、1つまたは複数のデータ処理装置にプロセス300の動作を実行させることができる。
【0097】
システム100は、複数のトレーニングサンプルを含むトレーニングデータセットを取得する(302)。たとえば、データ分析エンジン110は、トレーニングデータセット104を受信することができる。トレーニングデータセット104は、複数のトレーニング例を含む。各トレーニング例は、1つまたは複数の特徴と、対応するターゲット出力とを含む。トレーニング例に対応するターゲット出力は、トレーニング例の1つまたは複数の特徴を処理することに応答したモデル102の好ましい出力を指す。たとえば、トレーニングデータセット104は、{xi,yi},...{xN,yN}の形態のN個のトレーニング例を有するものとして定義され得、ここで、xiは、i番目のトレーニング例の特徴ベクトルであり、yiは、ターゲット出力である。特徴ベクトルxiの次元は、固定されているので、トレーニングデータセットは、テーブルまたは行列を使用して表され得る。
【0098】
データ分析エンジン110は、トレーニングデータセットのスパース表現である第1の行列を生成する(304)。たとえば、データ分析エンジン110は、処理のためにトレーニングデータセット104の1つまたは複数の特徴の中から特徴を反復的に選択することができる。データ分析エンジンは、選択された特徴がカテゴリ的特徴であるかどうかを判定する。特徴がカテゴリ的ではないと判定された場合、データ分析エンジン110は、非カテゴリ的特徴の値を特徴空間内の離散点に変換する。たとえば、データ分析エンジン110は、特定の特徴がカテゴリ的ではない(すなわち、特定の特徴が数値的である)と判定された後、三次スプライン補間を使用して特定の特徴を離散点に変換するために、三次スプライン補間法を使用する。いくつかの状況において、よりよいモデル圧縮を可能にするために、すなわち、モデルパラメータの数を減らし、正規化による過剰適合を防止するために、周波数領域において特徴埋め込みをトレーニングするために高速フーリエ変換(FFT(Fast Fourier Transform))および/またはウェーブレット変換が使用され得る。たとえば、FFT(および/またはウェーブレット)は、周波数領域においてトレーニングするために適用され得、ここで、埋め込みは、周波数の線形結合の係数(すなわち、重み)である。
【0099】
データ分析エンジン110は、カテゴリ的特徴の符号化表現を生成するために、ワンホット符号化などの方法を使用して特徴の符号化表現を生成することができる。一般に、ワンホット符号化は、特定の特徴のカテゴリに応じて、カテゴリ的特徴を1および0のベクトルに変換する。たとえば、性別を識別する特定の特徴が男性および女性の値を取る場合、ワンホット符号化された表現は、特定の特徴が男性である場合、表現の第1の特徴が1の値を有することになる(第2の値が0の値を有することになる)ように、2つの特徴を有することになる。これに対応して、特定の特徴が女性である場合、表現の第1の特徴は、0の値を有することになる(第2の特徴は、1の値を有することになる)。トレーニングデータセット102の各特徴を符号化した後、結果は、第1の行列と呼ばれる表または行列を使用して表され得る。
【0100】
データ分析エンジン110は、第1の行列と呼ばれるデータセットの行列表現を因数分解することができる(306)。たとえば、データ分析エンジン110は、第1の行列を生成した後、第1の行列を1つまたは複数の行列に分解するために、特異値分解(SVD)を使用する。SVD法は、以下の式A=U*Σ*VTを使用して表され得、ここで、Aは、n>mのようなn×m行列であり、Uは、n×m直交行列であり、Σは、m×m対角行列(第2の行列とも呼ばれる)であり、Vは、m×m直交行列である。
【0101】
データ分析エンジン110は、第2の行列と正規化項とを使用して第3の行列を生成することができる(308)。たとえば、データ分析エンジン110は、正規化項λを使用して、第3の行列Σ-1、すなわち、行列Σの逆行列を計算する。Σ-1は、以下の式、
【数37】
を使用して計算され得、ここで、Σ=diag(σ1,...σr)およびσ1,...σrは、特異値である。
【0102】
データ分析エンジン110は、1つまたは複数の行列と第3の行列とに基づいて第4の行列を生成することができる(310)。たとえば、式25を使用して第1の行列の逆行列(第4の行列とも呼ばれる)を計算するために、式24が使用され得る。
【数38】
【0103】
データ分析エンジン110は、所定の数の調整可能なパラメータを含むベクトルを使用して、トレーニングデータセットの各特徴を表すことができる(312)。たとえば、データ分析エンジン110は、トレーニングデータセットの各特徴を、特徴の固有の値および/またはレベル(特徴のカーディナリティとも呼ばれる)に基づいて決定され得る次元Kの埋め込み表現にマッピングする。たとえば、トレーニングデータセット104がN個のトレーニング例を有し、各トレーニング例がM個の特徴を有する場合、i番目のトレーニング例のj番目の特徴の値は、次元Kの埋め込みEi,jを使用して表され得、ここで、Ei,j∈RKである。特徴xjの比較的小さいカーディナリティについて、特徴xjの別個の値ごとに、特徴jに対して|xj|の別個の埋め込みを結果として生じる別個の埋め込みEjが存在し、ここで、|xj|は、カテゴリ的特徴jのカーディナリティであることが留意されるべきである。比較的高いカーディナリティを有する特徴について、データ分析エンジン110は、比較的高いカーディナリティを有する特徴を比較的低いカーディナリティを有する特徴に分割することができる。たとえば、特徴xjは、xj1,xj2,...xjqに分割され得る。そのようなシナリオにおいて、特徴xは、q個の別個の埋め込みEjを使用して表され得る。
【0104】
トレーニングエンジン108は、機械学習モデル102の調整可能なモデルパラメータの値を調整することができる(314)。いくつかの実装形態において、調整は、損失がもはや低減され得ないか、測定モデル品質が品質しきい値を満たすか、またはモデルのサイズが(たとえば、デバイスのトレーニングまたはモデルの呼び出しのメモリ制約に基づく)最大モデルサイズしきい値に達するまで、損失関数の残差を予測するために一連のモデルを反復的にトレーニングすることを含むことができる。たとえば、トレーニングエンジン108は、調整可能なパラメータckおよび埋め込み表現の値を調整することによって、K回の反復を使用して機械学習モデルをトレーニングする。機械学習モデル102によれば、トレーニングプロセスのk回目の反復の残差は、式26および27を使用して計算され得る。残差は、以下の形態、
【数39】
において表され得、ここで、yiは、サンプルiに対するターゲット出力である。
【0105】
いくつかの実装形態において、後続の各トレーニングモデルは、モデルのシーケンスにおける以前に生成されたモデルの結合された残差値を予測するためにトレーニングされ得る。言い換えれば、後続の各トレーニング反復に関するターゲット出力は、以前の反復からの残差である。トレーニングプロセスは、以下の式、
【数40】
を使用して対数空間に変換され得るN個の式の過剰決定系を生成することができ、ここで、任意の1≦i≦Nに対してRk-1,i-ck>0である。
【0106】
N個の式の過剰決定系は、
A*X=B
としてさらに表され得、ここで、Bi=log(Rk-1,i-ck)である。
【0107】
トレーニングエンジン108は、以下の式
X=V*Σ-1*UT*B=A-1*B 34
を使用して、過剰決定系のA*X=BにおけるXを計算することができ、ここで、A-1は、式25とBi=log log(Rk-1,i-ck)とを使用して計算される。
【0108】
いくつかの実装形態において、式34の代わりに、トレーニングエンジン108は、一般的に好まれる正規化技法、たとえば、L1正規化(別名ラッソ回帰)またはL2正規化(別名リッジ回帰)を用いて、反復方法を使用してXを計算することができる。トレーニングエンジン108は、以下に説明するヒューリスティックス、または他の適切なヒューリスティックスに基づいてckの値を選択することができる。トレーニングエンジン108は、ckに対する最適値を選択することによって|A*X-B|2の値が最小化され得るという直観に基づいて、ckの選択をさらに最適化することができる。これは、関数L(ck)を使用して表され得、ここで、
L(ck)=BT*(I-A*(AT*A)-1*AT)*B 35
である。C=I-A*(AT*A)-1*ATを計算することによって、式35は、
L(ck)=BT*C*B=ΣiΣjCi,j*log(Rk-1,i-ck)*log(Rk-1,j-ck) 36
の形態を取ることができる。
【0109】
いくつかの実装形態において、トレーニングエンジン108は、L(ck)を最小化するckの値を見つけるために、一次反復最適化アルゴリズムである勾配降下アルゴリズムを使用することができる。トレーニングエンジン108は、L(ck)を最小化するckの値を見つけるために、二次反復最適化アルゴリズムであるニュートン法、確率的ニュートン法を使用することもできる。トレーニングエンジン108は、確率的勾配降下(SGD)アルゴリズムを使用して、コスト関数を直接最適化することもできる。トレーニングエンジン108は、トレーニング可能なパラメータを最適化するために、座標降下アルゴリズムを使用することもできる。
【0110】
トレーニングエンジン108は、過剰決定系を使用して、特定の特徴に対する値の埋め込み表現を計算することができる。たとえば、過剰決定系A*X=Bは、QR分解を使用してXについて解かれ得る。
【0111】
いくつかの実装形態において、誤差関数は、平均二乗誤差(MSE)とは異なり得る。これらの実装形態において、Kステップの各々1つにおけるトレーニングラベルとして残差を使用する代わりに、トレーニングエンジン108は、疑似残差、すなわち、Ai*Xの内積を表す実際の中間変数の損失関数の導関数を計算し得、ここで、Aiは、i番目のトレーニング例に対応する第1の行列の行である。Biが、i番目のトレーニング例について計算された疑似残差を示すとする。トレーニングエンジン108は、前のセクションにおいて説明した任意の線形回帰手法を使用して、過剰決定系A*X=Bを解き得る。
【0112】
いくつかの実装形態において、反復トレーニングプロセスにおけるKステップの各々において、トレーニングエンジン108は、線形回帰結果の切片を、
【数41】
として明示的に表し得る。
【0113】
いくつかの実装形態において、トレーニングエンジン108は、学習率、たとえば、γを明示的に定義することができ、目的関数を、
【数42】
から
【数43】
に変更することができ、ここで、average(y)は、トレーニングデータセット内のラベルの平均値である。切片と学習率の両方をサポートするいくつかの実装形態において、目的関数は、
【数44】
であり得る。
【0114】
1つの正当な値を有する架空の単一値のカテゴリ的特徴を導入することによって、上記の式は、
【数45】
と等価になり得、ここで、
【数46】
であり、架空の単一値のカテゴリ的特徴に対する埋め込みにおけるk番目の次元は、log(γ)+interceptkである。
【0115】
図4は、上記で説明した動作を実行するために使用され得る例示的なコンピュータシステム400のブロック図である。システム400は、プロセッサ410と、メモリ420と、記憶デバイス430と、入力/出力デバイス440とを含む。構成要素410、420、430、および440の各々は、たとえば、システムバス450を使用して相互接続され得る。プロセッサ410は、システム400内で実行するための命令を処理することができる。一実装形態において、プロセッサ410は、シングルスレッドプロセッサである。別の実装形態において、プロセッサ410は、マルチスレッドプロセッサである。プロセッサ410は、メモリ420内または記憶デバイス430上に記憶された命令を処理することができる。
【0116】
メモリ420は、システム400内に情報を記憶する。一実装形態において、メモリ420は、コンピュータ可読媒体である。一実装形態において、メモリ420は、揮発性メモリユニットである。別の実装形態において、メモリ420は、不揮発性メモリユニットである。
【0117】
記憶デバイス430は、システム400のための大容量ストレージを提供することができる。一実装形態において、記憶デバイス430は、コンピュータ可読媒体である。様々な異なる実装形態において、記憶デバイス430は、たとえば、ハードディスクデバイス、光ディスクデバイス、複数のコンピュータデバイスによってネットワーク上で共有される記憶デバイス(たとえば、クラウド記憶デバイス)、または何らかの他の大容量記憶デバイスを含むことができる。
【0118】
入力/出力デバイス440は、システム400のための入力/出力動作を提供する。一実装形態において、入力/出力デバイス440は、1つまたは複数のネットワークインターフェースデバイス、たとえば、イーサネットカード、シリアル通信デバイス、たとえば、RS-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば、802.11カードを含むことができる。別の実装形態において、入力/出力デバイスは、入力データを受信し、出力データを他の入力/出力デバイス、たとえば、キーボード、プリンタ、およびディスプレイデバイス370に送信するように構成されたドライバデバイスを含むことができる。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなどの他の実装形態も使用され得る。
【0119】
例示的な処理システムが図4において説明されているが、本明細書において説明される主題および機能的動作の実装形態は、他のタイプのデジタル電子回路において、または本明細書において開示される構造とそれらの構造的同等物とを含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。
【0120】
電子文書(簡潔にするために、単に文書と呼ばれる)は、必ずしもファイルに対応するわけではない。文書は、他の文書を保持するファイルの一部において、問題の文書専用の単一のファイルにおいて、または複数の連携ファイルにおいて記憶され得る。
【0121】
本明細書において説明される主題および動作の実施形態は、デジタル電子回路において、本明細書において開示される構造とそれらの構造的同等物とを含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。本明細書において説明される主題の実施形態は、データ処理装置により実行するために、またはデータ処理装置の動作を制御するためにコンピュータ記憶媒体上に符号化された1つまたは複数のコンピュータプログラム、すなわち、コンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的に、またはそれに加えて、プログラム命令は、人工的に生成された伝播信号、たとえば、データ処理装置による実行のために適切な受信機装置に送信するための情報を符号化するために生成された機械生成の電気信号、光信号、または電磁信号上に符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つまたは複数の組合せであり得るか、もしくはそれらの中に含まれ得る。さらに、コンピュータ記憶媒体は、伝播信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝播信号内に符号化されたコンピュータプログラム命令のソースまたは宛先であり得る。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理的構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であり得、またはそれらの中に含まれ得る。
【0122】
本明細書において説明される動作は、1つもしくは複数のコンピュータ可読記憶媒体上に記憶されるか、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実施され得る。
【0123】
「データ処理装置」という用語は、例として、プログラム可能プロセッサ、コンピュータ、システムオンチップ、または複数の上記のもの、または上記の組合せを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ(field programmable gate array))またはASIC(特定用途向け集積回路(application-specific integrated circuit))を含むことができる。装置は、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むこともできる。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0124】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイル型またはインタプリタ型言語、宣言型言語または手続き型言語の任意の形態において記述され得、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットとして、を含む、任意の形態において展開され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語文書内に記憶された1つまたは複数のスクリプト)内、問題のプログラム専用の単一のファイル内、または複数の連携ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)内に記憶され得る。コンピュータプログラムは、1つのコンピュータ上、または1つのサイトに配置されるか、もしくは複数のサイトに分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開され得る。
【0125】
本明細書で説明されているプロセスおよび論理フローは、入力データに対して動作して出力を生成することによってアクションを実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行され得る。プロセスおよび論理フローは、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によっても実行され得、装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)としても実装され得る。
【0126】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方を含む。一般に、プロセッサは、読み取り専用メモリもしくはランダムアクセスメモリまたはその両方から命令とデータとを受信する。コンピュータの本質的な要素は、命令に従ってアクションを実行するためのプロセッサ、および命令とデータとを記憶する1つまたは複数のメモリデバイスである。一般に、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクを含むか、またはそれらからデータを受信するため、もしくはそれらにデータを送信するため、もしくはその両方を行うために動作可能に結合される。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス内、たとえば、少し例を挙げると、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)内に組み込まれ得る。コンピュータプログラム命令とデータとを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完されるか、またはそれらに組み込まれ得る。
【0127】
ユーザとの対話を提供するために、本明細書で説明されている主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールとを有するコンピュータ上に実装され得る。同様にユーザとの対話を提供するために、他の種類のデバイスが使用され得、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚的フィードバック、たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態において受け取られ得る。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そこから文書を受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受信された要求に応答してウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
【0128】
本明細書で説明されている主題の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含むか、またはミドルウェア構成要素を、たとえば、アプリケーションサーバとして含むか、またはフロントエンド構成要素を、たとえば、ユーザが本明細書で説明されている主題の実装形態と対話することができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータとして含むか、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【0129】
コンピューティングシステムは、クライアントとサーバとを含むことができる。クライアントおよびサーバは、一般に、互いに離れており、典型的には、通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって発生する。いくつかの実装形態において、サーバは、データ(たとえば、HTMLページ)をクライアントデバイスに(たとえば、クライアントデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受信する目的のために)送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザ対話の結果)は、サーバにおいてクライアントデバイスから受信され得る。
【0130】
本明細書は、多くの特定の実装形態の詳細を含むが、これらは、任意の発明の範囲または特許請求され得るものに対する制限として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に固有の特徴の説明として解釈されるべきである。別々の実施形態の文脈において本明細書で説明されている特定の特徴は、単一の実装形態において組み合わせても実装され得る。逆に、単一の実施形態の文脈において説明されている様々な特徴は、別々に複数の実施形態において、または任意の適切な部分的組合せにおいても実装され得る。さらに、特徴は、特定の組合せにおいて作用するものとして上記で説明されている場合があり、当初はそのように特許請求されている場合さえあるが、特許請求されている組合せからの1つまたは複数の特徴は、場合によっては、組合せから削除され得、特許請求されている組合せは、部分的組合せまたは部分的組合せの変形形態に向けられている場合がある。
【0131】
同様に、動作は、特定の順序において図面中に描かれているが、これは、所望の結果を達成するために、そのような動作が示されている特定の順序で、もしくは順番に実行されること、またはすべての図示された動作が実行されることを要求するものとして理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利な可能性がある。さらに、上記で説明した実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されているプログラム構成要素およびシステムが、一般に、単一のソフトウェア製品に一体化され得、または複数のソフトウェア製品にパッケージ化され得ることが理解されるべきである。
【0132】
したがって、主題の特定の実施形態について説明してきた。他の実施形態は、以下の特許請求の範囲内にある。場合によっては、特許請求の範囲において列挙されているアクションは、異なる順序で実行され得、所望の結果を依然として達成することができる。加えて、添付された図中に示されたプロセスは、所望の結果を達成するために、示された特定の順序、または順番を必ずしも必要としない。特定の実装形態において、マルチタスクおよび並列処理が有利である可能性がある。
【符号の説明】
【0133】
100 トレーニングシステム、システム
102 機械学習モデル、トレーニング済み機械学習モデル、モデル
103 モデルパラメータ
104 トレーニングデータセット
106 損失関数
108 トレーニングエンジン
110 データ分析エンジン
400 コンピュータシステム、システム
410 プロセッサ、構成要素
420 メモリ、構成要素
430 記憶デバイス、構成要素
440 入力/出力デバイス、構成要素
450 システムバス
図1
図2
図3
図4