一.论文简述
本文通过特征分析的方法,对文本中的词从6个方面进行特征表示并且生成特征向量,最后由深度信念网络来分析特征向量并给出识别结果。本文提出的模型不仅可以直接用于事件识别,还可以用来处理其他事件要素的识别,最终实现基于深度学习的事件以及相关要素的自动标注。
二.算法具体实现步骤
2.1 数据预处理
图1 数据预处理流程图
2.2 神经网络的特征输入
(1)词性抽象层(L1):通过对CEC2.0中触发词的词性统计分析,我们发现触发词的词性分布集中很高,主要以动词和名词为主,主要有84%是动词,14%是名词,因此将词性作为抽象特征层能够提高触发词识别的准确性。
词性抽象层特征表示:LTP标注的词性总共有26种,每个词对应一个长度为26维的向量,向量元素中只有一个为1。
(2)依存语法抽象层(L2):依存语法认为句子中的述语动词是支配其他成分的中心, 而它本身却不受其他任何成分的支配,所有的受支配成分都以某种依存关系从属于其支配者。依存语法直接描述词与词之间的语义角色关系,具有非常高的语义表现性。触发词作为句子中信息量最大、表达信息最清晰的词, 在句子中所扮演的角色在一定意义上就如同依存语法中述语动词。通过对 CEC2. 0 中的触发词依存语法的统计分析,我们发现 62% 的触发词在句子中的依存语法角色是head,18%为动词宾语。依存语法中的述语动词和句子中的触发词大多情况下是一致的。
依存语法抽象层特征表示: 在该特征层中,向量维度为14,表示14种依语法属性。所以每个词对应一个长度为14维的向量,向量元素只有一个为1。
(3)长度抽象层( L3) : 通过对CEC2. 0 中的所有语料中触发词长度进行分析,81% 的触发词长度为2,12%的长度为1。可见触发词的长度特征集中度较高,非常适合作为识别触发词的特征。
(4)触发词位置层(L4):索引是词在句子中的位置特征,该特征会影响词所要表达的语义信息。词在句子中的位置是人类在文字书写过程中的逐渐形成的一种规范,各种语言按照自身的语法逻辑来确定词在句子中的位置。所以词的索引对于判别词在句子中的角色具有非常积极的意义。考虑到句子的长度不一样, 在本文中只使用 0 到 10,共11个索引位置来标识该抽象层。通过对CEC2. 0 中的所有语料文本中触发词的位置分析,我们发现16%的触发词索引在句子的第一位,12%在句子的第二位。由于分布的集中度不是非常高,所以该特征对于触发词识别的贡献度相对较低。
触发词位置层特征表示: 在该特征层中,向量维度为11,11个维度表示0到10共十一个索引位置。如果位置索引超出10,那么该候选词的所有特征向量值为0。
(5)与核心词的距离层( L5) : 在本文中核心词指的依存语法角色为head的词。通过对 CEC2. 0语料的分析,12%的触发词与核心词的距离为0,27%的触发词与核心词的距离为1。
与核心词的距离层特征表示: 在该特征层中,向量维度为11,分别表示候选词的到核心词的距离为0到10。如果距离超出 10,那么该候选词的所有特征向量值为0。
(6)触发词词频抽象层( L6) : 通过统计分析 CEC2. 0中的触发词,我们发现语料中有大量的触发词重复出现。有的触发词出现的频率较高,有的触发词出现的频率较低。本文将触发词频率分为 hp、a、b、c、d、e、f、g 八个等级,等级的定义如下表所示:
触发词词频抽象层特征表示: 在该特征层中,向量维度为8,表示触发词的8 个等级。该特征层的向量表示采用的方式是累计。例如,候选词“地震”的等级 e,那么它的特征向量值为“0 0 1 1 1 1 1 1”
2.3 混合监督的深度信念网络原理图
标准的DBN是由若干层RBM(受限波尔曼兹机)和一层BP组成,RBM层的训练是无监督的,最后通过BP网络来反向微调。这样的结构使得网络的训练速度提高。但是由于RBM层之间缺乏有监督训练,使得网络误差逐层向上传递,最终影响识别效果。因此本文提出一种改进型的混合监督DBN网络,其结构如图2所示。该网络为每一个隐含层都增加一层BP网络, 对通向这个BP网络的所有隐含层参数进行有监督学习。例如:第二层隐含层增加的有监督学习过程修改第一和第二层隐含层网络参数。这样改进后的DBN网络,同样能使得底层的网络参数得到充分的学习,缓解导数消亡问题,提高模型的识别效果。
图2 混合监督的深度信念网络
2.4 混合监督深度分类器工作过程
Begin
1: load NE5; / /加载输入特征向量.
2: layerNum = 6; rbmNum = 4; / /确定参与训练的特征层数和 DBN 网
络深度.
3: train_x ; test_x; train_y; test _y; / /训练集与测试集以及两者对
应的分类.
4: numepochs = 1 ; batchsize = 100 ; momentum = 0; alpha = 1; / /初始
化网络参数.
5: eventType = 3; / /待识别目标的类型值,3表示触发词.
6: dbn.sizes / /设置dbn网络层数以及各层的对应的输入输出单元
数量.
7: dbn = dbnsetup( dbn,train _x,opts) ; / /初始化DBN 网络
8: dbn = dbntrain( dbn,train_x,train_y,opts,eventType) ; / /调用 DBN
训练函数.
9: / /执行dbntrain 算法
10: n = numel( dbn.rbm) ; / /判断 DBN 网络深度.
11: x = train_x; / /保存初始训练样本.
12: dbn.rbm{ 1} = rbmtrain( dbn.rbm{ 1} ,x,opts,eventType) ; / /无
监督训练.
13: for i = 2: n
14: z = i - 1; / /设置混合监督深度信念网络停止工作的判断
条件.
15: if( z < n) / /最顶层反向微调由整个DBN网络顶层的BP 算法
处理.
16: nnhybrid = dbnunfoldtonnhybrid ( dbn,eventType,z) ; / /由
DBN相关网络参数,设置有监督调整所使用的BP网络初
始化参数.
17: nnhybrid.activation _function =‘sigm’; / /设置 BP 网络的激
活函数
18: nnhybrid = nntrainhybrid ( nnhybrid,train _x, train _y, opts) ;
/ / BP 对所有前层 RBM 进行有监督与无监督训练共同构成混合监督.
19: for m = 1: z / /遍历并获取有监督训练后的RBM层相关参数
20: colNum = size( nnhybrid.W{ m} ,2) ;
20: temp = nnhybrid.W{ m} ;
21: dbn.rbm{ m}.b = temp( : ,1: 1) ;
22: dbn.rbm{ m} .W = temp( : ,2: colNum) ;
23: end
24: end
25: x = rbmup( dbn. rbm{ i - 1} , x) ; / /将 RBM 输出作为下一层的输入
26: dbn.rbm{ i} = dbntrain ( dbn.rbm{ i} ,x,opts) ; / /进行下一层
RBM 训练.
25: end
27: nn = dbnunfoldtonn( dbn,eventType) ; / /初始化 BP 反向微调网络
28: nn.activation_function = 'sigm'; / /设置 BP 网络的**函数
29: nn = nntrain( nn,train_x,train_y,opts) ; / / BP 反向微调
30:[er,bad]= nntest( nn,test_x,test_ y,opts,eventType) ;
31: R = ; P = ; F; / / 计算结果,评估系统性能.
End
2.4
三.实验结果
3.1 不同RBM层数对事件识别性能的影响
在表3给出第1组实验的结果。从中可以看出:在一定范围内增加RBM的层数,模型的识别效果有较好的提升,原因在于模型通过多层映射单元提取出主要的特征信息,其精确度要优于单层结构。但是,在RBM层数大于4之后,模型的识别效果却随着层数的增加而有所降低,这说明模型的识别效果与 RBM 层数增长之间并非成正比关系,所以实际应用中需要通过大量的测试分析选择合适的RBM 层数。同时,在本组实验中,随着 RBM 层数的增加,系统训练时间也随之增加。原因是层数增加后,用于完成训练的神经网络节点增加,组合训练工作量大幅增加,这对系统平台的计算负载提出了更高要求。
表3 不同RBM层无监督的DL-ERM模型识别效果对比
3.2 不同语义特征抽象层对事件识别性能的影响
表4给出了第2组实验的结果。结果表明:特征抽象层的引入对总体识别效果有很好的提升, 随着特征抽象层的增加,三项识别性能指标均为上升状态。但是不同的特征层对识别性能提升的贡献度并不一样,从表中可以看出依存语法特征层的加入使得识别效果提升最高。触发词位置层对识别效果提升有限。