JP7502469B2 - スパースアテンションメカニズムを備えたアテンションニューラルネットワーク - Google Patents

スパースアテンションメカニズムを備えたアテンションニューラルネットワーク Download PDF

Info

Publication number
JP7502469B2
JP7502469B2 JP2022568899A JP2022568899A JP7502469B2 JP 7502469 B2 JP7502469 B2 JP 7502469B2 JP 2022568899 A JP2022568899 A JP 2022568899A JP 2022568899 A JP2022568899 A JP 2022568899A JP 7502469 B2 JP7502469 B2 JP 7502469B2
Authority
JP
Japan
Prior art keywords
input
sequence
attention
locations
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022568899A
Other languages
English (en)
Other versions
JP2023529801A (ja
Inventor
ジョシュア・ティモシー・エインズリー
サンティアゴ・オンタニョン
フィリップ・ファム
マンジル・ザヒール
グル・グルガネッシュ
クマール・アヴィナヴァ・デュバイ
アムル・アハメド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2023529801A publication Critical patent/JP2023529801A/ja
Application granted granted Critical
Publication of JP7502469B2 publication Critical patent/JP7502469B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)
  • Machine Translation (AREA)

Description

関連出願の相互参照
本出願は、2020年6月5日に出願された米国仮出願第63/035,632号に対する優先権を主張し、その全体を参照により組み込む。
本明細書は、ニューラルネットワークを使用してネットワーク入力に対して機械学習タスクを実行することに関する。
ニューラルネットワークは、受信した入力に対する出力を予測するために、非線形ユニットの1つまたは複数の層を採用する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち次の隠れ層または出力層への入力として使用される。ネットワークの各層は、それぞれのパラメータのセットの現在の値に従って、受信した入力から出力を生成する。
Vaswaniらによる「Attention Is All You Need」、arXiv:1706.03762 Raffelらによる「Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer」、arXiv:1910.10683 Devlinらによる「BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding」、arXiv:1810.04805 Daiらによる「Transformer-XL:Attentive Language Models Beyond a Fixed-Length Context」、arXiv:1901.02860 Kitaevらによる「Reformer:The Efficient Transformer」、arXiv:2001.04451
本明細書は、スパースアテンションを適用するアテンションサブ層を含むアテンションニューラルネットワークを使用して、ネットワーク入力に対して機械学習タスクを実行する1つまたは複数の場所にある1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されたシステムについて説明する。
本明細書に記載される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装することができる。
本明細書に記載される技法により、ニューラルネットワークシステムは、スパースアテンションメカニズムを利用することによって、入力シーケンスを処理すること、出力シーケンスを生成すること、またはその両方を、既存のアテンションベースのネットワークよりも、トレーニング中と実行時の両方において、すなわち、計算リソース(たとえば、メモリ、計算能力、またはその両方)の観点から、効率的に行うことができるようになる。
いくつかの既存のアテンションニューラルネットワーク内のアテンション層は、所与のクエリごとに、すべてのキーを使用してクエリのそれぞれの内積を計算することを含む内積アテンションメカニズムを採用する。通常、ネットワークは、連続する可能性のあるネットワーク入力からそのようなキーまたはクエリを導出する。したがって、相当な長さのシーケンシャルデータに内積アテンションメカニズムを適用すると、計算コストが相当なものになる可能性がある。特に、従来の自己アテンション層は、シーケンスの長さに二次依存性を有するため、より長いシーケンスを動作または生成する際に、モデルは大量の計算リソースを消費する。しかしながら、説明されている技法は、従来の自己アテンションニューラルネットワークと同等の出力品質を維持しながら、各アテンション層において実行されるアテンション計算の数を効果的に制限するために、スパースアテンションメカニズムを適用することによってこれらによる問題に対処する。特に、位置の大部分を他の位置のスパースサブセットのみにアテンド(attend)させ、位置のはるかに小さいサブセット(シーケンス長と比較したサイズO(1))をすべての位置にアテンドさせる(そして、すべての位置によってアテンドされる)ことによって、本システムは、シーケンスの長いコンテキストを効果的に伝播し、非常に長いシーケンスでも計算効率を維持しながら、高品質の出力を保証することができる。特定の例として、前述のスパースアテンションを使用すると、アテンションニューラルネットワークは、たとえばシーケンス全体をアテンドするグローバルトークンは100未満であっても、4000以上のトークンを超える長期的な依存関係を持つシーケンスを動作させる必要があるタスクに対しても効果的に実行することができる。したがって、グローバルトークンを含む位置の第1の適切なサブセットは、他のトークンを含む第2の適切なサブセットの3/100以下の数のトークンを含むことができる。
より具体的には、記載された技法は、自己アテンションニューラルネットワークがメモリ制約の下で、すなわち、記載された技法が採用されない場合に必要とされるメモリ空間と比較して、より限定されたメモリ空間内で展開されることを可能にする。特定の例として、自己アテンションメカニズムに必要な乗算を実行する最新のハードウェアチップは、オンチップメモリが限られている。別の例として、モバイル電話などのエッジコンピューティングデバイスは、オンデバイスメモリが限られている。自己アテンションメカニズムをスパースにする(sparsifying)ことによって、説明されている技法により、アテンションニューラルネットワークは、この制約のあるメモリ空間内で動作しながら、すなわち、アテンションニューラルネットワークが展開されているときに、高品質の出力を生成することができ、したがって、アテンションメカニズムは、限られたデバイスメモリを有する1つまたは複数のデバイスによって適用される。特に、入力位置の第1の適切なサブセットにある入力位置に対してのみ、キーのシーケンス内のすべてのキーをアテンドするために、所与の入力位置においてクエリを使用し、一方、入力位置の第2の適切なサブセット内の入力位置については、入力位置の対応する適切なサブセットにあるキーのみをアテンドするために入力位置のクエリを使用することによって、説明されている技法は、第2のサブセットの入力位置のアテンドされる入力を計算するために、制約のあるメモリ空間にロードする必要があるキーの数を大幅に削減する。これにより、前述の自己アテンションメカニズムが、制約のあるメモリ空間内で効果的に実行されるようになる。しかしながら、第1の適切なサブセット内の位置については、すべての入力位置においてすべてのキーをアテンドするために位置のクエリが引き続き使用され、第2の適切なサブセット内の入力位置については、第1のサブセット内のすべての位置のすべてのキーをアテンドするために位置のクエリが使用されるため、本システムは引き続きすべての入力位置に情報を伝播し、高品質の出力を保証することができる。さらに、第2のサブセット内の任意の所与の位置に対応する適切なサブセットが、(i)第1の適切なサブセットの外側にある入力位置からランダムに選択された1つまたは複数の入力位置と、(ii)第2の適切なサブセット内の入力位置の固定数位置のウィンドウ内にある各入力位置とを含む場合、対応する適切なサブセットの位置の数が第2のサブセット内の位置の総数に比べて少ない場合でも、本システムは高品質の出力を生成することができ、第2のサブセット内の位置にアテンションメカニズムを適用するために、メモリにロードする必要があるキーの数をさらに減らす。さらに、一般に、第2のサブセット内には第1のサブセット内よりも多くの位置があるため、層入力全体に自己アテンションメカニズムを適用するためにメモリにロードする必要があるキーの数が全体的に大幅に減少すると同時に、自己アテンションメカニズムによって高品質の出力が生成されることが保証される。
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
ニューラルネットワークシステムの一例を示す図である。 適用されているスパースアテンションメカニズムの図である。 クエリおよびキーがブロックに分割されたスパースアテンションスキームを示す図である。 スパースアテンションメカニズムを適用するための例示的なプロセスの流れ図である。
様々な図面における同様の参照番号および名称は、同様の要素を示す。
本明細書は、機械学習タスクのネットワーク出力を生成するために、ネットワーク入力に対して機械学習タスクを実行する1つまたは複数の場所にある1つまたは複数のコンピュータにコンピュータプログラムとして実装されるシステムについて説明する。
機械学習タスクは、(i)入力シーケンスであるネットワーク入力に対して動作し、(ii)出力シーケンスであるネットワーク出力を生成し、または(iii)その両方を行う、任意の機械学習タスクであり得る。
システムが実行するように構成できる機械学習タスクのいくつかの例を次に示す。
一例として、タスクはニューラル機械翻訳タスクであってもよい。たとえば、ニューラルネットワークへの入力がテキストのシーケンス、たとえば、ある言語の単語、句、文字、または単語の断片のシーケンスである場合、ニューラルネットワークによって生成される出力は、別の言語へのテキストのシーケンスの翻訳、すなわち、テキストの入力シーケンスの翻訳である他の言語のテキストのシーケンスであり得る。特定の例として、タスクは、複数の異なるソース言語とターゲット言語のペア間で翻訳するように単一のニューラルネットワークが構成されている多言語機械翻訳タスクであり得る。この例では、ソース言語テキストは、ニューラルネットワークがソース言語テキストを翻訳すべきターゲット言語を示す識別子で増強され得る。
別の例として、タスクは音声処理タスクであってもよい。たとえば、ニューラルネットワークへの入力が発話を表すシーケンスである場合、ニューラルネットワークによって生成される出力は、テキストの断片のセットの各々のスコアであり、各スコアは、テキストの断片が発話の正しいトランスクリプトであるという推定尤度を表す。別の例として、ニューラルネットワークへの入力が発話を表すシーケンスである場合、ニューラルネットワークによって生成された出力は、特定の単語または句(「ホットワード(hotword)」)が発話において話されたかどうかを示すことができる。別の例として、ニューラルネットワークへの入力が発話を表すシーケンスである場合、ニューラルネットワークによって生成される出力は、その発話が話された自然言語を識別することができる。
別の例として、タスクは、いくつかの自然言語においてテキストのシーケンスに対して動作する、自然言語処理または理解タスク、たとえば、含意タスク、言換えタスク、テキスト類似性タスク、感情タスク、文完成タスク、文法タスクなどであり得る。
別の例として、タスクはテキスト読上げタスクであり得、入力は自然言語のテキストまたは自然言語のテキストの特徴であり、ネットワーク出力はスペクトログラム、波形、または自然言語で話されているテキストのオーディオを定義する他のデータである。
別の例として、タスクは健康予測タスクであり得、入力は患者の電子健康記録データから導出されたシーケンスであり、出力は患者の将来の健康に関連する予測、たとえば、患者に処方されるべき予測される治療、患者に有害な健康事象が発生する可能性、または患者の予測される診断などである。
別の例として、タスクは、入力がテキストのシーケンスであり、出力が別のテキストのシーケンス、たとえば、テキストの入力シーケンスの完了、入力シーケンスにおいて提起された質問への応答、またはテキストの第1のシーケンスによって指定されたトピックに関するテキストのシーケンスである、テキスト生成タスクであり得る。別の例として、テキスト生成タスクへの入力は、テキスト以外の入力、たとえば、画像であり得、出力シーケンスは入力を説明するテキストであり得る。
別の例として、タスクは、入力が条件付け入力であり、出力が画像のピクセルの強度値入力のシーケンスである画像生成タスクであり得る。
別の例として、タスクはエージェント制御タスクであり得、入力は環境の状態を特徴付ける観察のシーケンスまたは他のデータであり、出力はシーケンス内の最新のデータに応答してエージェントによって実行されるアクションを定義する。エージェントは、たとえば、実世界またはシミュレートされたロボット、産業施設の制御システム、あるいは異なる種類のエージェントを制御する制御システムであり得る。
別の例として、タスクはゲノミクスタスクであり得、入力はDNAシーケンスまたは他の分子シーケンスのフラグメントを表すシーケンスであり、出力は、たとえば、DNAシーケンスフラグメントのデータセットに対して教師なし学習技法を利用することによる、ダウンストリームタスクにおいて使用するためのフラグメントの埋込み、またはダウンストリームタスクの出力のいずれかである。ダウンストリームタスクの例は、プロモータサイトの予測、メチル化解析、非コーディングバリアントの機能的影響の予測などを含む。
場合によっては、機械学習タスクは、複数の個別の機械学習タスクの組合せであり、すなわち、本システムは、複数の異なる個別の機械学習タスク、たとえば、上記の機械学習タスクの2つ以上を実行するように構成されている。たとえば、本システムは、ネットワーク入力に対して実行される個々の自然言語理解タスクの識別子を含むネットワーク入力を使用して、複数の個々の自然言語理解タスクを実行するように構成することができる。
機械学習タスクを実行するために、本システムは複数のアテンション層を含むアテンションニューラルネットワークを含む。各層は、1つまたは複数の位置の各々においてそれぞれの層入力を含むそれぞれの入力シーケンスに対して動作する。
さらに、層の各々は、アテンションサブ層と、任意で、位置ごとのフィードフォワードサブ層を含む。アテンションサブ層は、層の入力シーケンスを受信し、アテンドされた入力シーケンスを生成するために、層の入力シーケンスにアテンションメカニズムを適用する。
アテンションサブ層によって適用されるアテンションメカニズムは、以下でより詳細に説明するように、アテンションニューラルネットワークの構成に依存するが、以下に説明するように、アテンションサブ層のうちの少なくとも1つは、スパースアテンションを使用するアテンションメカニズムを適用する。
含まれている場合、層の出力シーケンスを生成するために、フィードフォワードサブ層はアテンドされた入力シーケンスに対して動作する。
フィードフォワードサブ層が含まれていない場合、アテンドされた入力シーケンスは層の出力シーケンスである。
一般に、アテンションニューラルネットワーク内の層は、様々な構成のいずれかに配置することができる。
一例として、ネットワーク入力が入力シーケンスである場合、アテンションニューラルネットワークは、複数の層のサブセットを含み、シーケンス内の各入力のそれぞれのエンコードされた表現を生成するために入力シーケンスをエンコードする、エンコーダニューラルネットワークを含む。この例では、エンコーダの層によって適用されるアテンションメカニズムは、自己アテンションメカニズムである。この例では、エンコーダの層の一部またはすべてが、以下で説明するスパースアテンションメカニズムを適用することができる。
別の例として、アテンションニューラルネットワークは、複数の層の異なるサブセットを含み、ネットワーク出力を生成するためにネットワーク入力またはネットワーク入力のエンコードされた表現のいずれかを処理する、デコーダニューラルネットワークを含む。これらによる例のいくつかでは、ネットワーク出力が出力シーケンスである場合、デコーダニューラルネットワークは自己回帰的に動作し、デコーダの一部またはすべてにおける層内のアテンションサブ層は、部分的に生成された出力シーケンスに対してマスクされた自己アテンションを適用する。ニューラルネットワークがエンコーダとデコーダの両方を含む場合、デコーダにおける層の一部は、エンコードされた表現に相互アテンションを適用し、他の層は、マスクされているかどうかにかかわらず、出力シーケンスに対して自己アテンションを適用する。
アテンションニューラルネットワークが、入力シーケンスに対して直接動作するデコーダニューラルネットワークを含む場合、デコーダ内のアテンション層は、入力シーケンスに対して自己アテンションメカニズムを適用することができる。この例では、デコーダの層の一部またはすべてが、以下で説明するスパースアテンションメカニズムを適用することができる。
デコーダニューラルネットワークおよびエンコーダニューラルネットワーク内のアテンション層の動作の詳細については、Vaswaniらによる「Attention Is All You Need」、arXiv:1706.03762、およびRaffelらによる「Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer」、arXiv:1910.10683、ならびにDevlinらによる「BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding」、arXiv:1810.04805においてより詳細に説明されており、その全体の内容は、参照によりその全体が本明細書に組み込まれる。
図1は、ニューラルネットワークシステム100の一例を示している。ニューラルネットワークシステム100は、1つまたは複数の場所にある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムの一例であり、以下に説明するシステム、コンポーネント、および技法を実装することができる。
ニューラルネットワークシステム100は、入力102を受信し、出力152を生成するために、入力102に対して機械学習タスクを実行することができる。
上述のように、ニューラルネットワークシステム100は、(i)入力シーケンスである入力102に対する動作、(ii)出力シーケンスである出力152の生成、または(iii)その両方を含む、様々なタスクのいずれかを実行することができる。
ニューラルネットワークシステム100は、複数のアテンション層を含むアテンションニューラルネットワーク150を含み、そのうちの少なくとも1つはスパースアテンション層110である。
各アテンション層は、入力シーケンス104に対して動作し、対応する出力シーケンス134を生成する。
図1では、便宜上、アテンション層が1つだけ示されているが、上述のように、アテンションニューラルネットワーク150は、一般に、他のアテンション層、たとえば埋込み層および出力層を含む多くの他の層を含む。
具体的には、入力シーケンス104は、入力順序の複数の位置の各々にそれぞれの入力を有し、出力シーケンス134は、1つまたは複数の位置の各々にそれぞれの出力を有する。すなわち、入力シーケンス104は、入力順序に従って配置された1つまたは複数の入力を有し、出力シーケンス134は、出力順序に従って配置された1つまたは複数の出力を有する。
一般に、入力シーケンス104は、入力102に対して機械学習タスクを実行する際に、アテンションニューラルネットワーク150によって生成される任意の中間シーケンシャルデータであり得る。
たとえば、アテンション層110がニューラルネットワーク内の第1のアテンション層である場合、入力シーケンス104は、埋込み層によって生成されたシステム入力102の埋込み(すなわち、数値)表現であり得る。
別の例として、入力シーケンス104は、アテンションニューラルネットワーク150内の前のアテンション層または他の層によって生成された出力シーケンスであり得る。
入力シーケンス104から出力シーケンス134を生成するために、スパースアテンション層110は、1つまたは複数のアテンションサブ層120(「アテンションヘッド」とも呼ばれる)と、任意で、1つまたは複数の位置ごとのフィードフォワードサブ層130とを含む。
1つまたは複数のアテンションサブ層120は、入力位置の各々における各々の最終的なアテンドされた入力を含む入力シーケンス104から最終的なアテンドされた入力シーケンス124を集合的に生成する。
各アテンションサブ層120は、層110の入力シーケンス104を受信し、それぞれのアテンドされた入力シーケンスを生成するために層の入力シーケンスにアテンションメカニズムを適用する。
ニューラルネットワーク内のアテンション層のうちの少なくともいくつかに対して、各サブ層120は、すなわち、従来のアテンションを使用する代わりに、スパースアテンションメカニズムを適用する。
スパースアテンションメカニズムは、シングルヘッドアテンションメカニズムであり得、アテンション層は、単一のヘッドのみ、すなわち単一のサブ層120を含み、単一のスパースアテンションメカニズムを入力シーケンスまたはマルチヘッドアテンションメカニズムに適用し、アテンション層は、複数のヘッド、すなわち、複数のアテンションサブ層120を含み、複数のアテンションヘッドの各々は、それぞれのアテンドされた入力シーケンスを生成するために、入力シーケンスに対してそれぞれのスパースアテンションメカニズムを並行して適用する。
次いで、アテンション層は、たとえば、出力を連結する、出力を合計する、または出力を平均化することによって複数のアテンションヘッドの出力を結合し、および任意で、アテンション層110の最終的なアテンドされた入力シーケンス124の生成の一部として線形層を通じて連結された出力を処理する。
スパースアテンションメカニズムの適用については、図2を参照して以下でより詳細に説明する。
上述のように、ニューラルネットワークは一般に複数のアテンション層を含む。すべてのアテンション層がスパースアテンションを適用することもでき、一部のアテンション層がスパースアテンションを適用し、他のアテンション層が従来のマルチヘッドまたはシングルヘッドアテンションを適用することもできる。一般に、スパースアテンションを適用するアテンション層は、任意のアテンションニューラルネットワークアーキテクチャ、たとえば、Vaswaniらによる「Attention Is All You Need」、arXiv:1706.03762、Raffelらによる「Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer」、arXiv:1910.10683、Devlinらによる「BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding」、arXiv:1810.04805、Daiらによる「Transformer-XL:Attentive Language Models Beyond a Fixed-Length Context」、arXiv:1901.02860、およびKitaevらによる「Reformer:The Efficient Transformer」、arXiv:2001.04451において説明されているニューラルネットワークのいずれかにおいて自己アテンションを実行する従来のアテンション層の代わりに挿入することができ、その全体の内容は、参照によりその全体が本明細書に組み込まれる。
自己アテンションメカニズムは、メカニズムによって使用されるクエリ、キー、および値がすべて入力シーケンスからアテンションサブ層に生成されるアテンションメカニズムであり、すなわち、メモリベクトルのセットは、層への入力シーケンスと同じである。
場合によっては、アテンドされた入力シーケンスから生成された、結合されたアテンドされた入力シーケンスは、アテンションメカニズムの最終出力、すなわち、最終的なアテンドされた入力シーケンス124である。いくつかの他の場合では、アテンション層は、シーケンス124を生成するために、結合されたアテンドされた入力シーケンスに1つまたは複数の他の動作、たとえば残差接続、層の正規化、またはその両方を適用する。
含まれている場合、次いで、1つまたは複数のフィードフォワードサブ層130は、たとえば、完全に接続されたニューラルネットワークを通じて各アテンドされた入力を処理し、次いで任意で、層の正規化、残差接続、またはその両方を完全に接続されたニューラルネットワークの出力に適用することによって、最終的なアテンドされた入力シーケンスの各アテンドされた入力に一連の動作を並行して適用することによって層110の出力シーケンス134を生成するために、最終的なアテンドされた入力シーケンス124に対して動作する。特定の例として、完全に接続されたニューラルネットワークは、アテンドされた各入力に並行して1つの線形変換を適用し、その後に活性化関数、たとえば、ReLU活性化関数などの非線形要素ごとの活性化関数を適用し、その後に別の線形変換を適用することができる。
フィードフォワードサブ層130が含まれない場合、最終的なアテンドされた入力シーケンス124は、層の出力シーケンス134である。
一般に、アテンションニューラルネットワーク内の層は、様々な構成のいずれかで配置することができ、アテンションサブ層120によって適用されるアテンションメカニズムは、アテンションニューラルネットワーク150の構成に依存する。
一例として、ネットワーク入力が入力シーケンスであり、アテンションニューラルネットワーク150が、複数の層のサブセットを含み、シーケンス内の各入力のそれぞれのエンコードされた表現を生成するために入力シーケンスをエンコードするエンコーダニューラルネットワークを含む場合、アテンションサブ層120は、エンコーダの層のうちの1つに含まれ得る。
別の例として、ネットワーク入力が入力シーケンスであり、アテンションニューラルネットワーク150が、複数の層のサブセットを含み、ネットワーク出力を生成するためにネットワーク入力を処理するデコーダニューラルネットワークを含む場合、アテンションサブ層120はデコーダの層のうちの1つに含まれ得る。
本明細書で使用される「学習された(learned)」という用語は、アテンションニューラルネットワーク150のトレーニング中に動作または値が調整されたことを意味する。
図2Aは、入力シーケンスに適用されているスパースアテンションメカニズムの図200である。上述のように、スパースアテンションメカニズムは、アテンションサブ層の複数のアテンションヘッドのうちの1つによって、または単一のアテンションヘッドを有するアテンションサブ層によって適用することができる。明確にするために、図2Aの例において、スパースアテンションメカニズムは、アテンションサブ層によって実行されるものとして説明され、アテンションサブ層は、スパースアテンション層の単一のアテンションヘッドまたはスパースアテンション層の複数のアテンションヘッドのうちの1つのいずれかに対応することができる。
アテンションメカニズムを適用するために、アテンションサブ層は、(i)スパースアテンション層への入力シーケンスから導出されたクエリのシーケンスと、(ii)スパースアテンション層への入力シーケンスから導出されたキーのシーケンスと、(iii)スパースアテンション層への入力シーケンスから導出された値入力のシーケンスとを取得する。
たとえば、サブ層は、様々な学習された線形変換を入力シーケンスに適用することによって、クエリ、キー、および値を生成することができる。
言い換えれば、サブ層は、サブ層のクエリのシーケンスを生成するために、それぞれのクエリ線形変換を入力シーケンスに適用することと、スパースアテンションサブ層のキーのシーケンスを生成するために、それぞれのキー線形変換を入力シーケンスに適用することと、スパースアテンションサブ層の値入力のシーケンスを生成するために、値の線形変換を入力シーケンスに適用することとを行うことができる。各線形変換は、シーケンス内の各入力を対応する学習された重み行列で乗算することと、任意で、対応する学習されたバイアスを加算することとを含むことができる。
図2Aの例では、入力シーケンスは12個の入力位置を含み、入力位置に対するクエリはy軸210上に表され、12個の入力位置に対するキーはx軸220上に表される。
次いで、サブ層は、複数の入力位置の各々におけるそれぞれのアテンドされた入力を含むアテンドされた入力シーケンスを生成する。
特に、サブ層は、入力位置の第1の適切なサブセットを識別する。図2Aの例では、第1の適切なサブセットは、12個の入力位置のうちの最初の2つを含む。第1の適切なサブセットにおける各入力位置について、サブ層は、第1に、すべての入力位置に対してそれぞれの重みを生成するためにキーのシーケンス内のすべてのキーをアテンドするために入力位置においてクエリを使用し、次いで、それぞれの重みに従って、すべての入力位置において値入力の重み付けされた合計を計算することによって、入力位置においてアテンドされた入力を生成する。すなわち、重み付けされた合計における所与の値入力の重みは、所与の値入力に対応する入力位置の重みに等しい。
より詳細には、第1のサブセット内の所与の入力位置の重みは、(i)所与の入力位置のクエリと(ii)入力シーケンス内のすべての入力位置のキーの行列の積に適用されるスコアリング関数、たとえば、softmaxまたはhardmax関数の出力に等しくなる可能性がある。任意で、本システムは、スコアリング関数を計算する前に製品に倍率を適用することができる。
したがって、第1の適切なサブセット内の各入力位置に対するアテンドされた入力は、入力位置のクエリと、シーケンス内のすべての入力位置のキーおよび値とに依存し、これには、第1の適切なサブセットの外側にあるすべての位置が含まれる。
サブ層はまた、入力位置の第2の適切なサブセットも識別し、適切なサブセット内の入力位置ごとに、入力位置の対応する適切なサブセットを識別する。特に、サブ層は、第2の適切なサブセットとして、第1の適切なサブセットにない位置を識別することができ、すなわち、入力位置を第1および第2の適切なサブセットに分割することができる。したがって、図2Aの例では、第2の適切なサブセット内の位置は、第1の適切なサブセットにない残りの10個の位置である。
第2のサブセット内の任意の所与の入力位置の対応する適切なサブセットは、入力位置の第1の適切なサブセットと、入力位置の前第1の適切なサブセットの外側にある1つまたは複数の入力位置とを含む。
第2の適切なサブセットにおける各入力位置について、サブ層は、対応する適切なサブセットにおける入力位置の各々のそれぞれの重みを生成するために、入力位置の対応する適切なサブセットにおけるキーのみをアテンドするために、入力位置においてクエリを使用して、入力位置の対応する適切なサブセットに対するそれぞれの重みに従って、入力位置の対応する適切なサブセットにおける値入力の重み付けされた合計を計算することによって、入力位置においてアテンドされた入力を生成する。すなわち、重み付けされた合計における所与の値入力の重みは、所与の値入力に対応する入力位置の重みに等しい。
より詳細には、第2のサブセット内の所与の入力位置の重みは、(i)所与の入力位置のクエリと(ii)入力位置の対応する適切なサブセットのキーの行列の積に適用されるスコアリング関数、たとえば、softmaxまたはhardmax関数の出力に等しくなる可能性がある。任意で、本システムは、スコアリング関数を計算する前に製品に倍率を適用することができる。
より具体的には、第2の適切なサブセット内の特定の位置ごとに、第1の適切なサブセットの外側にある1つまたは複数の入力位置は、第1の適切なサブセットの外側にある入力位置からランダムに選択された1つまたは複数の入力位置を含む。
場合によっては、第2の適切なサブセット内の特定の位置ごとに、第1の適切なサブセット外側にある1つまたは複数の入力位置は、第2の適切なサブセット内の特定の入力位置の固定数の位置のウィンドウ内にある各入力位置を含む。
したがって、第2のサブセット内の位置のクエリは、入力シーケンス内の位置のすべてのキーよりもはるかに少ない数をアテンドする。特に、所与の入力位置のクエリは、第1のサブセットの位置のキーと第2のサブセットの少数の位置のキーのみをアテンドするため、第2のサブセットには、所与の入力位置のクエリがアテンドしない位置が多数ある。
このアテンション方式は、図2Aに示されている。
図2Aにおいて、空白のセル221は、対応するクエリとキーとの間でアテンションが発生しないことを示し、グローバルセル226は、第1のサブセット内の位置のうちの1つを含む「グローバルなアテンション」を示し、ランダムセル222は、第2のサブセット内の位置のクエリと、第2のサブセット内の他の位置のランダムに選択されたキーのセットとの間の「ランダムなアテンション」を示し、ウィンドウセル224は、第2のサブセット内の位置のクエリと、位置のウィンドウ内にある位置のキーのセットの各々との間の「ウィンドウアテンション」を示す。
より具体的には、図2Aに示されるように、第1の適切なサブセットはシーケンス内の最初の2つの入力位置を含み、第2の適切なサブセットにはシーケンス内の残りの10個の入力位置を含む。第2のサブセットの各位置について、位置のクエリは、ランダムに選択された2つのキーと、位置のサイズ3のウィンドウ内にある位置のすべてのキーをアテンドする。
本システムは、様々な方法のいずれかで、1つまたは複数の「グローバル位置」、すなわち、第1のサブセットにある1つまたは複数の位置を選択することができる。
一例として、ネットワーク入力が、複数の入力位置の各々にそれぞれのトークンを有するシーケンスである場合、アテンションニューラルネットワークは、ネットワーク入力を処理する前に、たとえばネットワーク入力の先頭に1つまたは複数のあらかじめ定められたグローバルトークンを追加することによって、ネットワーク入力を増強することができ、入力位置の第1の適切なサブセットは、1つまたは複数のグローバルトークンが追加される位置に対応することができる。
別の例として、ネットワーク入力が、複数の入力位置の各々にそれぞれのトークンを有するシーケンスである場合、アテンションニューラルネットワークは、固定数の複数の入力位置、たとえば、入力シーケンスにおける固定数の初期位置または最終位置、あるいは固定数の初期位置および固定数の最終位置を、入力位置の第1の適切なサブセットとして、すなわち、任意の追加のトークンでネットワーク入力を増強することなく、指定するように構成される。
所与のスパースアテンション層に複数のサブ層(「アテンションヘッド」)がある場合、スパースアテンション層は、最終的なアテンドされた入力シーケンスを生成するために、上述のようにサブ層の各々によって生成されたアテンドされた入力シーケンスを組み合わせることができる。
さらに、説明されているアテンションスキームは、ハードウェアアクセラレータ、たとえば、ハードウェアにおいて行列乗算を実行するグラフィック処理ユニット(GPU)およびテンソル処理ユニット(TPU)において遂行するために最適化されるように設計されている。特に、上述のように、位置の小さいサブセットのみがシーケンス内のすべての位置をアテンドし、位置の残りのサブセットは位置のスパースサブセットのみをアテンドするため、説明したアテンションは従来のアテンションメカニズムよりも有利である。
どの位置が第1の位置サブセットにあり、どの位置が第2の位置サブセットにある各位置について対応するサブセットにあるかを適切に選択することによって、たとえば、連続するバイトのブロックを一度にロードする合体メモリ動作を使用する際に、レイテンシとスループットの観点から、説明されている技法は、追加の計算上の利点を提供するように設計されたGPUとTPUから生じる追加の利点を活用することができる。
図2Bは、入力クエリおよびキーがブロックに分割されたスパースアテンションスキームを示す図250である。
特に、図2Bに示される例では、やはり12個の入力位置があり、y軸210にクエリが表示され、x軸220にキーが表示されるが、この例では、クエリは固定サイズのクエリブロックに分割され、キーは固定サイズのブロックに分割される。図2の例では、固定サイズは2に等しい。
次いで、どの位置が第1の適切なサブセットにあり、どの位置が第2のサブセットの各位置に対応する適切なサブセットにあるかの決定では、クエリブロックとキーブロック割当てが考慮される。
全体的なアテンションのために、本システムは、第1の適切なサブセットに含まれる位置として、クエリブロックまたはキーブロックのうちの1つまたは複数に対応する位置を選択する。図2Bにおける例では、本システムは、第1の適切なサブセット内の位置として、第1のクエリブロックに対応する入力位置を選択した。
ランダムなアテンションの場合、クエリブロックごとに、本システムはキーブロックをランダムに選択し、次いで、選択されたキーブロックに対応する位置を、クエリブロック内の入力位置の対応するサブセットに含める。図2Bにおける例では、本システムは、クエリブロックごとに1つのキーブロックをランダムに選択した。
同様に、ウィンドウアテンションの場合、クエリブロックjごとに、クエリブロックj内の各位置に対応する適切なサブセットは、キーブロックj-(w-1)/2からj+(w+1)/2に対応する入力位置を含み、上式で、wは、クエリブロックj内の位置のウィンドウのサイズを定義する正の定数である。図2Bにおける例では、wは1に等しい。
図2Aのように、空白のセル221は、対応するクエリとキーとの間でアテンションが発生しないことを示し、グローバルセル226は、第1のサブセット内の位置のうちの1つを含む「グローバルアテンション」を示し、ランダムセル222は、第2のサブセット内の位置のクエリと、第2のサブセット内の他の位置のランダムに選択されたキーのセットとの間の「ランダムなアテンション」を示し、ウィンドウセル224は、第2のサブセット内の位置についてのクエリと、位置のウィンドウ内にある位置についてのキーのセットの各々との間の「ウィンドウアテンション」を示す。しかしながら、図2Bに見られるように、ブランクセル、グローバルセル、およびウィンドウセルは、所与のクエリブロック内の各クエリについて同じである。
クエリとキーをブロックに分割することによってクエリごとにアテンションを計算する際に使用されるキーを選択することによって、本システムは、たとえばGPUまたはTPUなどのハードウェアアクセラレータが、ハードウェアにおける各クエリ位置の重みを生成するために必要な乗算を実行するために、クエリとキーをロードする際に結合されたメモリ動作(連続するバイトのブロックを一度にロードする)を利用して、データの生成に必要な乗算を実行できるようにすることができ、1つまたは複数のハードウェアアクセラレータに展開された場合、アテンションニューラルネットワークを使用して推論を実行する際のレイテンシを短縮することを保証することができる。
さらに、提示を容易にするために、図2Aおよび図2Bには12個の位置のみが示されているが、一般に、サブ層への入力シーケンスは、より多くの入力位置を有することができ、第1の適切なサブセット内の位置の数は、入力シーケンス内の位置の総数よりも大幅に少なくなる可能性がある。特定の例として、入力シーケンスは4000以上の位置を有することができるが、シーケンス全体にアテンドする第1のサブセットは100から500の位置を有する。したがって、グローバルトークンを含む位置の第1の適切なサブセットは、他のトークンを含む第2の適切なサブセットの15/100以下の数のトークンを含むことができる。
さらに、第2のサブセット内の各入力位置に対応するサブセットのサイズは、第2のサブセットの合計サイズよりも大幅に小さくなる場合があり、第2のサブセット内の位置に対するアテンションが非常にスパースになる。上記の例では、入力シーケンスが4000以上の位置を有し、第2のサブセットが3500から3900の位置を含む場合、第2のサブセットの各位置に対応するサブセットは約300の位置しか有することができないため、第2のサブセット内の各位置のクエリは、第2のサブセットの位置のキーの10/100番目以下にアテンドする。
図3は、スパースアテンションメカニズムを適用するための例示的なプロセス300の流れ図である。便宜上、プロセス300は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、ニューラルネットワークシステム、たとえば、本明細書に従って適切にプログラムされた図1のニューラルネットワークシステム100は、プロセス300を実行することができる。
プロセス300は、サブ層のそれぞれのアテンドされた入力シーケンスを生成するために、スパースアテンション層の各サブ層によって実行することができる。
本システムは、(i)スパースアテンション層への入力シーケンスから導出されたクエリのシーケンスであって、複数の入力位置の各々においてそれぞれのクエリを有するクエリのシーケンスと、(ii)スパースアテンション層への入力シーケンスから導出されたキーのシーケンスであって、複数の入力位置の各々においてそれぞれのキーを有するキーのシーケンスと、(iii)スパースアテンション層への入力シーケンスから導出された値入力のシーケンスであって、複数の入力位置の各々においてそれぞれの値入力を有する値入力のシーケンスとを受信する(ステップ302)。
次いで、本システムは、複数の入力位置の各々におけるそれぞれのアテンドされた入力を有するアテンドされた入力シーケンスを生成する(ステップ304)。
特に、入力位置の第1の適切なサブセット内の各入力位置に対して、本システムは、入力シーケンス内のすべての位置にアテンドすることによって、その位置においてアテンドされた入力を生成する(ステップ306)。より具体的には、第1の適切なサブセットにある所与の入力位置に対して、本システムは、第1に、すべての入力位置に対してそれぞれの重みを生成するためにキーのシーケンス内のすべてのキーをアテンドするために入力位置においてクエリを使用し、次いで、それぞれの重みに従って、すべての入力位置において値入力の重み付けされた合計を計算することによって、所与の入力位置においてアテンドされた入力を生成する。
入力位置の第2の適切なサブセット内の各入力位置について、本システムは、入力シーケンス内の入力位置の適切なサブセット、すなわち、すべてよりもかなり少ないサブセットにアテンドすることによって、入力位置にアテンドされた入力を生成する(ステップ308)。
より具体的には、第2の適切なサブセットにおける所与の入力位置について、本システムは、第1に、対応する適切なサブセットにおける入力位置の各々のそれぞれの重みを生成するために、入力位置の対応する適切なサブセットにおけるキーのみをアテンドするために、入力位置においてクエリを使用して、次いで、入力位置の対応する適切なサブセットに対するそれぞれの重みに従って、入力位置の対応する適切なサブセットにおける値入力の重み付けされた合計を計算することによって、所与の入力位置においてアテンドされた入力を生成する。
上述のように、第2の適切なサブセット内の各入力位置に対する入力位置の対応する適切なサブセットは、入力位置の第1の適切なサブセットと、入力位置の前第1の適切なサブセットの外側にある1つまたは複数の入力位置とを含む。
所与のネットワーク入力の処理中に、アテンションニューラルネットワーク内の各スパースアテンション層に対して、本システムは、層への入力シーケンスを更新するために、プロセス300を実行することができる。アテンションニューラルネットワーク内のすべてのアテンション層に対してこの処理を繰り返し実行し、次いで、アテンションニューラルネットワーク内の最後のアテンション層によって生成された出力シーケンスの少なくとも一部を、1つまたは複数の出力層、たとえば、任意でソフトマックス層が続く1つまたは複数の線形層、または、より一般的には多層パーセプトロン(MLP)を使用して処理することによって、本システムは、受信したネットワーク入力に対してネットワーク出力を生成することができる。
すなわち、プロセス300は、所望の出力、すなわち、入力シーケンスについてシステムによって生成されるべき出力が知られていない入力に対する出力を予測することの一部として実行することができる。
プロセス300はまた、アテンションニューラルネットワークのパラメータのトレーニング値を決定するためにアテンションニューラルネットワークをトレーニングするために、トレーニングデータのセットから導出された入力、すなわち、システムによって生成されるべき出力が知られている入力のセットから導出された入力の処理の一部として実行することができる。本システムは、ニューラルネットワークのアテンション層と出力層をトレーニングするために、従来の機械学習トレーニング技法、たとえば、アテンションニューラルネットワークが実行するように構成されているタスクに適した目的関数を最適化するために、従来のオプティマイザ、たとえば、確率的勾配降下法、RMSprop、またはAdamオプティマイザを使用するバックプロパゲーショントレーニング技法を使用した勾配降下法の一部としてトレーニングデータのセットから選択された入力に対してプロセス300を繰り返し実行することができる。トレーニング中、本システムは、トレーニングプロセスの速度、有効性、またはその両方を改善するために、任意の数の技法を組み込むことができる。たとえば、本システムは、過剰適合を減らすために、ドロップアウト、ラベルスムージング、またはその両方を使用することができる。別の例として、本システムは、アテンションニューラルネットワークの複数のインスタンスを並行してトレーニングする分散アーキテクチャを使用してトレーニングを実行することができる。さらに、本システムは、たとえば、BERT損失または他の教師なし損失を最小限に抑えるために、まず教師なし学習を通じて大規模な教師なしデータセットにおいてニューラルネットワークを事前トレーニングし、次いで、タスクの目的関数を最適化するために、タスク固有のトレーニングデータに対してニューラルネットワークを微調整することができる。
本明細書では、システムおよびコンピュータプログラムコンポーネントに関連して「構成された(configured)」という用語を使用している。特定の動作またはアクションを実行するように構成された1つまたは複数のコンピュータのシステムは、システムが、動作中にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。特定の動作またはアクションを実行するように構成される1つまたは複数のコンピュータプログラムは、1つまたは複数のプログラムが、データ処理装置によって遂行されると、動置に動作またはアクションを実行させる命令を含むことを意味する。
本明細書に記載される主題および機能動作の実施形態は、デジタル電子回路、有形に具現化されたコンピュータソフトウェアまたはファームウェア、本明細書で開示される構造およびそれらの構造的等価物を含むコンピュータハードウェア、あるいはそれらのうちの1つまたは複数の組合せにおいて実装することができる。本明細書に記載される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による遂行のために、またはデータ処理装置の動作を制御するために、有形の非一時的ストレージ媒体上にエンコードされたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムまたはシリアルアクセスメモリデバイス、あるいはそれらのうちの1つまたは複数の組合せとすることができる。代替的または追加的に、プログラム命令は、データ処理装置による遂行のために適切な受信機装置に送信するための情報をエンコードするために生成される、人工的に生成された伝播信号、たとえば機械生成された電気信号、光信号、または電磁気信号上でエンコードすることができる。
「データ処理装置(data processing apparatus)」という用語は、データ処理ハードウェアを指し、例としてプログラム可能なプロセッサ、コンピュータ、あるいは複数のプロセッサまたはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置はまた、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路であってもよく、またはさらにそれを含んでもよい。装置は、ハードウェアに加えて、コンピュータプログラムの遂行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいはそれらのうちの1つまたは複数の組合せを構成するコードを任意で含むことができる。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとして参照または記述されることもあるコンピュータプログラムは、コンパイラ型言語またはインタープリタ型言語、あるいは宣言型言語または手続き型言語を含む、任意の形式のプログラミング言語で記述することができ、また、スタンドアロンプログラムとして、あるいはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境における使用に適した他のユニットとしてなど、任意の形式で展開することができる。プログラムは、ファイルシステム内のファイルに対応する場合があるが、必ずしもそうである必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部、たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプト、問題のプログラム専用の単一のファイル、あるいは複数の調整されたファイル、たとえば1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイルに記憶することができる。コンピュータプログラムは、1つのコンピュータ、または1つのサイトに配置されているか、複数のサイトに分散され、データ通信ネットワークによって相互接続されている複数のコンピュータにおいて遂行されるように展開することができる。
本明細書では、「データベース(database)」という用語は、任意のデータの集まりを指すために広く使用されており、データは、特定の方法で構造化される必要はなく、まったく構造化される必要もなく、1つまたは複数の場所にあるストレージデバイスに保存することができる。したがって、たとえば、索引データベースは、データの複数のコレクションを含むことができ、その各々が異なる方法で編成およびアクセスされ得る。
同様に、本明細書では、「エンジン(engine)」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされたソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用されている。一般に、エンジンは1つまたは複数のソフトウェアモジュールあるいはコンポーネントとして実装され、1つまたは複数の場所にある1つまたは複数のコンピュータにインストールされる。場合によっては、1つまたは複数のコンピュータは特定のエンジン専用になり、他の場合では、複数のエンジンを同じコンピュータにインストールして実行することもできる。
本明細書に記載されるプロセスおよび論理フローは、入力データ上で動作して出力を生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを遂行する1つまたは複数のプログラマブルコンピュータによって実行することができる。プロセスおよび論理フローはまた、たとえばFPGAまたはASICなどの専用論理回路によって、または専用論理回路と1つまたは複数のプログラムされたコンピュータとの組合せによって実行することができる。
コンピュータプログラムの遂行に適したコンピュータは、汎用マイクロプロセッサまたは専用マイクロプロセッサまたはその両方、あるいは任意の他の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を遂行するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補足することもでき、そこに組み込むこともできる。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気、光磁気ディスク、または光ディスクを含むか、それらからデータを受信する、またはそれらにデータを転送する、またはその両方を行うように動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを備えている必要はない。さらに、コンピュータは、ほんの数例を挙げると、たとえば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレイヤ、ゲームコンソール、全地球測位システム(GPS)受信機、あるいはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブなどの別のデバイスに埋め込む込むことができる。
コンピュータプログラム命令およびデータを記憶するために適したコンピュータ可読媒体は、たとえば、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、メディア、およびメモリデバイスを含む。
ユーザとの相互作用を提供するために、本明細書に記載される主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装することができる。ユーザとの相互作用を提供するために、他の種類のデバイスを使用することもでき、たとえば、ユーザに提供されるフィードバックは、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなど、任意の形式の感覚的フィードバックであってよく、また、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受け取ることができる。さらに、コンピュータは、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、たとえば、ウェブブラウザから受信したリクエストに応じてユーザのデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと相互作用することができる。また、コンピュータは、テキストメッセージまたは他の形式のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送信し、ユーザからの応答メッセージを受信することによって、ユーザと相互作用することができる。
機械学習モデルを実装するためのデータ処理装置はまた、たとえば、機械学習トレーニングまたは生産の一般的で計算集約的な部分、すなわち推論、ワークロードを処理するための専用ハードウェアアクセラレータユニットを含むことができる。
機械学習モデルは、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、Apache MXNetフレームワークなどの機械学習フレームワークを使用して実装および展開することができる。
本明細書に記載される主題の実施形態は、たとえばデータサーバとしてのバックエンドコンポーネントを含むか、または、たとえばアプリケーションサーバなどのミドルウェアコンポーネントを含むか、または、フロントエンドコンポーネント、たとえば、ユーザが本明細書に記載される主題の実装形態と相互作用することができるグラフィカルユーザインターフェース、ウェブブラウザ、またはアプリを有するクライアントコンピュータ、あるいは、1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムにおいて実装することができる。システムのコンポーネントは、通信ネットワークなどの任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)とワイドエリアネットワーク(WAN)、たとえば、インターネットを含む。
コンピューティングシステムは、クライアントとサーバを含むことができる。クライアントとサーバは通常互いにリモートであり、通常は通信ネットワークを通じて相互作用する。クライアントとサーバの関係は、それぞれのコンピュータで実行され、クライアントとサーバの関係を相互に有するコンピュータプログラムによって発生する。いくつかの実施形態では、サーバは、たとえば、クライアントとして機能するデバイスと相互作用するユーザにデータを表示し、そこからユーザ入力を受信する目的で、データ、たとえば、HTMLページをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザ相互作用の結果は、デバイスからサーバにおいて受信することができる。
本明細書は多くの特定の実装形態の詳細を含むが、これらは、発明の範囲または請求される可能性のあるものの範囲の制限として解釈されるべきではなく、特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書に記載される特定の特徴はまた、単一の実施形態において組み合わせて実装することができる。逆に、単一の実施形態の文脈において説明される様々な特徴はまた、複数の実施形態において別々に、または任意の適切なサブコンビネーションにおいて実装することができる。さらに、特徴は、特定の組合せにおいて作用するものとして上で説明され、最初にそのように主張されても、主張された組合せからの1つまたは複数の特徴は、場合によっては組合せから切り出され得、主張された組合せは、サブコンビネーションまたはサブコンビネーションの変形に向けられ得る。
同様に、動作は特定の順序で図面に示され、特許請求の範囲に記載されているが、これは、所望の結果を達成するために、そのような動作が示される特定の順序または連続した順序で実行されること、あるいは図示されるすべての動作が実行されることを必要とすることとして理解されるべきではない。特定の状況では、マルチタスクと並列処理が有利な場合がある。さらに、上記の実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージ化され得ることが理解されるべきである。
主題の特定の実施形態が説明されてきた。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に記載されているアクションは、異なる順序で実行することができ、それでも所望の結果を達成することができる。一例として、添付の図に示されているプロセスは、所望の結果を達成するために、必ずしも示されている特定の順序または連続した順序を必要としない。場合によっては、マルチタスクと並列処理が有利な場合がある。
100 ニューラルネットワークシステム
102 入力
102 システム入力
104 入力シーケンス
110 スパースアテンション層
120 アテンションサブ層
124 最終的なアテンドされた入力シーケンス
130 フィードフォワードサブ層
134 出力シーケンス
150 アテンションニューラルネットワーク
152 出力
200 図
210 y軸
220 x軸
221 空白のセル
222 ランダムセル
224 ウィンドウセル
226 グローバルセル
250 図
300 プロセス

