订阅
纠错
加入自媒体

万字详解:腾讯如何自研大规模知识图谱 Topbase

2020-06-09 10:39
将门创投
关注

八、知识关联和推理

知识关联(链接预测)是将实体的属性值链接到知识库的实体中,构建一条关系边,如图 24 所示“三国演义”的作者属性值是“罗贯中”字符串,知识关联需要将该属性值链接到知识库中的实体“罗贯中”,这样实体“三国演义”和“罗贯中”之间存在一条“作者”的关系边。

图24  基于超链接关联的示列说明

Topbase 的知识关联方案分为基于超链接的关联和基于 embedding 的文本关联两种方式。

超链接关联是 Topbase 进行关联和推理的第一步,它是利用网页中存在的超链接对知识图谱中的实体进行关联,如百科“三国演义”页面中,其“作者”属性链接到“罗贯中”的百科页面(如图 24 所示),基于这种超链接的跳转关系,可以在 Topbase 的实体之间建立起一条边关系,如该示列会在实体“三国演义”与“罗贯中”之间生成一条“作者”关系,而“曹操”并没有该超链接,所以三国演义的主要人物属性中的字符串“曹操”不会关联到具体的实体页面中。在进行超链接关联之前,Topbase 中的实体是一个个孤立的个体,超链接关联为知识图谱补充了第一批边关系,但是超链接关联无法保证链接的覆盖率。

基于此,Topbase 提出基于 embedding 的文本关联。基于 embedding 的文本关联是在已知头实体、关系的基础上,在候选集中对尾实体进行筛选,尾实体的候选集是通过别名匹配召回。如上述百科示列中的“主要人物”属性,我们利用其属性值字符串”曹操“去 Topbase 库里匹配,召回所有和”曹操”同名称的实体作为建立链接关系的候选。然后利用知识库 embedding 的方法从候选实体中选择最相似的实体作为他的链接实体。基于文本名称的匹配召回候选可以大大提高知识库 embeding 方法的链接预测效果。基于 embedding 的链接关系预测是通过模型将实体和关系的属性信息、结构信息嵌入到一个低维向量中去,利用低维向量去对缺失的尾实体进行预测。

当前采用的嵌入模型是 TextEnhanced+TransE,模型结构如图 25 所示。

TransE 是将实体与关系映射到同一向量空间下,它是依据已有的边关系结构对实体之间的边关系进行预测,对孤立实体或链接边较少的实体预测效果较差。为了引入文本信息,解决模型对孤立实体预测的难题,模型使用 TextEnhanced 对文本信息进行嵌入。TextEnhanced 通过 NN 模型对文本信息嵌入后,利用 Attention 机制将文本信息嵌入到 Trans 系列的实体向量中,进而对尾实体进行预测。

图25  TextEnhanced+TransE结构图

由于知识关联是在已知属性值的前提下,通过名称匹配的方式得到关联实体的候选集,所以知识关联无法补充缺失属性值的链接关系。如上图中“三国演义”的信息中并没有“关羽”,知识推理目的是希望能够挖掘“三国演义”和“关羽”的潜在关系。为了保证图谱数据的准确率,Topbase 的知识推理主要以规则推理为主,具体的规则方法可以归纳为以下几类:

伴随推理是在已经被链接的两个实体之间,根据两个实体的属性信息,发现两者间蕴含的其它关系。例如实体 A 已经通过“配偶”关系与实体 B 相连,实体 A 的性别为“男”,实体 B 的性别为“女”,则伴随推理会生成一条“妻子”关系边,将实体 A 与实体 B 链接在一起,代表 B 为 A 的妻子。伴随推理的规则可以通过统计同时关联起两个实体的属性共现比例得到。

图26  伴随推理的示列说明

表2 Topbase的伴随推理规则库示列

反向推理是依据边之间的互反关系,为已经链接的两个实体再添加一条边。比如实体 A 通过“作者”边与实体 B 相连,代表实体 B 是实体 A 的作者,则可以直接生成一条从实体 B 指向实体 A 的“作品”边,代表实体 A 是实体 B 的作品,因为“作品”与“作者”是一条互反关系。反向推理与伴随推理类似,都是在已经存在边关系的实体之间,挖掘新的边关系,不同的是,伴随推理在生成边关系时需要满足一定的属性条件,如上例中的“性别”限制,而反向推理直接通过已有的边关系,无需参考其它属性值,直接生成一条互反边关系。反向推理规则可以通过统计 A-B,B-A 的属性共现数量筛选。

