1. 引言
自然语言处理(Natural Language Processing, NLP)作为计算机科学和人工智能领域的一个重要分支,近年来在深度学习技术的推动下取得了显著进展。随着Transformer架构[1]的引入及其变体模型如GPT [2]、BERT [3]等的发展,NLP领域的智能系统能力得到了前所未有的提升,特别是在机器阅读理解(Machine Reading Comprehension, MRC)这一关键任务上。MRC旨在使机器能够准确地理解人类语言并回答相关问题,这不仅要求模型具备强大的文本语义理解和推理能力,同时也对模型架构和训练方法提出了更高的要求。
早期的MRC研究主要依赖于循环神经网络(Recurrent Neural Networks, RNN) [4]或其变种,例如长短期记忆网络(Long Short-Term Memory, LSTM) [5]和双向长短期记忆网络(Bi-directional Long Short-Term Memory, BiLSTM) [6]。这类模型通过时间步逐次处理序列数据的方式,在理论上可以捕捉到上下文之间的依赖关系。然而,实际应用中发现,RNN类模型在处理长距离依赖时面临核心瓶颈:信息传递呈链式依赖,导致随着序列长度增加,早期时间步的信息容易因梯度消失/爆炸问题而丢失,从而影响了模型关联远距离关键信息的能力。此外,RNN类模型由于其串行处理机制,存在参数冗余、计算效率低下等问题,无法高效并行化处理,限制了其在大规模文本上的应用。
2016年,斯坦福大学发布的SQuAD (Stanford Question Answering Dataset) [7]数据集为MRC研究带来了革命性的变化。SQuAD数据集包含大量不同主题的问题–答案对,覆盖广泛且语义丰富,为训练更加精准理解自然语言的模型提供了丰富的资源。该数据集首次引入了精确匹配(Exact Match, EM)和F1得分作为评价指标,分别用于衡量预测答案与标准答案之间的一致程度以及部分匹配的语义重叠率,这种标准化评估方式促进了MRC领域内研究的公平性和透明度。
随着2017年Transformer架构的提出,NLP模型的设计范式发生了根本性转变。Transformer通过自注意力机制有效地解决了长距离依赖问题,并大幅提升了模型在复杂任务中的表现。随后,基于Transformer的预训练语言模型如BERT等通过大规模语料库上的掩码语言建模等自监督任务进一步增强了MRC任务的泛化能力。以BERT为例,其在SQuAD 1.1数据集上的EM分数相比传统的BiLSTM基线提高了超过30%,证明了自注意力机制对于MRC任务的重要性。
尽管如此,Transformer架构及基于它的预训练模型在实际应用中仍面临着模型参数量巨大、推理效率低下的挑战。针对效率问题,特别是对于需要实时响应的场景,研究者们探索了多种轻量化或加速方案。为此,百度研究团队于2018年提出了QANet模型[8],试图解决这些问题。QANet的核心创新在于摒弃了传统MRC模型对RNN类网络的依赖,转而采用卷积神经网络(Convolutional Neural Network, CNN) [9]结合注意力机制的策略,在提高推理速度的同时保持了较高的准确性。具体而言,CNN用于捕捉文本序列中的局部特征信息,而自注意力机制则负责实现全局交互,使得模型在处理任何单词时都能考虑整个文本序列中的其他单词信息,克服了长距离依赖问题,并直接关注与当前问题最相关的部分。QANet采用了多层堆叠的编码器–解码器结构,编码器通过卷积和自注意力对文本进行深层表示学习,解码器则使用不同的模块组合获取答案的起始和结束位置。这种设计充分利用了CNN的局部特征提取能力和并行计算优势,以及自注意力的全局交互能力,从而在保持甚至接近基于Transformer的模型的精度的同时,实现了数倍至数十倍的推理速度提升。
然而,QANet模型架构在损失函数设计上存在本质局限性。QANet编码器由多个堆叠块(block)组成,每个块包含深度可分离卷积层(depthwise separable convolution)和自注意力子层,这种层级设计虽提升了局部特征提取效率,但解码器阶段仅输出答案起始(start)和结束(end)位置的两个独立概率分布,并通过单一交叉熵损失函数(Cross-Entropy Loss)进行优化。该损失函数虽能区分正确与错误标签,但因其固有缺陷,在QANet的轻量化结构下引发如下两方面的关键问题:忽视了模型预测置信度与文本信息分布之间的内在联系。一方面,单一交叉熵约束可能导致模型对高频答案模式的过拟合,降低了对复杂语义推理的敏感性;另一方面,在解码过程中未考虑到文本信息熵对答案边界不确定性的量化影响,可能加剧跨度预测偏差,尤其是在处理指代消解或多跳推理问题时,容易出现关键信息遗漏或逻辑不连贯的现象。
事实上,针对MRC模型的解码优化和损失函数改进一直是研究热点。众多学者不断探索并提出了多种模型架构及改进方法,以应对不同层面的挑战。例如,一些研究人员专注于优化模型的训练策略,采用了多任务学习、对比学习等方法,通过充分利用多种监督信号和样例对比,增强模型对文本语义的捕捉能力与泛化性能;还有部分学者致力于改进损失函数设计,引入诸如对抗训练、标签平滑等技术,以提升模型的鲁棒性和对复杂语义模式的适应性。然而,在这些众多的改进方向中,针对现有MRC模型的局限性,如何进一步提升模型在处理复杂文本语义和长距离依赖时的推理效率与准确性,仍然是一个亟待解决的关键问题。在对QANet模型的深入研究中,我们注意到其在解码阶段损失函数设计上的不足,这启发了我们对损失函数进行改进的思路,从而提出了融合交叉熵与信息熵的复合损失函数,以期在提升模型性能方面取得突破,为MRC任务的发展提供新的视角和方法。
鉴于上述问题,特别是针对QANet模型在解码阶段损失函数的局限性,以及现有改进方法在融合信息分布特性方面的不足,本文创新性地提出了一种融合交叉熵与信息熵的复合损失函数。通过引入信息熵约束项,在提升答案预测准确性的同时增强了概率分布的鲁棒性:在局部层面强化关键位置的概率密度集中,在全局层面维持分布的平滑特性。这种动态平衡机制有效地抑制了数据噪声干扰,通过建立正则化约束显著提升了模型的泛化能力。实验结果表明,改进后的模型在SQuAD数据集上的EM和F1指标均有所提升,为MRC任务中的损失函数设计提供了一个新的优化方向。
2. 模型
本文以QANet模型为基线进行研究,模型主要由五个结构组成:输入嵌入层(input embedding layer)、嵌入编码层(embedding encoder layer)、上下文–查询注意层(context-query attention layer)、模型编码层(model encoder layer)、输出层(output layer)。模型的可视化如图1所示:
Figure 1. QANet architecture diagram [8]
图1. QANet模型结构图[8]
左图为QANet模型的具有多个编码器的结构图,右图是其编码器块内部视图,每个编码器块仅内部卷积层数量不同,内部各层以及编码器块每层都由残差连接。各编码器之间共享权重。
2.1. 输入嵌入层(Input Embedding Layer)
将每个单词
对应的单词嵌入和字符嵌入进行连接来获取词向量。单词嵌入和词向量在模型训练的中是固定的,每个词向量的初始化维度为
维度是300维,假设词
对应的词向量为
。所有词汇表以外的单词都会被映射为一个<UNK>标记,该标记的嵌入通过随机初始化进行训练。字符嵌入初始化为
维度是200维,这意味着每个单词都可以看作是其每个字符的嵌入向量的连接。将每个词的长度填充到
,则词
可以被表示为一个
的矩阵,经过卷积和最大池化操作后得到一个
维的词向量,为
。将
和
进行拼接操作,得到词
对应的词向量为
,其中
表示拼接操作。
最后将拼接的词向量经过一个两层的highway network,得到的嵌入层(embedding layer)的输出。普通单一网络层可以用公式((3.1)表示:
. (3.1)
其中
表示为非线性变换函数,
表示输入,
为网络层权重。而highway network的具体做法,定义如公式(3.2):
. (3.2)
其中
称为transform gate,
为carry gate。通过门控机制,对输入的一部分直接通过不需要处理,另一部分进行处理,以此来缓解模型在优化过程中遇到的梯度消失问题,最后的输出为
。
2.2. 嵌入编码层(Embedding Encoder Layer)
嵌入编码层的输入为嵌入层(embedding layer)的输出,其结构如1右侧部分。编码层中的编码器是使用[卷积层 * n + 自注意力层 + 前馈层]基本构建块。编码器块中使用的是深度可分离卷积(depth wise separable convolutions),而并不是传统的卷积结构,主要原因是它具有更好的泛化能力。(深度可分离卷积是将一个完整的卷积运算分解成两部分:深度卷积和逐点卷积。其过程是先对输入数据的每个通道,使用单独的卷积核进行卷积,每个卷积核只负责一个通道的操作,而不是同时处理所有通道。然后使用1 × 1的卷积核进行卷积,将深度卷积的输出组合起来,生成新的特征图。)卷积核大小为7,卷积核数量为d = 128,卷积层数量为4。自注意层则是利用多头注意力机制,头数为8。每一步基本操作(conv/self-attention/ffn)都被放置在一个残差块内进行。使用卷积层和self-attention层分别能更好地捕捉上下文局部信息和文本之间全局的相互作用。对于输入
和给定基本操作
,其输出是
,表示从每个编码器块的输入到输出都有一个完整的相同路径,其中layernorm()表示层归一化,编码器块的总数为1。最后得到context和query的encoder表示。
2.3. 上下文–查询注意层(Context-Query Attention Layer)
将上一层得到的context和query的encoder表示来计算上下文–问题注意(context-to-query attention)矩阵和问题–上下文注意(query-to-context attention)矩阵。分别使用
和
来表示编码后的上下文和查询,其中
、
。上下文–查询的注意力机制构建如下:先计算上下文(context)和问题(query)之间的相似度,得到一个相似性矩阵
,
。其中相似度计算公式如(3.3):
. (3.3)
、
分别为单个单词的中间表示,
是一个可训练参数,
是矩阵点乘。接着对
的每一行应用softmax函数进行归一化,得到一个矩阵
。接下来计算上下文–查询的注意力矩阵为公式(3.4),查询–上下文的注意力矩阵为公式(3.5):
, (3.4)
. (3.5)
2.4. 模型编码层(Model Encoder Layer)
该结构由3个模型编码块组成,每个模型编码块由7个编码器块堆叠而成,3个模型编码块之间共享参数。该层的每个位置上的输出分别是
,其中
和
分别是注意力(attention)矩阵
和
的行,
表示上下文向量,
为矩阵点乘运算。该层的参数与嵌入编码层相同,但每块中的卷积层数为2。
2.5. 输出层(Output Layer)
在模型的输出层中,最后的输出为预测答案的起始位置信息和结束位置信息。在这使用上下文每个位置的起始点和结束点的概率作为答案起始和结束的跨度,起始点和结束点的概率分别记为
和
,计算的概率公式如下:
, (3.6)
(3.7)
其中
、
是可训练的权重矩阵,
、
、
分别是结构图中三个模型编码器从底至顶的输出。模型的目标函数如下公式:
(3.8)
其中
和
分别是示例
的真实开始和结束位置,
包含所有可训练变量。
3. 模型改进
信息熵(Information Entropy)是信息论中的一个概念,用于量化概率分布的不确定性程度。其对应公式如下:
, (4.1)
其中,
表示随机变量
的熵,
表示随机变量
取的第
个值的概率。信息熵用来量化概率分布的不确定性程度:当概率分布越均匀(即不确定性越高)时,其熵值就越大;当分布越集中(确定性越高)时,其熵值就越小。
信息熵作为一种基础性的不确定性度量工具,其应用早已超越了信息论的范畴,广泛渗透到计算机科学、统计学、决策科学等多个领域,用于解决模式识别、模型校准和决策优化中的核心问题:
1) 计算机视觉(CV)领域,信息熵被用于图像分割(如基于区域熵的阈值分割)以量化图像区域的复杂性和信息量,指导分割边界的选择;在目标检测与分类中,模型预测概率的熵常被用作置信度估计,低熵值通常对应高置信度的预测结果,辅助决策或进行不确定性感知的模型集成。
2) 在推荐系统(RS)中,信息熵被用来衡量用户兴趣分布的多样性或物品流行度分布的均匀性。优化推荐列表的信息熵(例如,在保证准确性的前提下最大化列表熵)是解决“信息茧房”效应、提升推荐多样性和用户体验的关键策略之一。
3) 金融风险管理领域,信息熵被用于量化投资组合的风险(分布不确定性)和市场波动性。最小化投资组合收益分布的熵或利用熵作为约束条件,是构建稳健投资策略的重要手段。
4) 在医学图像分析(如放射组学)中,图像纹理特征的信息熵被用来表征组织结构的异质性或复杂性,常作为重要的生物标志物用于疾病诊断和预后评估。
5) 在模型校准(Model Calibration)研究中,信息熵是评估预测概率分布是否真实反映模型置信度的重要指标。一个校准良好的模型,其预测概率的分布(尤其是在不同置信度区间)应与其预测准确性相匹配,而信息熵则提供了对预测分布整体“紧致度”或“模糊性”的量化视角。正则化技术(如标签平滑)或后处理方法(如Platt Scaling, Temperature Scaling)常常隐式或显式地影响着模型输出的熵。
我们对QANet模型进行细致研究发现模型在损失计算中使用的是单一的交叉熵损失函数(Cross Entropy Loss),这种设计虽然能够有效地衡量预测分布与标签之间的差异,但在训练过程中一定程度上忽略了答案分布的全局一致性,导致模型预测的结果置信度无法达到最优以及无法充分地平衡答案预测的精准性。通过分析发现,这种单一损失机制存在两个关键问题:
1) 全局一致性监督不足:交叉熵损失函数仅关注预测分布与真实标签之间的差异,缺乏对预测结果全局分布一致性的监督,可能导致模型在训练过程中产生过度自信或置信度不足的预测。
2) 信息不确定性约束不足:在面对模糊样本时,交叉熵损失函数未能有效约束输出概率分布的信息不确定性,导致预测概率可能呈现多峰分布而缺乏决策性。
为了解决上述问题,我们引入信息熵作为正则化项,构建一个新的损失函数:
. (4.2)
公式(4.2)中的
和
分别是信息熵
和交叉熵
的系数。我们使用交叉验证的方法,尝试不同的系数组合执行交叉验证过程,记录每个系数组合在测试集上的平均损失和评判指标以确定信息熵
和交叉熵
的系数。这种将信息熵作为正则化项加入损失函数中的创新性设计在模型的损失计算层面实现了双重优化目标:(1) 交叉熵对真实标签的拟合能力:交叉熵损失函数确保模型能够有效地拟合真实标签的概率分布。(2) 信息熵对预测分布不确定性的约束:信息熵正则化项通过最小化预测分布的不确定性,提高模型置信度的概率分布。这种设计实现了模型校准与决策置信度的平衡优化:在模型参数更新过程中,信息熵正则化项通过控制概率分布的信息密度,使得神经网络结构在特征空间中构建更具判别力的决策边界,提升了模型预测结果的置信度,让模型在答案预测的精确性与多样性之间实现了更好的平衡。
4. 实验结果与分析
为了验证所提出的融合交叉熵与信息熵的混合损失函数对QANet模型性能的影响,我们在斯坦福大学发布的SQuAD 1.1数据集上进行了实验。该数据集包含超过10万个问题–答案对,覆盖了多种主题,确保了数据的广泛代表性和语义丰富性。我们采用精确匹配(Exact Match, EM)和F1得分作为评估指标,分别衡量预测答案与标准答案的一致程度及部分匹配的语义重叠率。
4.1. 实验配置
实验环境:操作系统为Windows11,深度学习框架TensorFlow版本为tensorflow-1.5.0。CPU为Intel(R) Xeon(R) W-2245 CPU @ 3.90 GHz,内存16 GB。
超参数:由于受硬件资源的限制,我们并没有选择原QANet模型的参数配置,根据硬件资源,最后选择的参数见表1。
Table 1. Hyperparameter settings
表1. 超参数设置
参数 |
参数值 |
batch-size |
32 |
num-steps |
35,000 |
dropout |
0.1 |
learning-rate |
2e−3 |
hidden |
96 |
num-heads |
1 |
optimization |
Adam |
4.2. 实验结果分析
实验1:首先,通过固定交叉熵损失系数为1,探讨不同信息熵系数(范围从0到−1)对模型性能的影响。表2展示了不同信息熵系数下的EM/F1得分。
Table 2. Performance comparison of different entropy coefficients
表2. 不同信息熵系数性能比较
信息熵系数 |
EM/F1 |
0 (基准模型) |
68.8/78.4 |
−0.6 |
68.8/78.6 |
−0.8 |
68.7/78.7 |
−0.9 |
69.2/78.9 |
−1.0 |
68.8/78.3 |
结果显示,当信息熵系数从0降至−0.9时,F1得分上升至78.9,EM得分提高至69.2,表明适当的信息熵约束有助于提升模型泛化能力。然而,当信息熵系数进一步降低至−1.0时,F1得分反而下降至78.3,这可能是由于过度平滑导致模型无法有效捕捉关键特征信息,出现了欠拟合现象。
实验2:不同于实验1固定交叉熵系数,我们同时调整交叉熵和信息熵的比例系数,探究其对模型性能的影响。表3列出了不同比例系数组合下的实验结果。
Table 3. Model performance with different entropy coefficients
表3. 不同熵系数模型性能
交叉熵/信息熵系数 |
EM/F1 |
1/0 (基线模型) |
68.8/78.4 |
0.8/−0.8 |
68.8/78.5 |
1.2/−0.6 |
68.7/78.5 |
1.2/−0.8 |
69.0/78.6 |
1.2/−0.9 |
68.7/78.3 |
表3列出了不同比例系数组合下的实验结果。其中,当交叉熵系数为1.2且信息熵系数为−0.8时,模型达到了最佳性能,F1得分为78.6,较基线模型提高了0.2。这表明合理调节交叉熵与信息熵的比例能够增强两者的协同作用,进而提升模型的整体表现。而当交叉熵系数过低(如0.8)或信息熵系数过高(如−0.9)时,模型性能均有所下降,说明两者之间存在一个平衡点,需谨慎选择合适的比例系数。
综上所述,通过在损失函数中引入信息熵约束项,不仅能有效提升QANet模型在SQuAD 1.1数据集上的EM和F1得分,还能增强模型对复杂语义推理的敏感性,减少预测过程中的不确定性。未来工作将进一步探索动态调节熵系数的方法,以期在更广泛的MRC任务中验证该方法的有效性。此外,还将尝试构建跨模块联合优化框架,以期实现更高的语义解析精度和更强的数据噪声抵御能力。这些努力有望推动机器阅读理解技术的发展,使其更加智能、可靠。
5. 结论与期望
本文围绕机器阅读理解任务中的QANet模型优化,针对传统单一交叉熵损失函数可能导致的答案分布不确定性问题,提出了一种融合交叉熵与信息熵的混合损失函数。通过在损失函数中引入信息熵约束项,有效提升了模型对答案位置的预测精度和概率分布的置信度,从而提高了模型的整体性能。实验结果表明,在SQuAD 1.1数据集上,改进后的模型F1得分和精确匹配(EM)均得到显著提升,最佳策略使F1得分提高0.5、EM提高0.4。这不仅验证了使用交叉熵与信息熵混合损失函数的有效性,也为后续研究提供了新的思路。
未来的研究可以从以下几个方面进一步探索:首先,可以尝试开发一种动态调节熵系数的方法,让模型在训练过程中根据具体情况自动调整熵系数,以达到更优的性能;其次,将提出的改进损失函数应用于其他类型的MRC任务,如多跳问答和篇章推理等,验证其通用性和有效性。此外,还可以考虑构建一个跨模块联合优化框架,结合注意力机制设计动态自适应损失函数策略,以及研发面向对抗样本的鲁棒性训练范式,通过结构化正则化方法提升模型的容错能力。
NOTES
*通讯作者。