CN116724306A - 用于自然语言处理器的多特征平衡 - Google Patents

用于自然语言处理器的多特征平衡 Download PDF

Info

Publication number
CN116724306A
CN116724306A CN202280011027.3A CN202280011027A CN116724306A CN 116724306 A CN116724306 A CN 116724306A CN 202280011027 A CN202280011027 A CN 202280011027A CN 116724306 A CN116724306 A CN 116724306A
Authority
CN
China
Prior art keywords
natural language
features
dataset
contextual
machine learning
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
Application number
CN202280011027.3A
Other languages
English (en)
Inventor
T·L·杜翁
V·比什诺伊
M·E·约翰逊
E·L·贾拉勒丁
T·Q·范
C·D·V·黄
P·扎雷穆迪
S·P·K·加德
A·D·卡努加
李子恺
Y·吴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN116724306A publication Critical patent/CN116724306A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/263Language identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了用于***的技术,该技术包括用于自然语言处理器的多特征平衡的技术。在实施例中,一种方法包括:接收要由机器学习模型处理的自然语言查询,该机器学习模型利用自然语言短语数据集来处理自然语言查询;基于机器学习模型和自然语言查询来确定特征丢弃值;并基于自然语言查询生成可以被输入到机器学习模型的一个或多个上下文特征和一个或多个表达特征;基于特征丢弃值修改一个或多个上下文特征和一个或多个表达特征中的至少一者,以生成用于机器学习模型的一组输入特征;以及处理该组输入特征,以使得生成用于与自然语言查询相对应的输出数据集。

Description

