Page 271 - 《软件学报》2025年第5期
P. 271

琚江舟 等: 多粒度单元格对比的文本和表格数值问答模型                                                     2171


                 任务上都验证了其有效性         [3,4,20−23] . 早期的研究主要集中在自监督对比学习, 他们使用数据增强技术构造锚点、正
                 例及负例. 方法是拉近锚点和正例之间的距离, 同时拉远锚点与负例之间的距离. 通过这种自监督的预训练来进行
                 表示学习, 对比学习优化后的表示在很多下游任务上获得了与监督学习类似的效果, 这些结果说明了对比学习可
                 以有效地帮助模型学习每个类别的特征. 因此, 本文采用对比学习来区分不同类型单元格语义表示. 值得注意的
                 是, He 等人  [18] 指出在自监督对比学习训练中, 负样本的数量非常重要. 他通过实验表明, 随着负样本数量的增加,
                 学习到的表示对下游任务更加有益. 最近, 对比学习在问答任务上也获得了越来越多的关注. Karpukhin                           等人  [3] 使
                 用对比学习改进了基于稠密向量的检索器, 使用一个简单但有效的对比损失函数来训练检索器, 让与问题相关的
                 段落在表示空间中接近于问题, 而与问题无关的段落远离问题. Yang                     等人  [23] 进一步优化动量对比     (momentum
                 contrast, MoCo), 以获得大量的对比学习负样本来提升问答模型的检索器. 相比                Yang  等人  [23] 和  Karpukhin  等人  [3]
                 的工作, 本文在生成器上利用对比学习优化单元格句子的表示. Caciularu                  等人  [4] 通过一种新颖的对比损失来增强
                 问答模型, 其中模型被鼓励最大化支撑段落与问题之间的相似度, 最小化干扰段落与问题之间的相似度. 对比
                 Caciularu  等人  [4] 的工作, 本文研究任务是基于文本和表格进行数值推理. 而对比学习被用于生成器中, 以帮助其区
                 分表格支撑单元格句子表示和干扰单元格句子表示.

                 2   基于文本和表格的数值问答任务及通用框架
                    基于文本和表格的数值问答任务是指模型在给定的非结构化文本和半结构化表格下进行数值推理. 为了处理
                 异构的文本和表格, 当前工作首先利用设计的固定模板将单元格转化为单元格句子, 进而将表格线性化为单元格
                 句子构成的表格文本, 图       3  展现了这个过程的一个示例. 但是因为非结构化文本和表格文本包含较多干扰项且超
                 过预训练语言模型最大输入长度, 因此当前研究提出检索器-生成器框架来解决问题                           [5−9] . 其中检索器被用于从非
                 结构化文本    (包含多个文本句子) 和表格文本          (由单元格句子构成) 中检索相关的句子. 之后生成器将这些检索的
                 相关句子作为输入, 进行数值推理并生成计算程序, 图                2  展示了整个问答模型的工作流程. 本文提出了一种方法,
                 通过采用对比学习来提升基于检索器-生成器               (encoder-decoder) 框架的问答模型的性能. 因此, 本节将简要介绍基
                 于文本和表格的数值推理任务和当前的模型框架.

                 2.1   任务定义
                    文本和表格上的数值推理: 给定一个问题             Q, 问答模型需要对由多个句子组成的文本             T  和一个或多个表格     K  构
                 成的文档进行数值推理. 模型将生成一个计算程序                G  来回答问题   Q, 并返回该程序的计算结果作为答案. 计算程序
                 一般由定义操作数、操作符构成. 在必要的情况下, 还需定义一些特殊的符号, 如图                      1 计算程序中的第     i 步推理结果#i.

                                              P(G|Q,T,K) = P ϕ (G|C,Q)P θ (C|T,K,Q)                   (1)
                    在检索器-生成器框架下, 检索器先检索相关句子, 然后生成器根据检索句子和问题                        Q  产生计算程序    G. 公式  (1)
                 描述模型生成计算程序        G  的概率过程. 这里    P θ  代表检索器,   P ϕ  代表生成器, C  是检索器选择的句子集合. 检索器

                 P θ  和生成器  P ϕ  将在第  2.2  节分别介绍.

                 2.2   数值问答模型框架

                 2.2.1    表格线性化
                    为了统一表格和文本, 目前主要通过模板“The [row header] of [column header] is [cell value]”将表格转化为表
                 格文本  [5−9] . 图  3  展示了通过模板转化简单表格    [5] 的过程. 但对于第  3.3  节展示的层次化表格      [8] , 其特点是其行名和
                 列名由多个层次行名或者列名构成. 本文按从上往下的顺序, 依次命名为第                       i 层行名  (列名), 其中  i 从  1  开始. 按照
                 已有工作   [8] , 对于单元格列名, 本文从第     1  层列名开始, 逐层拼接到最后一层列名, 形成单元格             (组合) 列名; 对于行
                 名, 本文从最后一层行名开始, 逐层拼接到第             1  层行名, 将拼接的行名作为单元格         (组合) 行名. 最后按照上述模板
                 转化层次化表格为表格文本.

                 2.2.2    检索器
                    检索器主要是被用于检索相关的句子, 这些相关句子将作为后续生成器的输入. 现有的工作首先利用预训练
   266   267   268   269   270   271   272   273   274   275   276