38、问答生成模型的实验研究与性能分析

问答生成模型的实验研究与性能分析

1. 数据集与实验设置

在本次实验中,使用了SQuAD和MARCO两个常用于阅读理解任务的数据集。对混合问答生成(QG)模型在SQuAD上进行预训练,然后在MARCO数据集上进行微调与测试。
- 数据集划分 :在SQuAD中,将开发集随机分为两部分作为开发集和测试集,训练集、开发集和测试集分别包含86,635、8,965和8,964个问答对;而MARCO数据集的训练集、开发集和测试集分别有74,097、4,539和4,539个问答对。
- 特征提取 :对于SQuAD数据,直接使用周等人提取的共享特征;对于MARCO数据,利用斯坦福CoreNLP提取词汇特征。

以下是实验的具体实现细节和评估指标:
| 参数设置 | 详情 |
| ---- | ---- |
| 输入句子截断长度 | 100个单词 |
| 词嵌入初始化 | 300维预训练Glove词向量 |
| 词汇表 | 每个训练集中最常见的20,000个单词,问题词词汇表有20个单词 |
| 编码特征嵌入维度 | 答案位置特征和词汇特征随机初始化为32维 |
| 编码器和解码器隐藏状态维度 | 512 |
| 答案与其他标记相对距离范围及嵌入大小 | 0 - 80,嵌入大小为16 |
| 优化算法 | Adagrad,学习率0.15,初始累加器值0.1,批量大小64 |
| 梯度裁剪 | 最大梯度范数为2 |
| 模型保存频率 | 每8分钟保存一次完整模型 |
| 合成数据生成参数 | k = 2 |
| 评估模型数量 | c = 8 |
| 检查点平均选择模型数量 | b = 5 |
| 评估指标 | BLEU分数 |

2. 实验模型

本次实验涉及以下几种模型:
1. 基线模型(Baseline) :一个序列到序列模型,在嵌入层添加了特征嵌入,并在SQuAD上进行训练。
2. 基线模型+微调(Baseline+Fine - Tuning) :使用SQuAD和MARCO训练集的合成数据,通过算法1对基线模型进行微调。
3. 基线模型+微调+检查点平均(Baseline+Fine - Tuning+Checkpoint - Averaging) :对微调后的基线模型应用算法2。
4. 混合模型(Hybrid model) :基于SQuAD训练的答案聚焦和位置感知模型,编码器与基线模型相同,但解码器包含三个预测器。
5. 混合模型+微调(Hybrid+Fine - Tuning) :根据微调基线模型的合成数据和算法1对混合模型进行微调。
6. 混合模型+微调+检查点平均(Hybrid+fine - tuning+Checkpoint - averaging) :对微调后的混合模型应用算法2。

mermaid流程图如下:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

    A(基线模型):::process --> B(基线模型+微调):::process
    B --> C(基线模型+微调+检查点平均):::process
    D(混合模型):::process --> E(混合模型+微调):::process
    E --> F(混合模型+微调+检查点平均):::process
3. 主要实验结果

以下是在MARCO测试集上的主要实验结果:
| 数据集 | 模型 | BLEU1 | BLEU2 | BLEU3 | BLEU4 |
| ---- | ---- | ---- | ---- | ---- | ---- |
| MARCO | 基线模型(Sun等人2018) | 44.45 | 31.85 | 23.32 | 17.90 |
| MARCO | 基线模型D | 39.02 | 21.76 | 13.45 | 8.85 |
| MARCO | 基线模型F - K2 | 53.61 | 35.96 | 25.94 | 19.49 |
| MARCO | 基线模型F - K2 - CA | 54.85 | 37.89 | 27.40 | 20.60 |
| MARCO | 混合模型(Sun等人2018) | 48.24 | 35.95 | 25.79 | 19.45 |
| MARCO | 混合模型D | 38.67 | 22.17 | 14.05 | 9.33 |
| MARCO | 混合模型F - K2 | 54.24 | 36.88 | 26.71 | 20.07 |
| MARCO | 混合模型F - K2 - CA | 54.39 | 37.37 | 27.29 | 20.76 |

