用于新的会话对话系统的数据收集的制作方法

文档序号:17932132发布日期:2019-06-15 00:58阅读:177来源:国知局
用于新的会话对话系统的数据收集的制作方法

流畅的会话系统难以设计。自然语言的复杂性加上大量的个人言论自由使得难以设计规范性的自然语言界面以使得它们覆盖潜在的互动空间。另外,这种能够完成特定主题中的所有任务的系统非常难以使用,因为它不能分析用户所说的各种句子,也不能捕获系统产生的动作和语言的可能性。

问题是鸡与蛋的问题——系统可以使用wizardofoz(woz,绿野仙踪)系统来创建会话系统的模型,并且然后说服大量的人类用户与系统交互。这是昂贵的,因为“会话系统”必须由人类操作者表示,并且它同样受限于在人类操作者话语空间中进行操作(每个操作者具有不自然地限制woz数据的特质话语)。

然而,可以使用woz场景来引导会话系统。这样的系统可以通过以下进行工作:在特定主题中为系统创建用户界面(通常是web界面),并且然后通过强迫或以其他方式说服人们通过与系统谈话(或者向其输入内容)来使用系统来执行任务(例如,预约航班),并且进行一系列交换,直到成功预约航班或放弃任务。该技术有利地用于引导atis(航空运输信息系统)darpa项目以填写机票,但任务比实际使用所需要的任务简单得多。

替代方案是通过直观地描述用户和代理可以说的事物(以及代理可以采取的动作)来从头开始创建系统。这导致对于不知情用户的交换极其低效,因为系统受限于开发工程师的特质。可以从这个实际系统引导(假定某种形式的机器学习可用于将以前看不见的元素包括在系统中),但是这种系统的开发很困难。当前流行的聊天机器人并没有被证明是成功的会话系统的祖先。

需要一种能够训练对话系统的改进的方法。

附图说明

图1是收集和使用带注释数据的系统的框图。

图2是数据生成系统的框图。

图3是用于生成带注释数据的方法。

图4是用于通过用户界面注释数据的方法。

图5示出了由本系统提供的另一用户界面。

图6示出了由本系统提供的另一用户界面。

图7示出了由本系统提供的另一用户界面。

图8示出了由本系统提供的另一用户界面。

图9示出了由本系统提供的另一用户界面。

图10示出了由本系统提供的另一用户界面。

图11示出了由本系统提供的另一用户界面。

图12示出了由本系统提供的另一用户界面。

图13示出了由本系统提供的另一用户界面。

图14示出了由本系统提供的另一用户界面。

图15示出了由本系统提供的另一用户界面。

图16示出了由本系统提供的另一用户界面。

图17示出了由本系统提供的另一用户界面。

图18示出了由本系统提供的另一用户界面。

图19示出了由本系统提供的另一用户界面。

图20示出了由本系统提供的另一用户界面。

图21示出了由本系统提供的另一用户界面。

图22示出了由本系统提供的另一用户界面。

图23示出了由本系统提供的另一用户界面。

图24是用于实现本技术的示例性设备的框图。



技术实现要素:

一种数据收集系统基于从数据库模式得到的一组通用对话行为。群体工作者或其他用户执行两种类型的任务:(i)标识有意义的对话路径,以及(ii)执行这些对话路径到真实对话的上下文相关释义。系统的最终输出是一组用其逻辑形式注释的真实对话的训练示例。该数据可以用于训练对话系统的所有三个组件:(i)用于理解上下文相关话语的语义解析器,(ii)用于在给定当前状态的情况下生成新对话行为的对话策略,以及(iii)用于决定说什么以及如何用自然语言来表达它的生成系统。

在一些情况下,本技术的数据生成系统可以从逻辑形式生成多个规范话语并且将注释与多个规范话语相关联。带注释的规范话语数据固有地包括关于对话流和话语转换的信息,该信息可以用于训练对话系统。

在实施例中,描述了一种用于生成带注释的对话系统训练数据的方法。在该方法中,数据生成应用从用户接收第一输入作为多步骤对话中的步骤。数据生成应用从多个逻辑形式生成多个规范话语的第一列表,其中多个逻辑形式是响应于从用户接收的输入而生成的。从用户接收从第一列表中对多个规范话语之一的选择。从多个逻辑形式生成多个规范话语的第二列表,其中多个逻辑形式是响应于从第一列表的用户选择而生成的。从用户接收从第二列表中对多个规范话语之一的选择。可以从用户接收自然语言释义,其中自然语言释义与第一选择的规范话语和第二选择的规范话语相关联。然后存储自然语言释义、第一选择的规范话语和第二选择的规范话语。

