大厂技术实现 | 爱奇艺文娱知识图谱的构建与应用实践 @自然语言处理系列

本文主要是介绍大厂技术实现 | 爱奇艺文娱知识图谱的构建与应用实践 @自然语言处理系列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ShowMeAI大厂技术实现方案

💡 作者:韩信子@ShowMeAI,奇异果@爱奇艺
📘 大厂解决方案系列教程:https://www.showmeai.tech/tutorials/50
📘 本文地址:https://www.showmeai.tech/article-detail/95
📢 声明:版权所有,转载请联系平台与作者并注明出处
📢 收藏 ShowMeAI 查看更多精彩内容


一图看懂全文

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

ShowMeAI社区的技术专家小伙伴们对知识图谱的典型算法做了实现,构建了相关应用 🏆『知识图谱构建与落地实践』,对细节感兴趣的话,请前往 这里 查看实现代码参考。代码的整理花费了很多心思,欢迎大家 PR 和 Star!

ShowMeAI官方GitHub(实现代码参考):https://github.com/ShowMeAI-Hub/


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

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

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

本篇是『知识图谱构建与落地实践』的实践篇,我们与来自爱奇艺的NLP工程师奇异果,一起研究学习爱奇艺搜索团队2015年开始搭建的 奇搜知识图谱库 (https://so.iqiyi.com/) ,了解奇搜知识图谱的构建过程,及其在爱奇艺搜索、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

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

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


ShowMeAI 大厂技术实现方案推荐

ShowMeAI大厂技术实现方案
  • 大厂解决方案系列 | 数据集&代码集(持续更新中):https://www.showmeai.tech/tutorials/50
  • ShowMeAI官方GitHub(实现代码):https://github.com/ShowMeAI-Hub/
  • 『推荐与广告』大厂解决方案
    • 大厂技术实现 | 多目标优化及应用(含代码实现)@推荐与广告计算系列
    • 大厂技术实现 | 爱奇艺短视频推荐业务中的多目标优化实践@推荐与计算广告系列
    • 大厂技术实现 | 腾讯信息流推荐排序中的并联双塔CTR结构@推荐与计算广告系列
  • 『计算机视觉 CV』大厂解决方案
    • 大厂技术实现 | 图像检索及其在淘宝的应用@计算机视觉系列
    • 大厂技术实现 | 图像检索及其在高德的应用@计算机视觉系列
  • 『自然语言处理 NLP』大厂解决方案
    • 大厂技术实现 | 详解知识图谱的构建全流程@自然语言处理系列
    • 大厂技术实现 | 爱奇艺文娱知识图谱的构建与应用实践@自然语言处理系列
  • 『金融科技』大厂解决方案
  • 『生物医疗』大厂解决方案
  • 『智能制造』大厂解决方案
  • 『其他AI垂直领域』大厂解决方案

ShowMeAI系列教程精选推荐

  • 图解Python编程:从入门到精通系列教程
  • 图解数据分析:从入门到精通系列教程
  • 图解AI数学基础:从入门到精通系列教程
  • 图解机器学习算法:从入门到精通系列教程
  • 机器学习实战:手把手教你玩转机器学习系列
  • 深度学习教程:吴恩达专项课程 · 全套笔记解读
  • 自然语言处理教程:斯坦福CS224n课程 · 课程带学与全套笔记解读
  • 深度学习与计算机视觉教程:斯坦福CS231n · 全套笔记解读

ShowMeAI大厂技术实现方案

这篇关于大厂技术实现 | 爱奇艺文娱知识图谱的构建与应用实践 @自然语言处理系列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/472189

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设