大纲
- 面向文本的知识抽取
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>看做 h 通过 r 翻译到 t 的过程
- 优化目标
势能函数
目标函数
PRA vs. TransE
互补
路径的表示学习
性能比较 - 三元组分类
性能比较 - 链接预测
pTransE
- 加入规则的表示学习
- 多模态的表示学习
- 基于知识图谱图结构的表示学习
用实体周围实体描述实体
Neighbor Context
Path Context
Triple Context = Triple + Path Context + Neighbor Context - 势能函数
- 实验结果:在一对多,多对多,多对一均有好的效果
实体链接总结和挑战
- 融合更多本体特征的知识图谱表示学习算法研发
- 知识图谱表示学习与本体推理之间的等价性分析
- 知识图谱学习与网络表示学习之间的异同
- 神经符号系统