Page 281 - 《软件学报》2025年第5期
P. 281
琚江舟 等: 多粒度单元格对比的文本和表格数值问答模型 2181
表 5 MGCC 在 FinQA test 集上消融实验 (%)
Model Answer accuracy Program accuracy
FinQANet(BERT-base) 50.00 48.00
FinQANet(BERT-base)+MGCC 51.28±0.4 49.43±0.4
FinQANet(BERT-base)+SemContrast 50.11±0.6 48.37±0.3
FinQANet(BERT-base)+RowContrast 50.24±0.4 48.3±0.3
FinQANet(BERT-base)+ColContrast 50.75±1 48.96±1.2
FinQANet(BERT-base)+ValContrast 50.32±0.6 48.34±0.5
FinQANet(RoBERTa-large) 61.24 58.86
FinQANet(RoBERTa-large)+MGCC 64.62±0.1 62.47±0.2
FinQANet(RoBERTa-large)+SemContrast 63.86±0.6 61.67±0.7
FinQANet(RoBERTa-large)+RowContrast 63.41±0.3 61.32±0.2
FinQANet(RoBERTa-large)+ColContrast 63.59±0.1 61.26±0.1
FinQANet(RoBERTa-large)+ValContrast 64.34±0.3 62.07±0.3
(1) 不同参数规模的 FinQANet 结合多粒度单元格语义对比 (MGCC) 都比仅结合单一类型对比要带来更多的
性能提升. FinQANet +MGCC 在生成器 encoder 为 BERT-base 时, 多粒度单元格语义对比带来的性能提升好于单
一类型的细粒度对比, 两者带来的提升在答案正确率上最高相差 1.17%. 当生成器 encoder 是 RoBERTa-large 时,
比较于单一类型对比, 多粒度单元格语义对比也会带来更多的提升, 最高可以带给 FinQANet 模型 1.21% 答案正
确率的提升.
(2) 在不同参数规模的 FinQANet 下, 粗粒度单元格语义对比大部分时候带来的性能提升要好于细粒度单元格
语义构成元素对比. 这和本文动机是一致的, 单元格语义决定着模型是否选择单元格数值作为计算程序一部分, 更
好的区分干扰单元格和支撑单元格整体语义可以提升模型性能. 同时, 本文观察到 FinQANet(BERT-base) 结合粗
粒度单元格语义对比与 3 种细粒度单元格语义构成元素对比时, 模型性能提升幅度较小. 这一现象可能归因到能
力较弱的编码器 (encoder), 其学习区分正负样本的能力存在限制, 需要设计更为精细化的正负样本选择机制.
(3) 在不同参数规模的 FinQANet 下, 细粒度单元格语义构成元素对比都可以带来模型性能提升, 但带来最大
提升的细粒对比类型不同. 在生成器 encoder 为 BERT-base 时, 带来最大提升的是细粒度单元格列名对比; 在生成
器 encoder 为 RoBERTa-large 时, 带来的最大提升是细粒度单元格数值对比.
表 6 展示了 MT2Net(RoBERTa-large) 结合不同对比类型在 MultiHiertt 测试集结果. 相关的标记和表 5 类似.
表 6 MGCC 在 MultiHiertt test 集上消融实验 (%)
Model Answer accuracy F1
MT2Net(RoBERTa-large) 36.22 38.43
MT2Net(RoBERTa-large)+MGCC 44.02±0.4 44.41±0.4
MT2Net(RoBERTa-large)+SemContrast 43.70±0.1 44.09±0.1
MT2Net(RoBERTa-large)+RowContrast 43.56±0.2 43.92±0.2
MT2Net(RoBERTa-large)+ColContrast 44.09±0.1 44.49±0.1
MT2Net(RoBERTa-large)+ValContrast 43.70±0.5 44.09±0.5
通过表 6, 可以看到粗粒度单元格语义对比和 3 种细粒度单元格语义构成元素对比都是有效的. 具体地, 可以
看到:
(1) 大部分情况下, 多粒度单元格语义对比 (MGCC) 都好于细粒度单元格语义构成元素对比. 特别地, 细粒度
单元格列对比优于 MGCC. 本文认为, 这是由于 MultiHiertt 数据集中表格的行名层次最多有 3 层, 但列名层次最
多有 7 层, 因此如何区分复杂列名变得更为关键, 这同时也说明了细粒度单元格语义构成元素对比的必要性.
(2) 在大多数情况下, 粗粒度单元格语义对比好于细粒度单元格语义构成元素对比. 此外, 值得注意的是, 不同
于 FinQA 数据集, 在这里单元格数值对比并没有超越粗粒度单元格语义对比. 本文认为, 这主要是因为层次化表
格中单元格句子的语义较为复杂, 通过整体单元格语义进行区分效果更好.