Skip to content

Latest commit

 

History

History
281 lines (166 loc) · 21.6 KB

属性抽取-工业界.md

File metadata and controls

281 lines (166 loc) · 21.6 KB

属性抽取调研——工业界

属性抽取调研——工业界

1. 任务

1.1 背景

信息抽取是从非结构化、半结构化文本中将有价值的信息或知识转化为结构化数据的过程,在抽取的过程中,根据抽取的内容不同又分为实体抽取、关系抽取、事件抽取、属性抽取等。属性抽取一般用于人物属性抽取、产品属性抽取和概念属性抽取中。利用属性抽取技术,可以完善知识图谱构建方法,或者根据实体属性进行实体消歧。

1.2 任务定义

属性抽取(Attribute Value Extraction):属性抽取的目标是从多元数据源中获取特定实体的属性信息。比如人物实体的身高、体重、性别等,商品属性的重量、价格、库存等,都是实体的属性信息。通过属性抽取,获取多个数据源的属性,我们就可以通过丰富的属性信息来较为完整地刻画一个实体。

属性抽取中涉及三个元素:实体、属性名和属性值。不同场景下,属性抽取的任务不同。主要有以下两种:

  • 给定源文本、实体和预先定义的属性名,需要从原文中抽取属性值。
  • 给定源文本和实体,需要从原文中抽取属性名和属性值。

在2014年中文处理资源与测评国际会议第三届评测会议首次提出中文人物属性标注评测任务。任务中确定属性值的类别为名字、值和描述性字符串,确定属性值有单属性值和属性值列表两种。

1.3 数据集

  • MAVE:google发布的基于亚马逊商品数据集的属性抽取数据集
  • AE-110K: 基于商品标题的属性抽取数据集
  • MEPAVE: 基于商品标题的多模态商品属性抽取数据集,包括商品属性的文本描述和商品图片
  • 船舶属性数据集CNShipNet,包括5000条船舶领域标注数据。
数据集 实体数 属性数 语言 paper
MAVE 2.2M 3M EN MAVE: A Product Dataset for Multi-source Attribute Value Extraction
AE-110K 50K 110K EN/CN Scaling Up Open Tagging from Tens to Thousands: Comprehension Empowered Attribute Value Extraction from Product Title
MEPAVE 34K 87K CN Multimodal Joint Attribute Prediction and Value Extraction for E-commerce Product
MAE EN Multimodal Attribute Extraction
CNShipNet CN Semi-Open Attribute Extraction from Chinese Functional Description Text

1.4 评测标准

对于每个属性,预测得到的属性值来源于原文中。当预测属性值和实际属性值在文本中的偏移量完全一致时,视为预测正确。有以下指标可供分析。

  • Accuracy
  • Precision
  • f1

2. 方法总结

可以划分为五类:基于无监督的抽取方法,基于依存关系的半监督的槽填充算法,基于元模式的属性抽取方法,基于深度学习的序列标注方法和基于QA的属性抽取方法。

2.1. 基于无监督的属性抽取方法

2.1.1. 基于规则的槽填充算法

  • 场景:在纯文本中抽取人物属性

  • 论文:《中文人物属性槽填充技术的研究与实现》

  • 方法:通过人工编写规则针对人物场景进行属性抽取,由于人工构造规则模板比较麻烦,可以使用Bootstrapping方法生成规则。

    生成规则的步骤如下:

    • 人工制定规则种子作为初始规则种子集,属性值集合

    • 种子规则模板样例:

      属性槽 规则
      出生地 生于(\w+)
      民族 民族(.*族)
    • 使用规则种子集Spatter,遍历并匹配文本中的属性值,获取候选属性集合h

  • 计算候选属性值集合h中每个属性值的可行度,将可信度较高的三个属性值加入到种子属性值集合中,若收敛,则算法结束,否则,执行4。在计算过程中加入合法性判断,如工作单位的实体类别需要为ORG。

    • 使用属性值集合,遍历文本,由匹配到的属性值的上下文两个词,生成候选模板集合h'
  • 计算候选模板集合h'中每个候选模板的可信度,将可信度较高的3个候选模板加入到规则种子集合中,若收敛,则算法结束,否则执行步骤2

    • 重复2-5到满足一定的次数。

    问题:初始种子的选择,可新模式的筛选规则

  • 效果:

    • 通过自动生成规则进行抽取的效果不好,准确率较低。
    • 规则抽取的范围有限,规则扩充无穷尽。

