更新计算机化助理操作的约束的制作方法

文档序号:32399215发布日期:2022-12-02 18:26阅读:23来源:国知局
更新计算机化助理操作的约束的制作方法
更新计算机化助理操作的约束


背景技术:

1.计算机化助理可以被编程为以合适的动作对用户话语进行响应。例如,响应于用户告诉计算机化助理来安排会议,计算机化助理可以将会议添加到用户的日历中。最先进的计算机化助理采用一个或多个机器学习模型来提供这种辅助功能。训练这些机器学习模型可能需要大量带注释的训练数据。对于人工注释者来说,对训练数据进行注释可能非常耗时且在技术上具有挑战性。


技术实现要素:

2.提供本发明内容是为了以简化形式介绍概念的选择,这些概念将在下面的详细描述中进一步描述。本发明内容并非旨在识别所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。此外,要求保护的主题不限于解决在本公开的任何部分中指出的任何或所有缺点的实施方式。
3.一种调整计算机化助理程序以满足更新的约束的方法包括维护包括指示初始约束的第一话语的对话历史。该方法还包括接收指示与初始约束冲突的新约束的第二话语。该方法还包括识别通过对被配置为满足初始约束的初始计算机化助理程序的引用和对新约束的引用而参数化的修订函数语句。该方法还包括执行从修订函数语句导出的指令以返回被配置为满足新约束的修订后的计算机化助理程序。
4.因此,提供了如以下权利要求中详述的方法、计算机程序、计算机系统和计算机化助理系统。
附图说明
5.图1示出了计算机化助理的计算架构。
6.图2示出了基于新约束来更新计算机化助理动作的方法。
7.图3a-3f示出示例性对话历史,每个示例性对话历史包括初始计算机化助理程序和基于新约束的修订后的计算机化助理程序。
8.图4示出了示例性计算系统。
具体实施方式
9.人类可以经由自然语言而与计算机助理系统交互。当人类经由自然语言进行交互时,他们可以表达初始请求,该初始请求包括要满足的一个或多个约束(例如,计算机化助理的期望和/或要求的行为)。人类可以通过改变先前的约束和/或添加新的约束来表达对初始请求的修改。例如,用户可以提出后续请求,例如“将会议改变为下午”、“只显示一对一的会议”或“请在两个航班之间至少安排2小时”。本公开涉及用于训练计算机化助理以通过以下方式来高效地处理附加约束的技术:预测指定附加约束的合适的修订函数语句并利用专用修订模型来处理修订函数语。
10.图1示出了计算机化助理122的示例性计算架构120。计算机化助理122被配置为从
用户124接收一个或多个用户话语126(例如,经由麦克风、键盘、触摸屏和/或任何其他合适的输入设备)。计算机化助理122被配置为生成和/或执行指令以基于用户话语126来执行动作以帮助用户124。例如,计算机化助理122可以包括代码生成机器128,其被配置为将用户话语126翻译成初始计算机化助理程序,包括可由计算机化助理执行的一个或多个计算机可读编程语言的指令。初始计算机化助理程序可以被配置为满足由用户话语126指示的初始约束。在一些示例中,代码生成机器128可以包括被配置为生成初始计算机化助理程序的先前训练的机器学习模型。例如,先前训练的机器学习模型可以被训练为基于一个或多个标记数据元组而生成程序。作为示例,标记数据元组可以包括从人工注释者接收的示例性话语和示例性计算机化助理程序。计算机化助理122还可以包括对话历史机器134,其被配置为维护对话历史300。在示例中,对话历史300可以包括多个用户话语和/或被配置用于对用户话语进行响应的计算机化助理程序。作为非限制性示例,对话历史300包括第一用户话语302和被配置用于对第一用户话语302进行响应的初始计算机化助理程序304。例如,第一用户话语302可以指示约束,并且初始计算机化助理程序304可以被配置为满足该约束。继续该非限制性示例,对话历史300还可以包括指示新约束的第二用户话语306。对话历史300还可以包括修订函数语句308,其指示对初始计算机化助理程序304的修订。例如,修订函数语句308可以指示如何修订初始计算机化助理程序304以生成修订后的计算机化助理程序310,它将满足在第二用户话语中指示的新约束。
11.修订函数语句的使用可以降低与训练机器学习系统相关联的成本。例如,训练代码生成机器128来生成合适程序可能需要以指示示例性用户话语的示例性对话和用于对那些用户话语进行响应的示例性计算机化助理程序的形式的大量训练数据。例如,代码生成机器128可以在数十、数百或数千个示例性对话上进行训练。通常,可能需要人工注释者查看多个示例性用户话语,并且对于每个示例性话语,创作合适的计算机化助理程序。
12.根据本技术,人工注释者可以提供简单的修订函数语句作为用于对用户话语进行响应的示例性计算机化助理程序,而不是明确指定计算机化助理程序的实现细节。由此,代码生成机器128可以被训练为在对用户话语进行响应时生成合适的修订函数语句。例如,人工注释者可以能够使用仅引用示例性对话中较早的合适程序的修订函数语句,以及来自用户话语的新约束。通过利用简单且不变的修订函数语句格式,人工注释者可以能够使用用要修订的初始程序参数化的相同的简单修订函数语句和修订的新约束来对多个不同的示例性用户话语进行响应。人工注释者可以能够快速/容易地提供注释以对用户话语中的新约束进行响应,而不必提供计算机程序的完整细节以响应新约束。相反,修订函数语句可以由人工注释者以简单、不变的格式提供。因此,修订函数语句的使用可以显著降低与训练机器学习系统相关的成本(例如,通过降低与教授人工注释者如何创作训练数据相关的成本和/或与补偿人工注释者以提供注释相关的成本)。
13.图2示出了调整计算机化助理程序以满足更新的约束的方法200。在202,方法200包括维护计算机化助理与一个或多个用户之间的交互的对话历史,例如图1的对话历史300。对话历史可以被实例化为任何合适的计算机可读数据结构,以用于存储与计算机化助理和一个或多个用户之间的任何交互相关的数据(例如,话语、动作和/或上下文信息)。如本文所用,话语包括用户与计算机化助理之间的任何通信,例如,用户的可听语音、用户输入的文本、用户的键盘命令、计算机化助理的可听语音和/或计算机化助理对人类可读文本
的视觉呈现。存储在对话历史中的话语可以指定一个或多个约束。约束可以包括指示计算机化助理的期望/要求行为的任何上下文信息,例如,关于计算机化助理应该采取什么动作和/或应该何时采取动作的约束。
14.话语可以包括用户与计算机化助理之间的任何通信,例如,经由任何合适的通信模式。在一些示例中,话语是口头语言通信。在一些示例中,话语可以包括其他通信模式,例如非语言通信和/或由用户经由计算机设备提供的输入。例如,如本文所用,话语可以指手语、非语言手势(例如,挥手、点头、姿势改变)、按钮按压、键盘输入(例如,经由文本聊天界面输入的话语)和/或移动设备触摸屏输入。例如,计算机化助理可以被配置为识别与特定用户请求相关的一个或多个手势(例如,通过拍手打开多媒体设备的用户手势)。替代地或附加地,计算机化助理可以被配置为一般地识别由手势或计算机输入指示的用户上下文。例如,如果用户点头或提供键盘输入,而计算机化助理会询问确认问题,例如“我应该购买明天的机票吗?”,则计算机化助理可以被配置为识别指示对问题的肯定回答的用户手势/输入。作为另一示例,如果用户在协调关于计划的会议的细节时耸了耸肩,则计算机化助理可以被配置为识别用户是矛盾的并且在没有进一步用户干预的情况下自动选择细节。由此,用户可以通过通信模式的任何组合与计算机化助理交互(例如,指定和/或修改约束)。尽管这里的示例是关于用户语音形式的话语来描述的,但是这里公开的技术适用于处理通过用户和计算机化助理之间的任何适当交互提供的新的用户约束。
15.作为示例,图3a示出了包括第一用户话语302a的对话历史300a,其中用户要求计算机化助理“创建明天上午10点到上午10:30的会议”。用户话语与创建会议有关,约束包括上午10点的开始时间、上午10:30的结束时间和明天的日期。
16.返回图2,在204,方法200还包括识别被配置为满足初始约束的初始计算机化助理程序。例如,如图3a所示,基于接收到第一用户话语302a,计算机化助理可以自动生成初始计算机化助理程序304a,该初始计算机化助理程序304a被配置为响应于第一用户话语而执行动作(例如,该动作被配置为满足第一用户话语中的约束)。
17.作为非限制性示例,初始计算机化助理程序304a以特定于计算机化助理的示例性编程语言示出。例如,图3a示出了以基于数据流函数的数据流编程语言的初始计算机化助理程序304a(例如,在示例中使用带括号的函数调用语法示出)。替代地或附加地,本文描述的方法可以适用于任何其他合适的编程语言(例如,源代码、字节代码、汇编代码、函数性、命令式、面向对象和/或任何其他编程语言)。
18.初始计算机化助理程序304a被配置为保存指示明天的日期的变量“x0”(显示在方括号中),并保存指示被配置为创建具有确定的一组约束的新日历事件的可执行函数的另一个变量“x1”。参考图1,计算机化助理122的代码生成机器128被配置为生成初始计算机化助理程序。例如,代码生成机器128可以包括经由对标记数据的监督训练来训练的机器学习模型。作为非限制性示例,标记数据可以包括示例性话语和被配置用于对话语进行响应的示例性程序。因此,基于训练,代码生成机器128可以被配置为利用被配置为对话语做出响应的合适程序来响应给定话语。例如,话语可以指示约束并且代码生成机器128可以被配置为生成被配置为满足约束的程序。尽管图3a中未显示,执行计算机化助理程序304a可以使计算机化助理发出输出以与用户通信(例如,文本和/或语音输出)。例如,计算机化助理可以被配置为基于程序调用的函数来输出对正在运行的任何程序的描述和/或正在运行的程
序的结果。作为非限制性示例,计算机化助理可以被配置为通过输出描述说“我正在为上午10点到10:30创建新日历事件”,从而基于对“createevent”函数的调用来描述初始计算机化助理程序304a。计算机化助理可以以任何合适的方式基于计算机化助理程序产生描述性文本和/或语音,例如通过将程序与自然语言模板匹配并用来自程序的数据和/或通过递归调用自然语言模板而生成的数据递归地填充模板的字段。参考图1,计算机化助理122可以包括描述机器130,其被配置为生成任何计算机化助理程序输出的描述。例如,描述机器130可以被配置为使计算机化助理122输出一个或多个话语136,例如,以语音音频和/或人类可读文本的形式。在一些示例中,描述机器130可以被配置为将生成的描述保存到对话历史中(例如,可以将描述提供给对话历史机器134以保存到对话历史300中)。
19.替代地或除了描述程序之外,计算机化助理可以被配置为通过与其他计算机设备、程序和/或应用程序编程接口交互来执行计算动作(例如,“createevent”函数可以被配置为经由应用程序编程接口与日历应用程序交互,为用户保存新的日历事件)。计算机化助理程序可以由此关于各种计算和/或现实世界的任务而帮助用户(例如,发送电子邮件、拨打电话和/或进行购买)。在一些示例中,对话历史进一步包括对初始计算机化助理程序的引用。例如,对话历史可以跟踪生成和/或执行的所有计算机化助理程序(例如,以便跟踪先前执行的动作和/或生成但尚未执行的动作)。
20.计算机化助理可以被配置为通过对第一话语进行响应和/或接收和对后续话语进行响应来与用户进行多轮交互。在一些示例中,用户可以说出第二个话语以便修改和/或建立在计算机化助理对第一话语的响应的基础上。尽管这里的示例是关于第一话语和在多轮对话中稍后发生的第二后续话语来描述的,但是第二话语可以在任何合适的时间发生。例如,第二话语可以在涉及相同和/或不同用户的不同对话中。作为另一示例,第二话语实际上可能发生在第一话语之前,例如,在解析第一话语时,计算机化助理可以被配置为考虑先前接收到的第二话语,以确保根据这样的较早的第二话语而对第一话语进行处理。应当注意,在用户和计算机化助理之间的相同或不同交互中,相同的话语可以用作“第一”和“第二”话语两者。例如,话语可以指定在同一话语内冲突的两个不同约束,并且可以根据本公开的方法解决这些约束。作为另一示例,话语可以指定用于更新先前动作的约束,从而导致更新的动作。然而,后续话语可能会指定一个新的约束来更新(已经更新的)动作。例如,如果用户询问“我今天下午的日程安排是什么?”,则计算机化助理可以通过列出下午12点之后发生的安排项目来响应。如果用户随后询问:“上午10点之后呢?”,则计算机化助理可以根据来自用户话语的新约束(例如,上午10点到下午12点之间)来更新先前的动作(例如,更新在下午列出安排项目的动作)。如果用户随后还询问:“上午9点之后呢?”,则计算机化助理可以更新先前的动作(例如,从上午10点开始更新列出安排项目的动作,以便替代地列出上午9点到10点之间的动作)。换言之,计算机化助理可以通过更新任何先前的动作来响应用户话语中的新约束,包括更新已经关于在前一回合中提供的约束而更新的动作。
21.不管第二话语何时发生,第二话语可以指示可能与初始约束冲突的新约束。例如,当约束具有不同的广度(例如,一个约束比另一个更宽或更窄)、不兼容的细节(例如,约束指定了相互相反的事实)或会使得期望对初始计算机化助理程序的修订的其他差异时,约束可能会发生冲突。
22.返回图2,在206,方法200包括接收指示与初始约束冲突的新约束的第二话语。如
图3a所示,在第二用户话语306a中,用户可以请求将会议延长至60分钟(而不是先前指示的30分钟持续时间)。在一些示例中,方法200可选地进一步包括将第二话语添加到对话历史。基于收集对话历史内的话语和/或响应所述话语,计算机化助理可以进行多轮对话,其中计算机化助理在一段时间内对两个或更多个用户话语进行响应。参考图1,计算机化助理122可以被配置为在多个回合中响应用户124,例如通过操作代码生成机器128以生成新的计算机化助理程序来对每个传入的用户话语126进行响应。在一些示例中,对话历史机器134可以被配置为存储指示与对话历史300中的初始约束相冲突的新约束的第二话语,与图3a中所示的对话历史300a的第二用户话语306a一样。
23.返回图2,在208,方法200还包括识别通过对初始计算机化助理程序的引用和对新约束的引用而参数化的修订函数语句。修订函数语句是简单的、人类可读的语句,它指定了初始计算机化助理程序和新约束(例如,将关于其来修订程序的新约束)。因此,与阅读/创作/生成针对每个不同类型的修订程序所特定的不同扩展代码相比,修订函数语句是简短的并且可以相对容易被人工注释者阅读/创作和/或相对容易被代码生成机器生成。
24.图3a示出了修订函数语句308a的非限制性示例。在所示示例中,修订函数语句308a以计算机化助理的示例编程语言编写,该示例编程语言使用语法“revise(initial program,constraint 1,...constraint n),其中“initial program”指示对待修订的初始程序的引用。修订函数语句被进一步被配置用于利用一个或多个约束进行参数化。修订函数语句指定要应用于初始计算机化助理程序的新约束,并且可以总体上指定新约束以使得任何计算机化助理程序都可以针对新约束进行修订,其中“constraint 1”到“constraint n”指示任何合适的数量(例如,最多n个)不同的约束。所示语法不是限制性的,因为可以使用任何其他合适的语法。例如,修订函数语句可以包括允许指示对任何计算机化助理程序的引用(与特定计算机化助理程序的具体特征无关)和/或对约束的引用(与约束的具体特征无关)的任何合适的编程语言语法。
25.修订函数语句被配置为利用多个不同类型的计算机化助理程序进行参数化。例如,相同的修订函数语句,例如,revise(initial program,constraint 1,...constraint n),可以用不同类型的计算机化助理程序参数化(例如,通过“initial program”的不同选择),例如用于安排会议、购买机票、订购食物和/或任何其他计算机化助理程序的程序。
26.修订函数语句308a包括变量“'xl”,其指示对初始计算机化助理程序304a的可执行部分的引用。在修订函数语句308a中,变量“xl”具体指示在变量赋值“[xl]=...”之后的行开始对“createevent”函数的调用。虽然图3a显示了名为“xl”的显式引用变量,对初始计算机化助理程序的引用可以是任何合适的引用,例如,文件名/代码行、函数名、对计算机化助理对话历史中的特定先前生成的程序的引用,和/或被配置为选择计算机化对话历史中的先前生成的程序(例如,基于诸如“会议”或“日程安排”之类的显著特征)的搜索历史功能。作为另一示例,可以使用引用初始程序的不同部分和/或不同初始程序的不同变量。在该示例中,修订函数语句308a进一步通过指示会议的事件持续时间应该为60分钟的新约束而参数化。
[0027]
返回图2,在210,方法200进一步包括执行从修订函数语句导出的指令,以返回被配置为满足新约束的修订后的计算机化助理程序。换言之,对于给定的计算机化助理程序,指令被配置为返回基于新约束的相应的修订后的计算机化助理程序。
[0028]
在一些示例中,修订模型机器132可以被配置为存储和/或生成可由计算机化助理执行的指令。修订模型机器132被配置为处理关于任何初始计算机化助理程序和/或指定为修订函数语句中的参数的任何新约束的修订函数语句。因此,来自修订模型机器132的指令被配置为在被执行时基于修订函数语句和初始计算机化助理程序来生成修订后的计算机化助理程序。
[0029]
在一些示例中,修订模型机器132可以利用一个或多个修订模型来生成修订后的计算机化助理程序。例如,修订模型可以包括被配置为返回修订后的程序的可执行代码、参数和/或数据。作为非限制性示例,修订模型可以包括先前训练的机器学习模型(例如,具有用于评估和/或训练模型的可执行代码、模型训练产生的参数和/或可用作训练和/或评估的示例的数据)。作为另一非限制性示例,模型可以包括基于规则的模型(例如,具有用于基于定义此类规则的参数/数据来评估一个或多个预定义规则的可执行代码)。
[0030]
在一些示例中,修订模型是基于人工注释的训练数据训练的先前训练的机器学习模型,包括用示例性初始计算机化助理程而序参数化的修订函数语句以及用相应示例性修订后的计算机化助理程序标记的约束。例如,每个训练数据示例可以包括利用从人工注释者接收的相应示例性修订后的计算机化助理程序(例如,图3a的修订的计算机化助理程序310a)标记的示例性修订后的函数语句(例如,作为非限制性示例的图3a的修订函数语句308a)。在一些示例中,修订模型可以被配置为针对给定的修订函数语句返回与该修订函数语句一起从人工注释者接收的精确对应的修订后的计算机化助理程序。此外,修订模型可以被配置为评估任意修订函数语句,并返回合适的修订后的计算机化助理程序(例如,即使修订函数语句或修订计算机化助理程序都没有具体包括在训练数据中)。
[0031]
在一些示例中,修订模型包括多个预定义规则,这些预定义规则被配置为基于新约束来变换初始计算机化助理程序。在一些示例中,多个预定义规则可以包括基于规则的模型。例如,基于规则的模型可以是特定领域的基于规则的模型,包括用于特定领域的多个预定义规则(例如,用于修订安排程序的预定义规则)。在一些示例中,修订模型包括一个或多个预先定义的基于规则的模型和/或一个或多个先前训练的机器学习模型的组合。例如,修订模型机器132可以提供一个或多个特定领域的修订模型,每个都被配置为修订关于特定领域的计算机化助理程序(例如,用于会议、航空公司和/或食物中的每一个的单独的领域特定模型)。因此,修订模型机器132可以通过添加新的领域特定修订模型来扩展到新领域。
[0032]
在一些示例中,修订模型机器132被配置为基于修订函数语句308a并且可选地进一步基于任何合适的上下文信息(例如,基于用户偏好、用户日程安排和/或与用户的先前交互,例如用户先前的话语和/或先前的计算机化的助理程序和/或保存在对话历史300中的响应)来确定合适的修订后的计算机化助理程序。作为示例,可以将这样的上下文信息提供给修订模型机器132的修订模型(例如,在指示上下文信息的注释示例上先前训练的机器学习模型,和/或具有用于根据上下文信息修订程序的一个或多个规则的基于规则的模型)。
[0033]
修订模型机器132被配置为基于语句的参数处理给定的修订函数语句,例如基于初始计算机化助理程序的特定细节和/或基于新约束的特定细节。例如,修订模型机器132可以被配置为针对给定类型的初始程序识别和利用相应的模型和/或被配置为将修订应用
于该类型的初始程序的其他逻辑结构(例如,可执行代码)。例如,修订模型机器132可以被配置为基于作为领域特定程序的初始计算机化助理程序(例如,利用安排的领域特定模型处理安排程序)来确定使用哪个(哪些)模型来处理修订函数语句。在一些示例中,修订模型机器132可以提供与领域无关的修订模型,其被配置为修订关于任何领域(例如,会议、航空公司和/或食物)的计算机化助理程序。例如,与领域无关的修订模型可以被配置为处理特定类型的约束(例如,用于重新安排的与领域无关的修订模型,可以应用于任何与日程安排相关的场景,例如会议、机票和/或餐厅预订)。在一些示例中,可以扩展与领域无关的修订模型以处理新类型的程序。在一些示例中,修订模型机器132可以提供领域特定的修订模型,其被配置为修订关于特定领域(例如,会议)的计算机化助理程序。修订模型机器132可以包括任何合适的领域特定和/或与领域无关的模型的集合。因此,修订模型机器132可以自动确定使用哪个(哪些)领域特定和/或与领域无关的模型来处理特定修订函数语句(例如,基于与程序和/或约束相关联的领域)。
[0034]
修订模型机器132可以被扩展以处理不同的计算机化助理程序。修订模型机器132可以被配置为提供关于任何合适的初始类型的计算机化助理程序(例如,用于安排会议、购买机票和/或订购食物的程序)的修订,和/或扩展以提供关于新类型的计算机化助理程序的修订。作为示例,当修订模型机器被配置为利用机器学习模型时,机器学习模型可以通过用包括新类型程序的训练数据重新训练而得以扩展。作为另一个示例,当修订模型机器132使用基于规则的模型时,可以通过添加额外的规则来扩展基于规则的模型。
[0035]
即使当修订模型机器132被扩展以处理新程序时,修订函数语句的格式也保持不变。修订函数语句的格式不变,可以简化从人工注释者那里收集带注释的训练数据的过程,从而降低训练机器学习系统的花费。例如,由于修订函数语句格式的一致性,人工注释者可以更容易创建高质量的注释。此外,修订函数语句可以保持简单(例如,指定程序和约束而没有进一步的细节),同时在修订模型机器132被扩展时仍可用于修订新程序。此外,修订函数语句的简单性和不变性可以减少训练足够性能的机器学习系统(例如,训练修订模型机器132以生成修订和/或训练代码生成机器128以生成修订函数语句)所需的训练数据量。因此,不变且简单的修订函数语句不仅可以进一步降低收集注释的成本,还可以降低与训练机器学习系统相关的计算成本、内存存储成本和延迟。此外,修订函数语句的相对简单性可以降低与操作受过训练的机器学习系统相关的计算成本(例如,减少操作修订模型机器132和/或代码生成机器128的延迟和/或电力成本)。
[0036]
换言之,修订函数语句可以始终遵循简单格式,并且修订模型机器132可以被编程以处理新类型的计算机化助理程序,从而对人工注释者屏蔽底层复杂性。人工注释器和/或机器学习训练的组件(例如代码生成机器128)可以由此学习如何更容易地使用修订函数语句,并且修订函数语句可以由修订模型机器132处理以产生有效修订的程序。
[0037]
返回图2,在210,方法200进一步包括执行从修订函数语句导出的指令,以返回被配置为满足新约束的修订的计算机化助理程序。换言之,修订后的计算机化助理程序是基于修订函数语句生成的,并被配置为满足新的约束条件。修订函数语句可以用多个不同的计算机化助理程序参数化,并且被配置为针对给定的计算机化助理程序返回基于新约束的对应的修订的计算机化助理程序。
[0038]
例如,如图3a所示,修订后的计算机化助理程序310a与初始计算机化助理程序
304a类似,但被修改为指示开始时间为上午10:00且持续时间为60分钟的会议(例如,新会议将在上午11点而不是上午10:30结束)。修订后的计算机化助理程序310a是被配置为基于修订函数语句308a满足新约束的修订后的程序的非限制性示例。例如,修订函数语句308a指示会议需要一个小时,但没有指定会议需要在上午10点开始。在另一非限制性示例中,修订模型机器132被配置为输出修订后的计算机化助理程序,该修订后的计算机化助理程序将安排从上午9:30到上午10:30的会议。例如,如果用户的日程安排在上午10:30有另一个约会,则可以通过在上午9:30而不是上午10点开始长达一小时的会议而在另一约会之前完成。换言之,基于修订函数语句,可以存在不止一种合适的修订后的计算机化助理程序。因此,修订函数语句308a可由修订模型机器132处理以生成修订后的计算机化助理程序310a。例如,修订模型机器132可以被配置为使用一个或多个修订模型来确定合适的修订后的计算机化助理程序。修订模型机器132可以被配置为关于初始计算机化助理程序、新约束和/或基于任何合适的上下文信息(例如,基于用户偏好、用户时间表和/或以前与用户的交互)来评估修订模型。修订模型被配置为从修订函数语句导出合适的指令,该指令被配置为基于修订函数语句和初始计算机化助理程序而生成修订后的计算机化助理程序。
[0039]
例如,参考图3a,修订函数语句308a可以由修订模型机器132(如图1所示)使用任何合适的修订模型翻译成修订后的计算机化助理程序310a。在示例中,修订模型机器132可以被配置为使用任何合适的编程技术来确定修订后的计算机化助理程序。在一些示例中,修订模型包括多个预定义规则,其被配置为基于新约束来转换计算机化助理程序。替代地或附加地,在一些示例中,修订模型是基于示例性修订函数语句和从人工注释者接收的示例性修订后的计算机化助理程序训练的先前训练的机器学习模型。因此,修订模型可以结合被配置为生成计算机化助理程序的先前训练的机器学习模型、用于修订计算机化助理程序的一个或多个预定义规则和/或机器学习模型和预定义规则的混合的任何合适的组合。
[0040]
返回图2,修订后的计算机化助理程序可以以任何合适的方式使用,例如,通过响应用户指示新约束的第二话语来继续多轮对话。作为一个非限制性示例,在212,方法200可选地进一步包括在对话历史中保存对修订后的计算机化助理程序的引用。因此,可以在任何合适的时间执行修订后的计算机化助理程序。作为另一非限制性示例,在214,方法200可选地进一步包括执行修订后的计算机化助理程序(例如,使计算机化助理执行动作以帮助用户)。当修订后的计算机化助理程序310a被执行时,计算机化助理可以被配置为发出合适的描述,例如指示先前的动作正在根据新的约束被修改和/或指示正在执行的任何新的动作。例如,虽然未在图3a中示出,但是计算机化助理可以被配置为发出文本和/或语音描述,说“好的,我将你的会议重新安排在上午10点到上午11点”。
[0041]
在一些示例中,执行修订后的计算机化助理程序包括撤消由初始计算机化助理程序执行的一个或多个操作。例如,计算机化助理可以被配置为在开始执行修订后的计算机化助理程序之前撤消初始计算机化助理程序。作为另一示例,计算机化助理可以被配置为识别新计算机化助理程序中的新操作何时可能与在初始计算机化助理程序中执行的先前操作冲突,以便在执行新的操作之前撤消这种先前操作。在一些示例中,初始计算机化助理程序的每个操作可以被配置为允许该操作的“撤消”。在一些示例中,操作的“撤消”可能需要采取特定步骤以首先考虑已完成操作的影响。例如,如果操作导致安排新的日历事件,则撤消操作可以包括删除日历事件。作为另一示例,如果操作包括与另一实体进行约会/预订
(例如,餐厅预订或会议邀请),则撤消操作可以包括取消原始约会/预订的适当步骤(例如,发送取消信息)。通常,计算机化助理可以被配置为在执行和/或撤消执行具有真实世界效果的任何操作之前适当地提示用户,例如,在进行或取消约会之前提示用户。
[0042]
修订模型机器132通常被配置为解决新约束和初始约束,以便找到满足新约束同时还满足初始约束的相关方面的解。在一些示例中,修订模型机器132被配置为将新约束连同初始计算机化助理程序的初始约束一起转换为约束满足问题(csp),以便基于针对csp的解导出新的计算机化助理程序。在一些示例中,csp可以包括独立于新约束和/或用户话语的进一步约束(例如,与领域无关和/或领域特定的约束)。例如,csp可以包括与领域无关的约束,指示“事件必须在结束之前开始”,或“领域特定的约束,指示“转机之间的航空旅行行程少于20分钟是不可行的”。
[0043]
例如,修订模型机器132可以被配置为评估csp解的成本函数,以便找到csp的最小成本解。作为非限制性示例,csp可以被编码为约束图,其包括指示约束变量的多个节点和指示约束变量之间的隐含关系的多个边。例如,由连接节点的边指示的图形结构可用于基于逻辑暗示的关联性和/或传递性而传播约束之间的关系。作为示例,求解csp可以包括找到包括新约束的一组约束(例如,约束图的子图),使得该组约束中的约束是相互可满足的。在一些示例中,约束图的各个节点和/或边可以被称为子约束,例如,子图可以指示初始约束的子约束或新约束的子约束。
[0044]
在一些示例中,求解约束满足问题可以包括找到针对约束满足问题的多个候选约束解,以及基于成本函数选择候选约束解。例如,成本函数可以基于先前训练的机器学习模型和/或基于多个预先定义的规则。例如,每个规则可以指示如何评估子约束的成本和/或指示用于聚合多个子约束的成本的数学函数。在一些示例中,针对约束满足问题的每个候选约束解由修订模型机器(例如,图1的修订模型机器132)的模型之一生成。例如,修订模型机器132可以被配置为操作多个与领域无关和/或领域特定的模型(例如,基于规则的模型和/或机器学习模型)以使每个模型返回一个候选约束解,使得多个模型生成针对约束满足问题的多个候选约束解。
[0045]
在一些示例中,csp的解是初始计算机化助理程序的约束的松弛(例如,最小成本松弛)。因此,求解csp可以包括找到初始约束的逻辑松弛。例如,新约束可能与初始约束冲突(例如,在包含新约束和初始约束的csp不产生解的意义上)。替代地或附加地,新约束可能具有与初始约束不同的范围(例如,因为新约束比初始约束更宽,和/或因为新约束与初始约束的特定子约束不兼容)。为了处理约束范围的这种差异,可以松弛初始约束问题,直到新约束不是微不足道的为止(例如,新约束可行地缩小csp的解空间),和/或直到新约束约束不再冲突为止。
[0046]
例如,约束的松弛可以包括找到与初始约束相比约束较少的一组松弛约束。根据任何合适的成本函数(例如,机器学习函数和/或硬编码成本规则),该组松弛约束可以具有估计成本。在一些示例中,松弛约束被配置为满足与约束相关的一个或多个解条件。例如,解条件可以是用户约束不被松弛约束所暗示(例如,从而确保新的用户约束引入了将导致适当更新的计算机化助理程序的新信息)。作为另一示例,解条件可以是新用户约束和松弛约束的结合是可满足的(例如,从而确保更新的计算机化助理程序将满足新用户约束,同时也满足尽可能多的初始约束)。修订模型机器132可以进一步被配置为将松弛约束集合翻译
成新程序。例如,修订模型机器132可以被配置为,对于松弛约束集中的每个约束,生成相对应的计算机化助理程序指令,该指令确保在执行新的计算机化助理程序时满足特定约束。
[0047]
在一些示例中,初始约束的逻辑松弛是基于识别第二话语与初始约束之间的冲突来确定的。作为示例,参考图3a,修订模型可以被配置为从初始程序中提取约束,例如“start=10am”和“end=10:30am”。修订函数语句308a指定:“revisionmodel([oldprogram],constraint{duration:?=(60.tominutes())})”,例如,指示“duration=60minutes”的新约束。因此,修订模型可以进一步被配置为结合新约束(“duration=60minutes”)找到初始约束的松弛,例如,通过基于在60分钟会议(由第二用户话语指定)和初始约束(会议从上午10点开始,到上午10:30结束,持续时间仅为30分钟)之间出现的冲突来放弃(drop)现有约束“end=l0:30am”。这种松弛确保“持续时间(duration)”不再来自“开始(start)”和“结束(end)”约束(例如,因为持续时间现在由用户在新约束中明确指定)。此外,松弛确保了约束的新组合(“start=10am”和“duration=60minutes”)是可满足的。因此,修订模型被配置为生成修订后的计算机化助理程序310a,该程序可执行以根据新约束创建新日历事件。
[0048]
上文描述的并且在图3a中示出的结果是可以通过用于修订函数语句308a的修订模型获得的合适结果的非限制性示例。基于不同的训练和/或硬编码规则,可以获得具有不同功能的替代修订计算机化助理程序。例如,可以基于指示用户通常更喜欢保持初始会议开始时间的规则和/或成本函数来导出修订后的计算机化助理程序310a。然而,使用指示用户通常更喜欢保留会议结束时间的不同规则(例如,基于在会议之后安排后续活动),而不是用于安排开始时间为上午10点且持续时间为60分钟的会议的修订程序,修订模型可以被配置为产生替代的修订后的程序,以用于安排从上午9:30开始且持续60分钟的会议(例如,以保持原始会议结束时间,同时允许会议开始时间待修订)。在一些示例中,计算机化助理可以被配置为操作修订模型以生成多个替代解决方案,从而基于用户选择(例如,通过提示用户选择上午9:30开始时间或上午10点开始时间)和/或基于单独的评分功能(例如,基于评分功能,其检查用户日历以评估可能已经安排在上午9:30到上午10点之间的、与上午9:30到上午10:30会议发生冲突的冲突,以及可能已经安排在上午10:30到上午11之间的、与上午10点到上午11点会议发生冲突的冲突的)来选择替代解决方案之一。
[0049]
可以根据任何合适的成本函数(例如,机器学习函数和/或硬编码规则)针对松弛成本而评估约束。因此,修订模型可以被配置为基于合适的约束语义和/或松弛成本来修订任意复杂的计算机化助理程序。作为示例,松弛成本可以包括基于规则的函数,例如“松弛结束时间比松弛开始时间便宜”,因此模型将优先松弛“结束”而不是松弛“开始”。替代地或附加地,成本可以基于机器学习模型,该机器学习模型被训练以识别用于在不同上下文中松弛不同约束的成本。例如,可以使用对标记的数据元组的监督训练来训练机器学习模型。例如,元组可以指示初始计算机化助理程序、来自用户的新约束、以及被配置为满足新约束的适当的修订后的计算机化助理程序。因此,在一些示例中,修订模型是先前训练的修订模型,并且本公开的方法包括基于包括示例性修订函数语句和从人工注释者接收的示例性修订计算机化助理的标记数据元组来重新训练先前经训练的修订模型程序。
[0050]
图3a示出了一个示例,其中扩展/放弃了初始约束以解决新约束(例如,会议结束时间被松弛以允许更长的会议)。除了图3a中所示的会议安排示例之外,本公开的方法还适
用于处理来自用户与计算机化助理之间的任何其他交互的修订后的约束。
[0051]
图3b-3f示出了其中修订模型机器132使用一个或多个修订模型(例如,基于机器学习和/或基于规则的)以基于新约束来更新初始计算机化助理程序的各种其他场景。作为非限制性示例,修订模型可以被配置为允许添加新约束、从初始约束集缩小/指定现有约束、扩大现有约束、删除现有约束和/或将现有约束改变为不同的约束。通过改变、添加和/或删除约束,修订模型可以确定适当地结合用户指定的任何新约束的修订后的计算机化助理程序。图3b-3f的所有非限制性示例使用相同的修订函数语句语法,从而演示修订模型机器可以如何被配置以使用相同的修订函数语句语法来修订任何给定程序。如上所述,这允许人工注释者根据简单的、不变的修订函数语句语法来提供注释,以训练代码生成器为任何非限制性示例和/或在任何其他合适的场景中生成合适的修订函数语句。此外,经过训练的代码生成器可以能够更好地基于简单/不变的语法而生成合适的修订函数语句。此外,修订函数语句只需要指定新约束来据此修订程序,并且新约束与任何先前定义的约束(例如,来自较早的用户话语,和/或来自用于响应该用户话语的初始计算机化助理程序)一起自动解决。因为修订函数语句只需要列出新约束,所以人工注释者可以更容易地学习创作和/或批准适当的训练数据。
[0052]
图3b示出对话历史300b的另一示例,其中从第二用户话语306b解决新约束导致收紧初始约束。从第一用户话语302b推断的初始约束是第二天期间的所有事件。基于由计算机化助理生成的输出(例如,语音音频和/或人类可读的话语,未在图3b中示出),用户可以在第二用户话语306b中指示更窄的时间窗口应该用于事件列表。因此,修订函数语句308b可包括指示下午的时间窗口的较窄约束。例如,代码生成器可以被配置为基于用户偏好、时间表等为特定用户在中午12点到下午5点之间的时间生成所示的约束。作为另一示例,“下午”可以在硬编码规则中被定义为中午12点到下午5点之间的时间(或任何其他合适的时间)。替代地或附加地,代码生成机器可以被配置为以依赖于上下文的方式输出与任何合适的下午时间相关的约束,例如,对于在下午5点结束工作日的用户,输出下午12pm和下午5之间的事件,或对于在下午6点结束工作日的用户,输出在中午12点到下午6点之间的事件。尽管该示例显示了明确指定“下午”开始和结束时间的约束,但替代地或附加地,可以根据可以评估以确定合适的下午时间的函数语句来指定约束。例如,不生成约束“constraint[event]{start:》(datetime{date:[xo],time:time(12:00)})},end:《=(datetime{date:[xo],time:time(17:00)})”,代码生成器可以被配置为替代地生成诸如以下的约束“constraint[event]{getsalient(

afternoon’)}”其中“getsalient(

afternoon’)”是指示应基于任何合适的机器学习函数、硬编码规则、用户偏好和/或配置设置、对话历史等来评估合适的下午时间范围的函数语句。
[0053]
基于指示下午的时间窗口的新约束,来自初始计算机化助理程序304b的初始“日期时间(datetime)”约束被修订模型收紧以获得修订后的计算机化助理程序310b中的新的开始和结束约束。
[0054]
图3c示出对话历史300c的另一示例,其中基于解决来自第二用户话语306c的新约束而拓宽来自第一用户话语302c的初始约束。例如,从第一用户话语302c导出并反映在初始计算机化助理程序304c中的初始约束可以在逻辑上松弛,其中初始约束的逻辑松弛是基于识别第二话语在逻辑上暗示初始约束的子约束。如图所示,初始约束指示下午12点之后
的事件。如果用户没有听到他们所期望的,则他们可能希望听到更早开始的事件。因此,用户在第二用户话语306c中指示他们希望听到上午10点之后的事件。但是,“上午10点之后”在逻辑上暗示了子约束“中午12点之后”。因此,“上午10点之后”和“中午12点之后”的逻辑连接是“中午12点之后”,因为所有在上午10点之后和中午12点之后的时间都是在中午12点之后。因此,解决新约束和初始约束可以包括松弛初始约束,从而拓宽它,使得新约束引入新信息并导致与初始约束相比不同的结果。例如,在修订函数语句308c中给定从上午10点之后开始的时间的新约束,修订模型被配置为生成修订后的计算机化助理程序310c,其被配置为查找上午10:00之后的所有事件,而忽略“中午12点之后”的原始约束。尽管图3c中未显示,但是基于合适的规则和/或训练,修订模型可以替代地或附加地生成被配置为查找上午10点之前和中午12点之前的所有事件的修订后的计算机化助理程序(例如,因为用户在中午12点之后的事件当中没有找到他们感兴趣的事件,因此感兴趣的事件可能在上午10点到中午12点之间)。
[0055]
图3d示出对话历史300d的另一示例,其中解决新约束导致初始约束的修订。如图所示,在第一用户话语302d中,用户创建会议并邀请“david a”,这由初始计算机化助理程序304c处理。然而,用户稍后在第二用户话语306d中指示实际上应该邀请“david b”,而不是“david a”。因此,修订函数语句308d指示应该邀请“david b”而不是“david a”,并且修订后的计算机化助理程序310d由此指示应该邀请“david b”和“adam c”,而“david a”不应该被邀请。
[0056]
图3e示出了另一示例,其中用户与计算机化助理交互以搜索航班,如对话历史300e中所示。基于第一用户话语302e中指示的初始约束,初始计算机化助理程序304e被配置为搜索合适的航班。然而,正如助理话语305e所指示的(例如,经由语音音频和/或人类可读文本),计算机化助理无法找到任何匹配的航班。因此,如第二用户话语306e所指示的,用户要求前一天星期二的较早航班。修订函数语句308e指示用于查找周二航班的新约束。得到的修订后的计算机化助理程序310e被配置为搜索星期二的航班,放弃原始的“星期三”约束。与初始计算机化助理程序304e相比,修订后的计算机化助理程序310e不将时间限制在下午5点之前。例如,由于航班在前一天到达,可能不再需要在下午5点(周二)之前到达以确保用户能够在西雅图完成所期望的行程(从周三下午5点开始)。修订模型获得的这个结果可以反映出修订模型被训练以基于注释数据实现的特定于上下文的预测。
[0057]
图3f示出了对话历史300f的另一示例,其示出了用户与计算机化助理的交互以控制图形编辑器(例如,在演示程序内)。在第一用户话语302e中,用户要求将图像标题大小放大到字体大小16。计算机化助理被配置为执行初始计算机化助理程序304f并在助理话语305f中确认用户是否对所产生的改变感到满意。如图所示,初始计算机化助理程序304f使用“getsalient(获得显著)”搜索历史功能以基于用户和计算机化助理之间的交互上下文来搜索显著图像,例如,用户当前正在处理的图像。在找到显著图像之后,初始计算机化助理程序304f改变相关文本框的字体大小。然而,如在第二用户话语306f中所示,用户不希望文本框比图像宽。因此,修订函数语句308f指示文本框宽度应小于图像宽度。然而,文本框的这种减小的宽度可能需要减小的字体大小。因此,修订后的计算机化助理程序310f使用至少14的字体大小,与字体大小至少为16的初始约束相比,这是更小的最小字体大小(例如,更宽和/或松弛的约束)。作为示例,字体大小为14可以是初始约束的最小松弛(例如,根
据用户在第一用户话语302f中的意图将字体大小增加到尽可能接近大小16),这允许新约束得以被解决(例如,从最初的请求16稍微减小字体大小,以允许文本框最多与图像一样宽)。作为示例,14的字体大小可以表示在多个候选解中具有最低成本/最高分数的解(例如,不同字体大小的候选解)。
[0058]
本文描述的方法和过程可以绑定到一个或多个计算设备的计算系统。特别地,这样的方法和过程可以被实现为可执行的计算机应用程序、网络可访问的计算服务、应用程序编程接口(api)、库或以上和/或其他计算资源的组合。
[0059]
图4示意性地示出了计算系统400的简化表示,该计算系统400被配置为提供本文描述的任何直至所有计算功能。计算系统400可以采取一个或多个个人计算机、网络可访问服务器计算机、平板计算机、家庭娱乐计算机、游戏设备、移动计算设备、移动通信设备(例如,智能电话)、虚拟/增强/混合现实计算设备、可穿戴计算设备、物联网(iot)设备、嵌入式计算设备和/或其他计算设备的形式。例如,计算系统400可以被配置为实现方法200。作为另一个示例,计算系统400可以是计算机化助理122。
[0060]
计算系统400包括逻辑子系统402和存储子系统404。计算系统400可以可选地包括显示子系统408、输入子系统406、通信子系统410和/或图4中未示出的其他子系统。
[0061]
逻辑子系统402包括一个或多个被配置为执行指令的物理设备。例如,逻辑子系统可以被配置为执行作为一个或多个应用程序、服务或其他逻辑结构的一部分的指令。逻辑子系统可以包括一个或多个被配置为执行软件指令的硬件处理器。附加地或替代地,逻辑子系统可以包括一个或多个硬件或固件设备,其被配置为执行硬件或固件指令。逻辑子系统的处理器可以是单核或多核的,其上执行的指令可以配置用于顺序、并行和/或分布式处理。逻辑子系统的各个组件可选地可以分布在两个或更多个单独的设备之间,这些设备可以远程定位和/或配置用于协调处理。逻辑子系统的各方面可以由云计算配置中配置的远程可访问的联网计算设备虚拟化和执行。
[0062]
存储子系统404包括一个或多个物理设备,其被配置为临时和/或永久地保存计算机信息,例如可由逻辑子系统执行的数据和指令。当存储子系统包括两个或更多个设备时,这些设备可以并置和/或远程定位。存储子系统404可以包括易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址和/或内容可寻址设备。存储子系统404可以包括可移动和/或内置设备。当逻辑子系统执行指令时,存储子系统404的状态可以被转换——例如,以保存不同的数据。
[0063]
逻辑子系统402和存储子系统404的方面可以一起集成到一个或多个硬件逻辑组件中。此类硬件逻辑组件可能包括例如程序和应用专用集成电路(pasic/asic)、程序和应用专用标准产品(pssp/assp)、片上系统(soc)和复杂可编程逻辑器件(cpld)。
[0064]
当包括时,显示子系统408可用于呈现由存储子系统404保存的数据的视觉表示。该视觉表示可采取图形用户界面(gui)的形式。显示子系统408可以包括一个或多个使用几乎任何类型的技术的显示设备。在一些实施方式中,显示子系统可以包括一个或多个虚拟现实、增强现实或混合现实显示器。
[0065]
当被包括时,输入子系统406可以包括一个或多个输入设备或与一个或多个输入设备接口。输入设备可以包括传感器设备或用户输入设备。用户输入设备的示例包括键盘、鼠标、触摸屏或游戏控制器。在一些实施例中,输入子系统可以包括选定的自然用户输入
(nui)组件或与选定的自然用户输入(nui)组件接口。这样的组件可以是集成的或外围的,并且输入动作的转换和/或处理可以在板上或板外处理。示例nui组件可以包括用于语音和/或声音识别的麦克风;用于机器视觉和/或手势识别的红外、彩色、立体和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、眼球跟踪器、加速度计和/或陀螺仪。
[0066]
当被包括时,通信子系统410可以被配置为将计算系统400与一个或多个其他计算设备通信地耦合。通信子系统410可以包括与一种或多种不同通信协议兼容的有线和/或无线通信设备。通信子系统可以被配置为通过个人、局域网和/或广域网进行通信。
[0067]
逻辑子系统和存储子系统可以协作以实例化一个或多个逻辑机器。如本文所用,术语“机器”用于共同指代硬件、固件、软件、指令和/或协作以提供计算机功能的任何其他组件的组合。换句话说,“机器”从来都不是抽象的概念,总是有一种有形的形式。机器可以由单个计算设备实例化,或者机器可以包括由两个或更多个不同计算设备实例化的两个或更多个子组件。在一些实施方式中,机器包括与远程组件(例如,由服务器计算机网络提供的云计算服务)协作的本地组件(例如,由计算机处理器执行的软件应用程序)。赋予特定机器其功能的软件和/或其他指令可以可选地作为一个或多个未执行的模块保存在一个或多个合适的存储设备上。作为示例,参考图1,计算机化助理122可以实现为一个或多个机器,例如,包括代码生成机器128、描述机器130、修订模型机器132和/或对话历史机器134。
[0068]
机器可以使用现有技术和/或未来机器学习(ml)、人工智能(ai)和/或自然语言处理(nlp)技术的任何适当组合来实现。可以结合在一个或多个机器的实现中的技术的非限制性示例包括支持向量机、多层神经网络、卷积神经网络(例如,包括用于处理图像和/或视频的空间卷积网络、用于处理音频信号和/或自然语言句子的时间卷积神经网络,和/或被配置为在一个或多个时间和/或空间维度上卷积和汇集特征的任何其他合适的卷积神经网络)、循环神经网络(例如,长短期记忆网络)、关联存储器(例如,查找表、哈希表、布隆过滤器、神经图灵机和/或神经随机存取存储器)、词嵌入模型(例如,glove或word2vec)、无监督空间和/或聚类方法(例如,最近邻算法、拓扑数据分析和/或k均值聚类)、图形模型(例如,(隐)马尔可夫模型、马尔可夫随机场、(隐)条件随机字段和/或ai知识库)和/或自然语言处理技术(例如,标记化、词干提取、选区和/或依赖解析,和/或意图识别、分段模型和/或超分段模型(例如,隐动态模型))。
[0069]
在一些示例中,可以通过训练来调整机器和/或模型,从而配置机器/模型以执行期望的功能。例如,图1的计算机化助理122,包括代码生成机器128、描述机器130、修订模型机器132和/或对话历史机器134,可以基于指示示例性用户话语、计算机化助理程序、修订函数语句的注释数据和/或基于任何其他合适的训练数据进行训练。作为示例,存储在存储子系统404中的指令可执行以基于注释数据操作和/或训练代码生成机器128、描述机器130、修订模型机器132和/或对话历史机器134。例如,指令可执行以操作先前训练的修订模型以导出经修订后的计算机化助理程序,并基于示例性修订函数语句和接收自人工注释者的示例性修订后的计算机化助理程序重新训练先前训练过的修订模型。
[0070]
在一些示例中,本文描述的方法和过程可以使用一个或多个可微函数来实现,其中可微函数的梯度可以关于可微函数的输入和/或输出来计算和/或估计(例如,关于训练数据,和/或关于目标函数)。这样的方法和过程可以至少部分地由一组可训练参数确定。因此,可以通过任何合适的训练程序来调整特定方法或过程的可训练参数,以便持续改进方
法或过程的功能。
[0071]
用于调整可训练参数的训练程序的非限制性示例包括监督训练(例如,使用梯度下降或任何其他合适的优化方法)、零样本、少样本、无监督学习方法(例如,派生自无监督聚类方法的基于类别的分类)、强化学习(例如,基于反馈的深度q学习)和/或生成对抗神经网络训练方法、信念传播、ransac(随机样本共识)、上下文老虎机方法、最大似然方法和/或期望最大化。在一些示例中,本文描述的系统的多个方法、过程和/或组件可以关于测量多个组件的集体功能的性能的目标函数同时训练(例如,关于强化反馈和/或关于标记的训练数据)。同时训练多个方法、过程和/或组件可以改进这种集体功能。在一些示例中,一种或多种方法、过程和/或组件可以独立于其他组件进行训练(例如,对历史数据的离线训练)。
[0072]
在一些示例中,计算机化助理可以合并一个或多个语言模型,例如,用于处理用户话语。语言模型可以利用词汇特征来指导采样/搜索单词以识别语音。例如,语言模型可以至少部分地由单词或其他词汇特征的统计分布来定义。例如,语言模型可以由n-gram的统计分布定义,根据词汇统计定义候选词之间的转换概率。语言模型可以进一步基于任何其他适当的统计特征,和/或用一种或多种机器学习和/或统计算法处理统计特征的结果(例如,由这种处理产生的置信度值)。在一些示例中,统计模型可以约束对于音频信号可以识别哪些词,例如,基于音频信号中的词来自特定词汇表的假设。
[0073]
替代地或附加地,语言模型可以基于一个或多个神经网络,该神经网络先前被训练来表示共享潜空间中的音频输入和词,例如,由一个或多个音频和/或词模型学习的向量空间(例如,wav21etter和/或word2vec)。因此,找到候选词可以包括基于由音频模型编码的向量来搜索共享潜空间以寻找音频输入,以便找到候选词向量以用词模型进行解码。对于一个或多个候选词,共享潜空间可用于评估在语音音频中具有候选词的置信度。
[0074]
语言模型可以与声学模型结合使用,该声学模型被配置为基于词的声学特征(例如,梅尔频率倒谱系数、共振峰等),针对候选词和音频信号评估候选词被包括在音频信号中的语音音频中的置信度。可选地,在一些示例中,语言模型可以结合声学模型(例如,语言模型的评估和/或训练可以基于声学模型)。声学模型定义了声学信号和诸如音素之类的基本声音单元之间的映射,例如,基于标记的语音音频。声学模型可以基于现有技术或未来ml和/或ai模型的任何合适组合,例如:深度神经网络(例如,长短期记忆、时间卷积神经网络、受限玻尔兹曼机,深度信念网络),隐马尔可夫模型(hmm),条件随机场(crf)和/或马尔可夫随机场,高斯混合模型,和/或其他图形模型(例如,深度贝叶斯网络)。要用声学模型处理的音频信号可以以任何合适的方式进行预处理,例如以任何合适的采样率编码、傅里叶变换、带通滤波器。声学模型可以被训练以基于使用标记音频数据的训练来识别声学信号和声音单元之间的映射。例如,可以基于包括语音音频和校正后文本的标记音频数据来训练声学模型,以便学习语音音频信号和由校正后文本表示的声音单元之间的映射。因此,声学模型可以不断改进以提高其正确识别语音音频的效用。
[0075]
在一些示例中,除了统计模型、神经网络和/或声学模型之外,语言模型可以结合任何合适的图形模型,例如,hmm或crf。给定语音音频和/或到目前为止识别的其他单词的情况下,图形模型可以利用统计特征(例如,转换概率)和/或置信度值来确定识别单词的概率。因此,图形模型可以利用统计特征、先前训练的机器学习模型和/或声学模型来定义图形模型中表示的状态之间的转换概率。
[0076]
本公开以示例的方式并参考相关的附图来呈现。在一幅或多幅图中可能基本相同的组件、工艺步骤和其他元素被协调地标识并且以最少的重复进行描述。然而,应注意,坐标标识的元素也可能在某种程度上有所不同。还应注意,一些图可能是示意性的而不是按比例绘制的。图中所示的各种绘图比例、纵横比和组件数量可能会被故意扭曲以使某些特征或关系更容易看到。
[0077]
在一个示例中,一种调整计算机化助理程序以满足更新的约束的方法包括:维护包括指示初始约束的第一话语的对话历史;接收指示与初始约束冲突的新约束的第二话语;识别被配置为满足初始约束的初始计算机化助理程序;识别通过对初始计算机化助理程序的引用和对新约束的引用而参数化的修订函数语句;以及执行从修订函数语句导出的指令以返回被配置为满足新约束的修订后的计算机化助理程序。在该示例或任何其他示例中,修订函数语句被配置为利用多个不同的计算机化助理程序进行参数化,并且其中从修订函数语句导出的指令被配置为对于给定的计算机化助理程序基于新约束返回对应的修订后的计算机化助理程序。在该示例或任何其他示例中,该方法还包括操作修订模型以从修订函数语句导出指令,其中指令被配置为基于修订函数语句和初始计算机化助理程序生成修订后的计算机化助理程序。在这个或任何其他示例中,修订模型是基于示例性修订函数语句和从人工注释者接收的示例性的修订后的计算机化助理程序训练的先前训练的机器学习模型。在该示例或任何其他示例中,修订模型包括多个预定义规则,这些规则被配置为基于新约束来转换初始计算机化助理程序。在该示例或任何其他示例中,该方法还包括将新约束和初始计算机化助理程序转换为约束满足问题。在这个或任何其他示例中,约束满足问题被编码为约束图,包括指示约束变量的节点和指示约束变量之间的隐含关系的边。在这个或任何其他示例中,约束满足问题包括初始约束的逻辑松弛。在这个或任何其他示例中,初始约束的逻辑松弛是基于识别第二话语和初始约束之间的冲突。在该示例或任何其他示例中,初始约束的逻辑松弛基于认识到第二话语在逻辑上暗示初始约束的子约束。在这个或任何其他示例中,该方法还包括找到约束满足问题的多个候选约束解决方案,以及基于成本函数选择候选约束解决方案。在此示例或任何其他示例中,成本函数是先前训练的机器学习函数。在该示例或任何其他示例中,该方法还包括撤消由初始计算机化助理程序执行的一个或多个操作。在这个或任何其他示例中,对话历史进一步包括对初始计算机化助理程序的引用。在这个或任何其他示例中,该方法还包括将第二话语添加到对话历史中。在该示例或任何其他示例中,该方法还包括执行修订后的计算机化助理程序。在该示例或任何其他示例中,该方法还包括在对话历史中保存对修订后的计算机化助理程序的引用。
[0078]
在示例中,计算机系统包括:逻辑子系统;以及存储子系统,其保存可由逻辑子系统执行以实施本文所述的任何示例的方法的指令。在这个或任何其他示例中,计算机程序被配置为当在计算机系统上执行时执行本文描述的任何示例的方法。
[0079]
在示例中,计算机化助理系统包括:对话历史机器,其被配置为维护对话历史,该对话历史包括指示初始约束的第一话语和指示与初始约束冲突的新约束的第二话语;代码生成机器,其被配置为生成初始计算机化助理程序,该初始计算机化助理程序被配置为满足初始约束,并生成通过对初始计算机化助理程序的引用和对新约束的引用而参数化的修订函数语句;以及修订模型机器,其被配置为执行从修订函数语句导出的指令,以返回配置
为满足新约束的修订后的计算机化助理程序。
[0080]
应当理解,这里描述的配置和/或方法本质上是示例性的,并且这些特定实施例或示例不应被认为具有限制意义,因为许多变化是可能的。本文描述的特定例程或方法可以代表任意数量的处理策略中的一个或多个。这样,所示和/或描述的各种动作可以以所示和/或描述的顺序、以其他顺序、并行或省略来执行。同样,可以改变上述过程的顺序。
[0081]
本公开的主题包括各种过程、系统和配置以及本文公开的其他特征、功能、动作和/或特性的所有新颖的和非显而易见的组合和子组合,以及任何及其所有等同物。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1