特許第6758406号(P6758406)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

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

特許6758406ワイドアンドディープマシンラーニングモデル
<>
  • 特許6758406-ワイドアンドディープマシンラーニングモデル 図000002
  • 特許6758406-ワイドアンドディープマシンラーニングモデル 図000003
  • 特許6758406-ワイドアンドディープマシンラーニングモデル 図000004
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6758406
(24)【登録日】2020年9月3日
(45)【発行日】2020年9月23日
(54)【発明の名称】ワイドアンドディープマシンラーニングモデル
(51)【国際特許分類】
   G06N 3/04 20060101AFI20200910BHJP
【FI】
   G06N3/04
【請求項の数】19
【全頁数】18
(21)【出願番号】特願2018-553922(P2018-553922)
(86)(22)【出願日】2016年12月28日
(65)【公表番号】特表2019-517057(P2019-517057A)
(43)【公表日】2019年6月20日
(86)【国際出願番号】US2016068842
(87)【国際公開番号】WO2017180208
(87)【国際公開日】20171019
【審査請求日】2019年1月4日
(31)【優先権主張番号】62/322,161
(32)【優先日】2016年4月13日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】タル・シャケド
(72)【発明者】
【氏名】ローハン・アニル
(72)【発明者】
【氏名】ヒリシケシュ・バルクリシュナ・アラディエ
(72)【発明者】
【氏名】ムスタファ・イスピル
(72)【発明者】
【氏名】グレン・アンダーソン
(72)【発明者】
【氏名】ウェイ・チャイ
(72)【発明者】
【氏名】メフメト・レヴェント・コック
(72)【発明者】
【氏名】ジェレマイア・ハームセン
(72)【発明者】
【氏名】シャオビン・リュウ
(72)【発明者】
【氏名】グレゴリー・ショーン・コラード
(72)【発明者】
【氏名】トゥシャー・ディーパック・チャンドラ
(72)【発明者】
【氏名】ヘン−ツェ・チェン
【審査官】 多胡 滋
(56)【参考文献】
【文献】 平田貴臣,外4名,深層学習と線形モデルを併用した時系列予測手法,電気学会論文誌C 電子・情報・システム部門誌,一般社団法人電気学会,2016年 3月 1日,第136巻,第3号,pp.348-356
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のコンピュータと、命令を記憶する1つまたは複数の記憶デバイスとを含むシステムであって、前記命令は、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、マシンラーニング入力を処理するための組合せマシンラーニングモデルを実装させ、前記マシンラーニング入力は、前記マシンラーニング入力に対して予測出力を生成するための複数の特徴を含み、前記組合せマシンラーニングモデルが、
ディープモデル中間予測出力を生成するために前記特徴を処理するように構成されるディープマシンラーニングモデルと、
ワイドモデル中間予測出力を生成するために前記特徴を処理するように構成されるワイドマシンラーニングモデルであって、前記ワイドマシンラーニングモデルが一般化線形モデルである、ワイドマシンラーニングモデルと、
前記予測出力を生成するために、前記ディープマシンラーニングモデルによって生成された前記ディープモデル中間予測出力と前記ワイドマシンラーニングモデルによって生成された前記ワイドモデル中間予測出力とを処理するように構成される組合せ層と
を備え、
前記ディープマシンラーニングモデルおよび前記ワイドマシンラーニングモデルが、前記ディープモデル中間予測出力と前記ワイドモデル中間予測出力とを生成するために、トレーニングデータに対して共同でトレーニングされている、
システム。
【請求項2】
前記特徴がコンテンツ提示設定の特徴であり、前記予測出力が前記コンテンツ提示設定に関する予測出力である、請求項1に記載のシステム。
【請求項3】
前記コンテンツ提示設定の前記特徴が、前記コンテンツ提示設定において提示されるべきコンテンツアイテムの特徴を含み、前記コンテンツ提示設定に関する前記予測出力が、前記コンテンツアイテムが前記コンテンツ提示設定において提示された場合に特定の目的が満足される尤度を表す、請求項2に記載のシステム。
【請求項4】
前記組合せ層が、前記コンテンツアイテムが前記コンテンツ提示設定において提示された場合に前記特定の目的が満足される前記尤度を表すスコアを生成するために、前記ディープマシンラーニングモデルによって生成された前記ディープモデル中間予測出力と前記ワイドマシンラーニングモデルによって生成された前記ワイドモデル中間予測出力とを処理するように構成されるロジスティック回帰層である、請求項3に記載のシステム。
【請求項5】
前記コンテンツ提示設定に関する前記予測出力が、コンテンツアイテムの所定のセット内の各コンテンツアイテムに関するそれぞれのスコアであり、それぞれのスコアが、対応するコンテンツアイテムが前記コンテンツ提示設定において提示された場合に特定の目的が満足されるそれぞれの尤度を表す、請求項2に記載のシステム。
【請求項6】
前記組合せ層が、コンテンツアイテムの所定のセット内の各コンテンツアイテムに関するそれぞれのスコアを生成するために、前記ディープマシンラーニングモデルによって生成された前記ディープモデル中間予測出力と前記ワイドマシンラーニングモデルによって生成された前記ワイドモデル中間予測出力とを処理するように構成されるソフトマックス層である、請求項5に記載のシステム。
【請求項7】
前記特徴が、コンテンツアイテムが前記コンテンツ提示設定において提示されるべきユーザを特徴付けるユーザ特徴を含む、請求項2から6のいずれか一項に記載のシステム。
【請求項8】
前記特徴が、前記コンテンツ提示設定のコンテキストを特徴付けるコンテキスト情報を含む、請求項2から7のいずれか一項に記載のシステム。
【請求項9】
前記ディープマシンラーニングモデルがディープニューラルネットワークを含む、請求項1から8のいずれか一項に記載のシステム。
【請求項10】
前記ディープマシンラーニングモデルが、前記特徴の各々を前記特徴のそれぞれの数値埋め込みにマッピングするように構成される埋め込み層を含む、請求項9に記載のシステム。
【請求項11】
前記ワイドマシンラーニングモデルが、前記ワイドモデル中間予測出力を生成するために、前記特徴と前記特徴から生成された変換された特徴とを処理するように構成される、請求項1に記載のシステム。
【請求項12】
前記ワイドモデル中間予測出力および前記ディープモデル中間予測出力が対数オッズ出力である、請求項1から11のいずれか一項に記載のシステム。
【請求項13】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに請求項1から12のいずれか一項に記載の前記組合せマシンラーニングモデルを実装させる、1つまたは複数のコンピュータ記憶媒体に記憶された、命令。
【請求項14】
請求項1から12のいずれか一項に記載の組合せマシンラーニングモデルをトレーニングする方法であって、
複数のトレーニング入力の各々について、(i)前記トレーニング入力の特徴と、(ii)前記トレーニング入力に対する既知の出力とを備えるトレーニングデータを取得するステップと、
前記トレーニング入力の各々について、
前記ディープマシンラーニングモデルのパラメータの現在の値に従って前記トレーニング入力に対するディープモデル中間予測出力を生成するために前記ディープマシンラーニングモデルを使用して前記トレーニング入力の前記特徴を処理するステップと、
前記ワイドマシンラーニングモデルのパラメータの現在の値に従って前記トレーニング入力に対するワイドモデル中間予測出力を生成するために前記ワイドマシンラーニングモデルを使用して前記トレーニング入力の前記特徴を処理するステップと、
前記トレーニング入力に対する予測出力を生成するために前記組合せ層を使用して前記トレーニング入力に対する前記ディープモデル中間予測出力と前記ワイドモデル中間予測出力とを処理するステップと、
前記ディープマシンラーニングモデルおよび前記ワイドマシンラーニングモデルの前記パラメータの前記現在の値を共同して調整するために、前記組合せ層を介して前記トレーニング入力に対する前記予測出力と前記トレーニング入力に対する前記既知の出力との間の誤差から決定される勾配を前記ワイドマシンラーニングモデルおよび前記ディープマシンラーニングモデルに逆伝播させるステップと
を備える、方法。
【請求項15】
ミニバッチ確率的最適化を使用して前記ディープマシンラーニングモデルおよび前記ワイドマシンラーニングモデルの前記パラメータの前記現在の値を調整するステップをさらに備える、請求項14に記載の方法。
【請求項16】
L1正則化を伴う正則化リーダに従う(FTRL)アルゴリズムを使用して前記ワイドマシンラーニングモデルの前記パラメータの前記現在の値を調整するステップをさらに備える、請求項14または15に記載の方法。
【請求項17】
適応学習率を用いる確率的勾配最適化を使用して前記ディープマシンラーニングモデルの前記パラメータの前記現在の値を調整するステップをさらに備える、請求項14から16のいずれか一項に記載の方法。
【請求項18】
1つまたは複数のコンピュータによって実行されると前記1つまたは複数のコンピュータに請求項14から17のいずれか一項に記載の方法を実行させる、1つまたは複数のコンピュータ記憶媒体に記憶された、命令。
【請求項19】
1つまたは複数のコンピュータによって実行されると前記1つまたは複数のコンピュータに請求項14から17のいずれか一項に記載の方法を実行させる命令を記憶する、1つまたは複数の記憶デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2016年4月13日に出願した米国仮出願第62/322,161号の優先権を主張するものである。先行出願の開示は、本出願の開示の一部とみなされ、参照により本出願の開示に組み込まれる。
【0002】
本明細書は、マシンラーニングモデルを使用して入力を処理することに関する。
【背景技術】
【0003】
マシンラーニングモデルは、入力を受け取り、受け取った入力に基づいて、出力、たとえば予測出力を生成する。いくつかのマシンラーニングモデルは、パラメトリックモデルであり、受け取った入力とモデルのパラメータの値とに基づいて出力を生成する。
【0004】
いくつかのマシンラーニングモデルは、受け取った入力に対する出力を生成するためにモデルの複数の層を用いるディープモデルである。たとえば、ディープニューラルネットワークは、出力層と、それぞれが出力を生成するために受け取った入力に非線形変換を適用する1つまたは複数の隠れ層とを含む。
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書は、ワイドアンドディープ(wide and deep)マシンラーニングモデル、すなわちワイドマシンラーニングモデルとディープマシンラーニングモデルとの両方を含む組合せマシンラーニングモデルを実装するためのシステムおよび方法を説明する。
【0006】
一般に、本明細書で説明される主題の1つの革新的な態様は、1つまたは複数のコンピュータと、命令を記憶する1つまたは複数の記憶デバイスとを含むシステムにおいて具体化することができ、命令は、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに、マシンラーニング入力を処理するための組合せマシンラーニングモデルを実装させ、マシンラーニング入力は、マシンラーニング入力に対して予測出力を生成するために複数の特徴を含む。組合せマシンラーニングモデルは、ディープモデル中間予測出力を生成するために特徴を処理するように構成されるディープマシンラーニングモデルと、ワイドモデル中間予測出力を生成するために特徴を処理するように構成されるワイドマシンラーニングモデルと、予測出力を生成するために、ディープマシンラーニングモデルによって生成されたディープモデル中間予測出力とワイドマシンラーニングモデルによって生成されたワイドモデル中間予測出力とを処理するように構成される組合せ層とを含むことができ、ディープマシンラーニングモデルおよびワイドマシンラーニングモデルは、ディープモデル中間予測出力とワイドモデル中間予測出力とを生成するために、トレーニングデータに対して共同でトレーニングされている。
【0007】
上記および他の実施形態は、それぞれ以下の特徴のうちの1つまたは複数を単独でまたは組み合わせてオプションで含むことができる。特徴は、コンテンツ提示設定の特徴とすることができ、予測出力は、コンテンツ提示設定に関する予測出力である。コンテンツ提示設定の特徴は、コンテンツ提示設定において提示されるべきコンテンツアイテムの特徴を含むことができ、コンテンツ提示設定に関する予測出力は、コンテンツアイテムがコンテンツ提示設定において提示された場合に特定の目的が満足される尤度を表す。組合せ層は、コンテンツアイテムがコンテンツ提示設定において提示された場合に特定の目的が満足される尤度を表すスコアを生成するために、ディープマシンラーニングモデルによって生成されたディープモデル中間予測出力とワイドマシンラーニングモデルによって生成されたワイドモデル中間予測出力とを処理するように構成されるロジスティック回帰層とすることができる。コンテンツ提示設定に関する予測出力は、コンテンツアイテムの所定のセット内の各コンテンツアイテムに関するそれぞれのスコアとすることができ、それぞれのスコアは、対応するコンテンツアイテムがコンテンツ提示設定において提示された場合に特定の目的が満足されるそれぞれの尤度を表す。組合せ層は、コンテンツアイテムの所定のセット内の各コンテンツアイテムに関するそれぞれのスコアを生成するために、ディープマシンラーニングモデルによって生成されたディープモデル中間予測出力とワイドマシンラーニングモデルによって生成されたワイドモデル中間予測出力とを処理するように構成されるソフトマックス層とすることができる。特徴は、コンテンツアイテムがコンテンツ提示設定において提示されるべきユーザを特徴付けるユーザ特徴を含むことができる。特徴は、コンテンツ提示設定のコンテキストを特徴付けるコンテキスト情報を含むことができる。ディープモデルは、ディープニューラルネットワークを含むことができる。ディープモデルは、特徴の各々を特徴のそれぞれの数値埋め込みにマッピングするように構成される埋め込み層を含んでもよい。ワイドモデルは、一般化線形モデルとすることができる。ワイドモデルは、ワイドモデル中間出力を生成するために、特徴と、特徴から生成された変換された特徴とを処理するように構成されてもよい。ワイドモデル中間出力およびディープモデル中間出力は、対数オッズ出力とすることができる。
【0008】
一般に、本明細書で説明される主題の別の革新的な態様は、命令を記憶する1つまたは複数のコンピュータ記憶媒体において具体化することができ、命令は、1つまたは複数のコンピュータによって実行されると、1つまたは複数のコンピュータに上記で説明した組合せマシンラーニングモデルを実装させる。
【0009】
本明細書で説明される主題の別の革新的な態様は、上記で説明した組合せマシンラーニングモデルをトレーニングする方法において具体化することができる。本方法は、複数のトレーニング入力の各々について、(i)トレーニング入力の特徴と、(ii)トレーニング入力に対する既知の出力とを含むトレーニングデータを取得するアクションと、トレーニング入力の各々について、ディープマシンラーニングモデルのパラメータの現在の値に従ってトレーニング入力に対するディープモデル中間予測出力を生成するためにディープマシンラーニングモデルを使用してトレーニング入力の特徴を処理するアクションと、ワイドマシンラーニングモデルのパラメータの現在の値に従ってトレーニング入力に対するワイドモデル中間予測出力を生成するためにワイドマシンラーニングモデルを使用してトレーニング入力の特徴を処理するアクションと、トレーニング入力に対する予測出力を生成するために組合せ層を使用してトレーニング入力に対するディープモデル中間予測出力とワイドモデル中間予測出力とを処理するアクションと、ディープマシンラーニングモデルおよびワイドマシンラーニングモデルのパラメータの現在の値を共同して調整するために、組合せ層を介してトレーニング入力に対する予測出力とトレーニング入力に対する既知の出力との間の誤差から決定される勾配をワイドマシンラーニングモデルおよびディープマシンラーニングモデルに逆伝播させるアクションとを含むことができる。
【0010】
上記および他の実施形態は、それぞれ以下の特徴のうちの1つまたは複数を単独でまたは組み合わせてオプションで含むことができる。本方法は、ミニバッチ確率的最適化を使用してディープマシンラーニングモデルおよびワイドマシンラーニングモデルのパラメータの現在の値を調整するアクションを含むことができる。本方法は、L1正則化を伴う正則化リーダに従う(FTRL(follow-the-regularized-leader))アルゴリズムを使用してワイドマシンラーニングモデルのパラメータの現在の値を調整するアクションを含むことができる。本方法は、適応学習率を用いる確率的勾配最適化を使用してディープマシンラーニングモデルのパラメータの現在の値を調整するアクションを含むことができる。
【0011】
本明細書で説明される主題の別の革新的な態様は、命令を記憶する1つまたは複数のコンピュータ記憶媒体において具体化することができ、命令は、1つまたは複数のコンピュータによって実行されると1つまたは複数のコンピュータに上記で説明した方法の動作を実行させる。
【0012】
本明細書で説明される主題の別の革新的な態様は、1つまたは複数のコンピュータと、命令を記憶する1つまたは複数の記憶デバイスとにおいて具体化することができ、命令は、1つまたは複数のコンピュータによって実行されると1つまたは複数のコンピュータに上記で説明した方法の動作を実行させる。
【0013】
本明細書で説明される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装することができる。一般に、ワイドマシンラーニングモデルは、クロス積特徴変換(cross-product feature transformation)のワイドセットを介して特徴相互作用を記憶することができ、ディープマシンラーニングモデルは、入力特徴に埋込み関数を適用することによって、見えない特徴の組み合わせを一般化することができる。ディープマシンラーニングモデルとワイドマシンラーニングモデルの両方を含むことによって、ワイドアンドディープマシンラーニングモデルは、記憶と一般化の両方の利点を取得することができ、したがって、入力特徴のセットからの出力を予測する上でよりよく機能することができる。
【0014】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付図面および以下の説明において記載される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0015】
図1】ワイドアンドディープマシンラーニングモデルの例のブロック図である。
図2】ワイドアンドディープラーニングモデルを使用して予測入力を生成するための例示的なプロセスのフロー図である。
図3】ワイドアンドディープラーニングモデルを含むマシンラーニングシステムをトレーニングするための例示的なプロセスのフロー図である。
【発明を実施するための形態】
【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】
主題の特定の実施形態について説明した。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲内に列挙された動作は、異なる順序で実行されることが可能であり、依然として所望の結果を達成することができる。一例として、添付図面において記されたプロセスは、所望の結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。特定の実装形態では、マルチタスク処理および並列処理が有利な場合がある。
【符号の説明】
【0081】
102 ワイドアンドディープマシンラーニングモデル、ワイドアンドディープラーニングモデル、組合せマシンラーニングモデル
104 ディープマシンラーニングモデル
106 ワイドマシンラーニングモデル
108 特徴
110 特徴
112 特徴
114 特徴
116 特徴
118 特徴
120 特徴
122 特徴
124 埋込み関数
126 埋込み関数
128 埋込み関数
130 ディープニューラルネットワーク
132 クロス積変換
134 組合せ層
136 予測出力
138 一般化線形モデル
150 埋め込み層

図1
図2
図3