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

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

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

特許6853354混合エキスパートニューラルネットワーク
<>
  • 特許6853354-混合エキスパートニューラルネットワーク 図000004
  • 特許6853354-混合エキスパートニューラルネットワーク 図000005
  • 特許6853354-混合エキスパートニューラルネットワーク 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6853354
(24)【登録日】2021年3月15日
(45)【発行日】2021年3月31日
(54)【発明の名称】混合エキスパートニューラルネットワーク
(51)【国際特許分類】
   G06N 3/04 20060101AFI20210322BHJP
   G06N 3/08 20060101ALI20210322BHJP
【FI】
   G06N3/04 154
   G06N3/08
【請求項の数】12
【全頁数】17
(21)【出願番号】特願2019-522815(P2019-522815)
(86)(22)【出願日】2017年11月3日
(65)【公表番号】特表2019-537133(P2019-537133A)
(43)【公表日】2019年12月19日
(86)【国際出願番号】US2017059909
(87)【国際公開番号】WO2018085643
(87)【国際公開日】20180511
【審査請求日】2019年6月20日
(31)【優先権主張番号】62/418,135
(32)【優先日】2016年11月4日
(33)【優先権主張国】US
(31)【優先権主張番号】62/432,497
(32)【優先日】2016年12月9日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ノアム・エム・シャジール
(72)【発明者】
【氏名】アザリア・ミルホセイニ
(72)【発明者】
【氏名】クシシュトフ・スタニスラフ・マジアルツ
【審査官】 稲葉 崇
(56)【参考文献】
【文献】 米国特許出願公開第2013/0262096(US,A1)
【文献】 特開平06−266688(JP,A)
【文献】 特開2000−251057(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N3/00−3/12
G06N7/08−99/00
(57)【特許請求の範囲】
【請求項1】
システムであって、
1つまたは複数のコンピュータによって実装され、主ニューラルネットワーク内の第1のニューラルネットワーク層と第2のニューラルネットワーク層との間に混合エキスパート(MoE)サブネットワークを備える前記主ニューラルネットワークを備え、前記MoEサブネットワークが、
各エキスパートニューラルネットワークが、前記エキスパートニューラルネットワークのエキスパートパラメータのそれぞれのセットに従って前記第1のニューラルネットワーク層によって生成された第1の層出力を処理して、それぞれのエキスパート出力を生成するように構成される、複数のエキスパートニューラルネットワークと、
ゲーティングパラメータのセットを前記第1の層出力に適用することによって、初期ゲーティング出力を生成することと、
前記初期ゲーティング出力にスパース化関数を適用して、スパース化初期ゲーティング出力を生成することと、
前記スパース化初期ゲーティング出力にsoftmax関数を適用して、前記複数のエキスパートニューラルネットワークの各々に対するそれぞれの重みを含む重みベクトルを生成することと、
前記重みベクトルにおける前記重みに基づいて、前記エキスパートニューラルネットワークのうちの1つまたは複数を選択し、選択されたエキスパートニューラルネットワークごとにそれぞれの重みを決定することと、
前記選択されたエキスパートニューラルネットワークの各々への入力として前記第1の層出力を提供することと、
前記選択されたエキスパートニューラルネットワークによって生成された前記エキスパート出力を前記選択されたエキスパートニューラルネットワークの前記重みに従って結合して、MoE出力を生成することと、
前記MoE出力を前記第2のニューラルネットワーク層への入力として提供することと
を行うように構成されたゲーティングサブシステムと
を備える、システム。
【請求項2】
前記エキスパートニューラルネットワークが、同じまたは類似のアーキテクチャを有するが異なるパラメータ値を有する、請求項1に記載のシステム。
【請求項3】
前記選択されたエキスパートニューラルネットワークによって生成された前記エキスパート出力を結合することが、
前記選択されたエキスパートニューラルネットワークの各々によって生成された前記エキスパート出力を、前記選択されたエキスパートニューラルネットワークの前記重みによって重み付けして、重み付けされたエキスパート出力を生成することと、
前記重み付けされたエキスパート出力を合計して、前記MoE出力を生成することと
を備える、請求項1または2に記載のシステム。
【請求項4】
前記重みベクトルが、前記エキスパートニューラルネットワークのうちの少数に対してのみ非ゼロ重みを含むスパースベクトルである、請求項1から3のいずれか一項に記載のシステム。
【請求項5】
前記エキスパートニューラルネットワークのうちの1つまたは複数を選択することが、
前記重みベクトル内に非ゼロ重みを有するエキスパートニューラルネットワークのみを選択することを備える、請求項1から4のいずれか一項に記載のシステム。
【請求項6】
前記初期ゲーティング出力を生成することが、
ゲーティングパラメータの前記セットを前記第1の層出力に適用して、修正された第1の層出力を生成することと、
調整可能なガウスノイズを前記修正された第1の層出力に追加して、前記初期ゲーティング出力を生成することと
を備える、請求項1から5のいずれか一項に記載のシステム。
【請求項7】
調整可能なガウスノイズを前記修正された第1の層出力に追加して、前記初期ゲーティング出力を生成することが、
トレーニング可能なノイズパラメータのセットを前記第1の層出力に適用して、初期ノイズ出力を生成することと、
前記初期ノイズ出力に正規分布からサンプリングされたノイズ値のベクトルを要素ごとに乗算して、最終ノイズ出力を生成することと、
前記最終ノイズ出力を前記修正された第1の層出力に追加することと
を備える、請求項6に記載のシステム。
【請求項8】
前記スパース化関数が、k個の最大値以外の前記初期ゲーティング出力のすべての値を、前記softmax関数によってゼロにマッピングされる値に設定する、請求項1から7のいずれか一項に記載のシステム。
【請求項9】
前記ゲーティングサブシステムが、親ゲーティングサブネットワークおよび複数の子ゲーティングサブネットワークを備え、前記子ゲーティングサブネットワークの各々が、他の各々の子ゲーティングサブネットワークからの前記複数のエキスパートニューラルネットワークの共通の要素を持たないサブセットを管理する、請求項1から3のいずれか一項に記載のシステム。
【請求項10】
1つまたは複数のコンピュータによって実行されたとき、前記1つまたは複数のコンピュータに請求項1から9のいずれか一項に記載のそれぞれのシステムを実現させる命令を記憶する1つまたは複数のコンピュータ記憶媒体。
【請求項11】
ネットワーク入力を受信するステップと、
請求項1から9のいずれか一項に記載のシステムを使用して前記ネットワーク入力を処理して、前記ネットワーク入力に対するネットワーク出力を生成するステップと
を備える、方法。
【請求項12】
1つまたは複数のコンピュータによって実行されたとき、前記1つまたは複数のコンピュータに請求項11に記載の方法の動作を実行させる命令を記憶する1つまたは複数のコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2016年11月4日に出願された米国仮特許出願第62/418,135号および2016年12月9日に出願された米国特許仮出願第62/432,497号の優先権を主張する。先の出願の開示は、本出願の開示の一部と見なされ、参照により本出願に組み込まれる。
【0002】
本明細書は、出力を生成するために、ニューラルネットワークの層を通じて入力を処理することに関する。
【背景技術】
【0003】
ニューラルネットワークは、受信した入力に対する出力を予測するために、非線形ユニットの1つまたは複数の層を使用する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の別の層、すなわち別の隠れ層または出力層への入力として使用される。ネットワークの各層は、それぞれのパラメータセットの現在値に従って、受信した入力から出力を生成する。
【発明の概要】
【課題を解決するための手段】
【0004】
一般に、本明細書で説明される主題の1つの革新的な態様は、ニューラルネットワークを含む1つまたは複数の場所にある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムにおいて具現化することができる。ニューラルネットワークは、ニューラルネットワーク内の第1のニューラルネットワーク層と第2のニューラルネットワーク層との間に混合エキスパート(MoE)サブネットワークを含む。MoEサブネットワークは、複数のエキスパートニューラルネットワークを含み、その中で、各エキスパートニューラルネットワークは、エキスパートニューラルネットワークのエキスパートパラメータのそれぞれのセットに従って第1のニューラルネットワーク層によって生成された第1の層出力を処理して、それぞれのエキスパート出力を生成するように構成される。MoEサブネットワークは、第1の層出力に基づいて、エキスパートニューラルネットワークのうちの1つまたは複数を選択し、選択されたエキスパートニューラルネットワークごとにそれぞれの重みを決定することと、選択されたエキスパートニューラルネットワークの各々への入力として第1の層出力を提供することと、選択されたエキスパートニューラルネットワークによって生成されたエキスパート出力を選択されたエキスパートニューラルネットワークの重みに従って結合して、MoE出力を生成することと、MoE出力を第2のニューラルネットワーク層への入力として提供することとを行うように構成されたゲーティングサブシステムをさらに含む。
【0005】
前述の実施形態および他の実施形態はそれぞれ、単独でまたは組み合わせて、以下の特徴のうちの1つまたは複数を任意で含むことができる。エキスパートニューラルネットワークは、同じまたは類似のアーキテクチャを有するが異なるパラメータ値を有し得る。選択されたエキスパートニューラルネットワークによって生成されたエキスパート出力を結合することは、選択されたエキスパートニューラルネットワークの各々によって生成されたエキスパート出力を、選択されたエキスパートニューラルネットワークの重みによって重み付けして、重み付けされたエキスパート出力を生成することと、重み付けされたエキスパート出力を合計して、MoE出力を生成することとを含み得る。ゲーティングサブシステムはゲーティングサブネットワークを含み得、その中で、ゲーティングサブネットワークは、第1の層出力を処理して、ゲーティングパラメータのセットに従って複数のエキスパートニューラルネットワークの各々に対するそれぞれの重みを含む重みベクトルを生成することと、重みベクトルにおける重みに基づいて、エキスパートニューラルネットワークのうちの1つまたは複数を選択することとを行うように構成される。重みベクトルは、エキスパートニューラルネットワークのうちの少数に対してのみ非ゼロ重みを含むスパース(sparse)ベクトルであり得る。エキスパートニューラルネットワークのうちの1つまたは複数を選択することは、重みベクトル内に非ゼロ重みを有するエキスパートニューラルネットワークのみを選択することを含み得る。
【0006】
第1の層出力を処理して、ゲーティングパラメータのセットに従って複数のエキスパートニューラルネットワークの各々に対するそれぞれの重みを含む重みベクトルを生成することは、初期ゲーティング出力を生成することであって、初期ゲーティング出力を生成することが、ゲーティングパラメータのセットを第1の層出力に適用することを備える、ことと、初期ゲーティング出力にスパース化関数を適用して、スパース化初期ゲーティング出力を生成することと、スパース化初期ゲーティング出力にsoftmax関数を適用して、重みベクトルを生成することと、を含み得る。
【0007】
初期ゲーティング出力を生成することは、ゲーティングパラメータのセットを第1の層出力に適用して、修正された第1の層出力を生成することと、調整可能なガウスノイズを修正された第1の層出力に追加して、初期ゲーティング出力を生成することとを含み得る。調整可能なガウスノイズを修正された第1の層出力に追加して、初期ゲーティング出力を生成することは、トレーニング可能なノイズパラメータのセットを第1の層出力に適用して、初期ノイズ出力を生成することと、初期ノイズ出力に正規分布からサンプリングされたノイズ値のベクトルを要素ごとに乗算して、最終ノイズ出力を生成することと、最終ノイズ出力を修正された第1の層出力に追加することとを含み得る。スパース化関数は、k個の最大値以外の初期ゲーティング出力のすべての値を、softmax関数によってゼロにマッピングされる値に設定する。ゲーティングサブシステムは、親ゲーティングサブネットワークおよび複数の子ゲーティングサブネットワークを備え、その中で、子ゲーティングサブネットワークの各々は、他の各子ゲーティングサブネットワークからの複数のエキスパートニューラルネットワークの共通の要素を持たないサブセットを管理する。
【0008】
本明細書で説明される主題の別の革新的な態様は、ネットワーク入力を受信するステップと、上述のシステムを使用してネットワーク入力を処理して、ネットワーク入力に対するネットワーク出力を生成するステップとを含む方法において具現化することができる。
【0009】
本明細書で説明される主題の他の革新的な態様は、1つまたは複数のコンピュータによって実装されると1つまたは複数のコンピュータに上述のシステムおよび方法を実装させる命令で符号化された1つまたは複数の非一時的記憶媒体において具現化することができる。
【0010】
本明細書で説明される主題は、以下の利点のうちの1つまたは複数を実現するために、特定の実施形態において実装することができる。いくつかのMoE実装形態はかなりのトレーニング時間および計算コストを伴うが、本明細書で説明される様々な実施形態は、計算リソース要件を大幅に増加させることなしに計算能力を向上させるMoE実装形態に関する。具体的には、本明細書で説明される様々な実施形態は、MoEサブネットワークを含むニューラルネットワークの計算能力(パラメータ数)が、多数のエキスパートニューラルネットワークの利用可能性を活用することによって増加され得るMoE実装形態に関する。本明細書で説明されるいくつかのMoE実装形態では、ニューラルネットワークによる任意の所与のネットワーク入力の処理中に少数のエキスパートニューラルネットワークのみが選択され、したがって、ニューラルネットワークを使用して推論を処理するために必要な処理時間および計算リソースは妥当なレベルに維持され得る。すなわち、妥当な処理時間を維持しながら、また推論を処理するために必要な計算リソース数を大幅に増加させることなしに、計算能力を大幅に高めることができる。その結果、ニューラルネットワークは、特にモデル容量がトレーニングデータセットにおいて利用可能な膨大な量の知識を吸収するために重要であるタスクに対して、妥当な処理時間および計算コストで、従来の手法よりも著しく良好な結果(たとえば、より良好な予測精度)を達成することができる。したがって、本明細書で説明される主題は、様々な技術的利益を達成するために特定の実施形態において実装され得る。さらに、様々な実施形態によるニューラルネットワークシステムは、画像がカテゴリに属するオブジェクトの画像を含む可能性を推定することを含むがこれに限定されない、様々な技術的目的に適用され得る。
【0011】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0012】
図1】ニューラルネットワークシステムの一例のブロック図である。
図2】入力のための混合エキスパート(MoE)出力を生成するための例示的な処理の流れ図である。
図3】重みベクトルを決定し、重みベクトルに基づいてエキスパートニューラルネットワークのうちの1つまたは複数を選択するための例示的な処理の流れ図である。
【発明を実施するための形態】
【0013】
様々な図面中の同様の参照番号および名称は、同様の要素を示す。
【0014】
図1は、ニューラルネットワークシステム100の一例を示している。ニューラルネットワークシステム100は、1つまたは複数の場所にある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの一例であり、その中で、以下に説明するシステム、構成要素、および技法を実装することができる。一般に、システム100は、任意の種類のデジタルデータ入力を受信することと、その入力に基づいて任意の種類のスコア、分類、または回帰出力を生成することとを行うように構成することができるニューラルネットワーク102を含む。
【0015】
たとえば、ニューラルネットワーク102への入力が画像または画像から抽出された特徴である場合、所与の画像についてニューラルネットワーク102によって生成された出力はオブジェクトカテゴリのセットごとのスコアであり得、各スコアは、その画像がそのカテゴリに属するオブジェクトの画像を含む推定尤度を表す。
【0016】
別の例として、ニューラルネットワーク102への入力が、インターネットリソース(たとえば、ウェブページ)、文書、または文書の一部、あるいはインターネットリソース、文書、または文書の一部から抽出された特徴である場合、所与のインターネットリソース、文書、または文書の一部についてニューラルネットワークによって生成される出力は、トピックのセットごとのスコアであり得、各スコアは、インターネットリソース、文書、または文書の一部がトピックについてである推定尤度を表す。
【0017】
別の例として、ニューラルネットワーク102への入力が特定のコンテンツ要素についてのインプレッションコンテキストの特徴である場合、ニューラルネットワーク102によって生成される出力は、その特定のコンテンツ要素がクリックされる推定尤度を表すスコアであり得る。
【0018】
別の例として、ニューラルネットワーク102への入力が、ユーザ向けのパーソナライズされた推奨の特徴、たとえば推奨のコンテキストを特徴付ける特徴、たとえばユーザによって行われた以前のアクションを特徴付ける特徴である場合、ニューラルネットワーク102によって生成される出力は、コンテンツ要素のセットの各々に対するスコアであり得、各スコアは、ユーザがコンテンツ要素を推奨されることに好意的に応答するであろう推定尤度を表す。
【0019】
別の例として、ニューラルネットワーク102への入力がある言語のテキストのシーケンスである場合、ニューラルネットワーク102によって生成される出力は、別の言語の一連のテキストの各々に対するスコアであり得、各スコアは他の言語のテキストが他の言語への入力テキストの適切な翻訳であるという推定尤度を表す。
【0020】
別の例として、ニューラルネットワーク102への入力が話された発話を表すシーケンスである場合、ニューラルネットワーク102によって生成される出力は、一連のテキストの各々に対するスコアであり得、各スコアは、そのテキストが発話の正しいトランスクリプトであるという推定尤度を表す。
【0021】
ニューラルネットワーク102は、ニューラルネットワーク層のスタックを含む。ニューラルネットワーク層のスタックは、任意の種類のニューラルネットワーク層、たとえば長期短期記憶(LSTM)ニューラルネットワーク層または他の再帰型ニューラルネットワーク層、畳み込みニューラルネットワーク層、あるいは完全接続ニューラルネットワーク層であり得る。いくつかの実装形態では、ニューラルネットワーク層のスタックは、2つ以上の異なる種類のニューラルネットワーク層の混合を含み得る。ニューラルネットワーク102の計算能力を高めるために、ニューラルネットワーク102は、スタック型ニューラルネットワーク層の間に1つまたは複数の混合エキスパート(MoE)サブネットワークを含む。
【0022】
具体的には、図1に示されるように、ニューラルネットワーク102は、ニューラルネットワーク102内の第1のニューラルネットワーク層104と第2のニューラルネットワーク層108との間に配置されたMoEサブネットワーク130を含む。第1のニューラルネットワーク層104および第2のニューラルネットワーク層108は、任意の種類のネットワーク層、たとえばLSTMニューラルネットワーク層または他の再帰型ニューラルネットワーク層、畳み込みニューラルネットワーク層、あるいは完全接続ニューラルネットワーク層であり得る。いくつかの実装形態では、第1のニューラルネットワーク層104および第2のニューラルネットワーク層108のうちの一方または両方は他のMoEサブネットワークであり得る。
【0023】
MoEサブネットワーク130は、複数のエキスパートニューラルネットワーク、たとえばエキスパートニューラルネットワーク114〜122を含む。MoEサブネットワーク130内の各エキスパートニューラルネットワークは、エキスパートニューラルネットワークのエキスパートパラメータのそれぞれのセットに従って第1のニューラルネットワーク層104によって生成された第1の層出力124を処理して、それぞれのエキスパート出力を生成するように構成され得る。
【0024】
図1は、MoEサブネットワーク130が5つのエキスパートニューラルネットワークのみを含むことを示すが、一般に、MoEサブネットワークは多数のエキスパートニューラルネットワーク、たとえば数千のエキスパートニューラルネットワークを含むことができる。各エキスパートニューラルネットワークは、それ自身のパラメータを有するフィードフォワードニューラルネットワークであり得る。エキスパートニューラルネットワークは、同じサイズの入力を受信し、同じサイズの出力を生成するように構成される。いくつかの実装形態では、エキスパートニューラルネットワークは、同一のアーキテクチャを有するが異なるパラメータを有するフィードフォワードニューラルネットワークである。各エキスパートニューラルネットワークは、非常に多数のパラメータを有し得る。たとえば、各エキスパートニューラルネットワークは、百万から二百万のパラメータを有し得、MoEサブネットワークのパラメータの総数を数十億のパラメータにする。
【0025】
MoEサブネットワークは多数のエキスパートニューラルネットワークを含むが、ニューラルネットワーク102による任意の所与のネットワーク入力の処理中に、それらのうちの少数のみ、たとえばエキスパートニューラルネットワークのうちの少数のみが第1の層出力124を処理するために選択される。ニューラルネットワーク102は、第1の層出力124に基づいてエキスパートニューラルネットワークのうちの1つまたは複数を選択することと、選択されたエキスパートニューラルネットワークごとにそれぞれの重みを決定することとを行うように構成されたゲーティングサブシステム110を含む。次いで、ゲーティングサブシステム110は、選択されたエキスパートニューラルネットワークの各々への入力として第1の層出力を提供する。ゲーティングサブシステム110は、選択されたエキスパートニューラルネットワークの重みに従って、選択されたエキスパートニューラルネットワークによって生成されたエキスパート出力を結合して、MoE出力132を生成する。次いで、ゲーティングサブシステム110はMoE出力132を第2のニューラルネットワーク層108への入力として提供する。
【0026】
具体的には、ゲーティングサブシステム110は、第1の層出力を処理して、ゲーティングサブネットワークのゲーティングパラメータのセットに従って複数のエキスパートニューラルネットワークの各々に対するそれぞれの重みを含む重みベクトルを生成することと、重みベクトルにおける重みに基づいて、エキスパートニューラルネットワークのうちの1つまたは複数を選択することとを行うように構成されたゲーティングサブネットワーク112を含む。
【0027】
たとえば、MoEサブネットワーク130がn個のエキスパートニューラルネットワークE1、...、Enのセットを含むと仮定すると、Gで示されるゲーティングサブネットワーク112は、所与の入力x(たとえば、第1の層出力124)を処理して、重みベクトルG(x)を生成するように構成される。重みベクトルG(x)は、n個のエキスパートニューラルネットワークのセット内のエキスパートニューラルネットワークごとにそれぞれの重みを含む。ゲーティングサブネットワーク112は、重みベクトルG(x)における重みに基づいて、n個のエキスパートニューラルネットワークのセットから1つまたは複数のエキスパートニューラルネットワークを選択するように構成される。具体的には、重みベクトルG(x)は、セット内のエキスパートニューラルネットワークのうちの少数に対してのみ非ゼロ重みを含むスパースn次元ベクトルである。非ゼロ重みの数は整数であり、MoEサブネットワーク130内のエキスパートニューラルネットワークの数と比較して非常に少ない。たとえば、MoEサブネットワーク130は数百から数千のエキスパートニューラルネットワークを有し得、重みベクトルG(x)は、1、2、または5個の非ゼロ重みを有し得る。非ゼロ重みの数は、計算コスト、モデル品質(たとえば、予測品質)、およびMoEサブネットワーク130がテストまたはトレーニング条件下にあるかどうかなどの基準に基づいて決定することができる。一般に、より少数の非ゼロ重みはより少ない計算を必要とし、より多数の非ゼロ重みはより高いモデル品質をもたらす。一般に、非ゼロ重みの数は、各ネットワーク入力の前に修正することもでき、すべてのネットワーク入力に対して固定に保つこともできる。トレーニング中に、トレーニング中に処理された少なくともいくつかのネットワーク入力について、非ゼロ重みの数が1より大きい値に設定される。ゲーティングサブネットワーク112は、重みベクトルG(x)内に非ゼロ重みを有するエキスパートニューラルネットワークのみを選択する。たとえば、図1のエキスパートニューラルネットワーク116および120は非ゼロ重みを有し、したがって、さらなる処理のために選択される。
【0028】
あらかじめ定められた数の非ゼロ重みを有する重みベクトルを生成するための処理が、図3を参照して以下により詳細に説明される。
【0029】
重みベクトルが生成され、1つまたは複数のエキスパートニューラルネットワーク(たとえば、エキスパートニューラルネットワーク116および120)が選択された後、ゲーティングサブシステム110は、選択されたエキスパートニューラルネットワークの各々によって生成されたエキスパート出力(たとえば、エキスパートニューラルネットワーク116によって生成されたエキスパート出力126、およびエキスパートニューラルネットワーク120によって生成されたエキスパート出力128)を、選択されたエキスパートニューラルネットワークの重みによって重み付けすることによって、選択されたエキスパートニューラルネットワークによって生成されたエキスパート出力を結合して、重み付けされたエキスパート出力を生成し、重み付けされたエキスパート出力(たとえば、重み付けされたエキスパート出力134および136)を合計して、MoE出力132を生成すする。
【0030】
具体的には、MoE出力132は以下のように表すことができる:
【0031】
【数1】
【0032】
上式で、yは重みベクトルG(x)の出力のスパース性に基づいて計算されるMoE出力である。これは、G(x)i=0であるところはどこでも、エキスパートニューラルネットワークのセット内のi番目のエキスパートニューラルネットワークEiがそれぞれのエキスパート出力Ei(x)を計算する必要がないことを意味する。
【0033】
MoE出力132を生成した後、ゲーティングサブシステム110は、さらなる処理のために、MoE出力132を第2のニューラルネットワーク層108への入力として提供する。
【0034】
いくつかの実装形態では、第2のニューラルネットワーク層108は、従来のニューラルネットワーク層ではなく別のMoEサブネットワークであり得る。
【0035】
いくつかの実装形態では、エキスパートニューラルネットワークの数が非常に多い場合(たとえば、1000以上のエキスパートニューラルネットワーク)、ゲーティングサブネットワーク112の分岐係数は、マルチレベル階層MoEサブネットワークを使用することによって低減することができる。たとえば、2レベルの階層MoEサブネットワークでは、ゲーティングサブシステム110は、親ゲーティングサブネットワークと複数の子ゲーティングサブネットワークとを含むことができ、その中で、子ゲーティングサブネットワークの各々はそれ自身が、それ自身のゲーティングサブネットワークを有するセカンダリMoEサブネットワークである。子ゲーティングサブネットワークの各々は、他の各子ゲーティングサブネットワークからの複数のエキスパートニューラルネットワークの共通の要素を持たないサブセットを管理する。親ゲーティングサブネットワークは、子ゲーティングサブネットワークのスパース重み付けされた組合せを選択し、スパース重み付けされた組合せに基づいてMoE出力を生成する。
【0036】
MoEサブネットワーク130の一部が入力例ごとにアクティブである条件付き計算の使用は、計算を比例的に増加させることなしにニューラルネットワーク102の計算能力を著しく高めることができる。これは、MoEサブネットワーク130が数千のエキスパートニューラルネットワークを有することができるが、入力ごとに評価される必要があるのは非常に少数のエキスパートニューラルネットワークのみであるためである。その結果、ニューラルネットワーク102は、特にモデル容量がトレーニングコーパスにおいて利用可能な膨大な量の知識を吸収するために重要である言語モデリングや機械翻訳などなどのタスクに対して、より低い計算コストで、従来の手法よりも著しく良好な結果を達成することができる。一例として、ニューラルネットワーク102は、10億〜1000億ワードを含むデータセットを有する言語モデリングタスクについてトレーニングすることができる。別の例では、ニューラルネットワーク102は、数千万の文のペアのデータセットを用いて単一の言語ペア機械翻訳タスクについてトレーニングすることができる。別の例では、ニューラルネットワーク102は、12の言語ペアの非常に大きな結合されたデータセットを有する多言語機械翻訳タスクについてトレーニングすることができる。トレーニング中、ニューラルネットワーク102の様々な構成要素は、逆伝搬によって共同でトレーニングすることができる。
【0037】
図2は、MoEサブネットワーク、たとえば図1のMoEサブネットワーク130を使用して、入力のための混合エキスパート(MoE)出力を生成するための例示的な処理200の流れ図である。便宜上、処理は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、ニューラルネットワークシステム、たとえば、適切にプログラムされた図1のニューラルネットワークシステム100は、処理を実行することができる。
【0038】
システムは、MoEサブネットワークに先行するニューラルネットワーク層によって生成された第1の層出力を入力として受信する(ステップ202)。MoEサブネットワークは、複数のエキスパートニューラルネットワークと、ゲーティングサブネットワークを含むゲーティングサブシステムとを含む。
【0039】
システムは、第1の層出力に基づいて、複数のエキスパートニューラルネットワークのうちの1つまたは複数を選択し、選択されたエキスパートニューラルネットワークごとにそれぞれの重みを決定する(ステップ204)。
【0040】
具体的には、システムは、第1の層出力を処理して、ゲーティングサブネットワークのゲーティングパラメータのセットに従って、複数のエキスパートニューラルネットワークの各々に対するそれぞれの重みを含む重みベクトルを生成する。次いで、システムは、重みベクトルにおける重みに基づいて、複数のエキスパートニューラルネットワークのうちの1つまたは複数を選択する。具体的には、重みベクトルは、エキスパートニューラルネットワークのうちの少数に対してのみ非ゼロ重みを含むスパースベクトルであり、システムは、重みベクトル内に非ゼロ重みを有するエキスパートニューラルネットワークのみを選択する。重みベクトルを生成することが、図3を参照して以下により詳細に説明される。
【0041】
システムは、選択されたエキスパートニューラルネットワークの各々への入力として第1の層出力を提供する(ステップ206)。選択されたエキスパートニューラルネットワークの各々は、選択されたエキスパートニューラルネットワークのパラメータのそれぞれの現在値に従って第1の層出力を処理して、それぞれのエキスパート出力を生成するように構成される。
【0042】
次いで、システムは、選択されたエキスパートニューラルネットワークに対する重みに従って、選択されたエキスパートニューラルネットワークによって生成されたエキスパート出力を結合して、MoE出力を生成する(ステップ208)。
【0043】
具体的には、システムは、重み付けされたエキスパート出力を生成するために、選択されたエキスパートニューラルネットワークの各々によって生成されたエキスパート出力を、選択されたエキスパートニューラルネットワークの重みによって重み付けする。次いで、システムは、重み付けされたエキスパート出力を合計して、MoE出力を生成する。
【0044】
次いで、システムは、さらなる処理のために、MoEサブネットワークに続く第2のニューラルネットワーク層への入力としてMoE出力を提供する。
【0045】
図3は、重みベクトルを決定し、重みベクトルに基づいて、MoEサブネットワーク、たとえば、図1のMoEサブネットワーク130に含まれるエキスパートニューラルネットワークのうちの1つまたは複数を選択するための例示的な処理300の流れ図である。便宜上、処理は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、ニューラルネットワークシステム、たとえば、適切にプログラムされた図1のニューラルネットワークシステム100は、処理を実行することができる。
【0046】
システムは、MoEサブネットワークのゲーティングサブネットワークのゲーティングパラメータのセットを第1の層出力に適用して、修正された第1の層出力を生成する(ステップ302)。
【0047】
システムは、修正された第1の層出力にノイズを追加して、初期ゲーティング出力を生成する(ステップ304)。ノイズは、負荷分散、すなわち、エキスパートニューラルネットワークが、トレーニング中にトレーニングデータセット内でほぼ等しい数のトレーニング例を受信すること、またはトレーニング中に入力データ内にほぼ等しい数の入力例を受信することを促進することを助ける。
【0048】
たとえば、ノイズは調整可能なガウスノイズであり得る。修正された第1の層出力に調整可能なガウスノイズを追加するために、システムは、トレーニング可能なノイズパラメータのセットを第1の層出力に最初に適用して、初期ノイズ出力を生成する。次いで、システムは、初期ノイズ出力に正規分布からサンプリングされたノイズ値のベクトルを要素ごとに乗算して、最終ノイズ出力を生成する。いくつかの実装形態では、システムは、初期ノイズ出力に正規分布からサンプリングされたノイズ値のベクトルを要素ごとに乗算して、最終ノイズ出力を生成する前に、初期ノイズ出力にsoftplus関数を適用し得る。次いで、システムは、最終ノイズ出力を修正された第1の層出力に追加して、初期ゲーティング出力を生成する。
【0049】
たとえば、第1の層出力xに対する初期ゲーティング出力は、MoEサブネットワーク内のエキスパートニューラルネットワークの数に等しい次元を有するベクトルH(x)として表すことができる。i番目のエキスパートニューラルネットワークに対応するi番目のH(x)の要素は、次のように計算することができる:
H(x)i=(x・Wg)i+StandardNormal()・Softplus((x・Wnoise)i)
上式で、Wgは修正された第1の層出力xWgを生成するために第1の層出力xに適用されるゲーティングパラメータのセットであり、Wnoiseはトレーニング可能なノイズパラメータのセットであり、StandardNormal()は、ノイズ値のベクトルをサンプリングするために使用される正規分布である。
【0050】
システムは、スパース化関数を初期ゲーティング出力に適用して、スパース化初期ゲーティング出力を生成する(ステップ306)。スパース化関数は、k個の最大値以外の初期ゲーティング出力のすべての値を、softmax関数によってゼロにマッピングされる値に設定し、ここでkは整数である。kは、計算コスト、モデル品質(たとえば、予測品質)、およびMoEサブネットワークがテストまたはトレーニング条件下にあるかどうかなどの基準に基づいて決定することができる。一般に、より小さい値のkはより少ない計算を必要とし、より大きい値のkはより高いモデル品質をもたらす。一般に、非ゼロ重みの数は、各ネットワーク入力の前に修正することもでき、すべてのネットワーク入力に対して固定に保つこともできる。トレーニング中に処理された少なくともいくつかのネットワーク入力について、トレーニング中に、非ゼロ重みの数が1より大きい値に設定される。スパース化関数の例は次のような形式を有する:
【0051】
【数2】
【0052】
スパース化初期ゲーティング出力は、KeepTopK(H(x)、k)と表すことができる。
【0053】
システムは、スパース化初期ゲーティング出力にsoftmax関数を適用して、重みベクトルを生成する(ステップ308)。重みベクトルは、エキスパートニューラルネットワークのうちの少数に対してのみ非ゼロ重みを含むスパースベクトルである。たとえば、重みベクトルG(x)は次のように計算することができる:
G(x)=Softmax(KeepTopK(H(x),k))
【0054】
システムは、重みベクトルにおける重みに基づいて、エキスパートニューラルネットワークのうちの1つまたは複数を選択する(ステップ310)。具体的には、システムは、重みベクトル内に非ゼロ重みを有するエキスパートニューラルネットワークのみを選択する。
【0055】
ニューラルネットワーク102のトレーニング中に、処理200および300は、トレーニング入力用のネットワーク出力を生成することの一部として使用することができる。目的関数の勾配は、トレーニング入力の知られている出力と比較してネットワーク出力の品質を改善するために、ニューラルネットワーク102の様々な構成要素のパラメータの値を調整するために逆伝播することができる。
【0056】
本明細書は、システムおよびコンピュータプログラム構成要素に関連して「構成された」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されることは、動作中にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをシステムがインストールしたことを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されたとき、装置に動作またはアクションを実行させる命令を含むことを意味する。
【0057】
本明細書に記載される主題および機能動作の実施形態は、本明細書に開示されている構造およびそれらの構造上の均等物を含む、デジタル電子回路、有形に具現化されたコンピュータソフトウェアまたはファームウェア、コンピュータハードウェア、あるいはそれらの1つまたは複数の組合せにおいて実装され得る。本明細書に記載される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわちデータ処理装置による実行のため、またはデータ処理装置の動作を制御するための有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、あるいはそれらの1つまたは複数の組合せとすることができる。代替的または追加的に、プログラム命令は、データ処理装置による実行のために適切な受信機装置への送信のために情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば機械生成電気、光、または電磁信号上に符号化され得る。
【0058】
「データ処理装置」という用語はデータ処理ハードウェアを指し、例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置はまた、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路であるか、またはさらにそれを含むことができる。装置は、ハードウェアに加えて、コンピュータプログラムの実行環境を作成するコード、たとえばプロセッサファームウェアを構成するコード、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいはそれらの1つまたは複数の組合せを任意に含むことができる。
【0059】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれ得る、または記述され得るコンピュータプログラムは、コンパイラ型言語またはインタープリタ型言語、あるいは宣言型言語または手続き型言語を含む任意の形態のプログラミング言語で記述され得、また、スタンドアロンプログラムとして、あるいはモジュール、構成要素、サブルーチン、またはコンピューティング環境での使用に適した他のユニットとしてなどを含む、あらゆる形式で展開され得る。プログラムは、ファイルシステム内のファイルに対応し得るが、対応する必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部、たとえばマークアップ言語文書に記憶されている1つまたは複数のスクリプトや、問題のプログラム専用の単一のファイルや、または複数の調整されたファイル、たとえば1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイルに記憶され得る。コンピュータプログラムは、1つのサイト上に配置されているか、または複数のサイトにわたって分散されており、データ通信ネットワークによって相互接続されている1つのコンピュータまたは複数のコンピュータ上で実行されるように展開され得る。
【0060】
本明細書に記載される処理および論理フローは、入力データを操作して出力を生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実行され得る。処理および論理フローは、たとえばFPGAまたはASICなどの専用論理回路によって、あるいは専用論理回路と1つまたは複数のプログラムされたコンピュータとの組合せによっても実行され得る。
【0061】
コンピュータプログラムの実行に適したコンピュータは、汎用または専用のマイクロプロセッサまたはその両方、あるいは任意の他の種類の中央処理装置に基づくものとすることができる。一般に、中央処理装置は、読出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補完されてもよく、またはその中に組み込まれてもよい。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気ディスク、光磁気ディスク、または光ディスクを含むか、それらからデータを受信するか、またはそれらにデータを転送するように、あるいはその両方のために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえばモバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲーム機、全地球測位システム(GPS)受信機、または、ほんの数例を挙げると、たとえばユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブル記憶デバイスに組み込むことができる。
【0062】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体には、例として半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスが含まれる。
【0063】
ユーザとの対話を提供するために、本明細書に記載される主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびにキーボードおよびポインティングデバイス、たとえばユーザがコンピュータに入力を提供することができるマウスまたはトラックボールを有するコンピュータ上に実装され得る。ユーザとの対話を提供するために他の種類のデバイスも使用され得、たとえば、ユーザに提供されるフィードバックは、たとえば視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなどの任意の形態の感覚的フィードバックであり得、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受信され得る。さらに、コンピュータは、ユーザによって使用されるデバイスに文書を送受信することによって、たとえば、ウェブブラウザから受信した要求に応じて、ウェブページをユーザのデバイスのウェブブラウザに送信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形式のメッセージをパーソナルデバイス、たとえばメッセージングアプリケーションを実行しているスマートフォンに送信し、その代わりにユーザから応答メッセージを受信することによって、ユーザと対話することができる。
【0064】
機械学習モデルを実装するためのデータ処理装置はまた、たとえば、機械学習トレーニングまたは製作、すなわち推論、作業負荷の共通部分および計算集約的部分を処理するための専用ハードウェアアクセラレータユニットを含むことができる。
【0065】
機械学習モデルは、機械学習フレームワーク、たとえばTensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装および展開され得る。
【0066】
本明細書に記載される主題の実施形態は、たとえばデータサーバとしてのバックエンド構成要素を含むか、またはたとえばアプリケーションサーバなどのミドルウェア構成要素を含むか、または、たとえば、ユーザが本明細書に記載される主題の実装形態と対話することができるグラフィカルユーザインタフェース、ウェブブラウザ、またはアプリを有するクライアントコンピュータなどのフロントエンド構成要素を含むか、そのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の1つまたは複数の任意の組合せを含むコンピューティングシステムにおいて実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえばインターネットを含む。
【0067】
コンピューティングシステムはクライアントおよびサーバを含むことができる。クライアントとサーバは一般に互いに離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、たとえば、クライアントとして動作するデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受け取る目的で、データ、たとえばHTMLページをユーザデバイスに送信する。たとえば、ユーザ対話の結果として、ユーザデバイスにおいて生成されたデータは、デバイスからサーバにおいて受信され得る。
【0068】
本明細書は多くの具体的な実装形態の詳細を含むが、これらはいかなる発明の範囲または請求され得るものの範囲に対する限定としてではなく、むしろ特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。本明細書において別々の実施形態の文脈に記載される特定の特徴はまた、単一の実施形態において組み合わせて実装され得る。逆に、単一の実施形態の文脈に記載される様々な特徴はまた、別々にまたは任意の適切なサブコンビネーションで複数の実施形態で実装され得る。さらに、特徴は特定の組合せで作用するものとして上記に記載され、最初はそのように主張されることもあるが、主張される組合せからの1つまたは複数の特徴は、場合によっては組合せから切り取られることができ、主張される組合せはサブコンビネーションまたはサブコンビネーションのバリエーションに向けられ得る。
【0069】
同様に、動作は図面に示され、特許請求の範囲に特定の順序で記載されているが、これは、望ましい結果を達成するために、そのような動作が示された特定の順序または順番に実行されること、または示されたすべての動作が実行されることを要求するものとして理解されるべきではない。特定の状況では、マルチタスキングおよび並列処理が有利な場合がある。さらに、上述の実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とすると理解されるべきではなく、記載されるプログラム構成要素およびシステムは一般に単一のソフトウェア製品に統合されてもよく、複数のソフトウェア製品にパッケージ化されてもよいことが理解されるべきである。
【0070】
主題の特定の実施形態が説明された。他の実施形態は添付の特許請求の範囲内にある。たとえば、特許請求の範囲に記載されたアクションは異なる順序で実行することができ、依然として望ましい結果を達成することができる。一例として、添付の図面に示された処理は、望ましい結果を達成するために、示された特定の順序、または順番を必ずしも必要としない。場合によっては、マルチタスキングおよび並列処理が有利な場合がある。
【符号の説明】
【0071】
100 ニューラルネットワークシステム
102 ニューラルネットワーク
104 第1のニューラルネットワーク層
108 第2のニューラルネットワーク層
110 ゲーティングサブシステム
112 ゲーティングサブネットワーク
114〜122 エキスパートニューラルネットワーク
116 エキスパートニューラルネットワーク
120 エキスパートニューラルネットワーク
124 第1の層出力
126 エキスパート出力
128 エキスパート出力
130 MoEサブネットワーク
132 MoE出力
134 重み付けされたエキスパート出力
136 重み付けされたエキスパート出力
200 処理
300 処理
図1
図2
図3