机器学习100天论文阅读Machine Learning & Recommendation & NLP & DL

Pytorch学习记录-微软基于Seq2Seq的GEC(流畅度提

2019-05-12  本文已影响5人  我的昵称违规了

Pytorch学习记录-GEC语法纠错08
五月第二周要结束了,接下来的三个月主要是文献阅读,准备8、9月的开题报告,技术类的文献集中在GEC和Text maching的应用方面,读完之后找demo复现,然后应用。
理论方面的论文也都是英文的

7. Reaching Human-level Performance in Automatic Grammatical Error Correction: An Empiricale Study

这是微软亚洲研究院在2018年的一个报告,采用了一种全新的学习和推断机制,在CoNLL-2014以及JFLEG两个权威语法自动纠正评测数据集上,首次实现了机器语法自动检查结果超越人类参照水平。这项最新的语法改错技术也催生了“微软小英”作文打分这一全新的功能。

7.1 摘要

7.2 介绍

近些年Seq2Seq模型使得GEC得到极大的发展,但是大多数Seq2Seq模型都有两个问题:

为了解决这个问题,研究者开发了一个流畅度提升学习和推断机制

流畅度提升学习,Seq2Seq模型使用原始纠错句子和自己生成的流畅度较差句子进行训练,将它们与训练数据中正确句子配对,从而构建新的纠错句对。
模型的推断方面,流畅度提升推断机制能够允许模型对错误句子进行多轮纠错,只要每一次提议的编辑能够提升语句的流畅度。具有多重语法错误的句子,一部分错误会被优先修正,修正的部分能让上下文更加清晰(有利于接下来的语法纠错)。进一步提出了使用两个 seq2seq 模型进行往返纠错方法,其解码顺序是从左到右和从右到左的 seq2seq 模型。又因为从左到右和从右到左的解码器使用不同的上下文信息解码序列,所以它们对于特定的错误类型有独特的优势。往返纠错可以充分利用它们的优势并互补,这可以显著提升召回率。

7.3 背景:神经语法纠错

典型的基于NMT的GEC是使用Seq2Seq(encoder-decoder)结合attention机制的模型。

模型推断,输出的句子为x^o=(x_1^o,...,x_L^o),这一过程需要最大化下列公式。
P(x^o|x^r=\prod _{i=1}^LP(x_i^o|x^r,x^o_{<i}; \Theta_crt)

7.4 流畅度提升学习

用于GEC的常规seq2seq模型仅从原始纠错的句子对中学习模型参数。但是这种纠错后的句子对不够充分。许多神经GEC模型的概括性不是很好。GEC和NMT不同的地方时,它的最终目标是让句子更加通顺,而不用改变其原始含义。因此任何满足流利提升条件的句对都能够作为训练例子。
这里,研究者定义f(x)作为句子x的流利度得分。
f(x)=\frac {1}{1+H(x)}
H(x)=-\frac{\Sigma_{i=1}^{|x|}logP(x_i|x_{<i})}{|x|}

流畅度提升学习的核心是在训练中生成流畅度提升句对,在这里提供了三种流畅度提升学习策略:反向提升(back-boost)、自提升(self-boost)和双向提升(dual-boost)。


image.png

7.4.1 反向提升

7.4.2 自提升

7.4.3 双向提升

7.5 流畅度提升推断

7.5.1 多轮纠错

7.5.2 往返纠错

上一篇 下一篇

猜你喜欢

热点阅读