共计 6263 个字符,预计需要花费 16 分钟才能阅读完成。
本文介绍常识图谱,首先会讲一段常识图谱的综述作为收场,而后就常识图谱的构建,存储,还有利用进行具体阐明。
常识图谱和咱们的资源页比拟相似,都是须要先构建,而后存储,之后利用。
常识图谱利用宽泛,我会以举荐零碎为例子,阐明常识图谱在举荐零碎中的利用。
常识图谱综述
咱们首先对常识图谱做一个简短的综述。
计算机为什么须要常识?
比方数字 110,对机器来说,110 就是一个字符串,与其余数字没有太大的差异。
当然能够借助关联剖析,剖析出 110 跟警察,抢劫等相干。然而关联剖析比较复杂,须要借助数据挖掘等相干技术。
如果采纳知识库,只须要构建一条常识,即 110 是报警电话。
人工智能分为三个档次,别离是运算智能,感知智能和认知智能。
运算智能是让机器能存会算;感知智能是让机器能听会说、能看会认;认知智能是解决机器能了解会思考的问题。
认知智能须要常识图谱。
常识图谱是一个大规模语义网,蕴含实体和关系,比方章子怡的丈夫是汪峰;
也蕴含实体和属性,比方章子怡的出生日期是 1979 年 2 月 9 日。
还蕴含实体和概念,比方章子怡是一个女演员;
还蕴含概念之间的关系,比方女演员是演员的子类。演员是人物的子类。
百科图谱个别由 题目,摘要,信息框,标签,图片 等局部组成。
可抽取信息框的内容构建常识图谱,并进行可视化展现。
其中,对于题目了解来讲,函数的提出者,提出工夫这些属性不是咱们所关怀的。
表达式,表示法,三要素是咱们关怀的属性。
常识图谱能够使能搜寻与问答,比方搜寻函数的三要素,能够间接失去后果:定义域,值域,对应法令。
常识图谱还能够使能 Query 补全,比方输出函数的,举荐的候选 Queries 为函数的定义,函数的三种示意办法等。
常识图谱强调世界是由 实体 而不是字符串组成的,比方题目中的函数,f(x), 定义域等在常识图谱中都是一个个实体,而不是字符串。
那么什么是常识图谱呢?
常识图谱是一个大规模语义网,由 实体,概念 等节点和 属性,关系,类型 等边形成。
是许多三元组的汇合。每一个三元组是由主语(subject),谓语(predicate),宾语 (object) 形成。
比方中国,上海,姚明,叶莉等是实体。
比方地理位置,人物是概念。
比方姚明的身高 226 厘米,身高是属性。
比方姚明的配偶是叶莉,配偶是关系。
常识图谱三元组根本类型有四种,别离是实体,关系,实体,比方好将来,创始人,张邦鑫老师;
还有实体,属性,属性值,比方好将来,成立工夫,2003 年;
还是实体,is-a,概念,比方好将来,is-a,上市公司;
还有子概念,subclass-of,父概念,比方上市公式,subclass-of,公司;
不能把 is- a 和 subclass-of 进行混同,就如同不能把汇合的属于和蕴含进行混同一样。
常识图谱分为 模式层 和数据层 。
模式层是数据的模式,是对数据层的提炼。
数据层是具体的数据。
模式层是常识图谱的数据模型,是对数据层的束缚。
咱们以教学图谱为例,能够有 staff, professor, course, laborary, student, PhD student 等概念,以及 professor 和 course 之间的分割,professor teach course。
还有 professor 和 PhD student 之间的分割 Professor supervise PhD student。
这些概念以及概念之间的关系,形成了常识图谱的模式层。
而后在模式层下增加实体,比方 Professor Xu 和 PhD student Wang,以及实体之间的关系,比方 Xu supervise Wang.
常识图谱的构建
接下来,咱们介绍常识图谱的构建。
常识图谱的构建,从 数据起源 来说,包含从结构化,半结构化和非结构化的海量数据中抽取常识,构建图谱。
按 构建者 分,能够分为众包构建和自动化构建。众包构建,就是利用许多人进行编辑,构建常识图谱,维基百科,百度百科都是众包构建的。
自动化构建,就是利用机器进行主动构建。
按 构建形式 分,能够分为自上而下的构建和自下而上的构建。
自上而下的构建先确定模式层,而后增加实体数据到知识库。
自下而上的构建先确定常识图谱的数据层,而后提取数据的模式。
行业常识图谱规模小,比方容易确定模式层,多采纳自上而下的构建形式。
通用常识图谱规模大,数据模式随数据的增长而变动,多采纳自下而上的构建形式。
常识图谱能够只有数据层,没有模式层。
常识图谱模式层构建,也叫本体 (ontology) 构建。须要先确定常识图谱的畛域,比方大学畛域。
而后列出畛域内的术语,比方教职工,行政人员,技术支持人员,本科生,研究生等术语。
而后确定类和类之间的层级关系,比方教职工是退职老师和钻研人员的父类。学生是本科生,研究生的父类。
而后定义术语内涵的规定。比方概念的属性,概念之间的关系,属性或者关系的定义域(domain)和值域(range)等。
常识图谱的构建分为众包构建和自动化构建。因为众包构建波及技术较少。咱们这里次要介绍自动化构建。
这是常识图谱自动化构建的流程。
首先从数据库,百科网站,垂直网站等数据起源获取结构化,半结构化,和非结构化数据。
对非结构化数据和半结构化数据进行实体抽取,关系抽取,属性抽取,并与结构化数据进行整合,造成初步的三元组常识。
而后通过实体消歧失去规范常识示意。
对规范常识构建本体,造成数据模型。
对常识进行推理,发现新的常识。
对常识进行品质评估,从而进行品质管制。
对常识图谱增加新的实体,或者批改旧的实体,对常识图谱进行更新。
对构建好的常识图谱进行存储,不便上游利用。
对常识图谱进行示意学习,将常识图谱离散的符号转化为间断的数值。
对常识图谱进行利用,次要包含内容了解,搜寻,举荐,问答等利用。
这里形容了从半结构化数据抽取三元组的例子,次要波及网页爬取与解析。这里依据信息框(infobox)和标签(tags)来抽取三元组。
对于非结构化数据,先通过预处理,比方全角转半角等,而后进行分词,词性标注,语法解析,依存剖析等 NLP 工具对文本进行解析,进一步进行实体辨认,而后关系抽取,实体消歧,事件抽取等形成三元组常识。
比方文本:已知函数 f(x)的定义域,抽取出函数,f(x), 定义域等实体,而后对实体对进行关系分类;比方函数和 f(x)分类为表达式,比方函数和定义域分类为因素。
造成三元组常识:函数,表达式,f(x),函数,因素,定义域。
因为函数可能是数学中的函数,也可能是计算机中的函数,还须要进行实体消歧。依据上下文判断函数为数学中的函数。
实体辨认是辨认出文本中的 人名,地名,组织机构名,工夫,日期,货币 等类型的字符串。
比方右边这条新闻,辨认出工夫 3 月 23 日 0 时 50 分,辨认出人名特朗普等。
对于学科图谱来讲,须要辨认出相干术语。比方函数,数集等术语。
实体辨认个别建模成序列标注工作。输出一个序列,通过词嵌入,和双向 LSTM 编码,而后用 CRF 进行解码。
其中函数预测的标签是 B -Noun, E-Noun, B 和 E 别离示意 mention 的开始和完结,Noun 示意类型。
f(x)预测为表达式,其中 I -Expr, I 示意 Inside, Expr 示意表达式。
当 BERT 呈现后,因为 BERT 成果好,常采纳 BERT 来对句子进行编码。
当辨认出了文本中的实体,还须要对文本中的实体,两两进行关系分类。
个别咱们会收集并标注一个关系分类的训练集,来训练一个模型,而后用模型对测试数据进行预测。
比方咱们训练好模型后,对测试数据,汇合中的元素有多种个性,包含确定性,互同性,无序性进行预测。
咱们须要预测元素与确定性之间的关系,预测后果为个性。也就是汇合有一个个性是确定性。
因为 BERT 的衰亡,罕用 BERT 来做关系分类。
辨认出文本中的 mention 后,比方辨认出函数,定义域等 mention, 还须要对 mention 进行实体消歧(entity disambiguation)。也就是这个 mention 提及的是哪一个实体。
比方函数能够是数学术语,也能够是计算机中的函数,依据上下文,判断指代的是数学中的函数。
留神到实体链接就是先辨认进去文本中的 mention,而后将辨认进去 mention 链接到知识库中实体,所以说 实体链接 = 实体辨认 + 实体消歧。
除了实体链接以外,还能够有公式链接。比方题目或者解析中某个公式应用了某个定理,能够将这个公式链接到它使用的定理上。
构建好了常识图谱后,咱们须要对构建好的常识图谱进行规模和品质的评估。
规模个别用 常识图谱中有多少个实体,有多少个关系 来形容。
品质个别能够用 准确率 来掂量。因为常识图谱三元组数量多,咱们个别抽取若干个三元组,比方 500 个,对每一个三元组进行虚实判断,而后统计准确率。
右表展现了抽取 8 个三元组,计算准确率的过程。
一般来讲,众包构建的准确率较高,自动化构建的准确率绝对较低。
畛域常识图谱准确率较高,通用常识图谱准确率绝对较低。
常识图谱存储与查问
接下来咱们介绍常识图谱存储与查问。
常识图谱存储和查问能够分为两类,一类是基于图数据库的,一类是基于关系型数据库的。
咱们先介绍基于图数据库的管理系统。
属性图 (property graph) 是图数据库中最罕用的数据模型,由节点和边形成。
比方上面这幅图,有三个节点,每个节点示意一个对象。
第一个节点的标签是 Employee,这个节点的属性用键值对存储,比方姓名为 Amy peters, 出生日期为 1984 年 3 月 1 日,ID 为 1。
Company 和 Employee 之间有边 HAS_CEO,边上也能够有属性,比方 Company has CEO 开始日期为 2008 年。
上面是一个图数据库查问 1 号节点意识的节点中,年龄大于 30 的节点加入过的我的项目。
其中 Gremlin 和 Cypher 是图数据库两种查询语言。
Gremlin 是过程式(procedural)语言;用户需指明具体的导航步骤,也就是在图上怎么走;它是业界规范查询语言,除了 Neo4j 外,简直所有图数据库均反对。
Cypher 是 Neo4j 专用语言,它是申明式(declarative)语言;用户只需申明“查什么”, 无需关怀“怎么查”;
当然咱们也能够利用关系型数据库对常识图谱进行存储。咱们能够将图数据用三元组示意,将每一个三元组作为表中的一行记录。
上面是查问生于 1850 年,死于 1934 年,创立过公司的人。
采纳关系型数据库存储,多跳查问会产生自连贯(self-join)操作。
比方 A ->B 为一跳,A->B->C 为两跳。
也能够采纳程度表的形式进行存储,每一行存储一个主语对应的所有的谓语和宾语。
这种存储形式适宜于谓词较少的常识图谱。
主语个别只在极少的列上有值,导致存储空间节约。
并且这种存储形式很难存储多值属性或者一对多关系。
比方函数的三要素是定义域、值域和对应法令,用程度表存储这种多值属性,须要对值拼接后能力存储。
也能够依照实体的类型对常识图谱进行划分,这种形式适宜于实体类别较少的状况。
同样地,存储多值属性或一对多关系须要对值进行拼接。
也能够依据谓词对常识图谱进行划分。对每一个谓词创立一张表。这种形式解决了数据存储稠密性问题,也能够存储多值属性。
然而波及多个谓词的查问会导致多表连贯操作。
常识图谱的利用
常识图谱的利用有很多,咱们次要介绍常识图谱在举荐零碎中的利用。
如图是一个新闻举荐的例子,假如某个用户看过一条新闻,这个新闻的内容是:
Boris Johnson Has Warned Donald Trump To Stick To The Iran Nuclear Deal(鲍里斯·约翰逊正告唐纳德·特朗普保持伊朗核协定)。
从这条新闻中提取出 4 个实体,而后对这些实体做一跳,两跳,三跳扩大,会发现这些实体都指向另外一条新闻:
North Korean EMP Attack Would Cause Mass U.S. Starvation, Says Congressional Report(国会报告称,朝鲜电磁脉冲攻打将导致美国大规模饥荒)。
这 2 条新闻的单词都不一样,利用常识图谱能够发现他们底层之间的关联。
KG 能给举荐零碎带来什么?
首先常识图谱能够进步举荐零碎的 精度(Precision),更精确地发现 item 之间的关联,比方 Cast Away 和 Forrest Gump 都是 Tom Hanks 主演的。
常识图谱还能够进步举荐零碎的 多样性(Diversity)。电影能够通过主演扩大,也能够通过电影类型扩大,还能够通过导演来扩大,找到类似的电影。
常识图谱还能够进步举荐零碎的 可解释性(Explainability),常识图谱中的门路能够用来解释为什么会举荐这部电影。比方某个用户喜爱 Cast Away 这部电影,零碎举荐了 The Terminal 这部电影,因为他们有雷同的主演。
已知一个用户的汇合 Users,一个物品的汇合 Items,用户和物品的交互矩阵 YYY,yuv=1y_{uv}=1yuv= 1 示意用户点击过某个物品,0 示意未点击。
每个物品 vvv 在 KG 中对应一个实体。物品是实体的一个子集。
指标是学习一个函数 FFF,给定 uuu,vvv,预测点击率 y^uv\hat y_{uv}y^uv,Θ\ThetaΘ 是模型的参数。
DKN 办法 是给出一段新闻,提取新闻中的实体,依据这些实体,构建一个常识图谱子图,对子图做 embedding,失去每个实体的 embedding。
另外,实体的街坊节点能够作为该实体的上下文信息。将这些街坊实体的 embedding 求均匀,失去该实体的上下文示意。如上图公式中 e¯\bar ee¯就是实体 eie_iei的上下文 embedding。
后面介绍了实体示意,实体上下文示意,另外联合词向量,造成三个通道,进行卷积和池化,失去这个句子的示意,咱们管这个办法叫 KCNN。
假如用户点击过 3 条新闻,来了一个候选新闻,须要预测用户对候选新闻的点击概率。
用 KCNN 对这 4 条新闻做 embedding,失去 4 个特征向量。
用 Attention Net 计算用户看过的每一条新闻与候选新闻之间的相似性。
用相似性得分对观看记录求加权均匀,失去用户示意(User embedding)。
将用户示意和候选新闻示意拼接,用多层感知机(MLP)预测的点击率。
方才 DKN 模型仅融入了实体的一跳信息,RippleNet除了融入一跳信息外,还融入了实体的两跳,三跳信息。Ripple 是水波的意思。
另外还有间接利用 ** 图神经网络(GNN)** 对常识图谱进行示意。
用图神经网络解决常识图谱须要先将常识图谱中的关系转化为数值。对于每一个用户,引入一个打分函数,用于对常识图谱中每一个关系进行打分。不同用户同一个关系打分不一样,分值高下跟用户的偏好相干。
而后利用图神经网络进行前向流传。其中 AuA_uAu是某个用户 uuu 对应的邻接矩阵。
DuD_uDu是顶点的度矩阵,这是一个对角矩阵。
WlW_lWl是训练参数矩阵。
HlH_lHl,Hl+1H_{l+1}Hl+1是实体对应的 embedding 矩阵。
σσσ 是一个非线性函数。
咱们总结一下。
谢谢浏览!如有谬误,请批评指正~
资源举荐
- 常识图谱相干学习材料合集
- 东南大学《常识图谱》研究生课程
作者简介
岳祥为好将来自然语言解决高级工程师
招聘信息
好将来技术团队正在热招前端、算法、后盾开发等各个方向高级开发工程师岗位,大家可扫描下方二维码或微信搜寻“好将来技术”,点击本公众号“技术招聘”栏目理解详情,欢送感兴趣的搭档退出咱们!
兴许你还想看
DStack– 基于 flutter 的混合开发框架
WebRTC 源码剖析——视频流水线建设(上)
“ 考试 ” 背地的迷信:教育测量中的实践与模型(IRT 篇)