2.1.2. 基于聚类的属性抽取方法

  • 场景:产品的属性抽取

  • 论文:《An Unsupervised Approach to Product Attribute Extraction》

  • 方法:

    • 数据预处理:找出限定性的短语和名词短语,论文认为一般属性出现在这种词语中
    • 给定一个属性名列表,对上一步筛选出的名词进行聚类,使得描述相同属性名的名词短语合并在同一类中,删除词语稍少的类
    • 从类中抽取属性:计算unigrams, bigrams and trigrams,使用作者定义的属性分数函数进行计算,得分高的则为属性。

2.2 基于依存关系的半监督的槽填充算法

  • 场景:在纯文本中抽取人物属性

  • 论文:《中文人物属性槽填充技术的研究与实现》

  • 方法:

    依存关系:在自然语言处理中,用词与词之间的依存关系来描述语言结构的框架称为依存语法(dependence grammar),又称从属关系语法。利用依存句法进行句法分析也是自然语言理解的重要技术之一。(来自维基百科)。

    使用这种方法对人物进行属性抽取的步骤如下:

    • 为每个属性生成对应的触发词表

    • 根据属性槽特点,识别出句子中所有可能候选属性,比如出生地的NER标注为LOC,感觉是自己设置一些规则匹配一些属性出来

    • 通过句子的依存结构,确认侯选属性与主体实体(这里是人物)的关系。将依存关系树看作一个无向图,顶点对应pagerank算法中的网页,利用pagerank算法,计算两个词在句法上的相关性。

    • 计算<动词,人名,属性词>三元组的得分,取前top4,看动词是否出现在触发词中。

  • 效果:

    • 在有触发词的句子中效果较好,在描述句式灵活且对触发词依赖小的句子中,提取性能不好。
    • 可以做到多属性联合抽取,属性通常具有关联性,如ORG后跟随职业名词时,ORG为工作单位而不是学校,因此TITLE可以识别为职业属性。

2.3 基于元模式的属性抽取方法

  • 场景:这种方法可以被应用于多个场景中,但提取的属性多数为短语,无法提取较长的属性。

  • 论文:《MetaPAD-Meta Pattern Discovery from Massive Text Corpora》

  • 方法:这种方法可以在海量语料库中发现元模式,在属性抽取的场景中,可以使用这种方法发现高质量的属性描述语句,作为属性值。元模式是一种新颖的类型化文本模式结构,在一定的语境下扩展到一个频繁、信息丰富、精确的子序列模式:MetaPAD。MetaPAD使用有效的序列模式挖掘生成元模式候选,学习候选模式的质量评估函数,特征选择具有丰富的域独立上下文特征:频率,信息性。然后挖掘质量元模式通过评估引导的上下文感知分割。其次,MetaPAD将同义元模式的分组过程制定为学习任务,并整合多个方面的特征(包括实体类型,数据类型,模式上下文和提取的实例)。第三,MetaPAD检查每个元模式组中的实体类型分布,并寻找模式最合适的类型级别。包括自上而下和自下而上两种方案,这些方案遍历类型本体,以确保模式的准确性。

    利用NER,名词短语抽取,词典,jieba对文本进行精准的分词,统计动词列表和停用词列表,并标注每个词的类型,如"Disease","NP"等,利用MetaPAD对海量数据进行pattern抽取,并统计pattern频次,通过TrueIE,筛选出描述实体属性的高质量语句pattern,并将其中的"NP"抽出,作为候选属性词。然后,将所有候选属性词生成词典,重新对刚才的语料进行分词,并将所有属性词标记类型为"Attribute",进行第二次pattern抽取,只取与"Attribute"类型词有关的pattern,筛除其中的文本,作为属性值。对于属性值为句子的属性,直接截取相关语句作为答案。

2.4 基于深度学习的序列标注方法

2.4.1 文本序列标注方法

