具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
传统的对话系统中,一般将对话内容划分成有限个对话状态,并通过定义一些规则来确定进入这些不同状态所需的条件。在对话过程中,对话系统可以通过机器学习或者人为定义的规则等自然语言处理方法获得用户的意图和其中涉及的实体等,然后根据在前的对话状态以及上述意图和实体等信息触发在后的对话状态,最后再根据在后的对话状态,并利用系统决策模型做出一些反馈。在对话系统实现中,对话系统通常被基于上述流程划分成多个模块。这些模块(或模型)的实现一般是基于离线数据训练得到的或者通过人为定义的规则完成的。而将基于离线数据训练得到的模型应用到对话系统,对话系统上线后所有模型的参数都已经固定,无法进行更新。而这些根据离线数据训练得到的模型可能会偏离线上用户实际使用的对话,导致无法保证模型的有效性。
此外,相关技术中,基于离线数据训练对话系统中包含的多个模块如用户语言理解、系统反馈等模块(或模型),需要人工对离线数据进行标注,这会产生大量的标注成本。此外,由于每个人的判定标准不一定一致,这又会产生较大的标注误差,从而降低模型准确率。
对此,本公开实施例提供了一种改进型的模型训练方法,针对对话系统中使用的数据模型,可以先基于一些离线数据训练对应的初级数据模型,待初级数据模型发布使用后,再基于在线数据并通过强化学习算法对初级数据模型进行在线优化训练。并且这种在线优化训练可以重复地周期性执行。利用在线数据进行模型优化训练后,对话系统可以更真实、更有效地贴近用户的实际使用场景,进而可以获得更好的对话效果。并且,在进行模型优化训练时,采用强化学习算法可以让对话系统在人机交互的环境中及时训练更新,并且不需要任何其他的人为构建的标签数据(如不需要进行数据标注),从而能确保对话系统更准确。以下将结合具体实施例详细阐述本公开。
适于本公开实施例的模型训练方法和装置的系统架构介绍如下。
图1示例性示出了适于本公开实施例的模型训练方法和装置的系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他环境或场景。
如图1所示,系统架构100可以包括服务器101、服务器102、终端设备103和数据库104。
具体地,可以先在服务器101上利用一些离线数据训练一些初级模型,如初级意图识别模型、初级循环神经网络和初级命名实体识别模型等,作为对话系统中使用模型,并将这些初级模型发布到服务器102上。
在用户使用终端设备103进行人机交互的过程中,服务器102可以获取用户在人机交互过程中输入的对话信息,并基于获取的对话信息,利用相应的初级模型,如初级意图识别模型、初级循环神经网络和初级命名实体识别模型,获得对应的预测信息,其中该预测信息可以包括:用户意图信息、对话状态信息和实体信息,进而基于该预测信息,并利用初级行为决策模型,获得对应的机器行为信息,以便机器(即终端设备103)在人机交互过程中可以基于该机器行为信息做出的对应的机器行为。进一步,服务器102可以将上述的预测信息、机器行为信息和反馈信息中的至少之一作为训练数据存入数据库104,并响应于数据库104中的训练数据达到预设数据量,基于数据库104中的训练数据,并利用强化学习算法在线进行模型优化训练,得到优化后的数据模型。进一步,服务器102可以按照上述逻辑周期性的基于数据库104新获得的训练数据对对话系统中使用的模型进行优化训练。
此外,本公开实施例提供的模型训练方法可以在服务器102上和/或在与服务器102通信连接的终端设备103上执行,本公开实施例对此不做限定。
应该理解,图1中的服务器、终端设备和数据库的数目仅仅是示意性的。根据实现需要,可以具有任意数目的服务器、终端设备和数据库。
适于本公开实施例的模型训练方法和装置的应用场景介绍如下。
应该理解,本公开实施例提供的模型训练方法和装置可以应用于任何涉及人机交互或者机器与机器之间交互的对话系统,本公开实施例对此不做限定。
根据本公开的实施例,本公开提供了一种模型训练方法。
图2示例性示出了根据本公开实施例的模型训练方法的流程图。
如图2所示,该方法200可以包括操作S210~S260。
在操作S210,获取用户在人机交互过程中输入的对话信息。
在操作S220,基于对话信息,并利用第一意图识别模型、第一循环神经网络和第一命名实体识别模型,获得对应的预测信息。其中,该预测信息对应的可以包括:用户意图信息、对话状态信息和实体信息。
在操作S230,基于预测信息,并利用第一行为决策模型,获得对应的机器行为信息,以便机器在人机交互过程中基于机器行为信息做出的对应的机器行为。
在操作S240,获取用户针对机器行为输入的反馈信息。
在操作S250,将预测信息、机器行为信息和反馈信息中的至少之一作为训练数据存入数据库。
在操作S260,响应于数据库中的训练数据达到预设数据量,基于数据库中的训练数据,并利用强化学习算法在线进行模型优化训练。
需要说明的是,在操作S210,对话信息包括用户在人机交互过程中输入的对话内容。在操作S220和操作S230,第一意图识别模型、第一循环神经网络和第一命名实体识别模型以及第一行为决策模型可以是利用历史对话数据进行离线训练得到的初级数据模型,或者是在上述初级数据模型的基础上进行一轮或者多轮在线强化学习后得到的优化后的数据模型,本公开实施例对此不做限定。
此外,在操作S230,在基于上述的预测信息,并利用上述的第一行为决策模型,获得对应的机器行为信息后,可以将该机器行为信息发送至用户进行人机交互所使用的终端设备,由该终端设备基于该机器行为信息做出对应的机器行为,以作为针对用户输入的对话内容的反馈。
在本公开的一个实施例中,在一次人机对话过程中,根据操作S210~操作S230,机器做出一系列机器行为后,用户可以根据系统最终是否完成了用户的对话目标来给出一些反馈信息。示例性的,如果对话停止时最终完成了用户的对话目标,则用户可以将当前的奖励rt设置为10。如果对话停止时没有完成任何对话目标,则用户可以将当前的奖励rt设置为-10。此外,如果对话已停止且最终完成了用户的对话目标,但用户还继续询问,则可以将当前的奖励rt重新设置为-1,由此可以使用户询问的次数尽可能的少。其中,上述的奖励rt即为用户针对机器行为输入的反馈信息。
需要说明的是,在本公开实施例中将上述的反馈信息作为训练数据的一部分,使得训练模型所需要的训练数据不再依赖于人工标注,因而可以节约人工标注所耗费的成本。此外,由于不再需要进行人工标注,因而可以消除因人工标注造成的标注误差,从而可以提高模型的准确率。
通过本公开实施例,针对对话系统中使用的各数据模型,可以先基于一些离线数据训练对应的初级数据模型,待初级数据模型发布使用后,再基于在线数据并通过强化学习算法对初级数据模型进行在线优化训练。并且这种在线优化训练可以重复地周期性执行。利用在线数据进行模型优化训练后,对话系统可以更真实、更有效地贴近用户的实际使用场景,进而可以获得更好的对话效果,即可以保证模型的有效性。并且,在进行模型优化训练时,采用强化学习算法进行模型优化训练,不需要花时间去进行数据标注,因而可以让对话系统在人机交互的过程中被及时训练更新,即可以保证模型更新的及时性。并且,采用强化学习算法进行模型优化训练,不需要任何其他的人为构建的标签数据(如不需要进行数据标注),不仅可以大量减少数据标注的人力成本,而且可以使模型的准确率免受人工标注水平的影响。此外,由于模型优化训练是基于在线数据即实时数据进行的,因而可以保证训练数据的准确性,进而可以保证所得模型的准确性。
作为一种可选的实施例,基于上述数据库中的训练数据,并利用强化学习算法在线进行模型优化训练,例如可以包括如下操。
从该数据库中随机选取部分训练数据。
基于随机选取的训练数据,并利用强化学习算法在线进行模型优化训练。
需要说明的是,在本公开实施例中,通过从上述的数据库中随机选取部分训练数据而不是全部数据来用于模型的优化训练,可以减少模型优化训练过程中的计算量,进而可以提高模型的优化训练效率。
此外,在本公开实施例中,可以将reinforcement算法作为强化学习算法,然后利用reinforcement算法对相关模型在线进行优化训练。
在本公开的一个实施例中,在模型优化训练过程中,可以采用反向传播和梯度下降法等优化方法。应该理解,反向传播训练方法以减小loss值(即损失函数)为优化目标。梯度下降法则使用随机梯度下降算法,使模型的参数沿着梯度的反方向,即总损失减小的方向移动,实现参数更新。
此外,在本公开的其他实施例中,还可以采用诸如momentum优化器、adam优化器等优化方法进行模型优化训练。
作为另一种可选的实施例,基于数据库中的训练数据,并利用强化学习算法在线进行模型优化训练,例如可以包括如下操作。基于上述数据库中的训练数据,并利用强化学习算法在线对以下模型中的至少之一进行模型优化训练:第一意图识别模型,第一循环神经网络,第一命名实体识别模型,第一行为决策模型。
在本公开的一个实施例中,可以基于在线数据对对话系统中使用的第一意图识别模型、第一循环神经网络、第一命名实体识别模型、第一行为决策模型全部进行优化训练。
在本公开的其他实施例中,可以基于在线数据仅对对话系统中使用的部分模型如第一意图识别模型、第一循环神经网络和第一行为决策模型进行优化训练。
应该理解,在本次模型优化训练后,针对第一意图识别模型、第一循环神经网络、第一命名实体识别模型、第一行为决策模型可以依次得到第二意图识别模型、第二循环神经网络、第二命名实体识别模型、第二行为决策模型。进一步,在下次模型优化训练后,针对第二意图识别模型、第二循环神经网络、第二命名实体识别模型、第二行为决策模型又可以依次得到第三意图识别模型、第三循环神经网络、第三命名实体识别模型、第三行为决策模型。依次类推,重复执行上述操作,可以得到第N意图识别模型、第N循环神经网络、第N命名实体识别模型、第N行为决策模型。
进一步,作为一种可选的实施例,该方法还可以包括以下至少之一。
在对第一意图识别模型进行优化训练的情况下,对第一意图识别模型的全连接层进行优化训练。
在对第一行为决策模型进行优化训练的情况下,对第一行为决策模型的全连接层进行优化训练。
在本公开实施例中,对第一意图识别模型的全连接层进行优化训练即在优化训练过程中仅控制该模型的全连接层进行参数调整,并控制其他层参数保持不变。通过对全连接层进行优化训练,可以优化该模型对意图特征的认识。
类似地,在本公开实施例中,对第一行为决策模型的全连接层进行优化训练即在优化训练过程中仅控制该模型的全连接层进行参数调整,并控制其他层参数保持不变。通过对全连接层进行优化训练,可以优化该模型对机器行为特征的认识。
作为一种可选的实施例,基于对话信息,并利用第一意图识别模型、第一循环神经网络和第一命名实体识别模型,获得对应的预测信息,包括以下至少之一:
基于对话信息,并利用第一意图识别模型,获得用户意图的概率分布。
基于对话信息,并利用第一循环神经网络,获得对话状态的概率分布。
基于对话信息,并利用第一命名实体识别模型,获得对应的实体向量。
需要说明的是,在实现本公开实施例的过程中,发明人发现:现有技术中将对话系统划分成用户语言理解、对话状态更新和系统反馈三个模块,在前模块产生的误差会被在后模块积累,从而使最终得到的结果变差。例如,通过用户语言理解模块进行实体和意图识别时出现的错误会直接导致整个结果错误,而在后的对话状态更新模块和系统反馈模块都无法改正这个错误。这是因为现有技术中用户语言理解模块输出的是用户的意图,对话状态更新模型输出的对话状态,系统反馈输出的是机器应做出的机器行为。
对此,本公开实施例利用第一意图识别模型获得的是用户意图的概率分布,所以不存在用户意图的误差积累。类似地,本公开实施例利用第一循环神经网络获得的是对话状态的概率分布,所以不存在对话状态的误差积累。类似地,本公开实施例利用第一命名实体识别模型获得的是实体向量,所以不存在实体识别的误差积累。
类似地,作为一种可选的实施例,基于上述预测信息,并利用第一行为决策模型,获得对应的机器行为信息,例如可以包括:基于上述预测信息,并利用第一行为决策模型,获得对应的机器行为的概率分布,因而不存在机器行为决策的误差积累。
示例性的,图3示例性示出了根据本公开实施例的模型训练的原理图。如图3所示,首先可以根据用户的历史对话数据进行离线训练以便得到初步的数据模型,之后再根据实时获取的在线对话数据对离线训练得到的初步的数据模型在线进行模型优化训练。
如图3所示,针对用户在t-1时刻输入的对话内容,可以通过NER304’(预先定义的命名实体识别模型,Named Entity Recognition)进行实体识别,以得到对应的实体信息并存入实体数据库。此外,还可以通过模板匹配和关键词匹配等方式识别出该对话内容中涉及用户语义的一些关键实体信息。进而针对这些关键实体信息,可以通过编码器301’进行编码,得到对应的编码向量,记为ut-1。需要说明的是,在本公开实施例中,编码器301’可以是预训练模型(如BERT(Bidirectional Encoder Representation from transformers)模型,即预训练的语言表征模型)、卷积神经网络CNN(Convolutional Neural Networks)、长短期记忆网络LSTM(Long short-term Memory)等中的任意一种。
进一步,可以将上述的编码向量ut-1输入到用户意图识别模型的全连接层302’,进而将该层的输出结果再输入用户意图识别模型的soft max层303’,从而输出用户意图的概率分布结果lt-1。进一步,将soft max层303’的输出结果即实际预测结果与期望的预测结果进行交叉熵计算,进而将得到的交叉熵作为损失函数(即loss函数)以用于模型的有监督训练,从而可以得到初步的数据模型(如下述的(2)中的BERT模型、(3)中的全连接层。进一步,可以将初步的数据模型发布到线上使用。
此外,还可以将上述的编码向量ut-1输入到GRU(Gated Recurrent Unit,循环门单元)模型305’,以便输出表示t-1时刻的对话状态的状态向量,记为st-1。
进一步,如图3所示,对于用户t时刻的输入进行强化学习训练,其处理流程如下:
(1)可以通过NER304进行实体识别,以得到对应的实体信息并更新实体数据库。
(2)可以通过模板匹配和关键词匹配等方式识别出该对话内容中涉及用户语义的一些关键实体信息。进而针对这些关键实体信息,可以通过编码器301进行编码,得到对应的编码向量,记为ut。需要说明的是,在本公开实施例中,编码器301可以是预训练模型(如BERT模型)、卷积神经网络CNN、长短期记忆网络LSTM等中的任意一种。
(3)可以将编码向量ut输入到初始意图识别模型的全连接层302,然后将该层的输出结果再输入到初始意图识别模型的soft max层303,得到用户意图的概率分布结果lt。需要说明的是,在此,可以将soft max层303的输出结果即实际预测结果与期望的预测结果进行交叉熵计算,进而将得到的交叉熵作为损失函数(即loss函数)以用于模型的有监督训练。
(4)对(2)中的编码向量ut利用GRU模型305进行计算,以便输出表示t时刻的对话状态的状态向量st。
(5)对(1)中识别得到的实体信息进行one-hot编码,从而将实体信息表示成实体向量,记为et。
(6)将et、st和lt进行concatenate操作(拼接操作),得到拼接向量,记为ht。
(7)将拼接向量ht输入初始行为决策模型的全连接层,并将该层的输出结果输入到初始行为决策模型的soft max层,得到最终的机器行为的概率分布at。
需要说明的是,可以将该机器行为的概率分布at发送至用户进行人机交互的终端设备,以便该终端设备能够基于此概率分布at做出对应的机器行为。
(8)此外,需要说明的是,针对机器做出的机器行为,在对话停止时,如果用户认为完成了预期的对话目标,例如可以将奖励rt设置为10。在对话停止时,如果用户认为没有完成任何目标,例如可以将奖励rt设置为-10。此外,在对话停止时,如果用户继续询问,则还可以将奖励重新设置为-1,由此可以使用户询问的次数尽可能减少。
(9)将(ht,at,rt)保存进入训练数据库。
(10)响应于训练数据库中的训练数据到达一定数量,可以从训练数据库中随机选取一些训练数据,利用强化学习的reinforcement算法对(2)中的BERT模型、步骤(4)中的GRU模型、(3)和(7)中的全连接层进行反向梯度更新(即利用反向传播和梯度下降法进行更新)。
(11)将线上的模型更新为强化学习训练后得到的模型。
需要说明的是,重复(9)-(11)过程,可以多次进行线上强化学习训练。
通过本公开实施例,将用户意图、实体信息、状态信息一起作为训练数据进行模型训练和预测,即使在用户意图或者实体信息的识别部分出现偏差,也会因为模型预测时能够获得完整的概率分布而减少对于单个用户意图或者单个实体的依赖,并且进一步可以减少单个模块对整个对话系统的影响。
根据本公开的实施例,本公开还提供了一种模型训练装置。
图4示例性示出了根据本公开实施例的模型训练装置的框图。
如图4所示,该装置400可以包括第一获取模块410、第一预测模块420、第二预测模块430、第二获取模块440、存储模块450和优化训练模块460。
第一获取模块410,用于获取用户在人机交互过程中输入的对话信息。
第一预测模块420,用于基于对话信息,并利用第一意图识别模型、第一循环神经网络和第一命名实体识别模型,获得对应的预测信息,其中,预测信息包括:用户意图信息、对话状态信息和实体信息。
第二预测模块430,用于基于预测信息,并利用第一行为决策模型,获得对应的机器行为信息,以便机器在人机交互过程中基于机器行为信息做出的对应的机器行为。
第二获取模块440,用于获取用户针对机器行为输入的反馈信息;
存储模块450,用于将预测信息、机器行为信息和反馈信息中的至少之一作为训练数据存入数据库。
优化训练模块460,用于响应于数据库中的训练数据达到预设数据量,基于数据库中的训练数据,并利用强化学习算法在线进行模型优化训练。
作为一种可选的实施例,优化训练模块包括:选取单元,用于从数据库中随机选取训练数据;以及第一优化训练单元,用于基于随机选取的训练数据,并利用强化学习算法在线进行模型优化训练。
作为一种可选的实施例,优化训练模块还用于:基于数据库中的训练数据,并利用强化学习算法在线对以下模型中的至少之一进行模型优化训练:第一意图识别模型,第一循环神经网络,第一命名实体识别模型,第一行为决策模型。
作为一种可选的实施例,优化训练模包括以下至少之一:第二优化训练单元,用于在对第一意图识别模型进行优化训练的情况下,对第一意图识别模型的全连接层进行优化训练;第三优化训练单元,用于在对第一行为决策模型进行优化训练的情况下,对第一行为决策模型的全连接层进行优化训练。
作为一种可选的实施例,第一预测模块包括以下至少之一:第一预测单元,用于基于对话信息,并利用第一意图识别模型,获得用户意图的概率分布;第二预测单元,用于基于对话信息,并利用第一循环神经网络,获得对话状态的概率分布;以及第三预测单元,用于基于对话信息,并利用第一命名实体识别模型,获得对应的实体向量。
作为一种可选的实施例,第二预测模块还用于:基于预测信息,并利用第一行为决策模型,获得对应的机器行为的概率分布。
需要说明的是,本公开的装置实施例部分与本公开的方法实施例部分对应相同或类似,装置实施例部分的描述具体可参考方法实施例部分,在此不再赘述。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图5所示,电子设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM 503中,还可存储电子设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
电子设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如模型训练方法。例如,在一些实施例中,模型训练方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的模型训练方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行模型训练方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。