【论文阅读】D18-1274——GEC模型优化的一种方法:使用质量评估模型

GEC的效果依然很差,所以有些人开始思考避免盲目调参地如何提升模型效果。

一个很直观的方法是观察模型输出与真人标注的区别,因此引出Quality Estimation(质量评估)。

本文同样来自https://nlpprogress.com/english/grammatical_error_correction.html当前第五名的报告。

Neural Quality Estimation of Grammatical Error Correction

【摘要】
1. GEC系统在实践中总是出现虚假纠错的问题, 因此无法纠正很多错误, 从而误导学习者;
2. 我们第一次提出神经方法来自动化对不使用任何手动特征的GEC的输出进行质量评价(Automatic Quality Estimation, QE);
3. 我们的系统是在一个有监督的模式下:  学习者句子与对应的GEC系统带质量评分标签(这是由人类标注参考)的输出;
4. 我们的对于GEC的神经质量评估模型在有力的基于特征(strong feature-based)的baseline基础上取得了显著的提升;
5. 我们同样证明了一个先进的GEC系统可以进一步改善, 如果质量评分被用作特征来进行N-best候选排序;

# 1 Introduction 引入
1. GEC是用于帮助人学习的;
2. 最先进的GEC系统也只有不到0.7的Precision与0.4左右的recall(在benchmark数据集上);
3. 事实上GEC很难, 因为语法错误的类型多且很复杂;
4. 本文我们提出神经方法来自动化对GEC输出进行质量评估;
5. 评估语言输出可以从一下几个方面来做:
  - 流畅通顺(fluency);
  - 语法性(grammaticality);
  - 用词恰当(adequacy);
  - 后期编辑(post-editing effort);(???)
6. 常见的评估方法: 
  - MaxMatch;
  - M^2;
  - GLEU;
  - 对于post-editing还没有评价方法;
  - 对于其他三个是有一些评价方法的;
7. 本文的贡献:
  - 我们提出了第一个用于GEC系统输出QE的监督方法;
  - 我们展示了神经QE模型是表现得很好的(相对于strong feature-based的baseline)在post-editing effort中;
  - 我们提出一个心的CNN架构对于QE, 这种架构可以迁移到用于其他语言应用的QE中;
  - 我们证明了一个先进的GEC系统可以进一步改善, 如果质量评分被用作特征来进行N-best候选排序;

# 2 Related Work 相关工作(感觉这部分很难翻译)
1. QE在机器翻译(Machine translation, MT)中变得流行;
2. 为了评价GEC系统, 有人提出了基于语法的评价指标(grammaticality-based metrics, GBMs), GBMs知识单纯的考虑输出是否独立的符合语法;
3. 之后有人改进GBMs通过考虑流畅通顺(fluency);
4. 与过往GEC中使用reference-less的评估, 我们的工作旨在评估post-editing effort, 就翻译错误率与一个自动评价指标而言;
5. 我们提出predictor-estimator架构的变体以及将他们与strong feature-based baseline对比;

# 3 Quality Estimation of GEC 质量评估
1. GEC的QE定义: 给定原句子S与对应的GEC系统纠正的假设H, 我们去估计一个质量评分q^;
2. 我们将GEC的QE任务作为一个有监督的回归任务来预测质量评分;
3. q^ = f(S,H,θ), θ是参数, 通过一个学习者写得句子集与它们对应的纠正假设集合来训练得到;
4. 注意GEC系统对于QE是完全的黑箱子, 即GEC的模型score与内部状态对于QE都是未知的;
5. QE的黄金法则是比较系统输出与真人输出;
6. 我们主要是对评估post-editing effort对于纠正输出的句子, 评估方法是使用HTER(Human-targeted translation Error Rate)
  - HTER是需要用来从假设句子到参考句子变化需要使用的最小次数的编辑操作(插入,删除,替换,改变序列单词顺序等);
  - HTER = 编辑次数/参考tokens的数量;
  - 显然HTER指标越低, post-editing effort越少;
7. 我们也测试了MaxMatch与M^2两种评估方式, M^2是在GEC中最广泛使用的评估方式, 用于计算系统短语级别编辑的F0.5-score;

# 4 Neural Quality Estimation Model 神经质量评估(NQE)模型
1. NQE架构: predictor-estimator架构, 对回归函数f建模;
  - 这种模型的循环变体在WMT2016, WMT2017中句子级别的QE任务;
  - 这种模型的关键之处在于使用了一个初步的predictor神经网络, 用于训练"word prediction"任务;
    + 比如给定原句预测目标句子中单词的概率, 以及在目标句子中保留的目标上下文单词(???);
	+ predictor网络是通过巨大的平行文本(学习者语句<->人类纠正标注)训练;
	+ predictor网络输出到estimator网络, 来计算原句子S与对应的系统假设H的评分q^;
	+ 质量向量(quality vectors): predictor网络的隐藏表示, 包含了假设单词的质量信息, 将被输入到estimator网络中;(定义???)
	+ esitimator网络是使用学习者语句与它们对应的GEC系统纠正假设训练;
	+ RNN与CNN应用与以上两个网络

