JP2019079034A - 自己学習自然言語理解を伴うダイアログ・システム - Google Patents

自己学習自然言語理解を伴うダイアログ・システム Download PDF

Info

Publication number
JP2019079034A
JP2019079034A JP2018162200A JP2018162200A JP2019079034A JP 2019079034 A JP2019079034 A JP 2019079034A JP 2018162200 A JP2018162200 A JP 2018162200A JP 2018162200 A JP2018162200 A JP 2018162200A JP 2019079034 A JP2019079034 A JP 2019079034A
Authority
JP
Japan
Prior art keywords
dialog
nlu
user
model
feedback
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.)
Granted
Application number
JP2018162200A
Other languages
English (en)
Other versions
JP6678710B2 (ja
Inventor
本間 健
Takeshi Honma
健 本間
真人 戸上
Masato Togami
真人 戸上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2019079034A publication Critical patent/JP2019079034A/ja
Application granted granted Critical
Publication of JP6678710B2 publication Critical patent/JP6678710B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3346Query execution using probabilistic model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/065Adaptation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • G10L2015/0635Training updating or merging of old and new templates; Mean values; Weighting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/081Search algorithms, e.g. Baum-Welch or Viterbi
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/225Feedback of the input speech

Abstract

【課題】ユーザ対システムの実際のダイアログ・ログから自然言語理解(NLU)モデルを学習することができるダイアログ・システムを提供する。【解決手段】ダイアログ・システム1000は、タッチ・パッド1010およびキーボード1020などの入力インターフェースを利用して、ユーザ入力を受け取る。マイクロフォン1030が、ユーザ・スピーチを受信する。自動スピーチ・レコグナイザ(ASR)1040は、マイクロフォンによって入手されたユーザ発話のサウンド信号をテキストへ変換する。音響モデル1050および言語モデル1060は、ASRにおいて利用されるデータを含む。【選択図】図1

Description

本開示は、全般的にはダイアログ・システムに関連しており、より具体的には、ユーザ対システムの実際のダイアログ・ログから自然言語理解(NLU)モデルを学習することができるダイアログ・システムに関連している。
関連した技術分野の実施態様は、有限状態トランスデューサを利用するNLUアルゴリズムを含み、NLUモデルは、NLU結果上でのユーザ応答を使用することによって自動的に更新および改善される(すなわち、自己学習NLU)。併せて、関連した技術分野の実施態様は、「ダイアログ途絶」ディテクタを利用することによって保持されるダイアログ・システムを含むことができる。ダイアログ途絶ディテクタは、ユーザがダイアログ・システムとの会話を進めることができない状況を検知する。ダイアログ途絶ディテクタはまた、ダイアログ途絶の理由を識別し、その理由は、NLUエラー、自動スピーチ認識(ASR)エラー、ダイアログ制御エラーなどを含み得る。識別された理由は、ダイアログ・ログに付加される。関連した技術分野の実施態様では、人間の保守管理者が、関心のあるダイアログ・ログを選ぶことができ、それは、人間対システムの将来の会話におけるダイアログ途絶を回避するために、ダイアログ・システムに関連しているNLUモデルまたはその他のプログラム/データを改善することができる。
関連した技術分野では、自動的にNLUエラーを検知するダイアログ・システムがある。ダイアログ・システムがNLUエラーを検知した場合には、システムは、NLU結果が正しいかどうかをユーザに確認する発話を出力する。NLU結果が間違っていることをユーザが示した場合には、システムは、ユーザを人間のオペレータとつなぎ、それによってユーザは、人間のオペレータと直接対話して、ユーザのタスクを達成することができる。
ダイアログ・システムは、ダイアログ・システム内に格納されている限られた知識に起因して、ダイアログ・システムにおけるNLUモジュールがユーザ発話を理解することに失敗する状況に直面する場合がある。たとえダイアログ・システムが、実際のユーザ応答を利用することによって自動的に自分のNLUモジュールを更新することができるとしても、限られたユーザ応答および限られた知識から正しいNLU結果をダイアログ・システムが知ることは、やはり困難である。
サーバが利用される場合には、ダイアログ・システム(すなわちクライアント側)よりも豊かな知識が提供されて、ユーザ発話およびユーザ・フィードバック上でのさらに正確なNLUプロセスを達成することが可能である。加えて、サーバは、サーバに接続している多くのダイアログ・システムからユーザ・フィードバックおよびダイアログ・ログを収集することができる。したがって、そのような実施態様は、そのようなさまざまな情報を利用することによってNLUを改善することができる。
したがって、サーバは、特に自己学習NLUが組み込まれることになる場合には、クライアント側のダイアログ・システムにおいて進行中のダイアログを補助することができる。しかしながら、クライアント側およびサーバ側でダイアログ・システム同士を統合することは簡単ではない。本明細書において記述されている例示的な実施態様は、下記のような制限に対処する。
1)ダイアログ・システムがクラウド・サーバにアクセスする際のタイミング制御。サーバは、ダイアログ・システムよりも多くの知識を有しており、したがってサーバは、ダイアログ・システムと比べて、正しいNLU結果を提供する可能性がより高い。しかしながら、ユーザが何かを言うたびにダイアログ・システムがサーバにアクセスする場合には、ネットワーク・スピードの限界に起因して、ユーザ発話からシステム発話までの応答時間がより長くなる。より長い応答時間は、会話上でのユーザの不満を引き起こす。この制限に対処するために、例示的な実施態様は、ダイアログ・システムがサーバに質問を行うべきである最適なタイミングを、ダイアログ・システム内のダイアログ履歴(ダイアログ・ログ)およびNLU結果に基づいて特定する。
2)サーバから送信された更新情報を使用することによってダイアログ・システム上のNLU知識を更新すること。クラウド・サーバは、多くのダイアログ・システムから入手された大規模なダイアログ履歴を管理する。したがって、サーバにおいて生成されたNLU更新に関する情報は、ダイアログ・システムのNLU精度を改善することができる。しかしながら、特定のユーザたちに関しては、NLU精度の劣化が生じる可能性がある。サーバからのNLU更新情報は、特定のユーザたちが好んでいるダイアログ・システムにおけるNLUルールを上書きする可能性があるので、ダイアログ・システムは、そのような特定のユーザたちがダイアログ・システムに対して前に述べていたユーザ発話を急に理解できなくなる可能性があり、それはユーザ経験における劣化である。例示的な実施態様は、サーバによって提供されるNLU更新情報を利用することによってNLU精度を改善しながら、そのようなNLUの劣化を回避する。
3)ユーザ・フィードバックの不確実性を管理すること。実際の人間対マシンの会話中に入手されるユーザ・フィードバックは、NLUモデルを改善するための有用な情報を含む。しかしながらユーザ・フィードバックは、不適切なフィードバックを含むこともあり、そうした不適切なフィードバックは、有用ではないか、またはNLU精度という形式での劣化を引き起こす。したがってユーザ・フィードバック情報は、確実性の度合いという点から評価されるべきである。例示的な実施態様は、ユーザ・フィードバックの信頼性を推定し、そのようなユーザ・フィードバックをNLUモデルの改善のためにどのようにして利用するかを特定する。
本開示の態様は、ユーザ入力を受け取るためのテキスト入力方法およびサーバと通信するように構成されている第1の自然言語理解(NLU)モデルと共に構成され、ユーザ入力は、ユーザによってタイプされたテキスト入力またはユーザ・スピーチから入手された自動スピーチ認識(ASR)出力のうちの少なくとも1つを含む、クライアント・デバイスと、第2のNLUモデルを管理するサーバとを含むダイアログ・システムのための方法を含むことができ、第1のNLUモデルと第2のNLUモデルとは異なる。この方法は、第1のNLUモデルを適用することからクライアント・デバイスにおける入力ダイアログのNLU結果を特定するステップと、第1のNLUモデルを適用することから入手されたNLU結果の確信性スコアがしきい値を満たしていない場合、入力ダイアログ上で第2のNLUモデルを使用することによってNLUプロセスを実行するためにサーバにアクセスすることをクライアント・デバイスに行わせるステップと、第1のNLUモデルを適用することから入手されたNLU結果の確信性スコアがしきい値を満たしている場合、第1のNLUモデルを適用することから入手されたNLU結果に基づくアクションをクライアント・デバイスに実行させるステップとを含むことができる。
本開示の態様は、ユーザ入力を受け取るためのテキスト入力方法およびサーバとの間で通信するように構成されている第1の自然言語理解(NLU)モデルと共に構成され、ユーザ入力は、ユーザによってタイプされたテキスト入力またはユーザ・スピーチから入手された自動スピーチ認識(ASR)出力のうちの少なくとも1つを含む、クライアント・デバイスと、第2のNLUモデルを管理するサーバとを含むダイアログ・システムのための命令を格納している非一時的コンピュータ可読メディアを含むことができ、第1のNLUモデルと第2のNLUモデルとは異なる。それらの命令は、第1のNLUモデルを適用することからクライアント・デバイスにおける入力ダイアログのNLU結果を特定するステップと、第1のNLUモデルを適用することから入手されたNLU結果の確信性スコアがしきい値を満たしていない場合、入力ダイアログ上で第2のNLUモデルを使用することによってNLUプロセスを実行するためにサーバにアクセスすることをクライアント・デバイスに行わせるステップと、第1のNLUモデルを適用することから入手されたNLU結果の確信性スコアがしきい値を満たしている場合、第1のNLUモデルを適用することから入手されたNLU結果に基づくアクションをクライアント・デバイスに実行させるステップとを含むことができる。
例示的な一実施態様によるダイアログ・システムのコンポーネントを示す図である。 例示的な一実施態様による、例示的なダイアログ・シナリオを示す図である。 例示的な一実施態様による、サーバのコンポーネントを示す図である。 例示的な一実施態様による、ダイアログ・システムのプロセス・フローを示す図である。 例示的な一実施態様による、ダイアログ・システムのプロセス・フローを示す図である。 例示的な一実施態様による、FSTベースのNLUの例示的なフローを示す図である。 例示的な一実施態様による、FSTベースのNLUに関するNLUモデルを示す図である。 例示的な一実施態様による、FSTベースのNLUに関連している詳細なデータ・フローを示す図である。 例示的な一実施態様による、NLU出力を分類するための例示的なフローを示す図である。 例示的な一実施態様による、サーバがクエリされる必要があるかどうかに関する例示的なフローを示す図である。 例示的な一実施態様による、サーバに関する例示的なフローを示す図である。 例示的な一実施態様による、ダイアログ・システムに関する例示的なフローを示す図である。 例示的な一実施態様による、ダイアログ確認の例を示す図である。 例示的な一実施態様による、アップロードされたユーザ応答上での分析のためのサーバに関する例示的なフローを示す図である。 例示的な一実施態様による、モデルを更新するためのフローを示す図である。 例示的な一実施態様によるNLUプロセスに関する例示的なフローを示す図である。 例示的な一実施態様による、FST変換モデルを示す図である。 例示的な一実施態様による、RNNベースのNLUに関するトレーニング・データを示す図である。 図18(a)は、例示的な一実施態様による、リカレント・ニューラル・ネットワーク(RNN)、およびそのRNNが推定を使用することを示す図である。図18(b)は、例示的な一実施態様による、リカレント・ニューラル・ネットワーク(RNN)、およびそのRNNがトレーニングを使用することを示す図である。 例示的な一実施態様による、RNNへのN−best ASR入力を達成するための例示的なフローを示す図である。 例示的な一実施態様による、RNNベースのNLUの例示的なフローを示す図である。 例示的な一実施態様による、ユーザ・フィードバックを使用することによるNLU更新の例示的なフローを示す図である。 図22(a)は、例示的な一実施態様による、ダイアログ・システムがサーバから更新を受信した場合にダイアログ・システムにおいてNLUモデルを更新する例示的な手順を示す図である。図22(b)は、例示的な一実施態様による、ダイアログ・システムがサーバから更新を受信した場合にダイアログ・システムにおいてNLUモデルを更新する例示的な手順を示す図である。 例示的な一実施態様による、FSTベースのNLUおよびRNNベースのNLUがいつ組み合わされるかに関する例示的なフローを示す図である。 例示的な一実施態様による、N−best ASR出力からフィードバック情報をどのようにして生成するかを示す図である。 例示的な一実施態様による、サーバにおいてフィードバック・タプルを使用することによってシードをどのようにして更新するかを示す図である。 例示的な一実施態様による、サーバにおいてフィードバック・トレーニング・データを使用することによってRNNベースのNLUのトレーニング・データを更新するためのフローを示す図である。 例示的な一実施態様による、イントピックNLUおよびアウトオブトピックNLUを組み合わせるNLUアルゴリズムに関するフローを示す図である。 図28(a)は、例示的な一実施態様による、システム・ダイアログ発話システムに関するシステム図である。図28(b)は、例示的な一実施態様による、システム・ダイアログ発話システムに関するシステム図である。 例示的な一実施態様による、RNNセルを使用する例示的なエンコーダ/デコーダ・モデルを示す図である。 図30(a)は、例示的な一実施態様による、発話変換のプロセスを示す図である。図30(b)は、例示的な一実施態様による、発話変換のプロセスを示す図である。 例示的な一実施態様による、トレーニングのための発話対発話コーパスを示す図である。 例示的な一実施態様による、例示的な発話変換モデルを示す図である。 例示的な一実施態様による、ユーザ・ダイアログ行為を予測するための手順を示す図である。 いくつかの例示的な実施態様における使用に適している例示的なコンピュータ・デバイスを伴う例示的なコンピューティング環境を示す図である。 例示的な一実施態様による、ロボットなどのクライアント・デバイスに関する例示的なハードウェア図である。 例示的な一実施態様によるFSTベースのNLUおよびRNNベースのNLUの結果から適切なダイアログ行為を選択するための別の例を示す図である。
以降の詳細な説明は、本出願の図および例示的な実施態様のさらなる詳細を提供する。図間における重複した要素の参照番号および説明は、明確さのために省略されている。この説明を通じて使用されている用語は、例として提供されており、限定的であることを意図されているものではない。たとえば、「自動的な」という用語の使用は、本出願の実施態様を実践する当技術分野における標準的な技術者の所望の実施態様に応じて、その実施態様の特定の側面に対するユーザまたは管理者の制御を含む完全に自動的なまたは半自動的な実施態様を含み得る。選択は、ユーザ・インターフェースまたはその他の入力手段を通じてユーザによって行われることが可能であり、または所望のアルゴリズムを通じて実施されることが可能である。本明細書において記述されている例示的な実施態様は、単独でまたは組合せで利用されることが可能であり、例示的な実施態様の機能は、所望の実施態様に従って任意の手段を通じて実施されることが可能である。
第1の例示的な実施態様では、有限状態トランスデューサ(FST)ベースのNLUを利用するダイアログ・システム構成がある。
(1) ダイアログ・システムおよびクラウド・サーバのコンポーネント
図1は、例示的な一実施態様によるダイアログ・システム1000のコンポーネントを示している。タッチ・パッド1010およびキーボード1020などの入力インターフェースを利用して、ユーザ入力を受け取ることができる。マイクロフォン1030が、ユーザ・スピーチを受信する。自動スピーチ・レコグナイザ(ASR)1040は、マイクロフォンによって入手されたユーザ発話のサウンド信号をテキストへ変換する。音響モデル1050および言語モデル1060は、ASRにおいて利用されるデータを含む。ダイアログ・システム1000は、スピーチまたはタイピングからユーザ入力を受け取ることができる。本明細書において記述されている例示的な実施態様では、ユーザ入力のテキストは、基礎をなす入力がスピーチによるかタイピングによるかにかかわらず、「発話」と呼ばれる。自然言語理解モジュール(NLU)1070は、発話をダイアログ行為へ変換する。ダイアログ行為は、ユーザがダイアログ・システム1000と通信することによって行いたいことを表す。例示的な一実施態様では、ダイアログ・システムが、ユーザへのレストラン情報ガイダンスのために作成されていると想定する。下記は、ユーザ発話および対応するダイアログ行為のいくつかの例である。
1つの発話は、1つダイアログ行為だけでなく複数のダイアログ行為も有する場合がある。たとえば、ユーザが、「I want to know Chinese restaurants in the north(北にある中華レストランを知りたいです)」と述べている場合には、この発話は、inform(food=chinese)およびinform(area=north)という2つのダイアログ行為を含む。等号から右の部分(すなわち、「area=north」における「north」)は、以降では「値」と呼ばれる。本明細書において記述されている例示的な実施態様では、ダイアログ行為は、事前に定義されていると仮定されるが、本開示は、それに限定されるものではない。たとえば、ダイアログ行為の値は、対応する述べられたワードを値へコピーすること、またはその他の任意の所望の実施態様を使用するその他のワード/値変換方法によって、その対応するワードから得ることができる。
NLUモデル1080は、NLUを達成するために必要であるデータを含む。NLUモデルのタイプは、システムが採用するNLUアルゴリズムに基づいて特定される。第1の例示的な実施態様では、NLUアルゴリズムは、FSTに基づいている。
ダイアログ制御1090は、人間とダイアログ・システムとの間における情報フローを制御する。ダイアログ制御は、自分のダイアログ・フローをダイアログ・シナリオ1100に沿って制御する。ダイアログ・シナリオの一例が、図2に示されている。ダイアログ・シナリオは、システム・アクション、それぞれのシステム・アクションの後の予想されるダイアログ行為、およびそれぞれのユーザ・ダイアログ行為に対応する状態遷移ルールを含む。図2では、たとえば、システム・アクションは、「How may I help you?(どのようなご用件でしょうか?)」と言うことであることを1つの状態2010が示している。予想されるユーザ・ダイアログ行為は、inform(area=south)、inform(area=north)、inform(food=Chinese)などである。ユーザ・ダイアログ行為がinform(area=south)である場合には、ダイアログ状態遷移が、inform(area=south)というダイアログ行為に対応するアークを介して生じ、次いで状態2020に達し、そこではシステム・アクションは、「(Name) is a good restaurant in south area((名前)が、南のエリアにあるよいレストランです)」と言うことである。(Name)は、アプリケーション1108およびデータベース1109上でレストラン情報検索を行うことによって入手された実際のレストラン名によって置き換えられる。次いで、この状態でのシステム発話が、ダイアログ・システムから出力されることになる。
ダイアログ履歴1090は、前のシステム・アクションおよび対応するユーザ発話またはユーザ入力を格納する。ダイアログ履歴1090はまた、それぞれのユーザ発話のダイアログ行為、それぞれのシステム発話のダイアログ行為、およびその他の情報を含む。ダイアログ行為プレディクタ1107は、ダイアログ履歴を考慮してユーザの予想されるその後のダイアログ行為を予測する。ダイアログ行為プレディクタの詳細については、後ほど記述する。ユーザ・フィードバック1110は、ダイアログ・システムから提供されるNLU結果が正しいか否かを確認するためにダイアログ・システムによって導き出される確認ダイアログに対するユーザ発話を格納する。NLUトレーナ1170は、ユーザ・フィードバックを使用することによってNLUモデルをトレーニングし、次いでそれをNLUモデルに格納する。
スピーチ・シンセサイザ1120は、システム発話からスピーチ信号を作成する。作成されたスピーチ信号は、ダイアログ・システムのスピーカ機器から再生されることになり、次いでユーザは、そのシステム発話を聴くことができる。アクション・メーカー1130は、スピーチ・シンセサイザと比べると、ダイアログ・システムのその他の任意のアクションを作成し、それらのアクションは、ロボットのジェスチャ、ロボットの動き、表示されることになる画像または図面を含む。ロボット1140、仮想エージェント1150、およびディスプレイ1160は、ユーザに情報を提供するためのダイアログ・システムの出力デバイスである。
ユーザ識別子1175は、ダイアログ・システムと通信するユーザを識別する。このユーザ識別は、音声ベースの個人識別、顔画像識別、指紋識別、指静脈識別などのような知られている技術を使用することによって行うことができる。所望の実施態様に応じて、ユーザは、個人の無線周波数識別子(RFID)タグを有することができ、ユーザは、それをロボットまたはその他のデバイスからのセンサ上に置き、それによってシステムは、ユーザを識別することができる。加えて、スマートフォン上で機能する仮想エージェントを介してダイアログが行われる場合には、スマートフォンの所有者情報を利用してユーザを識別することができる。ユーザ・プロフィール1180は、ダイアログ・システム上でのそれぞれのユーザの好みを含む。1つのユーザ発話が、別々のユーザにとって別々の意味(別々のダイアログ行為)を有する場合がある。その場合、NLUモデルは、ユーザ識別結果に基づいて変更されるべきである。したがってユーザ・プロフィールは、それぞれのユーザにとって最適なNLUモデルを含む。ユーザ識別子がユーザを識別すると、次いでシステムは、識別されたユーザが好むNLUモデルを変更する。
図3は、例示的な一実施態様による、サーバ3000のコンポーネントを示している。サーバは、1つまたは複数のダイアログ・システム3140(すなわちダイアログ・システム1000)と接続している。ASR3010、音響モデル3050、および言語モデル3060は、ユーザ・スピーチを認識するための、およびスピーチをテキストへ変換するためのコンポーネントである。ASRおよび関連したモデル(3010、3050、3060)は、ダイアログ・システムからサーバ3000へアップロードされたユーザ・スピーチを認識するために使用することができる。NLU3020およびNLUモデル3070は、ユーザ発話からダイアログ行為を入手するように構成されている。ダイアログ・シナリオ3080は、図2に示されているような、ダイアログ行為と、次のダイアログ状態およびシステム・アクションとの間におけるルールを含む。ダイアログ履歴3090は、サーバに接続している1つまたは複数のダイアログ・システムから入手された、ユーザとダイアログ・システムとの間におけるダイアログ履歴を格納する。ユーザ・フィードバック3100は、NLU結果が正しいことを確認するためのシステム発話に対するユーザ応答を含む。ユーザ・フィードバック3100は、1つまたは複数のダイアログ・システム3140において入手されたユーザ・フィードバックを含む。ユーザ識別子3112は、アップロードされた情報(ユーザ・フィードバックおよびダイアログ履歴)に関連しているユーザを、ユーザ・プロフィール3110内の情報を使用することを用いて識別する。ユーザ・フィードバックおよびダイアログ履歴上のそれぞれのデータは、誰がダイアログ・システムと話したかを示すユーザ情報を有する上でよりよいと思われる。ダイアログ・システムまたはサーバの両方またはどちらかが、ユーザ識別子を有することができる。ユーザ・プロフィール3110はまた、それぞれのユーザ・フィードバックが信頼できるか否かを特定するための情報を含む。ユーザ・プロフィール3110は、ユーザの確信値、それぞれのユーザの会話の頻度などを含む。NLUトレーナ3040は、1つまたは複数のダイアログ・システムから収集されたユーザ・フィードバック3100を使用することによってNLUモデル3070をトレーニングして更新する。ダイアログ行為プレディクタ3030は、ダイアログ履歴を考慮して、次に来ると予想されるユーザの次のダイアログ行為を予測する。未特定ユーザ発話3120は、発話の意図(すなわちダイアログ行為)に関する自動的な識別に失敗したユーザ発話を格納する。3120における格納されたユーザ発話は、人間のシステム保守管理者によってチェックされることが可能であり、そしてチェッキング結果は、ダイアログ・システム(NLUモデル、ダイアログ・シナリオ、およびその他の任意のコンポーネント)を改善するために利用されることになる。
(2)システムのプロセス
図4(a)および図4(b)は、例示的な一実施態様による、ダイアログ・システムのプロセス・フローを示している。このフローは、マイクロフォンまたはタイピング機器を介したユーザ発話を待つこと(4010)で開始する。次いで、入力がスピーチである場合には、そのスピーチは、テキストへ変換するためにASRへ入力される(4020)。入力がタイピングである場合には、ASRプロセス4020を省くことができる。発話テキストは、NLU結果を得るためにNLUへ送信される(4030)。ダイアログ・システムのプロセス・フローについては、本明細書ではその他の図に関連してさらに記述する。
第1の例示的な実施態様では、FSTベースのNLUが利用される。いくつかのNLUアルゴリズムが、発話テキストを受信し、ダイアログ行為と、それぞれのダイアログ行為を表す対応するフレーズとを出力する。NLUがそのような情報を出力する限り、任意のNLUアルゴリズムが、本発明を達成するために適用可能であり得る(たとえば、リカレント・ニューラル・ネットワーク(RNN)、条件付き確率場(CRF)、ワード・マッチング、形態素マッチング、手作りのルールによるNLU)。その他の例示的な実施態様(たとえば、RNNベースのNLUアルゴリズム)も、本明細書において記述されている。加えて、本明細書における例は、1つの発話が1つだけのダイアログ行為を有すると想定しているが、ユーザ発話におけるすべてのワードが同じダイアログ行為を有することも理にかなっている。その場合、発話分類タスクが得意であるNLUアルゴリズムを適用することもできる(サポート・ベクター・マシン(SVM)、ロジスティック回帰、スタックト・ニューラル・ネットワークなど)。
図5は、例示的な一実施態様による、FSTベースのNLUの例示的なフローを示している。図6は、例示的な一実施態様による、FSTベースのNLUに関するNLUモデルを示している。図7は、例示的な一実施態様による、FSTベースのNLUに関連している詳細なデータ・フローを示している。
NLUモデル(図6)は、シード6010およびセマンティック空間6070を含む。シード6010は、ダイアログ行為6020および「チャンク」6030を示すテーブルである。したがって、テーブル内のそれぞれの行は、「ダイアログ行為/チャンク・ペア」と呼ばれる。例示的な実施態様では、シード6010は、はじめに人間の開発者によって開発され、次いで、本明細書において記述されているようなユーザとのシステム会話経験に基づいて新たな/更新されたダイアログ行為/チャンク・ペアを学習する自動的な自己学習アルゴリズムをNLU上に組み込むことによって改善され豊かにされる。チャンクは、対応するダイアログ行為をユーザが示す際にユーザによって述べられると予想される、ユーザの発話の部分的なワードまたは全体的なワードである。セマンティック空間6070は、2つのワード/フレーズのペアが、それらの2つのワード/フレーズが類似の意味を有する場合に互いにさらに近いポイントに配置される空間を記述している。セマンティック空間は、知られているワード埋め込み技術、センテンス埋め込み技術、ワード意味データベースから得られたワード意味情報、シソーラスを使用することによって、または所望の実施態様に従ってその他の方法を通じて構築することができる。
図5のフローでは、はじめに、このフローは、ユーザ識別結果、現在のダイアログ・タスク、および現在のダイアログ履歴にとって適切であるNLUモデルをロードする(5005)。ユーザ識別結果は、ダイアログ・システムと話しているそれぞれのユーザに適しているNLUモデルを選択する助けになる。ダイアログ行為の種類は、タスクのタイプに応じて変更される。たとえば、ダイアログ・システムがレストラン予約タスクを対象としている場合には、ユーザは、レストランのフード・タイプを知らせるためのワード(たとえば、inform(food=...)というダイアログ行為)を述べる可能性がある。しかしながら、ダイアログ・システムが航空機チケット予約タスクを対象としている場合には、inform(food=...)というダイアログ行為は、ユーザから述べられそうもないであろう。したがって、例示的な実施態様は、タスクの種類に応じて、ロードされることになるNLUモデルを変更する。
加えて、たとえシステムが1つだけのタスクを対象としていても、ユーザが述べる可能性があるダイアログ行為が、ダイアログ状態またはダイアログ履歴に応じて変更されることになる場合があり得る。さらに、それぞれのユーザは、NLU上に自分自身の痕跡を有する。たとえば、あるユーザは通常、否定のダイアログ行為を表すために「nay(いや)」と言うが、その他のユーザは、「rather than(〜よりもむしろ)」という意味を表すために「nay(いや)」を使用し、否定のダイアログ行為を表すためにそれを言うことはないかもしれない。その場合、NLUモデルは、それぞれのユーザ向けにカスタマイズされるべきであり、すなわちダイアログ・システムは、それぞれのユーザごとに別々のNLUモデルを用意する。したがって、ダイアログ・システムが複数の種類のNLUモデルを有すると想定すると、このシステムの例示的な実施態様は、ユーザ識別結果、現在のダイアログ・タスク、およびダイアログ履歴に基づいて、最も適切なNLUモデルをロードすることができる。さらに、そのような例示的な実施態様は、NLUモデルの数が1つだけである場合に実現することができる。
次いでユーザ発話は、有限状態トランスデューサ(発話FST)へ変換されることになる(5010)。図7は、発話7010の発話FST7020の一例を示している。1つのアークが、発話における1つのチャンクを示している。FSTのアークは、発話における任意の数のワードのすべての組合せを含む。ダイアログ・システムの計算上の限界に起因して、1つのアークに関するワードの最大数を制限するために制約を設定することができる。次いで、発話におけるすべてのチャンクを見るために反復が開始する(5020)。着目されているチャンクがシード内に含まれている(5030)(yes)場合には、そのチャンクは、対応するダイアログ行為およびその関連性値6040と結び付けられる(5040)。関連性値6040は、チャンクとダイアログ行為との間における関係がどれぐらい強いかを示す。FST5010において、「north area」というチャンクは、「inform(area=north)」というダイアログ行為と結び付けられる。なぜなら、シード内の「north area」というチャンクは、「inform(area=north)」というダイアログ行為との間で0.9という関連性値を有するからである。FST内の対応するチャンクは、関連性値に基づいて特定された重みを有することになる。この例示的な実施態様では、シード内の元の関連性値(すなわち0.9)にチャンク内のワードの数(すなわち2)を乗じることによって、重み値が採用される。関連性値にチャンク内のワードの数を乗じることを通じて、より長いワードから入手されたダイアログ行為は、より短いワードから入手されたダイアログ行為に比べて、より確信を持てる。乗算された値は、FSTの重みとみなすことができる。加えて、ASRは、それぞれの認識されたワードの確信値を出力する。したがって、チャンクの重みは、チャンク内のワードのASR確信値に応じて調整されることになる。後ほど説明するが、FST内で最短経路探索を行うことによって、最も確信を持てるダイアログ行為が得られることになり、その最短経路探索では、より低い累積重みを有するFST経路が抽出されることになる。その理由から、関連性値の負の値が、アークの重みとしてFSTへ供給される。FSTに関する最短経路探索またはその他の任意の計算方法が、示されている。
FST内のチャンクがシード内のいずれのチャンクとも異なる場合には、NLUは、セマンティック空間においてFST内のチャンクに十分に近いシード内のチャンクを見つけ出すことを試みる(5050)。十分さの判断は、しきい値基準によって行うことができ、セマンティック空間内の2つのチャンクの間における距離(類似性)が、事前に定義されたしきい値よりも小さい(大きい)場合には、その距離は十分であると判断される。そのようなチャンクが見つかった(5060)(yes)場合には、NLUは、FST内のチャンクを、FST内のチャンクに十分に近いシード内のチャンクのダイアログ行為および関連性値と結び付ける。たとえば、「oriental cuisine(東洋料理)」というフレーズが、シード内の「asian oriental food(アジア東洋フード)」というチャンクに近いと想定されたい(7030)。「asian oriental food」というチャンクは、「inform(food=asian oriental)」という関連のあるダイアログ行為を有する。次いで、FST内の「oriental cuisine」というアークは、対応するダイアログ行為を有し、それは、「inform(food=asian oriental)」である。この場合、このアークの重みは、シード内の関連性値、セマンティック空間内での「oriental cuisine」と「asian oriental food」との間における距離(類似性)、チャンク内のワードの数など、いくつかの手掛かりによって特定される。
FST内のすべてのチャンクに関してこれらのプロセスを行った後に、FSTにおいて最短経路探索が実行される(5070)。最後に、NLUは、最短経路から入手されたダイアログ行為を出力する(5080)。この例(最短経路探索7040、ダイアログ行為出力7050)では、inform(food=asian oriental)およびinform(area=north)という2つのダイアログ行為が出力される。加えて、それぞれのダイアログ行為を導き出すチャンク、およびそれぞれのダイアログ行為のスコア(重みの正の値に等しい)が入手される。ダイアログ行為のスコアは、ダイアログ行為の確信性に関する度合いを示す。
最短経路探索は基本的に、重みの合計が最小化される1つの経路のみを出力する。あるいは、その他のいずれの経路よりも小さい累積重みを有する複数の経路を見つけ出す最短経路探索も、適用可能である。
図4(a)におけるフローへ戻ると、上述の方法によってNLU結果を得た後に、ダイアログ・システムは、入手されたダイアログ行為を、「確信を持てる」、「確認する必要がある」、または「破棄する」に分類する(4032)。この分類は、図8に示されている手順に沿って行われることになる。
図8は、例示的な一実施態様による、NLU出力を分類するための例示的なフローを示している。はじめに、このフローは、NLUによって入手されたすべてのダイアログ行為をチェックする(8010)。この分類手順は、特定のためのいくつかの基準を含む。したがって、基準のモードに応じて別々のプロセスを実行することができる(8020)。第1のモードでは、ダイアログ行為は、そのスコアに基づいて分類される。スコアが、「確信を持てる」に関する事前に定義されたしきい値よりも大きい場合には(8030)、それは、「確信を持てる」として分類される(8060)。そうでなければ、スコアが、「確認する必要がある」に関する事前に定義されたしきい値よりも大きい場合には(8040)、それは、「確認する必要がある」として分類される(8070)。そうでなければ、ダイアログ行為は、「破棄する」として分類される(8050)。
別のモードでは、ユーザとシステムとの会話においてダイアログ途絶に関する判断がある。ダイアログ途絶を検知するためのいくつかの方法がある。たとえば、前のユーザ発話と同じ発話をユーザが言った場合、それが意味しているのは、システムが理解できなかった意図されている発話をユーザが有しており、したがってユーザはその発話を何回か繰り返したことである。したがって、そのような反復の発話が検知された場合には、ダイアログ途絶が生じていると判断することができる。加えて、ダイアログ途絶の検知を達成するために、任意の所望の実施態様を利用することができる。ダイアログ途絶が検知された場合には(8080)、ダイアログ行為は、「確認する必要がある」として分類される。(8070)そうでない場合には、ダイアログ行為は、「確信を持てる」として分類される(8060)。ダイアログ途絶の検知を利用する方法は、ダイアログ行為のスコアを利用する第1のモードに対する利点を有している。スコアは、不適切な値を示す場合があり、スコアが高くなっているが、NLUモデルの貧弱な精度に起因してダイアログ行為が実際には間違っている場合がある。したがって、ダイアログ途絶の検知を使用する方法は、第1の方法の欠点を補う。
別のモードでは、例示的な実施態様は、ダイアログ行為の「ソース」、すなわち、シードまたはセマンティック空間に基づく。上述のように、シードは、はじめは人間の開発者によって作成される。加えて、たとえ自動的にシードを更新する自己学習方法をダイアログ・システムが使用していても、シードは、少なくとも1回はユーザによって確認されたダイアログ行為/チャンク・ペアのみを含む。したがって、ダイアログ行為がシードから導き出された場合には、そのダイアログ行為は、十分な確信性を有すると考えられる。その一方で、セマンティック空間から得られるダイアログ行為は、確信を持てる度合いが低いと特定される。なぜなら、これらは、まだユーザによって確認されていないからである。したがって、ダイアログ行為がシードから得られている場合には(8110)、そのダイアログ行為は、「確信を持てる」と判断され(8060)、そうでない場合には、そのダイアログ行為は、「確認する必要がある」と判断される(8070)。
さらに、図8のそのような判断は、単独で、または任意の組合せで実施されるモードのうちのいずれかに基づくことが可能である。
図4(a)へ戻ると、ダイアログ行為が分類された後に、システムは、サーバが利用可能であるか否かを判断する(4033)。サーバが利用可能である(yes)場合には、フローは4034へ進み、そこでシステムは、サーバにアクセスすることが必要であるか否かを判断する。この判断の詳細は、図9に関連して提供される。
図9は、例示的な一実施態様による、サーバがクエリされる必要があるかどうかに関する例示的なフローを示している。サーバにアクセスすることに関するこの判断も、2つのモードを有する(9010)。第1のモードでは、例示的な実施態様は、ダイアログ行為スコア上でしきい値を使用する。システムは、すべてのダイアログ行為を参照し(9020)、しきい値よりも低いスコアを有しているダイアログ行為を破棄する(9030、9040)。前のプロセスも、しきい値に基づくそのような破棄プロセス(たとえば8050)を有しているが、この場合、サーバは、ダイアログ・システムよりも正確なNLUを有することを期待されている。前の破棄プロセスが行われた時点(8050)において、ダイアログ・システムは、サーバが利用可能であるか否かを知らない。しかしながら、この時点(9040)において、ダイアログ・システムは、サーバが利用可能であることを既に知っている。したがってダイアログ・システムは、「少し確信を持てない」と特定されているダイアログ行為に関してさらに正確なダイアログ行為推定を実施することになる。したがって例示的な実施態様では、9040におけるしきい値は、8050よりも大きい。次いで、ダイアログ行為のうちの少なくとも1つが破棄されている場合には、システムは、サーバにアクセスすることが「必要とされている」と判断する(9050、9060、9070)。
第2のモードでは、システムは、発話テキストを解析し、それを1つまたは複数のフレーズに分割する(9080)。この解析は、所望の実施態様に従って、当技術分野において知られている任意のパーサによって行うことができる。たとえば、「Chinese food in the north part thank you(北の部分にある中華フードです。ありがとうございます)」という発話が解析される場合には、その発話は、「Chinese food」、「in」、「the north part」、「thank」、および「you」というフレーズに分割される。
次にシステムは、いずれの割り振られたダイアログ行為も有していないフレーズを抽出する(9090、9100、9110、9120)。次いでシステムは、現在のダイアログ状態においてユーザが言う可能性があるダイアログ行為のうちのすべてを列挙する(9130)。このプロセスは、ダイアログ・シナリオを参照することによって図1における1107においてダイアログ行為プレディクタによって行われる。ダイアログ・シナリオにおけるそれぞれのダイアログ状態は、いくつかのアーク(すなわちダイアログ状態遷移)を有する。それぞれのアークはまた、対応するダイアログ状態遷移が生じるという状況を示すダイアログ行為を有する。したがって、これらのアークをチェックすることによって、システムは、次にユーザによって述べられる可能性があるすべてのダイアログ行為を列挙することができる。加えて、生のダイアログ行為の代わりに、分類されたダイアログ行為を利用することもできる。たとえば、ダイアログ状態では、続いて起こるダイアログ行為を、inform(area=south)、inform(area=north)、inform(area=west)、inform(area=east)、inform(food=chinese)、inform(food=american)、inform(pricerange=cheap)、inform(pricerange=moderate)、inform(pricerange=expensive)、およびthankyou()として想定することができる。この場合、システムは、これらのダイアログ行為を、inform(area=)、inform(food=)、inform(pricerange=)、およびthankyou()へ分類することができる。次いでシステムは、ダイアログ行為を有していないフレーズの数をチェックする(9140)。その数がしきい値未満である(yes)場合には、システムは、サーバにアクセスする「必要はない」と判断する(9170)。そうでない場合には、システムは、9145へ進んで、ユーザによって述べられると予想されているが実際には述べられていないダイアログ行為の数をチェックする。その数がしきい値未満である(yes)場合には、システムは、サーバにアクセスする「必要はない」と判断する(9150、9170)。そうでない(no)場合には、システムは、サーバにアクセスする「必要がある」と判断する(9160)。
途絶9180は、9140における判断の一例を示している。途絶9180の上側の例は、発話が「Chinese food in the north part」であり、ダイアログ行為を伴わないフレーズは「in」だけであることを示している(「the」というワードも、割り振られたダイアログ行為を有していないが、「the」は、「the north part」というフレーズの一部である)。したがってシステムは、サーバにアクセスする「必要はない」と判断する。途絶9180の下側の例では、ダイアログ行為を伴わないフレーズは、「Chinese food」および「in」である。上側の例よりも多くの、ダイアログ行為を伴わないフレーズがある。したがってプロセスは、さらなる調査のために9145へ進む。
途絶9190は、9150における判断の一例を示している。途絶9190の上側の例は、発話がinform(food=Chinese)およびinform(area=north)というダイアログ行為を有することである。下側の例は、発話がinform(food=Chinese)というダイアログ行為のみを有することである。加えて、予想されるダイアログ行為は、inform(area=)およびinform(food=)であると想定される。したがって、下側の例には、inform(area=)というダイアログ行為が欠けており、したがって、それは、サーバにアクセスする「必要がある」としての判断である。
9150における判断は、いくつかの方法によって行うことができる。予想されるダイアログ行為が、inform(area=)、inform(food=)、inform(pricerange=)、およびthankyou()であると想定されたい。ユーザはしばしば、「inform」ダイアログ行為(inform(area=)、inform(food=)、およびinform(pricerange=))のうちの複数のダイアログ行為を有する発話を行うと予想される場合がある。しかしながら、ユーザはしばしば、単に「thank you(ありがとうございます)」と述べ、これは、単なるthankyou()という対応するダイアログ行為を有する。したがって、別々のタイプのダイアログ行為に関するいくつかの異なるしきい値を設定することができることも、理にかなっている。たとえば、ユーザ発話がthankyou()というダイアログ行為を有する場合には、システムは、予想されるダイアログ行為が入手されたと判断することができ、したがってシステムは、9170へ進み、サーバにアクセスする「必要はない」と判断する。
9140における判断は、いくつかの方法によって行うことができる。フレーズ・レベルの調査だけでなく、ワード・レベルの調査もまた、適用可能である。ワード・レベルの調査を採用する場合には、パーサは必要ではない。加えて、ダイアログ行為を伴わないすべてのワードが機能語である場合には、これらの機能語は、単独のダイアログ行為を有することはほとんどない。したがって、サーバにアクセスする「必要はない」と判断することは、理にかなっている。
図4(a)へ戻ると、サーバ・アクセスに関する判断(4034)が実施された後に、システムは、サーバにアクセスすることが必要とされていると判断された(4040)場合には、4130へ進む。ダイアログ・システムは、ユーザ発話(テキスト)、ダイアログ履歴、ユーザがダイアログ・システムとの間で現在行っているダイアログ・タスク、およびユーザ情報を送信する(4130、4500)。ダイアログ・システムは、ユーザ・スピーチ信号をサーバへ送信することもできる。
サーバの手順は、図10において記述されている。サーバがダイアログ・システムからのアクセスを受信する(10010)場合には、サーバは、ダイアログ・システムからのアップロードされた情報を受信する(10020、4500)。アップロードされた情報がユーザ・スピーチ信号を含み、ASRが必要とされているとサーバが判断した(10025)(yes)場合には、サーバは、ASRを行って、ユーザ・スピーチ信号を発話テキストへ変換する(10030)。このASR方法は、ダイアログ・システムと同じであることが可能である。さらに、サーバ内の音響モデルおよび言語モデルは、ダイアログ・システム内の音響モデルおよび言語モデルよりも高いASR精度を有すると想定されたい。したがって、ダイアログ・システムにおけるASRが、正しいテキストへ変換することに失敗している状況においてさえ、ASRは、サーバでは依然として成功裏に行われることが可能である。
次いで(ダイアログ・システムから送信された、またはサーバにおけるASRによって入手された)発話テキストが、NLUへ送信される。NLUは、発話テキストをダイアログ行為へ変換する(10040)。NLUの方法は、ダイアログ・システムと同じである。加えて、サーバ上のNLUモデルは、その精度の点でダイアログ・システムにおけるNLUモデルよりも優れていると想定されたい。したがって、たとえダイアログ・システムにおけるNLUが、正しいダイアログ行為を得ることに失敗したとしても、それは、サーバにおいて成功裏にNLUを行う高い可能性を有する。
NLU結果は、ダイアログ・システムへ送信されることになり(10050、4510)、ダイアログ・システムは、その情報を受信する(4140)。その後に、ダイアログ・システムは、矛盾している入手されたダイアログ行為同士を解決する(4142)。このプロセスは、図11に示されている。図11におけるプロセスでは、ダイアログ・システムは、入手されたすべてのダイアログ行為を参照する(11050)。次いでダイアログ・システムは、発話における1つのワードが複数のダイアログ行為を導き出すかどうかをチェックする(11060、11070)。ダイアログ・システムにおけるNLU、およびサーバにおけるNLUが、1つの同じワードから別々のダイアログ行為を作成する場合がある。加えて、NLUが、最短経路探索において複数の経路を出力するように構成されている場合に、同じ場合が起こる。これらの場合、プロセスは、ダイアログ行為のスコアを比較し(11080)、より低いスコアを有するダイアログ行為を削除する(11090)。スコアの比較(11080)は、いくつかの異なる方法で実施することができる。たとえば、サーバにおいて入手されたNLU結果は、ダイアログ・システムにおいて入手されたNLU結果よりも高い確信性を有する傾向がある。なぜなら、サーバにおけるNLUモデルは、ダイアログ・システムよりも豊かな知識から作成されたからである。したがって、サーバのNLUスコアは、ダイアログ・システムのNLUスコアに勝るために特定の値を乗じることおよび/または加えることによって増大されることが可能である。その一方で、ダイアログ・システムによって入手されたNLU結果が、サーバから受信されたNLU結果よりも信頼できる場合があり得る。なぜなら、ダイアログ・システムにおけるシードは、ユーザとダイアログ・システムとの間における日々のダイアログ履歴に基づいて自動的に更新されることが可能であるからである。そのような状況では、ダイアログ・システムにおけるNLUモデルは、ユーザの個人的な好みに合うように既にカスタマイズされている可能性がある。その場合、ダイアログ・システムにおいて入手されたNLU結果を優先させることができる。優先させるためのチャンクを知るために、関連性値6040、または所望の実施態様に応じたその他のメトリック(たとえば、本明細書において記述されている肯定的なフィードバック6050、否定的なフィードバック6060、固定フラグ6062、および得票数6064)を基準として使用することができる。
次いでシステムは、矛盾しているダイアログ行為を互いにチェックする(11100)。たとえば、ユーザは、inform(area=south)およびinform(area=north)の両方のダイアログ行為を含む発話を同時に言うことはないかもしれない。なぜなら、それらは相互に排他的であると言えるからである。別の例は、ユーザがaffirm()およびnegate()という2つのダイアログ行為を同時に表すことはないことであり得る。なぜなら、それらは相互に排他的であると言えるからである。そのようなダイアログ行為同士は、「矛盾している」とみなされる。そのような矛盾しているダイアログ行為が見つかった場合には、それは、これらのダイアログ行為のスコアを比較し(11120)、次いで、より低いスコアを有しているダイアログ行為を削除する(11130)。ダイアログ行為のスコアの比較(11130)ならびにフロー11080のために、いくつかの異なる方法が適用可能であり得る。次いでループは、11140において、11060へ戻って再び反復することになる。
上述の方法によってNLU結果を得た後に、ダイアログ・システムは、入手されたダイアログ行為を「確信を持てる」、「確認する必要がある」、または「破棄する」に分類する(4144)。このプロセスは、基本的に4032と同じである。4032とは異なる点は、次のとおりである。はじめに、しきい値を4023から変更することができる。次に、第4のモードが図4に加えられており、そこでは、サーバにおけるNLUから入手されたすべてのダイアログ行為が、「確認する必要がある」とみなされることになる(8510)。ダイアログ行為がサーバから得られた場合には、それがユーザにとって正しいか否かをユーザに確認する方がよい。なぜなら、サーバから入手されたこのNLU結果をユーザが見るのは初めてだからである。それらのNLU結果が正しいことがユーザから確認された場合には、そのNLUパターンは、ダイアログ・システム内のNLUモデルに格納されることになり、そしてダイアログ・システム内のNLUは、サーバにアクセスせずに同じNLU結果を出力することができる。加えて、これらのモードの任意の組合せに基づく判断が適用可能である。
次いで、ダイアログ行為が得られなかった(4045)場合には、ダイアログ・システムは、ユーザが言ったことをシステムは理解することができないと言う(4160)。
次いで、1つまたは複数の「確認する必要がある」ダイアログ行為がある(4050)場合には、システムは、これらのダイアログ行為が正しいか否かを確認するようユーザに依頼する。確認ダイアログの例が、図12に示されている。inform(food=australian)およびinform(area=north)という2つのダイアログ行為が見つかり、両方とも確認される必要があると想定されたい。次いで、ダイアログ・システム(すなわち、この図におけるロボット)は、ダイアログ行為が正しいかどうかを確認する(12020)ためのスピーチ出力を行い、ユーザ応答を待つ(4070)。この状況において、システムは、ユーザが、肯定する発話(たとえば「yes」)または否定する発話(たとえば「no」)を言うと想定する。次いでシステムは、ユーザ応答を、肯定、否定、またはその他として分類する(4075)。この分類は、任意の所望の実施態様を通じて、知られている発話分類アルゴリズムを使用することによって行うことができる。分類結果に基づいて、システムは、フィードバック・タプル(12030)を作成する。それらのフィードバック・タプルは、ダイアログ行為(12040)、チャンク(12050)、およびフィードバック(12060)を含むことができる。ユーザ応答が肯定として分類された場合には、ダイアログ行為および対応するチャンクは、肯定的な例とともに格納される(4090)。ユーザ応答が否定として分類された場合には、ダイアログ行為および対応するチャンクは、否定的なフィードバックとともに格納される(4100)。図12は、ユーザがinform(food=australian)を否定し、inform(area=north)を肯定した場合(12030)を示している。
いくつかの状況では、ユーザ応答は、「その他」として分類されることが可能であり、それは、肯定でも否定でもない。その場合、ユーザ応答(テキスト、スピーチ信号、または両方)は、ダイアログ履歴、現在のダイアログ・タスク、ユーザ情報とともにサーバへ送信されることになる(4170、4520)。次いでサーバは、アップロードされたユーザ応答上で分析を行う。サーバ・プロセスは、図13において記述されている。サーバは、ダイアログ・システムからのアクセスを待ち(13010)、次いでダイアログ・システムからの情報を受信する(13020、4520)。ダイアログ・システムからアップロードされた情報に基づいて、サーバは、13100におけるフローに示されているように、フィードバック情報を生成する(13030)。サーバは、ユーザ応答を、肯定、否定、またはその他として分類し(13100)、ダイアログ・システムにおける4075でのプロセスと同様に実施されることが可能である。サーバにおける発話分類のための分類アルゴリズムまたはデータは、精度の点でダイアログ・システムにおける分類アルゴリズムまたはデータよりもよい場合がある。したがって、サーバにおける分類は再び利用される。分類結果が肯定または否定である場合には、サーバは、肯定的なフィードバックまたは否定的なフィードバックをそれぞれ有するフィードバック・タプルを作成する(13120、13130)。分類結果がその他である場合には、サーバは、ユーザ応答上でNLUを行う(13140)。このNLUは、確認ダイアログに対するユーザ応答を分析することに特化している。このNLUの例は、21200から21240までに示されている。ユーザ発話が「I want mandarin cuisine(マンダリン料理がほしいです)」であったと想定されたい。ダイアログ・システムが「It means, you want to inform Australian food, right?(それは、オーストラリア・フードと告げたいという意味ですね?)」と尋ねたときに、ユーザは、「No, I mean Chinese(いいえ、中華という意味です)」と応答した(21200、21210)。このユーザ応答は、ダイアログ行為を分析するために解析され、次いでサーバは、「Chinese」というチャンクがinform(food=chinese)というダイアログ行為を有していると認識した(21220)。このNLU結果から、ユーザの元のフレーズ「mandarin Chinese」は、inform(food=chinese)というダイアログ行為を意味していると特定されることが可能である。したがって、「mandarin cuisine」というチャンク、および肯定的なフィードバックを伴うinform(food=chinese)というダイアログ行為に関するフィードバック・タプルが作成される。加えて、最初のユーザ発話12010上のNLU結果は、「mandarin cuisine」というチャンクが、inform(food=australian)というダイアログ行為を有していることであった。したがって、「mandarin cuisine」というチャンク、および否定的なフィードバックを伴うinform(food=australian)というダイアログ行為に関する1つのさらなるフィードバック・タプルが作成される(21230)。
これらのプロセスを行った後に、フィードバック・タプルは、ダイアログ・システムへ送信されることになる(13150、13160、13170、13040、4530)。
次いでダイアログ・システムは、図4(b)の4180に示されているようにサーバからフィードバック情報を受信する。ダイアログ・システムが何らかのNLU更新を有する場合(すなわち、システムが1つまたは複数のフィードバック・タプルを送信した場合)には、ダイアログ・システムは、自分のNLUモデルを更新する(4200)。
NLUモデルを更新する手順が、図14に示されている。加えて、図6のシードが再び参照される。このシードは、肯定的なフィードバック6050、否定的なフィードバック6060、固定フラグ6062、および得票数6064を含む。肯定的なフィードバックおよび否定的なフィードバックは、それぞれフィードバックが肯定的または否定的である処理されたフィードバック・タプルの数を格納する。固定フラグは、ダイアログ行為/チャンク・ペアが自動的なNLU更新プロセスにおいて変更されるべきでないかを示し、その場合は1となり、そうでない場合は0となる。シードの初期状態では、人間の開発者によって作成されているダイアログ行為/チャンク・ペアは、固定フラグを1に設定されるべきである。なぜなら、これらのダイアログ行為/チャンク・ペアは、十分に確信を持てるものであり、これらの確信を持てるダイアログ行為/チャンク・ペアを使用することによってNLUプロセスを維持するためにそのようなダイアログ行為/チャンク・ペアのパラメータを変更しない方がよいと思われるからである。得票数は、対応するダイアログ行為/チャンク・ペアに関連している入手されたフィードバック・タプルの数を格納する。
この手順は、すべてのフィードバック・タプルを参照する(14010)。次いで、着目されているタプルが、1という固定フラグを伴うシード内に存在するチャンクを有している場合には、それは、いかなる更新プロセスも省く(14020)。更新プロセスが省かれる理由は、チャンクが既に、「強く結び付けられている」ダイアログ行為をシード内に有している場合には、そのチャンクはそのまま保持されるべきであることである。次いで、タプルのダイアログ行為/チャンク・ペアがシード内に見受けられない(14030)場合には、それは、事前に定義された数によって肯定的な/否定的なフィードバックを初期化する。タプル内のフィードバックが肯定的である場合には、それは、肯定的なフィードバックを、事前に定義された値として設定し(通常は、事前に定義された数を1以上として設定する)、否定的なフィードバックを0として設定する(14040、14050)。タプル内のフィードバックが否定的である場合には、それは、否定的なフィードバックを、事前に定義された値として設定し、肯定的なフィードバックを0として設定する(14060)。次いで、得票数が1に設定され、固定フラグが0に設定される(すなわち、固定されない)(14070)。
ダイアログ行為/チャンク・ペアが既にシード内に見受けられる(14030)場合には、タプル内のフィードバックに従って肯定的なフィードバックまたは否定的なフィードバックがインクリメントされる。タプル内のフィードバックが肯定的である場合には、それは、肯定的なフィードバックを、事前に定義された値として設定する(14080、14090、14100)。得票数もインクリメントされる(14110)。
次いで、合計フィードバックに対する肯定的なフィードバックの比率によって関連性値が更新される(14120)。関連性値を更新することによって、何回か肯定的に確認されたダイアログ行為/チャンク・ペアは、より大きな関連性値になり、何回か否定的に確認されたペアは、より小さな関連性値を得る。したがって、この手順は、自動的な様式でNLU精度を改善するための自己学習アルゴリズムを達成する。
関連性値を更新した後に、システムは進んで、ダイアログ行為/チャンク・ペアが固定されるべきか否かを判断する。関連性値が十分に小さいかまたは十分に大きく(14130)、得票数が十分に大きい(14140)場合には、ダイアログ行為/チャンク・ペアは、そのペアが固定されるべきであると判断され、したがって固定フラグは、0から1へ変更される(14150)。この発想は、1つのダイアログ行為/チャンク・ペアが既に何回もユーザにさらされて、ほとんど正しいまたはほとんど間違っていると確認されている場合には、それをユーザにそれ以上確認する必要はないことに基づいている。この発想は、ダイアログ行為を「確認する必要がある」または「確信を持てる」に分類するための新たな基準をもたらす。たとえば、固定フラグが1である場合には、それをユーザにそれ以上確認することは必要ではない。したがってプロセスは、そのダイアログ行為/チャンク・ペアを「確信を持てる」として判断する(図8における8520)。「確認する必要がある」ダイアログ行為の判断のためのその他の任意の基準が、関連性値、肯定的なフィードバック、否定的なフィードバック、固定フラグ、およびシード内の得票数を使用することによって適用可能になるであろう。
次いで、ダイアログ・システムは、ダイアログ・シナリオを読み取り、次のシステム・アクションおよび次のダイアログ状態を特定する(4110)。最後にダイアログ・システムは、アクションを出力し、そのアクションは、スピーチ合成、ロボットの動き、ロボットのアクション、ディスプレイ・スクリーン上での更新などの形態であることが可能である(4120)。次いでダイアログ・システムは、次のユーザ発話を待つ。
さらにダイアログ・システムは、確認ダイアログの頻度を制御または調整することができる。図1の確認頻度アジャスタ1200は、確認頻度を調整するためのユーザ・インターフェース(たとえば、ディスプレイおよびタッチ・パッド)をユーザに提供する。ユーザがそのような確認ダイアログを有したくない場合には、ユーザは、確認頻度アジャスタのユーザ・インターフェースを介して自分の好みを告げることができる。この情報は、確認ダイアログの始動条件に関連しているしきい値を特定するために使用されることになる。
確認ダイアログへのユーザ・フィードバックは、セマンティック空間上でのそれぞれのチャンクの位置を調整するために利用することもできる。2つのチャンクが同じダイアログ行為を有していると特定された場合には、それらのチャンクの位置は、互いにさらに近くへ移動される。そうでなければ、2つのチャンクが別々のダイアログ行為を有していると特定された場合には、それらのチャンクの位置は、互いからさらに遠くへ離れるように移動される。この位置の変更は、非線形座標変換などの任意の所望の実施態様によって実施することができる。
したがって、上述の第1の例示的な実施態様では、ダイアログ・システムは、NLUモデルを自動的に更新することができ、システムに対する実際のユーザ応答を利用することによってNLU精度を改善する。上述の第1の例示的な実施態様は、サーバが、クライアントよりも高い精度を伴うNLUを有するダイアログ・システムのクライアント/サーバ構成を含む(クライアントは、第1の例示的な実施態様ではダイアログ・システムとして機能する)。クライアントは、サーバのNLUからの支援が必要とされる場合にのみ、サーバに依頼を行う。したがって、ユーザへのさらに速い応答時間、ならびに改善されたNLU精度を提供することができる。加えて、クライアントのNLUは、サーバからのNLU更新を使用することに伴って、改善された精度を有することができる。サーバからの更新情報は基本的に、ユーザがシステムとの間で実際に有したダイアログ履歴に関連している情報に限定される。つまり、サーバからダウンロードされるデータの量は、サーバにおいて生じたすべてのNLU更新がダウンロードされることになる場合よりも小さい。したがって、第1の例示的な実施態様は、より少ないネットワーク・トラフィックを伴う効果的なNLU更新を実現する。
第2の例示的な実施態様: 別のタイプのFSTベースのNLUの使用を通じたダイアログ・システム構成
第2の例示的な実施態様は、NLUの方法を第1の例示的な実施態様から変更している。第2の例示的な実施態様は、NLU上のプロセスの詳細(4030、10040、13140)を第1の例示的な実施態様から変更している。NLUプロセスは、図15に示されている。はじめにシステムは、ユーザ識別結果、現在のダイアログ・タスク、およびダイアログ履歴にとって適切であるNLUモデルをロードする(15005)。次いで発話が、有限状態トランスデューサ(FST)へ変換される(15010)。
FST変換方法は、図16に示されている。第2の例示的な実施態様では、発話テキストは、ASRから入手されることが可能であり、ASRは、N−bestセンテンスを出力し、N−bestセンテンスは、ASRが認識した1つまたは複数のセンテンスを確信性の順に含む。図16の例を参照すると、ユーザは、「Oriental cuisine in the north area」と言っており(16010)、N−best ASRセンテンスは、「Oriental cuisine in the north area」、「Origin cuisine in the north area」、および「Oriental cuisine in a north area」である(16015)と想定されたい。ASRセンテンス内のワードまたはセンテンスのそれぞれは、ASRからの確信値出力を有する。次いで、N−best ASRセンテンスは、コンフュージョン・ネットワークへ変換され(16020)、そこでは、それぞれのワードはそれぞれの確信値を有する。コンフュージョン・ネットワークは、所望の実施態様に従って、当技術分野において知られているワード・アラインメント・アルゴリズムを使用することによって作成されることが可能である。例示的な一実施態様では、コンフュージョン・ネットワーク内のそれぞれの「ソーセージ」(同時に現れるワードのセット)は、任意のワード出力を伴うアーク(図16における「<arb>」アーク)を有しており、それは、後のFST合成プロセスにおけるフレキシブルなマッチングを可能にする。加えて、図16のようなコンフュージョン・ネットワークが生成されることが可能である限り、その他の任意の方法が適用可能である。次いでコンフュージョン・ネットワークは、ASR FSTとみなされ、そこではそれぞれのアークが、認識されたワードを出力として、および否定的な確信値を重みとして有する。
その一方で、セマンティックFST(16030)が、シードから作成される。セマンティックFST内の開始ノードから終了ノードへの経路に沿ったそれぞれのアークが、チャンク内のワードを入力として、ダイアログ行為を出力として(最後のアークのみ)、およびダイアログ行為の確信値の負の値を、シード内の関連性値に基づいて特定される重みとして取る。関連性値は、チャンクのワードの数によって除されることになり、次いで、それぞれのワードに対応するそれぞれのアークが、除された関連性値と同じ重みを有する。ダイアログ行為を特定する上で「重要」であるワードのみに重みが供給されることになることも適用可能である。1つの可能な方法は、内容語のみが重みを有することである。重みは、第1の実施形態において記述したようにチャンク内のワードの数のような任意の手掛かりによって調整されることが可能である。加えて、セマンティックFSTは、アークを有しており、そこでは入力が任意のワード(「<arb>」)であり、出力がヌル(「<eps>」)であり、それは、ASR FSTとセマンティックFSTとの間でのFST合成プロセスにおけるフレキシブルなマッチを可能にする。セマンティックFSTの作成は通常、ユーザがダイアログ・システムとの会話を開始する前に行われる。
次いでNLUプロセスは、ASR FST内のすべてのチャンクをチェックする(15020)。ASR FST内のチャンクが、セマンティック空間内のシードの近いチャンクを有している(15030)場合には、シード内の対応するダイアログ行為/チャンク・ペアが、セマンティックFSTに加えられる(15040)。たとえば、ASR FST内の「oriental cuisine」というチャンクが、セマンティック空間におけるシード内の「Asian oriental food」というチャンクに近い場合には、経路がセマンティックFSTに加えられ、その経路内のアークは、対応するダイアログ行為、チャンク、および関連性スコアを有する(16035)。
次いでNLUは、ASR FSTとセマンティックFSTとの間におけるFST合成を行う(15050)。合成計算の方法は、任意の所望の実施態様に従って実施されることが可能である。FST合成結果の例が、16040に示されている。
次いでNLUは、合成されたFST上で最短経路探索を行う(15060、16050)。最後にシステムは、出力されたダイアログ行為(16060)、ならびに対応するスコアおよびチャンク(15070)を得る。
セマンティック空間をセマンティックFSTに組み込むためのいくつかの方法がある。たとえば、ダイアログ・システムがセマンティックFSTを作成する場合に、システムは、シード内の既に知られているチャンクに近い何らかのワード/フレーズを探索することもできる。次いで、見つかったワード/フレーズは、同じダイアログ行為を有する新たなチャンクとしてセマンティックFSTに加えられることが可能である。そのようなチャンクの重みは、セマンティック空間上の距離(類似性)およびその他の任意の所望の実施態様に基づいて特定されることが可能である。そのような実施態様を通じて、15040および16035に示されているように、新たなユーザ発話が来るたびにセマンティックFSTが修正されることになることは必要ではない。この代替形態の1つの欠点は、知られているチャンクに近いチャンクの多くの候補があり、それによってセマンティックFSTのサイズが巨大になることである。この欠点を回避するために、セマンティック空間に加えられることになる新たなチャンクは、多くのユーザから入手されたダイアログ履歴、公に使用されているダイアログ・コーパス、およびその他の任意のテキスト・データ内に現れるワード/フレーズに限定されることが可能である。別の代替形態は、コンセプトは15040と同じであるが、セマンティック空間に対処するためにFST合成計算プログラムが修正されることが可能であることである。ASR FSTまたはセマンティックFSTを豊かにするための別の方法は、シソーラスなどのワード意味データベースを利用することである。FST内の1つのワードが別のワードと類似の意味を有していることをワード・データベースが示している場合には、NLUは、見つかったワードを元のワードと平行に加えることができる。
加えて、第1の例示的な実施態様のNLUにおけるN−best ASRセンテンスが処理されることが可能である。第1の例示的な実施態様において言及されているように、1つのASRセンテンスがFSTへ変換されることが可能である(7010、7020)。N−best ASRセンテンスが利用可能である場合には、第1の例示的な実施態様と同じ方法を使用することによって、それらのセンテンスのそれぞれが、対応するASR FSTへ変換されることが可能である。次いで、それぞれのASRセンテンスから入手されたこれらのFSTが集められて、結合計算を使用することによって、または任意の所望の実施態様を通じて1つのFSTを構築することが可能である。
したがって第2の例示的な実施態様は、例示的な代替のFSTベースのNLUアルゴリズムを示している。第1の例示的な実施態様のNLUは、ASRにおけるワードのすべての組合せを拡張して、ASR FSTを作成する。その一方で、第2の例示的な実施態様のNLUは、この拡張を必要としない。それは、第1の例示的な実施態様よりも短い計算時間および小さいメモリを用いてNLUプロセスを達成することにつながる。
第3の例示的な実施態様: RNNベースのNLUを使用することを用いたダイアログ・システム構成
第3の例示的な実施態様は、NLUの方法を前述の例示的な実施態様から変更している。第3の例示的な実施態様は、リカレント・ニューラル・ネットワーク(RNN)に基づくNLUアルゴリズムを使用する。
図17は、例示的な一実施態様による、RNNベースのNLUに関するトレーニング・データを示している。このトレーニング・データは、センテンス17010、ダイアログ行為17020、およびワードレベル・ダイアログ行為17030を含むことができる。RNNベースのNLUが使用される場合には、図7に示されているようにトレーニング・データが用意されることが可能である。トレーニング・データを収集するために、開発者は、コーパス収集実験を実施することができ、そのコーパス収集実験では、話者は、自分がダイアログ・システムに何かを尋ねる状況を想像しながら、さまざまなセンテンスを述べる。収集されたセンテンスは次いで、ワード・レベルでそれぞれの発話にダイアログ行為を与えるためにアノテータによって注釈を付けられる。
図18(a)および図18(b)は、例示的な一実施態様による、リカレント・ニューラル・ネットワーク(RNN)、およびそのRNNがトレーニングおよび推定を使用することを示している。RNN(18010、18040)内のそれぞれのセルは、所望の実施態様に従って、Elman RNN、LSTM(Long short−term memory)、GRU(Gated recurrent unit)などであることが可能である。
トレーニング・データを使用することによってRNNがトレーニングされる場合には、ワード(18050)および対応するワードレベル・ダイアログ行為(18060)がRNNへ供給される。RNNへ供給されるダイアログ行為は、IOB2(Inside Outside Beginning 2)タグの形態を有する。次いで、暫定的なRNNパラメータを使用することによって、ワードレベル・ダイアログ行為の推定の対数尤度が計算される。次いで、対数尤度(負の値へ変換された)のすべてが合計される。合計された値は、コスト関数とみなされる。次いで、コスト関数を最小化するようにRNNパラメータが更新される。18070に示されている係数は、マスク値である。通常のRNNトレーニングでは、マスク値は常に1である。しかしながら、トレーニング・データ内のワードレベル・ダイアログ行為のうちのいくつかに関してあるレベルの不確実性があると想定されたい。ダイアログ行為がそのような不確実性を有する場合には、より小さなマスク値を利用して、NLUモデル上でのそのようなダイアログ行為の影響を低減することができる。
実際のNLUプロセスでは、トレーニングされたRNNが使用される。ユーザ発話のワードがRNNへ供給され(18020)、次いでRNNは、対応するダイアログ行為をIOB2フォーマットによって出力する(18030)。IOB2フォーマットを元のダイアログ行為フォーマットへ変換した後に、推定されたダイアログ行為を得ることができる(18080)。ダイアログ行為を導き出すそれぞれのワードレベルRNNセルの事後確率(RNN出力値)から計算することによって、ダイアログ行為のスコアも入手される。複数のRNNセルから1つのダイアログ行為が導き出される場合には、これらのRNNセルからの事後確率出力の間において合計を出すこと、平均を出すこと、最大値を得ること、および/または最小値を得ることによって、ダイアログ行為のスコアが計算されることが可能である。ダイアログ行為のスコアは、入力が内容語であったRNNセルのみの事後確率から計算されることが可能である。ワード入力(18020、18050)に加えて、POSタグ(Part−of−Speech tag)などのそれぞれのワードのさらなる情報がRNNへ入力されることも可能である。
セマンティック空間を関与させるためのいくつかの方法がある。1つの可能な方法は、RNNにおいて埋め込みレイヤを使用することである。RNNへの入力ワードは典型的に、ワンホット・ベクトルによって表される。ワンホット・ベクトルは、多次元ベクトルであり、それぞれの要素が、それぞれのワードに対応する。このベクトルは、ワードに対応する要素では1の値を有し、その他のすべての要素は、0に設定される。このベクトルは次いで、ワンホット・ベクトルと埋め込みマトリックス(埋め込みレイヤのパラメータ)とを乗じることによって、ワンホット・ベクトルよりも少ない次元を伴う高密度の多次元ベクトルへ圧縮される。この埋め込みプロセスは、セマンティック空間上での射影とほとんど同じ効果を有し、類似の意味を有する2つのワードからの埋め込まれたベクトル同士が、互いに近い位置に置かれる。したがって、埋め込みレイヤを組み込むことによってセマンティック空間を実現することができる。加えて、図17に示されているトレーニング・データ上で、または大きなテキスト・コーパス上で任意の所望の実施態様を通じて埋め込みレイヤのパラメータを入手することができる。セマンティック空間を関与させるための別の方法は、認識されたワードと類似の意味を有しているワードがRNNの入力に加えられることである。セマンティック空間内のワード間における距離(類似性)を計算することによって類似のワードを見つけ出すために、第1の例示的な実施態様と同じ方法が使用される。1つのRNNセルへの入力として複数のワードを処理するために、「Nホット」ベクトルを使用することが適用可能であり、Nホット・ベクトルでは、入力ワードに対応するすべての要素は、1という値を有し、その他のすべての要素は、0という値を有する。
Nホット・ベクトルの発想はまた、RNNへのN−best ASR入力を達成するために適用可能である。図19は、例示的な一実施態様による、RNNへのN−best ASR入力を達成するための例示的なフローを示している。はじめに、ASRセンテンスを組み込むトレーニング・データが作成される。コーパス収集実験において、話者が、「uh yes a cheap restaurant(あ、はい、安いレストランです)」と言っている(19010)と想定されたい。この発話はASRへ供給され、N−best ASRセンテンスが入手される(19020)。正しい話者発話テキスト(19010)およびN−best ASRセンテンス(19020)から、任意の所望の実施態様に従ってワード・アラインメント方法を使用することによって、ワードレベル・ダイアログ行為を伴うコンフュージョン・ネットワーク(19030)を構築することが可能である。1つのソーセージ(同時のワード・セット; たとえば、「uh」、「huh」、および「oh」)が、説明されているNホット・ベクトル様式によってRNNセルへ供給されることが可能である。加えて、要素の値は、1に設定されないことが可能であり、むしろ、ASRから出力されたそれぞれのワードの確信値に設定されることが可能である。ダイアログ行為推定段階では、ユーザが実際に言ったことは、知られていない場合がある。しかしながら、ASRセンテンスは知られており、したがってシステムは、ASRセンテンスのみからコンフュージョン・ネットワークを構築することができる(19040)。次いでコンフュージョン・ネットワークは、同じ様式によってRNNへ供給される。RNNベースのNLUのトレーニングおよび推定の両方のためにASR N−bestセンテンスを使用するという発想は、ASRセンテンスがワード・エラーを含む場合にNLU精度を改善する上で効果的であることがある。
図20は、例示的な一実施態様による、RNNベースのNLUの例示的なフローを示している。図20のフローは、NLU上のプロセス(4030、10040、13140)に関する、上述の例示的な実施態様からの逸脱である。はじめにシステムは、ユーザ識別結果、現在のダイアログ・タスク、およびダイアログ履歴にとって適切なNLUモデルをロードする(20005)。次いで発話が、コンフュージョン・ネットワークへ変換される(20010)。コンフュージョン・ネットワークは、RNNへ供給され(20020)、RNNからダイアログ行為を入手する(20030)。
図12を参照すると、フィードバック・トレーニング・データ12070が、確認ダイアログに対するユーザ応答から入手されたフィードバック・トレーニング・データを示している。それは、上述の例示的な実施態様において使用されているフィードバック・タプルに相当する。確認ダイアログに対するユーザ応答が受け取られると、ダイアログ行為、ダイアログ行為を導き出したワード、およびユーザからの肯定的な/否定的なフィードバックを使用することによって、フィードバック情報を生成することができる。このフィードバック情報から、フィードバック・トレーニング・データが作成される。フィードバック・トレーニング・データは、ワード12080、タグ12090、および重要度12100を含むことができる。タグは、IOB2タグ・フォーマットによって示されている対応するワードのダイアログ行為を示している。重要度は、タグとワードとのペアがRNNにどれぐらい影響することになるかの度合いの数値を示している。フィードバック・トレーニング・データは次いで、RNNのためのトレーニング・データとして使用される。重要度は、コスト関数計算上のそれぞれのRNNセルのマスク値として使用されると想定されたい。12070において、「in the north part」というフレーズは、そのフレーズが確かにinform(area=north)というダイアログ行為を有していると判断されたので、1という重要度を有している。「mandarin cuisine」というフレーズは、そうではないので、0.2という重要度を有している。12020に示されているユーザ・フィードバックから、システムは、「mandarin cuisine」はinform(food=australian)というダイアログ行為を有していないと判断する。しかしながら、「mandarin cuisine」というフレーズは、別のダイアログ行為を有している。重要度(すなわちマスク値)が、「O」タグを伴って1に設定されている場合には、RNNは、このフレーズがダイアログ行為を有していないことを学習する。「mandarin cuisine」というフレーズは、別のダイアログ行為を有している可能性があるので、このトレーニングは不都合である。したがって、これらのワードの重要度は、より小さな値に設定される。重要度を特定するためのこのポリシーに加えて、ワードとダイアログ行為とのペアが前のユーザ・ダイアログ履歴において頻繁に見受けられた場合に、より大きな重要度を提供することができる。そうでなければ、ワードとダイアログ行為とのペアが新しい場合に、そのワードとダイアログ行為とのペアが、間違ったフィードバックに基づいている可能性に起因して、より小さな重要度を割り振ることができる。さらに、否定的なフィードバックからRNNを適切にトレーニングすることができる。たとえば、「mandarin cuisine」とinform(food=australian)との間において否定的なユーザ・フィードバックが入手された場合には、所望の実施態様に応じて、その他のニューラル・ネットワーク構造、その他のトレーニング基準、またはその他のコスト関数計算を組み込むことによって、「mandarin cuisine」の入力からinform(food=australian)の出力を回避するようにRNNをトレーニングすることができる。
図21は、例示的な一実施態様による、ユーザ・フィードバックを使用することによるNLU更新の手順を示している。図21のフローは、上述の例示的な実施態様における4200のプロセスを変更している。
はじめにシステムは、精度劣化をチェックするためのテスト・データを生成する(21005)。ダイアログ・システムは、ダイアログ履歴を有しており、そこには、前の発話(テキスト)およびNLU結果が格納されている。ダイアログ・システムはまた、ユーザ・フィードバック情報を有している。したがって、発話およびそれらの発話の正しいダイアログ行為を抽出することが可能であり、抽出されたデータは、「テスト・データ」として使用される。
それぞれの発話が、人間のシステム保守管理者による手動でタグ付けされたワードレベル・ダイアログ行為を含む場合に、テスト・データを使用することができる。テスト・データ内の発話は、確認ダイアログにおいて入手された発話だけでなく、ほとんどのユーザがダイアログ・システムに対して述べる標準的な発話、および所望の実施態様によるその他の任意のテスト・データも含むことができる。ダイアログ履歴におけるすべての発話をテスト・データとして参照することも、適用可能である。
システムは、フィードバック・トレーニング・データのすべてを参照する(21010)。次いで、フィードバック・トレーニング・データのそれぞれが精緻化される(21020)。この精緻化プロセスは、フィードバック・トレーニング・データに含まれているワードとダイアログ行為との間における関係をチェックする。その関係が前のフィードバックと矛盾している場合には、ダイアログ行為が、前のフィードバック・データと矛盾しないように編集される。
次いでシステムは、データがRNNのトレーニング・データに加えられる際に、そのデータが精度劣化を引き起こすかをテスト・データ上でチェックする。劣化を特定するための簡単な方法は、データがトレーニング・データに加えられる際にRNNモデルをトレーニングし、次いでテスト・データ上でNLU精度を評価することである。前のRNNモデルがダイアログ行為を正しく入手しているが、新たなRNNモデルが正しいダイアログ行為を得ることに失敗しているテスト・データがある場合には、劣化が生じていると特定される。テスト・データ内のそのような劣化した発話の数がしきい値よりも大きい(yes)場合には、そのデータは、フィードバック・トレーニング・データから除去される。そうでない(no)場合には、そのフィードバック・トレーニング・データは、RNNトレーニング・データに加えられる(21030、21040)。RNNトレーニングが、劣化を見つけ出すのに時間がかかる場合には、劣化を引き起こすデータを見つけ出すためのその他のNLUアルゴリズム(たとえばCRF)を使用することも可能である。最後に、加えられたフィードバック・トレーニング・データを含むトレーニング・データを使用することによって、RNN NLUモデルがトレーニングされる(21050)。前のNLUモデルは、21050においてトレーニングされた新たなRNNモデルによって上書きされる。
図21におけるフィードバック・トレーニング・データ21040は、ユーザ・フィードバック発話がサーバへ送信されてサーバにおいて分析された場合にサーバにおいて生成されるフィードバック情報を示している。内容およびコンセプトは、ダイアログ・システムにおいて行われるフィードバック分析におけるフィードバック・トレーニング・データと同じである。
この第3の例示的な実施態様では、NLUのためにRNNベースのアルゴリズムが使用される場合に、自己学習NLUが利用される。RNNは、トレーニング・センテンスが利用可能である限り、十分なNLU精度を達成することができる。したがって、そのような例示的な実施態様は、ユーザ・フィードバックを使用することによってNLUを改善するための可能性である。
第4の例示的な実施態様: FSTベースのNLUとRNNベースのNLUのハイブリッドを用いたダイアログ・システム構成
第4の例示的な実施態様では、FSTベースのNLUとRNNベースのNLUが組み合わされる。アルゴリズムが、図23に示されている。それは、NLU上のプロセスの詳細(4030、10040、13140)を上述の例示的な実施態様から変更している。はじめに、それは、ユーザ識別結果、現在のダイアログ・タスク、およびダイアログ履歴にとって適切であるNLUモデルをロードする(23005)。次いで、上述の例示的な実施態様によってFSTベースのNLUが行われる(23010、23020)。次いで、上述の例示的な実施態様によってRNNベースのNLUが行われる(23030、23040)。FSTベースのNLUおよびRNNベースのNLUの両方を行った後に、入手されたダイアログ行為が、矛盾しているダイアログ行為同士を解決するように処理される(23045)。このプロセスは、図11と同じであるが、FSTベースの実施態様とRNNベースの実施態様との間において比較可能なスコアを作成するために、スコア調整プロセスが組み込まれている。
図36は、例示的な一実施態様によるFSTベースのNLUおよびRNNベースのNLUの結果から適切なダイアログ行為を選択するための別の例を示している。このダイアログ行為選択プロセスでは、RNN(36010)が利用され、それらのRNNは、どのNLUが、より確信を持てるダイアログ行為を出力するかを示す確信値を出力するようにトレーニングされる。このRNNは、センテンス、正しいダイアログ行為、RNNベースのNLU出力、およびFSTベースのNLU出力を含むデータを使用することによってトレーニングされることが可能である。判断(36060)は、より確信を持てると判断される判断結果の一例を示している。それらの判断結果に続いて、より確信を持てるダイアログ行為が出力されることになる(36070、36080)。それぞれのRNNセル(36010)は、ワード(36020)、RNNベースのNLUからのダイアログ行為出力36040、およびFSTベースのNLUからのダイアログ行為出力(36050)を受け取る。それは、POSタグ(36030)などのワードに関連しているさらなる情報を受け取ることもできる。この実施態様を利用して、いかなる種類のNLU結果も統合することができる。たとえば、図11は、クライアント側のNLUとサーバ側のNLUとの間におけるNLU結果同士の矛盾を解決するための方法を示している。図11の代わりに、図36に示されているダイアログ行為選択アルゴリズムを適用することができ、そこでは、RNN(36010)が、クライアント側のNLUおよびサーバ側のNLUの結果をRNN入力として取る(36040、36050)。
FSTベースのNLUとRNNベースのNLUを統合するための別の方法は、それぞれのRNNがFSTベースのNLUの結果を受け取る構成においてRNNベースのNLUモデルをトレーニングすることである。図18では、それぞれのRNN(18010、18040)が、ワード入力を受け取る(18020、18050)。これに加えて、FSTベースのNLUによって入手されたそれぞれの対応するワードのダイアログ行為をRNN(18010、18040)へ入力することができる。
ハイブリッドNLUに加えて、ダイアログ・システムおよびサーバが、別々のNLUアルゴリズムを使用することも可能である。たとえば、FSTベースのNLUは、ダイアログ・システム(クライアント)に適していると思われる。なぜなら、FSTベースのNLUは、十分なNLU精度を実現するのにシード内の少ないダイアログ行為/チャンク・ペアで済むからである。その一方で、RNNベースのNLUは、サーバに適していると思われる。なぜなら、RNNベースのNLUは、大量のトレーニング・データを必要とするからである。そのようなトレーニング・データは、サーバによって入手可能である。なぜならサーバは、多くのダイアログ・システムに接続されており、それによってサーバは、さまざまなダイアログ・システムから多くのユーザ・フィードバックを得ることができるからである。
RNNベースのNLUのためのトレーニング・データを収集するためには、実際のユーザ・ログを使用することが役立つことがある。しかしながら、実際のユーザ・ログは、「歪んだ」データを含む場合があり、いくつかのダイアログ行為は、ユーザの実際の発話において非常に頻繁に見受けられる場合があるが、ダイアログ行為のうちのほとんどは、数回しか見受けられない場合がある。最終的に、いくつかのダイアログ行為は、ユーザ・ログにおいて対応する発話を有さない場合がある。したがって、そのようなユーザ・ログがRNNベースのNLUのトレーニング・データとして使用されている限り、トレーニングされたRNNベースのNLUは、トレーニング・データ内で生じていないダイアログ行為を認識することが完全に不可能である。その一方で、FSTベースのNLUは、生じると想定されるすべてのダイアログ行為を認識するように開発されることが可能であるが、FSTベースのNLUの全体的な精度は、RNNベースのNLUよりも低くなる傾向がある。この観点から、RNNベースのNLUとFSTベースのNLUを統合するための1つの可能な方法は、次のとおりである。1つのワードが、RNNベースのNLUとFSTベースのNLUとの間において別々のダイアログ行為を有していると想定されたい。したがって、FSTベースのNLUによって得られたダイアログ行為が、RNNベースのNLUのトレーニング・データ内に存在しない場合には、FSTベースのNLUのダイアログ行為が、統合結果として出力される、というルールを設定することができる。加えて、そのようなダイアログ行為は、FSTベースのNLUの低い精度に起因して、正しくない場合がある。したがって、このルールによって出力されたダイアログ行為のすべては、以降のプロセス(4144)において、「確認する必要がある」として分類されることが可能である。
さらに、サーバによって作成されたNLU更新情報は、ダイアログ・システム上で機能するNLUアルゴリズム上での指示を含むことができる。一例は、NLU更新情報が、どのNLUアルゴリズムがダイアログ・システムにおいて使用されるべきであるかの指示を有することである。別の例は、NLU更新が、ダイアログ・システムのNLUアルゴリズムを更新するためのパッチ・プログラムを有することである。
FSTベースのNLUとRNNベースのNLUのハイブリッドを使用することによって、ダイアログ・システムは、図24に示されているように、フィードバック・タプル(24040)およびフィードバック・トレーニング・データ(24080)の両方を入手することができる。ワードとダイアログ行為との間における関係が、フィードバック・タプルとフィードバック・トレーニング・データとの間において異なる場合がある。この相違を利用して、より正確なユーザ・フィードバックを得ることができる。たとえば、1つのワードが、フィードバック・タプルとフィードバック・トレーニング・データとの間において同じダイアログ行為を有する場合には、そのダイアログ行為は、高い確信性レベルを有することができる。その一方で、1つのワードが、フィードバック・タプルとフィードバック・トレーニング・データとの間において別々のダイアログ行為を有する場合には、ダイアログ・システムは、そのような別々のダイアログ行為の中から、より高い確信性を有している1つのダイアログ行為を選ぶことができる。高い確信性のダイアログ行為を選ぶために、所望の実施態様に従って、ダイアログ行為のスコア、ダイアログ履歴に対するフィードバック情報の整合性、およびその他の任意の情報を利用することができる。
この例示的な実施態様におけるハイブリッドNLUは、別々のNLUアルゴリズムのメリットおよびデメリットを補う。FSTベースのNLUは基本的に、たとえシード内のダイアログ行為/チャンク・ペアの数が限られていても、高い精度を達成する。しかしながら、大量のトレーニング・データが利用可能である場合には、RNNベースのNLUは、FSTベースのNLUの精度に勝ることが可能である。したがって、両方のNLUアルゴリズムのハイブリッド構成を使用することによって、トレーニング・データが少ないか多いかにかかわらず、一貫して高い精度を得ることができる。
第5の例示的な実施態様: N−best ASR出力を組み込んだ自己学習NLU
第5の例示的な実施態様では、NLUを更新するために、N−best ASR出力が利用される。図24は、N−best ASR出力からフィードバック情報(すなわち、フィードバック・タプル、フィードバック・トレーニング・データ)をどのようにして生成するかを示している。
N−best ASRセンテンス24010から、上述の例示的な実施態様において言及されているようにFSTベースのアルゴリズムまたはRNNベースのアルゴリズムのいずれかによって24020でNLUが行われることになる。次いで、24030において確認ダイアログが行われる。
フィードバック・タプルを作成する場合(すなわち、FSTベースのNLUが使用される場合には)、ASR出力および対応するダイアログ行為のコンフュージョン・ネットワークを入手することができる(24022)。たとえば、inform(area=north)というダイアログ行為を有しているコンフュージョン・ネットワークの一部分(24025)が、「in」、「the」、「north」、および「nose」というワードを含んでいる。この部分はまた、どのワード同士が互いに接続されているかを示すアークを有している。コンフュージョン・ネットワークのこの部分から、すべての生成されるフレーズ、すなわち、「in the north」、「in the nose」、「in north」、および「in nose」が拡張されることが可能である。この例では、inform(area=north)というダイアログ行為が、ユーザによって肯定的なフィードバックを供給される。したがってダイアログ・システムは、24020に示されているように、これらのフレーズ(すなわちチャンク)を、対応するダイアログ行為(すなわち、inform(area=north))およびフィードバック・タイプ(すなわち肯定的)を伴うフィードバック・タプルとして取る。
フィードバック・トレーニング・データを作成する場合(すなわち、RNNベースのNLUが使用される場合には)、コンフュージョン・ネットワークおよび対応するダイアログ行為(24022)を利用することができる。図18の方法によるRNNのトレーニング・データ(18040、18050、18060、18070)のために、コンフュージョン・ネットワークおよびワードレベル・ダイアログ行為24025を使用することができる。したがって、24080に示されているようにフィードバック・トレーニング・データが用意される場合には、N−best ASR出力を考慮に入れながら、RNNのトレーニング・データのためのユーザ・フィードバックを使用することができる。値24120は、ASRから入手されたワード確信値を示している。これらの値は、上述の例示的な実施態様において記述されているように、RNNへの入力ワードのNホット・ベクトルの要素値として利用されることが可能である。重要度24110も、ASRのワード確信値によって特定されることが可能である。図24は、それぞれの重要度が、対応する認識されたワード内の最大ワード確信値24120と同じ値に設定される一例を示している。加えて、上述の例示的な実施態様と同じポリシーによって重要度を特定することができる。
この第5の例示的な実施態様では、実際の使用においてダイアログ履歴のN−best ASR出力を使用することによるNLU更新方法が示されている。ASR出力において現れるワード・エラーの特徴は、所望の実施態様に従って、環境ノイズのレベル、音響環境、ユーザ・スピーチの特徴などに応じて変更されることが可能である。この例示的な実施態様では、実際の現場において生じるASRワード・エラーの特徴が、自動的にNLUモデルへ取り込まれ組み込まれることが可能である。したがって、この例示的な実施態様は、実際の現場におけるNLU精度を自動的に改善する。
第6の例示的な実施態様: サーバにおける自己学習NLU
この例示的な実施態様では、ユーザ・フィードバックを使用することによるサーバにおける自動的なNLU更新方法が記述されている。
ダイアログ・システムは、ユーザとダイアログ・システムとの間における確認ダイアログにおいて入手されたユーザ・フィードバック(フィードバック・タプル、フィードバック・トレーニング・データ)を格納する。ダイアログ・システムにおいて入手された情報(すなわち、ダイアログ履歴、ユーザ・フィードバック、およびユーザ・プロフィール)は、サーバへアップロードされる。サーバは、図3に示されているように、少なくとも1つまたは複数のダイアログ・システムに接続されている。したがってサーバは、さまざまなダイアログ・システムにわたる多くのユーザ・フィードバックを格納することができる。サーバ内のユーザ・フィードバックを使用することによって、NLUモデルを更新することができる。
図25は、例示的な一実施態様による、サーバにおいてフィードバック・タプルを使用することによってシードをどのようにして更新するかを示している。この手順は、図14に示されているダイアログ・システムにおいてシードを更新することに類似している。図14との相違は、それぞれのタプルのタプル・スコアを計算すること(25015; Mi)であり、タプル・スコアは、肯定的なフィードバックおよび否定的なフィードバック(25050、25060、25090、25100)、ならびに得票数(25070、25110)を更新するために使用される。
タプル・スコアは、タプルがより確信を持てる場合にさらに高くなる値である。タプル・スコアを計算するために、それぞれのユーザ上の評価を取って、ユーザ確信性を特定することになる。ユーザ確信性は、下記の基準に基づいて計算されることが可能である。
− ユーザ履歴から特定されたダイアログの頻度(それがより頻繁である場合には、このユーザの確信性はより高くなるであろう)
− その他のユーザとの間でのユーザ・フィードバックの整合性(ユーザ・フィードバックのうちのほとんどが、その他のユーザとは異なる場合には、このユーザの確信性は低くなる)
− 個々のユーザに関するユーザ・フィードバックの整合性(ユーザ・フィードバックが前の確認ダイアログに対して整合していない場合には、このユーザの確信性は低くなる)
− ユーザ発話上のパラ言語情報(ユーザ・スピーチ上のパラ言語情報、たとえば、調子、声量、無音区間が異常として分類される場合には、このユーザの確信性は低くなる)
タプル・スコアはまた、タプルそのものの確信性によって特定される。計算方法は、下記のとおりである。
− その他のフィードバックとの間でのフィードバックの整合性(着目されているフィードバックが、その他のフィードバックのうちのほとんどとの間で不整合である場合には、このタプルの確信性はより低くなるであろう)
さらに、ユーザ確信性は刻々と変わり得る。ユーザ確信性は、その瞬間におけるダイアログ行動から特定されることになる。加えて、ユーザ確信性は、ダイアログが行われる時間、ダイアログ・タスクの種類、ユーザの環境などによって特定されることが可能である。
このタプル・スコアは、所望の実施態様に従って、手動で特定されることが可能である。タプル確信性を提供するための手動の実施態様では、人間のオペレータが、サーバ内のダイアログ履歴をチェックし、次いでオペレータは、タプル・スコアの値を決定する。
ダイアログを有するユーザは、上述の例示的な実施態様において言及されているように、ユーザ識別子によって特定される。しかしながら、ユーザを識別することができないこともあり得る。そのような状況では、ユーザ確信性の代わりに、ダイアログ・システムの確信性を使用することができる。ダイアログ・システムの確信性は、ユーザ確信性が計算される場合の様式と同じ様式を使用することによって、1つの特定のダイアログ・システムからのすべてのアップロードされた情報から計算されることになる。
タプル・スコアを計算するためのこれらの基準は、上述の範囲に限定されない。
図26は、例示的な一実施態様による、サーバにおいてフィードバック・トレーニング・データを使用することによってRNNベースのNLUのトレーニング・データを更新するためのフローを示している。この手順は、図21に示されているダイアログ・システムにおいてシードを更新する手順に類似している。図21との相違は、それぞれのタプルのデータ・スコアの計算(26015; Mi)を含み、そのスコアは、それぞれのデータの重要度を特定するために使用される(26040)。計算するための方法は、その他の例示的な実施態様において記述されているタプル・スコアを計算するための方法と同じである。
図25および図26の方法によるサーバ内の更新されたNLUモデルをそれぞれのダイアログ・システムへダウンロードすることができる。図22(a)および図22(b)は、例示的な一実施態様による、ダイアログ・システムがサーバから更新を受信した場合にダイアログ・システムにおいてNLUモデルを更新する例示的な手順を示している。
FSTベースのNLUが使用される場合が、図22(a)の22010〜22050に示されている。はじめにダイアログ・システムは、サーバ内の更新されたシードを受信する(22010)。次いでシステムは、更新されたシード内のすべてのダイアログ行為/チャンク・ペアを参照する(22020)。更新されたシード内のダイアログ行為/チャンク・ペアが、ダイアログ・システム内のダイアログ行為/チャンク・ペアと矛盾している(22030)(yes)場合には、更新された情報内のダイアログ行為/チャンク・ペアは破棄され、ダイアログ・システム内のシードを更新するために使用されない(22040)。更新されたシード内のダイアログ行為/チャンク・ペアが、ダイアログ・システム内のシードと矛盾していない(no)場合には、それは、ダイアログ・システムのシード内の新たなダイアログ行為/チャンク・ペアとして使用される(22050)。矛盾検知は、次のように実施することができる。(1)更新されたシード内のダイアログ行為/チャンク・ペアと同じチャンク(ワード)を有しているダイアログ行為/チャンク・ペアがダイアログ・システム内にあるかどうかをチェックし、(2)そのペアが存在する場合には、ダイアログ行為同士が、ダイアログ・システムおよび更新されたシード内のダイアログ行為/チャンク・ペア間において同じであるかどうかをチェックし、(3)ダイアログ行為同士が同じでない場合には、そのペアが矛盾していると判断する。
ダイアログ・システム内のシードがダイアログ・システムのユーザに既に適合されていた可能性がある。言い換えれば、ダイアログ・システムのシード内のダイアログ行為/チャンク・ペアは、ユーザが好むいくつかのNLUルールを含む可能性がある。したがって、ダイアログ・システム内のそのようなタプルが上書きされた場合には、この更新のタイミングから、ユーザの頻繁な発話がダイアログ・システムによって理解されることが不可能になるので、ユーザ経験が衰えることがある。したがってシステムは、ダイアログ・システムのシードに対する更新されたシードの矛盾をチェックする。次いでシステムは、更新されたシード内のダイアログ行為/チャンク・ペアを、そのペアがダイアログ・システムのシードに対して矛盾していない場合にのみ、ダイアログ・システム内のNLUモデルに加える。
RNNベースのNLUが使用される場合が、図22(b)に関する22510〜22550に示されている。はじめにダイアログ・システムは、サーバからNLUモデルをダウンロードする(22510)。次いでダイアログ・システムは、21005と同じ様式によってテスト・データを生成する(22515)。上述の例示的な実施態様において言及されているように、ダイアログ・システムは、ダイアログ履歴またはその他の任意のデータ・ソースからテスト・データを作成することができる。テスト・データのそれぞれは、発話および正しいワードレベル・ダイアログ行為を含むことができる。ダイアログ履歴内のすべての発話をテスト・データとして参照することができる。
次いでダイアログ・システムは、テスト・データ内のすべての発話を参照し(22520)、ダウンロードされたNLUモデルを使用することによってNLUを実施する(22530)。NLU結果が、前のNLUモデルを使用することによって入手された結果とは異なる(22540)(yes)場合には、ダイアログ・システムは、新たなNLUモデルがテスト・データ上で劣化を引き起こすと判断する。そのような劣化を回避するために、ダイアログ・システムは、特別なNLUルールを生成する(22550)。
テスト・データが「I’m glad(うれしいです)」という発話を有していて、ダイアログ行為がthankyou()だったと想定されたい。加えて、前のNLUモデルを使用することを用いたNLUプロセスは、正しいダイアログ行為を入手することができる。「I’m glad」という入力は、thankyou()というダイアログ行為へ成功裏に変換される。NLUモデルが、サーバからダウンロードされたNLUモデルによって置き換えられると、NLU結果は、「I’m glad」という発話上でthankyou()からbye()へ変わる。このような例では、22540のもとで劣化が生じる。この劣化を回避するために、ダイアログ・システムは、特別なルールをNLUモデルに加える。その特別なルールは、「I’m glad」という入力をthankyou()というダイアログ行為へ変換することである。この特別なルールは、特別なルールを格納しているテーブルを参照することによって機能する。加えて、特別なルールからのNLU結果は、RNNベースのアルゴリズムから入手されたNLU結果を上書きする。この様式では、劣化をなくすことができる。
22030において「矛盾」を、または22540において「劣化」を判断するためのいくつかの代替方法がある。たとえば、FSTベースのNLUの場合(22030)、矛盾しているダイアログ行為/チャンク・ペアが実際のダイアログにおいて使用された頻度が少ない場合には、そのようなダイアログ行為/チャンク・ペアは、ユーザにとって重要ではないと特定されることが可能である。したがって、そのようなダイアログ行為/チャンク・ペアは、ダウンロードされたシードによって上書きされることが可能である。RNNベースのNLUの場合(22540)、劣化したテスト・データの発話が実際のダイアログにおいてめったに述べられていない場合には、そのようなテスト・データは、ユーザにとって重要である可能性がある。したがって、そのテスト・データにおける発話は、無視することができる。加えて、「矛盾」または「劣化」が生じた場合には、ユーザは、自分が22040または22550における特別な処置を望んでいることを確かめるよう促されることも可能である。
この例示的な実施態様では、サーバ内のフィードバック情報を使用することによって、NLU更新方法が実施される。このような例示的な実施態様は、さまざまなダイアログ・システムから入手された大量のユーザ・フィードバックを使用することによって、効果的にNLU精度を改善することができる。この実施態様は、ユーザ・フィードバックの不確実性に対処すること、およびユーザ・フィードバックの不確実性を考慮に入れながらユーザ・フィードバックを使用してNLUモデルを更新することも可能である。
この例示的な実施態様はまた、ダイアログ・システムにおけるNLU上でのユーザの適合を容易にし、サーバによって行われたNLU更新を使用することによって全体的なNLU精度を改善する。
第7の例示的な実施態様: イントピックNLUおよびアウトオブトピックNLUを組み合わせるNLUアルゴリズム
第7の例示的な実施態様では、図27に示されている別のNLUアルゴリズムがある。それは、NLU上のプロセスの詳細(4030、10040、13140)を上述の例示的な実施態様から変更している。
はじめに、このアルゴリズムは、ユーザ識別結果、現在のダイアログ・タスク、およびダイアログ履歴に基づいてNLUモデルをロードする(27010)。次いで、上述の例示的な実施態様における方法、すなわち、FSTベースのNLU、RNNベースのNLU、または「ノーマルNLU」と呼ばれるハイブリッドNLU(27020)のうちのいずれかを使用することによって、NLUが実施される。
次いでシステムは、「アウト・オブ・トピック」ダイアログのためのNLUを行う(27030)。上述の例示的な実施態様において言及されているノーマルNLUアルゴリズムは、事前に定義されたダイアログ行為があるという発想に基づいている。しかしながら、実際の人間対マシンのダイアログでは、ユーザが述べる可能性があるすべてのダイアログ行為を予測および用意することは不可能であることがある。したがって、ノーマルNLUがダイアログ行為を理解することができない場合に関する発話に対処することができる代替NLU方法を用意することができる。
所望の実施態様に従って、アウトオブトピック・ダイアログを保管するための任意の方法を使用することができる。そのような方法は、ユーザ発話の入力を入手し、次いでシステム発話を出力する。所望の実施態様に応じて、ダイアログ行為は、出力される必要がない。
この例示的な実施態様では、図28(a)、図28(b)、および図29に示されているように、システム発話選択アルゴリズムが利用される。このシステム発話選択アルゴリズムは、RNNベースの会話モデルに基づいている。ニューラル・ネットワークのRNN構造またはその他の構造上のその他の構成も、適用可能である。
このシステム発話選択アルゴリズムは、図28(a)のダイアログ・コーパス28010を使用し、これは、システムとユーザ発話との多数のペアを含む。ダイアログ・コーパス内の会話トピックがターゲット・タスクに関連していることが、より望ましい。しかしながら、ダイアログ・コーパスのトピックがターゲット・タスクのトピックとは異なることも、適用可能である。
ダイアログ・コーパスは、トレーナ28020へ送信される。それは、ダイアログ・コーパスからの会話モデル28030をトレーニングする。この例示的な実施態様では、会話モデルは、図29に示されているRNNセルを使用してエンコーダ/デコーダ・モデルによって実現されると想定されたい。このモデルは、エンコーダRNN 29010およびデコーダRNN 29020を含む。エンコーダRNNは、上述の例示的な実施態様において言及されているワンホット・ベクトルまたはNホット・ベクトルのフォーマットであることが可能であるユーザ発話のワード(29040)を受け取る。加えて、エンコーダRNNは、さらなる情報29030を受け取ることができ、それは、ダイアログ履歴情報(ユーザ発話、ユーザ・ダイアログ行為、システム発話、およびシステム・ダイアログ行為を含む)、ならびに現在のダイアログ状態における予想されるユーザ・ダイアログ行為を含むことができる。受け取られた生の情報は、その他のRNNまたはその他のニューラル・ネットワークを使用することによって、適切なベクトル表現へ変換されることが可能である。システム・ダイアログ行為は、システム発話を出力することによってダイアログ・システムがユーザに対して表したいことを示すセマンティック表現である。たとえば、「What kind of food would you like?(どのような食べ物がお好きですか?)」というシステム発話は、request(slot=food)というダイアログ行為を有する。
会話モデルは、29030で言及されているさらなる情報とともにダイアログ・コーパス内の「ユーザ」発話を自分が受け取った場合にダイアログ・コーパス内の「システム」発話を出力するようにトレーニングされる。ダイアログ・コーパス上の注釈が完全ではないので、またはダイアログ・コーパスが、ターゲット・タスクとは異なるタスクから入手されているので、さらなる情報29030が利用可能ではない状況があると想定されたい。その場合、会話モデルは、さらなる情報を伴わずにトレーニングされることが可能である。ダイアログ・コーパスの一部分がさらなる情報を有しており、その他の部分がさらなる情報を有していない場合には、会話モデルは、事前トレーニングおよび微調整という2つのステップでトレーニングされることが可能である。事前トレーニング・ステップでは、モデルが、さらなる情報を伴わないデータを使用することによってトレーニングされる。微調整ステップでは、事前トレーニングされたモデルが、さらなる情報を伴うデータを使用することによってさらにトレーニングされる。
トレーニングされた会話モデルは、システム発話を生成する目的でアウトオブトピックNLUのために使用される。アウトオブトピックNLUの手順は、図28(b)、28510〜28560に示されている。はじめにダイアログ・システムは、ユーザ発話28510およびダイアログ履歴28520を既に有している。ダイアログ履歴は、対応するシステム・ダイアログ行為およびユーザ・ダイアログ行為(図にはない)を有することができる。これらは、会話モデル28540を使用してセンテンス・ジェネレータ28530へ入力される。センテンス・ジェネレータは、図29に示されているエンコーダ/デコーダRNNモデルによって実現される。ユーザ発話およびさらなる情報をセンテンス・ジェネレータへ入力することによって、モデルは、デコーダRNN 29020からセンテンスを生成する。ダイアログ・システムは、生成されたセンテンスをシステム発話として採用することができる。しかしながら、この例示的な実施態様では、システム発話の事前に定義された候補から最も適切なシステム発話を選ぶためにセンテンス・ジェネレータが使用される方法がある。エンコーダ/デコーダRNNを使用するセンテンス生成方法は、エンコーダ/デコーダRNNが生成する出力センテンスを開発者が制御することができないという点で不利な点を有する場合がある。そのような状況は、ダイアログ・システムが不適切なシステム発話を提供する結果をもたらすことがある。したがって、例示的な実施態様は、適切に吟味されている多くのセンテンスから1つのセンテンスを選ぶためのモデルを利用する。システム発話の候補が、28550に示されている。RNNのネットワーク構造は、図29に限定されない。たとえば、入力情報29030は、エンコーダRNN 29010へだけでなく、デコーダRNN 29020へ入力されることが可能である。
システムが28550からどのセンテンスを選ぶべきかを特定するために、システムは、ユーザ発話およびさらなる情報を所与として28550内のセンテンスのうちの1つをデコーダRNNが生成する場合の確率を計算する。図29の例は、「Me too! It’s my pleasure(私もです! こちらこそ)」というセンテンス(29050)が、0.6という可能性(29060)を有しており、それは、システム発話の候補の中で最大の可能性であることを示している。したがって、「アウトオブトピック」NLU27030は、生成されたシステム発話28560を出力し、それは、「Me too! It’s my pleasure」である。
この瞬間において、ダイアログ・システムは、ノーマルNLUおよびアウトオブトピックNLUの結果を有する。次いでシステムは、どのNLU結果が採用されるべきであるかを特定する。それは、NLU結果のスコアを比較することによって行われる(27040)。ノーマルNLUのスコアは、上述の実施形態における方法によって特定される。アウトオブトピックNLUのスコアは、29060において言及されているセンテンスの生成の確率を使用することによって特定される。アウトオブトピックNLUのスコアは、システム発話のワードの数によって調整されることが可能である。加えて、アウトオブトピックNLUのスコアは、ユーザが現在のダイアログ状態においてアウトオブトピック発話を行う可能性などのいくつかのメトリックを組み込むことによって調整されることが可能である。
次いで、アウトオブトピックNLU結果のスコアがノーマルNLU結果のスコアよりも大きい場合には、それは、アウトオブトピックNLUの結果を採用する(27060)。そうでない場合には、それは、ノーマルNLUの結果を採用する(27050)。
アウトオブトピックNLU結果が採用された場合には、ダイアログ・システムの後続の行動は、次のとおりである。アウトオブトピックNLUの出力は、システム発話である。したがって、ノーマルNLUが出力するダイアログ行為との間での対処プロセスを利用することは必要ではない。たとえば、4030におけるNLUがアウトオブトピックNLU結果を出力するならば、ダイアログ・システムは次いで、4120のプロセスへジャンプし、そこでアクションを行う。このプロセスにおいて、ダイアログ・システムは、アウトオブトピックNLUの出力センテンスに対応してスピーチ合成を使用してシステム発話を出力する。
アウトオブトピックNLU結果が採用された場合には、次のダイアログ状態は、まだ特定されていない。ダイアログ・シナリオ上での次の状態を特定するためのいくつかの代替方法がある。第1に、アウトオブトピックNLU結果が採用された場合は常にダイアログ状態遷移が生じないことが可能である。第2に、アウトオブトピックNLU結果が採用された場合にダイアログ・シナリオが次のダイアログ状態の定義を有することも可能である。アウトオブトピックNLUによって採用されるシステム発話に応じて次のダイアログ状態が定義されることも可能である。最後に、適切なダイアログ・コーパスが用意されることが可能である場合には、エンコーダ/デコーダRNNモデルを作成することが可能であり、そのモデルでは、デコーダRNNは、システム発話のワードだけでなく、その他の任意の情報、たとえば、次のダイアログ状態、ユーザの次の予想されるダイアログ行為なども出力する。そのような方法でトレーニングされたRNNモデルを利用することによって、アウトオブトピックNLU結果が採用された場合にダイアログ・シナリオ上で次の状態が特定されることが可能である。
この例示的な実施態様は、事前に定義されたダイアログ行為を意図しているユーザ発話だけでなく、ユーザによって言われると開発者が予想しなかった意図を示すユーザ発話も理解することができる代替のNLUアルゴリズムを示している。それは、ユーザ発話の多様性およびユーザの意図の多様性に対するシステム発話の堅牢性を改善する。
第8の例示的な実施態様: システム発話変換
第8の例示的な実施態様では、システム発話が変換される。センテンス変換の目的は、ダイアログ・シナリオ内に格納されている固定されたシステム発話からさまざまなシステム発話を生成することである。
図30(a)および図30(b)は、例示的な一実施態様による、発話変換のプロセスを示している。発話変換を実現するために、発話変換モデル30030が、図30(a)に示されている発話対発話コーパス30010およびトレーナ30020(30005)からトレーニングされる。トレーニングのための発話対発話コーパスが、図31に示されている。発話対発話コーパスは、普通の発話(31010)、システム・ダイアログ行為(31020)、およびリライトされた発話(31030)を含む。普通の発話は、ダイアログ・シナリオにおけるシステム発話と類似の特徴を有する発話である。つまり、普通の発話は通常、簡潔な、明確な、および正式な表現または文法を有している。リライトされたシステム発話は、対応する普通の発話と同じ意味を有するセンテンスを有している。リライトされた発話は、普通の発話よりも多様な表現(たとえば、親しみのある表現、形式張らないワード)を有すると想定される。システム・ダイアログ行為は、対応する普通の発話およびリライトされた発話のダイアログ行為を示す。
発話対発話コーパスを作成するためのいくつかの方法がある。1つの可能な方法は、人間の開発者が、はじめに普通の発話を作成し、次いで普通の発話のうちのそれぞれの代替表現を考えることによって、リライトされた発話を手動で作成することである。別の方法は、はじめに多くのセンテンスが、ダイアログ・コーパス、ウェブ・リソース、またはその他の任意の情報ソースから収集されることである。収集されたセンテンスは、リライトされた発話として使用される。次いで、収集されたセンテンスを簡略化することによって、普通の発話が作成されることになる。センテンスの簡略化は、整数線形計画法アプローチなどの任意の所望の実施態様によって行われることが可能である。
発話変換モデルの詳細が、図32に示されている。それは、エンコーダ/デコーダRNNモデルによって実施される。エンコーダRNN 32010は、普通の発話を自分の入力として取る(32040)。それはまた、さらなる情報32030の入力を取り、さらなる情報32030は、ダイアログ履歴情報と、発話対発話コーパス内で指定されているシステム・ダイアログ行為とを含むことができる。その入力を与えられると、RNNセルは、リライトされた発話(32050)をデコーダRNN(32020)から出力するようにトレーニングされる。RNNのネットワーク構造は、図32に限定されない。たとえば、入力情報32030は、エンコーダRNN 32010へだけでなく、デコーダRNN 32020へ入力されることが可能である。さらなる情報32030は、ユーザの顔、姿勢、動き、およびスピーチなどの情報によって推定されたユーザ・ステータスの情報、すなわち、進行中の会話上での関与、感情ステータス、またはユーザの性格を含むことができる。
ダイアログ・シナリオにおけるセンテンス(30510)を、変換されたシステム発話(30550)へ変換するために、トレーニングされた発話変換モデル(30540)がシステム発話コンバータ(30530)によって使用される。システム発話コンバータ(30530)はまた、システム・ダイアログ行為(30515)、ダイアログ履歴(30520)を入力として受け取る。ダイアログ履歴は、対応するシステム・ダイアログ行為およびユーザ・ダイアログ行為(図では描かれていない)を有することができる。変換されたシステム発話(30550)は次いで、ダイアログ・システムからユーザへ出力される。
発話対発話コーパスが、ターゲット・タスクとは異なるタスクからのダイアログから作成されている場合には、ターゲット・タスク内のダイアログ行為からそれぞれの発話に関する適切なシステム・ダイアログを選ぶことが困難であることがある。1つの代替方法は、一般的なダイアログ行為を使用することである。一般的なダイアログ行為が利用される場合には、自動的な方法で発話上のダイアログ行為を特定することが可能である。そのような一般的なダイアログ行為は、ターゲット・タスクに関して定義されているダイアログ行為とは異なるが、通常のダイアログ制御が基本的に、タスク固有のダイアログ行為を利用し、センテンス・リファイナが基本的に、一般的なダイアログ行為を利用する。つまり、1つのシステム発話が、2つのタイプのダイアログ行為を有することになる。
この例示的な実施態様は、システム発話を変換して表現の品質を改善するための方法を示した。従来のダイアログ・システムのほとんどは、ダイアログ・シナリオ内に登録されている固定されたシステム発話を出力する。システム発話は、固定されたものであり、それによってユーザは、ダイアログ・システムとの会話上に退屈な印象を感じるようになる。この例示的な実施態様は、システム発話の精緻化方法を提供し、ダイアログ・シナリオ内の固定されたシステム発話からのさまざまなシステム発話の作成を容易にする。したがって、そのような例示的な実施態様は、ユーザのためにさらに自然でさらに魅力的な会話を達成する。
第9の例示的な実施態様: ユーザ・ダイアログ行為の予測
この例示的な実施態様では、ダイアログ状態におけるユーザ・ダイアログ行為の予測の代替方法がある。それの元のプロセスが、図9における9130に示されている。このプロセスは、以降の例示的な実施態様において記述されている方法によって置き換えられる。
図33は、例示的な一実施態様による、ユーザ・ダイアログ行為を予測するための手順を示している。この例示的な実施態様におけるダイアログ行為の予測は、マシン学習方法を利用する。はじめに、33010に示されているようにダイアログ・コーパスが用意される。このダイアログ・コーパスは、システム発話、ユーザの発話、および対応するダイアログ行為を含む。システム発話は、「システム」というカテゴリー33020を伴って33030に示されている。ユーザ発話は、「ユーザ」というカテゴリー33020を伴って33030に示されている。それぞれの発話のダイアログ行為は、33040に示されている。このダイアログ・コーパスは、ダイアログ・システムまたはサーバ内に格納されているダイアログ履歴から作成されることが可能である。
ダイアログ行為プレディクタの目的は、ダイアログ履歴を与えられると、ダイアログ行為プレディクタが、ユーザの次のダイアログ行為を予測することである。したがって、ダイアログ行為プレディクタのトレーニング・プロセスは、33050に示されているダイアログ履歴を入力特徴として取り、次いで、ユーザの次のダイアログ行為33060を出力するようにモデルをトレーニングする。
ダイアログ行為プレディクタの形態が、33065に示されている。ダイアログ行為プレディクタは、システム発話エンコーダ33070、ユーザ発話エンコーダ33080、およびダイアログ行為確率カリキュレータ33090を含む。システム発話エンコーダおよびユーザ発話エンコーダは、それぞれシステム発話またはユーザ発話を入力として受け取る。次いで入力発話がエンコードされることになる。これらのエンコーダがRNNによって実施される場合には、エンコーディング・プロセスは、入力情報を、隠されたレイヤの値として保存する。最後に、これらのエンコーダの出力33100が、ダイアログ行為確率カリキュレータへ送信される。ダイアログ行為確率カリキュレータは、ユーザ・ダイアログ行為の確率を、それらのダイアログ行為が次に現れる可能性という点から計算する。ダイアログ行為プレディクタのコンポーネントは、さまざまな形態のニューラル・ネットワークによって実施される。
次のユーザ・ダイアログ行為の予測の方法は、マシン学習ベースのアルゴリズムを使用する。したがって、大量のダイアログ・コーパスが用意される場合には、高い精度を伴うダイアログ行為の予測を達成することができる。
図34は、図1および図3に示されているダイアログ・システムの機能を実施することを容易にされているクライアント・デバイスまたはサーバなど、いくつかの例示的な実施態様における使用に適している例示的なコンピュータ・デバイスを伴う例示的なコンピューティング環境を示している。
コンピューティング環境3400内のコンピュータ・デバイス3405は、1つまたは複数の処理ユニット、コア、またはプロセッサ3410、メモリ3415(たとえば、RAM、ROMなど)、内蔵ストレージ3420(たとえば、磁気、光、ソリッド・ステート・ストレージ、および/もしくは有機)、ならびに/またはI/Oインターフェース3425を含むことができ、それらのいずれも、情報を通信するための通信メカニズムまたはバス3430上に結合されること、またはコンピュータ・デバイス3405内に埋め込まれることが可能である。
コンピュータ・デバイス3405は、入力/ユーザ・インターフェース3435および出力デバイス/インターフェース3440へ通信可能に結合されることが可能である。入力/ユーザ・インターフェース3435および出力デバイス/インターフェース3440の一方または両方は、有線またはワイヤレスのインターフェースであることが可能であり、取り外し可能であり得る。入力/ユーザ・インターフェース3435は、入力を提供するために使用されることが可能である物理的なまたは仮想の任意のデバイス、コンポーネント、センサ、またはインターフェース(たとえば、ボタン、タッチスクリーン・インターフェース、キーボード、ポインティング/カーソル制御、マイクロフォン、カメラ、点字、モーション・センサ、光学リーダなど)を含むことができる。出力デバイス/インターフェース3440は、ディスプレイ、テレビジョン、モニタ、プリンタ、スピーカ、点字などを含むことができる。いくつかの例示的な実施態様では、入力/ユーザ・インターフェース3435および出力デバイス/インターフェース3440は、コンピュータ・デバイス3405に埋め込まれること、または物理的に結合されることが可能である。その他の例示的な実施態様では、その他のコンピュータ・デバイスが、コンピュータ・デバイス3405のための入力/ユーザ・インターフェース3435および出力デバイス/インターフェース3440として機能すること、またはそれらの機能を提供することが可能である。
コンピュータ・デバイス3405の例は、高度にモバイルなデバイス(たとえば、スマートフォン、車両およびその他のマシン内のデバイス、人間および動物によって携帯されるデバイスなど)、モバイル・デバイス(たとえば、タブレット、ノート、ラップトップ、パーソナル・コンピュータ、ポータブル・テレビジョン、ラジオなど)、ならびにモビリティ用に設計されていないデバイス(たとえば、デスクトップ・コンピュータ、その他のコンピュータ、インフォメーション・センタ、1つまたは複数のプロセッサが内蔵および/または結合されているテレビジョン、ラジオなど)を含むことができるが、それらには限定されない。
コンピュータ・デバイス3405は、同じまたは異なる構成の1つまたは複数のコンピュータ・デバイスを含む、任意の数のネットワーク接続されているコンポーネント、デバイス、およびシステムと通信するために(たとえば、I/Oインターフェース3425を介して)外部ストレージ3445およびネットワーク3450へ通信可能に結合されることが可能である。コンピュータ・デバイス3405またはいずれかの接続されているコンピュータ・デバイスは、サーバ、クライアント、シン・サーバ、一般的なマシン、専用マシン、または別のラベルとして機能していること、それらのサービスを提供していること、またはそれらと呼ばれることが可能である。
I/Oインターフェース3425は、コンピューティング環境3400内の少なくともすべての接続されているコンポーネント、デバイス、およびネットワークとの間で情報を通信するために任意の通信またはI/Oプロトコルまたは標準(たとえば、イーサネット(登録商標)、802.11x、ユニバーサル・システム・バス、WiMAX、モデム、セルラー・ネットワーク・プロトコルなど)を使用する有線インターフェースおよび/またはワイヤレス・インターフェースを含むことができるが、それらには限定されない。ネットワーク3450は、任意のネットワークまたはネットワークの組合せ(たとえば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、電話ネットワーク、セルラー・ネットワーク、衛星ネットワークなど)であることが可能である。
コンピュータ・デバイス3405は、一時的なメディアおよび非一時的なメディアを含むコンピュータ使用可能メディアまたはコンピュータ可読メディアを使用すること、および/またはそれらを使用して通信を行うことが可能である。一時的なメディアは、伝送メディア(たとえば、金属ケーブル、光ファイバ)、信号、搬送波などを含む。非一時的なメディアは、磁気メディア(たとえば、ディスクおよびテープ)、光メディア(たとえば、CD ROM、デジタル・ビデオ・ディスク、ブルーレイ・ディスク)、ソリッド・ステート・メディア(たとえば、RAM、ROM、フラッシュ・メモリ、ソリッド・ステート・ストレージ)、ならびにその他の不揮発性のストレージまたはメモリを含む。
コンピュータ・デバイス3405は、いくつかの例示的なコンピューティング環境における技術、方法、アプリケーション、プロセス、またはコンピュータ実行可能命令を実施するために使用されることが可能である。コンピュータ実行可能命令は、一時的なメディアから取り出されること、ならびに非一時的なメディア上に格納されることおよびそこから取り出されることが可能である。それらの実行可能命令は、任意のプログラミング言語、スクリプト言語、およびマシン語(たとえば、C、C++、C#、Java(登録商標)、Visual Basic、Python、Perl、JavaScript(登録商標)、およびその他)のうちの1つまたは複数から生じることが可能である。
プロセッサ3410は、ネイティブ環境または仮想環境において、任意のオペレーティング・システム(OS)(図示せず)のもとで実行することができる。ロジック・ユニット3460、アプリケーション・プログラミング・インターフェース(API)ユニット3465、入力ユニット3470、出力ユニット3475、ならびに、さまざまなユニットが互いに、OSと、およびその他のアプリケーション(図示せず)と通信するためのユニット間通信メカニズム3495を含む1つまたは複数のアプリケーションが展開されることが可能である。記述されているユニットおよび要素は、設計、機能、構成、または実施態様において変更されることが可能であり、提供されている説明には限定されない。
いくつかの例示的な実施態様では、情報または実行命令がAPIユニット3465によって受け取られた場合に、それは、1つまたは複数のその他のユニット(たとえば、ロジック・ユニット3460、入力ユニット3470、出力ユニット3475)へ通信されることが可能である。いくつかの場合では、ロジック・ユニット3460は、ユニット間における情報フローを制御し、上述のいくつかの例示的な実施態様においてAPIユニット3465、入力ユニット3470、出力ユニット3475によって提供されているサービスを指示するように構成されることが可能である。たとえば、1つまたは複数のプロセスまたは実施態様のフローは、ロジック・ユニット3460のみによって、またはAPIユニット3465とともに制御されることが可能である。入力ユニット3470は、例示的な実施態様において記述されている計算のための入力を入手するように構成されることが可能であり、出力ユニット3475は、例示的な実施態様において記述されている計算に基づく出力を提供するように構成されることが可能である。
図35は、例示的な一実施態様による、ロボットなどのクライアント・デバイスに関する例示的なハードウェア図を示している。ロボット3500を含む実施態様では、ロボット3500は、スピーチまたはテキスト入力を介してユーザと対話するように構成されることが可能であり、プロセッサ3501、メモリ3502、通信インターフェース3503、カメラ3504などの1つまたは複数のセンサ、および1つまたは複数のアクチュエータ3505を含むことができる。メモリ3502は、本明細書において記述されている流れ図を実行するためにプロセッサ3501内にロードされることが可能である命令を格納することができる。通信インターフェース3503は、ベースバンド・プロセッサを通じて、図3において記述されているサーバと対話するように構成されることが可能であり、所望の実施態様に応じてスピーチまたは表示されるテキストの形態のダイアログ行為を出力するためのディスプレイまたはスピーカなどのローカル通信インターフェースを提供することもできる。センサ3504は、ユーザからのスピーチを、入力ダイアログへ変換される入力として取るためのマイクロフォンを含むことができ、またはテキスト入力を受け取るように構成されているキーボードまたはタッチ・インターフェースなどのその他の入力デバイスを含むことができる。アクチュエータ3505は、所望の実施態様に従って出力スピーチまたはテキストに同期化されることが可能であるロボット3500の部分(たとえば、アーム、脚、ホイールなど)を作動させるように構成されることが可能である。
例示的な実施態様は、図1に示されているダイアログ・システムのためのシステム、コンピュータ可読メディア、および方法を含むことができ、そのダイアログ・システムは、図34および図35に示されているようなユーザ入力を受け取るためのテキスト入力方法および図1に示されている、サーバと通信するように構成されている第1の自然言語理解(NLU)モデルと共に構成され、ユーザ入力は、ユーザによってタイプされたテキスト入力または図4(a)において記述されているユーザ・スピーチから入手された自動スピーチ認識(ASR)出力のうちの少なくとも1つを含む、クライアント・デバイスと、図3に示されている第2のNLUモデルを含むサーバとを含み、第1のNLUモデルと第2のNLUモデルとは異なる。そのような方法は、第1のNLUモデルを適用することからクライアント・デバイスにおける入力ダイアログのNLU結果を特定するステップと、第1のNLUモデルを適用することから入手されたNLU結果の確信性スコアまたは値がしきい値を満たしていない場合、入力ダイアログ上で第2のNLUモデルを使用することによってNLUプロセスを実行するためにサーバにアクセスすることをクライアント・デバイスに行わせるステップと、第1のNLUモデルを適用することから入手されたNLU結果の確信性スコアまたは値がしきい値を満たしている場合、たとえば図4(a)に示されている第1のNLUモデルを適用することから入手されたNLU結果に基づくアクションをクライアント・デバイスに実行させるステップとを含むことができる。
例示的な実施態様は、第1のNLUモデルを適用することによって入手されたNLU結果が、入力ダイアログ内のワードの数が別のしきい値を下回っていることから導き出されており、かつNLU結果が、入力ダイアログのダイアログ状態において予想されるNLU出力の数よりも少ない場合に関してのみ、NLUプロセスを実行するためにサーバにアクセスすることをクライアント・デバイスに行わせるステップを含むこともでき、予想されるNLU出力は、たとえば図4(a)および図4(b)に示されている入力ダイアログに関連付けられているダイアログ・シナリオから特定される。
例示的な実施態様は、矛盾を探して、クライアント・デバイスのNLU結果におけるダイアログ行為を、サーバのNLU結果において入手されたダイアログ行為と比較するステップと、比較するステップが矛盾を示している場合、図11に示されている、より低い確信性スコアを有する矛盾しているダイアログ行為を破棄するステップとを含むこともできる。
例示的な実施態様は、第1のしきい値よりも高い確信性スコアまたは値を有しているクライアント・デバイスのNLU結果を採用するステップと、NLU結果が、第1のしきい値よりも低い確信性スコアまたは値、および第2のしきい値よりも高い確信性スコアまたは値を有している場合、NLU結果を確認するための確認ダイアログを実施するステップと、NLU結果が、第2のしきい値よりも低い確信性スコアまたは値を有している場合、図8に示されているNLU結果を破棄するステップとを含むこともできる。そのような例示的な実施態様では、確認、採用、および破棄は、NLU結果のダイアログ行為がセマンティック空間から得られたかどうか、ダイアログ行為がサーバから入手されたかどうか、およびダイアログ行為とフレーズとのペアが、図8において記述されているダイアログ行為/チャンク情報から参照される真の固定フラグに関連付けられているかどうか、のうちの少なくとも1つに基づいて行われることが可能である。確認ダイアログを実施するステップは、抽出されたダイアログ行為が正しいかどうかをクエリするステップと、それに応答してフィードバック・タプルを作成するステップであって、抽出されたダイアログ行為が正しいというクエリに応答して、ダイアログ行為と、対応するフレーズとを含むペアを肯定的なフィードバックに関連付けるステップと、抽出されたダイアログ行為が正しくないというクエリに応答して、ダイアログ行為と、対応するフレーズとのペアを否定的なフィードバックに関連付けるステップとを含む、ステップと、フィードバック・タプルを利用して、ダイアログ行為/チャンク情報を更新するステップであって、肯定的なフィードバックに関連付けられているフィードバック・タプルに関して、ダイアログ行為/チャンク情報内の肯定的なフィードバック値をインクリメントするステップと、否定的なフィードバックに関連付けられているフィードバック・タプルに関して、ダイアログ行為/チャンク情報内の否定的なフィードバック値をインクリメントするステップとを含む、ステップと、ダイアログ行為/チャンク・ペアに関して偽であることを示す固定フラグに関して、ダイアログ行為/チャンク・ペアの関連性値を、図6、図8、図11、および図14に示されている否定的なフィードバック値に対する肯定的なフィードバック値の比率として計算するステップとを含むこともできる。
例示的な実施態様では、NLU結果を確認するための確認ダイアログを実施するステップは、別のしきい値を下回る確信性スコアまたは値を有する確認応答に関して、図4(a)または図4(b)に示されているサーバ内の第2のNLUモデルを適用することによって確認応答に関してNLUプロセスを実行するようクライアント・デバイスからサーバへ要求するステップを含むことができる。
例示的な実施態様では、NLU結果を確認するための確認ダイアログを実施するステップは、クライアントおよびサーバのうちの少なくとも1つから、確認ダイアログへの応答に基づいて確信性スコアまたは値を評価するステップを含むことができ、肯定的なフィードバックおよび否定的なフィードバックのインクリメントの値は、たとえば図6〜図14に示されている確信性スコアに基づいて特定される。
例示的な実施態様は、サーバにおいて、クライアント・デバイスからのフィードバックを収集するステップと、サーバにおいて、NLU更新情報を生成するステップと、NLU更新情報をクライアント・デバイスに提供するステップと、NLU情報から第1のNLUモデルを更新するステップとを含むこともでき、更新するステップは、更新するステップをクライアント・デバイスにおいて実行し、それによって、第1のNLUモデルに対する矛盾しているNLU更新をチェックすること、および図21に示されているNLU更新情報を適用することからのテスト・データ上でのNLU精度をチェックすることのうちの少なくとも1つを通じてその精度の劣化が防止されるステップを含む。
例示的な実施態様は、入力ダイアログ上で第2のNLUモデルを使用することによるNLUプロセスの実行に関して、NLUプロセスから入手されたNLU結果をサーバからクライアント・デバイスに提供するステップと、提供されたNLU結果を第1のNLUモデルに登録し、それによって第1のNLUモデルが、図4(a)および図4(b)に示されている入力ダイアログに応答してサーバにアクセスすることなく、提供されたNLU結果を出力するように構成されるステップとを含むこともできる。
例示的な実施態様では、第1のNLUモデルおよび第2のNLUモデルが、有限状態トランスデューサ(FST)ベースのアルゴリズムから生成されることが可能であり、そのアルゴリズムでは、入力ダイアログ内のフレーズがFST上にマップされ、FST内のアークが、対応するダイアログ行為、およびダイアログ行為/チャンク・ペア情報に基づく重みに結び付けられ、第1のNLUモデルまたは第2のNLUモデルを適用することから入力ダイアログのNLU結果を特定するステップは、FST上で最短経路探索を実施するステップと、重みの合計が、図5〜図7、図11、図15、および図16に示されている別のしきい値を下回っている場合最短経路探索の1つまたは複数の経路に沿ってダイアログ行為を出力するステップとを含むことができる。FST内のアークは、入力ダイアログ内のフレーズと、図5〜図7、図16、および図17に示されているダイアログ行為/チャンク・ペア情報内の既に知られているフレーズとの間におけるセマンティック距離に基づくダイアログ行為を含む。
例示的な実施態様では、ダイアログ行為/チャンク・ペア情報は、関連性スコア、肯定的なフィードバック、否定的なフィードバック、得票数、および固定フラグを含むことができ、関連性スコアは、FSTアーク内の重みを特定するために利用され、肯定的なフィードバックは、確認ダイアログへの肯定的なフィードバック応答に応答してインクリメントされ、否定的なフィードバックは、確認ダイアログへの否定的なフィードバック応答に応答してインクリメントされ、得票数は、フィードバック頻度を格納し、固定フラグは、事前に定義されており、対応するダイアログ行為/チャンク・ペアがさらなるプロセスにおいて修正されることを許可されていないかどうかを示し、得票数が得票数しきい値よりも大きく、関連性値が関連性しきい値よりも高いかまたは図7〜図14において記述されている関連性しきい値よりも低い場合に偽から真へ変更されるように構成されている。
例示的な実施態様では、第1のNLUモデルおよび第2のNLUモデルは、マシン学習を利用するシーケンス・ラベリング方法を実施するように構成されているトレーニング・アルゴリズムから生成され、第1のNLUモデルおよび第2のNLUモデルは、センテンスと、センテンス内のそれぞれのワードおよび図17または図26において記述されているそれぞれのセンテンスのうちの少なくとも1つに関する関連付けられているダイアログ行為とを含むトレーニング・データを使用することによってトレーニングされる。個々のワードおよびセンテンスは、ゼロのダイアログ行為に関連付けられることが可能であり、または1つもしくは複数のダイアログ行為に関連付けられることが可能である。
例示的な実施態様は、抽出されたダイアログ行為が正しいかどうかを促すように構成されている確認ダイアログを提供するステップと、NLUアルゴリズム・トレーニングのためにトレーニング・データに加えられる、確認ダイアログへの応答に基づくフィードバック・トレーニング・データを作成するステップとをさらに含むことができ、フィードバック・トレーニング・データを作成するステップは、確認ダイアログへの応答が肯定的である場合、対応するフレーズを、抽出されたダイアログ行為でラベル付けするステップと、確認ダイアログへの応答が否定的である場合、対応するフレーズを、図3から図36までのさまざまな実施態様において記述されている抽出されたダイアログ行為を生成しないようにラベル付けするステップとを含む。
例示的な実施態様では、テキスト入力は、コンフュージョン・ネットワークへ変換されるセンテンス入力の1つまたは複数の候補を含み、この方法は、コンフュージョン・ネットワークを、アークの重みがワードの確信性に基づいて特定される第1のFSTへ変換するステップと、ダイアログ行為/チャンク情報を、ワード入力を受け取ってダイアログ行為を出力する第2のFSTへ変換するステップとをさらに含み、NLUプロセスは、テキスト入力から得られた第1のFSTと、図20〜図24に示されているダイアログ行為/チャンク情報から得られた第2のFSTとを合成するステップを含む。所望の実施態様に応じて、マシン学習アルゴリズムは、ワードの1つまたは複数の候補を含む入力を受け取って図17および図18(a)から図18(b)に示されている入力に対応するダイアログ行為を出力するように構成されているリカレント・ニューラル・ネットワーク(RNN)であることが可能である。
例示的な実施態様では、第1のNLUモデルおよび第2のNLUモデルは、有限状態トランスデューサ(FST)ベースのアルゴリズムと、図17から図26に示されているシーケンス・ラベル付けアルゴリズムとの組合せであるNLUアルゴリズムに関連付けられている。
例示的な実施態様では、第1のNLUモデルおよび第2のNLUモデルのそれぞれは、アウトオブトピックNLUを含み、アウトオブトピックNLUは、ダイアログ・コーパスによってトレーニングされ、ダイアログ履歴情報および入力ダイアログのうちの少なくとも1つを受け取り、システム発話を出力するように構成されており、出力が、第1のNLUモデルおよび第2のNLUモデルにおいて構成されているその他のNLUよりも大きな確信性を有している場合、アウトオブトピックNLUによって出力されたシステム発話が、図4(a)、図4(b)、および図27に示されているように採用される。そのような例示的な実施態様では、アウトオブトピックNLUは、アウトオブトピックNLUモデルからのそれぞれのシステム・センテンスの出力確率に基づいてシステム発話の事前に定義されたリスト内で1つの確信を持てるシステム発話を選ぶように構成されることが可能である。
詳細な説明のいくつかの部分は、コンピュータ内のオペレーションのアルゴリズムおよびシンボル表示という点から提示されている。これらのアルゴリズム記述およびシンボル表示は、データ処理技術分野における技術者たちによって、それらの技術者たちのイノベーションの本質を他の当業者たちに伝達するために使用される手段である。アルゴリズムとは、所望の最終状態または結果へつながる一連の定義されたステップである。例示的な実施態様では、実行されるステップは、具体的な結果を達成するための具体的な量の物理的な操作を必要とする。
特に別段の記載がない限り、論考から明らかなように、この説明を通じて、「処理する」、「算出する」、「計算する」、「特定する」、「表示する」等などの用語を利用している論考は、コンピュータ・システムのレジスタおよびメモリ内の物理的な(電子的な)量として表されているデータを、コンピュータ・システムのメモリまたはレジスタまたはその他の情報ストレージ・デバイス、情報伝送デバイス、または情報表示デバイス内で同様に物理量として表されるその他のデータへと操作および変換する、コンピュータ・システムまたはその他の情報処理デバイスのアクションおよびプロセスを含むことができることがわかる。
例示的な実施態様は、本明細書におけるオペレーションを実行するための装置に関連することも可能である。この装置は、求められている目的のために特別に構築されることが可能であり、または1つもしくは複数のコンピュータ・プログラムによって選択的にアクティブ化もしくは再構成される1つもしくは複数の汎用コンピュータを含むことができる。そのようなコンピュータ・プログラムは、コンピュータ可読ストレージ・メディアまたはコンピュータ可読信号メディアなどのコンピュータ可読メディア内に格納されることが可能である。コンピュータ可読ストレージ・メディアは、有形のメディアを含むことができ、それらの有形のメディアは、光ディスク、磁気ディスク、読み取り専用メモリ、ランダム・アクセス・メモリ、ソリッド・ステート・デバイスおよびドライブ、または、電子情報を格納するのに適しているその他の任意のタイプの有形のまたは非一時的なメディアなどであるが、それらには限定されない。コンピュータ可読信号メディアは、搬送波などのメディアを含むことができる。本明細書において提示されているアルゴリズムおよび表示は、いかなる特定のコンピュータまたはその他の装置にも本質的に関連しているものではない。コンピュータ・プログラムは、所望の実施態様のオペレーションを実行する命令を含む純粋なソフトウェア実施態様を含むことができる。
さまざまな汎用システムが、本明細書における例によるプログラムおよびモジュールとともに使用されることが可能であり、または所望の方法ステップを実行するためのさらに特化している装置を構築することが好都合であると判明する場合もある。加えて、例示的な実施態様は、いずれかの特定のプログラミング言語を参照して記述されているものではない。本明細書において記述されている例示的な実施態様の教示を実施するためにさまざまなプログラミング言語を使用することができることがわかるであろう。プログラミング言語の命令は、1つまたは複数の処理デバイス、たとえば、中央処理装置(CPU)、プロセッサ、またはコントローラによって実行されることが可能である。
当技術分野において知られているように、上述のオペレーションは、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアとの何らかの組合せによって実行されることが可能である。例示的な実施態様のさまざまな態様は、回路およびロジック・デバイス(ハードウェア)を使用して実施されることが可能であり、その一方でその他の態様は、マシン可読メディア(ソフトウェア)上に格納されている命令を使用して実施されることが可能であり、それらの命令は、プロセッサによって実行された場合に、本出願の実施態様を実行するための方法をプロセッサに行わせることになる。さらに、本出願のいくつかの例示的な実施態様は、もっぱらハードウェアで実行されることが可能であり、その一方でその他の例示的な実施態様は、もっぱらソフトウェアで実行されることが可能である。その上、記述されているさまざまな機能は、単一のユニットにおいて実行されることが可能であり、または任意の数の方法で複数のコンポーネントにわたって分散されることが可能である。ソフトウェアによって実行される場合には、それらの方法は、コンピュータ可読メディア上に格納されている命令に基づいて汎用コンピュータなどのプロセッサによって実行されることが可能である。所望の場合には、それらの命令は、圧縮および/または暗号化されたフォーマットでメディア上に格納されることが可能である。
その上、本出願のその他の実施態様は、本明細書の考慮および本出願の教示の実践から当業者にとって明らかになるであろう。記述されている例示的な実施態様のさまざまな態様および/またはコンポーネントは、単独でまたは任意の組合せで使用されることが可能である。本明細書および例示的な実施態様は、例としてのみ考慮されることを意図されており、本出願の真の範囲および趣旨は、添付の特許請求の範囲によって示されている。

Claims (20)

  1. ユーザ入力を受け取るためのテキスト入力方法およびサーバと通信するように構成されている第1の自然言語理解(NLU)モデルと共に構成され、前記ユーザ入力は、前記ユーザによってタイプされたテキスト入力またはユーザ・スピーチから入手された自動スピーチ認識(ASR)出力のうちの少なくとも1つを含む、クライアント・デバイスと、第2のNLUモデルを含むサーバとを含むダイアログ・システムのための方法であって、前記第1のNLUモデルと前記第2のNLUモデルとが異なり、前記方法が、
    前記第1のNLUモデルを適用することから前記クライアント・デバイスにおける入力ダイアログのNLU結果を特定するステップと、
    前記第1のNLUモデルを適用することから入手された前記NLU結果の確信性スコアがしきい値を満たしていない場合、前記入力ダイアログ上で前記第2のNLUモデルを使用することによってNLUプロセスを実行するために前記サーバにアクセスすることを前記クライアント・デバイスに行わせるステップと、
    前記第1のNLUモデルを適用することから入手された前記NLU結果の前記確信性スコアが前記しきい値を満たしている場合、前記第1のNLUモデルを適用することから入手された前記NLU結果に基づくアクションを前記クライアント・デバイスに実行させるステップとを含む方法。
  2. 前記NLUプロセスを実行するために前記サーバにアクセスすることを前記クライアント・デバイスに行わせる前記ステップは、前記第1のNLUモデルを適用することによって入手された前記NLU結果が、前記入力ダイアログ内のワードの数が別のしきい値を下回っていることから導き出されており、かつ前記NLU結果が、前記入力ダイアログのダイアログ状態において予想されるNLU出力の数よりも少ない場合に関してのみ実施され、予想される前記NLU出力が、前記入力ダイアログに関連付けられているダイアログ・シナリオから特定される、請求項1に記載の方法。
  3. 矛盾を探して、前記クライアント・デバイスの前記NLU結果におけるダイアログ行為を、前記サーバのNLU結果において入手されたダイアログ行為と比較するステップと、
    比較する前記ステップが矛盾を示している場合、より低い確信性スコアを有する矛盾しているダイアログ行為を破棄するステップと
    をさらに含む、請求項1に記載の方法。
  4. 第1のしきい値よりも高い確信性スコアを有している前記クライアント・デバイスの前記NLU結果を採用するステップと、
    前記NLU結果が、前記第1のしきい値よりも低い確信性スコア、および第2のしきい値よりも高い確信性スコアを有している場合、前記NLU結果を確認するための確認ダイアログを実施するステップと、
    前記NLU結果が、前記第2のしきい値よりも低い確信性スコアを有している場合、前記NLU結果を破棄するステップと
    をさらに含む、請求項1に記載の方法。
  5. 前記確認、前記採用、および前記破棄が、
    前記NLU結果のダイアログ行為がセマンティック空間から得られたかどうか、
    前記ダイアログ行為が前記サーバから入手されたかどうか、
    前記ダイアログ行為とフレーズとのペアが、ダイアログ行為/チャンク情報から参照される真の固定フラグに関連付けられているかどうか、のうちの少なくとも1つに基づいて行われる、請求項4に記載の方法。
  6. 前記確認ダイアログを実施する前記ステップが、
    抽出されたダイアログ行為が正しいかどうかをクエリするステップと、
    それに応答してフィードバック・タプルを作成するステップであって、
    前記抽出されたダイアログ行為が正しいという前記クエリに応答して、前記ダイアログ行為と、対応するフレーズとを含むペアを肯定的なフィードバックに関連付けるステップと、
    前記抽出されたダイアログ行為が正しくないという前記クエリに応答して、前記ダイアログ行為と前記対応するフレーズとの前記ペアを否定的なフィードバックに関連付けるステップとを含む、ステップと、
    前記フィードバック・タプルを利用して、ダイアログ行為/チャンク情報を更新するステップであって、
    前記肯定的なフィードバックに関連付けられている前記フィードバック・タプルに関して、前記ダイアログ行為/チャンク情報内の肯定的なフィードバック値をインクリメントするステップと、
    否定的なフィードバックに関連付けられている前記フィードバック・タプルに関して、前記ダイアログ行為/チャンク情報内の否定的なフィードバック値をインクリメントするステップとを含む、ステップと、
    ダイアログ行為/チャンク・ペアに関して偽であることを示す固定フラグに関して、前記ダイアログ行為/チャンク・ペアの関連性値を、前記否定的なフィードバック値に対する前記肯定的なフィードバック値の比率として計算するステップとを含む、請求項4に記載の方法。
  7. 前記NLU結果を確認するための前記確認ダイアログを実施する前記ステップが、
    別のしきい値を下回る確信性スコアを有する確認応答に関して、前記サーバ内の前記第2のNLUモデルを適用することによって前記確認応答に関して前記NLUプロセスを実行するよう前記クライアント・デバイスから前記サーバへ要求するステップを含む、請求項6に記載の方法。
  8. 前記NLU結果を確認するための前記確認ダイアログを実施する前記ステップが、
    前記クライアントおよび前記サーバのうちの少なくとも1つから、前記確認ダイアログへの応答に基づいて確信性スコアを評価するステップを含み、
    前記肯定的なフィードバックおよび前記否定的なフィードバックの前記インクリメントの値が、前記確信性スコアに基づいて特定される、請求項6に記載の方法。
  9. 前記サーバにおいて、前記クライアント・デバイスからのフィードバックを収集するステップと、
    前記サーバにおいて、NLU更新情報を生成するステップと、
    前記NLU更新情報を前記クライアント・デバイスに提供するステップと、
    前記NLU情報から前記第1のNLUモデルを更新するステップとをさらに含み、更新する前記ステップが、
    更新する前記ステップを前記クライアント・デバイスにおいて実行し、それによって、前記第1のNLUモデルに対する矛盾しているNLU更新をチェックすること、および前記NLU更新情報を適用することからのテスト・データ上でのNLU精度をチェックすることのうちの少なくとも1つを通じて前記精度の劣化が防止されるステップを含む、
    請求項4に記載の方法。
  10. 前記入力ダイアログ上で前記第2のNLUモデルを使用することによる前記NLUプロセスの前記実行に関して、前記NLUプロセスから入手された前記NLU結果を前記サーバから前記クライアント・デバイスに提供するステップと、
    前記提供されたNLU結果を前記第1のNLUモデルに登録し、それによって前記第1のNLUモデルが、前記入力ダイアログに応答して前記サーバにアクセスすることなく前記提供されたNLU結果を出力するように構成されるステップと
    をさらに含む、請求項1に記載の方法。
  11. 前記第1のNLUモデルおよび前記第2のNLUモデルが、有限状態トランスデューサ(FST)ベースのアルゴリズムから生成され、前記アルゴリズムでは、前記入力ダイアログ内のフレーズがFST上にマップされ、前記FST内のアークが、対応するダイアログ行為、およびダイアログ行為/チャンク・ペア情報に基づく重みに結び付けられ、
    前記第1のNLUモデルまたは前記第2のNLUモデルを適用することから前記入力ダイアログのNLU結果を特定する前記ステップが、
    前記FST上で最短経路探索を実施するステップと、
    前記重みの合計が別のしきい値を下回っている場合前記最短経路探索の1つまたは複数の経路に沿ってダイアログ行為を出力するステップとを含む、請求項1に記載の方法。
  12. 前記FST内の前記アークが、前記入力ダイアログ内のフレーズと、前記ダイアログ行為/チャンク・ペア情報内の既に知られているフレーズとの間におけるセマンティック距離に基づくダイアログ行為を含む、請求項11に記載の方法。
  13. 前記ダイアログ行為/チャンク・ペア情報が、関連性スコア、肯定的なフィードバック、否定的なフィードバック、得票数、および固定フラグを含み、
    前記関連性スコアが、前記FSTアーク内の前記重みを特定するために利用され、
    前記肯定的なフィードバックが、確認ダイアログへの肯定的なフィードバック応答に応答してインクリメントされ、
    前記否定的なフィードバックが、前記確認ダイアログへの否定的なフィードバック応答に応答してインクリメントされ、
    前記得票数が、フィードバック頻度を格納し、
    前記固定フラグは、事前に定義されており、対応するダイアログ行為/チャンク・ペアがさらなるプロセスにおいて修正されることを許可されていないかどうかを示し、前記得票数が得票数しきい値よりも大きく、前記関連性値が関連性しきい値よりも高いかまたは関連性しきい値よりも低い場合に偽から真へ変更されるように構成されている、
    請求項11に記載の方法。
  14. 前記第1のNLUモデルおよび前記第2のNLUモデルが、マシン学習を利用するシーケンス・ラベリング方法を実施するように構成されているトレーニング・アルゴリズムから生成され、
    前記第1のNLUモデルおよび前記第2のNLUモデルが、センテンスと、前記センテンス内のそれぞれのワードおよびそれぞれのセンテンスのうちの少なくとも1つに関する関連付けられているダイアログ行為とを含むトレーニング・データを使用することによってトレーニングされる、請求項1に記載の方法。
  15. 抽出されたダイアログ行為が正しいかどうかを促すように構成されている確認ダイアログを提供するステップと、
    NLUアルゴリズム・トレーニングのために前記トレーニング・データに加えられる、前記確認ダイアログへの応答に基づくフィードバック・トレーニング・データを作成するステップとをさらに含み、前記フィードバック・トレーニング・データを作成する前記ステップが、
    前記確認ダイアログへの前記応答が肯定的である場合、対応するフレーズを、前記抽出されたダイアログ行為でラベル付けするステップと、
    前記確認ダイアログへの前記応答が否定的である場合、前記対応するフレーズを、前記抽出されたダイアログ行為を生成しないようにラベル付けするステップとを含む、
    請求項14に記載の方法。
  16. 前記テキスト入力が、コンフュージョン・ネットワークへ変換されるセンテンス入力の1つまたは複数の候補を含み、前記方法が、
    前記コンフュージョン・ネットワークを、アークの重みがワードの確信性に基づいて特定される第1のFSTへ変換するステップと、
    ダイアログ行為/チャンク情報を、ワード入力を受け取ってダイアログ行為を出力する第2のFSTへ変換するステップとをさらに含み、
    前記NLUプロセスが、前記テキスト入力から得られた前記第1のFSTと、前記ダイアログ行為/チャンク情報から得られた前記第2のFSTとを合成するステップを含む、請求項1に記載の方法。
  17. 前記マシン学習アルゴリズムが、ワードの1つまたは複数の候補を含む入力を受け取って前記入力に対応するダイアログ行為を出力するように構成されているリカレント・ニューラル・ネットワーク(RNN)である、請求項14に記載の方法。
  18. 前記第1のNLUモデルおよび前記第2のNLUモデルが、有限状態トランスデューサ(FST)ベースのアルゴリズムと、シーケンス・ラベル付けアルゴリズムとの組合せであるNLUアルゴリズムに関連付けられている、請求項1に記載の方法。
  19. 前記第1のNLUモデルおよび前記第2のNLUモデルのそれぞれが、アウトオブトピックNLUを含み、前記アウトオブトピックNLUが、ダイアログ・コーパスによってトレーニングされ、
    ダイアログ履歴情報および前記入力ダイアログのうちの少なくとも1つを受け取り、
    システム発話を出力するように構成されており、前記出力が、前記第1のNLUモデルおよび前記第2のNLUモデルにおいて構成されているその他のNLUよりも大きな確信性を有している場合、前記アウトオブトピックNLUによって出力された前記システム発話が採用される、請求項1に記載の方法。
  20. 前記アウトオブトピックNLUが、前記アウトオブトピックNLUモデルからのそれぞれのシステム・センテンスの出力確率に基づいて前記システム発話の事前に定義されたリスト内で1つの確信を持てるシステム発話を選ぶように構成されている、請求項19に記載の方法。
JP2018162200A 2017-10-26 2018-08-30 自己学習自然言語理解を伴うダイアログ・システム Expired - Fee Related JP6678710B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/794,825 2017-10-26
US15/794,825 US10453454B2 (en) 2017-10-26 2017-10-26 Dialog system with self-learning natural language understanding

Publications (2)

Publication Number Publication Date
JP2019079034A true JP2019079034A (ja) 2019-05-23
JP6678710B2 JP6678710B2 (ja) 2020-04-08

Family

ID=63642512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018162200A Expired - Fee Related JP6678710B2 (ja) 2017-10-26 2018-08-30 自己学習自然言語理解を伴うダイアログ・システム

Country Status (5)

Country Link
US (1) US10453454B2 (ja)
EP (1) EP3477638A3 (ja)
JP (1) JP6678710B2 (ja)
KR (1) KR102117574B1 (ja)
CN (1) CN110019745A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022534390A (ja) * 2019-05-28 2022-07-29 グーグル エルエルシー ストリーミングエンドツーエンドモデルを用いる大規模多言語音声認識
WO2022176124A1 (ja) * 2021-02-18 2022-08-25 日本電信電話株式会社 学習装置、推定装置、それらの方法、およびプログラム

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050131837A1 (en) 2003-12-15 2005-06-16 Sanctis Jeanne D. Method, system and program product for communicating e-commerce content over-the-air to mobile devices
US10810654B1 (en) 2013-05-06 2020-10-20 Overstock.Com, Inc. System and method of mapping product attributes between different schemas
JP2018060268A (ja) * 2016-10-03 2018-04-12 株式会社日立製作所 認識装置および学習システム
US11107462B1 (en) * 2017-10-30 2021-08-31 Facebook, Inc. Methods and systems for performing end-to-end spoken language analysis
JP2019106054A (ja) * 2017-12-13 2019-06-27 株式会社東芝 対話システム
US11003860B2 (en) * 2017-12-29 2021-05-11 DMAI, Inc. System and method for learning preferences in dialogue personalization
US11504856B2 (en) 2017-12-29 2022-11-22 DMAI, Inc. System and method for selective animatronic peripheral response for human machine dialogue
WO2019133710A1 (en) * 2017-12-29 2019-07-04 DMAI, Inc. System and method for dialogue management
US10770094B2 (en) * 2018-01-09 2020-09-08 Intel IP Corporation Routing audio streams based on semantically generated result sets
WO2019160613A1 (en) 2018-02-15 2019-08-22 DMAI, Inc. System and method for dynamic program configuration
WO2019160611A1 (en) 2018-02-15 2019-08-22 DMAI, Inc. System and method for dynamic robot configuration for enhanced digital experiences
US10994421B2 (en) 2018-02-15 2021-05-04 DMAI, Inc. System and method for dynamic robot profile configurations based on user interactions
US11036605B2 (en) 2018-02-21 2021-06-15 International Business Machines Corporation Feedback tuples for detecting data flow anomalies in stream computing environment
KR102476621B1 (ko) 2018-05-07 2022-12-12 구글 엘엘씨 사용자, 자동화된 어시스턴트 및 컴퓨팅 서비스 간의 다중 모드 상호 작용
US11200893B2 (en) * 2018-05-07 2021-12-14 Google Llc Multi-modal interaction between users, automated assistants, and other computing services
US11127395B1 (en) * 2018-05-23 2021-09-21 Amazon Technologies, Inc. Device-specific skill processing
US11763821B1 (en) * 2018-06-27 2023-09-19 Cerner Innovation, Inc. Tool for assisting people with speech disorder
WO2020036190A1 (ja) * 2018-08-15 2020-02-20 日本電信電話株式会社 要点抽出装置、要点抽出方法、及びプログラム
US11082369B1 (en) * 2018-08-24 2021-08-03 Figure Eight Technologies, Inc. Domain-specific chatbot utterance collection
US10891950B2 (en) * 2018-09-27 2021-01-12 International Business Machines Corporation Graph based prediction for next action in conversation flow
US11409961B2 (en) * 2018-10-10 2022-08-09 Verint Americas Inc. System for minimizing repetition in intelligent virtual assistant conversations
KR20200042137A (ko) * 2018-10-15 2020-04-23 삼성전자주식회사 변형 발화 텍스트를 제공하는 전자 장치 및 그것의 동작 방법
KR102228866B1 (ko) * 2018-10-18 2021-03-17 엘지전자 주식회사 로봇 및 그의 제어 방법
US11403596B2 (en) * 2018-10-22 2022-08-02 Rammer Technologies, Inc. Integrated framework for managing human interactions
GB201818234D0 (en) 2018-11-08 2018-12-26 Polyal A dialogue system and a dialogue method
GB201818237D0 (en) * 2018-11-08 2018-12-26 Polyal A dialogue system, a dialogue method, a method of generating data for training a dialogue system, a system for generating data for training a dialogue system
US11194973B1 (en) * 2018-11-12 2021-12-07 Amazon Technologies, Inc. Dialog response generation
JP7115265B2 (ja) * 2018-11-30 2022-08-09 富士通株式会社 対話制御方法、対話制御プログラム、対話制御装置、情報提示方法および情報提示装置
US10740371B1 (en) * 2018-12-14 2020-08-11 Clinc, Inc. Systems and methods for intelligently configuring and deploying a machine learning-based dialogue system
US11017339B2 (en) * 2019-02-05 2021-05-25 International Business Machines Corporation Cognitive labor forecasting
CN109949797B (zh) * 2019-03-11 2021-11-12 北京百度网讯科技有限公司 一种训练语料的生成方法、装置、设备及存储介质
US11514493B1 (en) * 2019-03-25 2022-11-29 Overstock.Com, Inc. System and method for conversational commerce online
US11145296B1 (en) * 2019-03-25 2021-10-12 Amazon Technologies, Inc. Language and grammar model adaptation
US11580970B2 (en) * 2019-04-05 2023-02-14 Samsung Electronics Co., Ltd. System and method for context-enriched attentive memory network with global and local encoding for dialogue breakdown detection
US11205179B1 (en) 2019-04-26 2021-12-21 Overstock.Com, Inc. System, method, and program product for recognizing and rejecting fraudulent purchase attempts in e-commerce
KR102122081B1 (ko) * 2019-05-02 2020-06-26 주식회사 다이얼로그디자인에이전시 인공지능 음성인식 기반 검수기 및 분석기의 상호학습을 통한 자연어 말뭉치 구축 방법
US11195522B1 (en) * 2019-06-17 2021-12-07 Amazon Technologies, Inc. False invocation rejection for speech processing systems
CN110349573A (zh) * 2019-07-04 2019-10-18 广州云从信息科技有限公司 一种语音识别方法、装置、机器可读介质及设备
US11651044B2 (en) * 2019-08-30 2023-05-16 Accenture Global Solutions Limited Intelligent insight system and method for facilitating participant involvement
US11462208B2 (en) * 2019-09-11 2022-10-04 Oracle International Corporation Implementing a correction model to reduce propagation of automatic speech recognition errors
KR20210033837A (ko) * 2019-09-19 2021-03-29 삼성전자주식회사 전자 장치 및 이의 제어 방법
CN110675857A (zh) * 2019-09-23 2020-01-10 湖北亿咖通科技有限公司 一种语音识别自动化测试系统及方法
CN110675871B (zh) * 2019-09-25 2021-03-05 北京蓦然认知科技有限公司 一种语音识别方法及装置
CN110473543B (zh) * 2019-09-25 2020-11-27 北京蓦然认知科技有限公司 一种语音识别方法、装置
CN110704595B (zh) * 2019-09-27 2022-08-23 百度在线网络技术(北京)有限公司 对话的处理方法、装置、电子设备及可读存储介质
KR20210042523A (ko) * 2019-10-10 2021-04-20 삼성전자주식회사 전자 장치 및 이의 제어 방법
US10970493B1 (en) * 2019-10-18 2021-04-06 Clinc, Inc. Systems and methods for slot relation extraction for machine learning task-oriented dialogue systems
US10839033B1 (en) * 2019-11-26 2020-11-17 Vui, Inc. Referring expression generation
CN110990547B (zh) * 2019-11-29 2023-03-14 支付宝(杭州)信息技术有限公司 一种话术生成方法和系统
CN111081220B (zh) * 2019-12-10 2022-08-16 广州小鹏汽车科技有限公司 车载语音交互方法、全双工对话系统、服务器和存储介质
US11444893B1 (en) * 2019-12-13 2022-09-13 Wells Fargo Bank, N.A. Enhanced chatbot responses during conversations with unknown users based on maturity metrics determined from history of chatbot interactions
US11416556B2 (en) * 2019-12-19 2022-08-16 Accenture Global Solutions Limited Natural language dialogue system perturbation testing
US20210192133A1 (en) * 2019-12-20 2021-06-24 International Business Machines Corporation Auto-suggestion of expanded terms for concepts
WO2021137637A1 (en) 2020-01-02 2021-07-08 Samsung Electronics Co., Ltd. Server, client device, and operation methods thereof for training natural language understanding model
CN111243571B (zh) * 2020-01-14 2022-11-15 北京字节跳动网络技术有限公司 文本的处理方法、装置、设备及计算机可读存储介质
CN111259663B (zh) 2020-01-14 2023-05-26 北京百度网讯科技有限公司 信息处理方法和装置
US11386890B1 (en) * 2020-02-11 2022-07-12 Amazon Technologies, Inc. Natural language understanding
US11544721B2 (en) * 2020-02-18 2023-01-03 At&T Intellectual Property I, L.P. Supporting automation of customer service
RU2730693C1 (ru) * 2020-03-11 2020-08-25 Общество с ограниченной ответственностью "Уралинновация" Голосовая роботизированная вопросно-ответная система и способ ее автоматического взаимодействия с электронным устройством пользователя
CN111460832B (zh) * 2020-03-27 2023-11-24 北京百度网讯科技有限公司 对象编码的方法、装置、系统、设备及计算机存储介质
CN113590769A (zh) * 2020-04-30 2021-11-02 阿里巴巴集团控股有限公司 任务驱动型多轮对话系统中的状态追踪方法及装置
CN111858874A (zh) * 2020-05-06 2020-10-30 北京嘀嘀无限科技发展有限公司 对话服务处理方法、装置、设备及计算机可读存储介质
CN113806473A (zh) * 2020-06-17 2021-12-17 华为技术有限公司 意图识别方法和电子设备
AU2020356799B2 (en) * 2020-06-18 2022-09-08 Citrix Systems, Inc. Autonomous learning of entity values in artificial intelligence conversational systems
CN112199470B (zh) * 2020-10-09 2023-12-05 康佳集团股份有限公司 一种基于会话的客诉服务方法、智能终端及存储介质
CN112182189B (zh) * 2020-10-10 2023-06-30 网易(杭州)网络有限公司 一种对话处理方法、装置、电子设备及存储介质
US11900921B1 (en) * 2020-10-26 2024-02-13 Amazon Technologies, Inc. Multi-device speech processing
KR102654480B1 (ko) * 2020-11-05 2024-04-04 한국전자통신연구원 언어학습을 위한 지식 기반 대화 시스템 및 방법
KR102280489B1 (ko) * 2020-11-19 2021-07-22 주식회사 두유비 대규모 사전학습 모델을 학습하여 지성을 기반으로 대화하는 대화 지능 획득 방법
CN112417864B (zh) * 2020-11-29 2023-10-31 中国科学院电子学研究所苏州研究院 基于门控拷贝和掩码的多轮对话省略恢复方法
US11735165B2 (en) * 2020-12-11 2023-08-22 Beijing Didi Infinity Technology And Development Co., Ltd. Task-oriented dialog system and method through feedback
US11907232B2 (en) * 2021-01-12 2024-02-20 Adobe Inc. Facilitating efficient identification of relevant data
EP4027233A1 (en) * 2021-01-12 2022-07-13 Atos France Method, computer program, device for virtually assisting a user with a digital assistant
US20220229991A1 (en) * 2021-01-20 2022-07-21 Oracle International Corporation Multi-feature balancing for natural language processors
JP2022125637A (ja) * 2021-02-17 2022-08-29 富士通株式会社 判定処理プログラム、判定処理方法および情報処理装置
US20240046064A1 (en) * 2021-03-19 2024-02-08 RN Chidakashi Technologies Private Limited System and method of self-learning from an automatic query response generator using machine learning model
WO2022201100A1 (en) * 2021-03-26 2022-09-29 AGvisorPRO, Inc. Connecting devices for communication sessions
US11776542B1 (en) 2021-03-30 2023-10-03 Amazon Technologies, Inc. Selecting dialog acts using controlled randomness and offline optimization
US11861315B2 (en) * 2021-04-21 2024-01-02 Meta Platforms, Inc. Continuous learning for natural-language understanding models for assistant systems
GB202106969D0 (en) * 2021-05-14 2021-06-30 Samsung Electronics Co Ltd Method and apparatus for improving model efficiency
CN113204488A (zh) * 2021-05-26 2021-08-03 南京大学 一种针对递归神经网络驱动的对话系统的自动化测试方法
US11430446B1 (en) 2021-08-12 2022-08-30 PolyAI Limited Dialogue system and a dialogue method
US20230252995A1 (en) * 2022-02-08 2023-08-10 Google Llc Altering a candidate text representation, of spoken input, based on further spoken input
WO2023208383A1 (en) * 2022-04-29 2023-11-02 Abb Schweiz Ag Collective feedback-based decision on model prediction quality
KR102504445B1 (ko) * 2022-07-14 2023-03-02 (주)인티그리트 인공지능형 음성 인식 및 대화 서비스를 지원하는 시스템 및 방법
US11763097B1 (en) * 2022-08-02 2023-09-19 Fmr Llc Intelligent dialogue recovery for virtual assistant communication sessions
CN116842156A (zh) * 2023-06-30 2023-10-03 北京百度网讯科技有限公司 数据生成方法及装置、设备和介质

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418382B1 (en) * 1998-10-02 2008-08-26 International Business Machines Corporation Structure skeletons for efficient voice navigation through generic hierarchical objects
US7050977B1 (en) * 1999-11-12 2006-05-23 Phoenix Solutions, Inc. Speech-enabled server for internet website and method
US6738743B2 (en) * 2001-03-28 2004-05-18 Intel Corporation Unified client-server distributed architectures for spoken dialogue systems
US7191119B2 (en) * 2002-05-07 2007-03-13 International Business Machines Corporation Integrated development tool for building a natural language understanding application
US20040111253A1 (en) * 2002-12-10 2004-06-10 International Business Machines Corporation System and method for rapid development of natural language understanding using active learning
JP2004347732A (ja) * 2003-05-20 2004-12-09 Nippon Telegr & Teleph Corp <Ntt> 言語自動識別方法及び装置
JP2005257917A (ja) * 2004-03-10 2005-09-22 Nippon Telegr & Teleph Corp <Ntt> 音声解釈方法、音声解釈装置、音声解釈プログラム
US8185399B2 (en) 2005-01-05 2012-05-22 At&T Intellectual Property Ii, L.P. System and method of providing an automated data-collection in spoken dialog systems
US8332226B1 (en) * 2005-01-07 2012-12-11 At&T Intellectual Property Ii, L.P. System and method of dynamically modifying a spoken dialog system to reduce hardware requirements
JP4585391B2 (ja) * 2005-06-30 2010-11-24 株式会社東芝 サーバ装置
US9009046B1 (en) * 2005-09-27 2015-04-14 At&T Intellectual Property Ii, L.P. System and method for disambiguating multiple intents in a natural language dialog system
JP2008009153A (ja) * 2006-06-29 2008-01-17 Xanavi Informatics Corp 音声対話システム
US8892439B2 (en) * 2009-07-15 2014-11-18 Microsoft Corporation Combination and federation of local and remote speech recognition
US20110101665A1 (en) * 2009-10-30 2011-05-05 Dasc, Llc Hockey skate
US9171541B2 (en) * 2009-11-10 2015-10-27 Voicebox Technologies Corporation System and method for hybrid processing in a natural language voice services environment
US9245525B2 (en) * 2011-01-05 2016-01-26 Interactions Llc Automated speech recognition proxy system for natural language understanding
US8484031B1 (en) * 2011-01-05 2013-07-09 Interactions Corporation Automated speech recognition proxy system for natural language understanding
US20120253789A1 (en) * 2011-03-31 2012-10-04 Microsoft Corporation Conversational Dialog Learning and Correction
US8601030B2 (en) * 2011-09-09 2013-12-03 International Business Machines Corporation Method for a natural language question-answering system to complement decision-support in a real-time command center
US20130085753A1 (en) * 2011-09-30 2013-04-04 Google Inc. Hybrid Client/Server Speech Recognition In A Mobile Device
US9620122B2 (en) * 2011-12-08 2017-04-11 Lenovo (Singapore) Pte. Ltd Hybrid speech recognition
US9171066B2 (en) * 2012-11-12 2015-10-27 Nuance Communications, Inc. Distributed natural language understanding and processing using local data sources
US9928515B2 (en) * 2012-11-15 2018-03-27 Home Depot Product Authority, Llc System and method for competitive product assortment
US9772994B2 (en) * 2013-07-25 2017-09-26 Intel Corporation Self-learning statistical natural language processing for automatic production of virtual personal assistants
US10186262B2 (en) * 2013-07-31 2019-01-22 Microsoft Technology Licensing, Llc System with multiple simultaneous speech recognizers
US20150120296A1 (en) * 2013-10-29 2015-04-30 At&T Intellectual Property I, L.P. System and method for selecting network-based versus embedded speech processing
EP3757928A1 (en) * 2014-07-31 2020-12-30 Samsung Electronics Co., Ltd. Message service providing device and method of providing content via the same
US10817672B2 (en) * 2014-10-01 2020-10-27 Nuance Communications, Inc. Natural language understanding (NLU) processing based on user-specified interests
US9666192B2 (en) * 2015-05-26 2017-05-30 Nuance Communications, Inc. Methods and apparatus for reducing latency in speech recognition applications
US20160379638A1 (en) * 2015-06-26 2016-12-29 Amazon Technologies, Inc. Input speech quality matching
US9607616B2 (en) * 2015-08-17 2017-03-28 Mitsubishi Electric Research Laboratories, Inc. Method for using a multi-scale recurrent neural network with pretraining for spoken language understanding tasks
US11250218B2 (en) * 2015-12-11 2022-02-15 Microsoft Technology Licensing, Llc Personalizing natural language understanding systems
KR102447513B1 (ko) 2016-01-22 2022-09-27 한국전자통신연구원 점증적 대화지식 자가학습 기반 대화장치 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022534390A (ja) * 2019-05-28 2022-07-29 グーグル エルエルシー ストリーミングエンドツーエンドモデルを用いる大規模多言語音声認識
WO2022176124A1 (ja) * 2021-02-18 2022-08-25 日本電信電話株式会社 学習装置、推定装置、それらの方法、およびプログラム

Also Published As

Publication number Publication date
KR20190046623A (ko) 2019-05-07
US10453454B2 (en) 2019-10-22
EP3477638A3 (en) 2019-06-26
KR102117574B1 (ko) 2020-06-01
CN110019745A (zh) 2019-07-16
JP6678710B2 (ja) 2020-04-08
US20190130904A1 (en) 2019-05-02
EP3477638A2 (en) 2019-05-01

Similar Documents

Publication Publication Date Title
JP6678710B2 (ja) 自己学習自然言語理解を伴うダイアログ・システム
US10762892B2 (en) Rapid deployment of dialogue system
US11270074B2 (en) Information processing apparatus, information processing system, and information processing method, and program
US11450311B2 (en) System and methods for accent and dialect modification
EP4046053A1 (en) On-device convolutional neural network models for assistant systems
US10614809B1 (en) Quality estimation of hybrid transcription of audio
US8374865B1 (en) Sampling training data for an automatic speech recognition system based on a benchmark classification distribution
US10839788B2 (en) Systems and methods for selecting accent and dialect based on context
KR20210158344A (ko) 디지털 어시스턴트를 위한 머신 러닝 시스템
JP6726354B2 (ja) 訂正済みタームを使用する音響モデルトレーニング
US10586528B2 (en) Domain-specific speech recognizers in a digital medium environment
JP7230806B2 (ja) 情報処理装置、及び情報処理方法
US11574637B1 (en) Spoken language understanding models
US11151996B2 (en) Vocal recognition using generally available speech-to-text systems and user-defined vocal training
JP7266683B2 (ja) 音声対話に基づく情報検証方法、装置、デバイス、コンピュータ記憶媒体、およびコンピュータプログラム
US11043215B2 (en) Method and system for generating textual representation of user spoken utterance
JP2008216341A (ja) 誤り傾向学習音声認識装置及びコンピュータプログラム
CN107170447B (zh) 声音处理系统以及声音处理方法
CN110809796B (zh) 具有解耦唤醒短语的语音识别系统和方法
US11574246B2 (en) Updating training examples for artificial intelligence
CN110021295B (zh) 用于识别由语音识别系统生成的错误转录的方法和系统
US11935539B1 (en) Integrating voice controls into applications
JP2022542415A (ja) 発音情報を使用して音声クエリを管理するためのシステムおよび方法
WO2023086075A1 (en) Selectively generating and/or selectively rendering continuing content for spoken utterance completion

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191030

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200310

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200317

R150 Certificate of patent or registration of utility model

Ref document number: 6678710

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees