张 旭,王旭强,田雨婷,杨 青,孟 洁
(国网天津市电力公司 信息通信公司,天津 300010)
随着信息技术的发展,各行各业积累了大量的行业数据。这些数据与人类社会的生产管理息息相关,是各领域分析研究的主要对象。结构化数据格式简单、便于记录与存储,是最普遍存在的数据形式之一,例如公司的财务报表、设备传感器记录等。但结构化数据通常具有很强的领域性,缺乏行业知识的人很难理解其数值与指标背后的含义。因此,如何准确高效地传达结构化数据中的语义信息是一个重要的研究方向。数据到文本的生成逐渐成为自然语言生成领域一个重要的跨模态生成任务,研究成果已广泛应用于天气预报[1]、新闻媒体[2-4]等领域。早期的研究[5-7]主要通过人工规则、模块式系统等方式生成文本。随着深度学习技术的发展,近期的研究主要采用端到端的学习方式[8-11],通过数据驱动的形式进行学习和训练,避免繁琐的人工规则,并使得生成的结果更灵活多样。
然而,数据到文本生成还有很大的空间亟待探索。其中一个重要原因是,传统的数据到文本生成任务只涉及数据内容的复述,而不涉及深入的分析推理,这在一定程度上限制了数据到文本生成任务的发展。例如,“公司本期流动比率2.06,去年同期为1.81”这句话虽然准确传达了数据表中的信息,但对于缺乏专业知识的读者来说仍然无法准确理解其背后的含义。如果文本内容为“公司偿债能力维持稳定,短期偿债能力具有一定的保障”,则更容易被读者理解。因此,单纯的数据描述在很多时候无法满足人们的需求。若对结构化数据表中的内容进一步分析与解读,则可以获得更好的信息传递效果。
本研究关注数据到分析性文本生成任务,提出一种基于主题感知的跨模态序列到序列模型。具体地,将编码器-解码器结构作为基本框架,并引入数据表的主题建模,以保证生成文本和数据表之间的主题一致性。为验证模型效果,构建了THS和IATA两个真实数据集,并与基于模板的生成模型、基于语言模型的生成模型以及基于神经网络的生成模型等6种模型进行了实验对比与分析。实验结果表明,本模型获得最优的性能。
数据到文本生成旨在基于给定的结构化数据来生成非结构化的文本,是自然语言生成领域的一个重要研究内容,其中,结构化的数据和非结构化的文本被视为两种不同的模态。传统方法[5-7]通常将该任务分解为内容规划、句子规划以及表层实现三个独立的子任务,并串行地执行这三个子任务以实现从结构化数据模态到非结构化文本模态的生成。这种方法虽然结构简单并且易于理解,但存在传递错误、模型性能严重依赖手工特征的有效性等问题。
近年来,随着深度学习技术的发展,端到端的学习方式逐渐成为数据到文本生成的主流方法。此类方法以数据驱动的形式进行学习和训练,首先采用编码层将结构化数据映射到低维、稠密的语义向量空间,随后采用解码层基于该语义空间生成非结构化的文本,从而实现跨模态的文本生成。上述过程避免了繁琐的人工规则编写,并使得生成结果灵活多样。Lebret等[8]利用条件语言模型实现人物传记的生成。Mei等[12]使用基于复制机制的序列到序列模型提升内容选择的效果。Li等[13]采用两阶段方式生成文本,首先生成文本模板,再采用延迟复制机制填入记录中的数值。Wiseman等[14]关注数据到文档的生成,并在seq2seq模型中引入复制机制和损失重构机制。Gong等[15]采用层次编码的方式学习数据记录的语义。Iso等[16]设计了内容追踪模块,在生成文本的过程中通过跟踪数据记录来提升文本的真实性并减少冗余。Puduppully等[10]在模型中显式地增加内容选择和内容规划模块,提升模型的内容组织能力。同年,Puduppully等[17]还提出了基于实体建模的生成模型。此外,还有部分研究[18-19]基于半隐马尔科夫模型来实现数据记录到文本的对齐与生成,提升系统的可解释性与可控性。
虽然上述方法在很大程度上提升了文本生成质量,但均仅关注描述性文本的生成,即通过文本对表格的重要内容进行复述,未涉及对表格内容的分析、提炼和推理,这使得生成文本仅能做到信息的传递而不能带来任何增益。针对这一问题,本研究关注数据到分析性文本生成任务,提出基于主题感知的跨模态序列到序列模型来学习如何对表格内容进行分析和描述,保证文本和数据表之间的主题一致性,进而提升生成文本的质量。
为更好地解决数据到分析性文本生成问题,提出基于主题感知的跨模态序列到序列模型——EDAT模型,其结构如图1所示。具体地,首先采用序列到序列的模型框架实现从结构化表格模态到非结构化文本模态的生成,再引入关于数据表类别的主题特征表示,对生成文本的主题进行约束,从而得到更贴合表格内容的分析性文本。
图1 基于主题感知的跨模态序列到序列模型结构
2.2.1 编码层
给定数据表记录集合sr以及数据表标题st,将sr转化为记录序列sq={r1,r2,…,r|r|},并构建编码层来建模记录序列的隐藏向量表示H={h1,h2,…,h|r|}以及数据表的主题表示zs。
1)记录编码
(1)
(2)
其中,Q∈Rm×dq为量化单元的嵌入矩阵;M为量化单元个数;dq为数值特征的维度。通过上述方法得到的数值特征既考虑到数值本身的大小,又避免语义的分散,从而提升模型对数值的理解能力。
通过拼接上述4个特征向量可以得到每条记录的向量表示:
(3)
基于记录的向量表示序列A={a1,a2,…,a|r|},采用长短期记忆网络(long short-term memo-ry, LSTM)[20]编码记录序列的隐藏向量表示。具体地,LSTM在第t个时间步的计算过程为:
it=σ(Wiiat+bii+Whiht-1+bhi),
(4)
ft=σ(Wifat+bif+Whfht-1+bhf),
(5)
ot=σ(Wioat+bio+Whoht-1+bho),
(6)
(7)
(8)
ht=ot⊙tanh(ct)。
(9)
其中:ht为第t个时间步LSTM输出的隐藏状态;ct为第t个时间步的记忆单元状态;it,ft,和ot为LSTM中的输入门、遗忘门与输出门;σ(·)和tanh(·)分别为Sigmoid与tanh激活函数;⊙表示矩阵元素相乘;W*和b*为模型参数。
为同时捕获数据记录序列在两个方向上的隐藏特征,使用双向LSTM对数据记录序列编码,并将前向和后向编码结果进行拼接作为最终的记录隐藏表示:
(10)
(11)
(12)
由此,可以得到记录序列的隐藏表示H={h1,h2,…,h|r|}。
2)主题编码
直观上,在写作过程中,当围绕不同的主题进行叙述时,词汇的使用通常存在较大差异。因此,在数据到分析性文本生成任务中,如何准确学习数据表的主题是一个关键问题。
(13)
给定数据表标题st,根据查表法从主题特征集合中选择对应的主题表示zs。在解码层,通过引入数据表的主题表示,可以指导生成过程中词项的选择,以获得更好的生成结果。
2.2.2 解码层
基于编码层得到的记录序列的隐藏向量表示H以及数据表的主题表示Z,使用LSTM作为解码器生成分析性文本y={y1,y2,…,y|y|}。
在解码过程的第t个时间步,LSTM单元的输入为上一步预测的词对应的词向量yt-1以及解码器上一步的隐藏表示dt-1,得:
dt=LSTMdec(yt-1,dt-1)。
(14)
第1个时间步中,y0被初始化为全零向量,并将编码器中前向LSTM的最后一个隐藏表示与反向LSTM的最后一个隐藏表示进行拼接作为d0:
(15)
在生成每个词时,除了考虑上一个生成的词之外,还应该关注到原始数据表中重要的信息。在解码层引入注意力机制,以实现对数据表中信息的选择性关注。给定第t个时间步解码器的隐藏表示dt以及每个数据记录的隐藏表示hj,可计算注意力权重
(16)
其中Wa为模型参数。基于βt,j,对每个数据记录的隐藏表示进行加权求和,得到上下文向量
(17)
(18)
其中,Wd和bd为模型参数。根据该特征表示,将特征表示映射到词表空间,进而计算每个词的生成概率:
(19)
其中,Wy与by为模型参数,y l=-∑(y,s)∈Dlogp(y|s)。 (20) 其中,D表示训练实例集合,p(y|s)表示正确文本的生成概率。在推理过程中,对于给定的s,预测其对应的分析性文本如下: (21) 其中y′表示输出文本的候选项。在推理阶段利用集束搜索(beam search)来近似地得到最佳生成结果。 为验证模型的有效性,分别爬取同花顺网站(THS)的上市公司财务诊断以及国际航空运输协会官网(IATA)的经济报告,手工构建了THS和IATA两个数据集。具体的数据样例如图2所示,其中“|”、“/”以及空格分别用于间隔不同的记录、文本中不同的词以及每个记录中不同的属性。 图2 两个数据集的数据样本展示 两个数据集的基本统计情况如表1所示,两个数据集中词在不同主题类型的文本中的分布情况如图3所示。 表1 数据集统计 图3 不同主题下文本用词分布情况 可以看出,THS数据集中,不同主题类型下文本用词的差异性很大,大多数词仅在2种类型的文本中出现,而IATA数据集中,这种差异性同样明显,有52%的词仅在1种主题类型中出现。 对于THS数据集,数据表记录中每个属性特征的维度dr以及数值特征表示维度dq均设为300;对于IATA数据集,上述维度均设为100。通过对数据集的分析与统计,在进行数值区间划分时,将THS数据集划分为(-∝,0),[0,1),[1,10),[10,50),[50,100),[100, ∝)6个数值区间,量化单元的个数设为6;而对于IATA数据集,由于其数值变化范围较大,因此根据其整数部分划分区间,量化单元个数设为20,且在计算真实数值时利用tanh函数对数值的变化范围进行限制。根据数据集中文本的长度特点,THS和IATA数据集的文本最大生成长度分别设为30和50。在两个数据集中,编码器和解码器隐藏状态的维度均设为300,高频主题词词表的大小Lt设为100。 训练过程中,使用Adam优化器优化模型参数,并将批处理大小设为10,迭代次数设为60,学习率设为0.002,dropout比例设为0.5。并选取80%的样本作为训练集,10%的样本为验证集,10%的样本为测试集。 为了验证提出的EDAT模型的效果,与以下模型进行比较: 1)KN(Kneser-Ney)模型[21]:使用KenLM工具包训练5-gram模型,并且不进行修剪。 2)Template:类似于Wiseman等[14]的工作,在训练时,统计不同表类型在各个位置的用词频率,并选择频率最高的词序列构建模板,在推理过程中根据具体的数据表填充模板的空缺处。 3)T-NLM:以Mikolov等[22]提出的循环神经网络语言模型为基础,额外输入数据记录的嵌入表示,从而使模型能够利用数据表信息。 4)EDA:类似于Wiseman等[14]提出的方法,采用基于注意力机制的序列到序列模型来更清晰地探究主题建模对数据到文本生成的影响。 5)EDAT w/o T:在EDA模型的基础上仅引入数值编码模块,而不采用主题特征。 6)EDAT w/o Q:在EDA模型的基础上引入关于数据表类型的主题特征表示,而不采用数值编码。 采用BLEU[23]及ROUGE[24]作为评价指标来判断模型的生成效果。BLEU是一种基于准确率的相似性度量方法,ROUGE是一种基于召回率的相似性度量方法。BLEU和ROUGE的值越大,证明生成的结果越符合给定的真实文本。本研究的这两个指标均基于生成文本与真实文本中4元组的匹配程度进行计算。 表2展示了EDAT模型以及对比模型在两个数据集上的生成效果,可以看出本模型在两个数据集的所有指标上均取得了优于对比模型的性能,证明了模型的有效性。 表2 EDAT模型以及对比模型在THS和IATA数据集上的实验结果 具体地,比较THS和IATA数据集的实验结果可以看出,THS数据集上各个方法的生成结果明显优于IATA数据集,这是由于THS数据集训练样本更多,生成文本的平均长度更短(见表1)。 THS数据集上,基于模板的生成模型取得了较好的效果,这是由于THS数据集内容的变化性较小,结构更加统一,因此模板可以捕获一定的生成规则,然而其效果依然远低于基于神经网络的模型。IATA数据集上,模板生成模型的表现比在THS数据中更差,且同样低于神经生成模型。这证明了神经生成模型的优势,也说明IATA数据集更加复杂,文本结构的变化性更大。KN模型两个数据集上表现最差,这是由于该方法在生成过程中仅基于文本中n元组的统计信息,而未考虑数据表内容,导致文本无法准确反映数据表的信息。IATA数据集上KN模型在ROUGE上效果优于模板模型,这是由于IATA数据集中文本变化性较大,模板无法全面覆盖各种情况,而统计语言模型却有更大的覆盖范围。此外,TNLM方法虽然引入了数据表信息,但是其文本生成的效果比所有基于序列到序列的模型都差,说明序列到序列框架更适用于本文的任务,对记录进行编码有利于生成过程中更有效地利用数据表的信息。 EDAT模型在两个数据集上的性能均优于EDA模型,并且在ROUGE指标上优势更加明显,说明本模型生成的结果包含信息更加全面,能够更有效地捕获数据表的主题信息,保持生成文本与原始数据表的主题一致性,从而生成更适合于该主题的文本内容。EDAT w/o T的性能优于EDA,说明数值编码能够更好地理解数据表中的数值信息,从而使生成结果更加准确合理。EDAT w/o Q的性能优于EDA,EDAT的性能优于EDAT w/o T,说明主题建模可以有效保持文本和数据表之间的主题一致性,提升生成效果。从本模型与EDA、EDAT w/o T以及EDAT w/o Q模型的性能对比可以看出,本模型能够在不同程度上提升分析性文本的生成质量,其效果在THS数据集上更加明显。 为验证所提出的模型可以生成更加符合原始数据表主题的文本,对文本生成结果的主题一致性进行分析。首先,通过人工筛选为两个数据集制作能够体现文本主题的中心词词表。随后,计算生成结果在主题一致性方面的得分,具体公式为: (22) 其中,Gen表示模型生成的文本,Ref表示真实文本,topicw表示中心词。公式(22)的分母代表出现在真实文本中的中心词个数,分子代表生成文本与真实文本中匹配的中心词个数,反映了生成结果对于中心词的覆盖率;分值越大说明生成结果包含了越多正确的中心词,从而与真实文本以及原始数据表具有更高的主题一致性。表3显示了不同方法在两个数据集中的得分情况,可以看出,本模型获得了更高的分数。 表3 EDAT模型以及EDA模型在THS和IATA数据集上的主题一致性得分 为更直观地了解本文模型的生成效果,表4以THS数据集为例,给出EDAT模型与对比模型的生成结果。可以看出,本模型具有最优的生成效果。特别地,与EDAT w/o Q模型的对比结果显示EDAT模型可以有效提升分析结果的准确性;而通过与EDAT w/o T的结果示例对比可知,EDAT模型能够有效地捕获到原始数据表的主题信息,从而生成主题一致的分析性文本。 表4 THS数据集上的样例分析 针对数据到分析性文本生成任务开展研究,提出了基于主题感知的跨模态序列到序列模型——EDAT模型。为了实现从结构化数据表模态到非结构化文本模态的转换,采用序列到序列的模型框架,并在此基础上根据主题-词的共现关系学习数据表的主题表示。通过将数据表的主题表示引入解码层,可以有效保证生成文本与数据表之间的主题一致性。为了验证模型的效果,构建了两个真实数据集并进行模型性能验证。实验结果显示,相比其他6个模型,本模型能够更好地捕获不同类型数据表的主题信息,获得最优的性能。3 实验
3.1 数据集
3.2 实验设置
3.3 对比模型
3.4 评价指标
3.5 实验结果
3.6 主题一致性分析
3.7 样例分析
4 结论