在实施例中,一种系统可以生成带注释的对话系统训练数据。该系统可以包括处理器、存储器和存储在存储器中并且由处理器可执行的一个或多个模块。当被执行时,这些模块可以:通过在机器上执行的数据生成应用从用户接收第一输入作为多步骤对话中的步骤,通过数据生成应用从多个逻辑形式生成多个规范话语的第一列表,多个逻辑形式是响应于从用户接收的输入而生成的,从用户接收从第一列表中对多个规范话语之一的选择,从多个逻辑形式生成多个规范话语的第二列表,多个逻辑形式是响应于从第一列表的用户选择而生成的,从用户接收从第二列表中对多个规范话语之一的选择,从用户接收自然语言释义,自然语言释义与第一选择的规范话语和第二选择的规范话语相关联,并且存储自然语言释义、第一选择的规范话语和第二选择的规范话语。

具体实施方式

粗略描述的本技术是基于从数据库模式得到的一组通用对话行为的数据收集系统。群体工作者执行两种类型的任务:(i)标识有意义的对话路径,以及(ii)执行这些对话路径到真实对话的上下文相关释义。系统的最终输出是一组用其逻辑形式注释的真实对话的训练示例。该数据可以用于训练对话系统的所有三个组件:(i)用于理解上下文相关话语的语义解析器,(ii)用于在给定当前状态的情况下生成新对话行为的对话策略,以及(iii)用于决定说什么以及如何用自然语言来表达它的生成系统。

介绍

在一些情况下,本技术的数据生成系统可以从逻辑形式生成多个规范话语并且将注释与多个规范话语相关联。带注释的规范话语数据固有地包括关于对话流和话语转换的信息,该信息可以用于训练对话系统。

如果一个人具有被设计为通过机器学习来被通知的会话系统,则问题主要在于创建用于训练模型的数据。系统本身的规范模型和系统的woz模型都难以管理并且仅提供不完整的训练数据。

用于创建对话系统的训练数据的一种技术由yushiwang、jonathanberant和percyliang于2015年(acm)以题为“buildingasemanticparserovernight”发布。在该论文中,作者开发了一种用于获取具有逻辑形式的简单命令和控制系统的训练数据的方法。他们的系统将可能的逻辑形式基元的数据库模式作为输入,并且生成一组核心逻辑形式。这些逻辑形式作为伪英语规范话语被示出给群体工作者,并且群体工作者写下针对基础逻辑形式的真实自然语言话语。该系统在wang-berant-liang论文的图1中描述。这些自然语言释义与基础逻辑形式配对然后成为命令响应系统的训练数据。

为了使这种想法从命令和控制系统适用于对话系统,需要进行重大修改。有两个主要变化:第一,虽然命令和控制系统的逻辑形式的详尽生成是可行的,但是可能的对话集太大了。其次,对话状态和对话行为的表现可能非常复杂,并且必须予以确定。

本技术的经修改的数据收集系统基于从数据库模式得到的一组通用对话行为。群体工作者可以在本系统中执行两种类型的任务:(i)标识有意义的对话路径,以及(ii)执行这些对话路径到真实对话的上下文相关释义。系统的最终输出是一组用其逻辑形式注释的真实对话的训练示例。该数据可以用于训练对话系统的所有三个组件:(i)用于理解上下文相关话语的语义解析器,(ii)用于在给定当前状态的情况下生成新对话行为的对话策略,以及(iii)用于决定说什么以及如何用自然语言来表达它的生成系统。

以下是该方案如何适用于简单文本消息传递领域的示例:

1.开发人员写下或使用代码来自动收集新领域的数据库模式。

otextmessage={contents:message,phone_number:phonenumber}(文本消息={内容:消息,电话_号码:电话号码})

2.框架定义了可能对话的完整树,其中每个路径是一系列动作(对话行为),并且每个节点是对话的状态。动作被表达为规范话语,这是一种示出基础逻辑形式的伪代码方式。这是一个示例路径:

ouser:add[createtextmessage]totasks(用户:将[创建文本消息]添加到任务)

oagent:textmessage:requestrecipient_phone_number?(代理:文本消息:请求接受者_电话_号码?)

ouser:textmessage:requestrecipient_phone_numbertobe617-123-4567(用户:文本消息:请求接受者_电话_号码为617-123-4567)

ouser:textmessage:requestcontentstobe"buygroceries"(用户:文本消息:请求内容为“买杂货”)

3.群体工作者将来自一个状态的每个动作评为好或坏。例如,在用户创建textmessage之后,代理不太可能询问用户想要什么,而要求电话号码是非常明智的。

4.对于树的有效分支,群体工作者编写上下文相关自然语言话语,其形成最终对话:

ouser:i'dliketosendatext(用户:我想要发短信)

oagent:towhom?(代理:给谁?)

ouser:to617-123-4567,saying"buygroceries"(用户:给617-123-4567,说“买杂货”)

在该新系统中,一次一个交换地创建对话,并且群体工作者(用于从系统创建数据)判断所创建的话语和系统提出的动作是否有效。对于有效话语,群体工作者以自然语言提供至少一个释义,并且该释义被记录在数据中,该数据稍后将用于训练实际会话系统。