序列标注属于一种较为常用的属性抽取方法,就是将属性值看作较长的实体值,对数据进行标注,使用序列标注模型进行训练和抽取。

  • 场景:这种方法被应用于多个场景中,比如人物属性的抽取,抽取在线评论文本的属性、从无上下文信息的标题中抽取产品属性等,只要有相应的标注数据,就可以使用这种方法进行抽取。

  • 论文:《基于弱监督的属性关系抽取方法》《面向非结构化文本的开放式实体属性抽取》《实体 —属性抽取的GRU+CRF方法》《Personal Attributes Extraction in Chinese Text Based on Distant-Supervision and LSTM》《Bootstrapped Named Entity Recognition for Product Attribute Extraction》《OpenTag: Open A!ribute Value Extraction from Product Profiles》《Scaling Up Open Tagging from Tens to Thousands: Comprehension Empowered Attribute Value Extraction from Product Title》等论文中都使用了这种方法进行抽取

  • 方法:将属性抽取看作序列标注问题,可以采用BIO、BIOE等标注方法。标注需要花费一定的人工成本,在有些场景下,比如人物属性的抽取,可以使用百度百科等百科词条的结构化信息框进行标注,可以降低一定的人工标注成本;同时,标注时也可以使用Bootstrap方法由种子发现更多潜在属性值,这种方法在《Bootstrapped Named Entity Recognition for Product Attribute Extraction》论文中提到,是一种类似于Pakhomov 2002提出的首字母扩写算法的算法。该算法学习如何将首字母缩写与其正确扩展相关联的上下文,作者认为,分类器在经过标记的已知品牌训练集上进行训练,可以学习可以区分当前含义的上下文模式。

    序列标注常使用的模型:CRF模型、神经网络模型如BiGRU+CRF模型等。近年来,预训练语言模型在自然语言处理中得到了较为广泛的应用,在基于序列标注的属性抽取中,依然可以使用bert等预训练语言模型进行特征抽取,经典模型框架为bert + BiLSTM + CRF模型。

    序列标注典型模型结构 BERT+BiLSTM+Attention+CRF

    ​ Opentag将属性抽取视为实体识别任务,将各属性名对应的属性值作为一个类别进行标注。在bert + BiLSTM + CRF 框架的基础上增加了attention机制,用来获取商品标题中的语义信息。此模型解决了此前模型不能发现新属性值的问题。

序列标注优化模型结构

​ SUOpentag将所有属性视为一个类别,解决了不同属性带来的属性类别过多的问题,在新增类别的时候,不需要重新设定新类别并重新训练。同时作者在Opentag模型的基础上,对源文本与属性序列分别编码处理,获取文本和属性只见的对应关系,提高模型效果。

  • 效果:使用这种方法进行属性抽取的效果较为理想,但也具有一定的局限性。

    • 由于属性值的内容和形式多种多样,对于字数较长的描述性属性,这种方法不能取得理想的效果。
    • 对于某些不能使用百科词条数据进行批量的情况,将花费大量的人工成本进行标注,降低了可操作性。
    • 未考虑抽取多个属性值的情况。

    《Semi-Open Attribute Extraction from Chinese Functional Description Text》在给定属性名集合的情况下,借助关系抽取模型TPlinker的思想,从源文本中抽取出属性名(头实体)和属性值(尾实体)的起始位置和结束位置,形成<实体,属性名,属性值>三元组。

2.4.2 HTML网页属性抽取方法

  • 论文:《Simplified DOM Trees for Transferable Attribute Extraction from the Web》
  • 方法:web中每个页面都是用DOM树的结构呈现的。在DOM树中天然形成了实体-属性名-属性值关系,但是也具有大量噪音。
    • SimDOM利用CNN和LSTM对节点的内容进行字母级别和单词级别的编码,和XPath编码、位置编码、叶子类型编码、语义相似度编码拼接成节点编码,结合属性所在源文本编码,首先用二分类器判断是否存在属性值,再抽取出属性值。利用节点编码通过多分类器进行属性名预测。

2.5 基于QA的属性抽取方法

问答算法在实体识别、关系抽取等任务中得到了有效应用,在属性抽取任务中,同样可以将问题建模成一个问答系统的问题。

  • 论文:《Learning to Extract Attribute Value from Product via Question Answering: A Multi-task Approach 》《MAVE: A Product Dataset for Multi-source Attribute Value Extraction 》

  • 方法:

    QA模型结构

    • 特征提取:连接word embedding 、word embedding、position embedding和segment embedding。
    • 内容感知层:主要用于编码输入的内容。输入源文本、问题(即属性名)和CLS标志,输出一个包含整个序列的CLS embedding。模型采用和bert类似的基于Transformer的双向编码器,其中Transformer中应用了自注意力机制。
    • 输出层:设置了一个二分类器,对文本中是否包含属性值进行分类。对内容感知层的输出序列进行回答起始偏移量和结束偏移量的预测。
    • 多任务学习:将三个任务联合起来训练,包括:是否有属性值的二分类任务、问答任务和知识蒸馏任务。
  • 效果:

    • 解决了新属性名出现时模型鲁棒性不够的问题。
    • 使用知识蒸馏缓解过拟合问题,增加模型的泛化能力,在零样本任务中取得较好效果。

