Page 345 - 《软件学报》2025年第12期
P. 345
5726 软件学报 2025 年第 36 卷第 12 期
2.2 基于线索的提问生成
为了从推文中找到能反映题文不符的判别证据, 我们生成一组切中要害的提问来质疑 S 中的每条线索. 所生
成的提问难度可控, 能灵活地验证可疑线索集 S 中各种间接和高阶关系. 此处的推理难度被定义为解答提问所需
的推理步骤数. 提问生成过程包含 3 个步骤, 首先根据每个线索 s ∈ S 生成 1 跳的子提问, 然后将它们组合以获得
多跳的复杂提问. 最终, 这些提问由一个校验器来评估质量, 以筛选出一组满足语言流畅性、语法有效性和推理难
度等要求的优质提问.
2.2.1 基础子提问生成
复杂提问通常由一组相较简单的子提问按照某种推理逻辑聚合而成, 而这些子提问又由更小的提问组成 [51] .
如果把每个单跳的基础子提问看成一个推理步骤, 我们就可以将复杂提问分解成一系列由推理链关联的基础子问
题. 反之, 这些基础子提问也应能重新组装成相应的复杂提问. 受此启发, 我们先生成一组单跳的子提问作为用于
组装的基元. 具体地, 针对每个三元组线索 s ∈ S , 我们以其中一个实体作为答案, 另一实体及关系作为发问点, 使
用 BART 模型生成一个单跳的子提问. 该模型擅长于这种简单事实类的提问生成任务. 为了增强结果的流畅度,
我们还从大量无标注的提问数据中提取提问的表述模式 [52] , 并将其作为模板指导提问的生成过程. 具体来说, 对
于每条提问数据, 先替换同义词, 便于概括表述形式的同时保留核心语义. 然后, 用 POS 标签替换提问中的短语,
例如用 [NP] 替换名词, 用 [V] 替换动词等, 以此进一步归纳为通用的发问句法模板.
对于每个三元组, 我们根据关系类型 r 检索相匹配的提问模板. 譬如与三元组 (Beijing, AtLocation, China) 相
匹配的模板为“Which city is located in [NP]?”和“Where is [NP]?”, 以此生成的提问为“Which city is located in China?”
和“Where is Beijing?”. 基于检索得到的提问模板, 我们利用 HuggingFace API [53] 中的 BART-large 模型为三元组生
成与答案对应的提问. 该模型由 24 个隐藏层组成, 每层包含 16 个注意力头, 隐藏层的维度为 4 096. 在经典的问答
数据集 SQuAD [54] 上进行训练后, 该模型能够准确地将三元组转换为单跳的子提问.
为了减少计算成本, 我们使用前缀调优技术 [55] , 即冻结预训练得到的参数并仅学习少量的前缀参数 pr, 使得
pr 能有效地学习“根据提问模板将三元组转换成提问”这一指令来引导模型生成高质量结果. 具体地, 我们首先将
s
前缀 pr、三元组 的原始文本和提问模板 u s 拼接为 z = [pr; s;u s ], 并将其输入 BART 编码器中. 通过使用教师强
制 (teacher forcing) 算法, 模型能够学习最优的前缀来生成期望的结果. 解码过程参考公式 (1), 其中 P θ 、 |P idx |、 、
z i
i
h i 分别表示可学习的参数矩阵、前缀长度、输入中的第 个词以及该词的隐藏状态. 在训练过程中, 模型参数 ϕ
是固定的, 仅前缀参数 θ 需要训练. 最终, 我们收集所有的生成结果来构建出子提问池 QP = {qp ,...,qp }.
1 |S |
P θ [i,:], if i ∈ P idx
h i =
Encoder (1)
BART (z i , h <i ), otherwise
ϕ
Decoder
qp = BART ϕ (h 1 ,..., h n )
2.2.2 复杂提问组合式生成
接下来, 我们利用这些基础子提问作为基块, 通过类似堆积木的方式逐步组装成复杂提问. 组装过程主要有两
个阶段, 首先寻找可组合的子提问对, 然后将其合并为更复杂的提问. 组合结果可以用于迭代地生成高阶提问. 这
种组合式的方法可以提高可解释性, 并使提问生成器有效地控制中间推理过程, 从而获取高质量的提问.
(1) 考虑到并不是所有子提问都能组合成合理的提问, 一些缺乏逻辑关联的子提问对容易生成不合理且无法
回答的结果. 为此, 我们采用“枚举+验证”的策略, 从子提问池 QP 中筛选合适的可组合提问对. 具体而言, 两个子
提问以及它们的答案 (qp ,A i ) 和 (qp ,A j ) 可组合的条件之一是 qp 提及 . 考虑到一些同义实体可能有多种表达形
A i
i
j
j
式, 因此使用工具包 SpaCy [56] 来对齐同义实体. 此外, 我们还要求 A j 没有被 qp 提及, 避免循环推理.
i
(2) 具备常识等高阶理解能力的提问往往包含复杂的推理结构, 这种结果指引了发问的方向. 因此, 我们设计
了几种典型的结构作为先验知识来引导生成. 这些结构涵盖了主流社交媒体平台和数据集中几乎所有 2–4 跳推理
的类型, 每个结构都是一个有向无环图, 其节点和边分别表示子提问和推理关系. 要将一组可组合的子提问
QP k ⊆ QP 转换为复杂提问, 可以利用经典的 Seq2Seq 模型. 然而, 这种模型严重依赖大量的训练数据, 且还需要对

