知识图谱概述

知识图谱的定义:

        知识图谱是一种结构化的知识表示方式,将实体、属性和关系以图形的形式进行表达和组织。它通过对知识进行结构化建模,将不同实体之间的关系进行编码形成一个图结构的知识网络。知识图谱的目标是将人类的知识整合到一个统一的框架中,以便机器可以理解和推理这些知识。

实体、关系,

schema 就是不同实体之间的共计有哪些关系。

知识图谱的构建方式分为

  • 自上而下的构建:医院 --> 科室--> 疾病(建议、宜吃等属性)
  • 自下而上:

流水线方法

        ①首先进行命名实体识别(输入的是文章,模型Bert+CRF,输出是每个单词对应的词性标注),然后对识别出来的实体 进行两两组合,
        ②再进行关系分类(输入是文章+实体,模型一般是Bert+softmax,比如陈天琦POIE的文章) ,最后把存在实体关系的三元组作为输出。 关系抽取的结果也依赖于实体抽取的结果,如CR-CNN、Att-Pooling-CNNs、Att-BiLTSM。
知识图谱概述_第1张图片

三元组(主实体(subject)、关系、客实体(relation object)) 需要给主客实体标记上做区分,是关系抽取到结果。

抽取出实体后,需要讲文章+实体(实体在文章原文中做了标记实体) 用Bert+softmax 做多分类,确定主客之间的是哪种关系。

流水线方法的难点是需要处理很多负样本,假设有10个实体,比如AB、BA 我们将第一个实体当做主实体,第二个当做客实体,那么就有A(10,2)=45种两两排序方式,10个实体中可能有15种关系,其他30中 就不是我们需要的关系也就是负样本。然后就依据schema 对这些负样本进行过滤,只保留我们想要的关系即三元组。

        然后得到的三元组中的实体可能是非标准词,需要将他们映射到标准词上。最简单的方法是做map映射,得到标准实体。

        补充实体上的属性,如果已有历史知识的比如"感冒"了应该"宜多喝热水、忌吃辛辣食品",直接去做映射就可以。如果没有,那就是把属性也看成一个实体,然后利用上面的流程去抽取 “感冒” 和“热水”之间是“宜吃”,和”辛辣食品“之间是“忌吃”的关系

        流水线方法的缺点:实体抽取和关系抽取两个步骤是相互影响的,分开就会丢失很多信息、影响效果。

  • 1)错误传播,实体识别模块的错误会影响到下面的关系分类性能;
  • 2)忽视了两个子任务之间存在的关系,例如图中的例子,如果存在Country-President关系,那么我们可以知道前一个实体必然属于Location类型,后一个实体属于Person类型,流水线的方法没法利用这样的信息。
  • 3)产生了没必要的冗余信息,由于对识别出来的实体进行两两配对,然后再进行关系分类,那些没有关系的实体对就会带来多余信息,提升错误率

联合抽取方法

        联合抽取方法将实体抽取和关系抽取相结合,输入一个句子,通过实体识别和关系抽取联合模型,直接得到有关系的实体三元组。这种可以克服上面流水线方法的缺点,但是可能会有更复杂的结构,如BERT[8]、LSTM-RNN[9]、DGCNN等。
知识图谱概述_第2张图片
关系抽取CasRel - 知乎
第一步:抽取所有的主体词Subject,
第二步:抽取这些主体词所具有的关系、以及对应的客实体(Object)

知识图谱概述_第3张图片

        指针网络对每个词得到一个sigmoid输出后,比如第一个单词 “显”的sigmoid=0.6 >0.5,  这样就会从“显”往后找到最近一个>0.5的词“屏”,然后做中间这些作为一个实体“显示屏”,相当于两个指针,头指针遍历一遍整个句子,标记可能是实体词首词的单词,然后尾指针遍历一遍整个句子,标记可能是实体词尾词的单词。

        Vsub就表示实体,hN是整个句子的表示,黄 色部分是hN+Vsub。Relations中有:出生地、工作地、是哪个国家的首都、等关系

工作量:调研很多方案、做大量实验、确定最终执行方案、方案执行、训练模型、调优、测试上线,里面数据处理也非常浪费时间,每个方案可能需要不同的数据处理方式。

NLP应用工程师的主要是做成熟算法的应用,NLP研究员的话主要是不断的阅读paper,创新、实验。

 

论文

两种方法没有孰优孰劣,各有特点吧。

你可能感兴趣的:(知识图谱,人工智能)