摘要
Span extraction旨在从原始文本中抽取出一些文本span (如单词或短语)。引入标签信息(如实体的tag)有助于提升文本表示,可以将span extraction任务看作一个问答任务,同时输入问句和标签信息。但问答的形式没有充分利用标签信息,且训练和预测的效率都比较低。为了解决这些问题,论文提出了一种新的融合标签信息的方式,该模型分开编码原始文本和标签,并通过一个融合模块将标签融入进文本表示中。
相关背景/动机
1. 为什么要将span extraction任务转换为问答形式?
传统的span extraction可以看作是一个序列标注问题,序列标注给文本中的每一个token打一个标签。但是这种方式将每个label看作是独立且没有意义的one-hot编码,忽略了标签的先验知识。而将span extraction看作问答形式可以将标签信息引入进来。QA形式将标签的描述文本和原始文本进行整合作为模型的输入文本。
拿NER举个例子,若要抽出"PERSON"实体,模型的任务便为找出问题"which person is mentioned in the text, in which a person represents a human or individual?"的答案。
2. QA形式的span extraction有什么缺陷?
- Inefficiency: QA形式将question(question中包含标签信息)与text拼接作为输入 ([CLS]question[SEP]text[SEP])并共同编码question和text。这就需要将每个text编码转换为C个<question, text>对(C为标签个数),这大大增加了样本数量和句子长度,也就消耗更多训练和预测时间。
- Underutilization: 我们一般通过自注意力机制将标签信息融合进文本表示,但将注意力可视化后可以看到,注意力更多的放在了text而不是question,因此标签信息没有被充分利用。
3. 针对上述缺点,该模型提出的优化点
- 用两个编码器分别对question和text进行编码 (如图2),这样样本量不会变为原来的C倍。由于标签样本量太少,从头开始训练question的编码器比较有挑战, 所以论文采用了两个编码器权重共享的方式,通过预训练模型来学习标签知识,也不会增加额外的参数。
- 提出了一个融合模块来整合标签信息和文本表示,该融合模块本质上是一个语义导向的注意力模块。
模型结构
LEAR模型(图3)包括三个主要模块:
1. 语义编码模块
2. 语义融合模块
3. span解码模块
模型输入为text X, label annotations (question) Y (类别集合C的标签描述)。这两个输入分别由权重共享的两个编码器编码,得到的两个向量再经过语义融合模块,生成融合了标签知识的文本表征,该表征用来预测每个token是否是某类别标签的起始位置或结束位置。下面将详细地介绍这三个模块。
Semantics Encoding Module
两个权重共享的编码器分别编码文本和标签描述,
Q: 两个编码器为什么要权重共享?
A: 因为label annotation的样本量相对文本样本来说较少,从头训练label annotation的编码器的话难以达到理想的效果,通过共享text encoder的权重的方式,可以得到较好的表征,同时也没有额外的参数产生。
Semantic Fusion
该模块的目的是将标签知识引入文本表征,为了实现这个目的,论文设计了一个语义导向的注意力机制。
首先将和
输入一个全连接阶层,两个表征映射到同样的特征空间:
接下来,利用注意力机制计算每个label annotation对文本中每个token的重要程度
其中,是文本
的第i个token,
是标签类别c的第j个token。
再通过计算得到的注意力将标签信息加入到文本表示中:
对于每个category c, 都有不同的token embedding. 最终的文本表示为
Span Decoding
我们采用start/end tagging的方式来标注要提取的span。对于每个token, 计算
,
是对输入矩阵的每一行求和的函数。
, 每个元素表示token
是类别c的起始位置的概率。同样的方式,我们可以得到
.然后我们根据相同类别的span是否会嵌套(这里指包含和重合)来提取结果。
Flat Span Decoding 这是相同类别的span不嵌套的情况。一般采取最近匹配原则 (near matching principle) - 类别c的起始位置对应的结束位置是离它最近的类别c的结束位置。而论文采用的是启发式匹配原则 (heuristic matching principle) - 也就是对同一类别匹配概率高的起始位置和结束位置(更多细节件论文附录A.1和A.2)。
Nested Span Decoding 这是相同类别的span嵌套或重合的情况。这时启发式匹配不再适合,论文采用了和BERT-MRC相同的方式,用一个二分类器预测候选的start/end位置对能够匹配为一个span的概率:
, 当
时可看作一个span.
Loss Function
对于输入文本, 定义集合
, 表示文本的每个位置是否是类别c的起始位置,同样的道理定义集合
. 根据这两个集合定义start loss
和end loss
.
对于Flat Span Extraction, 总的损失函数为.
对于Nested Span Extraction, 首先定义
其中,是上面计算的start/end对可以作为类别c的span的概率,
定义了一个0/1矩阵,
表示
和
是类别c的真实span。
也是一个0/1矩阵,当
或
时
。
最终损失函数为,
和
都是超参数。