Claims (12)

  1. ネットワーク出力を生成するために、ネットワーク入力に対して機械学習タスクを実行するためのシステムであって、1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって遂行されると、前記1つまたは複数のコンピュータに、
    前記機械学習タスクを実行するように構成されたアテンションニューラルネットワークを実装させる命令を記憶する1つまたは複数のストレージデバイスと
    を備え、前記アテンションニューラルネットワークが1つまたは複数のスパースアテンション層を備え、各スパースアテンション層が1つまたは複数のスパースアテンションサブ層を備え、各スパースアテンションサブ層が、
    前記スパースアテンション層への入力シーケンスから導出されたクエリのシーケンスを受信することであって、クエリの前記シーケンスが、複数の入力位置の各々においてそれぞれのクエリを有する、受信することと、
    前記スパースアテンション層への前記入力シーケンスから導出されたキーのシーケンスを受信することであって、キーの前記シーケンスが、前記複数の入力位置の各々においてそれぞれのキーを有する、受信することと、
    前記スパースアテンション層への前記入力シーケンスから導出された値入力のシーケンスを受信することであって、値入力の前記シーケンスが、前記複数の入力位置の各々においてそれぞれの値入力を有する、受信することと、
    前記複数の入力位置の各々におけるそれぞれのアテンドされた入力を備えるアテンドされた入力シーケンスを生成することであって、
    前記入力位置の第1の適切なサブセットにある各入力位置に対して、
    すべての前記入力位置に対してそれぞれの重みを生成するためにキーの前記シーケンス内のすべての前記キーをアテンドするために前記入力位置において前記クエリを使用して、前記それぞれの重みに従って、すべての前記入力位置において前記値入力の重み付けされた合計を計算することによって、前記入力位置において前記アテンドされた入力を生成することと、
    前記入力位置の第2の適切なサブセットにある各入力位置に対して、
    対応する適切なサブセットにおける前記入力位置の各々のそれぞれの重みを生成するために、前記入力位置の前記対応する適切なサブセットにおける前記キーのみをアテンドするために、前記入力位置において前記クエリを使用して、前記入力位置の前記対応する適切なサブセットに対する前記それぞれの重みに従って、前記入力位置の前記対応する適切なサブセットにおける前記値入力の重み付けされた合計を計算することによって、前記入力位置において前記アテンドされた入力を生成することと
    を備える、生成することと
    を行うように構成され、前記第2の適切なサブセット内の各入力位置の入力位置の前記対応する適切なサブセットが、
    前記入力位置の前記第1の適切なサブセットと、
    前記入力位置の前記第1の適切なサブセットの外側にある1つまたは複数の入力位置と
    を含む、システム。
  2. 前記第1の適切なサブセットの外側にある前記1つまたは複数の入力位置が、
    前記第1の適切なサブセットの外側にある前記入力位置からランダムに選択された1つまたは複数の入力位置を含む、請求項1に記載のシステム。
  3. 前記第1の適切なサブセットの外側にある前記1つまたは複数の入力位置が、
    前記第2の適切なサブセット内の前記入力位置の固定数位置のウィンドウ内にある各入力位置を含む、請求項1または2に記載のシステム。
  4. 前記ネットワーク入力が、複数の前記入力位置の各々にそれぞれのトークンを有するシーケンスであり、前記アテンションニューラルネットワークが、前記ネットワーク入力を処理する前に1つまたは複数のあらかじめ定められたグローバルトークンを追加することによって、前記ネットワーク入力を増強するように構成され、入力位置の前記第1の適切なサブセットが、前記1つまたは複数のグローバルトークンが追加される位置に対応する、請求項1から3のいずれか一項に記載のシステム。
  5. 前記ネットワーク入力が、複数の前記入力位置の各々にそれぞれのトークンを有するシーケンスであり、前記アテンションニューラルネットワークが、固定数の前記複数の入力位置を、入力位置の前記第1の適切なサブセットとして指定するように構成されている、請求項1から3のいずれか一項に記載のシステム。
  6. 前記1つまたは複数のスパースアテンション層の各々が、スパースアテンションサブ層ごとに、前記スパースアテンションサブ層のクエリの前記シーケンスを生成するために、それぞれのクエリ線形変換を前記入力シーケンスに適用する、請求項1から5のいずれか一項に記載のシステム。
  7. 前記1つまたは複数のスパースアテンション層の各々が、スパースアテンションサブ層ごとに、前記スパースアテンションサブ層のキーの前記シーケンスを生成するために、それぞれのキー線形変換を前記入力シーケンスに適用する、請求項1から6のいずれか一項に記載のシステム。
  8. 前記1つまたは複数のスパースアテンション層の各々が、スパースアテンションサブ層ごとに、前記スパースアテンションサブ層の値入力の前記シーケンスを生成するために、それぞれの値の線形変換を前記入力シーケンスに適用する、請求項1から7のいずれか一項に記載のシステム。
  9. 各スパースアテンション層が、
    前記1つまたは複数のサブ層によって生成された前記アテンドされた入力シーケンスから最終的なアテンドされた入力シーケンスを生成するようにさらに構成される、請求項1から8のいずれか一項に記載のシステム。
  10. 各スパースアテンション層が、
    前記最終的なアテンドされた入力シーケンスから層の出力シーケンスを生成するように構成された1つまたは複数の位置ごとのフィードフォワード層をさらに備え、前記出力シーケンスが、前記複数の入力位置の各々においてそれぞれの層出力を備え、前記生成することが、前記複数の入力位置ごとに、
    前記入力位置においてアテンドされた層入力を受信することと、
    前記入力位置の層出力を生成するために、前記入力位置における前記アテンドされた層入力に変換のシーケンスを適用することと
    を備える、請求項9に記載のシステム。
  11. 1つまたは複数のコンピュータによって遂行されると、前記1つまたは複数のコンピュータに、請求項1から10のいずれか一項に記載のアテンションニューラルネットワークを実装させる命令を記憶する1つまたは複数のコンピュータ可読ストレージ媒体。
  12. 1つまたは複数のコンピュータと1つまたは複数のストレージデバイスとを備えた、機械学習タスクを実行するためのシステムが、ネットワーク入力を受信するステップと、
    前記ネットワーク入力のネットワーク出力を生成するために、前記システムが、請求項1から11のいずれかに記載のアテンションニューラルネットワークを使用して前記ネットワーク入力を処理するステップと
    を備える、方法。
