Event Extraction as Machine Reading Comprehension阅读笔记
Motivation
- 很多研究忽视了事件抽取和阅读理解之间的关系
- 之前的使用阅读理解的工作都有监督地手动设计问题模板
本文的方法制造的模板与上下文相关
Approach
Trigger extraction
因为trigger word一般是动词,不好设计问题,因此使用一个特殊标记[EVENT]
来表示需要查找trigger word。
将带有[EVENT]
标记的序列通过编码器,得到每个token的向量表示,通过一个分类器得到各个类别的概率\(p(l|c_i) = o_{c_i}^l\),\(c_i\)表示Token,\(o\)表示token向量,\(l\)为事件类型。
无监督问题生成
假设每个问题由两部分组成:query topic和question-style event statement。
- query topic generation
- 以模板的方式定义每个argument对应的wh- word,如victim用“who”
- 剩余部分称为Question Contextualization
- 将其视为一个无监督的翻译任务,目标是将一个描述性句子映射为疑问性句子(也可以视为风格迁移)
- 首先构造对应于这个翻译任务的数据集。作者从wiki和QA网站收集了大量的未对齐的问题和陈述语句。限制所有的陈述语句都是关于一个动词的窗口,并去掉所有问题语句的疑问部分(wh- word)。
- 构建从疑问句到陈述句和从陈述句到疑问句的两个模型,每个模型都有编码器和解码器。
- 训练使用了
- In-domain auto-encoding
- De-noising auto-encoding
- Cross-domain online-back translation
- 预测时选择对应陈述概率最大的疑问句部分,和之前的wh-短语连接起来,就完成了问题的生成
Event Argument Extraction
将问题表示为\(q={q_1,\dots,q_m}\),输入序列表示为\([CLS]q[SEP]c\),另外考虑到问题和描述中的公共部分可能表达和事件有关的信息,因此引入2个新的向量表示这个单词是否在\(q,c\)中均出现。
\[p_{w_i} = \left \{ \begin{matrix} p_{sh} \in \mathbb{R}^{d_1} & \text{ if } w_i \text{ shared by }q \text{ and } c\\ p_{no} \in \mathbb{R}^{d_2} & \text{otherwise} \end{matrix} \right .
\]
从BERT的最后一层得到编码向量\(H_c^q\)
Adaptive Argument Generation
计算每一个token是否属于argument的开始或结尾。
\[p_{start} = \text{softmax} (H_c^q W_{start})\\
p_{end} = \text{softmax} (H_c^q W_{end})
\]
由于问题可能没有答案,因此,使用\([SEP]\)对应的位置来表示是否是“no-answer”,只有当start+end的分数和大于CLS位置的分数,才认为start到end是合法的span。
Comment
问题生成部分认为解释比较抽象,包含如“如何将role的信息引入到问题生成中;如何对其问题和答案”等疑问。需要进一步看代码才能理解。
一个人没有梦想,和咸鱼有什么区别!