图27  反向推理的示列说明

表3 Topbase的反向关联规则库示列

多实体推理是在多个实体之间挖掘蕴含的边关系,是一种更复杂的关联规则,如第一种形式:A 的父亲是 B,B 的母亲是 C,则 A 的奶奶是 C,该形式通过统计 A+PATH = C,A+R0=C,情况得到规则  [PATH(R1R2)=R0];第二种形式是 A 的母亲是 B,A 的儿子 C,则 B 的孙子是 C,该形式通过统计:A+R1 = B,A+R2=C,B+R0=C 的情况,得到规则[R1 &R2 = R0]。

图28 多实体推理的两种形式示列说明

九、实体知名度计算

实体的知名度(Popularity)指标可以用于量化不同实体的重要性程度,方便我们更好的使用图谱数据。Topbase 知识库的 popularity 计算以基于实体链接关系的 pagerank 算法为核心,以对新热实体的 popularity 调整为辅,并配以直接的人工干预来快速解决 badcase。具体地,首先抽取实体页面之间的超链接关系,以此为基础通过修改后的 pagerank 算法来计算所有实体的 popularity;对于难以通过 pagerank 算法计算的新热实体的 popularity,再进行规则干预。最后对于仍然难以解决的 case,则直接对其 popularity 值进行人工赋值。Popularity 计算模块的整体流程如下图所示:

图29  Topbase实体知名度计算流程

多类型边关系的 pagerank 算法:

基于链接关系的 popularity 计算方法的出发点在于:一个实体 A 对另一个实体 B 的引用(链接),表示实体 A 对于实体 B 的认可,链接到 B 的实体越多,表示 B 受到的认可越多,由此推断它的知名度也就越高。但实际上有很多的链接关系并不是出于“认可”而产生的,只是简单的表示它们之间有某种关系。比如歌手与专辑、音乐之间的各种关系。一个专业的音乐网站会收录歌手、专辑、音乐之间的完整从属关系,这会导致同一个歌手或同一张专辑之内的热门歌曲与其它歌曲之间没有任何区分性。并且由于这几类实体之间高密度的链接关系,会导致它们的计算结果比其它类别的实体的都高出很多。

因此有必要对实体之间不同的链接关系进行区别对待。与最基础的 pagerank 算法的不同在于:实体之间可以有多条边,且有多种类型的边。在进行迭代计算的过程中,不同类型的边对流经它的概率分布会有不同程度的拟制作用。之所以进行这样的修改,是因为知识库中实体的信息有多种不同的来源。有的实体来源于通用领域百科,有的实体来源于垂类领域网站等。甚至同一个实体内部,不同的属性信息也会有不同的来源。由此,实体之间的链接关系也会属于不同的来源。比如“刘德华”与“朱丽倩”之间的“夫妻”关系可能抽取自百科,而与“无间道”之间的“参演”关系可能来自于电影网站。不同来源的信息有着不同的可信度,有的经过人工的审核编辑,可信度很高;而有的则属于算法自动生成,会有不同程度的错误。

因此链接关系之间也有可信度的差别,无法做到将它们一视同仁地看待。其次,有的链接关系即使在可靠性方面完全正确,但它们对于 popularity 的正确计算不仅没有太大帮助,反而会导致 popularity 的计算结果与预期不符。修改后的 pagerank 算法的计算过程与基础 pagerank 算法基本一致,只是在进行分布概率的流转时有所区别。

下面进行举例说明:

图30  多类型边的PageRank算法说明

实体 A 指向实体 B、C、D。其与 B 之间的链接类型为 X,与 C 之间的链接类型为 Y,与 D 之间的为 Z。通过先验知识或实验总结,我们认为链接类型 Y 可信性不高,相比于 X,对 rank 值的流转有拟制作用,因此对其赋予一个系数 0.8,Z 的可信度很准确,但其性质与上述的音乐网站的关系类似,因此对于其赋予一个系数 0.2,而 X 类型的完全可行,其系数则为 1.0。在某一迭代阶段,实体 A 的 rank 值为 3,B、C、D 的 rank 值分别为 4、2、3。由于 A 有 3 条出边,因此到 B、C、D 的初始流出值均为 3/ 3 = 1。加上系数的影响,实际到 C、D 的流出值分别为 0.8 和 0.2,未流出的剩余值为(1 -0.8) + (1 - 0.2) = 1.0。

