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

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

▶ ディープマインド テクノロジーズ リミテッドの特許一覧

特表2022-549893過去の入力に選択的に注意を向けるための注意ベースのニューラルネットワークの拡張
<>
  • 特表-過去の入力に選択的に注意を向けるための注意ベースのニューラルネットワークの拡張 図1
  • 特表-過去の入力に選択的に注意を向けるための注意ベースのニューラルネットワークの拡張 図2
  • 特表-過去の入力に選択的に注意を向けるための注意ベースのニューラルネットワークの拡張 図3
  • 特表-過去の入力に選択的に注意を向けるための注意ベースのニューラルネットワークの拡張 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-29
(54)【発明の名称】過去の入力に選択的に注意を向けるための注意ベースのニューラルネットワークの拡張
(51)【国際特許分類】
   G06N 3/04 20060101AFI20221121BHJP
【FI】
G06N3/04
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022519300
(86)(22)【出願日】2020-09-24
(85)【翻訳文提出日】2022-05-24
(86)【国際出願番号】 EP2020076759
(87)【国際公開番号】W WO2021058663
(87)【国際公開日】2021-04-01
(31)【優先権主張番号】62/906,078
(32)【優先日】2019-09-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ジャック・ウィリアム・レイ
(72)【発明者】
【氏名】アンナ・ポタペンコ
(72)【発明者】
【氏名】ティモシー・ポール・リリクラップ
(57)【要約】
ネットワーク出力を生成するためのシーケンスであるネットワーク入力に対して機械学習タスクを実行するための、コンピュータストレージ媒体上に符号化されたコンピュータプログラムを含む方法、システム、および装置。一態様では、方法のうちの1つは、層入力の特定のシーケンスごとに、ニューラルネットワーク内の注意層ごとに、エピソード記憶データを維持するステップと、圧縮記憶データを維持するステップと、注意層によって処理される層入力を受信するステップと、(i)層の圧縮記憶データ内の圧縮表現と、(ii)層のエピソード記憶データ内の隠れ状態と、(iii)層入力における入力位置ごとにそれぞれのアクティブ化を生成するための、特定のネットワーク入力における複数の入力位置の各々におけるそれぞれの隠れ状態とに注意メカニズムを適用するステップとを含む。
【特許請求の範囲】
【請求項1】
ニューラルネットワークを使用してネットワーク出力を生成するために、複数の入力位置の各々において、それぞれの入力を各々が有するネットワーク入力のシーケンスを処理するための方法であって、前記ニューラルネットワークが、入力位置ごとにそれぞれのアクティブ化を生成するために、前記複数の入力位置の各々にそれぞれの隠れ状態を含む層入力に注意メカニズムをそれぞれが適用する複数の注意層を有し、前記方法が、前記シーケンスにおける特定のネットワーク入力ごとに、
前記ニューラルネットワーク内の注意層ごとに、
前記シーケンス内の前記特定のネットワーク入力に先行する前のネットワーク入力の第1の部分について前記注意層によって処理されたそれぞれの隠れ状態を含む、対応するエピソード記憶データを維持するステップと、
前記シーケンス内の前のネットワーク入力の前記第1の部分に先行する前のネットワーク入力の第2の部分について前記注意層によって処理されたそれぞれの隠れ状態の圧縮表現を含む、対応する圧縮記憶データを維持するステップと、
前記ニューラルネットワークを使用した前記特定のネットワーク入力の前記処理中に、前記注意層によって処理される層入力を受信するステップと、
(i)前記層の前記圧縮記憶データ内の前記圧縮表現と、(ii)前記層の前記エピソード記憶データ内の前記隠れ状態と、(iii)前記層入力における入力位置ごとにそれぞれのアクティブ化を生成するための、前記特定のネットワーク入力における前記複数の入力位置の各々における前記それぞれの隠れ状態とに注意メカニズムを適用するステップと
を備える、方法。
【請求項2】
前記特定のネットワーク入力における入力位置ごとの前記それぞれの隠れ状態を含むように前記エピソード記憶データを更新するステップと、
前のネットワーク入力の前記第1の部分における最も初期のネットワーク入力の前記それぞれの隠れ状態の圧縮表現を含むように前記圧縮記憶データを更新するステップと
をさらに備える、請求項1に記載の方法。
【請求項3】
前のネットワーク入力の前記第1の部分における最も初期のネットワーク入力のそれぞれの隠れ状態の圧縮表現を含むように前記圧縮記憶データを更新するステップが、
圧縮率を決定するステップと、
圧縮表現を生成するために、前記圧縮率に従って、前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態を圧縮するステップと、
前記生成された圧縮表現を含むように前記圧縮記憶データを修正するステップと
を備える、請求項1または2に記載の方法。
【請求項4】
前記エピソード記憶データから、前のネットワーク入力の前記第1の部分における前記最も初期のネットワーク入力の前記それぞれの隠れ状態を削除するステップをさらに備える、請求項3に記載の方法。
【請求項5】
前記圧縮率に従って、前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態を圧縮するステップが、
前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前記圧縮率に等しいストライドで前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態とに最大プーリング関数を適用するステップを備える、請求項3または4に記載の方法。
【請求項6】
前記圧縮率に従って、前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態を圧縮するステップが、
前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前記圧縮率に等しいストライドで前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態とに平均プーリング関数を適用するステップを備える、請求項3または4に記載の方法。
【請求項7】
前記圧縮率に従って、前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態を圧縮するステップが、
前記最も初期のネットワーク入力および前のネットワーク入力の前記第2の部分における前記複数の入力位置に関連付けられるそれぞれのアクティブ化の重みの降順で、前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態とをソートするステップと、
前記最も初期のネットワーク入力における位置のそれぞれの隠れ状態と、最小のアクティブ化の重みに関連付けられる前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態を破棄するステップと
を備える、請求項3または4に記載の方法。
【請求項8】
前記圧縮率に従って、前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態を圧縮するステップが、
1D畳み込み関数のカーネルサイズを決定するステップと、
前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前記圧縮率に等しいストライドでおよび前記決定されたカーネルサイズに等しいカーネルサイズで前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態とに前記1D畳み込み関数を適用するステップと
を備える、請求項3または4に記載の方法。
【請求項9】
前記圧縮率に従って、前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態を圧縮するステップが、
前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態に、多層拡張1D畳み込み関数を適用するステップを備える、請求項3または4に記載の方法。
【請求項10】
前記特定のネットワーク入力が、前記シーケンス内の少なくともあらかじめ定められたしきい値数のネットワーク入力が先行する入力である、請求項1から9のいずれか一項に記載の方法。
【請求項11】
ネットワーク入力の前記あらかじめ定められたしきい値数より少ない数が先行する複数の以前のネットワーク入力の各々について、
前記ニューラルネットワーク内の注意層ごとに、
前記以前のネットワーク入力に先行する前のネットワーク入力の前記注意層によって処理されるそれぞれの隠れ状態を含む、対応するエピソード記憶データを維持するステップと、
前記ニューラルネットワークを使用した前記以前のネットワーク入力の処理中に、前記注意層によって処理される層入力を受信するステップと、
(i)前記層の前記エピソード記憶データにおける前記隠れ状態と、(ii)前記層入力における入力位置ごとにそれぞれのアクティブ化を生成するために、前記以前のネットワーク入力における前記複数の入力位置の各々における前記それぞれの隠れ状態に注意メカニズムを適用するステップと、
前記以前のネットワーク入力における入力位置ごとの前記それぞれの隠れ状態を含むように、エピソード記憶データを更新するステップと
をさらに備える、請求項10に記載の方法。
【請求項12】
ネットワーク入力の前記あらかじめ定められたしきい値数が、前記エピソード記憶データのサイズのあらかじめ定められたしきい値によって定義される、請求項10に記載の方法。
【請求項13】
前記特定のネットワーク入力における入力位置ごとの前記エピソード記憶データと前記それぞれの隠れ状態が、それぞれの多次元配列として表され、
前記特定のネットワーク入力における入力位置ごとの前記それぞれの隠れ状態を含むように前記エピソード記憶データを更新するステップが、
前記多次元配列の同じ次元に沿って2つの前記多次元配列を連結するステップを備える、請求項1から12のいずれか一項に記載の方法。
【請求項14】
前記ニューラルネットワークが、1つまたは複数の完全に接続された層、1つまたは複数の層正規化層、1つまたは複数のアクティブ化層、あるいは1つまたは複数の畳み込み層をさらに備える、請求項1から13のいずれか一項に記載の方法。
【請求項15】
ネットワークパラメータの現在の値を繰り返し更新するためにトレーニングデータにおいて前記ニューラルネットワークをトレーニングするステップをさらに備え、トレーニング中に、
2つの連続する更新ごとにトレーニングニューラルネットワーク入力の数を徐々に増加させる、請求項1から14のいずれか一項に記載の方法。
【請求項16】
トレーニング中に、(i)前記層の前記圧縮記憶データにおける前記圧縮表現、および(ii)前記層の前記エピソード記憶データにおける前記隠れ状態に停止勾配を適用するステップをさらに備える、請求項1から15のいずれか一項に記載の方法。
【請求項17】
1つまたは複数のコンピュータと、命令を記憶する1つまたは複数のストレージデバイスとを備え、前記命令が、前記1つまたは複数のコンピュータによって実行されたときに、前記1つまたは複数のコンピュータに、請求項1から16のいずれか一項に記載のそれぞれの方法の動作を実行させるように動作可能である、システム。
【請求項18】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から16のいずれか一項に記載のそれぞれの方法の動作を実行させる命令で符号化されたコンピュータストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2019年9月25日に出願された米国仮出願第62/906,078号の優先権を主張する。先行出願の開示は、本出願の開示の一部と見なされ、参照により本出願の開示に組み込まれる。
【0002】
本明細書は、ニューラルネットワークに関する。
【背景技術】
【0003】
ニューラルネットワークは、受信した入力の出力を予測するために非線形ユニットの1つまたは複数の層を使用する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち次の隠れ層または出力層への入力として使用される。ネットワークの各層は、それぞれのパラメータセットの現在の値に従って、受信した入力から出力を生成する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Jacob Devlin、Ming-Wei Chang、Kenton Lee、およびKristina Toutanovaによる、「Bert: Pre-training of deep bidirectional transformers for language understanding」、計算言語学会の北米支部の2019年会議の議事録:Human Language Technologies、Volume 1(Long and Short Papers)、pp. 4171~4186、2019年、
【非特許文献2】Zihang Dai、Zhilin Yang、Yiming Yang、Jaime Carbonell、Quoc Le、およびRuslan Salakhutdinovによる、「Transformer-XL: Attentive language models beyond a fixed-length context」、計算言語学会の第57回年次総会の議事録、pp. 2978~2988、イタリア、フィレンツェ、2019年7月、計算言語学会doi: 10.18653/v1/P19-1285. URL https://www.aclweb.org/anthology/P19-1285
【非特許文献3】Ashish Vaswani、Noam Shazeer、Niki Parmar、Jakob Uszkoreit、Llion Jones、Aidan N. Gomez、Lukasz Kaiser、およびIllia Polosukhinによる「Attention is all you need」、Advances in Neural Information Processing Systems, pp. 5998~6008, 2017年、URL https://papers.nips.cc/paper/7181-attention-is-all-you-need.pdf
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書は、ネットワーク出力を生成するために、ネットワーク入力に対して機械学習タスクを実行するように構成されたニューラルネットワークを実装する、1つまたは複数の場所にある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムについて説明する。特に、ニューラルネットワークは、1つまたは複数のメモリデバイスとのデータ通信におけるメモリ拡張の注意ニューラルネットワークであり、(i)タスクを実行する際にニューラルネットワークの1つまたは複数の層の各々によって生成された比較的最近の(たとえば、時間、シーケンス、または位置の観点から)情報を記憶する、エピソード記憶とも呼ばれる短期の詳細な記憶と、(ii)タスクを実行する際にニューラルネットワークの1つまたは複数の層の各々によって生成された古い情報を記憶する、圧縮記憶とも呼ばれる長期の粗い記憶とを維持する。システムは、ネットワーク入力からネットワーク出力を生成する際に、両方のタイプのメモリに記憶されている情報を利用することができる。
【0006】
一般に、本明細書に記載される主題の1つの革新的な態様は、ニューラルネットワークを使用してネットワーク出力を生成するために、複数の入力位置の各々において、それぞれの入力を各々が有するネットワーク入力のシーケンスを処理するための方法において具体化することができ、ニューラルネットワークは、入力位置ごとにそれぞれのアクティブ化を生成するために、複数の入力位置の各々にそれぞれの隠れ状態を含む層入力に注意メカニズムをそれぞれが適用する複数の注意層を有する。本方法は、シーケンス内の特定のネットワーク入力ごとに、ニューラルネットワーク内の注意層ごとに、シーケンス内の特定のネットワーク入力に先行する前のネットワーク入力の第1の部分について注意層によって処理されたそれぞれの隠れ状態を含む、対応するエピソード記憶データを維持するステップと、シーケンス内の前のネットワーク入力の第1の部分に先行する前のネットワーク入力の第2の部分について注意層によって処理されたそれぞれの隠れ状態の圧縮表現を含む、対応する圧縮記憶データを維持するステップと、ニューラルネットワークを使用した特定のネットワーク入力の処理中に、注意層によって処理される層入力を受信するステップと、(i)層の圧縮記憶データ内の圧縮表現と、(ii)層のエピソード記憶データ内の隠れ状態と、(iii)層入力における入力位置ごとにそれぞれのアクティブ化を生成するための、特定のネットワーク入力における複数の入力位置の各々におけるそれぞれの隠れ状態とに注意メカニズムを適用するステップとを備える。
【0007】
本方法は、特定のネットワーク入力における入力位置ごとのそれぞれの隠れ状態を含むようにエピソード記憶データを更新するステップと、前のネットワーク入力の第1の部分における最も初期のネットワーク入力のそれぞれの隠れ状態の圧縮表現を含むように圧縮記憶データを更新するステップとをさらに備え得る。前のネットワーク入力の第1の部分における最も初期のネットワーク入力のそれぞれの隠れ状態の圧縮表現を含むように圧縮記憶データを更新するステップは、圧縮率を決定するステップと、圧縮表現を生成するために、圧縮率に従って、最も初期のネットワーク入力のそれぞれの隠れ状態と、前のネットワーク入力の第2の部分について注意層によって処理されたそれぞれの隠れ状態を圧縮するステップと、生成された圧縮表現を含むように圧縮記憶データを変更するステップとを備え得る。本方法は、エピソード記憶データから、前のネットワーク入力の第1の部分における最も初期のネットワーク入力のそれぞれの隠れ状態を削除するステップをさらに備え得る。圧縮率に従って、最も初期のネットワーク入力のそれぞれの隠れ状態と、前のネットワーク入力の第2の部分について注意層によって処理されたそれぞれの隠れ状態を圧縮するステップは、最も初期のネットワーク入力のそれぞれの隠れ状態と、圧縮率に等しいストライドで前のネットワーク入力の第2の部分について注意層によって処理されたそれぞれの隠れ状態とに最大プーリング関数を適用するステップを備え得る。圧縮率に従って、最も初期のネットワーク入力のそれぞれの隠れ状態と、前のネットワーク入力の第2の部分について注意層によって処理されたそれぞれの隠れ状態を圧縮するステップは、最も初期のネットワーク入力のそれぞれの隠れ状態と、圧縮率に等しいストライドで前のネットワーク入力の第2の部分について注意層によって処理されたそれぞれの隠れ状態とに平均プーリング関数を適用するステップを備え得る。圧縮率に従って、最も初期のネットワーク入力のそれぞれの隠れ状態と、前のネットワーク入力の第2の部分について注意層によって処理されたそれぞれの隠れ状態を圧縮するステップは、最も初期のネットワーク入力および前のネットワーク入力の第2の部分における複数の入力位置に関連付けられるそれぞれのアクティブ化の重みの降順で、最も初期のネットワーク入力のそれぞれの隠れ状態と、前のネットワーク入力の第2の部分について注意層によって処理されたそれぞれの隠れ状態とをソートするステップと、最も初期のネットワーク入力における位置のそれぞれの隠れ状態と、最小のアクティブ化の重みに関連付けられる前のネットワーク入力の第2の部分について注意層によって処理されたそれぞれの隠れ状態を破棄するステップとを備え得る。圧縮率に従って、最も初期のネットワーク入力のそれぞれの隠れ状態と、前のネットワーク入力の第2の部分について注意層によって処理されたそれぞれの隠れ状態を圧縮するステップは、1D畳み込み関数のカーネルサイズを決定するステップと、最も初期のネットワーク入力のそれぞれの隠れ状態と、圧縮率に等しいストライドでおよび決定されたカーネルサイズに等しいカーネルサイズで前のネットワーク入力の第2の部分について注意層によって処理されたそれぞれの隠れ状態とに1D畳み込み関数を適用するステップを備え得る。圧縮率に従って、最も初期のネットワーク入力のそれぞれの隠れ状態と、前のネットワーク入力の第2の部分について注意層によって処理されたそれぞれの隠れ状態を圧縮するステップは、最も初期のネットワーク入力のそれぞれの隠れ状態と、前のネットワーク入力の第2の部分について注意層によって処理されたそれぞれの隠れ状態に、多層拡張1D畳み込み関数を適用するステップを備え得る。いくつかの実装形態では、特定のネットワーク入力は、シーケンス内の少なくともあらかじめ定められたしきい値数のネットワーク入力が先行する入力である。本方法は、ネットワーク入力のあらかじめ定められたしきい値数より少ない数が先行する複数の以前のネットワーク入力の各々について、ニューラルネットワーク内の注意層ごとに、以前のネットワーク入力に先行する前のネットワーク入力の注意層によって処理されるそれぞれの隠れ状態を含む、対応するエピソード記憶データを維持するステップと、ニューラルネットワークを使用した以前のネットワーク入力の処理中に、注意層によって処理される層入力を受信するステップと、(i)層のエピソード記憶データにおける隠れ状態と、(ii)層入力における入力位置ごとにそれぞれのアクティブ化を生成するために、以前のネットワーク入力における複数の入力位置の各々におけるそれぞれの隠れ状態に注意メカニズムを適用するステップと、以前のネットワーク入力における入力位置ごとのそれぞれの隠れ状態を含むように、エピソード記憶データを更新するステップとをさらに備え得る。いくつかの実装形態では、ネットワーク入力のあらかじめ定められたしきい値数は、エピソード記憶データのサイズのあらかじめ定められたしきい値によって定義される。いくつかの実装形態では、特定のネットワーク入力における入力位置ごとのエピソード記憶データとそれぞれの隠れ状態は、それぞれの多次元配列として表され、特定のネットワーク入力における入力位置ごとのそれぞれの隠れ状態を含むようにエピソード記憶データを更新するステップは、多次元配列の同じ次元に沿って2つの多次元配列を連結するステップとを備え得る。いくつかの実装形態では、ニューラルネットワークは、1つまたは複数の完全に接続された層、1つまたは複数の層正規化層、1つまたは複数のアクティブ化層、あるいは1つまたは複数の畳み込み層をさらに備え得る。本方法は、ネットワークパラメータの現在の値を繰り返し更新するためにトレーニングデータにおいてニューラルネットワークをトレーニングするステップをさらに備え得、トレーニング中に、2つの連続する更新ごとにトレーニングニューラルネットワーク入力の数を徐々に増加させる。本方法は、トレーニング中に、(i)層の圧縮記憶データにおける圧縮表現、および(ii)層のエピソード記憶データにおける隠れ状態に停止勾配を適用するステップをさらに備え得る。
【0008】
この態様の他の実施形態は、それぞれが本方法のアクションを実行するように構成された、1つまたは複数のコンピュータストレージデバイスに記録された対応するコンピュータシステム、装置、およびコンピュータプログラムを含む。1つまたは複数のコンピュータのシステムは、ソフトウェア、ファームウェア、ハードウェア、または動作中にシステムにアクションを実行させる可能性のある、システムにインストールされたそれらの任意の組合せによって特定の動作またはアクションを実行するように構成することができる。データ処理装置によって実行されると、装置にアクションを実行させる命令を含めることによって、特定の動作またはアクションを実行するように1つまたは複数のコンピュータプログラムを構成することができる。
【0009】
本明細書に記載されている主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装することができる。
【0010】
一般に、ネットワーク入力のシーケンス内の長期的な依存関係をキャプチャするようにニューラルネットワークをトレーニングすることは難しい場合がある。この制限に対処するための従来の手法は、ニューラルネットワークの各注意層において、前のネットワーク入力の入力位置ごとのそれぞれの隠れ状態の表現を含むメモリを維持し、それによって注意層がネットワーク入力のより長いシーケンスに注意を向けることができるようにすることを含む。しかしながら、そのような記憶データを維持する(すなわち、記憶および更新する)ことは、様々な問題を有する。第1の問題は、かなりの計算リソース(たとえば、メモリ、計算能力、またはその両方)を消費することである。第2の問題は、メモリの最大サイズに達したら、メモリ内の最も古い表現を削除する必要があるため、ネットワークが注意を向けることができる表現の量が制限されることである。
【0011】
しかしながら、本明細書で説明されている技法により、システムは、ニューラルネットワークの各注意層において、最も古いネットワーク入力の入力位置ごとのそれぞれの隠れ状態の圧縮表現を含む圧縮記憶データを維持できるようになる。したがって、本技法により、システムは、最も古いネットワーク入力の入力位置ごとのそれぞれの隠れ状態を圧縮記憶に効果的に圧縮できるようになる。
【0012】
最も古い隠れ状態を破棄するのではなく圧縮することによって、本技法により、たとえ現在処理されている入力に対してコンテキストが遠い過去に発生した場合でも、ニューラルネットワークはコンテキストを考慮することができるようになる。最も古い隠れ状態が圧縮されているため、この追加のコンテキストは最小限の計算オーバーヘッドで利用可能である。ニューラルネットワークの実装形態は、過去からの顕著な情報を保存することができる。
【0013】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0014】
図1】例示的な注意ニューラルネットワークシステムを示す図である。
図2】注意層出力を生成するための例示的なプロセスの流れ図である。
図3】注意層に関連付けられる圧縮記憶を更新するための例示的なプロセスの流れ図である。
図4】注意層に関連付けられる記憶を維持することの図である。
【発明を実施するための形態】
【0015】
様々な図面における同様の参照番号および名称は、同様の要素を示している。
【0016】
本明細書は、ネットワーク入力に対して機械学習タスクを実行する、1つまたは複数の場所にある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムについて説明している。
【0017】
機械学習タスクは、(i)入力シーケンス(すなわち、複数の入力位置の各々において、それぞれの入力を有する入力のシーケンス)であるネットワーク入力において動作する、(ii)出力シーケンスであるネットワーク出力を生成する、または(iii)両方を行う、任意の機械学習タスクであってよい。
【0018】
システムが実行するように構成できる機械学習タスクのいくつかの例を次に示す。
【0019】
一例として、機械学習タスクはニューラル機械翻訳であり得、ニューラルネットワークへの入力は1つの言語のテキストのシーケンスであり、ニューラルネットワークによって生成される出力は、他の言語のテキストのセットの各々のスコアであり得、各スコアは、他の言語のテキストが入力テキストを他の言語に適切に翻訳したものである推定尤度を表す。したがって、たとえば、各入力位置は、ある言語の単語から導出されてよく、ネットワーク出力は、単語を他の言語に翻訳することを提供する出力シーケンスを備えてよく、たとえばこれは、入力位置に対応する出力位置を有し、出力位置は他の言語の単語のデータを提供する。
【0020】
別の例として、タスクはオーディオ処理タスクであり得る。たとえば、ニューラルネットワークへの入力が発話を表すシーケンスである場合、ニューラルネットワークによって生成される出力はテキストのセットの各々のスコアであり得、各スコアは、テキストが発話の正しいトランスクリプトである推定尤度を表す。別の例として、ニューラルネットワークへの入力が発話を表すシーケンスである場合、ニューラルネットワークによって生成される出力は、特定の単語またはフレーズ(「ホットワード」)が発話で話されたかどうかを示すことができる。別の例として、ニューラルネットワークへの入力が発話を表すシーケンスである場合、ニューラルネットワークによって生成された出力は、発話が話された自然言語を識別することができる。したがって、一般に、ネットワーク入力は、オーディオ処理タスクを実行するためのオーディオデータを備えてよく、ネットワーク出力は、たとえば単語またはフレーズを識別するために、あるいはオーディオをテキストに変換するために、オーディオ処理タスクの結果を提供し得る。
【0021】
別の例として、タスクは、自然言語におけるテキストのシーケンスに対する操作を行う、自然言語処理または理解タスク、たとえば、含意タスク、言い換えタスク、テキスト類似性タスク、感情タスク、文完成タスク、文法タスクなどであってよい。
【0022】
別の例として、タスクはテキスト読み上げタスクであってよく、入力は自然言語のテキストまたは自然言語のテキストの特徴であり、ネットワーク出力はスペクトログラムを定義するか、または自然言語で話されているテキストのオーディオを定義する他のデータを備える。
【0023】
別の例として、タスクは健康予測タスクであってよく、入力は、患者の電子健康記録データから導出されたシーケンスであり、出力は、患者の将来の健康に関連する予測、たとえば、患者に処方する必要のある予測治療、患者に有害な健康イベントが発生する可能性、または患者の予測される診断である。
【0024】
別の例として、タスクはテキスト生成タスクであってよく、入力はテキストのシーケンスであり、出力は、テキストの別のシーケンス、たとえば、テキストの入力シーケンスの完了、入力シーケンスにおいて提起された質問への応答、またはテキストの第1のシーケンスによって指定されたトピックに関するテキストのシーケンスである。別の例として、テキスト生成タスクへの入力は、テキスト以外の入力、たとえば画像であってよく、出力シーケンスは、入力を説明するテキストであってよい。
【0025】
別の例として、タスクは画像生成タスクであってよく、入力は調整入力であり、出力は画像のピクセルの強度値のシーケンスである。
【0026】
別の例として、タスクはエージェント制御タスクであってよく、入力は、ビデオシーケンスなどの、環境の状態を特徴付ける観測または他のデータのシーケンスであり、出力は、シーケンス内の最新のデータに応答してエージェントによって実行されるアクションを定義する。エージェントは、機械的なエージェント、たとえば、実世界またはシミュレートされたロボット、産業施設の制御システム、あるいは異なる種類のエージェントを制御する制御システムであってよい。
【0027】
機械学習タスクを実行するために、システムは複数の層を含む注意ニューラルネットワークを含む。各層は、1つまたは複数の位置の各々にそれぞれの入力ベクトルを含むそれぞれの入力シーケンスにおいて動作する。
【0028】
さらに、いくつかまたはすべての層の各々は注意層を含み、いくつかの実装形態では、フィードフォワード層を含む。本明細書で使用される場合、注意層は、注意メカニズムを含むニューラルネットワーク層であり、これは、任意で、自己注意メカニズム、マスクされた注意メカニズム、および/または多頭注意メカニズムであり得る。注意層は、層の入力シーケンスを受信し、注意を向けられた(attended)入力シーケンスを生成するために、層の入力シーケンスに注意メカニズムを適用する。
【0029】
注意層によって適用される正確な注意メカニズムは注意ニューラルネットワークの構成によって異なるが、一般に、注意メカニズムは、クエリとキーと値のペアのセットを出力にマッピングし、ここで、クエリ、キー、および値はすべてベクトルである。出力は、値の加重和として計算され、各値に割り当てられた重みは、対応するキーを使用してクエリの互換性関数によって計算される。より具体的には、各注意層は、スケーリングされた内積注意メカニズムを適用することができる。スケーリングされた内積注意において、特定のクエリについて、注意層は、すべてのキーを使用してクエリの内積を計算し、内積の各々をスケーリング係数、たとえばクエリとキーの次元の平方根で除算し、次いで、値の重みを取得するために、スケーリングされた内積にソフトマックス関数を適用する。次いで、注意層は、これらの重みに従って値の加重和を計算する。したがって、スケーリングされた内積注意の場合、互換性関数は内積であり、互換性関数の出力はスケーリング係数によってさらにスケーリングされる。
【0030】
注意メカニズムを使用すると、ニューラルネットワークが、シーケンスの表現を計算するために単一のシーケンスの様々な位置を関連付けることができるようになり、それによって、トレーニング中に離れた位置間の依存関係を効果的に学習できるようになる。これにより、シーケンシャルネットワーク入力を必要とする様々な機械学習タスクを実行する際にニューラルネットワークを使用するシステムの精度を向上させることができる。
【0031】
フィードフォワード層は、含まれている場合、層の出力シーケンスを生成するために、注意を向けられた入力シーケンスに対して操作する。
【0032】
一般に、注意ニューラルネットワーク内の層は、様々な構成のいずれかに配置することができる。
【0033】
一例として、ネットワーク入力が入力シーケンスである場合、注意ニューラルネットワークは、複数の層のサブセットを含み、シーケンス内の各入力のそれぞれの符号化された表現を生成するために入力シーケンスを符号化するエンコーダニューラルネットワークを含むことができる。この例では、エンコーダの層によって適用される注意メカニズムは、自己注意メカニズム、たとえば、多頭自己注意メカニズムである。自己注意メカニズムでは、注意メカニズムによって動作される入力ベクトルと記憶ベクトルは同じであり、すなわち、層の入力シーケンス内のベクトルである。
【0034】
別の例として、注意ニューラルネットワークは、複数の層の異なるサブセットを含み、ネットワーク出力を生成するためにネットワーク入力またはネットワーク入力の符号化された表現のいずれかを処理する、デコーダニューラルネットワークを含む。
【0035】
これらの例のいくつかでは、ネットワーク出力が出力シーケンスである場合、出力シーケンス内の出力を生成するためにデコーダニューラルネットワークは自動回帰的に動作し、デコーダの一部またはすべての層内の注意サブ層は、部分的に生成された出力シーケンスにマスクされた自己注意を適用する。マスクされた自己注意では、注意メカニズムによって動作される入力ベクトルと記憶ベクトルは同じであるが、注意メカニズムはマスクされているため、入力シーケンス内の所与の位置は、入力シーケンス内の所与の位置の後のどの位置にも注意を向けない。
【0036】
ニューラルネットワークがエンコーダとデコーダの両方を含んでいる場合、デコーダにおける層のうちのいくつかは符号化された表現に相互注意を適用し、他の層はマスクされているかどうかにかかわらず、出力シーケンスに自己注意を適用する。相互注意が適用される場合、入力ベクトルは入力シーケンスから層までであり、記憶ベクトルはエンコーダによって生成された符号化された表現である。
【0037】
注意ニューラルネットワークが、入力シーケンスに対して直接操作デコーダニューラルネットワークを含んでいる場合、すなわち、エンコーダではなくデコーダのみを含んでいる場合、デコーダ内の注意層は、入力シーケンスに自己注意メカニズムを適用することができる。
【0038】
複数の注意層を含み、本明細書で説明されているタイプの注意層を含むように修正できる注意ベースのニューラルネットワークのアーキテクチャの特定の例は、Jacob Devlin、Ming-Wei Chang、Kenton Lee、およびKristina Toutanovaによる、「Bert: Pre-training of deep bidirectional transformers for language understanding」、計算言語学会の北米支部の2019年会議の議事録:Human Language Technologies、Volume 1(Long and Short Papers)、pp. 4171~4186、2019年、Zihang Dai、Zhilin Yang、Yiming Yang、Jaime Carbonell、Quoc Le、およびRuslan Salakhutdinovによる、「Transformer-XL: Attentive language models beyond a fixed-length context」、計算言語学会の第57回年次総会の議事録、pp. 2978~2988、イタリア、フィレンツェ、2019年7月、計算言語学会doi: 10.18653/v1/P19-1285. URL https://www.aclweb.org/anthology/P19-1285、ならびに、Ashish Vaswani、Noam Shazeer、Niki Parmar、Jakob Uszkoreit、Llion Jones、Aidan N. Gomez、Lukasz Kaiser、およびIllia Polosukhinによる「Attention is all you need」、Advances in Neural Information Processing Systems, pp. 5998~6008, 2017年、URL https://papers.nips.cc/paper/7181-attention-is-all-you-need.pdfにおいて説明されている。これらの開示全体は、参照によりその全体が本明細書に組み込まれる。
【0039】
図1は、例示的なニューラルネットワークシステム100を示している。ニューラルネットワークシステム100は、1つまたは複数の場所にある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの一例であり、以下に説明するシステム、コンポーネント、および技法を実装することができる。
【0040】
ニューラルネットワークシステム100は、入力102を受信し、出力152を生成するために、入力102に対して機械学習タスクを実行することができる。
【0041】
上記のように、ニューラルネットワークシステム100は、(i)入力シーケンスである入力102において動作することと、(ii)出力シーケンスである出力152を生成することと、(iii)両方、より具体的には、長距離のシーケンス、たとえば、長距離のドキュメント、たとえば、複数の連続した記事または完全な長さの本、あるいはエージェントが環境と対話している間に生成された、観察の長いシーケンスについての推理を必要とするタスクを含む、様々なタスクのいずれかを実行することができる。
【0042】
ニューラルネットワークシステム100は、注意層120を含む注意ニューラルネットワーク110を含む。注意層120は、入力シーケンス112において動作し、対応する出力シーケンス122を生成する。
【0043】
実装形態では、入力102は、複数の入力位置の各々にそれぞれの入力を各々が有するネットワーク入力のシーケンスを備える。したがって、入力シーケンス112は、このネットワーク入力から導出され得る。一般に、ネットワーク出力152は、注意層のうちの1つまたは複数からの出力シーケンス122に依存している。ネットワーク出力152は、入力位置の各々に対応する出力を提供し得る。たとえば、自然言語処理システムでは、これは、たとえば入力の翻訳のための単語を決定するためのものであるか、強化学習システムでは、時間ステップにおいて実行されるアクションを決定するためのものであり得る。強化学習システムでは、各入力位置は、観測値が受信される時間ステップに対応し得る。
【0044】
しかしながら、いくつかの実装形態では、ネットワーク出力152は、複数またはすべての入力位置に対応する出力を提供し得る。たとえば、入力102は、オーディオまたはビデオ入力を備え得、入力位置は、ビデオのオーディオまたはフレームのサンプルによって定義され得、ネットワーク出力152は、たとえば、単語、またはアクション、あるいはビデオによって描かれている1つまたは複数のオブジェクトなどの音を識別するために、オーディオまたはビデオ入力における情報を特徴付ける、たとえば分類する場合がある。
【0045】
便宜上、上記のように、1つの注意層が図1に示されているが、注意ニューラルネットワーク110は、たとえば、埋め込み層、出力層、およびより多くの注意層を含む他の層を含み得る。含まれる可能性のある他の層は、(非線形)アクティブ化層、完全に接続された層、および層正規化層(arXiv:1607:06450)である。
【0046】
一般に、入力シーケンス112は、入力102に対して機械学習タスクを実行する際に注意ニューラルネットワーク110によって生成される任意の中間シーケンシャルデータであり得る。各入力シーケンス112は、システム入力102の一部であってもよく、またはシステム入力102から導出された全体的なシーケンスのセグメントであってもよい。システムがシステム入力102の異なる部分を処理することによって機械学習タスクの実行を進めるときに、異なる入力シーケンス112を導出することができる。たとえば、入力シーケンス112は、埋め込み層、または、より一般的には埋め込みニューラルネットワークによって生成されたシステム入力102またはシステム入力102のセグメントの埋め込み(すなわち、数値)表現であってよい。任意で、入力シーケンスの埋め込み表現を、それぞれの入力位置の符号化と組み合わせることができる。別の例として、入力シーケンス112は、先行する注意層または注意ニューラルネットワーク110内の別の層によって生成される出力シーケンスであり得る。
【0047】
具体的には、入力シーケンス112は、入力順序における複数の入力位置の各々にそれぞれの隠れ状態入力を有し、出力シーケンス122は、出力順序における複数の出力位置の各々にそれぞれのアクティブ化出力を有する。すなわち、入力シーケンス102は、入力順序に従って配置された複数の隠れ状態入力を有し、出力シーケンス122は、出力順序に従って配置された複数のアクティブ化出力を有する。したがって、注意ニューラルネットワークが複数の注意層のスタックを含む場合、注意層ごとの入力シーケンスにおける隠れ状態は、一般に、注意ニューラルネットワーク110内の注意層に先行するスタック内の先行する注意層によって生成される出力アクティブ化である可能性がある。
【0048】
注意ベースのニューラルネットワークの一般的な弱点の1つは、前のネットワーク入力をシーケンスにおいて処理している間に生成された再利用可能な情報(たとえば、各ネットワーク層における過去のアクティブ化出力)を記憶するメモリで拡張されたものでさえ、ネットワーク入力のシーケンス内の長期的な依存関係をキャプチャする機能である。一般に、注意ニューラルネットワークの各注意層において、任意に長い長さの入力シーケンス、たとえば、数千または数百万の文字を含む長距離のドキュメントを含むシステム入力102から導出された入力シーケンス、たとえば、完全な長さの本に注意メカニズムを適用することは、非常に高価であるため、容量の制限に悩まされている。これは、任意の長さのシーケンスにおけるすべての入力に注意を向けるための計算コストと、メモリが使用されている場合は、この大きなメモリを保持するためのストレージコストによるものである。
【0049】
したがって、注意層120による入力シーケンス112の処理を支援するために、ニューラルネットワークシステム100は、エピソード記憶130および圧縮記憶140を(たとえば、1つまたは複数の物理的または論理的ストレージデバイスにおいて)維持する。注意ニューラルネットワーク110が複数の注意層を含む場合、ニューラルネットワークシステム100は、すべての注意層に対して単一の記憶、すなわちエピソード記憶130または圧縮記憶140、または異なる注意層に対して異なる記憶を維持することができる。これらのメモリは、同じ構造、たとえば先入れ先出し(FIFO)のような構造を有し得るが、必ずしもそうである必要はない。
【0050】
エピソード記憶130は、1つまたは複数の論理的または物理的ストレージデバイスとして実装することができ、システムがシステム入力102の以前の部分において動作していたときに注意層120によって処理された前の層入力を記憶する。たとえば、システム入力102が入力シーケンスである場合、システム入力102の以前の部分は、シーケンス内の現在のシステム入力に先行する前のシステム入力の第1の部分を含むことができ、注意層120への1つまたは複数の以前の入力シーケンスは、前のシステム入力の第1の部分から導出することができる。すなわち、エピソード記憶130は、「エピソード記憶データ」、たとえば、それぞれのエピソード記憶スロットにおいて、現在の入力シーケンス112の直前にある1つまたは複数の以前の入力シーケンスから注意層120への隠れ状態124を含む、短期の詳細なデータを記憶する。
【0051】
圧縮記憶140は、システムがシステム入力102の以前の部分にさらに先行するシステム入力102の最も初期の部分において動作していたときに、注意層120によって処理された前の層入力の第2の部分を記憶する。上記の例に続いて、システム入力102の最も初期の部分は、入力シーケンスであるシステム入力102内の前のシステム入力の第1の部分にさらに先行する前のシステム入力の第2の部分を含むことができ、注意層120への1つまたは複数の最も初期の入力シーケンスは、前のシステム入力の第2の部分から導出することができる。すなわち、エピソード記憶130は、それぞれの圧縮記憶スロットにおいて、現在の入力シーケンス112の直前にある注意層120への1つまたは複数の以前の入力シーケンスにさらに先行する、注意層120への1つまたは複数の最も初期の入力シーケンスからの隠れ状態134を含む「圧縮記憶データ」を記憶する。
【0052】
システム100が、システム入力102の異なる部分を処理することによって機械学習タスクの実行を進めるとき、システム100は、たとえば、注意ニューラルネットワーク110の圧縮層、すなわち、層入力の圧縮表現を出力するために層入力に圧縮関数を適用するように構成されたネットワーク層として実装することができる圧縮エンジン160を利用することによって、エピソード記憶130に現在記憶されている隠れ状態、圧縮記憶140にすでに記憶されている隠れ状態、またはその両方から新しい圧縮記憶データを決定することができる。
【0053】
エピソード記憶および圧縮記憶に記憶されたそれぞれの隠れ状態128および138を利用しながら、現在の入力シーケンス112内の複数のネットワーク入力の各々を処理することは、図2から図4を参照して以下でより詳細に説明される。
【0054】
簡単に言えば、現在の入力シーケンス112から、およびメモリに記憶された隠れ状態から現在の出力シーケンス122を生成するために、注意層120は、入力位置ごとにそれぞれのクエリQを生成するために、学習したクエリ線形変換を現在の入力シーケンスにおける各入力位置の各隠れ状態に適用することと、入力位置ごとに、およびメモリスロットごとに、それぞれのキーKを生成するために、学習したキー線形変換を(i)各入力位置の各隠れ状態と(ii)エピソード記憶および圧縮記憶内の各スロットの各隠れ状態に適用することと、入力位置ごとに、およびメモリスロットごとに、それぞれの値Vを生成するために、学習した値線形変換を(i)各入力位置の各隠れ状態と(ii)エピソード記憶および圧縮記憶内の各スロットの各隠れ状態に適用することとを行うように構成される。次いで、注意層120は、入力シーケンス104の出力シーケンス122を決定するために、これらのクエリ、キー、および値を使用して上記の注意メカニズムを適用する。出力シーケンス122は、一般に、各入力位置における隠れ状態入力ごとに、それぞれの注意を向けられたベクトルを含む。一般に、クエリQ、キーK、および値Vはすべてベクトルである。本明細書で使用されている「学習した」という用語は、システムのトレーニング中に動作または値が調整されたことを意味する。
【0055】
いくつかの実装形態では、注意層120が、異なる位置にある異なる表現サブスペースからの情報に共同で注意を向けることができるようにするために、注意層120は、多頭注意を採用している。
【0056】
マルチアヘッド注意を実装するために、注意層120は、h個の異なる注意メカニズムを並行して適用する。言い換えれば、注意層120は、h個の異なる注意サブ層を含み、同じ注意層120内の各注意サブ層は、同じ元のクエリQ、元のキーK、および元の値Vを受信する。
【0057】
各注意サブ層は、学習した線形変換を使用して元のクエリ、キー、および値を変換し、次いで、変換されたクエリ、キー、および値に注意メカニズムを適用するように構成される。各注意サブ層は、通常、同じ注意層内のそれぞれの他の注意サブ層から異なる変換を学習する。
【0058】
特に、各注意サブ層は、元のクエリごとに層固有のクエリを生成するために、学習したクエリ線形変換を各元のクエリに適用することと、元のキーごとに層固有のキーを生成するために、学習したキー線形変換を各元のキーに適用することと、元の値ごとに層固有の値を生成するために、学習した値線形変換を各元の値に適用することとを行うように構成されている。次いで、注意サブ層は、注意サブ層の初期出力を生成するために、これらの層固有のクエリ、キー、および値を使用して上記の注意メカニズムを適用する。
【0059】
次に、注意層は、注意層の最終出力を生成するために、注意サブ層の初期出力を組み合わせる。具体的には、注意層は、注意を向けられた入力シーケンス124を出力として生成するために、注意サブ層の出力の連結を計算し、学習した線形変換を連結出力に適用することができる。場合によっては、注意層によって適用される学習した変換により、元のキーと値、および任意でクエリの次元が減少する。たとえば、元のキー、値、およびクエリの次元がdであり、注意層にh個の注意サブ層がある場合、注意層は、元のキー、値、およびクエリの次元をd/hに減らすことができる。これにより、多頭注意メカニズムの計算コストが、注意メカニズムを完全な次元で一度実行する場合のコストと同様に保たれ、同時に注意層の代表的な容量が増加する。
【0060】
図2は、注意層出力を生成するための例示的なプロセス200の流れ図である。便宜上、プロセス200は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされたニューラルネットワークシステム、たとえば、図1のニューラルネットワークシステム100は、プロセス200を実行することができる。
【0061】
システムは、層入力のシーケンスごとにプロセス200を繰り返し実行することができる。便宜上、ステップ202~208の各々は、注意ニューラルネットワーク内の各注意層によって、および層入力の「現在の」シーケンスに対して実行されるものとして説明される。
【0062】
典型的には、層入力シーケンスは、複数の入力位置の各々においてそれぞれの隠れ状態入力を含む。上記と同様に、層入力シーケンスは、システム出力を生成するためにシステム入力に対して機械学習タスクを実行する際に、注意ニューラルネットワークによって生成される任意の中間シーケンシャルデータにすることができる。システムがシステム入力の様々な部分を処理することによって機械学習タスクの実行を進めるときに、様々な層入力シーケンスを導出することができる。
【0063】
たとえば、層入力シーケンスは、埋め込み層によって生成されたシステム入力の埋め込み表現であってよい。別の例として、層入力シーケンスは、先行する注意層または注意ニューラルネットワーク内の他の層によって生成される出力シーケンスであってよい。たとえば、シーケンス内のそれぞれの隠れ状態入力は、注意ニューラルネットワーク内の所与の注意層の直前にある注意層のスタック内の先行する注意層によって生成される複数のアクティブ化出力であり得る。
【0064】
システムは、注意ニューラルネットワークの注意層について、システムがシステム入力の以前の部分において動作していたときに注意層によって処理されたそれぞれの隠れ状態を含む対応するエピソード記憶データを維持する(202)。
【0065】
たとえば、システム入力の以前の部分は、シーケンス内のシステム入力の現在の部分に先行する前のシステム入力の第1の部分を含むことができる。たとえば、システムは、システムの第1の部分に対して操作する際に、すなわち、現在の層入力シーケンスを処理する前に、注意層によって以前に処理された1つまたは複数の先行層入力シーケンスにおける複数の入力位置の各々においてそれぞれの隠れ状態を記憶する、固定サイズのエピソード記憶を維持することによってこれを行うことができる。
【0066】
システムは、注意ニューラルネットワークにおける注意層について、システムがシステム入力の最も初期の部分において動作していたときに注意層によって処理されたそれぞれの隠れ状態の圧縮表現を含む対応する圧縮記憶データを維持する(204)。
【0067】
たとえば、システム入力の最も初期の部分は、システム入力の第1の部分にさらに先行する前のシステム入力の第2の部分を含むことができる。たとえば、システムは、隠れ状態がエピソード記憶に記憶される、1つまたは複数の以前の層入力シーケンスにさらに先行する1つまたは複数の最も初期の層入力シーケンスにおける複数の入力位置の各々にそれぞれの隠れ状態を記憶する圧縮記憶を維持することによってこれを行うことができる。
【0068】
以下で、図3および図4を参照して説明するように、システムは、1つまたは複数の以前の層入力シーケンスのすべての入力位置から複数の入力位置(エピソード記憶から削除される隠れ状態)を選択するために、様々な技法のいずれかを使用することができる。たとえば、1つまたは複数の以前の層入力シーケンス内の最も古い入力シーケンスにおける隠れ状態を常に削除し、圧縮記憶内の最も古い入力シーケンスにおける隠れ状態の圧縮表現を記憶する。まとめて、圧縮記憶に記憶される選択された隠れ状態は、前のシステム入力の第2の部分について注意層によって処理されたそれぞれの隠れ状態の圧縮表現と呼ばれる。
【0069】
システムは、注意ニューラルネットワークの注意層において、注意ニューラルネットワークを使用してシステム出力を生成するために、システム入力の現在の部分に対して機械学習タスクを実行する際に注意層によって処理される現在の層入力シーケンスを受信する(206)。現在の層入力シーケンスは、複数の入力位置の各々において、それぞれの隠れ状態入力を有することができる。
【0070】
エピソード記憶または圧縮記憶のいずれかの場合、現在の層入力シーケンスが、ネットワーク入力に対して機械学習タスクを実行する際に注意ニューラルネットワークによって処理されるまさに第1のシーケンスである場合、メモリに維持されるそれぞれの隠れ状態は、それぞれ、それぞれのあらかじめ定められた初期値、たとえば、ゼロ、負または正の無限大、あるいは他の何らかのあらかじめ定められた数値を有することができる。次いで、これらのあらかじめ定められた初期値は、新しい入力シーケンスを処理することによって機械学習タスクの実行をシステムが進めるときに、システムによって生成されたそれぞれの隠れ状態によって指定された更新された値に徐々に置き換えられる。
【0071】
システムは、現在の層入力シーケンスに対応する層出力シーケンスを決定するために、(i)圧縮記憶内のそれぞれの隠れ状態の圧縮表現と、(ii)エピソード記憶におけるそれぞれの隠れ状態と、(iii)現在の層入力シーケンスにおける複数の入力位置におけるそれぞれの隠れ状態に、注意メカニズムを適用する(208)。
【0072】
より詳細には、システムは、たとえば、注意層または別のシステムコンポーネントを使用することによって、入力位置ごとにそれぞれのクエリQを生成するために、学習したクエリ線形変換を現在の入力シーケンスの各入力位置の各隠れ状態に適用することと、入力位置ごとに、およびメモリスロットごとに、それぞれのキーKを生成するために、学習したキー線形変換を、(i)各入力位置の各隠れ状態と、(ii)エピソード記憶および圧縮記憶内の各スロットの各隠れ状態の連結表現に適用することと、入力位置ごとに、およびメモリスロットごとに、それぞれの値Vを生成するために、学習した値線形変換を、(i)各入力位置の各隠れ状態と、(ii)エピソード記憶および圧縮記憶内の各スロットにおける各隠れ状態の連結表現に適用することとを行うことができる。様々な実装形態では、各表現は、多次元配列、たとえばベクトルの形式にすることができ、連結表現は、多次元配列の同じ次元に沿って2つの多次元配列を連結することによって取得することができる。次いで、システムは、入力シーケンスの注意を向けられた入力シーケンスを決定するために、これらのクエリ、キー、および値を使用して上記の注意メカニズムを適用することができる。出力シーケンスは、通常、現在の層入力シーケンスにおける各入力位置において隠れ状態ごとにそれぞれの注意を向けられたベクトルを含む。
【0073】
注意層が多頭注意を実装する場合、注意層における各注意サブ層は、入力位置ごとにそれぞれのクエリQを生成するために、学習したクエリ線形変換を現在の入力シーケンスの各入力位置の各層入力に適用することと、学習したキー線形変換を、入力位置ごとに、およびメモリスロットごとに、それぞれのキーKを生成するために、(i)各入力位置の各隠れ状態と、(ii)エピソード記憶および圧縮記憶内の各スロットの各隠れ状態の連結表現に適用することと、入力位置ごとに、およびメモリスロットごとに、それぞれの値Vを生成するために、学習した値線形変換を、(i)各入力位置の各隠れ状態と、(ii)エピソード記憶および圧縮記憶内の各スロットにおける各隠れ状態の連結表現に適用することと、次いで、入力位置ごとに、およびメモリスロットごとに、初期注意サブ層出力を決定するために、クエリ、キー、および値を使用して注意メカニズム(すなわち、上記のスケーリングされた内積注意メカニズム)を適用することとを行うように構成される。次いで、注意層は、上記のように注意サブ層の初期出力を組み合わせる。
【0074】
各注意層が次いでフィードフォワード層を含む実装形態では、システムは、注意層の出力シーケンスを生成するために、注意を向けられた入力シーケンスに対して操作するようにフィードフォワード層を使用することができる。あるいは、システムは、注意層の出力シーケンスとして、注意を向けられた入力シーケンスを提供することができる。
【0075】
次いで、システムはエピソード記憶の更新に進み、任意で、層入力シーケンスに基づいて圧縮記憶を更新する。具体的には、システムは第1に、現在の層入力シーケンスにそれぞれの隠れ状態を含むようにエピソード記憶を更新し、その後、エピソード記憶が「満杯」であるかどうか、すなわち、エピソード記憶内の利用可能なすべてのメモリスロットが、プロセス200を1つまたは複数の反復で実行した結果として、現在の層入力シーケンスにおける隠れ状態のそれぞれの値を使用して更新されたかどうかを決定することができる。
【0076】
否定的な決定に応答して、すなわち、現在の層入力シーケンスの前に、あらかじめ定められたしきい値数より少ない層入力シーケンスが先行する場合、システムは、エピソード記憶データの更新に進むことができる。いくつかの実装形態では、あらかじめ定められたしきい値数は、エピソード記憶のサイズのあらかじめ定められたしきい値によって定義される(たとえば、対応する隠れ状態の値を記憶するようにそれぞれ動作可能な利用可能なメモリスロットに関して)。
【0077】
具体的には、システムは、対応する層出力シーケンスを生成するために注意層によって処理された現在の層入力シーケンスに隠れ状態の値を含むように、それぞれのエピソード記憶スロットを更新することによってこれを行うことができる。
【0078】
あるいは、肯定的な決定に応答して、すなわち、現在の層入力シーケンスの前にあらかじめ定められたしきい数を超える層入力シーケンスが存在する場合、システムは、圧縮記憶データを更新するために、すなわち、プロセス200を実行した後にエピソード記憶を更新することに加えて、プロセス300に進むことができる。
【0079】
図3は、注意層に関連付けられる圧縮記憶を更新するための例示的なプロセスの流れ図である。便宜上、プロセス300は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされたニューラルネットワークシステム、たとえば、図1のニューラルネットワークシステム100は、プロセス300を実行することができる。
【0080】
システムは、圧縮率cを決定し(302)、これは、一般に、圧縮動作によって生成されるデータ表現のサイズの相対的減少の測定値を定義する。圧縮率の値が高いほど、一般に、圧縮されるエピソード記憶データの選択された部分のサイズが大幅に減少する(すなわち、隠れ状態の数に関して)。たとえば、システムは、たとえば、圧縮率の値を指定する、システムによって利用可能にされたアプリケーションプログラミングインターフェース(API)を通じて、システムユーザからの入力を受信することができる。別の例として、システムは、たとえば、あらかじめ定義された圧縮方式に従って、圧縮率の値を選択することができる。
【0081】
システムは、圧縮率cに従って圧縮動作fcを実行する(304)。圧縮表現を生成するために、システム入力の第1の部分を動作する際に注意層によって処理された1つまたは複数の以前の層入力シーケンスにおけるそれぞれの隠れ状態を圧縮する。特に、システムは、圧縮動作、エピソード記憶または圧縮記憶のサイズ、あるいはそれらの組合せに基づいて、1つまたは複数の以前の層入力シーケンスのサブセットの正確なサイズ(すなわち、エピソード記憶から削除される隠れ状態の数)を決定することができる。決定されると、システムは様々な技法のいずれかを使用して圧縮動作を実行し、圧縮表現を含むように圧縮記憶を更新し、その後、対応する隠れ状態をエピソード記憶から削除することができる。
【0082】
いくつかの実装形態では、システムは、圧縮率に等しいストライドで、1つまたは複数の以前の層入力シーケンスのサブセットについて注意層によって処理されたそれぞれの隠れ状態に最大プーリング関数を適用することができる。すなわち、圧縮動作は最大プーリング動作であってよく、圧縮表現はエピソード記憶に記憶された隠れ状態を使用して計算された最大プーリング関数の出力である。
【0083】
いくつかの実装形態では、システムは、圧縮率に等しいストライドで、1つまたは複数の以前の層入力シーケンスのサブセットについて注意層によって処理されたそれぞれの隠れ状態に平均プーリング関数を適用することができる。
【0084】
いくつかの実装形態では、システムは、1つまたは複数の以前の層入力シーケンスにおける複数の入力位置に関連付けられる隠れ状態のそれぞれの値の降順で1つまたは複数の以前の層入力シーケンスのサブセットについて注意層によって処理されたそれぞれの隠れ状態をソートすることができ、その後、最も低い隠れ状態値に関連付けられる1つまたは複数の以前の層入力シーケンスのサブセット内の位置のそれぞれの隠れ状態を破棄する。
【0085】
いくつかの実装形態では、システムは、1D畳み込み関数のカーネルサイズを決定し、次いで、圧縮率に等しいストライドでおよび決定されたカーネルサイズに等しいカーネルサイズで、1つまたは複数の以前の層入力シーケンスのサブセットの注意層によって処理されたそれぞれの隠れ状態に1D畳み込み関数を適用することができる。
【0086】
いくつかの実装形態では、システムは、代わりに、従来の畳み込み関数の導出、たとえば、拡張1D畳み込み関数を、1つまたは複数の以前の層入力シーケンスのサブセットについて注意層によって処理されたそれぞれの隠れ状態に適用することができる。
【0087】
これらの実装形態のうちのいくつかでは、システムは、代わりに、すなわち、(i)1つまたは複数の以前の層入力シーケンスにおけるそれぞれの隠れ状態と、(ii)注意層によって処理された1つまたは複数の最も初期の層入力シーケンスにおけるそれぞれの隠れ状態、あるいは、より具体的には、システムがシステム入力の第1の部分にさらに先行するシステム入力の第2の部分において動作していたときに注意層によって処理された注意層によって処理されたそれぞれの隠れ状態の両方に圧縮動作を適用することによって、圧縮することができる。そのような実装形態では、システムは、エピソード記憶および圧縮記憶にそれぞれ記憶された隠れ状態および以前に圧縮された隠れ状態の一体的に圧縮された表現を決定することができる。
【0088】
システムは、圧縮表現を含むように、すなわち、圧縮記憶スロットに記憶されたそれぞれの現在の値を、ステップ304から生成された圧縮表現によって指定された更新された隠れ状態値で置き換えることによって、圧縮記憶データを修正する(306)。次いで、次の層入力シーケンスにおいて新しい隠れ状態用のスペースを作成するために、圧縮表現の生成に基づく対応する隠れ状態がエピソード記憶から破棄される。以前に圧縮された隠れ状態は、システムの動作中に新しく圧縮された隠れ状態が使用可能になるため、圧縮記憶から破棄され得、たとえば、最も古いものが第1に破棄され得る。しかしながら、実装形態では、圧縮された隠れ状態の一部またはすべてが、機械学習タスクの実行中に圧縮記憶に保持される。
【0089】
図4は注意層に関連付けられる記憶を維持することの図である。図4の例では、注意ニューラルネットワークは、それぞれが長さns=3のシーケンス、すなわち、入力順序において3つの入力位置の各々にそれぞれの隠れ状態を有する入力シーケンス410(「現在のシーケンス」)を受信するように構成される3つの注意層を含む。各注意層は、サイズnm=6のエピソード記憶420、すなわち、6つのメモリスロットの各々にそれぞれのエピソード隠れ状態を記憶するように構成された記憶、およびサイズncm=6の圧縮記憶430、すなわち、6つのメモリスロットの各々にそれぞれの圧縮隠れ状態を記憶するように構成されたメモリに関連付けられる。図4の例では、圧縮率c=3、すなわち、3つのエピソード隠れ状態ごとに1つの圧縮隠れ状態に圧縮される。
【0090】
注意層ごとに、現在のシーケンスの処理から生成された3つの隠れ状態のセットが、エピソード記憶420内のそれぞれのメモリスロットに移動される。次いで、エピソード記憶420(長方形のボックスで囲まれている)にすでに維持されているエピソード隠れ状態が、層固有の圧縮関数fcに従って圧縮され、圧縮記憶430内の単一のメモリスロットに移動される。
【0091】
注意層に関連付けられるメモリを維持するための例示的なアルゴリズムを以下に示す。
【0092】
【表1】
【0093】
上に示した例示的なアルゴリズムでは、nmとncmは、注意ニューラルネットワークの各注意層におけるそれぞれの記憶と圧縮記憶スロットの数である。全体的な入力シーケンスS=x1、x2、…、x|s|は、システムへの入力(たとえば、本からのトークン)を表す。これらは、注意ニューラルネットワークが並行して処理するために、サイズnsの固定サイズのウィンドウに分割される。注意ニューラルネットワークは、時間tにおいて、x=xt、…、
【0094】
【数1】
【0095】
を受信する(図4では「現在のシーケンス」410と呼ばれる)。注意ニューラルネットワークが次のシーケンスに移動すると、そのnsの隠れ状態が、固定サイズの先入れ先出し(FIFO)記憶(図4では「エピソード記憶」420と呼ばれる)にプッシュされる。記憶内の最も古いnsの隠れ状態が削除され、圧縮動作fc:
【0096】
【数2】
【0097】
を使用して処理され、nsの最も古いメモリを、二次FIFO記憶(図4では「圧縮記憶」430と呼ばれる)に記憶されるように、
【0098】
【数3】
【0099】
圧縮記憶にマッピングする。dは、隠れ状態の隠れサイズを示す。cは圧縮率を指し、値が大きいほど、より粗い圧縮記憶を示す。
【0100】
プロセス200または300は、層入力のシーケンスのための層出力のシーケンスを生成するために層入力のシーケンスごとに実行することができ、そこからシステム出力が導き出され得る。層入力のシーケンスは、所望の出力、すなわち、入力シーケンスのために注意層によって生成されるべき出力シーケンスが知られていないシーケンスであってよい。システムはまた、システムをトレーニングするために、すなわち、注意ニューラルネットワークのパラメータのトレーニングされた値、およびいくつかの実装形態では、ネットワークに関連付けられる1つまたは複数の記憶を維持するために必要な追加のパラメータを決定するために、トレーニングデータのセットにおける入力、すなわち、注意層によって予測される出力が知られている入力のセットに対してプロセス200または300を実行することができる。
【0101】
注意ニューラルネットワークのトレーニング中に、注意ニューラルネットワークをトレーニングするために、従来の機械学習トレーニング技法の一部として、トレーニングデータのセットから選択された入力に対してプロセス200または300、たとえば、アダムまたはアダムと時間トレーニングによる逆伝播を繰り返し実行することができ、これは一般に、目的関数の計算された勾配に基づいて、注意ニューラルネットワークのそれぞれのパラメータ値を繰り返し更新することを含む。
【0102】
いくつかの実装形態では、最適化されている目的関数は、誤ったシステム出力を生成するシステムにペナルティを課す1つまたは複数の項に加えて、圧縮によって引き起こされる情報損失に対してシステムにペナルティを課す1つまたは複数の項を含む。このようにして、注意ニューラルネットワークは、システム入力内またはシステム入力から導出されたそれぞれの入力を効果的に推理することを通じて、高品質のシステム出力を生成するようにトレーニングすることができる。たとえば、目的関数は、補助圧縮損失を評価する1つまたは複数の項を含む。たとえば、そのような補助圧縮損失は、圧縮記憶コンテンツの再構築と元の非圧縮エピソード記憶コンテンツとの間の差の観点から測定される可逆圧縮目標である可能性がある。別の例として、そのような補助圧縮損失は、コンテンツベースの注意(すなわち、エピソード記憶コンテンツを介して注意を向けることから生成される注意を向けられた層出力)と記憶ベースの注意(すなわち、圧縮記憶コンテンツを介して注意を向けることから生成される注意を向けられた層出力)との間の差の観点から測定される非可逆圧縮目的であってよい。
【0103】
特に、誤ったシステム出力に対してシステムにペナルティを課す目的関数を使用してシステムをトレーニングすることと、最適ではない圧縮戦略のために注意情報を失うことに対してシステムにペナルティを課す目的関数を使用してシステムをトレーニングすることは、共同で、たとえば、圧縮損失勾配を注意ニューラルネットワークのネットワークパラメータに逆伝播することを通じて、または別々に、たとえば、注意層の圧縮記憶に維持されている圧縮表現、層のエピソード記憶データに維持される隠れ状態、あるいはその両方に適用される停止勾配演算子を使用して実行することができる。停止勾配演算子は、圧縮損失に関連する勾配が注意ニューラルネットワークのネットワークパラメータに渡されるのを防ぎ、それによって、注意ニューラルネットワークのタスク関連のトレーニングに焦点を合わせる。
【0104】
システムはまた、実時間または計算リソース、たとえば、メモリ、計算能力、またはその両方の点で有利であると考えられる(たとえば、システムオペレータによって)他の様々なトレーニング技法のいずれかと一緒にプロセス200または300を実行することができる。たとえば、システムは、動的パラメータ更新頻度に従ってシステムをトレーニングすることができ、たとえば、2つの連続するパラメータ値の更新ごとに、注意ニューラルネットワークによって処理されるトレーニングニューラルネットワーク入力の数を徐々に増やす。システムのいくつかの実装形態では、トレーニング中に勾配をクリップしてもよく、および/または、ウォームアップフェーズを有し、それが増加すると、次いで減衰フェーズになる学習率スケジュールを使用してもよい。
【0105】
システムのトレーニングにおいて使用するための注意再構築損失を評価する目的関数を計算するための例示的なアルゴリズムを以下に示す。
【0106】
【表2】
【0107】
本明細書では、システムおよびコンピュータプログラムコンポーネントに関連して「構成された(configured)」という用語を使用している。特定の動作またはアクションを実行するように構成された1つまたは複数のコンピュータのシステムの場合、システムは、動作中に、システムに動作またはアクションを実行させる、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがインストールされていることを意味する。特定の動作またはアクションを実行するように構成される1つまたは複数のコンピュータプログラムは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。
【0108】
本明細書に記載の主題および機能動作の実施形態は、本明細書に開示されている構造およびそれらの構造的同等物を含む、デジタル電子回路、有形に具体化されたコンピュータソフトウェアまたはファームウェア、コンピュータハードウェア、あるいはそれらの1つまたは複数の組合せにおいて実装することができる。本明細書に記載される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、有形の非一時的ストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムまたはシリアルアクセスメモリデバイス、あるいはそれらの1つまたは複数の組合せであってよい。あるいは、またはさらに、プログラム命令は、データ処理装置によって実行するために適切な受信機装置に送信するための情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば、機械生成の電気、光学、または電磁信号に符号化することができる。
【0109】
「データ処理装置」という用語は、データ処理ハードウェアを指し、たとえば、プログラム可能なプロセッサ、コンピュータ、あるいは複数のプロセッサまたはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置はまた、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であってもよく、またはさらに含むことができる。装置は、ハードウェアに加えて、コンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいはそれらの1つまたは複数の組合せを構成するコードを任意に含むことができる。
【0110】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれる、または記述される場合があるコンピュータプログラムは、コンパイラ型言語またはインタプリタ型言語、あるいは宣言型言語または手続き型言語など、あらゆる形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、あるいはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境における使用に適したその他のユニットとしてなど、あらゆる形式で展開することができる。プログラムは、ファイルシステム内のファイルに対応し得るが、対応する必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部、たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプト、問題のプログラム専用の単一のファイル、または複数の調整されたファイル、たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイルに記憶することができる。コンピュータプログラムは、1つのコンピュータ、または1つのサイトに配置されているか、複数のサイトに分散され、データ通信ネットワークによって相互接続されている複数のコンピュータにおいて実行されるように展開することができる。
【0111】
本明細書では、「データベース」という用語は、データの任意のコレクションを指すために広く使用されており、データは、特定の方法で構造化する必要はなく、構造化する必要もなく、また、データは、1つまたは複数の場所にあるストレージデバイスに記憶することができる。したがって、たとえば、インデックスデータベースは、データの複数のコレクションを含むことができ、コレクションの各々は、異なる方法で編成およびアクセスされ得る。
【0112】
同様に、本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされたソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用されている。一般に、エンジンは1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実装され、1つまたは複数の場所にある1つまたは複数のコンピュータにインストールされる。場合によっては、1つまたは複数のコンピュータが特定のエンジン専用になり、それ以外の場合は、複数のエンジンを同じ1つまたは複数のコンピュータにインストールして実行することができる。
【0113】
本明細書に記載のプロセスおよび論理フローは、入力データに対して操作して出力を生成することによって機能を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なコンピュータによって実行することができる。プロセスおよび論理フローはまた、FPGAやASICなどの専用論理回路によって、または専用論理回路と1つまたは複数のプログラムされたコンピュータの組合せによって実行することができる。
【0114】
コンピュータプログラムの実行に適したコンピュータは、汎用または専用のマイクロプロセッサ、あるいはその両方、または任意の他の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令とデータを受信する。コンピュータの重要な要素は、命令を実施または実行するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置とメモリは、専用論理回路によって補完または専用論理回路に組み込むことができる。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気、光磁気ディスク、または光ディスクを含むか、あるいはそこからデータを受信するか、またはそこにデータを転送するか、あるいはその両方を行うために動作可能に結合される。しかしながら、コンピュータにそのようなデバイスが必要なわけではない。さらに、コンピュータは、別のデバイス、たとえば、ほんの数例を挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブなどに埋め込むことができる。
【0115】
コンピュータプログラム命令およびデータを記憶するために適したコンピュータ可読媒体は、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【0116】
ユーザとの対話を提供するために、本明細書に記載の主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLDC(液晶ディスプレイ)モニタ、キーボードとポインティングデバイス、たとえば、ユーザがコンピュータに入力を提供することができるマウスまたはトラックボールなどを有するコンピュータ上に実装することができる。ユーザとの対話を提供するために他の種類のデバイスを使用することもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなど、任意の形態の感覚的フィードバックであってよく、また、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、たとえば、ウェブブラウザから受信したリクエストに応じて、ユーザのデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形式のメッセージをパーソナルデバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送信し、引換えにユーザから応答メッセージを受信することによって、ユーザと対話することができる。
【0117】
機械学習モデルを実装するためのデータ処理装置はまた、たとえば、機械学習のトレーニングまたは生産の一般的で計算集約型の部分、すなわち推論、ワークロードを処理するための専用ハードウェアアクセラレータユニットを含むことができる。
【0118】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、Apache MXNetフレームワークを使用して実装および展開することができる。
【0119】
本明細書に記載されている主題の実施形態は、たとえばデータサーバとしてバックエンドコンポーネントを含む、またはミドルウェアコンポーネント、たとえばアプリケーションサーバを含む、あるいはフロントエンドコンポーネント、たとえばグラフィカルユーザインターフェイス、ウェブブラウザ、またはユーザが本明細書に記載されている主題の実装形態と対話できるアプリを有するクライアントコンピュータ、あるいは1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを含む、コンピューティングシステムに実装することができる。システムのコンポーネントは、通信ネットワークなどのデジタルデータ通信の任意の形式または媒体によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)たとえば、インターネットを含む。
【0120】
コンピューティングシステムは、クライアントとサーバを含むことができる。クライアントとサーバは通常、互いにリモートであり、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータで実行され、クライアントとサーバの関係を相互に有するコンピュータプログラムによって発生する。いくつかの実施形態では、サーバは、たとえば、クライアントとして機能するデバイスと対話するユーザにデータを表示し、そこからユーザ入力を受信する目的で、データ、たとえば、HTMLページをユーザデバイスに送信する。ユーザの対話の結果など、ユーザデバイスにおいて生成されたデータは、デバイスからサーバにおいて受信することができる。
【0121】
本明細書は多くの特定の実装形態の詳細を含んでいるが、これらは、発明の範囲または請求される可能性のあるものの範囲に対する制限として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書に記載されている特定の特徴はまた、単一の実施形態において組み合わせて実装され得る。逆に、単一の実施形態の文脈において説明される様々な特徴はまた、複数の実施形態において別々に、または任意の適切なサブコンビネーションにおいて実装することができる。さらに、特徴は特定の組合せにおいて作用するものとして上で説明され、最初はそのように請求されても、請求された組合せからの1つまたは複数の特徴は、場合によっては、組合せから切り出されてよく、請求された組合せは、サブコンビネーションまたはサブコンビネーションの変形に向けられ得る。
【0122】
同様に、動作は図面に描かれ、特許請求の範囲に特定の順序において記載されているが、これは、望ましい結果を達成するために、そのような動作が示されている特定の順序または連続した順序で実行されること、あるいは図示されているすべての動作が実行されることを要求するものとして理解されるべきではない。特定の状況では、マルチタスクと並列処理が有利な場合がある。さらに、上記の実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージ化されてよいことが理解されるべきである。
【0123】
主題の特定の実施形態が説明されてきた。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に記載されているアクションは、異なる順序で実行することができ、依然として望ましい結果を達成することができる。一例として、添付の図面に示されているプロセスは、望ましい結果を達成するために、示されている特定の順序または連続した順序を必ずしも必要としない。場合によっては、マルチタスクと並列処理が有利な場合がある。
【符号の説明】
【0124】
100 ニューラルネットワークシステム
102 入力、入力シーケンス
104 入力シーケンス
110 注意ニューラルネットワーク
112 入力シーケンス
120 注意層
122 出力シーケンス
124 入力シーケンス
124 隠れ状態
128 隠れ状態
130 エピソード記憶
134 隠れ状態
138 隠れ状態
140 圧縮記憶
152 ネットワーク出力
160 圧縮エンジン
200 プロセス
300 プロセス
410 入力シーケンス
410 現在のシーケンス
420 エピソード記憶
430 圧縮記憶
図1
図2
図3
図4
【手続補正書】
【提出日】2022-05-24
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ニューラルネットワークを使用してネットワーク出力を生成するために、複数の入力位置の各々において、それぞれの入力を各々が有するネットワーク入力のシーケンスを処理するための方法であって、前記ニューラルネットワークが、入力位置ごとにそれぞれのアクティブ化を生成するために、前記複数の入力位置の各々にそれぞれの隠れ状態を含む層入力に注意メカニズムをそれぞれが適用する複数の注意層を有し、前記方法が、前記シーケンスにおける特定のネットワーク入力ごとに、
前記ニューラルネットワーク内の注意層ごとに、
前記シーケンス内の前記特定のネットワーク入力に先行する前のネットワーク入力の第1の部分について前記注意層によって処理されたそれぞれの隠れ状態を含む、対応するエピソード記憶データを維持するステップと、
前記シーケンス内の前のネットワーク入力の前記第1の部分に先行する前のネットワーク入力の第2の部分について前記注意層によって処理されたそれぞれの隠れ状態の圧縮表現を含む、対応する圧縮記憶データを維持するステップと、
前記ニューラルネットワークを使用した前記特定のネットワーク入力の前記処理中に、前記注意層によって処理される層入力を受信するステップと、
(i)前記層の前記圧縮記憶データ内の前記圧縮表現と、(ii)前記層の前記エピソード記憶データ内の前記隠れ状態と、(iii)前記層入力における入力位置ごとにそれぞれのアクティブ化を生成するための、前記特定のネットワーク入力における前記複数の入力位置の各々における前記それぞれの隠れ状態とに注意メカニズムを適用するステップと
を備える、方法。
【請求項2】
前記特定のネットワーク入力における入力位置ごとの前記それぞれの隠れ状態を含むように前記エピソード記憶データを更新するステップと、
前のネットワーク入力の前記第1の部分における最も初期のネットワーク入力の前記それぞれの隠れ状態の圧縮表現を含むように前記圧縮記憶データを更新するステップと
をさらに備える、請求項1に記載の方法。
【請求項3】
前のネットワーク入力の前記第1の部分における最も初期のネットワーク入力のそれぞれの隠れ状態の圧縮表現を含むように前記圧縮記憶データを更新するステップが、
圧縮率を決定するステップと、
圧縮表現を生成するために、前記圧縮率に従って、前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態を圧縮するステップと、
前記生成された圧縮表現を含むように前記圧縮記憶データを修正するステップと
を備える、請求項1または2に記載の方法。
【請求項4】
前記エピソード記憶データから、前のネットワーク入力の前記第1の部分における前記最も初期のネットワーク入力の前記それぞれの隠れ状態を削除するステップをさらに備える、請求項3に記載の方法。
【請求項5】
前記圧縮率に従って、前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態を圧縮するステップが、
前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前記圧縮率に等しいストライドで前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態とに最大プーリング関数を適用するステップを備える、請求項3または4に記載の方法。
【請求項6】
前記圧縮率に従って、前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態を圧縮するステップが、
前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前記圧縮率に等しいストライドで前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態とに平均プーリング関数を適用するステップを備える、請求項3または4に記載の方法。
【請求項7】
前記圧縮率に従って、前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態を圧縮するステップが、
前記最も初期のネットワーク入力および前のネットワーク入力の前記第2の部分における前記複数の入力位置に関連付けられるそれぞれのアクティブ化の重みの降順で、前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態とをソートするステップと、
前記最も初期のネットワーク入力における位置のそれぞれの隠れ状態と、最小のアクティブ化の重みに関連付けられる前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態を破棄するステップと
を備える、請求項3または4に記載の方法。
【請求項8】
前記圧縮率に従って、前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態を圧縮するステップが、
1D畳み込み関数のカーネルサイズを決定するステップと、
前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前記圧縮率に等しいストライドでおよび前記決定されたカーネルサイズに等しいカーネルサイズで前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態とに前記1D畳み込み関数を適用するステップと
を備える、請求項3または4に記載の方法。
【請求項9】
前記圧縮率に従って、前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態を圧縮するステップが、
前記最も初期のネットワーク入力の前記それぞれの隠れ状態と、前のネットワーク入力の前記第2の部分について前記注意層によって処理された前記それぞれの隠れ状態に、多層拡張1D畳み込み関数を適用するステップを備える、請求項3または4に記載の方法。
【請求項10】
前記特定のネットワーク入力が、前記シーケンス内の少なくともあらかじめ定められたしきい値数のネットワーク入力が先行する入力である、請求項1から9のいずれか一項に記載の方法。
【請求項11】
ネットワーク入力の前記あらかじめ定められたしきい値数より少ない数が先行する複数の以前のネットワーク入力の各々について、
前記ニューラルネットワーク内の注意層ごとに、
前記以前のネットワーク入力に先行する前のネットワーク入力の前記注意層によって処理されるそれぞれの隠れ状態を含む、対応するエピソード記憶データを維持するステップと、
前記ニューラルネットワークを使用した前記以前のネットワーク入力の処理中に、前記注意層によって処理される層入力を受信するステップと、
(i)前記層の前記エピソード記憶データにおける前記隠れ状態と、(ii)前記層入力における入力位置ごとにそれぞれのアクティブ化を生成するために、前記以前のネットワーク入力における前記複数の入力位置の各々における前記それぞれの隠れ状態に注意メカニズムを適用するステップと、
前記以前のネットワーク入力における入力位置ごとの前記それぞれの隠れ状態を含むように、エピソード記憶データを更新するステップと
をさらに備える、請求項10に記載の方法。
【請求項12】
ネットワーク入力の前記あらかじめ定められたしきい値数が、前記エピソード記憶データのサイズのあらかじめ定められたしきい値によって定義される、請求項10に記載の方法。
【請求項13】
前記特定のネットワーク入力における入力位置ごとの前記エピソード記憶データと前記それぞれの隠れ状態が、それぞれの多次元配列として表され、
前記特定のネットワーク入力における入力位置ごとの前記それぞれの隠れ状態を含むように前記エピソード記憶データを更新するステップが、
前記多次元配列の同じ次元に沿って2つの前記多次元配列を連結するステップを備える、請求項1から12のいずれか一項に記載の方法。
【請求項14】
前記ニューラルネットワークが、1つまたは複数の完全に接続された層、1つまたは複数の層正規化層、1つまたは複数のアクティブ化層、あるいは1つまたは複数の畳み込み層をさらに備える、請求項1から13のいずれか一項に記載の方法。
【請求項15】
ネットワークパラメータの現在の値を繰り返し更新するためにトレーニングデータにおいて前記ニューラルネットワークをトレーニングするステップをさらに備え、トレーニング中に、
2つの連続する更新ごとにトレーニングニューラルネットワーク入力の数を徐々に増加させる、請求項1から14のいずれか一項に記載の方法。
【請求項16】
トレーニング中に、(i)前記層の前記圧縮記憶データにおける前記圧縮表現、および(ii)前記層の前記エピソード記憶データにおける前記隠れ状態に停止勾配を適用するステップをさらに備える、請求項1から15のいずれか一項に記載の方法。
【請求項17】
1つまたは複数のコンピュータと、命令を記憶する1つまたは複数のストレージデバイスとを備え、前記命令が、前記1つまたは複数のコンピュータによって実行されたときに、前記1つまたは複数のコンピュータに、請求項1から16のいずれか一項に記載の方法を実行させるように動作可能である、システム。
【請求項18】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から16のいずれか一項に記載の方法を実行させる命令で符号化されたコンピュータストレージ媒体。
【国際調査報告】