从结果中可以得出以下结论:
- 仅在SQuAD训练集上训练的基线模型和混合模型,直接应用于MARCO测试集时,性能会下降,BLEU4分数分别为8.85和9.33。
- 对基线模型和混合模型在SQuAD和MARCO训练集的合成数据上进行微调后,在MARCO测试集上的BLEU4分数显著提高,分别达到19.49和20.07,超过了直接在MARCO数据集上训练的混合模型的结果。
- 检查点平均方法能够进一步轻微提升微调后的结果,基线模型和混合模型分别提升了1.11和0.70。
- 在所有情况下,混合模型的性能都优于基线模型,表明混合模型在问答生成和迁移学习任务中更有效。

问答生成模型的实验研究与性能分析

4. 消融研究

为了更好地理解训练过程中的各种设置对整体性能的影响,进行了以下消融研究:

4.1 模型微调

为了观察微调训练过程中合成数据集的构成如何影响模型在MARCO测试数据集上的性能,从SQuAD训练数据集中分别构建k = {0, 2, 4}的小批量数据,与MARCO训练数据集中的每个合成小批量数据一起,分别对基线模型和混合模型进行微调。结果如下表所示:
| 数据集 | 模型 | 微调设置 | BLEU1 | BLEU2 | BLEU3 | BLEU4 |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| MARCO | 基线模型F - K4 | K = 4 | 54.28 | 36.46 | 26.09 | 19.52 |
| MARCO | 混合模型F - K4 | K = 4 | 53.25 | 36.04 | 26.09 | 19.62 |
| MARCO | 基线模型F - K2 | K = 2 | 53.22 | 35.77 | 25.81 | 19.57 |
| MARCO | 混合模型F - K2 | K = 2 | 54.24 | 36.87 | 26.71 | 20.07 |
| MARCO | 基线模型F - K0 | K = 0 | 54.65 | 37.17 | 26.69 | 19.89 |
| MARCO | 混合模型F - K0 | K = 0 | 54.37 | 37.03 | 26.74 | 20.11 |

从结果可以看出,三种模型都取得了不错的结果,甚至超过了直接在MARCO数据集上训练的原始模型的结果。并且,随着来自MARCO的数据比例增加,性能持续提升,这证实了知识具有领域特殊性,从SQuAD获得的通用知识可以帮助模型在MARCO数据集上表现更好。

4.2 检查点平均

由于合成数据可能存在噪声,而像Dropout这样的正则化方法无法克服过拟合问题,因此对微调后的基线模型和混合模型应用检查点平均方法。设置c = 8和b = 5,并且所有选择的检查点都以1小时的间隔保存。结果如下表所示:
| 数据集 | 模型 | 检查点平均设置 | BLEU1 | BLEU2 | BLEU3 | BLEU4 |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| MARCO | 基线模型F - K4 - CA | c = 8和b = 5 | 54.60 | 37.11 | 26.82 | 20.25 |
| MARCO | 混合模型F - K4 - CA | c = 8和b = 5 | 54.71 | 37.49 | 27.29 | 20.61 |
| MARCO | 基线模型F - K2 - CA | c = 8和b = 5 | 54.85 | 37.89 | 27.40 | 20.60 |
| MARCO | 混合模型F - K2 - CA | c = 8和b = 5 | 54.39 | 37.37 | 27.29 | 20.76 |
| MARCO | 基线模型F - K0 - CA | c = 8和b = 5 | 55.00 | 37.70 | 27.11 | 20.28 |
| MARCO | 混合模型F - K0 - CA | c = 8和b = 5 | 54.63 | 37.45 | 27.18 | 20.50 |

当k从4设置为2时,微调后的基线模型和混合模型在BLEU4上的性能有所提升;当k = 0(即不将SQuAD数据混入合成数据)时,模型性能略有下降。尽管如此,检查点平均方法仍然有助于提升性能,在不同k值下,基线模型和混合模型的BLEU4分数都有一定程度的提高。