在上面的步骤1中创建的数据库模式是可以采取的元素和动作的基于规则的描述。与基于规则的机器人或完整对话系统不同,规则管理对话的逻辑元素的创建和连接,这些逻辑元素不一定是用户/系统在真实会话中发出的实际单词。虽然规则预计将捕获会话系统的大部分逻辑描述,但是群体工作者提供的自然语言释义在被馈送到机器学习系统时将学习新领域中的自然语言交换的相关细微差别。

本技术的数据生成系统可以用于生成带注释数据并且将用于训练的数据提供给对话和/或自动化助理系统。图1是收集和使用带注释数据的系统的框图。图1的系统100包括客户端110、移动设备120、计算设备130、网络140、网络服务器150、应用服务器160和数据存储库170。客户端110、移动设备120和计算设备130通过网络140与网络服务器150通信。网络140可以包括专用网络、公共网络、因特网和内联网、wan、lan、蜂窝网络或适合于在图1的计算设备之间传输数据的某种其他网络。

客户端110包括应用112。应用112可以提供自动语音识别、语音合成、释义解码、转换和/或翻译、释义翻译、分区、自动化助理以及本文中讨论的其他功能。应用112可以实现为一个或多个应用、对象、模块或其他软件。应用112可以通过图1的服务器架构或直接(图1中未示出)与应用服务器160和数据存储库170通信以访问大量数据。

移动设备120可以包括移动应用122。移动应用可以提供自动语音识别、语音合成、释义解码、转换和/或翻译、释义翻译、分区、自动化助理以及本文中讨论的其他功能。移动应用122可以实现为一个或多个应用、对象、模块或其他软件。

计算设备130可以包括网络浏览器132。网络浏览器可以接收一个或多个内容页面、脚本代码以及当加载到网络浏览器中时提供自动语音识别、语音合成、释义解码、转换和/或翻译、释义翻译、分区、自动化助理和本文中讨论的其他功能的其他代码。

网络服务器150可以经由网络140从应用112、移动应用122和网络浏览器132接收请求和数据。请求可以由特定应用或浏览器应用发起。网络服务器150可以处理请求和数据,传输响应,或者向应用服务器160传输请求和数据或其他内容。

应用服务器160包括应用162。应用服务器可以接收数据,包括从应用112和122以及浏览器132接收的数据请求,处理数据,以及向网络服务器150传输响应。在一些实现中,响应是由网络服务器152转发到最初发送请求的计算机或应用。应用的服务器160还可以与数据存储库170通信。例如,可以从数据存储库170访问数据以供应用使用以提供自动语音识别、语音合成、释义解码、转换和/或翻译、释义翻译、分区、自动化助理和本文中讨论的其他功能。应用服务器160包括应用162,除了全部或部分地在应用服务器160上实现之外,应用162可以与应用112类似地操作。

数据生成系统190可以生成可以用于训练语义语言模型的数据。由系统190生成的数据可以存储在带注释的训练数据180中,带注释的训练数据180可以由应用162访问。数据可以包括用于话语路径的逻辑形式数据和规范数据、以及用于对话的多个路径的注释。关于图2和本文中其他地方更详细地讨论了数据生成系统190。

图2是数据生成系统的框图。图2的数据生成系统200提供图1的生成系统190的更多细节,并且包括规范话语生成器210、话语排名模块220、gui管理器230、策略240、卡片数据存储库250和动作数据存储库260。

规范话语生成器210根据从数据存储库取得的逻辑形式生成规范话语。规范话语可以通过话语排名模块220进行排名,并且通过由gui管理器230填充、表达和管理的界面来显示。策略240保持由数据生成系统200使用和应用的策略信息。卡片数据存储库250存储卡片数据并且处理对卡片信息的查询。动作数据存储库250存储动作数据并且处理对动作信息的查询。卡片、动作和策略将在下面详细讨论。

表示

本系统具有对话状态的简单的声明性表示。

·卡片类型(类似于类或数据库表的模式)

○包含以下信息

■名称(单数专有名词)

■字段列表,其中每个字段具有名称、参数(1或1+)和卡片类型。

■超级卡片类型的列表,其表示

■有效的字段列表包括所有超级卡片类型的那些

■任何超级卡片类型是抽象的,并且代理将询问要创建的具体卡片类型

■逻辑(未实现)

■关于字段的约束(=,<=,>=,!=)

■例如,departure_date<=arrival_date(出发_日期<=到达_日期)

■功能

■例如,每天只能有一个高温

○示例

■textmessage={contents:message,phone_number:phonenumber}(文本消息={内容:消息,电话_号码:电话号码})

■baseballgame<activity={teaml:baseballteam,team2:baseballteam/location:stadium}(棒球比赛<活动={队伍1:棒球队,队伍2:棒球队/位置:体育场}>)

○原始卡片类型

■枚举:航班号、电话号码

■数字:金钱、时间、持续时间、日期、温度、......

