(57)【要約】  圧縮ゲーティング関数を用いて長短期メモリ層を実装するための、コンピュータストレージ媒体において符号化されたコンピュータプログラムを含む方法、システム、および装置。システムのうちの1つは、複数の時間ステップの各時間ステップごとに、ゲート入力ベクトルとゲートパラメータ行列とを乗算することによってそれぞれの中間のゲート出力ベクトルを生成するように構成されているゲートを有する第1のLSTM層を含む。ゲートのうちの少なくとも1つについてのゲートパラメータ行列は、構造化行列であるか、または圧縮パラメータ行列および射影行列によって定義される。リカレントニューラルネットワークに圧縮LSTM層を含むことによって、リカレントニューラルネットワークは、より効率的にデータを処理し、より少ないデータストレージを使用することができるように構成されている。圧縮LSTM層を有するリカレントニューラルネットワークは、フルサイズの、たとえば未圧縮のリカレントニューラルネットワークに匹敵するワード誤り率を達成するように効果的に訓練され得る。
2019512760.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のコンピュータによって実装されるリカレントニューラルネットワークを含むシステムであって、
前記リカレントニューラルネットワークが、複数の時間ステップの時間ステップごとにそれぞれのニューラルネットワーク入力を受信し、前記複数の時間ステップの時間ステップごとにそれぞれのニューラルネットワーク出力を生成するように構成され、
前記リカレントニューラルネットワークが、第1の長短期メモリ(LSTM)層を含み、
前記第1のLSTM層が、前記複数の時間ステップの時間ステップごとに、複数のゲートを現在の層入力、現在の層状態、および現在の層出力に適用することによって新規層状態および新規層出力を生成するように構成され、
前記複数のゲートのそれぞれが、前記複数の時間ステップの時間ステップごとに、ゲート入力ベクトルとゲートパラメータ行列とを乗算することによってそれぞれの中間のゲート出力ベクトルを生成するように構成され、
前記複数のゲートのうちの少なくとも1つについての前記ゲートパラメータ行列が、テプリッツに類似の構造化行列である、
システム。
【請求項２】
前記リカレントニューラルネットワークが、第2のLSTM層を含み、
前記第2のLSTM層が、前記複数の時間ステップの時間ステップごとに、第2の複数のゲートを第2の現在の層入力、第2の現在の層状態、および第2の現在の層出力に適用することによって第2の新規層状態および第2の新規層出力を生成するように構成され、
前記第2の複数のゲートのそれぞれが、前記複数の時間ステップの時間ステップごとに、第2のゲート入力ベクトルと第2のゲートパラメータ行列とを乗算することによってそれぞれの第2の中間のゲート出力ベクトルを生成するように構成され、
前記第2の複数のゲートのうちの少なくとも1つについての前記ゲートパラメータ行列が、圧縮パラメータ行列および射影行列によって定義される、
請求項1に記載のシステム。
【請求項３】
前記第1のLSTM層および前記第2のLSTM層が、順序付き層スタックにおける複数のLSTM層の各層である、請求項2に記載のシステム。
【請求項４】
前記第1のLSTM層が、前記スタックにおいて、前記第2のLSTM層よりも下位にある、請求項3に記載のシステム。
【請求項５】
前記複数のゲートのそれぞれが、前記複数の時間ステップの時間ステップごとに、それぞれのゲーティング関数を前記それぞれの中間のゲート出力ベクトルの各成分に適用して、それぞれの最終のゲート出力ベクトルを生成するように構成されている、請求項1から4のいずれか一項に記載のシステム。
【請求項６】
前記ニューラルネットワークが、音響モデルである、請求項1から5のいずれか一項に記載のシステム。
【請求項７】
前記ニューラルネットワークが、音声認識モデルである、請求項1から6のいずれか一項に記載のシステム。
【請求項８】
前記ニューラルネットワークは、前記ニューラルネットワークの未圧縮バージョンの少なくとも75%が圧縮される、請求項1から7のいずれか一項に記載のシステム。
【請求項９】
前記ニューラルネットワークのワード誤り率が、前記ニューラルネットワークの未圧縮バージョンのワード誤り率の0.3%内である、請求項1から8のいずれか一項に記載のシステム。
【請求項１０】
1つまたは複数のコンピュータによって実装されるリカレントニューラルネットワークを含むシステムであって、
前記リカレントニューラルネットワークが、複数の時間ステップの時間ステップごとにそれぞれのニューラルネットワーク入力を受信し、前記複数の時間ステップの時間ステップごとにそれぞれのニューラルネットワーク出力を生成するように構成され、
前記リカレントニューラルネットワークが、第1の長短期メモリ(LSTM)層を含み、
前記第1のLSTM層が、前記複数の時間ステップの時間ステップごとに、複数のゲートを現在の層入力、現在の層状態、および現在の層出力に適用することによって、新規層状態および新規層出力を生成するように構成され、
前記複数のゲートのそれぞれが、前記複数の時間ステップの時間ステップごとに、ゲート入力ベクトルとゲートパラメータ行列とを乗算することによってそれぞれの中間のゲート出力ベクトルを生成するように構成され、
前記複数のゲートのうちの少なくとも1つについての前記ゲートパラメータ行列が、圧縮パラメータ行列および射影行列によって定義される、
システム。
【請求項１１】
前記リカレントニューラルネットワークが、第2のLSTM層を含み、
前記第2のLSTM層が、前記複数の時間ステップの時間ステップごとに、第2の複数のゲートを第2の現在の層入力、第2の現在の層状態、および第2の現在の層出力に適用することによって、第2の新規層状態および第2の新規層出力を生成するように構成され、
前記第2の複数のゲートのそれぞれが、前記複数の時間ステップの時間ステップごとに、第2のゲート入力ベクトルと第2のゲートパラメータ行列とを乗算することによって、それぞれの第2の中間のゲート出力ベクトルを生成するように構成され、
前記第2の複数のゲートのうちの少なくとも1つについての前記ゲートパラメータ行列が、テプリッツに類似の構造化行列である、
請求項10に記載のシステム。
【請求項１２】
前記第1のLSTM層および前記第2のLSTM層が、順序付き層スタックにおける複数のLSTM層の各層である、請求項11に記載のシステム。
【請求項１３】
前記第2のLSTM層が、前記スタックにおいて、前記第1のLSTM層よりも下位にある、請求項12に記載のシステム。
【請求項１４】
前記複数のゲートのそれぞれが、前記複数の時間ステップの時間ステップごとに、それぞれのゲーティング関数を前記それぞれの中間のゲート出力ベクトルの各成分に適用して、それぞれの最終のゲート出力ベクトルを生成するように構成されている、請求項10から13のいずれか一項に記載のシステム。
【請求項１５】
前記ニューラルネットワークが、音響モデルである、請求項10から14のいずれか一項に記載のシステム。
【請求項１６】
前記ニューラルネットワークが、音声認識モデルである、請求項10から15のいずれか一項に記載のシステム。
【請求項１７】
前記ニューラルネットワークは、前記ニューラルネットワークの未圧縮バージョンの少なくとも75%が圧縮される、請求項10から16のいずれか一項に記載のシステム。
【請求項１８】
前記ニューラルネットワークのワード誤り率が、前記ニューラルネットワークの未圧縮バージョンのワード誤り率の0.3%内である、請求項10から17のいずれか一項に記載のシステム。
【請求項１９】
コンピュータプログラムにより符号化された1つまたは複数の非一時的コンピュータストレージ媒体であって、前記コンピュータプログラムが、命令を含み、前記命令は、1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、
1つまたは複数のコンピュータによって実装されるリカレントニューラルネットワークを実装する動作を実行させ、
前記リカレントニューラルネットワークが、複数の時間ステップの時間ステップごとにそれぞれのニューラルネットワーク入力を受信し、前記複数の時間ステップの時間ステップごとにそれぞれのニューラルネットワーク出力を生成するように構成され、
前記リカレントニューラルネットワークが、第1の長短期メモリ(LSTM)層を含み、
前記第1のLSTM層が、前記複数の時間ステップの時間ステップごとに、複数のゲートを現在の層入力、現在の層状態、および現在の層出力に適用することによって、新規層状態および新規層出力を生成するように構成され、
前記複数のゲートのそれぞれが、前記複数の時間ステップの時間ステップごとに、ゲート入力ベクトルとゲートパラメータ行列とを乗算することによってそれぞれの中間のゲート出力ベクトルを生成するように構成され、
前記複数のゲートのうちの少なくとも1つについての前記ゲートパラメータ行列が、テプリッツに類似の構造化行列である、
1つまたは複数の非一時的コンピュータストレージ媒体。
【請求項２０】
コンピュータプログラムにより符号化された1つまたは複数の非一時的コンピュータストレージ媒体であって、前記コンピュータプログラムが、命令を含み、前記命令は、1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、
1つまたは複数のコンピュータによって実装されるリカレントニューラルネットワークを実装させ、
前記リカレントニューラルネットワークが、複数の時間ステップの時間ステップごとにそれぞれのニューラルネットワーク入力を受信し、前記複数の時間ステップの時間ステップごとにそれぞれのニューラルネットワーク出力を生成するように構成され、
前記リカレントニューラルネットワークが、第1の長短期メモリ(LSTM)層を含み、
前記第1のLSTM層が、前記複数の時間ステップの時間ステップごとに、複数のゲートを現在の層入力、現在の層状態、および現在の層出力に適用することによって、新規層状態および新規層出力を生成するように構成され、
前記複数のゲートのそれぞれが、前記複数の時間ステップの時間ステップごとに、ゲート入力ベクトルとゲートパラメータ行列とを乗算することによってそれぞれの中間のゲート出力ベクトルを生成するように構成され、
前記複数のゲートのうちの少なくとも1つについての前記ゲートパラメータ行列が、圧縮パラメータ行列および射影行列によって定義される、
1つまたは複数の非一時的コンピュータストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、ニューラルネットワークアーキテクチャおよびニューラルネットワークの圧縮に関する。
【背景技術】
【０００２】
ニューラルネットワークは、非線形ユニットの1つまたは複数の層を利用して、受信された入力についての出力を予測する機械学習モデルである。一部のニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワークの中の次の層、すなわち、次の隠れ層または出力層への入力として使用される。ネットワークの各層は、それぞれのパラメータセットの現在の値に従って、受信された入力から出力を生成する。一部のニューラルネットワーク、たとえば、時系列問題またはシーケンスツーシーケンス学習(リカレントニューラルネットワーク(recurrent neural network: RNN))について設計されているものは、リカレントループを組み込んでおり、このリカレントループにより、可変の隠れ状態の形態にあるメモリは、データ入力間の層内に持続することが可能になる。RNNの変形形態、長短期メモリ(long short-term memory: LSTM)ニューラルネットワークは、データ入力間のデータの持続性を制御するために、各層内に複数のゲートを含んでいる。一部のニューラルネットワーク、たとえば、時系列問題またはシーケンスツーシーケンス学習について設計されているものは、リカレントループを組み込んでおり、このリカレントループにより、可変の隠れ状態の形態にあるメモリは、データ入力間の層内に持続することが可能になる。
【発明の概要】
【課題を解決するための手段】
【０００３】
本明細書は、リカレントニューラルネットワークアーキテクチャに関する技術について説明する。概して、リカレントニューラルネットワークは、圧縮される少なくとも1つの長短期メモリ(LSTM)層を含む。LSTM層は、圧縮パラメータ行列を有する少なくとも1つのゲートを有する。LSTM層は、LSTM層におけるゲートパラメータ行列のうちの1つまたは複数をテプリッツ(Toeplitz)に類似の構造化行列に置き換えるか、またはゲートパラメータ行列を圧縮パラメータ行列および射影行列により再定義するかのいずれかによって圧縮され得る。任意選択的に、あるLSTM層が、LSTM層におけるゲートパラメータ行列のうちの1つをテプリッツに類似の構造化行列に置き換えることによって圧縮され得、別のLSTM層が、他のLSTM層におけるゲートパラメータ行列のうちの1つを圧縮パラメータ行列および射影行列により再定義することによりこのゲートパラメータ行列を置き換えることによって圧縮され得る。
【０００４】
1つまたは複数のコンピュータのシステムが特定の動作または行為を行うように構成されているということは、システムがその上に、動作に際してシステムに動作または行為を行わせるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作または行為を行うように構成されているということは、1つまたは複数のプログラムが、データ処理装置によって実行されたときに装置に動作または行為を行わせる命令を含んでいることを意味する。
【０００５】
本明細書において説明される主題は、次の利点のうちの1つまたは複数を実現するために特定の諸実施形態において実装され得る。リカレントニューラルネットワークの性能は、リカレントニューラルネットワークに圧縮LSTM層を含むことによって改善し得る。具体的には、リカレントニューラルネットワークに圧縮LSTM層を含むことによって、リカレントニューラルネットワークは、より効率的にデータを処理し、より少ないデータストレージを使用することができるように構成されている。圧縮LSTM層を有するリカレントニューラルネットワークは、フルサイズの、たとえば未圧縮のリカレントニューラルネットワークに匹敵するワード誤り率を達成するように効果的に訓練され得る。
【０００６】
本明細書の主題の1つまたは複数の実施形態の詳細については、添付の図面および下記の説明に記載される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【０００７】
【図１】一例示的なニューラルネットワークシステムを示す図である。
【図２Ａ】例示的な構造化行列を示す図である。
【図２Ｂ】例示的な構造化行列を示す図である。
【図３】現在の層入力を処理して次の層出力を生成するための例示的な方法の流れ図である。
【図４】ゲートをゲート入力ベクトルに適用してゲート出力ベクトルを生成するための例示的な方法の流れ図である。
【図５】飽和LSTM層を含むリカレントニューラルネットワークを訓練するための例示的な方法の流れ図である。
【発明を実施するための形態】
【０００８】
様々な図面の中の同様の参照番号および表示は、同様の要素を示す。
【０００９】
図1は、例示的なニューラルネットワークシステム100を示している。ニューラルネットワークシステム100は、1つまたは複数の場所の中の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの一例であり、ここで、後述のシステム、構成要素、および技法が実装される。
【００１０】
ニューラルネットワークシステム100は、複数の時間ステップの各時間ステップごとにそれぞれのニューラルネットワーク入力を受信し時間ステップごとにそれぞれのニューラルネットワーク出力を生成する機械学習システムである。つまり、複数の時間ステップの各時間ステップごとに、ニューラルネットワークシステム100は、ニューラルネットワーク入力を受信し、ニューラルネットワーク入力を処理して、ニューラルネットワーク出力を生成する。たとえば、所与の時間ステップtにおいて、ニューラルネットワークシステム100は、ニューラルネットワーク入力102を受信し、ニューラルネットワーク出力132を生成することができる。
【００１１】
ニューラルネットワークシステム100は、生成されたニューラルネットワーク出力を出力データレポジトリに記憶すること、または他の何らかの当座の目的に使用するためにニューラルネットワーク出力を提供することができる。
【００１２】
ニューラルネットワークシステム100は、任意の種類のデジタルデータ入力を受信し、その入力に基づいて、任意の種類のスコアまたは分類出力を生成するように構成され得る。
【００１３】
たとえば、ニューラルネットワークシステム100への入力が、画像、または画像から抽出されたフィーチャである場合、所与の画像についてニューラルネットワークシステム100によって生成される出力は、1組のオブジェクトカテゴリそれぞれについてのスコアとすることができ、各スコアは、画像がカテゴリに属するオブジェクトの画像を含んでいることの推定尤度(estimated likelihood)を表す。
【００１４】
別の例として、ニューラルネットワークシステム100への入力が、Internetリソース(たとえば、ウェブページ)、ドキュメント、またはドキュメントの一部分、あるいはInternetリソース、ドキュメント、またはドキュメントの一部分から抽出されるフィーチャである場合、所与のInternetリソース、ドキュメント、またはドキュメントの一部分についてニューラルネットワークシステム100によって生成される出力は、1組のトピックそれぞれについてのスコアとすることができ、各スコアは、Internetリソース、ドキュメント、またはドキュメント部分がトピックに関することの推定尤度を表す。
【００１５】
別の例として、ニューラルネットワークシステム100への入力が、ユーザについての個人向け推薦のフィーチャ、たとえば、推薦についてコンテキストを特徴付けるフィーチャ、たとえば、ユーザがとった以前の行為を特徴付けるフィーチャである場合、ニューラルネットワークシステム100によって生成される出力は、1組のコンテンツ品目それぞれについてのスコアとすることができ、各スコアは、ユーザがコンテンツ品目の推薦を受けることに好意的に応答することになることの推定尤度を表す。これらの例のうちのいくつかにおいては、ニューラルネットワークシステム100は、ユーザにコンテンツ推薦を行う強化学習システムの一部である。
【００１６】
別の例として、ニューラルネットワークシステム100への入力が、1つの言語におけるテキストである場合、ニューラルネットワークシステム100によって生成される出力は、別の言語における1組のテキスト片それぞれについてのスコアとすることができ、各スコアは、他の言語におけるテキスト片が入力テキストの他の言語への適切な変換であることの推定尤度を表す。
【００１７】
別の例として、ニューラルネットワークシステム100への入力が、音声発話のフィーチャである場合、ニューラルネットワークシステム100によって生成される出力は、1組のテキスト片それぞれについてのスコアとすることができ、各スコアは、テキスト片が、発話についての正確な転写であることの推定尤度を表す。
【００１８】
別の例として、ニューラルネットワークシステム100への入力が、画像である場合、ニューラルネットワークシステム100によって生成される出力は、1組のテキスト片それぞれについてのスコアとすることができ、各スコアは、テキスト片が入力画像の中に存在するテキストであることの推定尤度を表す。
【００１９】
具体的には、ニューラルネットワークシステム100は、リカレントニューラルネットワーク110を含み、このリカレントニューラルネットワーク110は、ひいては、圧縮長短期メモリ(LSTM)層120を含む。リカレントニューラルネットワーク110は、時間ステップごとに、ニューラルネットワーク入力を受信し、ニューラルネットワーク入力を処理して、時間ステップにおいてニューラルネットワーク出力を生成するように構成されている。
【００２０】
圧縮LSTM層120に加えて、リカレントニューラルネットワーク110は、1つまたは複数の他の構成要素、たとえば、他の圧縮LSTM層、従来のLSTM層、他のリカレントニューラルネットワーク層、および他の非リカレントニューラルネットワーク層などを含むことができる。
【００２１】
たとえば、リカレントニューラルネットワーク110は、入力層と、互いに順番にスタックするように構成された圧縮LSTM層120を含む複数のLSTM層と、時間ステップごとに、スタックの中の最高位のLSTM層から、任意選択的に、スタックの中の他のLSTM層から層出力を受信し、層出力を処理して、時間ステップにおいてニューラルネットワーク出力132を生成する出力層とを含むディープLSTMネットワークとすることができる。
【００２２】
圧縮LSTM層120は、時間ステップごとに、現在の層入力122を受信し、現在の層入力122、現在の層状態、および現在の層出力を処理して新規層出力126を生成し、現在の層状態を更新して新規層状態124を生成するように構成されている。
【００２３】
リカレントニューラルネットワーク110の構成によっては、現在の層入力122は、ニューラルネットワーク入力102であっても、またはリカレントニューラルネットワーク110の異なる構成要素によって生成される出力であってもよい。
【００２４】
加えて、第1のステップ後の各時間ステップでは、現在の層状態は、前の時間ステップにおいて生成された新規層状態であり、現在の層出力は、前の時間ステップからの新規層出力である。第1の時間ステップでは、現在の層状態は、所定の初期層状態とすることができ、現在の層出力は、所定の初期層出力とすることができる。
【００２５】
リカレントニューラルネットワーク110の構成によっては、新規層出力126は、リカレントニューラルネットワーク110の中の別のLSTM層への入力として、または異なるタイプのニューラルネットワーク構成要素、たとえば出力層への、もしくは異なるタイプのニューラルネットワーク層への入力として提供されることも、あるいはリカレントニューラルネットワーク110のニューラルネットワーク出力132として提供されることもある。
【００２６】
具体的には、圧縮LSTM層120は、複数のゲートを現在の層入力122、現在の層状態、および現在の層出力に適用して、新規層出力126を生成し現在の層状態を更新して新規層状態124を生成し、ゲートのうちの少なくとも1つは圧縮重み行列を含んでいる。たとえば、層スタックの少なくとも1つの層は、層におけるゲートパラメータ行列のうちの1つまたは複数を構造化行列に置き換えること(「構造化行列圧縮」)によって、またはゲートパラメータ行列を圧縮パラメータ行列および射影行列により再定義すること(「射影圧縮」)によって圧縮され得る。ゲートは、たとえば入力ゲート、忘却ゲート(forget gate)、セル状態ゲート、または出力ゲートを含むことができるが、これらに限定されない。加えて、各ゲートは、層間パラメータ行列とリカレントパラメータ行列との両方を含むことができる。
【００２７】
構造化行列は、mn個よりも少ないパラメータで記述され得るm×n行列である。図2Aは、構造化行列の例を示している。たとえば、構造化行列には、次の一般クラス:テプリッツ行列200、ヴァンデルモンド(Vandermonde)行列202、およびコーシー(Cauchy)行列204が含まれる。具体的には、テプリッツ行列200は、パラメータが対角に沿って一致する行列である。つまり、テプリッツ行列200は、その対角のそれぞれに沿って定数値を有する。同じ特性が反対角について成り立つ場合、行列200は、ハンケル(Hankel)行列と呼ばれる。ヴァンデルモンド行列202は、3番目〜n番目の列の行列エントリが、行列の2番目の列におけるエントリの要素ごとのべき乗(elementwise powers)をとることによって定義される行列である。同様に、コーシー行列204は、2つのベクトル(UおよびV)によって完全に定義され得る行列である。コーシー行列204の各要素aijは、
【００２８】
【数１】
2019512760.tif 000003
【００２９】
によって定義される。
【００３０】
そのような構造化行列は、mn個よりも少ないパラメータによって完全に記述され得るので、そのような構造化行列を使用して圧縮LSTM層におけるゲート行列を表すと、LSTMネットワークのメモリ要件を削減することができる。加えて、構造化行列は、行列ベクトル積および勾配計算をより高速に行うことを可能にするので、LSTMネットワークの訓練および処理を加速させることができる。
【００３１】
構造化行列の上記の一般クラスは、構造化に類似の行列に変形して圧縮LSTM層120において使用することができる。たとえば、テプリッツに類似の行列は、テプリッツ行列の積および逆数、ならびにそれらの線形結合を含むテプリッツ構造の一般化である。テプリッツに類似の行列は、rの巡回行列とスキュー巡回行列との積に対する和として、図2Bに示されているようにパラメータ化され得る。
【００３２】
便宜上、再度、図1を参照して、リカレントニューラルネットワーク110の圧縮LSTM層120における構造化行列の使用について、一例として、テプリッツに類似の行列を使用して論じる。テプリッツに類似の行列の複雑さは、図2Bにおける巡回行列とスキュー巡回行列との和で示されているように、変位ランク(displacement rank)、すなわち、合算されている積の数を使用して制御され得る。低変位ランクは、巡回行列およびテプリッツ行列などの高度に構造化された行列、ならびにそれらの逆数に対応する。高変位ランク行列は、ますます非構造化される行列をモデル化するために使用され得る。いくつかの例において、変位ランクは、圧縮スキームの計算複雑性、ストレージ要件、およびモデリング容量を制御するために使用され得る。いくつかの例において、変位ランクは、アプリケーション要件に基づいて調整され得る。
【００３３】
いくつかの実装形態において、テプリッツに類似の行列構造は、特定の圧縮LSTM層120におけるゲートのすべてについてのリカレントパラメータ行列および層間パラメータ行列に適用される。いくつかの実装形態において、テプリッツに類似の行列構造は、層スタック(たとえば層1および層2)の中のより下位の層に適用される。
【００３４】
リカレントニューラルネットワーク層についての射影圧縮モデルにおいて、圧縮LSTM層120は、特定の層(たとえば層l)からの、サイズm×nの未圧縮リカレントパラメータ行列を、サイズm×rの圧縮リカレントパラメータ行列、および射影行列r×nに置き換えることによって生成される。加えて、次のより上位のLSTM層(たとえば層l+1)からの、やはりサイズm×nの対応する層間パラメータ行列は、サイズm×rの圧縮層間行列、および同じ射影行列に置き換えられる。さらに、圧縮リカレント行列および層間行列、ならびに射影行列のそれぞれのランクは、対応するリカレントパラメータ行列および層間パラメータ行列のランクよりも小さい。低ランク射影行列は、2つの対応する層にわたって共有される。射影圧縮モデルは、1つまたは複数の異なるゲートに適用され得る。いくつかの実装形態において、射影圧縮モデルは、層スタック(たとえば層2〜層N)の中のより上位の層に適用される。
【００３５】
いくつかの実装形態において、層または層の組は、構造化行列(または構造化に類似の行列)を使用することによって圧縮され得、層または層の組は、射影行列を使用して圧縮され得る。たとえば、リカレントニューラルネットワーク110のより下位の層または層の組(たとえば層1および層2)は、ゲートパラメータ行列をテプリッツに類似の行列に置き換えることによって圧縮され得、より上位の層または層の組(たとえば、層2〜層N)は、射影行列を使用することによって圧縮され得る。
【００３６】
いくつかの実装形態において、上述の圧縮技法の結果、LSTMニューラルネットワークのパラメータに少なくとも75%の削減がもたらされ得る。システムが音声認識モデルであるいくつかの実装形態において、上述の圧縮技法の結果、LSTMニューラルネットワークの少なくとも75%の圧縮がもたらされるとともに、システムの未圧縮バージョンのワード誤り率(WER)の0.3%内であるワード誤り率が維持され得る。いくつかの例において、上述の圧縮技法の結果、75%から83%に及ぶLSTMニューラルネットワークの圧縮が、0.3%から2.3%までの対応するWERとともにもたらされ得る。
【００３７】
ニューラルネットワーク出力を生成するようにリカレントニューラルネットワーク110を構成するために、ニューラルネットワークシステム100は、飽和LSTM層120のパラメータの訓練値の決定を含む、リカレントニューラルネットワーク110のパラメータの訓練値を決定するようにリカレントニューラルネットワーク110を訓練する。リカレントニューラルネットワークの訓練については、図5を参照して、より詳細に後述する。
【００３８】
図3は、現在の層入力を処理して次の層出力を生成するための例示的な方法300の流れ図である。便宜上、方法300について、1つまたは複数の場所に置かれている1つまたは複数のコンピュータのシステムによって実装される飽和LSTM層によって行われるように説明する。たとえば、本明細書に従って適切にプログラミングされた、ニューラルネットワークシステムにおける飽和LSTM層、たとえば図1のニューラルネットワークシステム100の圧縮LSTM層120は、方法300を行うことができる。
【００３９】
LSTM層は、忘却ゲートをゲート入力ベクトルに適用して忘却ゲート出力ベクトルを生成する(ステップ302)。ゲート入力ベクトルへのゲートの適用については、図4を参照して、より詳細に後述する。
【００４０】
いくつかの実装形態において、LSTM層は、現在の層入力と現在の層出力とを連結することによってゲート入力ベクトルを生成する。他のいくつかの実装形態において、LSTM層は、現在の層入力と現在の層出力と現在の層状態とを連結することによってゲート入力ベクトルを生成する覗き穴(peephole)LSTM層である。
【００４１】
LSTM層は、入力ゲートをゲート入力ベクトルに適用して入力ゲート出力ベクトルを生成する(ステップ304)。ゲート入力ベクトルへのゲートの適用については、図4を参照して、より詳細に後述する。いくつかの実装形態において、入力ゲートは、構造化パラメータ行列、たとえばテプリッツに類似の構造化パラメータ行列を含む。いくつかの実装形態において、入力ゲートは、圧縮されたリカレント行列または層間行列、および対応する射影行列を含む。
【００４２】
いくつかの実装形態において、システムは、入力ゲートを適用して入力ゲート出力ベクトルを生成するのではなく、忘却ゲート出力ベクトルを入力ゲート出力ベクトルとして使用する。つまり、いくつかの実装形態において、入力ゲートは、忘却ゲートと同じである。
【００４３】
LSTM層は、出力ゲートをゲート入力ベクトルに適用して出力ゲート出力ベクトルを生成する(ステップ306)。ゲート入力ベクトルへのゲートの適用については、図4を参照して、より詳細に後述する。いくつかの実装形態において、出力ゲートは、構造化パラメータ行列、たとえばテプリッツに類似の構造化パラメータ行列を含む。いくつかの実装形態において、出力ゲートは、圧縮されたリカレント行列または層間行列、および対応する射影行列を含む。
【００４４】
LSTM層は、現在の層入力および現在の層出力から中間のセル状態更新ベクトルを生成する(ステップ308)。具体的には、LSTM層は、スカッシング関数である活性化関数を有するニューラルネットワーク層を使用して現在の層入力および現在の層出力を処理して、中間のセル状態更新ベクトルを生成する。
【００４５】
概して、スカッシング関数は、受信された入力を-1から1までの排他的な範囲にマップする関数である。たとえば、スカッシング関数は、双曲線正接関数とすることができる。
【００４６】
LSTM層は、中間のセル状態更新ベクトルと入力ゲート出力ベクトルとを結合して最終のセル状態更新ベクトルを生成する(ステップ310)。具体的には、LSTM層は、中間のセル状態更新ベクトルと入力ゲート出力ベクトルとの間の点ごとの乗算(point-wise multiplication)を計算して最終のセル状態更新ベクトルを生成する。
【００４７】
LSTM層は、現在のセル状態と忘却ゲート出力ベクトルを結合して、中間の新規セル状態を生成する(ステップ312)。具体的には、LSTM層は、現在のセル状態と忘却出力ベクトルとの間の点ごとの乗算を計算して、中間の新規セル状態を生成する。いくつかの実装形態において、忘却ゲートは、構造化パラメータ行列、たとえばテプリッツに類似の構造化パラメータ行列を含む。いくつかの実装形態において、忘却ゲートは、圧縮されたリカレント行列または層間行列、および対応する射影行列を含む。
【００４８】
LSTM層は、中間の新規セル状態と最終のセル状態更新ベクトルとを結合して、たとえば合算して、最終の新規セル状態を生成する(ステップ314)。
【００４９】
LSTM層は、最終の新規セル状態から新規層出力を生成する(ステップ316)。新規層出力を生成するために、LSTM層は、スカッシング関数を最終の新規セル状態の各成分に適用して、中間の新規層出力を生成する。
【００５０】
次いで、LSTM層は、出力ゲート出力ベクトルと中間の新規層出力とを結合して、新規層出力を生成する。具体的には、LSTM層は、出力ゲート出力ベクトルと中間の新規層出力との間の点ごとの乗算を行って新規層出力を生成する。
【００５１】
新規層出力を生成する際の最終の新規層状態の使用に加えて、LSTM層は、その後の時間ステップにおいて使用するために新規層出力とともに最終の新規セル状態を維持する。
【００５２】
図4は、ゲートをゲート入力ベクトルに適用してゲート出力ベクトルを生成するための例示的な方法400の流れ図である。便宜上、方法400について、1つまたは複数の場所に置かれている1つまたは複数のコンピュータのシステムによって実装される飽和LSTM層によって行われるように説明する。たとえば、本明細書に従って適切にプログラミングされた、ニューラルネットワークシステムにおける圧縮LSTM層、たとえば図1のニューラルネットワークシステム100のLSTM層120は、方法400を行うことができる。
【００５３】
LSTM層は、ゲート入力ベクトルを決定する(ステップ402)。
【００５４】
LSTM層は、パラメータの組に従ってゲート入力ベクトルからそれぞれの中間のゲート出力ベクトルを生成する(ステップ404)。いくつかの実装形態において、LSTM層は、パラメータ行列とゲート入力ベクトルとの間の行列乗算を行い、次いで、バイアスベクトルを行列乗算の出力に加算して中間のゲート出力ベクトルを生成し、ゲートはそれぞれ、異なるパラメータ行列およびバイアスベクトルを有する。つまり、LSTM層が別個の入力ゲート、忘却ゲート、および出力ゲートを有する実装形態において、これらのゲートはそれぞれ、互いのゲートとは異なるパラメータ行列およびバイアスベクトルを有することになる。
【００５５】
LSTM層は、ゲーティング関数をそれぞれの中間のゲート出力ベクトルの各成分に適用して、最終のゲート出力ベクトルを生成する(ステップ406)。
【００５６】
概して、ゲーティング関数は、受信された入力を0から1までの排他的な範囲にマップする関数である。たとえば、ゲーティング関数は、シグモイド関数とすることができる。
【００５７】
しかしながら、LSTM層のゲートのうちの少なくとも1つについて、ステップ404において参照されたパラメータ行列は、圧縮パラメータ行列である。未圧縮パラメータ行列が、圧縮パラメータ行列に置き換えられる。LSTM層は、次いで、圧縮パラメータ行列とゲート入力ベクトルとの間の行列乗算を行う。たとえば、圧縮行列は、入力ゲート、忘却ゲート、セル状態、または出力ゲートのうちのいずれかにおいてパラメータ行列を置き換えることができる。いくつかの実装形態において、圧縮パラメータ行列は、LSTM層における複数のゲートに適用される。たとえば、圧縮パラメータ行列は、入力ゲートと出力ゲートとの両方に適用され得る。別の例として、圧縮パラメータ行列は、入力ゲート、出力ゲート、および忘却ゲートに適用され得る。
【００５８】
いくつかの実装形態において、圧縮パラメータ行列は、構造化に類似の行列、たとえば、テプリッツに類似の構造化行列である。いくつかの実装形態において、未圧縮ゲートパラメータは、圧縮パラメータ行列および対応する射影行列により再定義される。
【００５９】
図5は、圧縮LSTM層を含むリカレントニューラルネットワークを訓練するための例示的な方法500の流れ図である。便宜上、方法500について、1つまたは複数の場所に置かれている1つまたは複数のコンピュータのシステムによって行われるように説明する。たとえば、本明細書に従って適切にプログラミングされた、ニューラルネットワークシステム、たとえば図1のニューラルネットワークシステム100は、方法500を行うことができる。
【００６０】
システムは、リカレントニューラルネットワークを訓練するための訓練データを取得する(ステップ502)。訓練データは、複数の訓練例ペアを含み、各訓練例ペアは、訓練ニューラルネットワーク入力と、訓練ニューラルネットワーク入力のためのターゲットニューラルネットワーク出力とを含む。
【００６１】
システムは、目的関数を最適化する、すなわち、最大化または最小化のいずれかを行うことによって、パラメータの初期値から、リカレントニューラルネットワークのパラメータの訓練値を決定するために、訓練データにおけるリカレントニューラルネットワークを訓練する(ステップ504)。訓練中、システムは、圧縮された行列または複数の行列の値が圧縮行列の要件を継続的に満たすようにこれらの値に対する制約を課す。たとえば、テプリッツに類似の構造化行列では、システムは、各圧縮行列のエントリがつねにテプリッツに似ているように制約を課すことができ、または射影モデル圧縮行列では、システムは、パラメータ行列の値を直接、調整するのではなく、射影行列および圧縮パラメータ行列の値を調整することができる。
【００６２】
システムは、従来の機械学習訓練技法、たとえば、経時的バックプロパゲーションによる確率的勾配降下訓練法を用いて、目的関数を最適化することによってリカレントニューラルネットワークを訓練する。つまり、システムは、リカレントニューラルネットワークのパラメータの値を調整することによって、目的関数を最適化するために訓練技法の複数の反復を行うことができる。
【００６３】
本明細書において説明される主題および機能動作の諸実施形態は、本明細書に開示されている構造体およびそれらの構造的均等物を含む、デジタル電子回路において、有形具現化コンピュータソフトウェアまたはファームウェアにおいて、コンピュータハードウェアにおいて、あるいはそれらのうちの1つまたは複数の組合せにおいて実装され得る。本明細書において説明される主題の諸実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行される、またはデータ処理装置の動作を制御する、有形の非一時的プログラムキャリアにおいて符号化されるコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替として、または加えて、プログラム命令は、データ処理装置によって実行されるのに適切な受信装置に送信される情報を符号化するために生成される人工的に生成された伝搬信号、たとえば、機械生成の電気、光学、または電磁信号において符号化され得る。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せとすることができる。
【００６４】
「データ処理装置(data processing apparatus)」という用語は、データ処理ハードウェアを示し、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置はまた、専用論理回路機構、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)とすることも、またはこれをさらに含むこともできる。装置は、任意選択的に、ハードウェアに加えて、コンピュータプログラムについての実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むことができる。
【００６５】
(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、もしくはコードとも呼ばれ、または記載されることもある)コンピュータプログラムは、コンパイル型もしくは解釈型言語、または宣言型もしくは手続き型言語を含むプログラミング言語の任意の形態で記述され得、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境における使用に適している他のユニットとしてを含む任意の形態で配置され得る。コンピュータプログラムは、ファイルシステムの中のファイルに対応することができるが、対応する必要はない。プログラムは、他のプログラムまたはデータ、たとえばマークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプトを保持するファイルの一部分の中に、問題のプログラムに専用の単一のファイルの中に、あるいは複数の協調ファイル、たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部分を記憶するファイルの中に記憶され得る。コンピュータプログラムは、1つのコンピュータあるいは、1つのサイトに置かれている、または複数のサイトにわたって分散され、通信ネットワークによって相互接続されている複数のコンピュータにおいて実行されるように配置され得る。
【００６６】
本明細書において説明される方法および論理流れ図は、1つまたは複数のコンピュータプログラムを実行して、入力データを操作し、出力を生成することによって機能を果たす1つまたは複数のプログラマブルコンピュータによって行われ得る。方法および論理流れ図はまた、専用論理回路機構、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行われることも、あるいは装置がまた、この専用論理回路機構として実装されることもある。
【００６７】
コンピュータプログラムの実行に適しているコンピュータは、例として、汎用もしくは専用のマイクロプロセッサ、またはその両方、あるいは他の任意の種類の中央処理装置に基づき得る。概して、中央処理装置は、読取り専用メモリもしくはランダムアクセスメモリ、またはその両方から命令およびデータを受信することになる。コンピュータの必須要素は、命令を行う、または実行するための中央処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。概して、コンピュータはまた、データを記憶するための1つまたは複数のマスストレージデバイス、たとえば、磁気、磁気光学ディスク、または光学ディスクを含み、あるいはこれらの間でデータを送信もしくは受信する、またはその両方を行うために、これらに動作可能に結合されることになる。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、たとえば、いくつか例を挙げると、モバイル電話、パーソナルデジタルアシスタント(personal digital assistant: PDA)、モバイルオーディオまたはビデオプレイヤ、ゲームコンソール、全地球測位システム(Global Positioning System: GPS)受信機、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(universal serial bus :USB)フラッシュドライブに埋込み可能である。
【００６８】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体はすべて、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、たとえば内部ハードディスクもしくはリムーバブルディスク;磁気光学ディスク;ならびにCD-ROMおよびDVD-ROMディスクを含む、不揮発性メモリ、媒体、およびメモリデバイスの形態を含む。プロセッサおよびメモリは、専用論理回路機構によって補足可能、またはその専用論理回路機構の中に組込み可能である。
【００６９】
ユーザとの対話を可能にするために、本明細書において説明されている主題の諸実施形態は、情報をユーザに表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管(cathode ray tube))またはLCD(液晶ディスプレイ(liquid crystal display))モニタ、およびユーザが入力をコンピュータに与えることができるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールを有するコンピュータにおいて実装され得る。他の種類のデバイスが、同様にユーザとの対話を可能にするために使用されてもよく、たとえば、ユーザに提供されるフィードバックは、感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックの任意の形態であってよく、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受け取ることができる。加えて、コンピュータは、ユーザが使用するデバイスとドキュメントを送受信することによって、たとえば、ウェブブラウザから受信した要求に応答して、ユーザのクライアントデバイスにおけるウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
【００７０】
本明細書において説明される主題の諸実施形態は、バックエンド構成要素を、たとえばデータサーバとして含む、またはミドルウェア構成要素、たとえばアプリケーションサーバを含む、またはフロントエンド構成要素、たとえば関連グラフィカルユーザインターフェースもしくはユーザが本明細書において説明される主題の一実装形態と対話することができるウェブブラウザを有するクライアントコンピュータを含むコンピューティングシステム、あるいは1つまたは複数のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組合せにおいて実装され得る。システムの構成要素は、デジタルデータ通信、たとえば、通信ネットワークの任意の形態または媒体によって相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、たとえばInternetが含まれる。
【００７１】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、概して、互いにリモートであり、典型的には、通信ネットワークを介して対話する。クライアントとサーバとの関係性は、それぞれのコンピュータにおいて動作し、互いにクライアント/サーバ関係性を有するコンピュータプログラムにより生まれる。
【００７２】
本明細書は、多くの具体的な実装形態詳細を含んでいるが、これらは、いかなる発明の範囲についてもまたは特許請求され得る範囲についても限定と見なすべきでなく、特定の発明の特定の実施形態に固有であり得る特徴の説明と見なすべきである。別個の実施形態の文脈で本明細書において説明されている特定の特徴はまた、単一の実施形態における組合せで実装されてもよい。逆に、単一の実施形態の文脈で説明されている様々な特徴もまた、複数の実施形態において別個に、または任意の適切な副組合せで実装されてもよい。その上、特徴については、ある種の組合せにおける行為として上述され、したがって最初に特許請求され得るが、特許請求された組合せからの1つまたは複数の特徴は、いくつかの場合においては、組合せから削除され得、特許請求された組合せは、副組合せまたは副組合せの変形形態を対象とすることができる。
【００７３】
同様に、動作は、図面においては特定の順序で示されているが、これは、所望の結果を達成するために、そのような動作が図示の特定の順序もしくは連続的な順序で行われる必要がある、または例示の動作がすべて行われる必要があると理解すべきではない。特定の状況においては、マルチタスクの並列処理が有利である場合もある。その上、上述の諸実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離が必要であると理解すべきではなく、所望のプログラムコンポーネントおよびシステムが、概して、単一のソフトウェア製品に一緒に一体化され、または複数のソフトウェア製品にパッケージ化され得ることを理解すべきである。
【００７４】
主題の具体的な実施形態について説明してきた。他の実施形態は、次の特許請求の範囲の範囲内にある。たとえば、特許請求の範囲に列挙された行為は、異なる順序で行うことができ、依然として所望の結果を達成することができる。1つの例として、添付の図に示されている方法には、所望の結果を達成するために、必ずしも、図示の特定の順序または連続的な順序が必要なわけではない。特定の実装形態においては、マルチタスクの並列処理が有利な場合もある。
【符号の説明】
【００７５】
100  ニューラルネットワークシステム
102  ニューラルネットワーク入力
110  リカレントニューラルネットワーク
120  圧縮LSTM層
122  現在の層入力
124  新規層状態
126  新規層出力
132  ニューラルネットワーク出力
200  テプリッツ行列
202  ヴァンデルモンド行列
204  コーシー行列
300  方法
400  方法
500  方法
【図１】
2019512760.tif 000004
【図２Ａ】
2019512760.tif 000005
【図２Ｂ】
2019512760.tif 000006
【図３】
2019512760.tif 000007
【図４】
2019512760.tif 000008
【図５】
2019512760.tif 000009
【国際調査報告】
2019512760.tif 000010
2019512760.tif 000011
2019512760.tif 000012