爱奇艺文娱知识图谱的构建与应用实践

news2024/11/24 0:56:03

2012年5月,Google发布了知识图谱(Knowledge Graph),以提升搜索引擎返回的答案质量和用户查询的效率。有了知识图谱作为辅助,搜索引擎能够洞察用户查询背后的语义信息,返回更为精准、结构化的信息,更大可能地满足用户的查询需求。

知识图谱在工业领域得到了广泛应用; 7-2

目前,随着智能信息服务应用的不断发展,知识图谱已广泛应用于智能搜索、智能问答、个性化推荐、聊天机器人、大数据风控、证券投资、智能医疗、自适应教育等领域。知识图谱做AI技术的重要垂直分支,其在技术领域的热度也逐年上升。

本篇是『知识图谱构建与落地实践』的实践篇,我们与来自爱奇艺的NLP工程师奇异果,一起研究学习爱奇艺搜索团队2015年开始搭建的 奇搜知识图谱库 (爱奇艺搜索 - 全网视频搜索引擎) ,了解奇搜知识图谱的构建过程,及其在爱奇艺搜索、NLP服务中的具体应用。

一、知识图谱介绍

本质上,知识图谱是一种揭示实体之间关系的语义网络,对现实世界的事物及其相互关系进行形式化地描述。

知识图谱(Knowledge Graph) | 定义; 7-3

A knowledge graph consists of a set of interconnected typed entities and their attributes.

——《Exploiting Linked Data and Knowledge Graphs in Large Organisations

知识图谱是由一些相互连接的实体和他们的属性构成的。换句话说,知识图谱由一系列的(实体,关系,实体)三元组构成,用以表达现实世界中的诸多场景。

  • 实体(Entity)指的是现实世界中的事物,是图里的节点。
  • 关系(Relation)指的是不同实体之间的某种联系,是图里的“边”。

知识图谱 | 社交网络知识图谱示例; 7-4

图示为一个社交网络知识图谱: 实体有『人』『物品』『建筑』『城市』等。『人与人之间的关系』可以是朋友或粉丝,『人与物品的关系』可以是创作或喜欢。

二、奇搜知识图谱构建方法与流程

爱奇艺搜索(奇搜,https://so.iqiyi.com/) 是国内最大的视频搜索引擎之一,涵盖全网海量视频资源,为用户提供优质的全网视频&娱乐领域的搜索服务。

爱奇艺搜索 | https://so.iqiyi.com/ | ; 7-5

奇搜团队努力完善对视频内容和用户意图的理解,并在过程中构建了以视频领域为主的知识图谱库。

爱奇艺搜索 | 以视频为主的知识图谱库; 7-6

当前,奇搜知识图谱的构建流程主要分为几个步骤:

  • 知识表示与建模
  • 知识获取
  • 知识融合
  • 知识存储
  • 知识应用(知识查询与推理)

爱奇艺 · 奇搜知识图谱的构建流程; 7-7

2.1 知识表示与建模

我们在确认知识的建模表示方式之后,再构建知识图谱。目前主要的知识建模方式有两种,爱奇艺奇搜知识图谱的构建采用的是自顶向下的建模方式。

(1)自顶向下的数据建模方法。先为知识图谱设计数据模式( Schema ),再依据设计好的数据模式进行有针对性的数据抽取;

(2)自底向上的数据建模方法。先进行数据的收集和整理,再根据数据内容总结、归纳其特点,提炼框架,逐步形成确定的数据模式。

知识表示与建模 | 2种数据建模方法; 7-8

1)RDF三元组

RDF(Resource Description Framework),即资源描述框架,实际上是一种数据模型,用来链接资源的各种描述。

  • Resource:页面、图片、视频等任何具有URI标识符。
  • Description:属性、特征和资源之间的关系。
  • Framework:模型、语言和这些描述的语法。

知识表示与建模 | RDF与(S,P,O)三元组; 7-9

RDF由一系列三元组(triple)模型组成,即每一份知识可以被分解为 (Subject(主),Predicate(谓),Object(宾))。

  • 主语(Subject):声明被描述的对象
  • 谓语(Predicate):这个对象的属性
  • 宾语(Object):这个属性的

所以,RDF三元组可以被描述成 (对象,属性,值),即上文提到的 (节点,边,节点) 这样的图。

