一、摘要
提供了一种新的篇章级别的事件识别模型scale-free Identifier Network (sfIN),能够更有效地处理长文档。模型采用监督学习和强化学习结合的方法训练。
二、架构
与LSTM-crf等基于神经网络的模型不同,mRR将文本编码到一个分层的存储栈中,使整个文本能进行更复杂的非线性转换。建立存储栈后,一个基于RNN的控制器每次读取存储的一部分,并对当前标签进行预测。有三个读头,在操作完成后被更新,以表明哪一部分存储是可访问的。当一个读头到达文本的末尾,整个过程就结束了。下图是mRR的结构。
1. 文本编码器(Text Encoder)
文本编码器不仅将原始文本作为输入,还将结构信息作为输入,输出一个分层的存储,该存储有三个级别:单词级(word level)、句子级(sentence level)和段落级(paragraph level)。存储通常被定义为一个无限大小的矩阵。这里将存储限制为三个预先定义的矩阵Nw × dw,Ns × ds,Np × dp,其中在每个级别的每个位置上有N*个位置和d*个值。N依赖于实例,并且是由算法预定义的。在实现中不同级别的存储有不同的d。
文本编码器分为三部分:单词编码器(word encoder)、句子编码器(sentence encoder)和段落编码器(paragraph encoder)。
1.1 单词编码器
单词编码器以原始文本为输入,输出Mw ∈ Nw × dw的单词级存储,其中Nw是文档中的单词数,dw是单词级存储的维度。
1.2 句子编码器
在CNN的启发下,在单词级存储上应用element-wise max-pooling生成“句子向量”,从局部特征中提取全局特征。存储矩阵Ms与Mw同理,通过一个BiLSTM层生成。
1.3 段落编码器
对于每个段落,在Ms对应句子所属的子矩阵上应用element-wise max-pooling生成Mp。
2. 控制器(Controller)
控制器的结构是一个RNN层和9个前馈神经网络(FNN),输出是一维的。每次RNN用三个读头读取分层存储并更新其隐状态,然后将其反馈给FNN来生成一个action。标签序列(tag sequence)被添加到先前的结果中,同时更新读头的位置。
控制器被训练成一个action的代理,它可以读取部分分层存储,并且在每个time step上选择动作(并生成标签序列的一部分)。对应9个FNN有9个可用的动作:将一个单词/句子/段落标记为非事件/当前事件/新事件。
读取存储:用一个三维向量来表示当前的位置,每个维度代表存储的每个层次,初始化为[0; 0; 0]。在每个time step,可用的存储位置被加载到控制器中。
Action的生成:被选中的存储部分用于更新控制器状态,生成9个分数。在每个time step,得分最高的action根据上表生成标签序列。
位置更新:表示位置的向量根据action所在的级别进行更新:指向下一个单词(单词级)或者指向下一部分的第一个单词(句子级/段落级)。
三、数据集
使用法律文本数据集,包含犯罪信息和案情记录。每个样本中有一个或多个事件、地点、受害人不同的盗窃事件。样本长度从1500词到7000词不等,每个样本含有1~74个事件不等。样本总数为8299条。
四、训练
采用了监督学习结合强化学习的策略进行训练。结合强化学习是为了解决文本较长带来的问题。在处理一个样本后,模型将根据action的数量除以文本的长度获得奖励。
五、实验结果
原文地址:https://www.cnblogs.com/otaku-47/p/12333834.html