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

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

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特許7597796対話システムのセマンティックパーサを訓練するための敵対的生成ネットワークの使用
<>
  • 特許-対話システムのセマンティックパーサを訓練するための敵対的生成ネットワークの使用 図1
  • 特許-対話システムのセマンティックパーサを訓練するための敵対的生成ネットワークの使用 図2
  • 特許-対話システムのセマンティックパーサを訓練するための敵対的生成ネットワークの使用 図3
  • 特許-対話システムのセマンティックパーサを訓練するための敵対的生成ネットワークの使用 図4
  • 特許-対話システムのセマンティックパーサを訓練するための敵対的生成ネットワークの使用 図5
  • 特許-対話システムのセマンティックパーサを訓練するための敵対的生成ネットワークの使用 図6
  • 特許-対話システムのセマンティックパーサを訓練するための敵対的生成ネットワークの使用 図7
  • 特許-対話システムのセマンティックパーサを訓練するための敵対的生成ネットワークの使用 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】対話システムのセマンティックパーサを訓練するための敵対的生成ネットワークの使用
(51)【国際特許分類】
   G06F 40/30 20200101AFI20241203BHJP
   G06F 40/216 20200101ALI20241203BHJP
【FI】
G06F40/30
G06F40/216
【請求項の数】 8
(21)【出願番号】P 2022515928
(86)(22)【出願日】2020-08-13
(65)【公表番号】
(43)【公表日】2022-11-16
(86)【国際出願番号】 US2020046072
(87)【国際公開番号】W WO2021050197
(87)【国際公開日】2021-03-18
【審査請求日】2023-03-20
(31)【優先権主張番号】62/898,682
(32)【優先日】2019-09-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ドゥオング,タン・ロング
(72)【発明者】
【氏名】ジョンソン,マーク・エドワード
【審査官】成瀬 博之
(56)【参考文献】
【文献】特開2018-036413(JP,A)
【文献】特開2019-125317(JP,A)
【文献】米国特許出願公開第2019/0013012(US,A1)
【文献】米国特許出願公開第2019/0163691(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/20-40/58
G06F 16/00-16/958
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
対話システムのセマンティックパーサを訓練するための方法であって、前記方法は、
シードタプルを含むシードデータにアクセスするステップを含み、前記シードデータの各シードタプルは、それぞれのシード発話と、前記それぞれのシード発話に対応するそれぞれのシード論理形式とを含み、前記方法はさらに、
敵対的生成ネットワーク(GAN)において、前記シードデータを入力として、前記セマンティックパーサおよび識別器を訓練するステップを含み、
前記GANにおいて、前記シードデータを入力として、前記セマンティックパーサおよび前記識別器を訓練するステップは、
ランダムな発話を前記セマンティックパーサに入力するステップと、
前記セマンティックパーサが、前記ランダムな発話に基づいて、生成された論理形式を決定するステップと、
生成されたタプルと前記シードデータから選択されたシードタプルの部分集合とを含むタプルを前記識別器に入力するステップとを含み、前記生成されたタプルは、前記ランダムな発話と前記生成された論理形式とを含み、前記GANにおいて前記セマンティックパーサおよび前記識別器を訓練するステップはさらに、
前記識別器が、前記識別器に入力された前記タプルの各々の予測される真正性の各々を決定するステップと、
前記予測される真正性の各々を、前記識別器に入力された前記タプルの各々の実際の真正性の各々と比較するステップと、
前記比較の結果に基づいて、前記予測される真正性および前記実際の真正性の誤差を小さくするように、前記識別器を更新するステップとを含
前記実際の真正性の各々は、前記識別器に入力された前記タプルの各々が前記シードタプルの1つであるか、または、前記生成されたタプルの1つであるかの事実を示す、方法。
【請求項2】
前記GANにおいて前記セマンティックパーサおよび前記識別器を訓練するステップはさらに、
シード発話を前記セマンティックパーサに入力するステップを含み、前記シード発話は前記シードタプルから選択され、前記GANにおいて前記セマンティックパーサおよび前記識別器を訓練するステップはさらに、
前記セマンティックパーサが、前記シード発話に基づいて、追加の生成された論理形式を決定するステップと、
前記シードデータからの前記シード発話と前記追加の生成された論理形式とを含む追加の生成されたタプルを前記識別器に入力するステップと、
前記識別器が、前記追加の生成されたタプルの追加の予測される真正性を決定するステップと、
前記追加の予測される真正性を、前記追加の生成されたタプルの全てが真正であることを示す前記追加の生成されたタプルの選択された真正性と比較するステップと、
前記比較の結果に基づいて、前記追加の予測される真正性および前記選択された真正性の誤差が小さくなるように、前記セマンティックパーサを更新するステップと、を含む、請求項に記載の方法。
【請求項3】
前記GANにおいて前記セマンティックパーサおよび前記識別器を訓練するステップは、
更新された識別器を決定するために、前記セマンティックパーサが訓練されず静的である間に前記セマンティックパーサからの出力に基づいて前記シードデータの第1の部分を用いて前記識別器を訓練するステップと、
更新されたセマンティックパーサを決定するために、前記更新された識別器が訓練されず静的である間に前記更新された識別器からの出力に基づいて前記シードデータの前記第1の部分と異なる第2の部分を用いて前記セマンティックパーサを訓練するステップとを含む、請求項1または2に記載の方法。
【請求項4】
前記セマンティックパーサはシーケンス間(sequence-to-sequence)モデルであり、前記識別器はバイナリ分類器である、請求項に記載の方法。
【請求項5】
前記対話システムが音声入力を受信するステップと、
発話を決定するために自動音声認識サブシステムを前記音声入力に適用するステップと、
論理形式を決定するために前記セマンティックパーサを前記発話に適用するステップと、
前記音声入力に応答して応答テキストを生成するために前記論理形式を分析するステップと、
前記対話システムのための音響出力を決定するためにテキスト読み上げサブシステムを前記応答テキストに適用するステップとをさらに含む、請求項1~4のいずれか1項に記載の方法。
【請求項6】
請求項1~5いずれか1項に記載の方法をコンピュータに実行させるための、プログラム。
【請求項7】
請求項に記載のプログラムを格納したストレージと、
前記プログラムを実行するための1つ以上のプロセッサとを備える、システム。
【請求項8】
音声入力を受信するための音声入力モジュールと、
前記音声入力の解釈に基づいて1つ以上のアクションを行なうかまたは行なわせるために、請求項1~5のいずれか1項に記載の訓練方法を使用することによって取得されたセマンティックパーサを利用し、応答を準備する、対話処理モジュールと、
前記応答を出力するための音声出力モジュールとを含む、対話システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願との相互参照
本開示は、2019年9月11日に出願された、「セマンティックパーサを訓練するための敵対的生成ネットワークの利用」(Utilizing a Generative Adversarial Network to Train a Semantic Parser)についての米国仮出願連続番号第62/898,682号の優先権を主張する。当該仮出願は、その全体がここに引用により援用される。
【0002】
技術分野
本開示は対話システムに関し、より特定的には、セマンティックパーサが敵対的生成ネットワークの敵対的状況に基づいて論理形式を生成することを効果的に学習するように、対話システムにおける使用のためにセマンティックパーサを訓練するために敵対的生成ネットワークを使用するための手法に関する。
【背景技術】
【0003】
ますます多くのデバイスが現在、ユーザが声または話し言葉を使用してデバイスと直接相互作用することを可能にする。たとえば、ユーザはそのようなデバイスに自然言語で話しかけることができ、そうする際、ユーザは質問するか、または、アクションが行なわれるよう要求する発言を行なうことができる。これに応答して、デバイスは、音響出力を使用して、要求されたアクションを行なうか、または、ユーザの質問に答える。声を使用して直接相互作用することは、人が自分の周囲とコミュニケーションをとるためのより自然で直観的なやり方であるため、そのような音声ベースのシステムの人気は、天文学的な速度で高まっている。
【発明の概要】
【0004】
対話システムは、音声入力および音響出力などを介してユーザと対話することができる音声対応システムである。典型的には、対話システムは、セマンティックパーサなどの1つまたは複数の機械学習(machine learning:ML)モデルを含む。本開示は、対話システムのセマンティックパーサを訓練するために敵対的生成ネットワーク(generative adversarial network:GAN)を使用するための手法に関する。たとえば、いくつかの実施形態では、GANは、その生成器としてセマンティックパーサを含み、さらに、識別器と誤差最小化モジュールとを含む。いくつかの実施形態では、セマンティックパーサと識別器とは、敵対するものとして訓練されるMLモデルであり、双方のMLモデルがともに改良されるようにする。
【0005】
いくつかの実施形態では、シードデータが、GANへの訓練入力として使用される。シードデータは1組のシードタプルを含んでいてもよく、各シードタプルは、発話と、発話に対応する論理形式とを含む。ここに説明される一実施形態は、まず、セマンティックパーサ出力に基づいて識別器を訓練している間にセマンティックパーサを固定し、次に、識別器出力に基づいてセマンティックパーサを訓練している間に識別器を固定し、シードデータが使い切られるまで繰り返すことによって、セマンティックパーサおよび識別器をともに訓練する。
【0006】
セマンティックパーサが固定され、したがって静的である間、セマンティックパーサは、ランダムに選択された発話に基づいて論理形式を生成してもよい。ランダムに選択された発話と、セマンティックパーサによって生成されたような対応する論理形式との各対はともに、生成されたタプルを形成してもよい。識別器は、入力として、生成されたタプルを、シードタプルとともに受信してもよい。そのようなタプルごとに、識別器は、タプルが真正である確率、または、言い換えれば、タプルがシードタプルである確率を出力(すなわち予測)してもよい。誤差最小化モジュールは、タプルが真正であるかどうかを示す正確な分布(すなわち、値の正確なシーケンス)と比較した、識別器の予測の相違に基づいて、識別器を訓練するために、訓練信号を生成してもよい。
【0007】
識別器が固定され、したがって静的である場合、セマンティックパーサは、シードデータのシードタプルから選択された発話に基づいて論理形式を生成してもよい。シードデータからの発話と、セマンティックパーサによって生成されたような対応する論理形式との各対はともに、タプルを形成してもよい。識別器は、入力として、そのようなタプルを受信してもよく、タプルごとに、タプルが真正である確率を予測してもよい。誤差最小化モジュールは、生成された論理形式がすべて真正であると予測される所望の1組の予測と比較した、識別器の真正性の実際の予測の相違に基づいて、セマンティックパーサを訓練するために、訓練信号を生成してもよい。言い換えれば、セマンティックパーサは、識別器をだまして、生成された論理形式がすべて真正であると思い込ませる目的で訓練される。
【0008】
その結果、セマンティックパーサおよび識別器は、GANの構成要素としてともに訓練されてもよく、セマンティックパーサは論理形式を生成することを学習し、識別器は論理形式を認識することを学習する。最終的に、識別器が改良され、したがってセマンティックパーサが改良されるようになり、セマンティックパーサは論理形式を生成することが非常にうまくなるため、生成された論理形式は、シードデータに属する論理形式と区別できなくなる。このように、セマンティックパーサは、発話に基づいて論理形式を生成するように訓練される。
【0009】
他の実施形態では、対話システムは、音声入力を受信するための音声入力モジュールと、音声出力をユーザに出力するための音声出力モジュールと、音声入力の解釈に基づいて1つ以上のアクションを行なうかまたは行なわせ、ユーザへの適切な応答を準備するための対話処理モジュールとを含んでいてもよい。対話処理モジュールは、対話システムのセマンティックパーサを訓練するためにGANを使用するための上述の手法を使用することによって取得されたセマンティックパーサを利用してもよい。
【0010】
前述の事項は、他の特徴および実施形態とともに、以下の明細書、請求項、および添付図面を参照すれば、より明らかになるであろう。
【図面の簡単な説明】
【0011】
図1】ここに説明されるある実施形態に従った、敵対的生成ネットワークにおいて訓練されるセマンティックパーサを取り入れた対話システムの図である。
図2】ここに説明されるある実施形態に従った、敵対的生成ネットワークにおいてセマンティックパーサおよび識別器を訓練するように構成された訓練システムの図である。
図3】ここに説明されるある実施形態に従った、敵対的生成ネットワークにおいて識別器とともにセマンティックパーサを訓練する方法の図である。
図4】ここに説明されるある実施形態に従った、図3の方法における訓練のラウンドの一部分として識別器を訓練する方法の図である。
図5】ここに説明されるある実施形態に従った、図3の方法における訓練のラウンドの一部分としてセマンティックパーサを訓練する方法の図である。
図6】ここに説明されるある実施形態を実現するための分散型システムの図である。
図7】ここに説明されるある実施形態に従った、敵対的生成ネットワークにおいてセマンティックパーサを訓練することが少なくとも部分的にクラウドサービスとして提供され得る、クラウドベースのシステム環境のブロック図である。
図8】ここに説明されるある実施形態を実現するために使用され得る例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0012】
以下の説明では、ある実施形態の完全な理解を提供するために、具体的な詳細が説明のために述べられる。しかしながら、これらの具体的な詳細がなくてもさまざまな実施形態が実践され得ることは明らかであろう。図面および説明は、限定的であるよう意図されていない。「例示的」という単語は、「例、事例、または例示として機能する」ことを意味するようにここに使用される。「例示的」であるかまたは「例」としてここに説明されるどの実施形態または設計も、他の実施形態または設計に比べて好ましいかまたは有利であるとして解釈されるとは限らない。
【0013】
音声入力と、声出力とも呼ばれる音響出力とを介して、ユーザと対話することができる音声対応システムには、さまざまな形式のものがあり得る。たとえば、そのようなシステムは、スタンドアロンデバイスとして、デジタルまたは仮想アシスタントとして、音声対応サービスなどとして提供され得る。これらの形式の各々において、システムは、音声入力を受信し、音声入力を理解し、音声入力に応答して応答を生成するかまたはアクションを行ない、音響出力を使用して応答を出力することができる。ある実施形態では、そのような音声対応システムにおける対話機能性は、対話システムまたはインフラストラクチャ(「対話システム」)によって提供される。対話システムは、音声入力を受信し、音声入力を解釈し、対話を維持し、おそらくは音声入力の解釈に基づいて1つ以上のアクションを行なうかまたは行なわせ、適切な応答を準備し、音響出力を使用して応答をユーザに出力するように構成される。
【0014】
従来、対話システムはさまざまな機械学習(ML)モデルを含み、対話システムのさまざまな機械学習モデルを訓練するために大量の訓練データが必要とされる。そのようなMLモデルのうちの1つはセマンティックパーササブシステムであり、セマンティックパーサとも呼ばれる。一般に、セマンティックパーサは、ユーザによって提供された音声入力を表わす発話を受信し、ここで発話は、自然言語のテキスト表現である。セマンティックパーサはその発話を論理形式にマッピングし、論理形式は、確立された文法に準拠する論理型言語に変換され、したがって対話システムの対話マネージャサブシステムによって構文解析可能であるような発話の表現である。対話マネージャサブシステムは次に、どのように応答するかを決定するために論理形式を構文解析して処理する。
【0015】
セマンティックパーササブシステムを訓練するために、対話システムに関連付けられた訓練システムは典型的には、大量のタプルを必要とし、各タプルは、発話(たとえば自然言語のテキスト表現)と、対応する論理形式とを含む。不十分な量の訓練データが使用される場合、セマンティックパーサは所望されるほど効果的ではないかもしれず、論理形式に、したがって対話システムのワークフローに誤差を招くかもしれない。論理形式に誤差を招いた結果、対話マネージャサブシステムは、ユーザへの適切な応答を生成できないかもしれない。
【0016】
敵対的生成ネットワーク(GAN)は、敵対的な態様で生成器および識別器を訓練するアーキテクチャである。GANは典型的には、画像分析において、特に機械視覚の分野で使用される。例示的な従来のGANでは、画像生成器が、特定のクラスにあるよう意図される画像(たとえば顔の画像)を生成し、識別器は、生成された画像が本当にそのクラスにあるかどうかを判断する。画像生成器および識別器の出力を出力の正確な分布と比較することにより、GANは、画像生成器および識別器を訓練するために、訓練信号を画像生成器および識別器に提供する。GANは、利用可能な訓練データが、個々の訓練にとって理想的であるものよりも小さい場合に、特に有用である。なぜなら、敵対的性質が、比較的小さい1組の訓練データを用いる効果的な訓練をもたらし得るためである。
【0017】
ここに説明される訓練システムのいくつかの実施形態では、対話システムのセマンティックパーサは、GANにおいて訓練される。具体的には、セマンティックパーサはGANの生成器として挙動してもよく、そのため、論理形式を生成することを学習してもよく、識別器は、真正な論理形式と真正でない論理形式とを区別することを学習してもよい。誤差最小化モジュールは、セマンティックパーサおよび識別器を訓練するための訓練信号を提供するために、1つ以上の目的関数を適用してもよい。訓練後、セマンティックパーサは、対話システムの一部として、発話を論理形式にマッピングするために使用されてもよい。セマンティックパーサを訓練するこの態様は、GANにおける訓練の敵対的性質により、セマンティックパーサを個々に訓練する従来の手法よりも効果的であり得る。
【0018】
図1は、GAN155において訓練されるセマンティックパーサ114を利用する、ここに説明されるある実施形態に従った対話システム100の一例の図である。対話システム100は、ユーザ102から、声入力とも呼ばれる音声入力104を、音声入力モジュールなどを通して受信するように構成される。たとえば、音声入力モジュールは、音声または声を取得できるマイクまたは他のデバイスから音声入力を受信する。対話システム100は次に、音声入力104を解釈してもよい。対話システム100は、ユーザ102との対話を維持してもよく、おそらくは、たとえばセマンティックパーサ114を利用する対話処理モジュールを使用することにより、音声入力104の解釈に基づいて1つ以上のアクションを行なうかまたは行なわせてもよい。対話システム100は、対話処理モジュールを使用することなどを通して適切な応答を準備してもよく、音響出力とも呼ばれる声または音声出力を使用して、音声出力モジュールなどを通して、応答をユーザに出力してもよい。たとえば、音声出力モジュールは、声または音声を出力できるスピーカまたは他のデバイスであり得る。対話システム100は、場合によっては多数のコンピュータ処理周期を使用して大量のデータを処理するために使用され得る専用コンピューティングシステムである。図1に表わされるデバイスの数は、例示のために提供される。異なる数のデバイスが使用されてもよい。たとえば、図1の各デバイス、サーバ、およびシステムは単一のデバイスとして示されているが、代わりに複数のデバイスが使用されてもよい。
【0019】
ある実施形態では、対話システム100によって行なわれる処理は、音声入力コンポーネント105、ウェイクワード検出(wake-word detection:WD)サブシステム106、自動音声認識(automatic speech recognition:ASR)サブシステム108、固有表現認識器(named entity recognizer:NER)サブシステム112とセマンティックパーササブシステム114とを含む自然言語理解(natural language understanding:NLU)サブシステム110、対話マネージャ(dialog manager:DM)サブシステム116、自然言語生成器(natural language generator:NLG)サブシステム118、テキスト読み上げ(text-to-speech:TTS)サブシステム120、および音声出力コンポーネント124を含む、コンポーネントまたはサブシステムのパイプラインによって実現される。上に列挙されたサブシステムは、(たとえば1つ以上のプロセッサまたはコアによって実行可能なコード、プログラム、または命令を使用する)ソフトウェアのみにおいて、ハードウェアのみにおいて、または、ハードウェアとソフトウェアとの組合せにおいて実現されてもよい。ある実現化例では、サブシステムのうちの1つ以上が、単一のサブシステムになるように組合されてもよい。それに加えて、またはそれに代えて、いくつかの実現化例では、ある特定のサブシステムによって行なわれるとしてここに説明される機能が、複数のサブシステムによって実現されてもよい。
【0020】
音声入力コンポーネント105は、音声入力104を受信するように構成されたハードウェアおよびソフトウェアを含む。いくつかの事例では、音声入力コンポーネント105は、対話システム100の一部であってもよい。いくつかの他の事例では、音声入力コンポーネント105は、対話システム100から分離し、対話システム100に通信可能に結合されてもよい。音声入力コンポーネント105は、たとえば、音声入力104をデジタル化してウェイクワード検出サブシステム106に送信するように構成されたソフトウェアに結合されたマイクを含んでいてもよい。
【0021】
ウェイクワード検出(WD)サブシステム106は、ウェイクワードと呼ばれる特殊な音または単語または1組の単語に対応する入力についての音響入力のストリームがないか聞き耳をたてて監視するように構成される。対話システム100のためのウェイクワードを検出すると、WDサブシステム106は、ASRサブシステム108を起動するように構成される。ある実現化例では、ユーザは、WDサブシステム106がウェイクワードがないか聞き耳を立てるようにするかまたは聞き耳を立てるのをやめるようにするために、(たとえばボタンを押すことによって)WDサブシステム106を起動するかまたは停止させる能力を与えられてもよい。起動された場合、または、アクティブモードで動作する場合、WDサブシステム106は、音響入力ストリームを連続的に受信し、音響入力ストリームを処理して、ウェイクワードに対応する音声入力104などの音響入力を識別するように構成される。ウェイクワードに対応する音響入力が検出されると、WDサブシステム106は、ASRサブシステム108を起動する。
【0022】
上述のように、WDサブシステム106は、ASRサブシステム108を起動する。対話システム100のいくつかの実現化例では、ASRサブシステム108をトリガするかまたは起動するために、ウェイクワード検出以外のメカニズムが使用されてもよい。たとえば、いくつかの実現化例では、ウェイクワードを必要とすることなくASRサブシステム108をトリガするために、デバイス上の押しボタンが使用されてもよい。そのような実現化例では、WDサブシステム106を提供する必要はない。押しボタンが押されるかまたは起動されると、ボタン起動後に受信された音声入力104は、処理のためにASRサブシステム108に提供される。それに加えて、またはそれに代えて、いくつかの実現化例では、処理されるべき入力を受信するとASRサブシステム108が起動されてもよい。
【0023】
ASRサブシステム108は、トリガまたはウェイクアップ信号(たとえば、ウェイクアップ信号は、音声入力104においてウェイクワードを検出するとWDサブシステム106によって送信されてもよく、または、ウェイクアップ信号は、ボタンが起動されると受信されてもよい)の後に音声入力104を受信して監視し、音声入力104をテキストに変換するように構成される。その処理の一部として、ASRサブシステム108は、音声からテキストへの変換を行なう。音声入力104は自然言語形式のものであってもよく、ASRサブシステム108は、対応する自然言語テキストを音声入力104の言語で生成するように構成される。この対応する自然言語テキストは、ここに発話と呼ばれる。たとえば、ASRサブシステム108によって受信された音声入力104は、1つ以上の単語、句、節、文、質問などを含んでいてもよい。ASRサブシステム108は、話された各節についての発話を生成し、さらなる処理のために発話をNLUサブシステム110に供給するように構成される。
【0024】
NLUサブシステム110は、ASRサブシステム108によって生成された発話を受信する。ASRサブシステム108からNLUサブシステム110によって受信された発話は、話された単語、句、節などに対応するテキスト発話を含んでいてもよい。NLUサブシステム110は、各発話または一連の発話を、対応する論理形式に変換する。
【0025】
ある実現化例では、NLUサブシステム110は、固有表現認識器(NER)サブシステム112とセマンティックパーササブシステム114とを含む。NERサブシステム112は、発話を入力として受信し、発話における固有表現を識別し、識別された固有表現に関連する情報を発話にタグ付けする。タグ付き発話は次に、セマンティックパーササブシステム114に供給され、それは、各タグ付き発話のために、または一連のタグ付き発話のために、論理形式を生成するように構成される。発話のために生成された論理形式は、発話に対応する1つ以上の意図を識別してもよい。発話についての意図は、発話の目的を識別する。意図の例は、「ピザをオーダーする」および「方向を見つける」を含む。意図は、たとえば、行なわれるよう要求されるアクションを識別してもよい。意図に加えて、発話のために生成された論理形式はまた、識別される意図についての、パラメータまたは引数とも呼ばれるスロットを識別してもよい。たとえば、「私は、マッシュルームとオリーブが載ったLサイズのペパロニピザをオーダーしたいです」という音声入力について、NLUサブシステム110は、ピザをオーダーするという意図を識別することができる。NLUサブシステムはまた、スロット(たとえば、pizza_size(Lで充填される)およびpizza_toppings(マッシュルームおよびオリーブで充填される))を識別して充填することができる。NLUサブシステム110は、ドメイン固有であり得る機械学習ベースの手法、ルール、または、機械学習手法およびルールの組合せを使用して、論理形式を生成してもよい。NLUサブシステム110によって生成された論理形式は次に、さらなる処理のためにDMサブシステム116に供給される。
【0026】
図1に示すように、いくつかの実施形態では、ここに説明される訓練システム150が、ここにセマンティックパーサ114とも呼ばれるセマンティックパーササブシステム114を対話システム100におけるその動作のために準備するために、敵対的生成ネットワーク155の一部としてセマンティックパーサ114を訓練する。たとえば、訓練システム150はGAN155を利用して、1つ以上の発話に基づいて論理形式を決定するための上述のタスクを行なうようにセマンティックパーサ114を訓練する。いくつかの実施形態では、セマンティックパーサ114を訓練するこの敵対的手法の使用により、対話システム100は、従来の対話システムよりも改良されている。
【0027】
DMサブシステム116は、NLUサブシステム110から受信された論理形式に基づいて、ユーザとの対話を管理するように構成される。対話管理の一部として、DMサブシステム116は、対話状態を追跡し、1つ以上のアクションまたはタスクの実行を開始するか、あるいは、それ自体が1つ以上のアクションまたはタスクを実行し、どのようにユーザと相互作用するかを判断するように構成される。これらのアクションは、たとえば、1つ以上のデータベースに問合せること、実行結果を生成すること、または他のアクションを含んでいてもよい。たとえば、DMサブシステム116は、NLUサブシステム110から受信された論理形式において識別された意図を解釈するように構成される。解釈に基づいて、DMサブシステム116は、それがユーザによって提供された音声入力104によって要求されていると解釈する1つ以上のアクションを開始してもよい。ある実施形態では、DMサブシステム116は、現在および過去の音声入力104に基づいて、ならびに、DMサブシステム116のために構成された1組のルール(たとえば対話ポリシー)に基づいて、対話状態追跡を行なう。これらのルールは、異なる対話状態、状態間の遷移についての条件、ある特定の状態にある場合に行なわれるべきアクションなどを特定してもよい。これらのルールは、ドメイン固有のものであってもよい。DMサブシステム116はまた、対話に関与するユーザに通信されるべき応答を生成する。これらの応答は、DMサブシステム116によって開始されたアクションおよびそれらの結果に基づいていてもよい。DMサブシステム116によって生成された応答は、さらなる処理のためにNLGサブシステム118に供給される。
【0028】
NLGサブシステム118は、DMサブシステム116によって生成された応答に対応する自然言語テキストを生成するように構成される。これらのテキストは、それらがTTSサブシステム120によって音声に変換されることを可能にする形式で生成されてもよい。TTSサブシステム120は、NLGサブシステム118からテキストを受信し、それらの各々を音声または声音響に変換し、それは次に、対話システムの音響または音声出力コンポーネント124(たとえばスピーカ、または外部スピーカに結合された通信チャネル)を介して、音響としてユーザに出力されてもよい。いくつかの事例では、音声出力コンポーネント124は、対話システム100の一部であってもよい。いくつかの他の事例では、音声出力コンポーネント124は、対話システム100から分離し、対話システム100に通信可能に結合されてもよい。
【0029】
上述のように、協働して作動する対話システム100のさまざまなサブシステムは、対話システム100が音声入力104を受信し、音声出力122を使用して応答し、それにより、自然言語音声を使用してユーザとの対話を維持することを可能にする機能性を提供する。上述のさまざまなサブシステムは、単一のコンピュータシステムを使用して、または、協働して作動する複数のコンピュータシステムを使用して実現されてもよい。たとえば、音声対応システムを実現するデバイスについては、上述の対話システム100のサブシステムは、ユーザが相互作用するデバイス上で全面的に実現されてもよい。いくつかの他の実現化例では、対話システム100のいくつかのコンポーネントまたはサブシステムは、ユーザが相互作用するデバイス上で実現されてもよく、一方、他のコンポーネントは、デバイスからリモートで、おそらくは、いくつかの他のコンピューティングデバイス、プラットフォーム、またはサーバ上で実現されてもよい。
【0030】
図2は、ここに説明されるある実施形態に従った、敵対的生成ネットワーク155の使用を通して対話システム100のセマンティックパーサ114を訓練するように構成された訓練システム150の図である。より具体的には、いくつかの実施形態では、セマンティックパーサ114はGAN155の生成器として作用し、訓練システム150は、GAN155において識別器250とともにセマンティックパーサ114を訓練する。GAN155における誤差最小化モジュール260は、セマンティックパーサ114および識別器250を訓練するために、1つ以上の訓練信号をセマンティックパーサ114および識別器250に提供してもよく、より具体的には、セマンティックパーサ114を訓練するために逆伝搬を使用してもよい。訓練システム150のデータ入力サブシステム240は、セマンティックパーサ114、識別器250、および誤差最小化モジュール260がここに説明されるタスクを行なうことを可能にするように、シードデータ210に基づいた入力などの入力をセマンティックパーサ114、識別器250、および誤差最小化モジュール260に提供してもよい。訓練後、セマンティックパーサ114は、図1に示すような対話システム100の一部として使用されてもよい。
【0031】
いくつかの実施形態では、訓練システム150は、コンピューティングデバイス、またはその一部、たとえばサーバとして実現される。訓練システム150は、専用ハードウェアデバイスとして、またはプログラムコードとして、またはそれら双方の組合せとして実現されてもよい。たとえば、訓練システム150によって行なわれるとしてここに説明される動作は、訓練システム150を実現するプログラムコードで具現化されてもよく、ここで、そのようなプログラムコードは、1つ以上の処理部によって実行可能である。たとえば、GAN155のセマンティックパーサ114、識別器250、誤差最小化モジュール260、および他の局面は各々、1つ以上のソフトウェア機能または専用ハードウェアデバイスとして実現されてもよく、ここに説明されるような訓練システム150を実現するためにともに動作してもよい。セマンティックパーサ114および識別器250は各々、ニューラルネットワークといった、それぞれの機械学習モデルとして実現されてもよい。
【0032】
図2に示すように、訓練システム150はGAN155を含んでいてもよく、それは、ともに訓練される生成器および識別器250を含む。具体的には、生成器は、対話システム100のセマンティックパーサ114であってもよく、このため、セマンティックパーサ114は、対話システム100に統合される前に、または統合されている間に、GAN155内で訓練される。具体的には、訓練システム150は、発話220を論理形式230にマッピングするようにセマンティックパーサ114を訓練してもよく、訓練システム150は、論理形式230が真正である(すなわち、1組のシードデータ210において、シードタプルを、その対応する発話220と共有する)かどうかを判断するように識別器250を訓練してもよい。また、誤差最小化モジュール260は、予想される予測とGAN155において行なわれた実際の予測との間の誤差を最小化するように、セマンティックパーサ114および識別器250を更新する。いくつかの実施形態では、GAN155の一部として、セマンティックパーサ114および識別器250は、セマンティックパーサ114および識別器250の一方が改良されると他方も改良されるように、ともに訓練される。その結果、セマンティックパーサ114は、NERサブシステム112によってタグ付けされた発話220などの発話220を、DMサブシステム116によって使用可能な論理形式230にマッピングすることを学習する。
【0033】
いくつかの実施形態では、セマンティックパーサ114は、発話220に基づいて論理形式230を決定するための、シーケンス間(sequence-to-sequence:seq2seq)モデルなどのニューラルネットワークである。従来、セマンティックパーサは、1組のタプルを含む訓練データを用いて訓練され、各タプルは、発話と、対応する論理形式とを有する。しかしながら、ここに説明されるように、いくつかの実施形態では、セマンティックパーサ114は、GAN155の一部として訓練される。ここにさらに説明されるように、訓練は、シードタプルを含むシードデータ210を利用し、各シードタプルは、発話220と、対応する論理形式230とを含む。しかしながら、訓練は、識別器250からの出力も取り入れる。
【0034】
識別器250は、タプルをクラスにマッピングするバイナリ分類器であってもよく、たとえば、識別器250は、ニューラルネットワークとして実現されてもよい。識別器250は、発話220と論理形式136とを含むタプルを入力として受信してもよく、識別器250は、論理形式230が発話220の真正表現であるかどうかの指標を出力してもよい。たとえば、識別器250は、論理形式230が真正であり(すなわち、シードデータ210において発話220と対になっており)、したがって正確である確率を出力してもよい。いくつかの実施形態では、これを達成するために、識別器250は、ここに説明されるように、GAN155においてセマンティックパーサ114とともに訓練されてもよい。
【0035】
誤差最小化モジュール260は、識別器250を訓練するために、および、逆伝搬によってセマンティックパーサ114を訓練するために、訓練信号を提供してもよい。たとえば、識別器250を訓練するために、誤差最小化モジュール260は、受信された論理形式230が真正であるかどうかのしるしである識別器250からの出力を、それらの論理形式230の真正性のしるしの正確な分布と比較するために、第1の目的関数265を利用してもよい。誤差最小化モジュール260は、真正性のより良好な予測を行なうように識別器250を訓練するために、第1の目的関数265の結果を使用してもよい。
【0036】
セマンティックパーサ114を訓練するために、誤差最小化モジュール260は、セマンティックパーサ114の出力された論理形式230の真正性の予測を示す識別器250からの出力を、それらの論理形式230の真正性のしるしの選択された分布(すなわち所望の分布)と比較するために、第1の目的関数265と同じであり得る第2の目的関数265を利用してもよい。その選択された分布は、セマンティックパーサ114によって出力された論理形式230がすべて真正であることを示す分布であってもよい。これは、いくつかの実施形態では、訓練システム150は、その出力が常に真正であると考えられるセマンティックパーサ114を提供しようとするためである。当業者であれば、そのような目的関数265をどのように構成するかを理解するであろう。いくつかの実施形態では、セマンティックパーサ114および識別器250はGAN155内でともに訓練されるが、セマンティックパーサ114および生成器のうちの1つだけが、誤差最小化モジュール260からの訓練信号に基づいて所与の時間にアクティブに更新されている。
【0037】
図3は、ここに説明されるある実施形態に従った、GAN155において識別器250とともにセマンティックパーサ114を訓練する方法300の図である。いくつかの実施形態では、この方法300または同様の方法は、セマンティックパーサ114が対話システム100において使用される前に行なわれる。ここに説明される訓練を通して、セマンティックパーサ114は、発話220を、そのような発話220を表わす論理形式230に変換する(すなわちマッピングする)ことを学習してもよく、それは、対話システム100の一部としてセマンティックパーサ114によって行なわれるタスクである。
【0038】
図3に表わされる方法300、および、ここに説明される他の方法は、1つ以上の処理部(たとえばプロセッサまたはプロセッサコア)によって実行される(たとえばコード、命令、またはプログラムとしての)ソフトウェアにおいて、ハードウェアにおいて、またはそれらの組合せにおいて実現されてもよい。ソフトウェアは、非一時的記憶媒体上に、たとえばメモリデバイス上に格納されてもよい。この方法300は、例示的および非限定的であるよう意図されている。図3はある特定のシーケンスまたは順序で生じるさまざまな活動を表わすが、これは限定的であるよう意図されていない。ある実施形態では、たとえば、これらの活動は異なる順序で行なわれてもよく、または、方法300の1つ以上の活動は並行して行なわれてもよい。ある実施形態では、方法300は、訓練システム150によって行なわれてもよい。
【0039】
図3に示すように、ブロック305で、訓練システム150のデータ入力サブシステム240は、シードデータ210を取得する。シードデータ210は1組のシードタプルを含んでいてもよく、各シードタプルは、発話220と、対応する論理形式230とを含む。各シードタプルにおいて、論理形式230は、発話220の正確で真正な表現または変換である。シードデータ210を取得するためにさまざまな手法が存在することが理解されるであろう。たとえば、シードデータ210は、クラウドソーシングなどを通して手動で決定され、次に、データ入力サブシステム240によってアクセス可能なメモリデバイスに格納されてもよい。
【0040】
ブロック310で、訓練システム150は、訓練の新たなラウンドを開始する。ブロック310は、反復するループの始まりである。いくつかの実施形態では、ループの各反復中、訓練システム150は、訓練のラウンドを行なう。訓練の各ラウンドは、ラウンドの一部分中に識別器250を訓練することと、ラウンドの別の部分中にセマンティックパーサ114を訓練することとを含んでいてもよい。ラウンドのこれら2つの部分は並行して行なわれてもよいが、いくつかの実施形態では、これら2つの部分は、第2の部分におけるセマンティックパーサ114の訓練が第1の部分における識別器250の訓練から利益を得ることができるように、順次行なわれる。また、訓練システム150は、識別器250およびセマンティックパーサ114を訓練するラウンドごとに、よって、ループの反復ごとに、シードデータ210の異なる部分集合を利用してもよい。
【0041】
ブロック315で、訓練システム150は、ブロック305で取得されたシードデータ210の第1の部分に基づいて識別器250の訓練を行なう。いくつかの実施形態では、シードデータ210のこの第1の部分は、以前のラウンドにおいて訓練のためにまだ使用されていない。識別器250のこの訓練中、セマンティックパーサ114は、セマンティックパーサ114からの出力の真正性に関する識別器の予測に基づく識別器250の更新を、セマンティックパーサ114がその出力をどのように判断するかを変更することなく可能にするように、固定されてもよい。訓練のラウンド中に識別器250を訓練することに関与する活動は、図4を参照して以下により詳細に説明される。
【0042】
ブロック320で、訓練システム150は、ブロック305で取得されたシードデータ210の第2の部分に基づいてセマンティックパーサ114の訓練を行なう。いくつかの実施形態では、シードデータ210のこの第2の部分は、ブロック310で使用された第1の部分とは異なっており(たとえば、シードタプルにおける重複がない)、以前のラウンドにおいて訓練のためにまだ使用されていない。セマンティックパーサ114のこの訓練中、識別器250は、セマンティックパーサ114からの出力の真正性に関する識別器の予測に基づくセマンティックパーサ114の更新を、識別器250がその真正性をどのように判断するかを変更することなく可能にするように、固定されてもよい。訓練のラウンド中にセマンティックパーサ114を訓練することに関与する活動は、図5を参照して以下により詳細に説明される。
【0043】
決定ブロック325で、訓練システム150は、ブロック305で取得されたシードデータ210がすべて、上述のような訓練の何らかのラウンド(すなわち、ループの何らかの反復)のために選択され使用されたかどうかを判断する。シードデータ210がすべて使用されたわけではない場合、方法300はブロック310に戻ってもよく、そこで、訓練の別のラウンドが始まる。しかしながら、シードデータ210がすべて訓練において使用された場合、方法300はブロック330で終了してもよく、その時点で、セマンティックパーサ114はすでに訓練されており、対話システム100において使用できる状態であってもよい。
【0044】
図4は、ここに説明されるある実施形態に従った、GAN155における訓練のラウンドの一部分として識別器250を訓練する方法400の図である。具体的には、訓練システム150は、訓練の単一のラウンド内で識別器250を訓練するために、この方法400または同様の方法を、上述の方法300のブロック315で行なってもよい。このため、いくつかの実施形態によれば、この方法400または同様の方法は、反復ごとに1回行なわれてもよい。
【0045】
図4に表わされる方法400、および、ここに説明される他の方法は、1つ以上の処理部(たとえばプロセッサまたはプロセッサコア)によって実行される(たとえばコード、命令、またはプログラムとしての)ソフトウェアにおいて、ハードウェアにおいて、またはそれらの組合せにおいて実現されてもよい。ソフトウェアは、非一時的記憶媒体上に、たとえばメモリデバイス上に格納されてもよい。この方法400は、例示的および非限定的であるよう意図されている。図4はある特定のシーケンスまたは順序で生じるさまざまな活動を表わすが、これは限定的であるよう意図されていない。ある実施形態では、たとえば、これらの活動は異なる順序で行なわれてもよく、または、方法400の1つ以上の活動は並行して行なわれてもよい。ある実施形態では、方法400は、訓練システム150によって行なわれてもよい。
【0046】
ブロック405で、訓練システム150のデータ入力サブシステム240は、シードデータ210の第1の部分を選択し、ここで、第1の部分は、訓練の以前のラウンドにおいてまだ使用されていない。いくつかの実施形態では、シードデータ210のこの第1の部分は、シードデータ210におけるシードタプルの部分集合である。たとえば、シードデータ210の第1の部分は、シードデータ210のシードタプルがすべて第1の部分に含まれるわけではないように、シードデータ210におけるシードタプルの真部分集合であってもよい。
【0047】
ブロック410で、識別器250が更新のために開いている間、セマンティックパーサ114は固定される。言い換えれば、いくつかの実施形態では、セマンティックパーサ114は、識別器250がセマンティックパーサ114の現在の状態に基づいて訓練されることを可能にするように、当分の間、静的なままであろう。
【0048】
いくつかの実施形態では、ブロック415およびブロック420は、並行して行なわれる。ブロック415で、訓練システム150のデータ入力サブシステム240は、発話220のストリームをセマンティックパーサ114に入力し、セマンティックパーサ114は、セマンティックパーサ114に入力された発話220のストリームに基づいて論理形式230を生成する。発話220のストリームにおける発話220は、シードデータ210からのものではなく、たとえば、データ入力サブシステム240によって、またはいくつかの他のコンポーネントによってランダムに生成されたかまたはランダムに選択された発話220であってもよい。限定のためではなく例示のために、発話220は、自然言語で書かれたコーパス(たとえば、1つ以上の本または記事)から選択されてもよい。受信されたそのような発話220ごとに、セマンティックパーサ114は、論理形式230を生成してもよい。訓練初期では、セマンティックパーサの論理形式230の出力は、劣っているかもしれない。たとえば、生成された論理形式230は、ランダム(たとえば、単語および記号のランダム配置)であるかもしれない。しかしながら、ラウンド全体を通して、または複数のラウンドにわたって訓練が進むにつれて、セマンティックパーサ114は改良され得る。
【0049】
ブロック415と並行して行なわれ得るブロック420で、訓練システム150のデータ入力サブシステム240は、タプルのストリームを識別器250に入力してもよく、識別器250は、それらのタプルについての真正性の予測を生成してもよい。タプルのストリームにおける各タプルは、発話220と論理形式230とを含んでいてもよい。データ入力サブシステム240は、タプルのこのストリームを、(1)ブロック405で選択されたシードデータ210の第1の部分からのシードタプルと、(2)ブロック415でセマンティックパーサ114によって生成された論理形式230を有するタプルとの組合せ(たとえば、ランダムな組合せ、または任意の組合せ)として提供してもよい。タプルのストリームに基づいて、識別器250は、タプルに対応する真正性の予測を出力してもよい。言い換えれば、タプルを与えられると、識別器250は、タプルにおける論理形式230が、タプルにおける発話220の真正表現であるかどうかを予測してもよく、または、言い換えれば、識別器250は、タプルが、セマンティックパーサ114によって生成された論理形式230ではなく、シードデータ210の一部であるかどうかを推測してもよい。識別器250によって受信されたタプルは、シードデータ210の第1の部分にあるシードタプル、および、セマンティックパーサ114によって受信された発話220とブロック415でセマンティックパーサ114によって生成された対応する論理形式230とを各々含む生成されたタプルの双方を含んでいてもよい。
【0050】
いくつかの実施形態では、識別器250は、どのタプルがシードデータ210からのもので、したがって真正であるか、および、どのタプルがセマンティックパーサ114からのもので、したがって生成されたものであるかを通知されない。タプルごとに、識別器250は、考えられる真正性に基づいてタプルを分類してもよい。この目的のために、識別器250は、論理形式230がタプルにおける対応する発話220の真正表現である可能性の判断(すなわち予測)を示すスコアを出力してもよい。たとえば、スコアは、論理形式230がタプルにおける対応する発話220の真正表現であり、したがって、タプルがシードデータ210からのものである確率である。理想的には、識別器250は、真正タプル(すなわちシードタプル)については、1などの高い確率を出力し、生成されたタプルについては、0などの低い確率を出力する。訓練初期では、識別器の出力は、劣っているかもしれない。たとえば、出力される確率は、一定範囲(たとえば、0~1(0と1とを含む))内の乱数であってもよい。しかしながら、ラウンド全体を通して、または複数のラウンドにわたって訓練が進むにつれて、識別器250は改良され得る。
【0051】
ブロック425で、訓練システム150の誤差最小化モジュール260は、ブロック415およびブロック420で決定されたようなセマンティックパーサ114および識別器250の出力に基づいて識別器250を訓練するための訓練信号を生成する。いくつかの実施形態では、訓練システム150のデータ入力サブシステム240は、誤差最小化モジュール260が訓練信号を決定することを可能にするように、ブロック405でアクセスされるようなシードデータ210の第1の部分を誤差最小化モジュール260に提供する。
【0052】
たとえば、誤差最小化モジュール260は、予測の正確な分布(すなわち、値の正確なシーケンス)を、識別器250からの予測の実際の分布(すなわち、値の実際のシーケンス)と比較する第1の目的関数265を適用し、それら2つの分布間の相違、すなわち違いの程度を判断してもよい。誤差最小化モジュール260は、シードデータ210の第1の部分へのアクセスを有していてもよく、したがって、識別器250によって受信されたどのタプルが真正であるか、および、どのタプルが生成されたかを知っていてもよい。そのため、誤差最小化モジュール260は、正確な分布が、1の値(すなわち100パーセントの確率)をシードタプルに割り当て、0の値(すなわち0パーセントの確率)を真正でない生成されたタプルに割り当てることを知っている。このため、誤差最小化モジュール260は、訓練信号を識別器250に提供するように、この正確な分布を識別器250の実際の出力と比較するために、第1の目的関数265を使用してもよい。訓練信号は、識別器250によって行なわれた予測における誤差を表わす。訓練信号に基づいて、訓練システム150は、正確な分布と実際の分布との間の誤差を減少させるように識別器250を更新してもよい。たとえば、識別器250として作用するニューラルネットワークのノードが、訓練信号に基づいて更新されてもよい。
【0053】
いくつかの実施形態では、図4に示すように、ブロック415およびブロック420に続いて、ブロック425が行なわれる。その場合、識別器250が訓練のこのラウンドにおいて識別器250を訓練するために使用されているタプルをすべて受信して初めて、誤差最小化モジュール260は訓練信号を提供してもよい。そのため、識別器250は、上述のシードデータ210の第1の部分全体と生成されたタプルとを含むバッチに基づいて、いったん更新されてもよい。しかしながら、それに代えて、識別器250が入力を評価している間に訓練信号が識別器250に送り返されるように、シードデータ210の第1の部分と生成されたタプルとが依然として提供されている間に識別器250が更新されるように、ブロック425は、ブロック415およびブロック420と並行して行なわれてもよい。
【0054】
ブロック430で、訓練システム150は、訓練の現在のラウンドにおける識別器250の訓練を終了する。そのため、ブロック410で固定されたセマンティックパーサ114は、訓練が進むにつれてロック解除され、固定されたままである必要はない。
【0055】
図5は、ここに説明されるある実施形態に従った、GAN155における訓練のラウンドの一部分としてセマンティックパーサを訓練する方法の図である。具体的には、訓練システム150は、訓練の単一のラウンド内でセマンティックパーサ114を訓練するために、この方法500または同様の方法を、上述の方法300のブロック320で行なってもよい。このため、いくつかの実施形態によれば、この方法500または同様の方法は、反復ごとに1回行なわれてもよい。
【0056】
図5に表わされる方法500、および、ここに説明される他の方法は、1つ以上の処理部(たとえばプロセッサまたはプロセッサコア)によって実行される(たとえばコード、命令、またはプログラムとしての)ソフトウェアにおいて、ハードウェアにおいて、またはそれらの組合せにおいて実現されてもよい。ソフトウェアは、非一時的記憶媒体上に、たとえばメモリデバイス上に格納されてもよい。この方法500は、例示的および非限定的であるよう意図されている。図5はある特定のシーケンスまたは順序で生じるさまざまな活動を表わすが、これは限定的であるよう意図されていない。ある実施形態では、たとえば、これらの活動は異なる順序で行なわれてもよく、または、方法500の1つ以上の活動は並行して行なわれてもよい。ある実施形態では、方法500は、訓練システム150によって行なわれてもよい。
【0057】
ブロック505で、訓練システム150のデータ入力サブシステム240は、シードデータ210の第2の部分を選択し、ここで、第2の部分は、訓練の以前のラウンドにおいてまだ使用されていない。いくつかの実施形態では、シードデータ210のこの第2の部分は、シードデータ210におけるシードタプルの部分集合である。たとえば、シードデータ210の第2の部分は、シードデータ210のシードタプルがすべて第2の部分に含まれるわけではないように、シードデータ210におけるシードタプルの真部分集合であってもよい。加えて、いくつかの実施形態では、シードデータ210の第2の部分は、第1の部分とは異なっている。しかしながら、それに代えて、第2の部分は、シードデータ210の第1の部分と同じであってもよい。いずれの場合も、第1の部分および第2の部分以外のシードデータ210の残りは、訓練方法300全体のその後の反復において使用されてもよい。
【0058】
ブロック510で、セマンティックパーサ114が更新のために開いている間、識別器250は固定される。言い換えれば、いくつかの実施形態では、識別器250は、セマンティックパーサ114が識別器250の現在の状態に基づいて訓練されることを可能にするように、当分の間、静的なままであろう。
【0059】
いくつかの実施形態では、ブロック515およびブロック520は、並行して行なわれる。ブロック515で、訓練システム150のデータ入力サブシステム240は、ブロック505で選択されたシードデータ210の第2の部分からの発話220をセマンティックパーサ114に入力し、セマンティックパーサ114は、そのような発話220に基づいて論理形式230を生成する。訓練初期では、セマンティックパーサの論理形式230の出力は、劣っているかもしれない。たとえば、生成された論理形式230は、ランダム(たとえば、単語および記号のランダム配置)であるかもしれない。しかしながら、ラウンド全体を通して、または複数のラウンドにわたって訓練が進むにつれて、セマンティックパーサ114は改良され得る。
【0060】
ブロック515と並行して行なわれ得るブロック520で、訓練システム150のデータ入力サブシステム240は、タプルのストリームを識別器250に入力してもよく、識別器250は、ストリームにおける各タプルについての真正性の予測を行なってもよい。タプルのストリームにおける各タプルは、発話220と、対応する論理形式230とを含んでいてもよい。より具体的には、受信された各タプルは、ブロック505で選択されるようなシードデータ210の第2の部分から選択されたそれぞれのシードタプルからの発話220を、ブロック515でセマンティックパーサ114への入力として提供されているその発話220に基づいてセマンティックパーサ114によって出力された、生成された論理形式230とともに含んでいてもよい。受信されたタプルごとに、識別器250は、考えられる真正性に基づいてタプルを分類してもよい。具体的には、識別器250は、真正性の可能性を示すスコアを出力してもよい。たとえば、タプルについて識別器250によって決定されたスコアは、論理形式230がタプルにおける対応する発話220の真正な、ひいては正確な表現である確率であってもよく、または、言い換えれば、タプルがシードデータ210からのシードタプルである確率であってもよい。この点で、識別器250は、図4を参照して説明されるような何らかの訓練をすでに受けているため、その出力が依然として改良を必要とする間、識別器250は、訓練のその後のラウンド中に引き続き改良され得る。
【0061】
ブロック525で、訓練システム150の誤差最小化モジュール260は、ブロック515およびブロック520で決定されたようなセマンティックパーサ114および識別器250の出力に基づいて、逆伝搬を介してセマンティックパーサ114を訓練するための訓練信号を生成する。この目的のために、たとえば、誤差最小化モジュール260は、識別器250からの予測の選択された分布と識別器250からの予測の実際の分布との間の相違を判断する第2の目的関数265を適用する。第2の目的関数265は、識別器250を訓練する際に使用される第1の目的関数265と同じであってもよいが、同じである必要はない。いくつかの実施形態では、訓練システム150は、セマンティックパーサ114が識別器250をだまして、セマンティックパーサ114の出力がすべて真正であると予測させることを可能にするように、セマンティックパーサ114を改良しようとするため、予測の選択された分布は、一連の予測である。いくつかの実施形態では、予測のそのような分布は、セマンティックパーサ114によって生成された論理形式230はすべて真正であるということを示すであろう。このため、第2の目的関数265は、(たとえば一連の予測の)この選択された分布を、ブロック520での識別器250からの出力の実際の分布と比較して、これらの分布間の違いの程度を判断してもよい。
【0062】
誤差最小化モジュール260は、訓練信号をセマンティックパーサ114に提供するように、この選択された分布を識別器250の実際の予測と比較するために、第2の目的関数265を使用してもよい。訓練信号は、選択された(すなわち所望された)ものと比較して行なわれた予測における誤差を表わす。訓練信号に基づいて、セマンティックパーサ114は、選択された分布と実際の分布との間の誤差を減少させるように更新されてもよい。たとえば、セマンティックパーサ114として作用するニューラルネットワークのノードが、訓練信号に基づいて更新されてもよい。
【0063】
いくつかの実施形態では、図5に示すように、ブロック515およびブロック520に続いて、ブロック525が行なわれる。この場合、セマンティックパーサ114がシードデータ210の第2の部分における発話220をすべて受信して初めて、誤差最小化モジュール260は訓練信号を提供してもよい。そのため、セマンティックパーサ114は、シードデータ210の第2の部分全体を含むバッチに基づいて更新される。しかしながら、それに代えて、セマンティックパーサ114が入力を評価している間に訓練信号がセマンティックパーサ114に送り返されるように、シードデータ210の第2の部分からの発話220が提供されている間にセマンティックパーサ114が更新されるように、ブロック525は、ブロック515およびブロック520と並行して行なわれてもよい。
【0064】
このため、上述のように、GAN155は、対話システム100での使用のためにセマンティックパーサ114を訓練するために使用され得る。さまざまな修正が上述の手法に加えられてもよく、そのような修正はこの開示の範囲内にある。たとえば、教師付き識別器、教師なし識別器、およびセマンティックパーサ114をともに訓練するために、半教師付きGAN(semi-supervised GAN:SGAN)がGAN155として使用されてもよい。GAN訓練のためであっても、シードデータ210が比較的小さい1組である場合、SGANは特に有用であり得る。それに加えて、またはそれに代えて、識別器250は、論理形式230が準拠しなければならない文法についての情報を取り入れてもよい。この文法を参照して、識別器250は、論理形式230が真正であるかどうかをより正確に判断してもよく、それは、セマンティックパーサ114を、より迅速に改良されるよう促し得る。
【0065】
図6は、ある実施形態を実現するための分散型システム600の図である。図示された実施形態では、分散型システム600は、1つ以上の通信ネットワーク610を介してサーバ612に結合された1つ以上のクライアントコンピューティングデバイス602、604、606、および608を含む。クライアントコンピューティングデバイス602、604、606、および608は、1つ以上のアプリケーションを実行するように構成されてもよい。
【0066】
さまざまな実施形態では、サーバ612は、ここに説明されるように対話システム100のセマンティックパーサ114を訓練するためにGAN155において逆伝搬を使用することを可能にする1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。たとえば、サーバ612は、訓練システム150のいくつかまたはすべての局面、もしくは、対話システム100のいくつかまたはすべての局面を実行してもよい。
【0067】
ある実施形態では、サーバ612はまた、非仮想環境および仮想環境を含み得る他のサービスまたはソフトウェアアプリケーションを提供してもよい。いくつかの実施形態では、これらのサービスは、ソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)モデル下などのウェブベースのサービスまたはクラウドサービスとして、クライアントコンピューティングデバイス602、604、606、および/または608のユーザに提供されてもよい。クライアントコンピューティングデバイス602、604、606、および/または608を操作するユーザは次に、1つ以上のクライアントアプリケーションを利用してサーバ612と相互作用し、これらのコンポーネントによって提供されるサービスを利用してもよい。より具体的には、たとえば、クライアントコンピューティングデバイス602、604、606、および/または608の各々は、対話システム100を実行するように構成され、さらに、サーバ612がここに説明されるようにGAN155において対話システム100のセマンティックパーサ114を逆伝搬を通して訓練することを可能にするようにサーバ612と通信するように構成された、埋込み型デバイスであってもよい。
【0068】
図6に表わされる構成では、サーバ612は、サーバ612によって行なわれる機能を実現する1つ以上のコンポーネント618、620、および622を含んでいてもよい。これらのコンポーネントは、1つ以上のプロセッサによって実行され得るソフトウェアコンポーネント、ハードウェアコンポーネント、またはそれらの組合せを含んでいてもよい。分散型システム600とは異なり得るさまざまな異なるシステム構成が可能であることが理解されるべきである。図6に示す実施形態はこのため、実施形態のシステムを実現するための分散型システムの一例であり、限定的であるよう意図されていない。
【0069】
ユーザは、この開示の教示に従ってサーバ612によって提供される対話システム100の局面と相互作用するために、クライアントコンピューティングデバイス602、604、606、および/または608を使用してもよい。クライアントデバイスは、クライアントデバイスのユーザがクライアントデバイスと相互作用することを可能にするインターフェイス(たとえば音声インターフェイス)を提供してもよい。図6はクライアントコンピューティングデバイスを4つだけ表わしているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。
【0070】
クライアントデバイスは、PAデバイス、携帯型ハンドヘルドデバイス、パーソナルコンピュータおよびラップトップなどの汎用コンピュータ、ワークステーションコンピュータ、ウェアラブルデバイス、ゲーミングシステム、シンクライアント、さまざまなメッセージングデバイス、センサまたは他の感知デバイスなどといった、さまざまなタイプのコンピューティングシステムを含んでいてもよい。これらのコンピューティングデバイスは、さまざまなタイプおよびバージョンのソフトウェアアプリケーションおよびオペレーティングシステム(たとえば、マイクロソフト・ウィンドウズ(登録商標)、アップル・マッキントッシュ(登録商標)、UNIX(登録商標)またはUNIX系オペレーティングシステム、リナックス(登録商標)またはリナックス系オペレーティングシステム、たとえばグーグル・クローム(商標)OS)を実行してもよく、これらは、さまざまなモバイルオペレーティングシステム(たとえば、マイクロソフト・ウィンドウズ・モバイル(登録商標)、iOS(登録商標)、ウィンドウズ・フォン(登録商標)、アンドロイド(商標)、ブラックベリー(登録商標)、パームOS(登録商標))を含む。携帯型ハンドヘルドデバイスは、携帯電話、スマートフォン(たとえばiPhone(登録商標))、タブレット(たとえばiPad(登録商標))、携帯情報端末(personal digital assistant:PDA)などを含んでいてもよい。ウェアラブルデバイスは、グーグル・グラス(登録商標)頭部装着型ディスプレイ、および他のデバイスを含んでいてもよい。ゲーミングシステムは、さまざまな携帯型ゲーミングデバイス、インターネット対応ゲーミングデバイス(たとえば、Kinect(登録商標)ジェスチャー入力デバイスを有する、または有さない、マイクロソフトXbox(登録商標)ゲーミングコンソール、ソニー・プレイステーション(登録商標)システム、任天堂(登録商標)によって提供されるさまざまなゲーミングシステム、その他)などを含んでいてもよい。クライアントデバイスは、さまざまなインターネット関連アプリ、通信アプリケーション(たとえば電子メールアプリケーション、ショート・メッセージ・サービス(short message service:SMS)アプリケーション)などのさまざまな異なるアプリケーションを実行可能であってもよく、さまざまな通信プロトコルを使用してもよい。
【0071】
ネットワーク610は、TCP/IP(transmission control protocol/Internet protocol:伝送制御プロトコル/インターネットプロトコル)、SNA(systems network architecture:システムネットワークアーキテクチャ)、IPX(Internet packet exchange:インターネットパケット交換)、アップル・トーク(登録商標)などを何ら限定されることなく含む、入手可能なさまざまなプロトコルのうちのいずれかを使用してデータ通信をサポートできる、当業者にはよく知られた任意のタイプのネットワークであってもよい。単なる例として、ネットワーク610は、ローカルエリアネットワーク(local area network:LAN)、イーサネット(登録商標)やトークンリングに基づくネットワーク、ワイドエリアネットワーク(wide-area network:WAN)、インターネット、仮想ネットワーク、仮想プライベートネットワーク(virtual private network:VPN)、イントラネット、エクストラネット、公衆交換電話網(public switched telephone network:PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば、米国電気電子学会(the Institute of Electrical and Electronics:IEEE)802.11プロトコルスイート、Bluetooth(登録商標)、および/または任意の他の無線プロトコルのうちのいずれかの下で動作するネットワーク)、ならびに/もしくは、これらのおよび/または他のネットワークの任意の組合せであり得る。
【0072】
サーバ612は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(例として、PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウントサーバなどを含む)、サーバファーム、サーバクラスタ、もしくは任意の他の適切な構成および/または組合せで構成されてもよい。サーバ612は、仮想オペレーティングシステムを実行する1つ以上の仮想機械か、または、仮想化に関与する他のコンピューティングアーキテクチャ、たとえば、サーバのために仮想記憶デバイスを維持するように仮想化され得る論理記憶デバイスの1つ以上のフレキシブルプールを含み得る。さまざまな実施形態では、サーバ612は、前述の開示で説明された機能性を提供する1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。
【0073】
サーバ612におけるコンピューティングシステムは、上述のもののうちのいずれかを含む1つ以上のオペレーティングシステム、および商業的に入手可能な任意のサーバオペレーティングシステムを実行してもよい。サーバ612はまた、さまざまな追加のサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかを実行してもよく、これらは、HTTP(hypertext transport protocol:ハイパーテキスト伝送プロトコル)サーバ、FTP(file transfer protocol:ファイル転送プロトコル)サーバ、CGI(common gateway interface:コモンゲートウェイインターフェイス)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含む。例示的なデータベースサーバは、オラクル(登録商標)、マイクロソフト(登録商標)、サイベース(Sybase)(登録商標)、IBM(International Business Machines:インターナショナル・ビジネス・マシーンズ)などから商業的に入手可能なものを何ら限定されることなく含む。
【0074】
いくつかの実現化例では、サーバ612は、クライアントコンピューティングデバイス602、604、606、および608のユーザから受信されたデータフィードおよび/またはイベント更新を分析して統合するための1つ以上のアプリケーションを含んでいてもよい。一例として、データフィードおよび/またはイベント更新は、センサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などに関連するリアルタイムイベントを含み得る、1つ以上の第三者情報源および連続データストリームから受信されたツイッター(登録商標)フィード、フェースブック(登録商標)更新またはリアルタイム更新を含んでいてもよいが、それらに限定されない。サーバ612はまた、クライアントコンピューティングデバイス602、604、606、および608の1つ以上の表示デバイスを介してデータフィードおよび/またはリアルタイムイベントを表示するための1つ以上のアプリケーションを含んでいてもよい。
【0075】
分散型システム600はまた、1つ以上のデータリポジトリ614、616を含んでいてもよい。ある実施形態では、これらのデータリポジトリは、データおよび他の情報を格納するために使用されてもよい。たとえば、ここに説明されるようにGAN155において対話システム100のセマンティックパーサ114を逆伝搬によって訓練するために必要とされるシードデータ210または他のデータを格納するために、データリポジトリ614、616のうちの1つ以上が使用されてもよい。データリポジトリ614、616は、さまざまな位置に存在していてもよい。たとえば、サーバ612によって使用されるデータリポジトリは、サーバ612に対してローカルであってもよく、または、サーバ612からリモートであり、ネットワークベースの接続または専用接続を介してサーバ612と通信していてもよい。データリポジトリ614、616は、異なるタイプのものであってもよい。ある実施形態では、サーバ612によって使用されるデータリポジトリは、データベース、たとえばリレーショナルデータベース、たとえばオラクル・コーポレイション(登録商標)および他のベンダーによって提供されるデータベースであってもよい。これらのデータベースのうちの1つ以上が、SQLフォーマットのコマンドに応答してデータベースとの間でデータを格納し、更新し、検索することを可能にするように適合されてもよい。
【0076】
ある実施形態では、データリポジトリ614、616のうちの1つ以上はまた、アプリケーションデータを格納するためにアプリケーションによって使用されてもよい。アプリケーションによって使用されるデータリポジトリは、たとえば、ファイルシステムによってサポートされるキー値ストアリポジトリ、オブジェクトストアリポジトリ、または一般的な記憶リポジトリといった、異なるタイプのものであってもよい。
【0077】
ある実施形態では、ここに説明されるようにGAN155において対話システム100のセマンティックパーサ114を逆伝搬によって訓練することのすべてまたは一部が、クラウド環境を介してサービスとして提供されてもよい。図7は、ここに説明されるある実施形態に従った、ここに説明されるようにセマンティックパーサ114を訓練することが少なくとも部分的にクラウドサービスとして提供され得る、クラウドベースのシステム環境のブロック図である。図7に表わされる実施形態では、クラウドインフラストラクチャシステム702は、1つ以上のクライアントコンピューティングデバイス704、706、および708を使用するユーザによって要求され得る1つ以上のクラウドサービスを提供してもよい。クラウドインフラストラクチャシステム702は、サーバ612について上述したものを含み得る1つ以上のコンピュータおよび/またはサーバを含んでいてもよい。クラウドインフラストラクチャシステム702におけるコンピュータは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、もしくは任意の他の適切な構成および/または組合せとして編成されてもよい。
【0078】
ネットワーク710は、クライアントコンピューティングデバイス704、706、および708とクラウドインフラストラクチャシステム702との間のデータの通信および交換を容易にしてもよい。ネットワーク710は、1つ以上のネットワークを含んでいてもよい。これらのネットワークは、同じタイプのものであっても、異なるタイプのものであってもよい。ネットワーク710は、通信を容易にするために、有線および/または無線プロトコルを含む1つ以上の通信プロトコルをサポートしてもよい。
【0079】
図7に表わされる実施形態は、クラウドインフラストラクチャシステムの一例に過ぎず、限定的であるよう意図されていない。いくつかの他の実施形態では、クラウドインフラストラクチャシステム702は、図7に表わされるものよりも多い、または少ないコンポーネントを有していてもよく、2つ以上のコンポーネントを組合せてもよく、もしくは、異なる構成または配置のコンポーネントを有していてもよいということが理解されるべきである。たとえば、図7は3つのクライアントコンピューティングデバイスを表わしているが、代替的な実施形態では、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。
【0080】
クラウドサービスという用語は一般に、サービスプロバイダのシステム(たとえばクラウドインフラストラクチャシステム702)によって、インターネットなどの通信ネットワークを介して、ユーザがオンデマンドで利用できるようになるサービスを指すために使用される。典型的には、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを作り上げるサーバおよびシステムは、顧客自身の構内サーバおよびシステムとは異なっている。クラウドサービスプロバイダのシステムは、クラウドサービスプロバイダによって管理される。顧客はこのため、クラウドサービスプロバイダによって提供されるクラウドサービスを、当該サービスのための別々のライセンス、サポート、またはハードウェアおよびソフトウェアリソースを購入する必要なく、利用することができる。たとえば、クラウドサービスプロバイダのシステムはアプリケーションをホストしてもよく、ユーザは、ユーザが当該アプリケーションを実行するためのインフラストラクチャリソースを購入する必要なく、インターネットを介してオンデマンドで当該アプリケーションをオーダーし、使用してもよい。クラウドサービスは、アプリケーション、リソースおよびサービスへの容易でスケーラブルなアクセスを提供するように設計されている。いくつかのプロバイダはクラウドサービスを提供する。たとえば、ミドルウェアサービス、データベースサービス、Javaクラウドサービスなどといったいくつかのクラウドサービスが、カリフォルニア州レッドウッド・ショアズ(Redwood Shores)のオラクル・コーポレイション(登録商標)によって提供される。
【0081】
ある実施形態では、クラウドインフラストラクチャシステム702は、ハイブリッドサービスモデルを含む、ソフトウェア・アズ・ア・サービス(SaaS)モデル、プラットフォーム・アズ・ア・サービス(Platform as a Service:PaaS)モデル、インフラストラクチャ・アズ・ア・サービス(Infrastructure as a Service:IaaS)モデルなどの下にある異なるモデルを使用して、1つ以上のクラウドサービスを提供してもよい。クラウドインフラストラクチャシステム702は、さまざまなクラウドサービスの提供を可能にするアプリケーション、ミドルウェア、データベース、および他のリソース一式を含んでいてもよい。
【0082】
SaaSモデルは、顧客が基本アプリケーションのためのハードウェアまたはソフトウェアを購入する必要なく、アプリケーションまたはソフトウェアがインターネットなどの通信ネットワークを通してサービスとして顧客に送られることを可能にする。たとえば、SaaSモデルは、クラウドインフラストラクチャシステム702によってホストされるオンデマンドアプリケーションへのアクセスを顧客に提供するために使用されてもよい。オラクル・コーポレイション(登録商標)によって提供されるSaaSサービスの例は、人材/資本管理、顧客関係管理(customer relationship management:CRM)、企業資源計画(enterprise resource planning:ERP)、サプライチェーン管理(supply chain management:SCM)、企業業績管理(enterprise performance management:EPM)、分析サービス、ソーシャルアプリケーションなどのためのさまざまなサービスを、何ら限定されることなく含む。
【0083】
IaaSモデルは一般に、インフラストラクチャリソース(たとえば、サーバ、ストレージ、ハードウェアおよびネットワーキングリソース)をクラウドサービスとして顧客に提供して、弾力的な計算および記憶能力を提供するために使用される。さまざまなIaaSサービスが、オラクル・コーポレイション(登録商標)によって提供される。
【0084】
PaaSモデルは一般に、顧客がアプリケーションおよびサービスを開発し、実行し、管理することを可能にするプラットフォームおよび環境リソースを、顧客がそのようなリソースを入手し、構築し、または維持する必要なく、サービスとして提供するために使用される。オラクル・コーポレイション(登録商標)によって提供されるPaaSサービスの例は、オラクルJavaクラウドサービス(Java Cloud Service:JCS)、オラクル・データベース・クラウド・サービス(Database Cloud Service:DBCS)、データ管理クラウドサービス、さまざまなアプリケーション開発ソリューションサービスなどを、何ら限定されることなく含む。
【0085】
クラウドサービスは一般に、オンデマンドのセルフサービスベースで、サブスクリプションベースで、弾力的にスケーラブルで、信頼性があり、高可用性で、セキュアな態様で提供される。たとえば、顧客は、クラウドインフラストラクチャシステム702によって提供される1つ以上のサービスを、サブスクリプションオーダーを介してオーダーしてもよい。クラウドインフラストラクチャシステム702は次に、顧客のサブスクリプションオーダーにおいて要求されたサービスを提供するために処理を行なう。たとえば、顧客は、会話形式で対話システム100によって提供される情報サービスまたは他のサービスをサブスクライブしてもよい。クラウドインフラストラクチャシステム702は、1つまたは複数のクラウドサービスを提供するように構成されてもよい。
【0086】
クラウドインフラストラクチャシステム702は、異なるデプロイメントモデルを介してクラウドサービスを提供してもよい。パブリッククラウドモデルでは、クラウドインフラストラクチャシステム702は第三者クラウドサービスプロバイダによって所有されてもよく、クラウドサービスは任意の一般大衆顧客に提供され、ここで顧客は個人または企業であり得る。ある他の実施形態では、プライベートクラウドモデルの下で、クラウドインフラストラクチャシステム702はある組織内で(たとえば、ある企業組織内で)動作されてもよく、当該組織内の顧客のためにサービスが提供されてもよい。たとえば、顧客は、人事部、給与課などといった、企業のさまざまな部門であってもよく、または、当該企業内の個人であってもよい。ある他の実施形態では、コミュニティクラウドモデルの下で、クラウドインフラストラクチャシステム702および提供されるサービスは、関連するコミュニティにおけるいくつかの組織によって共有されてもよい。上述のモデルのハイブリッドといったさまざまな他のモデルも、使用されてもよい。
【0087】
クライアントコンピューティングデバイス704、706、および708は、異なるタイプのもの(図6に表わされるクライアントコンピューティングデバイス602、604、606、および608など)であってもよく、1つ以上のクライアントアプリケーションを動作可能であってもよい。ユーザは、クラウドインフラストラクチャシステム702によって提供されるサービスを要求するなどのために、クライアントコンピューティングデバイスを使用してクラウドインフラストラクチャシステム702と相互作用してもよい。攻撃者は、悪意のある要求を送信するためにクライアントデバイスを使用する場合がある。
【0088】
いくつかの実施形態では、クラウドインフラストラクチャシステム702によって行なわれる処理は、ビッグデータ分析を要する場合がある。この分析は、大きいデータセットを使用し、分析し、操作して、データ内のさまざまな傾向、挙動、関係などを検出し、視覚化することを要する場合がある。この分析は、1つ以上のプロセッサが、おそらくはデータを並列処理し、データを使用してシミュレーションを行なうことなどによって行なわれてもよい。たとえば、ビッグデータ分析は、ここに説明されるようなGAN155における逆伝搬によるセマンティックパーサ114の訓練を提供するために、クラウドインフラストラクチャシステム702によって行なわれてもよい。この分析のために使用されるデータは、構造化データ(たとえば、データベースに格納されたデータ、または構造化モデルに従って構造化されたデータ)および/または非構造化データ(たとえば、データブロブ(blob:binary large object:バイナリラージオブジェクト))を含んでいてもよい。
【0089】
図7の実施形態において表わされるように、クラウドインフラストラクチャシステム702は、クラウドインフラストラクチャシステム702によって提供されるさまざまなクラウドサービスの提供を容易にするために利用されるインフラストラクチャリソース730を含んでいてもよい。インフラストラクチャリソース730は、たとえば、処理リソース、ストレージまたはメモリリソース、ネットワーキングリソースなどを含んでいてもよい。
【0090】
ある実施形態では、クラウドインフラストラクチャシステム702によって異なる顧客に提供されるさまざまなクラウドサービスをサポートするためのこれらのリソースの効率的なプロビジョニングを容易にするために、インフラストラクチャリソース730は、複数の組のリソースまたはリソースモジュール(「ポッド」とも呼ばれる)へと束ねられてもよい。各リソースモジュールまたはポッドは、1つ以上のタイプのリソースの予め統合され最適化された組合せを含んでいてもよい。ある実施形態では、異なるタイプのクラウドサービスのために、異なるポッドが予めプロビジョニングされてもよい。たとえば、第1の組のポッドは、データベースサービスのためにプロビジョニングされてもよく、第1の組のポッドにおけるポッドとは異なる組合せのリソースを含み得る第2の組のポッドは、Javaサービスのためにプロビジョニングされてもよい、などとなっている。いくつかのサービスについては、当該サービスをプロビジョニングするために割り当てられたリソースが、当該サービス間で共有されてもよい。
【0091】
クラウドインフラストラクチャシステム702自体が、クラウドインフラストラクチャシステム702の異なるコンポーネントによって共有され、クラウドインフラストラクチャシステム702によるサービスのプロビジョニングを容易にするサービス732を、内部で使用してもよい。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウィルススキャニングおよびホワイトリストサービス、高可用性、バックアップおよび復旧サービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを、何ら限定されることなく含んでいてもよい。
【0092】
クラウドインフラストラクチャシステム702は、複数のサブシステムを含んでいてもよい。これらのサブシステムは、ソフトウェア、またはハードウェア、またはそれらの組合せにおいて実現されてもよい。図7に表わされるように、サブシステムは、クラウドインフラストラクチャシステム702のユーザまたは顧客がクラウドインフラストラクチャシステム702と相互作用することを可能にするユーザインターフェイスサブシステム712を含んでいてもよい。ユーザインターフェイスサブシステム712は、ウェブインターフェイス714と、クラウドインフラストラクチャシステム702によって提供されるクラウドサービスが宣伝されて消費者によって購入可能であるオンラインストアインターフェイス716と、他のインターフェイス718といった、さまざまな異なるインターフェイスを含んでいてもよい。たとえば、顧客は、インターフェイス714、716、および718のうちの1つ以上を使用してクラウドインフラストラクチャシステム702によって提供される1つ以上のサービスを、クライアントデバイスを使用して要求してもよい(サービス要求734)。たとえば、顧客は、オンラインストアにアクセスし、クラウドインフラストラクチャシステム702によって提供されるクラウドサービスを閲覧し、顧客がサブスクリプションしたい、クラウドインフラストラクチャシステム702によって提供される1つ以上のサービスについてのサブスクリプションオーダーを出してもよい。サービス要求は、顧客と、顧客がサブスクリプションしたい1つ以上のサービスとを識別する情報を含んでいてもよい。
【0093】
図7に表わされる実施形態などのある実施形態では、クラウドインフラストラクチャシステム702は、新たなオーダーを処理するように構成されたオーダー管理サブシステム(order management subsystem:OMS)720を含んでいてもよい。この処理の一部として、OMS720は、まだ作成されていなければ顧客のためのアカウントを作成し、要求されたサービスを顧客に提供することについて顧客に請求するために使用される請求および/または課金情報を顧客から受信し、顧客情報を検証し、検証時に顧客のためのオーダーを予約し、さまざまなワークフローをオーケストレーションしてプロビジョニングのためにオーダーを準備するように構成されてもよい。
【0094】
いったん適切に検証されると、OMS720は次に、処理、メモリおよびネットワーキングリソースを含むオーダー用リソースをプロビジョニングするように構成されたオーダープロビジョニングサブシステム(order provisioning subsystem:OPS)724を呼び出してもよい。プロビジョニングは、オーダー用リソースを割り当て、顧客オーダーによって要求されたサービスを容易にするようにリソースを構成することを含んでいてもよい。リソースがオーダーのためにプロビジョニングされる態様と、プロビジョニングされたリソースのタイプとは、顧客によってオーダーされたクラウドサービスのタイプに依存してもよい。たとえば、1つのワークフローに従って、OPS724は、要求されている特定のクラウドサービスを判断し、その特定のクラウドサービスのために予め構成されていたであろうポッドの数を識別するように構成されてもよい。オーダーのために割り当てられるポッドの数は、要求されたサービスのサイズ/量/レベル/範囲に依存してもよい。たとえば、割り当てられるポッドの数は、サービスによってサポートされるユーザの数、サービスが要求されている持続時間などに基づいて判断されてもよい。割り当てられたポッドは次に、要求されたサービスを提供するために、要求する特定の顧客のためにカスタマイズされてもよい。
【0095】
クラウドインフラストラクチャシステム702は、要求されたサービスがいつ使える状態になるかを示すために、要求する顧客に応答または通知744を送信してもよい。いくつかの事例では、顧客が要求されたサービスを使用しその利益を利用し始めることを可能にする情報(たとえばリンク)が、顧客に送信されてもよい。
【0096】
クラウドインフラストラクチャシステム702は、複数の顧客にサービスを提供してもよい。顧客ごとに、クラウドインフラストラクチャシステム702は、顧客から受信された1つ以上のサブスクリプションオーダーに関連する情報を管理し、オーダーに関連する顧客データを維持し、要求されたサービスを顧客に提供することを担当する。クラウドインフラストラクチャシステム702はまた、顧客のサブスクライブされたサービスの使用に関する使用統計を収集してもよい。たとえば、統計は、使用されたストレージの量、転送されたデータの量、ユーザの数、システムアップタイムおよびシステムダウンタイムの量などについて収集されてもよい。この使用情報は、顧客に請求するために使用されてもよい。請求は、たとえば月に1回の周期で行なわれてもよい。
【0097】
クラウドインフラストラクチャシステム702は、複数の顧客に並行してサービスを提供してもよい。クラウドインフラストラクチャシステム702は、これらの顧客のために、おそらくは機密情報を含む情報を格納してもよい。ある実施形態では、クラウドインフラストラクチャシステム702は、顧客情報を管理し、ある顧客に関連する情報が別の顧客によってアクセスできないように、管理された情報の分離を提供するように構成されたアイデンティティ管理サブシステム(identity management subsystem:IMS)728を含む。IMS728は、さまざまなセキュリティ関連サービス、たとえばアイデンティティサービス、たとえば情報アクセス管理、認証および認可サービス、顧客アイデンティティおよび役割と関連する能力とを管理するためのサービスなどを提供するように構成されてもよい。
【0098】
図8は、ある実施形態を実現するために使用され得る例示的なコンピュータシステム800のブロック図である。たとえば、いくつかの実施形態では、コンピュータシステム800は、ここに説明されるシステム、サブシステム、およびコンポーネントのうちのいずれかを実現するために使用されてもよい。たとえば、複数のホストマシンが、ここに説明されるようなGAN155における対話システム100のセマンティックパーサ114の訓練を提供し、実現してもよい。コンピュータシステム800などのコンピュータシステムは、ホストマシンとして使用されてもよい。図8に示すように、コンピュータシステム800は、バスサブシステム802を介して多くの他のサブシステムと通信する処理サブシステム804を含むさまざまなサブシステムを含む。これらの他のサブシステムは、処理加速部806と、I/Oサブシステム808と、記憶サブシステム818と、通信サブシステム824とを含んでいてもよい。記憶サブシステム818は、記憶媒体822とシステムメモリ810とを含む非一時的コンピュータ読取可能記憶媒体を含んでいてもよい。
【0099】
バスサブシステム802は、コンピュータシステム800のさまざまなコンポーネントおよびサブシステムを意図されるように互いに通信させるためのメカニズムを提供する。バスサブシステム802は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は複数のバスを利用してもよい。バスサブシステム802は、さまざまなバスアーキテクチャのうちのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスなどを含む、いくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、そのようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture:MCA)バス、強化ISA(EISA)バス、ビデオエレクトロニクス標準組織(Video Electronics Standards Association:VESA)ローカルバス、および周辺コンポーネント相互接続(Peripheral Component Interconnect:PCI)バスを含んでいてもよく、それは、IEEE P1386.1規格で製造されるメザニンバスなどとして実現可能である。
【0100】
処理サブシステム804はコンピュータシステム800の動作を制御し、1つ以上のプロセッサ、特定用途向け集積回路(application specific integrated circuit:ASIC)、またはフィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)を含んでいてもよい。これらのプロセッサは、シングルコアまたはマルチコアプロセッサを含んでいてもよい。コンピュータシステム800の処理リソースは、1つ以上の処理部832、834などへと編成され得る。処理部は、1つ以上のプロセッサ、同じかまたは異なるプロセッサからの1つ以上のコア、コアおよびプロセッサの組合せ、またはコアおよびプロセッサの他の組合せを含んでいてもよい。いくつかの実施形態では、処理サブシステム804は、グラフィックスプロセッサ、デジタル信号プロセッサ(digital signal processor:DSP)などといった、1つ以上の特殊用途コプロセッサを含み得る。いくつかの実施形態では、処理サブシステム804の処理部のうちのいくつかまたはすべては、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)といった、カスタマイズされた回路を使用して実現され得る。
【0101】
いくつかの実施形態では、処理サブシステム804における処理部は、システムメモリ810に、またはコンピュータ読取可能記憶媒体822上に格納された命令を実行できる。さまざまな実施形態では、処理部は、さまざまなプログラムまたはコード命令を実行でき、同時に実行される複数のプログラムまたはプロセスを維持できる。任意の所与の時間において、実行されるべきプログラムコードのうちのいくつかまたはすべては、システムメモリ810に、および/またはコンピュータ読取可能記憶媒体822上に、おそらくは1つ以上の記憶デバイス上に存在し得る。好適なプログラミングを通して、処理サブシステム804は、上述のさまざまな機能性を提供できる。コンピュータシステム800が1つ以上の仮想機械を実行している事例では、1つ以上の処理部が各仮想機械に割り当てられてもよい。
【0102】
ある実施形態では、処理加速部806は、コンピュータシステム800によって行なわれる処理全体を加速するように、カスタマイズされた処理を行なうために、または処理サブシステム804によって行なわれる処理の一部の負担を軽減するために、オプションで提供されてもよい。
【0103】
I/Oサブシステム808は、情報をコンピュータシステム800に入力するための、および/または、情報をコンピュータシステム800から、あるいはコンピュータシステム800を介して出力するためのデバイスおよびメカニズムを含んでいてもよい。一般に、入力デバイスという用語の使用は、情報をコンピュータシステム800に入力するためのあらゆる可能なタイプのデバイスおよびメカニズムを含むよう意図される。ユーザインターフェイス入力デバイスは、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システム付き音声入力デバイス、マイク、および他のタイプの入力デバイスを含んでいてもよい。ユーザインターフェイス入力デバイスはまた、ユーザが入力デバイスを制御し、それと相互作用することを可能にするマイクロソフトKinect(登録商標)運動センサ、マイクロソフトXbox(登録商標)360ゲームコントローラ、ジェスチャーおよび話されたコマンドを使用した入力を受信するためのインターフェイスを提供するデバイスといった、運動感知および/またはジェスチャー認識デバイスを含んでいてもよい。ユーザインターフェイス入力デバイスはまた、ユーザから目の活動(たとえば、写真撮影中および/またはメニュー選択中の「まばたき」)を検出し、アイジェスチャーを入力デバイス(たとえば、グーグル・グラス(登録商標))への入力として変換する、グーグル・グラス(登録商標)まばたき検出器などのアイジェスチャー認識デバイスを含んでいてもよい。加えて、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを通して音声認識システム(たとえば、Siri(登録商標)ナビゲータ)と相互作用できるようにする音声認識感知デバイスを含んでいてもよい。
【0104】
ユーザインターフェイス入力デバイスの他の例は、3次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびに、スピーカ、デジタルカメラ、デジタルビデオカメラ、携帯型メディアプレイヤー、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザー測距器、および視線追跡デバイスなどの音声/視覚デバイスを、何ら限定されることなく含む。加えて、ユーザインターフェイス入力デバイスは、たとえば、コンピュータ断層撮影装置、磁気共鳴撮像装置、ポジトロン放出断層撮影装置、医療用超音波検査装置などの医療用撮像入力デバイスを含んでいてもよい。ユーザインターフェイス入力デバイスはまた、たとえば、MIDIキーボード、デジタル楽器などの音声入力デバイスを含んでいてもよい。
【0105】
一般に、出力デバイスという用語の使用は、コンピュータシステム800からユーザまたは他のコンピュータへ情報を出力するためのあらゆる可能なタイプのデバイスおよびメカニズムを含むよう意図されている。ユーザインターフェイス出力デバイスは、表示サブシステム、表示灯、または、音声出力デバイスなどの非視覚的ディスプレイを含んでいてもよい。表示サブシステムは、陰極線管(cathode ray tube:CRT)、液晶ディスプレイ(liquid crystal display:LCD)またはプラズマディスプレイを使用するものといったフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってもよい。たとえば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドホン、自動車ナビゲーションシステム、プロッタ、音声出力デバイス、およびモデムといった、テキスト、グラフィックスおよび音声/映像情報を視覚的に伝えるさまざまな表示デバイスを、何ら限定されることなく含んでいてもよい。
【0106】
記憶サブシステム818は、コンピュータシステム800によって使用される情報およびデータを格納するためのリポジトリまたはデータストアを提供する。記憶サブシステム818は、いくつかの実施形態の機能性を提供するデータ構造および基本プログラミングを格納するための有形の非一時的コンピュータ読取可能記憶媒体を提供する。記憶サブシステム818は、処理サブシステム804によって実行されると上述の機能性を提供するソフトウェア(たとえばプログラム、コードモジュール、命令)を格納してもよい。ソフトウェアは、処理サブシステム804の1つ以上の処理部によって実行されてもよい。記憶サブシステム818はまた、この開示の教示に従って使用されるデータを格納するためのリポジトリを提供してもよい。
【0107】
記憶サブシステム818は、揮発性および不揮発性メモリデバイスを含む、1つ以上の非一時的メモリデバイスを含んでいてもよい。図8に示すように、記憶サブシステム818は、システムメモリ810とコンピュータ読取可能記憶媒体822とを含む。システムメモリ810は、プログラム実行中の命令およびデータの格納のための揮発性のメインランダムアクセスメモリ(random access memory:RAM)と、固定された命令が格納される不揮発性の読出専用メモリ(read only memory:ROM)またはフラッシュメモリとを含む、複数のメモリを含んでいてもよい。いくつかの実現化例では、起動中などにコンピュータシステム800内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入力/出力システム(basic input/output system:BIOS)が、典型的にはROMに格納されてもよい。RAMは典型的には、処理サブシステム804によって現在動作され実行されているデータおよび/またはプログラムモジュールを含む。いくつかの実現化例では、システムメモリ810は、スタティックランダムアクセスメモリ(static random access memory:SRAM)、ダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)などといった、複数の異なるタイプのメモリを含んでいてもよい。
【0108】
限定のためではなく例として、図8に表わされるように、システムメモリ810は、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(relational database management system:RDBMS)などといったさまざまなアプリケーションを含み得る、実行中のアプリケーションプログラム812と、プログラムデータ814と、オペレーティングシステム816とをロードしてもよい。例として、オペレーティングシステム816は、さまざまなバージョンのマイクロソフト・ウィンドウズ(登録商標)、アップル・マッキントッシュ(登録商標)、および/またはリナックスオペレーティングシステム、商業的に入手可能なさまざまなUNIX(登録商標)またはUNIX系オペレーティングシステム(さまざまなGNU/リナックスオペレーティングシステム、グーグル・クローム(登録商標)OSなどを何ら限定されることなく含む)、および/または、iOS、ウィンドウズ(登録商標)フォン、アンドロイド(登録商標)OS、ブラックベリー(登録商標)OS、パーム(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムなどを含んでいてもよい。
【0109】
ある実施形態では、ここに説明されるようなGAN155における対話システム100のセマンティックパーサ114の訓練を実現するソフトウェア命令またはコードは、システムメモリ810において実行されてもよい。
【0110】
コンピュータ読取可能記憶媒体822は、いくつかの実施形態の機能性を提供するプログラミングおよびデータ構造を格納してもよい。コンピュータ読取可能記憶媒体822は、コンピュータ読取可能命令、データ構造、プログラムモジュール、およびコンピュータシステム800のための他のデータの格納を提供してもよい。処理サブシステム804によって実行されると上述の機能性を提供するソフトウェア(プログラム、コードモジュール、命令)は、記憶サブシステム818に格納されてもよい。例として、コンピュータ読取可能記憶媒体822は、ハードディスクドライブ、磁気ディスクドライブ、CD ROM、DVD、Blu-Ray(登録商標)ディスク、または他の光学媒体などの光ディスクドライブといった不揮発性メモリを含んでいてもよい。コンピュータ読取可能記憶媒体822は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(universal serial bus:USB)フラッシュドライブ、セキュアデジタル(secure digital:SD)カード、DVDディスク、デジタルビデオテープなどを含んでいてもよいが、それらに限定されない。コンピュータ読取可能記憶媒体822はまた、フラッシュメモリベースのソリッドステートドライブ(solid-state drive:SSD)、企業フラッシュドライブ、ソリッドステートROMといった、不揮発性メモリに基づいたSSD、ソリッドステートRAM、ダイナミックRAM、スタティックRAM、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSDといった、揮発性メモリに基づいたSSD、および、DRAMベースのSSDとフラッシュメモリベースのSSDとの組合せを使用するハイブリッドSSDを含んでいてもよい。
【0111】
ある実施形態では、記憶サブシステム818はまた、コンピュータ読取可能記憶媒体822にさらに接続され得るコンピュータ読取可能記憶媒体リーダ820を含んでいてもよい。リーダ820は、ディスク、フラッシュドライブなどのメモリデバイスからデータを受信して、読取るように構成されてもよい。
【0112】
ある実施形態では、コンピュータシステム800は、処理およびメモリリソースの仮想化を含むもののこれに限定されない仮想化技術をサポートしてもよい。たとえば、コンピュータシステム800は、1つ以上の仮想機械を実行するためのサポートを提供してもよい。ある実施形態では、コンピュータシステム800は、仮想機械を構成し管理することを容易にするハイパーバイザなどのプログラムを実行してもよい。各仮想機械は、メモリ、計算(たとえばプロセッサ、コア)、I/O、およびネットワーキングリソースを割り当てられてもよい。各仮想機械は一般に、他の仮想機械とは独立して動く。仮想機械は典型的には、それ自体のオペレーティングシステムを実行し、それは、コンピュータシステム800によって実行される他の仮想機械によって実行されるオペレーティングシステムと同じであっても、または異なっていてもよい。したがって、複数のオペレーティングシステムが、コンピュータシステム800によっておそらくは同時に実行されてもよい。
【0113】
通信サブシステム824は、他のコンピュータシステムおよびネットワークへのインターフェイスを提供する。通信サブシステム824は、コンピュータシステム800とは別のシステムからデータを受信し、別のシステムにデータを送信するためのインターフェイスとして機能する。たとえば、通信サブシステム824は、コンピュータシステム800が、1つ以上のクライアントデバイスとの間で情報を受信および送信するために、インターネットを介してクライアントデバイスへの通信チャネルを確立することを可能にしてもよい。
【0114】
通信サブシステム824は、有線および/または無線通信プロトコル双方をサポートしてもよい。たとえば、ある実施形態では、通信サブシステム824は、(たとえば、携帯電話技術、先進データネットワーク技術(3G、4G、またはEDGE(enhanced data rates for global evolution:エンハンスト・データレート・フォー・グローバル・エボリューション)、WiFi(IEEE802.XXファミリー規格))、または他のモバイル通信技術、またはそれらの任意の組合せを使用して)無線音声および/またはデータネットワークにアクセスするための無線周波数(radio frequency:RF)送受信機コンポーネント、全地球測位システム(global positioning system:GPS)受信機コンポーネント、および/または他のコンポーネントを含んでいてもよい。いくつかの実施形態では、通信サブシステム824は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続(たとえば、イーサネット)を提供できる。
【0115】
通信サブシステム824は、さまざまな形式のデータを受信し送信することができる。たとえば、いくつかの実施形態では、他の形式に加えて、通信サブシステム824は、構造化および/または非構造化データフィード826、イベントストリーム828、イベント更新830などの形をした入力通信を受信してもよい。たとえば、通信サブシステム824は、ツイッター(登録商標)フィード、フェースブック(登録商標)更新、リッチ・サイト・サマリー(Rich Site Summary:RSS)フィードなどのウェブフィード、および/または1つ以上の第三者情報源からのリアルタイム更新といった、ソーシャルネットワークおよび/または他の通信サービスのユーザからのデータフィード826をリアルタイムで受信(または送信)するように構成されてもよい。
【0116】
ある実施形態では、通信サブシステム824は、リアルタイムイベントのイベントストリーム828および/またはイベント更新830を含み得る、明確な終わりがなく本質的に連続的または無限であり得る連続データストリームの形をしたデータを受信するように構成されてもよい。連続データを生成するアプリケーションの例は、たとえば、センサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通監視などを含んでいてもよい。
【0117】
通信サブシステム824はまた、コンピュータシステム800からのデータを他のコンピュータシステムまたはネットワークへ通信するように構成されてもよい。データは、構造化および/または非構造化データフィード826、イベントストリーム828、イベント更新830などといったさまざまな異なる形式で、コンピュータシステム800に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースへ通信されてもよい。
【0118】
コンピュータシステム800は、ハンドヘルド携帯デバイス(たとえば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえば、グーグル・グラス(登録商標)頭部装着型ディスプレイ)、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、または任意の他のデータ処理システムを含む、さまざまなタイプのうちの1つであり得る。コンピュータおよびネットワークの絶えず変化する性質により、図8に表わされるコンピュータシステム800の説明は、単なる具体例として意図される。図8に表わされるシステムよりも多い、または少ないコンポーネントを有する多くの他の構成が可能である。ここに提供される開示および教示に基づいて、当業者であれば、さまざまな実施形態を実現するための他のやり方および/または方法を理解するであろう。
【0119】
特定の実施形態を説明してきたが、さまざまな修正、変更、代替的構造、および均等物が可能である。実施形態は、ある特定のデータ処理環境内での動作に制限されず、複数のデータ処理環境内で自由に動作する。加えて、ある特定の一連のトランザクションおよびステップを使用して、ある実施形態を説明してきたが、これが限定的であるよう意図されていないことは、当業者には明らかであるはずである。いくつかのフローチャートは動作を順次プロセスとして説明しているが、動作の多くは並行してまたは同時に行なわれ得る。加えて、動作の順序は並べ替えられてもよい。プロセスは、図に含まれない追加のステップを有していてもよい。上述の実施形態のさまざまな特徴および局面は、個々にまたはともに使用されてもよい。
【0120】
また、ハードウェアとソフトウェアとのある特定の組合せを使用して、ある実施形態を説明してきたが、ハードウェアとソフトウェアとの他の組合せも可能であるということが認識されるべきである。ある実施形態はハードウェアのみにおいて、またはソフトウェアのみにおいて、またはそれらの組合せを使用して実現されてもよい。ここに説明されたさまざまなプロセスは、同じプロセッサ上で、または任意の組合せの異なるプロセッサ上で実現され得る。
【0121】
デバイス、システム、コンポーネントまたはモジュールがある動作または機能を行なうように構成されるとして説明される場合、そのような構成は、たとえば、動作を行なうように電子回路を設計することによって、動作を行なうようにプログラマブル電子回路(マイクロプロセッサなど)をプログラミングすることによって、たとえば、コンピュータ命令またはコード、もしくは非一時的記憶媒体上に格納されたコードまたは命令を実行するようにプログラムされたプロセッサまたはコア、もしくはそれらの任意の組合せを実行することによって、遂行され得る。プロセスは、プロセス間通信のための従来の手法を含むもののそれらに限定されないさまざまな手法を使用して通信可能であり、異なる対のプロセスが異なる手法を使用してもよく、または、同じ対のプロセスが異なる時間に異なる手法を使用してもよい。
【0122】
この開示では、実施形態の完全な理解を提供するために、具体的な詳細が与えられている。しかしながら、実施形態は、これらの具体的な詳細がなくても実践され得る。たとえば、周知の回路、プロセス、アルゴリズム、構造、および手法は、実施形態を不明瞭にしないように、不必要な詳細なしで示されてきた。この説明は例示的な実施形態を提供するに過ぎず、他の実施形態の範囲、利用可能性、または構成を限定するよう意図されていない。むしろ、実施形態の上述の説明は、さまざまな実施形態を実現するための実施可能な説明を当業者に提供するであろう。要素の機能および構成においてさまざまな変更が加えられてもよい。
【0123】
明細書および図面はしたがって、限定的な意味ではなく例示的な意味で考えられるべきである。しかしながら、請求項で述べられるようなより広範な精神および範囲から逸脱することなく、加減、削除、ならびに他の修正および変更をそれに行なってもよい、ということは明らかであろう。このため、特定の実施形態を説明してきたが、これらは限定的であるよう意図されていない。さまざまな修正および均等物が、特許請求の範囲内にある。修正および/または変更は、開示された特徴のあらゆる関連する組合せを含む。
【0124】
一実施形態によれば、開示された特徴は、以下のように概説される。
例1:対話システムのセマンティックパーサを訓練するための方法が提供され、方法は、シードタプルを含むシードデータにアクセスするステップを含み、シードデータの各シードタプルは、それぞれのシード発話と、それぞれのシード発話に対応するそれぞれのシード論理形式とを含み、方法はさらに、敵対的生成ネットワーク(GAN)においてセマンティックパーサおよび識別器を訓練するステップを含み、GANにおいて、セマンティックパーサは、発話を論理形式にマッピングすることを学習し、識別器は、真正な論理形式を認識することを学習し、セマンティックパーサは、対話システムの一部として使用可能である。
【0125】
例2:GANにおいてセマンティックパーサおよび識別器を訓練するステップは、ランダムな発話をセマンティックパーサに入力するステップと、セマンティックパーサが、ランダムな発話に基づいて、生成された論理形式を決定するステップと、生成されたタプルとシードデータから選択されたシードタプルの部分集合とを含むタプルを識別器に入力するステップとを含み、生成されたタプルは、ランダムな発話と生成された論理形式とを含み、GANにおいてセマンティックパーサおよび識別器を訓練するステップはさらに、識別器が、タプルの予測される真正性を決定するステップを含む、例1に記載の方法。
【0126】
例3:GANにおいてセマンティックパーサおよび識別器を訓練するステップはさらに、予測される真正性をタプルの実際の真正性と比較するステップと、予測される真正性をタプルの実際の真正性と比較するステップに基づいて、識別器を更新するステップとを含む、例2に記載の方法。
【0127】
例4:タプルにおける1つのタプルの実際の真正性は、1つのタプルがシードデータにおける1つのシードタプルであることに基づいている、例3に記載の方法。
【0128】
例5:GANにおいてセマンティックパーサおよび識別器を訓練するステップはさらに、シード発話をセマンティックパーサに入力するステップを含み、シード発話はシードタプルから選択され、GANにおいてセマンティックパーサおよび識別器を訓練するステップはさらに、セマンティックパーサが、シード発話に基づいて、追加の生成された論理形式を決定するステップと、シードデータからのシード発話と追加の生成された論理形式とを含む追加の生成されたタプルを識別器に入力するステップと、識別器が、追加の生成されたタプルの追加の予測される真正性を決定するステップとを含む、例3に記載の方法。
【0129】
例6:GANにおいてセマンティックパーサおよび識別器を訓練するステップはさらに、追加の予測される真正性を追加の生成されたタプルの選択された真正性と比較するステップと、追加の予測される真正性を追加の生成されたタプルの選択された真正性と比較するステップに基づいて、セマンティックパーサを更新するステップとを含む、例5に記載の方法。
【0130】
例7:追加の生成されたタプルの選択された真正性は、追加の生成されたタプルが真正であることを示す、例6に記載の方法。
【0131】
例8:GANにおいてセマンティックパーサおよび識別器を訓練するステップは、更新された識別器を決定するために、セマンティックパーサが静的である間にセマンティックパーサからの出力に基づいてシードデータの第1の部分を用いて識別器を訓練するステップと、更新されたセマンティックパーサを決定するために、更新された識別器が静的である間に更新された識別器からの出力に基づいてシードデータの第2の部分を用いてセマンティックパーサを訓練するステップとを含む、例1に記載の方法。
【0132】
例9:セマンティックパーサはシーケンス間ニューラルネットワークであり、識別器はバイナリ分類器である、例8に記載の方法。
【0133】
例10:対話システムが音声入力を受信するステップと、発話を決定するために自動音声認識サブシステムを音声入力に適用するステップと、論理形式を決定するためにセマンティックパーサを発話に適用するステップと、音声入力に応答して応答テキストを生成するために論理形式を分析するステップと、対話システムのための音響出力を決定するためにテキスト読み上げサブシステムを応答テキストに適用するステップとをさらに含む、例1に記載の方法。
【0134】
例11:訓練システムであって、シードタプルを含むシードデータにアクセスするように構成されたデータ入力サブシステムを含み、シードデータの各シードタプルは、それぞれのシード発話と、それぞれのシード発話に対応するそれぞれのシード論理形式とを含み、訓練システムはさらに、敵対的生成ネットワーク(GAN)を含み、GANは、真正な論理形式を認識することを学習するように構成された識別器と、発話を論理形式にマッピングすることを学習するように構成されたセマンティックパーサと、セマンティックパーサの出力の真正性を分類する識別器からの出力に基づいてセマンティックパーサを訓練するように構成された誤差最小化モジュールとを含み、セマンティックパーサは、対話システムの一部として使用可能である、訓練システム。
【0135】
例12:データ入力サブシステムは、ランダムな発話をセマンティックパーサに入力するように構成され、セマンティックパーサは、ランダムな発話に基づいて論理形式を生成するように構成され、データ入力サブシステムは、生成されたタプルとシードデータから選択されたシードタプルの部分集合とを含むタプルを識別器に入力するように構成され、生成されたタプルは、ランダムな発話と生成された論理形式とを含み、識別器は、タプルの真正性を予測するように構成される、例11に記載の訓練システム。
【0136】
例13:誤差最小化モジュールはさらに、予測される真正性をタプルの実際の真正性と比較し、予測される真正性をタプルの実際の真正性と比較することに基づいて、識別器を更新するように構成される、例12に記載の訓練システム。
【0137】
例14:タプルにおける1つのタプルの実際の真正性は、1つのタプルがシードデータにおける1つのシードタプルであることに基づいている、例13に記載の方法。
【0138】
例15:データ入力サブシステムはさらに、シード発話をセマンティックパーサに入力するように構成され、シード発話はシードタプルから選択され、セマンティックパーサは、シード発話に基づいて、追加の生成された論理形式を決定するように構成され、データ入力サブシステムは、シードデータからのシード発話と追加の生成された論理形式とを含む追加の生成されたタプルを識別器に入力するように構成され、識別器は、追加の生成されたタプルの追加の予測される真正性を決定するように構成される、例13に記載の訓練システム。
【0139】
例16:誤差最小化モジュールはさらに、追加の予測される真正性を追加の生成されたタプルの選択された真正性と比較し、追加の予測される真正性を追加の生成されたタプルの選択された真正性と比較することに基づいて、セマンティックパーサを更新するように構成される、例15に記載の訓練システム。
【0140】
例17:追加の生成されたタプルの選択された真正性は、追加の生成されたタプルが真正であることを示す、例16に記載の訓練システム。
【0141】
例18:セマンティックパーサはシーケンス間ニューラルネットワークであり、識別器はバイナリ分類器である、例11に記載の訓練システム。
【0142】
例19:対話システムのセマンティックパーサを訓練するためのコンピュータプログラム製品であって、コンピュータプログラム製品は、プログラム命令が具現化されたコンピュータ読取可能記憶媒体を含み、プログラム命令は、1つ以上のプロセッサに方法を行なわせるように1つ以上のプロセッサによって実行可能であり、方法は、シードタプルを含むシードデータにアクセスするステップを含み、シードデータの各シードタプルは、それぞれのシード発話と、それぞれのシード発話に対応するそれぞれのシード論理形式とを含み、方法はさらに、敵対的生成ネットワーク(GAN)の識別器を、GANのセマンティックパーサに基づいて訓練するステップを含み、識別器を訓練するステップは、ランダムな発話をセマンティックパーサに入力するステップと、セマンティックパーサが、ランダムな発話に基づいて、生成された論理形式を決定するステップと、生成されたタプルとシードデータから選択されたシードタプルの部分集合とを含むタプルを識別器に入力するステップとを含み、生成されたタプルは、ランダムな発話と生成された論理形式とを含み、識別器を訓練するステップはさらに、識別器が、タプルの予測される真正性を決定するステップと、予測される真正性をタプルの実際の真正性と比較するステップと、予測される真正性をタプルの実際の真正性と比較するステップに基づいて、識別器を更新するステップと含み、方法はさらに、GANのセマンティックパーサを、GANの識別器に基づいて訓練するステップを含み、セマンティックパーサを訓練するステップは、シード発話をセマンティックパーサに入力するステップを含み、シード発話はシードタプルから選択され、セマンティックパーサを訓練するステップはさらに、セマンティックパーサが、シード発話に基づいて、追加の生成された論理形式を決定するステップと、シードデータからのシード発話と追加の生成された論理形式とを含む追加の生成されたタプルを識別器に入力するステップと、識別器が、追加の生成されたタプルの追加の予測される真正性を決定するステップと、追加の予測される真正性を追加の生成されたタプルの選択された真正性と比較するステップと、追加の予測される真正性を追加の生成されたタプルの選択された真正性と比較するステップに基づいて、セマンティックパーサを更新するステップとを含み、セマンティックパーサは、対話システムにおいて発話を論理形式にマッピングするために使用可能である、コンピュータプログラム製品。
【0143】
例20:タプルにおける1つのタプルの実際の真正性は、1つのタプルがシードデータにおける1つのシードタプルであることに基づいており、追加の生成されたタプルの選択された真正性は、追加の生成されたタプルが真正であることを示す、例19に記載のコンピュータプログラム製品。
図1
図2
図3
図4
図5
図6
図7
図8