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

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

▶ セールスフォース ドット コム インコーポレイティッドの特許一覧

<>
  • 特許-擬似リカレントニューラルネットワーク 図1
  • 特許-擬似リカレントニューラルネットワーク 図2
  • 特許-擬似リカレントニューラルネットワーク 図3
  • 特許-擬似リカレントニューラルネットワーク 図4
  • 特許-擬似リカレントニューラルネットワーク 図5
  • 特許-擬似リカレントニューラルネットワーク 図6
  • 特許-擬似リカレントニューラルネットワーク 図7
  • 特許-擬似リカレントニューラルネットワーク 図8
  • 特許-擬似リカレントニューラルネットワーク 図9
  • 特許-擬似リカレントニューラルネットワーク 図10
  • 特許-擬似リカレントニューラルネットワーク 図11
  • 特許-擬似リカレントニューラルネットワーク 図12
  • 特許-擬似リカレントニューラルネットワーク 図13
  • 特許-擬似リカレントニューラルネットワーク 図14
  • 特許-擬似リカレントニューラルネットワーク 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-24
(45)【発行日】2023-03-06
(54)【発明の名称】擬似リカレントニューラルネットワーク
(51)【国際特許分類】
   G06F 40/44 20200101AFI20230227BHJP
   G06N 3/044 20230101ALI20230227BHJP
   G06N 3/0464 20230101ALI20230227BHJP
   G06N 3/0499 20230101ALI20230227BHJP