●模式是卡片类型的集合,并且是可以存在的事物世界的完整规范。

●卡片

○注意:卡片不是卡片类型的实例。

○包含以下信息

■模式:可以创建(该卡片类型下的新数据库记录)或查询(对于现有数据库记录)

●示例:发送文本消息是创建卡片

●示例:查找航班是查询卡片

■对于每个字段,复合表达式或空,其中

■expression::=value(placeholders${value:date})|not(expression)|and(expression,expression)|expression+${offset}|lessthan(expression)|...|get(path)(表达式::=值(占位符${值:日期})|非(表达式)|与(表达式,表达式)|表达式+${偏移}|小于(表达式)|...|获得(路径))

■实际上,表达式的大小是有限的。

■表达式可以是指“路径”,它指的是系统中的任何子卡片。

■排序字段(增加或减少):按照其进行排序的字段

■到结果列表中的光标(整数)。

■已经报告的结果列表

■包含记录列表,其中每个记录具有其字段的子集,其已经由代理报告。

■包含多个记录中的字段值(例如,最小值和最大值,计数)。

○注意,每个子卡片可以通过路径来访问

■示例:flightbo确认ing/item/returning_leg/departure_date(航班预约/项目/返回_行程/出发_日期)

●动作(产生其他卡片的卡片上的操作):这些类似于语义解析中的逻辑形式(更接近执行而不是语言)

○card_add(path,field,newexpr|new_ctype,new_mode)(卡片_添加(路径,字段,新表达式|新_字符类型,新_模式)):用户书写卡片

■<path>.<field>.add(<new_expr>)(<路径>.<字段>.添加(<新_表达式>));

■<path>.<field>.add(new<new_ctype>(<new_mode>))(<路径>.<字段>.添加(新<新_字符类型>(<新_模式>)));

■用户:将起点设置为bos

■代理:将起点设置为bos#以设置默认值

■代理:将起点设置为bos?

○card_remove(path,field,index)(卡片_移除(路径,字段,索引)):用户书写卡片

■<path>.<field>.removeat([<index>])(<路径>.<字段>.在([<索引>]处移除));

■用户:忘记起点

■代理:忘记起点

■代理:忘记起点?

○card_sort(path,field)(卡片_排序(路径,字段)):用户书写卡片

■用户:按到达时间排序

○card_info(path,field?)(卡片_信息(路径,字段?)):由用户或代理读取卡片

■print<path>.<field>(打印<路径>.<字段>);

■用户:当前的航班搜索是什么?

■代理:当前,出发日期是......,出发时间是......

○db_info(path,field)(db_信息(路径,字段)):由用户或代理

■用户:价格是多少?

■代理:价格为<minvalue>(<最小值>),...,<maxvalue>(<最大值>)

○db_cursor(path,direction)(db_光标(路径,方向)):由用户或代理书写卡片

■用户:next|previous|first|lastresult(下一|当前|第一|最后结果)

○db_result(path,field)(db_结果(路径,字段)):由用户或代理

■用户:当前的结果是什么?

■代理:当前的结果是......

○db_create(path)(db_创建(路径)):由用户或代理

■用户:预约

■代理:预约

○db_delete(path)(db_删除(路径)):由用户或代理

■用户:删除

■代理:删除

○每个动作有两个方面:

■who=用户或代理

■doit=假或真(仅适用于更改状态的操作)

■对于用户,书入卡片时doit为真(表示共享心理状态)

■对于代理,写入db时doit为真(表示世界状态)

●示例

○用户:当前时间是什么?

■current_situation.result.time?(当前_情况.结果.时间?)

○代理:下午3点

■printcurrent_situation.result.time(打印当前_情况.结果.时间)

○我明天想从sfo飞往bos

■task.add(newflightlinerary(query))

■task[0].outgoing_leg.origin.name=sfo

■task[0].outgoing_leg.destination.name=bos

■task[0].outgoing_leg.departure_date=current_situation.date+1

○代理:我在美国找到了300美元的航班

■printtask[0].result.price

■printtask[0].result.airline

○用户:我到达那里的时候天气怎么样?

■task.add(newweatherreport(query))

■task[l].date=thing[0].outgoing_leg.arrival_date

■task[1].location=thing[0].outgoing_leg.destination.city

○代理:下午6点

■printtask[l].result[0].temperature

○用户:把它电子邮件给我

■task.add(newemailmessage(create))

■task[2].recipient=me.email_address

■task[2].message=thing.result

■task[2].create()

●对话状态包含

○根卡片:事务的当前状态

○对话历史:动作列表(动作未使用的)

生成对话

给定以上表示,本系统首先定义生成器,生成器采取状态和动作并且产生用于该动作的规范话语。这是一个简单的基于规则的系统,它将基础逻辑形式映射到类似英语的伪代码。在早期版本中,本系统尝试使用更纯粹的自然语言(例如,“对于创建textmessage任务,您希望内容是什么?”),但是与具有更简洁的速记(例如,“textmessage:请求内容?”)相比,群体工作者阅读更加困难