## 4.1 Predictor Network 预测网络
1. 输入: 原句S={s(1),s(2),...,s(m)}, 目标句T={t(1),t(2),...,t(n)};
2. 输出: softmax概率得分在目标词汇表上(这恐怕也太夸张了...)
  - p(t|S,T(-j)) = [exp(o(j,t))] / [∑_t'∈Vt (exp(o(j,t')))]
    + T(-j)指从T集合中去除t(j)得到的集合;
	+ o(j,t)是当t(j)正在被预测时, predictor网络中对应单词t的输出向量o(j)∈R^(|Vt|);(???)
  - 预测网络评估输出概率用的也是针对seq2seq的encoder-decoder神经网络;
    + 传统的encoder-decoder模型在原句上使用双向RNN, 目标侧使用一个前向RNN来捕获目标上下文中在预测单词之前的所有目标文本;
	+ 预测网络还额外使用一个后向RNN来捕获预测单词后的所有目标文本;
  - 就QE而言, 目标句子是完全可以获得的, 而翻译中你只能获取到已经预测出的目标单词;
  - GRUs常用;
  - CNNs有用: 本文中使用了两个CNN:
    + 第一个CNN使用k-1个pre-padding(在开头padding), k是卷积核的宽度, 这可以确保对应前一个目标单词的解码状态不会包括目标单词本身(预测陷阱);
	+ 第二个CNN也使用k-1个pre-padding(同样的理由), 
	+ 两个CNN都使用了分离的多步注意力机制(separate multi-step attention mechanisms);
  - 对于目标单词t(j), 附近两个单词向量t(j-1),t(j+1)也被用了一个maxout non-linearity(???);
  - predictor网络的损失函数是对数似然函数;
3. 架构: 详见Figure1;
4. 质量向量(Quality-Vectors):
  - 训练与测试estimator时, 从predictor网络获得的内部隐层表示对于每个假设单词, 被称为质量向量;
  - 每个QV: q(j)∈R^(h) 与一个假设单词t(j)对应, q(j) = h(j)⚪Transpose(W(t(j)))
    + h(j)∈R(h)是最后一个隐层向量在maxout layer之后(详见Figure1);
	+ w(t(j))是对应目标单词t(j)的列向量, 在最后一个线性变换矩阵W∈R^(h×|Vt|), 详见Figure1, 它将h(j)映射到|Vt|大小的向量, ⚪表示矩阵对应元素相乘;

## 4.2 Estimator Network 评估网络
1. 输入: 质量向量, 质量评分作为标签来训练;
2. 网络具体如何详见论文, 不赘述, 记录几个要点(主要我觉得本文的方法不主流, 是事后优化用的):
  - CNN;
  - GRU;
  - 残差连接;
  - Figure2绘制了质量向量-->质量评分的过程: (之后注意复现)
    + 质量向量 --> CNN --> ReLU --> 隐层(该隐层与质量向量进行残差连接) --> Attention Pooling --> ReLU --> softmax --> 质量评分
	
# 5 Experimental Setup 实验
## 5.1 GEC System 语法错误改正系统
1. 数据集: Lang-8用于训练一个CNN的GEC模型来预训练词向量;
2. 好像别的也没什么好说的;

## 5.2 Datasets 数据集
1. 为了训练QE模型, 我们使用NUS语料库(NUCLE), FEC(First-Certificate-Examination);
2. 其他一些数据集大致类似其他报告;

## 5.3 NQE Models and Training 模型训练
1. 我们建立NQE模型的变体: 用NQE(X,Y)表示
  - X表示predictor架构;
  - Y表示estimator架构;
  - X,Y的取值主要是RNN(R)与CNN(C); 
  - 因此一共四种不同的变体;

## 5.4 Baselines 基线
1. AVERAGE & QUEST;
2. 略: 别人的baseline不重要;

## 5.5 Evaluation 评估
1. PCC用于WMT-shared-tasks;
2. MAE;
3. RMSE;
4. 2 3两种的问题: 在尾部分布的表现很差, 而1没有这种困扰;

# 6 Experiments and Results 实验结果: 略, 详见图表, 总之效果很好就对了
## 6.1 Estimating Post-Editing Effort
## 6.2 Estimating M^2 Score
## 6.3 Improving GEC Performance

# 7 Discussion and Analysis 讨论分析
1. 我们的结果表示在GEC的QE中NQE模型比feature-based的baseline更好;

# 8 Conclusion and Future Work 总结与展望
1. 略


发布了40 篇原创文章 · 获赞 133 · 访问量 44万+

猜你喜欢

转载自blog.csdn.net/CY19980216/article/details/103689593