JP2022568899A 2020-06-05 2021-06-07 スパースアテンションメカニズムを備えたアテンションニューラルネットワーク Active JP7502469B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063035632P 2020-06-05 2020-06-05
US63/035,632 2020-06-05
PCT/US2021/036252 WO2021248139A1 (en) 2020-06-05 2021-06-07 Attention neural networks with sparse attention mechanisms

Publications (2)

Publication Number Publication Date
JP2023529801A JP2023529801A (ja) 2023-07-12
JP7502469B2 true JP7502469B2 (ja) 2024-06-18

Family

ID=76921298

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022568899A Active JP7502469B2 (ja) 2020-06-05 2021-06-07 スパースアテンションメカニズムを備えたアテンションニューラルネットワーク

Country Status (6)

Country Link
US (2) US11238332B2 (ja)
EP (1) EP4121908A1 (ja)
JP (1) JP7502469B2 (ja)
KR (1) KR20220164559A (ja)
CN (1) CN115552417A (ja)
WO (1) WO2021248139A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220164672A1 (en) * 2020-11-20 2022-05-26 Microsoft Technology Licensing, Llc. Automated merge conflict resolution
CN114417856B (zh) * 2021-12-29 2022-11-04 北京百度网讯科技有限公司 文本的稀疏编码方法、装置及电子设备
CN114640695B (zh) * 2022-04-24 2023-04-07 上海交通大学 一种智能工厂基于长序列双预测和informer的高频时序数据有效传输方法
CN114996431B (zh) * 2022-08-01 2022-11-04 湖南大学 一种基于混合注意力的人机对话生成方法、***及介质
CN115081752B (zh) * 2022-08-11 2022-11-22 浙江君同智能科技有限责任公司 黑灰产众包流量预测装置及方法
CN115392260B (zh) * 2022-10-31 2023-04-07 暨南大学 一种面向特定目标的社交媒体推文情感分析方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Rewon Child ほか,Generating Long Sequences with Sparse Transformers,arXiv,v1,2019年04月23日,頁1-10,[検索日 2023.12.25], インターネット<URL:https://arxiv.org/abs/1904.10509>
Sandeep Subramanian ほか,Multi-scale Transformer Language Models,arXiv,v1,2020年05月01日,頁1-18,[検索日 2023.12.25], インターネット<URL: https://arxiv.org/abs/2005.00581>

