CN114365120A - 减少的训练意图识别技术 - Google Patents
减少的训练意图识别技术 Download PDFInfo
- Publication number
- CN114365120A CN114365120A CN202080063758.3A CN202080063758A CN114365120A CN 114365120 A CN114365120 A CN 114365120A CN 202080063758 A CN202080063758 A CN 202080063758A CN 114365120 A CN114365120 A CN 114365120A
- Authority
- CN
- China
- Prior art keywords
- key
- value
- function
- match
- training
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 124
- 238000000034 method Methods 0.000 title claims abstract description 123
- 230000008569 process Effects 0.000 claims abstract description 46
- 230000006870 function Effects 0.000 claims description 238
- 230000015654 memory Effects 0.000 claims description 37
- 239000013598 vector Substances 0.000 claims description 31
- 239000010410 layer Substances 0.000 claims description 13
- 239000002356 single layer Substances 0.000 claims description 9
- 238000010801 machine learning Methods 0.000 abstract description 17
- 230000001755 vocal effect Effects 0.000 abstract description 11
- 238000012545 processing Methods 0.000 description 57
- 238000004891 communication Methods 0.000 description 29
- 230000004044 response Effects 0.000 description 25
- 230000009471 action Effects 0.000 description 14
- 238000007726 management method Methods 0.000 description 11
- 235000013550 pizza Nutrition 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 235000015220 hamburgers Nutrition 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 235000001674 Agaricus brunnescens Nutrition 0.000 description 3
- 241000207836 Olea <angiosperm> Species 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000007635 classification algorithm Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 235000002566 Capsicum Nutrition 0.000 description 2
- 239000006002 Pepper Substances 0.000 description 2
- 241000722363 Piper Species 0.000 description 2
- 235000016761 Piper aduncum Nutrition 0.000 description 2
- 235000017804 Piper guineense Nutrition 0.000 description 2
- 235000008184 Piper nigrum Nutrition 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011143 downstream manufacturing Methods 0.000 description 2
- 238000013549 information retrieval technique Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 235000013580 sausages Nutrition 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013068 supply chain management Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 240000005020 Acaciella glauca Species 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000002591 computed tomography Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000002595 magnetic resonance imaging Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 235000003499 redwood Nutrition 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000003325 tomography Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24147—Distances to closest patterns, e.g. nearest neighbour classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS 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/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- 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/226—Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Human Computer Interaction (AREA)
- General Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- Databases & Information Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开一般而言涉及使用对话系统基于言语输入来确定意图。更具体地,描述了使用基于匹配的机器学习技术来识别与对话系统中的言语输入对应的意图的技术。当从可能的意图集合中添加或移除意图时,这些过程不需要训练。
Description
相关申请的交叉引用
本申请依据35U.S.C.119(e)要求于2019年9月12日提交的标题为“REDUCEDTRAINING INTENT RECOGNITION TECHNIQUES”的美国申请No.62/899,654和于2020年7月29日提交的标题为“REDUCED TRAINING INTENT RECOGNITION TECHNIQUES”的美国申请No.16/942,535的优先权权益,其内容通过引用整体并入本文,用于所有目的。
技术领域
本公开一般而言涉及对话系统。更具体而言,但不作为限制,本发明描述了用于使用匹配函数来执行自然语言对话任务的技术,该技术可以显著减少设立和维护对话系统所需的训练量。
背景技术
现在越来越多的设备使得用户能够使用语音或口语言语直接与设备交互。例如,用户可以用自然语言对这样的设备说话,其中用户可以提出问题或做出请求执行某个动作的陈述。作为响应,设备执行所请求的动作或使用语音输出来响应用户的问题。由于直接使用语音进行交互是人类与其周围环境交流的一种更自然、更直观的方式,因此这种基于言语的系统的普及率正以天文数字的速度增长。
能够经由语音输入和语音输出与用户进行对话的启用语音的系统可以以各种形式出现。例如,这样的系统可以作为独立设备、作为数字或虚拟助理、作为支持语音的服务等提供。在这些形式中的每一种中,系统能够接收语音或言语输入、理解该输入、响应于该输入而生成响应或采取动作,以及使用语音输出来输出响应。在某些实施例中,这种启用语音的系统中的对话功能由对话系统或基础设施(“对话系统”)提供。
基于机器学习的技术在对话系统中被广泛用于各种功能。例如,对于语音输入,对话系统可以使用有监督的机器学习技术来预测该输入的意图(intent),其中意图是预配置的意图集合中选择的。作为另一个示例,在问题-回答应用中,对话系统可以使用机器学习技术来预测针对输入问题的回答。这通常使用基于分类器的方法来实现,该方法在关注的值或与该值相关联的底层数据发生变化时必须进行重新训练。因此,传统方法需要频繁的重新训练,这很麻烦并且需要大量时间和计算资源来投入到这些重新训练过程中。
发明内容
本公开一般而言涉及使用对话系统来自动回答问题。更具体地,描述了使用基于匹配的机器学习系统来识别与对话系统中的言语输入对应的值(例如,意图或回答)的技术。本文描述了各种实施例,包括方法、系统、存储可由一个或多个处理器执行的程序、代码或指令的非暂态计算机可读存储介质等。
在某些实施例中,对话系统接收输入的口语话语(spoken utterance)。对话系统生成输入口语话语的向量表示。对话系统使用匹配函数(match function)为多个键-值对中的每个键-值对生成匹配分数,其中为每个键-值对生成的匹配分数指示该键-值对的键与输入口语话语的向量表示的匹配程度,其中多个键-值对中的每个键是句子的多维向量表示,并且其中匹配函数被配置为为具有相同相关联值的两个不同键的匹配生成比具有不同关联值的两个不同键的匹配更高的匹配分数。对话系统基于为多个键-值对生成的匹配分数从该多个键-值对中识别具有最高匹配分数的特定键-值对。对话系统输出与该特定键-值对相关联的值作为输入口语话语的值。
在一些方面,对话系统进一步使用训练数据来训练匹配函数,其中该训练包括通过最小化损失函数(loss function)来调整与匹配函数相关联的参数集合。在一些方面,对话系统进一步使用训练数据来训练匹配函数,其中该训练包括通过最大化似然函数(likelihood function)来调整与匹配函数相关联的参数集合。
在一些方面,多个键-值对的值是意图。在一些方面,多个键-值对的键是问题的表示,多个键-值对的值是与相应问题对应的回答,与特定键-值对相关联的输出值对应于所选择的回答,并且该值作为对输入口语话语的回答被输出。
在一些方面,输入口语话语是第一输入口语话语,所述值是第一值,匹配分数是第一匹配分数,并且该方法还包括,在针对第一输入口语话语输出第一值之后,由对话系统更新多个键-值对以包括附加的键-值对;由对话系统接收第二输入口语话语;由对话系统使用匹配函数生成更新后的多个键-值对中的每个键-值对的第二匹配分数,其中匹配函数在生成第一匹配分数和生成第二匹配分数之间不变;由对话系统从更新后的多个键-值对中识别具有最高匹配分数的第二特定键-值对;以及由对话系统输出与第二特定键-值对相关联的第二值作为输入口语话语的值。在一些方面,匹配函数包括余弦相似度函数(cosinesimilarity function),双线性函数(bilinear function),单层网络(single-layernetwork)、多层网络(multilayer network)或最近邻函数(nearest-neighbor function)之一。
在一些实施例中,公开了一种用于训练对话系统中使用的匹配函数的训练方法。该方法包括用训练数据来训练匹配函数。匹配函数被训练以生成键-值对的键与多个键-值对中的另一个键-值对的另一个键的匹配分数。生成的匹配分数指示这两个键的匹配程度。多个键-值对中的每个键是句子的多维向量表示。匹配函数被配置为为具有相同关联值的两个不同键的匹配生成比具有不同关联值的两个不同键的匹配更高的匹配分数。
在一些实施例中,公开了一种用于训练对话系统中使用的匹配函数的训练装置。该装置包括用于用训练数据来训练匹配函数的部件。匹配函数被训练以生成键-值对的键与多个键-值对中的另一个键-值对的另一个键的匹配分数。生成的匹配分数指示这两个键的匹配程度。多个键-值对中的每个键是句子的多维向量表示。匹配函数被配置为为具有相同关联值的两个不同键的匹配生成比具有不同关联值的两个不同键的匹配更高的匹配分数。
在一些实施例中,公开了一种非暂态计算机可读介质。非暂态计算机可读介质存储可由一个或多个处理器执行的多个指令。该多个指令包括当由一个或多个处理器执行时使一个或多个处理器执行处理的指令,所述处理包括用训练数据来训练匹配函数。匹配函数被训练以生成键-值对的键与多个键-值对中的另一个键-值对的另一个键的匹配分数。生成的匹配分数指示这两个键的匹配程度。多个键-值对中的每个键是句子的多维向量表示。匹配函数被配置为为具有相同关联值的两个不同键的匹配生成比具有不同关联值的两个不同键的匹配更高的匹配分数。
实施例还包括系统、计算机可读存储器和被配置用于执行本文描述的方法的程序。
在参考以下说明书、权利要求和附图时,前述内容以及其它特征和实施例将变得更加清楚。
附图说明
图1是描绘根据某些实施例的对话系统的简化框图。
图2是根据一些实施例的用于将输入口语话语与值匹配的方法的简化流程图。
图3描绘了描绘根据某些实施例的在设立阶段期间执行的示例处理的简化流程图。
图4描绘了描绘根据附加实施例的在设立阶段期间执行的处理的另一个示例的简化流程图。
图5描绘了用于实现实施例的分布式系统的简化图。
图6是根据某些实施例的其中可以提供各种服务作为云服务的基于云的系统环境的简化框图。
图7图示了可以被用于实现某些实施例的示例性计算机系统。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。但是,显然可以在没有这些具体细节的情况下实践各种实施例。各图和描述并非旨在限制。词语“示例性”在本文用于表示“用作示例、实例或图示”。本文描述为“示例性”的任何实施例或设计不一定被解释为优选或优于其它实施例或设计。
本公开涉及用于使用基于匹配的机器学习技术来识别对话系统中的言语输入的值的技术。该值可以对应于意图或问题的回答。识别出的值可以与系统支持的功能(诸如进行购买和查找方向)进行关联。当从可能的值集合中添加或移除值时,这些使用匹配函数来确定值的技术不需要训练。这使得开发人员能够向聊天机器人或数字助理添加意图或回答,并立即使用新的意图或回答测试系统,而无需等待训练步骤。
大多数基于机器学习的技术需要训练步骤。该训练步骤可能是计算密集型的,因此可能需要一天甚至更多时间。即使是非常快速的训练也需要几分钟(例如,5-15分钟被认为是快速的训练)。因此,在使用常规基于机器学习的分类器的现有聊天机器人系统中,很难以及时的方式来更新系统(例如,向聊天机器人系统添加功能)和部署系统,这是因为系统由于更新需要被重新训练。
例如,给定用户查询或话语,传统上,使用基于传统分类算法的分类器来确定查询的意图。使用机器学习技术而构建的模型被用作分类器并用于执行分类,并且构建该模型需要训练步骤。当底层数据(例如,候选类的集合)发生变化时,这些分类器模型需要重新训练。作为具体示例,在传统的分类器方法(诸如有监督的分类)中,当向聊天机器人或数字助理添加新意图时,必须重新运行机器学习训练算法才能学会处理该新意图。相应地,在将新意图添加到训练数据与具有用于将用户请求映射到意图的更新后的过程之间存在显著的时间延迟。这种时间延迟使开发人员难以交互式地开发具有新颖的意图的聊天机器人或数字助理,或者难以演示涉及添加新意图的聊天机器人或数字助理开发工具包。
本文描述的技术不需要这种重新训练。例如,开发人员可以向系统添加新的意图并在不重新训练的情况下试用它们。公开了新技术,用于使用不同类型的算法(当添加或移除意图时该算法不要求重新训练)在对话系统中执行任务(诸如意图识别或问题回答)。如本文所描述的,匹配函数而不是传统的分类算法被用于识别话语的值。
匹配函数示例
在一些实施例中,不需要在每次候选意图集合改变时重新训练的一种信息检索技术(例如,匹配函数)被用于解决意图确定问题。相应地,使用不同于传统的基于分类算法的技术来解决意图确定问题——使用信息检索技术(匹配函数)来解决问题。替代地或附加地,匹配函数可以被用于执行对话系统中的其它任务,诸如问题回答。
在聊天机器人系统环境中,通过学习而获得匹配函数。然后使用该匹配函数将用户请求话语与为候选意图集合中的每个意图给出的候选话语进行匹配。将要为其确定意图的用户请求话语与为候选意图集合提供的候选话语集合进行匹配。
在一些实施例中,使用键-值对检索技术。例如,在聊天机器人系统的问题-回答(QnA)设置中,用户提出的问题或查询被匹配到多个键的集合中的键,并检索与该匹配的键相关联的值。该值可以作为对该查询的响应输出,或用于确定对该查询的响应。
例如,可以如下执行基于匹配的值确定:
(1)接收来自用户的查询。
(2)将查询与一组键-值对的键进行比较。例如,键是样本话语(诸如句子),并且值是对应的意图。键-值对可以由为其构建聊天机器人系统的客户来配置。识别出针对该查询的最佳匹配键。
(3)然后将与最佳匹配键相关联的值用于下游处理。例如,该值可以作为查询的响应而输出。作为另一个示例,该值可以识别与查询对应的意图,然后可以使用该意图来生成响应。
通常,存在与相同值相关联的多个键。在这种场景中,生成匹配函数(或模型),与指向不同值的键相比,该匹配函数(或模型)优先地将映射到相同值的两个键匹配。作为示例,该模型被训练成使得键“get me a new account(给我一个新账户)”用比“Can I closemy account?(我可以关闭我的账户吗?)”更高的匹配分数而优先匹配到键“How can Iopen an account?(我如何开账户?)”。这是因为两个键匹配相同的值(例如,OPEN_ACCOUNT(开账户)意图),而“Can I close my account?”映射到不同的值(例如,CLOSE_ACCOUNT意图)。类似地,“How can I open an account?”用比“Can I close my account?”更高的匹配分数匹配到“get me a new account”。训练过程是为了学习匹配函数,使得具有相同值的键优先于具有不同值的键相互匹配。匹配函数被训练成使得,与映射到不同值的键相比,对于映射到相同值的键,指示匹配程度的匹配分数更高。
在某些实施例中,匹配函数基于匹配分数而返回匹配的排名列表。在聊天机器人的上下文中,选择具有最高分数的匹配。可以使用不同类型的匹配函数。匹配函数可以有参数,并且作为学习处理的一部分,这些参数被调整,使得具有相同值的键比具有不同值的键匹配得更好。一些匹配函数可能没有其自己的参数(例如,点积/余弦相似度算法)。
在某些实施例中,神经网络可以被用于基于用于生成匹配函数的输入训练键-值对来产生嵌入体(embedding)。在训练过程期间,调整神经网络的参数和匹配函数的参数,使得具有相同关联值的键比具有不同值的键匹配得更好。
在一些实施例中,为了确保匹配函数用比它匹配映射到不同值的键的匹配分数更高的匹配分数来匹配映射到相同值的所有键,与相同值相关联的键被视为正对(positivepair),并且具有不同值的键被视为负对(negative pair)。训练匹配函数以确保正对(例如,映射到相同值的两个键)比对应的负对(例如,映射到不同值的两个键)具有更高的匹配分数。正对的匹配分数应高于负对的匹配分数。可能存在多个正对,并且两个不同的正对可能有不同的匹配分数,只要这些分数高于负对的匹配分数即可。完成训练以确保匹配函数使得各正对位于匹配列表的顶部,并确保一正对在列表登顶(即,具有最高匹配分数)。
可以使用不同的技术来生成匹配函数。在一些实施例中,可以基于排名算法来确定匹配函数。在一些实施例中,可以基于概率而不是排名来确定匹配函数。相应地,存在不同的方式来生成匹配函数。
匹配函数的使用
如上所述,匹配函数然后被用于为来自用户的查询(从包括多个键-值对的数据集中)找到匹配的键。使用match函数将该查询与所有键进行匹配,并识别最佳匹配的键(具有最高的匹配分数)。使用匹配函数识别匹配的键。与最佳匹配的键相关联的值然后被检索并用于下游处理。例如,该值可以表示针对查询的意图。作为另一个示例,可以输出该值作为对查询的响应。
模型可以被用于为查询找到匹配的键,其中存在查询与键的完全匹配,或者甚至当查询在某些部分与键不同时。
与标准分类器的区别
在标准分类技术中,数据集D被用于训练分类器。标准的基于分类器的方法具有如下特性,即,该方法永远不会返回在其训练数据集D中未看到过的值。而在本公开中公开的技术中,使用匹配函数而不是分类算法。匹配函数是在不同数据集上训练的(或者匹配函数甚至根本没有被训练),并且在运行时使用的数据集不必与用于训练匹配函数的数据集相同。因为在运行时使用的数据集不必与用于训练匹配函数的数据集相同,因此匹配函数有可能返回用于学习匹配函数的训练数据集中不存在的值。例如,这使得能够添加新的意图,而无需经过重新训练过程。
示例对话系统
图1图示了根据一些实施例的对话系统100的示例。对话系统100被配置为从用户102接收语音或言语输入104(也称为语音话语)。然后对话系统100可以理解这些语音输入。对话系统100可以维持与用户102的对话,并且可能基于对语音输入的理解来执行或导致执行一个或多个动作。对话系统100可以准备适当的响应,并使用语音或言语输出将响应输出给用户。对话系统100是可以被用于使用大量计算机处理周期来处理大量数据的专用计算系统。图1中描绘的设备数量仅用于说明目的。可以使用不同数量的设备。例如,虽然图1中的每个设备、服务器和系统都示出为单个设备,但也可以替代地使用多个设备。
在某些实施例中,对话系统执行的处理由部件或子系统的流水线实现,包括言语输入部件105、唤醒词检测(WD)子系统106、自动言语识别(ASR)子系统108、自然语言理解(NLU)子系统110(其包括命名实体识别器(NER)子系统112、意图匹配子系统113和语义解析器子系统114)、匹配数据库115、对话管理器(DM)子系统116(其可以包括QnA匹配子系统117)、自然语言生成器(NLG)子系统118、文本到言语(TTS)子系统120和言语输出部件124。上面列出的子系统可以仅用软件(例如,使用可由一个或多个处理器或核心执行的代码、程序或指令)、用硬件或用硬件和软件的组合来实现。在某些实施方式中,子系统中的一个或多个子系统可以组合成单个子系统。附加地或替代地,在一些实施方式中,本文描述的由特定子系统执行的功能可以由多个子系统实现。
言语输入部件105包括被配置为接收言语输入104的硬件和软件。在一些情况下,言语输入部件105可以是对话系统100的一部分。在一些其它实例中,言语输入部件105可以与对话系统100分离并且可通信地耦合到对话系统100。例如,言语输入部件105可以包括耦合到软件的麦克风,该软件被配置为将言语输入数字化并将其传输到唤醒词检测子系统106。
唤醒词检测(WD)子系统106被配置为针对与特殊声音或词或词集合(被称为唤醒词)对应的输入来监听和监控音频输入流。在检测到为对话系统100配置的唤醒词时,WD子系统106被配置为激活ASR子系统108。在某些实施方式中,可以向用户提供激活或停用WD子系统106的能力(例如,通过说出唤醒词、按下按钮)。当被激活(或在活动模式下操作)时,WD子系统106被配置为持续地接收音频输入流,并处理音频输入流以识别与唤醒词对应的音频或语音输入。当检测到与唤醒词对应的音频输入时,WD子系统106激活ASR子系统108。
如上所述,WD子系统106激活ASR子系统108。在启用语音的系统的一些实施方式中,可以使用唤醒词以外的机制来触发或激活ASR子系统108。例如,在一些实施方式中,设备上的按钮可以被用于触发ASR子系统108处理而无需唤醒词。在这样的实施方式中,可以不提供WD子系统106。当按下或激活按钮时,在按钮激活之后接收到的言语输入被提供给ASR子系统108进行处理。在一些实施方式中,ASR子系统108可以在接收到要处理的输入时被激活。
ASR子系统108被配置为接收和监视在触发或唤醒信号(例如,唤醒信号可以由WD子系统106在检测到言语输入中的唤醒词时发送、唤醒信号可以在按钮激活时被接收等)之后的口语语音输入并将语音输入转换成文本。作为其处理的一部分,ASR子系统108执行言语到文本的转换。口语言语或语音输入可以是自然语言形式,并且ASR子系统108被配置为以言语输入的语言生成对应的自然语言文本。由ASR子系统生成的文本随后被馈送到NLU子系统110用于进一步处理。由ASR子系统108接收到的语音输入可以包括一个或多个单词、短语、子句、句子、问题等。ASR子系统108被配置为为每个口语子句生成文本话语并将文本话语馈送到NLU子系统110进行进一步处理。
NLU子系统110接收由ASR子系统108生成的文本。NLU子系统110从ASR子系统108接收的文本可以包括与口语单词、短语、子句等对应的文本话语。NLU子系统110将每个文本话语(或一系列文本话语)翻译成其对应的逻辑形式。
在某些实施方式中,NLU子系统110包括命名实体识别器(NER)子系统112、意图匹配子系统113和语义解析器(SP)子系统114。NER子系统112接收文本话语作为输入、识别文本话语中的命名实体,并用与识别出的命名实体相关的信息来标记文本话语。标记的文本话语然后被馈送到SP子系统114,并且被馈送到意图匹配子系统113,SP子系统114被配置为为每个标记的文本话语(或为一系列标记的文本话语)生成逻辑形式,意图匹配子系统113被配置为识别与文本话语对应的一个或多个意图,该一个或多个意图可以由SP子系统114在生成逻辑形式时使用。
话语的意图识别话语的目标。意图的示例包括“Order_Pizza(订购披萨)”和“Find_Directions(查找路线)”。每个意图被赋予意图标识符或意图名称。例如,意图匹配子系统113被训练以进行识别的意图可以包括“CheckBalance(检查余额)”、“TransferMoney(转账)”、“DepositCheck(支票存款)”等。例如,意图可以识别被请求执行的动作。意图可以表示对话系统被训练以推断输入话语的类别或类。在接收到话语时,意图匹配子系统113可以确定话语的意图,其中推断的意图是从用于训练意图匹配子系统113的预定义意图集合中选择的。然后对话系统基于为话语推断的意图响应于该话语而采取适当的动作。
对于定义的每个意图,设计者可以提供表示并说明该意图的一个或多个示例话语。这些示例话语旨在表示用户可能针对该意图输入到对话系统的话语。例如,对于CheckBalance意图,示例话语可以包括“What's my savings account balance?(我的储蓄账户余额是多少?)”、“How much is in my checking account?(我的支票账户中有多少?)”、“How much money do I have in my account(我的账户中有多少钱)”等。相应地,各种典型用户话语的排列可以被指定为针对意图的示例话语。
意图和它们相关联的示例话语被用作训练数据来训练意图匹配子系统113。作为该训练的结果,生成预测模型(例如,匹配函数),该模型被配置为将话语作为输入并输出针对该话语推断出的意图。
在一些情况下,输入话语被提供给意图匹配子系统113,该意图匹配子系统113被配置为使用训练的模型来预测或推断输入话语的意图。然后对话系统可以基于推断的意图采取一个或多个动作。如本文所描述的,意图匹配子系统113可以将匹配函数应用于文本话语以预测与文本话语对应的意图。意图匹配子系统113可以与匹配数据库115交互以应用匹配函数。匹配数据库115可以存储多个键-值对,该多个键-值对将样本文本话语的表示映射到值。在一些实施例中,文本话语是键-值对中的键,并且意图是键-值对中的值。替代地或附加地,键-值对中的值可以对应于问题的回答。意图匹配子系统113可以应用匹配函数来识别存储到匹配数据库115中的、与文本话语最匹配的键。意图匹配子系统113然后可以识别对应的值,从而预测与文本话语对应的意图。
除了意图之外,为文本话语生成的逻辑形式还可以为识别出的意图识别槽(也称为参数或变元)。例如,对于言语输入“I’d like to order a large pepperoni pizzawith mushrooms and olives(我想订购带有蘑菇和橄榄的大意大利辣香肠披萨)”,NLU子系统110可以识别订购披萨的意图。NLU子系统还可以识别并填充槽,例如,pizza_size(用“large”填充)和pizza_toppings(用“mushrooms”和“olives”填充)。NLU子系统可以使用基于机器学习的技术、规则(其可能是特定于领域的)或两者的组合来生成逻辑形式。由NLU子系统110生成的逻辑形式然后被馈送到DM子系统116进行进一步处理。
DM子系统116被配置为基于从NLU子系统110接收到的逻辑形式来管理与用户的对话。作为对话管理的一部分,DM子系统116被配置为跟踪对话状态、发起多个动作或任务之一的执行或自身执行,并确定如何与用户交互。这些动作可以包括例如查询一个或多个数据库、产生执行结果和其它动作。例如,DM子系统116被配置为理解在从NLU子系统110接收到的逻辑形式中识别出的意图。基于这些理解,DM子系统116可以发起如下的一个或多个动作,即,DM子系统116将这些动作理解为被用户提供的语音输入所请求。
在某些实施例中,DM子系统116基于当前和过去的语音输入并且基于为DM子系统116配置的规则集合(例如,对话策略)来执行对话状态跟踪。这些规则可以指定不同的对话状态、状态之间转换的条件、在特定状态下要执行的动作等。这些规则可以是特定于领域的。
在一些实施例中,DM子系统116使用问题和回答(QnA)匹配子系统117来识别对查询的回答。QnA匹配子系统117可以将匹配函数应用于文本话语以预测与查询对应的回答,如本文所描述的。QnA匹配子系统117可以与匹配数据库115交互以应用匹配函数。如上所述,匹配数据库115可以存储将文本话语映射到值的多个键-值对,这些值可以对应于对问题的回答。QnA匹配子系统117可以应用匹配函数来识别存储到匹配数据库115中的、与文本话语(例如,查询,诸如由用户经由语音输入提出的查询)最佳匹配的键。意图匹配子系统113然后可以识别对应的值,从而预测与文本话语对应的回答。
DM子系统116还生成响应以传送回对话中涉及的用户。这些响应可以基于由DM子系统116发起的动作及其结果。由DM子系统116生成的响应被馈送到NLG子系统118进行进一步处理。
NLG子系统118被配置为生成与由DM子系统116生成的响应对应的自然语言文本。这些文本可以以使得它们能够被TTS子系统120转换成言语的形式生成。TTS子系统120从NLG子系统118接收文本并将它们中的每一个转换成言语或语音音频,然后该言语或语音音频可以经由对话系统的音频或言语输出部件124(例如,扬声器、或耦合到外部扬声器的通信通道)输出给用户。在一些情况下,言语输出部件124可以是对话系统100的一部分。在一些其它情况下,言语输出部件124可以与对话系统100分离并且可通信地耦合到对话系统100。
如上所述,对话系统100的协作工作的各种子系统提供使对话系统100能够接收言语输入104并使用言语输出122进行响应并使用自然语言言语与用户维持对话的功能。上述各种子系统可以使用单个计算机系统或使用协作工作的多个计算机系统来实现。例如,对于实现启用语音的系统的设备,上述对话系统100的子系统可以完全在用户与之交互的设备上实现。在一些其它实施方式中,对话系统100的一些部件或子系统可以在用户与之交互的设备上实现,而其它部件可以在远离该设备的地方实现,可能在一些其它计算设备、平台或服务器上实现。
如上所述,在某些实施例中,对话系统100可以使用子系统的流水线来实现。在一些实施例中,子系统中的一个或多个子系统可以组合成单个子系统。在某些实施例中,由特定子系统提供的功能可以由多个子系统提供。特定子系统也可以使用多个子系统来实现。
在某些实施例中,机器学习技术可以被用于实现对话系统100的一个或多个功能。例如,诸如使用神经网络(例如,深度神经网络)实现的那些有监督的机器学习技术可以被用于实现对话系统100的一个或多个功能。作为一个示例,可以提供被训练以执行所执行的ASR功能的神经网络,并且这种经训练的模型可以被ASR子系统108用于其处理。这样的神经网络实施方式可以将言语输入作为输入,并将文本话语输出到NLU子系统。基于机器学习的模型也可以被对话系统100的其它子系统使用。
使用匹配函数确定值
图2描绘了图示根据一些实施例的用于使用匹配函数来确定值的方法200的简化流程图。图2中描绘的处理可以用由相应系统、硬件或其组合的一个或多个处理单元(例如,处理器、核心)执行的软件(例如,代码、指令、程序)来实现。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图2中呈现并在下文描述的方法旨在是说明性的而非限制性的。虽然图2描绘了以特定序列或顺序发生的各种处理步骤,但这并非旨在进行限制。在某些替代实施例中,可以以一些不同的顺序执行这些步骤,或者也可以并行执行一些步骤。在某些实施例中,图2中描绘的处理可以由以上关于图1描述的对话系统100来执行。
如图2中所示,在202处,接收输入的口语话语。输入的口语话语可以源自用户说出的单词。对话系统可以例如经由言语输入部件105从用户接收输入的口语话语。输入的口语话语可以作为波形来接收。输入的口语话语可以是特定语言并且是自然语言查询的形式。输入的口语话语可以指定用户希望对话系统回答的问题、指定用户希望对话系统发起的一个或多个动作(例如,“I would like a medium pepperoni pizza.”(“我想要中等大小的意大利辣香肠比萨”))等。ASR子系统108可以处理输入的口语话语以生成文本话语,该文本话语被传递到NLU子系统110用于进一步处理。
在某些实施例中,不是接收言语输入(如在202中),而是可以以文本形式接收输入,例如,当用户在与对话系统聊天期间键入文本时。本公开中描述的技术可以与接收以口语言语、或文本输入、或其组合形式的输入的系统一起使用。
在204处,对话系统生成输入口语话语的向量表示。对话系统可以使用如在202处生成的文本话语来生成输入的口语话语的句子编码。对话系统可以生成输入的口语话语的编码版本(例如,一组词嵌入体,包含针对输入的口语话语中每个词的单独嵌入体,其中每个嵌入体是多维特征向量,该多维特征向量包含对应单词的特征的值)以进行处理。
在206处,对话系统使用匹配函数来为多个键-值对中的每个键-值对生成匹配分数。对话系统可以通过将匹配函数应用于各个键-值对中的多个键和在204处生成的输入口语话语的向量表示来计算多个匹配分数。为键-值对生成的匹配分数指示该键-值对的键与输入口语话语的向量表示的匹配程度。
对话系统可以将多个键-值对125存储在匹配数据库115中。每个键-值对包括键,键可以是文本串或其表示。键可以对应于用户查询,诸如“I need directions to yourstore(我需要前往您商店的路线)”或“How do I change my cable subscription?(我如何更改我的有线电视订阅?)”。
在一些实施例中,多个键-值对中的每个键是句子、短语、单词或单词集合的多维向量表示。键可以被编码为密集向量(例如,作为句子嵌入体),因此每个ki∈Rd,其中d是嵌入体的维度。嵌入体将单词和句子编码为固定长度的向量。例如,嵌入体可以是句子嵌入体,诸如来自变换器的双向编码器表示(BERT,Bidirectional Encoder Representationsfrom Transformers)或通用句子编码器(Universal Sentence Encoder)嵌入体。可以使用机器学习技术(例如,使用神经网络)训练嵌入体。嵌入体可以被用于概括(generalize)言语输入类型。相应地,对话系统可以生成表示多个样本话语的经训练的嵌入体集合,并且嵌入体可以被用于计算匹配分数。在一些实施例中,可以实现通用嵌入体。通用嵌入体的使用可以促进基于输入来识别值,而与接收输入的语言无关。
在一些实施例中,键可以包含比仅单独样本话语(例如,问题或句子)更多的信息。例如,键可能包括从相关联的回答或值中提取的信息(例如,键可以是问题嵌入体和回答嵌入体的线性组合)。作为具体示例,与键对应的值是到网站的链接。键可以包括从该到网站的链接导出的信息(例如,该网站上的单词)。这可以用来促进匹配过程。例如,对于键“close my account(关闭我的账户)”,“close(关闭)”的另一个术语是“shut(关停)”。网站可以包含短语“instructions to shut account(关停账户的说明)”。包括从值导出的此类信息可以促进在更多种类的言语输入中辨别意图。
对于每个键-值对,可以将键映射到相应的值,该值可以是意图、问题的回答、或其它合适的值。这些值可以表示为vi∈V,其中V是值集合。这些值可以被嵌入或者可以不嵌入。多个键-值对中的每个键可以与匹配数据库115中的对应值相关联地存储。例如,话语“Ineed directions to your store(我需要前往您商店的路线)”的向量表示被映射到意图FIND-DIRECTIONS(查找路线)。替代地或附加地,键和值可以对应于问题和回答,其中键对应于问题并且值提供对问题的回答。作为示例,表1图示了键-值对集合。
表1
三个键与值相关联地存储到表中。在表1所示的示例中,键是查询,例如,“How canI open an account?”)。这些值对应于与相应查询配对的回答。在表1所示的示例中,值是可以被用于向用户说明如何开账户或关闭账户的URL。键和值可以存储到匹配数据库115中作为D=((k1,v1),...,(kn,vn)),其中ki是第i个言语输入类型或键,并且vi是对应的值。
在一些实施例中,值是意图。在这种情况下,每个键可以表示样本话语,并且每个对应的值是该样本话语的意图。例如,键-值对可以包括键:“One large pepperoni(一个大意大利辣香肠)”,以及对应的值Order_Pizza(订购披萨)。替代地或附加地,多个键-值对的键是问题的表示,并且多个键-值对的值是与相应问题对应的回答。例如,键-值对可以包括键“How much is a large pepperoni pizza?(大的意大利辣香肠披萨多少钱?)”和对应的值“$19.99”。
对话系统通过将匹配函数应用于多个样本话语和在202处接收到的语音输入来计算匹配分数。匹配函数可以应用于每个存储的键连同在202处接收到的输入口语话语。匹配函数可以返回接收到的输入口语话语与存储的样本话语有多么地匹配。匹配函数可以与参数θ相关联,可以使用信息检索机器学习方法(诸如排名算法或概率算法)来学习或微调参数θ。匹配函数可以被配置为为具有相同关联值的两个不同键的匹配生成比针对具有不同关联值的两个不同键的匹配更高的匹配分数。
在一些实施例中,匹配函数Match()将查询q和键k映射到实数值匹配分数Match(q;k)。该查询对应于在202处的输入口语话语。作为具体示例,所存储的键-值对的语料库是数据集D。数据集D=((k1,v1),...,(kn;vn)),其由n个键-值对(ki,vi)组成,其中ki是键,并且vi是相关联的值。给定言语输入q,系统返回D中具有最佳匹配键的键-值对。函数BestMatch()返回最佳匹配的键-值对:
BestMatchθ(q,D)=argmax(k,v)∈DMatchθ(q,k) [1]
这里q是言语输入的句子编码,并且θ是匹配函数的参数向量。匹配函数进一步基于正键对和负键对的训练三元组T,如下面关于图3进一步描述的那样。示例匹配函数实施方式包括:
表2
一些匹配函数返回逆距离(例如,点积分数),在这种情况下,匹配问题构成在D中找到键k最接近言语输入/查询q的一个对。点积/余弦实施方式使用余弦相似度函数。余弦相似度基于两个向量的之间角度的余弦提供了这两个向量的相似度度量。(例如,参见Jiawei Han et al.,Getting to Know Your Data in Data Mining(Third Edition)(2012))。点积/余弦匹配函数没有需要训练数据的参数,但是训练数据可能仍可用于对产生言语输入类型的句子编码的句子嵌入模型进行微调。
表2中所示的其余匹配函数具有参数θ(第三列),参数θ可以从训练数据进行估计,如下面关于图3和图4所述的那样。双线性实施方式使用双线性函数,如在例如Wei Wu andZhendong Lu Hang Li,Learning Bilinear Model for Matching Queries andDocuments,Journal of Machine Learning research 14,2519–2548(2013)中描述的。1层网络是单层神经网络。多层网络是多层神经网络。表2中所示的用于多层网络实施方式的示例匹配函数包括ReLU,一种整流线性单元激活函数。但是,可以使用其它非线性函数(诸如tanh())来代替ReLU()。
替代地或附加地,可以实现概率模型(例如,最近邻函数)。概率模型涉及计算配分函数(partition function)。如果训练数据集大,那么通过配分函数进行反向传播可能具有挑战性。错误驱动的近似将会需要相对低的存储器使用。示例概率模型是:
其中:
Dv={(k′,v′)∈D,v′=v} [3]
Dv是D中具有值v的对的子集。等式[2]和[3]给出的概率模型是D上的指数模型,它在键k上边缘化(marginalize)并使用匹配分数作为势(potential)。
匹配函数可以在某个初始时间处被训练以生成参数θ。该训练可以涉及使用神经网络针对数据集D来优化θ,如下面关于图3和图4所述。对话系统可以初始地使用训练数据来训练匹配函数,其中该训练包括通过最小化损失函数来调整与匹配函数相关联的参数集合,如关于图3所描述的。替代地或附加地,该训练可以包括通过最大化似然函数来调整与匹配函数相关联的参数集合,如关于图4所描述的。
相应地,在202处接收输入口语话语之前,对话系统可以基于一组样本键和值的对来确定匹配函数的参数集合。用于训练的样本键和值的对可以与在计算匹配分数时存储和使用的那些对相同。替代地,用于训练的样本键和值的对可以与在计算匹配分数时存储和使用的那些对不同。相应地,可以在初始训练之后添加或移除键和值。
通过使用匹配函数,对话系统可以生成各个匹配分数,其对应于输入口语话语的向量表示与相应存储的键之间的相似性。例如,言语输入“How do I get to Montreal?(我如何去蒙特利尔?)”可能与“Find directions to Montreal(查找前往蒙特利尔的路线)”具有10的匹配分数,并且与“What is Montreal?(蒙特利尔是什么?)”具有4的匹配分数。
在208处,对话系统基于在206处生成的匹配分数来识别具有最高匹配分数的特定键-值对。对话系统可以比较在206处生成的匹配分数以识别具有最高匹配分数的键-值对。例如,话语“How much is a hamburger?(汉堡包多少钱?)”与键“How much is a hamsandwich(火腿三明治多少钱?)”具有70%匹配分数,与键“How much is a veggie burger(素食汉堡包多少钱?)”具有80%匹配分数,并且与键“How much is a hamburger?(汉堡包多少钱?)”具有100%匹配分数。相应地,识别出具有100%匹配分数的匹配键-值对“Howmuch is a hamburger?(汉堡包多少钱?)”。替代地,在一些实施例中,对话系统可以分配与匹配级别成反比的匹配分数,在这种情况下,可以选择具有最低匹配分数的键-值对。
在210处,对话系统输出与该特定键-值对相关联的值,作为针对输入口语话语的值。在一些实施例中,对话系统从在308处识别出的键-值对中选择对应的值,并生成和提供与所选择的值对应的响应。
对话系统可以遍历在208处选择的具有最高匹配分数的键-值对以识别其中的值。该值可以对应于意图、回答或用于执行对话过程的其它信息。作为具体示例,意图匹配子系统在确定键“Find directions to Montreal(查找去往蒙特利尔的路线)”与输入话语具有最高匹配之后,识别映射到键“Find directions to Montreal(查找去往蒙特利尔的路线)”的意图。识别出的意图是DIRECTIONS_TO(到……的路线),它与具有最高匹配分数的存储键相关联地存储。作为另一个示例,QnA匹配子系统可以识别问题的回答或者可以被用于检索与最高匹配键相关联地存储的回答的URL(例如,QnA匹配子系统可以识别最近咖啡店的地址,作为映射到最高得分的键(“Where is he nearest coffee shop?(最近的咖啡店在哪里?)”)的值)。在这种情况下,与特定键-值对相关联的输出值可以对应于所选择的回答,并且该值被输出作为对输入口语话语的回答。
对话系统可以将值输出到用户和/或对话系统的另一个子系统。作为后者的示例,意图匹配子系统113将识别出的意图输出到SP子系统114以部分地基于识别出的意图来生成逻辑形式。在一些情况下,对话处理流水线将继续向用户生成输出。向用户的输出可以包括识别出的值和/或从其导出的内容,作为语音输出和/或视觉提示。
在一些实施例中,对话系统生成响应,该响应包括或源自所选择的值。例如,值是意图FIND_STORE(查找商店)。对话系统可以使用GPS或后续问题来识别用户的位置,并识别距离识别出的位置最近的商店。然后对话系统可以将识别出的商店打包为用户友好的响应(例如,通过添加单词以形成完整的句子,诸如“Jay’s Party Supply is at 3215 MainStreet.Would you like directions?(Jay's Party Supply在3215 Main Street。您需要指示吗?)”在一些实施例中,所选择的值可以包括包含响应或响应的一部分的信息(例如,QnA匹配子系统可以识别URL,诸如上面表1中所示的那些)。
对话系统可以经由言语输出(例如,通过经由文本到言语子系统120将由对话管理器子系统116和自然语言生成器子系统118生成的文本响应转换成言语输出)提供响应作为(例如,向在202处提供了输入口语话语的用户的)输出。替代地或附加地,对话系统可以通过使在用户设备的显示部件上显示文本响应来提供响应。
随后,值可以被添加到存储的键-值映射或从存储的键-值映射中移除。对话系统可以处理第二输入口语话语,而不需要重新训练模型来处理改变后的值。例如,在202处接收到的输入口语话语是第一输入口语话语并且在210处输出的值是第一值。在确定第一值之后,对话系统更新键-值对集合以包括附加的键和/或值。例如,客户可以提供他们希望使得呼叫中心聊天机器人能够处理的附加的问题和回答的集合。对话系统的数据库被更新以反映更新后的键-值对集合(例如,通过将附加的键-值对存储到数据集来更新)。作为具体示例,对话系统可以添加包括样本话语“I want to return..(我想退回…)”和意图RETURN_ITEM(退回物品)的键-值对、包括样本话语“How do I return something?(我如何退回某些东西?)”和意图RETURN_ITEM的键-值对等等,其中多个键-值对包括与新值RETURN_ITEM对应的不同键。然后对话系统接收第二输入口语话语。第二输入口语话语可以对应于最近添加的值(例如,第二言语输入是“I want to return a shirt(我想退回衬衫)”,它与映射到意图RETURN_ITEM的键相匹配)。对话系统使用匹配函数确定与第二输入口语话语对应的第二值(例如,如以上关于204-208所述的那样)。对话系统在添加附加的键-值对和处理第二输入口语话语之间没有被重新训练(例如,匹配函数的参数集在确定第一值和确定第二值之间没有变化)。作为另一个示例,可以即时地从可能的值集合中移除值。即时地添加和移除意图的一个示例应用是使每个用户都与其自己的个性化的意图集合相关联。
图3描绘了描述根据某些实施例的在设立阶段期间执行的处理的简化流程图300。图3中描绘的处理可以用在由相应系统、硬件或其组合的一个或多个处理单元(例如,处理器、核心)执行的软件(例如,代码、指令、程序)来实现。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图3中呈现并在下文描述的方法旨在是说明性的而非限制性的。虽然图3描绘了以特定序列或顺序发生的各种处理步骤,但这并非旨在进行限制。在某些替代实施例中,可以以一些不同的顺序执行这些步骤,或者也可以并行执行一些步骤。在某些实施例中,图3中描绘的处理可以由如以上所描述的对话系统执行。
图3中描绘的处理可以在训练步骤中使用以配置匹配函数的参数。如上面关于图2所描述的,在202处接收输入口语话语之前,对话系统可以执行训练过程,从而产生匹配函数的参数集。在一些实施例中,这涉及使键-值对集合的损失函数最小化,这可以使用图3中描绘的处理来执行。
如图3中所示,在302处,对话系统获得训练数据。对话系统可以从各种来源获得训练数据,诸如从系统接收到的先前的言语输入、从客户和/或通过Web抓取。例如,训练数据可能包含数千对言语输入类型和对应的意图,它们由为其配置对话系统的机构提供。
在304处,对话系统基于正键对和负键对识别损失函数。正键对(k,k’)是匹配到相同值的两个键。例如,使用上面表1中所示的示例,键“How can I open an account?”和“Get me a new account”匹配相同的值http://xxx.com/open。负键对(k,k”)是匹配到不同值的两个键。例如,再次参考表1,键“How can I open an account?”和“Can I close myaccount?”匹配到不同的值。
在一些实施例中,在数据集D中,值中的许多值与多个键一起出现。即,对于许多值v,存在多个键k,k',其中k≠k'并且(k,v)∈D和(k',v)∈D。具有多个键的值越多,可用的数据就越多,并且最终结果越准确。例如,参考上面的表1,在D中,键“How can I open anaccount?”和“Get me a new account”二者都与相同的值“http://xxx.com/open”相关联。这两个键将用作该过程的正训练对。
P={(k,k'):(k,v)∈D,(k',v)∈D,k≠k'} [4]
是数据集D的正训练对集合。通过向每个对添加随机选择的负键k″,正训练对P可以扩展到训练三元组T,其中负键k″与对其它键的不同值相关联:
T={(k,k',k″):(k,v),(k',v),(k″,v″)∈D;k≠k'&k'≠k″&k″≠k;v≠v″} [5]
替代地,可以通过另一种方法来选择训练三元组。给定由键-值对组成的训练数据D=((k1,v1),...,(kn,vn)),它定义了三元组集合T={(k,k',k″)},令:
BestKey(k,D)=argmaxk'maxd',(k',d')∈DMatch(k,k') [6]
即,BestKey(k,D)返回数据D中与键k最匹配的键k'。令Dv={(k',v'):(k',v')∈D,v=v'}是D的子集,它只包含值为v的对。那么对于每个(k,v)∈D,T包含三元组:
(k,BestKey(k,Dv\{(k,v)}),BestKey(k,D\{(k,v)})) [7]
即,对于训练数据中的每一个键-值对(k,v),形成训练三元组,其中正对由(k,k')组成,其中k'=BestKey(k,Dv\{(k,v)})是在D中值为v的其它对的子集内k的BestMatch,并且负对由(k,k″)组成,其中k″=BestKey(k,D\{(k,v)})是在D中所有其它对内k的BestMatch。
该过程试图使D中的最佳匹配键与Dv内的最佳匹配键是相同的。在一些实施例中,这种选择训练三元组的方法与产生所有可能的三元组的方法相结合。这样做一种方式是对某个百分比(例如,训练小批量中的50%)使用一种方法,并且对某个百分比(例如训练小批量中的50%)使用另一种方法。这种选择训练三元组的方法特别适合于训练概率模型,如下面关于图4所描述的。
在建立正键对和负键对后,对话系统可以建立损失函数Loss()。损失函数惩罚不正确的猜测,并且通常可以被表达为
Loss(Matchθ(k,k')–Matchθ(k,k″)) [8]
其中θ是要建立的匹配函数参数的向量。在一些实施例中,句子嵌入函数参数被添加到θ。通过将句子嵌入函数参数添加到θ,它们也可以与匹配函数参数一起被优化。在一些实施例中,嵌入函数的参数是用从大型外部语料库学习的值(例如,使用微调/迁移学习方法而学习的)来初始化的。
适用于这种上下文的示例损失函数包括基于边际的损失目标(margin-basedloss objective):
Loss(s)=max(c'–s,0) [9]
其中c'是边际,即,正的常数超参数。另一个示例是使用sigmoid函数σ()的基于边际目标的平滑概率版本:
Loss(s)=logσ(c'–s) [10]
在306处,对话系统最小化损失函数以识别在匹配中使用的参数,使得为具有相同关联值的两个不同键的匹配分配比具有不同关联值的两个不同键的匹配更高的匹配分数。
在一些实施例中,对话系统使用损失函数来优化参数θ:
L=Σ(k,k',k″)∈DLoss(Matchθ(k,k')–Matchθ(k,k″)) [11]
对话系统可以针对θ最小化损失函数。这是训练过程,目标是调整参数θ,使得对于训练三元组T中的每个三元组(k,k',k″),正对(k,k')的匹配分数高于负对(k,k″)的匹配分数。这相当于确保:
s=Matchθ(k,k')–Matchθ(k,k″)>0 [12]
替代地或附加地,可以执行计算以确保:
s=Matchθ(k,k')–Matchθ(k,k″)>c' [13]
这可以通过确保正对和负对的Match()分数之间的“差距”来使参数θ更加鲁棒。这些损失函数可以使用诸如小批量随机梯度下降(SGD)之类的方法进行优化。诸如drop-out之类的正则化技术可能对更复杂的Match()函数有用。
在一些实施例中,可以使用多次迭代来微调这些参数。Match函数中的嵌入体可以跨多次迭代重新计算。例如,为了微调嵌入体,可以在每次迭代时重新计算每个训练三元组(k,k',k″)中每个键的嵌入体。在一些情况下,例如,每10个或100个小批次更新这些嵌入体可能就是足够的,或根本不更新。
对话系统可以将在306处识别出的参数θ合并到匹配函数中以用于如上面关于图2所描述的那样来识别值。
图4描绘了描述根据某些附加实施例的在设立阶段期间执行的处理的简化流程图400。图4中描绘的处理可以用在由相应系统、硬件或其组合的一个或多个处理单元(例如,处理器、核心)执行的软件(例如,代码、指令、程序)来实现。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图4中呈现并在下面描述的方法旨在是说明性的而非限制性的。虽然图4描绘了以特定序列或顺序发生的各种处理步骤,但这并非旨在进行限制。在某些替代实施例中,可以以某种不同的顺序执行这些步骤,或者也可以并行执行一些步骤。在某些实施例中,图4中描绘的处理可以由如以上所描述的对话系统执行。
图4图示了可以适用于概率模型(例如,使用上面的等式2)的训练方法。如上面关于图2所描述的,在202处接收输入口语话语之前,对话系统可以执行训练过程,从而产生匹配函数的参数集。在一些实施例中,这涉及最大化样本话语和意图的对的集合的似然函数以优化匹配函数的参数,这可以使用图4中描绘的处理来执行。
在402处,对话系统获得训练数据。对话系统可以基本上如上面关于图3的步骤302所描述的那样获得训练数据。
在404处,对话系统基于正键对和负键对来识别似然函数。似然函数是输出如下值的函数,该值随着与正键对对应的键集合的似然性而增加。作为具体示例,可以使用对数似然的交叉验证风格的留一法(leave-one-out)近似,它使用D作为可能的键-值对的集合以及针对θ的训练数据二者。以下对数似然的近似假设匹配函数是对称的,即,Match(k,k’)=Match(k’,k)。似然函数可以近似为:
l(θ)=∑(k,v)∈Dlog Pθ(v|k,D\{(k,v)}) [14]
该对数似然在D中的所有键-值对上求和。在计算与键k关联的值v的概率之前,可以从D中移除该键-值对(k,v),从而估计k与D中具有值v的某个其它键-值对相匹配的概率。
为了避免上溢和下溢(其可能随指数出现),在计算对数似然时可以使用以下公式:
似然函数的另一个示例是以下错误驱动的学习近似:
如果S中的最大值远大于S中所有其它值的总和,那么该近似是相当准确的。如果对数似然中的匹配函数值是这样,那么对数似然可以被近似如下:
错误驱动的学习近似可以提供存储器优化机会。令A(k,D)是D中与键k最匹配的对,即:
错误驱动的学习近似存在附加的优化机会。例如,A计算中涉及的嵌入体可以不定期更新(例如,每10个小批次一次或每次迭代一次),这将会会使A的计算非常快。实际的训练更新只涉及C计算。通过将每个训练对(k,v)∈D与C计算中识别出的两个数据对进行比较,可以相对简单地计算C。
在406处,对话系统最大化似然函数以优化匹配函数的参数θ,使得为具有相同关联值的两个不同键的匹配分配比具有不同关联值的两个不同键的匹配更高的匹配分数。l(θ)可以使用诸如随机梯度下降(SGD)之类的技术来最大化。
配分函数[2]涉及在整个训练数据集D上求和。为了在训练期间进行反向传播,D中每个键的嵌入体计算可以被存储在随机存取存储器(RAM)中,这对于大的D而言可能具有挑战性。减少训练中使用的集合D大小的一种技术是在每个SGD训练步骤处随机采样子集 并在等式[14]或[15]中使用代替D。在这种情况下,期望其对的大小施加了较低的限制。
对话系统可以将在406处识别出的参数合并到匹配函数中以用于如上面关于图2所描述的那样来识别值。
本文描述的技术具有多个优点。因为键k不像它们在分类器中那样“被内置到”Match()函数中(相反,它们被提供作为Match()函数的参数),因此Match()函数可以评估言语输入q匹配键k的程度,即使键k没有出现在被用于估计Match()函数的参数θ的训练数据中。这意味着可以在不(重新)训练参数θ的情况下就更改键(示例句子)和值(例如,意图)的集合D。另外,训练数据对于非专家来说是容易产生的(即,将会返回相同的回答的多个问题),并且可能已经存在于现有数据集中。
作为这些技术的有利应用的具体示例,可以提供聊天机器人和数字助理开发工具,其中开发人员(例如,使用本文描述的值识别技术作为云服务)可以从集合D中添加或移除对,包括添加具有新值的对或移除一个或多个值的所有对,然后立即使用新的更新后的集合D来测试和/或部署聊天机器人或数字助理。无需等待系统训练新的参数集合θ。例如,聊天机器人或数字助理开发人员可能将对(“what will the weather be like tomorrow?(明天天气将怎么样?)”,FIND-WEATHER(查找天气))添加到集合D。然后系统会立即将言语输入“what will the weather be like tomorrow?”识别为属于值FIND-WEATHER。作为对照,在使用传统技术的情况下,随着数据集的增加,需要频繁的重新训练。减少所需的附加训练量可以大大提高可以执行值识别的速度。另外,测试已表明,使用本文描述的基于匹配的技术进行值识别的准确度可以超过使用诸如分类之类的现有方法进行值识别的准确度。
上述基础设施可以在各种不同的环境中实现,包括云环境(可以是各种类型的云,包括私有云、公共云和混合云环境)、本地部署的(on-premises)环境、混合环境等。
图5描绘了用于实现实施例的分布式系统500的简化图。在所示的实施例中,分布式系统500包括经由一个或多个通信网络510耦合到服务器512的一个或多个客户端计算设备502、504、506和508。客户端计算设备502、504、506和508可以被配置为执行一个或多个应用。
在各种实施例中,服务器512可以适于运行一个或多个服务或软件应用,这些服务或软件应用使得能够以减少的训练来执行值识别。
在某些实施例中,服务器512还可以提供可以包括非虚拟和虚拟环境的其它服务或软件应用。在一些实施例中,这些服务可以作为基于web的服务或云服务,诸如在软件即服务(SaaS)模型下,提供给客户端计算设备502、504、506和/或508的用户。操作客户端计算设备502、504、506和/或508的用户可以依次利用一个或多个客户端应用与服务器512交互以利用由这些部件提供的服务。
在图5所描绘的配置中,服务器512可以包括实现由服务器512执行的功能的一个或多个部件518、520和522。这些部件可以包括可以由一个或多个处理器执行的软件部件、硬件部件或其组合。应当认识到的是,各种不同的系统配置是可能的,其可以与分布式系统500不同。因此,图5中所示的实施例是用于实现实施例系统的分布式系统的一个示例,并且不旨在进行限制。
根据本公开的教导,用户可以使用客户端计算设备502、504、506和/或508来基于接收到的言语输入来更快和更准确地确定值。客户端设备可以提供使客户端设备的用户能够与客户端设备交互的接口。客户端设备还可以经由该接口向用户输出信息。虽然图5仅描绘了四个客户端计算设备,但可以支持任何数量的客户端计算设备。
客户端设备可以包括各种类型的计算系统,诸如便携式手持式设备、通用计算机,诸如个人计算机和膝上型计算机、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息传送设备、传感器和其它感测设备等。这些计算设备可以运行各种类型和版本的软件应用和操作系统(例如,MicrosoftApple或类UNIX操作系统、Linux或类Linux操作系统,诸如Google ChromeTMTMOS),包括各种移动操作系统(例如,Microsoft WindowsWindowsAndroidTM、Palm)。便携式手持式设备可以包括蜂窝电话、智能电话(例如,)、平板电脑(例如,)、个人数字助理(PDA)等。可穿戴设备可以包括Google头戴式显示器和其它设备。游戏系统可以包括各种手持式游戏设备、具有互联网功能的游戏设备(例如,具有或不具有手势输入设备的Microsoft游戏机、Sony系统、由提供的各种游戏系统以及其它)等。客户端设备可以能够执行各种不同的应用,诸如各种与互联网相关的应用、通信应用(例如,电子邮件应用、短消息服务(SMS)应用),并且可以使用各种通信协议。
(一个或多个)网络510可以是本领域技术人员熟悉的任何类型的网络,其可以使用多种可用协议中的任何一种来支持数据通信,包括但不限于TCP/IP(传输控制协议/互联网协议)、SNA(系统网络体系架构)、IPX(互联网分组交换)、等。仅仅作为示例,(一个或多个)网络510可以是局域网(LAN)、基于以太网的网络、令牌环、广域网(WAN)、互联网、虚拟网络、虚拟专用网(VPN)、内联网、外联网、公共电话交换网(PSTN)、红外网络、无线网络(例如,在任何电气和电子协会(IEEE)1002.11协议套件、和/或任何其它无线协议下操作的网络)和/或这些和/或其它网络的任意组合。
服务器512可以由一个或多个通用计算机、专用服务器计算机(作为示例,包括PC(个人计算机)服务器、服务器、中档服务器、大型计算机、机架安装的服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合组成。服务器512可以包括运行虚拟操作系统的一个或多个虚拟机,或者涉及虚拟化的其它计算体系架构,诸如可以被虚拟化以维护服务器的虚拟存储设备的逻辑存储设备的一个或多个灵活的池。在各种实施例中,服务器512可以适于运行提供前述公开中描述的功能的一个或多个服务或软件应用。
服务器512中的计算系统可以运行一个或多个操作系统,包括以上讨论的任何操作系统以及任何商用的服务器操作系统。服务器512还可以运行各种附加服务器应用和/或中间层应用中的任何一种,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(通用网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从 (国际商业机器)等商购获得的数据库服务器。
在一些实施方式中,服务器512可以包括一个或多个应用以分析和整合从客户端计算设备502、504、506和508的用户接收到的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于从一个或多个第三方信息源和连续数据流接收到的馈送、更新或实时更新,其可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视等相关的实时事件。服务器512还可以包括经由客户端计算设备502、504、506和508的一个或多个显示设备显示数据馈送和/或实时事件的一个或多个应用。
分布式系统500还可以包括一个或多个数据储存库514、516。在某些实施例中,这些数据储存库可以被用于存储数据和其它信息。例如,数据储存库514、516中的一个或多个可以被用于存储信息,诸如与言语输入类型和值对应的键-值对。数据储存库514、516可以驻留在各种位置。例如,由服务器512使用的数据储存库可以在服务器512本地,或者可以远离服务器512并经由基于网络或专用的连接与服务器512通信。数据储存库514、516可以是不同的类型。在某些实施例中,由服务器512使用的数据储存库可以是数据库,例如关系数据库,诸如由公司和其它供应商提供的数据库。这些数据库中的一个或多个可以适于响应于SQL格式的命令来实现数据库中数据的存储、更新和检索。
在某些实施例中,应用还可以使用数据储存库514、516中的一个或多个来存储应用数据。由应用使用的数据储存库可以具有不同的类型,诸如,例如,键-值储存库、对象储存库或由文件系统支持的通用储存库。
在某些实施例中,本公开中描述的值识别相关功能可以经由云环境作为服务提供。图6是根据某些实施例的其中各种值识别相关服务可以作为云服务提供的基于云的系统环境的简化框图。在图6所示的实施例中,云基础设施系统602可以提供可以由用户使用一个或多个客户端设备604、606和608请求的一个或多个云服务。云基础设施系统602可以包括一个或多个计算机和/或服务器,其可以包括以上针对服务器612描述的那些计算机和/或服务器。云基础设施系统602中的计算机可以被组织为通用计算机、专用服务器计算机、服务器场、服务器集群或任何其它适当的布置和/或组合。
(一个或多个)网络610可以促进客户端设备604、606和608与云基础设施系统602之间的通信和数据交换。(一个或多个)网络610可以包括一个或多个网络。网络可以是相同或不同的类型。(一个或多个)网络610可以支持一种或多种通信协议,包括有线和/或无线协议,以促进通信。
图6中描绘的实施例仅仅是云基础设施系统的一个示例,并且不旨在进行限制。应该认识到的是,在一些其它实施例中,云基础设施系统602可以具有比图6所示的部件更多或更少的部件、可以组合两个或更多个部件,或者可以具有不同的部件配置或布置。例如,虽然图6描绘了三个客户端计算设备,但是在替代实施例中可以支持任何数量的客户端计算设备。
术语“云服务”通常用于指由服务提供商的系统(例如,云基础设施系统602)根据需要并且经由诸如互联网之类的通信网络使用户可使用的服务。典型地,在公共云环境中,组成云服务提供商系统的服务器和系统与客户自己的内部服务器和系统不同。云服务提供商的系统由云服务提供商管理。客户因此可以利用由云服务提供商提供的云服务,而不必为服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用,并且用户可以经由互联网按需订购和使用应用,而用户不必购买用于执行应用的基础设施资源。云服务旨在提供对应用、资源和服务的轻松、可扩展的访问。几个提供商提供云服务。例如,由加利福尼亚州Redwood Shores的公司提供了几种云服务,诸如中间件服务、数据库服务、Java云服务等。
在某些实施例中,云基础设施系统602可以使用诸如软件即服务(SaaS)模型、平台即服务(PaaS)模型、基础设施即服务(IaaS)模型以及包括混合服务模型的其它模型之类的不同模型提供一个或多个云服务。云基础设施系统602可以包括一套应用、中间件、数据库以及使得能够供给各种云服务的其它资源。
SaaS模型使得应用或软件能够作为服务通过如互联网的通信网络交付给客户,而客户不必为底层应用购买硬件或软件。例如,SaaS模型可以被用于为客户提供对由云基础设施系统602托管的按需应用的访问。由公司提供的SaaS服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(CRM)、企业资源计划(ERP)、供应链管理(SCM)、企业绩效管理(EPM)、分析服务、社交应用及其它的各种服务。
PaaS模型通常用于提供平台和环境资源作为服务,其使得客户能够开发、运行和管理应用和服务,而客户不必采购、构建或维护此类资源。由公司提供的PaaS服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)、数据管理云服务、各种应用开发解决方案服务,以及其它服务。
云服务通常基于按需自助服务、基于订阅、弹性可缩放、可靠、高度可用和安全的方式提供。例如,客户可以经由订阅订单订购由云基础设施系统602提供的一个或多个服务。云基础设施系统602然后执行处理以提供客户的订购订单中所请求的服务。例如,客户可以提供键-值对集合,系统使用该键-值对集合来训练模型,以基于客户接收到的言语输入类型来确定云上的值。云基础设施系统602可以被配置为提供一种或甚至多种云服务。
云基础设施系统602可以经由不同的部署模型来提供云服务。在公共云模型中,云基础设施系统602可以由第三方云服务提供商拥有,并且云服务被提供给任何普通公众客户,其中客户可以是个人或企业。在某些其它实施例中,在私有云模型下,可以在组织内(例如,在企业组织内)操作云基础设施系统602,并向组织内的客户提供服务。例如,客户可以是企业的各个部门,诸如人力资源部门、工资部门等,甚至是企业内的个人。在某些其它实施例中,在社区云模型下,云基础设施系统602和所提供的服务可以由相关社区中的几个组织共享。也可以使用各种其它模型,诸如上面提到的模型的混合。
客户端设备604、606和608可以是不同类型的(诸如图6中描绘的客户端设备602、604、606和608),并且可以能够操作一个或多个客户端应用。用户可以使用客户端设备与云基础设施系统602交互,诸如请求由云基础设施系统602提供的服务。例如,用户可以使用客户端设备来请求本公开中描述的值识别相关服务。
在一些实施例中,由云基础设施系统602执行的用于提供值识别相关服务的处理可以涉及大数据分析。这种分析可能涉及使用、分析和操纵大型数据集,以检测和可视化数据内的各种趋势、行为、关系等。这种分析可以由一个或多个处理器执行、可能并行处理数据、使用数据执行仿真等。例如,大数据分析可以由云基础设施系统602执行,用于训练目的以识别匹配函数的参数。用于这种分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据Blob(二进制大对象))。
如在图6的实施例中所描绘的,云基础设施系统602可以包括基础设施资源630,其用于促进由云基础设施系统602提供的各种云服务的供给。基础设施资源630可以包括例如处理资源、存储或存储器资源、联网资源等。
在某些实施例中,为了促进这些资源的高效供给以支持由云基础设施系统602为不同客户提供的各种云服务,可以将资源捆绑成资源或资源模块的集合(也称为“群聚(pod)”)。每个资源模块或群聚可以包括一种或多种类型的资源的预先集成和优化的组合。在某些实施例中,可以为不同类型的云服务预先供给不同的群聚。例如,可以为数据库服务供给第一组群聚,可以为Java服务供给第二组群聚,其中第二组群聚可以包括与第一组群聚中的群聚不同的资源组合。对于一些服务,可以在服务之间共享为供给服务而分配的资源。
云基础设施系统602本身可以内部使用服务632,服务632由云基础设施系统602的不同部件共享并且促进云基础设施系统602的服务供给。这些内部共享的服务可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
云基础设施系统602可以包括多个子系统。这些子系统可以用软件或硬件或其组合来实现。如图6所示,子系统可以包括用户界面子系统612,该用户界面子系统612使得云基础设施系统602的用户或客户能够与云基础设施系统602交互。用户界面子系统612可以包括各种不同的界面,诸如web界面614、在线商店界面616(其中由云基础设施系统602提供的云服务被广告并且可由消费者购买)和其它界面618。例如,客户可以使用客户端设备使用接口614、616和618中的一个或多个来请求(服务请求634)由云基础设施系统602提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统602提供的云服务,以及对由客户希望订阅的由云基础设施系统602提供的一项或多项服务下订单。服务请求可以包括识别客户的信息以及客户期望订阅的一项或多项服务。例如,客户可以为云基础设施系统602提供的值识别相关服务下订阅订单。作为订单的一部分,客户可以提供识别历史言语输入类型和值和/或当前言语输入类型的信息。
在某些实施例中,诸如图6所示的实施例,云基础设施系统602可以包括被配置为处理新订单的订单管理子系统(OMS)620。作为这个处理的一部分,OMS 620可以被配置为:为客户创建账户(如果尚未创建);接收来自客户的账单和/或会计信息,该账单和/或账单信息将用于针对向客户提供所请求的服务向客户计费;验证客户信息;在验证后,为客户预订订单;已经编排各种工作流程以准备用于供给的订单。
一旦被正确地验证,OMS 620就可以调用订单供给子系统(OPS)624,其被配置为为订单供给资源,包括处理资源、存储器资源和联网资源。供给可以包括为订单分配资源,以及配置资源以促进由客户订单所请求的服务。为订单供给资源的方式和供给资源的类型可以取决于客户已订购的云服务的类型。例如,根据一个工作流程,OPS 624可以被配置为确定所请求的特定云服务,并且识别可能已经针对该特定云服务而被预先配置的多个群聚。为订单分配的群聚的数量可以取决于所请求的服务的大小/数量/级别/范围。例如,可以基于服务所支持的用户的数量、正在请求的服务的持续时间等来确定要分配的群聚的数量。然后,可以针对特定的请求客户定制所分配的群聚,以提供所请求的服务。
云基础设施系统602可以向请求客户发送响应或通知644,以指示所请求的服务何时准备就绪。在一些情况下,可以将信息(例如,链接)发送给客户,使得客户能够开始使用和利用所请求的服务的益处。
云基础设施系统602可以向多个客户提供服务。对于每个客户,云基础设施系统602负责管理与从客户接收到的一个或多个订阅订单相关的信息、维护与订单相关的客户数据,以及向客户提供所请求的服务。云基础设施系统602还可以收集关于客户对已订阅的服务的使用的使用统计信息。例如,可以针对使用的存储量、传输的数据量、用户的数量以及系统正常运行时间和系统停机时间量等收集统计信息。该使用信息可以被用于向客户计费。计费可以例如按月周期进行。
云基础设施系统602可以并行地向多个客户提供服务。云基础设施系统602可以存储这些客户的信息,包括可能的专有信息。在某些实施例中,云基础设施系统602包括身份管理子系统(IMS)628,其被配置为管理客户的信息并提供所管理的信息的分离,使得与一个客户相关的信息不可被另一个客户访问。IMS 628可以被配置为提供各种与安全相关的服务,诸如身份服务,诸如信息访问管理、认证和授权服务、用于管理客户身份和角色及相关能力的服务,等等。
图7图示了可以被用于实现某些实施例的示例性计算机系统700。例如,在一些实施例中,计算机系统700可以被用于实现上述对话系统以及各种服务器和计算机系统中的任何一个。如图7所示,计算机系统700包括各种子系统,包括经由总线子系统702与多个其它子系统通信的处理子系统704。这些其它子系统可以包括处理加速单元706、I/O子系统708、存储子系统718和通信子系统724。存储子系统718可以包括非暂态计算机可读存储介质,其包括存储介质722和系统存储器710。
总线子系统702提供用于使计算机系统700的各种部件和子系统按照期望彼此通信的机制。虽然总线子系统702被示意性地示为单条总线,但是总线子系统的替代实施例可以利用多条总线。总线子系统702可以是几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、使用任何各种总线体系架构的局部总线等。例如,此类体系架构可以包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围部件互连(PCI)总线,其可以实现为根据IEEE P1386.1标准制造的夹层(Mezzanine)总线,等等。
处理子系统704控制计算机系统700的操作,并且可以包括一个或多个处理器、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。处理器可以包括单核或多核处理器。可以将计算机系统700的处理资源组织成一个或多个处理单元732、734等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核心、核心和处理器的组合、或核心和处理器的其它组合。在一些实施例中,处理子系统704可以包括一个或多个专用协处理器,诸如图形处理器、数字信号处理器(DSP)等。在一些实施例中,处理子系统704的一些或全部可以使用定制电路来实现,诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。
在一些实施例中,处理子系统704中的处理单元可以执行存储在系统存储器710中或计算机可读存储介质722上的指令。在各个实施例中,处理单元可以执行各种程序或代码指令,并且可以维护多个并发执行的程序或进程。在任何给定的时间,要执行的程序代码中的一些或全部可以驻留在系统存储器710中和/或计算机可读存储介质722上,包括可能在一个或多个存储设备上。通过适当的编程,处理子系统704可以提供上述各种功能。在计算机系统700正在执行一个或多个虚拟机的情况下,可以将一个或多个处理单元分配给每个虚拟机。
在某些实施例中,可以可选地提供处理加速单元706,以用于执行定制的处理或用于卸载由处理子系统704执行的一些处理,从而加速由计算机系统700执行的整体处理。
I/O子系统708可以包括用于向计算机系统700输入信息和/或用于从或经由计算机系统700输出信息的设备和机制。一般而言,术语“输入设备”的使用旨在包括用于向计算机系统700输入信息的所有可能类型的设备和机制。用户界面输入设备可以包括,例如,键盘、诸如鼠标或轨迹球之类的指向设备、并入到显示器中的触摸板或触摸屏、滚轮、点击轮、拨盘、按钮、开关、小键盘、带有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户界面输入设备还可以包括使用户能够控制输入设备并与之交互的诸如Microsoft运动传感器的运动感测和/或姿势识别设备、Microsoft360游戏控制器、提供用于接收使用姿势和口语命令的输入的界面的设备。用户界面输入设备还可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄图片和/或进行菜单选择时的“眨眼”)并将眼睛姿势转换为到输入设备(例如, )的输入的眨眼检测器。此外,用户界面输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备。
用户界面输入设备的其它示例包括但不限于,三维(3D)鼠标、操纵杆或指示杆、游戏板和图形平板、以及音频/视频设备,诸如扬声器、数字相机、数字摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、以及眼睛注视跟踪设备。此外,用户界面输入设备可以包括,例如,医疗成像输入设备,诸如计算机断层摄影、磁共振成像、位置发射断层摄影、以及医疗超声检查设备。用户界面输入设备也可以包括,例如,音频输入设备,诸如MIDI键盘、数字乐器等。
一般而言,术语“输出设备”的使用旨在包括所有可能类型的设备和用于从计算机系统700向用户或其它计算机输出信息的机制。用户界面输出设备可以包括显示子系统、指示器灯或诸如音频输出设备的非可视显示器等。显示子系统可以是阴极射线管(CRT)、诸如利用液晶显示器(LCD)或等离子体显示器的平板设备、投影设备、触摸屏等。例如,用户界面输出设备可以包括但不限于,可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。
存储子系统718提供用于存储由计算机系统700使用的信息和数据的储存库或数据存储库。存储子系统718提供了用于存储提供某些实施例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子系统718可以存储软件(例如,程序、代码模块、指令),该软件在由处理子系统704执行时提供上述功能。软件可以由处理子系统704的一个或多个处理单元执行。存储子系统718还可以提供用于存储根据本公开的教导使用的数据的储存库。
存储子系统718可以包括一个或多个非暂态存储器设备,包括易失性和非易失性存储器设备。如图7所示,存储子系统718包括系统存储器710和计算机可读存储介质722。系统存储器710可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)以及其中存储有固定指令的非易失性只读存储器(ROM)或闪存。在一些实施方式中,基本输入/输出系统(BIOS)可以典型地存储在ROM中,该基本输入/输出系统(BIOS)包含有助于例如在启动期间在计算机系统700内的元件之间传递信息的基本例程。RAM通常包含当前由处理子系统704操作和执行的数据和/或程序模块。在一些实施方式中,系统存储器710可以包括多种不同类型的存储器,诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
作为示例而非限制,如图7所示,系统存储器710可以加载正在被执行的可以包括各种应用(诸如Web浏览器、中间层应用、关系型数据库管理系统(RDBMS)等)的应用程序712、程序数据714和操作系统716。作为示例,操作系统716可以包括各种版本的MicrosoftApple和/或Linux操作系统、各种商用或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、GoogleOS等)和/或移动操作系统,诸如iOS、Phone、OS、OS、OS操作系统,以及其它操作系统。
计算机可读存储介质722可以存储提供一些实施例的功能的编程和数据构造。计算机可读存储介质722可以为计算机系统700提供计算机可读指令、数据结构、程序模块和其它数据的存储。当由处理子系统704执行时,提供上述功能的软件(程序、代码模块、指令)可以存储在存储子系统718中。作为示例,计算机可读存储介质722可以包括非易失性存储器,诸如硬盘驱动器、磁盘驱动器、诸如CD ROM、DVD、(蓝光)盘或其它光学介质的光盘驱动器。计算机可读存储介质722可以包括但不限于,驱动器、闪存存储器卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字视频带等。计算机可读存储介质722也可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如基于固态RAM、动态RAM、静态RAM、DRAM的SSD、磁阻RAM(MRAM)SSD),以及使用基于DRAM和基于闪存存储器的SSD的组合的混合SSD。
在某些实施例中,存储子系统718还可以包括计算机可读存储介质读取器720,该计算机可读存储介质读取器720还可以连接到计算机可读存储介质722。读取器720可以接收并被配置为从诸如盘、闪存驱动器等存储器设备中读取数据。
此外,提供一些实施例的功能的编程和/或数据构造也可以通过经由一个或多个网络下载到计算机例如计算机系统700来提供。
在某些实施例中,计算机系统700可以支持虚拟化技术,包括但不限于处理和存储器资源的虚拟化。例如,计算机系统700可以提供用于执行一个或多个虚拟机的支持。在某些实施例中,计算机系统700可以执行诸如促进虚拟机的配置和管理的管理程序之类的程序。可以为每个虚拟机分配存储器、计算(例如,处理器、核心)、I/O和联网资源。每个虚拟机通常独立于其它虚拟机运行。虚拟机通常运行其自己的操作系统,该操作系统可以与由计算机系统700执行的其它虚拟机执行的操作系统相同或不同。因此,计算机系统700可以潜在地同时运行多个操作系统。
通信子系统724提供到其它计算机系统和网络的接口。通信子系统724用作用于从计算机系统700接收数据以及向其它系统传输数据的接口。例如,通信子系统724可以使得计算机系统700能够经由互联网建立到一个或多个客户端设备的通信信道,以用于从客户端设备接收信息以及向客户端设备发送信息。例如,通信子系统可以被用于接收来自客户端设备的言语输入并作为响应向客户端设备发送值。
通信子系统724可以支持有线和/或无线通信协议两者。例如,在某些实施例中,通信子系统724可以包括用于(例如,使用蜂窝电话技术、高级数据网络技术(诸如3G、4G或EDGE(全球演进的增强数据速率)、WiFi(IEEE 802.XX族标准)、或其它移动通信技术、或其任意组合)接入无线语音和/或数据网络的射频(RF)收发器部件、全球定位系统(GPS)接收器部件和/或其它部件。在一些实施例中,作为无线接口的附加或替代,通信子系统724可以提供有线网络连接(例如,以太网)。
通信子系统724可以以各种形式接收和传输数据。例如,在一些实施例中,除了其它形式之外,通信子系统724还可以以结构化和/或非结构化的数据馈送726、事件流728、事件更新730等形式接收输入通信。例如,通信子系统724可以被配置为实时地从社交媒体网络的用户和/或诸如馈送、更新、诸如丰富站点摘要(RSS)馈送的web馈送的其它通信服务接收(或发送)数据馈送726,和/或来自一个或多个第三方信息源的实时更新。
在某些实施例中,通信子系统724可以被配置为以连续数据流的形式接收本质上可能是连续的或无界的没有明确结束的数据,其中连续数据流可以包括实时事件的事件流728和/或事件更新730。生成连续数据的应用的示例可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如网络监视和流量管理应用)、点击流分析工具、汽车流量监视等。
通信子系统724也可以被配置为将数据从计算机系统700传送到其它计算机系统或网络。数据可以以各种不同的形式传送给一个或多个数据库,诸如结构化和/或非结构化数据馈送726、事件流728、事件更新730等,该一个或多个数据库可以与耦合到计算机系统700的一个或多个流传输数据源进行通信。
计算机系统700可以是各种类型中的一种,包括手持便携式设备(例如,蜂窝电话、计算平板、PDA)、可穿戴设备(例如,Google头戴式显示器)、个人计算机、工作站、大型机、信息站、服务器机架或任何其它数据处理系统。由于计算机和网络不断变化的性质,对图7中绘出的计算机系统700的描述旨在仅仅作为具体示例。具有比图7中所绘出的系统更多或更少部件的许多其它配置是可能的。基于本文所提供的公开内容和教导,本领域普通技术人员将理解实现各种实施例的其它方式和/或方法。
虽然已经描述了特定的实施例,但是各种修改、变更、替代构造以及等同物都是可能的。实施例不限于在某些特定数据处理环境内的操作,而是可以在多个数据处理环境内自由操作。此外,虽然已经使用一系列特定的事务和步骤描述了某些实施例,但是对于本领域技术人员来说清楚的是,这并不旨在进行限制。虽然一些流程图将操作描述为顺序处理,但是许多操作可以并行或同时执行。此外,操作的次序可以被重新布置。处理可能具有图中未包括的其它步骤。上述实施例的各种特征和方面可以被单独使用或联合使用。
另外,虽然已经使用硬件和软件的特定组合描述了某些实施例,但是应该认识到的是,硬件和软件的其它组合也是可能的。某些实施例可以仅用硬件或仅用软件或其组合来实现。本文描述的各种处理可以以任何组合在相同的处理器或不同的处理器上实现。
在将设备、系统、部件或模块描述为被配置为执行某些操作或功能的情况下,这样的配置可以通过以下方式来实现,例如,通过设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作,诸如通过执行计算机指令或代码,或处理器或核心被编程为执行存储在非暂态存储介质上的代码或指令,或其任意组合来执行操作。进程可以使用各种技术进行通信,包括但不限于用于进程间通信的常规技术,并且不同对的进程可以使用不同的技术,或者同一对进程可以在不同时间使用不同的技术。
在本公开中给出了具体细节以提供对实施例的透彻理解。但是,可以在没有这些具体细节的情况下实践实施例。例如,已经示出了众所周知的电路、处理、算法、结构和技术,而没有不必要的细节,以避免使实施例模糊。本描述仅提供示例实施例,并且不旨在限制其它实施例的范围、适用性或配置。相反,实施例的先前描述将为本领域技术人员提供用于实现各种实施例的使能描述。可以对元件的功能和布置进行各种改变。
因此,说明书和附图应被认为是说明性的而不是限制性的。但是,将清楚的是,在不脱离权利要求书所阐述的更广泛的精神和范围的情况下,可以对其进行添加、减少、删除以及其它修改和改变。因此,虽然已经描述了具体的实施例,但是这些实施例并不旨在进行限制。各种修改和等同形式均在所附权利要求的范围内。
Claims (40)
1.一种计算机实现的方法,包括:
由对话系统接收输入口语话语;
由所述对话系统生成所述输入口语话语的向量表示;
由所述对话系统使用匹配函数为多个键-值对中的每个键-值对生成匹配分数,其中为每个键-值对生成的匹配分数指示该键-值对的键与所述输入口语话语的所述向量表示的匹配程度,其中所述多个键-值对中的每个键是句子的多维向量表示,并且其中所述匹配函数被配置为为具有相同关联值的两个不同键的匹配生成比具有不同关联值的两个不同键的匹配更高的匹配分数;
由所述对话系统基于为所述多个键-值对生成的匹配分数从所述多个键-值对中识别具有最高匹配分数的特定键-值对;以及
由所述对话系统输出与所述特定键-值对相关联的值,作为用于所述输入口语话语的值。
2.如权利要求1所述的方法,其中:
通过使用训练数据进行训练来训练所述匹配函数,其中所述训练包括通过最小化损失函数来调整与所述匹配函数相关联的参数集合。
3.如权利要求1或权利要求2所述的方法,其中:
通过使用训练数据进行训练来训练所述匹配函数,其中所述训练包括通过最大化似然函数来调整与所述匹配函数相关联的参数集合。
4.如任何前述权利要求所述的方法,其中,所述多个键-值对中的值是意图。
5.如任何前述权利要求所述的方法,其中:
所述多个键-值对中的键是问题的表示;
所述多个键-值对的值是与相应问题对应的回答;
与所述特定键-值对相关联的输出值对应于所选择的回答;以及
所述值被输出作为对所述输入口语话语的回答。
6.如任何前述权利要求所述的方法,其中,所述输入口语话语是第一输入口语话语,所述值是第一值,所述匹配分数是第一匹配分数,并且所述方法还包括:
在为所述第一输入口语话语输出所述第一值之后,由所述对话系统更新所述多个键-值对以包括附加键-值对;
由所述对话系统接收第二输入口语话语;
由所述对话系统使用所述匹配函数为更新后的多个键-值对中的每个键-值对生成第二匹配分数,其中所述匹配函数在生成所述第一匹配分数和生成所述第二匹配分数之间保持不变;
由所述对话系统从更新后的多个键-值对中识别具有最高匹配分数的第二特定键-值对;以及
由所述对话系统输出与所述第二特定键-值对相关联的第二值,作为用于所述输入口语话语的值。
7.如任何前述权利要求所述的方法,其中:
所述匹配函数包括余弦相似度函数、双线性函数、单层网络、多层网络或最近邻函数之一。
8.一种非暂态计算机可读存储器,存储能够由一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行处理的指令,所述处理包括:
接收输入口语话语;
生成所述输入口语话语的向量表示;
使用匹配函数为多个键-值对中的每个键-值对生成匹配分数,其中为每个键-值对生成的匹配分数指示该键-值对的键与所述输入口语话语的向量表示的匹配程度,其中所述多个键-值对中的每个键是句子的多维向量表示,并且其中所述匹配函数被配置为为具有相同关联值的两个不同键的匹配生成比具有不同关联值的两个不同键的匹配更高的匹配分数;
基于为所述多个键-值对生成的匹配分数,从所述多个键-值对中识别具有最高匹配分数的特定键-值对;以及
输出与所述特定键-值对相关联的值,作为输入口语话语的值。
9.如权利要求8所述的非暂态计算机可读存储器,其中:
通过使用训练数据进行训练来训练所述匹配函数,其中所述训练包括通过最小化损失函数来调整与所述匹配函数相关联的参数集合。
10.如权利要求8或9所述的非暂态计算机可读存储器,其中:
通过使用训练数据进行训练来训练所述匹配函数,其中所述训练包括通过最大化似然函数来调整与所述匹配函数相关联的参数集合。
11.如权利要求8至10中的任一项所述的非暂态计算机可读存储器,其中:
所述多个键-值对中的值是意图。
12.如权利要求8至11中的任一项所述的非暂态计算机可读存储器,其中:
所述多个键-值对中的键是问题的表示;
所述多个键-值对的值是与相应问题对应的回答;
与所述特定键-值对相关联的输出值对应于所选择的回答;以及
所述值被输出作为对所述输入口语话语的回答。
13.如权利要求8至12中的任一项所述的非暂态计算机可读存储器,其中,所述输入口语话语是第一输入口语话语,所述值是第一值,所述匹配分数是第一匹配分数,并且所述处理还包括:
在为所述第一输入口语话语输出所述第一值之后,更新所述多个键-值对以包括附加键-值对;
接收第二输入口语话语;
使用所述匹配函数为更新后的多个键-值对中的每个键-值对生成第二匹配分数,其中所述匹配函数在生成所述第一匹配分数和生成所述第二匹配分数之间保持不变;
从更新后的多个键-值对中识别具有最高匹配分数的第二特定键-值对;以及
输出与所述第二特定键-值对相关联的第二值,作为用于所述输入口语话语的值。
14.如权利要求8至13中的任一项所述的非暂态计算机可读存储器,其中:
所述匹配函数包括余弦相似度函数、双线性函数、单层网络、多层网络或最近邻函数之一。
15.一种对话系统,包括:
一个或多个处理器;
耦合到所述一个或多个处理器的存储器,所述存储器存储能够由所述一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行处理的指令,所述处理包括:
接收输入口语话语;
生成所述输入口语话语的向量表示;
使用匹配函数为多个键-值对中的每个键-值对生成匹配分数,其中为每个键-值对生成的匹配分数指示该键-值对的键与所述输入口语话语的向量表示的匹配程度,其中所述多个键-值对中的每个键是句子的多维向量表示,并且其中所述匹配函数被配置为为具有相同关联值的两个不同键的匹配生成比具有不同关联值的两个不同键的匹配更高的匹配分数;
基于为所述多个键-值对生成的匹配分数,从所述多个键-值对中识别具有最高匹配分数的特定键-值对;以及
输出与所述特定键-值对相关联的值,作为输入口语话语的值。
16.如权利要求15所述的对话系统,其中:
通过使用训练数据进行训练来训练所述匹配函数,其中所述训练包括通过最小化损失函数或最大化似然函数来调整与所述匹配函数相关联的参数集合。
17.如权利要求15或16所述的对话系统,其中:
所述多个键-值对中的值是意图。
18.如权利要求15至17中的任一项所述的对话系统,其中:
所述多个键-值对中的键是问题的表示;
所述多个键-值对的值是与相应问题对应的回答;
与所述特定键-值对相关联的输出值对应于所选择的回答;以及
所述值被输出作为对所述输入口语话语的回答。
19.如权利要求15至18中的任一项所述的对话系统,其中,所述输入口语话语是第一输入口语话语,所述值是第一值,所述匹配分数是第一匹配分数,并且所述处理还包括:
在为所述第一输入口语话语输出所述第一值之后,更新所述多个键-值对以包括附加键-值对;
接收第二输入口语话语;
使用所述匹配函数为更新后的多个键-值对中的每个键-值对生成第二匹配分数,其中所述匹配函数在生成所述第一匹配分数和生成所述第二匹配分数之间保持不变;
从更新后的多个键-值对中识别具有最高匹配分数的第二特定键-值对;以及
输出与所述第二特定键-值对相关联的第二值,作为用于所述输入口语话语的值。
20.如权利要求15至19中的任一项所述的对话系统,其中:
所述匹配函数包括余弦相似度函数、双线性函数、单层网络、多层网络或最近邻函数之一。
21.一种用于训练对话系统中使用的匹配函数的训练方法,包括:
用训练数据来训练所述匹配函数,
其中,所述匹配函数被训练为生成多个键-值对中的键-值对的键与另一个键-值对的另一个键的匹配分数,所述匹配分数指示这两个键的匹配程度,
其中,所述多个键-值对中的每个键是句子的多维向量表示,并且
其中,所述匹配函数被配置为为具有相同关联值的两个不同键的匹配生成比具有不同关联值的两个不同键的匹配更高的匹配分数。
22.如权利要求21所述的方法,其中,所述训练包括通过最小化损失函数来调整与所述匹配函数相关联的参数集合。
23.如权利要求21或22所述的方法,其中,所述训练包括通过最大化似然函数来调整与所述匹配函数相关联的参数集合。
24.如权利要求21至23中的任一项所述的方法,其中,所述多个键-值对的值是意图。
25.如权利要求21至24中的任一项所述的方法,其中:
所述多个键-值对中的键是问题的表示;以及
所述多个键-值对的值是与相应问题对应的回答。
26.如权利要求21至25中的任一项所述的方法,其中:
所述匹配函数包括余弦相似度函数、双线性函数、单层网络、多层网络或最近邻函数之一。
27.一种用于训练对话系统中使用的匹配函数的训练装置,包括用于使用训练数据来训练匹配函数的部件,
其中,所述匹配函数被训练为生成多个键-值对中的键-值对的键与另一个键-值对的另一个键的匹配分数,所述匹配分数指示这两个键的匹配程度,
其中,所述多个键-值对中的每个键是句子的多维向量表示,并且
其中,所述匹配函数被配置为为具有相同关联值的两个不同键的匹配生成比具有不同关联值的两个不同键的匹配更高的匹配分数。
28.如权利要求27所述的装置,其中,用于训练匹配函数的所述部件被配置为通过最小化损失函数来调整与所述匹配函数相关联的参数集合。
29.如权利要求27或28所述的装置,其中,用于训练匹配函数的所述部件被配置为通过最大化似然函数来调整与所述匹配函数相关联的参数集合。
30.如权利要求27-29中的任一项所述的装置,其中,所述多个键-值对中的值是意图。
31.如权利要求27-30中的任一项所述的装置,其中:
所述多个键-值对中的键是问题的表示;以及
所述多个键-值对的值是与相应问题对应的回答。
32.如权利要求27-31中的任一项所述的装置,其中:
所述匹配函数包括余弦相似度函数、双线性函数、单层网络、多层网络或最近邻函数之一。
33.一种非暂态计算机可读介质,存储能够由一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行处理的指令,所述处理包括:
用训练数据来训练匹配函数,
其中,所述匹配函数被训练为生成多个键-值对中的键-值对的键与另一个键-值对的另一个键的匹配分数,所述匹配分数指示这两个键的匹配程度,
其中,所述多个键-值对中的每个键是句子的多维向量表示,并且
其中,所述匹配函数被配置为为具有相同关联值的两个不同键的匹配生成比具有不同关联值的两个不同键的匹配更高的匹配分数。
34.如权利要求33所述的非暂态计算机可读介质,其中,所述训练包括通过最小化损失函数来调整与所述匹配函数相关联的参数集合。
35.如权利要求33或34所述的非暂态计算机可读介质,其中,所述训练包括通过最大化似然函数来调整与所述匹配函数相关联的参数集合。
36.如权利要求33-35中的任一项所述的非暂态计算机可读介质,其中,所述多个键-值对中的值是意图。
37.如权利要求33-36中的任一项所述的非暂态计算机可读介质,其中:
所述多个键-值对中的键是问题的表示;以及
所述多个键-值对的值是与相应问题对应的回答。
38.如权利要求33-37中的任一项所述的非暂态计算机可读介质,其中:
所述匹配函数包括余弦相似度函数、双线性函数、单层网络、多层网络或最近邻函数之一。
39.一种用于使计算机执行如权利要求1至7中的任一项所述的方法的程序。
40.一种用于使计算机执行如权利要求21至26中的任一项所述的方法的程序。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962899654P | 2019-09-12 | 2019-09-12 | |
US62/899,654 | 2019-09-12 | ||
US16/942,535 US11914962B2 (en) | 2019-09-12 | 2020-07-29 | Reduced training intent recognition techniques |
US16/942,535 | 2020-07-29 | ||
PCT/US2020/044198 WO2021050170A1 (en) | 2019-09-12 | 2020-07-30 | Reduced training intent recognition techniques |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114365120A true CN114365120A (zh) | 2022-04-15 |
Family
ID=72087270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080063758.3A Pending CN114365120A (zh) | 2019-09-12 | 2020-07-30 | 减少的训练意图识别技术 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11914962B2 (zh) |
EP (1) | EP4028932B1 (zh) |
JP (1) | JP2022547704A (zh) |
CN (1) | CN114365120A (zh) |
WO (1) | WO2021050170A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11720790B2 (en) * | 2019-05-22 | 2023-08-08 | Electronics And Telecommunications Research Institute | Method of training image deep learning model and device thereof |
CN110377721B (zh) * | 2019-07-26 | 2022-05-10 | 京东方科技集团股份有限公司 | 自动问答方法、装置、存储介质及电子设备 |
US11593608B2 (en) * | 2019-10-28 | 2023-02-28 | Paypal, Inc. | Systems and methods for predicting and providing automated online chat assistance |
US11551666B1 (en) * | 2020-05-28 | 2023-01-10 | Amazon Technologies, Inc. | Natural language processing |
US11245648B1 (en) * | 2020-07-31 | 2022-02-08 | International Business Machines Corporation | Cognitive management of context switching for multiple-round dialogues |
CN111968637B (zh) * | 2020-08-11 | 2024-06-14 | 北京小米移动软件有限公司 | 终端设备的操作模式控制方法、装置、终端设备及介质 |
US11651158B2 (en) * | 2020-08-13 | 2023-05-16 | Salesforce, Inc. | Entity resolution for chatbot conversations |
JP2022102306A (ja) * | 2020-12-25 | 2022-07-07 | トヨタ自動車株式会社 | エージェント表示方法、プログラム、及びエージェント表示システム |
US11748559B2 (en) * | 2021-03-24 | 2023-09-05 | International Business Machines Corporation | Auto generation of conversational artifacts from specifications |
CN113051930B (zh) * | 2021-03-25 | 2023-04-14 | 华润数字科技有限公司 | 基于Bert模型的意图识别方法、装置及相关设备 |
US11790169B2 (en) * | 2021-04-02 | 2023-10-17 | Salesforce, Inc. | Methods and systems of answering frequently asked questions (FAQs) |
EP4330984A1 (en) * | 2021-04-28 | 2024-03-06 | Koninklijke Philips N.V. | Chat bot for a medical imaging system |
CN113270103A (zh) * | 2021-05-27 | 2021-08-17 | 平安普惠企业管理有限公司 | 基于语义增强的智能语音对话方法、装置、设备及介质 |
US20230008868A1 (en) * | 2021-07-08 | 2023-01-12 | Nippon Telegraph And Telephone Corporation | User authentication device, user authentication method, and user authentication computer program |
US20230038691A1 (en) * | 2021-08-05 | 2023-02-09 | Yaar Inc. | Workflow instruction interpretation for web task automation |
US12112131B2 (en) * | 2021-09-10 | 2024-10-08 | Salesforce, Inc. | Systems and methods for factual extraction from language model |
US11941641B2 (en) | 2021-10-15 | 2024-03-26 | EMC IP Holding Company LLC | Method and system to manage technical support sessions using historical technical support sessions |
US12008025B2 (en) | 2021-10-15 | 2024-06-11 | EMC IP Holding Company LLC | Method and system for augmenting a question path graph for technical support |
US11915205B2 (en) * | 2021-10-15 | 2024-02-27 | EMC IP Holding Company LLC | Method and system to manage technical support sessions using ranked historical technical support sessions |
WO2024049567A1 (en) * | 2022-08-31 | 2024-03-07 | Microsoft Technology Licensing, Llc | Knowledge driven pre-trained form key mapping |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100094673A1 (en) * | 2008-10-14 | 2010-04-15 | Ebay Inc. | Computer-implemented method and system for keyword bidding |
US10629186B1 (en) * | 2013-03-11 | 2020-04-21 | Amazon Technologies, Inc. | Domain and intent name feature identification and processing |
US9299347B1 (en) * | 2014-10-22 | 2016-03-29 | Google Inc. | Speech recognition using associative mapping |
KR102413693B1 (ko) * | 2015-07-23 | 2022-06-27 | 삼성전자주식회사 | 음성 인식 장치 및 방법, 그를 위한 모델 생성 장치 및 방법 |
US10277743B1 (en) * | 2017-03-21 | 2019-04-30 | Amazon Technologies, Inc. | Configurable natural language contact flow |
US10325602B2 (en) * | 2017-08-02 | 2019-06-18 | Google Llc | Neural networks for speaker verification |
US11394667B2 (en) * | 2017-10-03 | 2022-07-19 | Rupert Labs, Inc. | Chatbot skills systems and methods |
WO2019081782A1 (en) | 2017-10-27 | 2019-05-02 | Deepmind Technologies Limited | AUTOMATIC LEARNING SYSTEMS WITH PARAMETER-BASED PARAMETER ADAPTATION FOR RAPID OR LOWER LEARNING |
US10977446B1 (en) * | 2018-02-23 | 2021-04-13 | Lang Artificial Intelligence Inc. | Unsupervised language agnostic intent induction and related systems and methods |
US10811009B2 (en) * | 2018-06-27 | 2020-10-20 | International Business Machines Corporation | Automatic skill routing in conversational computing frameworks |
US11107463B2 (en) * | 2018-08-01 | 2021-08-31 | Google Llc | Minimum word error rate training for attention-based sequence-to-sequence models |
US11061954B2 (en) * | 2018-09-21 | 2021-07-13 | Salesforce.Com, Inc. | Intent classification system |
US11551004B2 (en) * | 2018-11-13 | 2023-01-10 | Asapp, Inc. | Intent discovery with a prototype classifier |
CN109597994B (zh) | 2018-12-04 | 2023-06-06 | 挖财网络技术有限公司 | 短文本问题语义匹配方法和系统 |
US10586532B1 (en) * | 2019-01-28 | 2020-03-10 | Babylon Partners Limited | Flexible-response dialogue system through analysis of semantic textual similarity |
KR20210130790A (ko) * | 2019-02-27 | 2021-11-01 | 구글 엘엘씨 | 문서들에서 키-값 쌍들의 식별 |
US20200293874A1 (en) * | 2019-03-12 | 2020-09-17 | Microsoft Technology Licensing, Llc | Matching based intent understanding with transfer learning |
US11361470B2 (en) * | 2019-05-09 | 2022-06-14 | Sri International | Semantically-aware image-based visual localization |
US10733497B1 (en) * | 2019-06-25 | 2020-08-04 | Progressive Casualty Insurance Company | Tailored artificial intelligence |
US11508365B2 (en) * | 2019-08-19 | 2022-11-22 | Voicify, LLC | Development of voice and other interaction applications |
US11538468B2 (en) * | 2019-09-12 | 2022-12-27 | Oracle International Corporation | Using semantic frames for intent classification |
-
2020
- 2020-07-29 US US16/942,535 patent/US11914962B2/en active Active
- 2020-07-30 EP EP20757140.7A patent/EP4028932B1/en active Active
- 2020-07-30 CN CN202080063758.3A patent/CN114365120A/zh active Pending
- 2020-07-30 WO PCT/US2020/044198 patent/WO2021050170A1/en unknown
- 2020-07-30 JP JP2022516198A patent/JP2022547704A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2022547704A (ja) | 2022-11-15 |
US11914962B2 (en) | 2024-02-27 |
EP4028932B1 (en) | 2024-06-19 |
WO2021050170A1 (en) | 2021-03-18 |
US20210082424A1 (en) | 2021-03-18 |
EP4028932A1 (en) | 2022-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4028932B1 (en) | Reduced training intent recognition techniques | |
JP2023520416A (ja) | ドメイン外(ood)検出のための改良された技術 | |
CN112567394A (zh) | 用于在有限的知识领域中构建知识图的技术 | |
CN111149107A (zh) | 使自主代理能够区分问题和请求 | |
CN112489641A (zh) | 用于高效对话处理的实时反馈 | |
JP2022547596A (ja) | チャットボットシステムにおける無関係な発話の検出 | |
CN112487790B (zh) | 包括粗略语义解析器和精细语义解析器的改进语义解析器 | |
US11403462B2 (en) | Streamlining dialog processing using integrated shared resources | |
JP2023551859A (ja) | 自然言語処理のための強化されたロジット | |
CN116802629A (zh) | 用于自然语言处理的多因素建模 | |
CN114375449A (zh) | 使用上下文数据进行对话处理的技术 | |
CN112487156A (zh) | 减少使用数据库的对话系统的训练 | |
JP2023551861A (ja) | 自然言語処理のための距離ベースのロジット値 | |
US11810553B2 (en) | Using backpropagation to train a dialog system | |
CN114175018A (zh) | 新词分类技术 | |
JP2023551325A (ja) | ニューラルネットワークにおける過剰予測のための方法およびシステム | |
US20240144923A1 (en) | Using a generative adversarial network to train a semantic parser of a dialog system | |
US11462208B2 (en) | Implementing a correction model to reduce propagation of automatic speech recognition errors | |
US20210081799A1 (en) | Compressing neural networks for natural language understanding |
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 |