使用策略将状态映射到动作的排名。给定状态,本系统首先生成一组可能的动作(取决于状态的复杂性,可以有几百个)。然后,本系统为每个(状态,动作)对定义参数化得分。这些特征包括(状态,动作)的各种抽象的指示符。例如,一个特征捕获最后两个动作的身份,不包括参数。另一特征将捕获参数的等价结构(例如,以捕获如果代理请求字段,则用户可能会回复该字段)。从用户评级中学习模型的权重。

该模型在用户界面中被实例化,其中向群体工作者呈现逻辑形式,这些逻辑形式按顺序在对话中构成句子。他/她的任务是用自然语言来释义系统的话语(可以是文本字符串),并且在系统提供对“用户”话语的多于一个可能响应的情况下,选择可能性之一作为会话的扩展,并且再次提供逻辑形式的至少一个释义。

不合理或不能被系统“解析”的逻辑形式有几种形式:

1.可能的话语生成器过度生成复合逻辑形式,并且它们可能没有任何意义。这些将由群体工作者标记,并且被忽略或分析以查看系统是否可以以合理的形式表达等效信息

2.系统无法理解用户话语。在这种情况下,系统可能缺少基本的分析元素,或者系统功能没有扩展到这种类型的话语。在任何情况下,这些都将被分析以用于模型系统本身或系统所涵盖的领域的可能扩展。

当使用用户界面创建对话时,有三个参与者:

a.对话创建者(群体工作者)

i.实际使用界面的人

ii.是否可能熟悉系统

iii.可能组成对话,或者只是为预定义的对话而选择动作序列

iv.在使用界面时,对话创建者将系统状态和话语释义为自然语言

b.“用户”

i.正在使用该系统的虚构的人

ii.由创建者建模为与系统交谈的人

iii.正在努力完成一些任务

iv.创建或选择系统动作或对话

c.“代理”

i.系统的虚构的人物

ii.可以与用户交谈并且可以对用户的部分采取动作

iii.通常限于系统设计者定义的那些动作/话语

iv.可以具有实现为自由格式对话的扩展功能,系统分析器将使用这些对话来扩展系统的功能

v.用某种元语言说话和行动,这种元语言定义了系统的实际内部状态和话语

用户界面可以操作以创建对话,其中每个系统动作、话语或这些的组合与自然语言释义相配对。这些释义和系统动作和/或状态自动为实际系统创建训练数据,因为系统状态现在与自然语言话语相配对,这些一起创建系统可能具有的自然语言对话。

用户界面带有对话创建者的一般指令,如下:

在某些情况下,用户可以有两个主要目标:

●将机器生成的选项评定为逻辑上有效或无效

●写出传达相同含义的自然发声对话。

该怎么办:

●到当前为止,查看在给定当前对话的情况下的候选机器生成的话语。

●找到合适的下一用户或代理话语(使用搜索进行过滤)。

●单击机器生成的话语并且输入占位符以推进对话。

●当单击构成单个自然语言的一个或多个机器生成的话语时,请在与最后一个机器生成的话语相对应的框中写入相应的自然话语。

●完成对话之后,单击[对话开始]或任何中间步骤以继续对话。

示例对话

以下是可以由本系统产生的一些示例对话。mgu是机器生成的话语,其由系统生成并且由群体工作者选择。“动作”是系统采取的与mgu相对应的内部操作。“释义”是由群体工作者提供的自上一“释义”以来所有mgu的自然语言描述。“用户”是动作者的行和“代理”是动作者的行在第一列中如下标记。

图3是用于生成带注释数据的方法。在步骤305,访问数据库模式。在步骤310,从用户(群体工作者)接收对话路径中的第一选择。第一选择将对应于对话的整体状态中的根节点。接下来,在步骤315,可以查询数据存储库以获取动作。在步骤310,可以基于所接收的选择来生成对动作的查询。数据存储库接收查询,准备响应,并且将响应传输回请求模块。可以执行响应中的动作,从而创建多个逻辑形式。在步骤320,可以对逻辑形式进行排名。在一些情况下,可以基于模型得分对逻辑形式进行排名,该模型得分可以包括基于先前用户排名、置信水平和其他数据的权重。

在步骤325,从逻辑形式生成并且输出规范话语。在一些情况下,仅使用逻辑形式的子集来生成规范话语,诸如例如满足最小得分的排名最高的五个或十个逻辑形式、或者取得的逻辑形式的某个其他子集。在任何情况下,规范话语可以被认为是计算机形式的伪英语翻译,其可以被认为更接近计算机代码格式。规范话语在界面中输出,这将参考图4至23更详细地讨论。