Also Published As

Publication number Publication date
US11238332B2 (en) 2022-02-01
US20210383191A1 (en) 2021-12-09
JP2023529801A (ja) 2023-07-12
WO2021248139A1 (en) 2021-12-09
CN115552417A (zh) 2022-12-30
KR20220164559A (ko) 2022-12-13
EP4121908A1 (en) 2023-01-25
US20220156553A1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
JP7502469B2 (ja) スパースアテンションメカニズムを備えたアテンションニューラルネットワーク
US20210279576A1 (en) Attention neural networks with talking heads attention
US10789942B2 (en) Word embedding system
WO2018156373A1 (en) Sequence processing using online attention
US20230222318A1 (en) Attention neural networks with conditional computation
EP4040339A1 (en) Sparse attention neural networks
US20210248473A1 (en) Attention neural networks with linear units
WO2019084558A1 (en) SELECTING RESPONSE INTERVALS FROM ELECTRONIC DOCUMENTS USING AUTOMATIC APPRENTICESHIP
US20230205994A1 (en) Performing machine learning tasks using instruction-tuned neural networks
CN114467096A (zh) 增强基于注意力的神经网络以选择性地关注过去的输入
US20220383119A1 (en) Granular neural network architecture search over low-level primitives
US11481609B2 (en) Computationally efficient expressive output layers for neural networks
WO2023059831A1 (en) Using memory to augment self-attention in neural networks
US20240013769A1 (en) Vocabulary selection for text processing tasks using power indices
US20240078379A1 (en) Attention neural networks with n-grammer layers
US12050983B2 (en) Attention neural networks with parallel attention and feed-forward layers
US20230316055A1 (en) Attention neural networks with parallel attention and feed-forward layers
US20230351188A1 (en) Neural networks with switch layers
US20220367052A1 (en) Neural networks with feedforward spatial transformation units
US20230177309A1 (en) Training conditional computation neural networks using reinforcement learning
US20240119261A1 (en) Discrete token processing using diffusion models
WO2023147144A1 (en) Attention neural networks with gated attention units
CN117892733A (zh) 基于联合多语义信息的文本匹配方法和***

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230111

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240409

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240606

R150 Certificate of patent or registration of utility model

Ref document number: 7502469

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150