0%

论文阅读 | Deep Semantic Role Labeling:What Works and What’s Next

什么是SRL

Semantic Role Labeling 任务指的是围绕着谓词标记一句话的论元信息,识别出what,who,whom,when,where等信息。这是一项标记句子事件的浅层语义处理,不涉及句子的句法分析。比如对于“他昨天把书交给了张三”和“昨天书被他交给了张三”这两句话,它们在句法上不一样,但是在语义角色标注上是一样的。

语义角色标注是自然语言处理的底层任务,通过这项任务,我们可以直接获取到一句话事件性的信息,如果能够处理好,将对自动问答、自动文摘等任务产生直接而有力的帮助。

本文的模型

Lu的模型之所以能够比原有的系统有那么大的提升,她认为主要原因是两方面,一方面是使用了优化过的BiLSTM模型,另一方面是对输出进行了优化编码。

优化过的BiLSTM模型

Input、Output & Function

  • 训练输入$(w,v)$。

    • $w$代表词向量,本文使用的是GLoVe embedding,然后$v$代表是否是predicate(谓词),若是,则为1,否为0,两个都是100 dim。
  • 输出是y(BIO-tagger)

  • Scoring Function:
    • $f(\boldsymbol{w}, \boldsymbol{y})=\sum_{t=1}^{n} \log p\left(y_{t} | \boldsymbol{w}\right)-\sum_{c \in \mathcal{C}} c\left(\boldsymbol{w}, y_{1 : t}\right)$
    • 可能性减去惩罚值。因为输出的结果有一些限制,这些后面会讲。
  • 为使目标函数最大进行前向反馈和反向反馈进行训练。

BiLSTM

BiLSTM 的内部构造就是简单的LSTM只不过叠加了两层,即一个单元会收到前词信息也会收到后词信息。

Recurrent dropout

为了防止过拟合,我们会使用dropout的方法。过去的dropout我们大多使用随机生成,但是在这样复杂的网络中,如果采取之前的做法会让模型训练的噪声越来越大,为此,我们使用Recurrent dropout,这种dropout每层都是一样的(shared),因此可以减少噪声,达到防止过拟合的效果。

Constrained A* decoding

经过softmax层之后,我们会得到一个概率分布,但是并非选择概率最高的那个tag就是我们所要的tag,因为前词后词的tag选择并非独立,而是会相互影响的,换句话说,我们最后选择tag时会收到一些限制。

作者主要讲了有三种限制:

  • 第一是BIO标签体系的限制,比如I-tag不能在B-前面;
  • 第二是语义角色上的限制,比如核心的语义角色AG0-AG5,在只有一个谓词的情况下,每个最多出现1次;
  • 第三是句法上的限制,比如句法上不同在一个父节点中的两个论元不能被标记为B-X,I-X(X指有同样的语义角色)。

针对这一问题,作者给出了一个惩罚函数来控制最后的分数,她希望选出在考虑了这些限制之后概率最大的结果。

结果

比以前的模型的F1提高了10%。并通过实验证明了:

  • Deep-BiLSTM 可以很好地解决语义角色标注中长距离依存的问题;
  • 训练时对权重进行随机正交分解能够使训练更快开始;
  • 句法信息对语义角色标注是有用的,未来可以考虑在惩罚函数中优化,我觉得就是能将之前特征工程中所总结的一些条件规划到这个模型里来。

后续学习

  • 这个算法模型已经被整合到AllenNLP中,可以学习下如何在本地使用;
  • 如何迁移到中文任务中?

参考资料

Welcome to my other publishing channels