2)RDFS (RDF Schema)

一个三元组就是一个关系。在RDF里可以声明一些规则,从一些关系推导出另一些关系。这些规则称为“Schema”,所以有了 RDFS(RDF Schema)。规则可以用一些词汇表示,如Class、subClassOf、type、Property、subPropertyOf、Domain、Rnage等。

知识表示与建模 | RDFS推理实例; 7-10

『爱奇艺是一家人工智能公司』 和『一家人工智能公司是一家高科技公司』,可以推导出『爱奇艺是一家高科技公司』。

3)奇搜知识图谱Schema

奇搜基于RDF/RDFS定义了图谱的实体类型、关系(属性)类型、以及实体本身的 Schema 定义。每一层定义在 Schema 的表示语法上都是一致的。

知识表示与建模 | 知识图谱Schema; 7-11

  • Rules层(规则层)。一些基础概念的定义(包括RDF/RDFS已有的定义,以及基于RDF / RDFS定义的、供实体类型/属性定义使用的规则定义),该层规则的定义一般在确定后是不可变的。
  • Ontology层(本体定义层)。包括可实例化的实体类型(Class,可继承)和属性(Property,可继承)的定义,如Thing,Person,wife,name等。
  • Entities层(实体层)。保存在实体库中的具体实体。

为了帮助定义和使用图谱 Schema(主要上图中的本体定义层),爱奇艺搜索团队开发了一套 Schema 系统来负责管理和解析奇搜知识图谱的 Schema 定义:

知识表示与建模 | 奇搜知识图谱Schema系统; 7-12

最终定义的实体类型的继承关系片段示例如下图:

知识表示与建模 | 实体类型的继承关系(片段); 7-13

2.2 知识获取

知识图谱的构建是后续应用的基础,而且构建的前提是需要把数据从不同的数据源中抽取出来。知识获取是构建知识图谱的前提条件,也是自动构建知识图谱的影响核心要素。

数据是知识图谱的根基,直接关系到知识图谱构建的效率和质量。比如,从结构化的数据中构建知识图谱比从非结构化的数据中构建,效率和准确率要高;数据越复杂,噪音越大,构建成本就越高。

目前奇搜知识图谱的数据来源除去人工创建的数据外,主要有站内数据垂直网站数据百度百科数据三种数据来源。

知识获取 | 不同数据来源的优势 & 劣势; 7-14

1)实体分类

实体分类主要用于处理百度百科的数据。因为百度百科的数据没有类别信息,需要先对词条进行实体类型的识别。具体实现是为每种实体类型训练一个实体分类器,准确率可衡量,并且互不影响,可以快速拓展。

知识获取 | 实体分类器; 7-15

实体分类器模型示意图,整体采用启发式方法。

  • 构建基于规则池的分类器,生成训练数据,训练DNN模型(self-attention)文本分类模型;
  • DNN分类器与规则分类器互相扩充迭代(一到两轮),最终线上使用规则分类器。
  • 生成过程中会用上百科词条中的描述文本、infobox字段、超链接词条、词条标签等信息作为特征。
2)实体抽取

实体抽取,是指从数据中识别和抽取实体的属性与关系信息。对不同类型、不同数据源的数据,分别开发属性/关系抽取脚本。

由易到难,主要包括以下三类抽取方式

知识获取 | 实体抽取; 7-16

(1)结构化数据抽取:大部分站内/垂直网站的信息,以及部分百度百科的信息,是结构化的数据,比较易于抽取。源数据结构和实体类型定义(即目标数据结构)多种多样。为了提高开发效率,将结构化数据的抽取流程进行抽象,并写成统一的框架,利用策略模式将抽取的具体规则用groovy脚本来实现。当扩展新的来源和目标实体类型时,只需实现新的抽取脚本。

(2)半结构化数据抽取:百度百科中存在很多表格、列表等格式不完全规则的半结构化信息,抽取有一定难度。比如,半结构化信息中存在一些质量较高的统计性的数据。对于这类数据,采用基于有监督学习的包装器归纳方法进行抽取。

