知识图谱作为人工智能的核心技术驱动力,能缓解深度学习依赖海量训练数据、大规模算力的问题,它能够广泛适配不同的下游任务,且具有良好的解释性,因此,全球大型互联网公司都在积极部署本企业的知识图谱。
例如2013年Facebook发布OpenGraph,应用于社交网络智能搜索;2014年百度推出的知识图谱,主要应用于搜索、助理、及toB商业场景;2015年阿里推出的商品知识图谱,在前端导购、平台治理和智能问答等业务上起到关键作用;腾讯于2017年推出的腾讯云知识图谱,有效助力于金融搜索、实体风险预测等场景;美团于2018年推出的美团大脑知识图谱,已经在智能搜索推荐、智能商户运营等多个业务中落地。
目前,领域图谱主要集中在电商、医疗、金融等商业领域,而关于汽车知识的语义网络及知识图谱构建缺少系统性的指导方法。本文以汽车领域知识为例,围绕车系、车型、经销商、厂商、品牌等实体及相互关系,提供一种从零搭建领域图谱的思路,并对搭建知识图谱中的步骤及方法进行了详细说明,以及介绍了基于本图谱的几个典型落地应用。
其中,数据源采用汽车之家网站,汽车之家是由导购、资讯、评测、口碑等多个板块组成的汽车服务类平台,在看、买、用等维度积累了大量的汽车数据,通过构建知识图谱把以汽车为核心的内容进行组织和挖掘,提供丰富的知识信息,结构化精准刻画兴趣,支持推荐用户冷启、召回、排序、展示等多个维度,给业务提升带来效果。
知识图谱是真实世界的语义表示,,其基本组成单位是【实体-关系-实体】,【实体-属性-属性值】的三元组(Triplet),实体之间通过关系相互联结,从而构成语义网络。图谱构建中会面临较大的挑战,但构建之后,可在数据分析、推荐计算、可解释性等多个场景展现出丰富的应用价值。
构建挑战:
收益:
技术架构主要分为构建层、存储层及应用层三大层,架构图如下:
依据架构图,具体构建流程可分为四步:本体设计、知识获取、知识入库,以及应用服务设计及使用。
本体(Ontology)是公认的概念集合,本体的构建是指依据本体的定义,构建出知识图谱的本体结构和知识框架。
基于本体构建图谱的原因主要有以下几点:
按照知识的覆盖面来看,知识图谱可以划分为通用知识图谱和领域知识图谱,目前通用知识图谱已有较多案例,例如Google的KnowledgeGraph、微软的Satori和Probase等,领域图谱则为金融、电商等具体行业图谱。通用图谱更注重广度,强调融合更多的实体数量,但对精确度的要求不高,很难借助本体库对公理、规则及约束条件进行推理和使用;而领域图谱的知识覆盖范围较小,但知识深度更深,往往是在某一专业领域上的构建。
考虑对准确率的要求,领域本体构建多倾向于手工构建的方式,例如代表性的七步法、IDEF5方法等[1],该类方法的核心思想是,基于已有结构化数据,进行本体分析,将符合应用目的和范围的本体进行归纳及构建,再对本体进行优化和验证,从而获取初版本体定义。若想获取更大范畴的领域本体,则可以从非结构化语料中补充,考虑手工构建过程较大,本文以汽车领域为例,提供一种半自动本体构建的方式,详细步骤如下:
上述方法可有效利用BERT等深度学习的技术,更好地捕捉语料间的内部关系,使用聚类分层次对本体各模块进行构建,辅以人工干预,能够快速、准确的完成初步本体构建。下图为半自动化本体构建示意图:
利用Protégé本体构建工具[2],可以进行本体概念类、关系、属性和实例的构建,下图为本体构建可视化示例图:
本文将汽车领域的顶层本体概念划分为三类,实体、事件及标签体系:
1)实体类代表特定意义的概念类实体,包括词汇实体和汽车类实体,其中汽车类实体又包括组织机构和汽车概念等子实体类型;
2)标签体系代表各个维度的标签体系,包括内容分类、概念标签、兴趣标签等以物料维度刻画的标签;
3)事件类代表一个或多个角色的客观事实,不同类型事件间具有演变关系。
Protégé可以导出不同类型的Schema配置文件,其中owl.xml结构配置文件如下图所示。该配置文件可直接在MYSQL、JanusGraph中加载使用,实现自动化的创建Schema。
通过上述ETL流程可将不同源数据落到中间表,从而方便后续的知识入库。下图为车系实体属性、关系表示例图:
车系与品牌关系表:
除了结构化数据,非结构化数据中也存在着海量的知识(三元组)信息。一般来说企业的非结构化数据量要远大于结构化数据,挖掘非结构化知识能够极大拓展和丰富知识图谱。
三元组抽取算法的挑战
问题1:单个领域内,档内容和格式多样,需要量的标注数据,成本
问题2:领域之间迁移的效果不够好,跨领域的可规模化拓展的代价
模型基本都是针对特定业特定场景,换个场景,效果会出现明显下降。
解决思路,Pre-train+Finetune的范式,预训练:重量级底座让模型“多识”充分利规模多业的标档,训练个统的预训练底座,增强模型对各类档的表示和理解能。
微调:轻量级档结构化算法。在预训练基础上,构建轻量级的向档结构化的算法,降低标注成本。
针对档的预训练法
现有关于档的预训练模型,如果文本较短的类型,Bert可以完全编码整篇档;我们实际的档通常较,需要抽取的属性值有很多是超过1024个字的,Bert进编码会造成属性值截断。
针对长文本预训练方法优点和不足
SparseAttention的法通过优化Self-Attention,将O(n2)的计算优化O(n),提了输本度。虽然普通模型的本度从512提升到4096,但是依旧不能完全解决截断本的碎化问题。百度提出了ERNIE-DOC[3]使用了RecurrenceTransformer方法,理论上可以建模限的本。由于建模要输所有的本信息,耗时常。
上述两种基于本的预训练法,都没有考虑档特性,如空间(Spartial)、视觉(Visual)等信息。并且基于本设计的PretrainTask,整体是针对纯本进的设计,没有针对档的逻辑结构设计。
针对上述不足这里介绍一种档预训练模型DocBert[4],DocBert模型设计:
使规模(百万级)标注档数据进预训练,基于档的本语义(Text)、版信息(Layout)、视觉特征(Visual)构建监督学习任务,使模型更好地理解档语义和结构信息。
1.Layout-AwareMLM:在Mask语模型中考虑本的位置、字体信息,实现档布局感知的语义理解。
2.Text-ImageAlignment:融合档视觉特征,重建图像中被Mask的字,帮助模型学习本、版、图像不同模态间的对关系。
3.TitlePermutation:以监督的式构建标题重建任务,增强模型对档逻辑结构的理解能。
4.SparseTransformerLayers:SparseAttention的法,增强模型对档的处理能。
除了结构化和非结构化文本中获取三元组,汽车之家还挖掘物料所包含的分类、概念标签和兴趣关键词标签,并建立物料和车实体之间的关联,为汽车知识图谱带来新的知识。下面从分类、概念标签、兴趣词标签来介绍汽车之家所做的内容理解部分工作以及思考。
分类体系作为内容刻画基础,对物料进行粗粒度的划分。建立的统一的内容体系更多的是基于人工定义的方式,通过AI模型进行划分。在分类方法上我们我们采用了主动学习,对于比较难分的数据进行标注,同时采用数据增强,对抗训练,以及关键词融合方式提高分类的效果。
概念标签粒度介于分类和兴趣词标签之间,比分类粒度更细,同时比兴趣词对于兴趣点刻画更加完整,我们建立了车视野、人视野、内容视野三个维度,丰富了标签维度,细化了标签粒度。丰富且具体的物料标签,更加方便搜索推荐基于标签的模型优化,且可用于标签外展起到吸引用户及二次引流等作用。概念标签的挖掘,结合在query等重要数据上采用机器挖掘方式,并对概括性进行分析,通过人工review,拿到概念标签集合,采用多标签模型分类。
兴趣词标签是最细粒度的标签,映射为用户兴趣,根据不同用户兴趣偏好进可以更好的进行行个性化推荐。关键词的挖掘采用多种兴趣词挖掘相结合的方式,包括Keybert提取关键子串,并结合TextRank、positionRank、singlerank、TopicRank、MultipartiteRank等+句法分析多种方法,产生兴趣词候选。
挖掘出来的词,相似度比较高,需要对同义词进行识别,需要提升人工的效率,因此我们也通过聚类进行自动化语义相似识别。用于聚类的特征有word2vec,bertembding等其他人工特征。然后使用聚类方法,最后经过人工矫正我们离线产生了一批高质量的关键词。
知识图谱中的知识是通过RDF结构来进行表示的,其基本单元是事实。每个事实是一个三元组(S,P,O),在实际系统中,按照存储方式的不同,知识图谱的存储可以分为基于RDF表结构的存储和基于属性图结构的存储。图库更多是采用属性图结构的存储,常见的存储系统有Neo4j、JanusGraph、OritentDB、InfoGrid等。
通过JanusGraph与Neo4J、ArangoDB、OrientDB这几种主流图数据库的对比,我们最终选择JanusGraph作为项目的图数据库,之所以选择JanusGraph,主要有以下原因:
JanusGraph[5]是一个图形数据库引擎。其本身专注于紧凑图序列化、丰富图数据建模、高效的查询执行。图库schema构成可以用下面一个公式来表示:
janusgraphschema=vertexlabel+edgelabel+propertykeys
这里值得注意的是propertykey通常用于graphindex。
为了更好的图查询性能janusgraph建立了索引,索引分为GraphIndex,Vertex-centricIndexes。GraphIndex包含组合索引(CompositeIndex)和混合索引(MixedIndex).
组合索引仅限相等查找。(组合索引不需要配置外部索引后端,通过主存储后端支持(当然也可以配置hbase,Cassandra,Berkeley))
举例:
了解Janusgraph存储数据的方式,有助于我们更好的利用该图库。JanusGraph以邻接列表格式存储图形,这意味着图形存储为顶点及其邻接列表的集合。顶点的邻接列表包含顶点的所有入射边(和属性)。
JanusGraph将每个邻接列表作为一行存储在底层存储后端中。(64位)顶点ID(JanusGraph唯一分配给每个顶点)是指向包含顶点邻接列表的行的键。每个边和属性都存储为行中的一个单独的单元格,允许有效的插入和删除。因此,特定存储后端中每行允许的最大单元数也是JanusGraph可以针对该后端支持的顶点的最大度数。
如果存储后端支持key-order,则邻接表将按顶点id排序,JanusGraph可以分配顶点id,以便对图进行有效分区。分配id使得经常共同访问的顶点具有绝对差异小的id。
Janusgraph进行图搜索用的是gremlin语言,我们提供了统一的图谱查询服务,外部使用不用关心gremlin语言的具体实现,采用通用的接口进行查询。我们分为三个接口:条件搜索接口,以节点为中心向外查询,和节点间路径查询接口。下面是几个gremlin实现的例子:
知识图谱中存在大量的非欧式数据,基于KG的推荐应用有效利用非欧式数据提升推荐系统准确度,进而让推荐系统能达到传统系统所无法达到的效果。基于KG的推荐可以分成以三类,基于KG表征技术(KGE)、基于路径的方法、图神经网络。本章将从KG在推荐系统中冷启、理由、排序三方面的应用和论文进行介绍。
Sang等[6]提出了一种双通道神经交互方法,称为知识图增强的残差递归神经协同过滤(KGNCF-RRN),该方法利用KG上下文的长期关系依赖性和用户项交互进行推荐。
(2)对于用户项目交互通道,用户和项目嵌入被输入到新设计的二维交互图中。
DuY等[7]提出了一种新的基于元学习框架的冷启问题解决方案MetaKG,包括collaborative-awaremetalearner和knowledge-awaremetalearner,捕捉用户的偏好和实体冷启动知识。collaborative-awaremetalearner学习任务旨在聚合每个用户的偏好知识表示。相反,knowledge-awaremetalearner学习任务要在全局泛化不同的用户偏好知识表示。在两个learner的指导下,MetaKG可以有效地捕捉到高阶的协作关系关系和语义表示,可以轻松适应冷启动场景。此外,作者还设计了一种自适应任务,可以自适应地选择KG信息进行学习,以防止模型被噪声信息干扰。MetaKG架构如下图所示。
推荐理由能提高推荐系统的可解释性,让用户理解生成推荐结果的计算过程,同时也可以解释item受欢迎的原因。用户通过推荐理由了解推荐结果的产生原理,可以增强用户对系统推荐结果的信心,并且在推荐失误的情况下对错误结果更加宽容。
最早可解释推荐是以模板为主,模板的好处是保证了可读性和高准确率。但是需要人工整理模板,并且泛华性不强,给人一种重复的感觉。后来发展不需要预设的free-form形式,并且加以知识图谱,以其中的一条路径作为解释,配合标注还有一些结合KG路径的生成式的方法,模型中选择的每个点或边都是一个推理过程,可以向用户展示。最近ChenZ[8]等人提出一种增量多任务学习框架ECR,可以实现推荐预测、解释生成和用户反馈集成之间的紧密协作。它由两大部分组成。第一部分,增量交叉知识建模,学习推荐任务和解释任务中转移的交叉知识,并说明如何使用交叉知识通过使用增量学习进行更新。第二部分,增量多任务预测,阐述如何基于交叉知识生成解释,以及如何根据交叉知识和用户反馈预测推荐分数。
KG可以通过给item用不同的属性进行链接,建立user-item之间interaction,将uesr-itemgraph和KG结合成一张大图,可以捕获item间的高阶联系。传统的推荐方法是将问题建模为一个监督学习任务,这种方式会忽略item之间的内在联系(例如凯美瑞和雅阁的竞品关系),并且无法从user行为中获取协同信号。下面介绍两篇KG应用在推荐排序的论文。
Wang[9]等人设计了KGAT算法,首先利用GNN迭代对embedding进行传播、更新,从而能够在快速捕捉高阶联系;其次,在aggregation时使用attention机制,传播过程中学习到每个neighbor的weight,反应高阶联系的重要程度;最后,通过N阶传播更新得到user-item的N个隐式表示,不同layer表示不同阶数的连接信息。KGAT可以捕捉更丰富、不特定的高阶联系。
Zhang[20]等人提出RippleNet模型,其关键思想是兴趣传播:RippleNet将用户的历史兴趣作为KG中的种子集合(seedset),然后沿着KG的连接向外扩展用户兴趣,形成用户在KG上的兴趣分布。RippleNet最大的优势在于它可以自动地挖掘从用户历史点击过的物品到候选物品的可能路径,不需要任何人工设计元路径或元图。
综上,我们主要围绕推荐,介绍了图谱构建详细流程,对其中的困难和挑战做出了分析。同时也综述了很多重要的工作,以及给出了具体的解决方案,思路以及建议。最后介绍了包括知识图谱的应用,特别在推荐领域中冷起、可解释性、召回排序介绍了知识图谱的作用与使用。
引用:
[1]KimS,OhSG.ExtractingandApplyingEvaluationCriteriaforOntologyQualityAssessment[J].LibraryHiTech,2019.
[3]DingS,ShangJ,WangS,etal.ERNIE-DOC:TheRetrospectiveLong-DocumentModelingTransformer[J].2020.
[4]DocBert,[1]AdhikariA,RamA,TangR,etal.DocBERT:BERTforDocumentClassification[J].2019.
[6]SangL,XuM,QianS,etal.Knowledgegraphenhancedneuralcollaborativefilteringwithresidualrecurrentnetwork[J].Neurocomputing,2021,454:417-429.
[7]DuY,ZhuX,ChenL,etal.MetaKG:Meta-learningonKnowledgeGraphforCold-startRecommendation[J].arXive-prints,2022.
[8]ChenZ,WangX,XieX,etal.TowardsExplainableConversationalRecommendation[C]//Twenty-NinthInternationalJointConferenceonArtificialIntelligenceandSeventeenthPacificRimInternationalConferenceonArtificialIntelligence{IJCAI-PRICAI-20.2020.
[9]WangX,HeX,CaoY,etal.KGAT:KnowledgeGraphAttentionNetworkforRecommendation[J].ACM,2019.
[10]WangH,ZhangF,WangJ,etal.RippleNet:PropagatingUserPreferencesontheKnowledgeGraphforRecommenderSystems[J].ACM,2018.