因此迭代过后,B、C、D 的 rank 值分别为 4 + 1.0 = 5,2 + 0.8= 2.8,3 + 0.2 =3.2,而 A 的 rank 值需要在所有指向它的实体流入到它的值之和的基础上,再加上未流出的 1.0。

新热实体的 Popularity 调整:

新热实体的含义为最新出现的热门实体。这类实体需要较高的 popularity 值。但由于是新近出现的实体,其与其它实体的链接关系非常匮乏,因此无法通过基于实体链接关系的这类方法来计算。对此我们采取的方案侧重于对新热实体的发现,然后对发现的新热实体的 popularity 进行调整,使其 popularity 值在同名实体中处于最高的位置。新热实体的发现目前基于两类方法:一类方法发现的热门实体可以直接对应到知识库中的某个实体,另一个方法只能发现热门的实体名,需要通过一些对齐方法与知识库中的某个实体关联起来。

第一种方法从 Topbase 监控的重点网站页面中直接获取最近热门的实体。这种方法获取的实体可以直接通过 url 与知识库中的某个实体准确无误地关联起来。第二类方法首先发现一些热门的实体名,包括:一、从微博热搜榜中爬取热门话题,通过命名实体识别方法识别其中的人名和机构名,将其作为热门实体名;二、将新闻中每天曝光的高频次标签作为实体名。以上两种方法发现的实体名带有一定的附加信息,通过实体链接可以将其对齐到知识库中的某个实体。

十、知识库的存储和查询

知识图谱是一种典型的图结构数据集合,实体是图中的节点,关系(属性)是带有标签的边。因此,基于图结构的存储方式能够直接正确地反映知识图谱的内部结构,有利于知识的查询。如下图所示,红色圈代表实体,实线是边(妻子),表示实体间的关系,如“刘德华的妻子是朱丽倩”,虚线是属性(出生日期),表示实体具有的属性,如“刘德华的出生日期是 1961 年 9 月 27 日”。

图31 图数据说明

Topbase 知识图谱的存储是基于分布式图数据库 JanusGraph,选择 JanusGraph 的主要理由有:1)JanusGraph 完全开源,像 Neo4j 并非完全开源;2)JanusGraph 支持超大图,图规模可以根据集群大小调整;3)JanusGraph 支持超大规模并发事务和可操作图运算,能够毫秒级的响应在海量图数据上的复杂的遍历查询操作等。

Topbase基于JanusGraph存储查询架构如下:

图32  基于JanusGraph的存储查询系统

Graph_Loader 模块主要是将上述数据生产流程得到的图谱数据转换为 JanusGraph 存储要求的格式,批量的将图谱数据写入图数据库存储服务中,以及相关索引建立。

图数据库存储服务:JanusGraph数据存储服务可以选用 ScyllaDb、HBase 等作为底层存储,topbase 选用的是 ScyllaDb。Graph_loader 会每天定时的将数据更新到图数据库存储服务。

图数据库索引:由于 JanusGraph 图数据库存储服务只支持一些简单查询,如:“刘德华的歌曲”,但是无法支持复杂查询,如多条件查询:“刘德华的 1999 年发表的粤语歌曲”。所以我们利用 Es 构建复杂查询的数据索引,graph_loader 除了批量写入数据到底层存储之外,还会建立基于复杂查询的索引。

图数据库主服务:主服务通过 Gremlin 语句对图数据库的相关内容进行查询或者改写等操作。

十一、总结

由于知识图谱的构建是一项庞大的数据工程,其中各环节涉及的技术细节无法在一篇文档中面面俱到。本文主要梳理 Topbase 构建过程中的技术经验,从 0 到 1 的介绍了图谱构建流程,希望对图谱建设者有一定的借鉴意义。

<上一页  1  2  3  4  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

人工智能 猎头职位 更多
扫码关注公众号
OFweek人工智能网
获取更多精彩内容
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号