知识抽取与挖掘(二)

大纲

  • 面向文本的知识抽取
    Deep Dive关系抽取实战
    开放域关系抽取
  • 知识挖掘
    实体消岐与链接
    知识规则挖掘
    知识图谱表示学习

面向文本的知识抽取

关系抽取分类

KBC系统
  • 填充、融合不同来源的知识
    输入:非结构化的期刊文章,半结构化的html、table等
    输出:结构化知识库
Deepdive
  • KBC系统的自动搭建框架
    特征工程+distant supervision+图优化
    考虑全局最优而不是某个三元组最优
    帮助领域专家自主搭建KB
  • 技术难点
    设计一个KBC系统的工作流,包括文本预处理、特征抽取、统计推理与学习、迭代优化等;
    利用分布式数据库大幅度提升系统性能。
框架实战:抽取上市公司中的股权交易关系
  • 工程组成:
    app.ddlog:dd,deepdive,log,类dialogue的语言
    db.url
    deepdive.conf
    input文件夹:数据
    udf文件夹:python
  • 先验数据导入
    准备先验数据(国泰安);
    在app.ddlog中定义相应的数据表;
    命令行生成postgresql数据表;
    $ deepdive do pos_transaction
  • 待抽取文章导入
    准备待抽取的文章,名为articles.csv,放在input文件夹下;
    在app.ddlog中定义文章数据表,包括doc_id和content;
    deepdive do articles导入文章到postgresql里
  • 工作流
  • 文章数据预处理
    对数据库中文章数据进行NLP解析;
    在app.ddlog中定义sentence表,存放POS、NER字段;
    定义NLP处理的函数nlp_markup;
    nlp_markup.sh
    函数调用,从articles表中读取输入,输出存放在sentences表中;
    编译执行$ deepdive do sentences,生成sentences表
  • 候选实体抽取
    抽取文本中的候选实体;
    在app.ddlog中定义候选实体表;
    定义候选实体抽取的函数map_company_mention
    map_company_mention.py
    函数调用,从sentences表中读取输入,输出到company_mention中
    Join实体表,筛选出在同句中的不同实体,生成候选实体对;
    编译,生成候选实体对表
  • 特征抽取
    抽取候选实体对的文本特征;
    在app.ddlog中定义特征表;
    定义特征抽取的函数extract_transaction_features;
    输入为sentence的NLP结果,输出NLP组合的各种特征
  • 样本打标
    从候选实体对中标出部分正负例;
    在app.ddlog中定义标签表;
    导入所有的候选实体对,初始标签均为0
    将db数据与候选实体对关联,关联到权重标注为+3,规则标记为从知识库得到
    通过规则再标注一部分实体,输入候选实体对的关联文本,进行打标;
    将规则抽取的标签也加入到transaction_label中
    规则在supervise_transaction.py中定义:
    最后,在多条规则和知识库标记的结果中为每队实体做vote,执行deepdive do transaction label resolved 生成最终标签。
  • 因子图构建
    定义最终存储的表格;
    定义一系列推导关系,构建因子图;
    根据打标的结果,灌入已知的变量
  • 因子图定义
  • 吉布斯采样
  • 权重学习
    最大化和先验变量取值一致的possible world的数目;
    在采样得到的样本上随机梯度下降;
    deepdive针对硬件做了优化,支持分布式、增量式训练;
    执行deepdive do probablities,开始训练。
  • 数据表
  • 其他配置文件
  • 迭代调试

总结-deepdive

模快化,便于更改替换;
NLP影响较大,可以考虑其他端到端模型;
便于分析和迭代开发。
http://www.openkg.cn/tool/cn-deepdive

开放域关系抽取

IE的发展趋势
主要系统
第一代OpenIE系统
第二代OpenIE系统

  • OpenIE的应用
    直接回答问题,形如(A1,?,A2)的问题
    用作其他NLP的特征:
    文本理解,相似度比较

第二部分:知识挖掘

实体链接:给定一片文本中的实体指称(mention),确定这些指称在给定知识库中的目标实体(entity)。

  • 实例一:百科型知识库,适用于长、短文本场景
    生成模型,先计算联合概率,再计算条件概率。
  • 实例二:百科型知识库,适用于长文本场景
  • 示例三:百科型知识库,适用于长文本场景
    候选实体间语义相似度计算(cos)
实体链接总结
  • 知识库的变更:从百科知识库发展到特定领域知识库;
  • 实体链接的载体:从长文本到短文本,甚至到列表和表格数据;
  • 候选实体生成追求同义词、简称、缩写的准备到从Mention到实体候选的查找;
  • 实体消岐则考虑相似度计算的细化和聚合,以及基于图计算协同消岐。

规则挖掘

主要方法

  • 基于归纳逻辑编程(ILP)的方法
  • 基于统计关系学习(SRL)的方法
    目标:根据已知三元组对未知三元组预测;
    将连接两个实体的路径作为特征来预测其间可能存在非关系
    路径排序算法-path Ranking Alo(PRA)
  • 基于关联规则挖掘(ARM)的方法
    数据挖掘>>>事务表

知识表示学习

自然语言中的表示学习;
建立统一的语义空间,语义可计算。

  • 实体预测和推理
  • 关系推理
  • 推荐系统
TransE

将三元组看做 h 通过 r 翻译到 t 的过程

  • 优化目标
    势能函数
    目标函数
PRA vs. TransE

互补

路径的表示学习

性能比较 - 三元组分类
性能比较 - 链接预测
pTransE

  • 加入规则的表示学习
  • 多模态的表示学习
  • 基于知识图谱图结构的表示学习
    用实体周围实体描述实体
    Neighbor Context
    Path Context
    Triple Context = Triple + Path Context + Neighbor Context
  • 势能函数
  • 实验结果:在一对多,多对多,多对一均有好的效果

实体链接总结和挑战

  • 融合更多本体特征的知识图谱表示学习算法研发
  • 知识图谱表示学习与本体推理之间的等价性分析
  • 知识图谱学习与网络表示学习之间的异同
  • 神经符号系统

你可能感兴趣的:(知识抽取与挖掘(二))