CN110019745A - 具有自学习自然语言理解的对话系统 - Google Patents
具有自学习自然语言理解的对话系统 Download PDFInfo
- Publication number
- CN110019745A CN110019745A CN201810972114.0A CN201810972114A CN110019745A CN 110019745 A CN110019745 A CN 110019745A CN 201810972114 A CN201810972114 A CN 201810972114A CN 110019745 A CN110019745 A CN 110019745A
- Authority
- CN
- China
- Prior art keywords
- nlu
- conversation activity
- dialogue
- feedback
- user
- 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.)
- Withdrawn
Links
- 230000004044 response Effects 0.000 claims abstract description 45
- 230000000694 effects Effects 0.000 claims description 263
- 238000000034 method Methods 0.000 claims description 116
- 238000012549 training Methods 0.000 claims description 87
- 238000012545 processing Methods 0.000 claims description 63
- 238000004422 calculation algorithm Methods 0.000 claims description 53
- 238000012790 confirmation Methods 0.000 claims description 50
- 238000012360 testing method Methods 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 12
- 230000007850 degeneration Effects 0.000 claims description 12
- 230000033001 locomotion Effects 0.000 claims description 11
- 238000013528 artificial neural network Methods 0.000 claims description 9
- 230000015572 biosynthetic process Effects 0.000 claims description 6
- 238000010801 machine learning Methods 0.000 claims description 6
- 230000000306 recurrent effect Effects 0.000 claims description 6
- 238000003786 synthesis reaction Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 5
- 239000003550 marker Substances 0.000 claims description 2
- 230000002452 interceptive effect Effects 0.000 abstract 1
- 230000006399 behavior Effects 0.000 description 46
- 235000013305 food Nutrition 0.000 description 36
- 230000008569 process Effects 0.000 description 32
- 238000001514 detection method Methods 0.000 description 13
- 230000001413 cellular effect Effects 0.000 description 12
- 230000015654 memory Effects 0.000 description 12
- 241001672694 Citrus reticulata Species 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 238000003860 storage Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000009466 transformation Effects 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 235000013399 edible fruits Nutrition 0.000 description 5
- 238000002156 mixing Methods 0.000 description 5
- 238000007689 inspection Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000007812 deficiency Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 235000013580 sausages Nutrition 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 241000209140 Triticum Species 0.000 description 1
- 235000021307 Triticum Nutrition 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000002996 emotional effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3346—Query execution using probabilistic model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L13/00—Speech synthesis; Text to speech systems
- G10L13/08—Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/26—Speech to text systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/30—Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/065—Adaptation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
- G10L2015/0635—Training updating or merging of old and new templates; Mean values; Weighting
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L2015/081—Search algorithms, e.g. Baum-Welch or Viterbi
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/225—Feedback of the input speech
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Probability & Statistics with Applications (AREA)
- Machine Translation (AREA)
- Telephonic Communication Services (AREA)
Abstract
这里描述的示例实施方式涉及具有自学习自然语言理解(NLU)的对话系统,其包括客户端‑服务器配置。如果客户端中的NLU结果不可信,则NLU将在服务器中再次完成。在对话系统中,人类用户与系统经由语音或文本信息进行通信。这样的产品的示例包括机器人、用于呼叫中心的交互式语音响应系统(IVR)、支持语音的个人设备、汽车导航系统、智能电话以及在人类操作员无法通过手操作设备的工作环境中的语音输入设备。
Description
技术领域
本公开总体上涉及对话系统,更具体地涉及能够从实际的用户系统对话日志学习自然语言理解(NLU)模型的对话系统。
背景技术
相关技术实施方式涉及利用有限态置换器的NLU算法,其中通过使用对于NLU结果的用户响应自动更新和改进NLU模型(即,自学习NLU)。同时,相关技术实施方式能够涉及一种对话系统,其通过利用“对话失败(dialog breakdown)”检测器被维护。对话失败检测器检测用户无法继续进行与对话系统的谈话的情况。对话失败检测器还识别对话失败的原因,其可以涉及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模型的改进。
本公开的各个方面能够包括一种用于对话系统的方法,该对话系统包括:客户端设备,其配置有文本输入方法以接收用户输入,以及用于与服务器通信的第一自然语言理解(NLU)模型,所述用户输入包括由用户键入的文本输入或者从用户语音获取的自动语音识别(ASR)输出中的至少一个;以及服务器,其管理第二NLU模型,其中第一NLU模型和第二NLU模型是不同的。该方法可以包括:从应用第一NLU模型在客户端设备处确定输入对话的NLU结果;对于从应用第一NLU模型获取的NLU结果的置信得分不满足阈值,使得客户端设备访问服务器从而通过对输入对话使用第二NLU模型来执行NLU处理;以及对于从应用第一NLU模型获取的NLU结果的置信得分满足阈值,使得客户端设备基于从应用第一NLU模型获取的NLU结果来执行动作。
本公开的各个方面能够包括一种非瞬态计算机记录介质,其存储用于对话系统的指令,该对话系统包括:配置有接收用户输入的文本输入方法的客户端设备,以及用于与服务器通信的第一自然语言理解(NLU)模型,用户输入包括由用户键入的文本输入或者从用户语音获取的自动语音识别(ASR)输出中的至少一个,并且服务器管理第二NLU模型,其中第一NLU模型和第二NLU模型是不同的。这些指令可以包括:从应用第一NLU模型在客户端设备处确定输入对话的NLU结果;对于从应用第一NLU模型获取的NLU结果的置信得分不满足阈值,使得客户端设备访问服务器从而通过对输入对话使用第二NLU模型来执行NLU处理;以及对于从应用第一NLU模型获取的NLU结果的置信得分满足阈值,使得客户端设备基于从应用第一NLU模型获取的NLU结果来执行动作。
附图说明
图1示出根据示例实施方式的对话系统的组件。
图2示出根据示例实施方式的示例对话情景。
图3示出根据示例实施方式的服务器的组件。
图4(a)和图4(b)示出根据示例实施方式的对话系统的处理流。
图5示出根据示例实施方式的基于FST的NLU的示例流程。
图6示出根据示例实施方式的用于基于FST的NLU的NLU模型。
图7示出根据示例实施方式的与基于FST的NLU有关的详细数据流。
图8示出根据示例实施方式的将NLU输出进行分类的示例流。
图9示出根据示例实施方式的关于是否需要对服务器进行查询的示例流程。
图10示出根据示例实施方式的用于服务器的示例流。
图11示出根据示例实施方式的用于对话系统的示例流。
图12示出根据示例实施方式的对话确认的示例。
图13示出根据示例实施方式的用于服务器对上传的用户响应进行分许的示例流。
图14示出根据示例实施方式的用于更新模型的流程。
图15示出根据示例实施方式的用于NLU处理的示例流。
图16示出根据示例实施方式的FST转换模型。
图17示出根据示例实施方式的用于基于RNN的NLU的训练数据。
图18(a)和图18(b)示出根据示例实施例的递归神经网络(RNN)及其对训练和估计(estimation)的使用。
图19示出根据示例实施方式的实现向RNN的N个最佳ASR输入的示例流程。
图20示出根据示例实施方式的基于RNN的NLU的示例流程。
图21示出根据示例实施方式的通过使用用户反馈的NLU更新的示例流程。
图22(a)和图22(b)示出根据示例实施方式在对话系统中当其接收来自服务器的更新时更新NLU模型的示例过程。
图23示出根据示例实施方式用于将基于FST的NLU和基于RNN的NLU进行组合的示例流程。
图24示出根据示例实施方式如何从N个最佳ASR输出生成反馈信息。
图25示出根据示例实施方式如何通过使用服务器中的反馈多元组来更新种子。
图26示出根据示例实施方式通过使用服务器中的反馈训练数据来更新基于RNN的NLU的训练数据的流程。
图27示出根据示例实施方式将话题内NLU与话题外NLU进行组合的NLU算法的流程。
图28(a)和图28(b)示出根据示例实施方式的系统对话话语系统的系统示意图。
图29示出根据示例实施方式的使用RNN元胞的示例编码器-解码器模型。
图30(a)和图30(b)示出根据示例实施方式的话语转换的处理。
图31示出根据示例实施方式的用于训练的话语到话语语料库。
图32示出根据示例实施方式的示例话语谈话模型。
图33示出根据示例实施方式的预测用户对话行为的过程。
图34示出具有适用一些示例实施方式中使用的示例计算机设备的示例计算环境。
图35示出根据示例实施方式的用于客户端设备(诸如机器人)的示例硬件示意图。
图36示出根据示例实施方式从基于FST的NLU和基于RNN的NLU的结果选择合适的对话行为的另一示例。
具体实施方式
下面详细的描述提供本申请的附图和示例实施方式的进一步细节。为清楚起见,省略附图之间关于附图标记和冗余元件的描述。贯穿说明书所使用的术语是作为示例来提供的并且不旨在是限制性的。例如,术语“自动”的使用可以包含涉及用户或管理员对实施方式的某些方面的控制的全自动或半自动实施方式,这取决于本领域普通技术人员实践本发明的实施方式的期望实现。可以由用户通过用户界面或其他输入装置进行选择,或者可以通过期望的算法来实现。在此所述的示例实施方式可以单独使用或组合使用,并且示例实施方式的功能可以通过根据期望的实施方式的任何装置来实现。
在第一示例实施方式中,存在利用基于有限状态置换器(FST)的NLU的对话系统配置。
(1)对话系统和云服务器的组件
图1示出根据示例实施方式的对话系统1000的组件。诸如触摸板1010和键盘1020的输入接口能够用来接收用户输入。麦克风1030接收用户语音。自动语音识别器(ASR)1040将麦克风获取的用户语音的声音信号转换为文本。声学模型1050和语言模型1060包含ASR中利用的数据。对话系统100能够从语音或键入来接收用户输入。在此描述的示例实施方式中,无论潜在的输入是通过语音还是键入,用户输入的文本都被称为“话语”。自然语言理解模型(NLU)1070将话语转换为对话行为。对话行为表达用户通过与对话系统1000通信想要做什么。在示例实施方式中,假设对话系统用于对用户进行餐厅信息引导。下面是用户话语和对应的对话行为的一些示例。
一个话语可以不只是一个对话行为而是多个对话行为。例如,如果用户说“I wantto know Chinese restaurants in the north”,则话语包含两个话语行为:inform(food=chinese)和inform(area=north)。等号的右边部分(即,“area=north”中的“north”)此后被称为“值”。在此所描述的示例实施方式中,假设对话行为是预先定义的,然而本公开不限于此。例如,能够通过将对应的单词复制到值,或者通过使用任何其他期望实施方式的单词到值的其他转换方法,从对应的讲出单词来获取对话行为的值。
NLU模型1080包含实现NLU必要的数据。NLU模型的类型根据系统采用的NLU算法来确定。在第一示例实施方式中,NLU算法基于FST。
对话控制1090控制人与对话系统之间的信息流。对话控制沿着对话情景1100控制器对话流。图2中示出对话情景的示例。对话情景涉及系统动、每个系统动作之后的期望对话行为、以及与每个用户对话行为对应的状态转变规则。在图2中,例如一个状态2010显示系统动作是说“How may I help you?”期望的用户行为是inform(area=south)、inform(area=north)等。如果用户对话行为是inform(area=north),经由与对话行为inform(area=north)对应的弧线发生对话状态转变,然而到达系统动作是说“(Name)is a goodrestaurant in south area.”的状态2020。由通过在应用1108和数据库1109上进行餐厅信息检索所获取实际餐厅名称来替换(Name)。然而,将会从对话系统输出在此状态下的系统话语。
对话历史1105存储先前的系统动作和对应的用户话语或用户输入。对话历史1105还包含每个用户话语的对话行为、每个系统话语的对话行为、以及其他信息。会话行为预测器1107考虑对话历史来预测用户的期望后续对话行为。之后将描述对话行为预测器的细节。用户反馈1110存储针对由对话系统引出的确定对话的用户话语,从而确认从对话系统提出的NLU结果是否正确。NLU训练器1170通过使用用户反馈来训练NLU模型,然后将其存储到NLU模型。
语音合成器1120从系统话语制作语音信号。所制作的语言信号将从对话系统的扬声器设备播放,然而用户能够收听到该话语。动作制作器1130制作语音合成器以外的对话系统的任何其他动作,包括机器人手势、机器人移动、待显示的图片或图画等。机器人1140、虚拟代理1150以及显示器1160是对话系统向用户提供信息的输出设备。
用户识别器1175识别与对话系统通信的用户。该用户识别能够通过使用已知技术来完成,诸如:基于语音的个人识别、面部图像识别、指纹识别、手指静脉识别等。根据期望的实施方式,用户能够具有个人的射频标识符(RFID)标签,并且用户放在机器人或其他设备的传感器上以便系统能够识别该用户。另外,如果对话经由运行在智能手机上的虚拟代理来完成,则智能手机的所有者信息被用于识别该用户。用户配置文件1180包含对话系统的每个用户偏好。存在着一个用户话语对于不同用户具有不同意思(不同对话行为)的情况。在此情况下,NLU模型应当基于用户识别结果来更改。因此,用户配置文件包含每个用户最优的ULU模型。一旦用户识别器识别出用户,系统就变更识别出的用户偏爱的NLU模型。
图3示出根据示例实施方式的服务器300的组件。服务器与一个或多个对话系统3140(即,对话系统1000)连接。ASR 3010、声学模型3050和语言模型3060是识别用户语音并将语音转换为文本的组件。ASR以及相关的模型(3010,3050,3060)能够用于识别从对话系统上传到服务器3000的用户语音。NLU 3020和NLU模型3070用于从用户话语获取对话行为。对话情景3080包含如图2所示的对话行为和下一个对话状态以及系统动作之间的规则。对话历史3090存储从连接到服务器的一个或多个对话系统获取的用户与对话系统之间的对话历史。用户反馈3100包含针对系统话语确定NLU结果正确的用户响应。用户反馈3100包含在一个或多个对话系统3140上获取的用户反馈。用户识别器3112使用用户配置文件3110中的信息来识别与上传的信息(用户反馈和对话历史)有关的用户。用户反馈和对话历史有关的每个数据被认为更好获取指示谁与对话系统交谈的用户信息。对话系统和服务器两者或者任一个可以具有用户识别其。用户配置文件3110还包含确定每个用户反馈是否可信的信息。用户配置文件3110包括用户的置信值、每个用户的谈话频率等。NLU训练器3040通过使用从一个或多个对话系统收集的用户反馈3100来训练和更新NLU模型3070。会话行为预测器3030考虑对话历史来预测期望到来的用户接下来的对话行为。未确定的用户话语3120存储关于话语意图(即,对话行为)的自动识别失败的用户话语。人类系统维护员能够检查3010中存储的用户话语,然后检查结果将用于改进对话系统(NLU模型、对话情景以及任何其他组件)。
(2)系统的处理
图4(a)和图4(b)示出根据示例实施方式的对话系统的处理流。流程开始于经由麦克风或键入设备等待用户话语(4010)。然后,如果输入是语音,语音被输入到ASR以转换为文本(4020)。如果输入的键入,可以跳过ASR处理4020。话语文本被发送到NLU以获取NLU结果(4030)。在此关于其他附图来进一步描述对话系统的处理流。
在第一示例实施方式中,利用基于FST的NLU。一些NLU算法接收话语文本,输出对话行为以及表达每个对话行为的对应词组。就NLU输出这样的信息而言,任何NLU算法可以适用于实现本发明(例如,递归神经网络(RNN)、条件随机域(CRF)、单词匹配、语素匹配、通过手工规则的NLU)。在此还描述其他示例实施方式(例如,基于RNN的NLU算法)。另外,虽然在此的示例假设一个话语仅具有一个对话行为,但是用户话语中所有的单词具有相同的对话行为是合理的。在此情况下,还能够应用善于话语分离任务的NLU算法(支持向量机(SVM)、逻辑回归、堆叠神经网络等)。
图5示出根据示例实施方式的基于FST的NLU的示例流程。图6示出根据示例实施方式的用于基于FST的NLU的NLU模型。图7示出根据示例实施方式的与基于FST的NLU有关的详细数据流。
NLU模型(图6)包含种子6010和语义空间6070。种子6010是示出对话行为6020和“组块”6030的表。因此,表中的每行被称为“对话行为-组块对”。在示例实施例中,种子6010首先由人类开发人员开发,然后它通过合并关于NLU的自动自学习算法来改进和扩充,其基于在此描述的与用户的系统谈话体验来学习新的/被更新的对话行为-组块对。组块是用户话语的部分单词或全部单词,这些话语是当用户显示对应的对话行为是期望由用户说出的话语。语义空间6070描述如果两个单词/词组意思相同就将两个单词/词组对放在较近的点的空间。语义空间能够通过使用已知的单词嵌入技术、语句嵌入技术、从词义数据库、同义词词典获取的词义信息或通过根据期望实施方式的其他方法来构建。
在图5的流程中,首先加载适合于用户识别结果、当前对话任务和当前对话历史的NLU模型(5005)。用户识别结果有助于选择与对话系统交谈的每个用户适合的NLU模型。对话行为的种类根据任务类型而改变。例如,如果对话系统针对餐厅预约任务,则用户可以讲话来确认餐厅的食物类型(例如,inform(food=…)的对话行为)。然而,如果对话系统针对飞机票预定任务,则不会从用户说出inform(food=…)的对话行为。因此,示例实施方式根据任务的类型来改变待加载的NLU模型。
另外,即使系统只针对一个任务,也可能存在用户可以讲出的对话行为将会根据对话状态或对话历史而变化的情况。此外,每个用户在NLU上都有他们自己的印记。例如,一个用户经常说“nay”来表达“negating”的对话行为,但是其他的用户可能使用“nay”来表达“rather than”的意思,而从不说它来表达否认的对话行为。在此情况下,NLU模型应当针对每个用户定制化;即对话系统为每个用户准备不同的NLU模型。因此,假设对话系统具有两种或更多种NLU模型,系统的实施方式可以基于用户识别结果、当前对话任务和对话历史来加载最适合的NLU模型。此外,这样的示例实施例能在NLU模型的数量只有一个时实现。
然后,用户话语将被转换为有限状态置换器(话语FST)(5010)。图7示出话语7010的话语FST 7020的示例。一个弧线显示语句中的一个组块。FST的弧线包括了话语中的任意数量的单词的所有组合。由于对话系统的计算限制,可以设置限制来限制一个弧线的最大单词数量。然后,迭代开始查看话语中的所有组块(5020)。如果聚焦的组块包括在种子中(5030)(是),将该组块与对应的对话行为及其相关性值6040联系起来(5040)。相关性值6040示出组块和对话行为之间有多大关系。在FST 5010中,由于种子中的组块“northarea”与对话行为“inform(area=north)”具有0.9的相关性值,所以将组块“north area”与对话行为“inform(area=north)”联系起来。FST中的对应组块将具有基于相关性值确定的权重。在示例实施方式中,通过将种子中的原始相关性值(即,0.9)乘以组块中的单词数(即,2)来采用权重值。通过将相关性值乘以组块中的单词数,从较长单词获取的对话行为比从较短单词获取的更可信。相乘的值可以被认为是FST的权重。另外,ASR输出每个识别出的单词的置信值。因此,将根据组块中单词的ASR置信值来调整组块的权重。虽然我们之后说明,最可信的对话行为将通过在FST中进行最短路径搜索来获取,其中将提取出具有最低累积权重的FST路径。因此,相关性值的负值将作为该弧的权重馈送给FST。最低路径搜索或用于FST的任何其他计算方法被示出。
如果FST中的组块不同于种子中的任何组块,则NLU尝试在语义空间中与FST的组块足够近的种子中寻找组块(5050)。充分性的判断可以通过阈值准则来完成:如果语义空间中两个组块之间的距离(相似度)小于(大于)预定阈值,则判定距离充分。如果找到这样的组块(5060)(是),则NLU将FST中的组块与同FST中的组块足够近的种子中的组块的对话行为和相关性值联系起来。例如,假设词组“oriental cuisine”接近种子中的组块“asianoriental 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)”。另外,组块引出每个对话行为,并且每个对话行为的得分(等于权重的正值)被获取。对话行为的得分指示对话行为的置信程度。
最短路径搜索基本上只输出一个路径,在路径中权重的加和最小。可替换地,找到比任何其他路径具有更小累积权重的两个或多个路径的最短路径搜索也是能够理解的。
回到图4(a)的流程,在通过上面的方法得到NLU结果之后,对话系统将获取的对话行为分类为“可信”、“需要确认”或“舍弃”(4032)。这种分类将沿着图8中所示的过程来完成。
图8示出根据示例实施方式的将NLU输出进行分类的示例流。首先,流程检测通过NLU获取的所有对话行为(8010)。分类过程涉及用于判定的几个准则。因此,根据准则模式可以执行不同的处理(8020)。在第一模式中,对话行为基于其得分被分类。如果得分高于针对“可信”的预定阈值(8030),则它分类为“可信”(8060)。或者,如果得分大于针对“需要确认”的预定阈值(8040),则它分类为“需要确认”(8070)。或者,将对话分类为“舍弃”(8050)。
在另一模式中,在用户-系统谈话中存在用于对话失败的判断。有几种检测对话失败的方式。例如,如果用户说了与先前用户话语相同的话语,则暗示用户有系统没有理解的意图话语,所以用户多次重复该话语。因此,如果检测到这样的重复,就能够判断已经发生的对话失败。另外,可以利用任何期望的实施方式来完成对话失败检测。如果检测到对话失败(8080),将该对话行为分类为“需要确认”(8070)。或者,该对话行为被分类为“可信”(8060)。利用对话失败检测的方法相对利用对话行为的得分的第一模式具有优势。得分有时显示不适当的值;存在着虽然由于NLU模型的准确性不佳而对话行为实际上是错误但是得分更高的情况。因此,使用对话失败检测的方法补偿了第一方法的不足。
在另一模式中,示例实施方式基于对话行为的“源”:种子或语义空间。如上所述,种子原本由人类开发人员制作。另外,即使对话系统使用自动更新种子的自学习方法,但是种子只包含由用户至少确认过一次的对话行为-组块对。因此,如果从种子得出对话行为,认为具有充分的可信度。同时,从语义空间导出的对话行为由于尚未被用户确认因此被认为可信度不足。因此,如果对话行为从种子导出(8010),则将其判断为“可信”(8060),或者将其判断为“需要确认”(8070)。
而且,图8这样的判定能够基于单独地或以任何组合实现的任何模式。
回到图4(a),在对话行为被分类之后,系统判断服务器是否能够使用(4033)。如果服务器能够使用(是),流程进行到4034,其中系统判断是否有必要访问服务器。关于图9提供该判断的细节。
图9示出根据示例实施方式的关于是否需要对服务器进行查询的示例流程。该服务器访问判断也具有两个模式(9010)。在第一模式中,示例实施方式使用对话行为得分有关的阈值。系统参考所有的对话行为(9020)并且舍弃得分低于阈值的对话行为(9030,9040)。前面的处理也具有这样的基于阈值的舍弃处理(例如,8050),然而,在此情况下,期望服务器具有比对话系统更精确的NLU。在完成之前的舍弃处理的时候(8050),对话系统不知道服务器是否能够使用。然而,在该点处(9040),对话系统已经知道服务器能够使用。因此,对话系统将针对被确定为“有点不可行”的对话行为执行更精确的对话行为评价。因此,在示例实施方式中,9040中的阈值大于8050中的阈值。接着,如果至少一个对话行为被舍弃,系统判断服务器访问为“需要”(9050,9060,9070)。
在第二模式中,系统解析语句文本将将其划分为一个或多个词组(9080)。根据期望的实施方式,该解析可以通过现有技术中的任何解析器来完成。例如,如果话语“Chinesefood 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)。如果数量少于阈值(是),系统判断“不需要”访问服务器(9170)。或者,系统进行到9145以检测期望用户说出但是实际上没有说出的对话行为的数量。如果数量少于阈值(是),系统判断“不需要”访问服务器(9150,9170)。或者(否),系统判断“需要”访问服务器(9160)。
分解(breakdown)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)(是),服务器进行ASR以将用户语音信号转换为话语文本(10030)。ASR方法可以与对话系统相同。此外,假设服务器中的声学模型和语言模型比对话系统中的模型具有更多的ASR准确性。因此,即使在对话系统中的ASR无法转换成正确的文本的情况下,ASR仍然能够在服务器中成功完成。
然后,话语文本(从对话系统发送的或者通过服务器中的ASR获取的)被发送到NLU。NLU将话语文本转换为对话行为(10040)。NLU的方法与对话系统相同。另外,假设服务器中的NLU模型在其准确性方面比对话系统中的NLU模型高级。因此,即使对话系统中的NLU无法得到正确的对话行为,在服务器中很可能进行成功的NLU。
NLU结果将被发送到对话系统(10050,4510),并且对话系统接收信息(4140)。之后,对话系统解决冲突的已获取的对话行为(4142)。在图11中示出该处理。在图11的处理中,对话系统参考已获取的所有对话行为(11050)。接着,对话系统检测话语中的一个单词是否得出两个或更多个对话行为(11060,11070)。存在着对话系统中的NLU和服务器中的NLU从一个相同的单词制作出不同的对话行为的情况。另外,如果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(),因为它们可能相互排斥。这样的对话行为被认为是“冲突的”。如果找出这样的冲突对话行为,比较这些对话行为的得分(11120),然后删除得分低的对话行为(11130)。可以应用几个不同的方式用于比较对话行为的得分(11130)以及流程11080。然后,在11140处,循环将重复回到11060。
在通过上面的方法得到NLU结果之后,对话系统将获取的对话行为分类为“可信”、“需要确认”或“舍弃”(4144)。处理基本上与4032相同。与4032的不同点如下。首先,阈值可以从4023发生变化。接着,第四模式被添加到图4,其中从服务器的NLU获取的所有对话行为将被认为“需要确认”(8510)。如果对话行为是从服务器导出,因为这是用户第一次看到这个从服务器获取的NLU结果,所以用户最好确认是否正确。如果从用户确认该NLU结果正确,则NLU样式(pattern)将被存储在对话系统中的NLU模型,然后对话系统中的NLU能够在不访问服务器的情况下输出相同的NLU结果。另外,能够应用基于这些模式的任何组合的判断。
接着,如果没有获取对话行为(4045),对话系统就说出系统无法理解用户所说的(4160)。
接着,如果存在一个或多个“需要确认”的对话行为(4050),系统询问用户来确认这些对话行为是否正确。图12中示出确认对话的示例。假设找到两个对话行为(food=australian)和inform(area=north),两者都需要确认。接着,对话系统(即,图中的机器人)制作语音输出以确认对话行为是否正确(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)。基于从对话系统上传的信息,服务器生成反馈信息(13030),如在流程中13100处所示。服务器将用户响应分类为确认、否认或其他(13100),并且可以类似于对话系统中在4075处的处理来实现。服务器中用于话语分类的分类算法或数据可能在准确性方面比对话系统中的更好。因此,再次利用服务器中的分类。如果分类结果是确认或否认,则服务器分别制作具有正反馈或负反馈的反馈多元组(13120,13130)。如果分类结果是其他,服务器对用户响应进行NLU(13140)。该NLU专门针对确认对话来分析用户响应。从21200至21240示出该NLU示例。假设用户话语是“I want mandarin cuisine.”。当对话系统询问“Itmeans,you want to inform Australian food,right?”时,用户回答“No,I meanChinese”(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)的一个另外的反馈多元组。
在进行这些处理之后,反馈多元组将被发送到对话系统(13150,13160,13170,13040,4530)。
接着,如图4(b)的4180处所示,对话系统接收来自服务器的反馈信息。如果对话系统具有任何的NLU更新(即,系统发送了一个或多个反馈多元组),则对话系统更新其NLU模型(4200)。
在图14中示出更新NLU模型的过程。另外,在参考图6的种子。种子包含正反馈6050、负反馈6060、固定标志6062和得票计数6064。正反馈和负反馈分别存储其中反馈为正面或负面的经处理的反馈多元组的数量。固定标志指示如果在自动的NLU更新处理中不应当改变对话行为-组块对,则为1,否则为0。在种子的初始状态中,由人类开发人员制作的对话行为-组块对应当将固定标志设置为1,因为这些对话行为-组块对足够可信并且可能最好不改变这样的对话行为-组块对的参数从而通过使用这些对话行为-组块对来保持NLU处理。得票计数存储与对应的对话行为-组块对有关的已获取反馈多元组的数量。
过程参考所有的反馈多元组(14010)。接着,如果聚焦的多元组具有以固定标志1存在于种子中的组块,则它跳过任何的更新处理(14020)。跳过更新处理的原因在于,如果该组块在种子具有“强烈联系”的对话行为。接着,如果在种子中未看到该多元组的对话行为-组块对,则它通过预定数字来初始化正/负反馈。如果多元组中的反馈为正,则它将正反馈设置为预定值(通常我们将预定数字设置为1或更多),而将负反馈设置为0(14040,14050)。如果多元组中的反馈为负,则它将负反馈设置为预定值,而将正反馈设置为0(14060)。接着,得票计数被设置为1,固定标志被设置为0(即,不固定)(14070)。
如果已经在种子中看到对话行为-组块对(14030),根据多元组中的反馈来增加正或负反馈。如果多元组中的反馈为正,则它将正反馈设置为预定值(14080,14090,14100)。得票计数也增加(14110)。
接着,通过正反馈与全部反馈的比值来更新相关性值(14120)。通过更新相关性值,被多次正面确认的对话行为-组块对变为较大的相关性值,并且被多次负面确认的对得到较小的相关性值。因此,该过程完成自学习算法从而自动地改善NLU准确性。
在更新相关性值之后,系统进行到判断对话行为-组块对是否应当固定。如果相关值足够小或足够大(14130),并且得票计数足够大(14140),则该对话行为-组块对被判断为应当固定,所以固定标志从0变为1(14140)。该想法基于:如果一个对话行为-组块对已经显露给用户很多次,并且被确认几乎是正确的或几乎是错误的,则不需要再将其向用户进行确认。这种想法带来了将对话行为分类成“需要确认”或“可信”的新准则。例如,如果固定标志是1,则不必要再向用户进行确认。因此,处理将该对话行为-组块对判断为“可信”(图8中的8520)。通过使用种子中的相关性值、正反馈、负反馈、固定标记和得票计数,将能够使用用于“需要确认”对话行为的判断的任何其他准则。
接着,对话系统读取对话情景,并且确定下一个系统动作和下一个对话状态(4110)。最后,对话系统输出动作,该动作可以采用语音合成、机器人移动、机器人动作、显示屏幕上的更新等形式。接着,对话系统等待下一个用户话语。
此外,对话系统能够控制或者调整确认对话的频率。图1的确认频率调整器1200向用户提供调整确认频率的用户接口(例如,显示器和触摸板)。如果用户不想要这样的确认对话,用户可以经由确认频率调整器的用户接口告知他/她的偏好。该信息将用于确定确认对话的开始条件有关的阈值。
用户对确认对话的反馈还可以用于调整语义空间上每个组块的位置。如果确定两个组块具有相同的对话行为,则将组块的位置移动得相互更近。否则,如果确定两个组块具有不同的对话行为,则将组块的位置移动得相互更远。这种位置改变可以通过任何其他的实施方式来执行,诸如非线性坐标变换。
因此,在上述第一示例实施方式中,对话系统能够通过利用对系统的实际用户响应,来自动更新NLU模型并且改进NLU准确性。上述第一示例实施方式包括对话系统的客户端-服务器配置,其中服务器具有比客户端更高准确性的NLU(在第一示例实施方式中,客户端用作对话系统)。客户端只在需要来自服务器的NLU的帮助的时候才询问服务器。因此,可以向用户提供更快的响应时间,同时提高NLU准确性。另外,使用来自服务器的NLU更新,客户端的NLU能够提高准确性。来自服务器的更新信息基本上限制到其中用户与系统实际进行过的对话历史有关的信息。这意味着从服务器下载的数据量少于服务器中发生的所有NLU更新被下载的情况。因此,第一示例实施方式以较少的网络流量来实现有效的NLU更新。
第二示例实施方式:通过使用另一类型的基于FST的NLU的对话系统配置
第二示例实施方式从第一示例实施方式改变NLU的方法。第二示例实施方式从第一示例实施方式改变NLU的处理细节(4030,10040,13140)。在图15中示出NLU处理。首先,系统加载适合于用户识别结果、当前对话任务和对话历史的NLU模型(15005)。接着,用户话语将被转换为有限状态置换器(FST)(15010)。
在图16中示出FST转换方法。在第二示例实施方式中,话语文本可以从ASR获取,并且ASR输出N个最佳语句,其包含按照置信度顺序由ASR识别出的一个或多个语句。参考图16的示例,假设用户说了“Oriental cuisine in the north area”(16010),则N个最佳ASR语句是“Oriental cuisine in the north area”、“Origin cuisine in the north area”、和“Oriental cuisine in a north area”(16015)。ASR语句中的每次单词或语句具有从ASR示出的置信值。接着,N个最佳ASR语句被转换为混淆网络(16020),其中每个单词具有各自的置信值。根据期望的实施方式,该混淆网络可以通过使用现有技术中已知的单词对齐算法来制作。在示例实施方式中,混淆网络中的每个“香肠”(同时出现的一组单词)具有带有任意单词输出的弧(在图16中的“<arb>”弧),其允许在之后的FST合成处理时进行灵活匹配。另外,只要能够生成如图16的混淆网络,任何其他方法是适用的。接着,混淆网络被认为是ASR FST,其中每个弧将识别出的单词作为输出,将负置信值作为权重。
同时,从种子语义FST(16030)。在语义FST中,沿着从起始节点到结束节点的路径的每个弧将组块中的单词作为输入,将对话行为作为输出(只有最后一个弧),并且将对话行为的负置信值作为基于种子中的相关性值而确定的权重。将通过组块的单词数量来划分相关性值,接着与每个单词对应的每个弧具有与被划分的相关性值相同的权重。只有对于确定对话行为“重要”的单词才会馈送权重也是适用的。一种可能的方式是只有内容单词才具有权重。权重可以通过任何提示来调整,比如如我们在第一实施例中描述的组块中的单词数量。另外,语义FST具有其中输入是任意单词(“<arb>”)并且输出是空(“<eps>”)的弧,这使得能够在ASR FST与语义FST之间的FST合成处理中进行灵活匹配。语义FST创建通常在用户开始与对话系统交谈之前完成。
接着,NLU处理检查ASR FST中的所有组块(15020)。如果AST FST中的组块在语义空间中具有接近的种子组块(15030),则将种子中对应的对话行为-组块对添加到语义FST中(15040)。例如,当ASR FST中的组块“oriental cuisine”接近语义空间的种子中的组块“Asian oriental food”时,路径被添加到语义FST,其中路径中的弧具有对应的对话行为、组块和相关性得分(16035)。
接着,NLU进行ASR FST和语义FST之间的FST合成。根据任何期望的实施方式能够执行合成计算的方法。在16040中示出FST合成结果的示例。
接着,NLU在合成的FST中进行最短路径搜索(15060,16050)。最后,系统得到输出对话行为(16060),以及对应的得分和组块(15070)。
存在几种方式将语义空间合并到语义FST。例如,当对话系统制作语义FST,系统还能够搜索搜索接近种子中的已知组块的任何单词/词组。接着,找到的单词/词组可以添加到语义FST作为具有相同对话行为的新组块。这样的组块的权重可以基于语义空间上的距离(相似度)和任何其他期望的实施方式来确定。通过这样的实施方式,如在15040和16035所示,不必每次出现新的用户语句时修改语义FST。该替换的一个不足在于,存在接近已知组块的很多组块候选,使得语义FST的大小变得很大。为了避免这个不足,添加到语义空间的新组块可以限制到出现在从许多用户获取的对话历史中的单词/词组、公共使用的对话语料、以及任何其他文本数据。另一替换方式在于,虽然概念与15040相同,但是FST合成计算程序可以被修改为应付语料空间。扩充ASR FST或语料FST的另一方法是利用词义数据库,诸如同义词词典。如果单词数据库显示FST中的一个单词与另一单词具有类似的含义,则NLU可以将找到的单词平行添加到原始单词。
另外,第一示例实施方式的NLU中的N个最佳ASR语句可以被处理。如在第一示例实施方式中提及,一个ASR语句可以转换为FST(7010,7020)。如果N个最佳ASR语句是可用的,每个语句可以通过使用与第一示例实施方式相同的方法来转换为对应的ASR FST。接着,从每个ASR语句获取的这些FST可以被收集从而通过合并计算或通过任何期望的实施方式来构建一个FST。
因此,第二示例实施方式示出示例替换的基于FST的NLU算法。第一示例实施方式的NLU将ASR中的单词的所有组合进行扩展以制作ASR FST。另一方面,第二示例实施方式的NLU不需要这种扩展。这导致以比第一示例实施方式更少的计算时间和更少的内存来实现NLU处理。
第三示例实施方式:使用基于RNN的NLU的对话系统配置
第三示例实施方式从先前描述的示例实施方式改变NLU的方法。第三示例实施方式使用基于递归神经网络(RNN)。
图17示出根据示例实施方式的基于RNN的NLU的训练数据。训练数据可以包括语句17010、对话行为17020、以及单词水平的对话行为17030。当使用基于RNN的NLU时,可以如图7中所示准备训练数据。为了收集训练数据,开发人员可以执行语料收集实验,其中发言者说出各种语句,同时发言者想象他们向对话系统询问事情的情况。收集到的语句然后由注释器进行注释从而在单词水平上将对话行为给予每个话语。
图18(a)和图18(b)示出根据示例实施例的递归神经网络(RNN)及其对训练和估计的使用。RNN(18010,18040)中的每个元胞可以是根据期望实施方式的艾尔曼RNN(ElmanRNN)、长短期记忆(LSTM)、门控递归单元(GRU)等形式。
当通过使用训练数据来训练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元胞输出的后概率之后进行相加、平均,求最大值和/或求最小值来计算。对话行为的得分可以仅根据输入是内容单词的RNN单元的后概率来计算。除了单词输入(18020,18050)之外,还可以将诸如词性标签(POS标签)的每个单词的附加信息输入到RNN。
有几种方式可以获取涉及的语义空间。一种可能的方法是在RNN中使用嵌入层。RNN的输入单词通常由单热(one-hot)向量表示。单热向量是多维向量,每个元素对应于每个单词。向量在对应于该单词的元素处具有值1,并且所有其他元素被设置为0。然后通过将单热向量和嵌入矩阵(嵌入层的参数)相乘,将该向量压缩为具有比单热向量更小尺寸的密集多维向量。这种嵌入过程与语义空间上的投影几乎具有相同的效果;来自两个具有相似含义的单词的嵌入向量被放置在相互靠近的位置。因此,可以通过结合嵌入层来实现语义空间。另外,嵌入层的参数可以在图17中所示的训练数据或者在大文本语料库上通过任何期望实施方式来获取。涉及语义空间的另一种方式是将具有与识别的单词相似的含义的单词添加到RNN的输入。使用与第一示例实施方式相同的方法通过计算语义空间中的单词之间的距离(相似性)来找到相似的单词。为了处理两个或更多个单词作为一个RNN元胞的输入,适用于使用“N个热(N-hot)”向量,其中与输入单词对应的所有元素具有值1而所有其他元素具有值0。
N-hot向量思想也适用于实现对RNN的N个最佳ASR输入。图19示出根据示例实施方式的实现向RNN的N个最佳ASR输入的示例流程。首先,创建包含ASR句子的训练数据。在语料库收集实验中,假设说话者说“uh yes a cheap restaurant”(19010)。该话语被馈送到ASR并获取N个最佳ASR句子(19020)。根据正确的说话者话语文本(19010)和N个最佳ASR句子(19020),可以通过使用根据任何期望实施方式的单词对齐方法来构造具有单词水平对话行为的混淆网络(19030)。通过所说明的N个热向量方式可以将一根香肠(同时是词组;例如“uh”、“huh”和“oh”)馈送到RNN元胞。此外,元素的值可能不设置为1,而是设置为从ASR输出的每个字的置信度值。在对话行为估计阶段,可能不知道用户实际所说的内容。然而,ASR语句是已知的,因此系统能够仅从ASR语句构造混淆网络(19040)。接着,通过相同的方式将该混淆网络馈送到RNN。使用ASR N个最佳语句用于基于RNN的NLU的训练和估计两者能够在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 thenorth part”确实具有对话行为inform(area=north),所以该词组重要性为1。否则,词组“mandarin cuisine”重要性为0.2。根据12020中所示的用户反馈,系统判断“mandarincuisine”没有对话行为inform(food=australian)。然而,词组“mandarin cuisine”有另一对话行为。如果使用“O”标记将重要性(即掩码值)设置为1,则RNN获知该词组没有对话行为。这种训练很不方便,因为词组“mandarin cuisine”可能具有另一对话行为。因此,这些单词的重要性被设置为较小的值。除了用于确定重要性的该策略之外,当在先前的用户对话历史中频繁看到单词-对话行为对时,可以提供较大的重要性。否则,当单词-对话行为对是新的时,因为单词-对话行为对可能建立在错误的反馈上,所以可以指定较小的重要性。此外,可以从负反馈中正确地训练RNN。例如,如果在“mandarin cuisine”和inform(food=australian)之间获取负面的用户反馈,则可以训练RNN通过结合其他网络结构、其他训练准则或取决于期望实施方式的其他成本函数计算,来避免从“mandarin cuisine”的输入到inform(food=australian)的输出。
图21示出根据示例实施方式的通过使用用户反馈的NLU更新的流程。图21的流程改变了上面的示例实施方式中的处理4200。
首先,系统生成用于检查准确度退化的测试数据(21005)。对话系统具有对话历史,其中存储先前的话语(文本)和NLU结果。它还具有用户反馈信息。因此,可以提取话语及其正确的对话行为,并且将提取的数据用作“测试数据”。
可以使用测试数据,其中每个话语包含由人类系统维护者手动标记的单词水平的对话行为。测试数据中的话语不仅可以包括在确认对话中获取的话语,还可以包括大多数用户向对话系统说出的标准话语,以及根据期望实施方式的任何其他测试数据。它也适用于参考对话历史中的所有话语都作为测试数据。
系统参考所有的反馈训练数据(21010)。然后,细化每个反馈训练数据(21020)。该细化处理检查反馈训练数据中包含的单词和对话行为之间的关系。如果该关系与先前的反馈相冲突,则将对话行为编辑为不与先前的反馈数据冲突。
然后,系统检查当数据被添加到RNN的训练数据时导致测试数据的准确度退化的数据。确定退化的直接方法是在将数据添加到训练数据时训练RNN模型,然后评价对于测试数据的NLU准确度。如果存在先前RNN模型正确获取对话行为的测试数据,但新RNN模型未能获取正确的对话行为,则确定已经发生退化。如果测试数据中这种退化的话语的数量大于阈值(是),则从反馈训练数据中移除数据。否则(否),将反馈训练数据添加到RNN训练数据(21030,21040)。如果RNN训练对于发现退化是耗时的,则还可以使用其他NLU算法(例如CRF)来寻找引起退化的数据。最后,通过使用包含了所添加的反馈训练数据的训练数据来训练RNN NLU模型(21050)。先前的NLU模型被在21050处训练的新RNN模型重写。
图21中的反馈训练数据21040示出了当用户反馈话语被发送到服务器并在服务器中进行分析时在服务器处生成的反馈信息。内容和概念与对话系统中完成的反馈分析中的反馈训练数据相同。
在该第三示例实施方式中,当基于RNN的算法用于NLU时,自学习NLU被利用。只要训练语句能够使用,RNN就能够实现足够的NLU准确度。因此,这种示例实施方式是通过使用用户反馈来改进NLU的可能性。
第四示例实施方式:基于FST的NLU和基于RNN的NLU混合的对话系统配置
在第四示例实施方式中,基于FST的NLU和基于RNN的NLU被组合。在图23中示出该算法。它从上面的示例实施方式改变了NLU上的处理细节(4030,10040,13140)。首先,它加载适合于用户识别结果、当前对话任务和对话历史的NLU模型(23005)。然后,通过上述示例实施方式完成基于FST的NLU(23010,23020)。然后,通过上述示例实施方式完成基于RNN的NLU(23030,23040)。在完成基于FST的NLU和基于RNN的NLU之后,处理所获取的对话行为以解决冲突的对话习行为(23045)。尽管结合得分调整处理以制作在基于FST和基于RNN的实施方式之间可比较的得分,该处理与图11相同。
图36示出根据示例实施方式从基于FST的NLU和基于RNN的NLU的结果选择合适的对话行为的另一示例。在该对话行为选择处理中,利用RNN(36010),其被训练以输出置信值,该置信值指示哪个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结果冲突的方法。可以采用图36中所示的对话行为选择算法来代替图11,其中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需要种子中的小对话行为-组块对以实现足够的NLU准确度,所以基于FST的NLU似乎适合于对话系统(客户端)。另一方面,因为基于RNN的NLU需要大量的训练数据,基于RNN的NLU似乎适合于服务器。因为服务器连接到许多对话系统,使得服务器能够从各种对话系统获取许多用户反馈,所以这样的训练数据能够由服务器获取。
要收集基于RNN的NLU的训练数据,使用实际用户日志是有用的。但是,实际用户日志可能涉及“倾斜”数据;在用户的实际话语中可能频繁看到一些对话行为,但是大多数对话行为可能只能看几次。最终,一些对话行为可能在用户日志中没有对应的话语。因此,只要使用这样的用户日志作为基于RNN的NLU的训练数据,经训练的基于RNN的NLU就完全不能识别在训练数据中没有出现的对话行为。另一方面,尽管基于FST的NLU的总体准确度倾于低于基于RNN的NLU,但是可以开发基于FST的NLU从而识别假定发生的所有对话行为。从这个观点来看,集成基于RNN和基于FST的NLU的一种可能方式如下。假设一个单词在基于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)。存在这样的情况:在反馈多元组和反馈训练数据之间,单词和对话行为之间的关系是不同的。这种差异可用于获取更精确的用户反馈。例如,如果一个单词在反馈多元组和反馈训练数据之间具有相同的对话行为,则该对话行为可以具有高置信度。另一方面,如果这个单词在反馈多元组和反馈训练数据之间具有不同的对话行为,则对话系统可以从这些不同的对话行为中选择一个具有较高置信度的对话行为。为了选择高置信度的对话行为,根据期望的实施方式可以利用对话行为的得分、反馈信息对于对话历史的一致性,以及任何其他信息。
该示例实施方式中的混合NLU补偿了不同NLU算法的优点和缺点。即使种子中的对话行为-组块对的数量有限,基于FST的NLU基本上也实现了高精度。但是,如果有大量训练数据可用,则基于RNN的NLU可能会克服基于FST的NLU的准确性。因此,通过使用两种NLU算法的混合配置,无论训练数据是小还是大,都可以获取始终的高精度。
第五示例实施方式:自学习NLU合并N个最佳ASR输出
在第五示例实施方式中,N个最佳ASR输出用于更新NLU。图24示出了如何从N个最佳ASR输出生成反馈信息(即反馈多元组、反馈训练数据)。
从N个最佳ASR语句24010,如上面的示例实施方式中所提到的,将通过基于FST或基于RNN的算法来完成NLU24020,。然后,在24030完成确认对话。
在制作反馈多元组的情况下(即,当使用基于FST的NLU时),可以获取ASR输出的混淆网络和对应的对话行为(24022)。例如,具有对话行为inform(area=north)的混淆网络的一部分(24025)包含单词“in”、“the”、“north”和“nose”。此部分还有显示哪些单词相互连接的弧。从混淆网络的这一部分,可以扩展所有生成的词组:“in the north”、“in thenose”、“in north”和“in nose”。在该示例中,对话行为inform(area=north)由用户馈送正反馈。因此,如在24020所示,对话系统将这些词组(即,组块)与对应的对话行为(即,inform(area=north))和反馈类型(即,正)作为反馈多元组。
在制作反馈训练数据的情况下(即,当使用基于RNN的NLU时),可以利用混淆网络和对应的对话行为(24022)。混淆网络和单词水平的对话行为24025可以通过图18的方法用于RNN的训练数据(18040,18050,18060,18070)。因此,如果如在24080所示准备反馈训练数据,则可以在考虑N个最佳ASR输出的同时使用用于RNN的训练数据的用户反馈。值24120指示从ASR获取的单词置信度值。这些值可以用作向RNN的输入单词的N个热向量的元素值,如上面的示例实施方式中所描述的。重要性24110也可以由ASR的单词置信度值来确定。图24示出了将每个重要性设置为与对应识别出的单词内的最大单词置信度值24120相同的值的示例。此外,重要性可以通过与上面的示例实施方式相同的策略来确定。
在该第五示例实施方式中,通过使用实际使用中的对话历史的N个最佳ASR输出来示出NLU更新方法。根据期望的实施方式,可以根据环境噪声的水平、声学环境、用户语音的特征等来改变出现在ASR输出中的单词错误的特征。在该示例实施方式中,可以捕捉在真实现场中发生的ASR单词错误的特征并将其自动合并到NLU模型中。因此,该示例实施方式自动提高了实际现场中的NLU精度。
第六示例实施方式:服务器中的自学习NLU
在该示例实施方式中,描述了通过使用用户反馈在服务器中的自动NLU更新方法。
对话系统存储在用户与对话系统之间的确认对话中获取的用户反馈(反馈多元组、反馈训练数据)。在对话系统中获取的信息(即,对话历史、用户反馈和用户配置文件)被上传到服务器。如图3中所示,服务器与至少一个或多个对话系统连接。因此,服务器可以跨越不同的对话系统存储许多用户反馈。通过使用服务器中的用户反馈,可以更新NLU模型。
图25示出根据示例实施方式如何通过使用服务器中的反馈多元组来更新种子。该过程类似于图14所示的更新对话系统中的种子。与图14的不同之处在于,计算每个多元组的多元组得分(25015;Mi),并且多元组得分用于更新正反馈和负反馈(25050,25060,25090,25100)以及得票计数(25070,25110)。
多元组得分是当多元组越可信时越高的值。为了计算多元组得分,将对每个用户进行评价以确定用户置信度。可以基于以下准则来计算用户置信度:
-根据用户历史确定的对话频率(如果更频繁,则该用户的置信度会更高)
-用户反馈与其他用户的一致性(如果大多数的用户反馈与其他用户不同,则该用户的置信度会降低)
-对于单个用户的用户反馈的一致性(如果用户反馈与先前的确认对话不一致,则该用户的置信度降低)
-关于用户话语的副语言信息(如果用户语音上的音高、功率、静音间隔等副语言信息被分类为异常,则该用户的置信度变低)
多元组得分也由多元组本身的置信度确定。计算方法如下:
-反馈与其他反馈的一致性(如果聚焦的反馈与大多数其他反馈不一致,则此多元组的置信度将更低)
此外,用户置信度可能随时变化。用户置信度将根据此时的对话行为确定。另外,用户置信度可以通过对话完成的时间、对话任务的种类、用户的环境等来确定。
根据期望的实施方式该多元组得分可以手动确定。在用于提供多元组置信度的手动实现中,人类操作人员检查服务器中的对话历史,然后操作人员确定多元组得分的值。
具有该对话用户被确定为如上面的示例实施方式中提到的用户标识符。但是,也可能无法识别用户。在这种情况下,可以使用对话系统的置信度而不是用户置信度。对话系统的置信度将通过使用与计算用户置信度时相同的方式根据从一个特定对话系统的所有删除信息来计算。
这些用于计算多元组得分的准则不限于我们上面提到的范围。
图26示出根据示例实施方式通过使用服务器中的反馈训练数据来更新基于RNN的NLU的训练数据的流程。该过程类似于如图21中所示的更新对话系统中的种子的过程。与图21的不同之处在于,包括每个多元组的数据得分的计算(26015;Mi),其中得分用于确定每个数据的重要性(26040)。计算方法与如其他示例实施方式中所述的计算多元组得分的方法相同。
通过图25和图26的方法在服务器中更新的NLU模型可以下载到每个对话系统。图22(a)和图22(b)示出根据示例实施方式在对话系统中当其接收来自服务器的更新时更新NLU模型的示例过程。
在图22(a)的22010-22050中示出使用基于FST的NLU的情况。首先,对话系统接收服务器中的已更新种子(22010)。然后,系统参考更新的种子中的所有对话行为-组块对(22020)。如果已更新种子中的对话行为-组块对与对话系统中的对话行为-组块对冲突(22030)(是),则已更新信息中的对话行为-组块对被舍弃并且不用于更新对话系统中的种子(22040)。如果已更新种子中的对话行为-组块对不与对话系统中的种子冲突(否),则将其用作对话系统的种子中的新对话行为-组块对(22050)。冲突检测可以如下进行:(1)检查对话系统中是否存在具有与已更新种子中的对话行为-组块对相同的组块(单词)的对话行为-组块对,(2)如果该对存在,检查对话行为在对话系统中的对话行为组块对与已更新的种子之间是否相同,(3)如果对话行为不相同,则将该对判断为冲突。
对话系统中的种子可能已经适应对话系统的用户。换句话说,对话系统的种子中的对话行为-组块对可以包含用户偏爱的一些NLU规则。因此,如果对话系统中的这些多元组被重写,由于对话系统从该更新的定时可能无法理解用户的频繁话语,所以用户体验可能会下降。因此,系统检查已更新的种子与对话系统的种子的冲突。然后,只有当对不与对话系统的种子冲突时,系统才将已更新的种子中的对话行为-组块对添加到对话系统中的NLU模型中。
在图22(b)的22510-22550中示出使用基于RNN的NLU的情况。首先,对话系统从服务器下载NLU模型(22510)。然后,对话系统以与21005相同的方式生成测试数据(22515)。如上面的示例实施方式中所述,对话系统可以从对话历史或任何其他数据源制作测试数据。每个测试数据可以包括话语和正确的单词水平的对话行为。对话历史中的所有话语都可以称为测试数据。
然后,对话系统参考测试数据中的所有话语(22520),并通过使用下载的NLU模型来执行NLU(22530)。如果NLU结果与通过使用先前的NLU模型获取的结果不同(22540)(是),则对话系统判断新的NLU模型引起测试数据的退化。为了避免这种退化,对话系统生成特定的NLU规则(22550)。
假设测试数据的话语是“I’m glad”,而对话行为是thankyou()。此外,使用先前NLU模型的NLU处理可以获取正确的对话行为;“I’m glad”的输入成功转换为对话行为thankyou()。一旦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准确度。
第七示例实施方式:将话题内NLU和话题外NLU进行组合的NLU算法
在第七示例实施方式中,存在如图24所示另一个NLU算法。它从上面的示例实施方式改变了NLU上的处理细节(4030,10040,13140)。
首先,该算法基于用户识别结果、当前对话任务和对话历史来加载NLU模型(27010)。然后,通过使用上面示例实施方式中的任何方法来执行NLU:基于FST的NLU、基于RNN的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接收用户话语的单词(29040),其可以是上述示例实施方式中提到的单热向量或N个热示例的格式。另外,编码器RNN可以接收附加信息29030,其可以涉及对话历史信息(包括用户话语、用户对话行为、系统话语和系统对话行为)和当前对话状态下的期望用户对话行为。通过使用其他RNN或其他神经网络,可以将接收到的原始信息转换为适当的向量表达。系统对话行为是语义表达,其指示对话系统通过输出系统话语想要向用户表达什么。例如,系统话语“What kind offood would you like?”具有对话行为request(slot=food)。
训练对话模型使得当它接收对话语料库中的具有在29030处提到的附加信息的“用户”话语时,输出对话语料库中的“系统”话语。假设存在如下情况:因为对话语料库上的注释未完成,或者对话语料库是从与目标任务不同的任务获取的,所以附加信息29030不可用。在这种情况下,可以在没有附加信息的情况下训练对话模型。如果对话语料库的一部分具有附加信息而其他部分没有附加信息,则可以通过两个步骤训练对话模型:预训练和微调。在预训练步骤中,通过使用没有附加信息的数据来训练模型。在微调步骤中,通过使用具有附加信息的数据来进一步训练预训练模型。
经训练的谈话模型用于话题外NLU以生成系统话语。话题外NLU的过程在图28(b),28510-28560示出。首先,对话系统已经具有用户话语28510和对话历史28520。对话历史可以具有对应的系统对话行为和用户对话行为(不在图中)。使用谈话模型28540将这些输入到语句生成器28530。语句生成器由图29中所示的编码器-解码器RNN模型来实现。通过将用户话语和附加信息输入到语句生成器,模型从解码器RNN 29020生成语句。对话系统可以采用生成的语句作为系统话语。然而,在该示例实施方式中,存在一种方法,语句生成器用于从预定义的系统话语候选中选择最合适的系统话语。使用编码器-解码器RNN的语句生成方法可能具有以下缺点:开发人员无法控制编码器-解码器RNN生成的输出语句。这种情况可能导致对话系统提供不正确的系统话语。因此,示例实施方式利用该模型从经过适当审查的多个语句中选择一个语句。系统话语的候选显示在28550中。RNN的网络结构不限于图29。例如,输入信息29030不仅可以输入到编码器RNN 29010和解码器RNN 29020。
为了确定系统应从28558选择哪个语句,系统计算解码器RNN在给定用户话语和附加信息的情况下生成28550中的一个语句的概率。图29的示例显示语句“Me too!It's mypleasure”(29050)概率为0.6(29060),这是系统话语候选中最大的概率。因此,“话题外”的NLU 27030输出所生成的系统话语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结果时,尚未确定下个对话状态。有几种替换方法确定对话情景的下个状态。首先,每当采用话题外NLU结果时,可能不会发生对话状态转换。其次,当采用话题外NLU结果时,对话情景也可能具有下个对话状态的定义。还可能根据由话题外NLU采用的系统话语来定义下个对话状态。最后,如果可以准备合适的对话语料库,则可以制作编码器-解码器RNN模型,其中解码器RNN不仅输出系统话语的单词,还输出任何其他信息,例如下个对话状态、下个期望的对话用户的行为等。通过利用以这种方式训练的RNN模型,当采用话题外NLU结果时,可以在对话情景上确定下个状态。
该示例实施方式示出了替代NLU算法,其不仅可以理解意图预定义对话行为的用户话语,还可以理解用户话语,该用户话语示出开发人员没有希望用户说出的意图。它提高了系统话语对于用户话语的多样性和用户意图的多样性的鲁棒性。
第八个示例实施方式:系统话语转换
在第八示例实施方式中,系统话语被转换。语句转换的目的是从存储在对话情景中的固定系统话语中生成各种系统话语。
图30(a)和图30(b)示出根据示例实施方式的话语转换的处理。为了实现话语转换,如图30(a)所示,从话语到话语语料库30010和训练器30020训练话语转换模型30030(30005)。在图31中示出用于训练的话语到话语语料库。话语-话语语料库包括常规话语(31010)、系统对话行为(31020)和重写话语(31030)。常规话语是与对话情景中的系统话语具有相似特征的话语:这意味着常规话语通常具有简洁、清晰和正式的表达或语法。重写的系统话语具有与对应的常规话语相同含义的语句。重写的话语应该具有比常规话语更多种类的表达(例如熟悉的表达、非正式单词)。系统对话话语指示对应的常规话语和重写的话语的对话行为。
有几种方法可以制作话语到话语语料库。一种可能的方式是人类开发人员首先制作常规话语,然后通过考虑每个常规话语的替代表达来手动地制作重写的话语。另一种方式是首先从对话语料库、网络资源或任何其他信息源收集大量语句。收集的语句用作重写的话语。然后,通过简化收集的句子来制作常规话语。语句的简化可以通过任何期望的实施方式来完成,例如整数线性编程方法。
在图32中示出话语转换模型的细节。它同编码器-解码器RNN模型实现。编码器RNN32010将常规话语作为其输入(32040)。它还需要输入附加信息32030:其可以涉及在话语到话语语料库中指定的系统对话行为和对话历史信息。给定该输入,训练RNN元胞以便从解码器RNN(32020)输出重写的话语(32050)。RNN的网络结构不限于图32。例如,输入信息32030不仅可以输入到编码器RNN 32010和解码器RNN 32020。附加信息32030可以包括用户状态的信息:对正在进行的谈话的参与、情绪状态或用户的个性,通过诸如用户的面部、姿势、运动和语音的信息来估计。
系统话语转换器(30530)使用经训练的话语转换模型(30540)将对话情景中的语句(30510)转换为经转换的系统话语(30550)。系统话语转换器(30530)还接收系统对话行为(30515)、对话历史(30520)作为输入。对话历史可以具有对应的系统对话行为和用户对话行为(图中未绘制)。然后将经转换的系统话语(30550)从对话系统输出给用户。
当从与目标任务不同的任务的对话中制作话语到话语语料库时,可能难以从目标任务中的对话行为中为每个话语选择适当的系统对话。一种替代方法是使用通用对话行为。如果使用通用对话行为,则可以自动确定话语有关的动作行为。虽然这种通用对话行为与针对目标任务定义的对话行为不同,但通常的对话控制基本上利用任务特定的对话行为,而句子细化器基本上利用通用对话行为:这意味着一个系统话语应该具有两种类型的对话行为。
此示例实施方式显示了一种转换系统话语以提高表达质量的方式。大多数的先前对话系统输出在对话情景中注册的固定系统话语。系统话语固定使得用户在与对话系统的对话中感到无聊的印象。该示例实施方式提供了系统话语的细化方法,并且有助于从对话情景中的固定系统话语中创建各种系统话语。因此,这样的示例实施方式实现了针对用户更自然和更有吸引力的对话。
第九示例实施方式:用户对话行为预测
在该示例实施方式中,存在预测对话状态中用户对话行为的替代方式。其原始过程在图9中的9130中示出。此过程由下面的示例实施方式中描述的方法来替换。
图33示出根据示例实施方式的预测用户对话行为的过程。该示例实施方式中的对话行为预测利用机器学习方法。首先,如33010所示准备对话语料库。对话语料库包括系统话语、用户的话语和对应的对话行为。系统话语在33030中以“系统”的类别33020示出。用户话语在33030中以“用户”的类别33020示出。每个话语的对话行为在33040中示出。该对话语料库可以从存储在对话系统或服务器中的对话历史中产生。
对话行为预测器的目标是,给定对话历史,对话行为预测器预测用户的下个对话行为。因此,对话行为预测器的训练过程将33050中所示的对话历史作为输入特征,然后训练模型以输出用户的下个对话行为33060。
对话行为预测器的形式显示在33065中。对话行为预测器包括系统话语编码器33070、用户话语编码器33080和对话行为概率计算器33090。系统话语编码器和用户话语编码器分别接收系统话语或用户话语作为输入。然后输入话语将被编码。如果这些编码器由RNN实现,则编码处理将输入信息保留为隐藏层值。最后,这些编码器的输出33100被发送到对话行为概率计算器。对话行为概率计算器针对对话行为在下一次出现的可能性,计算用户对话行为的概率。对话行为预测器的组件通过各种形式的神经网络实现。
预测下个用户对话行为的方法使用基于机器学习的算法。因此,当准备大量对话语料库时,可以实现高精度的对话行为预测。
图34示出了具有适用于一些示例实施方式的示例计算机设备的示例计算环境,诸如客户端设备或服务器,其有助于实现图1和图3所示的对话系统的功能。
计算环境3400中的计算机设备3405可以包括一个或多个处理单元、核或处理器3410,存储器3415(例如,RAM、ROM和/或类似物),内部存储器3420(例如,磁、光、固态存储器和/或有机的),和/或I/O接口3425,其中的任何一个都可以耦合在用于传送信息或嵌入在计算机设备3405中的通信构件或总线3430上。
计算机设备3405可以通信地耦合到输入/用户接口3435和输出设备/接口3440。输入/用户接口3435和输出设备/接口3440中的任一个或两个可以是有线或无线接口并且可以是可拆卸的。输入/用户接口3435可以包括能够用于提供输入的任何设备、组件、传感器或者物理或虚拟接口(例如,按钮、触摸屏界面、键盘、指向/光标控制、麦克风、相机、盲文、运动传感器、光学读取器和/或类似物)。输出设备/接口3440可以包括显示器、电视、监视器、打印机、扬声器、盲文等。在一些示例实施方式中,输入/用户接口3435和输出设备/接口3440可以嵌入或物理耦合到计算机设备3405。在其他示例实施方式中,其他计算机设备可以用作计算机设备3405或者向计算机设备1105提供输入/用户接口3435和输出设备/接口3440的功能。
计算机设备3405的示例可以包括但不限于,高度移动设备(例如,智能电话、车辆和其他机器中的设备、人和动物携带的设备等),移动设备(例如,平板电脑、笔记本计算机、膝上型计算机、个人计算机、便携式电视、收音机等),以及不是为移动性而设计的设备(例如,桌上型计算机、其他计算机、信息亭、其中嵌入一个或多个处理器和/或与其耦合的电视、无线电等)。
计算机设备3405可以通信地耦合(例如,经由I/O接口3425)到外部存储器3445和网络3450,用于与任何数量的联网组件、设备和系统进行通信,包括相同或不同配置的一个或多个计算机设备。计算机设备3405或任何连接的计算机设备可以用作提供服务器、客户端、瘦服务器、通用机器、专用机器或其他标签的服务,或被称为服务器、客户端、瘦服务器、通用机器、专用机器或其他标签。
I/O接口3425可以包括但不限于使用任何通信或I/O协议或标准(例如,以太网、802.11x、通用系统总线、WiMax、调制解调器、蜂窝网络协议等)的有线和/或无线接口,用于向计算环境3400中的至少所有连接的组件、设备和网络传送信息和/或从其传送信息。网络3450可以是任何网络或网络组合(例如,互联网、局域网、广域网、电话网络、蜂窝网络、卫星网络等)。
计算机设备3405可以利用计算机可用或计算机可读介质来使用和/或通信,包括瞬态介质和非瞬时介质。瞬态介质包括传输介质(例如,金属线缆、光纤)、信号、载波等。非瞬态介质包括磁介质(例如,磁盘和磁带),光学介质(例如,CD ROM、数字视频盘、蓝光光盘),固态介质(例如,RAM、ROM、闪速存储器、固态存储器),以及其他非易失性存储器或内存。
可以使用计算机设备3405来实现在一些示例计算环境中的技术、方法、应用、处理或计算机可执行指令。计算机可执行指令可以从瞬态介质中检索,并存储在非非瞬态介质上并从非瞬态介质中检索。可执行指令可以源自任何编程、脚本和机器语言(例如,C、C++、C#、Java、Visual Basic、Python、Perl、JavaScript等)中的一个或多个。
处理器3410可以在本机或虚拟环境中的任何操作系统(OS)(未示出)下执行。可以部署一个或多个应用,其包括逻辑单元3460、应用编程接口(API)单元3465、输入单元3470、输出单元3475,以及用于不同单元相互通信、与OS和与其他应用(未显示)进行通信的单元间通信机制3495。所描述的单元和元件可以在设计、功能、配置或实现方式上变化,并且不限于所提供的描述。
在一些示例实施方式中,当API单元3465接收到信息或执行指令时,其可以被传送到一个或多个其他单元(例如,逻辑单元3460、输入单元3470、输出单元3475)。在一些实例中,逻辑单元3460可以在上述一些示例实施方式中,用于控制单元之间的信息流并且指导由API单元3465、输入单元3470、输出单元3475提供的服务。例如,一个或多个处理或实施方式的流程可以由逻辑单元3460单独控制或者与API单元3465相结合地控制。输入单元3470可以用于获取在示例实施方式中描述的计算的输入,并且输出单元3475可以用于基于示例实施方式中描述的计算来提供输出。
图35示出根据示例实施方式的用于客户端设备(诸如,机器人)的示例硬件示意图。在涉及机器人3500的实施方式中,机器人3500可以用于经由语音或文本输入与用户交互,并且可以包括处理器3501、存储器3502、通信接口3503、诸如相机的一个或多个传感器3504,以及一个或多个执行器3505。存储器3502可以存储能够加载到处理器3501中以执行如在此所述的流程图的指令。通信接口3503可以用于通过基带处理器如图3中所示与服务器交互,并且还可以提供本地通信接口,例如显示器或扬声器,以根据期望的实施方式以语音或显示文本的形式输出对话行为。传感器3504可以包括用于从用户获取语音作为输入的麦克风,该输入被转换为输入对话,或者可以包括其他输入设备,诸如用于接收文本输入的键盘或触摸接口。执行器3505可以用于致动机器人3500的各个部件(例如,臂、腿、轮等),其可以根据期望的实施方式与输出语音或文本同步。
示例实施方式可以包括系统、计算机可读介质、以及用于如图1所示的对话系统的方法,该对话系统包括:配置有接收用户输入的文本输入方法的客户端设备,诸如图34和图35所示,以及用于如图1所示与服务器通信的第一自然语言理解(NLU)模型,用户输入包括由用户键入的文本输入或者如图4(a)所示从用户语音获取的自动语音识别(ASR)输出中的至少一个,并且服务器包括如图3所示的第二NLU模型,其中第一NLU模型和第二NLU模型是不同的。这样的方法可以包括:从应用第一NLU模型在客户端设备处确定输入对话的NLU结果;对于从应用第一NLU模型获取的NLU结果的值或置信度得分不满足阈值,使得客户端设备访问服务器从而通过对输入对话使用第二NLU模型来执行NLU处理;以及对于从应用第一NLU模型获取的NLU结果的值或置信度得分满足阈值,使得客户端设备基于从应用第一NLU模型获取的NLU结果来执行动作,例如图4(a)所示。
示例实施方式还可以涉及仅当以下情况下才使得客户端设备访问服务器以执行NLU处理:通过应用第一NLU模型获取的NLU结果是落入另一阈值以下的输入对话中的多个单词引出,并且NLU结果少于输入对话的对话状态中期望的NLU输出数量;其中从与输入对话相关联的对话情景来确定期望的NLU输出,例如如图4(a)和图4(b)所示。
示例实施方式还可以涉及将客户端设备的NLU结果中的对话行为与在服务器的NLU结果中获取的对话行为针对冲突进行比较;并且对于冲突的比较指示,舍弃具有较低置信度得分的冲突对话行为,如图11所示。
示例实施方式还可以涉及采用具有比第一阈值更高的置信度得分或值的客户端设备的NLU结果;对于具有比第一阈值更低的置信度得分或值并且比第二阈值更高的置信度得分或值的NLU结果,执行确认对话以确认NLU结果;并且对于具有比第二阈值更低的置信度得分或值的NLU结果,舍弃NLU结果,如图8所示。在这样的示例实施方式中,可以基于以下至少一个来完成确认、采用和舍弃:NLU结果的对话行为是否是从语义空间导出,对话行为是否是从服务器获取,以及对话行为和词组对是否与从对话行为-组块信息引用的真实固定标志相关联,如图8所示。执行确认对话还可以涉及查询提取的对话行为是否正确;以及作为响应创建反馈多元组,所述创建反馈多元组涉及:响应于所提取的对话行为正确的查询,将包括对话行为和对应的词组的对与正反馈相关联,响应于所提取的对话行为不正确的查询,将对话行为和对应的词组与负反馈相关联;利用反馈多元组来更新对话行为-组块信息,所述利用反馈多元组涉及:对于与正反馈相关联的反馈多元组,增加对话行为-组块信息中的正反馈值,对于与负反馈相关联的反馈多元组,增加对话行为组块信息中负反馈值;并且对于指示对话行为组块对有误的固定标志,将对话行为组块对的相关值作为正反馈值与负反馈值的比率,如图6、图8、图11和图14所示。
在示例实施方式中,执行确认对话以确认NLU结果可以涉及,对于具有低于另一阈值的置信度得分或值的确认响应,从客户端设备向服务器请求通过应用服务器中的第二NLU模型来执行对于确认响应的NLU处理,如图4(a)或图4(b)所示。
在示例实施方式中,执行确认对话以确认NLU结果可以涉及,基于对确认对话的响应,从客户端和服务器中的至少一个来评估置信度得分或值,其中基于置信度得分来确定正反馈和负反馈增加的值,如图6至图14中所示。
示例实施方式还可以涉及,在服务器处收集来自客户端设备的反馈;在服务器上生成NLU更新信息;向客户端设备提供NLU更新信息;以及根据NLU信息更新第一NLU模型,该更新涉及在客户端设备处执行更新,使得通过检查针对第一NLU模型的冲突NLU更新,并且检查来自应用NLU更新信息的测试数据的准确性,来防止NLU准确性的退化,如图21中所示。
示例实施方式还可以涉及,通过在输入对话上使用第二NLU模型来执行NLU过程,将从NLU过程获取的NLU结果从服务器提供给客户端设备,将提供的NLU结果注册到第一NLU模型使得第一NLU模型用于响应于输入对话,在不访问服务器的情况下,输出所提供的NLU结果,如图4(a)和图4(b)所示。
在示例实施方式中,第一NLU模型和第二NLU模型可以从基于有限状态置换器(FST)的算法生成,其中基于对话行为-组块对信息,输入对话中的词组被映射在FST上,并且FST中的弧与对应的对话行为和权重联系起来;其中从应用第一NLU模型或第二NLU模型确定输入对话的NLU结果可以涉及:在FST上执行最短路径搜索;并且沿着最短路径搜索的一个或多个路径输出对话行为,用于低于另一阈值的权重的总和,如图5-7、图11、图15和图16。FST中的弧包括对话行为可以基于输入对话中的词组与对话行为-组块对信息中的已知词组之间的语义距离,如图5-7、图16和图17所示。
在示例实施方式中,对话行为-组对信息可以涉及相关性得分、正反馈、负反馈、得票计数和固定标志;相关性得分用于确定FST弧中的权重,正反馈响应于对确认对话的正反馈响应而增加,负反馈响应于对确认对话的负反馈响应而增加,得票计数存储反馈频率,固定标志是预定义的并且指示在进一步处理中是否允许对应的对话行为-组块对被修改,并且用于当得票计数大于得票计数阈值并且相关性值高于相关性阈值或者低于相关性阈值时从假变为真,如图7-14所述。
在示例实施方式中,从训练算法生成第一NLU模型和第二NLU模型,该训练算法用于利用机器学习执行序列标记方法;其中,通过针对语句中的每个单词和每个语句中的至少一个,使用涉及语句和相关对话行为的训练数据来训练第一NLU模型和第二NLU模型,如图17或图26中所述。单个单词和语句可以与零对话行为相关联,或者可以与一个或多个对话行为相关联。
示例实施方式还可以涉及提供确认对话,该确认对话用于提示被提取的对话行为是否正确;基于对于确认对话的响应来创建反馈训练数据,该反馈训练数据被添加到NLU算法训练的训练数据,创建反馈训练数据涉及:对于确认对话的响应为正,利用提取的对话来标记对应的词组;并且对于确认对话的响应为负,将对应的词组标记为不生成所提取的对话,如从图3至图36的各种实施方式中所描述。
在示例实施方式中,文本输入可以涉及被转换为混淆网络的语句输入的一个或多个候选,并且该方法还涉及:将混淆网络转换为第一FST,其中基于单词置信度来确定弧的权重;以及将对话行为-组块信息转换为接收单词输入和输出对话行为的第二FST;其中NLU处理涉及将从文本输入导出的第一FST和从对话行为-组块信息导出的第二FST进行合成,如图20至图24所示。根据期望的实施方式,机器学习算法可以是递归神经网络(RNN),其用于接收涉及单词的一个或多个候选的输入,并且输出与输入对应的对话行为,如图17和图18(a)和图18(b)所示。
在示例实施方式中,第一NLU模型和第二NLU模型与NLU算法相关联,该NLU算法是基于有限状态置换器(FST)的算法和序列标记算法的组合,如图17至图26所示。
在示例实施方式中,第一NLU模型和第二NLU模型中的每一个模型涉及话题外NLU,该话题外NLU通过对话语料库进行训练并且用于接收对话历史信息和输入对话中的至少一个;以及输出系统话语;其中,对于具有比在第一NLU模型和第二NLU模型中配置的其他NLU更大置信度的输出,采用由话题外NLU输出的系统话语,如图4(a)、图4(b)和图27所示。在这样的示例实施方式中,话题外NLU可以用于基于来自话题外NLU模型的每个系统语句的输出概率,在系统话语的预定义列表内选择一个置信系统话语。
根据计算机内的操作的算法和符号表示来呈现详细描述的一些部分。这些算法描述和符号表示是数据处理领域的技术人员用于将其创新的本质传达给本领域其他技术人员的手段。算法是导致期望的最终状态或结果的一系列定义的步骤。在示例实施方式中,执行的步骤需要物理操纵有形量以便实现有形结果。
除非另外特别说明,否则从讨论中清楚的是,应理解的是,在整个说明书中,利用诸如“处理”、“计算(computing)”、“计算(calculating)”、“确定”、“显示”等术语的讨论可以包括计算机系统或其他信息处理设备的动作和处理,其将计算机系统的寄存器和存储器内被表示为物理(电子)量的数据进行操纵并转换成类似地表示为计算机系统的存储器或寄存器或其他信息存储、传输或显示设备内的物理量的其他数据。
示例实施方式还可以涉及执行在此的操作的装置。该装置可以是针对所需目的而专门构造,或者它可以包括由一个或多个计算机程序选择性地激活或重新配置的一个或多个通用计算机。这样的计算机程序可以存储在计算机可读介质中,例如计算机可读存储介质或计算机可读信号介质。计算机可读存储介质可以涉及有形介质,例如但不限于光盘、磁盘、只读存储器、随机存取存储器、固态设备和驱动器、或适合用于存储电子信息的任何其他类型的有形或非瞬态介质。计算机可读信号介质可包括诸如载波的介质。这里呈现的算法和显示并非固有地关于任何特定计算机或其他装置。计算机程序可以包括纯软件实施方式,其包括执行期望实施方式的操作的指令。
各种通用系统可以与根据在此的示例的程序和模块一起使用,或者可以证明便于构造更专用的装置以执行期望的方法步骤。另外,不参考任何特定的编程语言来描述示例实施方式。应当理解的是,可以使用各种编程语言来实现如在此所述的示例实施方式的教导。编程语言的指令可以由一个或多个处理设备执行,例如中央处理器(CPU)、处理器或控制器。
如本领域中已知的,上述操作可以通过硬件、软件或软件和硬件的特定组合来执行。示例实施方式的各个方面可以使用电路和逻辑设备(硬件)来实现,而其他方面可以使用存储在机器可读介质上的指令(软件)来实现,如果由处理器来执行这些指令,则将使得处理器执行实现本申请的实施方式的方法。此外,本申请的一些示例实施方式可以仅在硬件中执行,而其他示例实施方式可以仅在软件中执行。而且,所描述的各种功能可以在单个单元中执行,或者可以以任何数量的方式在多个组件上进行扩展。当通过软件执行时,该方法可以通过诸如通用计算机的处理器基于存储在计算机可读介质上的指令来执行。如果需要,指令可以以压缩和/或加密格式存储在介质上。
此外,考虑到说明书和本申请的教导的实践,本申请的其他实施方式对于本领域技术人员而言将是清楚是。所描述的示例实施方式的各个方面和/或组件可以单独使用或以任何组合使用。意图将说明书和示例实施方式仅视为示例,本申请的真实范围和精神由下面的权利要求来指示。
Claims (20)
1.一种用于对话系统的方法,所述对话系统包括:客户端设备,其配置有文本输入方法以接收用户输入,以及用于与服务器通信的第一自然语言理解(NLU)模型,所述用户输入包括由用户键入的文本输入或者从用户语音获取的自动语音识别(ASR)输出中的至少一个;以及服务器,其包括第二NLU模型,其中第一NLU模型与第二NLU模型不同,所述方法包括:
从应用第一NLU模型在客户端设备处,确定输入对话的NLU结果;
对于从应用第一NLU模型获取的NLU结果的置信度得分不满足阈值,使得所述客户端设备访问所述服务器通过在所述输出对话上使用第二NLU模型来执行NLU处理;并且
对于从应用第一NLU模型获取的NLU结果的置信度得分满足阈值,使得所述客户端设备基于从应用第一NLU模型获取的NLU结果来执行动作。
2.根据权利要求1所述的方法,其中仅当以下情况下才使得所述客户端设备访问所述服务器以执行NLU处理:当通过应用第一NLU模型获取的NLU结果是从落在另一阈值以下的所述输入对话中的多个单词引出,并且NLU结果少于所述输入对话的对话状态中期望的NLU输出数量;其中从与输入对话相关联的对话情景来确定期望的NLU输出。
3.根据权利要求1所述的方法,进一步包括:
针对冲突,将所述客户端设备的NLU结果中的对话行为与所述服务器的NLU结果中获取的对话行为进行比较;
对于指示冲突的比较,舍弃具有较低置信度得分的冲突对话行为。
4.根据权利要求1所述的方法,进一步包括:
采用具有高于第一阈值的置信度得分的所述客户端设备的NLU结果;
对于具有低于第一阈值并且高于第二阈值的的置信度得分的NLU结果,执行确认对话以确认该NLU结果;并且
对于置信度得分低于第二阈值的NLU结果,舍弃该NLU结果。
5.根据权利要求4所述的方法,其中确认、采用和舍弃是基于以下中的至少一个来完成:
NLU结果的对话行为是否从语义空间导出,
对话行为是否从所述服务器获取,
对话行为和词组对是否与从对话行为-组块信息引用的真实固定标志相关联。
6.根据权利要求4所述的方法,其中所述执行确认对话包括:
查询提取的对话行为是否正确;
作为响应创建反馈多元组,所述创建反馈多元组包括:
响应于查询出所提取的对话行为是正确的,将包括对话行为和对应词组的对与正反馈相关联,
响应于查询出所提取的对话行为是不正确的,将对话行为和对应词组的所述对与负反馈相关联;
利用反馈多元组来更新对话行为-组块信息,所述利用反馈多元组包括:
对于与正反馈相关联的反馈多元组,在对话行为-组块信息中增加正反馈值,
对于与负反馈相关联的反馈多元组,在对话行为-组块信息中增加负反馈值;并且
对于固定标志指示对话行为-组块对为假,将对话行为-组块对的相关性值计算为正反馈值对于负反馈值的比率。
7.根据权利要求6所述的方法,其中执行所述确认对话以确认NLU结果包括:
对于具有低于另一阈值的置信度得分的确认响应,从所述客户端设备向所述服务器请求通过在所述服务器中应用第二模型来执行针对确认响应的NLU处理。
8.根据权利要求6所述的方法,其中执行确认对话以确认NLU结果包括:
基于对于确认对话的响应,从所述客户端和所述服务器中的至少一个来评价置信度得分,
其中基于置信度得分来确定正反馈和负反馈的增加值。
9.根据权利要求4所述的方法,进一步包括:
在所述服务器处收集来自所述客户端设备的反馈;
在所述服务器处生成NLU更新信息;
向所述客户端设备提供所述NLU更新信息;以及
根据NLU信息来更新第一NLU模型,所述更新包括:
在所述客户端设备处执行所述更新,使得通过检查针对第一NLU模型的冲突NLU更新中的至少一个,并且检查来自应用所述NLU更新信息的测试数据的准确性,来防止NLU准确度的退化。
10.根据权利要求1所述的方法,进一步包括:
对于通过在输入对话上使用第二NLU模型来执行NLU处理,将从NLU处理获取的NLU结果从所述服务器提供到所述客户端设备,
将所提供的NLU结果注册到第一NLU模型,使得第一NLU模型用于响应于输入对话,在不访问所述服务器而输出所提供的NLU结果。
11.根据权利要求1所述的方法,其中从基于有限状态置换器(FST)的算法生成第一NLU模型和第二NLU模型,其中基于对话行为-组块对信息,输入对话中的词组被映射在FST上,并且所述FST中的弧与对应的对话行为和权重联系起来;
其中,从应用第一NLU模型或第二NLU模型来确定输入对话的NLU结果包括:
在所述FST上执行最短路径搜索;以及
沿着所述最短路径搜索的一个或多个路径输出对话行为,用于低于另一阈值的权重的总和。
12.根据权利要求11所述的方法,其中所述FST中的弧包括对话行为,该对话行为基于输入对话中的词组与所述对话行为-组块对信息中的已知词组之间的语义距离。
13.根据权利要求11所述的方法,其中
所述对话行为-组块对信息包括相关性得分、正反馈、负反馈、得票计数和固定标志;
所述相关性得分用于确定FST弧中的权重,
正反馈响应于对于确认对话的正反馈响应而增加,
负反馈响应于对于确认对话的负反馈响应而增加,
所述投票计数存储反馈频率,
所述固定标志是预定义的并且指示在进一步的处理中是否允许对应的对话行为-组块对被修改,并且所述固定标志用于当得票计数大于得票计数阈值并且所述相关性值高于相关性阈值或低于相关性阈值时从假变为真。
14.根据权利要求1所述的方法,其中从训练算法生成第一NLU模型和第二NLU模型,所述训练算法用于利用机器学习来执行序列标记方法;
其中对于语句中的每个单词和每个句子中的至少一个,通过使用包括语句和相关联的对话行为的训练数据,来训练第一NLU模型和第二NLU模型。
15.根据权利要求14所述的方法,进一步包括:
提供确认对话,该确认对话用于提示提取的对话行为是否正确;
基于对于被添加到训练数据用于NLU算法训练的确认对话的响应,来创建反馈训练数据,所述创建反馈训练数据包括:
对于确认对话的响应为肯定,利用提取的对话动作来标记对应的词组;并且
对于确认对话的响应为否定,将对应的词组标记为不生成提取的对话动作。
16.根据权利要求1所述的方法,其中所述文本输入包括被转换为混淆网络的语句输入的一个或多个候选,并且其中所述方法进一步包括:
将所述混淆网络转换为第一FST,其中基于单词置信度来确定弧的权重;以及
将对话行为-组块信息转换为第二FST,该第二FST接收单词输入和输出对话行为;
其中NLU处理包括将从所述文本输入导出的第一FST和从对话行为-组块信息导出的第二FST合成。
17.根据权利要求14所述的方法,其中机器学习算法是递归神经网络(RNN),其用于接收包括单词的一个或多个候选的输入并且输出与该输入对应的对话行为。
18.根据权利要求1所述的方法,其中第一NLU模型和第二NLU模型与NLU算法相关联,所述NLU算法是基于有限状态置换器(FST)的算法和序列标记算法的组合。
19.根据权利要求1所述的方法,其中第一NLU模型和第二NLU模型中的每个NLU模型包括话题外NLU,所述话题外NLU通过对话语料库进行训练并且用于:
接收对话历史信息和输入对话中的至少一个;以及
输出系统话语;其中对于具有高于在第一NLU模型和第二NLU模型中所配置的其他NLU的置信度的输出,采用由所述话题外NLU输出的系统话语。
20.根据权利要求19所述的方法,其中所述话题外NLU用于基于来自所述话题外NLU模型的每个系统语句的输出概率,在所述系统话语的预定义列表内选择一个置信系统话语。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/794,825 US10453454B2 (en) | 2017-10-26 | 2017-10-26 | Dialog system with self-learning natural language understanding |
US15/794,825 | 2017-10-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110019745A true CN110019745A (zh) | 2019-07-16 |
Family
ID=63642512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810972114.0A Withdrawn CN110019745A (zh) | 2017-10-26 | 2018-08-24 | 具有自学习自然语言理解的对话系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10453454B2 (zh) |
EP (1) | EP3477638A3 (zh) |
JP (1) | JP6678710B2 (zh) |
KR (1) | KR102117574B1 (zh) |
CN (1) | CN110019745A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110473543A (zh) * | 2019-09-25 | 2019-11-19 | 北京蓦然认知科技有限公司 | 一种语音识别方法、装置 |
CN110675871A (zh) * | 2019-09-25 | 2020-01-10 | 北京蓦然认知科技有限公司 | 一种语音识别方法及装置 |
CN110675857A (zh) * | 2019-09-23 | 2020-01-10 | 湖北亿咖通科技有限公司 | 一种语音识别自动化测试系统及方法 |
CN111081220A (zh) * | 2019-12-10 | 2020-04-28 | 广州小鹏汽车科技有限公司 | 车载语音交互方法、全双工对话系统、服务器和存储介质 |
CN112182189A (zh) * | 2020-10-10 | 2021-01-05 | 网易(杭州)网络有限公司 | 一种对话处理方法、装置、电子设备及存储介质 |
CN112199470A (zh) * | 2020-10-09 | 2021-01-08 | 康佳集团股份有限公司 | 一种基于会话的客诉服务方法、智能终端及存储介质 |
CN112489632A (zh) * | 2019-09-11 | 2021-03-12 | 甲骨文国际公司 | 实施校正模型以减少自动语音识别错误的传播 |
CN113204488A (zh) * | 2021-05-26 | 2021-08-03 | 南京大学 | 一种针对递归神经网络驱动的对话系统的自动化测试方法 |
WO2021254411A1 (zh) * | 2020-06-17 | 2021-12-23 | 华为技术有限公司 | 意图识别方法和电子设备 |
CN114443190A (zh) * | 2020-10-18 | 2022-05-06 | 国际商业机器公司 | 从远程引导的增强现实会话自动生成自引导的增强现实会话计划 |
Families Citing this family (84)
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 |
US10929890B2 (en) | 2013-08-15 | 2021-02-23 | Overstock.Com, Inc. | System and method of personalizing online marketing campaigns |
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 |
WO2019160612A1 (en) | 2018-02-15 | 2019-08-22 | DMAI, Inc. | System and method for dynamic robot profile configurations based on user interactions |
CN112262024B (zh) | 2018-02-15 | 2024-05-03 | 暗物智能科技(广州)有限公司 | 用于增强数字体验的动态机器人配置的系统和方法 |
WO2019160613A1 (en) | 2018-02-15 | 2019-08-22 | DMAI, Inc. | System and method for dynamic program configuration |
US11036605B2 (en) * | 2018-02-21 | 2021-06-15 | International Business Machines Corporation | Feedback tuples for detecting data flow anomalies in stream computing environment |
EP3586332A1 (en) | 2018-05-07 | 2020-01-01 | Google LLC. | Multi-modal interaction between users, automated assistants, and other computing services |
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 |
JP7125630B2 (ja) * | 2018-08-15 | 2022-08-25 | 日本電信電話株式会社 | 要点抽出装置、要点抽出方法、及びプログラム |
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 |
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 |
GB201818234D0 (en) | 2018-11-08 | 2018-12-26 | Polyal | A dialogue system and a dialogue method |
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 | 주식회사 다이얼로그디자인에이전시 | 인공지능 음성인식 기반 검수기 및 분석기의 상호학습을 통한 자연어 말뭉치 구축 방법 |
KR20220007160A (ko) * | 2019-05-28 | 2022-01-18 | 구글 엘엘씨 | 스트리밍 엔드-투-엔드 모델을 사용한 대규모 다국어 음성 인식 |
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 |
KR20210033837A (ko) * | 2019-09-19 | 2021-03-29 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
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 | 支付宝(杭州)信息技术有限公司 | 一种话术生成方法和系统 |
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 |
CN111858868A (zh) * | 2019-12-31 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 一种客服应答模型训练方法和系统 |
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 |
CN111259663B (zh) * | 2020-01-14 | 2023-05-26 | 北京百度网讯科技有限公司 | 信息处理方法和装置 |
CN111243571B (zh) * | 2020-01-14 | 2022-11-15 | 北京字节跳动网络技术有限公司 | 文本的处理方法、装置、设备及计算机可读存储介质 |
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 | 阿里巴巴集团控股有限公司 | 任务驱动型多轮对话系统中的状态追踪方法及装置 |
WO2021255484A1 (en) * | 2020-06-18 | 2021-12-23 | Citrix Systems, Inc. | Autonomous learning of entity values in artificial intelligence conversational systems |
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 |
EP4281880A1 (en) * | 2021-01-20 | 2023-11-29 | Oracle International Corporation | Multi-feature balancing for natural language processors |
JP2022125637A (ja) * | 2021-02-17 | 2022-08-29 | 富士通株式会社 | 判定処理プログラム、判定処理方法および情報処理装置 |
US20240127796A1 (en) * | 2021-02-18 | 2024-04-18 | Nippon Telegraph And Telephone Corporation | Learning apparatus, estimation apparatus, methods and programs for the same |
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 |
US11997168B2 (en) | 2021-03-26 | 2024-05-28 | 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 |
US11978445B1 (en) * | 2021-03-30 | 2024-05-07 | Amazon Technologies, Inc. | Confidence scoring for selecting tones and text of voice browsing conversations |
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 |
US11430446B1 (en) | 2021-08-12 | 2022-08-30 | PolyAI Limited | Dialogue system and a dialogue method |
US20240104652A1 (en) * | 2021-11-30 | 2024-03-28 | Hcl Technologies Limited | Method and system for performing cloud vendor arbitrage using artificial intelligence (ai) |
US20230196033A1 (en) * | 2021-12-20 | 2023-06-22 | Rovi Guides, Inc. | Methods and systems for responding to a natural language query |
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 |
CN116842156B (zh) * | 2023-06-30 | 2024-05-10 | 北京百度网讯科技有限公司 | 数据生成方法及装置、设备和介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005257917A (ja) * | 2004-03-10 | 2005-09-22 | Nippon Telegr & Teleph Corp <Ntt> | 音声解釈方法、音声解釈装置、音声解釈プログラム |
JP2007013521A (ja) * | 2005-06-30 | 2007-01-18 | Toshiba Corp | サーバ装置 |
JP2008009153A (ja) * | 2006-06-29 | 2008-01-17 | Xanavi Informatics Corp | 音声対話システム |
JP2013510341A (ja) * | 2009-11-10 | 2013-03-21 | ボイスボックス テクノロジーズ,インク. | 自然言語音声サービス環境におけるハイブリッド処理のシステム及び方法 |
US20130151250A1 (en) * | 2011-12-08 | 2013-06-13 | Lenovo (Singapore) Pte. Ltd | Hybrid speech recognition |
US20140136283A1 (en) * | 2012-11-15 | 2014-05-15 | Homer Tlc, Inc. | System and method for competitive product assortment |
WO2017030006A1 (en) * | 2015-08-17 | 2017-02-23 | Mitsubishi Electric Corporation | Spoken language understanding system |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1151488C (zh) * | 1998-10-02 | 2004-05-26 | 国际商业机器公司 | 通过一般分层对象进行有效语音导航的结构框架 |
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> | 言語自動識別方法及び装置 |
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 |
JP4901736B2 (ja) * | 2005-07-26 | 2012-03-21 | 本田技研工業株式会社 | ユーザと機械とのインタラクションを実施するための装置、方法、およびプログラム |
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 |
JP5530729B2 (ja) * | 2009-01-23 | 2014-06-25 | 本田技研工業株式会社 | 音声理解装置 |
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 |
US8484031B1 (en) * | 2011-01-05 | 2013-07-09 | Interactions Corporation | Automated speech recognition proxy system for natural language understanding |
US9245525B2 (en) * | 2011-01-05 | 2016-01-26 | Interactions Llc | 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 |
US9171066B2 (en) * | 2012-11-12 | 2015-10-27 | Nuance Communications, Inc. | Distributed natural language understanding and processing using local data sources |
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 |
WO2016018111A1 (en) * | 2014-07-31 | 2016-02-04 | 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 |
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 | 한국전자통신연구원 | 점증적 대화지식 자가학습 기반 대화장치 및 그 방법 |
-
2017
- 2017-10-26 US US15/794,825 patent/US10453454B2/en not_active Expired - Fee Related
-
2018
- 2018-08-24 CN CN201810972114.0A patent/CN110019745A/zh not_active Withdrawn
- 2018-08-30 JP JP2018162200A patent/JP6678710B2/ja not_active Expired - Fee Related
- 2018-09-03 KR KR1020180104533A patent/KR102117574B1/ko active IP Right Grant
- 2018-09-07 EP EP18193107.2A patent/EP3477638A3/en not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005257917A (ja) * | 2004-03-10 | 2005-09-22 | Nippon Telegr & Teleph Corp <Ntt> | 音声解釈方法、音声解釈装置、音声解釈プログラム |
JP2007013521A (ja) * | 2005-06-30 | 2007-01-18 | Toshiba Corp | サーバ装置 |
JP2008009153A (ja) * | 2006-06-29 | 2008-01-17 | Xanavi Informatics Corp | 音声対話システム |
JP2013510341A (ja) * | 2009-11-10 | 2013-03-21 | ボイスボックス テクノロジーズ,インク. | 自然言語音声サービス環境におけるハイブリッド処理のシステム及び方法 |
US20130151250A1 (en) * | 2011-12-08 | 2013-06-13 | Lenovo (Singapore) Pte. Ltd | Hybrid speech recognition |
US20140136283A1 (en) * | 2012-11-15 | 2014-05-15 | Homer Tlc, Inc. | System and method for competitive product assortment |
WO2017030006A1 (en) * | 2015-08-17 | 2017-02-23 | Mitsubishi Electric Corporation | Spoken language understanding system |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112489632A (zh) * | 2019-09-11 | 2021-03-12 | 甲骨文国际公司 | 实施校正模型以减少自动语音识别错误的传播 |
CN112489632B (zh) * | 2019-09-11 | 2024-04-05 | 甲骨文国际公司 | 实施校正模型以减少自动语音识别错误的传播 |
CN110675857A (zh) * | 2019-09-23 | 2020-01-10 | 湖北亿咖通科技有限公司 | 一种语音识别自动化测试系统及方法 |
CN110473543A (zh) * | 2019-09-25 | 2019-11-19 | 北京蓦然认知科技有限公司 | 一种语音识别方法、装置 |
CN110675871A (zh) * | 2019-09-25 | 2020-01-10 | 北京蓦然认知科技有限公司 | 一种语音识别方法及装置 |
CN111081220A (zh) * | 2019-12-10 | 2020-04-28 | 广州小鹏汽车科技有限公司 | 车载语音交互方法、全双工对话系统、服务器和存储介质 |
WO2021254411A1 (zh) * | 2020-06-17 | 2021-12-23 | 华为技术有限公司 | 意图识别方法和电子设备 |
CN112199470A (zh) * | 2020-10-09 | 2021-01-08 | 康佳集团股份有限公司 | 一种基于会话的客诉服务方法、智能终端及存储介质 |
CN112199470B (zh) * | 2020-10-09 | 2023-12-05 | 康佳集团股份有限公司 | 一种基于会话的客诉服务方法、智能终端及存储介质 |
CN112182189A (zh) * | 2020-10-10 | 2021-01-05 | 网易(杭州)网络有限公司 | 一种对话处理方法、装置、电子设备及存储介质 |
CN114443190A (zh) * | 2020-10-18 | 2022-05-06 | 国际商业机器公司 | 从远程引导的增强现实会话自动生成自引导的增强现实会话计划 |
CN113204488A (zh) * | 2021-05-26 | 2021-08-03 | 南京大学 | 一种针对递归神经网络驱动的对话系统的自动化测试方法 |
Also Published As
Publication number | Publication date |
---|---|
JP6678710B2 (ja) | 2020-04-08 |
KR20190046623A (ko) | 2019-05-07 |
EP3477638A2 (en) | 2019-05-01 |
JP2019079034A (ja) | 2019-05-23 |
EP3477638A3 (en) | 2019-06-26 |
US10453454B2 (en) | 2019-10-22 |
US20190130904A1 (en) | 2019-05-02 |
KR102117574B1 (ko) | 2020-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019745A (zh) | 具有自学习自然语言理解的对话系统 | |
US10762892B2 (en) | Rapid deployment of dialogue system | |
US10977452B2 (en) | Multi-lingual virtual personal assistant | |
US11367434B2 (en) | Electronic device, method for determining utterance intention of user thereof, and non-transitory computer-readable recording medium | |
US10832674B2 (en) | Voice data processing method and electronic device supporting the same | |
US11769492B2 (en) | Voice conversation analysis method and apparatus using artificial intelligence | |
US11068474B2 (en) | Sequence to sequence conversational query understanding | |
US11494161B2 (en) | Coding system and coding method using voice recognition | |
US11238871B2 (en) | Electronic device and control method thereof | |
EP4004719B1 (en) | Ambiguity resolution with dialogue search history | |
US11514916B2 (en) | Server that supports speech recognition of device, and operation method of the server | |
CN114127694A (zh) | 用于会话系统的错误恢复 | |
US20220059088A1 (en) | Electronic device and control method therefor | |
US11817097B2 (en) | Electronic apparatus and assistant service providing method thereof | |
US20200257954A1 (en) | Techniques for generating digital personas | |
CN109643545A (zh) | 信息处理设备和信息处理方法 | |
CN113192530A (zh) | 模型训练、嘴部动作参数获取方法、装置、设备及介质 | |
WO2021150320A1 (en) | Updating training examples for artificial intelligence | |
AU2021306718B2 (en) | System to confirm identity of candidates | |
US11804225B1 (en) | Dialog management system | |
JP6985311B2 (ja) | 相槌判定によって応答発話生成を制御する対話実施プログラム、装置及び方法 | |
CN115223562A (zh) | 语音识别方法及装置 | |
CN116822465A (zh) | 对话文本的补全方法、装置、存储介质及计算机设备 | |
JP2020160118A (ja) | 情報処理装置、情報処理方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190716 |