【文献】
平田貴臣,外4名,深層学習と線形モデルを併用した時系列予測手法,電気学会論文誌C 電子・情報・システム部門誌,一般社団法人電気学会,2016年 3月 1日,第136巻,第3号,pp.348-356
(58)【調査した分野】(Int.Cl.,DB名)
1つまたは複数のコンピュータと、命令を記憶する1つまたは複数の記憶デバイスとを含むシステムであって、前記命令は、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、マシンラーニング入力を処理するための組合せマシンラーニングモデルを実装させ、前記マシンラーニング入力は、前記マシンラーニング入力に対して予測出力を生成するための複数の特徴を含み、前記組合せマシンラーニングモデルが、
ディープモデル中間予測出力を生成するために前記特徴を処理するように構成されるディープマシンラーニングモデルと、
ワイドモデル中間予測出力を生成するために前記特徴を処理するように構成されるワイドマシンラーニングモデルであって、前記ワイドマシンラーニングモデルが一般化線形モデルである、ワイドマシンラーニングモデルと、
前記予測出力を生成するために、前記ディープマシンラーニングモデルによって生成された前記ディープモデル中間予測出力と前記ワイドマシンラーニングモデルによって生成された前記ワイドモデル中間予測出力とを処理するように構成される組合せ層と
を備え、
前記ディープマシンラーニングモデルおよび前記ワイドマシンラーニングモデルが、前記ディープモデル中間予測出力と前記ワイドモデル中間予測出力とを生成するために、トレーニングデータに対して共同でトレーニングされている、
システム。
前記コンテンツ提示設定の前記特徴が、前記コンテンツ提示設定において提示されるべきコンテンツアイテムの特徴を含み、前記コンテンツ提示設定に関する前記予測出力が、前記コンテンツアイテムが前記コンテンツ提示設定において提示された場合に特定の目的が満足される尤度を表す、請求項2に記載のシステム。
前記組合せ層が、前記コンテンツアイテムが前記コンテンツ提示設定において提示された場合に前記特定の目的が満足される前記尤度を表すスコアを生成するために、前記ディープマシンラーニングモデルによって生成された前記ディープモデル中間予測出力と前記ワイドマシンラーニングモデルによって生成された前記ワイドモデル中間予測出力とを処理するように構成されるロジスティック回帰層である、請求項3に記載のシステム。
前記コンテンツ提示設定に関する前記予測出力が、コンテンツアイテムの所定のセット内の各コンテンツアイテムに関するそれぞれのスコアであり、それぞれのスコアが、対応するコンテンツアイテムが前記コンテンツ提示設定において提示された場合に特定の目的が満足されるそれぞれの尤度を表す、請求項2に記載のシステム。
前記組合せ層が、コンテンツアイテムの所定のセット内の各コンテンツアイテムに関するそれぞれのスコアを生成するために、前記ディープマシンラーニングモデルによって生成された前記ディープモデル中間予測出力と前記ワイドマシンラーニングモデルによって生成された前記ワイドモデル中間予測出力とを処理するように構成されるソフトマックス層である、請求項5に記載のシステム。
前記特徴が、コンテンツアイテムが前記コンテンツ提示設定において提示されるべきユーザを特徴付けるユーザ特徴を含む、請求項2から6のいずれか一項に記載のシステム。
前記ディープマシンラーニングモデルが、前記特徴の各々を前記特徴のそれぞれの数値埋め込みにマッピングするように構成される埋め込み層を含む、請求項9に記載のシステム。
前記ワイドマシンラーニングモデルが、前記ワイドモデル中間予測出力を生成するために、前記特徴と前記特徴から生成された変換された特徴とを処理するように構成される、請求項1に記載のシステム。
ミニバッチ確率的最適化を使用して前記ディープマシンラーニングモデルおよび前記ワイドマシンラーニングモデルの前記パラメータの前記現在の値を調整するステップをさらに備える、請求項14に記載の方法。
L1正則化を伴う正則化リーダに従う(FTRL)アルゴリズムを使用して前記ワイドマシンラーニングモデルの前記パラメータの前記現在の値を調整するステップをさらに備える、請求項14または15に記載の方法。
【発明を実施するための形態】
【0016】
様々な図面における同様の参照番号および名称は、同様の要素を示す。
【0017】
図1は、ディープマシンラーニングモデル104と、ワイドマシンラーニングモデル106と、組合せ層134とを含むワイドアンドディープマシンラーニングモデル102の例のブロック図である。ワイドアンドディープマシンラーニングモデル102は、複数の特徴、たとえば特徴108〜122を含むモデル入力を受け取り、モデル入力に対する予測出力、たとえば予測出力136を生成するために特徴を処理する。
【0018】
例として、モデル入力は、単語のシーケンスとすることができ、特徴108〜122は、シーケンス内の単語を表すトークンと、シーケンス内の単語を特徴付ける他の特徴とを含むことができる。この例では、予測出力136は、たとえば特定の単語がシーケンス内の次の単語である尤度、またはシーケンス内の特定の単語に関する品詞もしくは語彙に関する予測であってもよい。
【0019】
別の例では、特徴108〜122は、コンテンツ提示設定の特徴を含むことができ、予測出力136は、コンテンツ提示設定に関する予測出力とすることができる。
【0020】
場合によっては、特徴108〜122は、コンテンツアイテムの特徴を含むことができ、コンテンツ提示設定に関する予測出力136は、コンテンツアイテムがコンテンツ提示設定において提示された場合に特定の目的が満足される尤度を表すスコアであってもよい。
【0021】
場合によっては、特徴108〜112は、コンテンツアイテムがコンテンツ提示設定において提示されるべきユーザを特徴付けるユーザ特徴を含むことができる。
【0022】
場合によっては、特徴は、コンテンツ提示設定のコンテキストを特徴付けるコンテキスト情報を含むことができる。
【0023】
場合によっては、コンテンツ提示設定に関する予測出力136は、複数のコンテンツアイテムの所定のセット内の各コンテンツアイテムに関するそれぞれのスコアであり、それぞれのスコアは、対応するコンテンツアイテムがコンテンツ提示設定において提示された場合に特定の目的が満足されるそれぞれの尤度を表す。
【0024】
たとえば、コンテンツアイテム提示設定は、ユーザによって提出された検索クエリに対する応答であってもよい。たとえば、検索クエリは、インターネット検索エンジンに提出された検索クエリであってもよく、コンテンツアイテムは、検索結果に対する応答に含まれる候補であるインターネットリソースを識別するインターネット検索結果であってもよく、または検索クエリに対する応答においてインターネット検索結果と共に表示される候補であるサードパーティのコンテンツアイテムであってもよい。別の例として、検索クエリは、オンラインアプリストアに提出された検索クエリであってもよく、コンテンツアイテムは、検索クエリに対する応答において表示される候補であるオンラインアプリストアにおいて利用可能なアプリを識別するアプリ検索結果であってもよい。
【0025】
別の例として、コンテンツアイテム提示設定は、インターネットリソース、たとえばウェブページ内の特定の位置であってもよく、コンテンツアイテムは、インターネットリソース内の特定の位置において表示される候補であるサードパーティのコンテンツアイテムであってもよい。
【0026】
別の例として、コンテンツアイテム提示設定は、コンテンツ推奨設定、たとえば特定のタイプのコンテンツアイテムがユーザに提示されている設定であってもよく、ユーザにとって興味がある可能性がある特定のタイプの他のコンテンツアイテムの推奨もユーザに提示されてもよい。
【0027】
この例では、複合モデルによってスコアリングされているコンテンツアイテムは、ユーザに推奨される候補であるコンテンツアイテムであってもよい。たとえば、オンラインビデオ共有サービスによってビデオがユーザに提示されてもよい。提示されたビデオと一緒に、ユーザにとって興味がある可能性がある他のビデオのサムネイルも、ビデオ共有サービスによってユーザに提示されてもよい。別の例として、オンラインマーケットプレイスによって販売される製品を識別する製品ページがユーザに提示されてもよく、製品ページは、ユーザにとって興味がある可能性がある他の製品に関する製品ページへのリンクをさらに含んでもよい。
【0028】
特定の目的は、コンテンツ提示設定において所与のコンテンツアイテムを提示した結果に関連する様々な目的のうちのいずれかであってもよい。
【0029】
たとえば、特定の目的は、コンテンツ提示設定において提示されるコンテンツアイテムをユーザが選択することであってもよい。この場合、所与のコンテンツアイテムに関するスコアは、それがコンテンツ提示設定において提示された場合にユーザがコンテンツアイテムをクリックするか、または他の方法で選択する尤度を表す。
【0030】
別の例として、特定の目的は、ユーザがコンテンツ提示設定において提示されたコンテンツアイテムを見た後に、1つまたは複数の指定されたアクションを実行すること、たとえばアイテムを購入することであってもよい。この場合、所与のコンテンツアイテムに関するスコアは、所与のコンテンツアイテムがコンテンツ提示設定において提示された場合に、指定されたアクションのうちの1つをユーザが実行する尤度を表す。
【0031】
別の例として、特定の目的は、コンテンツアイテムをコンテンツ提示設定において表示することによって、ユーザエンゲージメントに悪影響を及ぼさないことであってもよい。この場合、所与のコンテンツアイテムに関するスコアは、所与のコンテンツアイテムがコンテンツ提示設定において表示された場合のユーザエンゲージメントメトリックの値またはユーザエンゲージメントメトリックの値の変化を表す。ユーザエンゲージメントメトリックは、提示されたコンテンツアイテムとのユーザのエンゲージメントを測定する任意の適切なメトリックであってもよい。
【0032】
ディープマシンラーニングモデル104は、埋め込み層150とディープニューラルネットワーク130とを含むディープモデルである。いくつかの実装形態では、埋め込み層はディープニューラルネットワーク130内に含まれる。埋め込み層150は、埋込み関数のセット、たとえば埋込み関数124〜128を含む。ディープニューラルネットワーク130は動作の複数の層を含み、層のうちの少なくとも1つは出力を生成するために受信した入力に非線形変換を適用する。
【0033】
特に、ディープマシンラーニングモデル104は、ディープモデル中間予測出力を生成するために、ワイドアンドディープラーニングモデル102のモデル入力に含まれる特徴の第1のセットを処理するように構成される。たとえば、ディープマシンラーニングモデル104は、特徴108〜114の第1のセットを処理するように構成される。埋め込み層は、特徴108〜114の第1のセットのうちの1つまたは複数に埋込み関数を適用することができる。たとえば、埋め込み層150は、埋込み関数124〜128を特徴110〜114に適用する。場合によっては、埋め込み層によって処理される特徴は、ユーザ特徴(たとえば、国、言語および人口統計)、コンテキスト特徴(たとえば、デバイス、その日の時刻、曜日)、および印象特徴(たとえば、アプリの年齢、アプリの履歴統計)などのまばらな分類特徴である。埋め込み層によって処理されない他の特徴は、ソフトウェアアプリケーションのインストール数などの連続特徴を含んでもよい。埋込み関数124〜128の各々は、特徴110〜114の各々をそれぞれの数値埋め込み、たとえば特徴の浮動小数点数ベクトル表現にマッピングする変換を特徴110〜114の各々に適用する。数値埋め込みは、1つもしくは複数の浮動小数点数値、またはその符号化が浮動小数点数値を表す1つもしくは複数の量子化整数値を含むことができる。埋込み関数について、
図2を参照して以下でより詳細に説明する。
【0034】
ディープニューラルネットワーク130は、入力として、埋め込み層からの数値埋め込みと、オプションで他の入力特徴(たとえば、特徴108)とを受信する。ディープニューラルネットワーク130は、ディープモデル中間予測出力を生成するために、受信した入力に非線形変換をそれぞれ適用する、複数たとえば3つ以上の動作層を含む。したがって、ディープニューラルネットワーク130は、入力の代替表現、すなわちディープモデル中間予測出力を生成するために、数値埋め込みおよび他の入力特徴に複数の非線形変換を適用する。
【0035】
ワイドマシンラーニングモデル106は、ワイドアンドディープラーニングモデル102のモデル入力内に含まれる特徴の第2のセット(たとえば、特徴116〜122)を処理し、ワイドモデル中間予測出力を生成するように構成されるワイドアンドシャロー(wide and shallow)モデル、たとえば一般化線形モデル138である。いくつかの実装形態では、特徴の第2のセット内の特徴のうちのいくつかは、特徴の第1のセット内の特徴のうちのいくつかと重複してもよい。いくつかの他の実装形態では、特徴の第2のセットは特徴の第1のセットとは完全に異なっていてもよい。
【0036】
いくつかの実装形態では、ワイドマシンラーニングモデル106は、ワイドモデル中間出力を生成するために、たとえばクロス積特徴変換132を使用して、特徴の第2のセット内の元の入力特徴(たとえば、特徴120および122)と、他の特徴(たとえば、特徴116〜118)から生成された変換された特徴との両方を処理するように構成される。場合によっては、クロス積特徴変換132は分類特徴に適用される。二値特徴について、クロス積変換は、構成特徴がすべて1の場合は1であり、そうでない場合は0である。この変換は、二値化分類特徴間の相互作用を取り込み、一般化線形モデルに非線形性を加えることができる。
【0037】
各中間出力内の各値は、たとえば対数オッズ出力、確率値、または別の種類の数値とすることができる。
【0038】
組合せ
マシンラーニングモデル102はまた、予測出力136を生成するために、ディープマシンラーニングモデル104によって生成されたディープモデル中間予測出力と、ワイドマシンラーニングモデル106によって生成されたワイドモデル中間予測出力とを処理するように構成される組合せ層134を含む。予測出力が単一のスコアである実装形態では、組合せ層はロジスティック回帰層であってもよい。予測出力が複数のスコアを含む実装形態では、組合せ層はソフトマックス層であってもよい。
【0039】
図2は、ワイドアンドディープラーニングモデルを使用して予測入力を生成するための例示的なプロセス200のフロー図である。便宜上、プロセス200について、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明する。
【0040】
システムは、入力の特徴を取得する(ステップ202)。上記で説明したように、特徴の各々は、シーケンス内の単語を表す1つのトークンまたは複数のトークンと、シーケンス内の単語を特徴付ける他の特徴とを含んでもよい。特徴の各々は、各特徴内に含まれるトークンの数に応じて異なるタイプのものであってもよい。
【0041】
システムは、ディープモデル中間予測出力を生成するために、ディープマシンラーニングモデルを使用して取得された特徴からの特徴の第1のセットを処理する(ステップ204)。上記で説明したように、ディープマシンラーニングモデルは、ディープニューラルネットワークと、埋込み関数を含む埋め込み層とを含む。いくつかの実装形態では、システムは、埋め込み層を特徴の第1のセットのサブセットに適用する。特に、システムは、特徴の数値埋め込み、たとえば浮動小数点数ベクトル表現を生成するために、サブセット内の特徴の特徴タイプの各々について埋込み関数の各々を使用する。特徴タイプと実装形態とに応じて、所与の特徴タイプに関する埋込み関数は様々な埋込み関数のうちのいずれかとすることができる。
【0042】
たとえば、特徴が単一のトークンからなる特徴タイプについて、埋込み関数は単純な埋込み関数であってもよい。単純な埋込み関数は、単一のトークンを浮動小数点数ベクトル、すなわち浮動小数点数値のベクトルにマッピングする。たとえば、単純な埋込み関数は、たとえば特定のルックアップテーブルを使用して、現在のパラメータ値に基づいて"cat"というトークンをベクトル[0.1, 0.5, 0.2]にマッピングし、"iPod(登録商標)"という単語をベクトル[0.3, 0.9, 0.0]にマッピングしてもよい。
【0043】
別の例として、特徴が潜在的に2つ以上のトークンのリストからなる尤度がある特徴タイプについて、埋込み関数は並列埋込み関数であってもよい。並列埋込み関数は、トークンのリスト内の各トークンをそれぞれの浮動小数点数ベクトルにマッピングし、それぞれの浮動小数点数ベクトルの連結である単一のベクトルを出力する。たとえば、{"Atlanta", "Hotel"}というトークンの順序付きリストについて、並列埋込み関数は、"Atlanta"をベクトル[0.1, 0.2, 0.3]にマッピングし、"Hotel"を[0.4, 0.5, 0.6]にマッピングし、次いで[0.1, 0.2, 0.3, 0.4, 0.5, 0.6]を出力してもよい。それぞれの浮動小数点数ベクトルを識別するために、並列埋込み関数は単一のルックアップテーブルまたは複数の異なるルックアップテーブルを使用してもよい。
【0044】
別の例として、特徴が潜在的に2つ以上のトークンのリストからなる尤度がある特徴タイプについて、埋込み関数は結合埋込み関数であってもよい。結合埋込み関数は、リスト内の各トークンをそれぞれの浮動小数点数ベクトルにマッピングし、次いでそれぞれの浮動小数点数ベクトルを単一のマージベクトルにマージする。結合埋込み関数は、たとえば線形関数、たとえばそれぞれの浮動小数点数ベクトルの和、平均、もしくは重み付き線形結合を使用して、または非線形関数、たとえば構成要素ごとの最大値もしくはノルム制約付き線形結合を使用して、それぞれの浮動小数点数ベクトルをマージすることができる。それぞれの浮動小数点数ベクトルを識別するために、並列埋込み関数は単一のルックアップテーブルまたは複数の異なるルックアップテーブルを使用してもよい。たとえば順序付きリスト{"Atlanta","Hotel"}について、並列埋込み関数は、"Atlanta"を[0.1, 0.2, 0.3]にマッピングし、"Hotel"を[0.4, 0.5, 0.6]にマッピングし、次いで2つのベクトルの和、すなわち[0.5, 0.7, 0.9]を出力してもよい。
【0045】
別の例として、特徴が潜在的に2つ以上のトークンのリストからなる尤度がある特徴タイプについて、埋込み関数は混合埋込み関数であってもよい。混合埋込み関数は、トークンのリスト内の各トークンをそれぞれの浮動小数点数ベクトルにマッピングし、それぞれの浮動小数点数ベクトルの連結である初期ベクトルを生成する。混合埋込み関数は、次いでそれぞれの浮動小数点数ベクトルをマージベクトルにマージし、マージベクトルを初期ベクトルと連結する。たとえば、順序付きリスト{"Atlanta","Hotel"}について、混合埋込み関数は、並列埋込み関数および複合埋込み関数によって出力されたベクトルの連結、すなわち[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.5, 0.7, 0.9]を出力してもよい。
【0046】
実装形態に応じてシステムは、2つの異なる特徴タイプに対して2つの異なる種類の埋込み関数を利用してもよく、2つの埋込み関数はパラメータを共有してもしなくてもよい。たとえば、システムは、第1の特徴タイプのための複合埋込み関数と、第2の特徴タイプのための混合埋込み関数とを利用してもよい。
【0047】
特徴のうちの1つまたは複数が離散的ではない場合、埋込み関数を使用して特徴を処理する前に、システムは各非離散的特徴をハッシュするためにハッシュ関数を使用する。システムは、次いで各ハッシュ化された特徴をパーティションの所定のセットのうちの1つに分割し、特徴に対して埋込み関数を使用してパーティションに対応する値を処理することができる。加えて、特定の特徴を取得することができない場合、システムはその特徴を所定の値にマッピングすることができる。
【0048】
いくつかの実装形態では、浮動小数点数の代わりに所与の埋込み関数が異なる種類の数値を生成してもよい。たとえば、埋込み関数は、その符号化が浮動小数点数値を表す量子化整数値を生成してもよい。
【0049】
システムは、数値埋め込み(たとえば、浮動小数点数ベクトル表現)を処理し、オプションでディープニューラルネットワークを使用して元の入力特徴のうちの1つまたは複数を処理する。ディープニューラルネットワークは、たとえば
図1のディープニューラルネットワーク130とすることができる。ディープネットワークは、非線形変換を含む少なくとも1つの層を有する複数の層を含む。非線形変換は、パラメータのそれぞれのセットの値に基づいて定義することができる。たとえば、ディープネットワークは、1つまたは複数の隠れニューラルネットワーク層と、まばらな二値出力層、たとえばあらゆる位置において0または1であるベクトルを出力する層とを含むことができる。一般に、ディープネットワークは、特徴の第1のセット内の特徴のサブセットおよび残りの特徴の浮動小数点数ベクトル表現に基づいて、ディープモデル中間予測出力として入力の代替表現を生成する。
【0050】
システムは、ワイドモデル中間予測出力を生成するために、ワイドマシンラーニングモデルを使用して取得した特徴からの特徴の第2のセットを処理する(ステップ206)。いくつかの実装形態では、特徴の第2のセットは特徴の第1のセットと重複してもよい。いくつかの他の実装形態では、特徴の第2のセットは特徴の第1のセットと異なってもよい。システムは、変換された特徴を生成するために、特徴の第2のセットのサブセットにクロス積特徴変換を適用することができる。システムは、次いでワイドモデル中間出力を生成するためにワイドモデルを使用して、特徴の第2のセット内の元の入力特徴と、クロス積特徴変換の使用を介して他の特徴から生成された変換された特徴の両方を処理することができる。ワイドモデルは、元の入力特徴と変換された特徴とを定義する複数のパラメータを有する一般化線形モデルとすることができる。システムは、ワイドモデル中間出力を生成するために、元の入力特徴および変換された特徴に一般化線形モデルを適用することができる。
【0051】
システムは、組合せ層を使用して予測出力を生成するためにディープモデル出力およびワイドモデル出力を処理する(ステップ208)。一般に、組合せ層は、複合出力を生成するためにたとえば2つの出力の和または加重和を計算することによってディープモデル出力とワイドモデル出力とを複合し、次いで複合出力から予測出力を生成する。予測出力が単一のスコアである実装形態では、システムは、ディープモデル出力とワイドモデル出力とを処理するために組合せ層としてロジスティック回帰層を使用することができる。予測出力が複数のスコアを含む実装形態では、システムは、ディープモデル出力とワイドモデル出力とを処理するために、組合せ層としてソフトマックス層を使用することができる。
【0052】
図3は、ワイドアンドディープラーニングモデルを含むマシンラーニングシステムをトレーニングするための例示的なプロセス300のフロー図である。便宜上、プロセス300について、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明する。
【0053】
ワイドモデルおよびディープモデルのパラメータのトレーニングされた値を決定するために、システムは、トレーニングデータに基づいて複合モデルをトレーニングする。
【0054】
いくつかの実装形態では、
図3に記載されるように、システムは、ワイドモデルおよびディープモデルを共同してトレーニングする。
【0055】
システムは、複数のトレーニング入力の各々について、(i)トレーニング入力の特徴と、(ii)トレーニング入力に対する既知の出力とを含むトレーニングデータを取得する(ステップ302)。
【0056】
システムは、次いでトレーニング入力の各々について、ディープマシンラーニングモデルのパラメータの現在の値に従ってトレーニング入力に対するディープモデル中間予測出力を生成するためにディープマシンラーニングモデルを使用してトレーニング入力の特徴を処理することによって複合モデルをトレーニングする(ステップ304)。
【0057】
システムは、ワイドマシンラーニングモデルのパラメータの現在の値に従ってトレーニング入力に対するワイドモデル中間予測出力を生成するためにワイドマシンラーニングモデルを使用してトレーニング入力の特徴を処理する(ステップ306)。
【0058】
システムは、次いでトレーニング入力に対する予測出力を生成するために組合せ層を使用してトレーニング入力に対するディープモデル中間予測出力とワイドモデル中間予測出力とを処理する(ステップ308)。
【0059】
システムは、次いでトレーニング入力に対する予測出力とトレーニング入力に対する既知の出力との間の誤差を決定する。加えて、システムは、ディープマシンラーニングモデルおよびワイドマシンラーニングモデルのパラメータの現在の値を誤差を減少させる方向において共同して調整するために、組合せ層を介して誤差から決定される勾配をワイドマシンラーニングモデルおよびディープマシンラーニングモデルに逆伝播させる(ステップ310)。さらに、逆伝播の方法を介して、システムはディープラーニングモデルに誤差信号を送信することができ、これは逆伝播の連続ステージを介してディープラーニングモデルがその内部構成要素、たとえばディープニューラルネットワークおよび埋込み関数のセットのパラメータを調整することを可能にする。システムはまた、ワイドラーニングモデルが一般化線形モデルのパラメータを調整することを可能にするためにワイドラーニングモデルに誤差信号を送信することができる。
【0060】
一般に、これらの実装形態では、システムはミニバッチ確率的最適化を使用してディープマシンラーニングモデルとワイドマシンラーニングモデルとをトレーニングする。たとえば、システムは、L1正規化を伴う正則化リーダに従う(FTRL)アルゴリズムを使用してワイドマシンラーニングモデルをトレーニングし、適応学習率を用いる確率的勾配最適化を使用して第2のトレーニングデータにおいてディープマシンラーニングモデルをトレーニングすることができる。
【0061】
いくつかの他の実装形態では、システムは、最初に複合モデルとは別にトレーニングデータの1つのセットにおいてワイドモデルをトレーニングし、次いで複合モデルの一部と同じまたは場合によっては異なるトレーニングデータにおいてディープモデルをトレーニングする。
【0062】
すなわち、システムは、最初にディープモデルによって生成された中間出力を考慮せずにトレーニングデータにおいてワイドモデルをトレーニングする。
【0063】
これらの他の実装形態では、ワイドモデルをトレーニングした後、ディープモデルをトレーニングするために使用されているトレーニングデータ内の各トレーニング入力に対して、システムは、ディープマシンラーニングモデルのパラメータの現在の値に従ってトレーニング入力に対するディープモデル中間予測出力を生成するためにディープマシンラーニングモデルを使用してトレーニング入力の特徴を処理し、ワイドマシンラーニングモデルのパラメータのトレーニングされた値に従ってトレーニング入力に対するワイドモデル中間予測出力を生成するためにワイドマシンラーニングモデルを使用してトレーニング入力の特徴を処理し、トレーニング入力に対する予測出力を生成するために組合せ層を使用してトレーニング入力に対するディープモデル中間予測出力とワイドモデル中間予測出力とを処理する。システムは、次いでディープマシンラーニングモデルのパラメータの現在の値を調整するために、組合せ層を介してトレーニング入力に対する予測出力とトレーニング入力に対する既知の出力との間の誤差から決定される勾配をディープマシンラーニングモデルに逆伝播させ、すなわちワイドモデルのパラメータのトレーニングされた値を固定されたままにする。
【0064】
さらに他の実装形態では、システムは、最初に複合モデルとは別にトレーニングデータの1つのセットにおいてディープモデルをトレーニングし、次いで複合モデルの一部と同じまたは場合によっては異なるトレーニングデータにおいてワイドモデルをトレーニングする。
【0065】
すなわち、システムは、最初にワイドモデルによって生成された中間出力を考慮せずにトレーニングデータにおいてディープモデルをトレーニングする。
【0066】
これらの他の実装形態では、ディープモデルをトレーニングした後、ディープモデルをトレーニングするために使用されているトレーニングデータ内の各トレーニング入力に対して、システムは、ワイドマシンラーニングモデルのパラメータの現在の値に従ってトレーニング入力に対するワイドモデル中間予測出力を生成するためにワイドマシンラーニングモデルを使用してトレーニング入力の特徴を処理し、ディープマシンラーニングモデルのパラメータのトレーニングされた値に従ってトレーニング入力に対するディープモデル中間予測出力を生成するためにディープマシンラーニングモデルを使用してトレーニング入力の特徴を処理し、トレーニング入力に対する予測出力を生成するために組合せ層を使用してトレーニング入力に対するワイドモデル中間予測出力とディープモデル中間予測出力とを処理する。システムは、次いでワイドマシンラーニングモデルのパラメータの現在の値を調整するために、トレーニング入力に対する予測出力とトレーニング入力に対する既知の出力との間の誤差から決定される勾配を組合せ層を介してワイドマシンラーニングモデルに逆伝播させ、すなわちディープモデルのパラメータのトレーニングされた値を固定されたままにする。
【0067】
特定の動作またはアクションを実行するように構成される1つまたは複数のコンピュータのシステムについて、動作中にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせをシステムがインストールしたことを意味する。特定の動作またはアクションを実行するように構成される1つまたは複数のコンピュータプログラムについて、データ処理装置によって実行されると装置に動作またはアクションを実行させる命令を1つまたは複数のプログラムが含むことを意味する。
【0068】
本明細書に記載された主題および機能的動作の実施形態は、デジタル電子回路において、有形に具体化されたコンピュータソフトウェアもしくはファームウェアにおいて、本明細書で開示される構造およびそれらの構造的均等物を含むコンピュータハードウェアにおいて、またはそれらのうちの1つもしくは複数の組み合わせにおいて実装することができる。本明細書に記載された主題の実施形態は、1つまたは複数のコンピュータプログラムとして実装することができ、すなわちデータ処理装置によって実行するため、またはデータ処理装置の動作を制御するための有形の非一時的プログラムキャリア上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。代替的にまたは加えて、プログラム命令は、データ処理装置による実行のための適切なレシーバ装置への送信のために情報を符号化するために生成された人為的に生成された伝搬信号、たとえば機械生成された電気信号、光信号、または電磁信号において符号化することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組み合わせとすることができる。しかしながら、コンピュータ記憶媒体は伝搬信号ではない。
【0069】
「データ処理装置」という用語は、例としてプログラム可能なプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含むデータを処理するためのすべての種類の装置、デバイス、および機械を包含する。本装置は、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。本装置はまた、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を作成するコード、たとえばプロセッサファームウェアを構成するコード、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組み合わせを含むことができる。
【0070】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれ、それらとして説明されることもある)は、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形式のプログラミング言語において書くことができ、スタンドアロンプログラムとしての形式、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境において使用するのに適した他の単位としての形式を含む任意の形式において展開することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応してもよいが、必ずしも対応する必要はない。プログラムは、他のプログラムもしくはデータ、たとえばマークアップ言語文書内に記憶された1つもしくは複数のスクリプトを保持するファイルの一部において、問題のプログラム専用の単一のファイルにおいて、または複数の連携ファイル、たとえば1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルにおいて記憶することができる。コンピュータプログラムは、単一のコンピュータ上で、または1つのサイトにおいて配置されるか、もしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。
【0071】
本明細書で使用される「エンジン」または「ソフトウェアエンジン」は、入力とは異なる出力を提供するソフトウェア実装入力/出力システムを指す。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット("SDK")、またはオブジェクトなどの、符号化された機能ブロックとすることができる。各エンジンは、1つまたは複数のプロセッサとコンピュータ可読媒体とを含む任意の適切なタイプのコンピューティングデバイス、たとえばサーバ、モバイルフォン、タブレットコンピュータ、ノートブックコンピュータ、音楽プレーヤ、電子書籍リーダ、ラップトップもしくはデスクトップコンピュータ、PDA、スマートフォン、または他の固定デバイスもしくはポータブルデバイス上に実装することができる。加えて、エンジンのうちの2つ以上は、同じコンピューティングデバイス上、または異なるコンピューティングデバイス上に実装されてもよい。
【0072】
本明細書で説明されるプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なコンピュータによって実行することができる。プロセスおよび論理フローは、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することもでき、装置は、専用論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)として実装することができる。
【0073】
コンピュータプログラムの実行に適したコンピュータは、例として汎用マイクロプロセッサもしくは専用マイクロプロセッサ、もしくはその両方、または任意の他の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令とデータとを受信する。コンピュータの必須要素は、命令を実施または実行するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気ディスク、光磁気ディスク、または光ディスクを含むか、またはそれらからデータを受信するか、もしくはそれらにデータを送信するか、もしくはその両方を行うようにそれらに動作可能に結合される。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえばいくつか例を挙げると、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブル記憶デバイス、たとえばユニバーサルシリアルバス(USB)フラッシュドライブ内に組み込むことができる。
【0074】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体、例として半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMディスクおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完することができ、またはそれに組み込むことができる。
【0075】
ユーザとの対話を提供するために、本明細書で開示される主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、ユーザが入力をコンピュータに提供することができるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールとを有するコンピュータ上で実施することができる。同様にユーザとの対話を提供するために他の種類のデバイスを使用することができ、たとえばユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そこから文書を受信することによって、たとえばウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザと対話することができる。
【0076】
本明細書で説明される実施形態は、たとえばデータサーバとしてバックエンド構成要素を含むコンピューティングシステム、またはたとえばアプリケーションサーバとしてミドルウェア構成要素を含むコンピューティングシステム、またはフロントエンド構成要素、たとえばユーザが本明細書で説明される主題の実装形態と対話することができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むコンピューティングシステム、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組み合わせを含むコンピューティングシステム、において実施することができる。システムの構成要素は、任意の形式または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク("LAN")およびワイドエリアネットワーク("WAN")、たとえばインターネットを含む。
【0077】
コンピューティングシステムは、クライアントとサーバとを含むことができる。クライアントおよびサーバは、一般に互いに遠隔であり、典型的には通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアント−サーバ関係を有するコンピュータプログラムのおかげで生じる。
【0078】
本明細書は、多くの具体的な実装形態の詳細を含むが、これらは任意の発明の範囲、または特許請求されてもよい発明の範囲に対する限定として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に特有である場合がある特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書で説明される特定の特徴は、単一の実施形態において組み合わせて実装されることも可能である。逆に、単一の実施形態の文脈において説明される様々な特徴は、複数の実施形態において別々にまたは任意の適切な部分的組み合わせにおいて実装されることも可能である。さらに、特徴は、特定の組み合わせにおいて作用するものとして上記で説明され、当初はそのように特許請求されている場合があるが、特許請求された組み合わせからの1つまたは複数の特徴は、場合によっては組み合わせから削除されることが可能であり、特許請求された組み合わせは、部分的組み合わせまたは部分的組み合わせの変形に向けられてもよい。
【0079】
同様に、動作は特定の順序で図面に示されているが、これは、所望の結果を達成するためにそのような動作が示された特定の順序もしくは逐次的な順序で実行されること、またはすべての図示された動作が実行されることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスク処理および並列処理が有利な場合がある。さらに、上記で説明した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラム構成要素およびシステムは、一般に単一のソフトウェア製品内に一緒に統合されるか、または複数のソフトウェア製品にパッケージ化されることが可能であることが理解されるべきである。
【0080】
主題の特定の実施形態について説明した。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲内に列挙された動作は、異なる順序で実行されることが可能であり、依然として所望の結果を達成することができる。一例として、添付図面において記されたプロセスは、所望の結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。特定の実装形態では、マルチタスク処理および並列処理が有利な場合がある。