CN114490985B - 对话生成方法、装置、电子设备和存储介质 - Google Patents
对话生成方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN114490985B CN114490985B CN202210088443.5A CN202210088443A CN114490985B CN 114490985 B CN114490985 B CN 114490985B CN 202210088443 A CN202210088443 A CN 202210088443A CN 114490985 B CN114490985 B CN 114490985B
- Authority
- CN
- China
- Prior art keywords
- sequence
- predicted
- prediction
- sample
- slot value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 121
- 230000009471 action Effects 0.000 claims abstract description 524
- 230000004044 response Effects 0.000 claims abstract description 330
- 230000000875 corresponding effect Effects 0.000 claims description 467
- 238000012549 training Methods 0.000 claims description 118
- 238000013145 classification model Methods 0.000 claims description 88
- 238000002372 labelling Methods 0.000 claims description 82
- 239000013598 vector Substances 0.000 claims description 75
- 238000012545 processing Methods 0.000 claims description 42
- 238000006243 chemical reaction Methods 0.000 claims description 20
- 230000004927 fusion Effects 0.000 claims description 19
- 230000015654 memory Effects 0.000 claims description 11
- 238000000605 extraction Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 15
- 238000013473 artificial intelligence Methods 0.000 abstract description 9
- 238000013135 deep learning Methods 0.000 abstract description 4
- 241001122767 Theaceae Species 0.000 description 43
- 235000013336 milk Nutrition 0.000 description 35
- 239000008267 milk Substances 0.000 description 35
- 210000004080 milk Anatomy 0.000 description 35
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 18
- 238000004590 computer program Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 230000014509 gene expression Effects 0.000 description 10
- 240000001417 Vigna umbellata Species 0.000 description 8
- 235000011453 Vigna umbellata Nutrition 0.000 description 8
- 235000020197 coconut milk Nutrition 0.000 description 8
- 235000013361 beverage Nutrition 0.000 description 7
- 238000003058 natural language processing Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000013604 expression vector Substances 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language 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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Machine Translation (AREA)
Abstract
本公开提供了一种对话生成方法、装置、电子设备和存储介质,涉及深度学习、语音技术等人工智能技术领域。具体实现方案为:获取当前轮对话的输入语句,并根据输入语句,对当前的对话状态进行更新,以获取更新后的对话状态信息;基于对话状态信息及预设意图,获取输入语句对应的对话历史、意图序列及槽值对序列;基于对话历史、意图序列及槽值对序列,生成输入语句对应的应答动作的第一预测动作类别、第一预测意图及第一预测槽值对;按照预设动作表示规则,生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作;根据应答动作,生成输入语句对应的应答语句。由此,实现了准确生成当前轮对话的输入语句对应的应答语句。
Description
技术领域
本公开涉及人工智能技术领域,具体为深度学习、语音技术领域,尤其涉及对话生成方法、装置、电子设备和存储介质。
背景技术
人机对话,是指让机器理解和运用自然语言实现人机通信的技术。任务型对话系统,是一种以完成任务为目的的人机对话系统。随着人工智能技术的发展,人机对话系统越来越能够满足用户的任务需求,而如何使人机对话系统准确的生成对话,显得至关重要。
发明内容
本公开提供了一种对话生成方法、装置、电子设备和存储介质。
根据本公开的一方面,提供了一种对话生成方法,所述方法包括:获取当前轮对话的输入语句,并根据所述输入语句,对当前的对话状态进行更新,以获取更新后的对话状态信息;基于所述对话状态信息及预设意图,获取所述输入语句对应的对话历史、意图序列及槽值对序列;基于所述对话历史、所述意图序列及所述槽值对序列,生成所述输入语句对应的应答动作的第一预测动作类别、第一预测意图及第一预测槽值对;基于所述第一预测动作类别、第一预测意图及第一预测槽值对,按照预设动作表示规则,生成以所述第一预测动作类别、所述第一预测意图及所述第一预测槽值对表示的应答动作;根据所述应答动作,生成所述输入语句对应的应答语句。
根据本公开的另一方面,提供了一种用于对话生成的模型训练方法,所述方法包括:获取多个场景下的第一训练样本,所述第一训练样本包括多轮对话中的样本输入语句对应的样本对话历史、样本意图序列及样本槽值对序列,各所述样本输入语句以对应的样本应答动作进行标注,所述样本应答动作以对应的样本动作类别、样本意图和样本槽值对表示;根据所述样本槽值对序列中至少一个词槽对应的词槽值,生成样本词槽值序列;将当前轮对话中的第一样本输入语句对应的所述样本对话历史、样本意图序列及样本词槽值序列,输入初始对话预测模型,以获取所述第一样本输入语句对应的预测应答动作;所述预测应答动作以对应的第二预测动作类别、第二预测意图及第二预测槽值对表示;根据所述预测应答动作与所述当前轮对话中的第一样本应答动作之间的差异,对所述初始对话预测模型的模型参数进行调整,得到训练后的目标对话预测模型。
根据本公开的另一方面,提供了一种对话生成装置,所述装置包括:第一获取模块,用于获取当前轮对话的输入语句,并根据所述输入语句,对当前的对话状态进行更新,以获取更新后的对话状态信息;第二获取模块,用于基于所述对话状态信息及预设意图,获取所述输入语句对应的对话历史、意图序列及槽值对序列;第一生成模块,用于基于所述对话历史、所述意图序列及所述槽值对序列,生成所述输入语句对应的应答动作的第一预测动作类别、第一预测意图及第一预测槽值对;第二生成模块,用于基于所述第一预测动作类别、第一预测意图及第一预测槽值对,按照预设动作表示规则,生成以所述第一预测动作类别、所述第一预测意图及所述第一预测槽值对表示的应答动作;第三生成模块,用于根据所述应答动作,生成所述输入语句对应的应答语句。
根据本公开的另一方面,提供了一种用于对话生成的模型训练装置,所述装置包括:第三获取模块,用于获取多个场景下的第一训练样本,所述第一训练样本包括多轮对话中的样本输入语句对应的样本对话历史、样本意图序列及样本槽值对序列,各所述样本输入语句以对应的样本应答动作进行标注,所述样本应答动作以对应的样本动作类别、样本意图和样本槽值对表示;第四生成模块,用于根据所述样本槽值对序列中至少一个词槽对应的词槽值,生成样本词槽值序列;处理模块,用于将当前轮对话中的第一样本输入语句对应的所述样本对话历史、样本意图序列及样本词槽值序列,输入初始对话预测模型,以获取所述第一样本输入语句对应的预测应答动作;所述预测应答动作以对应的第二预测动作类别、第二预测意图及第二预测槽值对表示;第一调整模块,用于根据所述预测应答动作与所述当前轮对话中的第一样本应答动作之间的差异,对所述初始对话预测模型的模型参数进行调整,得到训练后的目标对话预测模型。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开的对话生成方法,或者执行本公开的用于对话生成的模型训练方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开实施例公开的对话生成方法,或者执行本公开实施例公开的用于对话生成的模型训练方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开的对话生成方法的步骤,或者实现本公开的用于对话生成的模型训练方法的步骤。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开第一实施例的对话生成方法的流程示意图;
图2是根据本公开第二实施例的对话生成方法的流程示意图;
图3是根据本公开第三实施例的对话生成方法的流程示意图;
图4是根据本公开第三实施例的对话预测模型的整体结构图;
图5是根据本公开第三实施例的对话预测模型的部分结构图;
图6是根据本公开第四实施例的用于对话生成的模型训练方法的流程示意图;
图7是根据本公开第五实施例的用于对话生成的模型训练方法的流程示意图;
图8是根据本公开第六实施例的用于对话生成的模型训练方法的流程示意图;
图9是根据本公开第六实施例的用于对话生成的模型训练方法的架构图;
图10是根据本公开第七实施例的对话生成装置的结构示意图;
图11是根据本公开第八实施例的用于对话生成的模型训练装置的结构示意图;
图12是用来实现本公开实施例的对话生成方法或用于对话生成的模型训练方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
人机对话,是指让机器理解和运用自然语言实现人机通信的技术。任务型对话系统,是一种以完成任务为目的的人机对话系统。随着人工智能技术的发展,人机对话系统越来越能够满足用户的任务需求,而如何使人机对话系统准确的生成对话,显得至关重要。
本公开提供一种能够准确生成对话的对话生成方法和用于对话生成的模型训练方法,其中对话生成方法,通过获取当前轮对话的输入语句,并根据输入语句,对当前的对话状态进行更新,以获取更新后的对话状态信息,基于对话状态信息及预设意图,获取输入语句对应的对话历史、意图序列及槽值对序列,基于对话历史、意图序列及槽值对序列,生成输入语句对应的应答动作的第一预测动作类别、第一预测意图及第一预测槽值对,基于第一预测动作类别、第一预测意图及第一预测槽值对,按照预设动作表示规则,生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作,根据应答动作,生成输入语句对应的应答语句,实现了准确生成当前轮对话的输入语句对应的应答语句。
本公开提供的对话生成方法、用于对话生成的模型训练方法、装置、电子设备、非瞬时计算机可读存储介质以及计算机程序产品,涉及人工智能技术领域,具体为深度学习、语音技术领域。
其中,人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
下面参考附图描述本公开实施例的对话生成方法、用于对话生成的模型训练方法、装置、电子设备、非瞬时计算机可读存储介质以及计算机程序产品。
图1是根据本公开第一实施例的对话生成方法的流程示意图。其中,需要说明的是,本实施的对话生成方法,执行主体为对话生成装置,该对话生成装置可以由软件和/或硬件实现,该对话生成装置可以配置在电子设备,该电子设备可以包括但不限于终端设备、服务器等,该实施例对电子设备不作具体限定。
如图1所示,该对话生成方法可以包括:
步骤101,获取当前轮对话的输入语句,并根据输入语句,对当前的对话状态进行更新,以获取更新后的对话状态信息。
其中,输入语句为用户的输入语句,其可以为任意语句,不受长度、语言、形式等限制。比如,输入语句可以为中文语句、英文语句等,或者也可以是疑问句、陈述句等,还可以是语音语句、文字语句等,本公开对此不作限制。
在本公开的实施例中,获取当前轮对话的输入语句后,可以对输入语句进行口语理解,从而得到输入语句的语义理解结果,比如意图、包含的词槽等信息,再进行对话状态跟踪,根据当前轮的语义理解结果以及历史对话状态,对当前的对话状态进行更新,以获取更新后的对话状态信息。
其中,更新后的对话状态信息中,可以包括当前轮对话和之前轮对话分别对应的意图和槽值对、之前轮的应答动作以及用户目标。
步骤102,基于对话状态信息及预设意图,获取输入语句对应的对话历史、意图序列及槽值对序列。
其中,预设意图,为预先设置的意图,可以根据需要设置。比如,本公开的实施例中,预设意图,可以包括“再见”、“问候”、“更多帮助”、“感谢”、“不用谢”这五种意图。
对话历史,为到当前轮为止的整个对话历史,包括每一轮对话对应的意图和槽值对,以及每一轮对话的应答动作,即对话历史包括当前轮对话对应的意图和槽值对、之前轮对话对应的意图和槽值对、之前轮对话的应答语句。其中,每一轮对话对应的意图和槽值对,为对该轮对话的输入语句进行口语理解及对话状态跟踪得到的意图和槽值对。其中,之前轮对话,指第一轮对话到第n-1轮对话,其中,第n轮对话指当前轮对话。
意图序列,为多个意图组成的序列。意图序列中包括对话历史中出现过的意图和预设意图。
槽值对序列,为至少一个槽值对组成的序列。其中,槽值对序列中包括对话历史中出现过的槽值对、以及输入语句对应的应答语句的预测槽值对。其中,输入语句对应的应答语句的预测槽值对,可以从预设知识库中获取,预设知识库可以由开发人员维护,预设知识库中包括多个输入语句对应的应答语句的预测槽值对。其中,每个槽值对,包括词槽和对应的词槽值,本公开实施例中以“词槽:词槽值”的方式来表示一个槽值对。
可以理解的是,更新后的对话状态信息Sn由三元组组成,即Sn={Gn,Un,Hn}。其中,Gn表示用户目标;Un表示当前轮对话的意图和槽值对;Hn表示不包含当前轮的对话历史,即Hn={U0,A0,U1,A1,…,Un-1,An-1}。其中,Un-1表示第n-1轮对话的意图和槽值对,An-1表示第n-1轮对话的应答语句。其中,需要说明的是,Un中包含当前轮对话对应的意图,以及当前轮对话和之前轮对话对应的槽值对。
本公开实施例中,Un和Hn的总和,即为本公开实施例中的输入语句对应的对话历史;U0、U1至Un中包含的意图,即为本公开实施例中的意图序列中包括的意图;Un中包含的槽值对,即为本公开实施例中的槽值对序列中包括的槽值对。
步骤103,基于对话历史、意图序列及槽值对序列,生成输入语句对应的应答动作的第一预测动作类别、第一预测意图及第一预测槽值对。
其中,第一预测动作类别,为预设动作类别中的至少一个动作类别。其中,预设动作类别,可以根据需要设置。比如,本公开实施例中,预设动作类别可以包括“请求(Request)”、“告知(Inform)”、“确认(Confirm)”、“推荐(Recommend)”、“失败(Failure)”、“常规(General)”这6种动作类别。其中,请求,用于向用户发出请求,通常用于填充词槽时的询问,例如:查哪个地方的天气;告知,用于告知用户一些信息,通常用于意图满足时的答复,例如:告知天气查询结果;确认,用于向用户发出是和否的确认,例如:确认订单信息;推荐,用于向用户推荐多个选项供用户选择,例如:饮品推荐;失败,用于当系统无法识别用户说的内容时,进行失败兜底,例如:我不知道该怎么答复您;常规,用于在任何对话场景下都可能出现的常规动作,例如:问候、感谢等。
第一预测意图,为意图序列中的至少一个意图。
第一预测槽值对,为槽值对序列中的至少一个槽值对。
本公开实施例中,可以基于输入语句对应的对话历史、意图序列及槽值对序列,对输入语句对应的应答动作的动作类别、意图及槽值对进行预测,以得到输入语句对应的应答动作的第一预测动作类别、第一预测意图及第一预测槽值对。其中,基于输入语句对应的对话历史、意图序列及槽值对序列,对输入语句对应的应答动作的意图及槽值对进行预测的过程,可以理解为从输入语句对应的意图序列包括的多个意图中选出至少一个意图作为第一预测意图,以及从输入语句对应的槽值对序列包括的至少一个槽值对中选出至少一个槽值对作为第一预测槽值对的过程。
步骤104,基于第一预测动作类别、第一预测意图及第一预测槽值对,按照预设动作表示规则,生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作。
本公开实施例中,可以预先根据需要,设置一种动作表示规则,动作表示规则规定了如何通过动作类别、动作类别对应的意图及槽值对,来表示应答动作,进而可以基于第一预测动作类别、第一预测意图及第一预测槽值对,按照预设动作表示规则,生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作。
需要说明的是,在第一预测动作类别包括多个动作类别时,相应的,第一预测意图包括多个意图,第一预测槽值对包括多个槽值对,且每个动作类别具有对应的意图和槽值对。进而,本公开实施例中可以根据每组具有对应关系的动作类别、意图和槽值对,生成对应的一个应答动作,从而基于多个动作类别、多个意图和多个槽值对,生成多个应答动作。
比如,预设动作表示规则,可以为act_type(intent="",slots={})。其中,act_type表示应答动作所属的动作类别;intent=""及slots={}表示对应的应答动作的参数,通过意图和槽值对构成,可以表示除应答动作所属的动作类别外的更丰富的信息,同时也可以用于区分不同的应答动作。例如,查天气场景下,应答动作“询问地点”和“询问时间”的动作类别都为“请求”类,但是请求的内容不同,一个是“地点”,一个是“时间”,通过不同的参数,可以区分这两个应答动作。
假设输入语句为“我要奶茶”,基于输入语句对应的对话历史、意图序列及槽值对序列,生成了输入语句对应的应答动作的第一预测动作类别、第一预测意图和第一预测槽值对。其中,第一预测动作类别包括“推荐”类和“请求”类;第一预测意图包括“推荐”类对应的意图“预定饮品”、“请求”类对应的意图“预定饮品”;第一预测槽值对包括“推荐”类对应的两个槽值对“种类:奶茶”和“饮品:珍珠奶茶、红豆奶茶、椰果奶茶”、“请求”类对应的一个槽值对“饮品:—”。其中,“—”表示词槽值为空。
则可以按照上述预设动作表示规则,基于“推荐”类、“推荐”类对应的意图“预定饮品”、“推荐”类对应的两个槽值对“种类:奶茶”和“饮品:珍珠奶茶、红豆奶茶、椰果奶茶”,生成应答动作“Recommend(intent="预订饮品",slots={"种类":["奶茶"],"饮品":["珍珠奶茶","红豆奶茶","椰果奶茶"]})”,并基于“请求”类、“请求”类对应的意图“预定饮品”、“请求”类对应的一个槽值对“饮品:—”,生成应答动作“Request(intent="预订饮品",slots={"饮品":[]})”。
步骤105,根据应答动作,生成输入语句对应的应答语句。
本公开的实施例中,生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作后,即可根据应答动作,对应生成输入语句对应的应答语句。
继续上述示例,则可以根据应答动作“Recommend(intent="预订饮品",slots={"种类":["奶茶"],"饮品":["珍珠奶茶","红豆奶茶","椰果奶茶"]})”,及应答动作“Request(intent="预订饮品",slots={"饮品":[]})”,生成应答语句“奶茶有珍珠奶茶、红豆奶茶、椰果奶茶,您想要哪种”。
或者,可以根据应答动作“Request(intent="预订饮品",slots={"饮品":["珍珠奶茶"],"温度":[]})”,生成应答语句“珍珠奶茶想要什么温度?”;根据应答动作“Inform(intent="预订饮品",slots={"杯数":["2"],"温度":["常温"],"饮品":["珍珠奶茶"]})”,生成应答语句“已预订2杯常温珍珠奶茶”;根据应答动作“Confirm(intent="预订饮品",slots={"杯数":["2"],"温度":["常温"],"饮品":["珍珠奶茶"]})”,生成应答语句“订单信息:2杯常温珍珠奶茶,请确认是否下单?”;根据应答动作“Recommend(intent="预订饮品",slots={"饮品":["珍珠奶茶"],"温度":["热","常温","加冰"]})”,生成应答语句“珍珠奶茶有热的、常温、加冰”;根据应答动作“Failure(intent="",slots={})”,生成应答语句“我不知道该怎么答复您。”;根据应答动作“General(intent="更多帮助",slots={})”,生成应答语句“还有什么需要的吗?”。
可以理解的是,本公开实施例中,通过动作类别、动作类别对应的意图及槽值对表示应答动作,其中,动作类别表示应答动作所属的类别,与具体的场景无关,且涵盖了所有可能的情况,动作类别对应的意图及槽值对,为应答动作的参数,可以表示应答动作的更丰富的信息,可以用于区分不同的应答动作,通过这种动作表示方式,可以准确表示各种场景下的应答动作。从而本公开实施例中,通过对于当前轮对话的输入语句,确定输入语句对应的应答动作的第一预测动作类别、第一预测意图及第一预测槽值对,进而按照预设表示规则,生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作,可以生成准确的应答动作,进而根据应答动作,准确生成输入语句对应的应答语句。
综上,本公开实施例的对话生成方法,通过获取当前轮对话的输入语句,并根据输入语句,对当前的对话状态进行更新,以获取更新后的对话状态信息,基于对话状态信息及预设意图,获取输入语句对应的对话历史、意图序列及槽值对序列,基于对话历史、意图序列及槽值对序列,生成输入语句对应的应答动作的第一预测动作类别、第一预测意图及第一预测槽值对,基于第一预测动作类别、第一预测意图及第一预测槽值对,按照预设动作表示规则,生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作,根据应答动作,生成输入语句对应的应答语句,实现了准确生成当前轮对话的输入语句对应的应答语句。
在本公开实施例的一种可能的实现形式中,可以通过对话预测模型,基于输入语句对应的对话历史、意图序列和槽值对序列,生成输入语句对应的应答动作的第一预测动作类别、第一预测意图及第一预测槽值对。下面针对上述情况,结合图2,对本公开提供的对话生成方法进一步说明。
图2是根据本公开第二实施例的对话生成方法的流程示意图。如图2所示,对话生成方法,可以包括以下步骤:
步骤201,获取当前轮对话的输入语句,并根据输入语句,对当前的对话状态进行更新,以获取更新后的对话状态信息。
其中,步骤201的具体实现过程及原理,可以参考上述实施例的描述,此处不再赘述。
步骤202,基于对话状态信息及预设意图,获取输入语句对应的对话历史、意图序列及槽值对序列。
可以理解的是,更新后的对话状态信息中,包括用户目标、当前轮对话和之前轮对话分别对应的意图和槽值对,以及之前轮的应答动作,本公开实施例中,可以将当前轮对话和之前轮对话分别对应的意图和槽值对,以及之前轮的应答动作,作为对话历史,并从对话状态信息中提取意图,并对提取出的意图进行去重,得到目标意图,进而利用目标意图和预设意图,生成意图序列。另外,可以从对话状态信息中提取槽值对,得到第一槽值对,并从预设知识库中获取第二槽值对,其中,第二槽值对为当前轮对话的输入语句对应的应答语句的预测槽值对,进而利用第一槽值对和第二槽值对,生成槽值对序列。
即,本公开实施例中,步骤202可以通过以下方式实现:将当前轮对话和之前轮对话分别对应的意图和槽值对,以及之前轮的应答动作,作为对话历史;对对话状态信息进行意图提取及去重处理,以得到目标意图,并根据目标意图和预设意图,生成意图序列;对对话状态信息进行槽值对提取,以得到第一槽值对;获取输入语句对应的第二槽值对,其中,第二槽值对,为预置的输入语句对应的应答语句的预测槽值对;根据第一槽值对和第二槽值对,生成槽值对序列。
由此,可以实现从更新后的对话状态信息中,准确获取输入语句对应的对话历史、意图序列及槽值对序列,为后续基于输入语句对应的对话历史、意图序列及槽值对序列,准确生成输入语句对应的应答动作的第一预测动作类别、第一预测意图和第一预测槽值对奠定基础。
步骤203,根据槽值对序列中至少一个词槽对应的词槽值,生成词槽值序列。
可以理解的是,槽值对序列为至少一个槽值对组成的序列,槽值对序列中包括对话历史中出现过的槽值对(即第一槽值对)、以及输入语句对应的应答语句的预测槽值对(即第二槽值对),且每个槽值对,包括词槽和对应的词槽值。本公开实施例中,可以从槽值对序列中提取各词槽对应的词槽值,并根据提取出的词槽值,生成词槽值序列。
步骤204,将对话历史、意图序列及词槽值序列拼接,得到拼接词序列。
步骤205,将拼接词序列输入对话预测模型,以获取应答动作的第一预测动作类别、第一预测意图及至少一个词槽对应的第一预测词槽值。
其中,第一预测动作类别,为预设动作类别中的至少一个动作类别。
第一预测意图,为意图序列中的至少一个意图。
第一预测词槽值,为词槽值序列中的至少一个词槽值。至少一个词槽对应的第一预测词槽值,除了包含第一预测词槽值,还隐含包含了第一预测词槽值中的词槽值与槽值对序列中的词槽之间的对应关系。
本公开实施例中,可以预先训练得到对话预测模型,对话预测模型的输入,为输入语句对应的对话历史、意图序列及词槽值序列拼接得到的拼接词序列,对话预测模型能够基于拼接词序列,预测输入语句对应的应答动作所属的动作类别,得到第一预测动作类别,并从拼接词序列中的意图序列中,选出至少一个意图,得到第一预测意图,以及从拼接词序列中的词槽值序列中,选出至少一个词槽值,得到第一预测词槽值。其中,由于预先已知槽值对序列中的各词槽与词槽值的对应关系,而第一预测词槽值是从词槽值序列中选出的词槽值,从而可以确定第一预测词槽值中各词槽值与槽值对序列中词槽的对应关系,得到至少一个词槽对应的第一预测词槽值。由此即可利用对话预测模型,准确获取到应答动作的第一预测动作类别、第一预测意图及至少一个词槽对应的第一预测词槽值。
步骤206,根据至少一个词槽对应的第一预测词槽值,生成第一预测槽值对。
本公开实施例中,根据第一预测词槽值中各词槽值与槽值对序列中词槽的对应关系,即可将第一预测词槽值中的各词槽值与对应的词槽进行组合,得到第一预测槽值对。
步骤207,基于第一预测动作类别、第一预测意图及第一预测槽值对,按照预设动作表示规则,生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作。
在本公开的实施例中,预设动作表示规则,可以包括转换语句,转换语句中包括动作类别位置、意图位置和槽值对位置,进而可以将第一预测动作类别添加至转换语句中的动作类别位置,将第一预测意图添加至转换语句中的意图位置,将第一预测槽值对添加至转换语句中的槽值对位置,生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作。
即,步骤207可以通过以下方式实现:将第一预测动作类别、第一预测意图及第一预测槽值对,根据对应的动作类别位置、意图位置、槽值对位置,添加至转换语句中,以生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作。
举例来说,假设预设动作表示规则,包括转换语句:act_type(intent="",slots={}),其中,act_type表示应答动作所属的动作类别;intent=""及slots={}表示对应的应答动作的参数,通过意图和槽值对构成。即act_type所在位置为动作类别位置,引号""所在位置为意图位置,括号{}所在位置为槽值对位置。假设第一预测动作类别包括“推荐(Recommend)”类,第一预测意图包括“预定饮品”,第一预测槽值对包括“种类:奶茶”和“饮品:珍珠奶茶、红豆奶茶、椰果奶茶”,则可以将第一预测动作类别添加至转换语句中的动作类别位置、将“预定饮品”添加至转换语句中的意图位置、将“种类:奶茶”和“饮品:珍珠奶茶、红豆奶茶、椰果奶茶”添加至转换语句中的槽值对位置,得到以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作“Recommend(intent="预订饮品",slots={"种类":["奶茶"],"饮品":["珍珠奶茶","红豆奶茶","椰果奶茶"]})”。
由此,实现了按照预设动作表示规则,以第一预测动作类别、第一预测意图及第一预测槽值对来准确表示应答动作。
步骤208,根据应答动作,生成输入语句对应的应答语句。
综上,本公开实施例的对话生成方法,通过获取当前轮对话的输入语句,并根据输入语句,对当前的对话状态进行更新,以获取更新后的对话状态信息,基于对话状态信息及预设意图,获取输入语句对应的对话历史、意图序列及槽值对序列,根据槽值对序列中至少一个词槽对应的词槽值,生成词槽值序列,将对话历史、意图序列及词槽值序列拼接,得到拼接词序列,将拼接词序列输入对话预测模型,以获取应答动作的第一预测动作类别、第一预测意图及至少一个词槽对应的第一预测词槽值,根据至少一个词槽对应的第一预测词槽值,生成第一预测槽值对,基于第一预测动作类别、第一预测意图及第一预测槽值对,按照预设动作表示规则,生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作,根据应答动作,生成输入语句对应的应答语句,实现了准确生成当前轮对话的输入语句对应的应答语句。
通过上述分析可知,本公开实施例中,可以采用对话预测模型,获取应答动作的第一预设动作类别、第一预测意图及至少一个词槽对应的词义预测词槽值。在一种可能的实现形式中,对话预测模型可以包括语言模型,以及分别与语言模型连接的多个二分类模型和多个序列标注模型,其中,各二分类模型具有对应的预设类别,且各序列标注模型与各二分类模型一一对应。下面结合图3,对本公开提供的对话生成方法中,采用语言模型以及分别与语言模型连接的多个二分类模型和多个序列标注模型,获取应答动作的第一预设动作类别、第一预测意图及至少一个词槽对应的词义预测词槽值的过程进一步说明。
图3是根据本公开第三实施例的对话生成方法的流程示意图。如图3所示,对话生成方法,可以包括以下步骤:
步骤301,获取当前轮对话的输入语句,并根据输入语句,对当前的对话状态进行更新,以获取更新后的对话状态信息。
步骤302,基于对话状态信息及预设意图,获取输入语句对应的对话历史、意图序列及槽值对序列。
步骤303,根据槽值对序列中至少一个词槽对应的词槽值,生成词槽值序列。
其中,步骤301-303的具体实现过程及原理,可以参考上述实施例的描述,此处不再赘述。
步骤304,将对话历史、意图序列及词槽值序列拼接,得到拼接词序列。
本公开的实施例中,可以按照预设的拼接规则,将对话历史、意图序列及词槽值序列拼接。比如,可以按照“[CLS]对话历史[SEP]意图序列[SEP]词槽值序列[SEP]”的规则,将对话历史、意图序列及词槽值序列进行拼接,得到拼接词序列。其中,[CLS]和[SEP]为自然语言处理领域的特殊字符,[CLS]表示序列起始字符。
步骤305,将拼接词序列输入语言模型,以获取拼接词序列中多个词的融合语义向量及多个词分别对应的语义向量。
其中,语言模型,为采用自监督学习方法,将自然语言处理领域的大量无监督文本输入模型进行学习,得到的可通用的预训练语言模型。其中,语言模型可以包括静态词向量语言模型或者动态词向量语言模型中的任意一种,比如BERT(Bidirectional EncoderRepresentations from Transformers,一种双向编码表示语言模型)、GPT(GenerativePre-Training,生成性预训练)模型、ERNIE(Enhanced Representation throughKnowledge Integration,知识增强的语义表示)模型、XLNET(一种自回归语言模型)、RoBERTa(基于BERT的优化版预训练模型)、ALBERT(A Lite BERT,轻量级BERT模型)中的任意一种。其中,静态词向量语言模型,使用word2vec等词向量模型训练出来一种静态词向量,这种预训练语言模型下,同一个词在任何的上下文中,其向量表示都是相同的,无法体现一个词在不同语境中的不同含义。动态词向量语言模型,使用多层Transformer模型(由编码器和解码器组成)来建模语言特征,该预训练语言模型是对词的上下文提取符合其语境的词表示,该词表征向量为一个动态向量,同一词输入预训练语言模型后,同一个词的词表征向量在不同上下文中表征不同。
融合语义向量,表征拼接词序列中多个词的融合语义,融合了拼接词序列中各个词的语义信息。
本公开实施例中,可以将拼接词序列输入语言模型,经过语言模型充分提取特征后,获取语言模型输出的拼接词序列中多个词分别对应的语义向量,并将语言模型输出的[CLS]对应特征向量作为拼接词序列中多个词的融合语义向量。其中,由于经过语言模型进行特征提取后,[CLS]对应特征向量和对话历史、意图序列及词槽值序列分别对应的输入向量是有充分交互的,从而能够将[CLS]对应特征向量作为表征拼接词序列整体的融合语义的融合语义向量。
步骤306,将融合语义向量输入多个二分类模型,以获取各二分类模型输出的应答动作属于对应预设类别的第一类别预测概率。
其中,二分类模型,可以为softmax回归模型,或者其它类型的二分类模型,本公开对此不作限制。序列标注模型,可以采用双向LSTM(Long Short-Term Memory,长短期记忆)+CRF(Conditional Random Fields,条件随机场)的模型结构,或者也可以采用其它类型的模型结构,本公开对此不作限制。
步骤307,将各二分类模型中的目标二分类模型的预设类别,作为第一预测动作类别。
其中,目标二分类模型,为对应的第一类别预测概率大于预设阈值的二分类模型。其中,预设阈值可以根据需要设置,比如可以设置为0.5。在某个二分类模型输出的第一类别预测概率大于预设阈值时,表示应答动作属于该二分类模型对应的预设类别,此时二分类模型预测的类别为1,否则,二分类模型预测的类别为0。
下面参考图4和图5所示的对话预测模型的结构示意图,对本公开实施例中获取应答动作的第一预测动作类别、第一预测意图及至少一个词槽对应的第一预测词槽值的过程进行说明。其中,图4为对话预测模型的整体结构图。图5为对话预测模型的部分结构图,该部分结构图中包括语言模型及单个动作类别对应的二分类模型和序列标注模型。
本公开实施例中,由于一轮对话的输入语句对应的应答语句,可能对应多个应答动作,比如,应答语句“已为您预订2杯常温珍珠奶茶,请问还有什么需要的吗?”对应的应答动作有2个:[Inform(intent="预订饮品",slots={"杯数":["2"],"温度":["常温"],"饮品":["珍珠奶茶"]}),General(intent="更多帮助",slots={})],那么,确定输入语句对应的应答动作的第一预测动作类别、第一预测意图及第一预测槽值对的过程,为一个多标签分类(预测应答动作属于哪几种动作类别)及序列标注(标注每种动作类别对应的参数,包含标注意图和槽值对)的过程。其中,多标签分类,实质上是在每种动作类别上进行是(类别为1)和否(类别为0)的二分类。相应的,本公开实施例中,可以针对每种动作类别分别建模,在每种动作类别下,都是由二分类模型和序列标注模型组成。
即,参考图4和图5,对话预测模型可以包括语言模型,及多个二分类模型和多个序列标注模型,二分类模型和序列标注模型一一对应,且每个二分类模型和对应的序列标注模型对应同一种预设的动作类别,即预设类别。其中,本公开实施例中将对应同一动作类别的二分类模型和序列标注模型称为一个组合模型,图4中以最左侧的组合模型401中的二分类模型和序列标注模型对应的预设类别为“请求”类、组合模型402中的第二个分类模型和序列标注模型对应的预设类别为“告知”类、最右侧的组合模型403中的二分类模型和序列标注模型对应的预设类别为“常规”类为例进行示意。
在本公开实施例中,参考图4和图5,可以将多个词对应的融合语义向量H[CLS]输入多个二分类模型,以获取各二分类模型输出的应答动作属于对应预设类别的第一类别预测概率,并将各二分类模型中目标二分类模型的预设类别,作为第一预测动作类别。
举例来说,假设将多个词对应的融合语义向量H[CLS]输入图4中的多个二分类模型,获取到了各二分类模型输出的应答动作属于对应预设类别的第一类别预测概率。其中,组合模型401中的二分类模型输出的应答动作属于“请求”类的第一类别预测概率,表示应答动作属于“请求”类的可能性大小;组合模型403中的二分类模型输出的应答动作属于“常规”类的第一类别预测概率,表示应答动作属于“常规”类的可能性大小。假设组合模型401和组合模型403中的二分类模型输出的第一类别预测概率大于预设阈值,则可以将“请求”类和“常规”类作为第一预测动作类别。
步骤308,将多个词分别对应的语义向量作为输入向量,输入各序列标注模型,以获取多个词分别对应各序列标注模型的第一序列标注标签。
步骤309,基于多个词对应目标序列标注模型的第一序列标注标签,获取第一预测意图及各词槽对应的第一预测词槽值。
其中,目标序列标注模型,为目标二分类模型对应的序列标注模型。
此处的各词槽,指槽值对序列中,与第一预测词槽值对应的各词槽。
本公开实施例中,参考图4和图5,可以将多个词分别对应的语义向量作为输入向量,输入各序列标注模型,以获取多个词分别对应各序列标注模型的第一序列标注标签。
其中,拼接词序列中多个词对应某个序列标注模型的第一序列标注标签,即该序列标注模型输出的多个词分别对应的第一序列标注标签。其中,每个词对应的第一序列标注标签,表示该词是否为第一预测意图或者第一预测词槽值中的词。在序列标注模型确定某个词为第一预测意图或者第一预测词槽值中的词时,该序列标注模型输出的该词对应的第一序列标注标签可以为B或I,在序列标注模型确定某个词不为第一预测意图或者第一预测词槽值中的词时,该序列标注模型输出的该词对应的第一序列标注标签可以为O。其中,B表示对应的词为第一预测意图或者第一预测词槽值的起始词,I表示对应的词为第一预测意图或者第一预测词槽值的中间词。
进而,可以基于拼接词序列中各个词对应目标序列标注模型的第一序列标注标签,获取第一预测意图及各词槽对应的第一预测词槽值。具体的,可以根据拼接词序列中各个词对应目标序列标注模型的第一序列标注标签,将意图序列包括的词中,对应的第一序列标注标签为B及I的连续的词(其中,第一序列标注标签为B的词为起始词)进行组合,得到第一预测意图;将词槽值序列包括的词中,对应的第一序列标注标签为B及I的连续的词(其中,第一序列标注标签为B的词为起始词)进行组合,得到第一预测词槽值。
通过采用语言模型以及分别与语言模型连接的多个二分类模型和多个序列标注模型,实现了基于输入语句对应的对话历史、意图序列和词槽值序列,准确生成输入语句对应的应答动作的第一预测动作类别、第一预测意图和第一预测词槽值,为后续基于第一预测动作类别、第一预测意图和第一预测词槽值,准确生成应答动作,进而准确生成应答语句奠定了基础。
其中,步骤308和步骤306可以同时执行,也可以先执行步骤306再执行步骤308,本公开对步骤308和步骤306的执行时机不作限制。
步骤310,根据至少一个词槽对应的第一预测词槽值,生成第一预测槽值对。
步骤311,基于第一预测动作类别、第一预测意图及第一预测槽值对,按照预设动作表示规则,生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作。
步骤312,根据应答动作,生成输入语句对应的应答语句。
其中,步骤310-312的具体实现过程及原理,可以参考上述实施例的描述,此处不再赘述。
综上,本公开实施例的对话生成方法,通过获取当前轮对话的输入语句,并根据输入语句,对当前的对话状态进行更新,以获取更新后的对话状态信息,基于对话状态信息及预设意图,获取输入语句对应的对话历史、意图序列及槽值对序列,根据槽值对序列中至少一个词槽对应的词槽值,生成词槽值序列,将对话历史、意图序列及词槽值序列拼接,得到拼接词序列,将拼接词序列输入语言模型,以获取拼接词序列中多个词的融合语义向量及多个词分别对应的语义向量,将融合语义向量输入多个二分类模型,以获取各二分类模型输出的应答动作属于对应预设类别的第一类别预测概率,将各二分类模型中的目标二分类模型的预设类别,作为第一预测动作类别,将多个词分别对应的语义向量作为输入向量,输入各序列标注模型,以获取多个词分别对应各序列标注模型的第一序列标注标签,基于多个词对应目标序列标注模型的第一序列标注标签,获取第一预测意图及各词槽对应的第一预测词槽值,根据至少一个词槽对应的第一预测词槽值,生成第一预测槽值对,基于第一预测动作类别、第一预测意图及第一预测槽值对,按照预设动作表示规则,生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作,根据应答动作,生成输入语句对应的应答语句,实现了准确生成当前轮对话的输入语句对应的应答语句。
根据本公开的实施例,还提供一种用于对话生成的模型训练方法。图6是根据本公开第四实施例的用于对话生成的模型训练方法的流程示意图。
其中,需要说明的是,本公开实施例提供的用于对话生成的模型训练方法,执行主体为用于对话生成的模型训练装置,以下简称模型训练装置。该模型训练装置可以由软件和/或硬件实现,该模型训练装置可以配置在电子设备,该电子设备可以包括但不限于终端设备、服务器等,该实施例对电子设备不作具体限定。
如图6所示,用于对话生成的模型训练方法,可以包括以下步骤:
步骤601,获取多个场景下的第一训练样本,第一训练样本包括多轮对话中的样本输入语句对应的样本对话历史、样本意图序列及样本槽值对序列,各样本输入语句以对应的样本应答动作进行标注,样本应答动作以对应的样本动作类别、样本意图和样本槽值对表示。
其中,样本输入语句为用户的输入语句,其可以为任意语句,不受长度、语言、形式等限制。
每轮对话中的样本输入语句对应的样本对话历史,为到该轮为止的整个对话历史,包括到该轮为止的每一轮对话对应的意图和槽值对,以及到该轮为止的每一轮对话的样本应答动作,即每轮对话中的样本输入语句对应的样本对话历史,包括该轮对话对应的意图和槽值对、该轮的之前轮对话对应的意图和槽值对、该轮的之前轮对话的样本应答语句。
样本意图序列,为多个意图组成的序列。每轮对话中的样本输入语句对应的样本意图序列,包括该轮对话的样本输入语句对应的样本对话历史中出现过的意图和预设意图。
样本槽值对序列,为至少一个槽值对组成的序列。其中,每轮对话中的样本输入语句对应的样本槽值对序列,包括该轮对话中的样本输入语句对应的样本对话历史中出现过的槽值对、以及该样本输入语句对应的样本应答语句的预测槽值对。
本公开实施例中对于每轮对话中的样本输入语句,获取样本输入语句对应的样本对话历史、样本意图序列及样本槽值对序列的过程,可以参考上述实施例的描述,此处不再赘述。
另外,各样本输入语句以对应的样本应答动作进行标注,样本应答动作以对应的样本动作类别、样本意图和样本槽值对表示。其中,样本动作类别,为预设动作类别中的至少一个动作类别。样本意图,为样本意图序列中的至少一个意图。样本槽值对,为样本槽值对序列中的至少一个槽值对。
本公开实施例中,可以按照预设动作表示规则,将样本应答动作以对应的样本动作类别、样本意图和样本槽值对表示。其中,预设动作表示规则,可以包括转换语句:act_type(intent="",slots={})。其中,act_type表示样本应答动作所属的动作类别;intent=""及slots={}表示对应的样本应答动作的参数,通过意图和槽值对构成。
通过以样本动作类别、样本动作类别对应的样本意图及样本槽值对表示样本应答动作,其中,样本动作类别表示样本应答动作所属的动作类别,与具体的场景无关,且涵盖了所有可能的情况,样本动作类别对应的样本意图及样本槽值对,为样本应答动作的参数,可以表示样本应答动作的更丰富的信息,可以用于区分不同的样本应答动作。通过这种动作表示方式,可以准确表示各种场景下的样本应答动作,进而可以将各种场景下的多轮对话中的样本输入语句混合在一起,作为用于对话生成的模型的训练样本。
需要说明的是,多个场景下的第一训练样本,可以来源于智能对话平台的线上日志,并且可以通过人工标注或者主动学习的方式,按照预设动作表示规则,将多轮对话中的样本输入语句以对应的样本应答动作进行标注,从而得到千万级别的带标注对话样本,进而利用这些带标注对话样本,对初始对话预测模型进行训练,得到用于对话生成的目标对话预测模型。
其中,通过主动学习的方式标注多轮对话中的样本输入语句对应的样本应答动作时,可以先人工标注少部分样本输入语句对应的样本应答动作,并利用这些带标注的少部分样本输入语句对某个模型进行训练,再利用训练后的该模型对其它未标注的样本输入语句进行预测,得到样本输入语句对应的预测应答动作及对应的置信度。对于对应的置信度高的样本输入语句,可以将预测应答动作作为该样本输入语句的标注,而对于对应的置信度低的样本输入语句,可以通过人工标注样本应答动作。由此,可以减少各样本输入语句的人工标注成本。
步骤602,根据样本槽值对序列中至少一个词槽对应的词槽值,生成样本词槽值序列。
可以理解的是,样本槽值对序列为至少一个槽值对组成的序列,每轮对话中的样本输入语句对应的样本槽值对序列,包括该轮对话中的样本输入语句对应的样本对话历史中出现过的槽值对、以及该样本输入语句对应的样本应答语句的预测槽值对,且每个槽值对,包括词槽和对应的词槽值。本公开实施例中,可以从样本槽值对序列中提取各词槽对应的词槽值,并根据提取出的词槽值,生成样本词槽值序列。
步骤603,将当前轮对话中的第一样本输入语句对应的样本对话历史、样本意图序列及样本词槽值序列,输入初始对话预测模型,以获取第一样本输入语句对应的预测应答动作;预测应答动作以对应的第二预测动作类别、第二预测意图及第二预测槽值对表示。
其中,当前轮对话中的第一样本输入语句,为多个场景下的第一训练样本包括的多轮对话中的任一样本输入语句。第二预测动作类别,包括至少一个预测动作类别,至少一个预测动作类别为预设动作类别中的至少一个动作类别。第二预测意图,包括至少一个预测意图,至少一个预测意图为样本意图序列中的至少一个意图。第二预测槽值对,包括至少一个预测槽值对,至少一个预测槽值对为样本槽值对序列中的至少一个槽值对。
本公开实施例中,可以将当前轮对话中的第一样本输入语句对应的样本对话历史、样本意图序列及样本词槽值序列,输入初始对话预测模型,初始对话预测模型能够基于初始对话预测模型的输入数据,预测第一样本输入语句对应的样本应答动作所属的动作类别,得到第二预测动作类别,并从样本意图序列中,选出至少一个意图,得到第二预测意图,以及从样本词槽值序列中,选出至少一个词槽值,得到第二预测词槽值。
由于根据样本槽值对序列中至少一个词槽对应的词槽值,生成样本词槽值序列时,已知样本槽值对序列中的各词槽与词槽值的对应关系,而第二预测词槽值是从样本词槽值序列中选出的词槽值,从而可以确定第二预测词槽值中各词槽值与样本槽值对序列中词槽的对应关系,进而根据第二预测词槽值,以及其中各词槽值与样本槽值对序列中词槽的对应关系,生成第二预测槽值对。
进而,即可根据第二预测动作类别、第二预测意图及第二预测槽值对,生成以第二预测动作类别、第二预测意图及第二预测槽值对表示的预测应答动作。
步骤604,根据预测应答动作与当前轮对话中的第一样本应答动作之间的差异,对初始对话预测模型的模型参数进行调整,得到训练后的目标对话预测模型。
其中,当前轮对话中的第一样本应答动作,为当前轮对话中的第一样本输入语句对应的样本应答动作。
本公开实施例中,获取第一样本输入语句对应的预测应答动作后,即可进一步获取预测应答动作与当前轮对话中的第一样本应答动作之间的差异,并根据该差异,对初始对话预测模型的模型参数进行调整,并重复上述步骤603和步骤604,通过多个样本输入语句对应的预测应答动作与多个样本输入语句对应的样本应答动作之间的差异,对参数调整后的初始对话预测模型进行迭代训练,并在模型的预测准确性达到要求时,停止训练,得到目标对话预测模型。
需要说明的是,本公开实施例中的训练后的目标对话预测模型,可以用于执行前述的对话生成方法。采用训练后的目标对话预测模型执行前述的对话生成方法的过程,可以参数上述对话生成方法的实施例的说明,此处不再赘述。
综上,本公开实施例提供的用于对话生成的模型训练方法,通过获取多个场景下的第一训练样本,根据样本槽值对序列中至少一个词槽对应的词槽值,生成样本词槽值序列,将当前轮对话中的第一样本输入语句对应的样本对话历史、样本意图序列及样本词槽值序列,输入初始对话预测模型,以获取第一样本输入语句对应的预测应答动作,预测应答动作以对应的第二预测动作类别、第二预测意图及第二预测槽值对表示,根据预测应答动作与当前轮对话中的第一样本应答动作之间的差异,对初始对话预测模型的模型参数进行调整,得到训练后的目标对话预测模型,实现了基于多个场景下的第一训练样本,对初始对话预测模型进行训练,得到用于对话生成的目标对话预测模型,利用训练后的目标对话预测模型对输入语句进行预测,能够实现准确确定输入语句对应的应答动作,进而准确生成应答动作对应的应答语句,且训练样本的人工标注成本低。并且,由于通过多个场景下的第一训练样本对初始对话预测模型进行训练,从而得到的目标对话预测模型的通用性强,对于一些常见的对话,例如问候、感谢等,不需要人为来标注相关数据,目标对话预测模型即可准确生成应答语句,且目标对话预测模型能够处理所有可能的多轮对话情况,不会出现数据偏置问题,尤其是一些边界和异常情况能够做到很好的处理。
下面结合图7,对本公开提供的用于对话生成的模型训练方法进一步说明。图7是根据本公开第五实施例的用于对话生成的模型训练方法的流程示意图。
如图7所示,用于对话生成的模型训练方法,可以包括以下步骤:
步骤701,获取多个场景下的第一训练样本,第一训练样本包括多轮对话中的样本输入语句对应的样本对话历史、样本意图序列及样本槽值对序列,各样本输入语句以对应的样本应答动作进行标注,样本应答动作以对应的样本动作类别、样本意图和样本槽值对表示。
步骤702,根据样本槽值对序列中至少一个词槽对应的词槽值,生成样本词槽值序列。
其中,步骤701-702的具体实现过程及原理,可以参考上述实施例的描述,此处不再赘述。
步骤703,将样本对话历史、样本意图序列及样本词槽值序列拼接,得到样本拼接词序列。
本公开的实施例中,可以按照预设的拼接规则,将样本对话历史、样本意图序列及样本词槽值序列拼接。比如,可以按照“[CLS]样本对话历史[SEP]样本意图序列[SEP]样本词槽值序列[SEP]”的规则,将样本对话历史、样本意图序列及样本词槽值序列进行拼接,得到样本拼接词序列。
步骤704,将样本拼接词序列输入初始对话预测模型,以获取第二预测动作类别、第二预测意图及至少一个词槽对应的第二预测词槽值。
其中,第二预测动作类别,为预设动作类别中的至少一个动作类别。第二预测意图,为样本意图序列中的至少一个意图。第二预测词槽值,为样本词槽值序列中的至少一个词槽值。此处的至少一个词槽,指样本槽值对序列中,与第二预测词槽值对应的各词槽。至少一个词槽对应的第二预测词槽值,除了包含第二预测词槽值,还隐含包含了第二预测词槽值中的词槽值与样本槽值对序列中的词槽之间的对应关系。
本公开实施例中,可以将拼接词序列,输入初始对话预测模型,初始对话预测模型能够基于初始对话预测模型的输入数据,预测第一样本输入语句对应的样本应答动作所属的动作类别,得到第二预测动作类别,并从拼接词序列的样本意图序列中,选出至少一个意图,得到第二预测意图,以及从拼接词序列的样本词槽值序列中,选出至少一个词槽值,得到第二预测词槽值。
由于根据样本槽值对序列中至少一个词槽对应的词槽值,生成样本词槽值序列时,已知样本槽值对序列中的各词槽与词槽值的对应关系,而第二预测词槽值是从样本词槽值序列中选出的词槽值,从而可以确定第二预测词槽值中各词槽值与样本槽值对序列中词槽的对应关系,得到至少一个词槽对应的第二预测词槽值,进而根据第二预测词槽值,以及其中各词槽值与样本槽值对序列中词槽的对应关系,生成第二预测槽值对。
步骤705,根据至少一个词槽对应的第二预测词槽值,生成第二预测槽值对。
本公开实施例中,根据第二预测词槽值中各词槽值与样本槽值对序列中词槽的对应关系,即可将第二预测词槽值中的各词槽值与对应的词槽进行组合,得到第二预测槽值对。
步骤706,基于第二预测动作类别、第二预测意图及第二预测槽值对,按照预设动作表示规则,生成以第二预测动作类别、第二预测意图及第二预测槽值对表示的预测应答动作。
其中,预测应答动作以对应的第二预测动作类别、第二预测意图及第二预测槽值对表示。
在本公开的实施例中,预设动作表示规则,可以包括转换语句,转换语句中包括动作类别位置、意图位置和槽值对位置,进而可以将第二预测动作类别、第二预测意图及第二预测槽值对,根据对应的动作类别位置、意图位置、槽值对位置,添加至转换语句中,以生成以第二预测动作类别、第二预测意图及第二预测槽值对表示的预测应答动作。
通过上述方式,实现了利用初始对话预测模型,基于第一样本输入语句对应的样本对话历史、样本意图序列及样本词槽值序列,准确获取第一样本输入语句对应的按照预设动作表示规则表示的预测应答动作。
步骤707,根据预测应答动作与当前轮对话中的第一样本应答动作之间的差异,对初始对话预测模型的模型参数进行调整,得到训练后的目标对话预测模型。
其中,步骤707的具体实现过程及原理,可以参考上述实施例的描述,此处不再赘述。
步骤708,采用特定场景下的至少一个第二训练样本,对目标对话预测模型的模型参数进行调整,以得到特定场景下的目标对话预测模型。
其中,至少一个第二训练样本,包括多轮对话中的样本输入语句对应的样本对话历史、样本意图及样本槽值对序列,各样本输入语句以对应的样本应答动作进行标注,样本应答动作以对应的样本动作类别、样本意图及样本槽值对表示。其中,各样本输入语句对应的样本应答动作可以通过人工进行标注。
参考以下表1,特定场景下的一个第二训练样本可以采用以下方式进行人工标注。其中,表1中的第一列为多轮对话中的样本输入语句,第五列为样本输入语句对应的样本应答动作标注。
表1特定场景下的第二训练样本的标注过程
可以理解的是,多个场景下的第一训练样本,为大规模带标注对话样本,步骤707中通过大规模带标注对话样本进行训练得到的目标对话预测模型,具有很强的普适性,在各个场景下均可以使用,甚至不需要标注任何对话样本,就能在特定场景下实现一些比较常见的应答动作的预测。为了进一步提升目标对话预测模型在特定场景下的预测准确性,以及更加精准的控制目标对话预测模型获取的预测应答动作,在本公开实施例中,还可以利用特定场景下的人工标注的对话小样本即至少一个第二训练样本,对目标对话预测模型进行微调,以得到特定场景下的目标对话预测模型。
本公开实施例中,由于目标对话预测模型是采用多个场景下的第一训练样本,对初始对话预测模型进行训练得到的,从而目标对话预测模型的场景迁移能力非常强,在新场景下能够快速适应。同时在任意的新场景下,只需要通过人工标注几段对话,即可使微调后的目标对话预测模型达到较为理想的对话效果,需要人工参与的成本很小。并且,目标对话预测模型的场景迁移能力很强,非常适合冷启动。另外,目标对话预测模型的人为干预能力强,当对话场景在不断迭代更新的过程中出现了扩展和变化时,比如目标对话预测模型出现预测错误的情况时,只需要人为干预新增或修改少量样本即可纠正目标对话模型的预测效果。
另外,在微调后的目标对话预测模型在特定场景下投入使用后,可以产生越来越多的对话数据,本公开实施例中,还可以将这些对话数据经过人工核对后回流到目标对话预测模型中,从而通过这种反馈学习机制,不断增强小样本学习的模型效果。
通过上述分析可知,本公开实施例中,可以利用大规模带标注对话样本,对初始对话预测模型进行训练,得到多个场景下通用的目标对话预测模型。在一种可能的实现形式中,初始对话预测模型可以包括语言模型,以及分别与语言模型连接的多个二分类模型和多个序列标注模型,其中,各二分类模型具有对应的预设类别,且各序列标注模型与各二分类模型一一对应。下面结合图8,对本公开提供的用于对话生成的模型训练方法中,初始对话预测模型包括语言模型以及分别与语言模型连接的多个二分类模型和多个序列标注模型时的模型训练过程进一步说明。
图8是根据本公开第六实施例的用于对话生成的模型训练方法的流程示意图。
如图8所示,用于对话生成的模型训练方法,可以包括以下步骤:
步骤801,获取多个场景下的第一训练样本。
其中,第一训练样本包括多轮对话中的样本输入语句对应的样本对话历史、样本意图序列及样本槽值对序列,各样本输入语句以对应的样本应答动作进行标注,样本应答动作以对应的样本动作类别、样本意图和样本槽值对表示。
步骤802,根据样本槽值对序列中至少一个词槽对应的词槽值,生成样本词槽值序列。
步骤803,将当前轮对话中的第一样本输入语句对应的样本对话历史、样本意图序列及样本词槽值序列拼接,得到样本拼接词序列。
其中,步骤801-803的具体实现过程及原理,可以参考上述实施例的描述,此处不再赘述。
步骤804,将样本拼接词序列输入语言模型,以获取样本拼接词序列中多个词的样本融合语义向量及多个词分别对应的样本语义向量。
其中,语言模型,为采用自监督学习方法,将自然语言处理领域的大量无监督文本输入模型进行学习,得到的可通用的预训练语言模型。其中,语言模型可以包括静态词向量语言模型或者动态词向量语言模型中的任意一种,比如BERT、GPT、ERNIE、XLNET、RoBERTa中的任意一种。
样本融合语义向量,表征样本拼接词序列中多个词的融合语义,融合了样本拼接词序列中各个词的语义信息。
本公开实施例中,可以将样本拼接词序列输入语言模型,经过语言模型充分提取特征后,获取语言模型输出的样本拼接词序列中多个词分别对应的语义向量,并将语言模型输出的[CLS]对应特征向量作为样本拼接词序列中多个词的样本融合语义向量。
步骤805,将样本融合语义向量输入多个二分类模型,以获取各二分类模型输出的预测应答动作属于对应预设类别的第二类别预测概率。
步骤806,根据各二分类模型输出的预测应答动作属于对应预设类别的第二类别预测概率,获取预测应答动作对应各二分类模型的预测类别。
其中,二分类模型,可以为softmax回归模型,或者其它类型的二分类模型,本公开对此不作限制。序列标注模型,可以采用双向LSTM+CRF的模型结构,或者也可以采用其它类型的模型结构,本公开对此不作限制。
参考图4和图5,初始对话预测模型可以包括语言模型,及多个二分类模型和多个序列标注模型,二分类模型和序列标注模型一一对应,且每个二分类模型和对应的序列标注模型对应同一种预设的动作类别,即预设类别。其中,本公开实施例中将对应同一动作类别的二分类模型和序列标注模型称为一个组合模型。
参考图4和图5,可以将多个词对应的样本融合语义向量输入多个二分类模型,以获取各二分类模型输出的预测应答动作属于对应预设类别的第二类别预测概率。进一步的,可以根据各二分类模型输出的预测应答动作属于对应预设类别的第二类别预测概率,获取预测应答动作对应各二分类模型的预测类别,并将预测应答动作对应各二分类模型的预测类别,作为第二预测动作类别。
具体的,可以预先设置预设阈值,在某个二分类模型输出的第二类别预测概率大于预设阈值时,可以确定该二分类模型对预测应答动作的预测类别为1,即预测应答动作属于该二分类模型对应的预设类别;在某个二分类模型输出的第二类别预测概率不大于预设阈值时,可以确定该二分类模型对预测应答动作的预测类别为0,即预测应答动作不属于该二分类模型对应的预设类别。以组合模型401中的二分类模型为例,假设该二分类模型输出的预测应答动作属于“请求”类的第二类别预测概率大于预设阈值,则可以确定该二分类模型对预测应答动作的预测类别为“请求”类。
步骤807,将多个词分别对应的样本语义向量作为输入向量,输入各序列标注模型,以获取多个词分别对应各序列标注模型的第二序列标注标签。
步骤808,基于多个词分别对应各序列标注模型的第二序列标注标签,获取预测应答动作对应各序列标注模型的预测意图及至少一个词槽对应的预测词槽值。
本公开实施例中,参考图4和图5,可以将多个词分别对应的样本语义向量作为输入向量,输入各序列标注模型,以获取多个词分别对应各序列标注模型的第二序列标注标签。
其中,样本拼接词序列中多个词对应某个序列标注模型的第二序列标注标签,即该序列标注模型输出的多个词分别对应的第二序列标注标签。其中,每个词对应的第二序列标注标签,表示该词是否为第二预测意图或者第二预测词槽值中的词。在序列标注模型确定某个词为第二预测意图或者第二预测词槽值中的词时,该序列标注模型输出的该词对应的第二序列标注标签可以为B或I,在序列标注模型确定某个词不为第二预测意图或者第二预测词槽值中的词时,该序列标注模型输出的该词对应的第二序列标注标签可以为O。其中,B表示对应的词为第二预测意图或者第二预测词槽值的起始词,I表示对应的词为第二预测意图或者第二预测词槽值的中间词。
进而,对于每个序列标注模型,可以基于样本拼接词序列中各个词对应该序列标注模型的第二序列标注标签,获取预测应答动作对应该序列标注模型的预测意图及至少一个词槽对应的预测词槽值,并将预测应答动作对应各序列标注模型的预测意图及至少一个词槽对应的预测词槽值,作为第二预测意图以及至少一个词槽对应的第二预测词槽值。具体的,可以根据样本拼接词序列中各个词对应该序列标注模型的第二序列标注标签,将样本意图序列包括的词中,对应的第二序列标注标签为B及I的连续的词(其中,第二序列标注标签为B的词为起始词)进行组合,得到第二预测意图;将样本词槽值序列包括的词中,对应的第二序列标注标签为B及I的连续的词(其中,第二序列标注标签为B的词为起始词)进行组合,得到第二预测词槽值。
通过采用语言模型以及分别与语言模型连接的多个二分类模型和多个序列标注模型,实现了基于第一样本输入语句对应的样本对话历史、样本意图序列和样本词槽值序列,准确生成第一样本输入语句对应的预测应答动作的第二预测动作类别、第二预测意图和第二预测词槽值,为后续基于第二预测动作类别、第二预测意图和第二预测词槽值,准确生成预测应答动作奠定了基础。
步骤809,根据至少一个词槽对应的第二预测词槽值,生成第二预测槽值对。
其中,第二预测槽值对中,包括至少一个预测槽值对。
步骤810,基于第二预测动作类别、第二预测意图及第二预测槽值对,按照预设动作表示规则,生成以第二预测动作类别、第二预测意图及第二预测槽值对表示的预测应答动作。
其中,预测应答动作以对应的第二预测动作类别、第二预测意图及第二预测槽值对表示。
可以理解的是,第二预测动作类别包括预测应答动作对应各二分类模型的预测类别,第二预测意图,包括预测应答动作对应各序列标注模型的预测意图,第二预测槽值对,包括预测应答动作对应各序列标注模型的预测槽值对。本公开实施例中,可以基于对应同一动作类别的二分类模型和序列标注模型的预测类别、预测意图及至少一个词槽对应的预测词槽值,生成该动作类别下的预测应答动作。
步骤811,根据预测应答动作与当前轮对话中的第一样本应答动作之间的差异,对多个二分类模型和多个序列标注模型的模型参数进行调整,得到训练后的目标对话预测模型。
其中,当前轮对话中的第一样本应答动作,为当前轮对话中的第一样本输入语句对应的样本应答动作。
需要说明的是,语言模型为可通用的预训练语言模型,在采用多个场景下的第一训练样本进行模型训练时,语言模型的模型参数可以进一步调整,也可以不作调整,本公开对此不作限制。本公开实施例以语言模型的模型参数不作调整为例进行说明。
在本公开实施例中,不同动作类别下,语言模型的参数是共享的(各动作类别共同学习),每种动作类别对应的二分类模型和序列标注模型的参数是不共享的(各动作类别分别学习)。即,根据预测应答动作与当前轮对话中的第一样本应答动作之间的差异,对初始对话预测模型的模型参数进行调整时,对于初始对话预测模型包括的各二分类模型和各序列标注模型,可以对其中的第一二分类模型和对应的序列标注模型,根据样本动作类别与预测应答动作对应第一二分类模型的预测类别之间的第一差异、样本意图与预测应答动作对应第一序列标注模型的预测意图之间的第二差异,以及样本词槽值与预测应答动作对应第一序列标注模型的预测槽值对之间的第三差异,对第一二分类模型及第一序列标注模型的模型参数进行调整,对于其中的第二二分类模型,根据样本动作类别与预测应答动作对应第二二分类模型的预测类别之间的第四差异,对第二二分类模型的模型参数进行调整,而第二二分类模型对应的序列标注模型的损失直接丢弃,不对第二二分类模型对应的序列标注模型的模型参数进行调整。其中,预测应答动作对应第一二分类模型的第二类别预测概率大于预设阈值;预测应答动作对应第二二分类模型的第二类别预测概率不大于预设阈值;第一序列标注模型与第一二分类模型对应。
由此,通过重复上述步骤803-步骤811,根据多个样本输入语句对应的预测应答动作与多个样本输入语句对应的样本应答动作之间的差异,对参数调整后的模型进行迭代训练,并在模型的预测准确性达到要求时,停止训练,即可得到目标对话预测模型。
通过上述方式训练得到的目标对话预测模型,为多个场景下通用的目标对话预测模型,并且,由于各二分类模型和序列标注模型的参数是不共享的,从而各二分类模型均可以准确输出预测应答动作属于对应预设类别的类别预测概率,且各序列标注模型可以准确输出多个词对应其预设类别的序列标注标签。
步骤812,采用特定场景下的至少一个第二训练样本,对多个二分类模型和多个序列标注模型的模型参数进行调整,以得到特定场景下的目标对话预测模型。
本公开实施例中,为了进一步提升模型在特定场景下的预测准确性,以及更加精准的控制目标对话预测模型获取的预测应答动作,还可以利用特定场景下的人工标注的对话小样本即至少一个第二训练样本,对目标对话预测模型进行微调,以得到特定场景下的目标对话预测模型。
其中,在采用特定场景下的至少一个第二训练样本,对目标对话预测模型的模型参数进行调整时,语言模型的参数固定不变,只对二分类模型和序列标注模型的模型参数进行调整即可。由于二分类模型和序列标注模型的模型参数量很小,从而模型微调的训练速度很快,几分钟即可完成微调。
参考图9,本公开实施例中,可以先利用大规模未标注文本,采用自监督学习方法,将自然语言处理领域的大量无监督文本输入模型进行学习,得到的可通用的预训练语言模型。进一步的,可以利用大规模带标注对话样本,对可通用的预训练语言模型及多个二分类模型、多个序列标注模型进行预训练,得到各场景通用的目标对话预测模型。进一步的,可以利用特定场景下的对话小样本,对通用的目标对话预测模型进行小样本学习,得到特定场景下的目标对话预测模型。
综上,本公开实施例提供的用于对话生成的模型训练方法,实现了基于多个场景下的第一训练样本,对语言模型,以及分别与语言模型连接的多个二分类模型和多个序列标注模型进行训练,得到用于对话生成的目标对话预测模型,利用训练后的目标对话预测模型对输入语句进行预测,能够实现准确确定输入语句对应的应答动作,进而准确生成应答动作对应的应答语句,且训练样本的人工标注成本低。并且,由于目标对话预测模型是采用多个场景下的第一训练样本,对初始对话预测模型进行训练得到的,从而目标对话预测模型的场景迁移能力非常强,在新场景下能够快速适应。同时在任意的新场景下,只需要通过人工标注几段对话,即可使微调后的目标对话预测模型达到较为理想的对话效果,需要人工参与的成本很小。并且,目标对话预测模型的场景迁移能力很强,非常适合冷启动。且目标对话预测模型的人为干预能力强,当对话场景在不断迭代更新的过程中出现了扩展和变化时,比如目标对话预测模型出现预测错误的情况时,只需要人为干预新增或修改少量样本即可纠正目标对话模型的预测效果。
下面结合图10,对本公开提供的对话生成装置进行说明。
图10是根据本公开第七实施例的对话生成装置的结构示意图。
如图10所示,本公开提供的对话生成装置1000,包括:第一获取模块1001、第二获取模块1002、第一生成模块1003、第二生成模块1004以及第三生成模块1005。
其中,第一获取模块1001,用于获取当前轮对话的输入语句,并根据输入语句,对当前的对话状态进行更新,以获取更新后的对话状态信息;
第二获取模块1002,用于基于对话状态信息及预设意图,获取输入语句对应的对话历史、意图序列及槽值对序列;
第一生成模块1003,用于基于对话历史、意图序列及槽值对序列,生成输入语句对应的应答动作的第一预测动作类别、第一预测意图及第一预测槽值对;
第二生成模块1004,用于基于第一预测动作类别、第一预测意图及第一预测槽值对,按照预设动作表示规则,生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作;
第三生成模块1005,用于根据应答动作,生成输入语句对应的应答语句。
需要说明的是,本实施例提供的对话生成装置1000,可以执行前述实施例的对话生成方法。其中,对话生成装置1000可以由软件和/或硬件实现,该对话生成装置1000可以配置在电子设备,该电子设备可以包括但不限于终端设备、服务器等,该实施例对电子设备不作具体限定。
作为本公开实施例的一种可能的实现方式,第一生成模块1003,包括:
第一生成单元,用于根据槽值对序列中至少一个词槽对应的词槽值,生成词槽值序列;
第一拼接单元,用于将对话历史、意图序列及词槽值序列拼接,得到拼接词序列;
第一处理单元,用于将拼接词序列输入对话预测模型,以获取应答动作的第一预测动作类别、第一预测意图及至少一个词槽对应的第一预测词槽值;
第二生成单元,用于根据至少一个词槽对应的第一预测词槽值,生成第一预测槽值对。
作为本公开实施例的另一种可能的实现方式,对话预测模型包括语言模型,以及分别与语言模型连接的多个二分类模型和多个序列标注模型,其中,各二分类模型具有对应的预设类别,且各序列标注模型与各二分类模型一一对应;第一处理单元,包括:
第一处理子单元,用于将拼接词序列输入语言模型,以获取拼接词序列中多个词的融合语义向量及多个词分别对应的语义向量;
第二处理子单元,用于将融合语义向量输入多个二分类模型,以获取各二分类模型输出的应答动作属于对应预设类别的第一类别预测概率,并将各二分类模型中的目标二分类模型的预设类别,作为第一预测动作类别;目标二分类模型,为对应的第一类别预测概率大于预设阈值的二分类模型;
第三处理子单元,用于将多个词分别对应的语义向量作为输入向量,输入各序列标注模型,以获取多个词分别对应各序列标注模型的第一序列标注标签,并基于多个词对应目标序列标注模型的第一序列标注标签,获取第一预测意图及各词槽对应的第一预测词槽值;目标序列标注模型,为目标二分类模型对应的序列标注模型。
作为本公开实施例的另一种可能的实现方式,对话状态信息包括当前轮对话和之前轮对话分别对应的意图和槽值对,以及之前轮的应答动作;第二获取模块1002,包括:
第二处理单元,用于将当前轮对话和之前轮对话分别对应的意图和槽值对,以及之前轮的应答动作,作为对话历史;
第三处理单元,用于对对话状态信息进行意图提取及去重处理,以得到目标意图,并根据目标意图和预设意图,生成意图序列;
提取单元,用于对对话状态信息进行槽值对提取,以得到第一槽值对;
获取单元,用于获取输入语句对应的第二槽值对,其中,第二槽值对,为预置的输入语句对应的应答语句的预测槽值对;
第三生成单元,用于根据第一槽值对和第二槽值对,生成槽值对序列。
作为本公开实施例的另一种可能的实现方式,预设动作表示规则,包括转换语句,转换语句中包括动作类别位置、意图位置和槽值对位置;
第二生成模块1004,包括:
第四生成单元,用于将第一预测动作类别、第一预测意图及第一预测槽值对,根据对应的动作类别位置、意图位置、槽值对位置,添加至转换语句中,以生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作。
需要说明的是,前述对于对话生成方法的实施例的说明,也适用于本公开提供的对话生成装置,此处不再赘述。
本公开实施例提供的对话生成装置,通过获取当前轮对话的输入语句,并根据输入语句,对当前的对话状态进行更新,以获取更新后的对话状态信息,基于对话状态信息及预设意图,获取输入语句对应的对话历史、意图序列及槽值对序列,基于对话历史、意图序列及槽值对序列,生成输入语句对应的应答动作的第一预测动作类别、第一预测意图及第一预测槽值对,基于第一预测动作类别、第一预测意图及第一预测槽值对,按照预设动作表示规则,生成以第一预测动作类别、第一预测意图及第一预测槽值对表示的应答动作,根据应答动作,生成输入语句对应的应答语句,实现了准确生成当前轮对话的输入语句对应的应答语句。
根据本公开的实施例,还提供一种用于对话生成的模型训练装置。下面结合图11,对本公开提供的用于对话生成的模型训练装置进行说明。
图11是根据本公开第八实施例的用于对话生成的模型训练装置的结构示意图。
如图11所示,本公开提供的用于对话生成的模型训练装置1100,包括:第三获取模块1101、第四生成模块1102、处理模块1103以及第一调整模块1104。
其中,第三获取模块1101,用于获取多个场景下的第一训练样本,第一训练样本包括多轮对话中的样本输入语句对应的样本对话历史、样本意图序列及样本槽值对序列,各样本输入语句以对应的样本应答动作进行标注,样本应答动作以对应的样本动作类别、样本意图和样本槽值对表示;
第四生成模块1102,用于根据样本槽值对序列中至少一个词槽对应的词槽值,生成样本词槽值序列;
处理模块1103,用于将当前轮对话中的第一样本输入语句对应的样本对话历史、样本意图序列及样本词槽值序列,输入初始对话预测模型,以获取第一样本输入语句对应的预测应答动作;预测应答动作以对应的第二预测动作类别、第二预测意图及第二预测槽值对表示;
第一调整模块1104,用于根据预测应答动作与当前轮对话中的第一样本应答动作之间的差异,对初始对话预测模型的模型参数进行调整,得到训练后的目标对话预测模型。
需要说明的是,本实施例提供的用于对话生成的模型训练装置1100,简称模型训练装置,可以执行前述实施例的用于对话生成的模型训练方法。其中,模型训练装置可以由软件和/或硬件实现,该模型训练装置可以配置在电子设备,该电子设备可以包括但不限于终端设备、服务器等,该实施例对电子设备不作具体限定。
作为本公开实施例的一种可能的实现方式,处理模块1103,包括:
第二拼接单元,用于将样本对话历史、样本意图序列及样本词槽值序列拼接,得到样本拼接词序列;
第四处理单元,用于将样本拼接词序列输入初始对话预测模型,以获取第二预测动作类别、第二预测意图及至少一个词槽对应的第二预测词槽值;
第五生成单元,用于根据至少一个词槽对应的第二预测词槽值,生成第二预测槽值对;
第六生成单元,用于基于第二预测动作类别、第二预测意图及第二预测槽值对,按照预设动作表示规则,生成以第二预测动作类别、第二预测意图及第二预测槽值对表示的预测应答动作。
作为本公开实施例的另一种可能的实现方式,初始对话预测模型,包括语言模型,以及分别与语言模型连接的多个二分类模型和多个序列标注模型,其中,各二分类模型具有对应的预设类别,且各序列标注模型与各二分类模型一一对应;第二预测动作类别,包括预测应答动作对应各二分类模型的预测类别;第二预测意图及至少一个词槽对应的第二预测词槽值,包括预测应答动作对应各序列标注模型的预测意图及至少一个词槽对应的预测词槽值;第四处理单元,包括:
第四处理子单元,用于将样本拼接词序列输入语言模型,以获取样本拼接词序列中多个词的样本融合语义向量及多个词分别对应的样本语义向量;
第五处理子单元,用于将样本融合语义向量输入多个二分类模型,以获取各二分类模型输出的预测应答动作属于对应预设类别的第二类别预测概率,并根据各二分类模型输出的预测应答动作属于对应预设类别的第二类别预测概率,获取预测应答动作对应各二分类模型的预测类别;
第六处理子单元,用于将多个词分别对应的样本语义向量作为输入向量,输入各序列标注模型,以获取多个词分别对应各序列标注模型的第二序列标注标签,并基于多个词分别对应各序列标注模型的第二序列标注标签,获取预测应答动作对应各序列标注模型的预测意图及至少一个词槽对应的预测词槽值。
作为本公开实施例的另一种可能的实现方式,第一调整模块1104,包括:
第一调整单元,用于根据样本动作类别与预测应答动作对应第一二分类模型的预测类别之间的第一差异、样本意图与预测应答动作对应第一序列标注模型的预测意图之间的第二差异,以及样本词槽值与预测应答动作对应第一序列标注模型的预测槽值对之间的第三差异,对第一二分类模型及第一序列标注模型的模型参数进行调整;其中,预测应答动作对应第一二分类模型的第二类别预测概率大于预设阈值;第一序列标注模型与第一二分类模型对应;
第二调整单元,用于根据样本动作类别与预测应答动作对应第二二分类模型的预测类别之间的第四差异,对第二二分类模型的模型参数进行调整;其中,预测应答动作对应第二二分类模型的第二类别预测概率不大于预设阈值。
作为本公开实施例的另一种可能的实现方式,上述模型训练装置,还可以包括:
第二调整模块,用于采用特定场景下的至少一个第二训练样本,对目标对话预测模型的模型参数进行调整,以得到特定场景下的目标对话预测模型。
需要说明的是,前述对于用于对话生成的模型训练方法的实施例的说明,也适用于本公开提供的用于对话生成的模型训练装置,此处不再赘述。
本公开实施例提供的用于对话生成的模型训练装置,通过获取多个场景下的第一训练样本,根据样本槽值对序列中至少一个词槽对应的词槽值,生成样本词槽值序列,将当前轮对话中的第一样本输入语句对应的样本对话历史、样本意图序列及样本词槽值序列,输入初始对话预测模型,以获取第一样本输入语句对应的预测应答动作,预测应答动作以对应的第二预测动作类别、第二预测意图及第二预测槽值对表示,根据预测应答动作与当前轮对话中的第一样本应答动作之间的差异,对初始对话预测模型的模型参数进行调整,得到训练后的目标对话预测模型,实现了基于多个场景下的第一训练样本,对初始对话预测模型进行训练,得到用于对话生成的目标对话预测模型,利用训练后的目标对话预测模型对输入语句进行预测,能够实现准确确定输入语句对应的应答动作,进而准确生成应答动作对应的应答语句,且训练样本的人工标注成本低。并且,由于通过多个场景下的第一训练样本对初始对话预测模型进行训练,从而得到的目标对话预测模型的通用性强,对于一些常见的对话,例如问候、感谢等,不需要人为来标注相关数据,目标对话预测模型即可准确生成应答语句,且目标对话预测模型能够处理所有可能的多轮对话情况,不会出现数据偏置问题,尤其是一些边界和异常情况能够做到很好的处理。
基于上述实施例,本公开还提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开的对话生成方法,或者执行本公开的用于对话生成的模型训练方法。
基于上述实施例,本公开还提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开实施例公开的对话生成方法,或者执行本公开实施例公开的用于对话生成的模型训练方法。
基于上述实施例,本公开还提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开的对话生成方法的步骤,或者实现本公开的用于对话生成的模型训练方法的步骤。
根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质和一种计算机程序产品。
图12示出了可以用来实施本公开的实施例的示例电子设备1200的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图12所示,该电子设备1200可以包括计算单元1201,其可以根据存储在只读存储器(ROM)1202中的计算机程序或者从存储单元1208加载到随机访问存储器(RAM)1203中的计算机程序,来执行各种适当的动作和处理。在RAM 1203中,还可存储设备1200操作所需的各种程序和数据。计算单元1201、ROM 1202以及RAM1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
设备1200中的多个部件连接至I/O接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1201的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理,例如对话生成方法或用于对话生成的模型训练方法。例如,在一些实施例中,对话生成方法或用于对话生成的模型训练方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序加载到RAM1203并由计算单元1201执行时,可以执行上文描述的对话生成方法或用于对话生成的模型训练方法的一个或多个步骤。备选地,在其他实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行对话生成方法或用于对话生成的模型训练方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (18)
1.一种对话生成方法,包括:
获取当前轮对话的输入语句,并根据所述输入语句,对当前的对话状态进行更新,以获取更新后的对话状态信息;
基于所述对话状态信息及预设意图,获取所述输入语句对应的对话历史、意图序列及槽值对序列;
基于所述对话历史、所述意图序列及所述槽值对序列,生成所述输入语句对应的应答动作的第一预测动作类别、第一预测意图及第一预测槽值对;
基于所述第一预测动作类别、第一预测意图及第一预测槽值对,按照预设动作表示规则,生成以所述第一预测动作类别、所述第一预测意图及所述第一预测槽值对表示的应答动作;
根据所述应答动作,生成所述输入语句对应的应答语句;
其中,所述基于所述对话历史、所述意图序列及所述槽值对序列,生成所述输入语句对应的应答动作的第一预测动作类别、第一预测意图及第一预测槽值对,包括:
根据所述槽值对序列中至少一个词槽对应的词槽值,生成词槽值序列;
将所述对话历史、所述意图序列及所述词槽值序列拼接,得到拼接词序列;
将所述拼接词序列输入对话预测模型,以获取所述应答动作的第一预测动作类别、第一预测意图及至少一个所述词槽对应的第一预测词槽值;
根据至少一个所述词槽对应的第一预测词槽值,生成所述第一预测槽值对。
2.根据权利要求1所述的方法,其中,所述对话预测模型包括语言模型,以及分别与所述语言模型连接的多个二分类模型和多个序列标注模型,其中,各所述二分类模型具有对应的预设类别,且各所述序列标注模型与各所述二分类模型一一对应;所述将所述拼接词序列输入对话预测模型,以获取所述应答动作的第一预测动作类别、第一预测意图及至少一个所述词槽对应的第一预测词槽值,包括:
将所述拼接词序列输入所述语言模型,以获取所述拼接词序列中多个词的融合语义向量及多个词分别对应的语义向量;
将所述融合语义向量输入多个所述二分类模型,以获取各所述二分类模型输出的所述应答动作属于对应预设类别的第一类别预测概率,并将各所述二分类模型中的目标二分类模型的预设类别,作为所述第一预测动作类别;所述目标二分类模型,为对应的第一类别预测概率大于预设阈值的二分类模型;
将多个所述词分别对应的语义向量作为输入向量,输入各所述序列标注模型,以获取多个所述词分别对应各所述序列标注模型的第一序列标注标签,并基于多个所述词对应目标序列标注模型的第一序列标注标签,获取所述第一预测意图及各所述词槽对应的第一预测词槽值;所述目标序列标注模型,为所述目标二分类模型对应的序列标注模型。
3.根据权利要求1-2任一项所述的方法,其中,所述对话状态信息包括当前轮对话和之前轮对话分别对应的意图和槽值对,以及之前轮的应答动作;所述基于所述对话状态信息及预设意图,获取所述输入语句对应的对话历史、意图序列及槽值对序列,包括:
将当前轮对话和之前轮对话分别对应的意图和槽值对,以及之前轮的应答动作,作为所述对话历史;
对所述对话状态信息进行意图提取及去重处理,以得到目标意图,并根据所述目标意图和所述预设意图,生成所述意图序列;
对所述对话状态信息进行槽值对提取,以得到第一槽值对;
获取所述输入语句对应的第二槽值对,其中,所述第二槽值对,为预置的所述输入语句对应的应答语句的预测槽值对;
根据所述第一槽值对和所述第二槽值对,生成所述槽值对序列。
4.根据权利要求1-2任一项所述的方法,其中,所述预设动作表示规则,包括转换语句,所述转换语句中包括动作类别位置、意图位置和槽值对位置;
所述按照预设动作表示规则,生成以所述第一预测动作类别、所述第一预测意图及所述第一预测槽值对表示的应答动作,包括:
将所述第一预测动作类别、所述第一预测意图及所述第一预测槽值对,根据对应的所述动作类别位置、所述意图位置、所述槽值对位置,添加至所述转换语句中,以生成以所述第一预测动作类别、所述第一预测意图及所述第一预测槽值对表示的应答动作。
5.一种用于对话生成的模型训练方法,包括:
获取多个场景下的第一训练样本,所述第一训练样本包括多轮对话中的样本输入语句对应的样本对话历史、样本意图序列及样本槽值对序列,各所述样本输入语句以对应的样本应答动作进行标注,所述样本应答动作以对应的样本动作类别、样本意图和样本槽值对表示;
根据所述样本槽值对序列中至少一个词槽对应的词槽值,生成样本词槽值序列;
将当前轮对话中的第一样本输入语句对应的所述样本对话历史、样本意图序列及样本词槽值序列,输入初始对话预测模型,以获取所述第一样本输入语句对应的预测应答动作;所述预测应答动作以对应的第二预测动作类别、第二预测意图及第二预测槽值对表示;
根据所述预测应答动作与所述当前轮对话中的第一样本应答动作之间的差异,对所述初始对话预测模型的模型参数进行调整,得到训练后的目标对话预测模型;
其中,所述将当前轮对话中的第一样本输入语句对应的所述样本对话历史、样本意图序列及样本词槽值序列,输入初始对话预测模型,以获取所述第一样本输入语句对应的预测应答动作,包括:
将所述样本对话历史、样本意图序列及样本词槽值序列拼接,得到样本拼接词序列;
将所述样本拼接词序列输入所述初始对话预测模型,以获取所述第二预测动作类别、第二预测意图及至少一个所述词槽对应的第二预测词槽值;
根据至少一个所述词槽对应的第二预测词槽值,生成所述第二预测槽值对;
基于所述第二预测动作类别、第二预测意图及第二预测槽值对,按照预设动作表示规则,生成以所述第二预测动作类别、所述第二预测意图及所述第二预测槽值对表示的预测应答动作。
6.根据权利要求5所述的方法,其中,所述初始对话预测模型,包括语言模型,以及分别与所述语言模型连接的多个二分类模型和多个序列标注模型,其中,各所述二分类模型具有对应的预设类别,且各所述序列标注模型与各所述二分类模型一一对应;所述第二预测动作类别,包括所述预测应答动作对应各所述二分类模型的预测类别;所述第二预测意图及至少一个所述词槽对应的所述第二预测词槽值,包括所述预测应答动作对应各所述序列标注模型的预测意图及至少一个所述词槽对应的预测词槽值;
所述将所述样本拼接词序列输入所述初始对话预测模型,以获取所述第二预测动作类别、第二预测意图及至少一个所述词槽对应的第二预测词槽值,包括:
将所述样本拼接词序列输入所述语言模型,以获取所述样本拼接词序列中多个词的样本融合语义向量及多个词分别对应的样本语义向量;
将所述样本融合语义向量输入多个所述二分类模型,以获取各所述二分类模型输出的所述预测应答动作属于对应预设类别的第二类别预测概率,并根据各所述二分类模型输出的所述预测应答动作属于对应预设类别的第二类别预测概率,获取所述预测应答动作对应各所述二分类模型的预测类别;
将所述多个词分别对应的样本语义向量作为输入向量,输入各所述序列标注模型,以获取多个所述词分别对应各所述序列标注模型的第二序列标注标签,并基于多个所述词分别对应各所述序列标注模型的第二序列标注标签,获取所述预测应答动作对应各所述序列标注模型的预测意图及至少一个所述词槽对应的预测词槽值。
7.根据权利要求6所述的方法,其中,所述根据所述预测应答动作与所述当前轮对话中的第一样本应答动作之间的差异,对所述初始对话预测模型的模型参数进行调整,得到训练后的目标对话预测模型,包括:
根据所述样本动作类别与所述预测应答动作对应第一二分类模型的预测类别之间的第一差异、所述样本意图与所述预测应答动作对应第一序列标注模型的预测意图之间的第二差异,以及所述样本词槽值与所述预测应答动作对应所述第一序列标注模型的预测槽值对之间的第三差异,对所述第一二分类模型及所述第一序列标注模型的模型参数进行调整;其中,所述预测应答动作对应所述第一二分类模型的第二类别预测概率大于预设阈值;所述第一序列标注模型与所述第一二分类模型对应;
根据所述样本动作类别与所述预测应答动作对应第二二分类模型的预测类别之间的第四差异,对所述第二二分类模型的模型参数进行调整;其中,所述预测应答动作对应所述第二二分类模型的第二类别预测概率不大于预设阈值。
8.根据权利要求6-7任一项所述的方法,其中,所述得到训练后的目标对话预测模型之后,还包括:
采用目标场景下的至少一个第二训练样本,对所述目标对话预测模型的模型参数进行调整,以得到所述目标场景下的目标对话预测模型。
9.一种对话生成装置,包括:
第一获取模块,用于获取当前轮对话的输入语句,并根据所述输入语句,对当前的对话状态进行更新,以获取更新后的对话状态信息;
第二获取模块,用于基于所述对话状态信息及预设意图,获取所述输入语句对应的对话历史、意图序列及槽值对序列;
第一生成模块,用于基于所述对话历史、所述意图序列及所述槽值对序列,生成所述输入语句对应的应答动作的第一预测动作类别、第一预测意图及第一预测槽值对;
第二生成模块,用于基于所述第一预测动作类别、第一预测意图及第一预测槽值对,按照预设动作表示规则,生成以所述第一预测动作类别、所述第一预测意图及所述第一预测槽值对表示的应答动作;
第三生成模块,用于根据所述应答动作,生成所述输入语句对应的应答语句;
其中,所述第一生成模块,包括:
第一生成单元,用于根据所述槽值对序列中至少一个词槽对应的词槽值,生成词槽值序列;
第一拼接单元,用于将所述对话历史、所述意图序列及所述词槽值序列拼接,得到拼接词序列;
第一处理单元,用于将所述拼接词序列输入对话预测模型,以获取所述应答动作的第一预测动作类别、第一预测意图及至少一个所述词槽对应的第一预测词槽值;
第二生成单元,用于根据至少一个所述词槽对应的第一预测词槽值,生成所述第一预测槽值对。
10.根据权利要求9所述的装置,其中,所述对话预测模型包括语言模型,以及分别与所述语言模型连接的多个二分类模型和多个序列标注模型,其中,各所述二分类模型具有对应的预设类别,且各所述序列标注模型与各所述二分类模型一一对应;所述第一处理单元,包括:
第一处理子单元,用于将所述拼接词序列输入所述语言模型,以获取所述拼接词序列中多个词的融合语义向量及多个词分别对应的语义向量;
第二处理子单元,用于将所述融合语义向量输入多个所述二分类模型,以获取各所述二分类模型输出的所述应答动作属于对应预设类别的第一类别预测概率,并将各所述二分类模型中的目标二分类模型的预设类别,作为所述第一预测动作类别;所述目标二分类模型,为对应的第一类别预测概率大于预设阈值的二分类模型;
第三处理子单元,用于将多个所述词分别对应的语义向量作为输入向量,输入各所述序列标注模型,以获取多个所述词分别对应各所述序列标注模型的第一序列标注标签,并基于多个所述词对应目标序列标注模型的第一序列标注标签,获取所述第一预测意图及各所述词槽对应的第一预测词槽值;所述目标序列标注模型,为所述目标二分类模型对应的序列标注模型。
11.根据权利要求9-10任一项所述的装置,其中,所述对话状态信息包括当前轮对话和之前轮对话分别对应的意图和槽值对,以及之前轮的应答动作;所述第二获取模块,包括:
第二处理单元,用于将当前轮对话和之前轮对话分别对应的意图和槽值对,以及之前轮的应答动作,作为所述对话历史;
第三处理单元,用于对所述对话状态信息进行意图提取及去重处理,以得到目标意图,并根据所述目标意图和所述预设意图,生成所述意图序列;
提取单元,用于对所述对话状态信息进行槽值对提取,以得到第一槽值对;
获取单元,用于获取所述输入语句对应的第二槽值对,其中,所述第二槽值对,为预置的所述输入语句对应的应答语句的预测槽值对;
第三生成单元,用于根据所述第一槽值对和所述第二槽值对,生成所述槽值对序列。
12.根据权利要求9-10任一项所述的装置,其中,所述预设动作表示规则,包括转换语句,所述转换语句中包括动作类别位置、意图位置和槽值对位置;
所述第二生成模块,包括:
第四生成单元,用于将所述第一预测动作类别、所述第一预测意图及所述第一预测槽值对,根据对应的所述动作类别位置、所述意图位置、所述槽值对位置,添加至所述转换语句中,以生成以所述第一预测动作类别、所述第一预测意图及所述第一预测槽值对表示的应答动作。
13.一种用于对话生成的模型训练装置,包括:
第三获取模块,用于获取多个场景下的第一训练样本,所述第一训练样本包括多轮对话中的样本输入语句对应的样本对话历史、样本意图序列及样本槽值对序列,各所述样本输入语句以对应的样本应答动作进行标注,所述样本应答动作以对应的样本动作类别、样本意图和样本槽值对表示;
第四生成模块,用于根据所述样本槽值对序列中至少一个词槽对应的词槽值,生成样本词槽值序列;
处理模块,用于将当前轮对话中的第一样本输入语句对应的所述样本对话历史、样本意图序列及样本词槽值序列,输入初始对话预测模型,以获取所述第一样本输入语句对应的预测应答动作;所述预测应答动作以对应的第二预测动作类别、第二预测意图及第二预测槽值对表示;
第一调整模块,用于根据所述预测应答动作与所述当前轮对话中的第一样本应答动作之间的差异,对所述初始对话预测模型的模型参数进行调整,得到训练后的目标对话预测模型;
其中,所述处理模块,包括:
第二拼接单元,用于将所述样本对话历史、样本意图序列及样本词槽值序列拼接,得到样本拼接词序列;
第四处理单元,用于将所述样本拼接词序列输入所述初始对话预测模型,以获取所述第二预测动作类别、第二预测意图及至少一个所述词槽对应的第二预测词槽值;
第五生成单元,用于根据至少一个所述词槽对应的第二预测词槽值,生成所述第二预测槽值对;
第六生成单元,用于基于所述第二预测动作类别、第二预测意图及第二预测槽值对,按照预设动作表示规则,生成以所述第二预测动作类别、所述第二预测意图及所述第二预测槽值对表示的预测应答动作。
14.根据权利要求13所述的装置,其中,所述初始对话预测模型,包括语言模型,以及分别与所述语言模型连接的多个二分类模型和多个序列标注模型,其中,各所述二分类模型具有对应的预设类别,且各所述序列标注模型与各所述二分类模型一一对应;所述第二预测动作类别,包括所述预测应答动作对应各所述二分类模型的预测类别;所述第二预测意图及至少一个所述词槽对应的所述第二预测词槽值,包括所述预测应答动作对应各所述序列标注模型的预测意图及至少一个所述词槽对应的预测词槽值;所述第四处理单元,包括:
第四处理子单元,用于将所述样本拼接词序列输入所述语言模型,以获取所述样本拼接词序列中多个词的样本融合语义向量及多个词分别对应的样本语义向量;
第五处理子单元,用于将所述样本融合语义向量输入多个所述二分类模型,以获取各所述二分类模型输出的所述预测应答动作属于对应预设类别的第二类别预测概率,并根据各所述二分类模型输出的所述预测应答动作属于对应预设类别的第二类别预测概率,获取所述预测应答动作对应各所述二分类模型的预测类别;
第六处理子单元,用于将所述多个词分别对应的样本语义向量作为输入向量,输入各所述序列标注模型,以获取多个所述词分别对应各所述序列标注模型的第二序列标注标签,并基于多个所述词分别对应各所述序列标注模型的第二序列标注标签,获取所述预测应答动作对应各所述序列标注模型的预测意图及至少一个所述词槽对应的预测词槽值。
15.根据权利要求14所述的装置,其中,所述第一调整模块,包括:
第一调整单元,用于根据所述样本动作类别与所述预测应答动作对应第一二分类模型的预测类别之间的第一差异、所述样本意图与所述预测应答动作对应第一序列标注模型的预测意图之间的第二差异,以及所述样本词槽值与所述预测应答动作对应所述第一序列标注模型的预测槽值对之间的第三差异,对所述第一二分类模型及所述第一序列标注模型的模型参数进行调整;其中,所述预测应答动作对应所述第一二分类模型的第二类别预测概率大于预设阈值;所述第一序列标注模型与所述第一二分类模型对应;
第二调整单元,用于根据所述样本动作类别与所述预测应答动作对应第二二分类模型的预测类别之间的第四差异,对所述第二二分类模型的模型参数进行调整;其中,所述预测应答动作对应所述第二二分类模型的第二类别预测概率不大于预设阈值。
16.根据权利要求13-15任一项所述的装置,还包括:
第二调整模块,用于采用目标场景下的至少一个第二训练样本,对所述目标对话预测模型的模型参数进行调整,以得到所述目标场景下的目标对话预测模型。
17.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的方法,或者执行权利要求5-8中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-4中任一项所述的方法,或者执行权利要求5-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210088443.5A CN114490985B (zh) | 2022-01-25 | 2022-01-25 | 对话生成方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210088443.5A CN114490985B (zh) | 2022-01-25 | 2022-01-25 | 对话生成方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114490985A CN114490985A (zh) | 2022-05-13 |
CN114490985B true CN114490985B (zh) | 2023-01-31 |
Family
ID=81475668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210088443.5A Active CN114490985B (zh) | 2022-01-25 | 2022-01-25 | 对话生成方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114490985B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116050427B (zh) * | 2022-12-30 | 2023-10-27 | 北京百度网讯科技有限公司 | 信息生成方法、训练方法、装置、电子设备以及存储介质 |
CN116596161B (zh) * | 2023-07-04 | 2023-10-13 | 江南大学 | 多中心小样本场景下目标预测模型构建方法和预测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018132704A (ja) * | 2017-02-16 | 2018-08-23 | トヨタ自動車株式会社 | 対話装置 |
CN109918673A (zh) * | 2019-03-14 | 2019-06-21 | 湖北亿咖通科技有限公司 | 语义仲裁方法、装置、电子设备和计算机可读存储介质 |
CN111198937A (zh) * | 2019-12-02 | 2020-05-26 | 泰康保险集团股份有限公司 | 对话生成及装置、计算机可读存储介质、电子设备 |
WO2020177282A1 (zh) * | 2019-03-01 | 2020-09-10 | 平安科技(深圳)有限公司 | 一种机器对话方法、装置、计算机设备及存储介质 |
CN112163067A (zh) * | 2020-09-24 | 2021-01-01 | 平安直通咨询有限公司上海分公司 | 一种语句答复方法、语句答复装置及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100349B (zh) * | 2020-09-03 | 2024-03-19 | 深圳数联天下智能科技有限公司 | 一种多轮对话方法、装置、电子设备及存储介质 |
CN112988960A (zh) * | 2021-02-09 | 2021-06-18 | 中国科学院自动化研究所 | 一种对话状态追踪方法、装置、设备及存储介质 |
-
2022
- 2022-01-25 CN CN202210088443.5A patent/CN114490985B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018132704A (ja) * | 2017-02-16 | 2018-08-23 | トヨタ自動車株式会社 | 対話装置 |
WO2020177282A1 (zh) * | 2019-03-01 | 2020-09-10 | 平安科技(深圳)有限公司 | 一种机器对话方法、装置、计算机设备及存储介质 |
CN109918673A (zh) * | 2019-03-14 | 2019-06-21 | 湖北亿咖通科技有限公司 | 语义仲裁方法、装置、电子设备和计算机可读存储介质 |
CN111198937A (zh) * | 2019-12-02 | 2020-05-26 | 泰康保险集团股份有限公司 | 对话生成及装置、计算机可读存储介质、电子设备 |
CN112163067A (zh) * | 2020-09-24 | 2021-01-01 | 平安直通咨询有限公司上海分公司 | 一种语句答复方法、语句答复装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114490985A (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114490985B (zh) | 对话生成方法、装置、电子设备和存储介质 | |
CN111666380A (zh) | 一种智能呼叫方法、装置、设备和介质 | |
CN113836925B (zh) | 预训练语言模型的训练方法、装置、电子设备及存储介质 | |
CN113392253B (zh) | 视觉问答模型训练及视觉问答方法、装置、设备及介质 | |
CN113282736B (zh) | 对话理解及模型训练方法、装置、设备和存储介质 | |
CN113053367A (zh) | 语音识别方法、语音识别的模型训练方法以及装置 | |
CN113239157B (zh) | 对话模型的训练方法、装置、设备和存储介质 | |
CN113051380B (zh) | 信息生成方法、装置、电子设备和存储介质 | |
CN113807106B (zh) | 翻译模型的训练方法、装置、电子设备及存储介质 | |
US20230386237A1 (en) | Classification method and apparatus, electronic device and storage medium | |
CN117370520A (zh) | 分流的对话处理方法、装置、设备及介质 | |
CN116049370A (zh) | 信息查询方法和信息生成模型的训练方法、装置 | |
CN113204616B (zh) | 文本抽取模型的训练与文本抽取的方法、装置 | |
CN114970666B (zh) | 一种口语处理方法、装置、电子设备及存储介质 | |
CN113743127B (zh) | 任务型对话的方法、装置、电子设备及存储介质 | |
CN115577106A (zh) | 基于人工智能的文本分类方法、装置、设备和介质 | |
CN114416941A (zh) | 融合知识图谱的对话知识点确定模型的生成方法及装置 | |
CN113806541A (zh) | 情感分类的方法和情感分类模型的训练方法、装置 | |
CN114201953A (zh) | 一种关键词提取、模型训练方法、装置、设备及存储介质 | |
CN113688938A (zh) | 确定对象情感的方法、训练情感分类模型的方法及装置 | |
CN113886543A (zh) | 生成意图识别模型的方法、装置、介质及程序产品 | |
CN113554062A (zh) | 多分类模型的训练方法、设备和存储介质 | |
CN114722841B (zh) | 翻译方法、装置及计算机程序产品 | |
CN116050427B (zh) | 信息生成方法、训练方法、装置、电子设备以及存储介质 | |
CN113705206B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |