基金项目:福建省自然科学基金(2018J01488); 福建省高校产学合作项目(2018H6018); 厦门大学校长基金(20720160085)
通信作者:chycmqccr@163.com
(1.厦门大学航空航天学院,福建 厦门 361102; 2.集美大学轮机工程学院,福建 厦门 361021)
(1.School of Aerospace Engineering,Xiamen University,Xiamen 361102,China; 2.School of Marine Engineering,Jimei University,Xiamen 361021,China)
natural language processing; deep learning; convolutional neural networks; Chinese word segmentation; word embedding
DOI: 10.6043/j.issn.0438-0479.201804008
目前,许多研究者将神经网络模型应用到中文分词任务中,其表现虽然优于传统的机器学习分词法,但未能充分发挥神经网络自动学习特征的优势,且未使用词向量信息.针对该问题,提出基于门限卷积神经网络(gated convolutional neural networks,GCNNs)的中文分词法,并利用词嵌入方法将词向量融入模型中,使该模型在不需要大量特征工程的情况下可以自动学习二元特征.通过在简体中文数据集(PKU、MSRA和CTB6)上进行实验,结果表明,与以往的神经网络模型相比,在不依赖特征工程的情况下,该模型仍能取得较好的分词效果.
Currently,researchers have applied neural network models to Chinese word segmentation tasks.Although these models outperform traditional machine learning models,they fail to take full advantages of neural networks to learn features automatically.In addition,the word embedding is not used.In this article,we proposes gated convolutional neural networks(GCNNs)for Chinese word segmentation,and integrate the word embeddings into GCNNs,which can learn bigram features automatically without any feature engineering.Without feature engineering,experimental results on simplified Chinese datasets(PKU,MSRA and CTB6)show that,compared with previous neural network models,the proposed model performs satisfactorily in segmentation.
在中文书面语中,由于词语之间没有明显的空格标记,文本中的句子以字串的形式出现,而大多数自然语言处理任务都是以词为基础单元进行处理,例如机器翻译、情感分析等,因此分词效果的优劣会直接影响到后续更高级的任务.中文分词经常被看作是一项基于字符的序列标注任务[1],即对句子中每个字符进行标注.常用的标注模型有:最大熵(maximum entropy,ME)模型、条件随机场(conditional random fields,CRF)模型、隐马尔可夫模型(hidden Markov models,HMM)等[1].虽然上述模型的分词效果均优于传统基于规则的方法[2],但这些模型的分词效果常常过于依赖人工定义特征的好坏.
随着深度学习的兴起及其在图像、语音识别等领域的广泛应用,神经网络逐渐被应用到自然语言处理任务中.Collobert等 [3]提出将神经网络用于自然语言处理中的序列标注任务.在中文分词领域,Zheng等[4]提出一种前馈神经网络模型,在减少对人工定义特征的依赖下取得了很好的分词效果.Pei等[5]尝试使用最大间隔张量神经网络(max-margin tensor neural network,MMTNN)进行中文分词,引入了标签向量信息和张量信息对神经网络进行优化.Chen等[6]使用长短时记忆(long short-term memory,LSTM)神经网络进行中文分词,解决了传统神经网络不能学习长距离依赖关系的问题.Xu等[7]将LSTM和递归神经网络相融合,从输入的句子中获取上下文表示.李雪莲等[8]利用门循环单元(gated recurrent unit,GRU)神经网络进行中文分词,能够有效建立长距离依赖信息并在模型训练速度上有所提升.金宸等[9]引入贡献率对前传LSTM层和后传LSTM层的权重矩阵进行调节,也获得了较好的分词效果.
尽管上述神经网络模型在中文分词中取得了不错的效果,但有两个可改进之处:1)神经网络在自动学习特征方面有着很强的优势[10],但该优势在这些模型中并没有被充分发挥,尤其是神经网络自动学习二元特征[5-6]的能力; 2)词向量在基于词的中文分词模型中有着不错的效果[11],但上述基于字符的模型未能利用词向量信息.
针对第一个问题,本研究提出基于门限卷积神经网络(gated convolutional neural networks,GCNNs)模型[12]的中文分词法,GCNNs模型通过在卷积层中引入门限机制,有效地缓解了梯度弥散现象,使模型训练变得更简单,同时,利用多个卷积层对输入的句子进行标识,在没有特征工程的条件下能够自动学习二元特征.针对第二个问题,本研究使用半监督学习的方法,将词向量融入到GCNNs模型中,利用整词级别的信息来提升模型性能.
神经网络中文分词一般为对输入句子中的每个字符进行标记,通过标记可以判断字符在词语中的位置,如常用的4符号标记{B,M,E,S},分别表示词语的开始、中间、结尾,以及独立成词.其通用架构如图1所示,包括3个部分:1)输入层,包括输入文本和查找表; 2)神经网络转换层,包括两个线性变换和一个非线性变换; 3)标签推断层.具体的,在输入文本中,给定一个长度为n的输入句子c={c1,c2,…,cn},用大小为k的窗口从c1滑动至cn,当k为5时,每一个字符ci的上下文为s={ci-2,ci-1,ci,ci+1,ci+2},将其导入查找表中获得字向量,为使输入字符大小一致,当滑动窗口超过句子的边界时,以数字0作为填充.将获取的字向量串联得到向量xi∈Rk×d作为神经网络的输入,其中d为字向量维度.接着,从神经网络输入层到隐藏层进行线性变换zi=w1×xi+b1,其中w1表示输入层到隐藏层的连接权值矩阵,b1为隐藏层的偏置参数矩阵.隐藏层的激活函数通常使用tanh函数或Sigmoid函数σ(x)=(1+e-x)-1,最后经过一个相似的线性变换得到神经网络输出结果yi,表示标记集中每个可能标记的分数向量.
上述神经网络中文分词通用架构的效果虽然优于传统的统计机器学习分词法,并在一定程度上减少了特征工程,但只能在固定窗口范围内利用字符的上下文信息,不能使用长距离依赖信息和词向量信息.后续研究者提出使用LSTM解决了长距离依赖问题[6],但该模型较复杂,且未能充分发挥神经网络自动学习特征方面的优势,也未能利用词向量信息.因此,本研究从神经网络中文分词通用架构出发,使用GCNNs模型进行中文分词,并嵌入词向量,在解决长距离依赖问题的同时简化模型,充分利用神经网络自动学习特征的能力,达到提升分词效果的目的.基于GCNNs模型的中文分词架构如图2所示,包括输入层、具有门限机制的卷积层以及标签推断层.对于输入句子c,GCNNs先用多个具有门限机制的卷积层来获取上下文的向量表示,再用标签推断进行分词预测.此外,本研究还利用半监督学习的方法将词向量融入到GCNNs模型中.
yi为标签i的得分分数向量,z为标签种类的总数.
利用深度神经网络处理一个句子时,主要是将句子中的字符借助于查找表转换成以向量表示的形式.查找表可以视为一个投影层,通过字符在词汇表中的索引得到对应的字向量.从字符到字向量的查找表定义为Lchar∈R|Vchar|×d,其中|Vchar|表示词汇表的长度大小,即词汇表中词的数量,d表示字向量的维度.对于一个给定的c,其经查表后得到的表示矩阵x∈Rn×d,其中第i行就是字符ci的字向量.
基于卷积训练速度快、自我学习能力强的特点,GCNNs模型引入了门限结构单元(gated linear unit,GLU)[12].与LSTM中的门限机制相比,GLU舍弃输入门和遗忘门,仅保留输出门,能够在保留非线性功能的同时,允许梯度沿着线性单元进行传播而不会被缩减.GLU的梯度表达式为
Δ[Xσ(X)]=ΔXσ(X)+Xσ'(X)ΔX,(1)
其中,表示元素积运算,ΔXσ(X)没有缩减因子[12],因此梯度弥散问题便得以缓解.将GLU作为非线性结构单元与卷积单元结合,形成一个卷积层.与普通卷积不同的是,门限卷积H在这里分为两部分:一部分是卷积激活值P,本研究没有使用tanh函数,而是用线性函数.另一部分是σ(Q),其中门限值Q是通过直接线性函数得到,具体如图2所示.具有门限机制的卷积层的具体表达式为:
H(x)=(x*W+b)σ(x*V+m),(2)
其中:W和V是卷积层的权重,b和m是卷积层的偏置项,*表示卷积操作运算,W∈Rk×d×M,b∈RM,V∈Rk×d×M,m∈RM分别是要学习的参数,M为每个卷积层中输出节点的个数.本研究使用多个卷积层堆叠进行标识长文本,学习更高层、更抽象的特征,从而解决长距离依赖问题.图3所示为两层卷积堆叠时的处理过程,其中最底端为输入层,虚线圆圈表示边界填充.在最顶端,通过线性变换将该层的输出转换为标签集中的得分矩阵E=(yi)∈Rn×z.
由于在一个c中,相邻字符标签之间有很强的依赖性,所以对于序列标注任务,通常要考虑相邻标签之间的依赖性.本研究采用文献[13]中提出的权重转移矩阵T来表示这个依赖关系,矩阵中的每一个元素Tyi,yj表示从标签yi到标签yj的转移概率,其数值越大,转移的概率越大,数值由训练得到.对于句子c,其对应标签序列yi的得分S定义为:
S(yi)=∑nt=1(T(yi-1)t,(yi)t+Et,i).(3)
对于基于字符的中文分词模型,具有灵活、高效的优点,但这类模型很难融入词向量信息.而基于词的中文分词模型,不仅可以运用字向量信息,还能使用词向量信息,字向量和词向量的最大区别在于二者是语言表示的两个粒度,其包含的信息不同.本研究使用词嵌入方法将词向量和GCNNs模型相融合.由于汉语中很少出现长度大于4个字符的词,所以本研究将最大的词长度设置为4,即给定句子中的一个字符ci,其可能和周围字符组成词的最大长度为4,如cici+1ci+2ci+3和ci-1cici+1ci+2等.为了利用一个字符ci周围的词信息,本研究将表示ci的字向量和包含该字符的词向量进行串联拼接,同时为了避免拼接后出现控制输入大小不同的问题,利用前文中以数字0作为填充的方法使输入大小保持一致.此外,由于所有可能的四元特征的数目是巨大的,会产生极大的特征空间O(|V|4),其中|V|为语料库的大小.所以,本研究采用如下方法来缩小特征空间并避免数据稀疏问题:1)训练一个不依赖于词特征的父模型(parent-model); 2)用该模型对无标签数据D进行分词得到D'; 3)从D'构建一个词汇表Vword,其中出现次数小于5的词会被舍弃,并将没有出现在词汇表Vword中的词替换为UNK; 4)利用word2vec[14]在D'上训练词向量; 5)使用上一步训练好的词向量作为词特征训练子模型(sub-model).本研究令GCNNs模型作为父模型,使用词嵌入方法引入词向量,经上述步骤训练得到最终子模型GCNNs+WE.值得指出的是,在进行词嵌入时,查找表获得词向量的过程与上文查找表获得字向量的过程不同,为了提高计算效率,词向量的维度d'小于d.
模型训练的目标是使分值最高的标签序列和正确的标签序列得分相同.对于输入句子c和正确的标签序列y,设模型预测的标签序列为y',则分数最高的标记序列y*可表示为
y*=argmax(S(y')),y'∈Y,(4)
其中,y*∈Y,Y是该句子所有可能标签序列的集合.对于y和y',定义结构损失函数为
Δ(y,y')=∑zi=1γ1{yi≠yi'},(5)
其中γ是调节比例的参数.该损失函数表示在模型预测的标记序列中,预测结果不正确的标签数量占总数量的比值,为了使y*与y相同,定义训练目标函数为
J=1/(|N|)∑c∈Nl,(6)
其中,N为训练集大小,l=max(0,S(y')+Δ(y,y')-S(y)).在模型训练过程中,通过反向传播[15]使损失函数最小.
本研究使用的实验数据采用标准数据集PKU、MSRA和CTB6,其中PKU和MSRA均来自第二届国际中文分词竞赛[16],CTB6取自宾州树库Chinese TreeBank 6.0数据集.在实验过程中,将各组实验数据均分为测试数据集和训练数据集,再从训练数据集随机抽取其数量的10%作为开发集,其余90%作为训练集.实验结果的评测指标采用常用的召回率R、准确率P和综合指标F值.
本研究在3个标准数据集上的实验使用同样的超参数,详情如表1所示.
为验证不同初始化方式对中文分词效果的影响,本研究在PKU数据集上对使用预训练方法初始化权值和随机初始化权值的分词效果进行对比,实验结果见表2.通过对比结果发现,使用预训练字向量进行权值初始化更有利于模型训练,P、R、F值均提高了1%以上.
本研究将GCNNs模型的分词效果与以往神经网络模型[6,17]以及传统的CRF[17]模型进行对比,结果如表3所示.其中传统的CRF模型需要人工定义特征,而LSTM、双向LSTM(BLSTM)[18]神经网络模型以及本研究提出的GCNNs模型都能自动学习特征.可以看出在不同数据集中,CRF模型由于特征定义的限制,分词效果较差.LSTM通过解决长距离依赖问题在分词效果上较CRF模型有所提升.BLSTM模型在LSTM的基础上进行改进,能够同时捕获两个方向的长距离信息,使分词效果得到进一步提升.GCNNs模型的P、R和F值均高于上述模型.金宸等[9]在BLSTM中引入了贡献率,本研究的GCNNs模型的实验效果低于其最佳贡献率时得到的实验效果(P、R、F值低0.6~1.0个百分点),比其平均值略优(P、R、F值高0~0.6个百分点).与李雪莲等[8]的GRU模型相比,GCNNs模型同样获得了较高的分数.此外本研究对比了GCNNs与无门限机制的GCNNs模型(GCNNs-G)的结果,GCNNs同样获得了较高的分数,这表明引入门限机制有助于提高分词效果.由于LSTM和BLSTM模型都只使用了字向量,本研究通过嵌入词向量得到模型GCNNs+WE,该模型在PKU、MSRA和CTB6数据集上的表现如表3所示,GCNNs模型在融入词向量后,能够有效利用整词级别的信息并达到了提升分词效果的目的.
为进一步测试GCNNs模型在学习二元特征方面的能力,本研究在PKU和MSRA数据集上对比了在没有加入和有加入人工定义的二元特征时的结果(表4).可以看出,在没有人工定义二元特征的情况下,相比于其他基于神经网络的中文分词模型,GCNNs模
型获得了相对较高的分数.当本研究采用与文献[5]中一致的方式加入人工定义二元特征并进行实验,结果如表4所示,可以看出在加入人工定义二元特征后,LSTM[5]和MMTNN[6]的模型性能均得到了提升,而GCNNs的得分却低于没加二元特征时的分数.
通过进一步分析实验结果发现,在加入人工定义二元特征后,模型的训练时间变短,GCNNs在训练集上的分词结果几乎接近100%,但测试集的分词效果却较差,故本研究认为加入人工定义二元特征后的GCNNs模型出现了过拟合现象.推测这可能是由于GCNNs在没有加入人工定义二元特征时至少已经学习到足够的二元特征,所以当继续加入二元特征时才会出现过拟合现象.这表明GCNNs在自动学习二元特征方面相比以往神经网络模型有很大优势.
本研究主要对基于字符的神经网络中文分词模型进行改进,使用多个具有门限机制卷积层的GCNNs模型从输入序列中获取上下文表示,并将词向量嵌入到该模型,在PKU、MSRA和CTB6标准数据集上进行实验验证.实验表明,在没有特征工程的条件下,相比于以往的神经网络模型,GCNNs模型在学习二元特征方面表现出了很大的优势,嵌入词向量后,该模型在3个数据集上的分词效果都有所提升.由于实验条件限制,本研究未对更多元的特征进行深入讨论.后续工作将尝试GCNNs模型在中文分词领域自适应任务中的应用.