目录
Event Factuality Identification
模型结构
文本主要提出了一个用于识别篇章级可信度的端到端的模型,即不用任何其它的特征,仅需要一个最核心的事件和整篇文本来识别篇章级的可信度。
文章中的模型如下所示:
首先对于一个文档D,它的表示为D={S1, S2, …, Sn} ,其中Si表示文章中的第几句话,模型的输入层,Q是根据篇章的核心事件提出的一个问题,如果事件用E来表示,那么问题Q就可以表述为“事件 E 的事实性值是什么”,举个具体的例子,比如篇章中最核心的事件E:United States reach an agreement with Mexico,那么Q就组织成"What is the factuality value of the event <United States reach an agreement with Mexico?>"。然后这个问题和篇章中的每一句话都组成一个问题-句子对,输入到BERT中,用BERT去揭示问题和句子之间的相关性。通俗的理解下就是:我们不知道文中哪些句子与篇章的核心事件有关,所以每个句子都给它提出一个我们组织好的问题,用模型去揭示哪一句话是跟我们问题的相关性比较大。
这里的BERT模型只用了它的编码器encoder部分,并使用最后一层的隐藏层来作为一个问题-句子对的最终表示,每一个问题-句子对用Oi表示,那么由于有n个问题-句子对,输入通过BERT得到的输出记为R,R的形状为:,n是文档D中句子的数量,d是隐藏状态Oi的形状。(文中说每行是一个Oi,我觉得按照d的形状的话,每列是一个Oi才对。)
得到R后,模型有两个部分的任务,一个是Event Mention Detection,也就是捕捉问题-句子对的关系的任务,也就是对句子进行分类,是核心事件相关的句子为一类,不是的为一类,也就是一个二分类的任务;另一个任务是Event Factuality Identification,也就是最终的任务,识别篇章级别的可信度。
Event Mention Detection
这个部分将BERT的输出R作为输入,将R通过一个BiLSTM,原本R的形状是d*n,(方便理解,可以将R看成一个句子,句子中的词语的数量是n,embedding size是d),那么通过BiLSTM后,得到输出N0,(没有取最后一个hidden state,取了所有“词”的hidden state,为什么不像最常见的做法,取LSTM最后一层的隐藏状态呢,因为这里的词代表的是每一个原文中的句子,每个句子都是要分类的)。至于为什么要用LSTM呢,原文的解释是这样的:使用简单的BiLSTM来捕获文档中句子序列之间的交互,因为事件提及(即事件句子)的上下文有助于识别事件句。即旁边的句子有助于识别当前句子是不是事件句。
得到N0后,通过softmax进行分类,其中,,损失函数使用交叉熵损失。
最终得到的P0的形状为:n*2,即每个句子都有一个分类,这个分类即是否是事件句的分类。
Event Factuality Identification
这一部分的输入也有一个BERT的输出R,论文中指出:“我们认为,整个文档表示形式R是对这些事件提及的有益补充”,也就说除了N0外,R也是一个重要的特征,来识别篇章级的可信度。
对于N0使用sigmoid激活函数,将N0转化为N1,N1的形状跟N0是一样的。然后文中提出使用门控机制(gating mechanism),将N1用作门控单元,通过将N1与R乘以1来控制数据流:
T1的形状和R的形状一样(为什么?上面的符号是张量积),,T1又通过一个BiLSTM,这次通过BiLSTM取的应该是最后一层的hidden state(文中这里太过于简略了,压根没说,这是我自己揣测的),记为M1,M1的形状应该是d1*1(文中公式出现了M1,但是论文中的图却没有出现),这个向量编码了篇章所有句子的信息,最后我们要用这个向量进行分类:
其中,,(为什么这里会出现b0,不应该是b1吗)。d1是BiLTSM隐藏层的神经元数量。(文中忽略了PS-和Uu的识别)
实验
语料库
实验中一些必要的参数
1.十折交叉验证
2. Adam优化算法
3.嵌入层,编码器层和隐藏层中引入了Dropout机制,Dropout比率为0.5。
4.d0和d1相同,均为50
5.Transformer块的数量为12,隐藏层的大小为768,多注意头的数量为12,预训练模型的参数总数为110M
实验结果
baseline:
BERT_Pipeline:此模型首先检测事件句,然后根据提取的事件提及识别篇章级可信度。这两个子任务都使用预训练的BERT来学习功能,并使用Softmax来预测事件的真实性。
BERT_Doc:此模型忽略事件句检测的阶段。它首先使用BERT对整个文档和问题进行编码,然后使用Softmax预测事件的事实性。
表格三的结果证明将两个子任务结合在一起,多任务框架对于事件句检测和事件性识别是有效的。在多任务框架中,下游任务事件的事实性识别可以进一步帮助上游任务事件句检测,以提高其性能。
还有补充的一点就是,有时候光靠事件句来识别篇章级的可信度,会有很难识别的情况,比如下面的文章:三个事件句的事实性均不同,这样就导致篇章级别的可信度很难识别,但是恰好最后一句话是揭示篇章级的可信度的,所以对于事件句周围句子的理解也很重要。