(3)非结构化数据挖掘:百度百科以及站内的描述等大量文本中,也存在有很多宝贵的信息。对于这类数据的实体挖掘,需要借助自然语言处理的手段(主要是实体识别等服务)。

  • 一方面,通过实体链接服务把从文本中抽取得到的实体对象,链接到实体库中对应的正确实体对象,以挖掘文本中关系。
  • 另一方面,利用NER(name entity recognition/实体识别)技术来识别来挖掘文本中的实体。

2.3 知识融合

知识融合主要解决实体对齐(Object Alignment) 的问题。完成实体抽取后,存在实体ID不同但代表真实世界中同一对象的情况。知识融合即是将这些实体合并成一个具有全局唯一标识的实体对象,添加到知识图谱中。

下图是实体对齐的流程图

所有来源的实体数据都会进入原始实体库,并对原始表中的数据建立索引。当一个原始实体 rawEntity 进入最终实体库之前,要在原始实体库中寻找是否有其它原始实体和rawEntity实际上是同一个实体。

知识融合 | 实体对齐的流程图; 7-17

  • 首先,在索引中根据名字、别名等字段查询出若干个可能是相同实体的候选列表,这个步骤的目的是减少接下来流程的计算量。
  • 然后,经过实体判别模型,根据模型得分识别出待合并对齐的原始实体。
  • 最后,经过属性融合模型,将各原始实体的属性字段进行融合,生成最终的实体。

这个流程中的合并判断模型实际上是通过机器学习训练生成的二分类器

2.4 知识存储

线上使用的图数据库引擎选择了JanusGraph。JanusGraph需要外部的存储系统与外部索引系统的支持。所以,爱奇艺搜索团队借助爱奇艺云平台的Hbase和ES集群,搭建了自己的JanusGraph分布式图数据库引擎,支持在线游走查询服务。

知识存储 | JanusGraph分布式图数据库引擎; 7-18

三、奇搜图谱的业务应用

3.1 问答式搜索服务

基于图数据库引擎提供的查询服务,以及NLP技术对用户query的意图理解,提供了多种类型的问答式搜索结果服务。包括:

  • 明星、剧集的属性类的查询:如生日、剧的播出时间等。
  • 实体的关系类的查询:明星的关系、剧集与明星/角色的关系、剧集间的关系、以及各种关系的组合等等。
1)智能问答

爱奇艺 · 奇搜知识图谱的应用; 7-19

◉ 吴京学校

2)关系查询

爱奇艺 · 奇搜知识图谱的应用; 7-20

◉ 《甄嬛传》演员表

3)剧集周边

爱奇艺 · 奇搜知识图谱的应用; 7-21

◉ 《请回答1988》主题曲

4)关系组合

爱奇艺 · 奇搜知识图谱的应用; 7-22

◉ 刘培强的演员还演过

3.2 基础数据服务

奇搜知识图谱的实体库作为基础数据,被用于NLP团队提供的分词和实体识别、意图识别等服务,也在明星图谱等业务场景下直接展示。

1)分词实体识别

爱奇艺 · 奇搜知识图谱的应用; 7-23

◉ 于和伟在《觉醒年代》里饰演陈独秀

2)明星图谱展示

爱奇艺 · 奇搜知识图谱的应用; 7-24

◉ 吴京

3.3 标签挖掘与标签体系完善

知识图谱的数据,可以帮助建立和完善标签体系,以及挖掘视频数据上的标签;同时,标签体系也可以反过来丰富知识图谱。

1)标签挖掘

利用推理等技术,对知识图谱进行挖掘。推理功能一般通过可扩展的规则引擎来完成:

  • 属性的推理:如根据出生年月推理出年龄、星座等。
  • 关系的推理:如根据已有的『妻子关系』推理出反向『丈夫关系』,根据『儿子的儿子』链式关系推理出『孙子』关系等。
2)标签体系完善

视频标签体系完善可以采用同样的方法:视频上的标签与图谱实体进行映射之后,应用和上面一样的推理规则(这里主要用到实体的上下位词、属于、包含等关系)来进行标签拓展。其他的拓展方法还包括Graph Embedding等技术(扩展同类型的关联性强的实体)。

下面是一些标签挖掘的线上应用实例:

爱奇艺 · 奇搜知识图谱的应用; 7-25

◉ 广场舞:广场舞实体、舞队实体、舞曲实体、视频实体

