知识图谱技术原理介绍
-天池山景区
知识图谱技术原理介绍
近两年来,随着
Linking
Open
Data
1
等项目的全面展开,语义
Web
数据源的
数量激增,大量
RDF
数据被发布。互联网正从仅包
含网页和网页之间超链接的
文档万维网(
Document <
/p>
Web
)转变成包含大量描述各种实体和实体之间丰富关
系的数据万维网(
Data
Web
)
。在这个背景下,
Google
、百度和搜狗等搜索引擎
公司纷纷以此为基础构建知识图谱,分别为
Knowledge
Graph
、知心和知立方
,
来改进搜索质量,
从而拉开了语义搜索的序幕。
下面我将从以下几个方面来介绍
知识图谱:
知识图谱
的表示和在搜索中的展现形式,
知识图谱的构建和知识图谱
在搜
索中的应用等,从而让大家有机会了解其内部的技术实现和各种挑战。
知识图谱的表示和在搜索中的展现形式
正如
Google
的辛格博士在介绍知识图谱时提到的:
p>
“
The world is not made of
strings , but is made of things.”
,知识图谱旨在描述真实世界中存在的各种实体或
概念。其中,每个实体或概
念用一个全局唯一确定的
ID
来标识,称为它们的标
识符(
identifier
)
< br>。每个属性
-
值对(
attri
bute-value
pair
,又称
A
VP
)用来刻画实
体的内在特性,
而关系(
relation
)用来连接两个实体,刻画它们之间
的关联。知
识图谱亦可被看作是一张巨大的图,
图中的节点表示
实体或概念,
而图中的边则
由属性或关系构成。上述图模型可用
W3C
提出的资源描述框架
RDF
p>
2
或属性图
3
(<
/p>
property graph
)
来表示
。
知识图谱率先由
Google
提出,
以
提高其搜索的质量。
为了更好地理解知识图谱,我们先来看一下其在搜索中的展现形式,即
知识卡
片(又称
Knowledge Card
)
。知识卡片旨在为用户提供更多与搜索内容相关的信
息。<
/p>
更具体地说,
知识卡片为用户查询中所包含的实体或返回的答案提
供详细的
结构化摘要。从某种意义来说,它是特定于查询(
qu
ery
specific
)的知识图谱。
例如,当在搜索引擎中输入“姚明”作为关键词时,我们发现搜索结果页面的右
侧原
先用于置放广告的地方被知识卡片所取代。
广告被移至左上角,
而广告下面
则显示的是传统的搜索结果,
即匹配关键词的文档列
表。
这个布局上的微调也预
示着各大搜索引擎在提高用户体验和
直接返回答案方面的决心。
图
1
从左到
右依
次是
Google
、百度和搜狗在
搜索结果首页中所展现的与姚明相关的知识卡片。
1
2
/
/TR/rdf-concepts/
3
/tinkerpop/blueprints/wiki/Property-
Graph-Model
图
1. <
/p>
当搜索“姚明”时,
Google
、百度
和搜狗所展示的知识卡片
虽说三大搜索引擎在知识卡片的排版
和内容展现上略有不同,但是它们
都列出了姚明的身高、体重、民族等属性信息。此外,
它们均包含“用户还
搜索了”或“其他人还搜”的功能来展现相关的人物。该功能允许用
户去浏
览其他与姚明相关的人物的详细信息。
细心的读者也发现
Google
在其知识卡
片中也展示了
很多与姚明相关的图片,以图文并茂的方式来展示姚明的方方
面面。百度则结合了百度风
云榜的信息,列出了姚明的类别(体坛人物)及
其百度指数
(今
日排名和今日搜索热度等信息)
。
在搜索结果页面的左上角
p>
(在
图中未给出)
,百度还展示了其特有的
专题搜索,包含了与姚明相关的百科、
图片、微博、新闻、音乐、贴吧和视频等七大类的
结果,基本涵盖了用户最
基本的需求。搜狗在列出与姚明相关的百科、图片,电影和最新
相关消息等
专题的同时,其知识卡片额外显示了诸如“主持电视节目”
< br>、
“效力篮球队”
、
“人物关系
”等各种细粒度的语义关系。当遇到含有歧义的用户查询时,知
识卡片还会列出其他可能
的查询目标对象。在上面的例子中,搜狗还列出了
一项“您是否要找”的功能,列出一位
也叫姚明的一级作曲家。该功能用于
去歧义,在显示最相关实体的同时也给出其他可能的
对象,达到去歧义的作
用。当搜索“李娜”或“长城”时,
Go
ogle
和百度也在其知识卡片下方展现
了类似的功能。除了给
出著名网球运动员李娜和万里长城之外,它们还列出
歌手李娜和长城汽车供用户选择和浏
览。更值得一提的是,当在搜狗知立方
中输入“姚明的老婆的女儿的身高”如此复杂的查
询时,其会直接返回其女
儿的姓名(姚沁蕾)以及其身高(
11
0cm
)
,并给出推理说明“
叶莉的女
儿是
姚沁蕾”
。
如此详实的说明不仅为
返回的答案提供了很好的解释,
从另一个侧
面也展示了知识图谱
的强大,其不仅能识别出运动员姚明,也能抽取出关系
“老婆”和“女儿”和属性“身高
”等信息。当我们将查询修改为“姚明的
妻子的女儿的身高”
时
,
依然返回相同的结果,
这也意味着知识图谱知道
“妻
子”和“老婆”代表相同的含义。
通过上述的介绍,大家应该对知识图谱的表示以及其在搜索中的展现形式有
了更深的了解。接着,我将介绍知识图谱的构建以及如何在搜索中应用知识
图谱返回相应
的知识卡片以及答案。
知识图谱的构建
1.
知识图谱的规模
据不完全统计,
p>
Google
知识图谱到目前为止包含了
5
亿个实体和
35
亿
条事实
(形如实体
-
属性
-
值,
和实体
-
关系
-
实体)
。
p>
其知识图谱是面向全球的,
因此包含了实体和相关事实的多语言描述
。不过相比占主导的英语外,仅包
含其他语言(如中文)的知识图谱的规模则小了很多。
与此不同的是,百度
和搜狗主要针对中文搜索推出知识图谱,其知识库中的知识也主要以
中文来
描述,其规模略小于
Google
的。
2.
知识图谱的数据来源
为了提高搜索质
量,
特别是提供如对话搜索和复杂问答等新的搜索体验,
我们不
仅要求知识图谱包含大量高质量的常识性知识,还要能及时发现并添
加新的知识。在这种
背景下,知识图谱通过收集来自百科类站点和各种垂直
站点的结构化数据来覆盖大部分常
识性知识。这些数据普遍质量较高,更新
比较慢。
而另一方面,
知识图谱通过从各种半结构化数据
(形如
HTML
表格)
抽取相关实体的属性
-
值对来丰富实体的描述。
此外,
通过
搜索日志
(
query log
)
p>
发现新的实体或新的实体属性从而不断扩展知识图谱的覆盖率。相比高质量
< br>的常识性知识,通过数据挖掘抽取得到的知识数据更大,更能反映当前用户
的查询
需求并能及时发现最新的实体或事实,但其质量相对较差,存在一定
的错误。这些知识利
用互联网的冗余性在后续的挖掘中通过投票或其他聚合
算法来评估其置信度,并通过人工
审核加入到知识图谱中。
a)
百科类数据
维基百科
4
,通过协同编辑,已经成为最大的在线百科全书,其质量
与大英百科媲美。
可以通过以下方式来从维基百科中获取所需的内容:
通
过文章页面
(
Artic
le Page
)
抽取各种实体;
通过
重定向页面
(
Redirect Page
)
获得这些实体的同义词
(又称
S
ynonym
)
;
通过去歧义页面
p>
(
Disambiguation
Pag
e
)和内链锚文本(
Internal Link
Anchor Text
)获得它们的同音异义词
(又称
Homonym
)
;通过概念页面(
Category Page
)获得各种概念以及其
上下位(
subclass
)关系;通过文章页面关联的开
放分类抽取实体所对应
的类别;通过信息框(
Infobox<
/p>
)抽取实体所对应的属性
-
值对和关系<
/p>
-
实体
对。
类似
地,
从百度百科和互动百科抽取各种中文知识来弥补维基百科中
文数据不足的缺陷。此外,
Freebase
5
是另一个重要的百科类的数据源,其
包含超过
3900
万个实体(其称为
Topics
)和<
/p>
18
亿条事实,规模远大于维
基百科。<
/p>
对比之前提及的知识图谱的规模,
我们发现仅
Freebase
一个数据
源就构成了
知识图谱的半壁江山。更为重要的是,维基百科所编
< br>辑的是各种词条,
这些词条以文章的形式来展现,
包含各
种半结构化信息,
需要通过事先制定的规则来抽取知识;
而
p>
Freebase
则直接编辑知识,
包括<
/p>
实体及其包含的属性和关系,以及实体所属的类型等结构化信息。因此,
< br>不需要通过任何抽取规则即可获得高质量的知识。
虽然开发
Freebase
的母
公司
Meta
Web
于
2010
年被
Google
收购,
Freebase
还是作为开放的知识
管理平台独立运行。所以百度和搜狗也将
< br>Freebase
加入到其知识图谱中。
b)
结构化数据
除了百科类的数据,
p>
各大搜索引擎公司在构建知识图谱时,
还考虑其
他结构化数据。其中,
LOD
项目在发布各种语义数据的同
时,通过
owl:sameAs
将新发布的语义数据中涉及的实
体和
LOD
中已有数据源所包
含
的
潜
在
同
一
实
体
进行
关
联
,
从
< br>而
实
现了手
工
< br>的
实
体
对
齐
(
entity
4
5
/
/
alignment
)
。
LOD
不仅包括如
p>
DBpedia
6
和
YAGO
7
等通用语义数据集,还
包
括如
MusicBrainz
8
和
p>
DrugBank
9
等特定领域的知识库。
因此,
Google
等
通过整合
LOD
中的(部分)语义数据提高知识的覆盖率,尤其是垂直领
域的各种知识。
此外,
Web
上存在大量高质量的垂直领域站点
(如电商网
站,点评
网站等)
,这些站点被称为
Deep Web
< br>10
。它们通过动态网页技术
将保存在数据库中的各种领
域相关的结构化数据以
HTML
表格的形式展
< br>现给用户。
各大搜索引擎公司通过收购这些站点或购买其数据来进一步扩
充其知识图谱在特定领域的知识。
这样做出于三方面原因:
其一、
大量爬
取这些站点的数据会占据大量带宽,<
/p>
导致这些站点无法被正常访问;
其二、
爬
取全站点数据可能会涉及知识产权纠纷;最后,相比静态网页的爬取,
Deep
Web
爬虫需要通过表单填充(
Form Filling
p>
)技术来获取相关内容,
且解析这些页面中包含的结构化信息需要额
外的自动化抽取算法,
具体细
节在下一节描述。
c)
半结构化数据挖掘
A
VP
虽然从
Deep Web
爬取数据并解
析其中所包含的结构化信息面临很大
的挑战,各大搜索引擎公司仍在这方面投入了大量精
力。一方面,
Web
上存在大量长尾的结构化站点,
这些站点提供的数据与最主流的相关领域
站点所提供的内容具有很强的互补
性,
因此对这些长尾站点进行大规模的
信息抽取(尤其是实体相
关的属性
-
值对的抽取)对于知识图谱所含内容
的扩展是非常有价值的。另一方面,中文百科类的站点(如百度百科等)
的结构
化程度远不如维基百科,
能通过信息框获得
A
< br>VP
的实体非常稀少,
大量属性
-
值对隐含在一些列表或表格中。一个切实可行的做法是构建面
向站点的包装器
(
Site-specific Wrappe
r
)
。
其背后的基本思想是:
一个
Deep
Web
站点中的各种页面由统一的程序动态生成,具有类似的布局和结构。
利用这一点,我们仅
需从当前待抽取站点采样并标注几个典型详细页面
(
Detai
led
Pages
)
,利用这些页面
通过模式学习算法(
Pattern
Learning
)
6
7
/
/yago-naga/yago/
8
/
9
/
10<
/p>
相对以静态网页和超链接关联的浅层
Web
(
Shallow Web
)而言,称为深层
Web
。
自动构建出一个或
多个以类
Xpath
表示的模式,
然后
将其应用在该站点的
其他详细页面中从而实现自动化的
A
VP
抽取。对于百科类站点,我们可
以将具有
相同类别的页面作为某个
“虚拟”
站点,
并使用类似的方法进行
实体
A
VP<
/p>
的抽取。自动学习获得的模式并非完美,可能会遗漏部分重要
的属
性,
也可能产生错误的抽取结果。
为了应对这个问题,
搜索引擎公司
往往通过构建工具来可视化这些模式,
并人工调整或新增合适的模式用于
抽取。
此外,
通过人工评估抽取的结果,
将那些抽取结果不令人满意的典
型页面进行再标注来更新训练样本,
从而达到主动学习
(
Active
Learning
)
的目的。
d)
通过搜索日志进行实体和实体属性等挖掘
搜索日志是搜索引擎公司积累的宝贵财富。
一条搜索日志形如
<
查询,
点击的页面链接,时间戳
>
。通过挖掘搜索日志,我们往往可以发现最新
出现的各种实体及
其属性,
从而保证知识图谱的实时性。
这里侧重于从查
询的关键词短语和点击的页面所对应的标题中抽取实体及其属性。
选择查
询作为抽取目标的意义在于其反映了用户最新最广泛的需求,
从
中能挖掘
出用户感兴趣的实体以及实体对应的属性。
而选择页面
的标题作为抽取目
标的意义在于标题往往是对整个页面的摘要,
包含最重要的信息。
据百度
研究者的统计,
90%
以上的实体可以在网页标题中被找到。为了完成上述
抽取任务,
一个常用的做法是:
针对每个类别,
挑选出若干属于该类的实
体(及相关属性)作为种子(
Seeds
)
,找到包含这些种子的查询和页面标
题,
形成正则表达式或文法模式。
这些模式将被用于
抽取查询和页面标题
中出现的其他实体及其属性。
如果当前抽取
所得的实体未被包含在知识图
谱中,
则该实体成为一个新的候选
实体。
类似地,
如果当前被抽取的属性
未出现在知识图谱中,
则此属性成为一个新的候选属性。
这里,
我们仅保
留置信度高的实体及其属性,
新增的实体和属性将被作为新的种子发现新
的模式。
此过程不断
迭代直到没有新的种子可以加入或所有的模式都已经
找到且无法泛化。
< br>在决定模式的好坏时,
常用的基本原则是尽量多地发现
属
于当前类别的实体和对应属性,
尽量少地抽取出属于其他类别的实体及
< br>属性。上述方法被称为基于
Bootstrapping
的多类别协同模式学习。