设计应用

基于Transformer模型的中文文本自动校对研究

作者:龚永罡,裴晨晨,廉小亲,王嘉欣
发布日期:2020-01-10
来源:2020年电子技术应用第1期

0 引言

    在如今信息量与日俱增的大数据时代,每天都会产生大量的文本信息,随之而来的文本校对任务也越来越繁重,传统的人工校对不仅校对周期长、劳动强度大,而且效率低,研究快速高效的自动校对方法是十分必要的。

    基于概率统计的中文文本校对方法通过构建混淆集,分析目标词语与其上下文词语的同现特征及搭配特征,判断哪些错误需要校对,并在混淆集中选取概率值最高的词语替换目标词语,从而进行文本校对[1]。然而,对于长距离的文本错误及语义错误,此类方法往往效果不佳。近年来,随着深度学习技术的快速发展,将深度学习技术应用于中文文本自动校对任务成为了一种新的发展方向。

    深度学习技术中的Transformer模型在Google于2017年6月发布在arXiv上的一篇文章《Attention is all you need》中提出[2],使用完全基于Self-Attention即“自注意力机制”的网络结构,抛弃了传统Encoder-Decoder即“编码器-解码器”模型必须使用RNN或CNN的固有模式[3]。本文首次将其应用于中文文本自动校对任务,实验结果表明该模型可以较好地解决中文文本自动校对中的远距离信息丢失问题,进一步提升校对性能。

1 背景

1.1 中文文本自动校对的国内外研究现状

    国外最早于20世纪60年代开始展开英文文本自动校对研究,发展至今,已取得突破性进展,拥有高准确率和高召回率的校对方法也已经应用到实际产品当中[4]。而国内关于中文文本自动校对的研究起步较晚,于20世纪90年代开始在国外对英文文本自动校对研究的基础上,进行中文文本自动校对技术研究[5]

    目前,国内对于中文文本自动校对技术的研究方法主要有以下3种:(1)基于规则或语言学知识的方法[6];(2)基于统计、概率的方法,如N-gram模型[7];(3)基于特征和Winnow学习模型,通过构造混淆集进行校对[8]。以上3种方法均为传统的中文文本校对方法[9],本文则是通过深度学习技术进行中文文本自动校对,而传统的深度学习技术通常采用RNN或CNN进行中文文本自动校对[10]

1.2 RNN与CNN在中文文本自动校对的局限性

    使用RNN进行中文文本自动校对任务时,通常采用双向RNN结构[11]。即通过一个RNN进行从左往右的压缩表示,另一个RNN进行从右往左的压缩表示,将两种压缩表示结合起来,作为最终序列的分布式表示。因为对序列中的元素按顺序处理,所以两个词之间的交互距离即相对距离。因此,RNN在长距离序列中存在信息丢失问题,即使是加入了门控机制的LSTM[12]和GRU,依然无法解决该问题。

    使用CNN进行中文文本自动校对任务时,一般使用多层结构来实现序列从局部表示到全局表示[13]。一个词首先会在底层CNN单元上与其距离较近的词产生交互,然后在稍高层次的CNN单元上与更远一些的词产生交互。词之间的交互距离,与它们的相对距离成正比,因此使用CNN进行中文文本自动校对任务同样会导致远距离信息丢失问题。

2 Transformer模型

    Transformer模型是一种对序列信息建模的新方法,该模型依然沿用了经典的Encoder-Decoder结构,不同的是Transformer模型不再使用RNN或CNN,而是使用Self-Attention机制。该机制的优势就是可以获取文本语义信息而不受词语之间的相对距离影响,从而解决远距离信息丢失问题,提高校对性能。

2.1 Self-Attention

    Self-Attention机制作为Transformer模型最核心的特点,其可以建立当前位置词语与其上下文相关词语之间的联系。实现方式为:首先,将输入向量分别与3个随机初始化的权值矩阵WQ、WK和WV相乘,计算得出3个新的向量,分别为查询向量q、键向量k和值向量v。其中q向量表示为了编码当前词语,需要去注意文本中的其他词;k向量是当前词的可以被用于检索的信息;v向量则表示当前词语的实际内容。接下来计算Self-Attention的分数值,其决定了在对输入句子中的某个词语进行编码时,对句子中其他部分的关注程度。

    如图1所示,针对“生度”这个词,通过查询向量与键向量点乘,计算出其他词对于该词的一个分数值。首先针对于本身即q1×k1,然后针对于第二个词即q1×k2;为了减少乘积值过大对之后归一化的影响,将点乘得到的结果分别除以向量维度的开方;之后再做归一化处理,得到的结果即每个词与当前位置词语的相关性大小;最后将值向量v与归一化后的结果相乘再相加,得到的结果即Self-Attetion在当前节点的值。计算方式如图1所示。

rgzn1-t1.gif

    为了提高计算速度,本文采用矩阵的方式进行计算,计算方法如式(1)所示。

    rgzn1-gs1.gif

其中,Q、K、V分别表示对应的3个向量矩阵,即查询矩阵、键矩阵和值矩阵;dkey表示向量维度,本文取64维。