【FI】
G06F40/44
G06N3/044
G06N3/0464
G06N3/0499
【請求項の数】 22
【外国語出願】
(21)【出願番号】P 2021103993
(22)【出願日】2021-06-23
(62)【分割の表示】P 2019522910の分割
【原出願日】2017-11-03
(65)【公開番号】P2021166073
(43)【公開日】2021-10-14
【審査請求日】2021-07-15
(31)【優先権主張番号】62/417,333
(32)【優先日】2016-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/418,075
(32)【優先日】2016-11-04
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/420,710
(32)【優先日】2017-01-31
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/420,801
(32)【優先日】2017-01-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】506332063
【氏名又は名称】セールスフォース インコーポレイテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ブラッドベリー,ジェームズ
(72)【発明者】
【氏名】メリティ,スティーブン,ジョセフ
(72)【発明者】
【氏名】ション,カイミング
(72)【発明者】
【氏名】ソーチャー,リチャード
【審査官】成瀬 博之
(56)【参考文献】
【文献】特許第6992064(JP,B2)
【文献】Fandong Meng et al.,Encoding Source Language with Convolutional Network for Machine Translation[online],2015年06月08日,pp.1-12,https://arxiv.org/pdf/1503.01838,[検索日2020年 9月29日],インターネット
【文献】Ramesh Nallapati et al.,Abstractive Text Summarization using Sequence-to-sequence RNNs and Beyond,2016年08月26日,pp.1-12,https://arxiv.org/pdf/1602.06023,[検索日2020年 9月29日],インターネット
【文献】Zhen Zuo et al.,Convolutional Recurrent Neural Networks: Learning Spatial Dependencies for Image Representation,Proceedings of the 2015 IEEE Conference on Computer Vision and Pattern Recognition Workshops (CVPRW),2015年,pp.18-26
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/20-40/58
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
複数の並列処理コア上で動作する、ニューラルネットワークシーケンス対シーケンスモデル化における計算効率を増加させる擬似リカレントニューラルネットワーク(QRNN)システムであって、
少なくとも1つのエンコーダ畳み込み層、少なくとも1つのエンコーダプーリング層、及び少なくとも1つのエンコーダ出力ゲートを含むQRNNエンコーダであり、
前記エンコーダ畳み込み層は、
エンコーダ入力ベクトルの複数の時系列の中のエンコーダ入力ベクトルの時系列のセット上のエンコーダ時系列ウィンドウ内のエンコーダ入力ベクトルの並列畳み込みのためのエンコーダ畳み込みフィルタバンク、及び
前記並列畳み込みに基づいて前記エンコーダ時系列ウィンドウの各々について前記エンコーダの畳み込みベクトルを同時に出力するエンコーダ畳み込みベクトル生成器、を含み、
前記エンコーダプーリング層は、前記エンコーダの前記畳み込みベクトルの成分の特徴値を順序位置ごとベースで同時に累算することにより各々連続したエンコーダ時系列ウィンドウについて順次生成される前記エンコーダの各状態ベクトル内の特徴和の順序付けられたセットの並列累算のための累算器を含み、
前記エンコーダ出力ゲートは、前記エンコーダの状態ベクトルに出力ゲートベクトルを適用し、それにより前記エンコーダの隠れ状態ベクトルを生成するエンコーダ隠れ状態生成器を含む、QRNNエンコーダと、
少なくとも1つのデコーダ畳み込み層、少なくとも1つのデコーダプーリング層、及び少なくとも1つの注目器を含むQRNNデコーダであり、
前記デコーダ畳み込み層は、
デコーダ入力ベクトルの複数の時系列の中のデコーダ入力ベクトルの時系列のセット上のデコーダ時系列ウィンドウ内のデコーダ入力ベクトルの並列畳み込みのためのデコーダ畳み込みフィルタバンク、及び
前記並列畳み込みに基づいて前記デコーダ時系列ウィンドウの各々について前記デコーダの畳み込みベクトルを同時に出力するデコーダ畳み込みベクトル生成器、を含み、
前記デコーダプーリング層は、前記デコーダの前記畳み込みベクトルの成分の特徴値を順序位置ごとベースで同時に累算することにより各々連続したデコーダ時系列ウィンドウについて順次生成される前記デコーダの各状態ベクトル内の特徴和の順序付けられたセットの並列累算のための累算器を含み、
前記注目器は、
前記エンコーダの前記隠れ状態ベクトルと前記デコーダの状態ベクトルとの間のペアごと類似度スコアを決定する状態比較器、
前記エンコーダ時系列ウィンドウに沿って生成された指数関数的に正規化された類似度スコアシーケンスによりスケーリングされた前記エンコーダの前記隠れ状態ベクトルの凸結合として前記エンコーダの前記隠れ状態ベクトルの文脈サマリを作成するエンコーディングミキサ、
前記文脈サマリと前記デコーダの前記状態ベクトルとを線形に射影するパーセプトロン、
前記線形に射影された文脈サマリ及び前記デコーダの状態ベクトルを結合する連結器、及び
前記結合された線形に射影された文脈サマリ及び前記デコーダの状態ベクトルに出力ゲートベクトルを適用し、それにより前記デコーダの隠れ状態ベクトルを生成するデコーダ出力ゲート、を含む、QRNNデコーダと、
を含むQRNNシステム。
【請求項2】
各畳み込みベクトルは、活性化ベクトル内及び1つ以上のゲートベクトル内の特徴値を、パラメータとして要素ごとの順序位置ベースで前記ゲートベクトル内の前記特徴値を前記活性化ベクトル内の前記特徴値にそれぞれ適用するために含む、請求項1に記載のQRNNシステム。
【請求項3】
各特徴和は、現在の時系列ウィンドウについて出力された前記活性化ベクトル内の所与の順序位置における特徴値と、前記現在の時系列ウィンドウについて出力された1つ以上のゲートベクトル内の前記所与の順序位置における1つ以上の特徴値と、前の時系列ウィンドウについて累算された状態ベクトル内の前記所与の順序位置における特徴和とに依存して前記累算器により累算される、請求項2に記載のQRNNシステム。
【請求項4】
最後のエンコーダ時系列ウィンドウについて前記エンコーダ隠れ状態生成器により生成された前記エンコーダの最後の隠れ状態ベクトルを用いて前記デコーダプーリング層への各入力を補足する補足器、をさらに含む請求項1乃至3のうちいずれか1項に記載のQRNNシステム。
【請求項5】
前記状態比較器は、前記エンコーダの前記隠れ状態ベクトルと前記デコーダの状態ベクトルとの間のペアごと類似度スコアを決定するためにドット積を使用する、請求項1乃至4のうちいずれか1項に記載のQRNNシステム。
【請求項6】
ゲートベクトルが忘却ゲートベクトルであり、各プーリング層は、前記前の時系列ウィンドウについて累算された前記状態ベクトルからの情報と前記現在の時系列ウィンドウについての前記活性化ベクトルからの情報との累算を制御するための、前記現在の時系列ウィンドウについての前記忘却ゲートベクトルを含む、請求項3に記載のQRNNシステム。
【請求項7】
ゲートベクトルが入力ゲートベクトルであり、各プーリング層は、前記現在の時系列ウィンドウについての前記活性化ベクトルからの情報の累算を制御するための、前記現在の時系列ウィンドウについての入力ゲートベクトルを含む、請求項3に記載のQRNNシステム。
【請求項8】
ゲートベクトルが出力ゲートベクトルであり、各プーリング層は、前記現在の時系列ウィンドウについての前記状態ベクトルからの情報の累算を制御するための、前記現在の時系列ウィンドウについての出力ゲートベクトルを含む、請求項3に記載のQRNNシステム。
【請求項9】
前記現在の時系列ウィンドウについての前記忘却ゲートベクトル内の前記所与の順序位置におけるそれぞれの特徴値が1であるよう要求することにより各畳み込み層及び各プーリング層を正則化し、それにより、前記前の時系列ウィンドウについて同時に累算された前記状態ベクトル内の所与の順序位置におけるそれぞれの特徴和に一致する前記現在の時系列ウィンドウについての前記状態ベクトル内の前記所与の順序位置における特徴和のランダムサブセットを生成する正則化器、をさらに含む請求項に記載のQRNNシステム。
【請求項10】
複数の並列処理コア上で動作する、ニューラルネットワークシーケンス対シーケンスモデル化における計算効率を増加させる擬似リカレントニューラルネットワーク(QRNN)システムであって、
QRNNエンコーダであり、
エンコーダ入力ベクトルの複数の時系列の中のエンコーダ入力ベクトルの時系列のセット上のエンコーダ時系列ウィンドウ内のエンコーダ入力ベクトルの並列畳み込みのための少なくとも1つのエンコーダ畳み込み層であり、それにより、前記エンコーダ時系列ウィンドウの各々について前記QRNNエンコーダの畳み込みベクトルを同時に出力する、エンコーダ畳み込み層、
各々連続したエンコーダ時系列ウィンドウについて順次生成される前記エンコーダの各状態ベクトル内の特徴和の順序付けられたセットの並列累算のための少なくとも1つのエンコーダプーリング層、及び
前記エンコーダの状態ベクトルに出力ゲートベクトルを適用し、それにより前記エンコーダの隠れ状態ベクトルを生成するエンコーダ隠れ状態生成器、を含むQRNNエンコーダと、
QRNNデコーダであり、
デコーダ入力ベクトルの複数の時系列の中のデコーダ入力ベクトルの時系列のセット上のデコーダ時系列ウィンドウ内のデコーダ入力ベクトルの並列畳み込みのための少なくとも1つのデコーダ畳み込み層であり、それにより、前記デコーダ時系列ウィンドウの各々について前記QRNNデコーダの畳み込みベクトルを同時に出力する、デコーダ畳み込み層、及び
各々連続したデコーダ時系列ウィンドウについて順次生成される前記デコーダの各状態ベクトル内の特徴和の順序付けられたセットの並列累算のための少なくとも1つのデコーダプーリング層、を含むQRNNデコーダと、
前記エンコーダの前記隠れ状態ベクトルの文脈サマリを前記デコーダの状態ベクトルと結合することにより前記デコーダの隠れ状態ベクトルを作成する注目器と、
含むQRNNシステム。
【請求項11】
前記注目器は、前記エンコーダの前記隠れ状態ベクトルと前記デコーダの前記隠れ状態ベクトルとの間のペアごと類似度スコアを決定する状態比較器をさらに含む、請求項1に記載のQRNNシステム。
【請求項12】
前記注目器は、前記エンコーダ時系列ウィンドウに沿って生成された指数関数的に正規化された類似度スコアシーケンスによりスケーリングされた前記エンコーダの前記隠れ状態ベクトルの凸結合として前記エンコーダの前記隠れ状態ベクトルの前記文脈サマリを作成するエンコーディングミキサをさらに含む、請求項10又は11に記載のQRNNシステム。
【請求項13】
前記注目器は、前記文脈サマリと前記デコーダの前記状態ベクトルとを線形に射影するパーセプトロンをさらに含む、請求項1乃至1のうちいずれか1項に記載のQRNNシステム。
【請求項14】
前記注目器は、前記線形に射影された文脈サマリ及び前記デコーダの状態ベクトルを結合する連結器をさらに含む、請求項1に記載のQRNNシステム。
【請求項15】
前記注目器は、前記結合された線形に射影された文脈サマリ及び前記デコーダの状態ベクトルに出力ゲートベクトルを適用し、それにより前記デコーダの前記隠れ状態ベクトルを生成するデコーダ出力ゲートをさらに含む、請求項1に記載のQRNNシステム。
【請求項16】
ューラルネットワークシーケンス対シーケンスモデル化における計算効率を増加させる、コンピュータにより実現される方法であって、
エンコーダを使用し、エンコーダ入力ベクトルの複数の時系列の中のエンコーダ入力ベクトルの時系列のセット上のエンコーダ時系列ウィンドウ内のエンコーダ入力ベクトルを並列に畳み込んで前記エンコーダ時系列ウィンドウの各々について前記エンコーダの畳み込みベクトルを同時に出力し、各々連続したエンコーダ時系列ウィンドウについて順次生成される前記エンコーダの各状態ベクトル内の特徴和の順序付けられたセットを並列に累算し、前記エンコーダの状態ベクトルに出力ゲートベクトルを適用して前記エンコーダの隠れ状態ベクトルを生成するステップと、
デコーダを使用し、デコーダ入力ベクトルの複数の時系列の中のデコーダ入力ベクトルの時系列のセット上のデコーダ時系列ウィンドウ内のデコーダ入力ベクトルを並列に畳み込んで前記デコーダ時系列ウィンドウの各々について前記デコーダの畳み込みベクトルを同時に出力し、各々連続したデコーダ時系列ウィンドウについて順次生成される前記デコーダの各状態ベクトル内の特徴和の順序付けられたセットを並列に累算するステップと、
前記エンコーダの前記隠れ状態ベクトルの文脈サマリを前記デコーダの前記状態ベクトルと結合することにより前記デコーダの隠れ状態ベクトルを作成するステップと、
含む方法。
【請求項17】
複数の並列処理コア上で動作する、ニューラルネットワークに基づくシーケンス対シーケンス分類タスクの訓練及び推論段階の間の計算速度を増加させる擬似リカレントニューラルネットワーク(QRNN)システムであって、
少なくとも1つのエンコーダ畳み込み層、少なくとも1つのエンコーダプーリング層、及び少なくとも1つのエンコーダ出力ゲートを含むQRNNエンコーダであり、
前記エンコーダ畳み込み層は、
エンコーダ入力ベクトルの複数の時系列の中のエンコーダ入力ベクトルの時系列のセット上のエンコーダ時系列ウィンドウ内のエンコーダ入力ベクトルの並列畳み込みのためのエンコーダ畳み込みフィルタバンク、及び
前記並列畳み込みに基づいて前記エンコーダ時系列ウィンドウの各々について前記エンコーダの畳み込みベクトルを同時に出力するエンコーダ畳み込みベクトル生成器、を含み、
前記エンコーダプーリング層は、前記エンコーダの前記畳み込みベクトルの成分の特徴値を順序位置ごとベースで同時に累算することにより各々連続したエンコーダ時系列ウィンドウについて順次生成される前記エンコーダの各状態ベクトル内の特徴和の順序付けられたセットの並列累算のための累算器を含み、
前記エンコーダ出力ゲートは、前記エンコーダの状態ベクトルに出力ゲートベクトルを適用し、それにより前記エンコーダの隠れ状態ベクトルを生成するエンコーダ隠れ状態生成器を含む、QRNNエンコーダと、
少なくとも1つのデコーダ畳み込み層、少なくとも1つのデコーダプーリング層、及び少なくとも1つの注目器を含むQRNNデコーダであり、
前記デコーダ畳み込み層は、
デコーダ入力ベクトルの複数の時系列の中のデコーダ入力ベクトルの時系列のセット上のデコーダ時系列ウィンドウ内のデコーダ入力ベクトルの並列畳み込みのためのデコーダ畳み込みフィルタバンク、及び
前記並列畳み込みに基づいて前記デコーダ時系列ウィンドウの各々について前記デコーダの畳み込みベクトルを同時に出力するデコーダ畳み込みベクトル生成器、を含み、
前記デコーダプーリング層は、前記デコーダの前記畳み込みベクトルの成分の特徴値を順序位置ごとベースで同時に累算することにより各々連続したデコーダ時系列ウィンドウについて順次生成される前記デコーダの各状態ベクトル内の特徴和の順序付けられたセットの並列累算のための累算器を含み、
前記注目器は、
前記エンコーダの前記隠れ状態ベクトルと前記デコーダの状態ベクトルとの間のペアごと類似度スコアを決定する状態比較器、
前記エンコーダ時系列ウィンドウに沿って生成された指数関数的に正規化された類似度スコアシーケンスによりスケーリングされた前記エンコーダの前記隠れ状態ベクトルの凸結合として前記エンコーダの前記隠れ状態ベクトルの文脈サマリを作成するエンコーディングミキサ、
前記文脈サマリと前記デコーダの前記状態ベクトルとを線形に射影するパーセプトロン、
前記線形に射影された文脈サマリ及び前記デコーダの状態ベクトルを結合する連結器、及び
前記結合された線形に射影された文脈サマリ及び前記デコーダの状態ベクトルに出力ゲートベクトルを適用し、それにより前記デコーダの隠れ状態ベクトルを生成するデコーダ出力ゲート、を含む、QRNNデコーダと、
前記デコードされた隠れ状態ベクトルを使用してシーケンス対シーケンス分類タスクを実行する分類器と、
を含むQRNNシステム。
【請求項18】
前記シーケンス対シーケンス分類タスクは機械翻訳である、請求項17に記載のQRNNシステム。
【請求項19】
前記シーケンス対シーケンス分類タスクは発話認識である、請求項17に記載のQRNNシステム。
【請求項20】
前記シーケンス対シーケンス分類タスクはテキスト・ツー・スピーチ合成である、請求項17に記載のQRNNシステム。
【請求項21】
前記シーケンス対シーケンス分類タスクは質問応答である、請求項17に記載のQRNNシステム。
【請求項22】
前記シーケンス対シーケンス分類タスクは抽象テキスト要約である、請求項17に記載のQRNNシステム。
【発明の詳細な説明】
【技術分野】
【0001】
[他の出願の相互参照]
本出願は、2016年11月4日に出願された米国仮特許出願第62/417,333号「QUASI-RECURRENT NEURAL NETWORKS」(Atty. Docket No. SALE 1180-1/1946PROV)の利益を主張する。この優先仮出願はすべての目的に対しここで参照により援用される。
【0002】
本出願は、2016年11月4日に出願された米国仮特許出願第62/418,075号「QUASI-RECURRENT NEURAL NETWORKS」(Atty. Docket No. SALE 1180-2/1946PROV2)の利益を主張する。この優先仮出願はすべての目的に対しここで参照により援用される。
【0003】
本出願は、2017年1月31日に出願された米国非仮特許出願第15/420,710号「QUASI-RECURRENT NEURAL NETWORK」(Atty. Docket No. SALE 1180-3/1946US)の利益を主張する。この優先非仮出願はすべての目的に対しここで参照により援用される。
【0004】
本出願は、2017年1月31日に出願され「QUASI-RECURRENT NEURAL NETWORK BASED ENCODER-DECODER MODEL」と題された米国非仮特許出願第15/420,801号(Atty. Docket No. SALE 1180-4/1946US2)の利益を主張する。この優先非仮出願はすべての目的に対しここで参照により援用される。
【0005】
[開示される技術の分野]
開示される技術はディープニューラルネットワークを使用する自然言語処理(NLP)に一般に関し、詳細にはNLPタスクにおける計算効率を増加させる擬似リカレントニューラルネットワーク(QRNN)に関する。
【背景技術】
【0006】
本セクションで論じられる対象事項は、単に本セクションにおけるその言及の結果として従来技術であると仮定されるべきでない。同様に、本セクションで言及され又は背景技術として提供された対象事項に関連づけられる問題は、従来技術において前に認識されたことがあると仮定されるべきでない。本セクションにおける対象事項は異なる手法を表すに過ぎず、該手法これら自体もまた請求される技術の実装に対応し得る。
【0007】
リカレントニューラルネットワーク(Recurrent neural networks、RNN)は順次的データをモデル化するのに強力なツールであるが、各時間ステップの計算の前の時間ステップの出力への依存が並列性を制限し、かなり長いシーケンスに対してRNNを扱いにくくしている。開示される技術は、時間ステップにわたり並列に適用する畳み込み層と特徴次元にわたり並列に適用するミニマリスト再帰(recurrent)プーリング層とを交互にする擬似リカレントニューラルネットワーク(quasi-recurrent neural network、QRNN)を提供する。
【0008】
訓練可能な再帰層がないにもかかわらず、スタックされたQRNNは、同じ隠れサイズのスタックされた長短期記憶ネットワーク(long short-term memory networks、LSTM)より良い予測精度を有する。その増加した並列性に起因して、これらは訓練及びテスト時間において最大16倍速い。言語モデル化、センチメント分類、及びキャラクタレベルニューラル機械翻訳における実験がこれらの利点を例証しており、様々なシーケンスタスクのための基本構築ブロックとしてのQRNNの実行可能性を強調している。
【図面の簡単な説明】
【0009】
図面において、同様の参照符号は異なる図を通して同様の部分を一般に参照する。また、図面は必ずしも縮尺どおりでなく、代わりに、開示される技術の原理を例示することに重点が一般に置かれる。以下の説明において、開示される技術の様々な実装が以下の図面を参照して説明される。
図1】自然言語処理(NLP)タスクにおける計算効率を増加させる擬似リカレントニューラルネットワーク(QRNN)の態様を示す。
図2】入力ベクトルの時系列上で並列に動作し畳み込みベクトルを同時に出力する畳み込み層の一実装を示す。
図3】活性化ベクトルと忘却ゲートベクトルと入力ゲートベクトルと出力ゲートベクトルとを含む畳み込みベクトルの一実装を表す。
図4】畳み込み層により同時に出力される活性化ベクトルとゲートベクトルとを含む複数の畳み込みベクトルの一実装である。
図5】畳み込み層により同時に出力される活性化ベクトル及びゲートベクトル内の順序位置における特徴値の一実装を示す。
図6】状態ベクトル内の特徴和の順序付けられたセットを同時に累算するために並列に累算器を適用し連続した状態ベクトルを順次出力する単一ゲートプーリング層の一実装である。
図7】状態ベクトル内の特徴和の順序付けられたセットを同時に累算するために並列に累算器を適用し連続した状態ベクトルを順次出力するマルチゲートプーリング層の一実装を示す。
図8】プーリング層により順次出力された連続した状態ベクトルの一実装を表す。
図9】擬似リカレントニューラルネットワーク(QRNN)エンコーダ‐デコーダモデルの一実装である。
図10】センチメント分類タスクにおけるQRNNの精度比較を示す表である。
図11】QRNNの状態ベクトルの視覚化の一実装を示す。
図12】言語モデル化タスクにおけるQRNNの精度比較を示す表を表す。
図13】言語翻訳タスクにおけるQRNNの精度比較を示す表である。
図14】QRNNの訓練速度及び推論速度を示すチャートを表す。
図15】擬似リカレントニューラルネットワーク(QRNN)を実装するために使用できるコンピュータシステムの簡略ブロック図である。
【発明を実施するための形態】
【0010】
以下の議論は、当業者が開示される技術を創作及び使用できるように提示され、特定の用途及びその要件の文脈において提供される。開示の実装に対する様々な変更が当業者に容易に明らかになり、本明細書で定義される一般的原理は、開示される技術の主旨及び範囲から逸脱することなく他の実装及び用途に適用され得る。ゆえに、開示される技術は図示される実装に限定されることは意図されず、本明細書に開示される原理及び特徴と一致する最も広い範囲を与えられるべきである。
【0011】
議論は以下のとおり編成される。まず、QRNNにより対処される問題のいくつかを説明する導入が提示される。次いで、時間ステップごと並列性を実現する畳み込み層が説明され、特徴次元ごと並列性を実現するプーリング層が後に続く。次に、QRNNエンコーダ‐デコーダモデルが論じられる。最後、様々なNLPタスクにおけるQRNNの性能を示すいくつかの実験結果が提供される。
【0012】
[導入]
長短期記憶(LSTM)などのゲート付きバリアントを含むリカレントニューラルネットワーク(RNN)は、シーケンスモデル化タスクに対するディープラーニング手法では標準のモデルアーキテクチャになっている。RNNは、訓練可能なパラメータを有する関数を隠れ状態に繰り返し適用する。
【0013】
再帰層はスタックされることもでき、ネットワーク深さ、表現力、及びしばしば精度を増加させる。自然言語ドメインにおけるRNN適用は、センテンス分類からワードレベル及びキャラクタレベル言語モデル化に及ぶ。RNNは一般に、機械翻訳又は質問応答などのタスクに対するより複雑なモデルのための基本構築ブロックでもある。
【0014】
RNNにおいて、各時間ステップにおける計算は前の時間ステップからの結果に依存する。この理由に起因し、LSTMを含むRNNは、ドキュメントの異なる部分についての特徴又は状態の計算が並列に生じ得ないため、ドキュメント分類又はキャラクタレベル機械翻訳などのかなり長いシーケンスを伴うタスクを扱うのに、それらの能力に制限される。
【0015】
畳み込みニューラルネットワーク(CNN)は、画像データを伴うタスクにおいてより一般的だが、シーケンスエンコーディングタスクにも適用されている。こうしたモデルは、入力シーケンスに沿ったウィンドウと並列に時不変フィルタ関数を適用する。CNNは、しばしばキャラクタレベル言語データでみられるものなどの長いシーケンスに対する増加した並列性とより良いスケーリングとを含む、再帰モデルに対するいくつかの利点を有する。シーケンス処理のための畳み込みモデルは、ハイブリットアーキテクチャにおいてRNN層と組み合わせられたときにより成功しており、なぜならば、複数時間ステップにわたる畳み込み特徴を結合することに対する従来のマックスプーリング及び平均プーリング手法は時間不変性を仮定しており、ゆえに大規模シーケンス順序情報のフルの使用ができないからである。
【0016】
開示される技術は、RNN及びCNNのような標準モデルの欠点に対処する擬似リカレントニューラルネットワーク(QRNN)を提供する。QRNNは、時間ステップ及び特徴次元の双方にわたり並列計算を可能にし、長いシーケンスの高いスループットと良いスケーリングとを可能にする。RNNのように、QRNNは出力がシーケンス内の要素の全体順序に依存することを可能にする。QRNNは、ドキュメントレベルセンチメント分類と言語モデル化とキャラクタレベル機械翻訳とを含む、いくつかの自然言語タスクに合わせられる。QRNNは、すべての3つのタスクにおいて強いLSTMベースラインを上回ると同時に、計算時間を劇的に低減させる。
【0017】
直感的に、長いシーケンスのセマンティックの多くの態様が文脈不変であり、並列に(例えば畳み込みで)計算できるが、いくつかの態様は長距離の文脈を必要とし、再帰的に(recurrently)計算されなければならない。多くの既存のニューラルネットワークアーキテクチャは、文脈情報を利用するのに失敗するか、あるいは並列性を利用するのに失敗する。QRNNは並列性及び文脈の双方を活用し、畳み込み及びリカレント双方のニューラルネットワークからの利点を提示する。QRNNは、これらがより少ないパラメータを使用し実質的により高速に動作するとしても、等しい隠れサイズのLSTMに基づくモデルより良い予測精度を有する。
【0018】
タスクにわたり、並びにワード及びキャラクタ双方のレベルにおいて、速度及び精度の利点が矛盾なく残ることを実験が示している。CNN及びRNN双方に対する拡張がQRNNに直接適用可能であり、一方、モデルの隠れ状態は、そのチャネルが複数時間ステップにわたり該チャネルの独立性を維持するとき、他の再帰アーキテクチャのものよりさらに解釈可能である。したがって、従来のRNNで前に実行不可能であった長いシーケンスのタスクのための構築ブロックの役割をQRNNが果たす機会が生じる。
【0019】
図1は、QRNN100の計算構造を示す。QRNN100は2種類のコンポーネント又は層、すなわち畳み込み層(102、106など)及びプーリング層(104、108など)を含む。畳み込み層102、106は、複数シーケンスミニバッチ及び複数時間ステップにわたりフルに並列な計算を可能にする。プーリング層104、108は、訓練可能パラメータがなく、複数シーケンスミニバッチ及び複数特徴次元にわたりフルに並列な計算を適用する。図1において、プーリング層104、108の連続的ブロックは、特徴次元に沿って並列に動作するパラメータなし関数を示す。
【0020】
図1は、サブQRNN110、112をさらに示す。サブQRNN110は、少なくとも1つの畳み込み層102及び少なくとも1つのプーリング層104を含む。サブQRNN112は、少なくとも1つの畳み込み層106及び少なくとも1つのプーリング層108を含む。他の実装において、サブQRNN110、112の各々が、任意数の畳み込み層(例えば、2つ、3つ、又はそれ以上)及び任意数のプーリング層(例えば、2つ、3つ、又はそれ以上)を含む。さらに他の実装において、QRNN100は1つ以上のサブQRNNを含んでよい。
【0021】
いくつかの実装において、QRNN100は、シーケンス内で最も低いサブQRNNからシーケンス内で最も高いサブQRNNまで配置されたサブQRNNのシーケンスを含む。本明細書で使用されるとき、シーケンスに配置された複数のサブQRNNを有するQRNNは、「スタックQRNN(stacked QRNN)」と呼ばれる。QRNN100などのスタックQRNNは、受信した入力データをシーケンス内のサブQRNNの各々を通じて処理して入力データの代替表現を作成する。さらに、サブQRNN110、112などのサブQRNNは、入力として、シーケンス内の先行サブQRNNにより作成された先行出力を受信する。受信されるこれらのステップは、サブQRNNの入力受信器(例えば、入力受信器144)により具現化される。例えば、図1において、第2のサブQRNN112の第2の畳み込み層106は、入力として、第1のサブQRNN110の先行する第1のプーリング層104からの出力を処理する。対照的に、第1のサブQRNN110の第1の畳み込み層102は、入力として、高次元埋め込み空間にマッピングされた埋め込みベクトル(例えば、ワードベクトル、キャラクタベクトル、フレーズベクトル)を取得する。ゆえに、いくつかの実装において、様々な入力が、スタックされたQRNNの異なるQRNNに、及び/又はサブQRNN内の異なるコンポーネント(例えば、畳み込み層、プーリング層)に提供される。
【0022】
さらに、QRNN100は、先行サブQRNNからの出力を畳み込み層を通じて処理して先行出力の代替表現を生成する。次いで、QRNN100は、代替表現をプーリング層を通じて処理して出力を生成する。例えば、図1において、第2のサブQRNN112は、第2の畳み込み層106を使用して第1のサブQRNN110の第1のプーリング層104からの先行出力114を畳み込む。該畳み込みは代替表現116を生成し、これは第2のサブQRNN112の第2のプーリング層108によりさらに処理されて、出力118を生成する。
【0023】
いくつかの実装において、QRNN100は、サブQRNN間及び/又はサブQRNN内の層間のスキップ接続をさらに含む。120、122、124などのスキップ接続は、先行層の出力を現在の層の出力と連結し、該連結を続きの層に入力として提供する。サブQRNNの層間のスキップ接続の一例において、スキップ接続120は、第1のサブQRNN110の第1の畳み込み層102の出力126を第1のサブQRNN110の第1のプーリング層104の出力128と連結する。該連結は次いで、第2のサブQRNN112の第2の畳み込み層106に入力として提供される。サブQRNN間のスキップ接続の一例において、スキップ接続122は、第1のサブQRNN110の第1の畳み込み層102の出力126を第2のサブQRNN112の第2の畳み込み層106の出力130と連結する。該連結は次いで、第2のサブQRNN112の第2のプーリング層108に入力として提供される。同様に、スキップ接続124は、第1のサブQRNN110の第1のプーリング層104の出力128を第2のサブQRNN112の第2の畳み込み層106の出力130と連結する。該連結は次いで、第2のサブQRNN112の第2のプーリング層108に入力として提供される。
【0024】
シーケンス分類タスクについて、QRNN100はあらゆるQRNN層間のスキップ接続を含み、これは「密接続(dense connections)」と本明細書において呼ばれる。一実装において、QRNN100は、入力埋め込みとあらゆるQRNN層との間、及びQRNN層のあらゆるペア間の密接続を含む。これは、結果として生じる状態ベクトルを次の層に供給する前に、QRNN100が各QRNN層の入力をその出力に特徴次元に沿って連結することを結果としてもたらす。最後の層の出力は次いで、全体エンコーディング結果として使用される。
【0025】
[QRNN畳み込み層 ‐ 時間ステップ並列性]
図2は、QRNN畳み込み層200の動作の一実装を示す。図2は、入力シーケンス
【数1】
内のn個の要素を表すd次元入力ベクトルx,...,x,...,xを示す。入力ベクトルx,...,x,...,xは、n個の時間ステップ上でそれぞれ生成される。一実装において、入力シーケンスは、n個のワードを有するワードレベル入力シーケンスである。別の実装において、入力シーケンスは、n個のキャラクタを有するキャラクタレベル入力シーケンスである。さらに別の実装において、入力シーケンスは、n個のフレーズを有するフレーズレベル入力シーケンスである。入力ベクトルx,...,x,...,xは、「埋め込み空間(embedding space)」と本明細書において呼ばれる高次元ベクトル空間にマッピングされる。埋め込み空間は、埋め込み行列
【数2】
を使用して定義され、ここで、vは語彙のサイズを表す。実装において、埋め込み空間は、ワード埋め込み空間、キャラクタ埋め込み空間、又はフレーズ埋め込み空間であってよい。いくつかの実装において、入力ベクトルx,...,x,...,xは、GloVe及びword2vecのような事前訓練された埋め込みモデルを使用して初期化される。さらに他の実装において、入力ベクトルはワンホット(one-hot)エンコーディングに基づく。
【0026】
QRNN畳み込み層200は、b個のフィルタのバンクを用いて入力ベクトルx,...,x,...,x上でm個の時系列ウィンドウへの並列畳み込みを実行して、m個の畳み込みベクトルy,...,y,...,yのシーケンス
【数3】
を同時に出力する。ζdは各畳み込みベクトルの次元数であり、ζは次元数拡大(dimensionality augmentation)パラメータを識別する。同時畳み込みベクトルを生成するこれらのステップは、畳み込み層の畳み込みベクトル生成器(例えば、畳み込みベクトル生成器212)により具現化される。拡大のこれらステップは、畳み込み層の次元数拡大器(例えば、次元数拡大器214)により具現化される。本明細書で使用されるとき、「時間ステップ又は時系列次元にわたる並列性」又は「時間ステップ又は時系列並列性」は、QRNN畳み込み層200がm個の時系列ウィンドウ上で入力ベクトルx,...,x,...,xに対して並列に畳み込みフィルタバンクを適用してm個の畳み込みベクトルy,...,y,...,yを同時に生成することを参照する。
【0027】
実装において、同時に生成される畳み込みベクトルy,...,y,...,yの次元数は、畳み込みフィルタバンク内の畳み込みフィルタの数に依存して、入力ベクトルx,...,x,...,xの次元数に相対して拡大される。ゆえに、次元数拡大パラメータζは畳み込みフィルタバンク内の畳み込みフィルタの数に比例的に依存し、それにより、ζd=bである。例えば、入力ベクトルx,...,x,...,xの次元数が100であり、すなわちd=100であり、畳み込みフィルタバンクが200個の畳み込みフィルタを含み、すなわちb=200である場合、同時に出力される畳み込みベクトルy,...,y,...,yの次元数は200であり、すなわちζd=200及びζ=2である。他の実装において、畳み込みフィルタバンク(例えば、畳み込みフィルタバンク210)は様々な数の畳み込みフィルタで構成され、それにより、同時に出力される畳み込みベクトルの次元数ζdは300、400、500、800、又は任意の他の数である。
【0028】
図3は、活性化ベクトルz 302と忘却ゲートベクトルf 304と入力ゲートベクトルi 306と出力ゲートベクトルo 308とを含む、畳み込みベクトルy 208の一実装を表す。実装において、畳み込みベクトルは、活性化ベクトルと1つ以上のゲートベクトルとの任意の組み合わせを含んでよい。例えば、一実装において、畳み込みベクトル208は、活性化ベクトル302及び忘却ゲートベクトル304を含む。別の実装において、畳み込みベクトル208は、活性化ベクトル302、忘却ゲートベクトル304、及び入力ゲートベクトル306を含む。さらに別の実装において、畳み込みベクトル208は、活性化ベクトル302、忘却ゲートベクトル304、及び出力ゲートベクトル308を含む。
【0029】
実装において、畳み込みベクトル208内のゲートベクトルの数は畳み込みベクトルの次元数ζdに依存して構成され、それにより、ζd次元は、畳み込みベクトルの活性化ベクトルと1つ以上のゲートベクトルとの間で比例的に分離される。一例において、畳み込みベクトルy 208について、ζd=400である場合、活性化ベクトルz 302と忘却ゲートベクトルf 304と入力ゲートベクトルi 306と出力ゲートベクトルo 308とはすべて、同じ次元数d=100を有する。別の例において、次元数ζd=200の畳み込みベクトルについて、畳み込みベクトルは活性化ベクトル及び1つのみのゲートベクトル(例えば、忘却ゲートベクトル)を含み、各々の次元数d=100である。さらに別の例において、次元数ζd=300の畳み込みベクトルについて、畳み込みベクトルは活性化ベクトル及び2つのゲートベクトル(例えば、忘却ゲートベクトルと出力ゲートベクトル、又は忘却ゲートベクトルと入力ゲートベクトル)を含み、各々の次元数d=100である。
【0030】
図4は、QRNN畳み込み層200により同時に出力される、活性化ベクトル及びゲートベクトルを含む、複数の畳み込みベクトルy,...,y,...,yの一実装である。図4は、第1の時系列ウィンドウについてQRNN畳み込み層200により作成された畳み込みベクトルy 202を示す。畳み込みベクトルy 202は、活性化ベクトルz 402と忘却ゲートベクトルf 404と入力ゲートベクトルi 406と出力ゲートベクトルo 408とを含む。同様に、QRNN畳み込み層200は、第mの時系列ウィンドウについて、畳み込みベクトルy 208を生成する。
【0031】
いくつかの実装において、入力シーケンスの次の要素の予測を含むタスクに有用であるために、畳み込みフィルタは、いかなる所与の時間ステップについての計算も将来の時間ステップからの情報にアクセスすることを可能にしてはならない。すなわち、幅kのフィルタでは、各畳み込みベクトルyは、入力ベクトルxt-k+1乃至xにのみ依存する。こうした畳み込み動作は、「マスク畳み込み(masked convolution)」と本明細書において呼ばれる。一実装において、マスク畳み込みは、入力を畳み込みフィルタのサイズ引く1だけ左にパディングすることにより適用される。
【0032】
同時に生成される畳み込みベクトルy,...,y,...,yは、1つ以上のQRNNプーリング関数を実現するためにQRNNプーリング層により使用される活性化ベクトル及びゲートベクトルを提供する。一実装において、QRNNプーリング層により使用される前に、活性化ベクトル及びゲートベクトルは前処理を受ける。一実装において、前処理は、活性化ベクトルを双曲線正接非線形活性化(hyperbolic tangent nonlinearity activation)(tanh)に通すことを含む。一実装において、前処理は、ゲートベクトルを要素ごとシグモイド非線形活性化(elementwise sigmoid nonlinearity activation)(σ)に通すことを含む。各時間ステップウィンドウにおいて忘却ゲートベクトルf及び出力ゲートベクトルoを必要とするQRNNプーリング関数について、対応するQRNN畳み込み層における計算は以下の数式により定義される。
【数4】
ここで、各々が
【数5】
における活性化ベクトルW、W、及びWは、畳み込みフィルタバンクであり、*は時間ステップ次元に沿ったマスク畳み込みを表す。
【0033】
一例示的な実装において、畳み込みフィルタのフィルタ幅が2であるとき、活性化ベクトル及びゲートベクトルはLSTM様のゲートを表し、以下の数式により定義される。
【数6】
ここで、活性化ベクトルzと忘却ゲートベクトルfと入力ゲートベクトルiと出力ゲートベクトルoとは、それぞれの畳み込みフィルタ重み行列W 、W 、W 、W 、W 、W 、W 、W を入力ベクトルxt-1及びxに適用することにより同時に生成される。
【0034】
他の実装において、より大きい幅の畳み込みフィルタが、各時間ステップウィンドウにおいてより高いnグラム(n-gram)の特徴を計算するために使用される。実装において、より大きい幅はキャラクタレベルタスクに特に効果的である。
【0035】
[QRNNプーリング層‐QRNNプーリング関数]
QRNNプーリング層は様々なQRNNプーリング関数を実現する。QRNNプーリング関数は、対応するQRNN畳み込み層により提供される1つ以上のゲートベクトルにより制御される。ゲートベクトルは、複数の時間ステップウィンドウにわたり状態ベクトルを混合すると同時に、状態ベクトルの各要素に対して独立して動作する。実装において、QRNNプーリング関数は、LSTMセルの要素ごとゲートから構築される。他の実装において、QRNNプーリング関数は、入力ゲートなし(no input gate、NIG)バリアント、忘却ゲートなし(no forget gate、NFG)バリアント、出力ゲートなし(no output gate、NOG)バリアント、入力活性化関数なし(no input activation function、NIAF)バリアント、出力活性化関数なし(no output activation function、NOAF)バリアント、結合入力忘却ゲート(coupled input-forget gate、CIFG)バリアント、及びフルゲートリカレント(full gate recurrent、FGR)バリアントなどの、LSTMのバリアントに基づいて構築される。さらに他の実装において、QRNNプーリング関数は、ゲート付きリカレントユニット(gated recurrent unit、GRU)、又は任意の他タイプのRNN、又は任意の他の従来の若しくは将来開発されるニューラルネットワークの動作に基づいて構築される。
【0036】
[f‐プーリング]
単一のゲートベクトルを使用する、「f‐プーリング」と本明細書において呼ばれるQRNNプーリング関数の一実装を定義する以下の数式を考える。
【数7】
ここで、
は現在の状態ベクトルであり、
は現在の忘却状態ベクトルであり、
t-1は前の状態ベクトルであり、
は現在の活性化状態ベクトルであり、
【数8】
は要素ごと乗算又はアダマール積を表す。
【0037】
状態ベクトルに関して、現在の状態ベクトルcは、現在の活性化ベクトルzの過去の状態ベクトルct-1との統合である。現在の活性化ベクトルzは現在の畳み込みベクトルyにより識別され、これは入力ベクトルx,...,xt+k-1の現在の時系列ウィンドウ上の畳み込みから導出され、ここで、kは畳み込みフィルタサイズ又は幅である。擬人的には、現在の状態ベクトルcは、現在畳み込まれる入力ベクトルウィンドウx,...,xt+k-1を過去の状態ベクトルct-1と結合又は混合するレシピが分かり、現在の入力ベクトルウィンドウx,...,xt+k-1を文脈的過去に照らして要約する。ゆえに、現在の活性化ベクトルz及び過去の状態ベクトルct-1は、現在の入力ベクトルウィンドウx,...,xt+k-1の態様を含む現在の状態ベクトルcを作成するために使用される。
【0038】
忘却ゲートベクトルに関して、現在の忘却ゲートベクトルfは、過去の状態ベクトルct-1のうちどれほどが現在の状態ベクトルcの計算に有用であるかの評価を行う。さらに、現在の忘却ゲートベクトルfは、現在の活性化ベクトルzのうちどれほどが現在の状態ベクトルcの計算に有用であるかの評価も提供する。
【0039】
[fo‐プーリング]
いくつかの実装において、忘却ゲートベクトルに追加で出力ゲートベクトルを使用するQRNNプーリング関数は「fo‐プーリング」と本明細書において呼ばれ、以下の数式により定義される。
【数9】
ここで、
は現在の隠れ状態ベクトルであり、
は現在の出力状態ベクトルであり、
は現在の状態ベクトルであり、
【数10】
は要素ごと乗算又はアダマール積を表す。
【0040】
現在の状態ベクトルcは、必ずしも保存される必要がない情報を含んでよい。現在の出力ゲートベクトルoは、現在の状態ベクトルcのうちどの部分が公開され又は現在の隠れ状態ベクトルhに存在する必要があるかに関する評価を行う。
【0041】
[ifo‐プーリング]
複数のゲートベクトルを使用する、「ifo‐プーリング」と本明細書において呼ばれるQRNNプーリング関数の一実装を定義する以下の数式を考える。
【数11】
ここで、
は現在の状態ベクトルであり、
は現在の忘却状態ベクトルであり、
t-1は前の状態ベクトルであり、
は現在の入力状態ベクトルであり、
は現在の活性化状態ベクトルであり、
【数12】
は要素ごと乗算又はアダマール積を表す。
【0042】
入力ゲートベクトルに関して、現在の状態ベクトルcを作成するために、現在の入力ゲートベクトルiは、現在の活性化ベクトルzの重要度と、延長上では現在の入力ベクトルウィンドウx,...,xt+k-1の重要度とを考慮に入れる。入力ゲートベクトルiは、現在の入力のうちどれほどが保存するに値するかのインジケータであり、ゆえに、現在の状態ベクトルcをゲート制御するために使用される。
【0043】
したがって、擬人的には、数式(3)は、現在の忘却ゲートベクトルfのアドバイスを取得して過去の状態ベクトルct-1のうちどれほどが忘却されるべきかを決定することと、現在の入力ゲートベクトルiのアドバイスを取得して現在の活性化ベクトルzのうちどれほどが考慮に入れられるべきかを決定することと、2つの結果を合計して現在の状態ベクトルcを生成することとを含む。
【0044】
[QRNNプーリング層‐特徴次元並列性]
QRNNプーリング層は、f‐プーリング、fo‐プーリング、及びifo‐プーリングなどの1つ以上のQRNNプーリング関数を使用して、m個の時系列ウィンドウの各々について状態ベクトルを算出する。各状態ベクトルは複数の要素を含む。状態ベクトルの各要素は「特徴和(feature sum)」と本明細書において呼ばれる。状態ベクトルの各特徴和は、状態ベクトル内の対応する順序位置により識別される。
【0045】
図8に表される状態ベクトルシーケンスCを考える。シーケンスCは状態ベクトルc,...,cを含む。一例において、第1の時系列ウィンドウについての状態ベクトルc 802は、以下の、100個の特徴和の順序付けられたセットを含む。
,...,c 100
ここで、上付き文字は、特定の状態ベクトル内の所与の特徴和の順序位置を識別し、下付き文字は、特定の状態ベクトルと、延長上ではさらに特定の時系列ウィンドウとを識別する。
【0046】
同様に、第mの時系列ウィンドウについての状態ベクトルc 804もまた、100個の特徴和c ,...,c 100の順序付けられたセットを含む。
【0047】
状態ベクトル内の特徴和又は要素の数は、状態ベクトルの次元数dに比例的に依存する。ゆえに、状態ベクトルc 802が100の次元数を有する、すなわちd=100であるため、それは100個の特徴和を有する。さらに、状態ベクトルの次元数dは、状態ベクトルを算出するために使用される活性化ベクトル及びゲートベクトルの次元数に依存する。実装において、活性化ベクトル、ゲートベクトル、及び結果として生じる状態ベクトルは、同じ次元数dを共有する。
【0048】
典型的に、所与の入力シーケンスについてQRNNプーリング層により生成されるすべての状態ベクトルは、同じ次元数dを共有する。ゆえに、図8に示されるように、状態ベクトルc,...,cは同数の特徴和又は要素を有し、各特徴和は各状態ベクトル内の対応する順序位置により識別される。
【0049】
状態ベクトルのように、活性化ベクトル及びゲートベクトルもまた複数の要素を含む。活性化ベクトルの各要素は「特徴値」と本明細書において呼ばれる。同様に、ゲートベクトルの各要素もまた「特徴値」と本明細書において呼ばれる。活性化ベクトルの各特徴値は活性化ベクトル内の対応する順序位置により識別される。同様に、ゲートベクトルの各特徴値はゲートベクトル内の対応する順序位置により識別される。
【0050】
図5に戻り、図5は、z,...,z活性化ベクトルの活性化ベクトルシーケンスZと、f,...,f忘却ゲートベクトルの忘却ゲートベクトルシーケンスFと、i,...,i入力ゲートベクトルの入力ゲートベクトルシーケンスIと、o,...,o出力ゲートベクトルの出力ゲートベクトルシーケンスOとを示す。上記で論じられたように、QRNN畳み込み層200は、シーケンスZ、F、I、及びO内のすべての活性化ベクトル及びゲートベクトルを同時に出力する。
【0051】
一例において、第1の時系列ウィンドウについての活性化ベクトルz 402は、以下の、100個の特徴値の順序付けられたセットを含む。
,...,z 100
ここで、上付き文字は、特定の活性化ベクトル内の所与の特徴値の順序位置を識別し、下付き文字は、特定の活性化ベクトルと、延長上ではさらに特定の時系列ウィンドウとを識別する。
【0052】
同様に、第mの時系列ウィンドウについての図3における活性化ベクトルz 302もまた、100個の特徴値z ,...,z 100の順序付けられたセットを含む。
【0053】
別の例において、第1の時系列ウィンドウについての忘却ゲートベクトルf 404は、以下の、100個の特徴値の順序付けられたセットを含む。
,...,f 100
ここで、上付き文字は、特定の忘却ゲートベクトル内の所与の特徴値の順序位置を識別し、下付き文字は、特定の忘却ゲートベクトルと、延長上ではさらに特定の時系列ウィンドウとを識別する。
【0054】
同様に、第mの時系列ウィンドウについての忘却ゲートベクトルf 304もまた、100個の特徴値f ,...,f 100の順序付けられたセットを含む。
【0055】
さらに別の例において、第1の時系列ウィンドウについての入力ゲートベクトルi 406は、以下の、100個の特徴値の順序付けられたセットを含む。
,...,i 100
ここで、上付き文字は、特定の入力ゲートベクトル内の所与の特徴値の順序位置を識別し、下付き文字は、特定の入力ゲートベクトルと、延長上ではさらに特定の時系列ウィンドウとを識別する。
【0056】
同様に、第mの時系列ウィンドウについての入力ゲートベクトルi 306もまた、100個の特徴値i ,...,i 100の順序付けられたセットを含む。
【0057】
さらに別の例において、第1の時系列ウィンドウについての出力ゲートベクトルo 408は、以下の、100個の特徴値の順序付けられたセットを含む。
,...,o 100
ここで、上付き文字は、特定の出力ゲートベクトル内の所与の特徴値の順序位置を識別し、下付き文字は、特定の出力ゲートベクトルと、延長上ではさらに特定の時系列ウィンドウとを識別する。
【0058】
同様に、第mの時系列ウィンドウについての出力ゲートベクトルo 308もまた、100個の特徴値o ,...,o 100の順序付けられたセットを含む。
【0059】
本明細書で使用されるとき、「特徴次元にわたる並列性」又は「特徴並列性」は、畳み込みベクトルの特徴上で、すなわち畳み込みベクトルにより生成されるそれぞれの活性化ベクトルと1つ以上のゲートベクトルとの中の対応する特徴値上で並列に動作して、特徴和の順序付けられたセットを状態ベクトル内に同時に累算するQRNNプーリング層を参照する。特徴和の累算は、f‐プーリング、fo‐プーリング、及びifo‐プーリングなどの1つ以上のQRNNプーリング関数に基づいてよい。要素ごとの累算は、ゲートベクトル内の特徴値が要素ごとに順序位置により活性化ベクトル内の特徴値にそれぞれ適用するパラメータの役割を果たすことを含む。
【0060】
単一ゲートQRNNプーリング層600により実現されるf‐プーリングに基づく、図6における特徴並列性の一例を考える。QRNNプーリング層600はf‐プーリングを「順序位置ごとに」以下の数式を使用して適用することに留意する。
【数13】
ここで、すべてのシンボルについてのペアは行列の2つの次元上の動作を示し、
【数14】
は連続した時系列ウィンドウ上の動作を表し、
【数15】
は並列化可能な順序位置上の動作を表し、
は現在の状態ベクトルc内のj順序位置における特徴和であり、
は現在の忘却ゲートベクトルf内のj順序位置における特徴値であり、
t-1 は前の状態ベクトルct-1内のj順序位置における特徴値であり、
は現在の活性化ベクトルz内のj順序位置における特徴値であり、
・は乗算を表す。
【0061】
数式(4)は、現在の時系列ウィンドウtについての状態ベクトルc内の所与の順序位置jの特徴和c を、前の時系列ウィンドウt-1についての状態ベクトルct-1内の同じ順序位置jにおける特徴和ct-1 と、現在の時系列ウィンドウtについての忘却ゲートベクトルf内の同じ順序位置jにおける特徴値f と、現在の時系列ウィンドウtについての忘却ゲートベクトルz内の同じ順序位置jにおける特徴値z とに依存して計算することを含む。
【0062】
したがって、擬人的には、数式(4)において、現在の忘却ゲートベクトルの各特徴値は、現在の活性化ベクトルからのそれぞれの特徴値と前の状態ベクトルからのそれぞれの特徴和との順序位置ごとの累算を制御する。ゆえに、図6において、特徴和c は、特徴和c と特徴値f と特徴値z とに依存して累算される。同様に、特徴和c は、特徴和c と特徴値f と特徴値z とに依存して累算される。同様に、特徴和c 100は、特徴和c 100と特徴値f 100と特徴値z 100とに依存して累算される。実装において、第1の状態ベクトルcの特徴和は、ゼロに、又は事前訓練された値に、又は活性化ベクトルの特徴値に依存した値に初期化されてよい。
【0063】
特徴並列性に関し、現在の時系列状態ベクトルcについて、QRNNプーリング層600は、累算器(例えば、累算器602)を並列に適用して、数式(4)に従って状態ベクトルc内のすべての順序位置
【数16】
についての特徴和を同時に累算する。ゆえに、図6において、第1の時系列ウィンドウについての状態ベクトルc 802の特徴和c ,...,c 100は並列に累算される。同様に、第2の時系列ウィンドウについての状態ベクトルcの特徴和c ,...,c 100は並列に累算される。同様に、第mの時系列ウィンドウについての状態ベクトルc 804の特徴和c ,...,c 100は並列に累算される。
【0064】
さらに、QRNNプーリング層600は、m個の時系列ウィンドウの中の各々連続した時系列ウィンドウ
【数17】
について、状態ベクトルc,...,cを順次出力する。状態ベクトルを順次出力するこれらのステップは、QRNN100の出力生成器(例えば、出力生成器604)により具現化される。
【0065】
マルチゲートプーリング層700により実現されるifo‐プーリングに基づく、図7における特徴並列性の別の例を考える。QRNNプーリング層700はifo‐プーリングを「順序位置ごとに」以下の数式を使用して適用することに留意する。
【数18】
ここで、すべてのシンボルについてのペアは行列の2つの次元上の動作を示し、
【数19】
は連続した時系列ウィンドウ上の動作を表し、
【数20】
は並列化可能な順序位置上の動作を表し、
は現在の状態ベクトルc内のj順序位置における特徴和であり、
は現在の忘却ゲートベクトルf内のj順序位置における特徴値であり、
t-1 は前の状態ベクトルct-1内のj順序位置における特徴値であり、
は現在の入力ゲートベクトルi内のj順序位置における特徴値であり、
は現在の活性化ベクトルz内のj順序位置における特徴値であり、
・は乗算を表す。
【0066】
数式(5)は、現在の時系列ウィンドウtについての状態ベクトルc内の所与の順序位置jの特徴和c を、前の時系列ウィンドウt-1についての状態ベクトルct-1内の同じ順序位置jにおける特徴和ct-1 と、現在の時系列ウィンドウtについての忘却ゲートベクトルf内の同じ順序位置jにおける特徴値f と、現在の時系列ウィンドウtについての入力ゲートベクトルi内の同じ順序位置jにおける特徴値i と、現在の時系列ウィンドウtについての忘却ゲートベクトルz内の同じ順序位置jにおける特徴値z とに依存して計算することを含む。
【0067】
したがって、擬人的には、数式(5)において、現在の忘却ゲートベクトルの各特徴値は、前の状態ベクトルからのそれぞれの特徴和の順序位置ごとの累算を制御し、現在の入力ゲートベクトルの各特徴値は、現在の活性化ベクトルからのそれぞれの特徴値の累算を順序位置ごとに制御する。ゆえに、図7において、特徴和c は、特徴和c と特徴値f と特徴値i と特徴値z とに依存して累算される。同様に、特徴和c は、特徴和c と特徴値f と特徴値i と特徴値z とに依存して累算される。同様に、特徴和c 100は、特徴和c 100と特徴値f 100と特徴値i 100と特徴値z 100とに依存して累算される。実装において、第1の状態ベクトルcの特徴和は、ゼロに、又は事前訓練された値に、又は活性化ベクトルの特徴値に依存した値に初期化されてよい。
【0068】
特徴並列性に関し、現在の時系列状態ベクトルcについて、QRNNプーリング層700は、累算器を並列に適用して、数式(5)に従って状態ベクトルc内のすべての順序位置
【数21】
についての特徴和を同時に累算する。ゆえに、図7において、第1の時系列ウィンドウについての状態ベクトルc 802の特徴和c ,...,c 100は並列に累算される。同様に、第2の時系列ウィンドウについての状態ベクトルcの特徴和c ,...,c 100は並列に累算される。同様に、第mの時系列ウィンドウについての状態ベクトルc 804の特徴和c ,...,c 100は並列に累算される。
【0069】
さらに、QRNNプーリング層700は、m個の時系列ウィンドウの中の各々連続した時系列ウィンドウ
【数22】
について、状態ベクトルc,...,cを順次出力する。
【0070】
ゆえに、単一のQRNNプーリング層は入力依存プーリングを実行し、畳み込み特徴のゲート付き線形結合が後に続く。QRNNプーリング関数の再帰部分は入力シーケンス内の各時間ステップについてQRNNプーリング層により算出されるが、特徴次元に沿ったQRNNプーリング層の並列性は、実際には、長い入力シーケンス上にQRNNプーリング関数を実現することが無視できる量の計算時間を要することを意味する。
【0071】
一実装において、QRNNは、現在の時系列ウィンドウについての状態ベクトル内の所与の順序位置における特徴和のランダムサブセットが、前の時系列ウィンドウについて同時に累算された状態ベクトル内の所与の順序位置におけるそれぞれの特徴和を複製するよう要求することにより、正則化される(regularized)。これは、現在の時系列ウィンドウについての忘却ゲートベクトル内の所与の順序位置におけるそれぞれの特徴値が1(unity)であるよう要求することにより達成される。
【0072】
[QRNNエンコーダ‐デコーダモデル]
図9は、ニューラルネットワークのシーケンス対シーケンス(sequence-to-sequence)モデル化において計算効率を増加させるQRNNエンコーダ‐デコーダモデル900の一実装である。モデル900は、QRNNエンコーダ及びQRNNデコーダを含む。QRNNエンコーダは、1つ以上のエンコーダ畳み込み層(902、906など)及び1つ以上のエンコーダプーリング層(904、908など)を含む。少なくとも1つのエンコーダ畳み込み層(902など)が、エンコーダ入力ベクトルの時系列を受信し、時系列ウィンドウについてエンコードされた畳み込みベクトルを同時に出力する。さらに、少なくとも1つのエンコーダプーリング層(904又は908など)が、時系列ウィンドウについてエンコードされた畳み込みベクトルを受信し、現在の時系列ウィンドウについてのエンコードされた状態ベクトル内の特徴和の順序付けられたセットを同時に累算し、時系列ウィンドウの中の各々連続した時系列ウィンドウについてエンコードされた状態ベクトル(922a、922b、又は922cなど)を順次出力する。
【0073】
QRNNデコーダは、1つ以上のデコーダ畳み込み層(914、918など)及び1つ以上のデコーダプーリング層(916、920など)を含む。少なくとも1つのデコーダ畳み込み層(914など)は、デコーダ入力ベクトルの時系列を受信し、時系列ウィンドウについてデコードされた畳み込みベクトルを同時に出力する。少なくとも1つのデコーダプーリング層(916、920など)が、最後の時系列ウィンドウについてエンコーダプーリング層(904又は908など)により出力されたエンコードされた状態ベクトル(910又は912など)とそれぞれ連結された時系列ウィンドウについてのデコードされた畳み込みベクトル(915a、915b、915cなど)を受信し、現在の時系列ウィンドウについてのデコードされた状態ベクトル内の特徴和の順序付けられたセットを同時に累算し、時系列ウィンドウの中の各々連続した時系列ウィンドウについてデコードされた状態ベクトル(924a、924b、924cなど)を順次出力する。ゆえに、各デコーダQRNN層の畳み込み関数の出力は、あらゆる時間ステップにおいて最後のエンコーダ隠れ状態で補足される(supplemented)。これは、層lについての畳み込みの結果(例えば、
【数23】
における、W *X)をブロードキャストで層lの最後のエンコーダ状態の線形に射影された(linearly projected)コピー(例えば、
【数24】
における、
【数25】
)に加算することにより達成される(910又は912など)。デコーダプーリング層入力を補足するこれらのステップは、QRNN100の補足器(例えば、補足器934)により具現化される。
【0074】
QRNNエンコーダ‐デコーダモデル900の活性化ベクトル及びゲートベクトルは、以下の数式により定義される。
【数26】
ここで、チルダは、
【数27】
がエンコーダ変数であることを表す。
【0075】
次いで、状態比較器が、エンコードされた状態ベクトル(922a、922b、又は922cなど)とデコードされた状態ベクトル(924a、924b、又は924cなど)との間の言語類似度を(例えば、ドット積又は内積又は双線形積を使用して)算出して、エンコーディングごと及びデコーディングごとの軸を有するアフィニティ行列926を生成する。言語類似度を算出するこれらのステップは、注目(attention)エンコーダ/注目器(attender)938の状態比較器(例えば、状態比較器940)により具現化される。次に、ソフトマックスなどの指数関数的正規化器(exponential normalizer)928が、アフィニティ行列926をエンコーディングごとに正規化して、以下に定義されるようにそれぞれのエンコーディング対デコーディング(encoding-to-decoding)注目重みαstを生成する。
【数28】
【0076】
次いで、エンコーディングミキサ(例えば、注目エンコーダ/注目器938のエンコーディングミキサ942)が、エンコードされた状態ベクトル(922a、922b、又は922cなど)をエンコーディング対デコーディング注目重みとそれぞれ結合して、以下に定義されるようにエンコードされた状態ベクトルのそれぞれの文脈サマリkを作成する。
【数29】
【0077】
最後、注目エンコーダが、デコードされた状態ベクトル(924a、924b、924cなど)をエンコードされた状態ベクトルのそれぞれの文脈サマリとそれぞれ結合して、時系列ウィンドウの各々についての注目エンコーディングを生成する。一実装において、注目エンコーダは多層パーセプトロンであり、該多層パーセプトロンは、デコードされた状態ベクトルとエンコードされた状態ベクトルのそれぞれの文脈サマリとの連結を非線形射影に射影して、時系列ウィンドウの各々についての注目エンコーディングを生成する。
【0078】
いくつかの実装において、エンコードされた状態ベクトル(922a、922b、又は922cなど)は、エンコードされた畳み込みベクトルの出力ゲートベクトル(例えば、注目エンコーダ/注目器938のデコーダ出力ゲート948)をそれぞれ乗算されて、それぞれのエンコードされた隠れ状態ベクトルを生成する。こうした実装において、状態比較器は、エンコードされた隠れ状態ベクトルとデコードされた状態ベクトルとの間の言語類似度を(例えば、ドット積又は内積又は双線形積を使用して)算出して、エンコーディングごと及びデコーディングごとの軸を有するアフィニティ行列を生成する。さらに、こうした実装において、エンコーディングミキサは、エンコードされた隠れ状態ベクトルをエンコーディング対デコーディング注目重みとそれぞれ結合して、エンコードされた隠れ状態ベクトルのそれぞれの文脈サマリを作成する。さらに、こうした実装において、注目エンコーダは、デコードされた状態ベクトルをエンコードされた隠れ状態ベクトルのそれぞれの文脈サマリとそれぞれ結合し、該結合をデコードされた畳み込みベクトルのそれぞれの出力ゲートベクトルとさらに乗算して、時系列ウィンドウの各々についての注目エンコーディングを生成する。一実装において、注目エンコーダは多層パーセプトロンであり、該多層パーセプトロンは、デコードされた状態ベクトルとエンコードされた隠れ状態ベクトルのそれぞれの文脈サマリとの連結を非線形射影に射影し、線形射影930をデコードされた畳み込みベクトルのそれぞれの出力ゲートベクトル932とさらに乗算して、以下に定義されるように時系列ウィンドウの各々についての注目エンコーディングを生成する。
【数30】
ここで、Lは最後の層である。線形射影のこれらステップは、注目エンコーダ/注目器938の線形パーセプトロン944により具現化される。連結のこれらステップは、注目エンコーダ/注目器938の連結器946により具現化される。
【0079】
注目手順の第1のステップはシーケンス長における二次方程式であるが、実際には、それは、簡素且つ高度に並列なドット積スコア付け関数に起因して、モデルの線形及び畳み込み層より有意により少ない計算時間を要する。
【0080】
開示される技術の他の実装が、指数関数的正規化器と異なる、該正規化器に追加で、及び/又は該正規化器と組み合わせで正規化器を使用することを含む。いくつかの例が、シグモイドに基づく正規化器(例えば、マルチクラスシグモイド、区分ランプ)、双曲線正接に基づく正規化器、正規化線形ユニット(rectified linear unit、ReLU)に基づく正規化器、識別に基づく正規化器、ロジスティックに基づく正規化器、正弦に基づく正規化器、余弦に基づく正規化器、ユニット和(unit sum)に基づく正規化器、及びステップに基づく正規化器を含む。他の例が、階層ソフトマックス(hierarchical softmax)、差別化ソフトマックス(differentiated softmax)、重点サンプリング(importance sampling)、雑音対比推定(noise contrastive estimation)、ネガティブサンプリング(negative sampling)、ゲート付きソフトマックス(gated softmax)、球形ソフトマックス(spherical softmax)、テイラーソフトマックス(Taylor softmax)、及びスパースマックス(sparsemax)を含む。さらに他の実装において、任意の他の従来の又は将来開発される正規化器が使用されてよい。
【0081】
[実験結果]
QRNNは、3つの異なる自然言語処理(NLP)タスク、すなわちドキュメントレベルセンチメント分類、言語モデル化、及びキャラクタに基づくニューラルネットワーク機械翻訳において、等しい状態ベクトルサイズのLSTMに基づくモデルを上回ると同時に、計算速度を劇的に改善する。状態ベクトルを使用して異なるNLPタスクを実行するこれらのステップは、QRNN100の分類器(例えば、分類器806)又はQRNNエンコーダ‐デコーダモデル900の翻訳器950により具現化される。
【0082】
図10は、一般的なドキュメントレベルセンチメント分類ベンチマーク、IMDbムービーレビューデータセットについての、センチメント分類タスクにおけるQRNNの精度比較を示す表である。該データセットは、25,000の肯定的レビュー及び25,000の否定的レビューのバランスのとれたサンプルを含み、等サイズの訓練及びテストセットに分割され、231ワードの平均ドキュメント長を有する。一実装において、層あたり256ユニット、及び300次元の大文字小文字区別されたGloVe埋め込みを使用して初期化されたワードベクトルを有する、4層の密接続されたアーキテクチャを有するQRNNが、ホールドアウト開発(held-out development)に対して最良の性能を達成している。
【0083】
図11は、IMDbデータセットからの例の一部における最後のQRNN層の隠れ状態ベクトルの視覚化の一実装を示し、時間ステップが垂直軸に沿う。いかなる後処理もなくとも、隠れ状態における変化が可視であり、入力に関して解釈可能である。これは、隠れ状態の異なるチャネル間の直接の相互作用を次のQRNN層の計算まで遅延させる、再帰プーリング関数の要素ごとの性質の結果である。
【0084】
図11において、色はニューロン活性化を表す。最初の肯定的発言「この映画は単純にゴージャスだ」(時間ステップ9においてグラフから外れる)の後、時間ステップ117が(「主な弱点はそのストーリーである」の直後に)フレーズ「必ずしも悪いストーリーではない」に起因してほとんどの隠れ状態のリセットをトリガする。時間ステップ158においてのみ、「あなたがゲームをプレーしたことがないとしても私はこの映画を皆に薦める」の後、隠れユニット回復を行う。
【0085】
図12は、言語モデル化タスクにおけるQRNNの精度比較を示す表を表す。実験は、ペンツリーバンク(Penn Treebank、PTB)の標準の前処理されたバージョンを使用している。図12は、ペンツリーバンク言語モデル化タスクの検証及びテストセットにおける単一モデルの難局を示す。より低いのがより良い。「中間(Medium)」は、層あたり640又は650個の隠れユニットを有する2層ネットワークを参照する。すべてのQRNNモデルが、いくつかの実装において、埋め込みに及び層間に0.5のドロップアウトを含む。MCは、テスト時間におけるモンテカルロ(Monte Carlo)ドロップアウト平均を参照する。
【0086】
図12に示されるように、QRNNは、異なるタイプのLSTMを強く上回る。これは、再帰において構造的正則化を提供するLSTMの再帰重みに相対してQRNNのプーリング層が有する効率的な計算キャパシティに起因する。
【0087】
図13は、言語翻訳タスクにおけるQRNNの精度比較を示す表である。QRNNエンコーダ‐デコーダモデルは、フルにキャラクタレベルのセグメント化を適用する、チャレンジングなニューラルネットワーク機械翻訳タスク、IWSLT ドイツ語‐英語口語ドメイン翻訳で評価される。このデータセットは、筆記されたTED及びTEDxプレゼンテーションからの並列な訓練データの209,772シーケンスペアを含み、ドイツ語について103キャラクタ、英語について93の平均センテンス長を有する。
【0088】
QRNNエンコーダ‐デコーダモデルは、層あたり320ユニット、ドロップアウト又はL2正則化なし、及び最大5の大きさへの勾配再スケーリングを有する4層エンコーダ‐デコーダQRNNを使用して、開発セット(TED.tst2013)に対して最良の性能を達成する。図13は、QRNNエンコーダ‐デコーダモデルがキャラクタレベルのLSTMを上回り、ワードレベルの注目ベースラインの性能にほぼ一致することを示す。
【0089】
図14は、QRNNの訓練速度及び推論速度を示すチャートを表す。図14において左側には、105個の時間ステップの20個の例のバッチにおける2層640ユニットPTB LMの訓練速度が示されている。「RNN」及び「ソフトマックス」はフォワード及びバックワード時間を含み、一方で、「最適化オーバーヘッド」は勾配クリッピング、L2正則化、及びSGD計算を含む。図14は右側には、所与のバッチサイズ及びシーケンス長を有するデータについての、320ユニットQRNN層の、等サイズのcuDNN LSTM層に対する推論速度の利点を示す。訓練結果は同様である。
【0090】
[サンプルコード]
以下のサンプルコードはQRNN100の一実装を示す。
(外1)