3. 热门研究方向

3.1 多模态属性抽取

  • 论文:《Multimodal Joint Attribute Prediction and Value Extraction for E-commerce Product》

    QA模型结构

  • 方法: 多模态信息指包含多个模态的数据信息,如文本、图片、视频、语音等。产品属性通常有文本类的属性,如产品参数、产品介绍等,也会有图片或者视频信息来更加生动地描述此产品。因此,图片和视频也可以视为产品的属性,即产品的属性可以是多模态的。产品图片中通常包含了部分文本类属性的信息,如产品的颜色等。从图片中抽取有效的视觉信息来补充抽取产品属性。

    模型使用Bert获取文本embedding,使用Resnet来编码图片。将两个向量输入到跨模态注意力层中,并添加全局视觉门来过滤无关的视觉噪声。其中文本向量再经过一次注意力层以获取文本之间的关联信息。最终联合多模态信息预测属性名和属性值。

  • 效果:该模型可以通过全局和局域视觉门选择性地应用产品图片信息来增强属性名预测和属性值提取,综合利用了文本和图片两个模态的信息。

3.2 基于主动学习的属性抽取

  • 论文:《OpenTag: Open Attribute Value Extraction from Product Profiles》

  • 方法:将属性抽取转化为类似命名实体识别的序列化标注问题来处理。具体模型在2.4基于序列标注的属性抽取方法中已经提及。作者在面对有限的标注数据时,采用主动学习的方法提高模型效果。主要思路是根据少量的有标签样本训练初始模型,对未知样本进行预测,然后设定询问策略,将符合标准的样本进行标注,加入有标签训练集,如此循环,直到达到设定的停止标准。

    采用了标签翻转(tag flips)作为评判指标:

    • 选择一组序列中,在多个epoch内,模型预测标签变化次数最多的序列,进行人工标注。

4. Paper List

4.1 论文列表

会议/年份 论文 链接
SIGKDD2017 MetaPAD-Meta Pattern Discovery from Massive Text Corpora https://arxiv.org/pdf/1703.04213.pdf
KDD2018 OpenTag: Open Attribute Value Extraction from Product Profiles https://arxiv.org/pdf/1806.01264.pdf
ACL2019 Scaling Up Open Tagging from Tens to Thousands: Comprehension Empowered Attribute Value Extraction from Product Title https://aclanthology.org/P19-1514/
EMNLP2020 Multimodal Joint Attribute Prediction and Value Extraction for E-commerce Product https://doi.org/10.18653/v1/2020.emnlp-main.166
KDD2020 Learning to Extract Attribute Value from Product via Question Answering: A Multi-task Approach https://dl.acm.org/doi/10.1145/3394486.3403047
WSDM2022 MAVE: A Product Dataset for Multi-source Attribute Value Extraction https://dl.acm.org/doi/10.1145/3488560.3498377
ACL2021 AdaTag: Multi-Attribute Value Extraction from Product Profiles with Adaptive Decoding https://aclanthology.org/2021.acl-long.362/

5. 属性抽取工具

DeepKE:DeepKE是一个开源和可扩展的知识图谱抽取工具,覆盖各种信息抽取任务包括命名实体识别、关系抽取和属性抽取。DeepKE 允许开发人员和研究人员自定义数据集和模型,并根据他们的需求从非结构化文本中抽取信息。在属性抽取中,DeepKE复现了Opentag模型,并提供了训练、预测接口。

6. 相关链接

Bootstrapped Named Entity Recognition for Product Attribute Extraction

基于弱监督的属性关系抽取方法

中文人物属性槽填充技术的研究与实现

面向非结构化文本的开放式实体属性抽取

实体—属性抽取的GRU+CRF方法

DeepKE Documentation

7. 参考资源

医疗健康文本的关系抽取和属性抽取

属性和实体抽取(传统方法)