DeepIE/docs/实体抽取算法总结.md
2020-02-01 18:37:15 +08:00

5.6 KiB
Raw Permalink Blame History

实体抽取技术总结

实体抽取任务定义

本文介绍的实体抽取任务主要包括以下3个方面(实体识别;事件主体/要素抽取;事件段落)

  1. 实体识别:即命名实体识别,从文本中抽取实体信息元素,以医疗电子病历为例,例如疾病和诊断检查检验手术药物解剖部位等。现有方法主要分为基于规则的方法、基于统计模型的方法、基于深度学习的方法。

    • 基于规则的方法:在小数据集上可以达到较高的准召,但随着数据集的增大,规则集的构建周期变长,后期维护成本较高,而且模式的可移植性差,缺乏语义泛化能力,召回率普遍较低

      • 构建实体词典匹配通常可采用Trie树/Hashtable、Double array trie、AC自动机必要时应该借助分词和句法工具保证词典匹配出的结果与文本分词后的结果兼容。
      • 人工编写规则,一般由具有一定领域知识的专家手工构建。
    • 基于统计模型的方法:主要采用的模型包括隐马尔可夫模型、条件随机场、最大熵模型等,依赖于人工特征工程

    • 基于深度学习的方法不再依赖于人工特征工程的设计。通常可转化为以下4种方法

      • 序列标注通常基于CRF例如可结合CNNs/LSTM/BERT+CRF进行实体识别基于LatticeLSTM+CRF的方法可引入词汇信息词汇边界通常为实体边界根据大量语料构建词典若当前字符与之前字符构成词汇则从这些词汇中提取信息联合更新记忆状态同时避免了分词所导致的错误LAN提出了一种逐层改进的基于标签注意力机制的网络在比 BiLSTM-CRF 训练解码速度更快的情况下取得了更好的效果。但由于BILOU标注框架每一个token只能属于一种类型转化为序列标注问题并不能解决重叠实体问题。

      • 指针网络通常应用于神经机器阅读理解转化为2个n元分类预测头指针和尾指针但这种方法只能抽取单一片段对于实体识别由于对于同一类型实体文本序列会产生多个实体应转化为n个2元分类预测头指针和尾指针。而对于多类型实体通常可采取2种方法

        • 构建query问题即转化为机器阅读理解QA问题问题即指代所要抽取的实体类型同时引入问题编码一些先验语义知识从而能够在小数据集下、迁移学习下表现更好。
        • 构造多类别的堆叠式指针网络,每一层指针网络代表一种实体类别。

        此外,采取指针网络可以通过相应的解码方式解决嵌套实体问题。

      • 片段排列基于每一连续token构建不同的片段排列然后对片段类型进行识别由于构造了不同的片段排列因此可解决实体重叠问题。

      • 序列到序列生成

  2. 事件主体/要素抽取

    • 事件主体抽取事件主体识别是从文本中找出在事件中充当的主体角色元素具体地给定事件类型抽取对应的事件主体例如对于文本“公司A高管涉嫌违规减持”给定事件类型“交易违规”抽取对应的事件主体“公司A”。对于这类问题通常可采取以下2种方法
      • 转化为分类问题,首先要抽取所有的候选实体,然后基于事件类型(或触发结构)和候选实体进行多
    • 事件要素抽取,给定事件类型(或触发结构),抽取对应的实体要素(论元和论元角色)
  3. 事件段落抽取

    • 自上向下:先抽取事件段落,从相应的事件段落抽取事件实体和关系
      • 优点:
        • 模式集中,利于学习。同一类别的事件段落模式集中、相对集中,利于学习。
        • 简化问题,避免冗余计算。同一类别实体提及可能会存在不同的事件中,先抽取对应的事件段落可以缓解实体冗余的问题。例如,病灶位置存在不同的事件段落中,只做影像事件的病灶关系抽取时需要遍历所有的病灶位置,而采取上述方法,可以避免冗余计算。
        • 一定程度上缓解了类别不平衡问题。例如某些label实体在长文本分布中不平衡从较短文本的事件段落中抽取该label实体时可缓解不平衡问题。
        • 可回溯、可解释。子任务抽取实体,可以回溯到上级的事件段落,具备可解释性。
        • 易于维护、迭代。label事件/实体之间解耦,易于单独维护。
      • 缺点:
        • 适合于父子关系清晰的场景,可能会丢失兄弟关系。
        • 级联任务,误差积累,后续模块不能影响前续模块的决策过程。
    • 自下而上先抽取事件主体再进行关系抽取事件属性最终组合group构建一个“事件”。⚠️1这里区别于传统的事件抽取不过可将事件主体看作触发词同时将事件属性看作事件元素。2这里不去对比传统的实体-关系抽取做法即先抽取实体再进行关系识别因为这种做法计算冗余。3这里考虑Joint方式。
      • 优点:
        • 直接构建事件抽取逻辑,天然考虑兄弟关系。
        • 丢弃多实体维度抽取的方式,转化为事件主体-属性抽取,最大程度避免实体抽取对下游关系误差传播,同时避免实体对之间的冗余计算。
        • 将级联任务转化为Joint方式进行学习 ,后续模块可以影响前续模块的决策过程。

事件主体/要素抽取

事件主体