CN113268962A - 面向建筑行业信息化服务问答系统的文本生成方法和装置 - Google Patents
面向建筑行业信息化服务问答系统的文本生成方法和装置 Download PDFInfo
- Publication number
- CN113268962A CN113268962A CN202110638586.4A CN202110638586A CN113268962A CN 113268962 A CN113268962 A CN 113268962A CN 202110638586 A CN202110638586 A CN 202110638586A CN 113268962 A CN113268962 A CN 113268962A
- Authority
- CN
- China
- Prior art keywords
- text
- layer
- hidden
- coding
- mutual information
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 230000008569 process Effects 0.000 claims abstract description 41
- 238000012549 training Methods 0.000 claims abstract description 36
- 230000007246 mechanism Effects 0.000 claims abstract description 19
- 239000011229 interlayer Substances 0.000 claims abstract description 10
- 238000005070 sampling Methods 0.000 claims abstract description 3
- 239000010410 layer Substances 0.000 claims description 230
- 238000013507 mapping Methods 0.000 claims description 61
- 238000010276 construction Methods 0.000 claims description 56
- 239000013598 vector Substances 0.000 claims description 52
- 230000006870 function Effects 0.000 claims description 48
- 238000006243 chemical reaction Methods 0.000 claims description 37
- 238000009826 distribution Methods 0.000 claims description 29
- 239000011159 matrix material Substances 0.000 claims description 21
- 238000013528 artificial neural network Methods 0.000 claims description 13
- 238000005457 optimization Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 13
- 230000002457 bidirectional effect Effects 0.000 claims description 11
- 238000007781 pre-processing Methods 0.000 claims description 11
- 230000000306 recurrent effect Effects 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 9
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 7
- 230000008878 coupling Effects 0.000 claims description 6
- 238000010168 coupling process Methods 0.000 claims description 6
- 238000005859 coupling reaction Methods 0.000 claims description 6
- 230000011218 segmentation Effects 0.000 claims description 6
- 230000014509 gene expression Effects 0.000 claims description 4
- 238000009411 base construction Methods 0.000 claims description 3
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 238000005304 joining Methods 0.000 claims 1
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 238000003058 natural language processing Methods 0.000 abstract description 2
- 230000004913 activation Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000004836 empirical method Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation 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/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- 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/31—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Databases & Information Systems (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种面向建筑行业信息化服务问答系统的文本生成方法和装置,属于人工智能、自然语言处理技术领域。本发明要解决的技术问题为如何防止生成式问答系统的编码过程中的层间特征缺失和解码过程中的特征缺失,以保证文本生成的精确性,采用的技术方案为:通过构建并训练由嵌入模块、编码器模块、隐藏状态互信息模块、隐藏变量互信息模块、解码器模块组成的文本生成模型,实现对原始文本的多层编码,获取原始文本的文本表示和隐藏信息;分别对不同层次编码的隐藏状态、原始文本的隐藏变量及其采样信息计算互信息,最大化其互信息;对原始文本和目标文本进行编码,通过注意力机制获取两者之间的相关性信息,最终以达到文本生成的目的。
Description
技术领域
本发明涉及人工智能、自然语言处理技术领域,具体涉及一种面向建筑行业信息化服务问答系统的文本生成方法和装置。
背景技术
建筑行业是我国国民经济的重要支柱产业。随着国家宏观政策的不断调整,众多建筑企业开始尝试以新一代信息技术基础设施建设为契机,在数字化转型方面进行探索。我国建筑行业的信息化水平尚处于较低层次,管理粗放。面向建筑行业的信息化服务平台的建设逐渐成为建筑企业所关注的问题。自助咨询服务,是信息化服务平台建设的一个重要方面,其可为建筑从业人员提供多种在线咨询服务。这些咨询服务需要强大的自动问答、人机交互技术的支撑。生成式问答系统能够针对用户提出的问题自动生成与之对应的回答推送给用户,可以大大减轻人工答复的负担,其核心为文本生成技术。生成式问答系统在自助服务、智能客服等领域有着广泛的现实应用,在建筑行业信息化服务方面有广阔的应用前景。其核心的文本生成技术旨在生成符合要求的文本,是一项极具挑战的工作,现有方法还尚未能完善地解决。
现有文本生成的研究工作,多采用序列到序列、对抗网络、变分自动编码器及强化学习的方法。由于循环神经网络中存在梯度消失的问题,其捕获长期相关性和特征表示的能力受到限制。这意味着循环神经网络会丢失一些关键特征。为了弥补循环神经网络的不足,注意力机制、序列到序列的方法被广泛应用在各种文本表示任务中,如机器翻译等,同时为了进一步丰富语义特征表示,研究人员尝试利用层次编码方法来捕获文本特征。虽然层次编码模型具有很强的捕获抽象特征的能力和较好的性能,但是仍无法避免特征信息丢失问题。综上所述,循环神经网络与层次编码模型在避免特征信息丢失均有不可忽视的弊端。
发明内容
针对现有的文本生成方法的不足,本发明提出面向建筑行业信息化服务问答系统的文本生成方法和装置。该方法和装置,对句子进行嵌入处理,通过最大化不同编码层之间的互信息来优化层间编码,避免编码过程中的信息丢失,使得提取的语义特征更加全面、丰富;通过高斯分布对隐藏变量进行先验建模并最大化先验潜在变量,通过最大化先验潜在变量和隐藏变量之间的互信息来优化目标函数,避免解码过程中的信息丢失;通过在编码和解码过程中,对特征信息的充分捕获,避免信息丢失问题,提高文本生成的整体性能。
本发明的技术任务是按以下方式实现的,面向建筑行业信息化服务问答系统的文本生成方法,该方法是通过构建并训练嵌入模块、编码器模块、隐藏状态互信息模块、隐藏变量互信息模块、解码器模块组成的文本生成模型,实现对原始文本的多层编码,获取原始文本的文本表示和隐藏信息;分别对不同层次编码的隐藏状态、原始文本的隐藏变量及其采样信息计算互信息,最大化其互信息,以保留原始文本的更多重要信息;对原始文本和目标文本进行编码,通过注意力机制获取两者之间的相关性信息,最终以达到文本生成的目的;具体如下:
嵌入模块对原始文本和目标文本分别进行嵌入操作,得到原始文本的嵌入表示和目标文本的嵌入表示;
编码器模块对原始文本的嵌入表示进行多层次编码操作,得到第一层编码结果和第一层编码隐藏状态、第二层编码结果和第二层编码隐藏状态、原始文本的隐藏变量以及原始文本的文本表示;
隐藏状态互信息模块针对第一层编码隐藏状态和第二层编码隐藏状态计算两者之间的互信息;
隐藏变量互信息模块对原始文本的隐藏变量进行操作,计算原始文本的隐藏变量均值和先验潜在变量之间的互信息;
解码器模块将原始文本的文本表示、目标文本的嵌入表示以及先验潜在变量进行编码,通过注意力机制计算相关性,以得到文本对应的单词索引,再通过单词索引寻找映射转换表中单词索引对应的单词,生成最终的文本。
作为优选,所述嵌入模块用于构建映射转换表、构建向量映射层;
其中,构建映射转换表:以数字1为起始,按照每个词被录入词表的顺序依次递增排序编号,从而形成映射转换表。映射转换表构建完成后,表中每个词均被映射为唯一的数字标识;其后,使用Word2Vec训练词向量模型,得到各词的词向量矩阵;
构建向量映射层,负责加载构建映射转换表步骤中训练所得的词向量矩阵权重来初始化当前层的权重参数;对于向量映射,针对输入句子原始文本和目标文本,得到其相应句子嵌入表示enc_embed_input、dec_embed_input;
更优地,所述编码器模块的构建过程具体如下:第一层编码结构即编码器1使用双向长短时记忆网络对嵌入模块输出的原始文本的嵌入表示进行编码操作,以得到初步的第一层编码结果和第一层编码隐藏状态,记为具体实施见下述公式:
其中,BiLSTM1即为编码器1,使用双向长短时记忆网络编码嵌入模块输出的原始文本的嵌入表示;表示原始文本经向量映射层后得到的句子向量;表示第一层编码结果,表示第一层编码隐藏状态;Concatenate表示联接操作;表示第一层编码结果和原始文本的向量表示的联接。
进一步地,将初步的第一层编码结果和原始文本的嵌入表示的联接,即传递给第二层编码结构即编码器2;编码器2使用双向长短时记忆网络对第一层编码结果和原始文本的嵌入表示的联接进行编码操作,以得到第二层编码结果和第二层编码隐藏状态,记为和具体实施见下述公式。
其中,BiLSTM2即为编码器2,使用双向长短时记忆网络编码第一层编码结果和原始文本的嵌入表示的联接。
进一步地,将第一层编码结果和第二层编码结果,即和进行联接,得到原始文本的文本表示,准备传递给解码器模块;将第一层编码隐藏状态和第二层编码隐藏状态,即和进行联接,得到原始文本的隐藏变量,准备传递给隐藏变量互信息模块;其具体实施见下述公式:
更优地,所述隐藏状态互信息模块的构建过程具体如下:
隐藏状态互信息模块进一步处理编码器模块所生成的第一层、第二层编码隐藏状态,进一步优化层间编码,从而减少再编码过程中的信息丢失。为了防止编码过程中的信息丢失,模型引入互信息来进一步优化层间编码,互信息越大,编码性能越好,编码过程中的信息丢失就越少;模型使用互信息表示第一层编码的隐藏状态即编码器1的隐藏状态和第二层编码的隐藏状态即编码器2的隐藏状态的相关性;具体实施见下述公式:
其中,X表示第一层编码的隐藏状态Z表示第二层编码的隐藏状态Ι(X,Z)表示两者之间的互信息;x属于X,z属于Z;p(z|x)表示x产生的分布;表示第一层编码隐藏状态的原始分布;E表示期望;表示变量x、z的联合分布;表示随机抽取一个x和z时的分布;T表示为一个估算网络;σ(T(x,z))表示一个判别网络,x及其对应的z视为一个正样本对,x及随机抽取的z视为负样本。
更优地,所述隐藏变量互信息模块构建过程如下:
隐藏变量互信息模块进一步处理编码器模块所生成的原始文本的隐藏变量,从而减少再编码过程中的信息丢失;
为了防止编码过程中的信息丢失,隐藏变量互信息模块处理原始文本的隐藏变量得到隐藏变量均值和先验潜在变量;使用互信息表示隐藏变量均值和先验潜在变量之间的相关性,具体实施见下述公式:
其中,M表示为隐藏变量均值;N表示为先验潜在变量;E表示期望;m属于M,n属于N;I(M,N)表示为隐藏变量均值与先验潜在变量之间的互信息;JS表示JS散度即Jensen-Shannon散度;T表示为一个估算网络;p(n|m)表示m产生的分布,设为高斯分布;表示m的原始分布;表示两个变量之间的联合分布;表示随机抽取一个m和n时的分布;σ(T(m,n))表示一个判别网络,m及其对应的n视为正样本对,m及随机抽取的n视为负样本。
更优地,所述解码器模块构建过程如下:
将原始文本的文本表示、目标文本的嵌入表示以及先验潜在变量作为本模块的输入传入循环神经网络;将循环神经网络的输出传递给Luong注意力机制,以此来生成文本。公式如下所示:
Oouput=LuongAttention(LSTM(Q,p,N)) (6.1)
其中,Q表示目标文本的嵌入表示,由嵌入模块对目标文本进行嵌入操作而得到;p表示编码器中原始文本的文本表示,由公式(3.1)而得到;N是先验潜在变量,与公式(5.1)中的先验潜在变量相同;LSTM即循环神经网络;LuongAttention即为Luong注意力机制;
通过解码器输出的Oouput得到相应的单词索引,来通过单词索引寻找映射转换表中单词索引对应的单词,生成最终的文本;
所述文本生成模型构建完成后通过训练数据集进行文本生成模型的训练与优化,具体如下:
构建损失函数:损失函数由三项组成,第一项是VAE损失函数即变分自编码器损失函数;第二项是通过互信息计算第一层编码隐藏状态和第二层编码隐藏状态之间的损失;第三项是通过互信息计算先验潜在变量和隐藏变量均值之间的损失,公式如下:
其中,L表示整体损失;E表示期望;公式第一项V表示VAE损失函数;公式第二项为互信息计算第一层编码隐藏状态和第二层编码隐藏状态之间的损失;公式第三项为通过互信息计算隐藏变量均值和先验潜在变量之间的损失;I(X,Z)由公式(4.1)而得到;I(M,N)由公式(5.1)而得到;公式符号的意义与公式(4.1)和公式(5.1)中相同;
优化训练模型:用Adam优化函数作为模型的优化函数Adam的超参数均选择默认值设置。
更优地,所述文本生成知识库构建具体如下:
构建问答对数据获取单元,下载网络上已经公开的问答对文本生成数据集或人工构建数据集,将其作为构建文本生成知识库的原始数据;
构建原始数据预处理单元,预处理用于构建文本生成知识库的原始数据,对其中的每个句子均进行断词tokenization操作,从而构建文本生成知识库。
一种面向建筑行业信息化服务问答系统的文本生成装置,该装置包括,
文本生成知识库构建单元,包括:问答对数据获取单元,负责下载网络上已经公开的问答对文本生成数据集或人工构建数据集,将其作为构建文本生成知识库的原始数据;
原始数据预处理单元,负责预处理用于构建文本生成知识库的原始数据,对其中的每个句子均进行断词tokenization操作,从而构建文本生成知识库;
文本生成模型构建单元,包括:映射转换表构建单元,负责将文本生成知识库中的每个词依次存入一个列表中,从而得到一个词表,随后以数字1为起始,按照每个词被录入词表的顺序依次递增排序编号,从而形成映射转换表;映射转换表构建完成后,表中每个词均被映射为唯一的数字标识;使用Word2Vec训练词向量模型,得到各词的词向量矩阵;
向量映射层构建单元,负责加载映射转换表构建单元中训练所得的词向量矩阵权重来初始化当前层的权重参数;对于向量映射,针对输入句子原始文本和目标文本,得到其相应句子向量enc_embed_input、dec_embed_input;
编码器模块构建单元,负责将原始文本的嵌入表示转化为原始文本的文本表示及原始文本的隐藏变量,具体操作为通过深层的编码结构对原始文本的嵌入表示进行处理,其中第一层编码结构对嵌入模块输出的原始文本的嵌入表示进行编码操作,以得到第一层编码结果和第一层编码隐藏状态;将第一层编码结果和原始文本的嵌入表示联接在一起,然后传递给第二层编码结构,以得到第二层编码结果和第二层编码隐藏状态;将第一层编码结果和第二层编码结果联接在一起得到原始文本的文本表示;将第一层编码隐藏状态和第二层编码隐藏状态联接在一起得到原始文本的隐藏变量;同时,编码器模块将第一层编码隐藏状态和第二层编码隐藏状态传递给隐藏状态互信息模块、原始文本的文本表示传递给解码器模块、原始文本的隐藏变量传递给隐藏变量互信息模块;
隐藏状态互信息模块构建单元,负责进一步处理相应的隐藏状态,具体操作对第一层编码隐藏状态和第二层编码隐藏状态计算二者之间的互信息,将得到互信息传递给损失函数;
隐藏变量互信息模块构建单元,负责进一步处理相应的原始文本隐藏变量,具体操作对原始文本的隐藏变量进行计算得到隐藏变量均值和先验潜在变量,计算隐藏变量均值和先验潜在变量之间的互信息,将得到的互信息传递给损失函数,先验潜在变量传递给解码器模块;
解码器模块构建单元,负责对目标文本的嵌入表示、原始文本的文本表示及先验潜在变量进行处理,具体操作是通过一层编码结构对原始文本的文本表示、目标文本的嵌入表示和先验潜在变量进行编码操作,并将得到的结果传递给注意力机制,解码得到最终的生成文本;
所述文本生成模型训练单元,包括,
损失函数构建单元,损失函数由三项组成;第一项是VAE损失函数即变分自编码器损失函数;第二项是通过互信息计算第一层编码隐藏状态和第二层编码隐藏状态之间的损失;第三项是通过互信息计算先验潜在变量和隐藏变量均值之间的损失;
模型优化单元,负责训练并调整模型训练中的参数,减小预测误差。
一种存储介质,其中存储有多条指令,所述指令有处理器加载,执行上述的面向建筑行业信息化服务问答系统的文本生成方法和装置的步骤。
一种电子设备,所述电子设备包括:
上述的存储介质;以及
处理器,用于执行所述存储介质中的指令。
本发明的面向建筑行业信息化服务问答系统的文本生成方法和装置具有以下优点:
(一)本发明的嵌入处理,可以捕捉和利用句子中所蕴含的语义信息,使得捕获的语义特征更加丰富、准确;
(二)本发明通过最大化不同编码层之间的互信息来优化层间编码,可以防止编码过程中层间特征缺失,保留更多的原始文本的特征信息。
(三)本发明通过高斯分布对隐藏变量进行先验建模并最大化先验隐藏变量,通过最大化先验隐藏变量和隐藏变量之间的互信息来优化目标函数,避免解码过程中的信息丢失。
(四)本发明借助于互信息机制,优化编码和解码过程,充分捕获特征信息,避免信息丢失问题,能够有效改善文本生成的质量。
(五)本发明通过注意力机制,提升解码过程中重要信息的权重,充分发挥重要信息的作用,提升文本生成的质量。
附图说明
下面结合附图对本发明进一步说明。
图1为面向建筑行业信息化服务问答系统的文本生成方法的框架结构图;
图2为编码器模块结构图;
图3为面向建筑行业信息化服务问答系统的文本生成装置的流程图;
图4为构建知识库流程图;
图5为构建文本生成模型流程图。
具体实施方式
参照说明书附图和具体实施例对本发明的面向建筑行业信息化服务问答系统的文本生成方法和装置作以下详细地说明。
实施例1:
如附图1所示,本发明的主要框架结构包含嵌入模块、编码器模块、隐藏状态互信息模块、隐藏变量互信息模块、解码器模块。其中,嵌入模块对原始文本和目标文本分别进行嵌入操作,得到原始文本的嵌入表示和目标文本的嵌入表示,并分别传递给模型的编码器模块和解码器模块。编码器模块包含若干层编码结构,具体细节如图2所示,其中第一层编码结构即编码器1对嵌入模块输出的原始文本的嵌入表示进行编码操作,以得到第一层编码结果和第一层编码隐藏状态;将第一层编码结果和原始文本的嵌入表示联接在一起,然后传递给第二层编码结构即编码器2,以得到第二层编码结果和第二层编码隐藏状态;将第一层编码结果和第二层编码结果联接在一起得到原始文本的文本表示;将第一层编码隐藏状态和第二层编码隐藏状态联接在一起得到原始文本的隐藏变量;同时,编码器模块将原始文本的隐藏变量传递给隐藏变量互信息模块、将原始文本的文本表示传递给解码器模块、将第一层编码隐藏状态和第二层编码隐藏状态传递给隐藏状态互信息模块。如图1所示,隐藏状态互信息模块针对第一层编码隐藏状态和第二层编码隐藏状态计算两者之间的互信息。隐藏变量互信息模块对原始文本的隐藏变量进行计算得到隐藏变量均值和先验潜在变量,计算隐藏变量均值和先验潜在变量之间的互信息,然后将先验潜在变量传递给解码器模块。将隐藏状态互信息模块得到的互信息和隐藏变量互信息模块得到的互信息同时传递给损失函数,以优化整体模型。解码器模块通过一层编码结构即编码器3对原始文本的文本表示、目标文本的嵌入表示和先验潜在变量进行编码操作,并将得到的结果传递给注意力机制,通过计算得到最终的生成文本。具体如下:
(1)嵌入模块对原始文本和目标文本分别进行嵌入操作,得到原始文本的嵌入表示和目标文本的嵌入表示;
(2)编码器模块对原始文本的嵌入表示进行多层次编码操作,得到第一层编码结果和第一层编码隐藏状态、第二层编码结果和第二层编码隐藏状态、原始文本的隐藏变量以及原始文本的文本表示;
(3)隐藏状态互信息模块针对第一层编码隐藏状态和第二层编码隐藏状态计算两者之间的互信息;
(4)隐藏变量互信息模块对原始文本的隐藏变量进行操作,计算原始文本的隐藏变量均值和先验潜在变量之间的互信息;
(5)解码器模块将原始文本的文本表示、目标文本的嵌入表示以及先验潜在变量进行编码,通过注意力机制计算相关性,以得到文本对应的单词索引,再通过单词索引寻找映射转换表中单词索引对应的单词,生成最终的文本。
实施例2:
本发明的面向建筑行业信息化服务问答系统的文本生成方法,包含构建文本生成知识库、构建文本生成模型、训练文本生成模型三个主要步骤,具体如下:
S1、构建文本生成知识库,如附图4所示,具体步骤如下:
S101、下载网络上已经公开的问答对文本生成数据集或人工构建数据集,将其作为构建文本生成知识库的原始数据。
举例:举例说明:网络上有许多已公开的问答对文本生成数据集,例如SQuAD数据集,来自文献Reiter,E.,Dale,R.:Building applied natural language generationsystems.Natural Language Engineering 3(1),57–87(1997)。本发明收集这些数据,将其下载下来;并收集互联网问答句子对数据,从而获得用于构建文本生成知识库的原始数据。
所收集的数据集中的句子对示例,表示如下:
S102、数据预处理将步骤S101中获取到的用于构建文本生成知识库的原始数据进行断词操作。
举例说明:数据集中的句子断词示例,表示如下:
对于上面描述的代码实现如下所示:
sentences=[”.join(word_tokenize(s)[:max_num_words])for s insentences1]
其中,sentences1为原始数据,sentences为断词后的数据,max_num_words为句子中包含单词的最大数量。
S2、构建文本生成模型:构建文本生成模型的流程如图5所示,主要操作为构建映射转换表、构建向量映射层、构建编码器模块、构建隐藏状态互信息模块、构建隐藏变量互信息模块、构建解码器模块。其中,构建映射转换表、构建向量映射层对应图1中的嵌入模块,其余部分均与图1中的各个模块一一对应。具体步骤如下所述:
S201、构建映射转换表:映射转换表是通过步骤S102处理后得到的文本生成知识库来构建的。映射转换表构建完成后,表中每个单词均被映射为唯一的数字标识,其映射规则为:以数字1为起始,随后按照每个词被录入词表的顺序依次递增排序编号,从而形成本发明所需的映射转换表。
举例:以步骤S102处理后的内容,构建映射转换表如下:
单词 | In | the | construction | industry | , | what |
映射 | 1 | 2 | 3 | 4 | 5 | 6 |
单词 | is | most | popular | loan | financing | platform |
映射 | 7 | 8 | 9 | 10 | 11 | 12 |
单词 | China | ? | CNTYTZ | may | be | best |
映射 | 13 | 14 | 15 | 16 | 17 | 18 |
单词 | financial | . | ||||
映射 | 19 | 20 |
其后,本发明使用Word2Vec训练词向量模型,得到各词的词向量矩阵char_embedding_matrix。
举例说明:在gensim中,对于上面描述的代码实现如下所示:
w2v_model_char=genism.models.Word2Vec(w2v_corpus_char,size=char_embedding_dim,window=5,min_count=1,sg=1,workers=4,seed=1234,iter=25)
w2v_model=gensim.models.Word2Vec(sentences,size=300,min_count=1,
iter=50)
encoder_embeddings_matrix=data_utils.create_embedding_matrix(input_word
_index,config['embedding_size'],w2v_path)
embeddings_matrix=np.random.uniform(-0.05,0.05,size=(len(word_index),embedding_dim))
for word,i in word_index.items():
try:embeddings_vector=w2v_model[word]embeddings_matrix[i]=embeddings_vector
except KeyError:pass
其中,sentences为语料集;300为向量维度,word_index为单词索引,模型设置char_embedding_dim为400,w2v_model为Word2Vec模型。
S202、构建向量映射层:负责加载构建映射转换表步骤中训练所得的向量矩阵权重来初始化当前层的权重参数;针对原始文本和目标文本,得到其相应句子向量enc_embed_input、dec_embed_input。
举例说明:在Tensorflow中,对于上面描述的代码实现如下所示:
self.encoder_embeddings=tf.Variable(initial_value=np.array(self.encoder_embeddings_matrix,dtype=np.float32),dtype=tf.float32,trainable=False)
其中,encoder_embeddings_matrix为构建映射转换表步骤中训练所得的向量矩阵权重;encoder_embeddings为获得的向量矩阵。
S203、构建编码器模块:该结构如图2所示,具体步骤如下:
编码器的结构图如图2所示,该模块接收嵌入模块输出的原始文本的嵌入表示作为输入;其中第一层编码结构即编码器1对嵌入模块输出的原始文本的嵌入表示进行编码操作,以得到第一层编码结果和第一层编码隐藏状态;将第一层编码结果和原始文本的嵌入表示联接在一起,然后传递给第二层编码结构即编码器2,以得到第二层编码结果和第二层编码隐藏状态;将第一层编码结果和第二层编码结果联接在一起得到原始文本的文本表示;将第一层编码隐藏状态和第二层编码隐藏状态联接在一起得到原始文本的隐藏变量;同时,编码器模块将第一层编码隐藏状态和第二层编码隐藏状态传递给隐藏状态互信息模块,将原始文本的文本表示传递给解码器模块,将原始文本的隐藏变量传递给隐藏变量互信息模块。
其中,BiLSTM1即为编码器1,使用双向长短时记忆网络编码嵌入模块输出的原始文本的嵌入表示;表示原始文本经向量映射层后得到的句子向量;表示第一层编码结果,表示第一层编码隐藏状态;Concatenate表示联接操作;表示第一层编码结果和原始文本的向量表示的联接。
进一步地,将初步的第一层编码结果和原始文本的嵌入表示的联接,即传递给第二层编码结构即编码器2;编码器2使用双向长短时记忆网络对第一层编码结果和原始文本的嵌入表示的联接进行编码操作,以得到第二层编码结果和第二层编码隐藏状态,记为和具体实施见下述公式:
其中,BiLSTM2即为编码器2,使用双向长短时记忆网络编码第一层编码结果和原始文本的嵌入表示的联接。
进一步地,将第一层编码结果和第二层编码结果进行联接,即和进行联接,得到原始文本的文本表示,准备传递给解码器模块;将第一层编码隐藏状态和第二层编码隐藏状态,即和进行联接,得到原始文本的隐藏变量,准备传递给隐藏变量互信息模块,其具体实施见下述公式:
举例说明:在Tensorflow中,对于上面描述的代码实现如下所示:
lstm_fw=tf.contrib.rnn.LayerNormBasicLSTMCell(self.lstm_hidden_units)
lstm_fw=tf.contrib.rnn.DropoutWrapper(lstm_fw,input_keep_prob=self.keep_prob)
lstm_bw=tf.contrib.rnn.LayerNormBasicLSTMCell(self.lstm_hidden_units)
lstm_bw=tf.contrib.rnn.DropoutWrapper(lstm_bw,input_keep_prob=self.keep_prob)
self.lstm_enc_output,self.lstm_enc_state=tf.nn.bidirectional_dynamic_rnn(lstm_fw,lstm_bw,self.enc_embed_input,self.source_sentence_length,dtype=tf.float32)
self.h_lstm_N=tf.concat([self.lstm_enc_state[0][1],self.lstm_enc_state[1][1]],axis=-1,name='h_lstm_N')
self.lstm_enc_outputs=tf.concat([self.lstm_enc_output[0],self.lstm_enc_output[1]],axis=-1,name='encoder_lstm_outputs')
nas_fw=tf.contrib.rnn.LayerNormBasicLSTMCell(self.lstm_hidden_units)
nas_fw=tf.contrib.rnn.DropoutWrapper(nas_fw,input_keep_prob=self.keep_prob)
nas_bw=tf.contrib.rnn.LayerNormBasicLSTMCell(self.lstm_hidden_units)
nas_bw=tf.contrib.rnn.DropoutWrapper(nas_bw,input_keep_prob=self.keep_prob)
self.nas_enc_output,self.nas_enc_state=tf.nn.bidirectional_dynamic_rnn(nas_fw,nas_bw,tf.concat([self.enc_embed_input,self.lstm_enc_outputs],axis=1),self.source_sentence_length,dtype=tf.float32)
self.h_nas_N=tf.concat([self.nas_enc_state[0][1],self.nas_enc_state[1][1]],
axis=-1,name='h_nas_N')
self.nas_enc_outputs=tf.concat([self.nas_enc_output[0],self.nas_enc_output[1]],axis=-1,name='encoder_nas_outputs')
self.h_N=tf.concat([self.h_lstm_N,self.h_nas_N],axis=1,name='h_N')
self.enc_outputs=tf.concat([self.lstm_enc_outputs,self.nas_enc_outputs],axis=-1,name='encoder_outputs')
其中,enc_embed_input是原始文本的嵌入表示;lstm_enc_outputs,h_lstm_N分别表示第一层编码结果和第一层编码隐藏状态;nas_enc_outputs,h_nas_N分别表示第二层编码结果和第二层编码隐藏状态;lstm_hidden_units表示BiLSTM中的单元数;h_N表示原始文本的隐藏变量;enc_outputs表示原始文本的文本表示。
S204、构建隐藏状态互信息模块:隐藏状态互信息模块进一步处理编码器模块所生成的第一层、第二层编码隐藏状态,进一步优化层间编码,从而减少再编码过程中的信息丢失;具体步骤如下:
为了防止编码过程中的信息丢失,引入互信息来进一步优化层间编码;使用互信息表示第一层编码的隐藏状态即编码器1的隐藏状态和第二层编码的隐藏状态即编码器2的隐藏状态的相关性,具体实施见下述公式:
其中,X表示第一层编码的隐藏状态Z表示第二层编码的隐藏状态I(X,Z)表示两者之间的互信息;x属于X,z属于Z;p(z|x)表示x产生的分布;JS表示JS散度即Jensen-Shannon散度;表示第一层编码隐藏状态的原始分布;T表示为一个估算网络;E表示期望;表示变量x,z的联合分布;表示随机抽取一个x和z时的分布;σ(T(x,z))表示一个判别网络,x及其对应的z视为一个正样本对,x及随机抽取的z视为负样本。
S205、构建隐藏变量互信息模块:隐藏变量互信息模块进一步处理编码器模块所生成的原始文本的隐藏变量,从而减少编码过程中的信息丢失;为了防止编码过程中的信息丢失,隐藏变量互信息模块处理原始文本的隐藏变量得到隐藏变量均值和先验潜在变量;使用互信息表示隐藏变量均值和先验潜在变量之间的相关性,具体实施见下述公式:
其中,M表示为隐藏变量均值;N表示为先验潜在变量;E表示期望;m属于M,n属于N;I(M,N)表示为隐藏变量均值与先验潜在变量之间的互信息;JS表示JS散度即Jensen-Shannon散度;T表示为一个估算网络;p(n|m)表示m产生的分布,设为高斯分布;表示m的原始分布;表示两个变量之间的联合分布;表示随机抽取一个m和n时的分布;σ(T(m,n))表示一个判别网络,m及其对应的n视为正样本对,m及随机抽取的n视为负样本。
举例说明:在Tensorflow中,对于上面描述隐藏状态互信息模块和隐藏变量互信息模块的代码实现如下所示:
def build_latent_space(self):
with tf.name_scope("latent_space"):
self.z_mean=Dense(self.latent_dim,name='z_mean')(self.h_N)
self.z_log_sigma=Dense(self.latent_dim,name='z_log_sigma')(self.h_N)def sample_gaussian(x,y):
with tf.name_scope('sample_gaussian'):
epsilon=tf.random_normal(tf.shape(y),name='epsilon')
return x+tf.scalar_mul(self.z_temperature,epsilon*tf.exp(y/2))#z_mean+K.exp(z_log_var/2)*u
self.z_sample=tf.identity(sample_gaussian(self.z_mean,self.z_log_sigma))def correlation(self):
with tf.name_scope("correlation"):
self.zzz1=Dense(1,activation=tf.nn.sigmoid)(self.h_nas_N)
self.zzz2=Dense(1,activation=tf.nn.sigmoid)(self.h_lstm_N)
self.zzloss=-tf.reduce_mean(tf.log(self.zzz1+1e-6)+tf.log(1-self.zzz2+1e-6))
return self.zzloss
def MMI(self):
with tf.name_scope("mmi"):
self.zz1=Dense(1,activation=tf.nn.sigmoid)(self.z_sample)
self.zz2=Dense(1,activation=tf.nn.sigmoid)(self.z_mean)
self.zloss=-tf.reduce_mean(tf.log(self.zz1+1e-6)+tf.log(1-self.zz2+1e-6))
return self.zloss
其中,self.h_lstm_N、self.h_nas_N分别表示为第一层编码的隐藏状态、第二层编码的隐藏状态,self.h_N表示为隐藏变量,self.z_m表示为隐藏变量均值,self.z_sample表示为先验潜在变量,self.zzloss表示第一层编码的隐藏状态和第二层编码的隐藏状态之间的互信息,self.zloss表示为隐藏变量均值与先验潜在变量之间的互信息。
S206、构建解码器模块:将原始文本的文本表示、目标文本的嵌入表示以及先验潜在变量作为本模块的输入传入循环神经网络;将循环神经网络的输出传递给Luong注意力机制,以此来生成文本,公式如下所示:
Oouput=LuongAttention(LSTM(Q,p,N)) (6.1)
其中,Q表示目标文本的嵌入表示,由嵌入模块对目标文本进行嵌入操作而得到;p表示编码器中原始文本的文本表示,由公式(3.1)而得到;N是先验潜在变量,与公式(5.1)中的先验潜在变量相同;LSTM即循环神经网络;LuongAttention即为Luong注意力机制;
通过解码器输出的Oouput得到相应的单词索引,来通过单词索引寻找映射转换表中单词索引对应的单词,生成最终的文本。
举例说明:在Tensorflow中,对于上面描述解码器模块的代码实现如下所示:
attn_mech=tf.contrib.seq2seq.LuongAttention(2*self.lstm_hidden_units,self.enc_outputs,memory_sequence_length=self.source_sentence_length)
training_decoder=basic_decoder.BasicDecoder(attn_cell,
training_helper,initial_state=self.init_state,latent_vector=self.z_sample,output_layer=self.output_layer)
inference_decoder=basic_decoder.BasicDecoder(attn_cell,
inference_helper,initial_state=self.init_state,
latent_vector=self.z_sample,output_layer=self.output_layer)
其中self.enc_outputs表示目标文本的嵌入表示,attn_mech表示注意力结果,training_decoder为训练解码器,inference_decorder为推理解码器。
self.inference_logits,_,_=tf.contrib.seq2seq.dynamic_decode(inference_decoder,output_time_major=False,impute_finished=True,maximum_iterations=self.decoder_num_tokens)
self.inference_logits=tf.identity(self.inference_logits.sample_id,name='predictions')
for batch_i,(input_batch,output_batch,source_sent_lengths,tar_sent_lengths)in enumerate(data_utils.get_batches(x_val,y_val,self.batch_size)):
answer_logits=sess.run(self.inference_logits,feed_dict={self.input_data:input_batch,self.source_sentence_length:source_sent_lengths,self.keep_prob:1.0,self.word_dropout_keep_prob:1.0,self.z_temperature:self.z_temp})
for k,pred in enumerate(answer_logits):
hypotheses_val.append(word_tokenize("".join([self.decoder_idx_word[i]for i in pred if i not in[self.pad,-1,self.eos]]))+symbol)
references_val.append([word_tokenize(true_val[batch_i*self.batch_size+k])])
其中tf.contrib.seq2seq.dynamic_decode为创建一个动态解码器,self.inference_logits为一个保存动态解码器输出结果的二维元组,self.inference_logits.sample_id input_batch为批量大小,source_sent_lengths为原始文本长度,tar_sent_lengths为目标文本长度,self.keep_prob为元素被保留的概率,self.inference_logits.sample_id为二维元组中索引,batch_i为批量次数,self.batch_size为批量大小,tf.identity将self.inference_logits.sample_id赋值给self.inference_logits,x_val为原始文本数据,y_val为目标文本数据self.word_dropout_keep_prob为单词被遗弃的概率,self.z_temp为标准偏差,answer_logit为解码器得到的单词索引列表,pred为单词索引,通self.decoder_idx_word来寻找pred所对应的单词。
S3、训练文本生成模型:对步骤S2构建的文本生成模型进行训练,具体如下:
S301、构建损失函数:损失函数由三项组成,第一项是VAE损失函数即变分自编码器损失函数;第二项是通过互信息计算第一层编码隐藏状态和第二层编码隐藏状态之间的损失;第三项是通过互信息计算先验潜在变量和隐藏变量均值之间的损失,公式如下所示:
其中,L表示整体损失;E表示期望;公式第一项V表示VAE损失函数;公式第二项为互信息计算第一层编码隐藏状态和第二层编码隐藏状态之间的损失;公式第三项为通过互信息计算隐藏变量均值和先验潜在变量之间的损失;I(X,Z)由公式(4.1)而得到;I(M,N)由公式(5.1)而得到;公式符号的意义与公式(4.1)和公式(5.1)中相同。
举例说明:在Tensorflow中,对于上面描述损失函数的代码实现如下所示:
def loss(self):
with tf.name_scope('losses'):
self.kl_loss=self.calculate_kl_loss()
self.kl_loss=tf.scalar_mul(self.lambda_coeff,self.kl_loss)
self.mmi=self.MMI()
self.cor=self.correlation()
batch_maxlen=tf.reduce_max(self.target_sentence_length)
target_sequence=tf.slice(
input_=self.target_data,
begin=[0,0],
size=[self.batch_size,batch_maxlen],
name="target_sequence")
masks=tf.sequence_mask(self.target_sentence_length,batch_maxlen,dtype=tf.float32,name='masks')
self.xent_loss=tf.contrib.seq2seq.sequence_loss(
self.training_logits,target_sequence,weights=masks,
average_across_batch=False
self.var_list=tf.trainable_variables()
self.lossL2=tf.add_n([tf.nn.l2_loss(v)for v in self.var_list if'bias'not in v.name])*0.001
self.cost=tf.reduce_sum(self.xent_loss+self.kl_loss)+self.lossL2+self.mmi+self.cor
其中,self.x_loss和self.kl_loss表示为VAE损失,self.mmi表示为损失函数第二项及第三项,self.cost表示为总的损失。
S302、构建优化函数:模型经过对多种优化函数进行测试,最终选择使用Adam优化函数作为模型的优化函数Adam的超参数均选择默认值设置。
举例说明:上面描述的优化函数及其设置在Tensorflow中使用代码表示为:
optimizer=tf.train.AdamOptimizer(self.lr)
其中,AdamOptimizer表示为Adam优化函数,self.lr表示为学习率。
本发明所提出的模型在SQuAD数据集上取得了优于当前先进模型的结果,实验结果的对比具体见表1。
表1:SQuAD上的实验结果.
本发明模型和现有模型进行了比较,实验结果显示本发明方法有了很大的提升。其中,前六行是现有技术的模型的实验结果,最后一行是本发明模型的实验结果,由此可知本发明比现有模型有了较大提升。模型DED(w/o Attn)实验数据来自论文Du,X.,Cardie,C.:Identifying where to focus in reading comprehension for neural questiongeneration.In:Proceedings of the International Conference on EmpiricalMethods in Natural Language Processing.pp.2067–2073(2017);剩余模型实验数据均来自论文Bahuleyan,H.,Mou,L.,Vechtomova,O.,Poupart,P.:Variational attentionfor sequence-to-sequence models.In:Proceedings of the 27th InternationalConference on Computational Linguistics.pp.1672–1682(2018)。
实施例3:
如附图3所示,基于实施例2的面向建筑行业信息化服务问答系统的文本生成装置,该装置包括,
文本生成知识库构建单元,包括:问答对数据获取单元,负责下载网络上已经公开的问答对文本生成数据集或人工构建数据集,将其作为构建文本生成知识库的原始数据;
原始数据预处理单元,负责预处理用于构建文本生成知识库的原始数据,对其中的每个句子均进行断词tokenization操作,从而构建文本生成知识库;
文本生成模型构建单元,包括:映射转换表构建单元,负责将文本生成知识库中的每个词依次存入一个列表中,从而得到一个词表,随后以数字1为起始,按照每个词被录入词表的顺序依次递增排序编号,从而形成映射转换表;映射转换表构建完成后,表中每个词均被映射为唯一的数字标识;使用Word2Vec训练词向量模型,得到各词的词向量矩阵;
向量映射层构建单元,负责加载映射转换表构建单元中训练所得的词向量矩阵权重来初始化当前层的权重参数;对于向量映射,针对输入句子原始文本和目标文本,得到其相应句子嵌入表示enc_embed_input、dec_embed_input;
编码器模块构建单元,负责将原始文本的嵌入表示转化为原始文本的文本表示及原始文本的隐藏变量,具体操作为通过深层的编码结构对原始文本的嵌入表示进行处理,其中第一层编码结构对嵌入模块输出的原始文本的嵌入表示进行编码操作,以得到第一层编码结果和第一层编码隐藏状态;将第一层编码结果和原始文本的嵌入表示联接在一起,然后传递给第二层编码结构,以得到第二层编码结果和第二层编码隐藏状态;将第一层编码结果和第二层编码结果联接在一起得到原始文本的文本表示;将第一层编码隐藏状态和第二层编码隐藏状态联接在一起得到原始文本的隐藏变量;同时,编码器模块将第一层编码隐藏状态和第二层编码隐藏状态传递给隐藏状态互信息模块、原始文本的文本表示传递给解码器模块、原始文本的隐藏变量传递给隐藏变量互信息模块;
隐藏状态互信息模块构建单元,负责进一步处理相应的隐藏状态,具体操作对第一层编码隐藏状态和第二层编码隐藏状态计算二者之间的互信息,将得到互信息传递给损失函数;
隐藏变量互信息模块构建单元,负责进一步处理相应的原始文本隐藏变量,具体操作对原始文本的隐藏变量进行计算得到隐藏变量均值和先验潜在变量,计算隐藏变量均值和先验潜在变量之间的互信息,将得到的互信息传递给损失函数,先验潜在变量传递给解码器模块;
解码器模块构建单元,负责对目标文本的嵌入表示、原始文本的文本表示及先验潜在变量进行处理,具体操作是通过一层编码结构对原始文本的文本表示、目标文本的嵌入表示和先验潜在变量进行编码操作,并将得到的结果传递给注意力机制,解码得到最终的生成文本;
文本生成模型训练单元,包括:
损失函数构建单元,损失函数由三项组成:第一项是VAE损失函数即变分自编码器损失函数,第二项是通过互信息计算第一层编码隐藏状态和第二层编码隐藏状态之间的损失,第三项是通过互信息计算先验潜在变量和隐藏变量均值之间的损失;
模型优化单元,负责训练并调整模型训练中的参数,减小预测误差。
实施例4:
基于实施例2的存储介质,其中存储有多条指令,指令有处理器加载,执行实施例2的面向建筑行业信息化服务问答系统的文本生成方法的步骤。
实施例5:
基于实施例4的电子设备,电子设备包括:实施例4的存储介质;以及
处理器,用于执行实施例4的存储介质中的指令。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种面向建筑行业信息化服务问答系统的文本生成方法和装置,其特征在于,该方法是通过构建并训练由嵌入模块、编码器模块、隐藏状态互信息模块、隐藏变量互信息模块、解码器模块组成的文本生成模型,实现对原始文本的多层编码,获取原始文本的文本表示和隐藏信息;分别对不同层次编码的隐藏状态、原始文本的隐藏变量及其采样信息计算互信息,最大化其互信息,以保留原始文本的更多重要信息;对原始文本和目标文本进行编码,通过注意力机制获取两者之间的相关性信息,最终以达到文本生成的目的;具体如下:
嵌入模块对原始文本和目标文本分别进行嵌入操作,得到原始文本的嵌入表示和目标文本的嵌入表示;
编码器模块对原始文本的嵌入表示进行多层次编码操作,得到第一层编码结果和第一层编码隐藏状态、第二层编码结果和第二层编码隐藏状态、原始文本的隐藏变量以及原始文本的文本表示;
隐藏状态互信息模块针对第一层编码隐藏状态和第二层编码隐藏状态计算两者之间的互信息;
隐藏变量互信息模块对原始文本的隐藏变量进行操作,计算原始文本的隐藏变量均值和先验潜在变量之间的互信息;
解码器模块将原始文本的文本表示、目标文本的嵌入表示以及先验潜在变量进行编码,通过注意力机制计算相关性,以得到文本对应的单词索引,再通过单词索引寻找映射转换表中单词索引对应的单词,生成最终的文本。
2.根据权利要求1所述的面向建筑行业信息化服务问答系统的文本生成方法,其特征在于,所述嵌入模块用于构建映射转换表、构建向量映射层,包括:
构建映射转换表,以数字1为起始,按照每个词被录入词表的顺序依次递增排序编号,从而形成映射转换表;使用Word2Vec训练词向量模型,得到各词的词向量矩阵;
构建向量映射层,负责加载构建映射转换表步骤中训练所得的词向量矩阵权重来初始化当前层的权重参数;对于向量映射,针对输入句子原始文本和目标文本,得到其相应句子嵌入表示enc_embed_input、dec_embed_input。
3.根据权利要求1或2所述的面向建筑行业信息化服务问答系统的文本生成方法,其特征在于,所述编码器模块的构建过程具体如下:
其中,BiLSTM1即为编码器1,使用双向长短时记忆网络编码嵌入模块输出的原始文本的嵌入表示;表示原始文本经向量映射层后得到的句子向量;表示第一层编码结果,表示第一层编码隐藏状态;Concatenate表示联接操作;表示第一层编码结果和原始文本的向量表示的联接;
将初步的第一层编码结果和原始文本的嵌入表示的联接,即传递给第二层编码结构即编码器2;编码器2使用双向长短时记忆网络对第一层编码结果和原始文本的嵌入表示的联接进行编码操作,以得到第二层编码结果和第二层编码隐藏状态,记为和具体实施见下述公式:
其中,BiLSTM2即为编码器2,使用双向长短时记忆网络编码第一层编码结果和原始文本的嵌入表示的联接;
将第一层编码结果和第二层编码结果,即和进行联接,得到原始文本的文本表示,准备传递给解码器模块;将第一层编码隐藏状态和第二层编码隐藏状态,即和进行联接,得到原始文本的隐藏变量,准备传递给隐藏变量互信息模块;其具体实施见下述公式:
4.根据权利要求1所述的面向建筑行业信息化服务问答系统的文本生成方法,其特征在于,所述隐藏状态互信息模块的构建过程具体如下:
隐藏状态互信息模块进一步处理编码器模块所生成的第一层、第二层编码隐藏状态,进一步优化层间编码,从而减少再编码过程中的信息丢失;为了防止编码过程中的信息丢失,引入互信息来进一步优化层间编码;使用互信息表示第一层编码的隐藏状态即编码器1的隐藏状态和第二层编码的隐藏状态即编码器2的隐藏状态的相关性,具体实施见下述公式:
5.根据权利要求1或3所述的面向建筑行业信息化服务问答系统的文本生成方法,其特征在于,所述隐藏变量互信息模块构建过程如下:
隐藏变量互信息模块进一步处理编码器模块所生成的原始文本的隐藏变量,从而减少编码过程中的信息丢失;为了防止编码过程中的信息丢失,隐藏变量互信息模块处理原始文本的隐藏变量得到隐藏变量均值和先验潜在变量;使用互信息表示隐藏变量均值和先验潜在变量之间的相关性,具体实施见下述公式:
6.根据权利要求5所述的面向建筑行业信息化服务问答系统的文本生成方法,其特征在于,所述解码器模块构建过程如下:
将原始文本的文本表示、目标文本的嵌入表示以及先验潜在变量作为本模块的输入传入循环神经网络;将循环神经网络的输出传递给Luong注意力机制,以此来生成文本,公式如下所示:
Oouput=LuongAttention(LSTM(Q,p,N)) (6.1)
其中,Q表示目标文本的嵌入表示,由嵌入模块对目标文本进行嵌入操作而得到;p表示编码器中原始文本的文本表示,由公式(3.1)而得到;N是先验潜在变量,与公式(5.1)中的先验潜在变量相同;LSTM即循环神经网络;LuongAttention即为Luong注意力机制;
通过解码器输出的Oouput得到相应的单词索引,来通过单词索引寻找映射转换表中单词索引对应的单词,生成最终的文本;
所述文本生成模型构建完成后,通过训练数据集进行文本生成模型的训练,具体如下:
构建损失函数:损失函数由三项组成,第一项是VAE损失函数即变分自编码器损失函数;第二项是通过互信息计算第一层编码隐藏状态和第二层编码隐藏状态之间的损失;第三项是通过互信息计算先验潜在变量和隐藏变量均值之间的损失,公式如下:
其中,L表示整体损失;E表示期望;公式第一项V表示VAE损失函数;公式第二项为互信息计算第一层编码隐藏状态和第二层编码隐藏状态之间的损失;公式第三项为通过互信息计算隐藏变量均值和先验潜在变量之间的损失;I(X,Z)由公式(4.1)而得到;I(M,N)由公式(5.1)而得到;公式符号的意义与公式(4.1)和公式(5.1)中相同;
优化训练模型:用Adam优化函数作为模型的优化函数,Adam的超参数均选择默认值设置。
7.根据权利要求6所述的面向建筑行业信息化服务问答系统的文本生成方法,其特征在于,所述文本生成知识库构建具体如下:
构建问答对数据获取单元,下载网络上已经公开的问答对文本生成数据集或人工构建数据集,将其作为构建文本生成知识库的原始数据;
构建原始数据预处理单元,预处理用于构建文本生成知识库的原始数据,对其中的每个句子均进行断词tokenization操作,从而构建文本生成知识库。
8.一种面向建筑行业信息化服务问答系统的文本生成装置,其特征在于,该装置包括,
文本生成知识库构建单元,包括:问答对数据获取单元,负责下载网络上已经公开的问答对文本生成数据集或人工构建数据集,将其作为构建文本生成知识库的原始数据;
原始数据预处理单元,负责预处理用于构建文本生成知识库的原始数据,对其中的每个句子均进行断词tokenization操作,从而构建文本生成知识库;
文本生成模型构建单元,包括:映射转换表构建单元,负责将文本生成知识库中的每个词依次存入一个列表中,从而得到一个词表,随后以数字1为起始,按照每个词被录入词表的顺序依次递增排序编号,从而形成映射转换表;映射转换表构建完成后,表中每个词均被映射为唯一的数字标识;使用Word2Vec训练词向量模型,得到各词的词向量矩阵;
向量映射层构建单元,负责加载映射转换表构建单元中训练所得的词向量矩阵权重来初始化当前层的权重参数;对于向量映射,针对输入句子原始文本和目标文本,得到其相应句子嵌入表示enc_embed_input、dec_embed_input;
编码器模块构建单元,负责将原始文本的嵌入表示转化为原始文本的文本表示及原始文本的隐藏变量,具体操作为通过深层的编码结构对原始文本的嵌入表示进行处理,其中第一层编码结构对嵌入模块输出的原始文本的嵌入表示进行编码操作,以得到第一层编码结果和第一层编码隐藏状态;将第一层编码结果和原始文本的嵌入表示联接在一起,然后传递给第二层编码结构,以得到第二层编码结果和第二层编码隐藏状态;将第一层编码结果和第二层编码结果联接在一起得到原始文本的文本表示;将第一层编码隐藏状态和第二层编码隐藏状态联接在一起得到原始文本的隐藏变量;同时,编码器模块将第一层编码隐藏状态和第二层编码隐藏状态传递给隐藏状态互信息模块、原始文本的文本表示传递给解码器模块、原始文本的隐藏变量传递给隐藏变量互信息模块;
隐藏状态互信息模块构建单元,负责进一步处理相应的隐藏状态,具体操作对第一层编码隐藏状态和第二层编码隐藏状态计算二者之间的互信息,将得到互信息传递给损失函数;
隐藏变量互信息模块构建单元,负责进一步处理相应的原始文本隐藏变量,具体操作对原始文本的隐藏变量进行计算得到隐藏变量均值和先验潜在变量,计算隐藏变量均值和先验潜在变量之间的互信息,将得到的互信息传递给损失函数,先验潜在变量传递给解码器模块;
解码器模块构建单元,负责对目标文本的嵌入表示、原始文本的文本表示及先验潜在变量进行处理,具体操作是通过一层编码结构对原始文本的文本表示、目标文本的嵌入表示和先验潜在变量进行编码操作,并将得到的结果传递给注意力机制,解码得到最终的生成文本;
文本生成模型训练单元,包括:
损失函数构建单元,损失函数由三项组成:第一项是VAE损失函数即变分自编码器损失函数,第二项是通过互信息计算第一层编码隐藏状态和第二层编码隐藏状态之间的损失,第三项是通过互信息计算先验潜在变量和隐藏变量均值之间的损失;
模型优化单元,负责训练并调整模型训练中的参数,减小预测误差。
9.一种存储介质,其中存储有多条指令,其特征在于,所述指令有处理器加载,执行权利要求1-8中任一所述的面向建筑行业信息化服务问答系统的文本生成方法和装置的步骤。
10.一种电子设备,其特征在于,所述电子设备包括:
权利要求9所述的存储介质;以及
处理器,用于执行所述存储介质中的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110638586.4A CN113268962B (zh) | 2021-06-08 | 2021-06-08 | 面向建筑行业信息化服务问答系统的文本生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110638586.4A CN113268962B (zh) | 2021-06-08 | 2021-06-08 | 面向建筑行业信息化服务问答系统的文本生成方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113268962A true CN113268962A (zh) | 2021-08-17 |
CN113268962B CN113268962B (zh) | 2022-05-24 |
Family
ID=77234524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110638586.4A Active CN113268962B (zh) | 2021-06-08 | 2021-06-08 | 面向建筑行业信息化服务问答系统的文本生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113268962B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170192956A1 (en) * | 2015-12-31 | 2017-07-06 | Google Inc. | Generating parse trees of text segments using neural networks |
US10380236B1 (en) * | 2017-09-22 | 2019-08-13 | Amazon Technologies, Inc. | Machine learning system for annotating unstructured text |
CN111553350A (zh) * | 2020-04-26 | 2020-08-18 | 佛山市南海区广工大数控装备协同创新研究院 | 一种基于深度学习的注意力机制文本识别方法 |
CN111563373A (zh) * | 2020-04-13 | 2020-08-21 | 中南大学 | 聚焦属性相关文本的属性级情感分类方法 |
CN112000771A (zh) * | 2020-08-24 | 2020-11-27 | 齐鲁工业大学 | 一种面向司法公开服务的句子对智能语义匹配方法和装置 |
CN112001166A (zh) * | 2020-08-24 | 2020-11-27 | 齐鲁工业大学 | 面向政务咨询服务的智能问答句子对语义匹配方法和装置 |
CN112000772A (zh) * | 2020-08-24 | 2020-11-27 | 齐鲁工业大学 | 面向智能问答基于语义特征立方体的句子对语义匹配方法 |
CN112000770A (zh) * | 2020-08-24 | 2020-11-27 | 齐鲁工业大学 | 面向智能问答的基于语义特征图的句子对语义匹配方法 |
CN112101043A (zh) * | 2020-09-22 | 2020-12-18 | 浙江理工大学 | 一种基于注意力的语义文本相似度计算方法 |
CN112463924A (zh) * | 2020-11-27 | 2021-03-09 | 齐鲁工业大学 | 面向智能问答基于内部相关性编码的文本意图匹配方法 |
-
2021
- 2021-06-08 CN CN202110638586.4A patent/CN113268962B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170192956A1 (en) * | 2015-12-31 | 2017-07-06 | Google Inc. | Generating parse trees of text segments using neural networks |
US10380236B1 (en) * | 2017-09-22 | 2019-08-13 | Amazon Technologies, Inc. | Machine learning system for annotating unstructured text |
CN111563373A (zh) * | 2020-04-13 | 2020-08-21 | 中南大学 | 聚焦属性相关文本的属性级情感分类方法 |
CN111553350A (zh) * | 2020-04-26 | 2020-08-18 | 佛山市南海区广工大数控装备协同创新研究院 | 一种基于深度学习的注意力机制文本识别方法 |
CN112000771A (zh) * | 2020-08-24 | 2020-11-27 | 齐鲁工业大学 | 一种面向司法公开服务的句子对智能语义匹配方法和装置 |
CN112001166A (zh) * | 2020-08-24 | 2020-11-27 | 齐鲁工业大学 | 面向政务咨询服务的智能问答句子对语义匹配方法和装置 |
CN112000772A (zh) * | 2020-08-24 | 2020-11-27 | 齐鲁工业大学 | 面向智能问答基于语义特征立方体的句子对语义匹配方法 |
CN112000770A (zh) * | 2020-08-24 | 2020-11-27 | 齐鲁工业大学 | 面向智能问答的基于语义特征图的句子对语义匹配方法 |
CN112101043A (zh) * | 2020-09-22 | 2020-12-18 | 浙江理工大学 | 一种基于注意力的语义文本相似度计算方法 |
CN112463924A (zh) * | 2020-11-27 | 2021-03-09 | 齐鲁工业大学 | 面向智能问答基于内部相关性编码的文本意图匹配方法 |
Non-Patent Citations (4)
Title |
---|
WENPENG LU ET. AL: "Deep hierarchical encoding model for sentence semantic matching", 《JOURNAL OF VISUAL COMMUNICATION AND IMAGE REPRESENTATION》 * |
WENPENG LU ET.AL: "Graph-Based Chinese Word Sense Disambiguation with Multi-Knowledge Integration", 《 COMPUTERS, MATERIALS & CONTINUA》 * |
XU ZHANG ET. AL: "Deep Feature Fusion Model for Sentence Semantic Matching", 《COMPUTERS, MATERIALS & CONTINUA》 * |
XU ZHANG ET.AL: "Chinese Sentence Semantic Matching Based on Multi-Granularity Fusion Model", 《 ADVANCES IN KNOWLEDGE DISCOVERY AND DATA MINING》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113268962B (zh) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111310438B (zh) | 基于多粒度融合模型的中文句子语义智能匹配方法及装置 | |
CN111538848B (zh) | 一种融合多源信息的知识表示学习方法 | |
He et al. | See: Syntax-aware entity embedding for neural relation extraction | |
CN112559702B (zh) | 基于Transformer的土木建筑信息领域自然语言问题生成方法 | |
CN109614471B (zh) | 一种基于生成式对抗网络的开放式问题自动生成方法 | |
CN112667818B (zh) | 融合gcn与多粒度注意力的用户评论情感分析方法及系统 | |
CN110837738B (zh) | 相似问识别方法、装置、计算机设备及存储介质 | |
CN111310439B (zh) | 一种基于深度特征变维机制的智能语义匹配方法和装置 | |
CN112000772B (zh) | 面向智能问答基于语义特征立方体的句子对语义匹配方法 | |
CN112000770B (zh) | 面向智能问答的基于语义特征图的句子对语义匹配方法 | |
CN113065358B (zh) | 面向银行咨询服务基于多粒度对齐的文本对语义匹配方法 | |
CN111858932A (zh) | 基于Transformer的多重特征中英文情感分类方法及系统 | |
CN112000771B (zh) | 一种面向司法公开服务的句子对智能语义匹配方法和装置 | |
CN117421595B (zh) | 一种基于深度学习技术的系统日志异常检测方法及系统 | |
CN112463924B (zh) | 面向智能问答基于内部相关性编码的文本意图匹配方法 | |
CN113901847A (zh) | 基于源语言句法增强解码的神经机器翻译方法 | |
CN117235216A (zh) | 一种基于异构知识融合的知识推理方法 | |
CN116403231A (zh) | 基于双视图对比学习与图剪枝的多跳阅读理解方法及系统 | |
CN117807235B (zh) | 一种基于模型内部特征蒸馏的文本分类方法 | |
CN115062003A (zh) | 基于gpt2的云erp社区生成式问答方法 | |
CN114707829A (zh) | 基于结构化数据线性展开的目标人员再犯风险预测方法 | |
CN117932066A (zh) | 一种基于预训练的“提取-生成”式答案生成模型及方法 | |
CN113988012A (zh) | 融合社交上下文与多粒度关系的无监督社交媒体摘要方法 | |
CN113705242A (zh) | 面向教育咨询服务的智能语义匹配方法和装置 | |
CN116663523B (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 | ||
CP03 | Change of name, title or address |
Address after: 250353 University Road, Changqing District, Ji'nan, Shandong Province, No. 3501 Patentee after: Qilu University of Technology (Shandong Academy of Sciences) Country or region after: China Address before: 250353 University Road, Changqing District, Ji'nan, Shandong Province, No. 3501 Patentee before: Qilu University of Technology Country or region before: China |