JP2022547704A - 訓練を減らした意図認識技術 - Google Patents
訓練を減らした意図認識技術 Download PDFInfo
- Publication number
- JP2022547704A JP2022547704A JP2022516198A JP2022516198A JP2022547704A JP 2022547704 A JP2022547704 A JP 2022547704A JP 2022516198 A JP2022516198 A JP 2022516198A JP 2022516198 A JP2022516198 A JP 2022516198A JP 2022547704 A JP2022547704 A JP 2022547704A
- Authority
- JP
- Japan
- Prior art keywords
- key
- match
- value
- function
- training
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24147—Distances to closest patterns, e.g. nearest neighbour classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/226—Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
Abstract
本開示は、一般に、対話システムを使用して音声入力に基づいて意図を判断することに関する。より特定的には、マッチングベースの機械学習技術を使用して、対話システムにおいて音声入力に対応する意図を識別する技術が記載されている。これらの手順は、可能な意図のセットから意図が追加または除去された場合に訓練を必要としない。
Description
関連出願の相互参照
本願は、「訓練を減らした意図認識技術(REDUCED TRAINING INTENT RECOGNITION TECHNIQUES)」と題される2019年9月12日に出願された米国出願番号第62/899,654号および「訓練を減らした意図認識技術(REDUCED TRAINING INTENT RECOGNITION TECHNIQUES)」と題される2020年7月29日に出願された米国出願番号第16/942,535号の、米国特許法第119条(e)のもとでの利益および優先権を主張し、これらの内容は、すべての目的のために全文が引用によって本明細書に援用される。
本願は、「訓練を減らした意図認識技術(REDUCED TRAINING INTENT RECOGNITION TECHNIQUES)」と題される2019年9月12日に出願された米国出願番号第62/899,654号および「訓練を減らした意図認識技術(REDUCED TRAINING INTENT RECOGNITION TECHNIQUES)」と題される2020年7月29日に出願された米国出願番号第16/942,535号の、米国特許法第119条(e)のもとでの利益および優先権を主張し、これらの内容は、すべての目的のために全文が引用によって本明細書に援用される。
技術分野
本開示は、一般に対話システムに関する。より具体的には、本開示は、対話システムをセットアップして維持するために必要な訓練の量を大幅に減らすことができる、マッチ関数を使用して自然言語対話タスクを実行するための技術について記載しているが、それに限定されるものではない。
本開示は、一般に対話システムに関する。より具体的には、本開示は、対話システムをセットアップして維持するために必要な訓練の量を大幅に減らすことができる、マッチ関数を使用して自然言語対話タスクを実行するための技術について記載しているが、それに限定されるものではない。
背景
現在、ユーザが音声または口頭のスピーチを使用してデバイスと直接対話することを可能にするデバイスが増えつつある。たとえば、ユーザは、このようなデバイスに自然言語で話しかけることができ、ユーザは、質問をしたり、実行すべき何らかのアクションを要求する発言をしたりし得る。これに応答して、デバイスは、要求されたアクションを実行したり、音声出力を使用してユーザの質問に応答したりする。音声を使用して直接対話することは、人間が周囲とコミュニケーションをとるためのより自然で直観的な方法であるので、このような音声ベースのシステムの人気は、天文学的な速度で上昇している。
現在、ユーザが音声または口頭のスピーチを使用してデバイスと直接対話することを可能にするデバイスが増えつつある。たとえば、ユーザは、このようなデバイスに自然言語で話しかけることができ、ユーザは、質問をしたり、実行すべき何らかのアクションを要求する発言をしたりし得る。これに応答して、デバイスは、要求されたアクションを実行したり、音声出力を使用してユーザの質問に応答したりする。音声を使用して直接対話することは、人間が周囲とコミュニケーションをとるためのより自然で直観的な方法であるので、このような音声ベースのシステムの人気は、天文学的な速度で上昇している。
音声入力および音声出力を介してユーザと対話することができる音声対応システムは、さまざまな形態のものがある。たとえば、このようなシステムは、スタンドアロンのデバイス、デジタルまたは仮想アシスタント、音声対応サービスなどとして提供され得る。これらの形態の各々では、システムは、音声またはスピーチ入力を受信して、これらの入力を理解して、これらの入力に応答して応答を生成したりアクションを起こしたりして、音声出力を使用して応答を出力することができる。特定の実施形態において、このような音声対応システムにおける対話機能は、対話システムまたはインフラストラクチャ(「対話システム」)によって提供される。
機械学習ベースの技術は、さまざまな機能のために対話システムでよく使用されている。たとえば、音声入力では、対話システムは、教師あり機械学習技術を使用して入力の意図を予測し得て、この意図は、予め構成された意図のセットから選択される。別の例として、質問および回答アプリケーションでは、対話システムは、機械学習技術を使用して、入力された質問に対する回答を予測し得る。これは、通常、分類器ベースのアプローチを使用して実現されるが、この分類器ベースのアプローチは、対象の値または当該値に関連付けられた基礎となるデータが変化すると再訓練されなければならない。その結果、従来のアプローチは、頻繁な再訓練を必要とすることになり、これは、厄介であり、これらの再訓練手続きに大量の時間および計算リソースをつぎ込む必要がある。
簡単な概要
本開示は、一般に対話システムを使用して自動的に質問に回答することに関する。より特定的には、マッチングベースの機械学習システムを使用して、対話システムにおいて音声入力に対応する値(たとえば、意図または回答)を識別する技術が記載されている。方法、システム、1つまたは複数のプロセッサによって実行可能なプログラム、コードまたは命令を格納する非一時的なコンピュータ読取可能記憶媒体などを含むさまざまな実施形態が本明細書に記載されている。
本開示は、一般に対話システムを使用して自動的に質問に回答することに関する。より特定的には、マッチングベースの機械学習システムを使用して、対話システムにおいて音声入力に対応する値(たとえば、意図または回答)を識別する技術が記載されている。方法、システム、1つまたは複数のプロセッサによって実行可能なプログラム、コードまたは命令を格納する非一時的なコンピュータ読取可能記憶媒体などを含むさまざまな実施形態が本明細書に記載されている。
特定の実施形態において、対話システムは、入力された口頭発話を受信する。上記対話システムは、上記入力された口頭発話のベクトル表現を生成する。上記対話システムは、マッチ関数を使用して、複数のキー/値のペアの中の各キー/値のペアについてマッチスコアを生成し、各キー/値のペアについて生成された上記マッチスコアは、上記キー/値のペアのキーと上記入力された口頭発話の上記ベクトル表現とのマッチング度合いを示し、上記複数のキー/値のペアの中の各キーは、文の多次元ベクトル表現であり、上記マッチ関数は、異なる関連付けられた値を有する2つの異なるキーのマッチよりも、同一の関連付けられた値を有する2つの異なるキーのマッチについてより高いマッチスコアを生成するように構成される。上記対話システムは、上記複数のキー/値のペアについて生成された上記マッチスコアに基づいて、上記複数のキー/値のペアから、最も高いマッチスコアを有する特定のキー/値のペアを識別する。上記対話システムは、上記特定のキー/値のペアに関連付けられた値を上記入力された口頭発話についての値として出力する。
いくつかの局面において、上記対話システムはさらに、上記マッチ関数を、訓練データを使用して訓練し、上記訓練は、損失関数を最小化することによって、上記マッチ関数に関連付けられたパラメータのセットを調整することを備える。いくつかの局面において、上記対話システムはさらに、上記マッチ関数を、訓練データを使用して訓練し、上記訓練は、尤度関数を最大化することによって、上記マッチ関数に関連付けられたパラメータのセットを調整することを備える。
いくつかの局面において、上記複数のキー/値のペアの値は、意図である。いくつかの局面において、上記複数のキー/値のペアの上記キーは、質問の表現であり、上記複数のキー/値のペアの上記値は、それぞれの質問に対応する回答であり、上記特定のキー/値のペアに関連付けられた上記出力された値は、選択された回答に対応し、上記値は、上記入力された口頭発話に対する回答として出力される。
いくつかの局面において、上記入力された口頭発話は、第1の入力された口頭発話であり、上記値は、第1の値であり、上記マッチスコアは、第1のマッチスコアであり、上記方法はさらに、上記対話システムが、上記第1の入力された口頭発話についての上記第1の値を出力した後、追加のキー/値のペアを含むように上記複数のキー/値のペアを更新するステップと、上記対話システムが、第2の入力された口頭発話を受信するステップと、上記対話システムが、上記マッチ関数を使用して、上記更新された複数のキー/値のペアの中の各キー/値のペアについて第2のマッチスコアを生成するステップとを備え、上記マッチ関数は、上記第1のマッチスコアを生成するステップと上記第2のマッチスコアを生成するステップとの間で変化せず、上記方法はさらに、上記対話システムが、上記更新された複数のキー/値のペアから、最も高いマッチスコアを有する第2の特定のキー/値のペアを識別するステップと、上記対話システムが、上記第2の特定のキー/値のペアに関連付けられた第2の値を上記入力された口頭発話についての値として出力するステップとを備える。いくつかの局面において、上記マッチ関数は、コサイン類似度関数、双一次関数、単層ネットワーク、多層ネットワーク、または最近傍関数のうちの1つを含む。
いくつかの実施形態において、対話システムにおいて使用されるマッチ関数を訓練するための訓練方法が開示されている。上記方法は、訓練データを用いて上記マッチ関数を訓練するステップを備える。上記マッチ関数は、複数のキー/値のペアの中のキー/値のペアのキーについての、別のキー/値のペアの別のキーに対するマッチスコアを生成するように訓練される。上記生成されたマッチスコアは、上記2つのキーのマッチング度合いを示す。上記複数のキー/値のペアの中の各キーは、文の多次元ベクトル表現である。上記マッチ関数は、異なる関連付けられた値を有する2つの異なるキーのマッチよりも、同一の関連付けられた値を有する2つの異なるキーのマッチについてより高いマッチスコアを生成するように構成される。
いくつかの実施形態において、対話システムにおいて使用されるマッチ関数を訓練するための訓練装置が開示されている。上記装置は、訓練データを用いて上記マッチ関数を訓練するための手段を備える。上記マッチ関数は、複数のキー/値のペアの中のキー/値のペアのキーについての、別のキー/値のペアの別のキーに対するマッチスコアを生成するように訓練される。上記生成されたマッチスコアは、上記2つのキーのマッチング度合いを示す。上記複数のキー/値のペアの中の各キーは、文の多次元ベクトル表現である。上記マッチ関数は、異なる関連付けられた値を有する2つの異なるキーのマッチよりも、同一の関連付けられた値を有する2つの異なるキーのマッチについてより高いマッチスコアを生成するように構成される。
いくつかの実施形態において、非一時的なコンピュータ読取可能媒体が開示されている。上記非一時的なコンピュータ読取可能媒体は、1つまたは複数のプロセッサによって実行可能な複数の命令を格納している。上記複数の命令は、上記1つまたは複数のプロセッサによって実行されると上記1つまたは複数のプロセッサに処理を実行させる命令を備え、上記処理は、訓練データを用いてマッチ関数を訓練するステップを備える。上記マッチ関数は、複数のキー/値のペアの中のキー/値のペアのキーについての、別のキー/値のペアの別のキーに対するマッチスコアを生成するように訓練される。上記生成されたマッチスコアは、上記2つのキーのマッチング度合いを示す。上記複数のキー/値のペアの中の各キーは、文の多次元ベクトル表現である。上記マッチ関数は、異なる関連付けられた値を有する2つの異なるキーのマッチよりも、同一の関連付けられた値を有する2つの異なるキーのマッチについてより高いマッチスコアを生成するように構成される。
実施形態はさらに、本明細書に記載されている方法を実行するように構成されたシステム、コンピュータ読取可能メモリおよびプログラムを含む。
上記は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲および添付の図面を参照するとより明らかになるであろう。
詳細な説明
以下の説明には、特定の実施形態を十分に理解できるようにするために、具体的な詳細が説明の目的で記載されている。しかし、これらの具体的な詳細がなくてもさまざまな実施形態を実施できるということは明らかであろう。図面および説明は、限定的であるよう意図されるものではない。本明細書において、「例示的な」という単語は、「例、例証または例示としての役割を果たす」ことを意味するように使用されている。「例示的である」として本明細書に記載されているいかなる実施形態または設計も、必ずしも他の実施形態または設計よりも好ましいまたは有利であると解釈されるものではない。
以下の説明には、特定の実施形態を十分に理解できるようにするために、具体的な詳細が説明の目的で記載されている。しかし、これらの具体的な詳細がなくてもさまざまな実施形態を実施できるということは明らかであろう。図面および説明は、限定的であるよう意図されるものではない。本明細書において、「例示的な」という単語は、「例、例証または例示としての役割を果たす」ことを意味するように使用されている。「例示的である」として本明細書に記載されているいかなる実施形態または設計も、必ずしも他の実施形態または設計よりも好ましいまたは有利であると解釈されるものではない。
本開示は、マッチングベースの機械学習技術を使用して、対話システムにおいて音声入力についての値を識別するための技術に関する。この値は、意図または質問に対する回答に対応し得る。識別された値は、システムによってサポートされる機能(購入するおよび行き方を探し出すなど)に結び付けられ得る。マッチ関数を使用して値を求めるためのこれらの技術は、可能な値のセットから値が追加または除去された場合に訓練を必要としない。これにより、開発者は、意図または回答をチャットボットまたはデジタルアシスタントに追加して、訓練ステップを待つことなく新たな意図または回答を用いてシステムをすぐにテストすることができる。
大半の機械学習ベースの技術は、訓練ステップを必要とする。この訓練ステップは、計算集約的であり得るので、1日またはさらに多くの時間さえかかる可能性がある。非常に高速の訓練でさえ、数分かかる(たとえば、5~15分が高速訓練であると考えられる)。その結果、従来の機械学習ベースの分類器を使用する既存のチャットボットシステムでは、システムを更新して(たとえば、チャットボットシステムに機能を追加して)、システムをタイムリーにデプロイすることは非常に困難である。なぜなら、更新に起因してシステムを再訓練する必要があるからである。
たとえば、ユーザクエリまたは発話が提供されると、従来は、従来の分類アルゴリズムに基づく分類器を使用してこのクエリの意図を判断していた。機械学習技術を使用して構築されたモデルは、分類器として使用され、分類を実行するために使用され、このモデルの構築には訓練ステップが必要である。これらの分類器モデルは、基礎となるデータ(たとえば、候補クラスのセット)が変化すると再訓練を必要とする。具体例として、従来の分類器アプローチ(教師あり分類など)では、新たな意図がチャットボットまたはデジタルアシスタントに追加されると、この新たな意図を処理できるようになるために機械学習訓練アルゴリズムを再実行しなければならない。したがって、新たな意図を訓練データに追加することと、ユーザ要求を意図にマッピングするための更新された手続きを有することとの間には、相当な時間遅延が存在する。この時間遅延により、開発者が新規の意図を有するチャットボットまたはデジタルアシスタントをインタラクティブに開発すること、または、開発者が新たな意図を追加することを含むチャットボットまたはデジタルアシスタント開発ツールキットのデモを行うことが困難になる。
本明細書に記載されている技術は、このような再訓練を必要としない。たとえば、開発者は、新たな意図をシステムに追加して、再訓練なしにそれらを試すことができる。意図が追加または除去された場合に再訓練を必要としない異なるタイプのアルゴリズムを使用して対話システムにおいてタスク(意図認識または質問回答など)を実行するための新たな技術が開示されている。本明細書に記載されているように、従来の分類アルゴリズムの代わりに、マッチ関数を使用して発話についての値を識別する。
マッチ関数の例
いくつかの実施形態において、候補意図のセットが変化するたびに再訓練される必要がない情報検索技術(たとえば、マッチ関数)を使用して、意図判断問題を解決する。したがって、意図判断問題は、従来の分類アルゴリズムベースの技術とは異なる技術を使用して解決される。すなわち、情報検索技術(マッチ関数)を使用してこの問題を解決する。代替的にまたはさらに、マッチ関数を使用して、対話システムにおいて他のタスク(質問回答など)を実行してもよい。
いくつかの実施形態において、候補意図のセットが変化するたびに再訓練される必要がない情報検索技術(たとえば、マッチ関数)を使用して、意図判断問題を解決する。したがって、意図判断問題は、従来の分類アルゴリズムベースの技術とは異なる技術を使用して解決される。すなわち、情報検索技術(マッチ関数)を使用してこの問題を解決する。代替的にまたはさらに、マッチ関数を使用して、対話システムにおいて他のタスク(質問回答など)を実行してもよい。
チャットボットシステム環境では、マッチ関数は学習によって取得される。次いで、このマッチ関数を使用して、ユーザ要求発話と、候補意図のセットの中の各意図について提供される候補発話とをマッチングする。意図判断の対象であるユーザ要求発話は、候補意図のセットに提供される候補発話のセットに対してマッチングされる。
いくつかの実施形態において、キー/値ペア検索技術が使用される。たとえば、チャットボットシステムのための質問および回答(QnA)設定において、ユーザによって尋ねられる質問またはクエリは、複数のキーのセットからのキーとマッチングされて、当該マッチングされたキーに関連付けられた値が検索される。この値は、クエリに対する応答として出力されるか、またはクエリに対する応答を決定するのに使用され得る。
たとえば、マッチングベースの値算出は、以下のように実行され得る。
(1)クエリをユーザから受信する。
(1)クエリをユーザから受信する。
(2)このクエリをキー/値のペアのセットの中のキーと比較する。たとえば、これらのキーは、サンプル発話(文など)であり、これらの値は、対応する意図である。キー/値のペアは、チャットボットシステムが構築されている顧客によって構成され得る。クエリに対するベストマッチキーが識別される。
(3)次いで、このベストマッチキーに関連付けられた値を下流の処理に使用する。たとえば、この値は、クエリに対する応答として出力され得る。別の例として、この値は、クエリに対応する意図を識別し得て、次いで、この意図を使用して応答を生成し得る。
一般に、同一の値に関連付けられるキーは複数存在する。このようなシナリオでは、異なる値を指し示すキーよりも、同一の値にマッピングする2つのキーを優先的にマッチングするマッチ関数(または、モデル)が生成される。一例として、「私に新しい口座を作ってください」というキーが、「口座を解約してもいいですか?」よりも高いマッチスコアを有する「どのようにして口座を開設することができますか?」というキーに優先的にマッチするように、モデルが訓練される。なぜなら、両方のキーが同一の値(たとえば、OPEN_ACCOUNT意図)にマッチするのに対して、「口座を解約してもいいですか?」は異なる値(たとえば、CLOSE_ACCOUNT)意図)にマッピングするからである。同様に、「どのようにして口座を開設することができますか?」は、「口座を解約してもいいですか?」よりも高いマッチスコアを有する「私に新しい口座を作ってください」にマッチする。訓練プロセスは、同一の値を有するキーが異なる値を有するキーよりも優先的に互いにマッチするようにマッチ関数を学習するというものである。マッチ関数は、マッチング度合いを示すマッチスコアが、異なる値にマッピングするキーと比較して同一の値にマッピングするキーについて高くなるように訓練される。
特定の実施形態において、マッチ関数は、マッチスコアに基づいてマッチのランク付けされたリストを返す。チャットボットの文脈では、最も高いスコアを有するマッチが選択される。さまざまなタイプのマッチ関数が使用され得る。これらのマッチ関数は、パラメータを有し得て、学習プロセスの一部として、これらのパラメータは、同一の値を有するキーが異なる値を有するキーよりもよくマッチするように調整される。マッチ関数の中には、独自のパラメータを持たないものもある(たとえば、ドット積/コサイン類似度アルゴリズム)。
特定の実施形態において、マッチ関数の生成に使用される入力された訓練キー/値のペアに基づいて埋め込みを生成するためにニューラルネットワークが使用され得る。訓練プロセス中、ニューラルネットワークのパラメータおよびマッチ関数のパラメータは、同一の関連付けられた値を有するキーが異なる値を有するキーよりもよくマッチするように調整される。
いくつかの実施形態において、マッチ関数が、異なる値にマッピングするキーよりも高いマッチスコアを有する、同一の値にマッピングする全てのキーにマッチすることを確実にするために、同一の値に関連付けられたキーは、正のペアとして処理され、異なる値を有するキーは、負のペアとして処理される。マッチ関数は、正のペア(たとえば、同一の値にマッピングする2つのキー)が、対応する負のペア(たとえば、異なる値にマッピングする2つのキー)よりも高いマッチスコアを有することを確実にするように訓練される。正のペアのマッチスコアは、負のペアのマッチスコアよりも高くなるべきである。正のペアが複数存在し得て、2つの異なる正のペアは、異なるマッチスコアを有し得て、これらのスコアが負のペアのマッチスコアよりも高い限りにおいてそうである。訓練は、マッチ関数が、正のペアがマッチのリストの最上位にくるようなものであることを確実にし、正のペアがリストの最上位にある(すなわち、最も高いマッチスコアを有する)ことを確実にするようになされる。
マッチ関数は、さまざまな技術を使用して生成され得る。いくつかの実施形態において、マッチ関数は、ランキングアルゴリズムに基づいて求められ得る。いくつかの実施形態において、マッチ関数は、ランキングの代わりに確率に基づいて求められ得る。したがって、マッチ関数を生成するさまざまな方法がある。
マッチ関数の使用
次いで、上記のように学習されたマッチ関数を使用して、ユーザからのクエリについてマッチングキーを(複数のキー/値のペアを備えるデータセットから)探し出す。このクエリは、マッチ関数を使用して全てのキーに対してマッチングされ、ベストマッチキー(最も高いマッチスコアを有する)が識別される。マッチングキーは、マッチ関数を使用して識別される。次いで、ベストマッチキーに関連付けられた値が検索されて、下流の処理に使用される。たとえば、この値は、クエリの意図を表し得る。別の例として、この値は、クエリに対する応答として出力され得る。
次いで、上記のように学習されたマッチ関数を使用して、ユーザからのクエリについてマッチングキーを(複数のキー/値のペアを備えるデータセットから)探し出す。このクエリは、マッチ関数を使用して全てのキーに対してマッチングされ、ベストマッチキー(最も高いマッチスコアを有する)が識別される。マッチングキーは、マッチ関数を使用して識別される。次いで、ベストマッチキーに関連付けられた値が検索されて、下流の処理に使用される。たとえば、この値は、クエリの意図を表し得る。別の例として、この値は、クエリに対する応答として出力され得る。
クエリとキーとの完全一致が存在する場合、または特定の部分においてクエリがキーと異なっている場合でさえ、このモデルを使用してクエリについてのマッチングキーを探し出すことができる。
標準的な分類器との違い
標準的な分類技術では、データセットDを使用して分類器を訓練する。標準的な分類器ベースのアプローチは、その訓練データセットDの中に見られなかった値を返すことはないという特性を有する。一方、本開示に開示されている技術では、分類アルゴリズムではなくマッチ関数が使用される。このマッチ関数は、異なるデータセット上で訓練されており(または、マッチ関数は全く訓練されておらず)、実行時に使用されるデータセットは、マッチ関数を訓練するために使用されたデータセットと同一でなくてもよい。実行時に使用されるデータセットは、マッチ関数を訓練するために使用されたデータセットと同一でなくてもよいので、マッチ関数は、マッチ関数を学習するために使用された訓練データセットに存在していなかった値を返す可能性を有している。これにより、たとえば、再訓練プロセスを経る必要なく新たな意図を追加することができる。
標準的な分類技術では、データセットDを使用して分類器を訓練する。標準的な分類器ベースのアプローチは、その訓練データセットDの中に見られなかった値を返すことはないという特性を有する。一方、本開示に開示されている技術では、分類アルゴリズムではなくマッチ関数が使用される。このマッチ関数は、異なるデータセット上で訓練されており(または、マッチ関数は全く訓練されておらず)、実行時に使用されるデータセットは、マッチ関数を訓練するために使用されたデータセットと同一でなくてもよい。実行時に使用されるデータセットは、マッチ関数を訓練するために使用されたデータセットと同一でなくてもよいので、マッチ関数は、マッチ関数を学習するために使用された訓練データセットに存在していなかった値を返す可能性を有している。これにより、たとえば、再訓練プロセスを経る必要なく新たな意図を追加することができる。
例示的な対話システム
図1は、いくつかの実施形態に係る対話システム100の一例を示す図である。対話システム100は、音声またはスピーチ入力104(スピーチ発話とも称される)をユーザ102から受信するように構成される。次いで、対話システム100は、これらの音声入力を解釈し得る。対話システム100は、ユーザ102との対話を維持して、場合によってはこれらの音声入力の解釈に基づいて1つまたは複数のアクションを実行したり実行させたりし得る。対話システム100は、適切な応答を準備して、音声またはスピーチ出力を使用してこれらの応答をユーザに出力し得る。対話システム100は、多数のコンピュータ処理サイクルを使用して大量のデータを処理するために使用され得る専用のコンピューティングシステムである。図1に示される多数のデバイスは、例示の目的で設けられている。異なる数のデバイスが使用されてもよい。たとえば、図1における各デバイス、サーバおよびシステムは、単一のデバイスとして示されているが、その代わりに複数のデバイスが使用されてもよい。
図1は、いくつかの実施形態に係る対話システム100の一例を示す図である。対話システム100は、音声またはスピーチ入力104(スピーチ発話とも称される)をユーザ102から受信するように構成される。次いで、対話システム100は、これらの音声入力を解釈し得る。対話システム100は、ユーザ102との対話を維持して、場合によってはこれらの音声入力の解釈に基づいて1つまたは複数のアクションを実行したり実行させたりし得る。対話システム100は、適切な応答を準備して、音声またはスピーチ出力を使用してこれらの応答をユーザに出力し得る。対話システム100は、多数のコンピュータ処理サイクルを使用して大量のデータを処理するために使用され得る専用のコンピューティングシステムである。図1に示される多数のデバイスは、例示の目的で設けられている。異なる数のデバイスが使用されてもよい。たとえば、図1における各デバイス、サーバおよびシステムは、単一のデバイスとして示されているが、その代わりに複数のデバイスが使用されてもよい。
特定の実施形態において、対話システムによって実行される処理は、コンポーネントまたはサブシステムのパイプラインによって実現され、これらのコンポーネントまたはサブシステムは、音声入力コンポーネント105と、ウェイクワード検出(WD)サブシステム106と、自動音声認識(ASR)サブシステム108と、自然言語理解(NLU)サブシステム110とを含み、NLUサブシステム110は、固有表現認識部(NER)サブシステム112と、意図マッチングサブシステム113と、セマンティックパーササブシステム114とを含み、これらのコンポーネントまたはサブシステムはさらに、マッチングデータベース115と、QnAマッチングサブシステム117を含み得る対話マネージャ(DM)サブシステム116と、自然言語生成部(NLG)サブシステム118と、テキスト・トゥ・スピーチ(TTS)サブシステム120と、音声出力コンポーネント124とを含む。上記のサブシステムは、ソフトウェアのみで(たとえば、1つまたは複数のプロセッサまたはコアによって実行可能なコード、プログラムまたは命令を使用して)実現されてもよく、ハードウェアのみで実現されてもよく、またはハードウェアとソフトウェアとの組み合わせで実現されてもよい。特定の実現例において、サブシステムのうちの1つまたは複数は、組み合わせて単一のサブシステムにされてもよい。さらにまたは代替的に、いくつかの実現例において、特定のサブシステムによって実行されるものとして本明細書に記載されている機能は、複数のサブシステムによって実行されてもよい。
音声入力コンポーネント105は、音声入力104を受信するように構成されたハードウェアおよびソフトウェアを含む。いくつかの例では、音声入力コンポーネント105は、対話システム100の一部であり得る。いくつかの他の例では、音声入力コンポーネント105は、対話システム100とは別であって、対話システム100に通信可能に結合され得る。音声入力コンポーネント105は、たとえば、音声入力をデジタル化してウェイクワード検出サブシステム106に送信するように構成されたソフトウェアに結合されたマイクロフォンを含み得る。
ウェイクワード検出(WD)サブシステム106は、特別な音または単語または単語のセット(ウェイクワードと称される)に対応する入力についてオーディオ入力ストリームを聞いて監視するように構成される。対話システム100のために構成されたウェイクワードを検出すると、WDサブシステム106は、ASRサブシステム108を起動するように構成される。特定の実現例において、ユーザは、(たとえば、ウェイクワードを話してボタンを押すことによって)WDサブシステム106を起動したり停止したりする能力を提供され得る。WDサブシステム106は、起動されると(または、アクティブモードで動作しているとき)、オーディオ入力ストリームを連続的に受信して、このオーディオ入力ストリームを処理して、ウェイクワードに対応するオーディオまたは音声入力を識別するように構成される。ウェイクワードに対応するオーディオ入力が検出されると、WDサブシステム106は、ASRサブシステム108を起動する。
上記のように、WDサブシステム106は、ASRサブシステム108を起動する。音声対応システムのいくつかの実現例において、ウェイクワード以外の機構を使用してASRサブシステム108をトリガまたは起動してもよい。たとえば、いくつかの実現例において、デバイスのプッシュボタンを使用して、ウェイクワードを必要とすることなくASRサブシステム108の処理をトリガしてもよい。このような実現例では、WDサブシステム106を設けなくてもよい。プッシュボタンが押されるまたは起動されると、ボタン起動後に受信された音声入力は、処理のためにASRサブシステム108に提供される。いくつかの実現例において、ASRサブシステム108は、処理対象の入力を受信したときに起動されてもよい。
ASRサブシステム108は、トリガまたはウェイクアップ信号(たとえば、ウェイクアップ信号は、音声入力の中にウェイクワードを検出するとWDサブシステム106によって送信され得る、ウェイクアップ信号は、ボタンの起動時に受信され得る、など)後に口頭の音声入力を受信および監視して、この音声入力をテキストに変換するように構成される。その処理の一部として、ASRサブシステム108は、スピーチ・トゥ・テキスト変換を実行する。口頭のスピーチまたは音声入力は、自然言語形式であり得て、ASRサブシステム108は、音声入力の言語で対応する自然言語テキストを生成するように構成される。次いで、ASRサブシステムによって生成されたテキストは、その後の処理のためにNLUサブシステム110に送り込まれる。ASRサブシステム108によって受信された音声入力は、1つまたは複数の単語、句、節、文、質問などを含み得る。ASRサブシステム108は、各々の口頭の節についてテキスト発話を生成して、その後の処理のためにこれらのテキスト発話をNLUサブシステム110に送り込むように構成される。
NLUサブシステム110は、ASRサブシステム108によって生成されたテキストを受信する。ASRサブシステム108からNLUサブシステム110によって受信されたテキストは、口頭の単語、句、節などに対応するテキスト発話を含み得る。NLUサブシステム110は、各テキスト発話(または、一連のテキスト発話)をその対応する論理形式に変換する。
特定の実現例において、NLUサブシステム110は、固有表現認識部(NER)サブシステム112と、意図マッチングサブシステム113と、セマンティックパーサ(SP)サブシステム114とを含む。NERサブシステム112は、テキスト発話を入力として受信して、このテキスト発話の中の固有表現を識別して、識別された固有表現に関連する情報でこのテキスト発話をタグ付けする。次いで、タグ付けされたテキスト発話は、SPサブシステム114(各々のタグ付けされたテキスト発話について(または、一連のタグ付けされたテキスト発話について)論理形式を生成するように構成される)、および、意図マッチングサブシステム113(論理形式を生成する際にSPサブシステム114によって使用され得る、テキスト発話に対応する1つまたは複数の意図を識別するように構成される)に送り込まれる。
発話の意図は、発話の目的を識別する。意図の例としては、「Order_Pizza」および「Find_Directions」が挙げられる。各意図は、意図識別子または意図名を与えられる。たとえば、意図マッチングサブシステム113が認識するように訓練される意図は、「CheckBalance」、「TransferMoney」、「DepositCheck」などを含み得る。意図は、たとえば、実行されるよう要求されるアクションを識別し得る。意図は、入力された発話について対話システムが推論するように訓練されるカテゴリまたはクラスを表し得る。意図マッチングサブシステム113は、発話を受信すると、この発話の意図を判断し得て、推論された意図は、意図マッチングサブシステム113を訓練するために使用される予め規定された意図のセットから選択される。次いで、対話システムは、当該発話について推論された意図に基づいて、発話に応答して適切なアクションをとる。
規定された各意図について、設計者は、その意図に対応する、その意図を示す1つまたは複数の例示的な発話を提供し得る。これらの例示的な発話は、当該意図についてユーザが対話システムに入力し得る発話を表すよう意図されている。たとえば、CheckBalance意図では、例示的な発話は、「私の普通預金口座の残高はどれぐらいですか?」、「私の当座預金口座にはどれぐらい入っていますか?」、「私の口座にはどれぐらいの金額がありますか?」などを含み得る。したがって、典型的なユーザ発話のさまざまな置換が意図についての例示的な発話として指定され得る。
これらの意図および関連付けられた例示的な発話は、意図マッチングサブシステム113を訓練するための訓練データとして使用される。この訓練の結果、発話を入力としてこの発話について推論された意図を出力するように構成された予測モデル(たとえば、マッチ関数)が生成される。
いくつかの例において、入力された発話は、意図マッチングサブシステム113に提供され、意図マッチングサブシステム113は、訓練済みモデルを使用して、入力された発話の意図を予測または推論するように構成される。次いで、対話システムは、推論された意図に基づいて1つまたは複数のアクションをとり得る。本明細書に記載されているように、意図マッチングサブシステム113は、マッチ関数をテキスト発話に適用して、このテキスト発話に対応する意図を予測し得る。意図マッチングサブシステム113は、マッチングデータベース115と対話してマッチ関数を適用し得る。マッチングデータベース115は、サンプルテキスト発話の表現を値にマッピングする複数のキー/値のペアを格納し得る。いくつかの実施形態において、テキスト発話は、キー/値のペアの中のキーであり、意図は、キー/値のペアの中の値である。代替的にまたはさらに、キー/値のペアの中の値は、質問に対する回答に対応し得る。意図マッチングサブシステム113は、マッチ関数を適用して、マッチングデータベース115に格納された、テキスト発話にベストマッチするキーを識別し得る。次いで、意図マッチングサブシステム113は、対応する値を識別し、それによって、テキスト発話に対応する意図を予測し得る。
意図に加えて、テキスト発話について生成された論理形式は、識別された意図についてスロット(パラメータまたは引数とも称される)も識別し得る。たとえば、「マッシュルームとオリーブののったラージサイズのペパロニピザをオーダーしたい」という音声入力では、NLUサブシステム110は、ピザをオーダーするという意図を識別することができる。NLUサブシステムは、スロット(たとえば、pizza_size(「ラージサイズの」で充足される)およびpizza_toppings(「マッシュルームとオリーブ」で充足される))も識別して充足することができる。NLUサブシステムは、機械学習ベースの技術、ルール(ドメインに固有であり得る)、またはこれら2つの組み合わせを使用して、論理形式を生成し得る。次いで、NLUサブシステム110によって生成された論理形式は、その後の処理のためにDMサブシステム116に送り込まれる。
DMサブシステム116は、NLUサブシステム110から受信された論理形式に基づいてユーザとの対話を管理するように構成される。対話管理の一部として、DMサブシステム116は、対話状態を追跡して、1つもしくは複数のアクションもしくはタスクの実行を開始するかまたはそれ自体が1つもしくは複数のアクションもしくはタスクを実行して、どのようにユーザと対話するかを判断するように構成される。これらのアクションは、たとえば、1つまたは複数のデータベースに照会すること、実行結果を生成すること、および他のアクションを含み得る。たとえば、DMサブシステム116は、NLUサブシステム110から受信された論理形式で識別された意図を解釈するように構成される。この解釈に基づいて、DMサブシステム116は、ユーザによって提供された音声入力によって要求されているとして解釈される1つまたは複数のアクションを開始し得る。
特定の実施形態において、DMサブシステム116は、現在および過去の音声入力に基づいて、ならびに、DMサブシステム116のために構成されたルール(たとえば、対話ポリシ)のセットに基づいて、対話状態追跡を実行する。これらのルールは、さまざまな対話状態、状態間の遷移のための条件、特定の状態にあるときに実行されるアクションなどを指定し得る。これらのルールは、ドメインに固有であり得る。
いくつかの実施形態において、DMサブシステム116は、質問および回答(QnA)マッチングサブシステム117を使用して、クエリに対する回答を識別する。本明細書に記載されているように、QnAマッチングサブシステム117は、マッチ関数をテキスト発話に適用して、クエリに対応する回答を予測し得る。QnAマッチングサブシステム117は、マッチングデータベース115と対話してマッチ関数を適用し得る。上記のように、マッチングデータベース115は、複数のキー/値のペアを格納し得て、これら複数のキー/値のペアは、テキスト発話を、質問に対する回答に対応し得る値にマッピングする。QnAマッチングサブシステム117は、マッチ関数を適用して、マッチングデータベース115に格納された、テキスト発話(たとえば、クエリ(音声入力を介してユーザによって提起されたクエリなど))にベストマッチするキーを識別し得る。次いで、意図マッチングサブシステム113は、対応する値を識別し、それによって、テキスト発話に対応する回答を予測し得る。
また、DMサブシステム116は、対話に関与しているユーザに返される応答も生成する。これらの応答は、DMサブシステム116によって開始されたアクションおよびそれらの結果に基づき得る。DMサブシステム116によって生成された応答は、その後の処理のためにNLGサブシステム118に送り込まれる。
NLGサブシステム118は、DMサブシステム116によって生成された応答に対応する自然言語テキストを生成するように構成される。これらのテキストは、TTSサブシステム120によってそれらを音声に変換することを可能にする形式で生成され得る。TTSサブシステム120は、これらのテキストをNLGサブシステム118から受信して、それらの各々をスピーチまたは音声オーディオに変換し、このスピーチまたは音声オーディオは、次いで、対話システムのオーディオまたは音声出力コンポーネント124(たとえば、スピーカ、または外部スピーカに結合された通信チャネル)を介してユーザに出力され得る。いくつかの例では、音声出力コンポーネント124は、対話システム100の一部であり得る。いくつかの他の例では、音声出力コンポーネント124は、対話システム100とは別であって、対話システム100に通信可能に結合され得る。
上記のように、協働して動作する対話システム100のさまざまなサブシステムは、対話システム100が音声入力104を受信して、音声出力122を使用して応答して、自然言語音声を使用してユーザとの対話を維持することを可能にする機能を提供する。上記のさまざまなサブシステムは、単一のコンピュータシステムを使用して実現されてもよく、または協働して動作する複数のコンピュータシステムを使用して実現されてもよい。たとえば、音声対応システムを実装するデバイスでは、上記の対話システム100のサブシステムは、もっぱらユーザが対話するデバイスに実装され得る。いくつかの他の実現例では、対話システム100のいくつかのコンポーネントまたはサブシステムは、ユーザが対話するデバイスに実装され得るのに対して、他のコンポーネントは、デバイスからリモートで、場合によっては他のコンピューティングデバイス、プラットフォームまたはサーバに実装され得る。
上記のように、特定の実施形態において、対話システム100は、サブシステムのパイプラインを使用して実現され得る。いくつかの実施形態において、サブシステムのうちの1つまたは複数は、組み合わせて単一のサブシステムにされてもよい。特定の実施形態において、特定のサブシステムによって提供される機能は、複数のサブシステムによって提供されてもよい。また、特定のサブシステムは、複数のサブシステムを使用して実現されてもよい。
特定の実施形態において、機械学習技術を使用して、対話システム100の1つまたは複数の機能を実行し得る。たとえば、教師あり機械学習技術(ニューラルネットワーク(たとえば、ディープニューラルネットワーク)を使用して実現されるものなど)を使用して、対話システム100の1つまたは複数の機能を実行し得る。一例として、実行対象のASR機能を実行するように訓練されたニューラルネットワークが提供され得て、このような訓練されたモデルがASRサブシステム108によってその処理に使用され得る。このようなニューラルネットワーク実現例は、音声入力を入力として、テキスト発話をNLUサブシステムに出力し得る。機械学習ベースのモデルは、対話システム100の他のサブシステムによっても使用され得る。
マッチ関数を使用して値を求める
図2は、いくつかの実施形態に係る、マッチ関数を使用して値を求めるための方法200を示す簡略化されたフローチャートである。図2に示される処理は、それぞれのシステムの1つまたは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)で実現されてもよく、ハードウェアで実現されてもよく、またはそれらの組み合わせで実現されてもよい。ソフトウェアは、非一時的な記憶媒体(たとえば、メモリデバイス)に格納され得る。図2に示されて以下で説明される方法は、例示的であって非限定的であるよう意図されている。図2は、特定のシーケンスまたは順序で行われるさまざまな処理ステップを示しているが、これは、限定的であるよう意図されるものではない。特定の代替的な実施形態では、これらのステップは、何らかの異なる順序で実行されてもよく、またはいくつかのステップは、並行して実行されてもよい。特定の実施形態において、図2に示される処理は、図1に関して上記した対話システム100によって実行され得る。
図2は、いくつかの実施形態に係る、マッチ関数を使用して値を求めるための方法200を示す簡略化されたフローチャートである。図2に示される処理は、それぞれのシステムの1つまたは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)で実現されてもよく、ハードウェアで実現されてもよく、またはそれらの組み合わせで実現されてもよい。ソフトウェアは、非一時的な記憶媒体(たとえば、メモリデバイス)に格納され得る。図2に示されて以下で説明される方法は、例示的であって非限定的であるよう意図されている。図2は、特定のシーケンスまたは順序で行われるさまざまな処理ステップを示しているが、これは、限定的であるよう意図されるものではない。特定の代替的な実施形態では、これらのステップは、何らかの異なる順序で実行されてもよく、またはいくつかのステップは、並行して実行されてもよい。特定の実施形態において、図2に示される処理は、図1に関して上記した対話システム100によって実行され得る。
図2に示されるように、202において、入力された口頭発話を受信する。入力された口頭発話は、ユーザが話した単語から生じ得る。対話システムは、たとえば音声入力コンポーネント105を介して、入力された口頭発話をユーザから受信し得る。入力された口頭発話は、波形として受信され得る。入力された口頭発話は、特定の言語であって、自然言語クエリ形式であり得る。入力された口頭発話は、ユーザが対話システムに回答させたい質問を指定したり、ユーザが対話システムに開始させたい1つまたは複数のアクション(たとえば、「ミディアムサイズのペパロニピザにします」)を指定したりする、などであり得る。入力された口頭発話は、テキスト発話を生成するようにASRサブシステム108によって処理され得て、このテキスト発話は、その後の処理のためにNLUサブシステム110に渡される。
特定の実施形態において、(202のように)音声入力を受信する代わりに、入力は、たとえばユーザが対話システムとのチャット中にテキストをタイプする場合にはテキスト形式で受信され得る。本開示に記載されている技術は、口頭のスピーチまたはテキスト入力またはそれらの組み合わせの形式で入力を受信するシステムとともに使用することができる。
204において、対話システムは、入力された口頭発話のベクトル表現を生成する。対話システムは、202において生成されたテキスト発話を使用して、入力された口頭発話の文エンコーディングを生成し得る。対話システムは、処理のために、入力された口頭発話の符号化されたバージョン(たとえば、入力された口頭発話の中の各単語について別々の埋め込みを含む単語埋め込みのセットであって、各埋め込みは、対応する単語の特徴についての値を含む多次元特徴ベクトルである)を生成し得る。
206において、対話システムは、マッチ関数を使用して、複数のキー/値のペアの中の各キー/値のペアについてマッチスコアを生成する。対話システムは、マッチ関数をそれぞれのキー/値のペアの中の複数のキーおよび204において生成された入力された口頭発話のベクトル表現に適用することによって、複数のマッチスコアを計算し得る。キー/値のペアについて生成されたマッチスコアは、キー/値のペアのキーと入力された口頭発話のベクトル表現とのマッチング度合いを示す。
対話システムは、複数のキー/値のペア125をマッチングデータベース115に格納し得る。各キー/値のペアは、キーを含み、このキーは、文字列またはその表現であり得る。これらのキーは、ユーザクエリ(「お店への行き方が必要です」または「どのようにしてケーブル加入を変更しますか?」など)に対応し得る。
いくつかの実施形態において、複数のキー/値のペアの中の各キーは、文、句、単語または単語のセットの多次元ベクトル表現である。これらのキーは、密ベクトルとして(たとえば、文埋め込みとして)符号化され得るため、各々はki∈Rdであり、式中、dは埋め込みの次元である。埋め込みは、単語および文を固定長ベクトルに符号化する。たとえば、埋め込みは、文埋め込み(トランスフォーマを活用した双方向エンコーダ表現(BERT)またはユニバーサルセンテンスエンコーダ埋め込みなど)であり得る。埋め込みは、機械学習技術を使用して(たとえば、ニューラルネットワークを使用して)訓練され得る。埋め込みは、音声入力タイプを一般化するのに使用され得る。したがって、対話システムは、複数のサンプル発話を表す埋め込みの訓練済みセットを生成し得て、これらの埋め込みは、マッチスコアの計算に使用され得る。いくつかの実施形態において、ユニバーサル埋め込みが実行され得る。ユニバーサル埋め込みの使用は、入力を受信する言語にかかわらず入力に基づいて値を識別することを容易にすることができる。
いくつかの実施形態において、キーは、サンプル発話(たとえば、質問または発言)単独よりも多くの情報を組み込むことができる。たとえば、キーは、関連付けられた回答または値から抽出される情報を含み得る(たとえば、キーは、質問埋め込みと回答埋め込みとの線形組み合わせであり得る)。具体例として、キーに対応する値は、ウェブサイトへのリンクである。このキーは、ウェブサイトへのリンクから導き出された情報(たとえば、当該ウェブサイト上の単語)を含み得る。これを使用してマッチングプロセスを容易にすることができる。たとえば、「口座を解約する」というキーでは、「解約する(close)」の別の語は「閉じる(shut)」である。ウェブサイトは、「口座を閉じる手順」という句を含み得る。値から導き出されたこのような情報を含むことにより、より多くの種類の音声入力にわたって意図を見分けることを容易にすることができる。
各キー/値のペアについて、キーは、それぞれの値にマッピングされ得て、このそれぞれの値は、意図、質問に対する回答、または他の好適な値であり得る。これらの値は、vi∈Vとして表すことができ、式中、Vは値のセットである。これらの値は、埋め込まれる場合もあれば、埋め込まれない場合もある。複数のキー/値のペアの各キーは、マッチングデータベース115における対応する値に関連付けて格納され得る。たとえば、「お店への行き方が必要です」という発話のベクトル表現は、意図「FIND-DIRECTIONS」にマッピングされる。代替的にまたはさらに、キーおよび値は、質問および回答に対応し得て、キーは、質問に対応し、値は、質問に対する回答を提供する。一例として、表1は、キー/値のペアのセットを示す。
3つのキーが値に関連付けて表に格納されている。表1に示される例において、キーは、クエリ(たとえば、「どのようにして口座を開設することができますか?」)である。値は、それぞれのクエリとペアにされた回答に対応する。表1に示される例において、値は、口座の開設の仕方または解約の仕方をユーザに説明するために使用され得るURLである。これらのキーおよび値は、マッチングデータベース115にD=((k1,v1),...,(kn,vn))として格納され得て、式中、kiは、i番目の音声入力タイプまたはキーであり、viは、対応する値である。
いくつかの実施形態において、値は意図である。この場合、各キーは、サンプル発話を表し得て、各々の対応する値は、当該サンプル発話の意図である。たとえば、キー/値のペアは、キー「1枚のラージサイズのペパロニ」および対応する値「Order_Pizza」で構成され得る。代替的にまたはさらに、複数のキー/値のペアのキーは、質問の表現であり、複数のキー/値のペアの値は、それぞれの質問に対応する回答である。たとえば、キー/値のペアは、キー「ラージサイズのペパロニピザはいくらですか?」と、対応する値「19.99ドルです」とを含み得る。
対話システムは、マッチ関数を複数のサンプル発話および202において受信された音声入力に適用することによってマッチスコアを計算する。マッチ関数は、202において受信された入力された口頭発話とともに、各々の格納されたキーに適用され得る。マッチ関数は、受信された入力された口頭発話が、格納されたサンプル発話にどれぐらいマッチするかを返し得る。マッチ関数は、パラメータθに関連付けられ得て、パラメータθは、情報検索機械学習方法(ランキングアルゴリズムまたは確率的アルゴリズムなど)を使用して学習または微調整され得る。マッチ関数は、異なる関連付けられた値を有する2つの異なるキーのマッチよりも、同一の関連付けられた値を有する2つの異なるキーのマッチについてより高いマッチスコアを生成するように構成され得る。
いくつかの実施形態において、マッチ関数Match()は、クエリqおよびキーkを実数値マッチスコアMatch(q,k)にマッピングする。クエリは、202における入力された口頭発話に対応する。具体例として、格納されたキー/値のペアのコーパスは、データセットDである。データセットD=((k1,v1),...,(kn,vn))は、n個のキー/値のペア(ki,vi)で構成され、kiはキーであり、viは関連付けられた値である。音声入力qが提供されると、システムは、ベストマッチキーを有するDにおけるキー/値のペアを返す。関数BestMatch()は、ベストマッチキー/値のペアを返す。
ここで、qは音声入力の文エンコーディングであり、θはマッチ関数のパラメータのベクトルである。図3に関して以下でさらに説明するように、マッチ関数はさらに、正および負のキーペアの訓練トリプルTに基づく。例示的なマッチ関数実現例は、以下を含む。
マッチ関数の中には、逆距離(たとえば、ドット積スコア)を返すものもあり、この場合、マッチング問題は、キーkが音声入力/クエリqに最も近いDにおけるペアを探し出すことであるとみなされる。ドット積/コサイン実現例は、コサイン類似度関数を使用する。コサイン類似度は、2つのベクトル間の角度のコサインに基づいてそれらの類似の程度を提供する。(たとえば、ジャウェイ・ハン等による「データが分かるようになる(Getting to Know Your Data)」データマイニング(第3版)(2012)を参照されたい。)音声入力タイプの文エンコーディングを生成する文埋め込みモデルを微調整するのに訓練データが依然として有用であり得るにもかかわらず、ドット積/コサインマッチ関数は、訓練データを必要とするパラメータをもたない。
表2に示される残りのマッチ関数は、パラメータθ(3番目の列)を有しており、これらのパラメータθは、図3および図4に関して以下で説明するように、訓練データから推定され得る。双一次実現例は、たとえばウェイ・ウーおよびジェンドン・ルー・ハン・リによる「クエリおよびドキュメントをマッチングするための双一次モデルの学習(Learning Bilinear Model for Matching Queries and Documents)」機械学習研究ジャーナル14,2519-2548(2013))に記載されているような双一次関数を使用する。一層ネットワークは、単層ニューラルネットワークである。多層ネットワークは、多層ニューラルネットワークである。表2に示される多層ネットワーク実現例のための例示的なマッチ関数は、正規化線形ユニット活性化関数(ReLU)を含む。しかし、ReLU()の代わりに他の非線形性(tanh()など)が使用されてもよい。
代替的にまたはさらに、確率的モデル(たとえば、最近傍関数)が実行されてもよい。確率的モデルは、パーティション関数を計算することを含む。パーティション関数を介した逆伝播は、訓練データセットが大きい場合には困難である場合がある。誤り駆動型近似は、必要なメモリ使用量が比較的少ないはずである。例示的な確率的モデルは、以下の通りである。
Dvは、値vを有するDにおけるペアのサブセットである。式[2]および[3]によって示される確率的モデルは、キーkにわたって周辺化(marginalize)してマッチスコアをポテンシャルとして使用するDにわたる指数関数的モデルである。
マッチ関数は、パラメータθを生成するように初期時に訓練され得る。この訓練は、図3および図4に関して以下で説明するように、ニューラルネットワークを使用してデータセットDについてθを最適化することを含み得る。対話システムは、最初に、訓練データを使用してマッチ関数を訓練し得て、この訓練は、図3に関して説明するように、損失関数を最小化することによって、マッチ関数に関連付けられたパラメータのセットを調整することを備える。代替的にまたはさらに、この訓練は、図4に関して説明するように、尤度関数を最大化することによって、マッチ関数に関連付けられたパラメータのセットを調整することを備え得る。
したがって、対話システムは、202において入力された口頭発話を受信する前に、サンプルキーおよび値のペアのセットに基づいてマッチ関数のパラメータのセットを求め得る。訓練に使用されるサンプルキーおよび値のペアは、格納されてマッチスコアの計算に使用されるものと同一であり得る。代替的に、訓練に使用されるサンプルキーおよび値のペアは、格納されてマッチスコアの計算に使用されるものとは異なっていてもよい。したがって、キーおよび値は、初期訓練後に追加または除去され得る。
マッチ関数を使用して、対話システムは、入力された口頭発話のベクトル表現とそれぞれの格納されたキーとの間の類似度に対応するさまざまなマッチスコアを生成し得る。たとえば、「モントリオールへはどう行けばいいですか?」という音声入力は、「モントリオールへの行き方を探し出してください」とは10というマッチスコアを有し得て、「モントリオールとは?」とは4というマッチスコアを有し得る。
208において、対話システムは、206において生成されたマッチスコアに基づいて、最も高いマッチスコアを有する特定のキー/値のペアを識別する。対話システムは、206において生成されたマッチスコア同士を比較して、最も高いマッチスコアを有するキー/値のペアを識別し得る。たとえば、「ハンバーガーはいくらですか?」という発話は、「ハムサンドイッチはいくらですか」というキーと70%のマッチスコアを有し、「ヴェジーバーガーはいくらですか」というキーと80%のマッチスコアを有し、「ハンバーガーはいくらですか?」というキーと100%のマッチスコアを有する。したがって、「ハンバーガーはいくらですか?」と100%のマッチスコアを有するマッチングキー/値のペアが識別される。代替的に、いくつかの実施形態において、対話システムは、マッチングのレベルに反比例するマッチスコアを割り当て得て、この場合、最も低いマッチスコアを有するキー/値のペアが選択され得る。
210において、対話システムは、特定のキー/値のペアに関連付けられた値を、入力された口頭発話の値として出力する。いくつかの実施形態において、対話システムは、308において識別されたキー/値のペアから対応する値を選択し、選択された値に対応する応答を生成して提供する。
対話システムは、208において選択された最も高いマッチスコアを有するキー/値のペアを横断して、その中の値を識別し得る。この値は、意図、回答、または対話処理を実行するために使用される他の情報に対応し得る。具体例として、意図マッチングサブシステムは、「モントリオールへの行き方を探し出してください」というキーが、入力された発話と最も高いマッチを有すると判断した後に、「モントリオールへの行き方を探し出してください」というキーにマッピングされた意図を識別する。識別された意図は、DIRECTIONS_TOであり、これは、最も高いマッチスコアを有する格納されたキーに関連付けて格納される。別の例として、QnAマッチングサブシステムは、質問に対する回答、または、最も高いマッチングキーに関連付けて格納された回答を検索するために使用され得るURLを識別し得る(たとえば、QnAマッチングサブシステムは、最も近いコーヒーショップの住所を、「最も近いコーヒーショップはどこですか?」という最も高いスコアのキーにマッピングされた値として識別し得る)。この場合、特定のキー/値のペアに関連付けられた出力値は、選択された回答に対応し得て、値は、入力された口頭発話に対する回答として出力される。
対話システムは、値をユーザおよび/または対話システムの別のサブシステムに出力し得る。後者の一例として、意図マッチングサブシステム113は、一部には識別された意図に基づいて論理形式を生成するために、識別された意図をSPサブシステム114に出力する。場合によっては、対話処理パイプラインは、ユーザに対する出力を生成し続ける。ユーザに対する出力は、識別された値および/またはその派生物を音声出力および/または視覚的な合図として含み得る。
いくつかの実施形態において、対話システムは、選択された値を含む、または選択された値から導き出される応答を生成する。たとえば、値は、意図「FIND_STORE」である。対話システムは、GPSまたはフォローアップ質問を使用して、ユーザの場所を識別し、識別された場所に最も近い店を識別し得る。次いで、対話システムは、(たとえば、単語を追加して完全な文(「ジェイズ・パーティー・サプライはメインストリート3215にあります。行き方を知りたいですか?」など)を形成することによって)識別された店をユーザフレンドリな応答としてパッケージングし得る。いくつかの実施形態において、選択された値は、応答または応答の一部を含む情報を含み得る(たとえば、QnAマッチングサブシステムは、URL(上記の表1に示されるものなど)を識別し得る)。
対話システムは、(たとえば、対話マネージャサブシステム116および自然言語生成部サブシステム118によって生成されたテキスト応答をテキスト・トゥ・スピーチサブシステム120を介して音声出力に変換することによって)音声出力を介して応答を出力として(たとえば、202において入力された口頭発話を提供したユーザに)提供し得る。代替的にまたはさらに、対話システムは、ユーザデバイスのディスプレイコンポーネント上にテキスト応答を表示させることによって応答を提供してもよい。
その後、値は、格納されたキー/値マッピングに追加されたり、格納されたキー/値マッピングから除去されたりし得る。対話システムは、変更された値を処理するようにモデルを再訓練することなく、第2の入力された口頭発話を処理し得る。たとえば、202において受信された入力された口頭発話は、第1の入力された口頭発話であり、210において出力された値は、第1の値である。対話システムは、第1の値を求めた後、追加のキーおよび/または値を含むようにキー/値のペアのセットを更新する。たとえば、顧客は、コールセンターチャットボットが処理することを可能にしたい追加の質問および回答のセットを提供し得る。対話システムのデータベースは、(たとえば、追加のキー/値のペアをデータセットに格納することによって)更新されたキー/値のペアのセットを反映するように更新される。具体例として、対話システムは、「...を返却したい」というサンプル発話および意図「RETURN_ITEM」を含むキー/値のペア、「どうやって何かを返却するのですか?」というサンプル発話を意図「RETURN_ITEM」とともに含むキー/値のペアなどを、新たな値「RETURN_ITEM」に対応するさまざまなキーを含む複数のキー/値のペアとともに追加し得る。次いで、対話システムは、第2の入力された口頭発話を受信する。第2の入力された口頭発話は、最近追加された値に対応し得る(たとえば、第2の音声入力は、「シャツを返却したい」であり、これは、意図「RETURN_ITEM」にマッピングされたキーにマッチする)。対話システムは、マッチ関数(たとえば、204~208に関して上記した)を使用して、第2の入力された口頭発話に対応する第2の値を求める。対話システムは、追加のキー/値のペアを追加することと第2の入力された口頭発話を処理することとの間で再訓練されない(たとえば、マッチ関数のパラメータのセットは、第1の値を求めることと第2の値を求めることとの間で変化しない)。別の例として、値は、可能な値のセットからその場で除去されることができる。意図をその場で追加したり除去したりする1つの例示的な適用例は、各ユーザが自身の個人別の意図のセットに関連付けられることを可能にするというものである。
図3は、特定の実施形態に係る、セットアップフェーズ中に実行される処理を示す簡略化されたフローチャート300である。図3に示される処理は、それぞれのシステムの1つまたは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)で実現されてもよく、ハードウェアで実現されてもよく、またはそれらの組み合わせで実現されてもよい。ソフトウェアは、非一時的な記憶媒体(たとえば、メモリデバイス)に格納され得る。図3に示されて以下で説明される方法は、例示的であって非限定的であるよう意図されている。図3は、特定のシーケンスまたは順序で行われるさまざまな処理ステップを示しているが、これは、限定的であるよう意図されるものではない。特定の代替的な実施形態では、これらのステップは、何らかの異なる順序で実行されてもよく、またはいくつかのステップは、並行して実行されてもよい。特定の実施形態において、図3に示される処理は、上記のように対話システムによって実行され得る。
図3に示される処理は、マッチ関数のパラメータを構成するための訓練ステップにおいて使用され得る。図2に関して上記したように、対話システムは、202において入力された口頭発話を受信する前に、マッチ関数のパラメータのセットをもたらす訓練プロセスを実行し得る。いくつかの実施形態において、これは、キー/値のペアのセットの損失関数を最小化することを含み、これは、図3に示される処理を使用して実行され得る。
図3に示されるように、302において、対話システムは訓練データを取得する。対話システムは、さまざまなソースから(システムによって受信された以前の音声入力から、顧客から、および/または、ウェブスクレイピングによって)訓練データを取得し得る。たとえば、訓練データは、対話システムが構成されている組織によって提供される音声入力タイプおよび対応する意図の何千ものペアで構成され得る。
304において、対話システムは、正および負のキーペアに基づいて損失関数を識別する。正のキーペア(k,k′)は、同一の値にマッチする2つのキーである。たとえば、表1に上記した例を使用して、「どのようにして口座を開設することができますか?」および「私に新しい口座を作ってください」というキーは、http://xxx.com/openという同一の値にマッチする。負のキーペア(k,k″)は、異なる値にマッチする2つのキーである。たとえば、再び表1を参照して、「どのようにして口座を開設することができますか?」および「口座を解約してもいいですか?」というキーは、異なる値にマッチする。
いくつかの実施形態において、値の多くは、データセットDにおける複数のキーとともに現れる。すなわち、多くの値vについて、複数のキーk,k′が存在しており、k≠k′であり、(k,v)∈Dおよび(k′,v)∈Dである。複数のキーを有する値が多くなればなるほど、入手可能なデータが多くなり、最終結果が正確になる。たとえば、上記の表1を参照して、Dにおいて、「どのようにして口座を開設することができますか?」および「私に新しい口座を作ってください」というキーは両方とも、「http://xxx.com/open」という同一の値に関連付けられる。これら2つのキーは、この手続きでは正の訓練ペアとしての役割を果たすであろう。
上記は、データセットDのための正の訓練ペアのセットである。正の訓練ペアPは、ランダムに選択された負のキーk″を各ペアに追加することによって訓練トリプルTに拡張され得て、負のキーk″は、他のキーに対する異なる値に関連付けられる。
代替的に、訓練トリプルは、別のアプローチによって選択されてもよい。訓練データD=((k1,v1),...,(kn,vn))が、トリプルのセットT={(k,k′,k″)}を規定したキー/値のペアで構成されるとすると、以下のようになる。
すなわち、BestKey(k,D)は、キーkにベストマッチするデータDにおけるキーk′を返す。Dv={(k′,v′):(k′,v′)∈D,v=v′}が、値vを有するペアだけを含むDのサブセットであるとする。そうすると、各(k,v)∈Dについて、Tは以下のようにトリプルを含む。
すなわち、訓練データにおける各キー/値のペア(k,v)について、訓練トリプルを形成し、正のペアは、(k,k′)で構成され、k′=BestKey(k,Dv\{(k,v)})は、値vを有する他のペアのDのサブセット内のkについてのBestMatchであり、負のペアは、(k,k″)で構成され、k″=BestKey(k,D\{(k,v)})は、Dにおける全ての他のペア内のkについてのBestMatchである。
この手続きは、DにおけるベストマッチキーをDv内のベストマッチキーと同じにしようとする。いくつかの実施形態において、この訓練トリプルを選択する方法は、全ての可能なトリプルを生成する方法と組み合わせられる。これを行うための1つの方法は、一部分(たとえば、訓練ミニバッチの50%)については一方の方法を使用し、一部分(たとえば、訓練ミニバッチの50%)については他方の方法を使用するというものである。この訓練トリプルを選択する方法は、図4に関して以下で説明するように、確率的モデルの訓練に特に適している。
対話システムは、正および負のキーペアを確立すると、損失関数Loss()を確立し得る。損失関数は、誤った推測にペナルティを科し、一般的には以下のように表すことができる。
式中、θは、確立されるマッチ関数パラメータのベクトルである。いくつかの実施形態において、θに文埋め込み関数パラメータが追加される。θに文埋め込み関数パラメータを追加することによって、それらをマッチ関数パラメータとともに最適化することもできる。いくつかの実施形態において、埋め込み関数のパラメータは、(たとえば、微調整/転移学習方法を使用して)大きな外部コーパスから学習された値で初期化される。
この文脈において好適な例示的な損失関数は、マージンベースの損失目標を含む。
式中、c′はマージン、すなわち正定数ハイパーパラメータである。別の例は、シグモイド関数σ()を使用するマージンベースの目標の平滑化された確率的バージョンである。
306において、対話システムは、損失関数を最小化して、マッチングに使用されるパラメータを識別し、その結果、異なる関連付けられた値を有する2つの異なるキーのマッチよりも、同一の関連付けられた値を有する2つの異なるキーのマッチに対してより高いマッチスコアが割り当てられる。
いくつかの実施形態において、対話システムは、損失関数を使用してパラメータθを最適化する。
対話システムは、θに対して損失関数を最小化し得る。これは、訓練手続きであり、目標は、訓練トリプルTにおける各トリプル(k,k′,k″)について、正のペア(k,k′)が負のペア(k,k″)よりも高いマッチスコアを有するようにパラメータθを調整することである。これは、以下を確実にすることと等価である。
代替的にまたはさらに、以下を確実にするように計算が実行され得る。
これは、正および負のペアのMatch()スコア間の「ギャップ」を確実にすることによってパラメータθをよりロバストにすることができる。これらの損失関数は、ミニバッチ確率的勾配降下法(SGD)などの方法を使用して最適化され得る。より複雑なMatch()関数では正則化技術(ドロップアウトなど)が有用であろう。
いくつかの実施形態において、パラメータを微調整するために複数の反復が使用され得る。マッチ関数における埋め込みは、複数の反復にわたって再計算され得る。たとえば、埋め込みを微調整するために、各訓練トリプル(k,k′,k″)における各キーについての埋め込みは、各反復において再計算され得る。場合によっては、たとえば10個または100個のミニバッチごとにそれらの埋め込みを更新する、そうでなければ全く更新しないことが十分であろう。
図2に関して上記したように、対話システムは、306において識別されたパラメータθを、値の識別に使用されるマッチ関数に組み込み得る。
図4は、特定のさらなる実施形態に係る、セットアップフェーズ中に実行される処理を示す簡略化されたフローチャート400である。図4に示される処理は、それぞれのシステムの1つまたは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)で実現されてもよく、ハードウェアで実現されてもよく、またはそれらの組み合わせで実現されてもよい。ソフトウェアは、非一時的な記憶媒体(たとえば、メモリデバイス)に格納され得る。図4に示されて以下で説明される方法は、例示的であって非限定的であるよう意図されている。図4は、特定のシーケンスまたは順序で行われるさまざまな処理ステップを示しているが、これは、限定的であるよう意図されるものではない。特定の代替的な実施形態では、これらのステップは、何らかの異なる順序で実行されてもよく、またはいくつかのステップは、並行して実行されてもよい。特定の実施形態において、図4に示される処理は、上記のように対話システムによって実行され得る。
図4は、(たとえば、上記の式2を使用した)確率的モデルに適しているであろう訓練方法を示す。図2に関して上記したように、対話システムは、202において入力された口頭発話を受信する前に、マッチ関数のパラメータのセットをもたらす訓練プロセスを実行し得る。いくつかの実施形態において、これは、サンプル発話および意図のペアのセットの尤度関数を最大化して、マッチ関数のパラメータを最適化することを含み、これは、図4に示される処理を使用して実行され得る。
402において、対話システムは、訓練データを取得する。図3のステップ302に関して上記したように、対話システムは、実質的に訓練データを取得し得る。
404において、対話システムは、正および負のキーペアに基づいて尤度関数を識別する。尤度関数は、キーのセットが正のキーペアに対応する見込みとともに増加する値を出力する関数である。具体例として、対数尤度への交差検証スタイルの一個抜き近似が使用され得て、これは、Dを、可能なキー/値のペアのセットとして、およびθについての訓練データとして使用する。以下の対数尤度近似は、マッチ関数が対称である、すなわちMatch(k,k′)=Match(k′,k)であると仮定する。尤度関数は、以下のように近似され得る。
対数尤度は、Dにおける全てのキー/値のペアにわたって合計する。値vがキーkに関連付けられる確率を計算する前に、当該キー/値のペア(k,v)はDから除去され得て、これは、kが値vを有するDにおける他のキー/値のペアにマッチする確率を推定するために行われる。
(指数関数で生じ得る)オーバーフローおよびアンダーフローを回避するために、対数尤度を計算する際に以下の式が使用され得る。
尤度関数の別の例は、以下の誤り駆動型学習近似である。
この近似は、Sにおける値のうちの最大値がSにおける全ての他の値の合計よりもはるかに大きい場合にかなり正確である。これが対数尤度におけるマッチ関数値に当てはまる場合、以下のように対数尤度を近似することができる。
誤り駆動型学習近似にはさらなる最適化機会がある。たとえば、Aの計算に関与する埋め込みは、不定期に(たとえば、10個のミニバッチごとに一度、または反復ごとに一度)更新され得て、これは、Aの計算を非常に高速にするはずである。実際の訓練更新は、Cの計算のみを必要とする。各訓練ペア(k,v)∈DとCの計算において識別された2つのデータペアとを比較することによって、Cを比較的簡単に計算することができる。
406において、対話システムは、尤度関数を最大化して、マッチ関数のパラメータθを最適化し、その結果、異なる関連付けられた値を有する2つの異なるキーのマッチよりも、同一の関連付けられた値を有する2つの異なるキーのマッチに対してより高いマッチスコアが割り当てられる。l(θ)は、確率的勾配降下法(SGD)などの技術を使用して最大化され得る。
図2に関して上記したように、対話システムは、406において識別されたパラメータを、値の識別に使用されるマッチ関数に組み込み得る。
本明細書に記載されている技術は、複数の利点を有する。キーkは、分類器のようにはMatch()関数に「組み込まれて」いない(その代わりに、パラメータとしてMatch()関数に提供される)ので、Match()関数は、Match()関数のパラメータθを推定するために使用される訓練データの中にキーkが登場しなくても、音声入力qがキーkにどれぐらいマッチするかを評価することができる。これは、パラメータθを(再)訓練することなくキー(例示的な文)および値(たとえば、意図)のセットDを変更することができることを意味する。さらに、訓練データは、非熟練者が生成するのが容易であり(すなわち、同じ回答を返すべきである複数の質問であり)、既存のデータセットの中に既に存在し得る。
これらの技術の有利な適用例の具体例として、チャットボットおよびデジタルアシスタント開発ツールを提供することができ、このツールでは、開発者は、(たとえば、クラウドサービスとして本明細書に記載されている値認識技術を使用して)セットDからペアを追加または除去し(新たな値を有するペアを追加する、または、1つまたは複数の値について全てのペアを除去することを含む)、次いで、新たな更新済みセットDを有するチャットボットまたはデジタルアシスタントをすぐにテストおよび/またはデプロイすることができる。システムが新たなパラメータθのセットを訓練するのを待つ必要がない。たとえば、チャットボットまたはデジタルアシスタント開発者は、ペア(「明日の天気はどうなりますか?」、FIND_WEATHER)をセットDに追加し得る。次いで、システムはすぐに、「明日の天気はどうなりますか?」という音声入力を値「FIND_WEATHER」に属しているとして認識するであろう。これに対して、従来の技術では、データセットが大きくなるにつれて頻繁な再訓練が必要である。必要な追加訓練の量を減らすことにより、値認識を実行することができる速度を大幅に上げることができる。さらに、本明細書に記載されているマッチングベースの技術を使用した値認識の精度は、以前のアプローチ(分類など)を使用した値認識の精度を上回ることができることをテストは証明した。
上記のインフラストラクチャは、さまざまな異なる環境(クラウド環境(プライベート、パブリックおよびハイブリッドクラウド環境を含むさまざまなタイプのクラウドであり得る)、オンプレミス環境、ハイブリッド環境などを含む)において実現されることができる。
図5は、一実施形態を実現するための分散型システム500の簡略図である。示されている実施形態では、分散型システム500は、1つまたは複数のクライアントコンピューティングデバイス502,504,506および508を含み、それらは、1つまたは複数の通信ネットワーク510を介してサーバ512に結合されている。クライアントコンピューティングデバイス502,504,506および508は、1つまたは複数のアプリケーションを実行するように構成され得る。
さまざまな実施形態において、サーバ512は、訓練を減らした状態で値認識を実行することを可能にする1つまたは複数のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。
特定の実施形態において、サーバ512は、非仮想環境および仮想環境を含み得る他のサービスまたはソフトウェアアプリケーションも提供し得る。いくつかの実施形態において、これらのサービスは、ウェブベースのサービスもしくはクラウドサービスとして(ソフトウェア・アズ・ア・サービス(SaaS)モデル下など)クライアントコンピューティングデバイス502,504,506および/または508のユーザに対して提供され得る。クライアントコンピューティングデバイス502,504,506および/または508を動作させるユーザは、次いで、1つまたは複数のクライアントアプリケーションを利用してサーバ512と対話して、これらのコンポーネントによって提供されるサービスを利用し得る。
図5に示される構成では、サーバ512は、サーバ512によって実行される機能を実現する1つまたは複数のコンポーネント518,520および522を含み得る。これらのコンポーネントは、1つまたは複数のプロセッサによって実行され得るソフトウェアコンポーネント、ハードウェアコンポーネント、またはそれらの組み合わせを含み得る。分散型システム500とは異なっていてもよいさまざまな異なるシステム構成が可能であるということが理解されるべきである。図5に示される実施形態は、したがって、実施形態のシステムを実現するための分散型システムの一例であり、限定的であるよう意図されるものではない。
ユーザは、本開示の教示に従って、クライアントコンピューティングデバイス502,504,506および/または508を使用して、受信された音声入力に基づいてより迅速かつ正確に値を求めることができる。クライアントデバイスは、クライアントデバイスのユーザがクライアントデバイスと対話することを可能にするインターフェイスを提供し得る。また、クライアントデバイスは、このインターフェイスを介して情報をユーザに出力し得る。図5は、クライアントコンピューティングデバイスを4つだけ示しているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。
クライアントデバイスは、さまざまなタイプのコンピューティングシステム(携帯型の手持ち式デバイス、汎用コンピュータ(パーソナルコンピュータおよびラップトップなど)、ワークステーションコンピュータ、ウェアラブルデバイス、ゲーミングシステム、シンクライアント、さまざまなメッセージングデバイス、センサまたは他の感知デバイスなど)を含み得る。これらのコンピューティングデバイスは、さまざまなタイプおよびバージョンのソフトウェアアプリケーションおよびオペレーティングシステム(たとえば、マイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)、UNIX(登録商標)またはUNIX系オペレーティングシステム、Linux(登録商標)またはLinux系オペレーティングシステム(グーグルクローム(商標)OSなど))を実行し得て、これらのソフトウェアアプリケーションおよびオペレーティングシステムは、さまざまなモバイルオペレーティングシステム(たとえば、マイクロソフトウィンドウズモバイル(登録商標)、iOS(登録商標)、ウィンドウズフォン(登録商標)、アンドロイド(登録商標)、ブラックベリー(登録商標)、パームOS(登録商標))を含む。携帯型の手持ち式デバイスは、携帯電話、スマートフォン(たとえば、iPhone(登録商標))、タブレット(たとえば、iPad(登録商標))、パーソナルデジタルアシスタント(PDA)などを含み得る。ウェアラブルデバイスは、グーグルグラス(登録商標)頭部装着型ディスプレイおよび他のデバイスを含み得る。ゲーミングシステムは、さまざまな手持ち式ゲーミングデバイス、インターネット対応ゲーミングデバイス(たとえば、キネクト(登録商標)ジェスチャ入力デバイスを有していたり有していなかったりするマイクロソフトXbox(登録商標)ゲーム機、ソニープレイステーション(登録商標)システム、任天堂(登録商標)によって提供されるさまざまなゲーミングシステムなど)などを含み得る。クライアントデバイスは、さまざまな異なるアプリケーション(さまざまなインターネット関連アプリ、通信アプリケーション(たとえば、電子メールアプリケーション、ショートメッセージサービス(SMS)アプリケーション)など)を実行することが可能であり得て、さまざまな通信プロトコルを使用し得る。
ネットワーク510は、さまざまな入手可能なプロトコルのうちのいずれかを使用したデータ通信をサポートすることができる、当業者が精通している任意のタイプのネットワークであり得て、これらのプロトコルは、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、アップルトーク(登録商標)などを含むが、それらに限定されるものではない。単に一例として、ネットワーク510は、ローカルエリアネットワーク(LAN)、イーサネット(登録商標)に基づくネットワーク、トークンリング、ワイドエリアネットワーク(WAN)、インターネット、仮想ネットワーク、仮想プライベートネットワーク(VPN)、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、ワイヤレスネットワーク(たとえば、米国電気電子学会(IEEE)1002.11のプロトコル一式、ブルートゥース(登録商標)および/もしくはその他のワイヤレスプロトコルのうちのいずれかの下で動作するネットワーク)、ならびに/または、これらのいずれかの組み合わせおよび/もしくは他のネットワークであり得る。
サーバ512は、1つもしくは複数の汎用コンピュータ、専用のサーバコンピュータ(一例として、PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む)、サーバファーム、サーバクラスタ、または、その他の適切な構成および/もしくは組み合わせで構成され得る。サーバ512は、仮想オペレーティングシステムを実行する1つもしくは複数の仮想マシン、または、仮想化を含む他のコンピューティングアーキテクチャ(サーバのために仮想ストレージデバイスを維持するように仮想化され得る論理ストレージデバイスの1つもしくは複数のフレキシブルなプールなど)を含み得る。さまざまな実施形態において、サーバ512は、前述の開示に記載される機能を提供する1つまたは複数のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。
サーバ512におけるコンピューティングシステムは、上記のもののうちのいずれかを含む1つまたは複数のオペレーティングシステム、および、任意の市場で入手可能なサーバオペレーティングシステムを実行し得る。サーバ512は、さまざまなさらに他のサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかも実行し得て、これらのアプリケーションは、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(コモンゲートウェイインターフェイス)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含む。例示的なデータベースサーバは、オラクル社(登録商標)、マイクロソフト社(登録商標)、サイベース社(登録商標)、IBM社(登録商標)(インターナショナルビジネスマシンズ)などから市場で入手可能なものを含むが、それらに限定されるものではない。
いくつかの実現例において、サーバ512は、クライアントコンピューティングデバイス502,504,506および508のユーザから受信されるデータフィードおよび/またはイベント更新情報を解析および整理統合するための1つまたは複数のアプリケーションを含み得る。一例として、データフィードおよび/またはイベント更新情報は、1つまたは複数の第三者情報源および連続データストリームから受信される、ツイッター(登録商標)フィード、フェイスブック(登録商標)更新情報またはリアルタイムの更新情報を含み得るが、それらに限定されるものではなく、これらは、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などに関連するリアルタイムのイベントを含み得る。サーバ512は、データフィードおよび/またはリアルタイムのイベントをクライアントコンピューティングデバイス502,504,506および508の1つまたは複数のディスプレイデバイスを介して表示するための1つまたは複数のアプリケーションも含み得る。
分散型システム500は、1つまたは複数のデータリポジトリ514,516も含み得る。特定の実施形態において、これらのデータリポジトリは、データおよび他の情報を格納するのに使用され得る。たとえば、データリポジトリ514,516のうちの1つまたは複数は、情報(音声入力タイプおよび値に対応するキー/値のペアなど)を格納するのに使用され得る。データリポジトリ514,516は、さまざまな場所にあり得る。たとえば、サーバ512によって使用されるデータリポジトリは、サーバ512に対してローカルであってもよく、またはサーバ512から遠く離れていてネットワークベースのまたは専用の接続を介してサーバ512と通信してもよい。データリポジトリ514,516は、異なるタイプであり得る。特定の実施形態において、サーバ512によって使用されるデータリポジトリは、データベース(たとえば、リレーショナルデータベース(オラクル社(登録商標)および他のベンダによって提供されるデータベースなど))であり得る。これらのデータベースのうちの1つまたは複数は、SQLでフォーマット済みのコマンドに応答したデータベースとの間でのデータの格納、更新および検索を可能にするように適合され得る。
特定の実施形態において、データリポジトリ514,516のうちの1つまたは複数は、アプリケーションによって、アプリケーションデータを格納するのにも使用され得る。アプリケーションによって使用されるデータリポジトリは、異なるタイプ(たとえば、キー/値格納リポジトリ、オブジェクト格納リポジトリ、またはファイルシステムによってサポートされる一般的なストレージリポジトリなど)であり得る。
特定の実施形態において、本開示に記載されている値認識関連の機能は、クラウド環境を介してサービスとして提供され得る。図6は、特定の実施形態に係る、さまざまな値認識関連のサービスがクラウドサービスとして提供され得るクラウドベースのシステム環境の簡略化されたブロック図である。図6に示される実施形態において、クラウドインフラストラクチャシステム602は、1つまたは複数のクライアントコンピューティングデバイス604,606および608を使用してユーザによって要求され得る1つまたは複数のクラウドサービスを提供し得る。クラウドインフラストラクチャシステム602は、サーバ612について上記したものを含み得る1つまたは複数のコンピュータおよび/またはサーバを備え得る。クラウドインフラストラクチャシステム602におけるコンピュータは、汎用コンピュータ、専用のサーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な構成および/もしくは組み合わせとして編成され得る。
ネットワーク610は、クライアント604,606および608とクラウドインフラストラクチャシステム602との間のデータの伝達およびやりとりを容易にし得る。ネットワーク610は、1つまたは複数のネットワークを含み得る。これらのネットワークは、同一のタイプであってもよく、または異なるタイプであってもよい。ネットワーク610は、通信を容易にするために、1つまたは複数の通信プロトコル(ワイヤードおよび/またはワイヤレスプロトコルを含む)をサポートし得る。
図6に示される実施形態は、クラウドインフラストラクチャシステムの一例に過ぎず、限定的であるよう意図されるものではない。いくつかの他の実施形態において、クラウドインフラストラクチャシステム602は、図6に示されるコンポーネントよりも多くのコンポーネントまたは少ないコンポーネントを有してもよく、2つまたはそれ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有してもよい、ということが理解されるべきである。たとえば、図6は3つのクライアントコンピューティングデバイスを示しているが、代替的な実施形態では任意の数のクライアントコンピューティングデバイスがサポートされてもよい。
クラウドサービスという語は、一般に、サービスプロバイダのシステム(たとえば、クラウドインフラストラクチャシステム602)によって通信ネットワーク(インターネットなど)を介してオンデマンドでユーザが入手できるようにされるサービスを指すのに使用される。一般に、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なっている。クラウドサービスプロバイダのシステムは、クラウドサービスプロバイダによって管理される。したがって、顧客は、クラウドサービスプロバイダによって提供されるクラウドサービスのために別のライセンス、サポート、またはハードウェアおよびソフトウェアリソースを購入する必要なく、これらのサービスを利用することができる。たとえば、クラウドサービスプロバイダのシステムは、アプリケーションをホストし得て、ユーザは、このアプリケーションを実行するためのインフラストラクチャリソースを購入する必要なく、インターネットを介してオンデマンドでこのアプリケーションをオーダーして使用することができる。クラウドサービスは、アプリケーション、リソースおよびサービスへの簡単でスケーラブルなアクセスを提供するように設計される。いくつかのプロバイダは、クラウドサービスを提供する。たとえば、いくつかのクラウドサービス(ミドルウェアサービス、データベースサービス、Javaクラウドサービスなど)は、カリフォルニア州レッドウッドショアーズのオラクル社(登録商標)によって提供される。
特定の実施形態において、クラウドインフラストラクチャシステム602は、ハイブリッドサービスモデルを含むさまざまなモデル(ソフトウェア・アズ・ア・サービス(SaaS)モデル、プラットフォーム・アズ・ア・サービス(PaaS)モデル、インフラストラクチャ・アズ・ア・サービス(IaaS)モデルなど)を使用して1つまたは複数のクラウドサービスを提供し得る。クラウドインフラストラクチャシステム602は、さまざまなクラウドサービスの提供を可能にする一連のアプリケーション、ミドルウェア、データベースおよび他のリソースを含み得る。
SaaSモデルは、基本的なアプリケーションのためのハードウェアまたはソフトウェアを顧客が購入する必要なく、アプリケーションまたはソフトウェアをインターネットのような通信ネットワークを介してサービスとして顧客に提供することを可能にする。たとえば、SaaSモデルは、クラウドインフラストラクチャシステム602によってホストされるオンデマンドアプリケーションへのアクセスを顧客に提供するのに使用され得る。オラクル社(登録商標)によって提供されるSaaSサービスの例としては、人材/資本管理、顧客関係管理(CRM)、企業リソース計画(ERP)、サプライチェーン管理(SCM)、企業業績管理(EPM)、アナリティクスサービス、ソーシャルアプリケーションなどのためのさまざまなサービスが挙げられるが、それらに限定されるものではない。
IaaSモデルは、一般に、インフラストラクチャリソース(たとえば、サーバ、ストレージ、ハードウェアおよびネットワーキングリソース)をクラウドサービスとして顧客に提供して、弾力的な計算およびストレージ機能を提供するのに使用される。さまざまなIaaSサービスは、オラクル社(登録商標)によって提供される。
PaaSモデルは、一般に、顧客がプラットフォームおよび環境リソースを調達、構築または保守整備する必要なく、顧客がアプリケーションおよびサービスを開発、実行および管理することを可能にするこのようなリソースをサービスとして提供するのに使用される。オラクル社(登録商標)によって提供されるPaaSサービスの例としては、オラクルJavaクラウドサービス(JCS)、オラクルデータベースクラウドサービス(DBCS)、データ管理クラウドサービス、さまざまなアプリケーション開発ソリューションサービスなどが挙げられるが、それらに限定されるものではない。
クラウドサービスは、一般に、オンデマンドセルフサービスベースの、申し込みベースの、弾性的にスケーラブルな、信頼性のある、高可用性の、セキュリティ保護された態様で提供される。たとえば、顧客は、クラウドインフラストラクチャシステム602によって提供される1つまたは複数のサービスを申し込みオーダーを介してオーダーし得る。次いで、クラウドインフラストラクチャシステム602は、顧客の申し込みオーダーで要求されたサービスを提供するように処理を実行する。たとえば、顧客は、顧客によって受信された音声入力タイプに基づいてクラウド上で値を求めるためのモデルを訓練するのにシステムが使用するキー/値のペアのセットを供給し得る。クラウドインフラストラクチャシステム602は、1つまたは複数のクラウドサービスを提供するように構成され得る。
クラウドインフラストラクチャシステム602は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。パブリッククラウドモデルでは、クラウドインフラストラクチャシステム602は、第三者クラウドサービスプロバイダによって所有され得て、クラウドサービスは、任意の一般大衆顧客に提供され、顧客は、個人または企業であり得る。特定の他の実施形態では、プライベートクラウドモデルの下で、クラウドインフラストラクチャシステム602は、組織内(たとえば、企業組織内)で運営され得て、当該組織内の顧客にサービスが提供される。たとえば、顧客は、企業のさまざまな部署(人事部、給与支払部など)または当該企業内の個人であり得る。特定の他の実施形態では、コミュニティクラウドモデルの下で、クラウドインフラストラクチャシステム602および提供されるサービスは、関連するコミュニティ内のいくつかの組織によって共有され得る。さまざまな他のモデル(上記のモデルのハイブリッドなど)も使用され得る。
クライアントコンピューティングデバイス604,606および608は、異なるタイプ(図6に示されるデバイス602,604,606および608など)であり得て、1つまたは複数のクライアントアプリケーションを動作させることが可能であり得る。ユーザは、クライアントデバイスを使用してクラウドインフラストラクチャシステム602と対話し得る(クラウドインフラストラクチャシステム602によって提供されるサービスを要求するなど)。たとえば、ユーザは、クライアントデバイスを使用して、本開示に記載されている値認識関連のサービスを要求し得る。
いくつかの実施形態において、値認識関連のサービスを提供するためにクラウドインフラストラクチャシステム602によって実行される処理は、ビッグデータ解析を含み得る。この解析は、大きなデータセットを使用、解析および操作して、データ内のさまざまなトレンド、挙動、関係などを検出して視覚化することを含み得る。この解析は、場合によってはデータを並行して処理したりデータを使用してシミュレーションを行ったりする1つまたは複数のプロセッサによって実行され得る。たとえば、ビッグデータ解析は、マッチ関数のパラメータを識別するために訓練目的でクラウドインフラストラクチャシステム602によって実行され得る。この解析に使用されるデータは、構造化されたデータ(たとえば、データベースに格納されたデータまたは構造化されたモデルに従って構造化されたデータ)および/または構造化されていないデータ(たとえば、データブロブ(バイナリ・ラージ・オブジェクト))を含み得る。
図6の実施形態に示されるように、クラウドインフラストラクチャシステム602は、クラウドインフラストラクチャシステム602によって提供されるさまざまなクラウドサービスの提供を容易にするために利用されるインフラストラクチャリソース630を含み得る。インフラストラクチャリソース630は、たとえば、処理リソース、ストレージまたはメモリリソース、ネットワーキングリソースなどを含み得る。
特定の実施形態において、クラウドインフラストラクチャシステム602によってさまざまな顧客に提供されるさまざまなクラウドサービスをサポートするためのこれらのリソースの効率的なプロビジョニングを容易にするために、リソースは、リソースまたはリソースモジュールのセット(「ポッド」とも称される)に束ねられ得る。各リソースモジュールまたはポッドは、1つまたは複数のタイプのリソースの予め統合されて最適化された組み合わせを備え得る。特定の実施形態において、さまざまなタイプのクラウドサービスのためにさまざまなポッドが予めプロビジョニングされ得る。たとえば、ポッドの第1のセットは、データベースサービスのためにプロビジョニングされ得て、ポッドの第1のセットの中のポッドとは異なるリソースの組み合わせを含み得るポッドの第2のセットは、Javaサービスのためにプロビジョニングされ得る、などである。いくつかのサービスでは、サービスのプロビジョニングに割り当てられるリソースは、サービス間で共有され得る。
クラウドインフラストラクチャシステム602自体は、クラウドインフラストラクチャシステム602のさまざまなコンポーネントによって共有されるサービス632を内部で使用し得て、これにより、クラウドインフラストラクチャシステム602によるサービスのプロビジョニングが容易になる。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性、バックアップおよび回復サービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを含み得るが、それらに限定されるものではない。
クラウドインフラストラクチャシステム602は、複数のサブシステムを備え得る。これらのサブシステムは、ソフトウェアで実現されてもよく、またはハードウェアで実現されてもよく、またはそれらの組み合わせで実現されてもよい。図6に示されるように、サブシステムは、クラウドインフラストラクチャシステム602のユーザまたは顧客がクラウドインフラストラクチャシステム602と対話することを可能にするユーザインターフェイスサブシステム612を含み得る。ユーザインターフェイスサブシステム612は、さまざまな異なるインターフェイス(ウェブインターフェイス614、オンラインストアインターフェイス616(クラウドインフラストラクチャシステム602によって提供されたクラウドサービスが宣伝されて消費者によって購入可能である)および他のインターフェイス618など)を含み得る。たとえば、顧客は、クライアントデバイスを使用して、クラウドインフラストラクチャシステム602によって提供された1つまたは複数のサービスをインターフェイス614,616および618のうちの1つまたは複数を使用して要求し得る(サービス要求634)。たとえば、顧客は、オンラインストアにアクセスして、クラウドインフラストラクチャシステム602によって提供されたクラウドサービスをブラウズして、顧客が申し込みたい、クラウドインフラストラクチャシステム602によって提供された1つまたは複数のサービスの申し込みオーダーを行い得る。このサービス要求は、顧客および顧客が申し込みたい1つまたは複数のサービスを識別する情報を含み得る。たとえば、顧客は、クラウドインフラストラクチャシステム602によって提供された値認識関連のサービスの申し込みオーダーを行い得る。オーダーの一部として、顧客は、履歴音声入力タイプおよび値ならびに/または現在の音声入力タイプを識別する情報を提供し得る。
特定の実施形態(図6に示される実施形態など)において、クラウドインフラストラクチャシステム602は、新たなオーダーを処理するように構成されたオーダー管理サブシステム(OMS)620を備え得る。この処理の一部として、OMS620は、まだなされていなければ顧客のアカウントを作成して、要求されたサービスを顧客に提供するために請求書を顧客に発行するのに使用される請求書発行および/または課金情報を顧客から受信して、顧客情報を検証して、検証時に顧客のオーダーを確定して、さまざまなワークフローをオーケストレートしてプロビジョニングに備えてオーダーを準備するように構成され得る。
適切な形で認証されると、OMS620は、次に、オーダープロビジョニングサブシステム(OPS)624を呼び出し得る。オーダープロビジョニングサブシステム(OPS)624は、オーダーのためのリソース(処理、メモリおよびネットワーキングリソースを含む)をプロビジョニングするように構成される。プロビジョニングは、オーダーのためのリソースを割り当てて、顧客オーダーによって要求されたサービスを容易にするようにこれらのリソースを構成することを含み得る。オーダーのためのリソースをプロビジョニングする態様およびプロビジョニングされたリソースのタイプは、顧客によってオーダーされたクラウドサービスのタイプに依存し得る。たとえば、1つのワークフローに従って、OPS624は、特定のクラウドサービスが要求されていると判断して、当該特定のクラウドサービスについて予め構成されていたであろうポッドの数を識別するように構成され得る。オーダーに割り当てられるポッドの数は、要求されたサービスのサイズ/量/レベル/範囲に依存し得る。たとえば、割り当てられるポッドの数は、サービスによってサポートされるユーザの数、サービスが要求されている期間などに基づいて決定され得る。次いで、割り当てられたポッドは、要求されたサービスを提供するように特定の要求発行顧客に合わせてカスタマイズされ得る。
クラウドインフラストラクチャシステム602は、応答または通知644を要求発行顧客に送信して、要求されたサービスがいつ使用できる状態になるかを示し得る。いくつかの例において、要求されたサービスの利益を顧客が使用および利用し始めることを可能にする情報(たとえば、リンク)が顧客に送信され得る。
クラウドインフラストラクチャシステム602は、サービスを複数の顧客に提供し得る。各顧客について、クラウドインフラストラクチャシステム602は、顧客から受信された1つまたは複数の申し込みオーダーに関連する情報を管理して、これらのオーダーに関連する顧客データを維持して、要求されたサービスを顧客に提供することを担当する。クラウドインフラストラクチャシステム602は、申し込みされたサービスの顧客の使用に関する使用量統計も収集し得る。たとえば、使用されたストレージの量、転送されたデータの量、ユーザの数、ならびにシステムアップ時間およびシステムダウン時間などについて統計が収集され得る。この使用量情報は、顧客に請求書を発行するのに使用され得る。請求書発行は、たとえば月1回のサイクルで行われ得る。
クラウドインフラストラクチャシステム602は、サービスを複数の顧客に並行して提供し得る。クラウドインフラストラクチャシステム602は、これらの顧客の情報(場合によっては、専有情報を含む)を格納し得る。特定の実施形態において、クラウドインフラストラクチャシステム602は、顧客情報を管理して、ある顧客に関連する情報が別の顧客によってアクセス不可能であるように、管理された情報を分離するように構成されたアイデンティティ管理サブシステム(IMS)628を備える。IMS628は、さまざまなセキュリティ関連サービス(アイデンティティサービス(情報アクセス管理、認証および認可サービス、顧客のアイデンティティおよび役割および関連する機能を管理するためのサービスなど))を提供するように構成され得る。
図7は、特定の実施形態を実現するために使用され得る例示的なコンピュータシステム700を示す図である。たとえば、いくつかの実施形態において、コンピュータシステム700は、対話システム、ならびに上記のさまざまなサーバおよびコンピュータシステムのうちのいずれかを実現するために使用され得る。図7に示されるように、コンピュータシステム700は、処理サブシステム704を含むさまざまなサブシステムを含み、処理サブシステム704は、バスサブシステム702を介していくつかの他のサブシステムと通信する。これらの他のサブシステムは、処理加速ユニット706と、I/Oサブシステム708と、ストレージサブシステム718と、通信サブシステム724とを含み得る。ストレージサブシステム718は、記憶媒体722とシステムメモリ710とを含む非一時的なコンピュータ読取可能記憶媒体を含み得る。
バスサブシステム702は、コンピュータシステム700のさまざまなコンポーネントおよびサブシステムに意図した通りに互いに通信させるための機構を提供する。バスサブシステム702は、単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は、複数のバスを利用してもよい。バスサブシステム702は、いくつかのタイプのバス構造のうちのいずれかであり得て、これらのバス構造は、さまざまなバスアーキテクチャのうちのいずれかを用いるメモリバスまたはメモリコントローラ、周辺バス、ローカルバスなどを含む。たとえば、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカルバス、およびIEEE P1386.1規格に従って製造される中二階バスとして実現され得る周辺コンポーネントインターコネクト(PCI)バスなどを含み得る。
処理サブシステム704は、コンピュータシステム700の動作を制御し、1つまたは複数のプロセッサ、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)を備え得る。これらのプロセッサは、シングルコアプロセッサまたはマルチコアプロセッサを含み得る。コンピュータシステム700の処理リソースは、1つまたは複数の処理ユニット732,734などに編成されることができる。処理ユニットは、1つもしくは複数のプロセッサ、同一のもしくは異なるプロセッサからの1つもしくは複数のコア、コアとプロセッサとの組み合わせ、またはコアとプロセッサとの他の組み合わせを含み得る。いくつかの実施形態において、処理サブシステム704は、1つまたは複数の特別目的コプロセッサ(グラフィックスプロセッサ、デジタル信号プロセッサ(DSP)など)を含み得る。いくつかの実施形態において、処理サブシステム704の処理ユニットの一部または全ては、カスタマイズされた回路(特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)など)を使用して実現可能である。
いくつかの実施形態において、処理サブシステム704内の処理ユニットは、システムメモリ710内またはコンピュータ読取可能記憶媒体722上に格納された命令を実行することができる。さまざまな実施形態において、処理ユニットは、さまざまなプログラムまたはコード命令を実行することができ、複数の同時実行プログラムまたはプロセスを維持することができる。どんなときでも、実行対象のプログラムコードの一部または全ては、システムメモリ710内および/またはコンピュータ読取可能記憶媒体722上(場合によっては、1つまたは複数のストレージデバイス上を含む)にあることができる。好適なプログラミングを通じて、処理サブシステム704は、上記のさまざまな機能を提供することができる。コンピュータシステム700が1つまたは複数の仮想マシンを実行している例では、1つまたは複数の処理ユニットは、各仮想マシンに割り当てられ得る。
特定の実施形態において、処理加速ユニット706は、コンピュータシステム700によって実行される処理全体を加速させるために、カスタマイズされた処理を実行するように、または、処理サブシステム704によって実行される処理の一部をオフロードするように任意に設けられ得る。
I/Oサブシステム708は、情報をコンピュータシステム700に入力する、および/または、情報をコンピュータシステム700からもしくはコンピュータシステム700を介して出力するためのデバイスおよび機構を含み得る。一般に、入力デバイスという語の使用は、情報をコンピュータシステム700に入力するための全ての可能なタイプのデバイスおよび機構を含むよう意図されている。ユーザインターフェイス入力デバイスは、たとえば、キーボード、ポインティングデバイス(マウスまたはトラックボールなど)、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを伴うオーディオ入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含み得る。ユーザインターフェイス入力デバイスは、ユーザが入力デバイスを制御して入力デバイスと対話することを可能にするモーション感知および/またはジェスチャ認識デバイス(マイクロソフトキネクト(登録商標)モーションセンサなど)、マイクロソフトXbox(登録商標)360ゲームコントローラ、ジェスチャおよび口頭のコマンドを使用して入力を受信するためのインターフェイスを提供するデバイスも含み得る。ユーザインターフェイス入力デバイスは、ユーザから目の動き(たとえば、写真を撮っている間および/またはメニュー選択を行なっている間の「まばたき」)を検出し、アイジェスチャを入力デバイス(たとえば、グーグルグラス(登録商標))への入力として変換するアイジェスチャ認識デバイス(グーグルグラス(登録商標)瞬き検出器など)も含み得る。さらに、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システム(たとえば、Siri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスを含み得る。
ユーザインターフェイス入力デバイスの他の例としては、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにオーディオ/ビジュアルデバイス(スピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなど)が挙げられるが、それらに限定されるものではない。さらに、ユーザインターフェイス入力デバイスは、たとえば、医療用画像化入力デバイス(コンピュータ断層撮影、磁気共鳴撮像、ポジションエミッショントモグラフィーおよび医療用超音波検査デバイスなど)を含み得る。ユーザインターフェイス入力デバイスは、たとえば、オーディオ入力デバイス(MIDIキーボード、デジタル楽器など)も含み得る。
一般に、「出力デバイス」という語の使用は、情報をコンピュータシステム700からユーザまたは他のコンピュータに出力するための全ての可能なタイプのデバイスおよび機構を含むよう意図されている。ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または非ビジュアルディスプレイ(オーディオ出力デバイスなど)を含み得る。ディスプレイサブシステムは、陰極線管(CRT)、フラットパネルデバイス(液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するものなど)、投影デバイス、タッチスクリーンなどであり得る。たとえば、ユーザインターフェイス出力デバイスは、テキスト、グラフィックスおよび音声/映像情報を視覚的に伝えるさまざまなディスプレイデバイス(モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなど)を含み得るが、それらに限定されるものではない。
ストレージサブシステム718は、コンピュータシステム700によって使用される情報およびデータを格納するためのリポジトリまたはデータストアを提供する。ストレージサブシステム718は、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形の非一時的なコンピュータ読取可能記憶媒体を提供する。ストレージサブシステム718は、処理サブシステム704によって実行されると上記の機能を提供するソフトウェア(たとえば、プログラム、コードモジュール、命令)を格納し得る。このソフトウェアは、処理サブシステム704の1つまたは複数の処理ユニットによって実行され得る。ストレージサブシステム718は、本開示の教示に従って使用されるデータを格納するためのリポジトリも提供し得る。
ストレージサブシステム718は、揮発性および不揮発性メモリデバイスを含む1つまたは複数の非一時的なメモリデバイスを含み得る。図7に示されるように、ストレージサブシステム718は、システムメモリ710と、コンピュータ読取可能記憶媒体722とを含む。システムメモリ710は、いくつかのメモリを含み得て、これらのメモリは、プログラム実行中に命令およびデータを格納するための揮発性メインランダムアクセスメモリ(RAM)、および、固定された命令が格納される不揮発性リードオンリメモリ(ROM)またはフラッシュメモリを含む。いくつかの実現例において、起動中などにコンピュータシステム700内の要素間で情報を転送するのを手助けする基本的なルーチンを含むベーシックインプット/アウトプットシステム(BIOS)は、一般に、ROMに格納され得る。RAMは、一般に、処理サブシステム704によって現在動作および実行されているデータおよび/またはプログラムモジュールを含む。いくつかの実現例において、システムメモリ710は、複数の異なるタイプのメモリ(スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)など)を含み得る。
一例として、図7に示されるように、システムメモリ710は、実行中のアプリケーションプログラム712(ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などのさまざまなアプリケーションを含み得る)、プログラムデータ714およびオペレーティングシステム716をロードし得るが、それらに限定されるものではない。一例として、オペレーティングシステム716は、さまざまなバージョンのマイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)および/もしくはLinuxオペレーティングシステム、さまざまな市場で入手可能なUNIX(登録商標)もしくはUNIX系オペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、グーグルクローム(登録商標)OSなどを含むが、それらに限定されるものではない)、ならびに/または、モバイルオペレーティングシステム(iOS、ウィンドウズ(登録商標)フォン、アンドロイド(登録商標)OS、ブラックベリー(登録商標)OS、パーム(登録商標)OSオペレーティングシステムなど)を含み得る。
コンピュータ読取可能記憶媒体722は、いくつかの実施形態の機能を提供するプログラミングおよびデータ構造を格納し得る。コンピュータ読取可能媒体722は、コンピュータ読取可能な命令、データ構造、プログラムモジュールおよび他のデータをコンピュータシステム700のために格納し得る。処理サブシステム704によって実行されると上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム718に格納され得る。一例として、コンピュータ読取可能記憶媒体722は、不揮発性メモリ(ハードディスクドライブ、磁気ディスクドライブ、光ディスクドライブ(CD ROM、DVD、ブルーレイ(登録商標)ディスクなど)、または他の光学式媒体など)を含み得る。コンピュータ読取可能記憶媒体722は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含み得るが、それらに限定されるものではない。コンピュータ読取可能記憶媒体722は、不揮発性メモリに基づくソリッドステートドライブ(SSD)(フラッシュメモリベースのSSD、企業フラッシュドライブ、ソリッドステートROMなど)、揮発性メモリに基づくSSD(ソリッドステートRAM、ダイナミックRAM、スタティックRAMなど)、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMベースのSSDとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDも含み得る。
特定の実施形態において、ストレージサブシステム718は、コンピュータ読取可能記憶媒体722にさらに接続可能なコンピュータ読取可能記憶媒体リーダ720も含み得る。リーダ720は、メモリデバイス(ディスク、フラッシュドライブなど)からデータを受信して、読み取るように構成され得る。
さらに、いくつかの実施形態の機能を提供するプログラミングおよび/またはデータ構造は、1つまたは複数のネットワークを介してコンピュータ(たとえば、コンピュータシステム700)にダウンロードすることによっても提供されることができる。
特定の実施形態において、コンピュータシステム700は、仮想化技術(処理およびメモリリソースの仮想化を含むが、それに限定されるものではない)をサポートし得る。たとえば、コンピュータシステム700は、1つまたは複数の仮想マシンを実行するためのサポートを提供し得る。特定の実施形態において、コンピュータシステム700は、仮想マシンの構成および管理を容易にするプログラム(ハイパーバイザなど)を実行し得る。各仮想マシンは、メモリ、計算(たとえば、プロセッサ、コア)、I/Oおよびネットワーキングリソースを割り当てられ得る。各仮想マシンは、一般に、他の仮想マシンから独立して動作する。仮想マシンは、一般に、自身のオペレーティングシステムを実行し、このオペレーティングシステムは、コンピュータシステム700によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同一であってもよく、または異なっていてもよい。したがって、場合によっては、複数のオペレーティングシステムがコンピュータシステム700によって同時に実行され得る。
通信サブシステム724は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム724は、他のシステムとコンピュータシステム700との間のデータの送受のためのインターフェイスとしての役割を果たす。たとえば、通信サブシステム724は、コンピュータシステム700が、クライアントデバイスとの間での情報の送受のための、インターネットを介した1つまたは複数のクライアントデバイスとの通信チャネルを確立することを可能にし得る。たとえば、通信サブシステムは、クライアントデバイスから音声入力を受信して、それに応答して値をクライアントデバイスに送信するのに使用され得る。
通信サブシステム724は、ワイヤードおよび/またはワイヤレス通信プロトコルを両方ともサポートし得る。たとえば、特定の実施形態において、通信サブシステム724は、(たとえば、セルラー電話技術、先進データネットワーク技術(3G、4GもしくはEDGE(グローバル進化のための拡張版データ通信速度)など)、WiFi(IEEE802.XXファミリー規格)、または他のモバイル通信技術、またはそれらのいずれかの組み合わせを使用して)ワイヤレス音声および/またはデータネットワークにアクセスするための無線周波数(RF)送受信機コンポーネント、グローバルポジショニングシステム(GPS)受信機コンポーネント、ならびに/または、他のコンポーネントを含み得る。いくつかの実施形態において、通信サブシステム724は、ワイヤレスインターフェイスに加えて、またはその代わりに、ワイヤードネットワーク接続(たとえば、イーサネット)を提供することができる。
通信サブシステム724は、データをさまざまな形式で送受信することができる。たとえば、いくつかの実施形態において、他の形式に加えて、通信サブシステム724は、構造化されたおよび/または構造化されていないデータフィード726、イベントストリーム728、イベント更新情報730などの形式で入力通信を受信し得る。たとえば、通信サブシステム724は、ソーシャルメディアネットワークのユーザからリアルタイムでデータフィード726および/または他の通信サービス(ツイッター(登録商標)フィード、フェイスブック(登録商標)更新情報、ウェブフィード(リッチ・サイト・サマリ(RSS)フィードなど)、および/または、1つもしくは複数の第三者情報源からのリアルタイム更新情報など)を受信(または、送信)するように構成され得る。
特定の実施形態において、通信サブシステム724は、連続データストリームの形式でデータを受信するように構成され得て、当該連続データストリームは、明確な終端を持たない、本来は連続的または無限であり得るリアルタイムイベントのイベントストリーム728および/またはイベント更新情報730を含み得る。連続データを生成するアプリケーションの例としては、たとえば、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などを挙げることができる。
また、通信サブシステム724は、データをコンピュータシステム700から他のコンピュータシステムまたはネットワークに伝えるように構成され得る。このデータは、コンピュータシステム700に結合された1つまたは複数のストリーミングデータソースコンピュータと通信し得る1つまたは複数のデータベースに、さまざまな異なる形式(構造化されたおよび/または構造化されていないデータフィード726、イベントストリーム728、イベント更新情報730など)で伝えられ得る。
コンピュータシステム700は、さまざまなタイプ(手持ち式の携帯型デバイス(たとえば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえば、グーグルグラス(登録商標)頭部装着型ディスプレイ)、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含む)のもののうちの1つであり得る。常に変化するコンピュータおよびネットワークの性質のために、図7に示されるコンピュータシステム700の記載は、具体例として意図されているに過ぎない。図7に示されるシステムよりも多くのコンポーネントまたは少ないコンポーネントを有する多くの他の構成が可能である。本明細書における開示および教示に基づいて、当業者は、さまざまな実施形態を実現するための他の態様および/または方法を理解するであろう。
特定の実施形態について説明してきたが、さまざまな変形例、変更例、代替的な構成および等価物が可能である。実施形態は、特定の具体的なデータ処理環境内での動作に限定されるものではなく、複数のデータ処理環境内で自由に動作できる。さらに、特定の一連のトランザクションおよびステップを使用して特定の実施形態について説明してきたが、これは限定的であるよう意図されるものではないということが当業者に明らかであるべきである。いくつかのフローチャートは、動作をシーケンシャルなプロセスとして説明しているが、これらの動作の多くは、並列にまたは同時に実行されてもよい。また、動作の順序は、並べ替えられてもよい。プロセスは、図面に含まれていない追加のステップを有してもよい。上記の実施形態のさまざまな特徴および局面は、個々に使用されてもよく、または一緒に使用されてもよい。
さらに、ハードウェアとソフトウェアとの特定の組み合わせを使用して特定の実施形態について説明してきたが、ハードウェアとソフトウェアとの他の組み合わせも可能であるということが認識されるべきである。特定の実施形態は、ハードウェアのみで実現されてもよく、ソフトウェアのみで実現されてもよく、またはそれらの組み合わせを使用して実現されてもよい。本明細書に記載されているさまざまなプロセスは、同一のプロセッサ上で実現されてもよく、または任意の組み合わせの異なるプロセッサ上で実現されてもよい。
デバイス、システム、コンポーネントまたはモジュールは、特定の動作または機能を実行するように構成されるものとして説明されているが、このような構成は、たとえば、動作を実行するように電子回路を設計することによって、動作を実行する(コンピュータ命令もしくはコードを実行するなど)ようにプログラム可能電子回路(マイクロプロセッサなど)をプログラムすることによって、または非一時的なメモリ媒体に格納されたコードもしくは命令を実行するようにプロセッサもしくはコアがプログラムされることによって、またはそれらの任意の組み合わせによって達成することができる。プロセスは、さまざまな技術(プロセス間通信のための従来の技術を含むが、それに限定されるものではない)を使用して通信することができ、異なるプロセスペアは異なる技術を使用してもよく、同じプロセスペアは別々のタイミングで異なる技術を使用してもよい。
実施形態を十分に理解できるようにするために、本開示では具体的な詳細が提供されている。しかし、これらの具体的な詳細がなくても実施形態を実施することができる。たとえば、周知の回路、プロセス、アルゴリズム、構造および技術は、実施形態を曖昧にすることを回避するために、不必要な詳細なしに示されている。この説明は、例示的な実施形態を提供しているに過ぎず、他の実施形態の範囲、適用性または構成を限定するよう意図されているわけではない。むしろ、実施形態の上記の説明は、さまざまな実施形態を実現するための実施可能な程度の説明を当業者に提供するであろう。要素の機能および配置の点でさまざまな変更がなされてもよい。
したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考えられるべきである。しかし、特許請求の範囲に記載されているより広い精神および範囲から逸脱することなく、追加、減算、削除ならびに他の変形および変更がなされてもよい、ということは明らかであろう。したがって、特定の実施形態について説明してきたが、これらは限定的であるよう意図されるものではない。さまざまな変形例および等価物は、以下の特許請求の範囲の範囲内である。
Claims (40)
- コンピュータによって実行される方法であって、
対話システムが、入力された口頭発話を受信するステップと、
前記対話システムが、前記入力された口頭発話のベクトル表現を生成するステップと、
前記対話システムが、マッチ関数を使用して、複数のキー/値のペアの中の各キー/値のペアについてマッチスコアを生成するステップとを備え、各キー/値のペアについて生成された前記マッチスコアは、前記キー/値のペアのキーと前記入力された口頭発話の前記ベクトル表現とのマッチング度合いを示し、前記複数のキー/値のペアの中の各キーは、文の多次元ベクトル表現であり、前記マッチ関数は、異なる関連付けられた値を有する2つの異なるキーのマッチよりも、同一の関連付けられた値を有する2つの異なるキーのマッチについてより高いマッチスコアを生成するように構成され、前記方法はさらに、
前記対話システムが、前記複数のキー/値のペアについて生成された前記マッチスコアに基づいて、前記複数のキー/値のペアから、最も高いマッチスコアを有する特定のキー/値のペアを識別するステップと、
前記対話システムが、前記特定のキー/値のペアに関連付けられた値を前記入力された口頭発話についての値として出力するステップとを備える、方法。 - 前記マッチ関数は、訓練データを使用した訓練によって訓練され、前記訓練は、損失関数を最小化することによって、前記マッチ関数に関連付けられたパラメータのセットを調整することを備える、請求項1に記載の方法。
- 前記マッチ関数は、訓練データを使用した訓練によって訓練され、前記訓練は、尤度関数を最大化することによって、前記マッチ関数に関連付けられたパラメータのセットを調整することを備える、請求項1または2に記載の方法。
- 前記複数のキー/値のペアの値は、意図である、先行する請求項のいずれか1項に記載の方法。
- 前記複数のキー/値のペアの前記キーは、質問の表現であり、
前記複数のキー/値のペアの前記値は、それぞれの質問に対応する回答であり、
前記特定のキー/値のペアに関連付けられた前記出力された値は、選択された回答に対応し、
前記値は、前記入力された口頭発話に対する回答として出力される、先行する請求項のいずれか1項に記載の方法。 - 前記入力された口頭発話は、第1の入力された口頭発話であり、前記値は、第1の値であり、前記マッチスコアは、第1のマッチスコアであり、前記方法はさらに、
前記対話システムが、前記第1の入力された口頭発話についての前記第1の値を出力した後、追加のキー/値のペアを含むように前記複数のキー/値のペアを更新するステップと、
前記対話システムが、第2の入力された口頭発話を受信するステップと、
前記対話システムが、前記マッチ関数を使用して、前記更新された複数のキー/値のペアの中の各キー/値のペアについて第2のマッチスコアを生成するステップとを備え、前記マッチ関数は、前記第1のマッチスコアを生成するステップと前記第2のマッチスコアを生成するステップとの間で変化せず、前記方法はさらに、
前記対話システムが、前記更新された複数のキー/値のペアから、最も高いマッチスコアを有する第2の特定のキー/値のペアを識別するステップと、
前記対話システムが、前記第2の特定のキー/値のペアに関連付けられた第2の値を前記入力された口頭発話についての値として出力するステップとを備える、先行する請求項のいずれか1項に記載の方法。 - 前記マッチ関数は、コサイン類似度関数、双一次関数、単層ネットワーク、多層ネットワーク、または最近傍関数のうちの1つを含む、先行する請求項のいずれか1項に記載の方法。
- 1つまたは複数のプロセッサによって実行可能な複数の命令を格納する非一時的なコンピュータ読取可能メモリであって、前記複数の命令は、前記1つまたは複数のプロセッサによって実行されると前記1つまたは複数のプロセッサに処理を実行させる命令を備え、前記処理は、
入力された口頭発話を受信するステップと、
前記入力された口頭発話のベクトル表現を生成するステップと、
マッチ関数を使用して、複数のキー/値のペアの中の各キー/値のペアについてマッチスコアを生成するステップとを備え、各キー/値のペアについて生成された前記マッチスコアは、前記キー/値のペアのキーと前記入力された口頭発話の前記ベクトル表現とのマッチング度合いを示し、前記複数のキー/値のペアの中の各キーは、文の多次元ベクトル表現であり、前記マッチ関数は、異なる関連付けられた値を有する2つの異なるキーのマッチよりも、同一の関連付けられた値を有する2つの異なるキーのマッチについてより高いマッチスコアを生成するように構成され、前記処理はさらに、
前記複数のキー/値のペアについて生成された前記マッチスコアに基づいて、前記複数のキー/値のペアから、最も高いマッチスコアを有する特定のキー/値のペアを識別するステップと、
前記特定のキー/値のペアに関連付けられた値を前記入力された口頭発話についての値として出力するステップとを備える、非一時的なコンピュータ読取可能メモリ。 - 前記マッチ関数は、訓練データを使用した訓練によって訓練され、前記訓練は、損失関数を最小化することによって、前記マッチ関数に関連付けられたパラメータのセットを調整することを備える、請求項8に記載の非一時的なコンピュータ読取可能メモリ。
- 前記マッチ関数は、訓練データを使用した訓練によって訓練され、前記訓練は、尤度関数を最大化することによって、前記マッチ関数に関連付けられたパラメータのセットを調整することを備える、請求項8または9に記載の非一時的なコンピュータ読取可能メモリ。
- 前記複数のキー/値のペアの値は、意図である、請求項8~10のいずれか1項に記載の非一時的なコンピュータ読取可能メモリ。
- 前記複数のキー/値のペアの前記キーは、質問の表現であり、
前記複数のキー/値のペアの前記値は、それぞれの質問に対応する回答であり、
前記特定のキー/値のペアに関連付けられた前記出力された値は、選択された回答に対応し、
前記値は、前記入力された口頭発話に対する回答として出力される、請求項8~11のいずれか1項に記載の非一時的なコンピュータ読取可能メモリ。 - 前記入力された口頭発話は、第1の入力された口頭発話であり、前記値は、第1の値であり、前記マッチスコアは、第1のマッチスコアであり、前記処理はさらに、
前記第1の入力された口頭発話についての前記第1の値を出力した後、追加のキー/値のペアを含むように前記複数のキー/値のペアを更新するステップと、
第2の入力された口頭発話を受信するステップと、
前記マッチ関数を使用して、前記更新された複数のキー/値のペアの中の各キー/値のペアについて第2のマッチスコアを生成するステップとを備え、前記マッチ関数は、前記第1のマッチスコアを生成するステップと前記第2のマッチスコアを生成するステップとの間で変化せず、前記処理はさらに、
前記更新された複数のキー/値のペアから、最も高いマッチスコアを有する第2の特定のキー/値のペアを識別するステップと、
前記第2の特定のキー/値のペアに関連付けられた第2の値を前記入力された口頭発話についての値として出力するステップとを備える、請求項8~12のいずれか1項に記載の非一時的なコンピュータ読取可能メモリ。 - 前記マッチ関数は、コサイン類似度関数、双一次関数、単層ネットワーク、多層ネットワーク、または最近傍関数のうちの1つを含む、請求項8~13のいずれか1項に記載の非一時的なコンピュータ読取可能メモリ。
- 対話システムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合されたメモリとを備え、前記メモリは、前記1つまたは複数のプロセッサによって実行可能な複数の命令を格納しており、前記複数の命令は、前記1つまたは複数のプロセッサによって実行されると前記1つまたは複数のプロセッサに処理を実行させる命令を備え、前記処理は、
入力された口頭発話を受信するステップと、
前記入力された口頭発話のベクトル表現を生成するステップと、
マッチ関数を使用して、複数のキー/値のペアの中の各キー/値のペアについてマッチスコアを生成するステップとを備え、各キー/値のペアについて生成された前記マッチスコアは、前記キー/値のペアのキーと前記入力された口頭発話の前記ベクトル表現とのマッチング度合いを示し、前記複数のキー/値のペアの中の各キーは、文の多次元ベクトル表現であり、前記マッチ関数は、異なる関連付けられた値を有する2つの異なるキーのマッチよりも、同一の関連付けられた値を有する2つの異なるキーのマッチについてより高いマッチスコアを生成するように構成され、前記処理はさらに、
前記複数のキー/値のペアについて生成された前記マッチスコアに基づいて、前記複数のキー/値のペアから、最も高いマッチスコアを有する特定のキー/値のペアを識別するステップと、
前記特定のキー/値のペアに関連付けられた値を前記入力された口頭発話についての値として出力するステップとを備える、対話システム。 - 前記マッチ関数は、訓練データを使用した訓練によって訓練され、前記訓練は、損失関数を最小化することによって、または尤度関数を最大化することによって、前記マッチ関数に関連付けられたパラメータのセットを調整することを備える、請求項15に記載の対話システム。
- 前記複数のキー/値のペアの値は、意図である、請求項15または16に記載の対話システム。
- 前記複数のキー/値のペアの前記キーは、質問の表現であり、
前記複数のキー/値のペアの前記値は、それぞれの質問に対応する回答であり、
前記特定のキー/値のペアに関連付けられた前記出力された値は、選択された回答に対応し、
前記値は、前記入力された口頭発話に対する回答として出力される、請求項15~17のいずれか1項に記載の対話システム。 - 前記入力された口頭発話は、第1の入力された口頭発話であり、前記値は、第1の値であり、前記マッチスコアは、第1のマッチスコアであり、前記処理はさらに、
前記第1の入力された口頭発話についての前記第1の値を出力した後、追加のキー/値のペアを含むように前記複数のキー/値のペアを更新するステップと、
第2の入力された口頭発話を受信するステップと、
前記マッチ関数を使用して、前記更新された複数のキー/値のペアの中の各キー/値のペアについて第2のマッチスコアを生成するステップとを備え、前記マッチ関数は、前記第1のマッチスコアを生成するステップと前記第2のマッチスコアを生成するステップとの間で変化せず、前記処理はさらに、
前記更新された複数のキー/値のペアから、最も高いマッチスコアを有する第2の特定のキー/値のペアを識別するステップと、
前記第2の特定のキー/値のペアに関連付けられた第2の値を前記入力された口頭発話についての値として出力するステップとを備える、請求項15~18のいずれか1項に記載の対話システム。 - 前記マッチ関数は、コサイン類似度関数、双一次関数、単層ネットワーク、多層ネットワーク、または最近傍関数のうちの1つを含む、請求項15~19のいずれか1項に記載の対話システム。
- 対話システムにおいて使用されるマッチ関数を訓練するための訓練方法であって、
訓練データを用いて前記マッチ関数を訓練するステップを備え、
前記マッチ関数は、複数のキー/値のペアの中のキー/値のペアのキーについての、別のキー/値のペアの別のキーに対するマッチスコアを生成するように訓練され、前記マッチスコアは、前記2つのキーのマッチング度合いを示し、
前記複数のキー/値のペアの中の各キーは、文の多次元ベクトル表現であり、
前記マッチ関数は、異なる関連付けられた値を有する2つの異なるキーのマッチよりも、同一の関連付けられた値を有する2つの異なるキーのマッチについてより高いマッチスコアを生成するように構成される、訓練方法。 - 前記訓練は、損失関数を最小化することによって、前記マッチ関数に関連付けられたパラメータのセットを調整することを備える、請求項21に記載の方法。
- 前記訓練は、尤度関数を最大化することによって、前記マッチ関数に関連付けられたパラメータのセットを調整することを備える、請求項21または22に記載の方法。
- 前記複数のキー/値のペアの値は、意図である、請求項21~23のいずれか1項に記載の方法。
- 前記複数のキー/値のペアの前記キーは、質問の表現であり、
前記複数のキー/値のペアの前記値は、それぞれの質問に対応する回答である、請求項21~24のいずれか1項に記載の方法。 - 前記マッチ関数は、コサイン類似度関数、双一次関数、単層ネットワーク、多層ネットワーク、または最近傍関数のうちの1つを含む、請求項21~25のいずれか1項に記載の方法。
- 対話システムにおいて使用されるマッチ関数を訓練するための訓練装置であって、訓練データを用いて前記マッチ関数を訓練するための手段を備え、
前記マッチ関数は、複数のキー/値のペアの中のキー/値のペアのキーについての、別のキー/値のペアの別のキーに対するマッチスコアを生成するように訓練され、前記マッチスコアは、前記2つのキーのマッチング度合いを示し、
前記複数のキー/値のペアの中の各キーは、文の多次元ベクトル表現であり、
前記マッチ関数は、異なる関連付けられた値を有する2つの異なるキーのマッチよりも、同一の関連付けられた値を有する2つの異なるキーのマッチについてより高いマッチスコアを生成するように構成される、訓練装置。 - 前記マッチ関数を訓練するための前記手段は、損失関数を最小化することによって、前記マッチ関数に関連付けられたパラメータのセットを調整するように構成される、請求項27に記載の装置。
- 前記マッチ関数を訓練するための前記手段は、尤度関数を最大化することによって、前記マッチ関数に関連付けられたパラメータのセットを調整するように構成される、請求項27または28に記載の装置。
- 前記複数のキー/値のペアの値は、意図である、請求項27~29のいずれか1項に記載の装置。
- 前記複数のキー/値のペアの前記キーは、質問の表現であり、
前記複数のキー/値のペアの前記値は、それぞれの質問に対応する回答である、請求項27~30のいずれか1項に記載の装置。 - 前記マッチ関数は、コサイン類似度関数、双一次関数、単層ネットワーク、多層ネットワーク、または最近傍関数のうちの1つを含む、請求項27~31のいずれか1項に記載の装置。
- 1つまたは複数のプロセッサによって実行可能な複数の命令を格納する非一時的なコンピュータ読取可能媒体であって、前記複数の命令は、前記1つまたは複数のプロセッサによって実行されると前記1つまたは複数のプロセッサに処理を実行させる命令を備え、前記処理は、
訓練データを用いてマッチ関数を訓練するステップを備え、
前記マッチ関数は、複数のキー/値のペアの中のキー/値のペアのキーについての、別のキー/値のペアの別のキーに対するマッチスコアを生成するように訓練され、前記マッチスコアは、前記2つのキーのマッチング度合いを示し、
前記複数のキー/値のペアの中の各キーは、文の多次元ベクトル表現であり、
前記マッチ関数は、異なる関連付けられた値を有する2つの異なるキーのマッチよりも、同一の関連付けられた値を有する2つの異なるキーのマッチについてより高いマッチスコアを生成するように構成される、非一時的なコンピュータ読取可能媒体。 - 前記訓練は、損失関数を最小化することによって、前記マッチ関数に関連付けられたパラメータのセットを調整することを備える、請求項33に記載の非一時的なコンピュータ読取可能媒体。
- 前記訓練は、尤度関数を最大化することによって、前記マッチ関数に関連付けられたパラメータのセットを調整することを備える、請求項33または34に記載の非一時的なコンピュータ読取可能媒体。
- 前記複数のキー/値のペアの値は、意図である、請求項33~35のいずれか1項に記載の非一時的なコンピュータ読取可能媒体。
- 前記複数のキー/値のペアの前記キーは、質問の表現であり、
前記複数のキー/値のペアの前記値は、それぞれの質問に対応する回答である、請求項33~36のいずれか1項に記載の非一時的なコンピュータ読取可能媒体。 - 前記マッチ関数は、コサイン類似度関数、双一次関数、単層ネットワーク、多層ネットワーク、または最近傍関数のうちの1つを含む、請求項33~37のいずれか1項に記載の非一時的なコンピュータ読取可能媒体。
- 請求項1~7のいずれか1項に記載の方法をコンピュータに実行させるためのプログラム。
- 請求項21~26のいずれか1項に記載の方法をコンピュータに実行させるためのプログラム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962899654P | 2019-09-12 | 2019-09-12 | |
US62/899,654 | 2019-09-12 | ||
US16/942,535 | 2020-07-29 | ||
US16/942,535 US11914962B2 (en) | 2019-09-12 | 2020-07-29 | Reduced training intent recognition techniques |
PCT/US2020/044198 WO2021050170A1 (en) | 2019-09-12 | 2020-07-30 | Reduced training intent recognition techniques |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022547704A true JP2022547704A (ja) | 2022-11-15 |
JPWO2021050170A5 JPWO2021050170A5 (ja) | 2023-07-12 |
Family
ID=72087270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022516198A Pending JP2022547704A (ja) | 2019-09-12 | 2020-07-30 | 訓練を減らした意図認識技術 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11914962B2 (ja) |
EP (1) | EP4028932A1 (ja) |
JP (1) | JP2022547704A (ja) |
CN (1) | CN114365120A (ja) |
WO (1) | WO2021050170A1 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11720790B2 (en) * | 2019-05-22 | 2023-08-08 | Electronics And Telecommunications Research Institute | Method of training image deep learning model and device thereof |
CN110377721B (zh) * | 2019-07-26 | 2022-05-10 | 京东方科技集团股份有限公司 | 自动问答方法、装置、存储介质及电子设备 |
US11593608B2 (en) * | 2019-10-28 | 2023-02-28 | Paypal, Inc. | Systems and methods for predicting and providing automated online chat assistance |
US11551666B1 (en) * | 2020-05-28 | 2023-01-10 | Amazon Technologies, Inc. | Natural language processing |
US11245648B1 (en) * | 2020-07-31 | 2022-02-08 | International Business Machines Corporation | Cognitive management of context switching for multiple-round dialogues |
CN111968637A (zh) * | 2020-08-11 | 2020-11-20 | 北京小米移动软件有限公司 | 终端设备的操作模式控制方法、装置、终端设备及介质 |
US11651158B2 (en) * | 2020-08-13 | 2023-05-16 | Salesforce, Inc. | Entity resolution for chatbot conversations |
JP2022102306A (ja) * | 2020-12-25 | 2022-07-07 | トヨタ自動車株式会社 | エージェント表示方法、プログラム、及びエージェント表示システム |
US11748559B2 (en) * | 2021-03-24 | 2023-09-05 | International Business Machines Corporation | Auto generation of conversational artifacts from specifications |
CN113051930B (zh) * | 2021-03-25 | 2023-04-14 | 华润数字科技有限公司 | 基于Bert模型的意图识别方法、装置及相关设备 |
US11790169B2 (en) * | 2021-04-02 | 2023-10-17 | Salesforce, Inc. | Methods and systems of answering frequently asked questions (FAQs) |
WO2022229088A1 (en) * | 2021-04-28 | 2022-11-03 | Koninklijke Philips N.V. | Chat bot for a medical imaging system |
CN113270103A (zh) * | 2021-05-27 | 2021-08-17 | 平安普惠企业管理有限公司 | 基于语义增强的智能语音对话方法、装置、设备及介质 |
US20230008868A1 (en) * | 2021-07-08 | 2023-01-12 | Nippon Telegraph And Telephone Corporation | User authentication device, user authentication method, and user authentication computer program |
US20230038691A1 (en) * | 2021-08-05 | 2023-02-09 | Yaar Inc. | Workflow instruction interpretation for web task automation |
US11941641B2 (en) | 2021-10-15 | 2024-03-26 | EMC IP Holding Company LLC | Method and system to manage technical support sessions using historical technical support sessions |
US11915205B2 (en) * | 2021-10-15 | 2024-02-27 | EMC IP Holding Company LLC | Method and system to manage technical support sessions using ranked historical technical support sessions |
WO2024049567A1 (en) * | 2022-08-31 | 2024-03-07 | Microsoft Technology Licensing, Llc | Knowledge driven pre-trained form key mapping |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100094673A1 (en) * | 2008-10-14 | 2010-04-15 | Ebay Inc. | Computer-implemented method and system for keyword bidding |
US10629186B1 (en) * | 2013-03-11 | 2020-04-21 | Amazon Technologies, Inc. | Domain and intent name feature identification and processing |
US9299347B1 (en) * | 2014-10-22 | 2016-03-29 | Google Inc. | Speech recognition using associative mapping |
KR102413693B1 (ko) * | 2015-07-23 | 2022-06-27 | 삼성전자주식회사 | 음성 인식 장치 및 방법, 그를 위한 모델 생성 장치 및 방법 |
US10277743B1 (en) * | 2017-03-21 | 2019-04-30 | Amazon Technologies, Inc. | Configurable natural language contact flow |
US10325602B2 (en) * | 2017-08-02 | 2019-06-18 | Google Llc | Neural networks for speaker verification |
US11394667B2 (en) * | 2017-10-03 | 2022-07-19 | Rupert Labs, Inc. | Chatbot skills systems and methods |
US20200285940A1 (en) | 2017-10-27 | 2020-09-10 | Deepmind Technologies Limited | Machine learning systems with memory based parameter adaptation for learning fast and slower |
US10977446B1 (en) * | 2018-02-23 | 2021-04-13 | Lang Artificial Intelligence Inc. | Unsupervised language agnostic intent induction and related systems and methods |
US10811009B2 (en) * | 2018-06-27 | 2020-10-20 | International Business Machines Corporation | Automatic skill routing in conversational computing frameworks |
US11107463B2 (en) * | 2018-08-01 | 2021-08-31 | Google Llc | Minimum word error rate training for attention-based sequence-to-sequence models |
US11061954B2 (en) * | 2018-09-21 | 2021-07-13 | Salesforce.Com, Inc. | Intent classification system |
US11551004B2 (en) * | 2018-11-13 | 2023-01-10 | Asapp, Inc. | Intent discovery with a prototype classifier |
CN109597994B (zh) | 2018-12-04 | 2023-06-06 | 挖财网络技术有限公司 | 短文本问题语义匹配方法和系统 |
US10586532B1 (en) * | 2019-01-28 | 2020-03-10 | Babylon Partners Limited | Flexible-response dialogue system through analysis of semantic textual similarity |
CN114072857A (zh) * | 2019-02-27 | 2022-02-18 | 谷歌有限责任公司 | 识别文档中的键值对 |
US20200293874A1 (en) * | 2019-03-12 | 2020-09-17 | Microsoft Technology Licensing, Llc | Matching based intent understanding with transfer learning |
US11361470B2 (en) * | 2019-05-09 | 2022-06-14 | Sri International | Semantically-aware image-based visual localization |
US10733497B1 (en) * | 2019-06-25 | 2020-08-04 | Progressive Casualty Insurance Company | Tailored artificial intelligence |
US11508365B2 (en) * | 2019-08-19 | 2022-11-22 | Voicify, LLC | Development of voice and other interaction applications |
US11538468B2 (en) * | 2019-09-12 | 2022-12-27 | Oracle International Corporation | Using semantic frames for intent classification |
-
2020
- 2020-07-29 US US16/942,535 patent/US11914962B2/en active Active
- 2020-07-30 CN CN202080063758.3A patent/CN114365120A/zh active Pending
- 2020-07-30 JP JP2022516198A patent/JP2022547704A/ja active Pending
- 2020-07-30 WO PCT/US2020/044198 patent/WO2021050170A1/en unknown
- 2020-07-30 EP EP20757140.7A patent/EP4028932A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN114365120A (zh) | 2022-04-15 |
US20210082424A1 (en) | 2021-03-18 |
WO2021050170A1 (en) | 2021-03-18 |
US11914962B2 (en) | 2024-02-27 |
EP4028932A1 (en) | 2022-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11914962B2 (en) | Reduced training intent recognition techniques | |
US11935521B2 (en) | Real-time feedback for efficient dialog processing | |
JP2023520416A (ja) | ドメイン外(ood)検出のための改良された技術 | |
JP2022548064A (ja) | 動的なコンテキスト対話セッション延長 | |
US11551676B2 (en) | Techniques for dialog processing using contextual data | |
US11501065B2 (en) | Semantic parser including a coarse semantic parser and a fine semantic parser | |
JP2022547596A (ja) | チャットボットシステムにおける無関係な発話の検出 | |
US11810553B2 (en) | Using backpropagation to train a dialog system | |
US11790901B2 (en) | Task-oriented dialog suitable for a standalone device | |
US11403462B2 (en) | Streamlining dialog processing using integrated shared resources | |
JP2023551325A (ja) | ニューラルネットワークにおける過剰予測のための方法およびシステム | |
US11908460B2 (en) | Using a generative adversarial network to train a semantic parser of a dialog system | |
US11462208B2 (en) | Implementing a correction model to reduce propagation of automatic speech recognition errors | |
EP3792912B1 (en) | Improved wake-word recognition in low-power devices | |
US20210081799A1 (en) | Compressing neural networks for natural language understanding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230704 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230704 |