章皓洲 胡兵 冯端宇
智能问答系统(Question Answering System, QAS)是一种让人类通过自然语言与机器进行问答来获取信息的人机交互系统,是自然语言处理的一个集综合性与广泛性于一体的应用.现有的智能问答系统模型研究主要考虑单一型数据.然而,现实生活中结合表格和文本的混合型数据十分普遍,如金融领域的财务报表.本文对已有的财务报表智能问答模型进行改进并提出了一个新模型,该模型有更好的效果.
自然语言处理; 智能问答; 混合数据
O241.82A2023.011004
收稿日期: 2022-04-15
基金项目: 国家重点研发计划(2018YFC0830303)
作者简介: 章皓洲(1996-), 男, 四川德阳人, 硕士研究生, 主要研究方向为计算金融学.
通讯作者: 胡兵.E-mail: hubingscu@scu.edu.cn
A question answering model based on hybrid data in finance domain
ZHANG Hao-Zhou, HU Bing, FENG Duan-Yu
(School of Mathematics, Sichuan University, Chengdu 610064, China)
Question answering system (QAS) allows humans to discass questions with machine through natural language and thus is a comprehensive and extensive application of natural language processing.Many QAS are based on single-structured data and can not suitable for the mixed data combining both table and text, such as the financial statements.This paper proposes a new QA model to deal with such question based on the mixed data in financial field automatically and improve the known models.
Natural language processing; Question answering; Mixed data
1 引 言
作为一种人工智能系统,智能问答系统(Qusetion Answering System, QAS)能接受并回答用户的自然语言形式的提问.早在1961年,Green等[1]便提出了一个简单的问答系统,主要用于回答用户关于MLB赛事的相关问题,如比赛时间、地点和球队名称等.智能问答系统利用机器智能实现人机信息交互,并用自然语言给用户提供答案.不同于搜索引擎仅仅返回用户需求的相关信息片段,智能问答系统更加智能化.
近年来,随着深度学习技术的进步[2-3],机器智能阅读理解(Machine Reading Comprehension,MRC)技术也得到了极大发展[4],随之智能问答模型的基本模式逐渐演化为当前的“检索器-阅读器”(retrieve-reader)结构.检索器根据问题语句的语义检索出相关文档,阅读器则从检索出来的文档中推理出最终答案.其中的阅读器就依托于深度学习技术,通常是一个神经网络MRC模型.
根据答案来源的信息源类型,现有的智能问答研究主要可分为文本智能问答[5](Textual QA,TQA)和知识库智能问答[6](Knowledge Based QA, KB-QA)两大方向.值得注意的是,现有的智能问答模型研究主要基于单一的数据形式,对包含非结构化文本、结构化知识库或半结构化表格数据类型的研究还十分罕见.另一方面,现实生活中表格和文本结合的混合型数据十分普遍,如财务报表、科研论文、医疗报告等,尤其在金融领域中.因此,关于财务报表的智能问答对财务分析等工作很有帮助.
章皓洲, 等: 一个基于金融混合数据的智能问答模型
相较于传统的智能问答系统,金融领域的智能问答系统的设计研究存在诸多挑战.首先,金融财报中存在多种数据类型的处理问题,而不仅是单一形式的阅读理解问题.在我们的数据集中,根据答案类型的不同可以分为四种类型的问题:单句、多句、计数和数学类型问题.单句类型的答案对应于连续的单个句段,多句类型的答案包含多个分散的句段,计数类型需要对取得的句段进行计数,数学类型问题答案则需要相关数字进行数理推理后得到.为了应对多类型的问题,我们从transformer模型[7]中获得启发,设计了一个多头(muti-head)结构的模型,将不同的问题交给不同的头去解决.其次,金融财报的问答中还存在许多需要数理推断的数学问题,比如:
-Q:"What is the change in Other in 2019 from 2018?"
-A:"-12.6"
-derivation:"44.1-56.7".
这些问题需要利用表格或者文本中的相关数字(num1:44.1, num2:56.7),根据具体问题进行对应的数学推理(num1-num2)以后得到最终结果(-12.6).针对这一类问题,我们对模型结构进行改进和实验,将一种基于目标导向机制的树模型序列建模思路[8]应用在模型中,取得了不错的效果.这部分问题解决效果的提升也成为整体效果提升的重要部分.
2 模型预处理
2.1 预训练
由于要在自然语言上进行计算,我们需要获得词对应的可计算表示.一种朴素的想法是将词进行one-hot编码.由于编码导致的正交性,这种思路并不能反映出词之间的相互联系,由此诞生了词向量的预训练类型的生成方式.
预训练是一种迁移学习的方法,最早起源于word2vec模型[9],在自然语言处理领域是一种有效的方法.它基于语言模型将模型在大文本上进行大规模的预训练,得到预训练模型的参数估计,然后再在实际任务中进行微调手法以获取词的向量表示[10].
在transformer模型[7]中,作者使用了多头注意力机制,利用向量内积模拟词之间的相关性,取得了很好的效果.注意力机制主要将词由相邻词汇进行表示:
attention(Q,K,V)=softmaxQKT dkV(1)
其中Q,K,V都是词的向量表示;dk是向量的维度.注意力机制不仅加快了算法的速度,也提升了模型的效果,所以现有的预训练模型基本都使用了注意力机制.
对于Bert模型[10],它不同于之前的语言模型,采用MLM进行模型训练,在训练过程中以15%的概率用特定的符号([MASK])在原数据的文本中进行替换.这种思想类似岭回归的惩罚项,使得模型在大语料库中避免了过拟合.其次,Bert模型同时作用于NSP任务,在对应开头位置的特殊标记位置做一个二分类的任务,先将一半数据顺序打乱,模型需要预测出传入的数据是否被打乱.
由于注意力机制使用内积运算,虽然加快了运算速率,但是因为语言是一种序列,具有先后顺序,对于位置和顺序敏感,所以Bert在做词向量表示时还引入了位置嵌入(possiton embbeding)
PEpos,2i=sinpos100002i/dmodel
PEpos,2i+1=cospos100002i/dmodel(2)
利用正余弦函数性质,使得词在不同位置和不同维度由不同的正弦余弦函数表示,如图1所示.
Bert在大语料上进行训练,然后在下游任务上进行微调.这种模式使得模型具有很强的泛化性,也弥补了下游任务数据不足的缺陷.后续也有越来越多的预训练模型被提出,比如XLnet[11]和Roberta[12]等.
Roberta模型相较于Bert模型在预训练阶段使用更大量更丰富的数据作为训练语料,同时增大模型参数的维度及每次训练数据的批次.Bert模型基于mask的语言模型,在数据处理阶段就对句子进行mask处理,由此导致模型每次都接受到的是同样的mask位置的数据.Roberta模型改进了这一点,使用一种在输入时不断调整的动态mask方式.
实验发现,更为鲁棒的Roberta模型在我们的任务中表现更好,因而最终我们使用了Roberta模型作为我们的预训练模型.
图2 线性条件随机场
Fig.2 Linear conditional random fields
2.2 序列模型
自然语言处理中的句子可以看作以词为单位的序列.同样,计算式(例如$44.1-56.7=-12.6$)也可以看作以数字和计算符号为单位的序列.隐马尔科夫模型(Hidden Markov Model,HMM)是一种常见的序列模型,是条件随机场(Conditional Random Fields, CRF)的一种特殊情形[13],如图2所示.它满足齐次马尔科夫假设
Pit|it-1,ot-1,…,i1,o1=Pit|it-1(3)
这个假设表示t时刻的状态只与t-1时刻的状态有关.
我们将这一假设进行推广,以适应于问题场景.基于目标导向机制,我们构建了解决数学问题的树结构序列模型,如图3所示.我们将系统所接受的问题视为一个总目标,从总目标开始将目标不断细分为左右两个子目标,直到目标足够小为止.比如以下问题:
-Q:"What is the percentage change in Other in 2019 from 2018?"
-A:"-22.22"
-derivation:"(44.1-56.7)/56.7".
如图3所示,我们总目标是“2019年关于2018年在其他这一项的百分比变换”,对应“2019年的变化量除以2018年的总量”,根节点对应除号,除数与被除数对应两个子目标.其中左目标是“2019年的变化量”,对应“2019年的总量减去2018年的总量”;右目标是“2018年的总量”,对应“56.7”.在左目标中,节点对应减号,继续分化子目标,左子目标对应“2019年的总量”,即“44.1”;右子目标对应“2018年的总量”,即“56.7”.
由于算式中可能存在可交换算式(乘或加),为了避免重复生成,如将‘2+4生成为‘2+2(因为2可以在右边也可以在左边),后生成节点需要知道之前对应节点的信息.基于此,类似马尔科夫假设,我们假设每个树节点只与它的父节点和左邻子树有关.
在生成阶段,我们依照先序遍历,从根节点到左子树再到右子树依次生成,根节点由输入问题的语义表示总目标,左子树依照左子目标和根节点信息生成节点值,右子树依照右子目标与根节点和左邻子树的信息生成节点值.
整个序列生成完毕以后,我们对生成树进行先序遍历,得到生成的算式,再计算算式得到最终模型生成的答案.
3 模型描述
3.1 数据前处理
TAT数据集是一个基于真实财务报表整理,由金融领域专家进行答案标注的具有代表意义的数据.我们基于TAT数据集进行模型实验,其中的数据构成如前所述,是由表格和文本以及问题所组成的数据.由于表格是一种结构化的数据,我们对表格进行铺平处理,以适配我们的预训练模型.其次,鉴于Roberta模型有输入的长度限制,我们遵循retrieve-reader的模式在前处理中对数据进行tf-idf检索处理,抽取与问题最相关的内容.最后,将输入按照问题、平铺的表格、文本段落的顺序进行排列.标签包含head的分类标签、单句的开头结尾标签,序列标注标签,以及真实算式标签和真实答案标签.
3.2 模型结构
如图4所示,我们的模型先将处理后数据经预训练模型提取语义.由于Roberta预训练模型的特殊设定,我们用[CLS]表示句首token对应的embedding向量.紧接着加入summary层对问题、表格、文本不同类型输入提取对应的语义向量(与[CLS]维度相同),对应于hquestion,htable,hpara.对提取出的语义向量经过head predictor层预测出问题对应的类型
Phead=
softmaxFNNCLS,hquestion,htable,hpara (4)
其中FNN为单层前向神经网络.对于每个数据,根据预测出的head类型进入到不同的头中.
3.2.1 单句类型 单句类型Span Head对应答案为单个句段的问题.对于这类问题,我们在输入序列上进行预测答案的开头和结尾位置
Pbegint=σ(FNN(ht))(5)
pendt=σ(FNN(ht))(6)
其中ht表示对应token位置经过预训练模型后的语义向量embedding.对于每个位置,我们计算对应的开头结尾概率值,最终得到最大概率的开头结尾位置.取出该位置的句段便得到模型的输出.
3.2.2 多句类型和计数类型 多句类型Spans Head 和 计数类型Count Head 对序列进行标注,对于每个token位置,在标注空间{Cb,Ci,Co}中取值可以视作一个分类问题
Ptagt=σ(FNN(ht))(7)
其中ht表示对应token位置经过预训练模型后的语义向量embedding.多句类型取出模型标注为相关的句段作为输出,计算类型取出相关句段后再对句段进行计数得到最终的答案.
3.2.3 数学类型 数学类型Tree Head 用以解决数学类型问题.如2.2节所述,模型在每个树节点位置预测对应的节点值.预测基于当前节点的目标向量,从目标空间Vtarget=Vop∪Vcon∪Vn (运算符,常数,文中的数)中计算不同结果的分数,取最大分数结果作为预测结果
scorei(ht,vi)=WTtanhFNNht,vi(8)
其中vi表示当前节点对应目标空间Vtarget第i个值时的目标向量,scorei对应目标空间Vtarget第i个值的分数.如2.2节所述,我们采用树结构建模,根据先序遍历顺序生成整棵树,最开始根据问题向量得到树的根节点向量Vgoal,然后由根节点向量Vgoal生成左右两个子目标[8]
o=σ(Wo[vgoal,vcontext,emb(y︿)])(9)
C=tanh(Wc[vgoal,vcontext,emb(y︿)])(10)
h=o⊙C(11)
g=σ(Wgh)(12)
Qe=tanh(Weh)(13)
vsubgoal=g⊙Qe(14)
其中vgoal表示根节点或根节点与左邻节点的目标向量,vcontext表示节点相关文本的语义向量,通过3.3.2节的序列标注获取再加权得到,emb(y︿)为当前节点值下的嵌入向量,表示对应预测符号的向量嵌入,Wo,Wc,Wg,We都是模型参数.
生成的vsubgoal作为左右子树的目标向量,根据式(8)得到子树的预测,若预测结果在空间Vop中且小于最大长度则继续生成,否则停止.最后,依照先序遍历得到序列结果,再进行计算得到最终答案.
4 数值模拟
我们在TAT数据上进行实验,用EM和F1指标评估结果,再同其他模型效果进行比较,得到表1中的结果.可以看到,我们的新模型相比于目前表现最优模型仍有较好提升,虽然与人类专家的效果相比仍有距离,但表现出了不错的潜力.
对不同的问题类型,我们得到表2[14](TAGOP模型)和表3.比较发现,通过对数学问题类型的树结构建模的改进,在这类问题中我们的模型相较于TAGOP有不错的提升.
由于计数类型数据量较少,模型在计数类型上表现不够稳定.数学类型问题的效果提升明显,但仍有进步空间.
5 结 论
本文提出了一个解决金融领域智能问答问题的模型.对于智能回答所面临的多种类型数据处理问题,该模型基于Roberta预训练与muti head机制,在不同head根据问题的类型使用不同的建模方式.即,对单句类型采用传统的开始结束位置预测方式,对多句类型采用序列标注建模,对数学问题采用基于目标导向机制的树建模.模型基于head predictor将问题进行分化处理,提高了模型的泛化能力.
对于数学问题的树建模使得模型效果有较好提升,模型整体效果变好.目标导向机制对模型的提升也表明,对于复杂问题我们可以从人类思维模式中得到启发.
参考文献:
[1] Green B F, Wolf A K, Chomsky C L, et al. Baseball: an automatic question-answerer [C]// Proceedings of the Western Joint Computer Conference. New York: ACM, 1961.
[2] 孙存浩, 胡兵, 邹雨轩. 指数趋势预测的 bp-lstm模型[J]. 四川大学学报: 自然科学版, 2020, 57: 27.
[3] 晋儒龙, 卿粼波, 文虹茜. 基于注意力机制多尺度网络的自然场景情绪识别[J]. 四川大学学报: 自然科学版, 2022, 59: 012003.
[4] Seo M, Kembhavi A, Farhadi A, et al. Bidirectional attention flow for machine comprehension [EB/OL].[2022-04-10].https://www.arxiv.org/abs/1611.01603.
[5] Hermann K M, Koisky T, Grefenstette E, et al. Teaching machines to read and comprehend [EB/OL].[2022-04-10].https://www.arxiv.org/abs/1506.03340.
[6] Talmor A, Berant J. The web as a knowledge-base for answering complex questions [C]// Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Stroudsburg: ACL, 2018.
[7] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need [C]// Proceedings of the 31st International Conference on Neural Information Processing Systems. New York: Curran Associates Inc, 2017.
[8] Xie Z, Sun S. A goal-driven tree-structured neural model for math word problems [C]// Proceedings of the Twenty-Eighth International Joint Conference on Artificial Intelligence, IJCAI-19. Menlo Park: AAAI, 2019.
[9] Mikolov T, Chen K, Corrado G, et al. Efficient estimation of word representations in vector space [EB/OL].[2022-04-10].https://www.arxiv.org/abs/1301.3781.
[10] Devlin J, Chang M W, Lee K, et al. BERT: pre-training of deep bidirectional transformers for language understanding [C]// Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Stroudsburg: ACL, 2019.
[11] Yang Z, Dai Z, Yang Y, et al. Xlnet: generalized autoregressive pre-training for language understanding [C]// Advances in Neural Information Processing Systems. New York: Curran Associates Inc, 2019.
[12] Liu Y, Ott M, Goyal N, et al. Roberta: a robustly optimized Bert pre-training approach [EB/OL]. [2022-04-10].https://www.arxiv.org/abs/1907.11692.
[13] Baum L E, Petrie T, Soules G, et al. A maximization technique occurring in the statistical analysis of probabilistic functions of Markov chains [J]. Ann Math Stat, 1970, 41: 164.
[14] Zhu F, Lei W, Huang Y, et al. Tat-qa: A question answering benchmark on a hybrid of tabular and textual content in finance [C]// Meeting of the Association for Computational Linguistics. Stroudsburg: ACL, 2021.