◉ 科幻电影:科幻电影实体、类型实体、明星实体、视频实体

四、总结

上文介绍了奇搜知识图谱的构建以及在搜索中应用。

传统视频搜索 → 爱奇艺搜索; 7-26

传统的视频搜索,通过为整段视频添加文字标签,并将其与用户搜索的信息进行匹配,来完成搜索过程,其搜索原理与传统文字搜索相同。

基于爱奇艺的核心视频业务,奇搜知识图谱全新的娱乐搜索功能,可以帮助用户找到想要的内容、回答用户的问题、以及理解用户的搜索意图,给用户带来更佳的搜索体验。随着视频内容理解和视频知识图谱库的不断完善,未来用户观看视频将像使用文字一样轻松便捷,对于视频搜索、互动的想象空间也在不断清晰。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1653499.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

抖音小店怎么运营?最全的运营攻略来了?

大家好,我是电商糖果 很多开好店铺的小伙伴,都会遇到一个难题,那就是不会运营店铺。 可能好几个月才出十几单,甚至体验分都没有弄出来。 说实话,这种情况糖果见多了。 糖果做抖音小店也有四年多了,也开…

STM32F1#1(入门了解)

一、STM32开发平台和工具 1.1 STM32芯片介绍 典型微控制器由CPU(运算器、控制器)、RAM、ROM和输入输出组成。 1.2 STM32核心板 STM32核心板配件: ①JTAG/SWD仿真-下载器 ②通信-下载模块 ③OLED显示屏 1) 通信-下载模…

uniapp 小程序图片懒加载组件 ImageLazyLoad

预览图 组件【ImageLazyLoad】代码 <template><viewclass"image-lazy-load":style"{opacity: opacity,borderRadius: borderRadius rpx,background: background,transition: opacity ${time / 1000}s ease-in-out,}":class"image-lazy-loa…

请大数据把我推荐给正在申请小程序地理位置接口的人

小程序地理位置接口有什么功能&#xff1f; 若提审后被驳回&#xff0c;理由是“当前提审小程序代码包中地理位置相关接口( chooseAddress、getLocation )暂未开通&#xff0c;建议完成接口开通后或移除接口相关内容后再进行后续版本提审”&#xff0c;那么遇到这种情况&#x…

Python程序设计 函数(三)

练习十一 函数 第1关&#xff1a; 一元二次方程的根 定义一个函数qg&#xff0c;输入一元二次方程的系数a,b,c 当判别式大于0&#xff0c;返回1和两个根 当判别式等于0&#xff0c;返回0和两个根 当判别式小于0&#xff0c;访问-1和两个根 在主程序中&#xff0c;根据函数返回…

c 双向链表

图片 #include <stdio.h> #include <stdlib.h> #include <string.h>int main(void){ struct film{char name[20];int id;struct film *pre; //前向指针struct film *next; //后向指针 };struct film *headNULL;struct film *ls,*lspre,*work;in…

微信小程序16: 组件通信

父子组件之间的通信 父子组件通信一共有三种方式 属性绑定 用于父组件向子组件的指定属性设置数据&#xff0c;仅能设置JSON兼容的数据 事件绑定 用于子组件向父组件传递数据&#xff0c;可以传递任意数据 获取组件实例 父组件还可以通过this.selectComponent()获取子组件的实…

【C++】:模板初阶

目录 一&#xff0c;泛型编程二&#xff0c;函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则 三&#xff0c;类模板3.1 类模板的定义格式3.2 类模板的实例化 一&#xff0c;泛型编程 在C语言中如何实现一个通用的交换…

在Leaflet中点对象使用SVG和Canvas两种模式的对比

目录 前言 一、关于SVG和Canvas 1、SVG知识 2、Canvas知识 3、优缺点 二、SVG和Canvas在Leaflet的使用 1、相关类图 2、Leaflet的默认展示方式 三、SVG和Canvas实例及性能对比 1、SVG模式及性能对比 2、Canvas优化 总结 前言 众所周知&#xff0c;在Leaflet当中&#…

我独自升级下载 我独自升级崛起一键下载安装