用于自然语言处理器的多特征平衡
优先权要求
本申请是2021年1月20日提交的名称为“MULTI-FACTOR BALANCING FOR TRAININGNATURAL LANGUAGE PROCESSORS[用于训练自然语言处理器的多因素平衡]”的美国临时专利申请号63/139,695的非临时申请并要求其权益和优先权,该美国临时专利申请出于所有目的通过引用整体并入本文。
技术领域
本公开总体上涉及聊天机器人***,并且更具体地涉及用于在自然语言处理***中训练和实施聊天机器人***的多特征平衡技术。
背景技术
即时消息传递功能和自动聊天平台是对现代客户服务问题的高效解决方案。组织可以利用这些做法为其客户提供及时且回应的服务,而无需为单个用户的询问投入宝贵的人力资本。这些聊天机器人被配置成处理以模拟人类语音模式的自然语言格式编写的查询,有时被称为话语。与人类之间的口头语音模式不同,写作格式的自然语言短语通常不会捕捉到短语固有的重要因素,如语音节奏、上下文、重音和其他因素。因此,计算机***可能难以处理书面的自然语言查询并确定对其的适当回应。这对于被配置成生成对自然语言查询的回应的聊天机器人***来说尤其成问题。当聊天机器人对来自人类的自然语言查询没有作出适当的回应时,与聊天机器人交互的人类可能会变得不耐烦、愤怒或停止使用聊天机器人***。
客户询问的上下文、节奏、拼写、语气和/或布置的微小差异可能会导致为特定任务选择错误的聊天机器人/技能。当组织每天执行数百或数千个自动询问回应时,在选择聊天机器人时的错误可能会迅速复合。选择聊天机器人的简单方法(比如,将单词一对一映射到特定聊天机器人)可能无法考虑适当的上下文分析,也不考虑会话的复杂性。为了帮助选择技能,聊天机器人可以采用机器学习模型来处理话语并输出最有可能的技能来回应话语。可以基于对提供给组织的询问进行上下文和词典分析来选择能帮助回答询问的技能。为了训练这些模型来处理广泛的话语,使用话语的训练数据集对机器学习模型进行了彻底的训练,这使得模型能够细化其操作参数并且更好地“识别”话语中的语音模式。
使用机器学习模型可能遇到的每个自然语言短语来训练该模型是极其困难的。这样做需要大量的训练集,并且需要大量的训练时间。另外地,这种训练有“过度拟合”模型的风险,在这种情况下,自然语言处理模型会将自然语言短语与训练数据中确切的基本事实或“黄金”标签相关联,这意味着该模型将难以处理该模型未训练过的短语。为了解决这些问题,自然语言处理处理器可以利用对应于标签类别的自然语言短语数据集,称为“地名词典(gazetteer)”。自然语言模型在处理自然语言短语时可以识别也被包含在地名词典中的某些术语。当处理自然语言短语时,该模型可以对短语在地名词典中的存在以及与地名词典相关联的对应类别标签进行权衡。例如,话语“I would like to see amap ofColerain,Ohio(我想看看俄亥俄州科尔雷恩的地图)”可以被输入到自然语言处理机器学习模型,以预测用于处理该话语的聊天机器人技能。用于训练模型的训练数据集不太可能包含术语“Colerain,Ohio”,但是具有相关联的类别标签“Location(位置)”的对应地名词典可能包含该术语。因此,当处理话语时,模型可以权衡“Location”地名词典包含相同术语的事实以确定与该话语相关联的类别标签。
地名词典的使用向自然语言处理器引入了表达特征,这有助于预测输入自然语言查询的相关联标签。然而,地名词典的表达自然性可能导致某些自然语言短语对基于地名词典的表达特征与由自然语言处理器确定的上下文特征进行不适当的权衡。例如,话语“please mark these papers(请标记这些论文)”包含单词“mark(标记)”,其可能对应于具有类别标签“Names(名字)”的常见第一名字的地名词典列表,因为“Mark”是常见的第一名字。然而,术语“mark”在给定话语中用作动词。尽管该话语与姓名无关,但是模型对地名词典生成的表达特征的依赖将导致模型对与话语相关联的“Name”标签作出不正确的预测。因此,地名词典的缺乏需要自然语言处理模型来处理可能不在用于训练模型的训练数据中的短语,并且地名词典的引入可能会导致模型过度依赖地名词典的表达特征,损失了由模型生成的上下文特征。
发明内容
公开了用于在自然语言处理中训练聊天机器人***的针对多因素平衡的技术。
在特定示例实施例中,一种计算机实施的方法包括由计算设备接收与自然语言短语数据集与用于训练机器学习模型的训练数据集之间的期望的重叠相对应的第一覆盖值的指示;由所述计算设备确定与所述自然语言短语数据集与所述训练数据集之间的测得的重叠相对应的第二覆盖值;由所述计算设备基于所述第一覆盖值与所述第二覆盖值之间的比较来确定覆盖delta值;由所述计算设备并基于所述覆盖delta值来修改所述自然语言短语数据集和所述训练数据集中的至少一者;以及由所述计算设备利用包括修改的自然语言短语数据集的机器学习模型来处理包括一组输入特征的输入数据集,其中,所述机器学习模型至少部分地基于自然语言短语数据集来处理所述输入数据集以生成输出数据集。
在一些示例中,所述方法进一步包括通过确定所述自然语言短语数据集中的也存在于所述训练数据中的自然语言短语的数量来确定所述第二覆盖值,其中,也在所述数据集中的所述自然语言短语中的每一个对应于与同所述自然语言短语数据集相关联的类别相匹配的类别。在一些另外的示例中,修改所述自然语言短语数据集和所述训练数据集中的至少一者包括通过更新所述自然语言短语数据集以包括与来自所述训练数据的类别相关联的一个或多个自然语言短语来修改所述自然语言短语数据集,其中,更新的自然语言短语数据集所包括的也存在于所述训练数据中的自然语言短语的数量的比例大于或等于所述第一覆盖值。在其他另外的示例中,修改所述自然语言短语数据集和所述训练数据集中的至少一者包括修改所述训练数据集,更新所述训练数据集以包括来自所述自然语言短语数据集的一个或多个自然语言短语并将所述一个或多个自然语言短语与所述类别相关联,其中,所述自然语言短语数据集所包括的也存在于更新的训练数据中的自然语言短语的数量的比例大于或等于所述第一覆盖值。
在一些另外的示例中,更新所述训练数据集以包括来自所述自然语言短语数据集的所述一个或多个自然语言短语包括由所述一个或多个自然语言短语生成一个或多个训练对,所述一个或多个训练对包括由所述自然语言短语生成的自然语言查询和与所述自然语言短语数据集的类别相匹配的黄金标签类别(gold label category)。在一些另外的示例中,处理所述输入数据集包括由所述机器学习模型处理所述更新的训练数据集以再训练所述机器学习模型。
在一些示例中,处理所述输入数据集包括由所述机器学习模型处理聊天机器人***接收的自然语言查询,其中,所述机器学习模型被配置成生成输出数据集,所述输出数据集包括与所述聊天机器人相关联的技能和意图中的至少一者,以用于回应所述自然语言查询。在一些示例中,所述机器学习模型是卷积神经网络机器学习模型,并且该组输入特征与所述卷积神经网络的输入节点相对应。
在另一特定示例实施例中,一种计算机实施的方法包括由计算设备接收要由机器学习模型处理的自然语言查询,所述机器学习模型利用自然语言短语数据集来处理自然语言查询;由所述计算设备并基于所述机器学习模型和所述自然语言查询来确定特征丢弃值;由所述计算设备并基于所述自然语言查询生成可以被输入到所述机器学习模型的一个或多个上下文特征和一个或多个表达特征;由所述计算设备基于所述特征丢弃值修改所述一个或多个上下文特征和所述一个或多个表达特征中的至少一者,以生成用于所述机器学习模型的一组输入特征;以及由所述计算设备利用所述机器学习模型来处理该组输入特征,以使得生成用于与所述自然语言查询相对应的输出数据集。
在一些示例中,所述特征丢弃值是与所述一个或多个上下文特征的上下文特征百分比相对应的第一上下文特征丢弃值,所述方法进一步包括通过基于所述第一上下文特征丢弃值从所述一个或多个上下文特征中移除某一百分比的上下文特征来修改所述一个或多个上下文特征,该组输入特征是由修改的一个或多个上下文特征和所述一个或多个表达特征生成的。在一些另外的示例中,所述特征丢弃值进一步包括第二上下文特征丢弃值,所述第二上下文特征丢弃值对应于所述一个或多个上下文特征中与所述自然语言短语数据集中的自然语言短语相对应的上下文特征百分比,所述方法进一步包括确定上下文特征子集,所述上下文特征子集中的每个上下文特征与所述自然语言短语数据集中的自然语言短语相对应,所述方法进一步包括通过从所述上下文特征子集中移除与所述第二上下文特征丢弃值相对应的某一百分比的上下文特征来修改所述上下文特征子集,并且修改所述一个或多个上下文特征包括基于所述第一上下文特征丢弃值从包括修改的上下文特征子集的所述一个或多个上下文特征中移除某一百分比的上下文特征。
在一些示例中,所述特征丢弃值是与所述一个或多个表达特征的表达特征百分比相对应的第一表达特征丢弃值,所述方法进一步包括通过基于所述第一表达特征丢弃值从所述一个或多个表达特征中移除某一百分比的表达特征来修改所述一个或多个表达特征,并且该组输入特征是由所述一个或多个上下文特征和修改的一个或多个表达特征生成的。
在一些示例中,所述方法进一步包括:将所述自然语言短语数据集与用于训练所述机器学习模型的训练数据集进行比较;以及基于所述比较来确定噪声值,所述噪声值对应于所述自然语言短语数据集和所述训练数据集中与相同特定类别相关联的自然语言短语的数量以及所述自然语言短语数据集和所述训练数据集中与不同类别相关联的自然语言短语的数量,其中,所述特征丢弃值是至少部分地基于所述噪声值确定的。在一些示例中,所述机器学习模型是卷积神经网络机器学习模型,并且该组输入特征与所述卷积神经网络的输入节点相对应。
本公开的一些实施例包括一种***,所述***包括一个或多个数据处理器。在一些实施例中,所述***包括包含指令的非暂态计算机可读存储介质,所述指令当在所述一个或多个数据处理器上执行时使所述一个或多个数据处理器执行本文所公开的一种或多种方法的部分或全部和/或一个或多个过程的部分或全部。本公开的一些实施例包括一种有形地体现在非暂态机器可读存储介质中的计算机程序产品,所述计算机程序产品包括被配置为使一个或多个数据处理器执行本文所公开的一种或多种方法的部分或全部和/或一个或多个过程的部分或全部的指令。
可以用多种方式并且在多种上下文中实施上文和下文所描述的技术。如下文更详细地描述的,参考以下附图提供了几种示例实施方式和上下文。然而,以下实施方式和上下文仅是许多实施方式和上下文中的一些。
附图说明
图1是并入了示例性实施例的分布式环境的简化框图。
图2是根据某些实施例的父机器人(MB)***的简化框图。
图3是根据某些实施例的技能机器人***的简化框图。
图4是实施语言处理***的计算***的简化框图。
图5图示了根据各种实施例的用于管理自然语言短语数据集和机器学习模型的训练数据集的过程流程。
图6图示了根据各种实施例的自然语言短语的示例数据集和被用作用于自然语言处理的多因素模型的一部分的训练数据集。
图7图示了根据各种实施例的用于执行作为自然语言处理器的多特征平衡的一部分的特征丢弃的过程流程。
图8是根据某些实施例的利用特征丢弃的技能分类器人工神经网络机器学习模型的简化框图。
图9图示了根据各种实施例的用于执行作为自然语言处理器的多特征平衡的一部分的基于噪声的特征丢弃的过程流程。
图10描绘了用于实施各种实施例的分布式***的简化图。
图11是根据各种实施例的***环境的一个或多个部件的简化框图,通过该***环境,由实施例***的一个或多个部件提供的服务可以作为云服务被提供。
图12图示了可以被用于实施各种实施例的示例计算机***。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述不旨在是限制性的。词语“示例性”在本文中用来意指“用作示例、实例或说明”。在本文中被描述为“示例性”的任何实施例或设计不必被解释为比其他实施例或设计更优选或有利。
如上所述,聊天机器人是与人类客户端交互并以自然语言格式与他们交流的有用工具。聊天机器人运营商试图细化和改进聊天机器人,使其以尽可能像另一个人的方式进行交互。与配置良好的聊天机器人交互的人类将有更愉快的与聊天机器人交互的体验,并将更快地回答他们的查询。因此,聊天机器人快速且准确地处理和回应人类生成的自然语言语音是非常有利的。聊天机器人将处理包括来自人类的自然语言查询在内的输入话语,并作为回应生成输出,例如,选择用于回应自然语言查询的技能。例如,该技能是聊天机器人的子例程,被专门训练或配置成回应人类或代表人类完成某些任务。在一些实例中,聊天机器人处理包括话语的自然语言查询,以输出话语的预测标签,该预测标签对应于与话语相关联的预测类别,并且可以用于选择对应的技能来回应话语。技能子例程然后将执行一些响应性动作来解决该查询。
自然语言处理固有地涉及许多复杂性,其使得从自然语言查询中预测对应的标签难以执行。例如,基于计算机的自然语言处理器不能容易地对句子的上下文或“词典”特征进行语法分析。短语“I will subscribe to this service when pigs fly(当猪飞起来时,我将订阅此服务)”是简单的讽刺短语,大多数人类都会识别,但很多自然语言处理器不会。简单的自然语言处理器可能仅识别部分短语“I will subscribe to this service(我将订阅此服务)”,而忽略该短语的其余部分,从而预测客户端(例如,通过自动虚拟助理程序使用聊天机器人服务的人类)想要订阅服务,而事实恰恰相反。聊天机器人利用经训练的机器学习模型来解释自然语言语音中的上下文和其他复杂的基于语言的特征。这些机器学习模型是使用一组训练数据进行训练的,并且与多个“黄金标签”或“基本事实标签”相关联,这些标签表示在给定某个自然语言查询作为输入的情况下机器学习模型应该预测的正确标签。在训练期间调整机器学习模型的参数,以在给定至少有些相似的自然语言查询作为输入的情况下更准确地预测标签。例如,经训练的机器学习模型也可以识别短语“I willsubscribe to this service”,但也会识别短语“when pigs fly(当猪飞起来时)”,确定该短语对应于某个条件,确定该条件几乎肯定是假的,并且预测不会导致聊天机器人自动为用户订阅该服务的标签。
在一些情况下,机器学习模型将一个或多个特征作为输入。特征是表示自然语言短语的各方面的数据,并允许数据由模型处理,该模型将最终输出预测(如自然语言短语的预测标签)。例如,自然语言短语被预处理以生成与人工神经网络(ANN)机器学习模型的输入节点相对应的多个特征。ANN可以通过一系列隐藏层来处理特征输入,直到生成输出预测。更大数量的输入节点以及因此更大数量的特征允许机器学习模型处理自然语言短语的多个方面,诸如上下文、节奏、语气、语义信息等。
由机器学习模型作出的预测的准确度在很大程度上基于用于训练模型的训练数据的质量和数量。然而,在自然语言中广泛的单词上训练机器学习模型是非常困难的,因为自然语言中存在的单词数量非常大。尝试为每个可能的自然语言单词创建训练数据是非常低效的,并且几乎不可能为每个单词的每个可能的节奏、上下文等创建训练数据。相反,机器学习模型可以用使用被预先生成的自然语言短语列表(本文称为“地名词典”)对表达特征的创建来补充对上下文特征的创建。例如,机器学习模型可以利用包括已知英文名称的广泛列表的地名词典,而不是生成具有每个可能的英文专有名词名称的训练数据集。接收到的自然语言短语可以被进一步预处理以生成一组表达特征,该组表达特征也可以被输入到机器学习模型以生成输出。例如,给定接收自然语言查询“I would like to visitColerain,Ohio(我想访问俄亥俄州科尔雷恩)”,机器学习模型被训练成识别位置“Colerain,Ohio(俄亥俄州科尔雷恩)”是极不可能的。然而,与已知为“Towns(城镇)”的术语相关联的地名词典可能包含术语“Colerain,Ohio”,并且将对模型进行权衡以有利于输出“Town”标签的一组表达特征被包括作为机器学习模型的输入。
自然语言短语的地名词典和其他表达列表具有缺点,这些缺点可能对机器学习模型造成比没有它们的情况下更大的伤害。例如,同音词和短语给自然语言处理器带来了很大的困难。短语“Mark is my friend(马克是我的朋友)”将单词“Mark”用作专有名词,但是短语“Mark these papers and return them to me(标记这些文件并把它们还给我)”将单词“Mark”用作动词。客户询问的上下文、节奏、拼写、语气和/或环境的微小差异可能会导致为特定任务选择错误的聊天机器人/技能。利用对应于“English Names(英文名称)”的专有名词列表的地名词典将导致生成将权衡以有利于将自然语言短语分类为“Name(名称)”的表达特征,而事实上,正确的标签可能是“Test Grading(测试分级)”。
为了克服这些和其他挑战,本文描述了用于自然语言处理以训练和部署聊天机器人/技能来处理和回应基于自然语言的查询的多特征平衡技术。如本文所述,多特征平衡是指使用包括上下文特征的上下文信息和包括表达特征的表达信息来生成更准确和高效的预测并改进机器学***衡由经训练的机器学习模型生成的上下文特征与由地名词典和其他表达列表生成的表达特征的使用的改进。所描述的技术包括用于改变地名词典和训练数据的组成的过程,以改进自然语言处理和对由此生成的特征的直接操纵,以便于通过机器学习模型进行更准确和高效的预测。
例如,如上所述,仅依赖于上下文、词典特征来处理自然语言短语的机器学***衡对上下文特征和表达特征的利用以改进模型预测以及对训练数据和地名词典组成的直接操纵允许适当地平衡这两种类型的特征(作为用于自然语言处理的多特征平衡过程的一部分)从而提高聊天机器人的准确度和与客户端的交互的机器学习技术。
示例聊天机器人***
机器人(也称为技能、聊天机器人、交谈机器人或谈话机器人)是可以执行与最终用户的会话的计算机程序。机器人通常可以通过使用自然语言消息的消息传递应用程序回应自然语言消息(例如,问题或评论)。企业可以使用一个或多个机器人***通过消息传递应用程序与最终用户交流。消息传递应用程序(其可以被称为通道)可以是最终用户已经安装并且熟悉的最终用户优选的消息传递应用程序。因此,为了与机器人***聊天,最终用户不需要下载并安装新的应用程序。消息传递应用程序可以包括例如过顶(OTT)消息传递通道(如Facebook Messenger、Facebook WhatsApp、微信、Line、Kik、Telegram、Talk、Skype、Slack或SMS)、虚拟私人助理(如Amazon Dot、Echo或Show、Google Home、Apple HomePod等)、本地或混合扩展的移动和web应用程序扩展/具有聊天功能的响应式移动应用程序或web应用程序、或基于声音的输入(如具有使用Siri、微软小娜(Cortana)、谷歌之音(GoogleVoice)或用于交互的其他语音输入的设备或应用程序)。
在一些示例中,机器人***可以与统一资源标识符(URI)相关联。URI可以使用一串字符标识机器人***。URI可以用作一个或多个消息传递应用程序***的webhook(网络挂接)。URI可以包括例如统一资源定位符(URL)或统一资源名称(URN)。机器人***可以被设计成从消息传递应用程序***接收消息(例如,超文本传送协议(HTTP)post调用消息)。HTTP post调用消息可以涉及来自消息传递应用程序***的URI。在一些实施例中,消息可以不同于HTTP post调用消息。例如,机器人***可以从短消息服务(SMS)接收消息。虽然本文的讨论可以将机器人***接收到的通信称作消息,但是应理解,消息可以是HTTP post调用消息、SMS消息或两个***之间的任何其他类型的通信。
最终用户可以通过会话式交互(有时称为会话式用户接口(UI))与机器人***交互,正如人之间的交互那样。在一些情况下,交互可以包括最终用户对机器人说“Hello(你好)”以及机器人用“Hi(嗨)”回应并询问最终用户机器人可以如何提供帮助。在一些情况下,交互还可以是与例如银行业务机器人的交易式交互,如将钱从一个账户转移到另一个账户;与例如HR机器人的信息式交互,如查询假期结余;或与例如零售机器人的交互,如讨论退回已购商品或寻求技术支持。
在一些实施例中,机器人***可以在没有与机器人***的管理员或开发人员交互的情况下智能地处置最终用户交互。例如,最终用户可以向机器人***发送一个或多个消息以便实现期望的目标。消息可以包括某种内容,如文本、表情符号、音频、图像、视频或传达消息的其他方法。在一些实施例中,机器人***可以将内容转换成标准化形式(例如,利用适当的参数针对企业服务的表述性状态转移(REST)调用)并且生成自然语言回应。机器人***还可以提示最终用户输入另外的输入参数或请求其他另外的信息。在一些实施例中,机器人***还可以发起与最终用户的交流,而不是被动地回应最终用户话语。本文所描述的是用于识别机器人***的显式调用并确定被调用的机器人***的输入的各种技术。在某些实施例中,显式调用分析是由父机器人基于检测到话语中的调用名称而执行的。响应于检测到调用名称,话语可以被细化以供输入到与调用名称相关联的技能机器人。
与机器人的会话可以遵循包括多个状态的特定会话流。该流可以基于输入来定义接下来会发生什么。在一些实施例中,可以使用包括用户定义的状态(例如,终端用户意图)和在状态中或状态之间要采取的动作的状态机来实施机器人***。会话可以基于最终用户输入来采用不同的路径,这可能会影响机器人针对该流作出的决定。例如,在每个状态下,基于最终用户输入或话语,机器人可以确定最终用户的意图以便确定要采取的下一个适当动作。如本文所使用的且在话语的上下文中,术语“意图”是指提供话语的用户的意图。例如,用户可以打算让机器人参与用于订购披萨的会话,使得用户的意图可以通过话语“Order pizza(订购披萨)”来表示。用户意图可以涉及用户希望聊天机器人代表用户执行的特定任务。因此,话语可以表达为反映用户的意图的问题、命令、请求等。意图可以包括最终用户想要完成的目标。
在聊天机器人的配置的上下文中,本文所使用的术语“意图”是指用于将用户的话语映射到聊天机器人可以执行的特定任务/动作或特定种类的任务/动作的配置信息。为了区分话语的意图(即,用户意图)与聊天机器人的意图,本文中有时将后者称为“机器人意图”。机器人意图可以包括与意图相关联的一组一个或多个话语。例如,订购披萨的意图可以具有表达下订单购买披萨的期望的话语的各种排列。这些相关联的话语可以用于训练聊天机器人的意图分类器以使意图分类器能够随后确定来自用户的输入话语是否与订购披萨意图相匹配。机器人意图可以与用于启动与用户在某个状态中的会话的一个或多个对话流相关联。例如,针对订购披萨意图的第一消息可以是问题“What kind of pizza wouldyou like?(你想要哪种披萨?)”。除了相关联的话语之外,机器人意图可以进一步包括与意图有关的命名实体。例如,订购披萨意图可以包括用于执行订购披萨的任务的变量或参数,例如馅料1、馅料2、披萨类型、披萨大小、披萨数量等。实体的值通常是通过与用户交谈获得的。
图1是并入了根据某些实施例的聊天机器人***的环境100的简化框图。环境100包括数字助理构建器平台(DABP)102,该DABP使得DABP 102的用户能够创建并部署数字助理或聊天机器人***。DABP 102可以用于创建一个或多个数字助理(或DA)或聊天机器人***。例如,如图1所示,表示特定企业的用户104可以使用DABP 102来创建并部署用于特定企业的用户的数字助理106。例如,DABP 102可以被银行用来创建供银行的客户使用的一个或多个数字助理。多个企业可以使用同一个DABP 102平台来创建数字助理。作为另一示例,餐馆(例如,披萨店)的所有者可以使用DABP 102来创建并部署使餐馆的客户能够订购食物(例如,订购披萨)的数字助理。
出于本公开的目的,“数字助理”是通过自然语言会话帮助数字助理的用户完成各种任务的实体。可以仅使用软件(例如,数字助理是使用可由一个或多个处理器执行的程序、代码或指令实施的数字实体)、使用硬件、或使用硬件和软件的组合来实施数字助理。数字助理可以在如计算机、移动电话、手表、器具、车辆等各种物理***或设备中体现或实施。数字助理有时也称为聊天机器人***。因此,出于本公开的目的,术语“数字助理”和“聊天机器人***”是可互换的。
数字助理(如使用DABP 102构建的数字助理106)可以用于经由数字助理与其用户108之间基于自然语言的会话来执行各种任务。作为会话的一部分,用户可以向数字助理106提供一个或多个用户输入110并从数字助理106获得返回的回应112。会话可以包括输入110和回应112中的一个或多个。经由这些会话,用户可以请求由数字助理执行一个或多个任务,并且作为回应,数字助理被配置为执行用户请求的任务并以适当的回应来回应用户。
用户输入110通常呈自然语言的形式并且被称为话语。用户话语110可以是文本形式,如当用户键入句子、问题、文本片段或甚至单个单词并将文本作为输入提供给数字助理106时。在一些实施例中,用户话语110可以是音频输入或语音的形式,如当用户讲出或说出某些内容作为输入提供给数字助理106时。话语通常呈用户108说出的语言的形式。例如,话语可以是英语或某种其他语言。当话语呈语音形式时,将语音输入转换成该特定语言的文本形式的话语,并且然后由数字助理106来处理文本话语。可以使用各种语音到文本处理技术将语音或音频输入转换成文本话语,该文本话语然后由数字助理106来处理。在一些实施例中,语音到文本的转换可以由数字助理106自身完成。
话语(其可以是文本话语或语音话语)可以是一个片段、一个句子、多个句子、一个或多个单词、一个或多个问题、上述类型的组合等。数字助理106被配置为将自然语言理解(NLU)技术应用于话语以理解用户输入的含义。作为针对话语的NLU处理的一部分,数字助理106被配置为执行用于理解话语的含义的处理,该处理涉及识别对应于话语的一个或多个意图和一个或多个实体。在理解话语的含义后,数字助理106可以响应于理解的含义或意图来执行一个或多个动作或操作。出于本公开的目的,假设这些话语是已经由数字助理106的用户108直接提供的文本话语,或者是将输入语音话语转换为文本形式的结果。然而,这并不旨在以任何方式进行限制或约束。
例如,用户108的输入可以通过提供如“I want to order a pizza(我想要订购披萨)”的话语来请求订购披萨。在接收到这种话语之后,数字助理106被配置为理解话语的含义并采取适当的动作。适当的动作可以涉及例如以请求关于用户期望订购的披萨的类型、披萨的大小、披萨的任何馅料等用户输入的问题来回应用户。由数字助理106提供的回应也可以是自然语言形式,并且通常以与输入话语相同的语言。作为生成这些回应的一部分,数字助理106可以执行自然语言生成(NLG)。为了用户能够经由用户与数字助理106之间的会话来订购披萨,数字助理可以引导用户提供用于披萨订购的所有必要信息,并且然后在会话结束时使披萨被订购。数字助理106可以通过向用户输出指示已经订购披萨的信息来结束会话。
在概念层级上,数字助理106响应于从用户接收的话语执行各种处理。在一些实施例中,该处理涉及一系列处理步骤或处理步骤流水线,包括例如理解输入话语的含义(有时称为自然语言理解(NLU)、确定响应于话语而要执行的动作、在适当的情况下使动作被执行、响应于用户话语生成要输出到用户的回应、向用户输出回应等。NLU处理可以包括对接收到的输入话语进行语法分析以理解话语的结构和含义、细化并重新形成该话语以开发出该话语的更好的可理解形式(例如,逻辑形式)或结构。生成回应可以包括使用NLG技术。
数字助理(如数字助理106)执行的NLU处理可以包括如句子语法分析(例如,标记化、按屈折变化形式进行归类、识别句子的词性标签、识别句子中的命名实体、生成依存树来表示句子结构、将句子分成子句、分析单独的子句、解析指代、执行组块等)等各种NLP有关处理。在某些实施例中,NLU处理或其部分是由数字助理106自身执行的。在一些其他实施例中,数字助理106可以使用其他资源来执行NLU处理的部分。例如,可以通过使用语法分析器、词性标记器和/或命名实体识别器处理句子来识别输入话语句子的句法和结构。在一种实施方式中,针对英语语言,使用由斯坦福自然语言处理(NLP)小组提供的语法分析器、词性标记器和命名实体识别器来分析句子结构和句法。这些是作为斯坦福CoreNLP工具包(Stanford CoreLP toolkit)的一部分提供的。
虽然本公开中提供的各种示例示出了英语语言的话语,但是这仅意味着作为示例。在某些实施例中,数字助理106还能够处置除英语以外的语言的话语。数字助理106可以提供被配置用于针对不同语言执行处理的子***(例如,实施NLU功能的部件)。这些子***可以实施为可以使用服务调用从NLU核心服务器调用的可插单元。这使NLU处理对于每种语言而言是灵活且可扩展的,包括允许不同的处理顺序。可以为单独的语言提供语言包,其中,语言包可以登记可以从NLU核心服务器提供服务的子***的列表。
可以通过各种不同的通道(如但不限于经由某些应用程序、经由社交媒体平台、经由各种消息传递服务和应用程序、以及其他应用程序或通道)使数字助理(如图1中描绘的数字助理106)对其用户108而言是可用的或可访问的。单个数字助理可以为自身配置几个通道,使得单个数字助理可以同时在不同的服务上运行并通过不同的服务进行访问。
数字助理或聊天机器人***通常包含一个或多个技能或与一个或多个技能相关联。在某些实施例中,这些技能是被配置为与用户交互并完成特定类型的任务(如跟踪库存、提交时间卡、创建费用报告、订购食物、查询银行账户、进行预约、购买小部件等)的单独的聊天机器人(称为技能机器人)。例如,针对图1所描绘的实施例,数字助理或聊天机器人***106包括技能116-1、116-2等。出于本公开的目的,术语“技能(skill)”和“技能(skills)”分别与术语“技能机器人(skill bot)”和“技能机器人(skill bots)”同义地使用。
与数字助理相关联的每个技能通过与用户的会话帮助数字助理的用户完成任务,其中,该会话可以包括由用户提供的文本或音频输入与由技能机器人提供的回应的组合。这些回应可以呈以下形式:给用户的文本或音频消息和/或使用呈现给用户以供用户进行选择的简单的用户界面元素(例如,选择列表)。
存在各种方法可以将技能或技能机器人与数字助理相关联或将其添加到数字助理。在一些实例中,可以由企业开发技能机器人,并且然后将其添加到使用DABP 102的数字助理。在其他实例中,可以使用DABP 102开发并创建技能机器人,并且然后将其添加到使用DABP 102创建的数字助理。在又其他实例中,DABP 102提供在线数字商店(称为“技能商店”),该在线数字商店提供涉及各种各样的任务的多个技能。通过技能商店提供的技能还可以公开(expose)各种云服务。为了将技能添加到使用DABP 102生成的数字助理,DABP102的用户可以经由DABP 102访问技能商店、选择所需的技能、并指示将所选技能添加到使用DABP 102创建的数字助理。来自技能商店的技能可以按原样或以修改的形式添加到数字助理(例如,DABP 102的用户可以选择并复制技能商店提供的特定技能机器人、对所选技能机器人进行定制或修改并且然后将修改后的技能机器人添加到使用DABP 102创建的数字助理)。
可以使用各种不同的架构来实施数字助理或聊天机器人***。例如,在某些实施例中,使用DABP 102创建并部署的数字助理可以使用父机器人/次(或子)机器人范式或架构来实施。根据该范式,数字助理被实施为与是技能机器人的一个或多个子机器人交互的父机器人。例如,在图1所描绘的实施例中,数字助理106包括父机器人114和是父机器人114的子机器人的技能机器人116-1、116-2等。在某些实施例中,数字助理106自身被认为充当父机器人。
根据父-子机器人架构实施的数字助理使数字助理的用户能够通过统一的用户界面(即经由父机器人)与多个技能进行交互。当用户与数字助理互动时,父机器人接收用户输入。父机器人然后执行处理来确定用户输入话语的含义。父机器人然后确定用户在话语中请求的任务是否可以由父机器人自身处理,否则父机器人选择适当的技能机器人来处理用户请求,并且将会话路由到所选的技能机器人。这使得用户能够通过公共的单个界面与数字助理进行会话,并且仍然提供使用被配置成执行特定任务的若干技能机器人的能力。例如,对于为企业开发的数字助理,数字助理的父机器人可以与具有特定功能的技能机器人(如用于执行与客户关系管理(CRM)相关的功能的CRM机器人、用于执行与企业资源规划(ERP)相关的功能的ERP机器人、用于执行与人力资本管理(HCM)相关的功能的HCM机器人等)接口连接。这样,数字助理的最终用户或消费者只需要知道如何通过公共的父机器人接口访问数字助理即可,并且用于处理用户请求的幕后多技能机器人被提供。
在某些实施例中,在父机器人/子机器人基础设施中,父机器人被配置成了解可用的技能机器人列表。父机器人可以访问标识各种可用技能机器人的元数据,并且对于每个技能机器人,技能机器人的能力包括技能机器人可以执行的任务。在接收到话语形式的用户请求时,父机器人被配置成从多个可用技能机器人中识别或预测可以最好地服务或处理用户请求的特定技能机器人。然后,父机器人将话语(或话语的一部分)路由到该特定技能机器人以进行进一步的处置。因此,控制从父机器人流动到技能机器人。父机器人可以支持多个输入通道和输出通道。
虽然图1的实施例示出了数字助理106包括父机器人114以及技能机器人116-1、116-2和116-3,但这并不旨在是限制性的。数字助理可以包括提供数字助理的功能的各种其他部件(例如,其他***和子***)。这些***和子***可以仅以软件(例如,被存储在计算机可读介质上并且可由一个或多个处理器执行的代码、指令)、仅以硬件或在使用软件和硬件的组合的实施方式中实施。
DABP 102提供了使DABP 102的用户能够创建数字助理(包括与数字助理相关联的一个或多个技能机器人)的基础设施以及各种服务和特征。在一些实例中,可以通过克隆现有技能机器人来创建技能机器人,例如,克隆由技能商店提供的技能机器人。如前所述,DABP 102提供技能商店或技能目录,该技能商店或技能目录提供了用于执行各种任务的多个技能机器人。DABP 102的用户可以从技能商店克隆技能机器人。根据需要,可以对克隆的技能机器人进行修改或定制。在一些其他实例中,DABP 102的用户使用DABP 102提供的工具和服务从零开始创建技能机器人。如前所述,DABP 102所提供的技能商店或技能目录可以提供用于执行各种任务的多个技能机器人。
在某些实施例中,在高层级上,创建或定制技能机器人涉及以下步骤:
(1)为新技能机器人配置设置
(2)为技能机器人配置一个或多个意图
(3)针对一个或多个意图配置一个或多个实体
(4)训练技能机器人
(5)为技能机器人创建对话流
(6)根据需要将自定义部件添加到技能机器人
(7)测试并部署技能机器人
下文简要描述了上述每个步骤。
(1)为新技能机器人配置设置—可以为技能机器人配置各种设置。例如,技能机器人设计者可以为正在创建的技能机器人指定一个或多个调用名称。然后,数字助理的用户可以使用这些调用名称来显式地调用技能机器人。例如,用户可以在用户的话语中输入调用名称来显式地调用对应的技能机器人。
(2)为技能机器人配置一个或多个意图和相关联的示例话语——技能机器人设计者为正在创建的技能机器人指定一个或多个意图(也称为机器人意图)。然后基于这些指定的意图来训练技能机器人。这些意图表示技能机器人被训练以针对输入话语推断出的类别或分类。在接收到话语时,经训练的技能机器人推断话语的意图,其中,所推断的意图是从用于训练技能机器人的一组预定义的意图中选择的。技能机器人然后基于针对话语推断的意图来采取响应于该话语的适当动作。在一些实例中,技能机器人的意图表示技能机器人可以为数字助理的用户执行的任务。每个意图被赋予一个意图标识符或意图名称。例如,对于针对银行训练的技能机器人,为该技能机器人指定的意图可以包括“CheckBalance(查询余额)”、“TransferMoney(转账)”、“DepositCheck(存款查询)”等。
对于为技能机器人定义的每个意图,技能机器人设计者还可以提供一个或多个示例话语,这些示例话语表示并说明了意图。这些示例话语旨在表示用户可以针对该意图向技能机器人输入的话语。例如,针对CheckBalance意图,示例话语可以包括“What's mysavings account balance?(我的储蓄账户余额是多少?)”、“How much is in mychecking account?(我的活期存款账户里有多少钱?)”、“How much money do I have inmy account(我的账户里有多少钱)”等。因此,可以将典型的用户话语的各种排列指定为意图的示例话语。
这些意图及其相关联的示例话语用作用于训练技能机器人的训练数据。可以使用各种不同的训练技术。作为该训练的结果,生成预测模型,该预测模型被配置为将话语作为输入并输出该预测模型针对该话语推断出的意图。在一些实例中,将输入话语提供给意图分析引擎,该引擎被配置为使用经训练的模型来预测或推断输入话语的意图。然后,技能机器人可以基于推断出的意图采取一个或多个动作。
(3)针对技能机器人的一个或多个意图配置实体——在一些实例中,可能需要另外的上下文来使技能机器人能够适当地回应用户话语。例如,可能存在用户输入话语在技能机器人中解析为相同意图的情况。例如,在以上示例中,话语“What’s my savingsaccount balance?”和“How much is in my checking account?”均解析成相同的CheckBalance意图,但是这些话语是请求不同事情的不同请求。为了阐明这种请求,将一个或多个实体添加到意图。使用银行业务技能机器人的示例,被称为账户类型(AccountType)的实体(该实体定义了被称为“checking(活期存款)”和“saving(储蓄)”的值)可以使技能机器人能够对用户请求进行语法分析并适当地作出回应。在上面的示例中,虽然这些话语解析为相同的意图,但是这两个话语的与AccountType实体相关联的值是不同的。这使技能机器人能够针对这两个话语执行可能不同的动作,尽管这两个话语解析为相同的意图。可以为针对技能机器人配置的特定意图指定一个或多个实体。因此,实体用于向意图自身添加上下文。实体帮助更充分地描述意图并使技能机器人能够完成用户请求。
在某些实施例中,有两种类型的实体:(a)DABP 102提供的内置实体;以及(2)可以由技能机器人设计者指定的自定义实体。内置实体是可以与各种机器人一起使用的通用实体。内置实体的示例包括但不限于与时间、日期、地址、数字、电子邮件地址、持续时间、循环时间段、货币、电话号码、URL等有关的实体。自定义实体用于更多定制的应用程序。例如,针对银行业务技能,AccountType实体可以被技能机器人设计者定义为通过检查用户输入的关键词(如活期存款、储蓄、***等)来实现各种银行业务交易。
(4)训练技能机器人——技能机器人被配置为接收呈话语形式的用户输入,语法分析或以其他方式处理接收到的输入并且识别或选择与接收到的用户输入相关的意图。如上文所指示的,为此,必须对技能机器人进行训练。在某些实施例中,基于为技能机器人配置的意图和与意图相关联的示例话语(统称为训练数据)来训练技能机器人,使得技能机器人可以将用户输入话语解析成其所配置的意图中的一个意图。在某些实施例中,技能机器人使用预测模型,该预测模型是使用训练数据训练的并且允许技能机器人辨别用户说出(或者在一些情况下,正试图说出)的内容。DABP 102提供可以被技能机器人设计者用于训练技能机器人的各种不同的训练技术,包括各种基于机器学习的训练技术、基于规则的训练技术和/或其组合。在某些实施例中,训练数据的一部分(例如,80%)用于训练技能机器人模型并且另一部分(例如,其余20%)用于测试或验证模型。一旦进行了训练,经训练的模型(有时也称为经训练的技能机器人)便可以用于处置用户的话语并对用户的话语作出回应。在某些情况下,用户的话语可以是仅需要单一的回答并且无需另外的会话的问题。为了处理这种情况,可以为技能机器人定义Q&A(问答)意图。这使得技能机器人能够输出对用户请求的回复,而不必须更新对话定义。以与常规意图类似的方式创建Q&A意图。用于Q&A意图的对话流可能与用于常规意图的对话流不同。
(5)为技能机器人创建对话流——为技能机器人指定的对话流描述了在响应于接收到的用户输入来解析技能机器人的不同意图时,技能机器人如何反应。对话流定义了技能机器人将采取的操作或动作,例如,技能机器人如何回应用户话语、技能机器人如何提示用户进行输入、技能机器人如何返回数据。对话流就像流程图,后面跟着技能机器人。技能机器人设计者使用如markdown语言等语言来指定对话流。在某些实施例中,称为OBotML的YAML版本可以用于指定技能机器人的对话流。技能机器人的对话流定义充当会话自身的模型,该模型使技能机器人设计者编排技能机器人与技能机器人所服务的用户之间的交互。
在某些实施例中,技能机器人的对话流定义包含以下三个部分:
(a)上下文部分
(b)默认转变部分
(c)状态部分
上下文部分——技能机器人设计者可以在上下文部分中定义会话流中使用的变量。可以在上下文部分中命名的其他变量包括但不限于:针对错误处置的变量、针对内置实体或自定义实体的变量、使技能机器人能够识别并保存用户偏好的用户变量等。
默认转变部分——技能机器人的转变可以在对话流状态部分中或在默认转变部分中定义。在默认转变部分中定义的转变充当后备并且当状态内没有定义适用的转变或触发状态转变所需的条件无法得到满足时被触发。默认转变部分可以用于定义允许技能机器人得体地处置出乎意料的用户动作的路由。
状态部分——对话流及其有关操作被定义为管理对话流内的逻辑的暂时状态的序列。对话流定义内的每个状态节点都命名一个部件,所述部件提供所述对话中的那个时候所需的功能。因此,状态是围绕部件构建的。状态包含特定于部件的性质并且定义了在部件执行之后被触发的向其他状态的转变。
特殊情况场景可以使用状态部分来处置。例如,您有时可能想要为用户提供用于暂时让用户与之接洽的第一技能进行数字助理内的第二技能中的事情的选项。例如,如果用户忙于与购物技能进行会话(例如,用户已作出一些购买选择),则用户可能想要跳转至银行业务技能(例如,用户可能想要确保他/她有足够的钱用于购买)并且然后返回到购物技能以完成用户的订单。为了解决这一点,第一技能中的动作可以被配置为发起与相同数字助理中的第二不同技能的交互并且然后返回到原始流。
(6)将自定义部件添加到技能机器人——如上文所描述的,技能机器人的对话流中指定的状态对与状态相对应的提供所需的功能的部件进行了命名。部件使技能机器人能够执行功能。在某些实施例中,DABP 102提供了用于执行各种各样的功能的一组预先配置的部件。技能机器人设计者可以选择这些预配置部件中的一个或多个,并将它们与技能机器人的对话流中的状态相关联。技能机器人设计者还可以使用DABP 102提供的工具来创建定制部件或新的部件,并将定制部件与技能机器人的对话流中的一个或多个状态相关联。
(7)测试并部署技能机器人——DABP 102提供了使技能机器人设计者能够测试正在开发的技能机器人的几个特征。然后,可以将技能机器人部署并包括在数字助理中。
虽然以上描述描述了如何创建技能机器人,但是还可以使用类似的技术来创建数字助理(或父机器人)。在父机器人或数字助理层级,可以为数字助理配置内置***意图。这些内置***意图用于识别在不调用与数字助理相关联的技能机器人的情况下数字助理自身(即,父机器人)可以处置的一般任务。针对父机器人定义的***意图的示例包括:(1)Exit(退出):当用户发出想要退出数字助理中的当前会话或上下文的信号时适用;(2)Help(帮助):当用户请求帮助或定向时适用;以及(3)UnresolvedIntent(未解析意图):适用于与退出意图和帮助意图不太匹配的用户输入。数字助理还存储关于与数字助理相关联的一个或多个技能机器人的信息。该信息使父机器人能够选择用于处置话语的特定技能机器人。
在父机器人或数字助理层级,当用户向数字助理输入短语或话语时,数字助理被配置为执行用于确定如何路由话语和相关会话的处理。数字助理使用路由模型来确定这一点,所述路由模型可以是基于规则的、基于AI的或其组合。数字助理使用路由模型来确定对应于用户输入话语的会话是要被路由到特定技能以进行处置、要由数字助理或父机器人自身按照内置***意图进行处置、还是要被处置为当前会话流中的不同状态。
在某些实施例中,作为此处理的一部分,数字助理确定用户输入话语是否使用其调用名称显式地识别技能机器人。如果调用名称存在于用户输入中,则所述调用名称被视为对应于调用名称的对技能机器人的显式调用。在这种场景下,数字助理可以将用户输入路由到显式调用的技能机器人以进行进一步处置。在某些实施例中,如果不存在特定调用或显式调用,则数字助理评估接收到的用户输入话语并针对与数字助理相关联的***意图和技能机器人计算置信度得分。针对技能机器人或***意图计算的得分表示用户输入表示技能机器人被配置为执行的任务或表示***意图的可能性有多大。选择相关联的计算的置信度得分超过阈值(例如,置信度阈值路由参数)的任何***意图或技能机器人作为候选以进行进一步的评估。然后,数字助理从所识别的候选中选择特定的***意图或技能机器人用于对用户输入话语进行进一步的处置。在某些实施例中,在一个或多个技能机器人被识别为候选之后,对与那些候选技能相关联的意图进行评估(根据每个技能的意图模型)并且针对每个意图确定置信度得分。置信度得分超过阈值(例如,70%)的任何意图通常均被视为候选意图。如果选择了特定技能机器人,则将用户话语路由到该技能机器人以进行进一步的处理。如果选择了***意图,则由父机器人自身根据所选***意图执行一个或多个动作。
图2是根据某些实施例的父机器人(MB)***200的简化框图。MB***200可以仅以软件、仅以硬件、或以硬件和软件的组合实施。MB***200包括预处理子***210、多个意图子***(MIS)220、显式调用子***(EIS)230、技能机器人调用器240和数据存储装置250。图2中描绘的MB***200仅仅是父机器人中的部件排列的示例。本领域的技术人员将认识到许多可能的变型、替代方案和修改。例如,在一些实施方式中,MB***200可以具有比图2所示的那些***或部件更多或更少的***或部件,可以组合两个或更多个子***,或者可以具有不同的子***配置或布置。
预处理子***210从用户接收话语“A”202并通过语言检测器212和语言分析器214来处理话语。如上文所指示的,可以以包括音频或文本的各种方式来提供话语。话语202可以是句子片段、完整句子、多个句子等。话语202可以包括标点符号。例如,如果话语202作为音频提供,则预处理子***210可以使用将标点符号(例如,逗号、分号、句号等)***到结果文本中的语音文本转换器(未示出)来将音频转换为文本。
语言检测器212基于话语202的文本来检测话语202的语言。话语202的处置方式取决于语言,因为每种语言都有其自己的语法和语义。在分析话语的句法和结构时,会考虑语言之间的差异。
语言分析器214对话语202进行语法分析以提取话语202中各个语言单元(例如,单词)的词性(POS)标签。POS标签包括例如名词(NN)、代词(PN)、动词(VB)等。语言分析器214还可以对话语202的语言单位进行标记化(例如,将每个单词转换为单独的记号)并对单词按屈折变化形式进行归类。词元是如在字典中表示的一组单词的主要形式(例如,“run”是run、runs、ran、running等的词元)。语言分析器214可以执行的其他类型的预处理包括复合表达式的组块,例如,将“credit”和“card”组合成单个表达式“credit_card”。语言分析器214还可以识别话语202中的单词之间的关系。例如,在一些实施例中,语言分析器214生成依存树,所述依存树指示话语的哪一部分(例如,特定名词)是直接宾语、话语的哪一部分是介词等。由语言分析器214执行的处理的结果形成提取的信息205,并与话语202本身一起作为输入提供给MIS 220。
如上文所指示的,话语202可以包括多于一个句子。为了检测多个意图和显式调用的目的,话语202可以被视为单个单元,即使它包括多个句子。然而,在某些实施例中,预处理可以例如由预处理子***210执行,以识别多个句子中的单个句子以用于多个意图分析和显式调用分析。通常,无论话语202是在单个句子的级别上处理还是作为包括多个句子的单个单元处理,MIS 220和EIS 230产生的结果都基本相同。
MIS 220确定话语202是否表示多个意图。尽管MIS 220可以检测话语202中存在多个意图,但是由MIS 220执行的处理不涉及确定话语202的意图是否与已经为机器人配置的任何意图匹配。相反,确定话语202的意图是否与机器人意图匹配的处理可以由MB***200的意图分类器242或者由技能机器人的意图分类器来执行(例如,如图3的实施例中所示出的)。MIS 220执行的处理假设存在可以处置话语202的机器人(例如,特定技能机器人或父机器人本身)。因此,由MIS 220执行的处理不需要知道聊天机器人***中有哪些机器人(例如,向父机器人注册的技能机器人的身份),也不需要知道已经为特定机器人配置了什么意图。
为了确定话语202包括多个意图,MIS 220应用数据存储装置250中的一组规则252中的一个或多个规则。应用于话语202的规则取决于话语202的语言并且可以包括指示存在多个意图的句子模式。例如,句子模式可以包括连接句子的两个部分(例如,连词)的并列连接词,其中,这两个部分对应于不同的意图。如果话语202与句子模式相匹配,则可以推断出话语202表示多个意图。应该注意的是,具有多个意图的话语不一定具有不同的意图(例如,涉及不同机器人的意图或同一机器人内的不同意图)。相反,话语可以有相同意图的不同实例,例如“Place a pizza order using payment account X,then place apizza orderusing payment account Y(使用支付账户X下披萨订单,然后使用支付账户Y下披萨订单)”。
作为确定话语202表示多个意图的一部分,MIS 220还确定话语202的哪些部分与每个意图相关联。MIS 220为包含多个意图的话语中表示的每个意图构造新的话语以代替原始话语进行单独处理,例如,话语“B”206和话语“C”208,如图2所描绘。因此,原始话语202可以被分成两个或更多个单独的话语,一次处置一个话语。MIS 220使用提取的信息205和/或根据对话语202本身的分析来确定应该首先处置两个或更多个话语中的哪一个。例如,MIS 220可以确定话语202包含指示应该首先处置特定意图的标记词。与该特定意图相对应的新形成的话语(例如,话语206或话语208中的一个)将首先被发送以供EIS 230进一步处理。在由第一个话语触发的会话已经结束(或已被暂时暂停)之后,然后可以将下一个最高优先级的话语(例如,话语206或话语208中的另一个话语)发送到EIS 230进行处理。
EIS 230确定其接收的话语(例如,话语206或话语208)是否包含技能机器人的调用名称。在某些实施例中,聊天机器人***中的每个技能机器人被指派有唯一的调用名称,所述调用名称将所述技能机器人与聊天机器人***中的其他技能机器人区分开来。调用名称列表可以作为技能机器人信息254的一部分保存在数据存储装置250中。当话语包含与调用名称相匹配的单词时,话语被视为显式调用。如果机器人未被显式调用,则EIS 230接收到的话语被视为是非显式调用话语234并且被输入到父机器人的意图分类器(例如,意图分类器242)以确定使用哪个机器人来处置话语。在一些实例中,意图分类器242将确定父机器人应该处置非显式调用话语。在其他实例中,意图分类器242将确定将话语路由到以进行处置的技能机器人。
EIS 230所提供的显式调用功能有几个优点。它可以减少父机器人不得不执行的处理量。例如,当存在显式调用时,父机器人可能不必(例如,使用意图分类器242)进行任何意图分类分析,或者可能不得不进行简化的意图分类分析以选择技能机器人。因此,显式调用分析可以使得能够选择特定技能机器人,而无需求助于意图分类分析。
而且,可能存在多个技能机器人之间的功能重叠的情况。例如,如果两个技能机器人处置的意图重叠或彼此非常接近,则可能会发生这种情况。在这种情况下,父机器人可能难以仅基于意图分类分析来识别要选择多个技能机器人中的哪一个。在这种场景下,显式调用使得对于要使用的特定技能机器人没有歧义。
除了确定话语是显式调用之外,EIS 230还负责确定是否应该将话语的任何部分用作对被显式调用的技能机器人的输入。具体地,EIS 230可以确定话语的一部分是否与调用无关。EIS 230可以通过分析话语和/或分析提取的信息205来执行该确定。EIS 230可以将与调用无关的话语部分发送到被调用的技能机器人,而不是发送EIS 230所接收到的整个话语。在一些实例中,被调用的技能机器人的输入简单地通过删除与调用相关联的任何话语部分来形成。例如,“我想使用披萨机器人订购披萨(I want to order pizza usingPizza Bot)”可以被缩短为“我想订购披萨(I want to order pizza)”,因为“使用披萨机器人(using Pizza Bot)”与披萨机器人的调用相关,但与披萨机器人要执行的任何处理无关。在一些实例中,EIS 230可以重新格式化要发送给被调用的机器人的部分,例如,以形成完整的句子。因此,EIS 230不仅确定存在显式调用,而且当存在显式调用时确定要向技能机器人发送什么。在一些实例中,可能没有任何文本可以输入到被调用的机器人中。例如,如果话语是“披萨机器人(Pizza Bot)”,则EIS 230可以确定披萨机器人正在被调用,但是没有文本要由披萨机器人处理。在这种情况下,EIS 230可以向技能机器人调用器240指示没有什么要发送的。
技能机器人调用器240以各种方式调用技能机器人。例如,技能机器人调用器240可以响应于接收到作为显式调用的结果已经选择特定技能机器人的指示235来调用机器人。指示235可以由EIS 230与显式调用的技能机器人的输入一起发送。在这种情况下,技能机器人调用器240将把对会话的控制移交给显式调用的技能机器人。显式调用的技能机器人将通过将输入视为独立话语来确定对来自EIS 230的输入的适当回应。例如,回应可以是执行特定动作或在特定状态下开始新会话,其中,新会话的初始状态取决于从EIS 230发送的输入。
技能机器人调用器240可以调用技能机器人的另一种方式是通过使用意图分类器242进行隐式调用。可以使用机器学习和/或基于规则的训练技术来训练意图分类器242,以确定话语表示特定技能机器人被配置为执行的任务的可能性。意图分类器242在不同的类别上被训练,每个技能机器人一个类别。例如,每当向父机器人注册新技能机器人时,与新技能机器人相关联的示例话语列表可以用于训练意图分类器242以确定特定话语表示新技能机器人可以执行的任务的可能性。作为该训练的结果产生的参数(例如,机器学习模型的一组参数值)可以存储为技能机器人信息254的一部分。
在某些实施例中,意图分类器242是使用机器学习模型实施的,如本文进一步详细描述的。机器学习模型的训练可以涉及至少输入来自与各种技能机器人相关联的示例话语的话语子集,以生成关于哪个机器人是用于处置任何特定训练话语的正确机器人的推断作为机器学习模型的输出。对于每个训练话语,可以提供用于训练话语的正确机器人的指示作为基本事实信息。然后可以适配机器学习模型的行为(例如,通过反向传播)以最小化所生成的推断与基本事实信息之间的差异。
在某些实施例中,意图分类器242针对向父机器人注册的每个技能机器人确定指示技能机器人可以处置话语(例如,从EIS 230接收的非显式调用话语234)的可能性的置信度得分。意图分类器242还可以确定已配置的每个***级意图(例如,帮助、退出)的置信度得分。如果特定置信度得分满足一个或多个条件,则技能机器人调用器240将调用与特定置信度得分相关联的机器人。例如,可能需要满足阈值置信度得分值。因此,意图分类器242的输出245是***意图的标识或者特定技能机器人的标识。在一些实施例中,除了满足阈值置信度得分值之外,置信度得分必须超过下一个最高置信度得分一定的获胜幅度。当多个技能机器人的置信度得分均超过阈值置信度得分值时,施加这样的条件将能够路由到特定技能机器人。
在基于置信度得分的评估识别机器人之后,技能机器人调用器240将处理移交给所识别的机器人。在***意图的情况下,所识别的机器人是父机器人。否则,所识别的机器人是技能机器人。进一步地,技能机器人调用器240将确定为所识别的机器人提供什么作为输入247。如上所指示,在显式调用的情况下,输入247可以基于与调用不相关的话语的一部分,或者输入247可以什么都没有(例如,空字符串)。在隐式调用的情况下,输入247可以是整个话语。
数据存储装置250包括一个或多个计算设备,其存储由父机器人***200的各种子***使用的数据。如上文所解释的,数据存储装置250包括规则252和技能机器人信息254。规则252包括例如用于由MIS 220确定话语何时表示多个意图以及如何拆分表示多个意图的话语的规则。规则252进一步包括用于由EIS 230确定显式调用技能机器人的话语的哪些部分要发送给技能机器人的规则。技能机器人信息254包括聊天机器人***中技能机器人的调用名称,例如,向特定父机器人注册的所有技能机器人的调用名称的列表。技能机器人信息254还可以包括由意图分类器242用来确定聊天机器人***中每个技能机器人的置信度得分的信息,例如,机器学习模型的参数。
图3是根据某些实施例的技能机器人***300的简化框图。技能机器人***300是可以仅以软件实施、仅以硬件实施、或以硬件和软件的组合实施的计算***。在某些实施例中,如图1所描绘的实施例中,技能机器人***300可以用于在数字助理内实施一个或多个技能机器人。
技能机器人***300包括MIS 310、意图分类器320和会话管理器330。MIS 310类似于图2中的MIS 220并提供类似的功能,包括可操作地使用数据存储装置350中的规则352来确定:(1)话语是否表示多个意图,以及如果是,(2)如何将话语拆分为针对多个意图中的每个意图的单独话语。在某些实施例中,由MIS 310应用的用于检测多个意图和用于拆分话语的规则与MIS 220所应用的规则相同。MIS 310接收话语302和提取的信息304。提取的信息304类似于图1中的提取的信息205,并且可以使用语言分析器214或技能机器人***300本地的语言分析器来生成。
意图分类器320可以以与上文结合图4的实施例讨论的意图分类器242类似的方式被训练,并在此进一步详细描述。例如,在某些实施例中,意图分类器320是使用机器学习模型来实施的。针对特定技能机器人,至少使用与该特定技能机器人相关联的示例话语的子集作为训练话语来训练意图分类器320的机器学习模型。每个训练话语的基本事实将是与训练话语相关联的特定机器人意图。
话语302可以直接从用户接收或通过父机器人提供。当通过父机器人提供话语302时,例如,作为通过图4中描绘的实施例中的MIS 220和EIS 230处理的结果,可以绕过MIS310以避免重复已经由MIS 220执行的处理。然而,如果直接从用户接收到话语302,例如,在路由到技能机器人之后发生的会话期间,则MIS 310可以处理话语302以确定话语302是否表示多个意图。如果是,则MIS 310应用一个或多个规则以将话语302拆分为针对每个意图的单独话语,例如话语“D”306和话语“E”308。如果话语302不表示多个意图,则MIS 310将话语302转发到意图分类器320以进行意图分类,而不拆分话语302。
意图分类器320被配置为将接收到的话语(例如,话语306或308)与同技能机器人***300相关联的意图相匹配。如上文所解释的,技能机器人可以配置有一个或多个意图,每个意图包括与所述意图相关联并用于训练分类器的至少一个示例话语。在图2的实施例中,父机器人***200的意图分类器242被训练以确定各个技能机器人的置信度得分和针对***意图的置信度得分。类似地,可以训练意图分类器320以确定针对与技能机器人***300相关联的每个意图的置信度得分。由意图分类器242执行的分类是在机器人级别,而由意图分类器320执行的分类是在意图级别并且因此更细粒度。意图分类器320可以访问意图信息354。对于与技能机器人***300相关联的每个意图,意图信息354包括表示意图并说明意图的含义并且通常与可由该意图执行的任务相关联的话语列表。意图信息354可以进一步包括作为在该话语列表上进行训练的结果而产生的参数。
会话管理器330接收特定意图的指示322作为意图分类器320的输出,所述意图由意图分类器320识别为与输入到意图分类器320的话语最佳匹配。在一些实例中,意图分类器320不能确定任何匹配。例如,如果话语针对***意图或不同技能机器人的意图,则由意图分类器320计算的置信度得分可能低于阈值置信度得分值。当这种情况发生时,技能机器人***300可以将话语引用给父机器人以进行处理,例如,路由到不同的技能机器人。然而,如果意图分类器320成功识别技能机器人内的意图,则会话管理器330将发起与用户的会话。
由会话管理器330发起的会话是特定于由意图分类器320识别的意图的会话。例如,会话管理器330可以使用被配置为针对所识别的意图执行对话流的状态机来实施。状态机可以包括默认起始状态(例如,当在没有任何附加输入的情况下调用意图时)和一个或多个附加状态,其中,每个状态与将由技能机器人执行的动作(例如,执行购买交易)和/或要呈现给用户的对话(例如,问题、回应)相关联。因此,会话管理器330可以在接收到识别到意图的指示322时确定动作/对话335,并且可以响应于在会话期间接收到的后续话语来确定附加动作或对话。
数据存储装置350包括一个或多个计算设备,其存储由技能机器人***300的各种子***使用的数据。如图3所描绘的,数据存储装置350包括规则352和意图信息354。在某些实施例中,数据存储装置350可以集成到父机器人或数字助理的数据存储装置中,例如,图2中的数据存储装置250。
示例数据处理***
图4是实施语言处理***的计算***的简化框图。语言处理***400可以是执行或帮助执行本文所讨论的方法的任何***、设备、硬件、软件、计算机可读介质或其他实体。语言处理***400包括预处理子***412。预处理***可以是能够纳入可能与语言处理***400的程序相关的输入的任何***。例如,预处理子***412可以被编程为纳入如话语A402A等话语,并确定如何处理和路由所述话语。
在实施例中,话语A 402A是来自与聊天机器人***交互或寻求与聊天机器人***交互的用户的用户查询。在另一实施例中,话语A 402A是用于训练机器学习模型的训练数据。预处理子***412包括语言检测器414,所述语言检测器允许预处理***412检测向其输入的语言。预处理子***412包括训练/查询管理器416。训练/查询管理器416可以检测话语A 402A是训练数据集还是来自人类客户端的查询,以确定预处理子***412应该路由话语的方式。例如,如果话语是训练数据,则预处理子***412将把训练数据路由到训练子***,以再训练机器学习模型。如果话语是来自寻求所述查询的解决方案的客户端的自然语言查询,预处理子***412将以某一方式路由话语,所述方式使得机器学习模型将接收话语的特征作为输入,以生成预测数据的输出。在实施例中,预处理子***412将来自话语A 402A的数据变换成更容易被语言分析子***进行语法分析的语言或数据,如话语B 402B。例如,预处理子***412可以包括自然语言预处理器***,所述自然语言预处理器***将自然语言查询变换成将被输入到机器学习模型的一个或多个特征。这些特征可以包括基于自然语言短语生成的词典信息确定的上下文特征,以及基于地名词典或其他表达短语列表生成的表达特征。
语言处理***400进一步包括特征平衡子***420。在各种实施例中,特征平衡子***420是语言处理***400内的实体,所述语言处理***能够处理、训练或以其他方式使用自然语言数据来执行本文讨论的方法。在各种实施例中,特征平衡子***420包括一个或多个子***,所述一个或多个子***包括用于为自然语言处理器执行多特征平衡的指令。
特征平衡子***420包括覆盖平衡子***422。覆盖平衡子***422是被配置和实施为执行如本文描述的覆盖平衡方法的子***。下文将参考图5和图6进一步讨论覆盖平衡方法的示例。覆盖平衡子***422包括覆盖平衡指令423,所述覆盖平衡指令包括用于执行本文描述的覆盖平衡步骤的步骤以及将影响覆盖平衡子***422将操作的方式的值、范围或任何其他类型的参数。
特征平衡子***420包括丢弃平衡子***424。丢弃平衡子***424是被配置和实施为执行如本文描述的基于丢弃的平衡方法的子***。下文将参考图7和图8进一步讨论基于丢弃的平衡方法的示例。丢弃平衡子***424包括丢弃平衡指令425,所述丢弃平衡指令包括用于执行本文描述的丢弃平衡步骤的步骤以及将影响丢弃平衡子***424将操作的方式的值、范围或任何其他类型的参数。
特征平衡子***420包括噪声平衡子***426。噪声平衡子***426是被配置和实施为利用如本文描述的基于噪声的平衡方法来执行基于丢弃的平衡方法的子***。下文将参考图9进一步讨论基于噪声的平衡方法的示例。噪声平衡子***426包括噪声平衡指令427,所述噪声平衡指令包括用于执行本文描述的基于噪声的平衡步骤的步骤以及将影响噪声平衡子***426将操作的方式的值、范围或任何其他类型的参数。
特征平衡子***420包括模型组合子***428。模型组合子***428是被配置和实施为根据如本文描述的方法出于多特征平衡的目的而组合一个或多个模型的子***。模型组合子***428包括组合指令429,所述组合指令可以包括将确定模型组合子***428将被实施的方式的指令、等式、变换或任何其他类型的组合标准。例如,模型组合子***428可以使得来自子***422、424和/或426的平衡指令的组合被实施为自然语言处理的多特征平衡的过程的一部分。
语言处理***400包括数据存储装置430。数据存储装置430可以是可以存储用于执行本文描述的方法的数据和指令的任何类型的存储装置、存储器、储存库或其他实体。在一些实施例中,数据存储装置430存储可以用于聊天机器人回应或训练的自然语言处理的多个模型。数据存储装置430包括机器学习模型目录432,所述机器学习模型目录是可以用于处理自然语言查询的机器学习模型的目录。数据存储装置430还包括地名词典目录434,所述地名词典目录是自然语言短语(即,地名词典)的列表的目录,所述自然语言短语作为自然语言处理的一部分可以由任意数量的机器学习模型来实施以生成表达特征。
语言处理***400包括技能机器人选择器440。在各种实施例中,技能机器人选择器440是将确定最适合于对查询作出回应或者将从输入训练数据集中选择的技能或聊天机器人的子***。例如,技能机器人选择器440纳入由机器学习模型输出的数据(如预测标签)以确定用于处理和/或回应自然语言查询的技能。技能机器人选择器440包括技能机器人选择指令442,所述技能机器人选择指令是用于基于输入数据选择技能、聊天机器人、技能机器人或任何其他类型的匹配实体的指令。技能机器人选择器440进一步包括储存库444,所述储存库是可以由技能机器人选择器440选择的技能机器人或技能机器人表示的存储装置。
覆盖术语训练
如上文所讨论,机器学习模型可以在自然语言处理期间使用上下文特征和正则表达式特征。输入到机器学习模型的上下文特征是由已用特定训练数据集训练的经训练的机器学习模型生成的。输入到机器学习模型的表达特征至少部分地由对应于标签的自然语言短语的地名词典列表(例如,“名称”列表)生成。机器学习模型将使用上下文特征和表达特征两者作为输入来生成输出预测。然而,并不是所有的地名词典都足以用于特定的机器学习模型。例如,可以使用包括各种基于医学的命令和回应的训练数据集来训练机器学习模型。可以用于生成表达特征的对应地名词典可以与“Locations”标签相关联。在训练数据集不包括与位置相关联的许多黄金标签的情况下,模型可能变得过于依赖基于地名词典的表达特征。例如,给定话语“My arm is hurt(我的胳膊受伤了)”,地名词典可能包含位置“Hurt,Virginia(弗吉尼亚州赫特)”。由地名词典生成的对应表达特征可能导致模型错误地预测所述话语对应于对关于“Hurt,Virginia”的信息的请求,而不是对医疗护理的请求。
用于多因素平衡的方法包括基于与地名词典中的自然语言术语和用于训练模型的训练数据集相关的覆盖度量利用机器学***衡。例如,利用包含不在训练数据集中的许多术语的地名词典可能导致模型变得过度依赖于来自地名词典的表达特征,因为模型不生成对应于相同术语的强上下文特征。为了弥补这一缺陷,基于地名词典和训练数据集来确定覆盖度量,并且基于覆盖度量来利用或不利用地名词典。覆盖度量还可以用于自动改变地名词典或训练数据集,以提供适当的覆盖水平,从而利用具有对应训练模型的地名词典。
图5图示了根据各种实施例的用于管理自然语言短语数据集和机器学习模型的训练数据集的过程流程。图5所描绘的处理以由相应***的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合实施。软件存储在非暂态存储介质上(例如,存储器设备上)。图5所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图5描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在某些替代性实施例中,步骤以某种不同的顺序执行或者一些步骤还可以并行地执行。在各种实施例中,过程500中详细描述的步骤由本文参考图1至图5讨论的***和模型执行。
过程500开始于510处,在此处,接收自然语言短语数据集和机器学习模型的训练数据集的期望的覆盖值。自然语言短语数据集是例如将用于生成用于输入到机器学习模型的表达特征的自然语言短语的地名词典。期望的覆盖值与地名词典和训练数据集的相对“覆盖率”有关。例如,覆盖值可以表示地名词典中与训练数据中的对应自然语言短语相匹配的自然语言短语的百分比,并且针对所述自然语言短语,地名词典的对应标签(例如,“Name”)与训练数据中的黄金标签相匹配。例如,在用于训练机器学习模型的训练数据集中,可能有1000个对应于标签“Name”的黄金标签。包含自然语言短语列表的对应地名词典可以对应于“Names”,并且所述地名词典可以包含与训练数据中的1000个黄金标签相对应的1000个短语中的600个自然语言短语。因此,训练数据的地名词典的覆盖率可以是60%(600/1000)。出于上述原因,地名词典对训练数据的更大“覆盖率”意味着使用地名词典生成的该表达特征将更接近于由上下文机器学习模型生成的上下文特征,并且不会导致模型过度拟合对生成的表达特征的预测。
在510中接收到的期望的覆盖值涉及模型可以信任地名词典的最佳或最小覆盖值。所述值例如由实施机器学习模型的数据科学家接收作为聊天机器人特征的一部分,或者可以在机器学习模型超参数调谐期间确定。例如,期望的覆盖值80%可以指示上下文机器学习模型不应该利用不具有训练数据集的至少80%覆盖率的地名词典。
在520处,将自然语言短语数据集与机器学习模型的训练数据集进行比较,以确定多个对应的自然语言短语。如上所述,将地名词典与训练数据集进行比较。在各种实施例中,该步骤包括对训练数据集进行语法分析,以确定训练数据集中对应于地名词典类型的黄金标签的数量(例如,以确定地名词典对特定训练数据集的实际覆盖值,地名词典的标签首先被确定为“Locations”,并且训练数据集的黄金标签将被语法分析以确定具有标签“Locations”的所有黄金标签)。一旦黄金标签与地名词典相匹配,训练数据集中的对应自然语言短语就与地名词典进行比较,以确定地名词典与训练数据集之间的“重叠”百分比。在一些实施例中,只有在短语按字符完全匹配时,所述短语才被认为是重叠的。在其他实施例中,如果地名词典中的短语包含作为另一短语的子集的部分短语,则训练数据集中的部分短语将被认为与地名词典中的更大的自然语言短语相匹配。
在530处,基于自然语言短语列表和训练数据集的比较来确定实际覆盖值。例如,如上所述,实际覆盖值可以是训练数据集中在标签和短语两方面与地名词典相匹配的短语的比例。例如,如果地名词典在短语和标签两方面与训练数据集中可能的100个匹配标签中的58个短语相匹配,则覆盖率是58%(58/100)。
在540处,作出关于在530中确定的实际覆盖值是否等于或大于在510中接收到的期望的覆盖值的决策。具体而言,所述比较确定实际覆盖值是否大于或等于期望的覆盖值,这意味着地名词典以由期望的覆盖值指定的允许水平充分覆盖训练数据。例如,给定由数据科学家指定的80%的期望覆盖值,仅具有至少80%覆盖率的地名词典将与机器学习模型结合使用来处理自然语言查询。实际覆盖值为94%的地名词典是允许的,而覆盖率为44%的地名词典是不允许的。在一些实施例中,当地名词典的实际覆盖值小于期望的覆盖值时,选择另一地名词典来确定与训练数据集的覆盖值。
在550处,如果实际覆盖值不大于或等于期望的覆盖值,则可以修改地名词典和/或训练数据集,以使实际覆盖值满足或超过期望的覆盖值。例如,在550处,从训练数据集中选择不存在于自然语言短语数据集(即,地名词典)中的一个或多个自然语言短语。所选的自然语言短语是缺乏的短语,所述缺乏的短语如果包含在地名词典中,则当所述地名词典与训练数据集进行比较时,所述缺乏的短语将增大地名词典的实际覆盖值。
在一些实施例中,作为从训练数据集中选择一个或多个自然语言短语的替代或补充,将从地名词典中选择多个自然语言短语。从地名词典中选择的短语对应于未包括在训练数据集中的短语,但是如果包括在训练数据集中,则将增大实际覆盖率。下文参考图6给出了这种情况的示例。
在560处,将在550中选择的一个或多个选择的自然语言短语添加到自然语言短语数据集中,以增大实际覆盖率。具体而言,将来自训练数据集的不在地名词典中但具有与地名词典标签相对应的黄金标签的自然语言短语添加到地名词典。在一些实施例中,将来自训练数据集的短语的选择部分添加到地名词典,而不是从训练数据集中选择的整个自然语言短语。例如,来自训练数据集的一组训练数据可以包括短语“I would like to go toSydney Opera House(我想去悉尼歌剧院)”。对应的黄金标签是“Location”。不是将上面的整个自然语言短语添加到位置地名词典,而是仅从训练数据集中选择短语“Sydney OperaHouse(悉尼歌剧院)”并将其添加到地名词典。在各种实施例中,一个或多个所选的自然语言短语是足够的,使得当被添加到地名词典时,新确定的实际覆盖率将满足或超过期望的覆盖率。
如上所述,作为550的补充或替代,从地名词典中选择一个或多个自然语言短语以包括在训练数据集中。例如,可以将地名词典中未包括在训练数据集中的短语添加到训练数据集以增大实际覆盖率。例如,名称地名词典可以包括对应于英文名称的短语“Mortimer”。训练数据集可能不包括名称Mortimer,但至少与黄金标签“Name”相关联。然后,可以从地名词典中选择短语“Mortimer”,并将其添加到具有“Name”黄金标签的训练数据集中,并且新修改的训练数据集将用于再训练上下文机器学习模型。在各种实施例中,来自地名词典的短语可以在被包括在训练数据集中之前被修改。例如,基于库存名称的话语生成可以使短语“Mortimer”被变换成完整的话语“Hello,my name is Mortimer(你好,我叫Mortimer)”,以包括在训练数据集中。
在570处,一旦将一个或多个所选的自然语言短语添加到560中的自然语言短语数据集,或者如果实际覆盖值已经大于或等于在540中确定的期望的覆盖值,则使用包括自然语言短语数据集的机器学习模型来处理自然语言查询。例如,在这一点上,实际覆盖值大于或等于期望的覆盖值,并且地名词典可以被“信任”以为机器学习模型生成表达特征,而不会超过由机器学习模型生成的上下文特征。因此,地名词典现在将与机器学习模型一起用于处理自然语言查询。在各种实施例中,所处理的自然语言查询是包括在由客户端发送以供聊天机器人解析的话语中的自然语言查询。
图6图示了根据各种实施例的自然语言短语的示例数据集和用作用于自然语言处理的多因素模型的一部分的训练数据集。具体而言,图6描绘了地名词典和训练数据集,所述地名词典和训练数据集可以被改变以增大两个数据集之间的实际覆盖值,从而允许地名词典与使用训练数据集训练的机器学习模型结合使用。
图6描绘了地名词典600。地名词典600包括地名词典属性602。地名词典属性602涉及包括在地名词典中的所有短语的标签,例如“Location”、“Person(人)”等。地名词典600中的每个短语与地名词典属性602的标签相关联。地名词典600包括地名词典短语列表604,所述地名词典短语列表包括多个短语606(1)-606(N)。短语606中的每个短语对应于地名词典属性602(例如,城市名称对应于地名词典属性“Location”)。
图6描绘了训练数据集610。训练数据集610包括多组训练数据,每组训练数据包括训练短语612和黄金标签614。如所描绘的,训练数据集610包括从训练短语612(1)和对应的黄金标签614(1)到训练短语612(N)和对应的黄金标签614(N)的多组训练数据。
如上文参考图5所述,当改变地名词典600和训练数据集610中的一个或两个以增大与数据集相关的实际覆盖值时,可以将来自训练数据集的短语610添加到地名词典600,并且反之亦然。例如,如图6所描绘,将训练短语612(1)和612(2)添加到地名词典短语列表604中作为短语N+1和N+2。例如,确定黄金标签614(1)和614(2)具有对应于地名词典属性602的标签类型,意味着短语612(1)和612(2)中的每一个将被接受到地名词典短语列表604中。可以进一步确定地名词典短语列表604不包含短语612(1)和612(2)。因此,为了增大地名词典600与训练数据集的实际覆盖率,可以将训练短语添加到地名词典。
如图6所描绘的,也可以将来自地名词典600的短语添加到训练数据集610。例如,确定地名词典短语列表604中的短语606(1)不包括在训练数据集610中。将短语606(1)添加到训练数据集作为训练短语N+1。从地名词典属性602复制对应的黄金标签,从而形成一组完整的训练数据。训练数据集可以用于根据可允许的覆盖率再训练将与地名词典600结合使用的机器学习模型。
模型特征丢弃
如上所述,覆盖率可以用于确定地名词典和上下文训练的机器学***衡是用于确定地名词典和机器学习模型的适当组合以使用机器学习模型的特征处理自然语言短语的有效工具。
可以通过将话语馈入到预先训练的语言模型(如多语言句子编码器、BERT等)来生成上下文特征。表达特征可以通过使用各种技术进行地名词典匹配来生成,包括但不限于以下技术。使用仅在地名词典上训练的神经分类器来提取输入话语的每个记号的表达特征或地名词典特征,所述神经分类器将输入话语上的记号的子序列分类为属于具有一定置信度的某个实体类别。然后将分类器的输出用作要整合到自然语言模型(如预先存在的BiLSTM-CRF架构)中的特征。用扩充的地名词典数据训练单独的地名词典分类器,并将该分类器整合到自然语言模型(如预先存在的BiLSTM-CRF架构)中。经由自我注意机制匹配和编码表达特征或地名词典特征,然后将其与其他特征(如Glove,ELMO等)串连。匹配和编码表达特征或地名词典特征作为附加表示,并且然后将其添加到自然语言模型,如预先存在的BiLSTM-CRF架构。最后,地名词典可以用于对现有训练数据进行数据扩充,并且训练数据可以用于微调或再训练自然语言模型,如预先存在的BiLSTM-CRF架构。
一旦获得了用于输入到机器学习模型的特征,就输入所述特征,并且由所述模型生成预测输出。例如,在机器学习模型是ANN的实施例中,生成的特征映射到神经网络的输入节点。在输入节点处生成的值将被多个隐藏层处理,然后使用节点的输出层来生成输出,例如,将用于回应自然语言查询的技能的标签的预测。下文参考图8描述ANN机器学习模型的示例。
所生成的特征可以被进一步细化,以增加或减少要被输入到机器学习模型的权重或某些术语。例如,使用地名词典生成的表达特征可能比通过用上下文模型处理自然语言查询而生成的上下文特征更准确,因此当输入到机器学习模型时,应该给予表达特征更多的权重。这可以通过词汇丢弃或上下文丢弃以减少输入到机器学习模型的上下文特征的权重或数量来实现。基于百分比的上下文丢弃将从机器学习模型的输入中随机移除多个上下文特征。例如,20%的上下文丢弃率将从输入到机器学习模型的特征池中随机移除至多五分之一的上下文特征。然而,可以使用有针对性的上下文丢弃(其将丢弃已经由对应的表达特征很好地表示的某些上下文特征)来改进一般上下文丢弃的散点方法。
例如,给定话语“I would like to visit the Eiffel Tower(我想参观埃菲尔铁塔)”,为子短语“Eiffel Tower(埃菲尔铁塔)”生成上下文特征和表达特征。由位置术语的地名词典生成的表达特征可能比由相同短语生成的上下文特征更重要。几乎可以肯定地依靠地名词典来生成准确的表达特征,因为Eiffel Tower几乎确定了位置。因此,与EiffelTower相关联的上下文特征可以被丢弃,因为它们只会降低表达特征的权重。这种有针对性的表达丢弃的使用将提高模型的整体准确度。
在相反的情况下,利用地名词典的模型可能倾向于过度拟合对表达特征的输出预测。例如,给定话语“Mark these papers,please(请标记这些论文)”,英文名称地名词典可以生成名称“Mark”的表达特征,而此时单词“Mark”显然不用作名称。因此,可以利用类似于上下文丢弃的表达丢弃率来给与要输入到机器学习模型的破坏性表达特征较小的权重。例如,话语“Mark these papers,please”的上下文分析将确定单词“Mark”几乎肯定是动词。因此,对于与名词(例如,英文名称)相关联的表达特征的有针对性的表达丢弃可能是适当的,以避免用不正确的表达特征过度拟合预测。因此,可以有针对性地丢弃表达特征或上下文特征,以改进自然语言短语的机器学习模型处理。在各种实施例中,本文讨论的有针对性的丢弃可以与被输入到机器学习模型的特征的一般随机丢弃率结合使用。例如,可以使用两个百分比进行丢弃,以第一比率丢弃特征的第一有针对性的丢弃率,以及将在有针对性的丢弃发生后随机丢弃特征的第二一般丢弃率。
图7图示了根据各种实施例的用于执行作为自然语言处理器的多特征平衡的一部分的特征丢弃的过程流程。图7所描绘的处理以由相应***的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合实施。软件存储在非暂态存储介质上(例如,存储器设备上)。图7所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图7描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在某些替代性实施例中,步骤以某种不同的顺序执行或者一些步骤还可以并行地执行。在各种实施例中,过程700中详细描述的步骤由本文参考图1至图6讨论的***和模型执行。
具体而言,过程700描述了用于上下文特征的有针对性的上下文丢弃的过程。应当理解,作为图7中描述的上下文丢弃过程的补充或替代,可以执行对应的表达丢弃过程来丢弃表达特征。过程700开始于710处,其中,接收要由机器学***衡子***424来进一步处理。
在720处,响应于接收到自然语言查询,确定与机器学***来预先设置。在一些实施例中,上下文丢弃率是在机器学习模型的超参数调谐期间确定的。
在730处,确定一组上下文特征和一组表达特征。上下文特征和表达特征是由要输入到机器学习模型的自然语言查询生成的。由于某些特征是基于自然语言查询的相似部分生成的,因此一些上下文特征对应于表达特征,反之亦然。例如,在话语“I would like tosee the Eiffel Tower(我想看埃菲尔铁塔)”中,子短语“Eiffel Tower”可以用于生成一些表达特征和一些上下文特征。相比于对应的上下文特征,表达特征(其可能已经使用位置地名词典生成)可能使模型作出更准确的预测。
在740处,确定与用于自然语言查询的一部分的表达特征相对应的上下文特征子集。如上参考730所述,当两个特征均由自然语言查询的名称部分生成时,上下文特征的子集可以对应于表达特征。例如,当两组特征均通过上述示例查询中的子短语“EiffelTower”生成时,一些上下文特征可能对应于表达特征。与表达特征相比,上下文特征不太可能影响准确的预测,并且因此是有针对性的上下文丢弃的主要候选项。
在750处,以与上下文丢弃率相对应的比率从上下文特征池中移除来自在740中确定的上下文特征子集的上下文特征的至少一部分,以便形成修改的一组上下文特征。例如,给定如720中确定的20%的上下文丢弃率,在将特征输入到机器学习模型之前,将从上下文特征池中移除特征子集中五分之一的特征。因此,从对应于高准确度的表达特征的上下文特征子集中有针对性地丢弃上下文特征,以防止那些上下文特征不正确地朝不正确的上下文预测权衡模型的输出。
在760处,可以发生附加的一般上下文丢弃的可选步骤。例如,除了作为740和750的一部分发生的有针对性的上下文丢弃之外,还可能发生附加的一般上下文丢弃。760中的一般上下文丢弃包括以对应于单独的上下文丢弃率的比率从750中生成的所述修改的一组上下文特征中移除至少一部分上下文特征,以形成进一步修改的一组上下文特征。例如,在将所有特征输入到机器学习模型中之前,可以从上下文特征池中丢弃对上下文特征的随机选择。这将导致上文讨论的第一有针对性的丢弃和第二一般随机丢弃的两步丢弃。
在770处,机器学习模型处理所述修改的一组上下文特征和该组表达特征。机器学习模型将纳入所述修改的一组上下文特征和该组表达特征作为输入,以引起对特征的处理并基于所述处理生成输出预测。例如,所述修改的一组上下文特征和该组表达特征中的每个特征可以映射到机器学习模型中的ANN的输入节点,尽管ANN的某些输入节点可以从丢弃的上下文特征接收减少的或空的值,从而影响输入节点中的值的处理。
图8是根据某些实施例的利用特征丢弃的技能分类器人工神经网络机器学习模型的简化框图。具体而言,图8描绘了技能分类器机器学习模型的示例实施例,所述技能分类器机器学习模型被配置成利用人工神经网络将多个上下文特征和表达特征作为输入,并输出用于处理自然语言查询的预测技能。
如图8所描绘的,技能分类器800将多个上下文特征810(1)-810(4)和多个表达特征820(1)-820(N)作为输入。应当理解,任一类型的特征输入的数量都不受图8描绘的示例实施例的限制,并且实际上可以是非常大量的特征,以准确地反映可以生成的自然语言查询的各种上下文特征和表达特征。每个输入特征被映射到ANN的输入节点830(A)-830(N)。
作为本文描述的丢弃过程的一部分,在机器学习模型技能分类器800处理输入之前,可以从输入池中丢弃一个或多个特征。例如,如图8所描绘的,包括上下文特征810(2)和810(4)的若干上下文特征与对应的输入节点830(B)和830(D)分离。这示出了输入特征如何被丢弃,以减少某些特征在机器学习模型处理中的权重,并增加其他特征的权重。例如,通过丢弃上下文特征810(2)和810(4),对应的输入节点830(B)和830(D)将不生成初始值,并且将向ANN中节点处理的连续隐藏层提供很少的节点权重(如果有的话)。
输入节点830(A)-830(N)经由一条或多条边被映射到人工神经网络的附加层。例如,从输入节点830(A)-830(N)发出的多条边导致隐藏层的附加节点,每个节点可以具有对应的节点参数/权重值。例如,如图8所描绘的,输入节点830(A)-830(N)被映射到人工神经网络的隐藏层840(A)。应当理解,人工神经网络是包括每个连续层中的节点的一对一边关系或其中的任何边子集的网络。
从输入节点830(A)-830(N)传递的值连续穿过多个隐藏层840(A)-840(N),以前进穿过神经网络。应当理解,节点参数/权重以及在一些情况下节点之间的边的权重根据一种或多种机器学习训练方法而改变。一旦隐藏层840(N)已经处理了来自前一隐藏层的数据,所述数据就被传递到得分选择器850。得分选择器850可以利用一个或多个得分选择标准和从隐藏层840(N)接收到的值来确定将由技能分类器800输出的预测技能860。例如,得分选择器850可以接收与可以从中选择预测技能860的多个可能技能相关的一个或多个得分值,并且利用指定选择最高得分来选择预测技能860的标准。
噪声补偿训练
如上文所讨论的,上下文特征和表达特征的丢弃率可以用于由机器学***衡特征处理,以生成更准确的预测。在一些情况下,上下文特征可能比对应的表达特征更不可能产生准确的结果,或反之亦然,但这并不意味着完全排除短语是有益的。如上所述,使用地名词典来生成表达特征可能导致生成对应于将自然语言术语与地名词典相匹配的假阳性的特征。例如,短语“Mark these exams as soon as possible(尽可能快地标记这些考试)”将术语“Mark”用作动词,尽管标签类型“Name”的地名词典可以生成使模型倾向于将术语识别为“Name”的表达特征。随着地名词典包含更多自然语言中的常用词,问题会越来越多。例如,单词“An”和“The”是地名词典可以识别的名称,但也是英语中非常常见的连接词。为这些单词生成的表达特征可能会让模型不堪重负,因为这暗示使用这些术语的短语对应于名称,尽管事实并非如此。以这种方式,在给定的自然语言查询中,表达特征可能导致非常高的“噪声”率或表达特征的识别率。噪声可以使用以下等式定义:
N=a/(a+b) 等式(1)
其中,N是所生成的噪声的得分表示,a是违反短语(即,自然语言查询中与地名词典中的短语相匹配,但是其正确标签与地名词典的标签不匹配的短语)的数量,并且b是符合短语(所述短语与地名词典中的短语相匹配,并且具有与地名词典的标签相匹配的正确标签)的数量。例如,包括术语“An”和“The”的“Names”地名词典将产生非常高的噪声量(值a非常高,并且值b非常低)。噪声将减缓机器学习模型的训练和机器学习模型作出的预测,因为所有的假阳性都是作为表达特征生成的。
相反,当噪声非常小时(即,生成的表达特征很少或权重不高),表达特征的精度很高(即,表达特征不会为短语生成许多假阳性),但特征的调用很低(即,没有充分利用表达特征,并且可能生成许多假阴性)。因此,当考虑输入到机器学***的噪声。可以通过执行特征的上下文或表达丢弃来控制噪声水平,以满足噪声阈值范围。违反短语和符合短语的数量可以通过将地名词典与用于训练机器学习模型的训练数据集进行比较来确定。当训练数据集用于训练机器学习模型时,训练数据集提供了确定预测噪声值的极好机会,并且将允许更准确地预测地名词典在用于生成自然语言查询的表达特征时将产生多少噪声。
图9图示了根据各种实施例的用于执行作为自然语言处理器的多特征平衡的一部分的基于噪声的特征丢弃的过程流程。图9所描绘的处理以由相应***的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合实施。软件存储在非暂态存储介质上(例如,存储器设备上)。图9所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图9描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在某些替代性实施例中,步骤以某种不同的顺序执行或者一些步骤还可以并行地执行。在各种实施例中,过程900中详细描述的步骤由本文参考图1至图8讨论的***和模型执行。
过程900开始于过程700的730处,其中,确定自然语言查询的一组上下文特征和一组表达特征。
在910处,在确定了表达特征和上下文特征之后,将训练数据集与自然语言短语数据集进行比较,以确定术语与短语类别之间的部分匹配的数量以及术语与短语类别之间的完全匹配的数量。术语和类别的比较对应于确定训练数据和地名词典的重叠短语,以及确定重叠术语是否对应于相同的分类标签(例如,“Location”)。当短语被包括在训练数据和地名词典中,但是与训练数据中的短语相关联的黄金标签与地名词典的属性标签不匹配时,发生部分匹配。当短语被包括在训练数据和地名词典中,并且与训练数据中的短语相关联的黄金标签与地名词典的属性标签相匹配时,发生完全匹配。
在920处,基于部分匹配的数量和完全匹配的数量生成用于比较的噪声得分。例如,在等式(1)中,通过将部分匹配的数量a除以部分和完全匹配的总和a+b来生成噪声得分N。
在930处,确定噪声得分是否在容许范围内。可以允许特定范围的噪声,以避免过多的噪声干扰机器学***。例如,可允许的范围可以由数据科学家提供,或者在机器学习模型的超参数调谐期间获得。
在940处,如果噪声得分不在容许范围内,则根据在920中生成的噪声得分来更新上下文/表达丢弃率。例如,给定.05-.15的容许噪声范围,生成的噪声得分可以是.2。因此,在输入到机器学习模型之前,应该丢弃多个表达特征,以避免在训练机器学习模型或响应于来自客户端的自然语言查询而生成预测输出时产生过多的噪声。表达特征的减少将减少预测时部分匹配的数量,从而降低噪声得分。可替代地,给定相同的允许噪声范围,生成的噪声得分可以是.02。因此,在输入到机器学习模型之前,应该丢弃多个上下文特征,以增加赋予表达特征的权重。这可能会增加噪声率,但也会提高机器学习模型的调用。
在950处,根据更新的上下文/表达丢弃率来执行上下文/表达丢弃。上文参考图7和图8描述了所执行的丢弃。
在960处,在执行上下文/表达丢弃之后,或者如果噪声得分已经在930中确定的容许范围内,则机器学习模型处理所述修改的一组上下文特征和该组表达特征,所述特征可能已经在950中通过丢弃而被修改。
模型组合方法
在各种实施例中,可以使用多种平衡技术(包括以不同的比例)以通过机器学***衡技术可以以实现更高效的训练和预测结果所需的任何方式进行组合。例如,覆盖平衡子***422可以在生成表达特征和上下文特征之前执行覆盖平衡以修改训练数据集和/或地名词典。所得到的修改的训练数据集可以用于再训练机器学***衡子***424和/或噪声平衡子***426然后可以在将特征输入到再训练的机器学***衡过程的任何组合可以以任何组合或比例使用,以实现机器学习模型的更精确的预测和调用。
说明性***
图10描绘了分布式***1000的简化图。在图示的示例中,分布式***1000包括经由一个或多个通信网络1010耦接到服务器1012的一个或多个客户端计算设备1002、1004、1006和1008。客户端计算设备1002、1004、1006和1008可以被配置为执行一个或多个应用程序。
在各种示例中,服务器1012可以被适配成运行实现本公开所描述的一个或多个实施例的一个或多个服务或软件应用程序。在某些示例中,服务器1012还可以提供可以包括非虚拟环境和虚拟环境的其他服务或软件应用程序。在一些示例中,这些服务可以作为基于web的服务或云服务(如在软件即服务(SaaS)模型下)提供给客户端计算设备1002、1004、1006和/或1008的用户。操作客户端计算设备1002、1004、1006和/或1008的用户进而可以利用一个或多个客户端应用程序来与服务器1012交互以利用这些部件所提供的服务。
在图10所描绘的配置中,服务器1012可以包括实施由服务器1012执行的功能的一个或多个部件1018、1020和1022。这些部件可以包括可以由一个或多个处理器、硬件部件或其组合执行的软件部件。应了解,可以与分布式***1000不同的各种不同***配置是可能的。因此,图10所示出的示例是用于实施示例***的分布式***的一个示例并且不旨在是限制性的。
用户可以使用客户端计算设备1002、1004、1006和/或1008来执行一个或多个应用程序、模型或聊天机器人,所述一个或多个应用程序、模型或聊天机器人可以生成然后可以根据本公开的传授内容实施或服务的一个或多个事件或模型。客户端设备可以提供使客户端设备的用户能够与客户端设备交互的接口。客户端设备还可以经由该接口向用户输出信息。尽管图10描绘了仅四个客户端计算设备,但是可以支持任何数量的客户端计算设备。
客户端设备可以包括各种类型的计算***,如便携式手持设备、如个人计算机和膝上型计算机等通用计算机、工作站计算机、可穿戴设备、游戏***、瘦客户端、各种消息传递设备、传感器或其他感测设备等。这些计算设备可以运行各种类型和版本的软件应用程序和操作***(例如,MicrosoftApple/>或类UNIX操作***、Linux或类Linux操作***(如Google ChromeTMOS)),包括各种移动操作***(例如,Microsoft Windows/>Windows/>AndroidTM、/>Palm/>)。便携式手持设备可以包括蜂窝电话、智能电话(例如,/>)、平板计算机(例如,/>)、个人数字助理(PDA)等。可穿戴设备可以包括Google/>头戴式显示器以及其他设备。游戏***可以包括各种手持游戏设备、支持因特网的游戏设备(例如,有或没有/>姿势输入设备的Microsoft/>游戏控制台、Sony/>***、由/>提供的各种游戏***、以及其他)等。客户端设备可以能够执行各种不同的应用程序,如各种因特网相关应用程序、通信应用程序(例如,电子邮件应用程序、短消息服务(SMS)应用程序)并可以使用各种通信协议。
(多个)网络1010可以是本领域技术人员所熟悉的可以使用各种可用协议中的任何一种支持数据通信的任何类型的网络,所述可用协议包括但不限于TCP/IP(传输控制协议/因特网协议)、SNA(***网络架构)、IPX(因特网分组交换)、等。仅通过示例的方式,(多个)网络1010可以是局域网(LAN)、基于以太网的网络、令牌环、广域网(WAN)、因特网、虚拟网络、虚拟私人网络(VPN)、内部网、外部网、公共交换电话网(PSTN)、红外线网、无线网(例如,根据电气与电子协会(IEEE)1002.11协议套件、/>和/或任何其他无线协议中的任一种协议操作的网络)和/或这些网络和/或其他网络的任何组合。
服务器1012可以由以下各项构成:一个或多个通用计算机、专用服务器计算机(通过示例的方式包括PC(个人计算机)服务器、服务器、中档服务器、大型计算机、机架式服务器等)、服务器群、服务器集群、或任何其他适当的布置和/或组合。服务器1012可以包括运行虚拟操作***的一个或多个虚拟机或涉及虚拟化的其他计算架构,比如逻辑存储设备的可以被虚拟化以维护服务器的虚拟存储设备的一个或多个灵活池。在各种示例中,服务器1012可以被适配成运行提供前述公开内容所描述的功能的一个或多个服务或软件应用程序。
服务器1012中的计算***可以运行一个或多个操作***,所述一个或多个操作***包括上文所讨论的那些操作***中的任何一个操作***以及任何可商购获得的服务器操作***。服务器1012也可以运行各种附加服务器应用程序和/或中间层应用程序中的任何一种应用程序,包括HTTP(超文本运输协议)服务器、FTP(文件传送协议)服务器、CGI(通用网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从/>(国际商业机器公司)等商购获得的那些数据库服务器。
在一些实施方式中,服务器1012可以包括一个或多个应用程序以分析并合并从客户端计算设备1002、1004、1006和1008的用户接收的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于馈送、/>更新或从一个或多个第三方信息源和连续数据流接收的实时更新,所述实时更新可以包括与传感器数据应用程序、财务收报机、网络性能测量工具(例如,网络监测和流量管理应用程序)、点击流分析工具、汽车交通监测等相关的实时事件。服务器1012还可以包括一个或多个应用程序以经由客户端计算设备1002、1004、1006和1008的一个或多个显示设备来显示数据馈送和/或实时事件。
分布式***1000还可以包括一个或多个数据储存库1014、1016。在某些示例中,这些数据储存库可以用于存储数据和其他信息。例如,数据储存库1014、1016中的一个或多个可以用于存储信息(如与聊天机器人性能或生成的模型有关的信息)以供服务器1012在执行根据各种实施例的各种功能时使用的聊天机器人使用。数据储存库1014、1016可以驻留在各种位置。例如,服务器1012所使用的数据储存库可以在服务器1012本地或者可以远离服务器1012并经由基于网络的或专用的连接与服务器1012通信。数据储存库1014、1016可以是不同类型。在某些示例中,服务器1012所使用的数据储存库可以是数据库,例如关系数据库,如由Oracle和其他供应商提供的数据库。这些数据库中的一个或多个数据库可以被适配成响应于SQL格式的命令来实现数据到以及从数据库的存储、更新和取得。
在某些示例中,数据储存库1014、1016中的一个或多个数据储存库还可以被应用程序用来存储应用程序数据。应用程序所使用的数据储存库可以是不同类型,如例如键值存储储存库、对象存储储存库或由文件***支持的通用存储储存库。
在某些示例中,本公开所描述的功能可以经由云环境作为服务提供。图11是根据某些示例的各种服务在其中可以作为云服务被提供的基于云的***环境的简化框图。在图11所描绘的示例中,云基础设施***1102可以提供可以由用户使用一个或多个客户端计算设备1104、1106和1108请求的一个或多个云服务。云基础设施***1102可以包括一个或多个计算机和/或服务器,所述一个或多个计算机和/或服务器可以包括上文针对服务器1012所描述的那些计算机和/或服务器。云基础设施***1102中的计算机可以被组织成通用计算机、专用服务器计算机、服务器群、服务器集群或任何其他适当的布置和/或组合。
(多个)网络1110可以促进客户端1104、1106和1108与云基础设施***1102之间的数据通信和交换。(多个)网络1110可以包括一个或多个网络。网络可以是相同或不同的类型。(多个)网络1110可以支持一个或多个通信协议(包括有线和/或无线协议)以促进通信。
图11所描绘的示例仅是云基础设施***的一个示例并且不旨在是限制性的。应当理解,在一些其他示例中,云基础设施***1102可以具有比图11所描绘的那些部件更多或更少的部件、可以组合两个或更多个部件或者可以具有不同的部件配置或布置。例如,尽管图11描绘了三个客户端计算设备,但是在替代性示例中,可以支持任何数量的客户端计算设备。
术语云服务通常用于指代通过服务提供商的***(例如,云基础设施***1102)按需且经由如因特网等通信网络变得可用于用户的服务。通常,在公共云环境中,构成云服务提供商的***的服务器和***与客户自身的室内服务器和***不同。云服务提供商的***由云服务提供商管理。因此,客户可以使自身利用由云服务提供商提供的云服务,而不必针对服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的***可以托管应用程序,并且用户可以经由因特网按需订购并使用应用程序,而用户不必购买用于执行应用程序的基础设施资源。云服务被设计成提供对应用程序、资源和服务的容易的、可伸缩的访问。几个提供商提供云服务。例如,由加利福尼亚州红木海岸(Redwood Shores,California)的Oracle提供如中间件服务、数据库服务、Java云服务以及其他服务等几种云服务。
在某些示例中,云基础设施***1102可以使用不同的模型(如在软件即服务(SaaS)模型、平台即服务(PaaS)模型、基础设施即服务(IaaS)模型和其他模型(包括混合服务模型)下)提供一个或多个云服务。云基础设施***1102可以包括实现对各种云服务的供给的一套应用程序、中间件、数据库和其他资源。
SaaS模型使应用程序或软件能够作为服务通过如因特网等通信网络输送给客户,而客户不必购买底层应用程序的硬件或软件。例如,可以使用SaaS模型为客户提供对由云基础设施***1102托管的按需应用程序的访问。Oracle提供的SaaS服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(CRM)、企业资源规划(ERP)、供应链管理(SCM)、企业绩效管理(EPM)、分析服务、社交应用程序以及其他等的各种服务。
IaaS模型通常用于将基础设施资源(例如,服务器、存储、硬件和联网资源)作为云服务提供给客户以提供弹性计算和存储能力。由Oracle提供各种IaaS服务。
PaaS模型通常用于提供使客户能够开发、运行并管理应用程序和服务而客户不必采购、构建或维护这种资源的平台和环境资源作为服务。由Oracle提供的PaaS服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)、数据管理云服务、各种应用程序开发解决方案服务、以及其他服务。
云服务通常是以按需自助服务基础、基于订阅、可弹性伸缩、可靠、高度可用且安全的方式提供的。例如,客户可以经由订阅订单来订购由云基础设施***1102提供的一个或多个服务。然后,云基础设施***1102执行处理以提供客户的订阅订单中请求的服务。例如,用户可以使用话语来请求云基础设施***采取如上文所描述的某个动作(例如,意图)和/或为如本文所描述的聊天机器人***提供服务。云基础设施***1102可以被配置为提供一个或甚至多个云服务。
云基础设施***1102可以经由不同的部署模型提供云服务。在公共云模型中,云基础设施***1102可以由第三方云服务提供商拥有,并且云服务被提供给任何一般的公众客户,其中,所述客户可以是个人或企业。在某些其他示例中,在私有云模型下,云基础设施***1102可以在组织内(例如,在企业组织内)操作并且服务被提供给组织内的客户。例如,客户可以是如人力资源部门、薪资部门等企业的各个部门或甚至是企业内的个人。在某些其他示例中,在社区云模型下,云基础设施***1102和所提供的服务可以由有关的社区中的几个组织共享。也可以使用如上文所提到的模型的混合等各种其他模型。
客户端计算设备1104、1106和1108可以是不同类型的(如图10所描绘的客户端计算设备1002、1004、1006和1008)并且可以能够操作一个或多个客户端应用程序。用户可以使用客户端设备与云基础设施***1102交互,如请求由云基础设施***1102提供的服务。例如,用户可以使用客户端设备从如本公开所描述的聊天机器人请求信息或动作。
在一些示例中,由云基础设施***1102执行的用于提供服务的处理可以涉及模型训练和部署。此分析可以涉及使用、分析并操纵数据集来训练并部署一个或多个模型。该分析可以由一个或多个处理器执行,从而可能并行地处理数据、使用数据执行模拟等。例如,大数据分析可以由云基础设施***1102执行以用于针对聊天机器人***生成并训练一个或多个模型。用于该分析的数据可以包括结构化数据(例如,被存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据块(二进制大对象))。
如图11中的示例所描绘的,云基础设施***1102可以包括被用于促进供给由云基础设施***1102提供的各种云服务的基础设施资源1130。基础设施资源1130可以包括例如处理资源、存储或存储器资源、联网资源等。在某些示例中,可用于服务从应用程序请求的存储的存储虚拟机可以是云基础设施***1102的一部分。在其他示例中,存储虚拟机可以是不同***的一部分。
在某些示例中,为了促进这些资源的高效供给以支持由云基础设施***1102为不同客户提供的各种云服务,资源可以绑定到资源组或资源模块(也称为“群(pod)”)中。每个资源模块或群可以包括一种或多种类型的资源的预先集成且优化的组合。在某些示例中,可以针对不同类型的云服务预先供给不同的群。例如,可以针对数据库服务供给第一组群、可以针对Java服务供给第二组群(所述第二组群可以包括与第一组群中的群不同的资源组合)等。对于一些服务,被分配用于供给服务的资源可以在服务之间共享。
云基础设施***1102自身可以在内部使用由云基础设施***1102的不同部件共享并且促进云基础设施***1102供给服务的服务1132。这些内部共享服务可以包括但不限于安全和身份服务、整合服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高度可用性、备份和恢复服务、用于实现云支持的服务、电子邮件服务、通知服务、文件传送服务等。
云基础设施***1102可以包括多个子***。这些子***可以以软件或硬件或其组合实施。如图11所描绘的,子***可以包括使得云基础设施***1102的用户或客户能够与云基础设施***1102交互的用户接口子***1112。用户接口子***1112可以包括各种不同的接口,如web接口1114、在线商店接口1116(其中,广告并且消费者可购买由云基础设施***1102提供的云服务)和其他接口1118。例如,客户可以使用客户端设备请求(服务请求1134)由云基础设施***1102使用接口1114、1116和1118中的一个或多个接口提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施***1102提供的云服务并且针对客户希望订阅的由云基础设施***1102提供的一个或多个服务下订阅订单。服务请求可以包括标识客户和客户期望订阅的一个或多个服务的信息。例如,客户可以针对由云基础设施***1102提供的服务下订阅订单。作为订单的一部分,客户可以提供标识服务要针对其提供的聊天机器人***的信息并且可选地为聊天机器人***提供一个或多个凭证。
在某些示例(如图11所描绘的示例)中,云基础设施***1102可以包括被配置为处理新订单的订单管理子***(OMS)1120。作为该处理的一部分,OMS 1120可以被配置为:为客户创建账户(如果尚未创建的话);从客户接收要用于向客户开具账单以向客户提供所请求的服务的账单和/或计费信息;验证客户信息;在验证之后,为客户预订订单;并且策划各种工作流程来准备订单以进行供给。
一旦被正确地验证,那么,OMS 1120就可以调用被配置成为订单供给资源(包括处理资源、存储器资源和联网资源)的订单供给子***(OPS)1124。供给可以包括为订单分配资源并配置资源以促进客户订单所请求的服务。为订单供给资源的方式和所供给的资源的类型可以取决于客户已经订购的云服务的类型。例如,根据一个工作流程,OPS 1124可以被配置为确定正在请求的特定云服务并且识别可能已经为所述特定云服务预先配置的群的数量。为订单分配的群的数量可以取决于所请求服务的大小/量/层级/范围。例如,要分配的群的数量可以基于服务所要支持的用户的数量、正在请求的服务的持续时间等来确定。然后,可以为特定的请求客户定制分配的群以用于提供所请求服务。
在某些示例中,如上文所描述的设置阶段处理可以作为供给过程的一部分由云基础设施***1102来执行。云基础设施***1102可以生成应用程序ID并从云基础设施***1102自身所提供的存储虚拟机中或从除云基础设施***1102以外的其他***所提供的存储虚拟机中为应用程序选择存储虚拟机。
云基础设施***1102可以向请求客户发送回应或通知1144,以指示何时所请求服务现在已准备好使用。在一些实例中,可以向客户发送使客户能够开始使用和利用所请求服务的益处的信息(例如,链接)。在某些示例中,对于请求服务的客户,回应可以包括由云基础设施***1102生成的聊天机器人***ID和标识由云基础设施***1102对应于聊天机器人***ID为聊天机器人***选择的聊天机器人***的信息。
云基础设施***1102可以向多个客户提供服务。对于每个客户,云基础设施***1102负责管理与从客户接收的一个或多个订阅订单有关的信息、维护与订单相关的客户数据并且向客户提供所请求服务。云基础设施***1102还可以收集关于客户使用所订阅服务的使用情况统计数据。例如,可以收集所使用的存储量、所传送的数据量、用户的数量以及***开机时间量和***停机时间量等的统计数据。可以使用该使用情况信息向客户开具账单。可以例如以月为周期完成开具账单。
云基础设施***1102可以并行地向多个客户提供服务。云基础设施***1102可以存储这些客户的信息(可能包括专有信息)。在某些示例中,云基础设施***1102包括被配置为管理客户信息并提供对所管理信息的分离使得与一个客户有关的信息不能被另一个客户访问的身份管理子***(IMS)1128。IMS 1128可以被配置为提供如身份服务等各种安全有关服务,如信息访问管理、认证和授权服务、用于管理客户身份和角色以及相关功能的服务等。
图12图示了计算机***1200的示例。在一些示例中,计算机***1200可以用于实施分布式环境内的任何数字助理或聊天机器人***以及上文所描述的各种服务器和计算机***。如图12所示,计算机***1200包括各种子***,包括经由总线子***1202与多个其他子***通信的处理子***1204。这些其他子***可以包括处理加速单元1206、I/O子***1208、存储子***1218和通信子***1224。存储子***1218可以包括非暂态计算机可读存储介质,包括存储介质1222和***存储器1210。
总线子***1202提供用于允许计算机***1200的各个部件和子***按预期彼此通信的机构。虽然总线子***1202被示意性地示出为单个总线,但是总线子***的替代性示例可以利用多个总线。总线子***1202可以是包括存储器总线或存储器控制器、***总线、使用各种总线架构中的任何一种的局部总线等的若干种类型的总线结构中的任何一种。例如,这种架构可以包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及***部件互连(PCI)总线(所述PCI总线可以被实施为被制造成IEEE P1386.1标准的夹层(Mezzanine)总线)等。
处理子***1204控制计算机***1200的操作并且可以包括一个或多个处理器、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。处理器可以包括单核处理器或多核处理器。计算机***1200的处理资源可以被组织成一个或多个处理单元1232、1234等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核、核和处理器的组合或核和处理器的其他组合。在一些示例中,处理子***1204可以包括如图形处理器、数字信号处理器(DSP)等一个或多个专用协处理器。在一些示例中,处理子***1204的处理单元中的一些或全部可以使用如专用集成电路(ASIC)或现场可编程门阵列(FPGA)等定制电路来实施。
在一些示例中,处理子***1204中的处理单元可以执行被存储在***存储器1210内或计算机可读存储介质1222上的指令。在各种示例中,处理单元可以执行各种程序或代码指令并且可以维护多个同时执行的程序或过程。在任何给定时间,要执行的程序代码中的一些或全部可以驻留在***存储器1210中和/或计算机可读存储介质1222上(潜在地包括驻留在一个或多个存储设备上)。通过适合的编程,处理子***1204可以提供上文所描述的各种功能。在计算机***1200在执行一个或多个虚拟机的实例中,可以向每个虚拟机分配一个或多个处理单元。
在某些示例中,可以可选地提供处理加速单元1206以用于执行定制处理或用于卸载处理子***1204所执行的处理中的一些处理,从而加速计算机***1200所执行的总体处理。
I/O子***1208可以包括用于向计算机***1200输入信息和/或用于从或经由计算机***1200输出信息的设备和机构。通常,使用术语输入设备旨在包括用于向计算机***1200输入信息的所有可能类型的设备和机构。用户接口输入设备可以包括例如键盘、如鼠标或轨迹球等指向设备、合并到显示器中的触摸板或触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、具有话音命令识别***的音频输入设备、麦克风以及其他类型的输入设备。用户接口输入设备还可以包括运动感测和/或姿势识别设备,如使用户能够控制输入设备并与输入设备交互的Microsoft运动传感器、Microsoft/>360游戏控制器、提供用于使用姿势和口述命令接收输入的界面的设备。用户接口输入设备还可以包括眼部姿势识别设备,如检测来自用户的眼部活动(例如,在拍照和/或进行菜单选择时“眨眼”)并将眼部姿势转化为到输入设备(如Google/>)的输入的Google/>眨眼检测器。另外,用户接口输入设备可以包括使用户能够通过声音命令与声音识别***(例如,/>导航器)交互的声音识别感测设备。
用户接口输入设备的其他示例包括但不限于三维(3D)鼠标、操纵杆或指向杆、游戏手柄和图形板、以及音频/视觉设备(如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、眼睛注视跟踪设备)。另外,用户接口输入设备可以包括例如医学成像输入设备,如计算机断层扫描、磁共振成像、正电子发射断层扫描和医学超声检查设备。用户接口输入设备还可以包括例如音频输入设备,如MIDI键盘、数码乐器等。
通常,使用术语输出设备旨在包括用于从计算机***1200向用户或其他计算机输出信息的所有可能类型的设备和机构。用户接口输出设备可以包括显示子***、指示灯或如音频输出设备等非视觉显示器。显示子***可以是阴极射线管(CRT)、平板设备(如使用液晶显示器(LCD)或等离子显示器的平板设备)、投影设备、触摸屏等。例如,用户接口输出设备可以包括但不限于在视觉上传达文本、图形和音频/视频信息的各种显示设备,如监视器、打印机、扬声器、头戴式耳机、汽车导航***、绘图仪、话音输出设备和调制解调器。
存储子***1218提供用于存储计算机***1200所使用的信息和数据的储存库或数据存储装置。存储子***1218提供用于存储提供一些示例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子***1218可以存储当由处理子***1204执行时提供上文所描述的功能的软件(例如,程序、代码模块、指令)。软件可以由处理子***1204的一个或多个处理单元执行。存储子***1218还可以根据本公开的传授内容提供认证。
存储子***1218可以包括一个或多个非暂态存储器设备,所述一个或多个非暂态存储器设备包括易失性存储器设备和非易失性存储器设备。如图12所示,存储子***1218包括***存储器1210和计算机可读存储介质1222。***存储器1210可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)和其中存储有固定指令的非易失性只读存储器(ROM)或闪速存储器。在一些实施方式中,包含在启动期间帮助计算机***1200内的元件之间传送信息的基本例程的基本输入/输出***(BIOS)通常可以存储在ROM中。RAM通常包含目前由处理子***1204操作并执行的数据和/或程序模块。在一些实施方式中,***存储器1210可以包括如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等多种不同类型的存储器。
通过示例而非限制的方式,如图12所描绘的,***存储器1210可以加载正在执行的应用程序1212(所述应用程序可以包括如Web浏览器、中间层应用程序、关系数据库管理***(RDBMS)等各种应用程序)、程序数据1214和操作***1216。通过示例的方式,操作***1216可以包括各种版本的MicrosoftApple/>和/或Linux操作***、各种可商购获得的/>或类UNIX操作***(包括但不限于各种GNU/Linux操作***、GoogleOS等)和/或如iOS、/>电话、/>OS、/>OS、/>OS操作***等移动操作***、以及其他操作***。
计算机可读存储介质1222可以存储提供一些示例的功能的编程和数据构造。计算机可读介质1222可以为计算机***1200提供对计算机可读指令、数据结构、程序模块和其他数据的存储。当由处理子***1204执行时提供上文所描述的功能的软件(程序、代码模块、指令)可以存储在存储子***1218中。通过示例的方式,计算机可读存储介质1222可以包括如硬盘驱动器、磁盘驱动器、光盘驱动器(如CD ROM、DVD、盘或其他光学介质)等非易失性存储器。计算机可读存储介质1222可以包括但不限于/>驱动器、闪速存储器卡、通用串行总线(USB)闪速存储器驱动器、安全数字(SD)卡、DVD盘、数字录像带等。计算机可读存储介质1222还可以包括如基于闪速存储器的固态驱动器(SSD)、企业级闪速存储器驱动器、固态ROM等基于非易失性存储器的SSD、基于如固态RAM、动态RAM、静态RAM等易失性存储器的SSD、基于DRAM的SSD、磁阻RAM(MRAM)SSD以及使用DRAM和基于闪速存储器的SSD的组合的混合SSD。
在某些示例中,存储子***1218还可以包括可以进一步连接到计算机可读存储介质1222的计算机可读存储介质读取器1220。读取器1220可以从如盘、闪速存储器驱动器等存储器设备接收数据并且被配置为从所述存储器设备读取数据。
在某些示例中,计算机***1200可以支持虚拟化技术,包括但不限于对处理和存储器资源的虚拟化。例如,计算机***1200可以提供对执行一个或多个虚拟机的支持。在某些示例中,计算机***1200可以执行如促进对虚拟机的配置和管理的管理程序等程序。每个虚拟机可以分配有存储器、计算(例如,处理器、核)、I/O和联网资源。每个虚拟机通常独立于其他虚拟机运行。虚拟机通常运行其自身的操作***,所述操作***可以与由计算机***1200所执行的其他虚拟机执行的操作***相同或不同。因此,多个操作***可以潜在地由计算机***1200同时运行。
通信子***1224提供到其他计算机***和网络的接口。通信子***1224用作用于从其他***接收数据并且从计算机***1200向其他***传输数据的接口。例如,通信子***1224可以使得计算机***1200能够经由因特网构建到一个或多个客户端设备的通信通道以用于从客户端设备接收信息并向客户端设备发送信息。例如,当计算机***1200用于实施图1所描绘的机器人***120时,通信子***可以用于与针对应用程序选择的聊天机器人***通信。
通信子***1224可以支持有线通信协议和/或无线通信协议两者。在某些示例中,通信子***1224可以包括用于访问无线声音和/或数据网络的射频(RF)收发器部件(例如,使用蜂窝电话技术、如3G、4G或EDGE(全球演进增强型数据速率)等先进的数据网络技术、WiFi(IEEE 802.XX家庭标准、或其他移动通信技术、或其任何组合)、全球定位***(GPS)接收器部件和/或其他部件。在一些示例中,除了无线接口之外或替代无线接口,通信子***1224可以提供有线网络连接性(例如,以太网)。
通信子***1224可以接收并发射各种形式的数据。在一些示例中,除了其他形式之外,通信子***1224还可以接收结构化和/或非结构化数据馈送1226、事件流1228、事件更新1230等形式的输入通信。例如,通信子***1224可以被配置为从社交媒体网络和/或其他通信服务的用户实时地接收(或发送)数据馈送1226,如馈送、/>更新、web馈送(如丰富站点摘要(RSS)馈送)和/或来自一个或多个第三方信息源的实时更新。
在某些示例中,通信子***1224可以被配置为接收连续数据流形式的数据,所述连续数据流可以包括(可以没有显式结束的本质上连续的或无界的)实时事件的事件流1228和/或事件更新1230。生成连续数据的应用程序的示例可以包括例如传感器数据应用程序、财务收报机、网络性能测量工具(例如,网络监测和流量管理应用程序)、点击流分析工具、汽车交通监测等。
通信子***1224还可以被配置为将数据从计算机***1200传送到其他计算机***或网络。可以将数据以如结构化和/或非结构化数据馈送1226、事件流1228、事件更新1230等各种不同的形式传送到可以与耦接至计算机***1200的一个或多个流数据源计算机通信的一个或多个数据库。
计算机***1200可以是各种类型中的一种,包括手持便携式设备(例如,蜂窝电话、/>计算平板计算机、PDA)、可穿戴设备(例如,Google/>头戴式显示器)、个人计算机、工作站、主机、自助服务终端、服务器机架、或任何其他数据处理***。由于计算机和网络的不断变化的性质,对图12所描绘的计算机***1200的描述旨在仅作为具体示例。具有比图12所描绘的***更多或更少的部件的许多其他配置是可能的。基于本公开和本文所提供的传授内容,应了解,有其他方式和/或方法来实施各种示例。
虽然已经描述了具体示例,但是各种修改、更改、替代性构造和等同物是可能的。示例不局限于在某些具体数据处理环境中的操作,而是自由地在多个数据处理环境中操作。另外,尽管已经使用特定系列的事务和步骤描述了某些示例,但是对于本领域技术人员而言应当显而易见的是,这不旨在是限制性的。虽然一些流程图将操作描述为顺序过程,但是许多操作可以并行地或同时地执行。另外,可以重新布置操作的顺序。过程可以具有图中未包括的另外的步骤。可以单独地或联合地使用上文所描述的示例的各种特征和方面。
进一步地,虽然已经使用硬件和软件的特定组合描述了某些示例,但是应当认识到,硬件和软件的其他组合也是可能的。某些示例可以仅以硬件或仅以软件或使用其组合实施。本文所描述的各种过程可以在相同处理器或不同处理器上以任何组合实施。
在将设备、***、部件或模块描述为被配置为执行某些操作或功能的情况下,这种配置可以例如通过将电子电路设计成执行操作、通过对可编程电子电路(如微处理器)进行编程以执行操作(如通过执行计算机指令或代码)或通过被编程成执行存储在非暂态存储器介质上的代码或指令的处理器或核或其任何组合来完成。过程可以使用包括但不限于用于过程间通信的传统技术的各种技术进行通信,并且不同的过程对可以使用不同的技术,或者相同的过程对可以在不同的时间使用不同的技术。
本公开中给出了具体细节以提供对示例的透彻理解。然而,可以在没有这些具体细节的情况下实践示例。例如,已经示出了公知的电路、过程、算法、结构和技术,而没有不必要的细节,以避免模糊示例。此描述仅提供了示例性示例并且不旨在限制其他示例的范围、适用性或配置。而是,先前对示例的描述将为本领域技术人员提供用于实施各种示例的使能描述。可以对元件的功能和布置作出各种改变。
因此,应当从说明性而非限制性意义上看待本说明书和附图。然而,将明显的是,在不脱离权利要求中阐述的更广泛的精神和范围的情况下,可以对其作出添加、减少、删除以及其他修改和改变。因此,虽然已经描述了具体示例,但是这些示例不旨在是限制性的。各种修改和等同物均在以下权利要求的范围内。
在前述说明书中,参考本公开的具体示例描述了本公开的各方面,但是本领域技术人员将认识到,本公开并不限于此。可以单独地或联合地使用上文所描述的公开的各种特征和方面。进一步地,在不脱离说明书的更广泛的精神和范围的情况下,可以在除了本文所描述的那些环境和应用程序外的任何数量的环境和应用环境中利用示例。因此,说明书和附图应被视为说明性的而非限制性的。
在前述描述中,出于说明的目的,以特定顺序描述了方法。应当了解,在替代性示例中,可以以与所描述的顺序不同的顺序来执行方法。还应当了解,上文所描述的方法可以由硬件部件执行或者可以体现在机器可执行指令的序列中,所述指令可以用于使机器(如用所述指令编程的通用或专用处理器或逻辑电路)执行所述方法。这些机器可执行指令可以存储在一个或多个机器可读介质上,如CD-ROM或其他类型的光盘、软盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、闪速存储器或适合于存储电子指令的其他类型的机器可读介质。可替代地,方法可以由硬件和软件的组合来执行。
在将部件描述为被配置为执行某些操作的情况下,这种配置可以例如通过设计用于执行操作的电子电路或其他硬件、通过对用于执行操作的可编程电子电路(例如,微处理器或其他适合的电子电路)进行编程或其任何组合来完成。
尽管本文已经详细描述了本申请的说明性示例,但是应当理解,可以以其他方式不同地体现并采用本发明概念,并且所附权利要求旨在被解释为包括这种变化,受现有技术限制的情况除外。

Claims (20)

1.一种计算机实施的方法,包括:
由计算设备接收与自然语言短语数据集和用于训练机器学习模型的训练数据集之间的期望的重叠相对应的第一覆盖值的指示;
由所述计算设备确定与所述自然语言短语数据集和所述训练数据集之间的测得的重叠相对应的第二覆盖值;
由所述计算设备基于所述第一覆盖值与所述第二覆盖值之间的比较来确定覆盖delta值;
由所述计算设备并基于所述覆盖delta值来修改所述自然语言短语数据集和所述训练数据集中的至少一者;以及
由所述计算设备利用包括修改的自然语言短语数据集的机器学习模型来处理包括输入特征集合的输入数据集,其中,所述机器学习模型至少部分地基于自然语言短语数据集来处理所述输入数据集以生成输出数据集。
2.如权利要求1所述的方法,进一步包括通过确定所述自然语言短语数据集中的也存在于所述训练数据中的自然语言短语的数量来确定所述第二覆盖值,其中,也在所述数据集中的所述自然语言短语中的每一个对应于与和所述自然语言短语数据集相关联的类别相匹配的类别。
3.如权利要求2所述的方法,其中,修改所述自然语言短语数据集和所述训练数据集中的至少一者包括通过更新所述自然语言短语数据集以包括来自所述训练数据的与所述类别相关联的一个或多个自然语言短语来修改所述自然语言短语数据集,其中,所更新的自然语言短语数据集以大于或等于所述第一覆盖值的比例包括一定数量的也存在于所述训练数据中的自然语言短语。
4.如权利要求2所述的方法,其中,修改所述自然语言短语数据集和所述训练数据集中的至少一者包括修改所述训练数据集,更新所述训练数据集以包括来自所述自然语言短语数据集的一个或多个自然语言短语并将所述一个或多个自然语言短语与所述类别相关联,其中,所述自然语言短语数据集以大于或等于所述第一覆盖值的比例包括一定数量的也存在于所更新的训练数据中的自然语言短语。
5.如权利要求4所述的方法,其中,更新所述训练数据集以包括来自所述自然语言短语数据集的所述一个或多个自然语言短语包括从所述一个或多个自然语言短语生成一个或多个训练对,所述一个或多个训练对包括从所述自然语言短语生成的自然语言查询和与所述自然语言短语数据集的所述类别相匹配的黄金标签类别。
6.如权利要求5所述的方法,其中,处理所述输入数据集包括由所述机器学习模型处理所更新的训练数据集以再训练所述机器学习模型。
7.如权利要求1所述的方法,其中,处理所述输入数据集包括由所述机器学习模型处理通过聊天机器人***接收的自然语言查询,其中,所述机器学习模型被配置成生成输出数据集,所述输出数据集包括与所述聊天机器人相关联的技能和意图中的至少一者,以用于回应所述自然语言查询。
8.如权利要求1所述的方法,其中,所述机器学习模型是卷积神经网络机器学习模型,并且所述输入特征集合与所述卷积神经网络的输入节点相对应。
9.一种计算机实施的方法,包括:
由计算设备接收要由机器学习模型处理的自然语言查询,所述机器学习模型利用自然语言短语数据集来处理自然语言查询;
由所述计算设备并基于所述机器学习模型和所述自然语言查询来确定特征丢弃值;
由所述计算设备并基于所述自然语言查询生成能够被输入到所述机器学习模型的一个或多个上下文特征和一个或多个表达特征;
由所述计算设备基于所述特征丢弃值修改至少一者或所述一个或多个上下文特征和所述一个或多个表达特征,以生成用于所述机器学习模型的输入特征集合;以及
由所述计算设备利用所述机器学习模型来处理所述输入特征集合,以使得生成用于与所述自然语言查询相对应的输出数据集。
10.如权利要求9所述的方法,其中:
所述特征丢弃值是与所述一个或多个上下文特征的上下文特征百分比相对应的第一上下文特征丢弃值;
所述方法进一步包括通过基于所述第一上下文特征丢弃值从所述一个或多个上下文特征中移除某一百分比的上下文特征来修改所述一个或多个上下文特征;
所述输入特征集合是从所修改的一个或多个上下文特征和所述一个或多个表达特征生成的。
11.如权利要求10所述的方法,其中:
所述特征丢弃值进一步包括第二上下文特征丢弃值,所述第二上下文特征丢弃值对应于所述一个或多个上下文特征中与所述自然语言短语数据集中的自然语言短语相对应的上下文特征的百分比;
所述方法进一步包括确定上下文特征子集,所述上下文特征子集中的每个上下文特征与所述自然语言短语数据集中的自然语言短语相对应;
所述方法进一步包括通过从所述上下文特征子集中移除与所述第二上下文特征丢弃值相对应的某一百分比的上下文特征来修改所述上下文特征子集;
修改所述一个或多个上下文特征通过包括基于所述第一上下文特征丢弃值从包括所修改的上下文特征子集的所述一个或多个上下文特征中移除某一百分比的上下文特征。
12.如权利要求9所述的方法,其中:
所述特征丢弃值是与所述一个或多个表达特征的表达特征百分比相对应的第一表达特征丢弃值;
所述方法进一步包括通过基于所述第一表达特征丢弃值从所述一个或多个表达特征中移除某一百分比的表达特征来修改所述一个或多个表达特征;
所述输入特征集合是从所述一个或多个上下文特征和所修改的一个或多个表达特征生成的。
13.如权利要求9所述的方法,进一步包括:
将所述自然语言短语数据集与用于训练所述机器学习模型的训练数据集进行比较;以及
基于所述比较来确定噪声值,所述噪声值对应于所述自然语言短语数据集和所述训练数据集中与相同特定类别相关联的自然语言短语的数量以及所述自然语言短语数据集和所述训练数据集中与不同类别相关联的自然语言短语的数量;
其中,所述特征丢弃值是至少部分地基于所述噪声值而确定的。
14.如权利要求9所述的方法,其中,所述机器学习模型是卷积神经网络机器学习模型,并且所述输入特征集合与所述卷积神经网络的输入节点相对应。
15.一种非暂态计算机可读存储器,所述非暂态计算机可读存储器存储有能够由一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行以下操作的指令:
由计算设备接收要由机器学习模型处理的自然语言查询,所述机器学习模型利用自然语言短语数据集来处理自然语言查询;
由所述计算设备并基于所述机器学习模型和所述自然语言查询来确定特征丢弃值;
由所述计算设备并基于所述自然语言查询生成能够被输入到所述机器学习模型的一个或多个上下文特征和一个或多个表达特征;
由所述计算设备基于所述特征丢弃值修改至少一者或所述一个或多个上下文特征和所述一个或多个表达特征,以生成用于所述机器学习模型的输入特征集合;以及
由所述计算设备利用所述机器学习模型来处理所述输入特征集合,以使得生成用于与所述自然语言查询相对应的输出数据集。
16.如权利要求15所述的非暂态计算机可读存储器,其中:
所述特征丢弃值是与所述一个或多个上下文特征的上下文特征百分比相对应的第一上下文特征丢弃值;
所述一个或多个处理器进一步执行:通过基于所述第一上下文特征丢弃值从所述一个或多个上下文特征中移除某一百分比的上下文特征来修改所述一个或多个上下文特征;
所述输入特征集合是从所修改的一个或多个上下文特征和所述一个或多个表达特征生成的。
17.如权利要求16所述的非暂态计算机可读存储器,其中:
所述特征丢弃值进一步包括第二上下文特征丢弃值,所述第二上下文特征丢弃值对应于所述一个或多个上下文特征中与所述自然语言短语数据集中的自然语言短语相对应的上下文特征百分比;
所述一个或多个处理器进一步执行:确定上下文特征子集,所述上下文特征子集中的每个上下文特征与所述自然语言短语数据集中的自然语言短语相对应;
所述一个或多个处理器进一步执行:通过从所述上下文特征子集中移除与所述第二上下文特征丢弃值相对应的某一百分比的上下文特征来修改所述上下文特征子集;
修改所述一个或多个上下文特征通过包括基于所述第一上下文特征丢弃值从包括所修改的上下文特征子集的所述一个或多个上下文特征中移除某一百分比的上下文特征。
18.如权利要求15所述的非暂态计算机可读存储器,其中:
所述特征丢弃值是与所述一个或多个表达特征的表达特征百分比相对应的第一表达特征丢弃值;
所述一个或多个处理器进一步执行:通过基于所述第一表达特征丢弃值从所述一个或多个表达特征中移除某一百分比的表达特征来修改所述一个或多个表达特征;
所述输入特征集合是从所述一个或多个上下文特征和所修改的一个或多个表达特征生成的。
19.如权利要求15所述的非暂态计算机可读存储器,所述一个或多个处理器进一步执行:
将所述自然语言短语数据集与被用于训练所述机器学习模型的训练数据集进行比较;以及
基于所述比较来确定噪声值,所述噪声值对应于所述自然语言短语数据集和所述训练数据集中与相同特定类别相关联的自然语言短语的数量以及所述自然语言短语数据集和所述训练数据集中与不同类别相关联的自然语言短语的数量;
其中,所述特征丢弃值是至少部分地基于所述噪声值而确定的。
20.如权利要求15所述的非暂态计算机可读存储器,其中,所述机器学习模型是卷积神经网络机器学习模型,并且该组输入特征与所述卷积神经网络的输入节点相对应。
CN202280011027.3A 2021-01-20 2022-01-20 用于自然语言处理器的多特征平衡 Pending CN116724306A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163139695P 2021-01-20 2021-01-20
US63/139,695 2021-01-20
PCT/US2022/013060 WO2022159544A1 (en) 2021-01-20 2022-01-20 Multi-feature balancing for natural language processors

Publications (1)

Publication Number Publication Date
CN116724306A true CN116724306A (zh) 2023-09-08

Family

ID=82406292

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280011027.3A Pending CN116724306A (zh) 2021-01-20 2022-01-20 用于自然语言处理器的多特征平衡

Country Status (5)

Country Link
US (1) US20220229991A1 (zh)
EP (1) EP4281880A1 (zh)
JP (1) JP2024503519A (zh)
CN (1) CN116724306A (zh)
WO (1) WO2022159544A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11729121B2 (en) * 2021-04-29 2023-08-15 Bank Of America Corporation Executing a network of chatbots using a combination approach

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160293167A1 (en) * 2013-10-10 2016-10-06 Google Inc. Speaker recognition using neural networks
US9715660B2 (en) * 2013-11-04 2017-07-25 Google Inc. Transfer learning for deep neural network based hotword detection
US9672814B2 (en) * 2015-05-08 2017-06-06 International Business Machines Corporation Semi-supervised learning of word embeddings
US11694072B2 (en) * 2017-05-19 2023-07-04 Nvidia Corporation Machine learning technique for automatic modeling of multiple-valued outputs
US10453454B2 (en) * 2017-10-26 2019-10-22 Hitachi, Ltd. Dialog system with self-learning natural language understanding
US10579733B2 (en) * 2018-05-10 2020-03-03 Google Llc Identifying codemixed text
US10861439B2 (en) * 2018-10-22 2020-12-08 Ca, Inc. Machine learning model for identifying offensive, computer-generated natural-language text or speech
WO2020219203A1 (en) * 2019-04-26 2020-10-29 Oracle International Corporation Insights into performance of a bot system
US11481388B2 (en) * 2019-12-18 2022-10-25 Roy Fugère SIANEZ Methods and apparatus for using machine learning to securely and efficiently retrieve and present search results
US11250839B2 (en) * 2020-04-16 2022-02-15 Microsoft Technology Licensing, Llc Natural language processing models for conversational computing
US11450310B2 (en) * 2020-08-10 2022-09-20 Adobe Inc. Spoken language understanding

Also Published As

Publication number Publication date
US20220229991A1 (en) 2022-07-21
EP4281880A1 (en) 2023-11-29
JP2024503519A (ja) 2024-01-25
WO2022159544A1 (en) 2022-07-28

Similar Documents

Publication Publication Date Title
US20200342874A1 (en) Handling explicit invocation of chatbots
CN114424185A (zh) 用于自然语言处理的停用词数据扩充
JP2023520416A (ja) ドメイン外(ood)検出のための改良された技術
US11868727B2 (en) Context tag integration with named entity recognition models
JP2023530423A (ja) 堅牢な固有表現認識のためのチャットボットにおけるエンティティレベルデータ拡張
CN112487157A (zh) 用于聊天机器人的基于模板的意图分类
US20220230000A1 (en) Multi-factor modelling for natural language processing
CN115398436A (zh) 用于自然语言处理的噪声数据扩充
CN116547676A (zh) 用于自然语言处理的增强型logit
US20230100508A1 (en) Fusion of word embeddings and word scores for text classification
CN116583837A (zh) 用于自然语言处理的基于距离的logit值
CN116615727A (zh) 用于自然语言处理的关键词数据扩充工具
CN116635862A (zh) 用于自然语言处理的域外数据扩充
US20230205999A1 (en) Gazetteer integration for neural named entity recognition
CN116235164A (zh) 聊天机器人的范围外自动转变
CN116490879A (zh) 用于神经网络中过度预测的方法和***
CN117296058A (zh) 作为简单有效的对抗攻击方法的变体不一致攻击(via)
CN118140230A (zh) 对经预训练的语言模型的单个转换器层的多头网络进行微调
US20220229991A1 (en) Multi-feature balancing for natural language processors
US20230098783A1 (en) Framework for focused training of language models and techniques for end-to-end hypertuning of the framework
US20230139397A1 (en) Deep learning techniques for extraction of embedded data from documents
US20230161963A1 (en) System and techniques for handling long text for pre-trained language models
US20230134149A1 (en) Rule-based techniques for extraction of question and answer pairs from data
WO2023091436A1 (en) System and techniques for handling long text for pre-trained language models
CN118215920A (zh) 用于使用散列嵌入进行语言检测的宽深网络

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