(外2)

(外3)

(外4)

(外5)

【0091】
[具体的な実装]
擬似リカレントニューラルネットワーク(QRNN)のためのシステム、方法、及び製造品を我々は説明する。実装の1つ以上の特徴が、基本の実装と組み合わせられてよい。相互排他的でない実装は、結合可能であることが教示される。実装の1つ以上の特徴が、他の実装と組み合わせられてよい。本開示は、これらの選択肢をユーザに周期的に注意する。これらの選択肢を繰り返す記載の、いくつかの実装からの省略は、前のセクションにおいて教示された組み合わせを制限するものとみなされるべきでない。これらの記載は、以後参照により以下の実装の各々にここで援用される。
【0092】
この具体的な実装のセクションにおいて、QRNN100及びQRNNエンコーダ‐デコーダモデル900の前に説明されたモジュール又はコンポーネント、例えば畳み込み層、プーリング層、及び注目エンコーダなどは、代わりに、その動作原理又はQRNN100又はQRNNエンコーダ‐デコーダモデル900を変更することなくより小さいモジュール化されたモジュール又はコンポーネントを使用して説明される。
【0093】
この具体的な実装のセクション内のモジュールは、ハードウェア又はソフトウェアにおいて実現でき、この具体的な実装のセクションで論じられるのと正確に同じ方法で分割される必要はない。モジュールのいくつかが、異なるプロセッサ又はコンピュータ上で実現され、あるいは複数の異なるプロセッサ又はコンピュータ間で分散されてもよい。さらに、モジュールのいくつかが、達成される機能に影響することなく、組み合わせられ、並列に、又はこの具体的な実装のセクションで論じられるシーケンスと異なるシーケンスで動作し得ることが十分理解されるであろう。さらに、本明細書で使用されるとき、用語「モジュール」は「サブモジュール」を含んでよく、サブモジュールはそれら自体、モジュールを構成すると本明細書において考えられてよい。例えば、畳み込みフィルタバンク210、畳み込みベクトル生成器212、及び次元数拡大器214は、畳み込み層200のサブモジュールであると本明細書において考えられてよい。別の例において、状態比較器940、エンコーディングミキサ942、線形パーセプトロン944、連結器946、及びデコーダ出力ゲート948は、注目エンコーダ又は注目器938のサブモジュールであると本明細書において考えられてよい。別の例において、状態ベクトル内の要素の順序及び文脈情報をエンコードするエンコーダは、プーリング層のサブモジュールであると本明細書において考えられてよい。この具体的な実装で論じられるモジュールは、方法におけるフローチャートステップと考えられてもよい。モジュールもまた、必ずしもすべてのそのコードをメモリに連続して配置させる必要はない。コードのいくつかの部分がコードの他の部分から分離され、他のモジュール又は他の機能からのコードが間に配置されてよい。
【0094】
[QRNN]
一実装において、開示される技術は、擬似リカレントニューラルネットワーク(略称QRNN)システムを提示する。QRNNシステムは、多数の並列処理コア上で動作する。QRNNシステムは、ニューラルネットワークに基づくシーケンス分類タスクの訓練及び推論段階の間の計算速度を増加させる。
【0095】
QRNNシステムは、畳み込み層、プーリング層、出力生成器(例えば、出力生成器604)、及び分類器(例えば、分類器806)を含む。
【0096】
畳み込み層は、入力ベクトルの複数の時系列の中の入力ベクトルの時系列のセット上の時系列ウィンドウ内の入力ベクトルの並列畳み込みのための畳み込みフィルタバンクを含む。畳み込み層は、並列畳み込みに基づいて時系列ウィンドウの各々についての畳み込みベクトルを同時に出力する畳み込みベクトル生成器をさらに含む。各畳み込みベクトルは、活性化ベクトル内及び1つ以上のゲートベクトル内の特徴値を含み、ゲートベクトル内の特徴値は、要素ごとに順序位置により活性化ベクトル内の特徴値にそれぞれ適用するパラメータである。
【0097】
プーリング層は、畳み込みベクトルの成分の特徴値を順序位置ごとベースで同時に累算することによる現在の時系列ウィンドウについての状態ベクトル内の特徴和の順序付けられたセットの並列累算のための累算器(例えば、累算器602)を含む。各特徴和は、現在の時系列ウィンドウについて出力された活性化ベクトル内の所与の順序位置における特徴値と、現在の時系列ウィンドウについて出力された1つ以上のゲートベクトル内の所与の順序位置における1つ以上の特徴値と、前の時系列ウィンドウについて累算された状態ベクトル内の所与の順序位置における特徴和とに依存して、累算器により累算される。
【0098】
出力生成器は、各々連続した時系列ウィンドウにおいて、プーリング層によりプーリングされた状態ベクトルを順次出力する。
【0099】
分類器は、出力生成器により生成される連続した状態ベクトルを使用してシーケンス分類タスクを実行する。
【0100】
このシステムの実装及び開示される他のシステムは、以下の特徴のうち1つ以上を任意選択で含む。システムは、開示される方法と関連して説明される特徴を含んでもよい。簡潔さのために、システムの特徴の代替的な組み合わせは個々に列挙されない。システム、方法、及び製造品に適用可能な特徴は、基本の特徴の各法定分類セットについて繰り返されない。本セクションにおいて識別される特徴が他の法定分類における基本の特徴と如何に容易に組み合わせられ得るかを読み手は理解するであろう。
【0101】
QRNNシステムは、畳み込みフィルタバンク内の畳み込みフィルタの数に依存して、入力ベクトルの次元数に相対して畳み込みベクトルの次元数を拡大する次元数拡大器をさらに含む。
【0102】
入力ベクトルは、入力シーケンスの要素を表してよい。プーリング層は、状態ベクトル内の要素の順序及び文脈情報をエンコードするエンコーダ(例えば、エンコーダ142、146)を含んでよい。エンコードするこれらのステップは、プーリング層のエンコーダ(例えば、エンコーダ142、146)により具現化される。
【0103】
いくつかの実装において、入力シーケンスはワードレベルシーケンスであってよい。他の実装において、入力シーケンスはキャラクタレベルシーケンスであってよい。
【0104】
ゲートベクトルは忘却ゲートベクトルであってよい。こうした実装において、プーリング層は、現在の時系列ウィンドウについての忘却ゲートベクトルを使用して、前の時系列ウィンドウについて累算された状態ベクトルからの情報と現在の時系列ウィンドウについての活性化ベクトル内の情報との累算を制御してよい。
【0105】
ゲートベクトルは入力ゲートベクトルであってよい。こうした実装において、プーリング層は、現在の時系列ウィンドウについての入力ゲートベクトルを使用して、現在の時系列ウィンドウについての活性化ベクトルからの情報の累算を制御してよい。
【0106】
ゲートベクトルは出力ゲートベクトルであってよい。こうした実装において、プーリング層は、現在の時系列ウィンドウについての出力ゲートベクトルを使用して、現在の時系列ウィンドウについての状態ベクトルからの情報の累算を制御してよい。
【0107】
QRNNシステムは、最低から最高へシーケンスにおいて配置された複数のサブQRNNをさらに含んでよい。各サブQRNNは、少なくとも1つの畳み込み層及び少なくとも1つのプーリング層を含んでよい。
【0108】
サブQRNNは、シーケンス内の先行サブQRNNシステムにより作成された先行出力を入力として受信する入力受信器(例えば、入力受信器144)と、先行出力の代替表現を生成するための、先行出力の並列畳み込みのための畳み込み層と、出力を生成するための、代替表現の並列累算のためのプーリング層とをさらに含んでよい。
【0109】
QRNNシステムは、先行層の出力を現在の層の出力と連結するため、及び該連結を続きの層に入力として提供するために、サブQRNN間及びサブQRNN内の層間のスキップ接続をさらに含んでよい。
【0110】
シーケンス分類タスクは、言語モデル化、センチメント分類、ドキュメント分類、ワードレベル機械翻訳、又はキャラクタレベル機械翻訳であってよい。
【0111】
QRNNシステムは、現在の時系列ウィンドウについての忘却ゲートベクトル内の所与の順序位置におけるそれぞれの特徴値が1(unity)であるように要求することにより畳み込み層及びプーリング層を正則化する正則化器(例えば、正則化器140)をさらに含んでよい。これは、前の時系列ウィンドウについて同時に累算された状態ベクトル内の所与の順序位置におけるそれぞれの特徴和に一致する、現在の時系列ウィンドウについての状態ベクトル内の所与の順序位置における特徴和のランダムサブセットを生成する。
【0112】
他の実装が、上記で説明されたシステムの動作を実行するようプロセッサにより実行可能な命令を記憶した非一時的コンピュータ読取可能記憶媒体を含んでよい。
【0113】
別の実装において、開示される技術は、擬似リカレントニューラルネットワーク(略称QRNN)システムを提示する。QRNNシステムは、多数の並列処理コア上で動作する。QRNNシステムは、ニューラルネットワークに基づくシーケンス分類タスクの訓練及び推論段階の間の計算速度を増加させる。
【0114】
QRNNシステムは、畳み込み層、プーリング層、出力生成器(例えば、出力生成器604)、及び分類器(例えば、分類器806)を含む。
【0115】
畳み込み層は、入力ベクトルの複数の時系列の中の入力ベクトルの時系列のセット上の時系列ウィンドウ内の入力ベクトルの並列畳み込みのための畳み込みフィルタバンクを含む。畳み込み層は、並列畳み込みに基づいて時系列ウィンドウの各々についての畳み込みベクトルを同時に出力する畳み込みベクトル生成器をさらに含む。
【0116】
プーリング層は、畳み込みベクトルの成分の特徴値を順序位置ごとベースで同時に累算することによる現在の時系列ウィンドウについての状態ベクトル内の特徴和の順序付けられたセットの並列累算のための累算器(例えば、累算器602)を含む。
【0117】
出力生成器は、各々連続した時系列ウィンドウにおいて、プーリング層によりプーリングされた状態ベクトルを順次出力する。
【0118】
分類器は、出力生成器により生成される連続した状態ベクトルを使用してシーケンス分類タスクを実行する。
【0119】
第1のシステムの実装についてこの具体的な実装のセクション内で論じられる特徴の各々は、このシステムの実装に等しく適用される。上記で示されたように、すべてのシステムの特徴はここで繰り返されず、参照により繰り返されるとみなされるべきである。
【0120】
他の実装が、上記で説明されたシステムの動作を実行するようプロセッサにより実行可能な命令を記憶した非一時的コンピュータ読取可能記憶媒体を含んでよい。
【0121】
さらに別の実装において、開示される技術は、ニューラルネットワークに基づくシーケンス分類タスクの訓練及び推論段階の間の計算速度を増加させる方法を提示する。
【0122】
方法は、入力ベクトルの複数の時系列の中の入力ベクトルの時系列のセット上の時系列ウィンドウ内の入力ベクトルに並列に畳み込みフィルタバンクを適用して、時系列ウィンドウの各々についての畳み込みベクトルを同時に出力するステップを含む。各畳み込みベクトルは、活性化ベクトル内及び1つ以上のゲートベクトル内の特徴値を含み、ゲートベクトル内の特徴値は、要素ごとに順序位置により活性化ベクトル内の特徴値にそれぞれ適用するパラメータである。
【0123】
方法は、畳み込みベクトルの成分の特徴値上に並列に累算器を適用して、順序位置ごとベースで現在の時系列ウィンドウについての状態ベクトル内に、特徴和の順序付けられたセットを同時に累算するステップを含む。各特徴和は、現在の時系列ウィンドウについて出力された活性化ベクトル内の所与の順序位置における特徴値と、現在の時系列ウィンドウについて出力された1つ以上のゲートベクトル内の所与の順序位置における1つ以上の特徴値と、前の時系列ウィンドウについて累算された状態ベクトル内の所与の順序位置における特徴和とに依存して、累算器により累算される。
【0124】
方法は、各々連続した時系列ウィンドウにおいて、累算器により累算された状態ベクトルを順次出力するステップを含む。
【0125】
方法は、状態ベクトルを使用してシーケンス分類タスクを実行するステップを含む。
【0126】
第1のシステムの実装についてこの具体的な実装のセクション内で論じられる特徴の各々は、この方法の実装に等しく適用される。上記で示されたように、すべてのシステムの特徴はここで繰り返されず、参照により繰り返されるとみなされるべきである。
【0127】
他の実装が、上記で説明された方法を実行するようプロセッサにより実行可能な命令を記憶した非一時的コンピュータ読取可能記憶媒体(CRM)を含んでよい。さらに別の実装が、メモリと、メモリに記憶され上記で説明された方法を実行するための命令を実行するよう動作可能な1つ以上のプロセッサと、を含むシステムを含んでよい。
【0128】
開示される技術は、ニューラルネットワークシーケンスモデル化における計算効率を増加させる擬似リカレントニューラルネットワーク(QRNN)システムを提示する。
【0129】
QRNNシステムは、多数の処理コア上で動作する畳み込み層を含む。畳み込み層は、入力ベクトルの時系列を受信し、入力ベクトル上の時系列ウィンドウに並列に畳み込みフィルタバンクを適用し、時系列ウィンドウについての畳み込みベクトルを同時に出力する。畳み込みベクトルの各々は、活性化ベクトル内及び1つ以上のゲートベクトル内の特徴値を含み、ゲートベクトル内の特徴値は、要素ごとに順序位置により活性化ベクトル内の特徴値にそれぞれ適用するパラメータである。
【0130】
QRNNシステムは、多数の処理コア上で動作するプーリング層を含む。プーリング層は、時系列ウィンドウについての畳み込みベクトルを受信し、畳み込みベクトルの特徴値上で並列に動作して、順序位置ごとに現在の時系列ウィンドウについての状態ベクトル内に、特徴和の順序付けられたセットを同時に累算する。
【0131】
特徴和は、現在の時系列ウィンドウについて出力された活性化ベクトル内の所与の順序位置における特徴値と、現在の時系列ウィンドウについて出力された1つ以上のゲートベクトル内の所与の順序位置における1つ以上の特徴値と、前の時系列ウィンドウについて累算された状態ベクトル内の所与の順序位置における特徴和とに依存して累算される。
【0132】
このシステムの実装及び開示される他のシステムは、以下の特徴のうち1つ以上を任意選択で含む。システムは、開示される方法と関連して説明される特徴を含んでもよい。簡潔さのために、システムの特徴の代替的な組み合わせは個々に列挙されない。システム、方法、及び製造品に適用可能な特徴は、基本の特徴の各法定分類セットについて繰り返されない。本セクションにおいて識別される特徴が他の法定分類における基本の特徴と如何に容易に組み合わせられ得るかを読み手は理解するであろう。
【0133】
前の方法及びシステムの実装についてこの具体的な実装のセクション内で論じられる特徴の各々は、このシステムの実装に等しく適用される。上記で示されたように、すべての方法及びシステムの特徴はここで繰り返されず、参照により繰り返されるとみなされるべきである。
【0134】
次いで、プーリング層は、時系列ウィンドウの中の各々連続した時系列ウィンドウについての状態ベクトルを順次出力する。
【0135】
畳み込みベクトルの次元数は、畳み込みフィルタバンク内の畳み込みフィルタの数に依存して、入力ベクトルの次元数に相対して拡大されてよい。
【0136】
入力ベクトルは、入力シーケンスの要素を表してよい。こうした実装において、プーリング層は、状態ベクトル内の要素の順序及び文脈情報をエンコードしてよい。
【0137】
いくつかの実装において、入力シーケンスはワードレベルシーケンスであってよい。他の実装において、入力シーケンスはキャラクタレベルシーケンスであってよい。
【0138】
ゲートベクトルは忘却ゲートベクトルであってよい。こうした実装において、プーリング層は、現在の時系列ウィンドウについての忘却ゲートベクトルを使用して、前の時系列ウィンドウについて累算された状態ベクトルからの情報と現在の時系列ウィンドウについての活性化ベクトル内の情報との累算を制御してよい。
【0139】
ゲートベクトルは入力ゲートベクトルであってよい。こうした実装において、プーリング層は、現在の時系列ウィンドウについての入力ゲートベクトルを使用して、現在の時系列ウィンドウについての活性化ベクトルからの情報の累算を制御してよい。
【0140】
ゲートベクトルは出力ゲートベクトルであってよい。こうした実装において、プーリング層は、現在の時系列ウィンドウについての出力ゲートベクトルを使用して、現在の時系列ウィンドウについての状態ベクトルからの情報の累算を制御してよい。
【0141】
QRNNシステムは、最低から最高へシーケンスにおいて配置された複数のサブQRNNを含んでよい。各サブQRNNは、少なくとも1つの畳み込み層及び少なくとも1つのプーリング層を含んでよい。
【0142】
サブQRNNは、シーケンス内の先行サブQRNNにより作成された先行出力を入力として受信し、先行出力を畳み込み層を通じて処理して先行出力の代替表現を生成し、代替表現をプーリング層を通じて処理して出力を生成するように構成されてよい。
【0143】
QRNNシステムは、サブQRNN間及びサブQRNN内の層間のスキップ接続を含んでよい。スキップ接続は、先行層の出力を現在の層の出力と連結し、該連結を続きの層に入力として提供してよい。
【0144】
畳み込みフィルタバンク内の畳み込みフィルタは、シーケンスタスクを使用して訓練されてよい。シーケンスタスクは、言語モデル化、センチメント分類、ドキュメント分類、ワードレベル機械翻訳、又はキャラクタレベル機械翻訳であってよい。
【0145】
QRNNシステムは、現在の時系列ウィンドウについての忘却ゲートベクトル内の所与の順序位置におけるそれぞれの特徴値が1(unity)であるように要求することにより正則化されてよい。これは、前の時系列ウィンドウについて同時に累算された状態ベクトル内の所与の順序位置におけるそれぞれの特徴和に一致する、現在の時系列ウィンドウについての状態ベクトル内の所与の順序位置における特徴和のランダムサブセットを生成する。
【0146】
他の実装が、上記で説明されたシステムの動作を実行するようプロセッサにより実行可能な命令を記憶した非一時的コンピュータ読取可能記憶媒体を含んでよい。
【0147】
開示される技術は、ニューラルネットワークシーケンスモデル化における計算効率を増加させる擬似リカレントニューラルネットワーク(QRNN)システムを提示する。
【0148】
QRNNシステムは、多数の処理コア上で動作する畳み込み層を含む。畳み込み層は、入力ベクトルの時系列を受信し、入力ベクトル上の時系列ウィンドウに並列に畳み込みフィルタバンクを適用し、時系列ウィンドウについての畳み込みベクトルを同時に出力する。畳み込みベクトルの各々は、活性化ベクトル内及び1つ以上のゲートベクトル内の特徴値を含み、ゲートベクトル内の特徴値は、要素ごとに順序位置により活性化ベクトル内の特徴値にそれぞれ適用するパラメータである。
【0149】
QRNNシステムは、多数の処理コア上で動作するプーリング層を含む。プーリング層は、時系列ウィンドウについての畳み込みベクトルを受信し、畳み込みベクトルのそれぞれの特徴値に並列に累算器を適用して、時系列ウィンドウの中の各々連続した時間ステップについての状態ベクトルを算出する。
【0150】
各時間ステップにおいて、畳み込みベクトルの活性化ベクトル及び1つ以上のゲートベクトル内のそれぞれの順序位置について、累算器は、もしあれば前の時間ステップからの状態ベクトル内の所与の順序位置における特徴和に、現在の時間ステップについての忘却ゲートベクトル内の所与の順序位置におけるそれぞれの特徴値を乗算することで開始し、現在の時間ステップについての活性化ベクトル内の所与の順序位置におけるそれぞれの特徴値の、現在の時間ステップについてのゲートベクトル内の所与の順序位置における1つ以上のそれぞれの特徴値に対する評価を加算し、それぞれの順序位置のすべてにわたり累算器の結果を結合する現在の時間ステップについての状態ベクトルを出力する。
【0151】
前の方法及びシステムの実装についてこの具体的な実装のセクション内で論じられる特徴の各々は、このシステムの実装に等しく適用される。上記で示されたように、すべての方法及びシステムの特徴はここで繰り返されず、参照により繰り返されるとみなされるべきである。
【0152】
他の実装が、上記で説明されたシステムの動作を実行するようプロセッサにより実行可能な命令を記憶した非一時的コンピュータ読取可能記憶媒体を含んでよい。
【0153】
開示される技術は、ニューラルネットワークシーケンスモデル化における計算効率を増加させる方法を提示する。
【0154】
方法は、入力ベクトルの時系列を受信するステップと、入力ベクトル上の時系列ウィンドウに並列に畳み込みフィルタバンクを適用するステップと、時系列ウィンドウについての畳み込みベクトルを同時に出力するステップとを含む。畳み込みベクトルの各々は、活性化ベクトル内及び1つ以上のゲートベクトル内の特徴値を含み、ゲートベクトル内の特徴値は、要素ごとに順序位置により活性化ベクトル内の特徴値にそれぞれ適用するパラメータである。
【0155】
方法は、畳み込みベクトルの特徴値上で並列に動作して、順序位置ごとに現在の時系列ウィンドウについての状態ベクトル内に、特徴和の順序付けられたセットを同時に累算するステップを含む。特徴和は、現在の時系列ウィンドウについて出力された活性化ベクトル内の所与の順序位置における特徴値と、現在の時系列ウィンドウについて出力された1つ以上のゲートベクトル内の所与の順序位置における1つ以上の特徴値と、前の時系列ウィンドウについて累算された状態ベクトル内の所与の順序位置における特徴和とに依存して累算される。
【0156】
前の方法及びシステムの実装についてこの具体的な実装のセクション内で論じられる特徴の各々は、この方法の実装に等しく適用される。上記で示されたように、すべての方法及びシステムの特徴はここで繰り返されず、参照により繰り返されるとみなされるべきである。
【0157】
他の実装が、上記で説明された方法を実行するようプロセッサにより実行可能な命令を記憶した非一時的コンピュータ読取可能記憶媒体(CRM)を含んでよい。さらに別の実装が、メモリと、メモリに記憶され上記で説明された方法を実行するための命令を実行するよう動作可能な1つ以上のプロセッサと、を含むシステムを含んでよい。
【0158】
開示される技術は、ニューラルネットワークシーケンスモデル化における計算効率を増加させる擬似リカレントニューラルネットワーク(QRNN)システムを提示する。
【0159】
QRNNシステムは畳み込み層を含み、該畳み込み層は、入力ベクトルの時系列を受信し、時系列ウィンドウについての畳み込みベクトルを同時に出力する。
【0160】
QRNNシステムはプーリング層を含み、該プーリング層は、時系列ウィンドウについての畳み込みベクトルを受信し、現在の時系列ウィンドウについての状態ベクトル内の特徴値の順序付けられたセットを同時に累算し、時系列ウィンドウの中の各々連続した時系列ウィンドウについての状態ベクトルを順次出力する。
【0161】
前の方法及びシステムの実装についてこの具体的な実装のセクション内で論じられる特徴の各々は、このシステムの実装に等しく適用される。上記で示されたように、すべての方法及びシステムの特徴はここで繰り返されず、参照により繰り返されるとみなされるべきである。
【0162】
他の実装が、上記で説明されたシステムの動作を実行するようプロセッサにより実行可能な命令を記憶した非一時的コンピュータ読取可能記憶媒体を含んでよい。
【0163】
[QRNNエンコーダ‐デコーダモデル]
一実装において、開示される技術は、擬似リカレントニューラルネットワーク(略称QRNN)システムを提示する。QRNNシステムは、多数の並列処理コア上で動作する。QRNNシステムは、ソース言語シーケンスをターゲット言語シーケンスに翻訳するニューラルネットワークに基づくシーケンス対シーケンス機械翻訳タスクの訓練及び推論段階の間の計算速度を増加させる。
【0164】
QRNNシステムは、QRNNエンコーダ、QRNNデコーダ、及び翻訳器を含む。QRNNエンコーダは、少なくとも1つのエンコーダ畳み込み層、少なくとも1つのエンコーダプーリング層、及び少なくとも1つのエンコーダ出力ゲートを含む。QRNNデコーダは、少なくとも1つのデコーダ畳み込み層、少なくとも1つのデコーダプーリング層、及び少なくとも1つの注目器又は注目エンコーダを含む。注目器は、状態比較器、エンコーディングミキサ、パーセプトロン又は線形パーセプトロン、及びデコーダ出力ゲートを含む。
【0165】
エンコーダ畳み込み層は、ソース言語ベクトルの複数の時系列の中のソース言語ベクトルの時系列のセット上のエンコーダ時系列ウィンドウ内のソース言語ベクトルの並列畳み込みのためのエンコーダ畳み込みフィルタバンクを含む。エンコーダ畳み込み層は、並列畳み込みに基づいてエンコーダ時系列ウィンドウの各々についてエンコーダの畳み込みベクトルを同時に出力するエンコーダ畳み込みベクトル生成器をさらに含む。
【0166】
エンコーダプーリング層は、エンコーダの畳み込みベクトルの成分の特徴値を順序位置ごとベースで同時に累算することにより各々連続したエンコーダ時系列ウィンドウについて順次生成されるエンコーダの各状態ベクトル内の特徴和の順序付けられたセットの並列累算のための累算器を含む。
【0167】
エンコーダ出力ゲート(例えば、エンコーダ出力ゲート936)は、エンコーダの状態ベクトルに出力ゲートベクトルを適用し、それによりエンコーダの隠れ状態ベクトルを生成するエンコーダ隠れ状態生成器(例えば、エンコーダ隠れ状態生成器937)を含む。
【0168】
デコーダ畳み込み層は、デコーダ入力ベクトルの複数の時系列の中のデコーダ入力ベクトルの時系列のセット上のデコーダ時系列ウィンドウ内のデコーダ入力ベクトルの並列畳み込みのためのデコーダ畳み込みフィルタバンクを含む。最初のデコーダ時系列ウィンドウにおいて、デコーダ畳み込みフィルタバンクは、翻訳開始(start-of-translation)トークンである単一のデコーダ入力ベクトルのみを畳み込む。連続したデコーダ時系列ウィンドウにおいて、デコーダ畳み込みフィルタバンクは、翻訳開始トークンと前に発行されたターゲット言語ベクトルとを含むデコーダ入力ベクトルを畳み込む。
【0169】
デコーダ畳み込み層は、並列畳み込みに基づいてデコーダ時系列ウィンドウの各々についてデコーダの畳み込みベクトルを同時に出力するデコーダ畳み込みベクトル生成器をさらに含む。
【0170】
デコーダプーリング層は、デコーダの畳み込みベクトルの成分の特徴値を順序位置ごとベースで同時に累算することにより各々連続したデコーダ時系列ウィンドウについて順次生成されるデコーダの各状態ベクトル内の特徴和の順序付けられたセットの並列累算のための累算器を含む。
【0171】
注目器は、エンコーダの隠れ状態ベクトルとデコーダの状態ベクトルとの間のペアごと類似度スコアを決定する状態比較器(例えば、状態比較器940)を含む。
【0172】
注目器は、エンコーダ時系列ウィンドウに沿って生成された指数関数的に正規化された類似度スコアシーケンスによりスケーリングされたエンコーダの隠れ状態ベクトルの凸結合としてエンコーダの隠れ状態ベクトルの文脈サマリを作成するエンコーディングミキサ(例えば、エンコーディングミキサ942)を含む。
【0173】
注目器は、文脈サマリとデコーダの状態ベクトルとを線形に射影するパーセプトロン又は線形パーセプトロン(例えば、線形パーセプトロン944)を含む。
【0174】
注目器は、線形に射影された文脈サマリ及びデコーダの状態ベクトルを結合する連結器(例えば、連結器946)を含む。
【0175】
注目器は、結合された線形に射影された文脈サマリ及びデコーダの状態ベクトルに出力ゲートベクトルを適用し、それによりデコーダの隠れ状態ベクトルを生成するデコーダ出力ゲート(例えば、デコーダ出力ゲート948)を含む。
【0176】
QRNNシステムは、デコードされた隠れ状態ベクトルに基づいてターゲット言語ベクトルを発行することによりシーケンス対シーケンス機械翻訳タスクを実行する翻訳器(例えば、翻訳器950)を含む。
【0177】
前の方法及びシステムの実装についてこの具体的な実装のセクション内で論じられる特徴の各々は、このシステムの実装に等しく適用される。上記で示されたように、すべての方法及びシステムの特徴はここで繰り返されず、参照により繰り返されるとみなされるべきである。
【0178】
QRNNシステムは、最後のエンコーダ時系列ウィンドウについてエンコーダ隠れ状態生成器により生成されたエンコーダの最後の隠れ状態ベクトルを用いてデコーダプーリング層への各入力を補足する補足器(例えば、補足器934)を含む。
【0179】
状態比較器は、エンコーダの隠れ状態ベクトルとデコーダの状態ベクトルとの間のペアごと類似度スコアを決定するためにドット積又は双線形積を使用してよい。
【0180】
ソース言語シーケンス及びターゲット言語シーケンスは、ワードレベルシーケンス又はキャラクタレベルシーケンスであってよい。
【0181】
他の実装が、上記で説明されたシステムの動作を実行するようプロセッサにより実行可能な命令を記憶した非一時的コンピュータ読取可能記憶媒体を含んでよい。
【0182】
別の実装において、開示される技術は、擬似リカレントニューラルネットワーク(略称QRNN)システムを提示する。QRNNシステムは、多数の並列処理コア上で動作する。QRNNシステムは、ソース言語シーケンスをターゲット言語シーケンスに翻訳するニューラルネットワークに基づくシーケンス対シーケンス機械翻訳タスクの訓練及び推論段階の間の計算速度を増加させる。
【0183】
QRNNシステムは、QRNNエンコーダ、QRNNデコーダ、及び翻訳器を含む。
【0184】
QRNNエンコーダは、ソース言語ベクトルの複数の時系列の中のソース言語ベクトルの時系列のセット上のエンコーダ時系列ウィンドウ内のソース言語ベクトルの並列畳み込みのための少なくとも1つのエンコーダ畳み込み層であって、それによりエンコーダ時系列ウィンドウの各々についてエンコーダの畳み込みベクトルを同時に出力する、エンコーダ畳み込み層と、各々連続したエンコーダ時系列ウィンドウについて順次生成されるエンコーダの各状態ベクトル内の特徴和の順序付けられたセットの並列累算のための少なくとも1つのエンコーダプーリング層と、エンコーダの状態ベクトルに出力ゲートベクトルを適用し、それによりエンコーダの隠れ状態ベクトルを生成するエンコーダ隠れ状態生成器とを含む。
【0185】
QRNNデコーダは、デコーダ入力ベクトルの複数の時系列の中のデコーダ入力ベクトルの時系列のセット上のデコーダ時系列ウィンドウ内のデコーダ入力ベクトルの並列畳み込みのための少なくとも1つのデコーダ畳み込み層であって、それによりデコーダ時系列ウィンドウの各々についてデコーダの畳み込みベクトルを同時に出力する、デコーダ畳み込み層と、各々連続したデコーダ時系列ウィンドウについて順次生成されるデコーダの各状態ベクトル内の特徴和の順序付けられたセットの並列累算のための少なくとも1つのデコーダプーリング層とを含む。
【0186】
QRNNシステムは、エンコーダの隠れ状態ベクトルの文脈サマリをデコーダの状態ベクトルと結合することによりデコーダの隠れ状態ベクトルを作成する注目器を含む。
【0187】
QRNNシステムは、デコードされた隠れ状態ベクトルに基づいてターゲット言語ベクトルを発行することによりシーケンス対シーケンス機械翻訳タスクを実行する翻訳器(例えば、翻訳器950)を含む。
【0188】
前の方法及びシステムの実装についてこの具体的な実装のセクション内で論じられる特徴の各々は、このシステムの実装に等しく適用される。上記で示されたように、すべての方法及びシステムの特徴はここで繰り返されず、参照により繰り返されるとみなされるべきである。
【0189】
他の実装が、上記で説明されたシステムの動作を実行するようプロセッサにより実行可能な命令を記憶した非一時的コンピュータ読取可能記憶媒体を含んでよい。
【0190】
開示される技術は、ソース言語シーケンスをターゲット言語シーケンスに翻訳するニューラルネットワークに基づくシーケンス対シーケンス機械翻訳タスクの訓練及び推論段階の間の計算速度を増加させる方法を提示する。
【0191】
方法は、ソース言語ベクトルの複数の時系列の中のソース言語ベクトルの時系列のセット上のエンコーダ時系列ウィンドウ内のソース言語ベクトルを並列に畳み込んで、エンコーダ時系列ウィンドウの各々についてエンコーダの畳み込みベクトルを同時に出力するステップと、各々連続したエンコーダ時系列ウィンドウについて順次生成されるエンコーダの各状態ベクトル内の特徴和の順序付けられたセットを並列に累算するステップと、エンコーダの状態ベクトルに出力ゲートベクトルを適用してエンコーダの隠れ状態ベクトルを生成するステップとを含む。
【0192】
方法は、デコーダ入力ベクトルの複数の時系列の中のデコーダ入力ベクトルの時系列のセット上のデコーダ時系列ウィンドウ内のデコーダ入力ベクトルを並列に畳み込んで、デコーダ時系列ウィンドウの各々についてデコーダの畳み込みベクトルを同時に出力するステップと、各々連続したデコーダ時系列ウィンドウについて順次生成されるデコーダの各状態ベクトル内の特徴和の順序付けられたセットを並列に累算するステップとを含む。
【0193】
方法は、エンコーダの隠れ状態ベクトルの文脈サマリをデコーダの状態ベクトルと結合することによりデコーダの隠れ状態ベクトルを作成するステップを含む。
【0194】
方法は、デコードされた隠れ状態ベクトルに基づいてターゲット言語ベクトルを発行することによりシーケンス対シーケンス機械翻訳タスクを実行するステップを含む。
【0195】
前の方法及びシステムの実装についてこの具体的な実装のセクション内で論じられる特徴の各々は、この方法の実装に等しく適用される。上記で示されたように、すべての方法及びシステムの特徴はここで繰り返されず、参照により繰り返されるとみなされるべきである。
【0196】
他の実装が、上記で説明された方法を実行するようプロセッサにより実行可能な命令を記憶した非一時的コンピュータ読取可能記憶媒体(CRM)を含んでよい。さらに別の実装が、メモリと、メモリに記憶され上記で説明された方法を実行するための命令を実行するよう動作可能な1つ以上のプロセッサと、を含むシステムを含んでよい。
【0197】
一実装において、開示される技術は、擬似リカレントニューラルネットワーク(略称QRNN)システムを提示する。QRNNシステムは、多数の並列処理コア上で動作する。QRNNシステムは、ニューラルネットワークに基づくシーケンス対シーケンス分類タスクの訓練及び推論段階の間の計算速度を増加させる。
【0198】
QRNNシステムは、QRNNエンコーダ、QRNNデコーダ、及び分類器を含む。QRNNエンコーダは、少なくとも1つのエンコーダ畳み込み層、少なくとも1つのエンコーダプーリング層、及び少なくとも1つのエンコーダ出力ゲートを含む。QRNNデコーダは、少なくとも1つのデコーダ畳み込み層、少なくとも1つのデコーダプーリング層、及び少なくとも1つの注目器又は注目エンコーダを含む。注目器は、状態比較器、エンコーディングミキサ、パーセプトロン又は線形パーセプトロン、及びデコーダ出力ゲートを含む。
【0199】
エンコーダ畳み込み層は、エンコーダ入力ベクトルの複数の時系列の中のエンコーダ入力ベクトルの時系列のセット上のエンコーダ時系列ウィンドウ内のエンコーダ入力ベクトルの並列畳み込みのためのエンコーダ畳み込みフィルタバンクを含む。エンコーダ畳み込み層は、並列畳み込みに基づいてエンコーダ時系列ウィンドウの各々についてエンコーダの畳み込みベクトルを同時に出力するエンコーダ畳み込みベクトル生成器をさらに含む。
【0200】
エンコーダプーリング層は、エンコーダの畳み込みベクトルの成分の特徴値を順序位置ごとベースで同時に累算することにより各々連続したエンコーダ時系列ウィンドウについて順次生成されるエンコーダの各状態ベクトル内の特徴和の順序付けられたセットの並列累算のための累算器を含む。
【0201】
エンコーダ出力ゲート(例えば、エンコーダ出力ゲート936)は、エンコーダの状態ベクトルに出力ゲートベクトルを適用し、それによりエンコーダの隠れ状態ベクトルを生成するエンコーダ隠れ状態生成器(例えば、エンコーダ隠れ状態生成器937)を含む。
【0202】
デコーダ畳み込み層は、デコーダ入力ベクトルの複数の時系列の中のデコーダ入力ベクトルの時系列のセット上のデコーダ時系列ウィンドウ内のデコーダ入力ベクトルの並列畳み込みのためのデコーダ畳み込みフィルタバンクを含む。最初のデコーダ時系列ウィンドウにおいて、デコーダ畳み込みフィルタバンクは、翻訳開始(start-of-translation)トークンである単一のデコーダ入力ベクトルのみを畳み込む。連続したデコーダ時系列ウィンドウにおいて、デコーダ畳み込みフィルタバンクは、翻訳開始トークンと前に発行されたターゲット言語ベクトルとを含むデコーダ入力ベクトルを畳み込む。
【0203】
デコーダ畳み込み層は、並列畳み込みに基づいてデコーダ時系列ウィンドウの各々についてデコーダの畳み込みベクトルを同時に出力するデコーダ畳み込みベクトル生成器をさらに含む。
【0204】
デコーダプーリング層は、デコーダの畳み込みベクトルの成分の特徴値を順序位置ごとベースで同時に累算することにより各々連続したデコーダ時系列ウィンドウについて順次生成されるデコーダの各状態ベクトル内の特徴和の順序付けられたセットの並列累算のための累算器を含む。
【0205】
注目器は、エンコーダの隠れ状態ベクトルとデコーダの状態ベクトルとの間のペアごと類似度スコアを決定する状態比較器(例えば、状態比較器940)を含む。
【0206】
注目器は、エンコーダ時系列ウィンドウに沿って生成された指数関数的に正規化された類似度スコアシーケンスによりスケーリングされたエンコーダの隠れ状態ベクトルの凸結合としてエンコーダの隠れ状態ベクトルの文脈サマリを作成するエンコーディングミキサ(例えば、エンコーディングミキサ942)を含む。
【0207】
注目器は、文脈サマリとデコーダの状態ベクトルとを線形に射影するパーセプトロン又は線形パーセプトロン(例えば、線形パーセプトロン944)を含む。
【0208】
注目器は、線形に射影された文脈サマリ及びデコーダの状態ベクトルを結合する連結器(例えば、連結器946)を含む。
【0209】
注目器は、結合された線形に射影された文脈サマリ及びデコーダの状態ベクトルに出力ゲートベクトルを適用し、それによりデコーダの隠れ状態ベクトルを生成するデコーダ出力ゲート(例えば、デコーダ出力ゲート948)を含む。
【0210】
QRNNシステムは、デコードされた隠れ状態ベクトルを使用してシーケンス対シーケンス分類タスクを実行する分類器を含む。
【0211】
前の方法及びシステムの実装についてこの具体的な実装のセクション内で論じられる特徴の各々は、このシステムの実装に等しく適用される。上記で示されたように、すべての方法及びシステムの特徴はここで繰り返されず、参照により繰り返されるとみなされるべきである。
【0212】
シーケンス対シーケンス分類タスクは、機械翻訳、発話認識、テキスト・ツー・スピーチ(text-to-speech)合成、質問応答、及び抽象テキスト要約(abstractive text summarization)であってよい。
【0213】
他の実装が、上記で説明されたシステムの動作を実行するようプロセッサにより実行可能な命令を記憶した非一時的コンピュータ読取可能記憶媒体を含んでよい。
【0214】
開示される技術は、ニューラルネットワークシーケンス対シーケンスモデル化における計算効率を増加させる擬似リカレントニューラルネットワーク(QRNN)システムを提示する。
【0215】
QRNNシステムはQRNNエンコーダを含み、該QRNNエンコーダは1つ以上のエンコーダ畳み込み層及び1つ以上のエンコーダプーリング層をさらに含む。
【0216】
少なくとも1つのエンコーダ畳み込み層が、エンコーダ入力ベクトルの時系列を受信し、時系列ウィンドウについてエンコードされた畳み込みベクトルを同時に出力する。
【0217】
少なくとも1つのエンコーダプーリング層が、時系列ウィンドウについてのエンコードされた畳み込みベクトルを受信し、現在の時系列ウィンドウについてエンコードされた状態ベクトル内の特徴和の順序付けられたセットを同時に累算し、時系列ウィンドウの中の各々連続した時系列ウィンドウについてエンコードされた状態ベクトルを順次出力する。
【0218】
QRNNシステムはQRNNデコーダを含み、該QRNNデコーダは1つ以上のデコーダ畳み込み層及び1つ以上のデコーダプーリング層をさらに含む。
【0219】
少なくとも1つのデコーダ畳み込み層が、デコーダ入力ベクトルの時系列を受信し、時系列ウィンドウについてデコードされた畳み込みベクトルを同時に出力する。
【0220】
少なくとも1つのデコーダプーリング層が、最後の時系列ウィンドウについてエンコーダプーリング層により出力されたエンコードされた状態ベクトルとそれぞれ連結される時系列ウィンドウについてのデコードされた畳み込みベクトルを受信し、現在の時系列ウィンドウについてデコードされた状態ベクトル内の特徴和の順序付けられたセットを同時に累算し、時系列ウィンドウの中の各々連続した時系列ウィンドウについてデコードされた状態ベクトルを順次出力する。
【0221】
QRNNシステムは、エンコードされた状態ベクトルとデコードされた状態ベクトルとの間の言語類似度を算出してエンコーディングごと及びデコーディングごとの軸を有するアフィニティ行列を生成する状態比較器を含む。
【0222】
QRNNシステムは、アフィニティ行列をエンコーディングごとに正規化してそれぞれのエンコーディング対デコーディング注目重みを生成する指数関数的正規化器を含む。
【0223】
QRNNシステムは、エンコードされた状態ベクトルをエンコーディング対デコーディング注目重みとそれぞれ結合してエンコードされた状態ベクトルのそれぞれの文脈サマリを作成するエンコーディングミキサを含む。
【0224】
QRNNシステムは、デコードされた状態ベクトルをエンコードされた状態ベクトルのそれぞれの文脈サマリとそれぞれ結合して時系列ウィンドウの各々についての注目エンコーディングを生成する注目エンコーダを含む。
【0225】
このシステムの実装及び開示される他のシステムは、以下の特徴のうち1つ以上を任意選択で含む。システムは、開示される方法と関連して説明される特徴を含んでもよい。簡潔さのために、システムの特徴の代替的な組み合わせは個々に列挙されない。システム、方法、及び製造品に適用可能な特徴は、基本の特徴の各法定分類セットについて繰り返されない。本セクションにおいて識別される特徴が他の法定分類における基本の特徴と如何に容易に組み合わせられ得るかを読み手は理解するであろう。
【0226】
前の方法及びシステムの実装についてこの具体的な実装のセクション内で論じられる特徴の各々は、このシステムの実装に等しく適用される。上記で示されたように、すべての方法及びシステムの特徴はここで繰り返されず、参照により繰り返されるとみなされるべきである。
【0227】
注目エンコーダは、デコードされた状態ベクトルとエンコードされた状態ベクトルのそれぞれの文脈サマリとの連結を線形射影に射影して時系列ウィンドウの各々についての注目エンコーディングを生成する多層パーセプトロンであってよい。
【0228】
エンコードされた状態ベクトルは、エンコードされた畳み込みベクトルの出力ゲートベクトルをそれぞれ乗算されて、それぞれのエンコードされた隠れ状態ベクトルを生成してよい。
【0229】
状態比較器は、エンコードされた隠れ状態ベクトルとデコードされた状態ベクトルとの間の言語類似度を算出して、エンコーディングごと及びデコーディングごとの軸を有するアフィニティ行列を生成してよい。
【0230】
エンコーディングミキサは、エンコードされた隠れ状態ベクトルをエンコーディング対デコーディング注目重みとそれぞれ結合して、エンコードされた隠れ状態ベクトルのそれぞれの文脈サマリを作成してよい。
【0231】
注目エンコーダは、デコードされた状態ベクトルをエンコードされた隠れ状態ベクトルのそれぞれの文脈サマリとそれぞれ結合してよく、該結合をデコードされた畳み込みベクトルのそれぞれの出力ゲートベクトルとさらに乗算して、時系列ウィンドウの各々についての注目エンコーディングを生成してよい。
【0232】
注目エンコーダは、デコードされた状態ベクトルとエンコードされた隠れ状態ベクトルのそれぞれの文脈サマリとの連結を線形射影に射影する多層パーセプトロンであってよく、非線形射影をデコードされた畳み込みベクトルのそれぞれの出力ゲートベクトルとさらに乗算して、時系列ウィンドウの各々についての注目エンコーディングを生成してよい。
【0233】
他の実装が、上記で説明されたシステムの動作を実行するようプロセッサにより実行可能な命令を記憶した非一時的コンピュータ読取可能記憶媒体を含んでよい。
【0234】
開示される技術は、ニューラルネットワークシーケンス対シーケンスモデル化における効率を増加させる方法を提示する。
【0235】
方法は、QRNNエンコーダのエンコーダ畳み込み層においてエンコーダ入力ベクトルの時系列を受信するステップと、時系列ウィンドウについてエンコードされた畳み込みベクトルを同時に出力するステップとを含む。
【0236】
方法は、QRNNエンコーダのエンコーダプーリング層において時系列ウィンドウについてのエンコードされた畳み込みベクトルを受信するステップと、現在の時系列ウィンドウについてエンコードされた状態ベクトル内の特徴和の順序付けられたセットを同時に累算するステップと、時系列ウィンドウの中の各々連続した時系列ウィンドウについてエンコードされた状態ベクトルを順次出力するステップとを含む。
【0237】
方法は、QRNNデコーダのデコーダ畳み込み層においてデコーダ入力ベクトルの時系列を受信するステップと、時系列ウィンドウについてデコードされた畳み込みベクトルを同時に出力するステップとを含む。
【0238】
方法は、QRNNデコーダのデコーダプーリング層において、最後の時系列ウィンドウについてエンコーダプーリング層により出力されたエンコードされた状態ベクトルとそれぞれ連結される時系列ウィンドウについてのデコードされた畳み込みベクトルを受信するステップと、現在の時系列ウィンドウについてデコードされた状態ベクトル内の特徴和の順序付けられたセットを同時に累算するステップと、時系列ウィンドウの中の各々連続した時系列ウィンドウについてデコードされた状態ベクトルを順次出力するステップとを含む。
【0239】
方法は、エンコードされた状態ベクトルとデコードされた状態ベクトルとの間の言語類似度を算出してエンコーディングごと及びデコーディングごとの軸を有するアフィニティ行列を生成するステップを含む。
【0240】
方法は、アフィニティ行列をエンコーディングごとに指数関数的に正規化してそれぞれのエンコーディング対デコーディング注目重みを生成するステップを含む。
【0241】
方法は、エンコードされた状態ベクトルをエンコーディング対デコーディング注目重みと結合してエンコードされた状態ベクトルのそれぞれの文脈サマリを作成するステップを含む。
【0242】
方法は、デコードされた状態ベクトルをエンコードされた状態ベクトルのそれぞれの文脈サマリと結合して時系列ウィンドウの各々についての注目エンコーディングを生成するステップを含む。
【0243】
前の方法及びシステムの実装についてこの具体的な実装のセクション内で論じられる特徴の各々は、この方法の実装に等しく適用される。上記で示されたように、すべての方法及びシステムの特徴はここで繰り返されず、参照により繰り返されるとみなされるべきである。
【0244】
他の実装が、上記で説明された方法を実行するようプロセッサにより実行可能な命令を記憶した非一時的コンピュータ読取可能記憶媒体(CRM)を含んでよい。さらに別の実装が、メモリと、メモリに記憶され上記で説明された方法を実行するための命令を実行するよう動作可能な1つ以上のプロセッサと、を含むシステムを含んでよい。
【0245】
[コンピュータシステム]
図15は、擬似リカレントニューラルネットワーク(QRNN)100を実現するために使用できるコンピュータシステム1500の簡略ブロック図である。コンピュータシステム1500は、バスサブシステム1522を介して複数の周辺デバイスと通信する少なくとも1つの中央処理ユニット(CPU)1524を含む。これらの周辺デバイスは、例えばメモリデバイス及びファイルストレージサブシステム1518を含むストレージサブシステム1510、ユーザインターフェース入力デバイス1520、ユーザインターフェース出力デバイス1528、及びネットワークインターフェースサブシステム1526を含んでよい。入力及び出力デバイスは、コンピュータシステム1500とのユーザ相互作用を可能にする。ネットワークインターフェースサブシステム1526は、他のコンピュータシステム内の対応するインターフェースデバイスへのインターフェースを含む、外部ネットワークへのインターフェースを提供する。
【0246】
一実装において、QRNN100は、ストレージサブシステム1510に、及びユーザインターフェース入力デバイス1520に通信可能にリンクされる。
【0247】
ユーザインターフェース入力デバイス1520は、キーボードと、マウス、トラックボール、タッチパッド、又はグラフィックスタブレットなどのポインティングデバイスと、スキャナと、ディスプレイに組み込まれたタッチスクリーンと、音声認識システム及びマイクロフォンなどのオーディオ入力デバイスと、他タイプの入力デバイスとを含んでよい。一般に、用語「入力デバイス」の使用は、情報をコンピュータシステム1500に入力するためのすべての可能なタイプの装置及び方法を含むことが意図される。
【0248】
ユーザインターフェース出力デバイス1528は、ディスプレイサブシステム、プリンタ、ファックスマシン、又はオーディオ出力デバイスなどの非視覚的ディスプレイを含んでよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、又は可視イメージを作り出す何らかの他の機構を含んでよい。ディスプレイサブシステムは、オーディオ出力デバイスなどの非視覚的ディスプレイを提供してもよい。一般に、用語「出力デバイス」の使用は、情報をコンピュータシステム1500からユーザに又は別のマシン若しくはコンピュータシステムに対して出力するためのすべての可能なタイプの装置及び方法を含むことが意図される。
【0249】
ストレージサブシステム1510は、本明細書で説明されるモジュール及び方法のいくつか又はすべての機能性を提供するプログラミング及びデータ構造を記憶する。これらのソフトウェアモジュールは、ディープラーニングプロセッサ1530により一般に実行される。
【0250】
ディープラーニングプロセッサ1530は、グラフィックス処理ユニット(GPU)又はフィールドプログラマブルゲートアレイ(FPGA)であってよい。ディープラーニングプロセッサ1530は、Google(登録商標) Cloud PlatformTM、Xilinx(登録商標)TM、及びCirrascaleTMなどのディープラーニングクラウドプラットフォームによりホストされてよい。ディープラーニングプロセッサ1530の例は、Googleのテンソル処理ユニット(Tensor Processing Unit、TPU)TM、GX4 Rackmount SeriesTM、GX8 Rackmount SeriesTM、NVIDIA(登録商標) DGX‐1TMのようなラックマウントソリューション、Microsoft(登録商標)のStratix V FPGATM、Graphcoreのインテリジェントプロセッサユニット(Intelligent Processor Unit、IPU)TM、Qualcomm(登録商標)のSnapdragon(登録商標)プロセッサTMを有するZeroth PlatformTM、NVIDIAのVoltaTM、NVIDIAのDRIVE PXTM、NVIDIAのJETSON TX1/TX2 MODULETM、Intel(登録商標)のNirvanaTM、Movidius VPUTM、Fujitsu(登録商標) DPITM、ARMのDynamicIQTM、IBM TrueNorthTMなどを含む。
【0251】
ストレージサブシステム1510において使用されるメモリサブシステム1512は、プログラム実行の間の命令及びデータの記憶のためのメインランダムアクセスメモリ(RAM)1514と固定の命令が記憶される読取専用メモリ(ROM)1516とを含む、複数のメモリを含んでよい。ファイルストレージサブシステム1518は、プログラム及びデータファイルのための永続的ストレージを提供してよく、ハードディスクドライブ、関連づけられた取外し可能媒体を有するフロッピーディスクドライブ、CD‐ROMドライブ、光学ドライブ、又は取外し可能媒体カートリッジを含んでよい。特定の実装の機能性を実現するモジュールが、ストレージサブシステム1510に、又はプロセッサによりアクセス可能な他のマシンに、ファイルストレージサブシステム1518により記憶されてよい。
【0252】
バスサブシステム1522は、コンピュータシステム1500の様々なコンポーネント及びサブシステムに意図されたように互いに通信させる機構を提供する。バスサブシステム1522は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実装が複数のバスを使用してよい。
【0253】
コンピュータシステム1500はそれ自体、パーソナルコンピュータ、ポータブルコンピュータ、ワークステーション、コンピュータ端末、ネットワークコンピュータ、テレビジョン、メインフレーム、サーバファーム、緩くネットワーク化されたコンピュータの広く分散されたセット、又は任意の他のデータ処理システム若しくはユーザデバイスを含む、様々なタイプのものであってよい。コンピュータ及びネットワークの常に変化する性質に起因して、図15に表されるコンピュータシステム1500の説明は、本発明の好適な実施例を示す目的で単に具体的な例として意図されている。図15に表されるコンピュータシステムより多くの又は少ないコンポーネントを有する、コンピュータシステム1500の多くの他の構成が可能である。
【0254】
前述の説明は、開示される技術の創作及び使用を可能にするよう提示されている。開示の実装に対する様々な変更が明らかになり、本明細書で定義される一般的原理は、開示される技術の主旨及び範囲から逸脱することなく他の実装及び用途に適用され得る。ゆえに、開示される技術は、図示される実装に限定されることは意図されず、本明細書で開示される原理及び特徴に一致する最も広い範囲を与えられるべきである。開示される技術の範囲は、別記の特許請求の範囲により定義される。
上記の実施形態につき以下の付記を残しておく。
[付記1]
複数の並列処理コア上で動作する、ニューラルネットワークに基づくシーケンス分類タスクの訓練及び推論段階の間の計算速度を増加させる擬似リカレントニューラルネットワーク(QRNN)システムであって、
入力ベクトルの複数の時系列の中の入力ベクトルの時系列のセット上の時系列ウィンドウ内の入力ベクトルの並列畳み込みのための畳み込みフィルタバンク、及び
前記並列畳み込みに基づいて前記時系列ウィンドウの各々についての畳み込みベクトルを同時に出力する畳み込みベクトル生成器であり、各畳み込みベクトルは活性化ベクトル内及び1つ以上のゲートベクトル内の特徴値を含み、前記ゲートベクトル内の前記特徴値は、要素ごとに順序位置による前記活性化ベクトル内の前記特徴値にそれぞれ適用するパラメータである、畳み込みベクトル生成器、
を含む畳み込み層と、
前記畳み込みベクトルの成分の特徴値を順序位置ごとベースで同時に累算することによる現在の時系列ウィンドウについての状態ベクトル内の特徴和の順序付けられたセットの並列累算のための累算器を含むプーリング層であり、各特徴和は、前記現在の時系列ウィンドウについて出力された活性化ベクトル内の所与の順序位置における特徴値と、前記現在の時系列ウィンドウについて出力された1つ以上のゲートベクトル内の前記所与の順序位置における1つ以上の特徴値と、前の時系列ウィンドウについて累算された状態ベクトル内の前記所与の順序位置における特徴和とに依存して前記累算器により累算される、プーリング層と、
各々連続した時系列ウィンドウにおいて、前記プーリング層によりプーリングされた状態ベクトルを順次出力する出力生成器と、
前記出力生成器により生成された連続した状態ベクトルを使用してシーケンス分類タスクを実行する分類器と、
を含むQRNNシステム。
[付記2]
前記畳み込みフィルタバンク内の畳み込みフィルタの数に依存して前記入力ベクトルの次元数に相対して前記畳み込みベクトルの次元数を拡大する次元数拡大器、をさらに含む付記1に記載のQRNNシステム。
[付記3]
前記入力ベクトルは入力シーケンスの要素を表し、前記プーリング層は前記状態ベクトル内の前記要素の順序及び文脈情報をエンコードするエンコーダを含む、付記1乃至2のうちいずれか1項に記載のQRNNシステム。
[付記4]
前記入力シーケンスはワードレベルシーケンスである、付記1乃至3のうちいずれか1項に記載のQRNNシステム。
[付記5]
前記入力シーケンスはキャラクタレベルシーケンスである、付記1乃至4のうちいずれか1項に記載のQRNNシステム。
[付記6]
ゲートベクトルが忘却ゲートベクトルであり、前記プーリング層は、前記前の時系列ウィンドウについて累算された前記状態ベクトルからの情報と前記現在の時系列ウィンドウについての前記活性化ベクトルからの情報との累算を制御するための、前記現在の時系列ウィンドウについての忘却ゲートベクトルを含む、付記1乃至5のうちいずれか1項に記載のQRNNシステム。
[付記7]
ゲートベクトルが入力ゲートベクトルであり、前記プーリング層は、前記現在の時系列ウィンドウについての前記活性化ベクトルからの情報の累算を制御するための、前記現在の時系列ウィンドウについての入力ゲートベクトルを含む、付記1乃至6のうちいずれか1項に記載のQRNNシステム。
[付記8]
ゲートベクトルが出力ゲートベクトルであり、前記プーリング層は、前記現在の時系列ウィンドウについての前記状態ベクトルからの情報の累算を制御するための、前記現在の時系列ウィンドウについての出力ゲートベクトルを含む、付記1乃至7のうちいずれか1項に記載のQRNNシステム。
[付記9]
前記シーケンス分類タスクを実行するために最低から最高へシーケンスにおいて配置された複数のサブQRNNシステムを含むようにさらに構成され、各サブQRNNシステムは、並列畳み込みのための少なくとも1つの畳み込み層と並列累算のための少なくとも1つのプーリング層とを含む、付記1乃至8のうちいずれか1項に記載のQRNNシステム。
[付記10]
サブQRNNシステムは、
前記シーケンス内の先行サブQRNNシステムにより作成された先行出力を入力として受信する入力受信器と、
前記先行出力の代替表現を生成するための、前記先行出力の並列畳み込みのための畳み込み層と、
出力を生成するための、前記代替表現の並列累算のためのプーリング層と、
を含む、付記1乃至9のうちいずれか1項に記載のQRNNシステム。
[付記11]
先行層の出力を現在の層の出力と連結するため、及び前記連結を続きの層に入力として提供するための、前記サブQRNNシステム間及びサブQRNNシステム内の層間のスキップ接続を含むようにさらに構成される、付記1乃至10のうちいずれか1項に記載のQRNNシステム。
[付記12]
前記シーケンス分類タスクは言語モデル化である、付記1乃至11のうちいずれか1項に記載のQRNNシステム。
[付記13]
前記シーケンス分類タスクはセンチメント分類である、付記1乃至12のうちいずれか1項に記載のQRNNシステム。
[付記14]
前記シーケンス分類タスクはドキュメント分類である、付記1乃至13のうちいずれか1項に記載のQRNNシステム。
[付記15]
前記シーケンス分類タスクはワードレベル機械翻訳である、付記1乃至14のうちいずれか1項に記載のQRNNシステム。
[付記16]
前記シーケンス分類タスクはキャラクタレベル機械翻訳である、付記1乃至15のうちいずれか1項に記載のQRNNシステム。
[付記17]
前記現在の時系列ウィンドウについての前記忘却ゲートベクトル内の前記所与の順序位置におけるそれぞれの特徴値が1であるよう要求することにより前記畳み込み層及び前記プーリング層を正則化し、それにより、前記前の時系列ウィンドウについて同時に累算された前記状態ベクトル内の所与の順序位置におけるそれぞれの特徴和に一致する前記現在の時系列ウィンドウについての前記状態ベクトル内の前記所与の順序位置における特徴和のランダムサブセットを生成する正則化器、をさらに含む付記1乃至16のうちいずれか1項に記載のQRNNシステム。
[付記18]
複数の並列処理コア上で動作する、ニューラルネットワークに基づくシーケンス分類タスクの訓練及び推論段階の間の計算速度を増加させる擬似リカレントニューラルネットワーク(QRNN)システムであって、
入力ベクトルの複数の時系列の中の入力ベクトルの時系列のセット上の時系列ウィンドウ内の入力ベクトルの並列畳み込みのための畳み込みフィルタバンク、及び
前記並列畳み込みに基づいて前記時系列ウィンドウの各々についての畳み込みベクトルを同時に出力する畳み込みベクトル生成器
を含む畳み込み層と、
前記畳み込みベクトルの成分の特徴値を順序位置ごとベースで同時に累算することによる現在の時系列ウィンドウについての状態ベクトル内の特徴和の順序付けられたセットの並列累算のための累算器を含むプーリング層と、
各々連続した時系列ウィンドウにおいて、前記プーリング層によりプーリングされた状態ベクトルを順次出力する出力生成器と、
前記出力生成器により生成された連続した状態ベクトルを使用してシーケンス分類タスクを実行する分類器と、
を含むQRNNシステム。
[付記19]
ニューラルネットワークに基づくシーケンス分類タスクの訓練及び推論段階の間の計算速度を増加させる、コンピュータにより実現される方法であって、
入力ベクトルの複数の時系列の中の入力ベクトルの時系列のセット上の時系列ウィンドウ内の入力ベクトルに並列に畳み込みフィルタバンクを適用して、前記時系列ウィンドウの各々についての畳み込みベクトルを同時に出力するステップであって、各畳み込みベクトルは、活性化ベクトル内及び1つ以上のゲートベクトル内の特徴値を含み、前記ゲートベクトル内の前記特徴値は、要素ごとに順序位置により前記活性化ベクトル内の前記特徴値にそれぞれ適用するパラメータである、ステップと、
前記畳み込みベクトルの成分の特徴値上に並列に累算器を適用して、順序位置ごとベースで現在の時系列ウィンドウについての状態ベクトル内に、特徴和の順序付けられたセットを同時に累算するステップであって、各特徴和は、前記現在の時系列ウィンドウについて出力された活性化ベクトル内の所与の順序位置における特徴値と、前記現在の時系列ウィンドウについて出力された1つ以上のゲートベクトル内の前記所与の順序位置における1つ以上の特徴値と、前の時系列ウィンドウについて累算された状態ベクトル内の前記所与の順序位置における特徴和とに依存して前記累算器により累算される、ステップと、
各々連続した時系列ウィンドウにおいて、前記累算器により累算された状態ベクトルを順次出力するステップと、
連続した状態ベクトルを使用してシーケンス分類タスクを実行するステップと、
を含む方法。
[付記20]
ニューラルネットワークに基づくシーケンス分類タスクの訓練及び推論段階の間の計算速度を増加させるコンピュータプログラム命令を記憶させた非一時的コンピュータ読取可能記憶媒体であって、前記命令は、複数の並列処理コア上で実行されたときに、
入力ベクトルの複数の時系列の中の入力ベクトルの時系列のセット上の時系列ウィンドウ内の入力ベクトルに並列に畳み込みフィルタバンクを適用して、前記時系列ウィンドウの各々についての畳み込みベクトルを同時に出力するステップであって、各畳み込みベクトルは、活性化ベクトル内及び1つ以上のゲートベクトル内の特徴値を含み、前記ゲートベクトル内の前記特徴値は、要素ごとに順序位置により前記活性化ベクトル内の前記特徴値にそれぞれ適用するパラメータである、ステップと、
前記畳み込みベクトルの成分の特徴値上に並列に累算器を適用して、順序位置ごとベースで現在の時系列ウィンドウについての状態ベクトル内に、特徴和の順序付けられたセットを同時に累算するステップであって、各特徴和は、前記現在の時系列ウィンドウについて出力された活性化ベクトル内の所与の順序位置における特徴値と、前記現在の時系列ウィンドウについて出力された1つ以上のゲートベクトル内の前記所与の順序位置における1つ以上の特徴値と、前の時系列ウィンドウについて累算された状態ベクトル内の前記所与の順序位置における特徴和とに依存して前記累算器により累算される、ステップと、
各々連続した時系列ウィンドウにおいて、前記累算器により累算された状態ベクトルを順次出力するステップと、
連続した状態ベクトルを使用してシーケンス分類タスクを実行するステップと、
を含む方法を実現する、媒体。
【0255】











図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15