知识图谱是一种用图模型来描述知识和建模世界万物之间关联关系的技术方法。本文研究的是爱奇艺奇搜知识图谱的构建流程与应用场景,了解这一文娱行业知识图谱是如何帮助用户精确找到想要的内容、回答用户问题、以及理解用户搜索意图的。
⛵ 作者:韩信子@ShowMeAI,奇异果@爱奇艺 ⛵ 大厂解决方案系列教程:https://www.showmeai.tech/tutorials/50 ⛵ 本文地址:https://www.showmeai.tech/article-detail/95
ShowMeAI社区的技术专家小伙伴们对知识图谱的典型算法做了实现,构建了相关应用 ⛵『知识图谱构建与落地实践』,对细节感兴趣的话,请前往 这里 查看实现代码参考。代码的整理花费了很多心思,欢迎大家 PR 和 Star!
⭐ ShowMeAI官方GitHub(实现代码参考):https://github.com/ShowMeAI-Hub/
2012年5月,Google发布了知识图谱(Knowledge Graph),以提升搜索引擎返回的答案质量和用户查询的效率。有了知识图谱作为辅助,搜索引擎能够洞察用户查询背后的语义信息,返回更为精准、结构化的信息,更大可能地满足用户的查询需求。
目前,随着智能信息服务应用的不断发展,知识图谱已广泛应用于智能搜索、智能问答、个性化推荐、聊天机器人、大数据风控、证券投资、智能医疗、自适应教育等领域。知识图谱做AI技术的重要垂直分支,其在技术领域的热度也逐年上升。
本篇是『知识图谱构建与落地实践』的实践篇,我们与来自爱奇艺的NLP工程师奇异果,一起研究学习爱奇艺搜索团队2015年开始搭建的 奇搜知识图谱库 (https://so.iqiyi.com/) ,了解奇搜知识图谱的构建过程,及其在爱奇艺搜索、NLP服务中的具体应用。
本质上,知识图谱是一种揭示实体之间关系的语义网络,对现实世界的事物及其相互关系进行形式化地描述。
A knowledge graph consists of a set of interconnected typed entities and their attributes.——《Exploiting Linked Data and Knowledge Graphs in Large Organisations》
知识图谱是由一些相互连接的实体和他们的属性构成的。换句话说,知识图谱由一系列的(实体,关系,实体)三元组构成,用以表达现实世界中的诸多场景。
图示为一个社交网络知识图谱: 实体有『人』『物品』『建筑』『城市』等。『人与人之间的关系』可以是朋友或粉丝,『人与物品的关系』可以是创作或喜欢。
爱奇艺搜索(奇搜,https://so.iqiyi.com/) 是国内最大的视频搜索引擎之一,涵盖全网海量视频资源,为用户提供优质的全网视频&娱乐领域的搜索服务。
奇搜团队努力完善对视频内容和用户意图的理解,并在过程中构建了以视频领域为主的知识图谱库。
当前,奇搜知识图谱的构建流程主要分为几个步骤:
我们在确认知识的建模表示方式之后,再构建知识图谱。目前主要的知识建模方式有两种,爱奇艺奇搜知识图谱的构建采用的是自顶向下的建模方式。
(1)自顶向下的数据建模方法。先为知识图谱设计数据模式( Schema ),再依据设计好的数据模式进行有针对性的数据抽取;
(2)自底向上的数据建模方法。先进行数据的收集和整理,再根据数据内容总结、归纳其特点,提炼框架,逐步形成确定的数据模式。
RDF(Resource Description Framework),即资源描述框架,实际上是一种数据模型,用来链接资源的各种描述。
RDF由一系列三元组(triple)模型组成,即每一份知识可以被分解为 (Subject(主),Predicate(谓),Object(宾))。
所以,RDF三元组可以被描述成 (对象,属性,值),即上文提到的 (节点,边,节点) 这样的图。
一个三元组就是一个关系。在RDF里可以声明一些规则,从一些关系推导出另一些关系。这些规则称为“Schema”,所以有了 RDFS(RDF Schema)。规则可以用一些词汇表示,如Class、subClassOf、type、Property、subPropertyOf、Domain、Rnage等。
『爱奇艺是一家人工智能公司』 和『一家人工智能公司是一家高科技公司』,可以推导出『爱奇艺是一家高科技公司』。
奇搜基于RDF/RDFS定义了图谱的实体类型、关系(属性)类型、以及实体本身的 Schema 定义。每一层定义在 Schema 的表示语法上都是一致的。
为了帮助定义和使用图谱 Schema(主要上图中的本体定义层),爱奇艺搜索团队开发了一套 Schema 系统来负责管理和解析奇搜知识图谱的 Schema 定义:
最终定义的实体类型的继承关系片段示例如下图:
知识图谱的构建是后续应用的基础,而且构建的前提是需要把数据从不同的数据源中抽取出来。知识获取是构建知识图谱的前提条件,也是自动构建知识图谱的影响核心要素。
数据是知识图谱的根基,直接关系到知识图谱构建的效率和质量。比如,从结构化的数据中构建知识图谱比从非结构化的数据中构建,效率和准确率要高;数据越复杂,噪音越大,构建成本就越高。
目前奇搜知识图谱的数据来源除去人工创建的数据外,主要有站内数据、垂直网站数据与百度百科数据三种数据来源。
实体分类主要用于处理百度百科的数据。因为百度百科的数据没有类别信息,需要先对词条进行实体类型的识别。具体实现是为每种实体类型训练一个实体分类器,准确率可衡量,并且互不影响,可以快速拓展。
实体分类器模型示意图,整体采用启发式方法。
实体抽取,是指从数据中识别和抽取实体的属性与关系信息。对不同类型、不同数据源的数据,分别开发属性/关系抽取脚本。
由易到难,主要包括以下三类抽取方式:
(1)结构化数据抽取:大部分站内/垂直网站的信息,以及部分百度百科的信息,是结构化的数据,比较易于抽取。源数据结构和实体类型定义(即目标数据结构)多种多样。为了提高开发效率,将结构化数据的抽取流程进行抽象,并写成统一的框架,利用策略模式将抽取的具体规则用groovy脚本来实现。当扩展新的来源和目标实体类型时,只需实现新的抽取脚本。
(2)半结构化数据抽取:百度百科中存在很多表格、列表等格式不完全规则的半结构化信息,抽取有一定难度。比如,半结构化信息中存在一些质量较高的统计性的数据。对于这类数据,采用基于有监督学习的包装器归纳方法进行抽取。
(3)非结构化数据挖掘:百度百科以及站内的描述等大量文本中,也存在有很多宝贵的信息。对于这类数据的实体挖掘,需要借助自然语言处理的手段(主要是实体识别等服务)。
知识融合主要解决实体对齐(Object Alignment) 的问题。完成实体抽取后,存在实体ID不同但代表真实世界中同一对象的情况。知识融合即是将这些实体合并成一个具有全局唯一标识的实体对象,添加到知识图谱中。
下图是实体对齐的流程图。
所有来源的实体数据都会进入原始实体库,并对原始表中的数据建立索引。当一个原始实体 rawEntity 进入最终实体库之前,要在原始实体库中寻找是否有其它原始实体和rawEntity实际上是同一个实体。
这个流程中的合并判断模型实际上是通过机器学习训练生成的二分类器。
线上使用的图数据库引擎选择了JanusGraph。JanusGraph需要外部的存储系统与外部索引系统的支持。所以,爱奇艺搜索团队借助爱奇艺云平台的Hbase和ES集群,搭建了自己的JanusGraph分布式图数据库引擎,支持在线游走查询服务。
基于图数据库引擎提供的查询服务,以及NLP技术对用户query的意图理解,提供了多种类型的问答式搜索结果服务。包括:
◉ 吴京学校
◉ 《甄嬛传》演员表
◉ 《请回答1988》主题曲
◉ 刘培强的演员还演过
奇搜知识图谱的实体库作为基础数据,被用于NLP团队提供的分词和实体识别、意图识别等服务,也在明星图谱等业务场景下直接展示。
◉ 于和伟在《觉醒年代》里饰演陈独秀
◉ 吴京
知识图谱的数据,可以帮助建立和完善标签体系,以及挖掘视频数据上的标签;同时,标签体系也可以反过来丰富知识图谱。
利用推理等技术,对知识图谱进行挖掘。推理功能一般通过可扩展的规则引擎来完成:
视频标签体系完善可以采用同样的方法:视频上的标签与图谱实体进行映射之后,应用和上面一样的推理规则(这里主要用到实体的上下位词、属于、包含等关系)来进行标签拓展。其他的拓展方法还包括Graph Embedding等技术(扩展同类型的关联性强的实体)。
下面是一些标签挖掘的线上应用实例:
◉ 广场舞:广场舞实体、舞队实体、舞曲实体、视频实体◉ 科幻电影:科幻电影实体、类型实体、明星实体、视频实体
上文介绍了奇搜知识图谱的构建以及在搜索中应用。
传统的视频搜索,通过为整段视频添加文字标签,并将其与用户搜索的信息进行匹配,来完成搜索过程,其搜索原理与传统文字搜索相同。
基于爱奇艺的核心视频业务,奇搜知识图谱全新的娱乐搜索功能,可以帮助用户找到想要的内容、回答用户的问题、以及理解用户的搜索意图,给用户带来更佳的搜索体验。随着视频内容理解和视频知识图谱库的不断完善,未来用户观看视频将像使用文字一样轻松便捷,对于视频搜索、互动的想象空间也在不断清晰。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。