然后,在步骤330,接收对特定规范话语的选择。在步骤335,生成,修改,更新,删除或以其他方式处理一个或多个卡片。由一个或多个卡片组成的更新状态用于为一组动作生成查询。在步骤340,可以基于当前状态来查询数据存储库以获取动作,并且可以执行取得的动作以生成逻辑形式。然后,在步骤345,可以为逻辑形式的每个或子集生成规范话语,并且可以输出规范话语。在步骤350,接收对所生成和输出的规范话语的选择。

在步骤355,响应于选择而生成或处理一个或多个卡片,基于当前状态(至少部分基于已更新的卡片)生成查询,执行动作,并且生成逻辑形式。

在步骤360,接收自然语言话语。自然语言话语可以与当前对话路径中的多个规范话语相关联。自然语言话语可以是上下文相关的,并且可以与整个对话路径内的对话中的多个步骤相关联。在步骤365,存储所选择的对话路径、动作、自然形式和自然语言话语、以及用来生成规范话语的逻辑形式。

本系统用户界面

这是本系统界面如何用于创建带注释的对话。注意,界面的用户(此处称为对话创建者)与虚构用户不同,并且与虚构代理不同。创建者的任务是创建带注释的会话对话。

在每个时间步骤,存在到当前为止的对话列表、搜索框和可能的对话扩展的长列表,这些扩展可以与本技术中实现的机器规则一起使用。机器规则过度生成——也就是说,它们产生对话的适当和不适当的潜在扩展。“创建者”的任务是选择对话的适当扩展。他/她也可能被要求尽可能/不可能标记可能的扩展,但在该示例中不是。

存在与对话历史的上方和左侧的对话相关联的当前“知识”的概要(通常在以下示例中示出)。这些图被截断,但几乎所有这些都允许向下滚动可能的对话扩展以找到正确的下一步。创建者可以滚动到正确的步骤,或者他/她可以使用搜索框来搜索用户动作或代理动作。

最后,注意,通常可以选择输入自由文本。这在创建者找不到他/她喜欢的下一步的路径时使用。这些自由文本选择用于以某种特定方式指示机器模型不完整,并且系统设计者可以在事后分析自由文本选择以增加描述当前会话机制的规则。

图4是用于通过用户界面注释数据的方法。首先,使用状态数据、研究机制和初始对话选择来实例化界面。状态数据可以包括到当前为止所采用的路径,或者如果还没有开发路径则可以包括根节点。搜索机制可以包括搜索框、可选按钮或使得用户能够执行搜索的其他界面元素。

在步骤410,可以接收对初始对话的选择。在一个实施例中,初始对话选择在图5的界面中示出。一旦接收到选择,就在步骤415更新状态数据。例如,在图6的界面中,更新包括根节点的状态数据以在对话路径内包括附加节点。在步骤420,将先前的对话选择添加到界面的对话历史部分。参考图6,将“我想要创建餐馆预约作为任务”的所选择的对话部分添加到对话历史。

在步骤425,通过界面向用户提供可选择的规范话语的排名列表。在图6的界面中,向用户提供六个可选择的规范话语。在步骤440,接收对规范话语的选择。响应于该选择,在步骤445更新状态数据,并且在步骤440将对规范话语的先前选择添加到对话历史。然后在步骤445,向用户提供可选择的规范话语的新的排名列表。

在步骤450,接收对新的规范话语之一的选择。在步骤455,可以接收与最近的选择相关联的数据。在图7的界面中,在由界面提供的弹出框或窗口内接收用于餐馆预约的日期形式的数据——“10月25日”。所接收的数据类型可以取决于当前对话的上下文中的特定卡片、动作和规范话语。

在步骤460,接收一系列规范话语的自然语言话语。从用户接收的自然语言话语可以与多个规范话语相关联。因此,自然语言话语用作由系统生成的一系列规范话语的注释,并且可以用于训练其他语言生成模型。

用于生成带注释数据的界面的示例在图5-23中示出。图5示出了初始界面。该界面显示要探索的用户(例如,对话创建者或创建者)的可能对话主题的列表。例如使用触摸屏输入或鼠标输入设备将光标定位在一个主题上或以其他方式提供输入以选择特定主题导致该主题的黄色突出显示510。

黄线表示创建者的选择,这通过将鼠标移动到该线来进行。如果创建者然后提供另一输入以选择突出显示的主题行,则由实现本技术的设备显示诸如图6的界面等界面。

图6示出了由本系统提供的另一界面。图6示出了接收图5的显示的元素的输入的结果。具体地,通过本技术以代码实现的逻辑指示选择餐馆预约任务。

当前状态界面部分610指示对话的当前状态——包括根节点和后续对话路径。对话历史显示在界面内在界面部分620处。注意,餐馆预约任务现在是对话历史的一部分,并且具有可以放置释义的框。然而,不必强制创建者选择释义,而是创建者可以选择指定由用户访问的更多系统状态。

在对话历史下方显示有一系列七个规范话语。七个规范话语中的第一话语当前被突出显示为由用户选择。在图6中,创建者已经选择了餐馆预约日期的指定作为对话的一部分。