2.2 Multi-Headed Attention

    为了提升模型性能,加入了 Multi-Headed Attention机制[14],即“多头注意力”机制,通过初始化多组权值矩阵进行计算,本文选取8组。将计算得到8个矩阵拼接为一个矩阵,再将一个随机初始化的矩阵与拼接好的矩阵相乘,得到最终矩阵。该机制的结构如图2所示。

rgzn1-t2.gif

    “多头注意力”机制有多个“注意力头”,因此可以并行计算,提高模型训练速度。并且每个“注意力头”都有对应的权值矩阵,实现不同的线性变换,因此扩展了模型关注序列不同位置的信息的能力,可以对文本的语义信息有更完整的理解,从而进一步提高校对性能。

3 Transformer模型的实现

3.1 数据预处理

    在Transformer模型构造之前,需要对输入的数据进行预处理[15],包括:数据加载、数据清洗、分词、语料转换、分析统计。其中,数据加载是将数据集中的数据导入模型;数据清洗是去除语料中的特殊字符;分词使用中文分词工具“jieba分词”,对语料进行分词[16];语料转换是将中文词语转换成对应的数字编码,以及对应的数字编码转换为中文词语;分析统计是对语料进行分析,了解语料特征。

3.2 Transformer模型结构

    本文中的Transformer模型由6个编码器层和6个解码器层堆叠组成。待校对文本在编码器端输入,正确文本在解码器端输入,通过监督学习来训练模型。即训练阶段将训练集中的输入语料作为编码器输入,将对应的正确语料作为解码器的输入;在测试阶段将测试集的待校对语料作为编码器的输入,解码器端无输入,仅依赖前一时刻的解码器输出信息进行校对。其整体结构如图3所示。

rgzn1-t3.gif

    编码器层内部包含两个子层,即一个Self-Attention层和一个全连接的前馈神经网络层。Self-Attention层中的查询向量、键向量和值向量均来自于前一个编码器层,因此编码器层的每个位置都能去关注前一层输出的所有信息,使得当前节点不仅关注当前信息,还能获得上下文的语义信息。前馈神经网络层应用于Self-Attention层的输出,由两个线性变换和一个ReLU激活函数组成。计算方法如式(2)所示。

    rgzn1-gs2.gif

其中,W1和W2为模型中神经元的权值,b1和b2为偏置值,x为输入向量。

    编码器层与解码器层的结构如图4所示。

rgzn1-t4.gif

    解码器层不仅包含编码器层中的两个子层,还添加了一个注意力子层对编码器的输出执行多头注意,其查询向量来自于前一个解码器层,键向量和值向量来自于编码器的输出,因此解码器的每个位置都可以关注到编码器输入序列的全部信息,帮助当前解码器节点获取到需要关注的重点内容。此外,解码器的Self-Attention子层加入了masked部分,其可以对某些值进行掩盖,从而防止模型注意到后续位置信息。这种屏蔽确保了当前的预测只能依赖于之前的已知输出。

3.3 Transformer模型实现过程

    Transformer模型的内部结构如图5所示。

rgzn1-t5.gif

3.3.1 Embedding

    首先,模型对输入数据进行Embedding,即词嵌入,将输入词语转变成向量[17]。将向量输入到编码器和解码器的第一层,经过多头注意力机制处理后传入前馈神经网络,得到的输出信息作为下一层编码器和解码器的输入[18]

3.3.2 Positional Encoding

    因为Transformer模型缺少对输入序列中词语顺序的表示,所以需要在编码器层和解码器层的输入添加一个Positional Encoding向量,即位置编码向量,维度与输入向量的维度相同,本文取512维。该向量决定当前词在序列中的位置,计算方法如式(3)、式(4)所示:

     rgzn1-gs3-4.gif

其中,pos是指当前词语在句子中的位置;i表示pos对应的向量值,取值范围为0~255;dmodel表示向量维度。在偶数位置,使用正弦编码;在奇数位置,使用余弦编码。最后将位置编码向量与输入向量相加,作为输入传入模型。

3.3.3 残差连接和归一化

    编码器层和解码器层中每个子层都加入了残差连接和归一化[19]。子层先进行残差连接,避免误差反向传播时的梯度消失,接着对输出进行归一化,避免梯度消失或梯度爆炸。剩余连接和归一化后的输出表示如式(5)所示:

    rgzn1-gs5.gif

其中,x为前一层前馈神经网络或多头注意力层的输出向量,SubLayer为注意力机制函数,LayerNorm为归一化函数。

3.3.4 输出层

    当解码器层全部执行完毕后,为了将得到的向量映射为本文需要的词语,需要在最后一个解码器层后添加一个全连接层和Softmax层。全连接层输出logits向量,作为Softmax层的输入。假设词典包括n个词语,那最终Softmax层会输出n个词语分别对应的概率值,概率值最大的对应词语就是最终的输出结果。

