本文介绍常识图谱,首先会讲一段常识图谱的综述作为收场,而后就常识图谱的构建,存储,还有利用进行具体阐明。
常识图谱和咱们的资源页比拟相似,都是须要先构建,而后存储,之后利用。
常识图谱利用宽泛,我会以举荐零碎为例子,阐明常识图谱在举荐零碎中的利用。
常识图谱综述
咱们首先对常识图谱做一个简短的综述。
计算机为什么须要常识?
比方数字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篇)