CN109074514B - 通过示例和经验的机器人的深度学习 - Google Patents
通过示例和经验的机器人的深度学习 Download PDFInfo
- Publication number
- CN109074514B CN109074514B CN201780028527.7A CN201780028527A CN109074514B CN 109074514 B CN109074514 B CN 109074514B CN 201780028527 A CN201780028527 A CN 201780028527A CN 109074514 B CN109074514 B CN 109074514B
- Authority
- CN
- China
- Prior art keywords
- action
- features
- neural network
- entity
- indication
- 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.)
- Active
Links
- 238000013135 deep learning Methods 0.000 title description 2
- 230000009471 action Effects 0.000 claims abstract description 224
- 238000000034 method Methods 0.000 claims abstract description 72
- 230000003993 interaction Effects 0.000 claims abstract description 12
- 238000013528 artificial neural network Methods 0.000 claims description 97
- 230000000306 recurrent effect Effects 0.000 claims description 74
- 238000012549 training Methods 0.000 claims description 41
- 230000015654 memory Effects 0.000 claims description 28
- 238000000605 extraction Methods 0.000 claims description 26
- 230000000977 initiatory effect Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 12
- 230000006399 behavior Effects 0.000 abstract description 16
- 230000002787 reinforcement Effects 0.000 abstract description 14
- 230000000873 masking effect Effects 0.000 abstract description 11
- 230000008569 process Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 230000006872 improvement Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003278 mimic effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/042—Knowledge-based neural networks; Logical representations of neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/092—Reinforcement learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Machine Translation (AREA)
Abstract
实施例包括用于使用、创建和维护面向目标的对话系统(即,事务机器人)的方法和系统,其提供到应用功能性的接口。实施例的方法和系统提供了一种机器人,该机器人可以从领域专家所提供的会话示例和与用户的交互中学习监督学习和强化学习。可以创建会话机器人以使用文本和/或应用编程接口(API)调用进行交互。开发者可以配置与应用后端进行接口的机器人,其中可以通过使用屏蔽动作来控制机器人的行为。可以灵活地设计用于机器人的规范以指定如何组织开发者代码,例如,作为对机器人可以执行的可能动作的屏蔽操作。另外,方法和系统可以在对话期间自动推断最佳状态表示,因此不需要预定义状态变量。
Description
发明内容
提供本发明内容是为了以简化的形式介绍一些概念,将在下面的具体实施方式中进一步描述这些概念。本发明内容不旨在专门标识所要求保护的主题的关键特征或必要特征,也不旨在帮助确定所要求保护的主题的范围。
本公开的实施例包括用于使用、创建和维护面向目标的对话系统(即,“事务机器人”或“机器人”)的方法和系统,其提供到应用功能性的接口,诸如例如到用于叫出租车、控制家中设备、银行业务或购物的应用功能性的接口。实施例的方法和系统提供了一种机器人,该机器人可以从由领域专家所提供的会话示例中以及从与用户的交互中学习监督学习和强化学习。实施例提供了可以创建用以使用文本和/或应用编程接口(API)调用进行交互的会话机器人。这些实施例的使用允许开发者配置与应用后端进行接口的机器人,并且允许通过使用屏蔽动作来配置机器人的行为。实施例的使用还允许灵活地设计用于机器人的规范,该规范指定如何组织开发者代码,例如,作为对机器人可以执行的可能动作的屏蔽操作。另外,方法和系统可以在对话期间自动推断最佳状态表示,因此不需要预定义状态变量。
在一个实施例中,可以使用长短期记忆(LSTM)循环神经网络模型将方法和系统实现为机器人。LSTM循环神经网络可以经由专门化的策略梯度方法,通过监督学习和/或使用强化学习而被优化。在实现中,可以利用示例对话指定机器人行为。还可以使用控制器在没有人为干预的情况下从与用户的交互中自主地改进机器人行为,该控制器利用业务规则来掌控探索。
示例实现可以包括一种系统,该系统包括控制与用户的交互式对话的一个或多个处理器。该系统可以包括存储器,该存储器包括程序或代码,该程序或代码在被执行时使得一个或多个处理器控制系统对从用户输入生成的输入文本执行实体提取。用户输入可以由用户直接从由用户输入的文本中生成文本,或者通过将来自用户的音频输入转换为文本来生成文本。实体提取可以使用针对特定域的定制模型或适用于与多个域一起使用的通用模型,来识别文本中的实体。系统可以从输入文本中确定标记文本,并使用标记文本来确定对可用动作的屏蔽。屏蔽可以包括允许和禁止一组动作中的哪些动作的指示。然后,系统可以将屏蔽和特征组提供给循环神经网络。特征组可以包括从用户输入生成的输入文本和在实体提取中提取的实体的类型的指示。然后,系统可以从循环神经网络接收选择的动作的指示,基于选择的动作的指示更新系统中的内部状态,并发起针对对话的选择的动作。
在该实现中,系统和循环神经网络可以在循环类型行为中执行操作,同时通过改变提供给循环神经网络的特征组的配置来发生交互式对话。例如,当向循环神经网络提供特征组时,系统可以包括由系统生成的特征,从API调用返回的特征(如果先前的动作是API调用),或者系统采取的先前动作的指示(如果操作先前的动作)。
系统的另一示例实现可以包括控制监督学习过程的一个或多个处理器。该系统可以包括存储器,该存储器包括程序或代码,该程序或代码在被执行时使得一个或多个处理器控制系统以:接收由开发者创建的一个或多个样本对话,确定是一个或多个样本对话中的任何动作否被屏蔽,并且响应于确定一个或多个样本对话中没有动作被屏蔽,将一个或多个样本对话合并到训练集中。系统还可以创建包括用于训练的特征组和实体提取的日志。然后,系统可以使用训练集和日志将训练应用于循环神经网络,使用循环神经网络对一个或多个样本对话进行评分,以基于训练生成得分结果,并且确定在一个或多个样本对话中的目标动作在得分结果中是否未被指派最高概率。确定目标动作是否未被指派最高概率继而可以被用来进一步细化训练。例如,如果确定在一个或多个样本对话中的目标动作在得分结果中未被指派最高概率,则系统可以向开发者提供一个或多个样本对话中的目标动作未被指派最高概率的对话的指示。如果确定在一个或多个样本对话中的每个目标动作在得分结果中被指派最高概率,则系统可以向开发者提供所有一个或多个样本对话被成功重建的指示。
在另一示例实现中,该系统可以包括控制强化学习过程的一个或多个处理器。该系统可以包括存储器,该存储器包括程序或代码,该程序或代码在被执行时使得一个或多个处理器控制系统以:接收针对奖励信号的定义和针对一个或多个对话的返回,使用循环神经网络来执行一个或多个对话,从执行的一个或多个对话创建奖励、特征、可用动作和选定动作的日志,向神经网络提供针对执行的一个或多个对话的返回以用于在神经网络的改进中使用,以及在用户接口处提供用于输出的日志。
附图说明
图1是图示出根据本公开的实施例的示例功能的简化框图;
图2是图示出根据图1的实现中的操作循环的功能块之间的示例信号流的流程图;
图3是图示出由示例系统执行的运行时操作的流程图;
图4是图示出由示例系统执行的监督学习操作的流程图;
图5A是图示出由示例系统执行的强化学习操作的流程图;
图5B是图示出由示例系统执行的强化学习操作的改进操作的流程图;以及
图6是图示出示例计算设备的简化框图。
具体实施方式
现在将通过使用示例实施例来描述系统和方法。在本公开中出于说明性目的而呈现示例实施例,并且不旨在局限或限制本公开的范围或本文所提出的权利要求。
相比于用于使用和创建用于对话系统的事务机器人(机器人)的当前使用的方法,所公开的实施例提供了技术优势。实施例提供了一种系统,该系统允许神经网络经由专门化的策略梯度方法来利用监督学习并使用强化学习而被优化。在实现中,可以利用示例对话指定机器人行为。还可以使用控制器在没有人为干预的情况下从与用户的交互中自主地改进机器人行为,该控制器强化业务规则以通过神经网络掌控探索。另外,具有循环神经网络的实施例的使用允许推断系统状态的潜在表示。
实施例的使用提供了优于当前使用的基于规则的方法的优点。用来在基于规则的系统中定义行为的规则语言通常不容易被非专家使用。在没有来自规则语言方面的软件开发者专家的支持的情况下,项目经理、设计者或营销主管通常很难构建或维护机器人。此外,随着用于定义系统的规则数量的增加,规则开始交互,并且因此规则更改具有无法预料的后果,因此修复一个错误会(bug)引入许多其他错误。这使得基于非平凡规则的系统的维护变得缓慢且极其困难。另外,基于规则的方法不会根据经验自动学习。即使机器人每天实施一百万次对话,也不可能实现自动改进。对机器人行为的改进只能通过耗时的人工分析来实现。本公开的实施例的使用允许在无需了解专门化的规则语言的情况下,使用示例对话来指定机器人行为。例如,设计者、项目经理或营销主管可以在没有来自了解规则语言的专业软件开发者帮助的情况下对系统进行配置。这些实施例的使用还允许在没有人为干预的情况下通过与用户的交互来自主地改进机器人行为。实施例还提供了以下优点:由神经网络执行的探索可以通过强制执行用于机器人行为的规则的可选代码来掌控或限制范围。
通过与实施例的用户的交互来自主地改进机器人行为的实施例的能力还提供了优于当前使用的监督学习(SL)方法的优点。在SL中,领域专家提供机器人应该模仿的示例对话,并且机器学习算法摄取这些并构建试图推广到新对话的模型。SL方法没有能力通过经验或者通过强化学习自动进行改进。为了在机器人行为中获得改进,领域专家必须手动检查并标记对话。
在不需要手动定义状态的情况下推断状态的潜在表示的本公开的实施例的能力也提供了优于当前使用的监督学习SL方法的优点。当前的SL方法要求仔细设计“状态”变量,SL算法将其使用作为用于选择动作的基础。状态变量的设计是有问题的。在状态变量定义中包含太少的信息会阻止SL算法成功学习以便重构示例对话。在状态变量定义中包含太多信息会导致行为的过度拟合或缩小,这意味着机器人将不会推广到新的情形。在实施例中,循环(recurrent)神经网络的使用允许推断状态的潜在表示。这种状态推断大大减少了开发者需要投入手工工程设计当前SL方法所需的状态的努力。
此外,当前SL方法不允许开发者屏蔽动作。屏蔽动作的实施例的能力允许支持业务逻辑,诸如仅在确认与用户的转移的动作成功之后允许诸如转移资金之类的动作。
本公开的实施例还提供优于当前使用的强化学习(RL)方法的优点,其中RL算法探索不同状态中的不同动作,并且随着时间的推移在寻找将奖励信号最大化的从状态到动作的映射方面取得进展。RL在没有来自系统设计者的输入的情况下自动学习。RL系统很难创建,并且通常对于前100或1000个对话,RL系统通常执行得非常糟糕,这是因为RL系统会探索所有可能的操作,包括虚假操作。在本公开的实施例中,与当前RL系统相比,使用强制执行业务规则的可选代码来管控探索的能力可以用来防止虚假动作的探索并改进系统行为。此外,在RL系统中,与SL系统一样,需要仔细定义状态变量。本公开的实施例消除了定义在当前RL系统中存在的状态变量的需要。
现在参考图1,其中是图示出根据本公开的实施例的示例功能的简化框图。图1图示出了包括示例系统104的示例网络100的功能块。在示例实现中,系统104可以实现用于机器人的功能性并且包括实体提取器106、循环神经网络108和控制器110。系统104还可以包括开发者接口112。
系统104可以与设备102和应用服务器114交互。设备102可以包括应用,该应用允许用户通过系统104与应用服务器114交互并从应用服务器114接收服务。系统104可以经由一个或多个信道来与设备102的用户通信。一个或多个信道可以是承载用于应用的通信的任何类型的通信信道,包括短消息服务(SMS)、电子邮件服务、诸如会议平台的消息传送平台、社交网络平台、文本消息传送平台或使用文本通信的任何其他类型的应用。应用还可以包括使用语音或话音通信或web浏览器的任何类型的应用。在各种实现中,可以由用户键入文本,或者由语音识别器产生的转录文本,或者也可以使用自动翻译服务从另一种语言翻译。用户可以与机器人进行一对一的对话,或者机器人可以参与与多个用户的对话。机器人可以被直接寻址,或者机器人可以监视对话并在它确定响应是相关的时做出响应。
应用可以包括例如预订应用、零售/购买应用、信息检索应用或可以通过对话与用户交互的任何其他类型的应用。设备102可以是被配置为允许用户使用应用的任何类型的设备,诸如例如智能电话、平板电脑、台式计算机、膝上型计算机设备、游戏设备、媒体设备、智能电视、多媒体电缆/电视盒、智能手机配件设备、工业机械、家用电器、恒温器、平板电脑配件设备、个人数字助理(PDA)或其他物联网(IOT)设备。可以使用一个或多个服务器来实现实体提取器104、循环神经网络108和系统104的控制器110的功能。在图1的备选实施例中,针对与图1有关的特定功能块所描述的功能可以在图1的另一个功能块中执行,或者以不同的方式在功能块之间进行划分。
现在参考图2,其中是图示出了根据图1的实现中的操作循环200的功能之间的数据交换的示例信号流的流程图。可以参考图2描述图1的功能。块文本输入/文本输出202可以表示在设备102、块实体输入206、动作屏蔽222、实体输出228处执行的功能,并且API调用218可以表示由控制器110执行的功能,并且块实体提取204可以表示在实体提取器106处执行的功能。长短期记忆循环神经网络(LSTM)可以表示在循环神经网络108处执行的功能。Softmax 224表示LSTM 220输出值到用于向控制器110通信的动作概率的转换。
当设备102向实体提取器106提供文本输入信号238时,该过程开始。在204处,执行实体提取并在文本中识别实体。例如,在查询“周五在Sacramento会下雨吗?”中,在204处的实体提取可以将“Sacramento”识别为城市,将“星期五”识别为日,并将“下雨”识别为天气事件。204的实体提取还可以使用特定于用户域的定制模型,或者可以使用适合于多个域的通用模型。例如,通用模型可以提取诸如日期、时间、位置、货币量等的实体。在204处的实体提取可以可选地将实体解析为机器可解释的形式。例如,“一月”(January)可能会被解析为“month=1”。
接下来,实体提取器106发送信号208以在206处将标记的文本传递到控制器110。实体提取器106还可以在块210处通过信号208将输入文本和实体传递到循环神经网络108。控制器110被配置为执行定义的一组操作,并且在通过用户接口设计写什么的方面开发者可以进一步被指导。控制器110可以将实体的文本解析为特定应用的域内的本体。例如,它可能会将用户输入的“城镇汽车”(town car)解析为“CAR_TYPE=UBER_LIVERY”等规范指示。控制器110代码还可以维护其自己的内部状态,例如,跟踪在对话过程中已经被输入或输出的实体。控制器110以各种方式实现,包括作为web服务(例如在C#或node.js中)或在本地运行。
控制器110可以可选地返回对动作的“屏蔽”,即,在动作屏蔽222处通过信号223允许和禁止文本中的哪些动作到循环神经网络108的指示。该代码还可以可选地在块210处返回可以由循环神经网络108使用的其他特征。通过信号214和216输入到神经网络的其他特征取决于在循环200中是否执行了任何先前的操作以及那些操作是什么。当控制器110返回哪些动作可用的指示时,返回的动作列表可以包括通配符。例如,可用动作的指示可以指示允许带有用于文本输出的通配符指示的任何文本输出动作,但是仅允许某些API调用。
在对可用动作进行屏蔽中的屏蔽可以考虑哪些实体类型可用于控制器110。例如,如果尚未接收到针对“DEPARTURE_CITY”(出发_城市)的实体,则要求用户确认“DEPARTURE_CITY”的动作(比如“离开波士顿,对吗?”)可以被屏蔽掉。如果控制器110向神经网络108返回附加特征,则这些特征可以被实现为编程字典,例如{“estimated_wait_minutes”:10,“user_logged_in”:false}(“估计_等待_分钟”:10,“用户_登录”:假)。
在块210处,特征组随后与对可用动作的屏蔽一起被传递到循环神经网络108——如果在222处被提供的话。特征组可以包括在202处的用户输入的文本、在204处检测到哪些实体的指示或实体类型、在206处从开发者代码返回的特征、从API调用返回的特征(如果先前的动作是API调用)以及采取的先前系统动作的指示(如果采取了先前的系统动作)。这些特征还可以包括来自先前时间步骤的其他项目,然而,循环神经网络的有状态性质应该防止需要这样做。
在220处,循环神经网络108执行LSTM循环神经网络的功能并且生成在要采取的动作上的分布。分布可以基于所接收的特征组和接收到的对可用动作的屏蔽。可以将输出动作表示为“平坦”列表,或者表示为生成过程。例如,生成过程可能使用第二神经网络,它可以生成文本以及该文本的概率。
输出动作可以包括对实体类型的引用,诸如“CAR_TYPE”(汽车_类型),而没有填充的特定值(例如“城镇汽车”)。在动作中使用实体类型而不是实体值可以大大减少动作的数量,并允许系统推广到它以前从未见过的实体值。在实体可以采用许多值时或者在可能值可以随时间变化时(诸如“RESTAURANT_NAME”(餐厅_名称)或“EMAIL_SUBJECT”(电子邮件_主题)),这可以是一个优势。这些引用在被输出之前可以被填充。
如果将输出动作表示为平坦列表,则可以通过将原始(未屏蔽的)动作概率乘以1s和0s的阵列来实现屏蔽,其中1s表示允许的动作,0s表示不允许的动作。然后可以对该阵列进行重新归一化,使得非零动作总和为1。可以良好地定义关于这些被屏蔽输出的权重梯度,因此可以应用梯度下降方法。
然后,循环神经网络108对从(屏蔽的)动作分布中的动作进行采样。可以在传统意义上从分布中对动作进行采样。当以一些性能为代价探索神经网络中的强化学习时,这种类型的采样可以提供优势。在另一实现中,可以选择具有最大概率的动作。这种类型的采样可以提供用于将性能最大化的优势,但不以探索为代价。
在块228处,向控制器110发送已经选择了哪个动作的指示。控制器110可以在此时更新其内部状态。控制器110还可以通过信号216将选择的动作的指示发送到循环神经网络以用作特征。如果选择的动作包含对实体类型的引用,则它们在228处由开发者代码来填充。例如,“去往目的地_城市,对吗?”中的目的地_城市可以改为“西雅图”。然后执行带有实体替换的选择的动作。
在230处,确定动作类型。如果动作是文本动作,则在202处通过信号234将其作为文本输出向用户输出。如果动作是API调用,则在218处通过信号232调遣API调用。在218处的API调用可以可选地通过信号214返回与对神经网络108的API调用相关的特征。如果动作是特殊的“LISTEN”(监听)动作,则控制返回202并且系统等待用户输入。可以定义其他特殊动作,诸如“QUIT”(退出)(使系统放弃对话),“ESCALTE”(升级)(代表代理使得人工代理介入)。可以将特殊动作定义为包括任何其他适当的动作。
在其他实现中,可以修改上述流程以允许异步输入,例如,如果用户在系统正在等待来自API调用的响应时键入输入,则系统可以让用户输入排队等候并在接收到用户输入时执行循环。在实施例中,API调用可以与外部服务交互,或者可以与用户交互。例如,API调用可以向用户显示地图、图片或联系人卡片。
以下是对于此循环而言可能的对话序列类型的简单示例:
我该如何帮助您?
“给在家里的杰森打电话”
[API调用查询电话号码]
对不起,我没有杰森威廉姆斯的家庭电话号码。我有移动电话号码或办公电话号码。
你想要哪个?
“移动电话号码”
致电杰森威廉姆斯,移动电话号码。
[API调用选择移动号码]
[API调用拨打电话呼叫]
现在参考图3,图3是图示出由示例系统104执行的运行时操作的流程图。图3图示出了在执行运行时循环200期间由图1的系统104执行的操作。图3类似于图2但以线性的方式示出了操作。
该过程开始于302,其中接收用户输入。在304处,由实体提取器106对用户输入执行实体提取。在306处,将标记的文本传递给控制器110。也可以将输入文本和实体传递到循环神经网络(LSTM)。在308处,控制器110确定对动作的屏蔽,并且在310处,将特征组和屏蔽传递给循环神经网络108。特征组可以包括针对图2所描述的特征。在312处,循环神经网络108基于特征组和屏蔽向控制器110提供选择的动作。在314处,控制器110更新其内部状态。控制器110还可以将选择的动作的指示发送给循环神经网络108以用作特征组的一部分,或者如果选择的动作包含对实体类型的引用,则填充参考。
在322处,控制器110确定选择的动作是否包括实体引用。如果选择的动作包括实体引用,则控制器110在324处如关于图2所描述的那样填充引用并且移动到操作326。如果选择的动作不包括实体引用,则该过程从322移动到326。
在326处,确定选择的动作是否是文本动作。如果选择的动作是文本动作,则在328处,控制器110在设备102处发起文本输出的执行并返回到操作308。如果选择的动作不是文本动作,则该过程从326移动到332。
在332处,确定选择的动作是否是API调用。如果选择的动作是API调用,则在334处,控制器110执行适当的API调用。控制器110还可以将API调用的指示作为特征组的一部分发送给循环神经网络。接下来在336处,该过程返回到操作308。如果选择的动作不是API调用,则该过程移动到338。
在338处,确定选择的动作是否是“监听”动作。如果选择的动作是监听动作,则控制器110在340处开始监听用户输入。当接收到用户输入时,该过程从342返回到302。
如果选择的动作不是监听动作,则该过程移动到344并确定接收到退出动作。然后该过程在346处结束。
在替代实现中,可以定义任何数量的动作以用于在该过程中使用,并且取决于动作中的哪个动作被选择,控制器110可以适当地引导该过程。
现在参考图4,其中是图示出由根据实施例的示例系统执行的监督学习操作的流程图。可以对图1的系统104中的监督学习操作执行图4的过程。可以通过提供示例对话并训练循环神经网络108,以模仿示例对话来使用图4的过程从而改进系统104的性能。
该过程开始于402,其中创建一个或多个样本对话。因为实施例不使用基于规则的方法,所以对话可以由不是规则语言专家的人创建。例如,诸如设计者、项目经理、营销主管或开发者之类的领域专家可以创建一个或多个新的样本对话。样本对话可以包括在何处进行API调用的指示,并且可以由领域专家通过与当前机器人的交互来完整地创建。一个或多个样本对话也可以从现有的与真实用户的交互语料库中提取,或者可以通过与模拟用户的交互来进行合成。还可以通过与群组工作者交互或者利用现有对话并对它们进行加扰(scramble)来创建一个或多个样本对话。
在404处,将监督学习训练标志传递到控制器110。
在执行图4的监督学习(SL)时,以修改的循环形式在一个或样本对话上运行关于图2描述的运行时循环。在修改的循环中,动作未被采样,而是进行检查以查看样本对话中的每个操作是否被屏蔽掉。在406处,控制器确定是否屏蔽掉了一个或多个样本对话中的任何动作。在408处,如果屏蔽掉了一个或多个样本对话中的动作,则该过程移动到410。如果样本对话中的任何动作被屏蔽掉,则这意味着无法利用现有的开发者代码生成对话,即,对话与开发者代码不一致。在410处,例如向开发者报告不一致性。然后,开发者可以在412处编辑对话或控制器代码。然后,该过程可以从414返回到402以再次开始。
如果在408处没有屏蔽掉一个或多个样本对话中的动作,则该过程移动到416。当样本对话中没有动作被屏蔽掉时,这指示对话可以由现有的开发者代码产生。在这种情况下,将对话合并到训练集中。在该修改的循环中,在418处,针对开发者代码和实体提取模型所报告的特征创建日志。在418处创建的日志可以由SL训练中的监督学习算法使用。
在420处,然后使用循环神经网络108和训练对话的整个语料库来应用SL训练。输入如针对图2的运行时循环所描述,并且目标输出是出现在训练对话中的动作。
循环神经网络110可以使用梯度下降来训练模型。如果模型是在动作的平坦列表上的分布,则目标动作的单热(one-hot)矢量编码和模型输出之间的分类交叉熵(cross-entropy)可以由循环神经网络使用作为损失函数。在应用SL训练之后,在422处,然后使用新序列模型对训练语料库中的所有对话进行评分。在424处,然后执行检查以查看训练对话中的任何目标动作是否未被模型指派了最高概率。
接下来,在432处,如果训练对话中的任何动作未被新序列模型指派为最高概率,则争议(disagreement)指示新序列模型未能重构训练对话并且过程移动到428。在428处,向开发者提供任何争议的对话回合。然后,开发者可以通过在训练语料库中改变、删除或添加示例对话、修改开发者代码、修改SL学习算法或参数、或修改实体提取模型,来解决在430处的争议。然而,如果训练对话中的任何动作未被新序列模型指派最高概率,则该过程从432移动到434。在434处,可以向开发者提供新序列模型已成功重构训练对话的指示。然后可以重复SL学习周期。在任何时候,开发者都可以“部署”训练的机器人,因此可以用于在运行时循环中与用户进行交互。
除了SL训练之外,实施例的使用还允许使用强化学习(RL)训练来改进机器人的性能。现在参考图5A,其中是图示出由示例系统执行的强化学习操作的流程图。图5A示出了通过与用户的交互以及使用强化学习对模型的调整来优化图1的系统104在图2的运行时循环中的性能的操作。
图5A的过程开始于502,其中开发者定义奖励信号。奖励信号可以是实值数字,其指示系统动作在特定上下文中有多“好”。可以从使用中推断出奖励信号。例如,信号可以指示用户是否实现了期望的任务。也可以由用户在对话结束时提供对诸如“我做得好吗?”之类的问题的答案来提供奖励信号。奖励信号也可以对于对话而言是外生的(exogenous),例如,用户后来是否在对话完成之后的某个时间进行了购买。可替代地,奖励信号可以由标签机提供,标签机检查对话并对其质量进行评分。奖励信号可以指示整个对话、对话的一部分或特定的对话的属性。例如,对话结束时的奖励可以指示针对整个对话的任务完成,而在对话中间的特定回合处的奖励可以指示针对该特定操作的质量。
在504处,开发者定义针对对话的返回。针对整个对话的总体返回可以是在每个回合的奖励的折扣总和。折扣因子可以由开发者定义,或者可以被设置为标准值。例如,折扣因子可以被设置为诸如0.95的值。
在506处,系统104实施一批次的对话。该批次可以包括与一个或多个用户的一个或多个对话。用户可以是真实用户、群组工作者或用户模拟。在508处,记录从该批次中选择的奖励、特征、可用动作和动作。在510处,循环神经网络108基于在该批次期间接收的奖励进行改进。可以使用策略梯度来进行510处的改进。接下来,在512处,更新和部署循环神经网络108。在514处,确定训练是否结束。如果训练结束,则过程结束并且在516处向开发者报告执行。如果训练未完成,则过程返回到506并继续通过图5A的过程实施训练对话直到训练结束。
在替代实施例中,用于改进的一批次的对话可以包括在先前批次中收集的对话。在另外的实施例中,图5A的一些迭代可以跳过收集新对话,而是改为依赖于从过去批次收集的对话。
参考图5B,其是图示出针对在图5A的操作510处由示例系统执行的RL操作的改进操作的流程图。在520处,将被屏蔽动作的概率设置为零。在522处,将常数添加到所有概率。添加常数是为了防止被屏蔽操作的对数及其导数稍后在此过程中为零并且未被定义。在取对数之前,可以将常数添加到所有动作概率。这导致:相关于被屏蔽动作,权重具有零导数,即没有影响,并且由于附加常数的导数为零,所以其他动作也不受影响。
在524处,相对于权重确定针对每个回合的动作概率的梯度。在526处,鉴于当前模型的估计平均值、梯度和对话的返回来执行权重的调整。针对每个对话的梯度可以乘以“步进”。步进可以对应于量(R_n-B),其中R_n是针对对话n的观察到的返回,并且B是当前神经网络的估计平均返回。可以通过对当前批次中的R_n进行平均、选择常数或使用诸如加权重要性采样之类某种形式的重要性采样来计算B。当使用重要性采样时,可以使用当前批次中的对话、最近K次对话或迄今为止观察到的所有对话。
当已经调整了权重时,在图5A的操作512处将更新的循环神经网络部署为神经网络108。
可以周期性地向领域专家报告强化学习的执行。此外,可以添加约束,其确保语料库中的训练对话总是被重构。例如,如果更新的神经网络108未能重新生成训练对话,那么可以在该对话上应用SL梯度下降,直到它被重新生成为止。
现在参考图6,其中是示例计算设备600的简化框图。图1的系统104可以在诸如计算设备104之类的设备上实现。计算设备600可以包括具有处理单元606、存储器610、网络接口602和开发者接口608的服务器604。可以将存储器610实现为任何类型的计算机可读存储介质,包括非易失性和易失性存储器。存储器610被示为包括提取程序612、控制器代码614和神经网络代码616。服务器604和处理单元606可以包括一个或多个处理器或其他控制电路,或者处理器和控制电路的任何组合。服务器604和处理单元606提供对计算设备600的整体控制,以实现根据所公开实施例的实体提取器、循环神经网络和控制器的功能。计算设备600还可以被配置为提供开发者接口608,其可以例如被配置为图1的开发者接口112。
开发者接口608可以被配置为允许开发者对计算设备600的管理和训练的整体控制。开发者接口608可以是诸如web接口之类的用户接口,或者是引导开发者的任何其他应用。在一个实现中,开发者接口608允许开发者输入新对话。当输入对话时,开发者接口608可以指示在当前模型下的下一个系统响应是什么,或者可以指示按照它们的得分排序的多个系统响应的排名。模型输出和所期望的输出之间的差异帮助开发者理解当前模型的优势和劣势。开发者接口608的另一部分可以允许开发者浏览到目前为止已经输入的对话,突出显示不同于当前模型的对话。
开发者接口608还可以处理实体提取。在一个实现中,开发者接口608可以提供指向外部实体提取服务的指针。在另一实现中,例如通过使用用于输入样本对话的相同开发者接口608对实体进行标记,可以执行实体提取标记和细化。
开发者接口608还可以允许开发者将计算设备600与定制计算机代码进行接口。在一个实现中,可以将定制代码直接输入到服务器604上的开发者接口608中。在另一实现中,定制代码可以在单独的服务器上运行,例如,在由开发者托管的服务器上运行。后一种实现涉及开发者托管他们自己的web服务器,但提供附加的控制,并允许开发者避免在开发者接口上公开他们的代码的实现。在任一替代方案中,示例初始代码可以示出如何构造代码以及要实现什么功能。
开发者接口608还可以允许开发者管理RL训练。开发者可以指定奖励信号的属性,指示RL是否应该是活动的,查看随时间的执行的图表,或管理RL训练的其他功能。
另外,开发者接口608可以允许开发者设置配置选项。这些配置选项可以指定可用的API调用集。(也可以以编程方式提供或发现API调用)。配置选项还可以包括有关机器人可用的HTTP端点、认证和订阅选项、以及常规管理配置选项的详细信息,诸如哪些用户有权编辑机器人之类的。
系统600被示为包括服务器604作为单个服务器的实现,用于根据存储器610中的程序和代码执行实施例的操作。然而,服务器604和存储器610可以被理解为代表由一个或多个服务器或计算设备或储存设备提供的服务器功能或存储器,其可以共处(co-located)或在地理上是分散的,并且其可以为系统104的其他实现提供实体提取106、神经网络108和控制器110的功能。例如,可以在与实现提取器和神经网络代码的服务器分开的单独的服务器上实现控制器代码。本公开中使用的术语服务器通常被用来包括任何计算设备或通信装备。
可以在存储器上存储的处理器可执行代码或指令的一般上下文中描述本文所公开的示例实施例,存储器可以包括一个或多个计算机可读储存介质(例如,诸如存储器610之类的有形非暂时性计算机可读储存介质)。应该容易理解,术语“计算机可读储存介质”或“非暂时性计算机可读介质”包括诸如存储器610的用于存储数据、代码和程序指令的介质,并且不包括用于存储暂时传播或调制的数据通信信号的介质部分。
虽然已经公开并描述了具有在网络中操作的特定计算设备、服务器设备和/或无线设备上实现的功能的实现,但是用于设备的一个或多个所描述的功能可以在设备之间移动以及在不同于图中所示的设备上或在不同类型的装备上被实现。
虽然已经通过使用对实施例的各种组件和设备的描述的说明性示例通过参考功能块和处理器或处理单元、控制器和包括指令和代码的存储器来描述了本文所公开的功能性,但是实施例的功能和过程可以使用任何类型的处理器、电路或处理器和/或电路和代码的组合来实现和执行。这可以至少部分地包括一个或多个硬件逻辑组件。例如但不限于,可以使用的说明类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统的系统(SOC)、复杂可编程逻辑器件(CPLD)等。本公开中的术语处理器或处理单元的使用意味着包括所有这样的实现。
所公开的实施例包括一种系统,该系统包括一个或多个处理器和与一个或多个处理器通信的存储器。存储器包括代码,该代码在被执行时使得一个或多个处理器控制系统以:对从用户输入生成的输入文本执行实体提取,确定来自输入文本的标记文本,从标记文本确定对可用动作的屏蔽,向循环神经网络提供屏蔽和特征组,特征组包括从用户输入生成的输入文本以及在实体提取中提取的实体的类型的指示,特征组还包括如果系统的先前动作发生则与先前动作相关联的至少一个特征,从循环神经接收选择的动作的指示,基于选择的动作的指示更新内部状态,并发起选择的动作。选择的动作可以包括选择的第一动作,并且选择的第一动作包括应用编程接口调用,特征组可以包括第一特征组,并且代码还可以使得一个或多个处理器控制系统以向循环神经网络提供第二特征组,第二特征组包括从应用编程接口调用返回的特征,从循环神经网络接收选择的第二动作的指示,基于选择的第二动作的指示更新内部状态,并发起选择的第二动作。特征组可以包括第一特征组,并且代码还可以使得一个或多个处理器控制系统以向循环神经网络提供第二特征组,第二特征组包括选择的动作的指示。与先前动作相关联的至少一个特征可以包括与基于被提供给循环神经网络的先前特征组的动作相关联的特征。循环神经网络可以包括长短期记忆神经网络、标准循环神经网络或在给定过去观察序列的情况下能够推断状态表示的任何其他神经网络或机器学习方法。此外,代码可以通过控制一个或多个处理器来控制系统执行如下以便控制系统来发起选择的动作:确定选择的动作包括一个或多个实体引用,填充一个或多个实体引用,以及基于填充的引用来发起选择的动作。
所公开的实施例还包括方法,该方法包括对从用户输入接收的输入文本执行实体提取,从输入文本确定标记文本,从标记文本确定对可用动作的屏蔽,向循环神经网络提供屏蔽和特征组,特征组包括从用户输入接收的输入文本和在实体提取中提取的实体类型的指示,特征组还包括如果系统的先前动作发生则与先前动作相关联的至少一个特征,从循环神经网络接收选择的动作的指示,基于选择的动作的指示更新内部状态,以及发起选择的动作。选择的动作可以包括选择的第一动作,并且选择的第一动作可以包括应用编程接口调用,特征组可以包括第一特征组,并且方法还可以包括向循环神经网络提供第二特征组,第二特征组包括从应用编程接口调用返回的特征,从循环神经网络接收选择的第二动作的指示,基于选择的第二动作的指示更新内部状态,以及发起选择的第二动作。特征组可以包括第一特征组,并且方法还可以包括向循环神经网络提供第二特征组,第二特征组包括对选择的动作的指示。与先前动作相关联的至少一个特征可以包括与基于被提供给循环神经网络的先前特征组的动作相关联的特征。循环神经网络包括长期短期记忆神经网络。发起选择的动作可以包括确定选择的动作包括一个或多个实体引用,填充一个或多个实体引用,以及至少部分地基于所填充的引用来发起选择的动作。
所公开的实施例还包括一种系统,系统包括一个或多个处理器和与一个或多个处理器通信的存储器。存储器可以包括代码,该代码在被执行时使得一个或多个处理器控制系统以:接收一个或多个样本对话,确定一个或多个样本对话中的任何动作是否被屏蔽,并且响应于确定一个或多个样本对话中的任何动作都未被屏蔽,将一个或多个样本对话合并到一个训练集中,创建包括特征组和实体提取的日志,在循环神经网络中使用训练集和日志来应用训练,使用循环神经网络对一个或多个样本对话进行评分,以基于训练生成得分结果,并确定在一个或多个样本对话中的目标动作是否未在得分结果中被指派最高概率。代码还可以使得一个或多个处理器控制系统以:响应于确定一个或多个样本对话中的目标动作在得分结果中未被指派最高概率,提供一个或多个样本对话中的目标操作未被指派最高概率的对话的指示。代码还使一个或多个处理器控制系统以:响应于确定一个或多个样本对话中的每个目标动作在得分结果中被指派最高概率,提供一个或多个样本对话被成功重构的指示。代码还使得一个或多个处理器控制系统以:响应于确定一个或多个样本对话中的动作被屏蔽,而提供对在用户输出处一个或多个样本对话中的动作被屏蔽的指示。
所公开的实施例还包括一种系统,该系统包括一个或多个处理器和与一个或多个处理器通信的存储器。存储器可以包括代码,代码在被执行时使得一个或多个处理器控制系统以:接收针对奖励信号的定义和针对一个或多个对话的返回,使用循环神经网络执行一个或多个对话,创建包括针对执行的一个或多个对话的动作、奖励、特征和可用动作的日志,向神经网络通过针对执行的一个或多个对话的奖励以用于在改进神经网络中使用,并提供日志用于在用户接口处输出。奖励信号可以是实数值数字,该实数值数字指示在针对选择的上下文的一个或多个对话的多个回合中的每一个处的系统动作的质量,并且返回是在一个或多个对话的每个回合的奖励的折扣总和。一个或多个对话可以包括第一一个或多个对话,日志可以包括第一日志,并且代码还可以使得一个或多个处理器使用循环神经网络控制系统以:在提供针对执行的第一一个或多个对话的返回之后执行第二一个或多个对话,创建包括针对执行的第二一个或多个对话的动作、奖励、特征和可用动作的第二日志,并且基于第二日志向神经网络提供针对执行的第二一个或多个对话的奖励以用于在改进神经网络中使用。代码还可以使一个或多个处理器控制循环神经网络以将每个被屏蔽动作的动作概率设置为零,将常数添加到每个可用动作的动作概率和每个被屏蔽动作的动作概率,相关于动作概率的权重来确定针对每个对话回合的每个动作概率的梯度,并鉴于其梯度、一个或多个对话的返回和当前模型的估计平均值来调整每个动作概率的权重。
尽管利用结构特征和/或方法操作或动作专用的语言描述了本主题,但是应该理解,所附权利要求书中定义的主题不必局限于上述特定特征、操作或动作。而是将上面描述的具体特征、操作和动作公开作为实现权利要求的示例实施例、实现和形式,并且这些示例配置和布置可以在不脱离本公开的范围的情况下显著地改变。此外,尽管已经参考促进处理的特定元件和操作图示出了示例实施例,但是这些元件和操作可以与实现实施例的预期功能性的任何合适的设备、组件、架构或过程相结合或者被其替换。本领域技术人员可以确定许多其他改变、替换、变化、变型和修改,并且本公开旨在涵盖落入所附权利要求范围内的所有这些改变、替换,变化,变型和修改。
Claims (22)
1.一种系统,包括:
一个或多个处理器;以及
存储器,所述存储器与所述一个或多个处理器通信,所述存储器包括代码,所述代码在被执行时使得所述一个或多个处理器控制所述系统以:
从输入文本中确定标记文本,其中所述标记文本将所述输入文本的部分与在所述文本中的识别的对应实体相关联;
基于在所述输入文本中的识别的所述实体,从多个可用动作中识别可用动作;
向循环神经网络提供识别的所述可用动作和特征组,所述特征组包括如果先前动作发生则与所述先前动作相关联的至少一个特征;
从所述循环神经网络接收选择的动作的指示;
基于选择的动作的所述指示来更新内部状态;以及
发起选择的所述动作,所述动作包括以下之一:生成文本输出、调取应用编程接口API调用、接收来自用户的输入、以及退出与所述用户的交互。
2.根据权利要求1所述的系统,其中所述特征组包括所述输入文本。
3.根据权利要求1所述的系统,其中所述代码还使得所述一个或多个处理器:对所述输入文本执行实体提取,并且所述特征组包括从所述输入文本提取的实体的类型的指示。
4.根据权利要求1所述的系统,其中所述代码还使得所述一个或多个处理器:对所述输入文本执行实体提取,并且所述特征组包括所述输入文本和从所述输入文本提取的实体的类型的指示。
5.根据权利要求1所述的系统,其中选择的所述动作包括选择的第一动作,并且选择的所述第一动作包括应用编程接口调用,所述特征组包括第一特征组,并且所述代码还使得所述一个或多个处理器控制所述系统以:
向所述循环神经网络提供第二特征组,所述第二特征组包括从所述应用编程接口调用返回的特征;
从所述循环神经网络接收选择的第二动作的指示;
基于选择的所述第二动作的所述指示来更新所述内部状态;以及
发起选择的所述第二动作。
6.根据权利要求1所述的系统,其中所述特征组包括第一特征组,并且所述代码还使得所述一个或多个处理器控制所述系统以:
向所述循环神经网络提供第二特征组,所述第二特征组包括选择的所述动作的指示。
7.根据权利要求1所述的系统,其中与所述先前动作相关联的所述至少一个特征包括与基于被提供给所述循环神经网络的先前特征组的动作相关联的特征。
8.根据权利要求1所述的系统,其中所述循环神经网络包括长短期记忆神经网络。
9.根据权利要求1所述的系统,其中所述代码通过控制所述一个或多个处理器来控制所述系统执行如下,从而控制所述系统来发起选择的所述动作:
确定选择的所述动作包括一个或多个实体引用;
填充所述一个或多个实体引用;以及
基于填充的所述引用来发起选择的所述动作。
10.一种方法,包括:
从输入文本中确定标记文本,其中所述标记文本将所述输入文本的部分与在所述文本中的识别的对应实体相关联;
基于在所述输入文本中的识别的所述实体,从多个可用动作中识别可用动作;
向循环神经网络提供识别的所述可用动作和特征组,所述特征组包括如果先前动作发生则与所述先前动作相关联的至少一个特征;
从所述循环神经网络接收选择的动作的指示;
基于选择的所述动作的所述指示来更新内部状态;以及
发起选择的所述动作,所述动作包括以下之一:生成文本输出、调取应用编程接口API调用、接收来自用户的输入、以及退出与所述用户的交互。
11.根据权利要求10所述的方法,其中所述特征组包括所述输入文本。
12.根据权利要求10所述的方法,其中所述方法还包括:对所述输入文本执行实体提取,并且所述特征组包括从所述输入文本提取的实体的类型的指示。
13.根据权利要求10所述的方法,其中所述方法还包括:对所述输入文本执行实体提取,并且所述特征组包括所述输入文本和从所述输入文本提取的实体的类型的指示。
14.根据权利要求10所述的方法,其中选择的所述动作包括选择的第一动作,并且选择的所述第一动作包括应用编程接口调用,所述特征组包括第一特征组,并且所述方法还包括:
向所述循环神经网络提供第二特征组,所述第二特征组包括从所述应用编程接口调用返回的特征;
从所述循环神经网络接收选择的所述第二动作的指示;
基于选择的所述第二动作的所述指示来更新所述内部状态;以及
发起选择的所述第二动作。
15.根据权利要求10所述的方法,其中所述特征组包括第一特征组,并且所述方法还包括:
向所述循环神经网络提供第二特征组,所述第二特征组包括选择的所述动作的指示。
16.根据权利要求10所述的方法,其中与所述先前动作相关联的所述至少一个特征包括与基于被提供给所述循环神经网络的先前特征组而与动作相关联的特征。
17.根据权利要求10所述的方法,其中所述循环神经网络包括长短期记忆神经网络。
18.根据权利要求10所述的方法,其中发起选择的所述动作包括:
确定选择的所述动作包括一个或多个实体引用;
填充所述一个或多个实体引用;以及
至少部分地基于填充的所述引用来发起选择的所述动作。
19.一种系统,包括:
一个或多个处理器;以及
与所述一个或多个处理器通信的存储器,所述存储器包括代码,所述代码在被执行时使得所述一个或多个处理器控制所述系统以:
接收一个或多个样本对话;
确定多个动作中的任何动作是否不对应于所述一个或多个样本对话中的任何实体;以及响应于确定所述多个动作中的每个动作对应于所述一个或多个样本对话中的实体:
将所述一个或多个样本对话的全部合并到训练集中;
创建包括特征组和实体提取的日志;
在循环神经网络中使用所述训练集和所述日志来应用训练;
使用所述循环神经网络对所述一个或多个样本对话进行评分,以基于所述训练生成得分结果;以及
确定在所述一个或多个样本对话中的目标动作是否在所述得分结果中未被指派最高概率。
20.根据权利要求19所述的系统,其中所述代码还使得所述一个或多个处理器控制所述系统以:
响应于确定所述一个或多个样本对话中的目标动作在所述得分结果中未被指派最高概率,提供所述一个或多个样本对话中的所述目标动作未被指派最高概率的对话的指示。
21.根据权利要求19所述的系统,其中所述代码还使得所述一个或多个处理器控制所述系统以:
响应于确定所述一个或多个样本对话中的每个目标动作在所述得分结果中被指派最高概率,提供所述一个或多个样本对话被成功重构的指示。
22.根据权利要求19所述的系统,其中所述代码还使得所述一个或多个处理器控制所述系统以:
响应于确定动作不对应于所述一个或多个样本对话中的任何实体,在用户输出处提供所述动作不对应于所述一个或多个样本对话中的任何实体的指示。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/154,017 | 2016-05-13 | ||
US15/154,017 US10949748B2 (en) | 2016-05-13 | 2016-05-13 | Deep learning of bots through examples and experience |
PCT/US2017/031460 WO2017196689A1 (en) | 2016-05-13 | 2017-05-06 | Deep learning of bots through examples and experience |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109074514A CN109074514A (zh) | 2018-12-21 |
CN109074514B true CN109074514B (zh) | 2022-04-15 |
Family
ID=58709650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780028527.7A Active CN109074514B (zh) | 2016-05-13 | 2017-05-06 | 通过示例和经验的机器人的深度学习 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10949748B2 (zh) |
EP (1) | EP3455795A1 (zh) |
CN (1) | CN109074514B (zh) |
WO (1) | WO2017196689A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6461058B2 (ja) * | 2016-09-06 | 2019-01-30 | 国立大学法人京都大学 | 音声対話装置および音声対話装置を用いた自動対話方法 |
CN107885756B (zh) * | 2016-09-30 | 2020-05-08 | 华为技术有限公司 | 基于深度学习的对话方法、装置及设备 |
WO2018085760A1 (en) | 2016-11-04 | 2018-05-11 | Semantic Machines, Inc. | Data collection for a new conversational dialogue system |
WO2018148441A1 (en) | 2017-02-08 | 2018-08-16 | Semantic Machines, Inc. | Natural language content generator |
WO2018156978A1 (en) * | 2017-02-23 | 2018-08-30 | Semantic Machines, Inc. | Expandable dialogue system |
US10762892B2 (en) | 2017-02-23 | 2020-09-01 | Semantic Machines, Inc. | Rapid deployment of dialogue system |
US11069340B2 (en) * | 2017-02-23 | 2021-07-20 | Microsoft Technology Licensing, Llc | Flexible and expandable dialogue system |
US11763143B2 (en) | 2017-04-19 | 2023-09-19 | AIBrain Corporation | Adding deep learning based AI control |
US10802453B2 (en) * | 2017-06-02 | 2020-10-13 | Bank Of America Corporation | Robotics process automation macro bot |
US11132499B2 (en) | 2017-08-28 | 2021-09-28 | Microsoft Technology Licensing, Llc | Robust expandable dialogue system |
US10424302B2 (en) * | 2017-10-12 | 2019-09-24 | Google Llc | Turn-based reinforcement learning for dialog management |
WO2019084890A1 (en) * | 2017-11-03 | 2019-05-09 | Tencent Technology (Shenzhen) Company Limited | Method and system for processing audio communications over a network |
US11568236B2 (en) | 2018-01-25 | 2023-01-31 | The Research Foundation For The State University Of New York | Framework and methods of diverse exploration for fast and safe policy improvement |
US20190340527A1 (en) * | 2018-05-07 | 2019-11-07 | Microsoft Technology Licensing, Llc | Graphical user interface features for updating a conversational bot |
CN108763565B (zh) * | 2018-06-04 | 2022-06-14 | 广东京信软件科技有限公司 | 一种基于深度学习的数据自动关联匹配的构建方法 |
US11257254B2 (en) * | 2018-07-20 | 2022-02-22 | Google Llc | Data compression using conditional entropy models |
CN109068350B (zh) * | 2018-08-15 | 2021-09-28 | 西安电子科技大学 | 一种无线异构网络的终端自主选网系统及方法 |
US10832659B2 (en) | 2018-08-31 | 2020-11-10 | International Business Machines Corporation | Intent authoring using weak supervision and co-training for automated response systems |
US20200081939A1 (en) * | 2018-09-11 | 2020-03-12 | Hcl Technologies Limited | System for optimizing detection of intent[s] by automated conversational bot[s] for providing human like responses |
US10831799B2 (en) | 2018-12-05 | 2020-11-10 | International Business Machines Corporation | External action execution with conversational agent |
US11521114B2 (en) | 2019-04-18 | 2022-12-06 | Microsoft Technology Licensing, Llc | Visualization of training dialogs for a conversational bot |
US11144727B2 (en) | 2019-05-20 | 2021-10-12 | International Business Machines Corporation | Evaluation framework for intent authoring processes |
US11106875B2 (en) | 2019-05-20 | 2021-08-31 | International Business Machines Corporation | Evaluation framework for intent authoring processes |
KR20210012730A (ko) | 2019-07-26 | 2021-02-03 | 삼성전자주식회사 | 인공지능 모델의 학습 방법 및 전자 장치 |
US11380306B2 (en) | 2019-10-31 | 2022-07-05 | International Business Machines Corporation | Iterative intent building utilizing dynamic scheduling of batch utterance expansion methods |
US11429869B2 (en) | 2019-11-21 | 2022-08-30 | International Business Machines Corporation | Artificially intelligent interaction agent |
US11481267B2 (en) | 2020-05-28 | 2022-10-25 | International Business Machines Corporation | Reinforcement learning approach to root cause analysis |
US11804211B2 (en) * | 2020-12-04 | 2023-10-31 | Google Llc | Example-based voice bot development techniques |
US20220180858A1 (en) * | 2020-12-04 | 2022-06-09 | Google Llc | Example-based voice bot development techniques |
US11735165B2 (en) * | 2020-12-11 | 2023-08-22 | Beijing Didi Infinity Technology And Development Co., Ltd. | Task-oriented dialog system and method through feedback |
US11902222B2 (en) | 2021-02-08 | 2024-02-13 | Google Llc | Updating trained voice bot(s) utilizing example-based voice bot development techniques |
US11977779B2 (en) | 2022-05-11 | 2024-05-07 | Bank Of America Corporation | Smart queue for distributing user requests to automated response generating systems |
US11889153B2 (en) | 2022-05-11 | 2024-01-30 | Bank Of America Corporation | System and method for integration of automatic response generating systems with non-API applications |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101010934A (zh) * | 2004-09-10 | 2007-08-01 | 微软公司 | 机器学习 |
CN101395600A (zh) * | 2006-02-28 | 2009-03-25 | 微软公司 | 自适应语义平台体系结构 |
CN105354375A (zh) * | 2015-10-27 | 2016-02-24 | 利诚服装集团股份有限公司 | 面向智能制衣的专家知识库的设计方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4686905B2 (ja) * | 2000-07-21 | 2011-05-25 | パナソニック株式会社 | 対話制御方法及びその装置 |
US8015143B2 (en) | 2002-05-22 | 2011-09-06 | Estes Timothy W | Knowledge discovery agent system and method |
US20140279050A1 (en) | 2008-05-21 | 2014-09-18 | The Delfin Project, Inc. | Dynamic chatbot |
US8630961B2 (en) | 2009-01-08 | 2014-01-14 | Mycybertwin Group Pty Ltd | Chatbots |
US8793119B2 (en) | 2009-07-13 | 2014-07-29 | At&T Intellectual Property I, L.P. | System and method for generating manually designed and automatically optimized spoken dialog systems |
CA2782414C (en) * | 2009-12-14 | 2021-08-03 | Ab Initio Technology Llc | Specifying user interface elements |
CA2747153A1 (en) | 2011-07-19 | 2013-01-19 | Suleman Kaheer | Natural language processing dialog system for obtaining goods, services or information |
US9558275B2 (en) * | 2012-12-13 | 2017-01-31 | Microsoft Technology Licensing, Llc | Action broker |
WO2016040769A1 (en) | 2014-09-14 | 2016-03-17 | Speaktoit, Inc. | Platform for creating customizable dialog system engines |
CN105068661B (zh) * | 2015-09-07 | 2018-09-07 | 百度在线网络技术(北京)有限公司 | 基于人工智能的人机交互方法和系统 |
CN105224502A (zh) * | 2015-09-28 | 2016-01-06 | 浪潮(北京)电子信息产业有限公司 | 一种基于gpu的深度学习方法及系统 |
EP3384435B1 (en) * | 2015-12-01 | 2023-07-19 | Deepmind Technologies Limited | Selecting action slates using reinforcement learning |
-
2016
- 2016-05-13 US US15/154,017 patent/US10949748B2/en active Active
-
2017
- 2017-05-06 EP EP17723910.0A patent/EP3455795A1/en active Pending
- 2017-05-06 CN CN201780028527.7A patent/CN109074514B/zh active Active
- 2017-05-06 WO PCT/US2017/031460 patent/WO2017196689A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101010934A (zh) * | 2004-09-10 | 2007-08-01 | 微软公司 | 机器学习 |
CN101395600A (zh) * | 2006-02-28 | 2009-03-25 | 微软公司 | 自适应语义平台体系结构 |
CN105354375A (zh) * | 2015-10-27 | 2016-02-24 | 利诚服装集团股份有限公司 | 面向智能制衣的专家知识库的设计方法 |
Non-Patent Citations (2)
Title |
---|
基于自学习的多Agent辩论谈判策略研究;郝博;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130115;第I140-92页 * |
面向服务机器人的口语对话系统和语言模型技术研究;刘章;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150115;第I140-381页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109074514A (zh) | 2018-12-21 |
US10949748B2 (en) | 2021-03-16 |
WO2017196689A1 (en) | 2017-11-16 |
US20170330077A1 (en) | 2017-11-16 |
EP3455795A1 (en) | 2019-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109074514B (zh) | 通过示例和经验的机器人的深度学习 | |
US11775572B2 (en) | Directed acyclic graph based framework for training models | |
US11023787B2 (en) | Method, system and program for generating decision trees for chatbots dialog flow capabilities | |
CN116724305B (zh) | 上下文标签与命名实体识别模型的集成 | |
JP2023520420A (ja) | チャットボットのために不均衡なトレーニングデータを取り扱うためのバッチング技術 | |
US9495331B2 (en) | Advanced system and method for automated-context-aware-dialog with human users | |
JP2023520416A (ja) | ドメイン外(ood)検出のための改良された技術 | |
CN114424185A (zh) | 用于自然语言处理的停用词数据扩充 | |
CN115398419A (zh) | 用于基于目标的超参数调优的方法和系统 | |
US11423235B2 (en) | Cognitive orchestration of multi-task dialogue system | |
US20210158203A1 (en) | Reinforcement learning for chatbots | |
Trivedi et al. | Chatbot generation and integration: A review | |
CN116547676A (zh) | 用于自然语言处理的增强型logit | |
JP2024503517A (ja) | 自然言語処理のための多因子モデリング | |
JP2023538923A (ja) | テキスト分類についての説明を与えるための技術 | |
CN116583837A (zh) | 用于自然语言处理的基于距离的logit值 | |
US20230098783A1 (en) | Framework for focused training of language models and techniques for end-to-end hypertuning of the framework | |
CN116235164A (zh) | 聊天机器人的范围外自动转变 | |
CN115914148A (zh) | 具有两侧建模的对话智能体 | |
CN116635862A (zh) | 用于自然语言处理的域外数据扩充 | |
CN116490879A (zh) | 用于神经网络中过度预测的方法和系统 | |
KR20240089615A (ko) | 사전-트레이닝된 언어 모델의 단일 트랜스포머 계층으로부터의 다중-헤드 네트워크의 미세-튜닝 | |
CN118265981A (zh) | 用于为预训练的语言模型处置长文本的系统和技术 | |
Le et al. | Generating predictable and adaptive dialog policies in single-and multi-domain goal-oriented dialog systems | |
KR20240091214A (ko) | 데이터로부터의 질문 및 답변 쌍들의 추출을 위한 규칙-기반 기술들 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |