前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AI,又一领域超过人类水平

AI,又一领域超过人类水平

作者头像
CodeInHand
发布2018-08-15 17:39:03
6260
发布2018-08-15 17:39:03
举报
文章被收录于专栏:Pytorch实践Pytorch实践

语法改错是一个大家比较陌生的领域,大致可以认为对英文进行语法改错。给定一句带有语法错误的话,AI对其进行修正得到正确的语法表示。最近微软亚洲研究院给出论文称当前Deep Learning模型已经超过人类水平。具体论文参考(论文地址:https://arxiv.org/abs/1807.01270)

Reaching Human-level Performance in Automatic Grammatical Error Correction: An Empirical Study

常见的语法错误归纳为如下列表:(具体包括动词时态、情态动词、代词错误、冠词使用错误等)

对于语法改错任务,已有的方法一般包括两种:(1)基于分类,先找到错误类型再修改;(2)基于翻译模型,认为有错误的句子为源句子,正确的句子为目标句子。上文就沿用了Seq2Seq的翻译模型,模型结构依旧沿用微软自己的ConvSeq2Seq,具体结构图如下所示:

由于目前的语法改错都存在两个问题:(1)受到训练数据的影响,训练数据中没有见过的语法错误,不能很好地改正;(2)多个错误同时存在的时候,很难做到一次全部都修正。微软的论文在这两个方面做了很好的改进。如下图描述Seq2Seq语法改错过程,Single-round的inference难以改正多处错误。

针对问题(1),文章给出fluency boost learning方案,即在训练过程增加数据,让模型能够看到更多的错误,增强模型的泛化能力。

文章定义流畅度指标如下:

式子中的P表示语言模型计算得到的句子概率。f(x)越大说明这一句子越流畅。

文中提出了三种fluency boost learning的方案,均可以理解为找到流畅度小于正确句子的生成句子,用于数据补充。

A. Back Boosting

通过自定义一个Seq2Seq的错误生成模型,即将原来改错数据进行倒序,用正确的句子生成错误的句子。然后再在生成的句子中挑选流畅度比正确句子低的句子保留。然后再与正确句子构建pair用于改错模型的训练。(本质依然是增添训练数据,让模型见到更多的错误)。

B. Self Boosting

self-boost方法不用额外定义一个错误生成模型,而是使用自身的生成模型,每次挑选top k个生成句子与正确句子进行比较,如果流畅度较低即保留用于训练数据的补充。

C. Dual Boosting

Dual模型实质是将back boost和self boost进行融合的过程。需要说明的是,模型是同时进行训练。

针对问题(2),文章给出boost inference方案;即预测过程进行增强,主要包括两个方面:一是多轮预测;二是循环预测。

A. multi-round

由于句子中出现多个错误时,不能一次进行改错。需要进行多轮修改。根据定义的流畅度指标,只有当流畅度不再增强时,就不再进行下一轮的语法纠错。

B. round-way

分别定义两个解码器,一个从右至左进行解码,另一个从左到右进行解码。right-to-left能够很好的解决冠词错误的问题(只有知道右边的名词才能确定冠词形式),而left-to-right能够解决主谓一致的问题(只有知道主语,才能确定谓语形式)。

结果说明

使用的测试数据集包括CoNLL-2014,CoNLL-10, JFLEG test,测试指标GLEU为BLEU的改进版本,F0.5可以理解为MaxMatch量。具体结果如下:

与人类语法改错水平进行比较

无论是在F0.5还是GLEU指标上,该系统语法纠错的效果均超过了人类水平。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CodeInHand 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Reaching Human-level Performance in Automatic Grammatical Error Correction: An Empirical Study
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档