前言
自从上次记录已经过去了一个月,整个课题进展不大。原因一个是暑期有点摆,另一个是关系抽取确实比较繁琐。不管怎么说,来记录下吧。
NER 数据集下的模型训练
首先需要声明的是该阶段的模型不参与于最后 KG 的构建,目的仅仅是跑通模型训练、验证的过程,为后续阶段提供便利。
NER 数据集
该部分信息在完成 RE 部分后可能会发生些微变动,仅作参考,后续会做调整。
共标记5147条中文语句,实体共标注1472个。
下面是各个标签下的数量统计:
Label | Count |
---|---|
TECH | 388 |
COMP | 382 |
STOR | 170 |
DATA | 133 |
INST | 105 |
ARCH | 71 |
IO | 61 |
PERF | 54 |
PROG | 52 |
CORP | 17 |
ALG | 16 |
PROT | 15 |
PER | 4 |
GRP | 4 |
模型选择
模型有两大类:
- 传统深度学习方法
- CNN-CRF
- BiLSTM-CRF
- BERT 系预训练模型,输出层为 CRF 或 MLP+Softmax
- BERT:BERT 是一个双向 Transformer 模型,通过掩码语言模型(Masked Language Model, MLM)和下一句预测(Next Sentence Prediction, NSP)任务进行预训练
- RoBERTa:RoBERTa 是对 BERT 的优化版本,移除了 NSP 任务,并采用了动态掩码策略
- ALBERT:ALBERT 是 BERT 的轻量级版本,通过参数共享和嵌入参数因子化来减少模型大小
- XLM-RoBERTa:XLM-RoBERTa 是针对多语言的预训练模型,基于 RoBERTa 和 XLM 的结合
这里选择的是 XLM-RoBERTa,预训练模型选择的是 FacebookAI/xlm-roberta-large-finetuned-conll03-english · Hugging Face
模型代码如下:
|
|
训练过程
- 初始化 DataLoader、Tokenizer ;
- 修改 Model Config、Training Params ;
- 初始化 Model,启动训练 Loop 。
以下是本次训练所选取的各项参数:
Loss 函数的计算方式在代码中:
|
|
Optimizer 选择的是 AdamW,同时运用了 Learning Rate Scheduler 来完成暖机。
验证结果
关于这部分,数据不保证准确、全面,因此只作为参考,切勿用于其他用途。
只使用1000条小批次 NER 训练集,经过16轮训练后,各 base 模型在 NER 测试集上的泛化性能:
Model | Precision | Recall | F1 |
---|---|---|---|
BERT-CRF | 74.1% | 81.8% | 74.6% |
ALBERT-CRF | 70.7% | 73.4% | 68.6% |
XLM-RoBERTa-CRF | 88.1% | 95.4% | 90.3% |
各项数据都是 XLM-RoBERTa-CRF 大幅领先。
XLM-RoBERTa-CRF 所选取的预训练模型经过了 Facebook 团队在超过 2.5TB 的多语言大规模数据集上的训练,模型参数达 0.56B 。
关于这部分数据目前来看缺陷相当大:
- 数据不全:无法反映数据集的完整信息,模型也更容易出现过拟合、测试集泛化性能一般
- 模型选择不具有代表性:只有 BERT 系,没有其他结构类型的模型,如 CNN、BiLSTM 等
- 没有做消融实验:没有 Softmax、CRF 层的对比
- 性能指标选取以及模型性能差距过大:在做实验时,所选取的这些指标都是 Samples 上的,即整个数据集上的指标,不能完整反应模型性能。而且这些模型的性能差距不是在5个点内,都10个点往上了,所以仅作参考是没啥问题的
RE 数据集的构建
关系定义
关系名称 | 英文名称 | 说明 |
---|---|---|
包含 | contain | A 包含 B 的内容(单向) |
顺序 | sequence | 学习 A 前需先学 B,或学习 A 后支持 B(单向) |
同义 | synonymy | 名称不同但指同一内容(双向) |
相关 | related | A 与 B 存在相关性(双向) |
特性 | attribute | 包括功能、性能、方法等特点(单向) |
预标注前的准备工作
该部分信息在进行预标注过程中可能会发生变动,仅作参考,后续会做调整。
对302条文本进行了关系标注,其中184条用于训练、60条用于验证、58条用于测试。
下面是一个简单的统计:
Contain | Related | Attribute | Synonymy | Sequence |
---|---|---|---|---|
188 | 183 | 158 | 82 | 84 |
预标注
模型选择的 BiLSTM-MAML 。
MAML(Model-Agnostic Meta-Learning):是一种元学习算法,同样是一种 Few-Shot Learning 算法。核心思想是通过学习模型参数的初始值,使得模型能够在面对新任务时快速适应。
MAML 算法在使得模型快速适应的同时,也增加了训练阶段的计算量,这会导致训练时间的延长,不利于后续模型验证。所以决定选用结构更简单、同时性能较好的 BiLSTM 模型。
(模型的训练、标注效果)
NER-RE 数据集的构建
(暂定)
KG 的展示
(暂定)