4 结果与分析

    针对上述模型,本文设计了以下的实验。本实验运行环境操作系统为Windows 10,CPU为Intel CoreTM i5-8265,GPU为GTX 1070Ti,运行内存8 GB。一共进行4组实验,分别为传统的Seq2Seq、加入BiLSTM的Seq2Seq、基于注意力机制的BiLSTM Seq2Seq与Transformer共4种模型。实验使用的数据集来自于2018 NLPCC共享的训练数据集Task 2,其中提供了717 206条中文文本语句对,将其中的700 000条作训练集,17 206条作测试集,划分过程随机。Src代表待校对语料,Trg表示原句所对应的正确语料。数据集的统计数据如表1所示,分为训练集和测试集,统计了正确语料和错误语料,以及分词后的词语总数。

rgzn1-b1.gif

    为了对不同模型的校对效果进行评价,本次实验采用准确率、召回率和F1值作为指标,对实验结果进行评估,实验结果如表2所示。

rgzn1-b2.gif

    实验结果表明,BiLSTM和注意力机制均可以在传统Seq2Seq模型的基础上提升中文文本校对效果,然而,Transformer模型的表现更好。并且,深度学习模型的校对效果受到训练次数和训练数据集大小的影响,如果增加Transformer模型的训练次数和增大训练数据集,模型将拥有更好的校对效果。

5 结论

    本文将Transformer模型应用于中文文本自动校对领域,通过公开数据集对该模型的校对性能进行验证,得出该模型的校对效果相比较于其他的模型在准确率和召回率方面均有很大提升。

    本次实验由于数据集的局限性[20],导致并未展现出Transformer模型的全部能力,但是该模型在中文文本自动校对中的表现依然优异,也为Transformer模型应用于其他自然语言处理任务提供了可能性。

参考文献

[1] 张仰森,俞士汶.文本自动校对技术研究综述[J].计算机应用研究,2006(6):8-12.

[2] VASWANI A,SHAZEER N,PARMAR N,et al.Attention is all you need[J].Comouting Research Respository,2017,arXiv:1706:87-90.

[3] ZHANG C,WANG X,YU S,et al.Research on keyword extraction of Word2vec model in Chinese corpus[C].IEEE/ACIS 17th International Conference on Computer and Information Science(ICIS).IEEE,2018:339-343.

[4] 张涛.中文文本自动校对系统设计与实现[D].成都:西南交通大学,2017.

[5] 刘亮亮,王石,王东升,等.领域问答系统中的文本错误自动发现方法[J].中文信息学报,2013,27(3):77-83.

[6] 刘亮亮,曹存根.中文“非多字词错误”自动校对方法研究[J].计算机科学,2016,43(10):200-205.

[7] 张仰森,曹大元,俞士汶.基于规则与统计相结合的中文文本自动查错模型与算法[J].中文信息学报,2005,20(4):1-8.

[8] 张仰森,唐安杰,张泽伟.面向政治新闻领域的中文文本校对方法研究[J].中文信息学报,2014,28(6):79-84.

[9] 张仰森,郑佳.中文文本语义错误侦测方法研究[J].计算机学报,2017,40(4):911-924.

[10] Wu Yonghui,SCHUSTER M,Chen Zhifeng,et al.Google′s neural machine translation system bridging the gap between human and machine translation[J].Computing Research Repository,2016,arXiv:1609:56-59.

[11] Chung Junyoung,GULCEHRE C,CHO K,et al.Empirical evaluation of gated recurrent neural networks on sequence modeling[J].CoRR,2014,abs/1412:78-81.

[12] Cheng Jianpeng,LAPATA M.Long short-term memory-networks for machine reading[J].arXiv Preprint 2016,arXiv:1601:127-130.

[13] GEHRING J,AULI M,GRANGIER D,et al.Convolutional sequence to sequence learning[J].arXiv Preprint 2017,arXiv:1705:68-71.

[14] LUONG M T,LE Q V,SUTSKEVER I,et al.Multi-task sequence to sequence learning[J].arXiv Preprint 2015,arXiv:1511:114-117.

[15] 王洁,乔艺璇,彭岩,等.基于深度学习的美国媒体“一带一路”舆情的情感分析[J].电子技术应用,2018,44(11):102-106.

[16] 孙铁利,刘延吉.中文分词技术的研究现状与困难[J].2012(1):187-192.

[17] Lin Zhouhan,Feng Minwei,NOGUEIRA C,et al. A struc-tured self-attentive sentence embedding[J].arXiv Preprint 2017,arXiv:1703:116-119.

[18] PRESS O,WOLF L.Using the output embedding to improve language models[J].arXiv Preprint 2016,arXiv:1608:67-70.

[19] BA J L,KIROS J R,HINTON G E.Layer normalization[J].arXiv Preprint 2016,arXiv:1607:45-49.

[20] 字云飞,李业丽,孙华艳.基于深度神经网络的个性化推荐系统研究[J].电子技术应用,2019,45(1):14-18.



作者信息:

龚永罡,裴晨晨,廉小亲,王嘉欣

(北京工商大学 计算机与信息工程学院食品安全大数据技术北京市重点实验室,北京100048)

此内容为AET网站原创,未经授权禁止转载。
中文文本校对 Transformer模型 深度学习