zoukankan      html  css  js  c++  java
  • Debiasing Distantly Supervised Named Entity Recognition via Causal Intervention

    原文链接

    motivation

    基于远程监督的NER方法(DS-NER)通过通过在普通话文本匹配字典中的实体,自动的生成训练数据,训练NER模型,减少了标注成本。

    然而,DS-NER是存在字典偏差的,这严重地影响了模型的泛化型和鲁棒性。具体来讲,实体字典通常都是不完整的(缺少实体),含有噪音(有错误实体),或者模棱两可(一个名字可以被理解为多种类型的实体,比如华盛顿)。而且模型只会标注在字典中标注为正样本的实体,而忽略其他的实体,这样的偏差的字典不可避免地会让训练出的模型对字典内的名称过拟合,对字典外的欠拟合。我们将这个现象称为字典内部偏差(intra-dictionary bias)。


    图1

    图1(a)展示了DS-NER模型(RoBERTa+Classifier)预测的概率。 可以看到字典内的词和字典外的词预测的概率有很大的差别,而且,这种巨大的偏差导致模型对细微的扰动十分敏感,我们称其为字典间偏差(inter-dictionary
    bias),比如,不同的字典会导致不一样的结果。如图1(b)所示,我们从原始字典中采样4个字典训练,每个字典包含原来的90%的实体,然后训练相同的模型,然而预测的概率差别很大。

    DS-NER因果图


    图 2

    结构化因果模型

    模型结构如图2所示,包含DS-NER流程中7个关键变量:

    1. 用来远程监督的字典\(D\)
    2. 未标注的实例\(X\),每个实例是一个(候选实体,文本),在训练阶段,\(X\)会被\(D\)自动标注
    3. 训练数据中的正样本实例\(X^p\),即训练数据\(X\)中在字典\(D\)中存在的实体。
    4. 训练集中的负样本\(X^n\)
    5. 训练的DS-NER模型\(M\)
    6. 实例的表示\(R\),是使用模型\(M\)编码生成的表示。
    7. 预测的实体标签\(Y\)

    因果过程可以分为两步:远程监督(DS)和命名体识别(NER)。对DS这一步来说,标注新的数据和学习DS-NER模型遵循以下的因果关系:

    • \(D \rightarrow X^p \leftarrow X\)表达远程监督的流程,使用字典\(D\)标注训练数据,并将它们分割为\(X^p,X^n\)
    • \(X^p \rightarrow M \leftarrow X^n\)表示学习过程,其中模型\(M\)是用\(X^p,X^n\)学习出的模型,用字典\(D\)生成出的两部分我们分别记为\(X^p(D), X^n(D)\)

    NER步的因果关系表示如下:

    • \(M \rightarrow R \leftarrow X\)表示用学习的模型编码实例\(X\)
    • \(R \rightarrow Y\)表示实体识别过程,我们将\(X^p,X^n\)对应的实体标签记作\(Y^p,Y^n\)

    字典内偏差的因果

    给定远程标注结果\(X^p,X^n\),DS-NER学习的过程为最大化\(P(Y^p=1,Y^n=0|X^p,X^n,D)\)。然而\(D\)是一个混淆因子,并且引入了错误的关系:

    1. 当最大化\(P(Y=1|X^p,D)\)时,我们希望NER模型只依赖真实的因果路径\(X^p \rightarrow Y\)。然而存在后门路径\(X^p \leftarrow D \rightarrow X^n \rightarrow M\),而\(X^n\)表达了一些假负例,影响了模型。
    2. 当最大化\(P(Y=0|X^n,D)\)时,我们希望NER模型只依赖真实的因果路径\(X^n \rightarrow Y\)。然而存在后门路径\(X^n \leftarrow D \rightarrow X^p \rightarrow M\),而\(X^p\)表达了一些假正例,影响了模型。

    通常,字典内偏差是由D引入的后门路径引起的,这种偏差会误导NER模型对字典中的名称进行过拟合,对实体的上下文进行过拟合。

    字典间偏差的因果

    事实上,我们的模型学习的时\(P(Y|X,D)\)而不是\(P(Y|X)\),从而给\(X \rightarrow R \rightarrow Y\)这条路径带来不同的因果影响。

    在实际应用中,字典会受到多种因素的影响,所以为了增强鲁棒性,解决\(D\)对学习\(X,Y\)间的因果效应十分重要,换句话说,我们希望模型学习dictionary-invariant的特征。

    通过因果干预去偏DS-NER

    基于后门调整去除字典内的偏差

    首先,对于计算\(P(Y^p = 1|do(X^p(D)),X^n(D))\),使用后门调整来消除后门路径\(X^p \leftarrow D \rightarrow X^n \rightarrow M\)的影响:

    \[P(Y^p=1|do(X^p(D))) = \sum_i P(Y^p=1|X^p(D), X^n(D_i)) \times P(D_i) \]

    类似的。消除\(X^p\)中假正例对模型的影响:

    \[P(Y^n=0|do(X^n(D))) = \sum_i P(Y^n=0|X^n(D), X^p(D_i)) \times P(D_i) \]

    训练阶段如何分开\(X^p\)\(X^n\)两部分,喂给模型?

    分别两种情况,两种损失依次更新。

    评估字典概率

    由于我们只有一个字典\(D\),没有其他的可以用来进行后门调整的字典\(D_i\),因此,我们选择从原始字典中随机选择\(K\)个字典子集,每个字典都是均匀分布,\(P(D_i) = \frac{1}{K}\)

    学习因果关系的DS-NER模型

    最小化下面的损失:

    \[L_{BA}(\theta) = - \log P_{pos} (D) - \log P_{neg}(D) \]

    通过因果不变正则化矩阵去除字典间偏见

    我们的目标是提取有用的NER特征,这个特征是不会随着字典改变而变化的,形式化表示如下:

    \[\begin{aligned} \theta ^*_{inv} = \arg\min_{\theta} || &P_{pos}(D_i) - P_{pos}(D_j)\\ +& P_{neg}(D_i) - P_{neg}(D_j) || \end{aligned} \]

    其中\(||*||\)表示两个分布之间的差距。然而这个式子不能直接进行优化,因为\(Y\)是未知的。

    注意到所有\(D\)\(Y\)的影响都是通过路径\(D \rightarrow M \rightarrow R \rightarrow Y\),因此可以通过控制\(X \rightarrow R\)不变,我们的方法是替换\(D\),最小化当前字典和其他字典之间的差别:

    \[L_{CIR}(\theta ; D) = \sum_{i=1}^K \sum_{x \in X} ||R_D (x; \theta) - R_{D^i}(x)||^2 \]

    其中\(R_D(x; \theta)\)指的是实例\(x\)的表示,是通过模型\(M\)收到字典\(D\)的影响的。“其他字典”的生成方式和之前提到的一样。

    最后,合并两个损失项:

    \[L = \sum_i L_{BA}^i + \lambda L_{CIR} \]

    一个人没有梦想,和咸鱼有什么区别!
  • 相关阅读:
    QuickSort(快速排序)原理及C++代码实现
    MergeSort(归并排序)原理及C++代码实现
    InsertionSort(插入排序)原理及C++代码实现
    基于STC89C516的多游戏实现
    环境变量之classpath配置和临时配置
    搭建Java开发环境之配置环境变量
    一本糊涂账项目
    获取目录-Winform
    读取注册表-64位
    拦截窗体关闭、最大、最小事件
  • 原文地址:https://www.cnblogs.com/TABball/p/15730977.html
Copyright © 2011-2022 走看看