mermaid流程图如下:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

    A(原始模型):::process --> B(微调模型):::process
    B --> C{k值选择}:::process
    C -->|k = 0| D(微调模型F - K0):::process
    C -->|k = 2| E(微调模型F - K2):::process
    C -->|k = 4| F(微调模型F - K4):::process
    D --> G(检查点平均模型F - K0 - CA):::process
    E --> H(检查点平均模型F - K2 - CA):::process
    F --> I(检查点平均模型F - K4 - CA):::process
5. 错误分析

在这部分,提供了MARCO测试数据集中的一些实例,以及基线模型和混合模型在以下三种情况下生成的问题:(1)直接应用模型;(2)以k = 2进行微调;(3)在微调模型中使用检查点平均方法。通过分析这些实例,为该任务的进一步研究提供指导。

5.1 实例一
描述 内容
上下文 你可以在心绞痛发作开始时立即使用硝酸甘油喷雾剂来缓解疼痛,或者在可能引发心绞痛的事件(如体力劳动、情绪压力或暴露于寒冷环境)之前立即使用以预防发作。
答案 硝酸甘油喷雾剂用于在心绞痛发作开始时立即缓解疼痛,或在可能引发心绞痛的事件之前立即使用以预防发作。
参考问题 硝酸甘油喷雾剂用于什么?
直接应用 - 基线模型 [UNK]的用途是什么?
直接应用 - 混合模型 甘油喷雾剂的用途是什么?
微调(k = 2) - 基线模型 如何缓解[UNK]硝酸酯喷雾剂?
微调(k = 2) - 混合模型 如何缓解硝酸酯硝酸酯?
检查点平均 - 基线模型 如何预防心绞痛硝酸酯?
检查点平均 - 混合模型 硝酸甘油有什么作用?

在这个例子中,“glyceryl”和“trinitrate”是未登录词(OOV),影响了模型从上下文中生成单词。基线模型及其微调模型使用了UNK标签,检查点平均后的微调基线模型选择了不相关的单词“angina”来填空。而混合模型的复制机制能够选择正确的OOV单词来生成问题,但微调后的混合模型在应用检查点平均方法后,仍然遗漏了关键单词“spray”,表明模型尚未完全理解“glyceryl trinitrate spray”应作为一个整体。

5.2 实例二
描述 内容
上下文 亚麻布是一种天然纤维,由亚麻植物的茎制成。在欧洲,它被认为是质量最好的织物。欧洲人长期以来一直喜欢用亚麻布做床单,因为它具有惊人的特性。它使用和洗涤得越多就越柔软,非常耐用,如果保养得当,可以使用几十年。
答案 它使用和洗涤得越多就越柔软,非常耐用,如果保养得当,可以使用几十年。
参考问题 为什么使用亚麻布?
直接应用 - 基线模型 亚麻布的用途是什么?
直接应用 - 混合模型 为什么亚麻布在欧洲被重视?
微调(k = 2) - 基线模型 亚麻布用于什么?
微调(k = 2) - 混合模型 亚麻布用于什么?
检查点平均 - 基线模型 亚麻布用于什么?
检查点平均 - 混合模型 亚麻布用于什么?

在这个例子中,答案范围是对原因的解释,这使模型混淆,触发了错误的疑问词“what”而不是“why”,并且关键上下文短语“because of”离答案较远。除了OOV单词和这个因素可能导致生成不匹配的疑问词外,一些情况还归因于语义歧义。同时,语言的多样性导致了同义词和表达方式的存在,如“where … located”和“what continent …”、“what kind of …”和“what type of …”等,这些在语义上相似,不应被视为错误结果。

6. 总结

通过对答案聚焦和位置感知神经网络模型应用微调与检查点平均这两种迁移学习方法,并与原始混合模型和基线模型进行对比,发现微调后的混合QG模型在目标领域数据集上显著优于现有先进系统。检查点平均算法进一步对微调后的基线模型和混合模型进行了轻微改进。此外,混合模型在问答生成和迁移学习任务中表现更优。消融研究和错误分析为该任务的进一步研究提供了有价值的参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值