CN115485690A - 用于处置聊天机器人的不平衡训练数据的分批技术 - Google Patents
用于处置聊天机器人的不平衡训练数据的分批技术 Download PDFInfo
- Publication number
- CN115485690A CN115485690A CN202180026697.8A CN202180026697A CN115485690A CN 115485690 A CN115485690 A CN 115485690A CN 202180026697 A CN202180026697 A CN 202180026697A CN 115485690 A CN115485690 A CN 115485690A
- Authority
- CN
- China
- Prior art keywords
- intent
- utterances
- batch
- training
- utterance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 250
- 238000000034 method Methods 0.000 title claims abstract description 118
- 238000009826 distribution Methods 0.000 claims abstract description 72
- 230000006870 function Effects 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 23
- 238000009827 uniform distribution Methods 0.000 claims description 6
- 238000010801 machine learning Methods 0.000 abstract description 7
- 230000008030 elimination Effects 0.000 abstract description 3
- 238000003379 elimination reaction Methods 0.000 abstract description 3
- 238000012545 processing Methods 0.000 description 62
- 238000004891 communication Methods 0.000 description 37
- 230000015654 memory Effects 0.000 description 27
- 230000008569 process Effects 0.000 description 22
- 230000009471 action Effects 0.000 description 16
- 230000003993 interaction Effects 0.000 description 14
- 238000007726 management method Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 235000013550 pizza Nutrition 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000007704 transition Effects 0.000 description 10
- 230000006399 behavior Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 6
- 238000005070 sampling Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 239000002131 composite material Substances 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 240000005020 Acaciella glauca Species 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000010923 batch production Methods 0.000 description 2
- 238000010367 cloning Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 235000013305 food Nutrition 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 235000003499 redwood Nutrition 0.000 description 2
- 238000013068 supply chain management Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 229930091051 Arenine Natural products 0.000 description 1
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000002591 computed tomography Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000002939 deleterious effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- -1 iOS Chemical class 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000002595 magnetic resonance imaging Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000037211 monthly cycles Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002600 positron emission tomography Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24147—Distances to closest patterns, e.g. nearest neighbour classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
- G06F40/35—Discourse or dialogue representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/1815—Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/1822—Parsing for meaning understanding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
- G10L15/19—Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
- G10L15/197—Probabilistic grammars, e.g. word n-grams
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
Abstract
本公开涉及聊天机器人系统,并且更具体地,涉及用于在训练模型时处置不平衡的训练数据的分批技术,从而在执行推理时去除经训练的机器学习模型中的偏向性。在实施例中,获取多个原始话语。确定偏向性消除分布,并且根据偏向性减少分布对多个原始话语的子集进行分批。可以将所得的无偏训练数据输入到预测模型中以训练预测模型。可以获取经训练的预测模型并将其用于根据经训练的预测模型接收的新输入来预测无偏的结果。
Description
相关申请的交叉引用
本申请要求2020年3月30日提交的名称为“BATCHING TECHNIQUES FOR HANDLINGUNBALANCED TRAINING DATA FOR A CHATBOT[用于处置聊天机器人的不平衡训练数据的分批技术]”的美国临时申请号62/002,151的优先权权益。出于所有目的,前述申请的全部内容通过援引以其全文并入本文。
版权声明
本专利申请的公开内容的一部分包含受版权保护的材料。版权拥有者不反对任何人对本专利申请或专利公开内容按照其在专利与商标局专利文献或记录中呈现地进行复制再现,但是无论如何以其他方式保留所有版权权利。
技术领域
本公开涉及聊天机器人系统,更具体地,涉及用于在训练模型时处置不平衡的训练数据的分批技术,从而在执行推理确定时减少或去除经训练的机器学习模型中的偏向性。
背景技术
世界各地的服务提供商利用即时消息传递聊天平台与他们的服务客户进行交流。提供商经常使用这些即时消息传递聊天平台与客户互动、解决问题或满足请求。例如,服务的客户可能会描述客户遇到的问题,而服务的响应者可能会在实时会话期间描述补救问题的步骤。在另一个示例中,作为实时会话的一部分,客户可以向响应者发出请求,以便利用服务的某些方面。雇用人类响应者来促进与客户或最终用户进行实时交流对于提供商来说可能是非常昂贵的。训练人类员工以处置由提供商提供的各种特征是时间密集型的,并且在某些时间段期间与客户进行实时交流的能力可能会受到限制,尤其是当服务在一天中的所有时间运行时。
聊天机器人系统提供了各种技术来管理实体(比如客户)与服务之间的交互。服务提供商可以利用聊天机器人与客户实体进行交流,以消除通常在两个人之间执行的昂贵且耗时的人工交互。聊天机器人系统可以利用文本识别技术来识别和响应在与客户实体的实时会话中固有的某些提示和上下文。智能聊天机器人通常通过训练高度完善,可以在实时会话期间更自然地与客户交流。这为客户提供了精简和愉快的会话体验,同时高效地利用了服务的资源。通过使用全面的训练输入定期训练聊天机器人,可以不断完善智能聊天机器人系统。聊天机器人的持续训练使机器人不断提高其与客户实体交互的能力,并且通过用新的相关用例进行训练,还允许机器人保持灵活性。
聊天机器人系统在很大程度上受对其进行训练所使用的素材质量的影响。例如,使用更大量的训练数据来训练聊天机器人系统通常可以让聊天机器人学习更多上下文复杂的行为,并响应更大范围的交互情况。高质量训练素材的分组或“分批(batch)”将允许聊天机器人高效地学习功能,并提供与客户实体的更高质量的交互。然而,当提供不太理想的训练数据时,聊天机器人也可能会学习不良行为。例如,向聊天机器人系统提供一批不平衡的反馈(比如具有大量训练样例的训练数据明显偏向于某个交互上下文)将导致它随着时间的推移学习有偏向性的行为。有偏向性的行为可能会导致聊天机器人系统与实体进行低效或错误的交互。这些动作包括在错误的上下文中与实体进行交互,推荐对客户实体没有帮助的解决方案,和/或因错误地使用服务的不相关元素而浪费关键资源。这些以及其他有偏向性的聊天机器人交互对服务提供商和交互实体都是有害的。因此,在训练其交互模型时,为聊天机器人系统提供无偏且高效的训练数据批是至关重要的。
发明内容
本文所公开的技术总体上涉及聊天机器人。更具体且非限制性地,本文公开的技术涉及用于对用于训练聊天机器人系统的训练数据进行分批的技术。聊天机器人可以将用户话语分类为不同的类别,比如交互用户/客户的预定义意图。聊天机器人的分类器可以包括经训练的机器学习(ML)模型,该模型基于输入(例如,用户话语)生成输出(例如,意图)。当用于训练ML模型的训练数据不足时,聊天机器人可能会更频繁地确定错误的意图。具体地,当用于训练聊天机器人系统时,有偏向性的训练数据会导致聊天机器人表现出有偏向性和无效的行为。本文公开的技术将允许将有效且无偏的训练数据分批在一起,以便所述批可以用于训练聊天机器人。分批的无偏训练数据的生成大大减少或消除了偏向性,否则偏向性将根深蒂固于聊天机器人所学习的行为中。消除聊天机器人模型中的偏向性允许以最高效和最节省资源的方式训练聊天机器人系统。例如,通过在训练层面消除偏向性,利用聊天机器人的服务可以在学习之前防止不良的交互行为,从而节省宝贵的时间和资源,否则这些时间和资源将用于重新训练聊天机器人。在训练层面消除有偏向性的行为还将防止客户复杂化,否则在训练不良的聊天机器人运行时将出现这种复杂化。
本文描述了各个实施例,包括方法、系统、存储有可由一个或多个处理器执行的程序、代码或指令的非暂态计算机可读存储介质等。在聊天机器人系统中,训练话语集用于训练意图分类器以识别一个或多个话语的一个或多个意图。话语可以是与实体的预期交互,比如一串会话词。意图可以是交互的上下文类别,其是话语所固有的。意图分类器可以是用于识别话语与归类意图之间的对应关系的工具。意图分类器可以是被设计为被迭代训练以更高效地识别特定话语的对应意图的模型。训练话语集作为一批话语提供,通常具有特定大小,并且是从一组原始话语数据中选择的。在使用随机采样来生成这样的训练批的系统中,已经用更多的训练话语训练的意图分类器的输出类别(例如,特定意图)将比用更少的训练话语训练的输出类别更频繁地被意图分类器选择,即使这两个类别平等地与输入话语匹配。
因此,这样的系统在未来训练期间训练意图分类器时以及在与实体交互时可能会存在偏向性。当训练数据所包含的特定输出类别的训练话语量与其他输出类别相比不成比例时,通常会出现这些偏向性。本公开使用用于平衡用于训练意图分类器的训练批的技术来解决这种偏向性。更具体地,所述系统利用意图分布来生成分布式且无偏的训练批。这确保了在分布式无偏训练批上训练的意图分类器将更平等地利用每个输出类别,并减少先前随机采样方法所固有的低效偏向性。
一个实施例涉及一种方法,所述方法包括:获取包括多个话语的训练数据,每个话语对应于多个意图中的一个意图,并且所述多个意图中的每个意图对应于一个或多个技能中的一个技能;确定在所述多个话语上的意图分布,其中,所述意图分布包括多个意图比例,并且每个意图比例对应于所述多个意图中的一个意图;生成批,所述批包括基于所述多个意图比例从所述多个话语中选择的一批一定数量的话语;将所述批中的训练数据集迭代地输入到所述一个或多个技能的预测模型中,其中,所述预测模型被构建为意图分类器,所述意图分类器包括通过使用目标函数学习的多个模型参数;通过使所述目标函数最小化或最大化来在所述训练数据集上训练所述预测模型,所述目标函数测量预测意图与客观真实(ground truth)意图之间的差异;响应于所述训练,学习所述训练数据集内的由所述预测模型用来生成所述预测意图的关系;以及获取包括与所学习的关系相关联的多个模型参数的经训练预测模型。另一个实施例涉及一种系统,所述系统包括一个或多个数据处理器和非暂态计算机可读存储介质以执行包括上述方法的操作。又一实施例涉及一种存储可由一个或多个处理器执行的多个指令的非暂态计算机可读存储介质,所述指令当由一个或多个处理器执行时导致执行上述方法的步骤。
提及这些说明性实施例不是为了限制或限定本公开,而是为了提供示例以帮助理解本公开。在参考以下说明书、权利要求和附图之后,前述内容以及其他特征和实施例将变得更加显而易见。
附图说明
图1描绘了根据某些实施例的聊天机器人系统的简化图。
图2描绘了根据某些实施例的示例批处理系统的框图。
图3描绘了根据某些实施例的用于生成训练批和获取预测模型的示例过程。
图4A描绘了根据某些实施例的用于从训练数据池生成训练批的示例实施例。
图4B描绘了根据某些实施例的用于从训练数据池生成训练批的示例实施例。
图5描绘了用于实施实施例的分布式系统的简化图。
图6是根据某些实施例的提供云服务的基于云的系统环境的简化框图。
图7图示了可以用于实施某些实施例的示例性计算机系统。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各个实施例。附图和描述不旨在是限制性的。词语“示例性”在本文中用来意指“用作示例、实例或说明”。在本文中被描述为“示例性”的任何实施例或设计不必被解释为比其他实施例或设计更优选或有利。如本文所用的词语“基于”不一定被解释为暗示对动作的排他性要求,并且任何这样的动作都可以被解释为至少部分地基于这些词语之后的要求,而不具有排他性。
1.0示例聊天机器人系统概述
图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工具包的一部分提供的。
虽然本公开中提供的各个示例示出了英语语言的话语,但是这仅意味着作为示例。在某些实施例中,数字助理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.0示例分批系统
图2描绘了根据某些实施例的示例批处理系统的框图。具体地,图2描绘了根据各个实施例的批处理系统200,其包括用于对用于训练聊天机器人的训练数据进行分批的元件。批处理系统可以接收传入请求202。传入请求202可以是包括用于生成一批训练数据的数据的请求。传入请求202可以是包括原始话语数据的批生成请求,所述原始话语数据包括多个提议的训练话语。例如,批处理系统200可以是由聊天机器人服务操作的系统。聊天机器人服务的客户可以将多个训练话语发送到批处理系统200以获取训练数据,以用于训练聊天机器人来处置客户的交互。
可以在通信门户204处接收传入请求202。通信门户204可以是批处理系统200内用于处置传入数据和传出数据的实体。通信门户204可以包括用户通信指令206,所述用户通信指令确定通信门户204可以与向批处理系统200发送数据和从批处理系统接收数据的用户交互的一种或多种方式。通信门户204可以进一步包括批路由指令208,所述批路由指令确定传入请求和/或与传入请求相关联的数据在批处理系统200内被路由到何处。例如,批路由指令208可以被执行以确定批处理系统200内的将根据传入请求202生成分批的训练数据的一个或多个批生成模块。
在各个实施例中,一旦通信门户204已经确定批处理系统200内的用于对训练数据进行分批的批生成实体,通信门户就可以将来自传入请求202的原始话语数据210转发到批生成器212。批生成器212可以是批处理系统200内的用于对用于训练聊天机器人的训练数据进行分批的实体。批生成器212可以包括话语数据池214。话语数据池214可以是批处理系统200内的存储位置,其存储原始话语数据并基于确定的相关输出类别对话语进行分类。例如,批生成器212可以在话语数据池214处接收原始话语数据210并且基于与原始话语数据中的每个话语相对应的意图将原始话语数据分类到意图池中。
批生成器212可以进一步包括用于基于原始话语数据生成批的指令,比如模型解析指令216。模型解析指令216可以是用于解析与聊天机器人相关联的训练模型以确定模型的一个或多个方面的指令。例如,模型解析指令216可以导致对训练模型进行解析以确定对模型已知的多个技能和/或意图。批生成器212可以包括指标选择指令218。指标选择指令218可以是用于选择用于生成一批训练数据的指标的指令。例如,基于关于聊天机器人训练模型的解析信息,指标选择指令218可以导致选择用于对一批中的训练话语进行按比例分批的指标或分布。批生成器212可以包括话语选择指令220,其是用于基于所选分布指标从话语池214中选择一定数量的话语以进行分批的指令。批生成器212可以包括批生成指令222,其可以是关于如何将一定数量的所选话语分批成一个或多个训练批的指令。例如,批生成指令222可以为每一批生成包括一定数量的所选话语的批数据。
批数据可以存储在批生成器212内的储存库中,比如批池224。所生成的批数据(比如批数据226)然后可以被发送回通信门户204,然后被导出为用于训练聊天机器人模型的传出批228。批处理系统200可以进一步包括数据存储230。数据存储230可以包含用于实施本文描述的过程的任何数量的实体、储存库或指令,并且可以耦接到上述任何系统实体。数据存储230可以包括训练数据储存库232,其可以是包含由批处理系统200用来生成训练数据批的附加原始或合成的训练数据的储存库。数据存储230可以包括批指标储存库234,其可以是用于确定用于对一定数量的话语进行分批的意图分布的指标或模型的储存库。数据存储230可以包括用户数据储存库236,其可以是可以用作批生成过程的一部分的用户或客户数据的储存库。例如,用户数据储存库236可以包含用于根据模型解析指令216进行解析的多个已知的用户聊天机器人模型。
本领域普通技术人员将理解,图2中所描绘的系统和实体可以按照允许根据本文描述的实施例对训练数据进行分批的任何方式或配置重新布置。
3.0示例分批过程和技术
描述了用于在训练模型时处置不平衡的训练数据的分批技术,以便在执行推理时从经训练的机器学习模型中去除偏向性。在某些实施例中,描述了使用用于平衡多批训练数据的技术来解决由模型做出的预测(例如,由经训练的意图分类器针对输入话语推断的意图)中的偏向性的分批技术。例如,可以训练技能机器人从话语的一组意图中推断出一个意图。用于训练技能机器人的训练数据可以包括话语示例,以及针对每个话语与所述话语相关联的意图。当一个意图的训练话语数量远大于另一意图的训练话语数量时,训练数据可能会出现偏向性。当使用这样的训练数据来训练模型时,所得到的训练模型偏向于推断出使用更多训练话语样例的意图。例如,可以在1000个训练话语上训练具有两个意图的技能。950个训练话语可能对应于意图一,而50个训练话语可能对应于意图二。因此,与意图二相比,该技能在意图一上的训练程度更高。因此,即使当客户话语的实际上下文对应于意图二时,技能的意图分类器也可能错误地将实际客户话语的上下文归于意图一。这是不希望的。
当训练用于从许多技能机器人中选择技能机器人的模型时,例如当主机器人必须选择特定技能机器人来处置话语时,也可能会发生不平衡。用于训练主机器人的可用训练数据可能是不平衡的。这再次造成了不平衡。当使用这样的训练数据来训练主机器人时,所得到的经训练的主机器人模型偏向于推断出使用更多已学习训练话语样例的技能机器人。例如,可以在900个训练话语上训练两个技能,第一技能具有两个意图,并且第二技能具有一个意图。每个意图可能对应于300个训练话语,这意味着意图分布是平衡的。然而,第一技能比第二技能的可训练性更高,前者的训练话语数量是后者的两倍。因此,即使当客户话语的实际上下文对应于第二技能内的意图时,主技能机器人分类器也可能错误地将实际客户话语的上下文归于第一技能内的意图。这也是不希望的。当对训练数据的话语进行分批时,本文描述的过程减少并消除了这些偏向性。
图3描绘了根据某些实施例的用于生成训练批和获取预测模型的示例过程。具体地,示例过程300描绘了用于生成减少偏向性的训练话语批的流程图,所述话语用于训练模型以获取在实施聊天机器人功能时可以以更高效的方式进行交互的预测模型。过程300开始于步骤310,获取多个话语。多个话语可以是多个原始话语数据,这些数据如果用于对模型进行训练,将产生有偏向性的所得训练模型。例如,所获取的多个话语可以作为传入请求(比如传入请求202)的一部分而获取,并且可以是在训练可以进行之前应该去除偏向性的提议的多个话语。
在步骤320处,确定多个话语之间的意图分布。可以基于所获取的多个话语、与所获取的多个话语相关联的元数据、多个话语被提议用于训练的模型等来确定分布。例如,与所获取的多个话语相对应的意图分布可以基于多个话语中的每个表示意图的相对量来确定。在另一示例中,作为传入请求的一部分获取的元数据可以指定一个或多个期望意图分布,并且可以被解析以影响分布的确定。在又一示例中,可以从诸如用户数据储存库236等模型储存库获取已知的用户聊天机器人模型,并且诸如模型解析指令216等指令可以解析模型以确定模型所利用的技能和/或意图的相对分布。
在步骤330处,基于意图分布生成包括一定数量的话语的批。可以基于诸如指标指令218、话语选择指令220和批生成指令222等指令来生成批。指令可以指定要包含在批中的所述数量的话语的已知子集或所述数量的话语的子集的相对概率。例如,可以自动选择与特定意图相对应的静态数量的话语以包含在批中。在另一示例中,确定针对多个意图的相对包含概率,并且基于对应的多个意图的相对概率分布随机选择与多个意图相对应的话语以包含在批中。
在步骤340处,将来自批的训练数据集输入到预测模型中。训练数据集可以是所生成的批中的所述数量的话语的子集,其被系统地输入到预测模型中以训练预测模型。在各个实施例中,输入来自批的训练数据包括将所生成的批发送到模型生成系统,所述模型生成系统将来自批的训练数据迭代地提供给预测模型。在步骤350处,在输入到模型中的训练数据集上训练预测模型。可以根据本文讨论的任何实施例来训练模型。例如,该模型可以包括意图分类器,所述意图分类器能够“学习”基于对话语进行解析的预测意图与对应于话语的实际意图之间的差异。意图分类器可以使用这些差异来改变针对意图确定的参数或阈值,以更接近于将完全准确地预测意图的理想模型。
在步骤360处,预测模型学习训练数据集内的关系。所学习的关系可以是多个话语的一个或多个方面与多个话语的对应意图之间的关系。例如,预测模型的意图分类器可以使用预测意图与实际对应的意图之间的所确定差异来对话语的各方面与对应于话语的可能意图之间的关系进行建模。在另一个示例中,这些方面是字符串和上下文概率值,它们被解析以确定话语的总体预测上下文。总体预测上下文与基于由预测模型学习的关系的可能意图相对应。在步骤370处,获取包括与所学习的关系相关联的多个模型参数的经训练预测模型。经训练的预测模型可以是使用分批的训练数据完成一段时间的训练之后的上述预测模型。在各个实施例中,所获取的经训练预测模型用于解析非训练话语并预测对应意图作为与用户交互的聊天机器人服务的一部分。
3.1均匀分批技术
本公开描述了用于去除上述偏向性(包括至少在意图层面)的新颖的分批技术。在单个主机器人的层面上以及在主机器人系统的每个已知意图的分布上描述了均匀分批技术。例如,话语的分布可以基于多个意图中的意图总数均匀地对应于多个意图中的每个意图。新颖的分批技术用于为模型训练选择批,使得训练批是通过从每个输出类别内的训练数据中选择适当数量的训练样例来生成的。这确保了在批上训练的意图分类器具有对每个输出类别进行平等评分的概率。
通过示例的方式,考虑为九个不同的意图(a-i)提供训练数据的场景。在该示例中,用于多个意图a-i的训练数据可能是不平衡的,使得可用于意图a的训练样例明显多于其他意图b-i。例如,考虑以下训练样例可用于每个相应的意图a-i:
意图a=900个总训练话语
意图b、c、d均=20个训练话语
意图e、f、g、h、i均=8个训练话语
假设在该示例中,要为每次训练运行生成一批100个训练样例。本领域技术人员将认识到,上述训练数据的简单随机采样将导致批内包括的意图a的训练样例明显多于每个其他意图的训练样例,因为来自意图a的训练样例被选中的可能性是其他意图的九倍,这(在使用该批训练的意图分类器中)将导致偏向于意图a。为了纠正这一点,系统可以在意图层面执行均匀的平衡。这涉及为每个意图分配批大小的相等部分,以便每个意图都有相等的机会被选中。例如,对上述训练数据的约束可以生成为使得:
意图比率:1/(意图总数)=1/9
因此,每个意图将对应于有九分之一的机会选择对应的话语进行分批。如本领域技术人员将认识到的,对训练数据的选择设置上述约束将使得消除对任何特定意图的偏向性,因为每个意图都将获取相等的概率被包含在最终批中。在各个实施例中,当可用批槽的数量大于意图的数量时,至少一个意图可以经由对应话语被选择以包含在批中。在各种进一步的实施例中,当一批中的批槽数量不能在意图数量之间公平划分时,可以在随后的批中保留一定数量的批槽以包含与未公平分布在第一批中的任何意图相对应的话语。如本领域技术人员将认识到的,对训练数据的选择设置上述约束将使得消除对任何特定意图的偏向性,并且意图将在一批训练数据中被平等地表示。
3.2分层分批技术
本公开描述了用于在技能机器人层面和在主机器人层面上去除上述偏向性的新颖分批技术。在主机器人层面和技能机器人层面描述了分层平衡技术。例如,训练基础设施执行多层次平衡,所述多层次平衡在主机器人层面利用不同技能机器人之间的第一层次平衡,并且在技能机器人层面利用为技能机器人配置的各种意图之间的第二层次平衡。新颖的分批技术用于为模型训练选择批,使得训练批是通过从每个输出类别内的训练数据中选择适当数量的训练样例来生成的。这确保了在批上训练的意图分类器具有对每个输出类别进行平等评分的概率。
通过示例的方式,考虑为两个单独的技能机器人(技能A和技能B)提供训练数据的场景。在该示例中,假设技能A与一组五个不同的意图(a-e)相关联,而技能B与一组四个不同的意图(f-i)相关联。在该示例中,用于这两个技能的训练数据可能是不平衡的,使得可用于技能A的训练样例多于技能B。例如,考虑以下训练样例可用于技能A和技能B的每个相应意图(图解:N(i),其中“i”标识意图,并且“N”标识意图“i”的训练集中可用的训练话语样例的数量):
技能A:5(a)+100(b)+100(c)+295(d)+500(e)=1000(用于技能A的总训练话语)
技能B:5(f)+10(g)+25(h)+60(i)=100(用于技能B的总训练话语)
假设在该示例中,要为每次训练运行生成一批100个训练样例。本领域技术人员将认识到,上述训练数据的简单随机采样将导致批内包括的技能A的训练样例明显多于技能B的训练样例,因为来自技能A的训练样例被选中的可能性是其他意图的十倍,这(在使用该批训练的意图分类器中)将导致偏向于技能A。为了纠正这一点,系统可以在技能层面执行第一层次平衡。这涉及为每个技能分配批大小的相等部分,以便技能A和技能B有相等的机会被选中。例如,对上述训练数据的约束可以生成为使得:
技能A:5/2000(a)+100/2000(b)+100/2000(c)+295/2000(d)+500/2000(e)=1/2
技能B:5/200(f)+10/200(g)+25/200(h)+60/200(i)=1/2
如本领域技术人员将认识到的,对训练数据的选择设置上述约束将使得消除对任何特定技能的偏向性,因为每个技能将被平等地表示。然而,甚至在技能内,每个意图也被不成比例地表示。考虑到这一点,系统可以在意图层面执行第二层次平衡。这涉及为技能的一组特定意图内的每个意图分配相等的比率,以便它们都有相等的机会被选中。例如,对上述训练数据的约束可以调整为使得:
技能A:1/10(a)+1/10(b)+1/10(c)+1/10(d)+1/10(e)=1/2
技能B:1/8(f)+1/8(g)+1/8(h)+1/8(i)=1/2
如本领域技术人员将认识到的,对训练数据的选择设置上述约束将使得消除对技能内的任何特定意图的偏向性,因为每个意图将在技能内被平等地表示。使用上述约束,可以通过以下方式来为每个意图计算训练样例的适当数量:将批大小乘以分配给每个技能的批部分、再乘以该意图的比率。例如,在计算将包括在具有100个训练样例的批中的技能A的意图e的训练样例的适当数量时,将批大小(例如,100)乘以分配给每个技能的批部分(例如,1/2)再乘以分配给该意图的比率(1/10)。在该示例中,为100*1/2*1/10=5。因此,具有100个训练样例的批将被生成为使得其包括输出类别为技能A的意图e的五个训练样例。应注意,在生成该批时,五个训练样例可能是从技能A的意图e的可用训练样例中随机选择的。
3.3缩放的分批技术
本公开描述了用于根据通用缩放因子去除上述偏向性的新颖分批技术。缩放平衡技术实现了上述均匀和分层平衡的优点,并且包括根据缩放因子或函数的附加偏向性控制。例如,训练基础设施可以执行如上所述的比例平衡,但可以利用根据由模型用户或模型管理员提供的定义函数缩放的比例和概率。缩放因子允许维持多个原始训练话语的某些特性,同时减少有害的偏向性。
通过示例的方式,考虑为五个单独的意图(意图a-e)提供训练数据的场景。在该示例中,考虑意图“a”是与模型的主要用例相对应的意图,并且预计与由模型解析的所有话语的大约三分之一相关。在该示例中,用于这五个意图的训练数据可能是不平衡的,使得意图“a”可用的训练样例比意图b-e多得多。例如,考虑以下训练样例可用于每个相应的意图:
意图a=100个总训练话语
意图b=30个总训练话语
意图c=20个总训练话语
意图d=10个总训练话语
意图e=5个总训练话语
假设在该示例中,要为每次训练运行生成一批100个训练样例。本领域技术人员将认识到,上述训练数据的简单随机采样将导致批内包括的意图a的训练样例明显多于每个其他意图的训练样例,因为来自意图“a”的训练样例被逐个地选中的可能性是任何其他意图的至少3倍,这(在使用该批训练的意图分类器中)将导致偏向于意图a。然而,由于意图“a”是主要用例,并且在对话语进行解析时应该预计会在大约三分之一的时间内被选择,所以当与每个其他意图平等地训练意图“a”时,均匀分批技术可能会完全消除这种特征。为了纠正现有偏向性,同时与原始分布保持一定程度的相似性,系统可以执行缩放分批。这涉及根据对数据的函数变换来将批大小的一部分分配给每个意图,使得每个意图都有上下文正确的机会被选入批。例如,对数缩放技术可以变换对上述训练数据的约束,使得:
有偏向性的原始话语分布(x)=[100,30,20,10,5]
对数分布=log(x)/sum(log(x))=[0.31,0.23,0.20,0.15,0.11]
如本领域技术人员将认识到的,对训练数据的选择设置上述约束将减少对在所提供的原始话语池中过度表示的任何特定意图的偏向性。然而,每个意图仍然可以根据将在数据上训练的模型的相对重要性按比例表示。例如,已知在模型操作期间,理想情况下预期意图“a”约有三分之一的时间被选择为与话语相对应,可以比较以下针对意图“a”的比例选择分布:
原始话语训练(a)=100/(100+30+20+10+5)=~3/5
均匀分批(a)=1/5
对数分布(a)=~1/3
因此,上述对数缩放分批技术减少了原始训练数据所固有的偏向性,同时保持了赋予意图“a”的相对训练重要性,这对模型可能是有价值的。如本领域技术人员将认识到的,上述对数缩放函数技术只是用于对训练数据进行分批的缩放技术的一个示例,并且可以使用任何变换、函数或缩放技术来补充或代替这种特定技术。
3.4加权分批技术
本公开描述了用于根据加权分布去除上述偏向性的新颖分批技术。加权分布技术实现了上述均匀和分层平衡的优点,并且包括根据指定加权分布的附加偏向性控制。例如,训练基础设施可以执行如上所述的比例平衡,但可以利用根据由模型用户或模型管理员提供的单独权重分布。权重分布允许维持多个原始训练话语的某些特性,同时减少有害的偏向性。
通过示例的方式,考虑上面描述的缩放分批技术场景中呈现的场景,其中为五个单独的意图(意图a-e)提供训练数据,使得:
有偏向性的原始话语分布x=[100,30,20,10,5]
假设在该示例中,要为每次训练运行生成一批100个训练样例。本领域技术人员将认识到,上述训练数据的简单随机采样将导致批内包括的意图a的训练样例明显多于每个其他意图的训练样例,因为来自意图“a”的训练样例被逐个地选中的可能性是任何其他意图的至少3倍,这(在使用该批训练的意图分类器中)将导致偏向于意图a。然而,客户或服务可以提供与用于训练某些意图的重要性的相对分布相对应的权重分布。在示例中,客户可以根据模型的意图识别的相对重要性提供加权分布。在另一个示例中,代表客户维护模型的服务可以解析模型,该模型将接收批训练数据作为输入,以确定某些意图相对于其他意图的预期相对重要性。例如,客户可以将根据客户从0到1描述权重的相对重要性的加权分布发送到分批系统,使得:
加权重要性分布y=[0.4,0.3,0.3,0.1,0.1]
分批技术可以将加权分布应用于本文描述的另一个分批技术以形成复合加权分批分布。例如,加权分布可以用于变换均匀分布,以形成加权均匀分布,比如:
加权均匀分布=(x*y)/sum(x*y)=[(0.2*0.4),(0.2*0.3),(0.2*0.3),(0.2*0.1),(0.2*0.1)]/0.24=[0.33,0.25,0.25,0.08,0.08]
如本领域技术人员将认识到的,对训练数据的选择设置上述约束将减少对在所提供的原始话语池中过度表示的任何特定意图的偏向性。然而,每个意图仍然可以根据将在数据上训练的模型的相对重要性(如由给定权重分布指定的)按比例表示。例如,已知意图“a”在权重分布中的相对权重为0.4,并且鉴于指定的权重分布的总和为1.2,则根据以下技术给出一批中的意图“a”的以下可能表示:
原始话语训练(a)=100/(100+30+20+10+5)=~3/5
均匀分批(a)=1/5
加权分布(a)=~1/3
因此,上述加权分布分批技术减少了原始训练数据所固有的偏向性,同时保持了赋予意图“a”的相对训练重要性,这对模型可能是有价值的。如本领域技术人员将认识到的,上述将加权分布函数添加到现有均匀分批技术只是用于对训练数据进行分批的复合加权技术的一个示例,并且可以使用任何变换、函数或缩放技术来补充或代替这种特定技术。
3.5拖尾分批技术(Tailed Batching Techniques)
本公开描述了用于去除上述偏向性的拖尾分批技术,同时允许对包括在主机器人模型中的至少每个意图进行训练。拖尾平衡技术将实现一批中意图的比例表示和静态表示的复合方法,其允许在批中至少包括特定数量的话语,并且可以按比例填充剩余的批槽。例如,新颖的拖尾分批技术用于为模型训练选择批,使得选择概率低于某个阈值的任何意图都将包括在所生成的批中的最小容量中。这确保了每个意图都在一批中表示,但该批仍然主要按比例确定。
通过示例的方式,考虑为六个意图a-f提供训练数据的场景。所表示的意图可以按以下方式分布在原始的多个话语上:
意图分布=[100,50,45,3,1,1]
假设在该示例中,要为每次训练运行生成一批25个训练样例。本领域技术人员将认识到,上述对训练数据的简单随机采样将导致批内包括的意图“a”的训练样例明显多于意图“d”、“e”和“f”的训练样例。为了纠正这一点,系统可以执行比例平衡技术以减少意图层面的偏向性。然而,尽管意图“a”在原始话语数据中的表示次数要高出一百倍,但使用诸如均匀比例平衡等技术的分批仍将为意图“f”分配与意图“a”相同的选择概率。为了通过按比例选择相对较小的话语池来消除对过度表示话语的偏向性而不会降低效率,当批的比例表示小于阈值量时,拖尾分批技术将允许在批中包括最小的训练话语。例如,低于某个选择概率阈值的特定话语将自动以最小数量包括在批中。然后,处于或高于阈值的所有剩余话语可以根据比例选择技术分布在批中。例如,来自上述原始话语数据的原始概率将对应于以下分布:
原始话语训练分布=[0.5,0.25,0.23,0.01,0.05,0.05]
给定0.01的拖尾阈值,每个意图a-d将达到或超过拖尾阈值,并且每个意图e和f将低于拖尾阈值。技术可以指定低于阈值的任何意图都应该导致至少一个对应的话语被包括在任何一批训练数据中。在这种情况下,与意图e和f相对应的一个话语将被包括在总共25个话语的批中的槽中。剩余的23个话语将在剩余的四个意图中按比例填充。使用拖尾分批技术生成的批的示例分布可能是:
训练批意图表示=[11,6,5,1,1,1]
如本领域技术人员将认识到的,对训练数据的选择设置上述约束将使得消除对任何特定意图的偏向性。然而,通常使用比例技术几乎不被选择的意图可以在批中表示出,而无需在批中过度表示这些较少表示的意图。
3.6自动混合分批技术
在各个实施例中,本文描述的两种或更多种技术可以用于对用于训练模型的一个或多个训练话语进行分批。在各个实施例中,可以组合两种或更多种技术来对多个训练批进行分批。在各个实施例中,第一单一技术可以用于生成第一批,第二单一技术可以用于生成第二批,并且第一批和第二批可以组合成复合批。在各个实施例中,本文描述的技术可以作为参数提供给超调谐器实体,以用于确定用于特定原始话语数据集的最佳分批技术。例如,超调谐器可以针对相同的原始话语数据集运行分批技术的多个交互,并比较所生成的批以确定最高效的分批样式。超调谐器本身可以是模型,其可以使用输入训练数据进行训练,以根据超调谐器可用的多个指标和技术以及输入的一组原始话语来迭代地确定和学习最佳分批实践。
4.0附加示例分批实施例
图4A描绘了根据某些实施例的用于从训练数据池生成训练批的示例实施例。具体地,图4A描绘了在使用本文描述的分层分批技术生成一批训练数据之前的环境。如图4A所描绘的,诸如话语数据池214等数据池包含多个原始话语。诸如话语400等原始话语可以包括与已知对应于话语的技能和/或意图相对应的元数据。例如,话语400包括技能元数据410,该技能元数据表示与技能“A”相对应的话语400。话语400进一步包括意图元数据420,该意图元数据表示与技能“A”内的意图“1”相对应的话语400。在图4A中未描绘的各个实施例中,诸如话语400等话语可以进一步包括与对应话语、技能或意图的权重相对应的元数据,以用作本文所述的加权分批技术的一部分。
意图分布430在图4A中被描绘为显示可能的技能和意图的比率对应关系的图表。尽管意图分布430在图4A中被描绘为简化表,但本领域普通技术人员将认识到,意图分布可以采取执行或帮助执行本文描述的过程所必需的任何形式。分批数据的池(如批池224)可以包括批槽440。批槽440可以是批池224内的存储子集,它将接受话语作为分批过程的一部分。
图4B描绘了根据某些实施例的用于从训练数据池生成训练批的示例实施例。具体地,图4B描绘了在使用本文描述的分层分批技术生成一批训练数据之后的环境。如图4B所描绘的,已经选择了来自话语数据池214的一定数量的话语并将其复制到批池224中的批槽中。意图分布430被更新以包括一定数量的技能的比率信息和每个技能的一定数量的意图的比率信息。例如,每个技能“A”和“B”的意图分布包括每个技能“0.5”的对应技能比率,表示话语概率在技能数量上的均匀分布。意图分布进一步细分为每个技能的每个意图的意图比率。例如,每个意图“1”、“2”和“3”都将技能“A”的“0.5”比率平均拆分到意图比率中,以获取相等的意图比率“0.16”。这些数字对于技能“B”是相似的,其也包含三个意图“4”、“5”和“6”。
图4B描绘了根据某些实施例的用于从训练数据池生成训练批的示例实施例。具体地,图4B描绘了在使用本文描述的分层分批技术生成一批训练数据之后的环境。如图4B所描绘的,已经选择了来自话语数据池214的一定数量的话语并将其复制到批池224中的批槽中。意图分布430被更新以包括一定数量的技能的比率信息和每个技能的一定数量的意图的比率信息。例如,每个技能“A”和“B”的意图分布包括每个技能“0.5”的对应技能比率,表示话语概率在技能数量上的均匀分布。意图分布进一步细分为每个技能的每个意图的意图比率。例如,每个意图“1”、“2”和“3”都将技能“A”的“0.5”比率平均拆分到意图比率中,以获取相等的意图比率“0.16”。这些数字对于技能“B”是相似的,其也包含三个意图“4”、“5”和“6”。
如图4B所描绘的,批槽的数量大于意图分布中记录的意图数量。在这种情况下,分批可以包括在批池中包括与每个意图相对应的至少一个话语。例如,包括与每个意图“1”、“2”、“3”、“4”、“5”和“6”相对应的意图元数据的话语从话语数据池214中随机选择以填充批槽。剩余的批槽然后少于意图的数量。因此,可以通过基于意图分布430中定义的选择概率随机选择两个附加话语来填充剩余的两个批槽。如图4B所描绘的,随机选择与意图“1”和“5”相对应的两个附加话语来填充批池224中的这些剩余批槽。在图4B中未描绘的替代实施例中,批池224的每个批槽可以仅根据意图分布430中定义的选择概率来填充,而不是批池224中的每个对应意图都包括至少一个。
5.0示例基础设施实施方式
图5描绘了用于实施实施例的分布式系统500的简化图。在图示的实施例中,分布式系统500包括经由一个或多个通信网络510耦接至服务器512的一个或多个客户端计算设备502、504、506和508。客户端计算设备502、504、506和508可以被配置为执行一个或多个应用程序。
在各个实施例中,服务器512可以被适配成运行实现本公开中描述的处理的一个或多个服务或软件应用程序。
在某些实施例中,服务器512还可以提供可以包括非虚拟环境和虚拟环境的其他服务或软件应用程序。在一些实施例中,这些服务可以作为基于web的服务或云服务(如在软件即服务(SaaS)模型下)提供给客户端计算设备502、504、506和/或508的用户。操作客户端计算设备502、504、506和/或508的用户进而可以利用一个或多个客户端应用程序来与服务器512交互以利用这些部件所提供的服务。
在图5所描绘的配置中,服务器512可以包括实施由服务器512执行的功能的一个或多个部件518、520和522。这些部件可以包括可以由一个或多个处理器、硬件部件或其组合执行的软件部件。应了解,可以与分布式系统500不同的各种不同系统配置是可能的。因此,图5所示的实施例是用于实施实施例系统的分布式系统的一个示例并且不旨在是限制性的。
根据本公开的教导,用户可以使用客户端计算设备502、504、506和/或508来与服务器512交互。客户端设备可以提供使客户端设备的用户能够与客户端设备交互的接口。客户端设备还可以经由该接口向用户输出信息。尽管图5描绘了仅四个客户端计算设备,但是可以支持任何数量的客户端计算设备。
客户端设备可以包括各种类型的计算系统,如便携式手持设备、如个人计算机和膝上型计算机等通用计算机、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息传递设备、传感器或其他感测设备等。这些计算设备可以运行各种类型和版本的软件应用程序和操作系统(例如,MicrosoftApple或类UNIX操作系统、Linux或类Linux操作系统(如Google ChromeTMOS)),包括各种移动操作系统(例如,Microsoft WindowsWindowsAndroidTM、Palm)。便携式手持设备可以包括蜂窝电话、智能电话(例如,)、平板计算机(例如,)、个人数字助理(PDA)等。可穿戴设备可以包括Google头戴式显示器以及其他设备。游戏系统可以包括各种手持游戏设备、支持因特网的游戏设备(例如,有或没有姿势输入设备的Microsoft游戏控制台、Sony系统、由提供的各种游戏系统、以及其他)等。客户端设备可以能够执行各种不同的应用程序,如各种因特网相关应用程序、通信应用程序(例如,电子邮件应用程序、短消息服务(SMS)应用程序)并可以使用各种通信协议。
(多个)网络510可以是本领域技术人员所熟悉的可以使用各种可用协议中的任何一种支持数据通信的任何类型的网络,所述可用协议包括但不限于TCP/IP(传输控制协议/因特网协议)、SNA(系统网络架构)、IPX(因特网分组交换)、等。仅通过示例的方式,(多个)网络510可以是局域网(LAN)、基于以太网的网络、令牌环、广域网(WAN)、因特网、虚拟网络、虚拟私人网络(VPN)、内部网、外部网、公共交换电话网(PSTN)、红外线网、无线网(例如,根据电气与电子协会(IEEE)1002.11协议套件、和/或任何其他无线协议中的任一种协议操作的网络)和/或这些网络和/或其他网络的任何组合。
服务器512可以由以下各项构成:一个或多个通用计算机、专用服务器计算机(通过示例的方式包括PC(个人计算机)服务器、服务器、中档服务器、大型计算机、机架式服务器等)、服务器群、服务器集群、或任何其他适当的布置和/或组合。服务器512可以包括运行虚拟操作系统的一个或多个虚拟机或涉及虚拟化的其他计算架构,比如逻辑存储设备的可以被虚拟化以维护服务器的虚拟存储设备的一个或多个灵活池。在各个实施例中,服务器512可以被适配成运行提供前述公开内容所描述的功能的一个或多个服务或软件应用程序。
服务器512中的计算系统可以运行一个或多个操作系统,所述一个或多个操作系统包括以上所讨论的那些操作系统中的任何一个操作系统以及任何可商购获取的服务器操作系统。服务器512也可以运行各种附加服务器应用程序和/或中间层应用程序中的任何一种应用程序,包括HTTP(超文本运输协议)服务器、FTP(文件传送协议)服务器、CGI(通用网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从(国际商业机器公司)等商购获取的那些数据库服务器。
在一些实施方式中,服务器512可以包括一个或多个应用程序以分析并合并从客户端计算设备502、504、506和508的用户接收的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于馈送、更新或从一个或多个第三方信息源和连续数据流接收的实时更新,所述实时更新可以包括与传感器数据应用程序、财务收报机、网络性能测量工具(例如,网络监测和流量管理应用程序)、点击流分析工具、汽车交通监测等相关的实时事件。服务器512还可以包括一个或多个应用程序以经由客户端计算设备502、504、506和508的一个或多个显示设备来显示数据馈送和/或实时事件。
分布式系统500还可以包括一个或多个数据储存库514、516。在某些实施例中,这些数据储存库可以用于存储数据和其他信息。例如,数据储存库514、516中的一个或多个可以用于存储由本文描述的处理生成的数据或信息和/或用于本文描述的处理的数据或信息。数据储存库514、516可以驻留在各种位置。例如,服务器512所使用的数据储存库可以在服务器512本地或者可以远离服务器512并经由基于网络的或专用的连接与服务器512通信。数据储存库514、516可以是不同类型。在某些实施例中,服务器512所使用的数据储存库可以是数据库,例如关系数据库,如由Oracle和其他供应商提供的数据库。这些数据库中的一个或多个数据库可以被适配成响应于SQL格式的命令来实现数据到以及从数据库的存储、更新和取得。
在某些实施例中,数据储存库514、516中的一个或多个数据储存库还可以被应用程序用来存储应用程序数据。应用程序所使用的数据储存库可以是不同类型,如例如键值存储储存库、对象存储储存库或由文件系统支持的通用存储储存库。
在某些实施例中,本公开所描述的功能可以经由云环境作为服务提供。图6是根据某些实施例的基于云的系统环境的简化框图,在所述基于云的系统环境中,本文描述的功能可以作为云服务来提供。在图6所描绘的实施例中,云基础设施系统602可以提供可以由用户使用一个或多个客户端计算设备604、606和608请求的一个或多个云服务。云基础设施系统602可以包括一个或多个计算机和/或服务器,所述一个或多个计算机和/或服务器可以包括以上针对服务器512所描述的那些计算机和/或服务器。云基础设施系统602中的计算机可以被组织成通用计算机、专用服务器计算机、服务器群、服务器集群或任何其他适当的布置和/或组合。
(多个)网络610可以促进客户端604、606和608与云基础设施系统602之间的数据通信和交换。(多个)网络610可以包括一个或多个网络。网络可以是相同或不同的类型。(多个)网络610可以支持一个或多个通信协议(包括有线和/或无线协议)以促进通信。
图6所描绘的实施例仅是云基础设施系统的一个示例并且不旨在是限制性的。应了解,在一些其他实施例中,云基础设施系统602可以具有比图6所描绘的那些部件更多或更少的部件、可以组合两个或更多个部件或可以具有不同的部件配置或布置。例如,尽管图6描绘了三个客户端计算设备,但是在替代性实施例中,可以支持任何数量的客户端计算设备。
术语云服务通常用于指代通过服务提供商的系统(例如,云基础设施系统602)按需且经由如因特网等通信网络变得可用于用户的服务。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自身的室内服务器和系统不同。云服务提供商的系统由云服务提供商管理。因此,客户可以使自身利用由云服务提供商提供的云服务,而不必针对服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用程序,并且用户可以经由因特网按需订购并使用应用程序,而用户不必购买用于执行应用程序的基础设施资源。云服务被设计成提供对应用程序、资源和服务的容易的、可伸缩的访问。几个提供商提供云服务。例如,由加利福尼亚州红木海岸(Redwood Shores,California)的Oracle提供如中间件服务、数据库服务、Java云服务以及其他服务等几种云服务。
在某些实施例中,云基础设施系统602可以使用不同的模型(如在软件即服务(SaaS)模型、平台即服务(PaaS)模型、基础设施即服务(IaaS)模型和其他模型(包括混合服务模型)下)提供一个或多个云服务。云基础设施系统602可以包括实现对各种云服务的供给的一套应用程序、中间件、数据库和其他资源。
SaaS模型使应用程序或软件能够作为服务通过如因特网等通信网络输送给客户,而客户不必购买底层应用程序的硬件或软件。例如,可以使用SaaS模型为客户提供对由云基础设施系统602托管的按需应用程序的访问。Oracle提供的SaaS服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(CRM)、企业资源规划(ERP)、供应链管理(SCM)、企业绩效管理(EPM)、分析服务、社交应用程序以及其他等的各种服务。
PaaS模型通常用于提供使客户能够开发、运行并管理应用程序和服务而客户不必采购、构建或维护这种资源的平台和环境资源作为服务。由Oracle提供的PaaS服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)、数据管理云服务、各种应用程序开发解决方案服务、以及其他服务。
云服务通常是以按需自助服务基础、基于订阅、可弹性伸缩、可靠、高度可用且安全的方式提供的。例如,客户可以经由订阅订单来订购由云基础设施系统602提供的一个或多个服务。然后,云基础设施系统602执行处理以提供客户的订阅订单中请求的服务。例如,在某些实施例中,本文描述的与聊天机器人相关的功能可以作为用户/订户订阅的云服务来提供。云基础设施系统602可以被配置为提供一个或甚至多个云服务。
云基础设施系统602可以经由不同的部署模型提供云服务。在公共云模型中,云基础设施系统602可以由第三方云服务提供商拥有,并且云服务被提供给任何一般的公众客户,其中,所述客户可以是个人或企业。在某些其他实施例中,在私有云模型下,云基础设施系统602可以在组织内(例如,在企业组织内)操作并且服务被提供给所述组织内的客户。例如,客户可以是如人力资源部门、薪资部门等企业的各个部门或甚至是企业内的个人。在某些其他实施例中,在社区云模型下,云基础设施系统602和所提供的服务可以由相关的社区中的几个组织共享。也可以使用如以上所提到的模型的混合等各种其他模型。
客户端计算设备604、606和608可以是不同类型的(如图5所描绘的设备502、504、506和508)并且可以能够操作一个或多个客户端应用程序。用户可以使用客户端设备与云基础设施系统602交互,如请求由云基础设施系统602提供的服务。例如,用户可以使用客户端设备请求本公开所描述的与聊天机器人相关的服务。
在一些实施例中,由云基础设施系统602执行的处理可以涉及大数据分析。该分析可以涉及使用、分析并操纵大数据集以检测并可视化数据中的各种趋势、行为、关系等。该分析可以由一个或多个处理器执行,从而可能并行地处理数据、使用数据执行模拟等。用于该分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据块(二进制大对象))。
如图6中的实施例所描绘的,云基础设施系统602可以包括被用于促进供给由云基础设施系统602提供的各种云服务的基础设施资源630。基础设施资源630可以包括例如处理资源、存储或存储器资源、联网资源等。
在某些实施例中,为了促进对这些资源的高效供给以用于支持由云基础设施系统602为不同客户提供的各种云服务,资源可以被捆绑成资源组或资源模块(也被称为“群(pod)”)。每个资源模块或群可以包括一种或多种类型的资源的预先集成且优化的组合。在某些实施例中,可以针对不同类型的云服务预先供给不同的群。例如,可以针对数据库服务供给第一组群、可以针对Java服务供给第二组群(所述第二组群可以包括与第一组群中的群不同的资源组合)等。对于一些服务,被分配用于供给服务的资源可以在服务之间共享。
云基础设施系统602自身可以在内部使用由云基础设施系统602的不同部件共享并且促进云基础设施系统602供给服务的服务632。这些内部共享服务可以包括但不限于安全和身份服务、整合服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高度可用性、备份和恢复服务、用于实现云支持的服务、电子邮件服务、通知服务、文件传送服务等。
云基础设施系统602可以包括多个子系统。这些子系统可以以软件或硬件或其组合实施。如图6所描绘的,子系统可以包括使得云基础设施系统602的用户或客户能够与云基础设施系统602交互的用户接口子系统612。用户接口子系统612可以包括各种不同的接口,如web接口614、在线商店接口616(其中,广告并且客户可购买由云基础设施系统602提供的云服务)和其他接口618。例如,客户可以使用客户端设备请求(服务请求634)由云基础设施系统602使用接口614、616和618中的一个或多个接口提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统602提供的云服务并且针对客户希望订阅的由云基础设施系统602提供的一个或多个服务下订阅订单。服务请求可以包括标识客户和客户期望订阅的一个或多个服务的信息。
在某些实施例(如图6所描绘的实施例)中,云基础设施系统602可以包括被配置为处理新订单的订单管理子系统(OMS)620。作为该处理的一部分,OMS 620可以被配置为:为客户创建账户(如果尚未创建的话);从客户接收要用于向客户开具账单以向客户提供所请求的服务的账单和/或计费信息;验证客户信息;在验证之后,为客户预订订单;并且策划各种工作流程来准备订单以进行供给。
一旦被正确地验证,那么,OMS 620就可以调用被配置成为订单供给资源(包括处理资源、存储器资源和联网资源)的订单供给子系统(OPS)624。供给可以包括为订单分配资源并配置资源以促进客户订单所请求的服务。为订单供给资源的方式和所供给的资源的类型可以取决于客户已经订购的云服务的类型。例如,根据一个工作流程,OPS624可以被配置为确定正在请求的特定云服务并且识别可能已经为所述特定云服务预先配置的群的数量。为订单分配的群的数量可以取决于所请求服务的大小/量/层级/范围。例如,要分配的群的数量可以基于服务所要支持的用户的数量、正在请求的服务的持续时间等来确定。然后,可以为特定的请求客户定制分配的群以用于提供所请求服务。
云基础设施系统602可以向请求客户发送回应或通知644,以指示何时所请求服务现在已准备好使用。在一些实例中,可以向客户发送使客户能够开始使用和利用所请求服务的益处的信息(例如,链接)。
云基础设施系统602可以向多个客户提供服务。对于每个客户,云基础设施系统602负责管理与从客户接收的一个或多个订阅订单有关的信息、维护与订单相关的客户数据并且向客户提供所请求服务。云基础设施系统602还可以收集关于客户使用所订阅服务的使用情况统计数据。例如,可以收集所使用的存储量、所传送的数据量、用户的数量以及系统开机时间量和系统停机时间量等的统计数据。可以使用该使用情况信息向客户开具账单。可以例如以月为周期完成开具账单。
云基础设施系统602可以并行地向多个客户提供服务。云基础设施系统602可以存储这些客户的信息(可能包括专有信息)。在某些实施例中,云基础设施系统602包括被配置为管理客户信息并提供对所管理信息的分离使得与一个客户相关的信息不能够被另一个客户访问的身份管理子系统(IMS)628。IMS 628可以被配置为提供如身份服务等各种安全有关服务,如信息访问管理、认证和授权服务、用于管理客户身份和角色以及相关功能的服务等。
图7图示了可以用于实施某些实施例的示例性计算机系统700。例如,在一些实施例中,计算机系统700可以用于实施以上所述的聊天机器人系统的系统和子系统以及各种服务器和计算机系统中的任何一个。如图7所示,计算机系统700包括各种子系统,包括经由总线子系统702与多个其他子系统通信的处理子系统704。这些其他子系统可以包括处理加速单元706、I/O子系统708、存储子系统718和通信子系统724。存储子系统718可以包括非暂态计算机可读存储介质,包括存储介质722和系统存储器710。
总线子系统702提供用于允许计算机系统700的各个部件和子系统按预期彼此通信的机构。虽然总线子系统702被示意性地示出为单个总线,但是总线子系统的替代性实施例可以利用多个总线。总线子系统702可以是包括存储器总线或存储器控制器、外围总线、使用各种总线架构中的任何一种的局部总线等的若干种类型的总线结构中的任何一种。例如,这种架构可以包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及外围部件互连(PCI)总线(所述PCI总线可以被实施为被制造成IEEE P1386.1标准的夹层(Mezzanine)总线)等。
处理子系统704控制计算机系统700的操作并且可以包括一个或多个处理器、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。处理器可以包括单核处理器或多核处理器。计算机系统700的处理资源可以被组织成一个或多个处理单元732、734等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核、核和处理器的组合或核和处理器的其他组合。在一些实施例中,处理子系统704可以包括如图形处理器、数字信号处理器(DSP)等一个或多个专用协处理器。在一些实施例中,处理子系统704的处理单元中的一些或全部可以使用如专用集成电路(ASIC)或现场可编程门阵列(FPGA)等定制电路来实施。
在一些实施例中,处理子系统704中的处理单元可以执行存储在系统存储器710内或计算机可读存储介质722上的指令。在各个实施例中,处理单元可以执行各种程序或代码指令并且可以维护多个同时执行的程序或过程。在任何给定时间,要执行的程序代码中的一些或全部可以驻留在系统存储器710中和/或计算机可读存储介质722上(潜在地包括驻留在一个或多个存储设备上)。通过适当的编程,处理子系统704可以提供以上所述的各种功能。在计算机系统700在执行一个或多个虚拟机的实例中,可以向每个虚拟机分配一个或多个处理单元。
在某些实施例中,可以可选地提供处理加速单元706以用于执行定制处理或用于卸载处理子系统704所执行的处理中的一些处理,从而加速计算机系统700所执行的总体处理。
I/O子系统708可以包括用于向计算机系统700输入信息和/或用于从或经由计算机系统700输出信息的设备和机构。通常,使用术语输入设备旨在包括用于向计算机系统700输入信息的所有可能类型的设备和机构。用户接口输入设备可以包括例如键盘、如鼠标或轨迹球等指向设备、合并到显示器中的触摸板或触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、具有话音命令识别系统的音频输入设备、麦克风以及其他类型的输入设备。用户接口输入设备还可以包括运动感测和/或姿势识别设备,如使用户能够控制输入设备并与输入设备交互的Microsoft运动传感器、Microsoft360游戏控制器、提供用于使用姿势和口述命令接收输入的界面的设备。用户接口输入设备还可以包括眼部姿势识别设备,如检测来自用户的眼部活动(例如,在拍照和/或进行菜单选择时“眨眼”)并将眼部姿势转化为到输入设备(如Google)的输入的Google眨眼检测器。另外,用户接口输入设备可以包括使用户能够通过声音命令与声音识别系统(例如,导航器)交互的声音识别感测设备。
用户接口输入设备的其他示例包括但不限于三维(3D)鼠标、操纵杆或指向杆、游戏手柄和图形板、以及音频/视觉设备(如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、眼睛注视跟踪设备)。另外,用户接口输入设备可以包括例如医学成像输入设备,如计算机断层扫描、磁共振成像、正电子发射断层扫描和医学超声检查设备。用户接口输入设备还可以包括例如音频输入设备,如MIDI键盘、数码乐器等。
通常,使用术语输出设备旨在包括用于从计算机系统700向用户或其他计算机输出信息的所有可能类型的设备和机构。用户接口输出设备可以包括显示子系统、指示灯或如音频输出设备等非视觉显示器。显示子系统可以是阴极射线管(CRT)、平板设备(如使用液晶显示器(LCD)或等离子显示器的平板设备)、投影设备、触摸屏等。例如,用户接口输出设备可以包括但不限于在视觉上传达文本、图形和音频/视频信息的各种显示设备,如监视器、打印机、扬声器、头戴式耳机、汽车导航系统、绘图仪、话音输出设备和调制解调器。
存储子系统718提供用于存储计算机系统700所使用的信息和数据的储存库或数据存储。存储子系统718提供用于存储提供一些实施例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子系统718可以存储当由处理子系统704执行时提供以上所描述的功能的软件(例如,程序、代码模块、指令)。软件可以由处理子系统704的一个或多个处理单元执行。存储子系统718还可以根据本公开的教导提供用于存储所使用的数据的储存库。
存储子系统718可以包括一个或多个非暂态存储器设备,所述一个或多个非暂态存储器设备包括易失性存储器设备和非易失性存储器设备。如图7所示,存储子系统718包括系统存储器710和计算机可读存储介质722。系统存储器710可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)和其中存储有固定指令的非易失性只读存储器(ROM)或闪速存储器。在一些实施方式中,包含在启动期间帮助计算机系统700内的元件之间传送信息的基本例程的基本输入/输出系统(BIOS)通常可以存储在ROM中。RAM通常包含目前由处理子系统704操作并执行的数据和/或程序模块。在一些实施方式中,系统存储器710可以包括如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等多种不同类型的存储器。
通过示例而非限制的方式,如图7所描绘的,系统存储器710可以加载正在执行的应用程序712(所述应用程序可以包括如Web浏览器、中间层应用程序、关系数据库管理系统(RDBMS)等各种应用程序)、程序数据714和操作系统716。通过示例的方式,操作系统716可以包括各种版本的MicrosoftApple和/或Linux操作系统、各种可商购获取的或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、GoogleOS等)和/或如iOS、电话、OS、OS、OS操作系统等移动操作系统、以及其他操作系统。
计算机可读存储介质722可以存储提供一些实施例的功能的编程和数据构造。计算机可读介质722可以为计算机系统700提供对计算机可读指令、数据结构、程序模块和其他数据的存储。当由处理子系统704执行时提供以上所描述的功能的软件(程序、代码模块、指令)可以存储在存储子系统718中。通过示例的方式,计算机可读存储介质722可以包括如硬盘驱动器、磁盘驱动器、光盘驱动器(如CD ROM、DVD、盘或其他光学介质)等非易失性存储器。计算机可读存储介质722可以包括但不限于驱动器、闪速存储器卡、通用串行总线(USB)闪速存储器驱动器、安全数字(SD)卡、DVD盘、数字录像带等。计算机可读存储介质722还可以包括如基于闪速存储器的固态驱动器(SSD)、企业级闪速存储器驱动器、固态ROM等基于非易失性存储器的SSD、基于如固态RAM、动态RAM、静态RAM等易失性存储器的SSD、基于DRAM的SSD、磁阻RAM(MRAM)SSD以及使用DRAM和基于闪速存储器的SSD的组合的混合SSD。
在某些实施例中,存储子系统718还可以包括可以进一步连接到计算机可读存储介质722的计算机可读存储介质读取器720。读取器720可以从如盘、闪速存储器驱动器等存储器设备接收数据并且被配置为从所述存储器设备读取数据。
在某些实施例中,计算机系统700可以支持虚拟化技术,包括但不限于对处理和存储器资源的虚拟化。例如,计算机系统700可以提供对执行一个或多个虚拟机的支持。在某些实施例中,计算机系统700可以执行如促进对虚拟机的配置和管理的管理程序等程序。每个虚拟机可以分配有存储器、计算(例如,处理器、核)、I/O和联网资源。每个虚拟机通常独立于其他虚拟机运行。虚拟机通常运行其自身的操作系统,所述操作系统可以与由计算机系统700所执行的其他虚拟机执行的操作系统相同或不同。因此,多个操作系统可以潜在地由计算机系统700同时运行。
通信子系统724提供到其他计算机系统和网络的接口。通信子系统724用作用于从其他系统接收数据并且从计算机系统700向其他系统传输数据的接口。例如,通信子系统724可以使得计算机系统700能够经由因特网构建到一个或多个客户端设备的通信通道以用于从客户端设备接收信息并向客户端设备发送信息。
通信子系统724可以支持有线通信协议和/或无线通信协议两者。例如,在某些实施例中,通信子系统724可以包括用于访问无线话音和/或数据网络的射频(RF)收发器部件(例如,使用蜂窝电话技术、如3G、4G或EDGE(全球演进增强型数据速率)等先进的数据网络技术、WiFi(IEEE 802.XX家庭标准、或其他移动通信技术、或其任何组合)、全球定位系统(GPS)接收器部件和/或其他部件。在一些实施例中,除了无线接口之外或替代无线接口,通信子系统724可以提供有线网络连接性(例如,以太网)。
通信子系统724可以接收并发射各种形式的数据。例如,在一些实施例中,除了其他形式之外,通信子系统724还可以接收结构化和/或非结构化数据馈送726、事件流728、事件更新730等形式的输入通信。例如,通信子系统724可以被配置成从社交媒体网络和/或其他通信服务的用户实时地接收(或发送)数据馈送726,如馈送、更新、web馈送(如丰富站点摘要(RSS)馈送)和/或来自一个或多个第三方信息源的实时更新。
在某些实施例中,通信子系统724可以被配置为接收连续数据流形式的数据,所述连续数据流可以包括(可以没有显式结束的本质上连续的或无界的)实时事件的事件流728和/或事件更新730。生成连续数据的应用程序的示例可以包括例如传感器数据应用程序、财务收报机、网络性能测量工具(例如,网络监测和流量管理应用程序)、点击流分析工具、汽车交通监测等。
通信子系统724还可以被配置为将数据从计算机系统700传送到其他计算机系统或网络。可以将数据以如结构化和/或非结构化数据馈送726、事件流728、事件更新730等各种不同的形式传送到可以与耦接至计算机系统700的一个或多个流数据源计算机通信的一个或多个数据库。
计算机系统700可以是各种类型中的一种,包括手持便携式设备(例如,蜂窝电话、计算平板计算机、PDA)、可穿戴设备(例如,Google头戴式显示器)、个人计算机、工作站、主机、自助服务终端、服务器机架、或任何其他数据处理系统。由于计算机和网络的不断变化的性质,对图7所描绘的计算机系统700的描述旨在仅作为具体示例。具有比图7所描绘的系统更多或更少的部件的许多其他配置是可能的。基于本文提供的公开内容和教导,本领域普通技术人员将理解实施各个实施例的其他方式和/或方法。
虽然已经描述了具体实施例,但是各种修改、更改、替代性构造和等同物是可能的。实施例不局限于在某些具体数据处理环境中的操作,而是自由地在多个数据处理环境中操作。另外,尽管已经使用特定系列的事务和步骤描述了某些实施例,但是对于本领域技术人员而言应当显而易见的是,这不旨在是限制性的。虽然一些流程图将操作描述为顺序过程,但是许多操作可以并行地或同时地执行。另外,可以重新布置操作的顺序。过程可以具有图中未包括的另外的步骤。可以单独地或联合地使用以上所述的实施例的各种特征和方面。
进一步地,虽然已经使用硬件和软件的特定组合描述了某些实施例,但是应当认识到,硬件和软件的其他组合也是可能的。某些实施例可以仅在硬件中或仅在软件中或使用其组合实施。本文所描述的各种过程可以在相同处理器或不同处理器上以任何组合实施。
在将设备、系统、部件或模块描述为被配置为执行某些操作或功能的情况下,这种配置可以例如通过将电子电路设计成执行操作、通过对可编程电子电路(如微处理器)进行编程以执行操作(如通过执行计算机指令或代码)或通过被编程成执行存储在非暂态存储器介质上的代码或指令的处理器或核或其任何组合来完成。过程可以使用包括但不限于用于过程间通信的传统技术的各种技术进行通信,并且不同的过程对可以使用不同的技术,或者相同的过程对可以在不同的时间使用不同的技术。
本公开中给出了具体细节以提供对实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践实施例。例如,已经示出了公知的电路、过程、算法、结构和技术,而没有不必要的细节,以避免模糊实施例。此描述仅提供了示例实施例并且不旨在限制其他实施例的范围、适用性或配置。而是,先前对实施例的描述将为本领域技术人员提供用于实施各个实施例的使能描述。可以对元件的功能和布置作出各种改变。
因此,应当从说明性而非限制性意义上看待本说明书和附图。然而,将明显的是,在不脱离权利要求中阐述的更广泛的精神和范围的情况下,可以对其作出添加、减少、删除以及其他修改和改变。因此,虽然已经描述了具体实施例,但是这些示例不旨在是限制性的。各种修改和等同物均在以下权利要求的范围内。
Claims (20)
1.一种方法,所述方法包括:
获取多个话语,其中,每个话语对应于多个意图中的意图,并且所述多个意图中的每个意图对应于一个或多个技能中的技能;
确定跨所述多个话语的意图分布,其中,所述意图分布包括多个意图比例,并且意图比例中的每个意图比例对应于所述多个意图中的意图;
生成批,所述批包括基于所述多个意图比例从所述多个话语中选择的一定批数量的话语;
将来自所述批的训练数据集迭代地输入到所述一个或多个技能的预测模型中,其中,所述预测模型被构建为意图分类器,所述意图分类器包括通过使用目标函数学习的多个模型参数;
通过使所述目标函数最小化或最大化来在所述训练数据集上训练所述预测模型,所述目标函数测量预测意图与客观真实意图之间的差异;
响应于所述训练,学习所述训练数据集内的由所述预测模型使用以生成所述预测意图的关系;以及
获取包括与所学习的关系相关联的所述多个模型参数的经训练预测模型。
2.如权利要求1所述的方法,进一步包括:生成多个意图池,其中,每个意图池对应于所述多个意图中的特定意图并且包括所述多个话语中的对应于所述特定意图的每个话语,其中,所述多个意图比例中的每个意图比例对应于特定意图池,并且生成所述批进一步包括基于所述多个意图比例从所述多个意图池中选择所述数量的话语。
3.如权利要求2所述的方法,其中,从所述多个意图池中选择的每个话语是从对应意图池中随机选择的。
4.如权利要求1所述的方法,进一步包括:
确定多个代表性比例,其中,所述多个代表性比例中的每个代表性比例对应于特定意图跨所生成的批中的一定数量的对应话语的比例表示;以及
确定所述多个代表性比例中的每个代表性比例是否在所述多个意图比例的对应意图比例的阈值差异内,
其中,响应于确定所述多个代表性比例中的每个代表性比例在所述多个意图比例的对应意图比例的阈值差异内,通过将所述批应用于所述一个或多个技能来致使发生对所述一个或多个技能的训练。
5.如权利要求1所述的方法,其中:
所述意图分布是均匀分布,并且每个意图比例是根据所述批中的话语数量和所述多个意图中的意图数量计算得到的均匀比率;并且
所述方法进一步包括基于与特定话语相对应的特定意图和所述均匀比率,选择所述数量的话语中的每个特定话语,以包括在所述批中。
6.如权利要求1所述的方法,其中:
所述意图分布是分层分布,并且每个意图比例对应于多个分层比率中的分层比率,每个分层比率是根据所述批中的话语数量与所述一个或多个技能中的技能数量的第一比率以及与特定技能相对应的意图数量计算得到的;并且
所述方法进一步包括基于与特定话语相对应的特定意图、与所述特定意图相对应的特定技能以及与所述特定意图相对应的特定意图比例,选择所述数量的话语中的每个特定话语,以包括在所述批中。
7.如权利要求1所述的方法,进一步包括:
其中,所述意图分布是拖尾分布,并且每个意图比例对应于多个拖尾比率中的拖尾比率,每个拖尾比率是根据所述多个话语中的话语数量与对应于特定意图的话语数量的第一比率以及所述批中要生成的话语数量计算得到的;
确定对应于低于意图阈值数值的意图比例的一个或多个意图;
选择与对应于低于所述意图阈值数值的意图比例的所述一个或多个意图中的每个意图相对应的至少一个话语,以包括在所述批中;以及
基于与特定话语相对应的特定意图和与所述特定意图相对应的特定意图比例,选择所述数量的话语中的每个其他特定话语,以包括在所述批中。
8.如权利要求1所述的方法,其中:
所述意图分布是加权分布,并且每个意图比例是加权比率,每个加权比率是根据所述多个话语中与特定意图相对应的话语数量和所述多个话语中的话语总数、再乘以多个权重值中的特定权重值计算得到的;并且
所述方法进一步包括基于与特定话语相对应的特定意图和与所述特定意图相对应的特定意图比例,选择每个特定话语,以包括在所述批中。
9.如权利要求8所述的方法,其中,所述多个权重值部分地基于与所述多个话语相对应的意图的频率分布。
10.如权利要求8所述的方法,其中,所述多个权重值中的每个权重值部分地基于与特定意图相对应的多个话语的所有话语的平均字符串长度。
11.如权利要求1所述的方法,进一步包括:
其中,每个意图比例是批比率,每个批比率是根据所述多个话语中与特定意图相对应的话语数量和要包括在所述批中的话语数量计算得到的;
确定所述多个意图比例中的至少一个意图比例未达到或超过阈值数值;以及
响应于确定所述多个意图比例中的至少一个意图比例未达到或超过阈值数值,增加要包括在所述批中的话语数量。
12.一种系统,包括:
一个或多个数据处理器;以及
非暂态计算机可读存储介质,包含指令,所述指令当在所述一个或多个数据处理器上执行时,致使所述一个或多个数据处理器执行包括以下的操作:
获取多个话语,其中,每个话语对应于多个意图中的意图,并且所述多个意图中的每个意图对应于一个或多个技能中的技能;
确定跨所述多个话语的意图分布,其中,所述意图分布包括多个意图比例,并且意图比例中的每个意图比例对应于所述多个意图中的意图;
生成批,所述批包括基于所述多个意图比例从所述多个话语中选择的一定批数量的话语;
将来自所述批的训练数据集迭代地输入到所述一个或多个技能的预测模型中,其中,所述预测模型被构建为意图分类器,所述意图分类器包括通过使用目标函数学习的多个模型参数;
通过使所述目标函数最小化或最大化来在所述训练数据集上训练所述预测模型,所述目标函数测量预测意图与客观真实意图之间的差异;
响应于所述训练,学习所述训练数据集内的由所述预测模型使用以生成所述预测意图的关系;以及
获取包括与所学习的关系相关联的所述多个模型参数的经训练预测模型。
13.如权利要求12所述的系统,进一步包括当在所述一个或多个数据处理器上执行时致使所述一个或多个数据处理器执行包括以下的操作的指令:生成多个意图池,其中,每个意图池对应于所述多个意图中的特定意图并且包括所述多个话语中的对应于所述特定意图的每个话语,其中,所述多个意图比例中的每个意图比例对应于特定意图池,并且生成所述批进一步包括基于所述多个意图比例从所述多个意图池中选择所述数量的话语。
14.如权利要求13所述的系统,其中,从所述多个意图池中选择的每个话语是从对应意图池中随机选择的。
15.如权利要求12所述的系统,进一步包括当在所述一个或多个数据处理器上执行时致使所述一个或多个数据处理器执行包括以下的操作的指令:
确定多个代表性比例,其中,所述多个代表性比例中的每个代表性比例对应于特定意图跨所生成的批中的一定数量的对应话语的比例表示;以及
确定所述多个代表性比例中的每个代表性比例是否在所述多个意图比例的对应意图比例的阈值差异内,
其中,响应于确定所述多个代表性比例中的每个代表性比例在所述多个意图比例的对应意图比例的阈值差异内,通过将所述批应用于所述一个或多个技能来致使发生对所述一个或多个技能的训练。
16.如权利要求12所述的系统,进一步包括当在所述一个或多个数据处理器上执行时致使所述一个或多个数据处理器执行包括以下的操作的指令:
其中,每个意图比例是批比率,每个批比率是根据所述多个话语中与特定意图相对应的话语数量和要包括在所述批中的话语数量计算得到的;
确定所述多个意图比例中的至少一个意图比例未达到或超过阈值数值;以及
响应于确定所述多个意图比例中的至少一个意图比例未达到或超过阈值数值,增加要包括在所述批中的话语数量。
17.一种存储能够由一个或多个处理器执行的多个指令的非暂态计算机可读存储介质,所述多个指令当由所述一个或多个处理器执行时致使以下操作:
获取多个话语,其中,每个话语对应于多个意图中的意图,并且所述多个意图中的每个意图对应于一个或多个技能中的技能;
确定跨所述多个话语的意图分布,其中,所述意图分布包括多个意图比例,并且意图比例中的每个意图比例对应于所述多个意图中的意图;
生成批,所述批包括基于所述多个意图比例从所述多个话语中选择的一定批数量的话语;
将来自所述批的训练数据集迭代地输入到所述一个或多个技能的预测模型中,其中,所述预测模型被构建为意图分类器,所述意图分类器包括通过使用目标函数学习的多个模型参数;
通过使所述目标函数最小化或最大化来在所述训练数据集上训练所述预测模型,所述目标函数测量预测意图与客观真实意图之间的差异;
响应于所述训练,学习所述训练数据集内的由所述预测模型使用以生成所述预测意图的关系;以及
获取包括与所学习的关系相关联的所述多个模型参数的经训练预测模型。
18.如权利要求17所述的存储能够由一个或多个处理器执行的多个指令的非暂态计算机可读存储介质,进一步包括当由所述一个或多个处理器执行时致使以下操作的指令:生成多个意图池,其中,每个意图池对应于所述多个意图中的特定意图并且包括所述多个话语中的对应于所述特定意图的每个话语,其中,所述多个意图比例中的每个意图比例对应于特定意图池,并且生成所述批进一步包括基于所述多个意图比例从所述多个意图池中选择所述数量的话语。
19.如权利要求18所述的存储能够由一个或多个处理器执行的多个指令的非暂态计算机可读存储介质,其中,从所述多个意图池中选择的每个话语是从对应意图池中随机选择的。
20.如权利要求17所述的存储能够由一个或多个处理器执行的多个指令的非暂态计算机可读存储介质,进一步包括当由所述一个或多个处理器执行时致使以下操作的指令:
确定多个代表性比例,其中,所述多个代表性比例中的每个代表性比例对应于特定意图跨所生成的批中的一定数量的对应话语的比例表示;以及
确定所述多个代表性比例中的每个代表性比例是否在所述多个意图比例的对应意图比例的阈值差异内,
其中,响应于确定所述多个代表性比例中的每个代表性比例在所述多个意图比例的对应意图比例的阈值差异内,通过将所述批应用于所述一个或多个技能来致使发生对所述一个或多个技能的训练。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063002151P | 2020-03-30 | 2020-03-30 | |
US63/002,151 | 2020-03-30 | ||
PCT/US2021/024946 WO2021202569A1 (en) | 2020-03-30 | 2021-03-30 | Batching techniques for handling unbalanced training data for a chatbot |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115485690A true CN115485690A (zh) | 2022-12-16 |
Family
ID=77856167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180026697.8A Pending CN115485690A (zh) | 2020-03-30 | 2021-03-30 | 用于处置聊天机器人的不平衡训练数据的分批技术 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210304075A1 (zh) |
EP (1) | EP4128011A1 (zh) |
JP (1) | JP2023520420A (zh) |
CN (1) | CN115485690A (zh) |
WO (1) | WO2021202569A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR112015018905B1 (pt) | 2013-02-07 | 2022-02-22 | Apple Inc | Método de operação de recurso de ativação por voz, mídia de armazenamento legível por computador e dispositivo eletrônico |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
DK201770427A1 (en) | 2017-05-12 | 2018-12-20 | Apple Inc. | LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT |
US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
US11651162B2 (en) * | 2019-04-26 | 2023-05-16 | Oracle International Corporation | Composite entity for rule driven acquisition of input data to chatbots |
US11227599B2 (en) | 2019-06-01 | 2022-01-18 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
WO2021174249A1 (en) * | 2020-02-25 | 2021-09-02 | Transposit Corporation | Markdown data content with action binding |
US11061543B1 (en) | 2020-05-11 | 2021-07-13 | Apple Inc. | Providing relevant data items based on context |
US11490204B2 (en) | 2020-07-20 | 2022-11-01 | Apple Inc. | Multi-device audio adjustment coordination |
US11715464B2 (en) * | 2020-09-14 | 2023-08-01 | Apple Inc. | Using augmentation to create natural language models |
US20220366896A1 (en) * | 2021-05-11 | 2022-11-17 | AskWisy, Inc. | Intelligent training and education bot |
US20220374604A1 (en) * | 2021-05-18 | 2022-11-24 | International Business Machines Corporation | Natural language bias detection in conversational system environments |
US20230008868A1 (en) * | 2021-07-08 | 2023-01-12 | Nippon Telegraph And Telephone Corporation | User authentication device, user authentication method, and user authentication computer program |
US11763803B1 (en) * | 2021-07-28 | 2023-09-19 | Asapp, Inc. | System, method, and computer program for extracting utterances corresponding to a user problem statement in a conversation between a human agent and a user |
US20230098315A1 (en) * | 2021-09-30 | 2023-03-30 | Sap Se | Training dataset generation for speech-to-text service |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10909980B2 (en) * | 2017-02-27 | 2021-02-02 | SKAEL, Inc. | Machine-learning digital assistants |
US10617959B2 (en) * | 2018-01-18 | 2020-04-14 | Moveworks, Inc. | Method and system for training a chatbot |
US10621976B2 (en) * | 2018-09-18 | 2020-04-14 | International Business Machines Corporation | Intent classification from multiple sources when building a conversational system |
-
2021
- 2021-03-30 EP EP21720888.3A patent/EP4128011A1/en active Pending
- 2021-03-30 JP JP2022559638A patent/JP2023520420A/ja active Pending
- 2021-03-30 CN CN202180026697.8A patent/CN115485690A/zh active Pending
- 2021-03-30 WO PCT/US2021/024946 patent/WO2021202569A1/en unknown
- 2021-03-30 US US17/217,623 patent/US20210304075A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4128011A1 (en) | 2023-02-08 |
WO2021202569A1 (en) | 2021-10-07 |
US20210304075A1 (en) | 2021-09-30 |
JP2023520420A (ja) | 2023-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210304075A1 (en) | Batching techniques for handling unbalanced training data for a chatbot | |
US11775572B2 (en) | Directed acyclic graph based framework for training models | |
US11657797B2 (en) | Routing for chatbots | |
US20210304003A1 (en) | Method and system for constraint based hyperparameter tuning | |
CN114424185A (zh) | 用于自然语言处理的停用词数据扩充 | |
US11651162B2 (en) | Composite entity for rule driven acquisition of input data to chatbots | |
CN115917553A (zh) | 在聊天机器人中实现稳健命名实体识别的实体级数据扩充 | |
US20220230000A1 (en) | Multi-factor modelling for natural language processing | |
US20220172021A1 (en) | Method and system for over-prediction in neural networks | |
CN116235164A (zh) | 聊天机器人的范围外自动转变 | |
WO2022040547A1 (en) | Techniques for providing explanations for text classification | |
US20230139397A1 (en) | Deep learning techniques for extraction of embedded data from documents | |
US20220230462A1 (en) | Usage based resource utilization of training pool for chatbots | |
US20220229991A1 (en) | Multi-feature balancing for natural language processors | |
US20230136965A1 (en) | Prohibiting inconsistent named entity recognition tag sequences | |
US20230161963A1 (en) | System and techniques for handling long text for pre-trained language models | |
WO2023076756A1 (en) | Rule-based techniques for extraction of question and answer pairs from data |
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 |