当创建者点击预约日期(由本系统接收点击作为输入)时,输入导致本系统输出如图7所示的显示。

图7示出了由本系统提供的另一显示。图7示出了在图6的显示中接收输入之后提供的显示。创建者可以提供输入以指定用户请求预约的日期。在这种情况下,用户已经在弹出框710中提供了输入“10月25日”。当用户提供由本系统接收的输入,例如按钮点击时,向用户提供诸如图8所示的屏幕。

图8示出了由本系统提供的另一显示。具体地,图8示出了在为用户行事的创建者提供输入之后的显示。例如,创建者可以通过选择预约日期来提供输入。注意,日期既出现在对话历史中,也出现在显示左上方的“对话状态”中。

现在,创建者可以通过从指定预约时间的可能系统动作中挑选一条线来扩展用户的动作,这在图8中以黄色突出显示。点击该时间活动,由系统接收点击输入,该系统反过来提供图9的显示。

图9示出了由本系统提供的另一显示。具体地,图9示出了在创建者提供输入之后的屏幕。输入可以包括为用户点击时间系统动作,并且在创建的弹出框中填写7:30。在时间框中点击确认后,创建者可以引起系统提供如图10所示的显示。

图10示出了由本系统提供的另一显示。具体地,图10示出了由本系统提供的显示。可以在接收到点击时间的输入之后提供图10的显示。注意,时间已经被发布到历史和内部状态。创建者现在已经代表用户选择了三个要完成的系统动作,但尚未提供释义。他现在可以释义所有用户动作,从而产生图11。

图11示出了由本系统提供的另一显示。具体地,图11示出了创建者已经释义黄线右侧的单个句子中的所有用户动作。为了继续该对话,创建者应当为代理选择动作(在对话中明确表示系统)。代理可以被认为是一个人,但在本系统中,它应当被认为是一个了解会话系统的约束的虚拟人。创建者可以使用搜索框找到代理的系统动作,如图12所示。

图12示出了由本系统提供的另一显示。具体地,图12示出了创建者在搜索框中填写了词语“代理”,并且代理动作列表的顶部现在显示在搜索框下方。可以使用鼠标挑选代理动作,从而产生图13。

图13示出了由本系统提供的另一显示。具体地,图13示出了现在通过鼠标选择代理的动作,并且以黄色突出显示。点击要求餐馆名称的所选择的代理任务的结果如图14所示。

图14示出了由本系统提供的另一显示。具体地,图14示出了在点击代理动作以请求餐馆名称之后的用户界面。注意,创建者已经为代理的动作提供了释义,以暗示本系统现在将请求用户动作。在填写餐馆名称请求的释义之后,本系统提供可能的用户动作的上下文相关选择。可以用鼠标挑选一个,从而产生突出显示的下一对话动作,如图15所示。

图15示出了由本系统提供的另一显示。具体地,图15示出了创建者通过在以黄色突出显示的可能性上引导光标(例如,使用鼠标或其他输入设备)来在对话中选择用户要采取的下一动作。用户的下一任务是提供餐馆名称。点击图15中的黄线,本系统得到图16。

图16示出了由本系统提供的另一显示。具体地,图16示出了点击图15中的突出显示的行,然后填写询问餐馆名称的弹出框的结果。在对话中单击确认,填写释义并且在搜索框中写入“代理”之后,本系统得到图17。

图17示出了由本系统提供的另一显示。具体地,图17示出了在选择餐馆名称之后的系统界面。创建者已经要求代理的可能的动作,并且已经突出显示了代理对餐馆的位置的请求。

图17示出了由本系统提供的另一显示。具体地,在图17中,代理已经请求了餐馆的位置,并且创建者已经选择了提供名称的用户动作。如图所示,创建者突出显示了下一对话步骤,其中用户将提供餐馆的位置。点击图18所示的用户动作,本系统然后提供图19。

图19示出了由本系统提供的另一显示。具体地,图19示出了用户已经在弹出框中指定了餐馆位置。在用户指定餐馆之后,创建者想要为代理找到适当的动作,但是它在列表中比顶部屏幕稍低。因此,创建者向下滚动他的屏幕以选择代理的动作,从而产生图20。

图20示出了由本系统提供的另一显示。具体地,图20示出了可能动作列表中的代理的聚会大小请求。备选地,创建者可以在搜索框中提出聚会大小的请求,并且聚会大小动作将位于动作列表的顶部,如图21所示。

图21示出了由本系统提供的另一显示。具体地,图21示出了从已经由搜索框重新排序的列表中选择聚会大小请求。点击聚会大小动作得到图22。

图22示出了由本系统提供的另一显示。具体地,图22示出了创建者已经通过点击定义聚会大小的用户活动而将聚会大小4填入弹出框中。单击确认,并且然后单击代理的完成操作,本系统转移到图23。注意,无论何时本系统将虚构的动作者从用户更改为代理,反之亦然,创建者填写释义框的该动作或一系列动作。