近期&#xff0c;动画《我独自升级》凭借其高涨的人气&#xff0c;迅速席卷了各大平台&#xff0c;其热度非凡。乘着这股风潮&#xff0c;韩国知名厂商网石集团火速推出了同名游戏力作《我独自升级&#xff1a;ARISE》&#xff0c;让众多粉丝得以跨越次元壁垒&#xff0c;亲自投…

批量图片重命名及汇总

又一堆图片文件需要处理... 源文件分布&#xff1a; 有N个文件夹&#xff0c;每个文件夹下又有M个子文件夹&#xff0c;每个子文件夹下有X张图片。 例如文件夹A下有子文件夹A1,A2,A3&#xff0c;子文件夹A1下有图片a-1,a-2,a-3...... 处理目标&#xff1a; 1、将所有图片汇…

qt开发解压缩zip文件实现

作者开发环境&#xff1a;Qt5.8 &#xff0c;win10 总体思路&#xff1a;首先我们编译zip源码&#xff0c;生成zip的动态库&#xff1b;然后再编译quazip源码&#xff0c;得到quazip的动态库&#xff1b;最后在我们的程序中去调用。 详细步骤&#xff1a; 1、编译zlib zlib…

HackMyVM-Slowman

目录 信息收集 arp nmap whatweb WEB web信息收集 gobuster FTP匿名登录 hydra mysql爆破 mysql登录 fcrackzip爆破 hashcat爆破 ssh登录 提权 系统信息收集 python Capabilities提权 信息收集 arp ┌──(root㉿0x00)-[~/HackMyVM] └─# arp-scan -l Interf…

有哪些渠道找到海外代理IP服务?

在今天的全球化时代&#xff0c;许多企业和个人都需要跨越国界&#xff0c;与世界各地的资源、信息和市场进行连接。海外代理IP服务成跨境在线业务增效的重要的工具&#xff0c;可以帮助拓展业务宽度&#xff0c;以实现更多样化的业务需求。但是&#xff0c;如何找到合适、安全…

华为数据之道第四部分导读

目录 导读 第四部分 第10章 未来已来&#xff1a;数据成为企业核心竞争力 数据&#xff1a;新的生产要素 数据被列为生产要素&#xff1a;制度层面的肯定 数据将进入企业的资产负债表 数据资产的价值由市场决定 大规模数据交互的企业数据生态 数据生态离不开底层技术的…

STM32使用ADC单/多通道检测数据

文章目录 1. STM32单片机ADC功能详解 2. AD单通道 2.1 初始化 2.2 ADC.c 2.3 ADC.h 2.4 main.c 3. AD多通道 3.1 ADC.c 3.2 ADC.h 3.3 main.c 3.4 完整工程文件 1. STM32单片机ADC功能详解 STM32单片机ADC功能详解 2. AD单通道 这个代码实现通过ADC功能采集三脚电…

回答篇:测试开发高频面试题目

引用之前文章&#xff1a;《测试开发高频面试题目》 https://blog.csdn.net/qq_41214208/article/details/138193469?spm1001.2014.3001.5502 本篇文章是回答篇&#xff08;持续更新中&#xff09; 1. 什么是测试开发以及其在软件开发流程中的作用。 a. 测试开发是指测试人员或…

MySQL LRU算法(冷热数据分离)

背景 MySQL中使用的InnoDB存储引擎采用了一种特别的最近最少使用&#xff08;LRU, Least Recently Used&#xff09;算法来管理其Buffer Pool中的页&#xff08;包括数据页和索引页&#xff09;。Buffer Pool是InnoDB用来缓存数据&#xff0c;以减少磁盘I/O操作的内存区域。正…

Kafk设计篇01(设计动机+持久化)

背景 本篇文章基于最新版本&#xff1a;kafka 3.7&#xff0c;其他版本的设计&#xff0c;请参考官网&#xff1a; https://kafka.apache.org/documentation/设计动机 任何组件都有它存在的必要&#xff0c;必然是要解决某一类问题的。我们来看看kafka设计的初衷如何。 kaf…

ICLR 2024 杰出论文奖揭晓!两篇国内论文获荣誉提名

国际学习表征会议&#xff08; International Conference on Learning Representations&#xff0c;简称ICLR&#xff09;&#xff0c;于5月7日至11日在奥地利维也纳展览会议中心举行。 ICLR与NeurIPS&#xff08;Conference on Neural Information Processing Systems&#x…