(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-25
(45)【発行日】2023-06-02
(54)【発明の名称】質問応答としてのマルチタスク学習
(51)【国際特許分類】
G06F 40/56 20200101AFI20230526BHJP
G06F 40/44 20200101ALI20230526BHJP
G06F 16/90 20190101ALI20230526BHJP
【FI】
G06F40/56
G06F40/44
G06F16/90 100
【外国語出願】
(21)【出願番号】P 2021156339
(22)【出願日】2021-09-27
(62)【分割の表示】P 2020542614の分割
【原出願日】2019-01-30
【審査請求日】2021-09-27
(32)【優先日】2018-02-09
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-05-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】506332063
【氏名又は名称】セールスフォース インコーポレイテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】マッカン,ブライアン
(72)【発明者】
【氏名】ケスカー,ニティシュ,シリッシュ
(72)【発明者】
【氏名】ション,カイミング
(72)【発明者】
【氏名】ソーチャー,リチャード
【審査官】成瀬 博之
(56)【参考文献】
【文献】米国特許出願公開第2018/0082171(US,A1)
【文献】米国特許出願公開第2017/0091168(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/20-40/58
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
自然言語処理のためのシステムであって、当該システムは、
1つ又は複数のプロセッサと、
コンピュータ実行可能命令を格納するメモリと、を含み、
前記命令が前記1つ又は複数のプロセッサによって実行されると、当該システムに、
前記システムのモジュールで、
自然言語コンテキスト及び該自然言語コンテキストに関する自然言語
質問を受け取ること、
前記
自然言語コンテキスト
からのワード及び
前記自然言語質問
からのワードの、コンテキストベースの表現及び質問ベースの表現への第1のエンコーディングを実行すること、
双方向長・短期メモリ(biLSTM)を使用して、
前記第1のエンコーディングを実行して得られた前記コンテキストベースの表現及び前記質問ベースの表現の第2のエンコーディングを実行すること、
長・短期メモリ(LSTM)を使用して、
前記第2のエンコーディングを実行して得られた前記コンテキストベースの表現及び前記質問ベースの表現
並びに隠れ状態の連結に基づいて、コンテキスト調整済み隠れ状態を生成すること、
アテンション・ネットワークによって、前記biLSTM
からの
前記第2のエンコーディングを実行して得られた前記コンテキストベースの表現及び前記質問ベースの表現についての第1の出力及び前記LSTM
からの
前記コンテキスト調整済み隠れ状態についての第2の出力に基づいて、アテンション重みのセットを生成すること、
語彙レイヤによって、前記アテンション重みのセットに基づいて、語彙内の複数のワードに関する第1の分布状態を生成すること
であって、前記語彙レイヤは、前記隠れ状態を生成し、該隠れ状態に基づいて前記第1の分布状態を生成する、こと、
コンテキスト・レイヤによって、前記アテンション重みのセットに基づいて、前記コンテキストベースのワードに関する第2の分布状態を生成すること
であって、前記コンテキスト・レイヤは、前記アテンション重みの和を求めることにより、前記第2の分布状態を生成する、こと、及び
前記第1の分布状態及び前記第2の分布状態に基づいて
、質問に対する回答のワードのセットを選択すること、を含む動作を実行させる、
システム。
【請求項2】
前記動作は、スイッチを使用して
前記隠れ状態、及び前記コンテキスト調整済み隠れ状態を少なくとも連結して、前記語彙からの前記複数のワードに関する第1の分布状態と前記コンテキストベースのワードに関する前記第2の分布状態との間の
第2のアテンション重みのセットを生成することさらに含む、請求項1に記載のシステム。
【請求項3】
前記
モジュールは、線形レイヤ、
該線形レイヤに接続された第2のbiLSTM、
該第2のbiLSTMに接続されたコアテンション・レイヤ、及び
該コアテンション・レイヤに接続された第3のbiLSTMのうちの1つ又は複数を含む、請求項1に記載のシステム。
【請求項4】
前記動作は、
コアテンション・レイヤを介して、前記コンテキストベースの表現と前記質問ベースの表現との間の類似性(affinity)マトリックスを生成すること、
前記類似性マトリックスに基づいて、第2のアテンション重みを生成すること、及び
前記第2のアテンション重みを使用して、前記コンテキストベースの表現及び前記質問ベースの表現の加重和を生成することをさらに含む、請求項1に記載のシステム。
【請求項5】
前記語彙レイヤは、
前記アテンション重みのセット、前記第2のエンコーディング、及び前記コンテキスト調整済み隠れ状態に基づいて、隠れ状態を生成するためのtanhレイヤと、
語彙内の複数のワードに関する前記第1の分布状態を生成するためのsoftmaxレイヤと、を含む、請求項
2に記載のシステム。
【請求項6】
前記アテンション・ネットワークのデコーダ、前記LSTM、前記アテンション・ネットワーク、前記語彙レイヤ、前記コンテキスト・レイヤ、及び
前記スイッチが、前記回答のために各ワードを繰り返し選択する、請求項
5に記載のシステム。
【請求項7】
前記アテンション・ネットワークのトランスフォーマは、複数のトランスフォーマ・レイヤを含み、該複数のトランスフォーマ・レイヤのそれぞれは、第1のマルチヘッド・セルフアテンション・ネットワークを有するエンコーダ部分と、第2のマルチヘッド・セルフアテンション・ネットワーク及び第3のマルチヘッド・アテンション・ネットワークを有するデコーダ部分とを含む、請求項
5に記載のシステム。
【請求項8】
当該システムは、ハイブリッド式訓練戦略を使用して訓練され、当該システムは、最初に、シーケンシャル訓練戦略を使用して複数のタスクタイプに対して訓練され、次に、ジョイント訓練戦略を使用して前記複数のタスクタイプに対して訓練される、請求項1に記載のシステム。
【請求項9】
前記複数のタスクタイプのそれぞれは、言語翻訳タスクタイプ、分類タスクタイプ、又は質問応答タスクタイプである、請求項
8に記載のシステム。
【請求項10】
自然言語処理のための方法であって、当該方法は、
システムのモジュールで、
自然言語コンテキスト及び該自然言語コンテキストに関する自然言語
質問を受け取るステップと、
前記
自然言語コンテキスト
からのワード及び
前記自然言語質問
からのワードの、コンテキストベースの表現及び質問ベースの表現への第1のエンコーディングを実行するステップと、
双方向長・短期メモリ(biLSTM)を使用して、
前記第1のエンコーディングを実行して得られた前記コンテキストベースの表現及び前記質問ベースの表現の第2のエンコーディングを実行するステップと、
長・短期メモリ(LSTM)を使用して、
前記第2のエンコーディングを実行して得られた前記コンテキストベースの表現及び前記質問ベースの表現
並びに隠れ状態の連結に基づいて、コンテキスト調整済み隠れ状態を生成するステップと、
アテンション・ネットワークによって、前記biLSTM
からの
前記第2のエンコーディングを実行して得られた前記コンテキストベースの表現及び前記質問ベースの表現についての第1の出力及び前記LSTM
からの
前記コンテキスト調整済み隠れ状態についての第2の出力に基づいて、アテンション重みのセットを生成するステップと、
語彙レイヤによって、前記アテンション重みのセットに基づいて、語彙内の複数のワードに関する第1の分布状態を生成するステップ
であって、前記語彙レイヤは、前記隠れ状態を生成し、該隠れ状態に基づいて前記第1の分布状態を生成する、ステップと、
コンテキスト・レイヤによって、前記アテンション重みのセットに基づいて、前記コンテキストベースのワードに関する第2の分布状態を生成するステップ
であって、前記コンテキスト・レイヤは、前記アテンション重みの和を求めることにより、前記第2の分布状態を生成する、ステップと、
前記第1の分布状態及び前記第2の分布状態に基づいて
、質問に対する回答のワードのセットを選択するステップと、を含む、
方法。
【請求項11】
自然言語処理のためのプロセッサ実行可能命令を格納する非一時的なプロセッサ可読媒体であって、前記命令がプロセッサによって実行可能であり、該プロセッサが、
システムのモジュールで、
自然言語コンテキスト及び該自然言語コンテキストに関する自然言語
質問を受け取ること、
前記
自然言語コンテキスト
からのワード及び
前記自然言語質問
からのワードの、コンテキストベースの表現及び質問ベースの表現への第1のエンコーディングを実行すること、
双方向長・短期メモリ(biLSTM)を使用して、
前記第1のエンコーディングを実行して得られた前記コンテキストベースの表現及び前記質問ベースの表現の第2のエンコーディングを実行すること、
長・短期メモリ(LSTM)を使用して、
前記第2のエンコーディングを実行して得られた前記コンテキストベースの表現及び前記質問ベースの表現
並びに隠れ状態の連結に基づいて、コンテキスト調整済み隠れ状態を生成すること、
アテンション・ネットワークによって、前記biLSTM
からの
前記第2のエンコーディングを実行して得られた前記コンテキストベースの表現及び前記質問ベースの表現についての第1の出力及び前記LSTM
からの
前記コンテキスト調整済み隠れ状態についての第2の出力に基づいて、アテンション重みのセットを生成すること、
語彙レイヤによって、前記アテンション重みのセットに基づいて、語彙内の複数のワードに関する第1の分布状態を生成すること
であって、前記語彙レイヤは、前記隠れ状態を生成し、該隠れ状態に基づいて前記第1の分布状態を生成する、こと、
コンテキスト・レイヤによって、前記アテンション重みのセットに基づいて、前記コンテキストベースのワードに関する第2の分布状態を生成すること
であって、前記コンテキスト・レイヤは、前記アテンション重みの和を求めることにより、前記第2の分布状態を生成する、こと、及び
前記第1の分布状態及び前記第2の分布状態に基づいて
、質問に対する回答のワードのセットを選択すること、を含む動作を実行する、
非一時的なプロセッサ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本願は、2018年2月9日に出願された米国仮特許出願第62/628,850号及び2018年5月8日に出願された米国非仮特許出願第15/974,118号の利益を主張するものであり、どちらの出願も“Multitask Learning as Question Answering”という表題であり、これら両文献は、その全体が参照により組み込まれる。
【0002】
本願は、2018年5月8日に出願された“Multitask Learning as Question Answering”(代理人整理番号第70689.9US01A3335US1)という表題の米国特許出願第15/974,075号に関連しており、この文献は、その全体が参照により組み込まれる。
【0003】
本開示は、概して、自然言語処理に関し、より具体的には、自然言語コンテキストに関する自然言語質問に回答することに関する。
【背景技術】
【0004】
自然言語処理と、自然言語サンプルの内容に関する自然言語質問に回答するシステムの能力とは、自然言語形式で提供される情報に関するコンテキスト固有の推論をテストするためのベンチマークである。質問できる自然言語の質問には様々な種類があり、その回答には様々な種類の推論及び/又は様々な種類の解析が必要になる可能性があるため、これは複雑なタスクであり得る。
【0005】
従って、異なる種類の自然言語質問に同時に答えることができる統一されたシステム及び方法を有することは有利となろう。
【図面の簡単な説明】
【0006】
【
図1】いくつかの実施形態による自然言語処理タスクの簡略図である。
【
図2】いくつかの実施形態によるコンピュータ装置の簡略図である。
【
図3】いくつかの実施形態によるマルチタスク質問応答のためのシステムの簡略図である。
【
図4】いくつかの実施形態によるアテンション・ネットワークの簡略図である。
【
図5】いくつかの実施形態によるアテンションベースのトランスフォーマ・ネットワークのレイヤの簡略図である。
【
図6】いくつかの実施形態によるワード生成器の簡略図である。
【
図7】いくつかの実施形態によるマルチタスク学習の方法の簡略図である。
【
図8】いくつかの実施形態による訓練パフォーマンスの簡略図である。
【
図9A】いくつかの実施形態による訓練パフォーマンスの簡略図である。
【
図9B】いくつかの実施形態による訓練パフォーマンスの簡略図である。
【
図9C】いくつかの実施形態による訓練パフォーマンスの簡略図である。
【
図10A】いくつかの実施形態による訓練順序に基づく訓練パフォーマンスの簡略図である。
【
図10B】いくつかの実施形態による訓練順序に基づく訓練パフォーマンスの簡略図である。
【発明を実施するための形態】
【0007】
図面において、同じ名称を有する要素は、同じ又は同様の機能を有する。
【0008】
コンテキスト固有の推論(自然言語情報の内容に関するコンテキスト固有の推論を含む)は、機械知能及び学習アプリケーションにおける重要な問題である。コンテキスト固有の推論は、自然言語テキストの解釈に使用するための貴重な情報を提供し、且つ自然言語テキストの内容に関する質問の回答(answering)、言語翻訳、意味的コンテキスト解析等の様々なタスクを含むことができる。しかしながら、これらの様々なタイプの自然言語処理タスクのそれぞれには、大抵の場合、様々なタイプの解析及び/又は様々なタイプの予期される応答が含まれる。
【0009】
自然言語処理におけるマルチタスク学習は、タスクのタイプが類似している場合に向上してきた。しかしながら、言語翻訳、質問応答(question answering)、及び分類等、様々な種類のタスクに取り組む場合に、パラメータの共有は、大抵の場合、ワード(word)ベクトル又はパラメータのサブセットに限定される。最終的なアーキテクチャは、典型的に、高度に最適化され、タスクタイプ毎に設計されているため、タスクタイプ全体で一般化する機能は制限されている。
【0010】
しかしながら、これらのタスクタイプの多くは、単一のタイプのタスクとしてフレーム化された場合に、同じアーキテクチャ及びモデルによって処理することができる。例えば、全てではないにしても多くの自然言語処理タスクを質問応答タスクとして扱うことができる。例えば、分類、言語翻訳、及び質問応答のタスクタイプは全て、質問応答タスクとしてフレーム化され得る。質問応答フォームのこれら3つのタスクタイプのそれぞれの例を
図1に示す。
【0011】
図2は、いくつかの実施形態によるコンピュータ装置200の簡略図である。
図2に示されるように、コンピュータ装置200は、メモリ220に結合されたプロセッサ210を含む。コンピュータ装置200の動作は、プロセッサ210によって制御される。そして、コンピュータ装置200が1つのプロセッサ210のみで示されているが、プロセッサ210は、コンピュータ装置200の1つ又は複数の中央処理装置、マルチコアプロセッサ、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、グラフィックス処理装置(GPU)等を表し得ることを理解されたい。コンピュータ装置200は、スタンドアロン・サブシステムとして、コンピュータ装置に追加されたボードとして、及び/又は仮想マシンとして実装することができる。
【0012】
メモリ220は、コンピュータ装置200によって実行されるソフトウェア及び/又はコンピュータ装置200の動作中に使用される1つ又は複数のデータ構造を格納するために使用され得る。メモリ220は、1つ又は複数のタイプの機械可読媒体を含み得る。機械可読媒体のいくつかの一般的な形式には、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、CD-ROM、他の光媒体、パンチカード、紙テープ、孔パターンを有する他の物理媒体、RAM、PROM、EPROM、FLASH-EPROM、他のメモリチップ又はカートリッジ、及び/又はプロセッサ又はコンピュータが読み取るように適合された他の媒体が含まれ得る。
【0013】
プロセッサ210及び/又はメモリ220は、任意の適切な物理的配置で配置してもよい。いくつかの実施形態では、プロセッサ210及び/又はメモリ220は、同じボード上、同じパッケージ内(例えば、システム・イン・パッケージ)、同じチップ上(例えば、システム・オン・チップ)等で実装され得る。いくつかの実施形態では、プロセッサ210及び/又はメモリ220は、分散型、仮想化、及び/又はコンテナ化された計算リソースを含み得る。そのような実施形態と一致して、プロセッサ210及び/又はメモリ220は、1つ又は複数のデータセンタ及び/又はクラウドコンピュータ設備に配置してもよい。
【0014】
示されるように、メモリ220は、質問応答モジュール230を含み、質問応答モジュール230を使用して、本明細書でさらに説明する質問応答システム及びモデルを実装及び/又はエミュレートする、及び/又は本明細書でさらに説明する方法のいずれかを実施することができる。いくつかの例では、質問応答モジュール230を使用して、自然言語コンテキストに関する自然言語質問に回答することができる。いくつかの例では、質問応答モジュール230は、自然言語コンテキストに関する自然言語質問に回答するために使用される質問応答システム又はモデルの反復訓練及び/又は評価を処理することもできる。いくつかの例では、メモリ220は、実行可能コードを含む非一時的で有形の機械可読媒体を含み、コードが1つ又は複数のプロセッサ(例えば、プロセッサ210)によって実行されたときに、1つ又は複数のプロセッサに、本明細書でさらに説明するカウント方法を実行させることができる。いくつかの例では、質問応答モジュール230は、ハードウェア、ソフトウェア、及び/又はハードウェアとソフトウェアとの組合せを使用して実装され得る。示されるように、コンピュータ装置200は、自然言語コンテキスト240と、自然言語コンテキスト240に関する自然言語質問250とを受け取り、これらは質問応答モジュール230に提供され、次に、質問応答モジュール230は、自然言語コンテキスト240の内容に基づいて、自然言語質問250対する自然言語応答(answer: 回答)260を生成する。
【0015】
図3は、いくつかの実施形態によるマルチタスク質問応答のためのシステム300の簡略図である。システム300は、自然言語コンテキストc及び自然言語質問qを受け取る。コンテキストc及び質問qのそれぞれが、システム300による処理のためにベクトルにエンコードされる。いくつかの例では、コンテキストc及び質問q内のそれぞれのワードは、ワード・エンコーディングを使用してエンコードされる。いくつかの例では、各ワードのエンコーディングは、各ワードが
【数1】
の要素としてエンコードされるGloVeエンコーディングに基づいている。いくつかの例では、各ワードのエンコーディングは、各ワードが
【数2】
の要素としてエンコードされる文字n-gramエンコーディングに基づいている。いくつかの例では、各ワードのエンコーディングは、GloVeと文字エングラム(engram)・エンコーディングとの連結に基づいている。いくつかの例では、ワードにGloVe及び/又は文字n-gramエンコーディングがない場合(例えば、ワードが英語ではない場合)に、GloVeエンコーディングと同じである、平均及び標準偏差を有する(例えば、平均がゼロ、標準偏差が0.4の)正規分布から、ランダム・エンコーディングが選択され、同じランダム・エンコーディングが、それぞれのワードの出現毎に一貫して使用される。
【0016】
次に、コンテキストcのエンコーディングは線形レイヤ310に渡され、質問qのエンコーディングは線形レイヤ315に渡される。線形レイヤ310及び315のそれぞれは、式1と一致するそれぞれの伝達関数を実行し、ここで、W及びbは、それぞれの線形レイヤ310又は315の重み及びバイアスであり、aはそれぞれの線形レイヤ310又は315の出力であり、xはそれぞれの線形レイヤ310又は315への入力であり、fはそれぞれの線形レイヤ310又は315の理論的な線形関数、飽和線形関数等の線形伝達関数である。いくつかの例では、線形レイヤ310及び315は、コンテキストc及び質問qのエンコーディングの次元を低減する(reduce)。いくつかの例では、エンコーディングの次元は、各エンコーディングが
【数3】
の要素になるように低減される。
【0017】
a=f(Wx+b) 式1
【0018】
線形レイヤ310及び315によって出力されるエンコーディングは、それぞれ、さらに、単層双方向長期メモリ・ネットワーク(biLSTM)320によってさらにエンコードされて、
【数4】
が形成され、biLSTM325によってさらにエンコードされて、
【数5】
が形成される。いくつかの例では、biLSTM320及び/又は325は、コンテキストc及び質問qに対するエンコーディングの次元をさらに低減し得る。biLSTM320及び325のそれぞれは、各タイムステップiにおいて、式2に従ってh
i
→とh
i
←との連結としてh
iの出力を生成する。ここで、xは、それぞれのbiLSTMへの入力であり、LSTMは長・短期メモリ・ネットワークに対応する。いくつかの例では、biLSTM320及び/又は325は200の隠れサイズを有しており、
【数6】
の要素に対する
【数7】
及び
【数8】
のエンコーディングの次元をさらに低減する。
【0019】
hi
→=LSTM(xi,hi-1
→)
hi
←=LSTM(xi,hi+1
←) 式2(両方で式2)
【0020】
出力
【数9】
及び
【数10】
は、次に、コアテンション(coattention)・レイヤ330に渡される。コアテンション・レイヤ330は、最初にコンテキスト・センチネル(sentinel)・ベクトルを
【数11】
の先頭に付加し、質問センチネル・ベクトルを
【数12】
の先頭に付加する。センチネル・ベクトルにより、コアテンション・レイヤ330のコアテンション・メカニズムが2つのシーケンスの間で全てのトークンを整列させるのをやめさせることができる。次に、コアテンション・レイヤ330は、ベクトルを、時間次元に沿ってベクトル
【数13】
及びベクトル
【数14】
を積み重ねて、
【数15】
及び
【数16】
をそれぞれ取得する。次に、コアテンション・レイヤ330は、式3に従って類似性(affinity)マトリックスAを生成する。
【0021】
【0022】
次に、コアテンション・レイヤ330は、式4を使用して各シーケンスに関してアテンション重みAc及びAqを生成し、ここで、sofmax(X)は、Xの列に関して正規化する。
Ac=softmax(A)
Aq=softmax(AT) 式4(両方で式4)
【0023】
次に、コアテンション・レイヤ330は、アテンション重みA
c及びA
qを使用して、式5を使用して、コンテキスト及び質問の加重和をそれぞれ
【数18】
及び
【数19】
として生成する。
【0024】
【0025】
次に、コアテンション・レイヤ330は、
【数21】
及び
【数22】
の連結としてコアテンション要約Sを生成する。コアテンション要約Sには一連のベクトルsが含まれており、sからの(センチネル位置に対応する)第1のベクトルは削除できる。次に、SがbiLSTM340に渡される。biLSTM340は、位置エンコーディングが追加される出力
【数23】
を生成する。
【0026】
次に、出力
【数24】
は、マルチレイヤのセルフアテンション(self-attention)ベースのトランスフォーマの各レイヤiのエンコーディング
【数25】
を生成するマルチレイヤのセルフアテンションベースのトランスフォーマに渡される。
図3に示されるように、マルチレイヤのセルフアテンションベースのトランスフォーマはトランスフォーマ・レイヤ351及び352を含む。また、マルチレイヤのセルフアテンションベースのトランスフォーマが2つのレイヤで示されているが、いくつかの実施形態では、マルチレイヤのセルフアテンションベースのトランスフォーマは、単一のレイヤのみ又は3つ以上のレイヤを含むことができる。各トランスフォーマ・レイヤ351及び352は、
図4及び
図5に関して以下でさらに詳細に説明するように、残余接続(residual connection)及びレイヤ正規化とともに位置毎に完全に接続されたフィードフォワード・ネットワークが続くマルチヘッドのセルフアテンション・メカニズムを含む。
【0027】
図4は、いくつかの実施形態によるアテンション・ネットワーク400の簡略図である。
図4に示されるように、アテンション・ネットワーク400は、クエリ
【数26】
、キーk
【数27】
及び値
【数28】
を受け取る。q、k、及びvのそれぞれは、式6~式8に従って、それぞれの重みW
Q410、W
K420、及びW
V430の影響を受ける。重みW
Q410、W
K420、及びW
V430は、バック・プロパゲーション(back propagation)を使用した訓練中に変更される。
【0028】
【0029】
【0030】
【0031】
得られたQ、K、及びVベクトルは、QとKのドット積を生成するアテンション(attention)伝達関数440に渡され、次に式9に従ってVに適用される。
【0032】
【0033】
次に、追加及び正規化モジュール450を使用して、クエリqをアテンション伝達関数からの出力と組み合わせて、アテンション・ネットワーク400による学習の速度を改善する残余接続を提供する。追加及び正規化モジュール450は、式10を実行し、ここでμ及びσはそれぞれ入力ベクトルの平均及び標準偏差であり、giは、レイヤの正規化(layer normalization)をスケーリングするためのゲインパラメータである。追加及び正規化モジュール450からの出力は、アテンション・ネットワーク400の出力である。
【0034】
【0035】
アテンション・ネットワーク400は、大抵の場合、2つの変形形態で使用される。第1の変形形態は、アテンション・ネットワーク400と一致する複数のアテンション・ネットワークが並列に実装されるマルチヘッドのアテンション・レイヤであり、マルチヘッド・アテンション・ネットワークの各「ヘッド」は、それ自体の重みWQ410、WK420、及びWV430を有しており、これらの重みは、異なる値に初期化され、異なるエンコーディングを学習するように訓練される。次に、各ヘッドからの出力を一緒に連結して、マルチヘッドのアテンション・レイヤの出力を形成する。第2の変形形態は、マルチヘッドのアテンション・レイヤであるセルフアテンション・レイヤであり、ここでq、k、及びvの入力が、アテンション・ネットワークの各ヘッドと同じである。
【0036】
セルフアテンションベースのレイヤは、2017年6月12日に提出されたVaswaniらの、“Attention is All You Need,”arXiv preprint arXiv: 1706.03762にさらに記載されており、この文献は、その全体が参照により組み込まれる。
【0037】
図5は、いくつかの実施形態によるアテンションベースのトランスフォーマ・ネットワークのレイヤ500の簡略図である。いくつかの実施形態によれば、システム300の各トランスフォーマ・レイヤ351及び/又は352は、レイヤ500と一致する。
図5に示されるように、レイヤ500は、エンコード化レイヤ510及びデコード化レイヤ520を含む。
【0038】
エンコード化レイヤ510は、(例えば、入力ネットワークからエンコード化スタックにおける第1のレイヤの、又は次に最も低いレイヤのレイヤ出力からエンコード化スタックの他の全てのレイヤの)レイヤ入力を受け取り、それをマルチヘッドのアテンション・レイヤ511の3つ全て(q、k、及びv)の入力に与え、こうして、マルチヘッドのアテンション・レイヤ511は、セルフアテンション・ネットワークとして構成される。マルチヘッドのアテンション・レイヤ511の各ヘッドは、アテンション・ネットワーク400と一致する。いくつかの例では、マルチヘッドのアテンション・レイヤ511は、3つのヘッドを含むが、2つ又は3つ以上等の他の数のヘッドが可能である。いくつかの例では、各アテンション・レイヤの次元は200であり、隠れサイズは128である。マルチヘッドのアテンション・レイヤ511の出力は、フィードフォワード・ネットワーク512に提供され、フィードフォワード・ネットワーク512の入力と出力との両方が、エンコード化レイヤ510のレイヤ出力を生成する追加及び正規化モジュール513に提供される。いくつかの例では、フィードフォワード・ネットワーク512は、式11を実行する2レイヤ・パーセプトロン(perceptron)・ネットワークであり、ここで、γはフィードフォワード・ネットワーク512への入力であり、Mi及びbiは、それぞれ、パーセプトロン・ネットワークの各レイヤの重み及びバイアスである。いくつかの例では、追加及び正規化モジュール513は、追加及び正規化モジュール450と実質的に同様である。
【0039】
FF(γ)=max(0,γM1+b1)M2+b2 式11
【0040】
デコード化レイヤ530は、(例えば、入力ネットワークからデコード化スタックの第1のレイヤの、又は次に最も低いレイヤのレイヤ出力からデコード化スタックの他の全てのレイヤの)レイヤ入力を受け取り、それをマルチヘッドのアテンション・レイヤ521の3つ全ての(q、k、及びv)入力に提供し、こうして、マルチヘッドのアテンション・レイヤ521は、セルフアテンション・ネットワークとして構成される。マルチヘッドのアテンション・レイヤ521の各ヘッドはアテンション・ネットワーク400と一致する。いくつかの例では、マルチヘッドのアテンション・レイヤ521は3つのヘッドを含むが、2つ又は3つ以上等の他の数のヘッドが可能である。マルチヘッドのアテンション・レイヤ511の出力は、別のマルチヘッドのアテンション・レイヤ522へのq入力として提供され、マルチヘッドのアテンション・レイヤ522のk及びv入力には、対応するエンコード化レイヤからのエンコード化
【数34】
出力が提供される。マルチヘッドのアテンション・レイヤ521の各ヘッドは、アテンション・ネットワーク400と一致する。いくつかの例では、マルチヘッドのアテンション・レイヤ522は、3つのヘッドを含むが、2つ又は3つ以上等の他の数のヘッドが可能である。いくつかの例では、各アテンション・レイヤの次元は200であり、隠れサイズは128である。マルチヘッドのアテンション・レイヤ522の出力は、フィードフォワード・ネットワーク523に提供され、フィードフォワード・ネットワーク523の入力と出力との両方が、エンコード化レイヤ510のレイヤ出力を生成する追加及び正規化モジュール524に提供される。いくつかの例では、フィードフォワード・ネットワーク523及び追加及び正規化モジュール524は、それぞれ、フィードフォワード・ネットワーク512及び追加及び正規化モジュール513と実質的に同様である。
【0041】
図3を再び参照すると、マルチレイヤのセルフアテンションベースのトランスフォーマのエンコード側の出力(例えば、
図3の例の
【数35】
)がbiLSTM360に渡され、biLSTM360は最終的なエンコード化シーケンスhを生成する。次に、
図6に関して以下でさらに詳細に説明するように、最終的なエンコード化シーケンスhは、ワード生成器(word generator)370に渡される。いくつかの例では、biLSTM360は、200の隠れサイズを有する。
【0042】
マルチレイヤのセルフアテンションベースのトランスフォーマのデコード側の出力は、一連のベクトルzである。ベクトルzのシーケンスもワード生成器370に渡され、回答pの各ワードが生成されると、それらワードはマルチレイヤのセルフアテンションベースのトランスフォーマのデコード側の第1のレイヤに戻される。
【0043】
図6は、いくつかの実施形態によるワード生成器370の簡略図である。ワード生成器370は、zを入力ベクトルのシーケンスとして扱い、hをアテンションのためのそのコンテキストとして扱う。ワード生成器は、システム300の回答pを生成するために繰り返し動作する。回答pは、センチネルエントリを使用して最初に初期化され、完全な回答pが生成された後に削除される。(
図6の添え字で示されるように)各反復tで、回答pの次のワードが、以下でさらに説明するようにp
tとして生成される。
【0044】
時間ステップtにおいて、1レイヤの単方向LSTM610は、マルチレイヤのセルフアテンションベースのトランスフォーマのデコーダ側からの以前の入力z
t-1と、以前の時間ステップtからの以前の隠れ状態
【数36】
及び以前のコンテキスト調整済み隠れ状態
【数37】
との連結に基づいて、式12を使用して、コンテキスト調整済み隠れ状態
【数38】
を生成する。
【0045】
【0046】
次に、アテンション・レイヤ620は、最終的なエンコード化シーケンスh及び式13を使用したコンテキスト調整済み隠れ状態
【数40】
に基づいて、各エンコード化時間ステップの現在のデコーダ状態への関連性を表すアテンション重みα
tのベクトルを生成する。ここで、Hは時間次元に亘って積み重ねられたhの要素であり、W
1及びb
1は、アテンション・レイヤ620の訓練可能な重み及びバイアスである。
【0047】
【0048】
次に、tanhレイヤ630及びsoftmaxレイヤ640を含む語彙レイヤは、回答pの次のワードp
tとしての候補である語彙p
vocab(w
t)内の各ワードの分布状態を生成する。Tanhレイヤ630は、アテンション重みα
t、最終的なエンコード化シーケンスh、及び式14を使用したコンテキスト調整済み隠れ状態
【数42】
に基づいて、現在のタイムステップの隠れ状態
【数43】
を生成する。ここで、Hは時間次元に亘って積み重ねられたhの要素であり、W
2及びb
2は、tanhレイヤ630の訓練可能な重み及びバイアスである。
【0049】
【0050】
softmaxレイヤ640は、隠れ状態
【数45】
に基づいて、式15を使用して、回答pの次のワードp
tとしての候補である語彙p
vocab(w
t)内の各ワードの分布状態を生成する。ここで、W
out及びb
outは、softmaxレイヤ640の訓練可能な重み及びバイアスである。
【0051】
【0052】
コンテキスト・レイヤ650は、アテンション重みαtに基づいて、式16を使用して、回答pの次のワードptとしての候補であるコンテキストc pcopy(wt)内の各ワードの分布状態を生成する。
【0053】
【0054】
スイッチ660は、p
vocab(w
t)及びp
copy(w
t)の分布状態を互いに対してどのように重み付けするかを決定する。スイッチ660は、最初に、隠れ状態
【数48】
、コンテキスト調整済み隠れ状態
【数49】
、及びマルチレイヤのセルフアテンションベースのトランスフォーマのデコーダ側からの以前の入力z
t-1の連結に基づいて、式17を使用して重み係数γを生成する。ここで、σは、対数シグモイド(log-sigmoid)、双曲線正接シグモイド等のシグモイド伝達関数を表し、及び/又はW
switchは、重み係数レイヤの訓練可能な重みである。いくつかの例では、重み係数γは、訓練可能なバイアスb
switchを使用してさらに決定してもよい。
【0055】
【0056】
次に、スイッチ660は、式18を使用して、重み係数γを使用して、語彙中のワード及びコンテキスト中のワードの和集合の最終的な出力分布状態を生成する。次に、回答p内の次のワードptは、最大の重みを有するp(wt)内のワードに基づいて決定できる。
【0057】
p(wt)=γpvocab(wt)+(1-γ)pcopy 式18
【0058】
上述し、ここでさらに強調するように、
図3は、特許請求の範囲を過度に制限してはならない単なる例である。当業者は、多くの変形、代替、及び修正を認識するであろう。いくつかの実施形態によれば、システム300内の1つ又は複数のレイヤはオプションであり、省略してもよい。いくつかの例では、線形レイヤ310及び/又は315は、オプションであり、コンテキストc及び質問qに使用されるエンコーディングをそれぞれbiLSTM320及び325に直接渡すことで、省略できる。いくつかの例では、biLSTM320及び/又は325は、オプションであり、線形レイヤ310及び315の出力をコアテンション・レイヤ330に直接渡すことで、省略できる。いくつかの例では、線形レイヤ310及び315並びにbiLSTM320及び325は、オプションであり、コンテキストc及び質問qに使用されるエンコーディングをコアテンション・レイヤ330に直接渡すことで、省略できる。
【0059】
システム300は、複数のタスク(例えば、分類(感情解析等)、言語翻訳、及び質問応答)に使用され、全てのタスクタイプに亘って様々なレイヤのパラメータを共有するため、注意深く訓練されない場合に、壊滅的な忘却の影響を受け易い可能性がある。これに対処するために、いくつかの実施形態では、システム300は、タスクタイプのそれぞれのバランスの取れた混合に対してシステム300を同時に訓練するように訓練サンプルが提示される順序を使用してシステム300が訓練されるジョイント(joint)戦略に従って訓練され得る。すなわち、訓練サンプルがシステム300に提示される順序によって、異なるタスクタイプから、連続する訓練サンプル又は連続する小グループ(例えば、2~10程度)の訓練サンプルが選択される。いくつかの例では、ジョイント戦略には、訓練の反復毎に、タスクタイプの異なる1つから訓練サンプル(コンテキストc、質問q、グラウンド・トゥルース(ground truth)回答)を選択することが含まれる。ジョイント戦略の目標は、他のタスクタイプよりもあるタスクタイプに重点を置かずに、各タスクタイプに対して同時に訓練することである。しかしながら、実際には、システム300はタスクタイプのそれぞれを学習するが、そのシステム300は、タスクタイプのいずれも特によく学習していない。ジョイント訓練戦略については、Collobertらの“A Unified Architecture for Natural Language Processing: Deep Neural Networks with Multitask Learning,” International Conference on Machine Learning, pp. 160-167、及び橋本らの、“A JointMany-task Model: Growing a Neural Network for Multiple NLP Tasks,” Conferenceon Empirical Method in Natural Language Processing, 2017, pp. 1923-33に詳細に説明されており、これら文献のそれぞれは、その全体が参照により組み込まれる。
【0060】
いくつかの実施形態では、システム300は、タスクタイプのそれぞれに対してシステム300を個別に訓練するように訓練サンプルがシステム300に提示される順序を使用してシステム300が訓練されるシーケンシャル(sequential)訓練戦略に従って訓練され得る。すなわち、訓練のために訓練サンプルがシステム300に提示される順序は、第2のタスクタイプの各訓練サンプルを提示する前に、及び第1のタスクタイプの各サンプルを再び提示する前等に、第1のタスクタイプの各サンプルを提示することである。シーケンシャル訓練戦略では、タスクタイプの1つに対する訓練が終了し、訓練が第2のタスクタイプに切り替わると、第1のタスクタイプの一部の壊滅的な忘却が発生し始める。しかしながら、各タスクタイプの訓練サンプルを順番に複数回通過させた後に、システム300は、以前に訓練した各タスクタイプの訓練をより迅速に回復させ始め、休止中の知識を収集する。いくつかの例では、訓練がタスクタイプ同士の間で切り替わるときに起こる破滅的な忘却のために、システム300は、一般に、最後に訓練されたタスクタイプに関してのみ強い学習を示す。シーケンシャル訓練戦略は、Kirkpatrickらの、”Overcoming Catastrophic Forgetting in Neural Networks,” Proceedings of the National Academy of Sciences, 2017, pp. 3521-3526に詳細に説明されており、この文献はその全体が参照により組み込まれる。
【0061】
いくつかの実施形態では、ジョイント訓練及びシーケンシャル訓練戦略の制限に対処する試みが提案されている。いくつかの例では、これらの試みには、計算量の多いフィッシャー(Fisher)情報の生成、全てのタスクタイプの統合システムの目標に悪影響を与えるタスク固有の変更(パッキング及び/又は適応戦略等)の使用等が含まれる。
【0062】
いくつかの実施形態では、システム300は、ハイブリッド式訓練戦略に従って訓練してもよい。ハイブリッド式訓練戦略では、システム300は、最初に、シーケンシャル訓練戦略を使用して訓練される。これにより、システム300は、各タスクタイプの休止中の知識を収集することができる。各タスクタイプの訓練サンプルを何度も通過した後に、システム300は、ジョイント訓練戦略を使用して訓練される。初期のシーケンシャル訓練からの休止中の知識があるため、後続のジョイント訓練は、マルチタスクを実行しているときでも、初期シーケンシャル訓練を行わないジョイント訓練だけよりも、各タスクタイプをより効果的に学習できる。システム300が、初期のシーケンシャル訓練中に以前に訓練したタスクタイプを休止中の知識に完全に抑制することを可能にすることにより、ハイブリッド式訓練戦略は、システム300に、各タスクタイプに特化することに集中するためのより多くの時間を与える。いくつかの例では、ハイブリッド式訓練戦略は、全てのタスクタイプを一緒に実行する方法を学習することから、各タスクタイプを学習するという目標を切り離す。こうして、訓練がジョイント訓練戦略に切り替わると、システム300は、タスクタイプのそれぞれをよく学習するように十分準備される。
【0063】
いくつかの実施形態では、システム300は、ハイブリッド式訓練戦略の変形である合成(synthesize)訓練戦略に従って訓練される。合成訓練戦略では、システム300は、最初は、シーケンシャル訓練戦略を使用して訓練されるが、シーケンシャル訓練中の固定間隔及び固定回数の反復で訓練され、訓練は、(シーケンシャル訓練戦略に戻る前に以前に訓練された)タスクタイプ毎にジョイント訓練戦略に切り替わる。以前に学習したタスクタイプのジョイント訓練戦略に一時的に切り替わることにより、システム300は、古いタスクタイプをより頻繁に思い出し、古い知識を新しい知識と統合することも強制される。
【0064】
図7は、いくつかの実施形態によるマルチタスク学習の方法700の簡略図である。方法700のプロセス710~780の1つ又は複数は、少なくとも部分的に、非一時的で有形の機械可読媒体に格納された実行可能コードの形で実装され、コードが1つ又は複数のプロセッサによって実行されたときに、1つ又は複数のプロセッサに、プロセス710~780の1つ又は複数を実行させることができる。いくつかの実施形態では、方法700は、訓練システム300のハイブリッド式訓練戦略として使用され得るが、方法700は、システム300以外の他のマルチタスク・システムを訓練するためにも使用され得る。いくつかの実施形態では、方法700によって訓練されるタスクタイプは、言語翻訳、分類(例えば、感情解析)、質問応答等の様々な自然言語処理タスクのいずれかを含むことができる。
【0065】
プロセス710では、訓練サンプルが、第1の訓練戦略に従って選択される。いくつかの実施形態では、第1の訓練戦略は、第2のタスクタイプの各訓練サンプルが選択されるまで、第1のタスクタイプとは異なる第2のタスクタイプから訓練サンプルを選択する前に、第1のタスクタイプの各訓練サンプルが選択されるまで、訓練サンプルが第1のタスクタイプの訓練サンプルから選択されるシーケンシャル訓練戦略である。次に、訓練サンプルが追加のタスクタイプから選択され、必要ならば、各タスクタイプの各訓練サンプルが選択された後に、次のタスクタイプに切り替えられる。いくつかの例では、選択された訓練サンプルには、自然言語コンテキスト、自然言語質問、及びコンテキスト及び質問に対応するグラウンド・トゥルース自然言語回答が含まれる。
【0066】
プロセス720では、選択された訓練サンプルがシステムに提示される。いくつかの例では、システムはシステム300である。訓練サンプルがシステムに適用されると、その訓練サンプルは、現在訓練されているパラメータ(例えば、重み及びバイアス)に従ってシステムの様々なレイヤを通してフィードフォワードされ、回答が生成される。いくつかの例では、回答は自然言語のフレーズである。
【0067】
プロセス730では、システムはエラーに基づいて調整される。プロセス720中にシステムによって生成された回答は、選択された訓練サンプルのグラウンド・トゥルース回答と比較され、選択された訓練サンプルのエラーが決定される。次に、エラーは、バック・プロパゲーションを使用してシステム300にフィードバックされ、レイヤの様々なパラメータ(例えば、重み及びバイアス)を更新することができる。いくつかの例では、確率的勾配降下法(SGD)訓練アルゴリズム、適応モーメント推定(ADAM)訓練アルゴリズム等を使用して、バック・プロパゲーションを実行することができる。いくつかの例では、バック・プロパゲーションに使用される勾配が1.0にクリップされ得る。いくつかの例では、学習減衰率は、Vaswaniらの、2017年6月12日に提出された“Attention is All You Need,” arXiv preprint arXiv: 1706.03762で使用されている減衰率と同じであり得る。
【0068】
プロセス740では、第1の訓練戦略から第2の訓練戦略に切り替えるかどうかが決定される。いくつかの例では、第2の訓練戦略に切り替える決定は、各タスクタイプの各訓練サンプルが所定の回数選択された後に行われる。いくつかの例では、所定の回数は5回であり得るが、3回、4回、及び/又は6回以上等の他の任意の回数も使用され得る。いくつかの例では、1つ又は複数の他の要因を用いて、第2の訓練戦略にいつ切り替えるかについての決定を行うことができる。いくつかの例では、1つ又は他の要因には、訓練サンプルを通過する度に各タスクタイプのパフォーマンス・メトリックの変化を監視し、各パス後の各パフォーマンス・メトリックの改善がしきい値量未満だけ改善したときに切り替えを行うことが含まれる。第2の訓練戦略に切り替えないことが決定されると、方法700はプロセス710に戻り、そこで訓練サンプルが第1の訓練戦略に従って選択され続ける。第2の学習訓練戦略に切り替えることが決定されると、訓練サンプルの選択は、プロセス750で始まる第2の訓練戦略を使用して行われる。
【0069】
プロセス750では、訓練サンプルが、第2の訓練戦略に従って選択される。いくつかの例では、第2の訓練戦略は、訓練サンプルが各タスクタイプの訓練サンプルから等しく選択されるジョイント訓練戦略である。
【0070】
プロセス760では、選択された訓練サンプルは、プロセス720と実質的に同じプロセスを使用してシステムに提示される。
【0071】
プロセス770では、システムは、プロセス730と実質的に同じプロセスを使用して、エラーに基づいて調整される。
【0072】
プロセス780では、訓練が完了したかどうかが判定される。いくつかの例では、各タスクタイプの訓練サンプルがシステムに所定の回数提示された後で訓練が完了する。いくつかの例では、所定の回数は8回であり得るが、2~7及び/又は9回以上等の他の任意の回数も使用され得る。いくつかの例では、1つ又は複数の他の要因を用いて、訓練がいつ完了するかについての決定を行うことができる。いくつかの例では、1つ又は他の要因には、訓練サンプルを通過する度に各タスクタイプのパフォーマンス・メトリックの変化を監視し、各パス後の各パフォーマンス・メトリックの改善がしきい値量未満だけ改善したときに訓練が完了する(ことを注記する)ことを含めることができる。訓練が完了していないと判定された場合に、方法700はプロセス740に戻り、そこで訓練サンプルが第2の訓練戦略に従って選択され続ける。訓練が完了したと判定された場合に、方法700は終了し、訓練されたシステムは、訓練したタスクのいずれにも使用され得る。
【0073】
訓練が完了した後に、プロセス720及び/又は760と実質的に同様のプロセスを使用して、訓練されたシステムを任意のタスクタイプに使用することができ、コンテキストc及び質問qが、システムに提示され、且つ方法700に従って訓練されたパラメータ(例えば、重み及びバイアス)によりシステムの様々なレイヤを通してフィードフォワードすることができる。生成された回答は、提示されたコンテキストc及び質問qに対する応答に対応する。
【0074】
上記で議論し、ここでさらに強調するように、
図7は、特許請求の範囲を過度に制限してはならない単なる例である。当業者は、多くの変形、代替、及び修正を認識するであろう。いくつかの実施形態では、方法700は、合成訓練戦略を使用するように適合される。合成訓練戦略では、第1の訓練戦略はシーケンシャル訓練戦略の変形であり、第2の訓練戦略はジョイント訓練戦略であり得る。シーケンシャル訓練戦略の変形には、一般に、シーケンシャル訓練戦略に従って訓練サンプルを選択することが含まれるが、ジョイント訓練戦略に従って訓練サンプルが選択される間隔の間は例外である。いくつかの例では、ジョイント訓練戦略の間隔の位置及び配置は、各タスクタイプの訓練反復の数(例えば、システムに提示される訓練サンプルの数)に基づくことができる。非限定的な例として、訓練サンプルの選択には、第1のタスクタイプについて10,000個の訓練サンプルを選択すること、各タスクタイプから1,000個の訓練サンプルを共同して(jointly)選択すること、第1のタスクタイプについて別の10,000個の訓練サンプルを選択すること、各タスクタイプから1,000個の訓練サンプルのジョイントを選択すること、第1のタスクタイプの各訓練サンプルが提示されるまで繰り返すこと、次に第2のタスクタイプについて10,000個の訓練サンプルを選択すること等が含まれる。いくつかの例では、選択をシーケンシャル・タイプとジョイント・タイプとの間で交互に行う前の訓練サンプルの数は、各タスクタイプの訓練サンプルの数のパーセンテージに基づき得る(例えば、それぞれのタスクタイプの訓練サンプルの数の10%~25%のいずれかの後)。
【0075】
図8は、いくつかの実施形態による訓練パフォーマンスの簡略図である。より具体的には、
図8は、4つのタスクタイプ:英語から独語への(EN-DE)言語翻訳、英語から仏語への(EN-FR)言語翻訳、質問応答、及び感情分類による訓練システム300の結果を示す。
【0076】
英語から独語及び英語から仏語への翻訳タスクタイプの訓練サンプルは、英語から独語(IWSLT EN→DE)の訓練セット及び英語から仏語(IWSLT EN→FR)の訓練セットに関する音声言語翻訳の国際ワークショップに基づいており、訓練サンプルには、TED会話から転記された約210,000の文のペアが含まれている。2つの言語翻訳タスクタイプに使用されるパフォーマンス・メトリックは、BLEUスコアである。
【0077】
質問応答タスクタイプの訓練サンプルは、スタンフォード質問応答データセット(SQuAD)に基づいており、これには、ウィキペディアの記事の段落サンプルに関連する質問に基づいた10,570個の訓練サンプルが含まれている。質問応答タスクタイプに使用されるパフォーマンス・メトリックは、F1スコアである。
【0078】
感情分類タスクタイプの訓練サンプルは、中立的な例が削除されたスタンフォード感情ツリーバンク(SST)に基づいている。SSTには、映画のレビュー及びその感情に基づいた約56,400個の訓練サンプルが含まれている。感情分類タスクタイプに使用されるパフォーマンス・メトリックは、完全一致のパーセンテージである。
【0079】
図8は、前述したパフォーマンス・メトリックによる各タスクタイプの学習結果をさらに示している。各タスクタイプの3つの結果が示される。単一の列は、システム300が示されたタスクタイプの訓練サンプルのみを使用して訓練された場合のそれぞれのパフォーマンス・メトリックを示す。ジョイント列は、システム300がジョイント訓練戦略を使用して訓練される場合と同じパフォーマンス・メトリックを示す。ハイブリッドの列は、システム300が方法700のハイブリッド式訓練戦略を使用して訓練された場合と同じパフォーマンス・メトリックを示す。システム300の各バージョンが単一のタスクに特化できるため、予想通り、単一のタスクタイプの訓練結果は最高のパフォーマンス・メトリックになる。ジョイントの列は、ジョイント訓練戦略の使用が著しく悪い結果をもたらすことを示し、ハイブリッドの列は、ジョイント訓練戦略に対する方法700のハイブリッド式訓練戦略の使用の改善を示す。さらに、感情分類タスクタイプを除いて、方法700のハイブリッド式訓練戦略は、ジョイント訓練戦略よりも大幅に優れたパフォーマンス結果をもたらした。
【0080】
図9A~
図9Cは、いくつかの実施形態による訓練パフォーマンスの簡略図である。
図9Aは、システム300が各タスクタイプについて個別に訓練されるとき(例えば、
図8の単一の列と比較して)、各タスクタイプについての訓練を繰り返してそれぞれのパフォーマンス・メトリックを追跡する。こうして、
図9Aは、システム300の4つの別々に訓練されたバージョンの結果を示す。
図9Bは、システム300がジョイント訓練戦略に従って訓練された場合のそれぞれのパフォーマンス・メトリックを追跡する。
図9Bのパフォーマンス・メトリックが示すように、SST分類タスクタイプ以外に、ジョイント訓練戦略を使用して訓練されたシステム300のバージョンは、タスクタイプのいずれも特によく学習しなかった。
図9Cは、システム300が方法700のハイブリッド式訓練戦略に従って訓練された場合のそれぞれのパフォーマンス・メトリックを追跡する。訓練サンプルが初期のシーケンシャル訓練中に1つのタスクタイプから別のタスクタイプに切り替わるときの壊滅的な忘却の影響は、
図9Cではっきりと分かる。シーケンシャル訓練戦略を使用して各タスクタイプからの訓練サンプルが5回提示され、訓練戦略がジョイント訓練戦略に切り替えられた後に(約250,000回の反復)、パフォーマンス・メトリックは、
図9Bのジョイント訓練戦略のみのアプローチのパフォーマンス・メトリックよりも優れており、且つ
図9Aのシステム300の別々に訓練されたバージョンのパフォーマンス・メトリックにより近づく値に急速に向上する。
【0081】
図10A及び
図10Bは、いくつかの実施形態による訓練順序に基づく訓練パフォーマンスの簡略図である。
図10A及び
図10Bは、ハイブリッド式訓練戦略の初期のシーケンシャル訓練中に、様々なタスクタイプの訓練がシステム300に提示される順序を変更することの影響を示している。
図10Aに示されるように、感情分類(SST)タスクタイプからの訓練サンプルで訓練される前に、システム300が英語から独語(IWSLT EN→DE)への言語翻訳タスクタイプの訓練サンプルで最初に訓練される場合に、システム300は、訓練サンプルが英語から独語への翻訳タスクタイプから再度抽出されると、英語から独語への翻訳知識を素早く回復できる。対照的に、
図10Bは、英語から独語への翻訳タスクタイプに対して訓練される前に、システム300が感情分類タスクタイプに対して最初に訓練される場合に、システム300は、英語から独語への翻訳タスクタイプを十分に学習できないことを示している。これは、英語から独語への翻訳タスクタイプに対する最初の訓練によるものであり、訓練サンプルの複雑さ及び豊富さが増すため、初期のエンコード化知識が向上すると推測される。
【0082】
コンピュータ装置100等のコンピュータ装置のいくつかの例は、実行可能コードを含む非一時的で有形の機械可読媒体を含み得、コードが1つ又は複数のプロセッサ(例えば、プロセッサ210)によって実行されると、1つ又は複数のプロセッサに、方法700のプロセスを実行させることができる。方法700のプロセスを含み得る機械可読媒体のいくつかの一般的な形態は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の任意の磁気媒体、CD-ROM、他の任意の光媒体、パンチカード、紙テープ、孔パターンを有する他の物理媒体、RAM、PROM、EPROM、FLASH-EPROM、他のメモリチップ又はカートリッジ、及び/又はプロセッサ又はコンピュータが読み取るように適応された他の媒体である。
【0083】
発明の態様、実施形態、実装、又は用途を示すこの説明及び添付の図面は、限定として解釈すべきではない。この説明及び特許請求の範囲の趣旨及び範囲から逸脱することなく、様々な機械的、構成的、構造的、電気的、及び動作上の変更を行うことができる。いくつかの例では、本開示の実施形態を不明瞭にしないために、良く知られた回路、構造、又は技術は、詳細に示していないか、又は説明していない。2つ以上の図の同じ番号は、同じ又は類似の要素を表す。
【0084】
この説明では、本開示と一致するいくつかの実施形態を説明する特定の詳細が示されている。実施形態の完全な理解を与えるために、多数の特定の詳細が示されている。しかしながら、当業者には、これらの特定の詳細の一部又は全部がなくても、いくつかの実施形態を実施できることが明らかであろう。本明細書に開示される特定の実施形態は、例示的であることを意味し、限定的ではない。当業者は、本明細書では具体的に説明されていないが、本開示の範囲及び精神内にある他の要素を認識し得る。加えて、不必要な繰返しを避けるために、特に記載されない限り、或いは1つ又は複数の特徴が実施形態を機能しないものにする場合を除き、1つの実施形態に関連して示され説明される1つ又は複数の特徴を他の実施形態に組み込むことができる。
【0085】
例示的な実施形態について、示し、説明してきたが、前述の開示では広範囲の修正、変更、及び置換が企図され、いくつかの例では、実施形態のいくつかの特徴は、他の特徴の対応する使用なしに採用され得る。当業者は、多くの変形、代替、及び修正を認識するであろう。従って、本発明の範囲は、以下の添付の特許請求の範囲によってのみ限定すべきであり、特許請求の範囲は、本明細書に開示される実施形態の範囲と一致する方法で広く解釈することが適切である。
【0086】
以下に、出願当初の特許請求の範囲の内容を実施例として記載しておく。
[実施例1]
自然言語処理のためのシステムであって、当該システムは、
コンテキストからの第1のワードと質問からの第2のワードとをエンコードするための入力レイヤと、
該入力レイヤからの出力と回答の一部とを受け取るためのエンコーダ及びデコーダを含むセルフアテンションベースのトランスフォーマと、
前記エンコーダの出力をさらにエンコードするための第1の双方向長・短期メモリ(biLSTM)と、
前記デコーダの前記出力及び隠れ状態からコンテキスト調整済み隠れ状態を生成するための長・短期メモリ(LSTM)と、
前記第1のbiLSTMの出力及び前記LSTMの出力に基づいて、第1のアテンション重みを生成するためのアテンション・ネットワークと、
前記第1のアテンション重みに基づいて、語彙の第3のワードの分布状態を生成するための語彙レイヤと、
前記第1のアテンション重みに基づいて、前記コンテキストから前記第1のワードの分布状態を生成するためのコンテキスト・レイヤと、
スイッチと、を含んでおり、
該スイッチは、
前記語彙からの前記第3のワードの前記分布状態と前記コンテキストからの前記第1のワードの前記分布状態との間の重みを生成し、
前記語彙からの前記第3のワードの前記分布状態と前記コンテキストからの前記第1のワードの前記分布状態との前記重みに基づいて、複合(composite)分布状態を生成し、且つ
該複合分布状態を使用して前記回答に含めるワードを選択する、
システム。
[実施例2]
前記入力レイヤには、線形レイヤ、第2のbiLSTM、コアテンション・レイヤ、及び第3のbiLSTMのうちの1つ又は複数が含まれる、実施例1に記載のシステム。
[実施例3]
前記コアテンション・レイヤは、
前記コンテキストと前記質問とのエンコードされた表現同士の間の類似性マトリックスを生成し、
該類似性マトリックスに基づいて、第2のアテンション重みを生成し、且つ
該第2のアテンション重みを使用して、前記コンテキストと前記質問との加重和を生成する、実施例2に記載のシステム。
[実施例4]
前記語彙レイヤは、
前記第1のアテンション重み、前記エンコーダの前記出力の更なるエンコーディング、及び前記コンテキスト調整済み隠れ状態に基づいて、前記隠れ状態を生成するためのtanhレイヤと、
前記隠れ状態に基づいて、前記語彙内の前記第3のワードの前記分布状態を生成するためのsoftmaxレイヤと、を含む、実施例1乃至3のいずれか一項に記載のシステム。
[実施例5]
前記デコーダ、前記LSTM、前記アテンション・ネットワーク、前記語彙レイヤ、前記コンテキスト・レイヤ、及び前記スイッチは、前記回答の各ワードを繰り返し選択する、実施例1乃至4のいずれか一項に記載のシステム。
[実施例6]
前記トランスフォーマは複数のトランスフォーマ・レイヤを含み、該複数のトランスフォーマ・レイヤのそれぞれが、第1のマルチヘッドのセルフアテンション・ネットワークを有するエンコーダ部と、第2のマルチヘッドのセルフアテンション・ネットワーク及び第3のマルチヘッドのアテンション・ネットワークを有するデコーダ部とを含む、実施例1乃至5のいずれか一項に記載のシステム。
[実施例7]
前記システムは、該システムが、シーケンシャル訓練戦略を使用して複数のタスクタイプに対して最初に訓練され、次にジョイント訓練戦略を使用して前記複数のタスクタイプに対して訓練されるハイブリッド式訓練戦略を使用して訓練される、実施例1乃至6のいずれか一項に記載のシステム。
[実施例8]
前記複数のタスクタイプのそれぞれが、言語翻訳タスクタイプ、分類タスクタイプ、又は質問応答タスクタイプである、実施例7に記載のシステム。
[実施例9]
自然言語処理のための方法であって、当該方法は、
コンテキストからの第1のワードと質問からの第2のワードとを受け取るステップと、
入力レイヤを使用して、前記コンテキストからの前記第1のワードと前記質問からの前記第2のワードをエンコードして、第1のエンコーディングを生成するステップと、
セルフアテンションベースのトランスフォーマを使用して、前記第1のエンコーディングをさらにエンコードして、前記コンテキストからの前記第1のワードと前記質問からの前記第2のワードとの第2のエンコーディングを生成するステップと、
前記セルフアテンションベースのトランスフォーマを使用して、前記第2のエンコーディングをデコードして、デコーダ出力を生成するステップと、
第1の双方向長・短期メモリ(biLSTM)を使用して、前記第2のエンコーディングをさらにエンコードして、第3のエンコーディングを生成するステップと、
長・短期記憶(LSTM)を使用して、前記第3のエンコーディングと隠れ状態とからコンテキスト調整済み隠れ状態を生成するステップと、
アテンション・ネットワークを使用して、前記第3のエンコーディングと前記コンテキスト調整済み隠れ状態とに基づいて、第1のアテンション重みを生成するステップと、
語彙レイヤを使用して、前記第1のアテンション重みに基づいて、語彙の第3のワードの分布状態を生成するステップと、
コンテキスト・レイヤを使用して、前記第1のアテンション重みに基づいて、前記コンテキストから前記第1のワードの分布状態を生成するステップと、
スイッチを使用して、前記語彙からの前記第3のワードの前記分布状態と前記コンテキストからの前記第1のワードの前記分布状態との間の重みを生成するステップと、
前記スイッチを使用して、前記語彙からの前記第3のワードの前記分布状態と前記コンテキストからの前記第1のワードの前記分布状態との前記重みに基づいて、複合分布状態を生成するステップと、
前記スイッチを使用して、前記複合分布状態を使用して回答に含めるワードを選択するステップと、を含む、
方法。
[実施例10]
コアテンション・レイヤを使用して、前記コンテキストと前記質問とのエンコードされた表現同士の間の類似性マトリックスを生成するステップと、
前記コアテンション・レイヤを使用して、前記類似性マトリックスに基づいて第2のアテンション重みを生成するステップと、
前記コアテンション・レイヤを使用して、前記第2のアテンション重みを使用して前記コンテキストと前記質問との加重和を生成するステップと、をさらに含む、実施例9に記載の方法。
[実施例11]
前記語彙レイヤのtanhレイヤを使用して、前記第1のアテンション重み、前記第2のエンコーディング、及び前記コンテキスト調整済み隠れ状態に基づいて、前記隠れ状態を生成するステップと、
前記語彙レイヤのsoftmaxレイヤを使用して、前記隠れ状態に基づいて、前記語彙内の前記第3のワードの前記分布状態を生成するステップと、をさらに含む、実施例9又は10に記載の方法。
[実施例12]
前記セルフアテンションベースのトランスフォーマ、前記LSTM、前記アテンション・ネットワーク、前記語彙レイヤ、前記コンテキスト・レイヤ、及び前記スイッチを使用して、前記回答の各ワードを繰り返し選択するステップをさらに含む、実施例9乃至11のいずれか一項に記載の方法。
[実施例13]
前記第2のエンコーディングを生成するステップは、1つ又は複数のエンコード化レイヤを使用するステップを含み、各エンコード化レイヤには、第1のマルチヘッドのセルフアテンション・ネットワークが含まれ、
前記デコーダ出力を生成するステップは、1つ又は複数のデコード化レイヤを使用するステップを含み、各デコード化レイヤには、第2のマルチヘッドのセルフアテンション・ネットワーク及び第3のマルチヘッドのアテンション・ネットワークが含まれる、実施例9乃至12のいずれか一項に記載の方法。
[実施例14]
複数の機械可読命令を含む非一時的な機械可読媒体であって、前記命令がコンピュータ装置に関連付けられた1つ又は複数のプロセッサによって実行されたときに、該1つ又は複数のプロセッサに、
コンテキストからの第1のワードと質問からの第2のワードとを受け取ること、
前記コンテキストからの前記第1のワードと前記質問からの前記第2のワードとをエンコードして、第1のエンコーディングを生成すること、
セルフアテンションを使用して、前記第1のエンコーディングをさらにエンコードして、前記コンテキストからの前記第1のワードと前記質問からの前記第2のワードとの第2のエンコーディングを生成すること、
セルフアテンションを使用して、前記第2のエンコーディングをデコードして、デコーダ出力を生成すること、
前記第2のエンコーディングをさらにエンコードして、第3のエンコーディングを生成すること、
前記第3のエンコーディングと隠れ状態とからコンテキスト調整済み隠れ状態を生成すること、
前記第3のエンコーディングと前記コンテキスト調整済み隠れ状態とに基づいて、第1のアテンション重みを生成すること、
前記第1のアテンション重みに基づいて、語彙の第3のワードの分布状態を生成すること、
前記第1のアテンション重みに基づいて、前記コンテキストから前記第1のワードの分布状態を生成すること、
前記語彙からの前記第3のワードの前記分布状態と前記コンテキストからの前記第1のワードの前記分布状態との間の重みを生成すること、
前記語彙からの前記第3のワードの前記分布状態と前記コンテキストからの前記第1のワードの前記分布状態との前記重みに基づいて、複合分布状態を生成すること、及び
前記複合分布状態を使用して、回答に含めるワードを選択すること、を実行させる段階を含むように適合される、
非一時的な機械可読媒体。
[実施例15]
前記段階には、
前記コンテキストと前記質問とのエンコードされた表現同士の間の類似性マトリックスを生成すること、
該類似性マトリックスに基づいて、第2のアテンション重みを生成すること、及び
該第2のアテンション重みを使用して、前記コンテキストと前記質問との加重和を生成することがさらに含まれる、実施例14に記載の非一時的な機械可読媒体。
[実施例16]
前記段階には、
前記第1のアテンション重み、前記第2のエンコーディング、及び前記コンテキスト調整済み隠れ状態に基づいて、前記隠れ状態を生成すること、
該隠れ状態に基づいて、前記語彙内の前記第3のワードの前記分布状態を生成することがさらに含まれる、実施例14又は15に記載の非一時的な機械可読媒体。
[実施例17]
前記段階には、前記回答の各ワードを繰り返し選択することがさらに含まれる、実施例14乃至16のいずれか一項に記載の非一時的な機械可読媒体。
[実施例18]
前記第2のエンコーディングを生成することには、1つ又は複数のエンコード化レイヤを使用することが含まれ、各エンコード化レイヤには、第1のマルチヘッドのセルフアテンション・ネットワークが含まれ、
前記デコーダ出力を生成することには、1つ又は複数のデコード化レイヤを使用することが含まれ、各デコード化レイヤには、第2のマルチヘッドのセルフアテンション・ネットワーク及び第3のマルチヘッドのアテンション・ネットワークが含まれる、実施例14乃至17のいずれか一項に記載の非一時的な機械可読媒体。
[実施例19]
前記段階には、ハイブリッド式訓練戦略を使用して訓練することがさらに含まれ、前記ハイブリッド式訓練戦略は、シーケンシャル訓練戦略を使用して複数のタスクタイプに対して最初に訓練され、次にジョイント訓練戦略を使用して前記複数のタスクタイプに対して訓練される、実施例14乃至18のいずれか一項に記載の非一時的な機械可読媒体。
[実施例20]
前記複数のタスクタイプのそれぞれが、言語翻訳タスクタイプ、分類タスクタイプ、又は質問応答タスクタイプである、実施例19に記載の非一時的な機械可読媒体。