图23示出了由本系统提供的另一显示。具体地,图23示出了用户与由创建者创建的代理之间的对话的最终图。注意,“系统”知道来自位于图3的左上方的会话的一些信息。更重要的是,本系统用户界面现在已经创建了完整的对话,其中每个释义短语与会话系统的一个或多个活动相关联。正是这种关联创建了用于训练会话系统的数据。

可以由不熟练的创建者在几分钟内创建带注释的会话。如上所述,如果创作者必须使用自由文本短语而不是特定的本系统动作,则它是系统可能缺少一些基本成分的标志。

本文中描述的系统可以以若干方式实现,并且包括更多的和更少的特征,同时仍然在本技术的预期范围内。

例如,可以按照策略模型得分的减小顺序对可能的动作进行排序。这就像自动完成,暗示模型认为更有可能采取的动作。创建者总是可以拒绝顶部选项并且向下滚动到期望选项。这增加了以在线方式训练策略的附加的训练数据。另外,还可以按照模型得分的绝对值的增加顺序对可能的动作进行排序。这有利于接近0的得分,策略最不确定的得分。这允许创建者提供信息来探索意外活动或新动作,类似于主动学习系统。

此外,可以限制可能的动作以对会话系统的特定实现进行建模以减少搜索空间。此外,可以向创建者提供在该示例中释义的会话,从而使得任务选择与会话相匹配的系统动作。这可以用于验证系统。在一些情况下,可以向创建者提供一系列系统动作,从而使任务写入与系统动作相匹配的释义而不是选择动作。在一些情况下,可以要求创建者评估一些或所有潜在的会话扩展活动是否适当,或者根据某些适当的方式对其进行评分。在一些情况下,可以要求创建者详尽地评估操作或简单地选择5-10个最可能的操作。在一些情况下,可以要求创建者仅标记可能的动作或很可能的动作。

图24是用于实现本技术的计算机系统2400的框图。图24的系统2400可以在客户端110、移动设备120、计算设备130、网络服务器150、应用服务器160、数据存储库170、带注释的训练数据存储库180和数据生成系统190等的上下文中实现。

图24的计算系统2400包括一个或多个处理器2410和存储器2420。主存储器2420部分地存储由处理器2410执行的指令和数据。主存储器2410可以在操作时存储可执行代码。图24的系统2400还包括大容量存储设备2430、(多个)便携式存储介质驱动器2440、输出设备2450、用户输入设备2460、图形显示器2470和外围设备2480。

图24所示的组件被描绘为经由单个总线2490连接。然而,组件可以通过一个或多个数据传输装置连接。例如,处理器单元2410和主存储器2420可以经由本地微处理器总线连接,并且大容量存储设备2430、(多个)外围设备2480、便携式或远程存储设备2440和显示系统2470可以经由一个或多个输入/输出(i/o)总线连接。

可以用磁盘驱动器或光盘驱动器实现的大容量存储设备2430是用于存储供处理器单元2410使用的数据和指令的非易失性存储设备。大容量存储设备2430可以存储用于实现本发明的实施例的系统软件,以用于将该软件加载到主存储器620中。

便携式存储设备2440与便携式非易失性存储介质(诸如光盘、数字视频盘、磁盘、闪存等)一起操作以向图24的计算机系统2400输入数据和代码以及从其输出数据和代码。用于实现本发明的实施例的系统软件可以存储在这样的便携式介质上,并且经由便携式存储设备2440输入到计算机系统2400。

输入设备2460提供用户界面的一部分。输入设备2460可以包括用于输入字母数字和其他信息的字母数字小键盘(诸如键盘)或者指示设备(诸如鼠标、轨迹球、指示笔或光标方向键)。另外,如图24所示的系统2400包括输出设备2450。合适的输出设备的示例包括扬声器、打印机、网络界面和显示器。

显示系统2470可以包括液晶显示器(lcd)、led显示器、触摸显示器或其他合适的显示设备。显示系统2470接收文本和图形信息,并且处理该信息以输出到显示设备。显示系统可以通过触摸显示器接收输入并且传输所接收的输入以进行存储或进一步处理。

外围设备2480可以包括任何类型的计算机支持设备以向计算机系统添加附加功能。例如,(多个)外围设备2480可以包括调制解调器或路由器。

包含在图24的计算机系统2400中的组件可以包括个人计算机、手持计算设备、平板计算机、电话、移动计算设备、工作站、服务器、小型计算机、大型计算机或任何其他计算设备。计算机还可以包括不同的总线配置、联网平台、多处理器平台等。可以使用各种操作系统,包括unix、linux、windows、appleos或ios、android和其他合适的操作系统,包括移动版本。

当实现诸如智能电话或平板计算机等移动设备或者无线地通信的任何其他计算设备时,图3的计算机系统300可以包括一个或多个天线、无线电和用于经由无线信号进行通信的其他电路,诸如例如,使用wi-fi、蜂窝或其他无线信号的通信。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1