知识图谱的生命周期 @知识图谱
- 知识建模--建立本体ontolog
- 建什么
- 概念、实体的类型
- 概念/实体的关联关系
- 要求:可靠性
- 方法
- 自顶向下--专家手工形成数据模式
- 自底向上--实体--类
- 利用现有的标准转换
- 从现有的高质量数据源中进行映射:
- 用知识图谱--抽象建模--来自不同数据源
- 实体抽取与合并---实体/概念
- 属性映射与归并--属性--不同数据源中对实体的描述
- 关系抽取---关系---数据间的关联关系
- 建什么
- 知识获取--控制精度,减少知识融合的难度
- 不同来源
- 不同结构
- 结构化--D2R
- 难点:复杂表数据处理
- D2RQ:关系型数据库-->RDF数据库--的平台
- D2RQ Mapping language--语言--映射规则
- D2RQ engine--实现
利用一个D2RQ mapping 文件将关系型数据库中的数据格式换成RDF - D2R server--接口
- Http server
- 对RDF数据查询接口
- 提供上层的RDF浏览器
- SPARQL查询客户端
- 传统HTML浏览器调用
- Http server
- 半结构化---包装器
- 难点:方便的包装器定义方法--包装器自动生成、维护、更新
- 网站--以模板产生,所以可以用包装器来解析xpath之类的
- 自动学习+人工--保证准确度
- 缺点:网站易变,无统一工具--针对不同结构的数据配置相应的包装器
- 示例
- 纯文本--无结构--信息抽取
- 难点:结果准确率与覆盖度
- 任务
- 实体识别
- 概念抽取
- 关系抽取
- 时间抽取
- 分类
- 开放领域---OPenIE--规模大,精度低--用作初步信息抽取探索
- 特点
- 关系模型事先未知
- 基于语言模式抽取
- 规模大
- 精度低--实用性不高
- 代表
- NELL
- 输入:
- 初始本体
- 每个谓词的一些实例
- web
- 不定期人工干预
- 任务:
- 24*7持续运行(2010-至今
- 每天
- 抽取更多知识补充本体
- 学习如何更好地建立抽取模型
- 结果:超过9000万实例(不同置信度
- 示例
- fragment碎片
- 输入:
- ReVerb
- TextRunner
- NELL
- 特点
- 特定领域-ClosedIE--规模小精度高
- 特点
- 预先定义好的关系
- 基于领域专业知识的抽取
- 规模小
- 精度高
- 典型工具:DeepDive
任意两两结合看是否在一个句子中,看他是否有已有的关系- 针对关系抽取--
- 对指定关系理想(
- 前提,确定实体
- 支持中文--引入相关基础处理工具即可
- 需要大量的标注语料--人工设置标注规则
- 数据文件:未提供专门的针对概念、实体和时间抽取的支持
- 针对关系抽取--
- 特点
- 开放领域---OPenIE--规模大,精度低--用作初步信息抽取探索
- 结构化--D2R
- 方法
- 实体抽取
- 定义:从原始语料中自动识别出指定类型的命名实体
- 序列标注:BIO,BIOES
- 包括
- 实体名
人名、地名、机构名、国家名…… - 缩略词
- 数学表达式
货币值、百分数、时间表达式等 - 例子
- 实体名
- 基于规则与字典的方法
- 依据:人工构造的规则+已知命名实体库,将限定领域的语料进行相同的预处理并与规则集合中的规则进行匹配
- 优点:准确度高
- 缺点
- 成本大--规则和模板要大量专家编写
- 不灵活---难以建立完整而准确的模式集合
- 召回率低
- 基于机器学习的方法
- 隐马尔可夫模型HMM(有向图)
- (x,y):分词得到W=(w1,w2,…,wn),T=(t1,t2,…,tn)为词序列实体标注后的结果
- 目标:maxP(T|W)的标注序列T--------由贝叶斯P(T|W)=P(T)P(W|T)/P(W),其中P(W)是常数。
不可能穷举W和T的所有情况,这是个np难问题 - 计算
class HMM_NER: def __init__(self,char2idx_path,tag2idx_path): # 载入一些字典: # char2idx:字 2 token self.char2idx=load_dict(char2idx_path) self.tag2idx=load_dict(tag2idx_path) self.idx2tag={v:k for k,v in self.tag2idx.items()} self.tag_size=len(self.tag2idx) self.vocab_size=max([v for _,v in self.char2idx.items()])+1 print(self.tag_size,self.vocab_size) # transition=A,emission=B,piquanbuwei0 self.transition=np.zeros([self.tag_size,self.tag_size]) self.emission=np.zeros([self.tag_size,self.vocab_size]) self.pi=np.zeros(self.tag_size) self.epsilon=1e-8#偏置,防止log(0)或乘0 def fit(self,train_dict_path):# fit用来训练模型, print("initialize training…") train_dict=load_data(train_dict_path)# 估计转移概率矩阵,发射概率矩阵和初始概率矩阵的参数 self.estimate_transition_and_initial_probs(train_dict) self.estimate_transition(train_dict) self.pi=np.log(self.pi) self.transition=np.log(self.transition) self.emission=np.log(self.emission) print("initialize training is done") def estimate_transition(self, train_dict): """ 转移矩阵和初始概率的参数估计,也就是bigram二元模型 :param train_dict: :return: """ print("estimate_transition...") # print(train_dict[0]["label"]) for dic in tqdm(train_dict): for char,tag in zip(dic["text"],dic["label"]): # print(self.tag2idx[tag],self.char2idx[char]) self.emission[self.tag2idx[tag],self.char2idx[char]]+=1 self.emission[self.emission==0]=self.epsilon self.emission/=np.sum(self.emission,axis=1,keepdims=True) def estimate_transition_and_initial_probs(self,train_dict): """ 转移矩阵和初始概率的参数估计,也就是bigram二元模型 :param train_dict: :return: """ print("estimate_transition_and_initial_probs...") # print(train_dict[0]["label"]) for dic in tqdm(train_dict): for i ,tag in enumerate(dic["label"][:-1]):#去掉了最后一个句号? # print(tag) if i==0: # print(self.tag2idx[tag]) self.pi[self.tag2idx[tag]]+=1#计数 curr_tag=self.tag2idx[tag] next_tag=self.tag2idx[dic["label"][i+1]] self.transition[curr_tag,next_tag]+=1 self.transition[self.transition==0]=self.epsilon self.transition/=np.sum(self.transition,axis=1,keepdims=True) self.pi[self.pi==0]=self.epsilon self.pi/=np.sum(self.pi) def predict(self,text):# 预测并打印预测结果# 维特比算法解码 if(len(text)==0): raise NotImplementedError("输入文本为空!") best_tag_id=self.viterbi_decode(text) self.print_func(text,best_tag_id) def viterbi_decode(self,text): """ 返回T2_prev获得的最优路径 :param text: :return: """ #序列长 seq_len=len(text) #初始化T1,T2 T1_table=np.zeros([seq_len,self.tag_size]) T2_table = np.zeros([seq_len, self.tag_size]) start_p_Obs_State = self.get_p_0bs_State(text[0]) T1_table[0,:]=self.pi+start_p_Obs_State T2_table[0,:]=np.nan for i in range(1,seq_len): p_Obs_State=self.get_p_0bs_State(text[i]) p_Obs_state=np.expand_dims(p_Obs_State,axis=0)#行向量prev_score=np.expand_dims(T1_table[i-1,:],axis=1)#列向量curr_score=prev_score+self.transition+p_Obs_State T1_table[i,:]=np.max(curr_score,axis=0) T2_table[i,:]=np.argmax(curr_score,axis=0) best_tag_id=int(np.argmax(T1_table[-1,:])) best_tag=[best_tag_id,] for i in range(seq_len-1,0,-1): best_tag_id=int(T2_table[i,best_tag_id]) best_tag.append(best_tag_id) return list(reversed(best_tag)) def get_p_0bs_State(self,char): # 计算p(o|state) char_token=self.char2idx.get(char,0) if char_token==0: return np.log(np.ones(self.tag_size)/self.tag_size) return np.ravel(self.emission[:,char_token])#np.ravel()返回的是视图,修改时会影响原始矩阵 def print_func(self,text,best_tag_id): for char,tag_id in zip(text,best_tag_id): print(char+"_"+self.idx2tag[tag_id]+"|",end="")if __name__=="__main__": model=HMM_NER("dicts/char2idx.json","dicts/tag2idx.json") model.fit("corpus/train_data.txt") model.predict("我在中国吃面包")- 马尔科夫假设:当前状态ti只和迁移状态ti-1有关
- 转换
P(ti|ti-1)也可用这个方法求出后归一化第二个公式去掉负号,或者argmax改成argmin - predict:维特比得到最优路径后解码(0->0.000001以防解码时向下溢出
HMM模型中要处理OOV(Out of vocabulary)的问题,就是测试集里面有些字是不在训练集里面的,这个时候通过观测概率矩阵是无法查询到OOV对应的各种状态的概率的,处理这个问题可以将OOV对应的状态的概率分布设为均匀分布。HMM的三个参数(即状态转移概率矩阵、观测概率矩阵以及初始状态概率矩阵)在使用监督学习方法进行估计的过程中,如果有些项从未出现,那么该项对应的位置就为0,而在使用维特比算法进行解码的时候,计算过程需要将这些值相乘,那么如果其中有为0的项,那么整条路径的概率也变成0了。此外,解码过程中多个小概率相乘很可能出现下溢的情况,为了解决这两个问题,我们给那些从未出现过的项赋予一个很小的数(如0.00000001),同时在进行解码的时候将模型的三个参数都映射到对数空间,这样既可以避免下溢,又可以简化乘法运算。http://www.sohu.com/a/315654629_787107
- 条件随机场CRF(无向图)
- CRF定义:X、Y是联合随机变量。若在给定随机变量X的条件下,随机变量Y构成由一个无向图G=(V,E)表示的马尔科夫模型,则P(Y|X)成为条件随机场---只与邻接节点有关
- 线性链条件随机场(Linear Chain CRF)
- 给定X=(x1,x2,…,xn),Y=(y1,y2,…,yn),P(Y|X)满足马尔科夫性(仅与相邻有关),不仅考虑前,还考虑后
- 目标:argmax P(T|W)的T--与HMM一致
- 计算
权重因子是转移函数、状态函数的量 - 补充
https://www.jianshu.com/p/5d6a03c1f83f- 两个算法
- 预测算法
- 前向后向
- 维特比--得到predict,得到最优路径
https://blog.csdn.net/qq_42189083/article/details/89350890
- 训练算法
https://blog.csdn.net/xueyingxue001/article/details/51499087条件随机场实际上是定义在时序数据上的对数线性模型,其学习方法包括极大似然估计和正则化的极大似然估计。具体的优化实现方法有改进的迭代尺度法IIS、梯度下降以及牛顿法。- 梯度下降
- 迭代尺度法IIS
https://www.cnblogs.com/xueyinzhe/p/7141838.html - 拟牛顿
- 预测算法
- 矩阵形式
http://123.206.33.15:8889/notebooks/ai%E7%AE%97%E6%B3%95/crf.ipynb - 概率计算问题
- 前向后向算法
- 两个算法
- 基于深度学习的方法
- 句子模型/窗口模型
- CNN
- 输入层:将窗口/句子中每一个词的特征按词序拼接,词(可以转化为词向量)
- CNN层:通过CNN变成大小一致的中间表示
- max-poolng
- Hardtanh--输出各个tag上的打分
- LSTM+CRF
http://123.206.33.15:8889/tree/ai%E7%AE%97%E6%B3%95/ner- CRF-decoding
- 用CRF的目的--使符合常理B后是I之类的
- 转移矩阵--作为模型参数一起训练,如果使用经验概率得到,会陷入局部极小
- 状态矩阵--由LSTM得到
- LSTM正常训练--encoding
- CRF-decoding
- 隐马尔可夫模型HMM(有向图)
- 关系抽取
https://blog.csdn.net/yuxuan_hulu/article/details/82783810- 示例
- 分类
- 有监督关系抽取
- 建模为分类问题,每个类对应于一种预先定义的关系
无关系--认为是特殊的关系标签 - 分类
- 基于特征的方法--通过最大熵模型
- 抽取实体对周围的词法、句法、语义特征,训练分类器并对关系位置的关系实例进行预测
- 特征分类
- 基于词的特征:两个实体,及他们见的所有词、实体的中心词……
- 基于短语的特征:两个实体是否处于同一名词短语、动词短语、介词短语中,两个实体之间的短语中心词,两个实体之间的短语标签路径等
- 基于语义的特征:国家名、任务相关的触发词,在wordNet的 relative语义类的词等
- 基于核的方法--SVM
多分类(无关系作为一类)二分类(有无关系)+多分类向量机(什么关系)- 核函数+支持向量机
核函数用以计算两个关系实例的相关度支持向量机https://blog.csdn.net/qq_35992440/article/details/80987664最大化两类距离,找中间分界面 - 以核函数的不同分类
- 序列核
- 句子---词的序列,一个词一个特征向量
- 关系实力--一个特征向量的序列
- 特征--词本身+词性标签+实体类型等
- 核函数定义
s-特征向量的序列l-标签 - 内积--相似度
- 加上相似特征个数
- 将语句分成三段---最终核函数
- 树核--句法树核,依存树核
- 图核:依存图核
- 序列核
- 核函数+支持向量机
- 基于神经网络的方法
- CNN
- RNN
- 递归NN
- 基于特征的方法--通过最大熵模型
- 建模为分类问题,每个类对应于一种预先定义的关系
- 半监督关系抽取
- 动机:节省人工标注成本,只用少量标注数据
- 分类
- 基于自举的方法
- DIPRE(dual iterative pattern relation extraction
- 核心假设:模式-关系对偶性
通过高质量的模式可以找到高质量的关系实例通过高质量的关系实例可以学习高质量的模式 - 少量标注的种子实例-->学习到的模式,用学习到的模式匹配大量无标注数据,再放入关系实例集合中,重新学习模式--》迭代,知道获得足够规模的关系实例
- 示例
- 核心假设:模式-关系对偶性
- DIPRE(dual iterative pattern relation extraction
- 基于标签传播的方法
- 基本思想:有标签、无标签的关系实例--》图中节点,并表示为一个特征向量,节点相似度--》边权重
- 关系实例的相似度--边权
- 向周围传播直至收敛--有标签的信息会通过有权边传递到相邻无标签节点上
其无标签的节点v的标签---有标签节点+v的相邻节点
- 基于主动学习的方法
- 核心思想:允许学习算法询问一些无标签数据的真实标签
- 基于自举的方法
- 远程监督关系抽取
- 初始动机:通过外部知识库代替人工标注--低成本获得大量有标注数据
- 核心思想:如果知识库中有<e1,R,e2>,则语料中所有<e1,e2>均标注为R
- 基于此,用分类问题解决关系抽取问题---句子分类
- at-least-once假设:如果知识库中有<e1,R,e2>,则语料中所有<e1,e2>,至少有一个为R
- 句袋分类:引入多实例学习机制,将<e1,e2>的所有句子组成一个句袋
- 无监督关系抽取
- 将实体对间的字符串--聚类+化简-->关系标签
- 不依赖标注数据,标签(关系类型)未归一化
- 层次聚类的方法
- 标注命名实体,由实体对得到关系实例
- 关系实例有TF-IDF表示--余弦相似度衡量其相似度
- 两个簇的相似度---簇中实例的最大距离(最小相似度)
- 用频繁共现的共有词--簇的标签--关系类型
- 有监督关系抽取
- 属性抽取、实体关系抽取联合抽取
- 实体抽取
- 知识融合
- 分层次融合
- 数据层--关键
- 任务
- 实体合并
- 实体属性合并
- 冲突检测与解决
eg:年龄--出生日期过时的时间年月日与年月
- 任务
- (数据)模式层
- 自顶向下+自底向上(经过人工校验-->可靠性
- 任务
- 概念合并
- 概念上下位关系合并
- 概念属性定义合并
- 数据层--关键
- 方法
- 实体对齐/实体匹配/实体解体
- 定义:判断相同或不同知识库中的两个实体是否指向同一个对象
eg:诗仙和李太白--》李白 - 方法分类
- 成对实体对齐
- 将一个实体对基于属性相似度进行成对比较
- SEEA(self-learning and embedding based method for entity alignment---by 官赛萍
http://xueshu.baidu.com/usercenter/paper/show?paperid=ce69077056173e05e64ed8b0b6c22b05&site=xueshu_se- 模块
- 表示学习
- 区分关系和属性
开始时没有三元组,后续通过学习逐步加入- 属性
- 不同权重:学习时给重要的属性三元组更高的权重
- 统一:即是实体又是属性的元素---一个向量表示
- 属性三元组(h,a,v)
- 优化P(v|h,a,X),实体和属性之间的关联用一个分类模型捕捉
- 用负采样信息
- 关系三元组(h,r,t)
- 优化概率P(h|r,t,X)和P(t|h,r,X)
- 忽略P(r|h,t,X),由于关系r为固定的对齐关系
- 以负采样学习
- 得分函数
- 负样本生成方法
- 1. 在实体集合中随机选择实体h'(或t'),替换(h,r,t)中的h(或t),生成负样本(h',r,t)或者(h,r,t')
- 2. 在选择替换实体的时候,不是完全随机在实体集合中选择,而是在适合关系ݎr的实体集合中随机选取。
- 例如:进行尾部实体替换时,只是用其他的地名替换“上海”,如“成都”,而不会使用人名进行替换:(姚明,出生于,伤害)
- 属性
- 损失函数
- 加上log、正则-->最终loss
- 区分关系和属性
- 实体对齐
- 衡量标准:学习到的实体向量的cos---相似度
- 选与头实体A最相似的尾实体B,形成(A,B)对齐对
- 表示学习
- 机制
- 自学习机制
- 反馈:选cosine相似度前beta个对其实体对构成关系三元组再训练模型
- 迭代直至收敛
- 表示学习-->实体对齐
- 实体对齐--》表示学习
- 自学习机制
- 模块
- 集体实体对齐
- 基于相似性传播
- 利用初始的匹配,以bootstraping方式迭代地产生新的匹配,在此过程中,实体间相似度会随算法迭代不断变化,直至算法收敛,或达到指定条件
eg:两个作者匹配,则与这两个作者有coauthor关系的另外两个相似名字的作者会有较高的相似度,而这个相似度优惠对其他作者的匹配产生影响。 - bootstrap方法--放回抽样计算‘
https://www.jianshu.com/p/369e3f4d239f
- 利用初始的匹配,以bootstraping方式迭代地产生新的匹配,在此过程中,实体间相似度会随算法迭代不断变化,直至算法收敛,或达到指定条件
- 基于相似性传播
- 成对实体对齐
- 定义:判断相同或不同知识库中的两个实体是否指向同一个对象
- 实体链接
- 任务:1或2 1.实体指称词与实体对齐,消歧;2.给出NIL实体的标签
他是谁 - mention指称词是什么:缩略词或实体的简称
eg:Moore---Michael Moore - NIL实体:找不到链接对象的指称词------要对他进行预测
猜一猜他是谁 - 过程
- 候选实体生成
- 目的:降低链接复杂度,给出候选集合--过滤
- 找:指称词可能的指向
- 方法
- 基于字典的方法
- 构建字典:(entity,它的指称词)--来找对应实体
- 基于文本扩展的方法
- 范围:在指称词出现的上下文中找
- 方法:启发式或指代消解---对实体指称词进行扩展--再用其他方法对扩展后的指称词进行候选实体生成
- 基于搜索的方法
- 在知识库上构建的索引去找(Lucene和Elastic Search
- 搜索引擎
- 基于字典的方法
- 候选实体排序
- 排序依据:匹配度
- 方法
- 基于相似度计算的方法
- 编辑距离、Jaccard相似度、Dice系数、TF-IDF相似度等
- 什么的相似度:指称词和实体的
- Wikipeidia Link-based Measure
- 基于机器学习的方法---特征向量输入,二值分类问题
- 基于图的方法
- 一个节点:一个实体指称词/候选实体节点
- 边:实体间的相关性---相似度
- 指称词与其候选实体右边--权重为相似度
- 不同候选实体集合间也有边---WLM得到其权重
- 基于相似度计算的方法
- NIL实体预测
- 指称项特征表示
- 词袋模型
- 语义特征
- 社会化网络
- wiki
- 多元异构语义知识融合
- 聚类
- 层次聚类
- KNN
- k-means
- 指称项特征表示
- 候选实体生成
- 任务:1或2 1.实体指称词与实体对齐,消歧;2.给出NIL实体的标签
- 实体对齐/实体匹配/实体解体
- 难点
- 不同来源不同形态数据的融合
- 海量
- 新增知识的整合
- 多语言融合
- 分层次融合
- 知识存储
- 技术与难点
- 大规模三元组数据的存储
- 知识图谱阻止的大数据的存储
- 事件与时态信息的存储
- 快速推理与图计算的支持
- 关系型数据库(也可以存,其实挺多都用这个存
- 图数据库--各方面性能更好
- 常见的--查询快,但分析不友好
- 分析型图数据库SQLGraph(闭源,收费?
- 查询、分析快
- 支持大图计算
- 图查询比关系快
- 复杂图计算秒及回应
- 图计算比Neo4j快10倍以上
- 内置丰富的图分析算法
- 与SQL引擎像结合--类似sQL接口
- 可定制,可扩展
- 查询结果可视化
- 性能对比--比Neo4j(一个图数据库,单机的,免费)好
- 数据加载
- 路径查询
- 弱联通自图查询
- PageRank分析--PageRank,网页排名,又称网页级别
- 查询、分析快
- 技术与难点
- 知识计算--推理
- 定义:已知-->未知
- 人类:从已知推未知(用已掌握知识,找出蕴含的事实/归纳)
- 按照某种策略的思维
- 基于特定的规则和约束
- 计算机:
- 模拟人类
- 按一定的推控制策略
- 利用形式化的知识,进行机器思维和求解问题的过程
- 人类:从已知推未知(用已掌握知识,找出蕴含的事实/归纳)
- 分类
- 按新知识推出的途径:
- 演绎推理:一般-->个别
- 包含自然演绎、归结原理、表演算等方法
- eg:
- 大前提:三角形有钝角、直角、锐角
- 小前提:不是钝角、不是锐角
- 结论:是直角
- 归纳推理:个别->一般(观察)
- 天下乌鸦一般黑
- 默认推理/缺省推理
- 前提:知识不完全
- eg:如果没有足够的证据证明条件A不成立,则默认A成立,在它成立前提下推理,得到结论
- 演绎推理:一般-->个别
- 按确定性
- 确定性推理:利用的知识精确,推出的结论确定
- 不确定性推理:知识和证据都具有某种不确定性
- 似然推理(贝叶斯推理,基于概率论
- 近似推理(模糊逻辑
- 按结论单调性:
- 单调推理:随着推理的推进和新知识的加入,推出的结果单调递增,越来越接近结论
- 非单调推理:可能需要否定已推出结论,回退(回溯)
- 按是否运用与问题有关的启发性知识:
- 启发式推理:在推理过程中运用解决问题的策略、技巧、经验,加速
- 非启发式推理:不用,一般推理
- 按方法论
- 基于知识的推理:运用知识
- 统计推理:依据统计信息
- 直觉推理:依据常识
- 按繁简:
- 简单推理
- 复合推理
- 按结论的必然性:
- 必然性推理
- 或然性推理
- 推理控制方向
- 正向
- 逆向
- 混合
- 双向
- 时间推理--用时间相关知识
- 空间推理——用空间相关知识
- 案例推理——通过使用/调整老问题的解决方案推理新问题的解决方案
- 按新知识推出的途径:
- 基于符号的表示方法--知识推理
- 基于(产生式)规则的推理--编写相应的业务逻辑,通过使用规则引擎实现推理
- 产生式系统
- 前向推理系统--类似一阶逻辑--按一定机制执行规则达到目的
- 应用
- 自动规划
- 专家系统
- 组成
- 事实集合
用于存储当前系统中所有事实- 事实
- 描述对象
- 形如(type attr1:val1 attr2:val2 …attrn:valn)其中type,val,attr--原子常量
(student name:alice age:20)
- 形如(type attr1:val1 attr2:val2 …attrn:valn)其中type,val,attr--原子常量
- 描述关系(refication
- eg:(basicFact relation:olderThan firstArg:John secondArg:Alice)--简写(olderThan John Alice)
- 描述对象
- 事实
- 产生式集合(规则
- 产生式
- IF conditions(LHS) THEN actions(RHS)
eg:IF(Student name:x)THEN ADD(Person name:x)
- IF conditions(LHS) THEN actions(RHS)
- 产生式
- 推理引擎--控制系统执行
- 模式匹配
- 用规则的条件LHS部分匹配事实集合中的事实,整个LHS都被满足的规则被触发,并加入议程(agenda)
- 解决冲突
- 多个被触发规则中选一个
- 执行动作
- 执行RHS--对湿湿的集合进行一定的操作
- 模式匹配
- 事实集合
- 产生式系统
- 方法
- 谓词逻辑
- Semantic Net语义网 @符号知识表示
- Script脚本 @符号知识表示
- 框架 @符号知识表示
- 语义网web @符号知识表示
- 基于(产生式)规则的推理--编写相应的业务逻辑,通过使用规则引擎实现推理
- 基于分布式表达的推理--知识计算(推理)
- 方法
- 张量分解
- 知识图谱的三元组结构(h,r,t)
- 实体:E1,E2,……,En
- 关系:R1,R2,……,Rn
- 三维张量表示知识图谱---记为Y
- 张量分解-->实体、关系表示
- Yk---第k中关系的矩阵---可以进行低秩分解
A-特征向量Rk--特征值 - 目标函数---使低秩分解与原矩阵差异最小
- 分量形式
- 范数
- 解释:
- 基于翻译——transE
- TransE
- 关系事实=(head,relation,tail)-->向量(h,r,t)
- 思想:把关系看做是头尾实体之间的平移--向量相加---h+r=t(三角法则
- 势能函数--正确的能量最小-稳定
- 损失函数loss
- 最小化基于辩解的损失函数
- fr(h,t)---得分函数
- Mopt:最优边界,从一个候选闭集中选取{0.25,2.5,1,2……}
- 不足:不同的知识图谱,共享相同的候选集合
- 问题:关系多样性--存在多种类型的关系-1-1,1-N,N-1,M-N
- Trans系列:势能函数不同
- TransH--取垂直向量
- TransR--映射到关系空间
- TransA
- 动机:知识图谱有不同的局部性----不同的最优边界
- 优化:自适应地决定不同知识图谱的边界超参Mopt
- Ment---实体依赖的关系超参数
- Mrel---关系依赖的边界超参
- TransE
- 神经网络---SENN
- 现有的关系推断,无法区分建模具体任务(三缺一)
(h,r,t)-->(?,r,t),(h,?,t),(h,r,?)差异显著,应区分对待 - SENN的好处
- 分开三个任务--区分对待
- 通过共享向量表示,在统一的框架中集成这三个任务
- 框架
- 2个共享表示矩阵
- 3个子结构:head_pred,rel_pred,tail_pred---对应三个预测任务
- head_pred:(?,r,t)头实体预测任务
- score:得分函数
- AE是什么?实体的k维表示--特征矩阵
- 预测标签向量ph
- score:得分函数
- rel_pred/tail_pred
- 得分函数
AR----关系的特征矩阵 - 预测标签向量
- 得分函数
- head_pred:(?,r,t)头实体预测任务
- 训练
- loss---标准损失函数
- 有效集
- 二值交叉熵损失
- 自适应加权损失机制
- 根据正确答案数的不同,自适应地制定推断权重
错的多的,更大乘法 - 根据任务难以,给更大的权重---w>1
关系<实体
- 根据正确答案数的不同,自适应地制定推断权重
- 最终损失
- loss---标准损失函数
- SENN+模型
- 关系辅助的实体推理:在测试中,关系预测辅助实体预测
- 给定(?,r,t)并假定h是个有效的头实体
- 如果进行关系预测(h,?,t),则r最有可能具有更高的预测标签,排在前列
- 两个额外的关系辅助向量
- 实体预测的最终预测标签向量
- 关系辅助的实体推理:在测试中,关系预测辅助实体预测
- 现有的关系推断,无法区分建模具体任务(三缺一)
- 张量分解
- 方法
- 定义:已知-->未知
- 知识图谱应用
- 行业知识图谱--特定领域
- 要求:具有一定的深度和完备性、准确度要求高
- 用于:辅助各种复杂的分析应用或决策知识
- 特点:严格且丰富的数据模式、实体属性多且有行业意义
- 数据来源多:内部、互联网、第三方
- 类型多:结构化、半、非(后两者多)
- 数据模式无法预先确定:出现后才知道,模式随数据增长演变
- 数据量大
- 应用
- 电子商务
- 阿里
- 在管控中应用,让判断更智能
- 在搜索中应用让搜索更智能
- 企业社交图谱查询
- 企业最终控制人查询--寻找最大股东
- 企业之间路径发现--衡量企业之间的密切程度
- 辅助信贷审核
- 对客户信息全面掌控--避免信用重复使用,信息不完整
- 反欺诈--基于知识图谱的不一致验证(交叉检验
- 信息分析
- 人物群体分析
- 菲律宾政治人物关系分析
- 电子商务
- 通用知识图谱
- 全领域,用以支持搜索引擎(google的知识图谱
- 用于:互联网的搜索、问答、推荐---面向任务
- 注重:广度--难以生成完整的全局的本体层--难以统一管理
- 应用:
- 智能问答
- 精准搜索
- 关系搜索
- 分类浏览
- 智能推荐
- 知识推理
- 比较
- 通用(广度)+行业(深度)相结合、相互补充
- 通用--行业的基础
- 行业--融入通用
- 行业知识图谱--特定领域