7月QCon广州站2022,关注Web 3.0、数据架构选型、数字化转型等热门话题,点击了解 了解详情
写点什么

基于知识图谱的语义理解技术及应用

  • 2020 年 4 月 08 日
  • 本文字数:4747 字

    阅读完需:约 16 分钟

基于知识图谱的语义理解技术及应用

导读:知识图谱在人工智能应用中的重要价值日益突显。百度构建了超大规模的通用知识图谱,并在搜索、推荐、智能交互等多项产品中广泛应用。同时,随着文本、语音、视觉等智能技术的不断深入,知识图谱在复杂知识表示、多模语义理解技术与应用等方面都面临新的挑战与机遇。本文将介绍百度基于知识图谱,从文本到多模态内容的理解技术及应用的最新进展。


本文主要内容包括


  • 背景

  • 知识图谱文本语义理解

  • 知识图谱视频语义理解

  • 总结


01 背景

1. 多模语义理解需求强烈



多模语义理解需求强烈。对于百度而言就有很多视频产品,比如信息流、全民小视频、爱奇艺等等,对应长视频、短视频、小视频等,这类视频的深度理解对于公司的视频业务,是非常核心的基础技术。


2. 深度语义理解需要知识



在实际应用场景中,我们发现要实现视频的深度语义理解,在纯感知技术的基础上,知识发挥着重要的价值。比如上面的短视频片段,从内容理解来看,传统的视频理解更多是基于感知,比如通过人脸识别和从 OCR 识别出关键词/字。在实际场景中我们发现这些效果上还有较大优化空间,同时,这样识别出的结果没有刻画出用户对视频核心的细粒度兴趣,比如影视剧的角色、关系等知识。但是基于知识图谱的语义理解就可以解决这类的问题,它能够对视频做深度结构化的解析,然后上层的推荐、搜索可以应用这些知识作为特征辅助内容的高效分发。


3. 目标与价值


根据上面描述,我们的目标是基于知识图谱对用户/资源从多维度进行知识增强的语义分析,协助提供上层智能应用所需语义计算与推理能力。相比传统的理解,它的价值有两个方面:一是它可以真正理解资源背后的知识;二是它可以基于知识图谱进行计算和推理。


02 知识图谱文本语义理解

1. 知识增强的多维度语义分析



不同于传统的文本语义理解,我们的知识图谱文本语义理解是对文本从实体、概念、关系的知识维度去做全方位的解析,协助提供应用所需语义知识。首先对文本进行实体类的标注,然后将实体关联到知识图谱,这样通过关联关系以及知识图谱获取实体对应信息;其次进行概念化,理解实体背后的知识;最后会理解实体之间的关系,包括实体的属性、侧面等。通过建立知识图谱的文本语义理解,会有三方面的技术特点:语义消歧、可计算推理和可泛化解释。


2. 多种文本形态与业务场景下,诸多挑战



在实际的场景之下,我们会面临诸多的挑战:


① 多种文本形态


短文本:上下文非常稀疏,歧义问题加剧;


篇章:很多篇章的理解需要上下文跨句或者跨段落才能理解,在实际工程场景之下,对性能和效果需要很高的要求,而性能是决定该策略是否可以上线的重要因素之一。


② 新实体:知识图谱不可能收录全部实体,如果在文本中新实体没有被识别,这对文本的理解会有负面的影响。


③ 不同业务场景:多种不同的输入和多种定制化的需求。


我们的解决方案是首先使用一些知识增强的技术去提升语义理解的效果,其次是深度神经网络,最后将一些核心算子进行抽象并组件化,通过组件化的方式定制化去支持不同的业务。


3. 实体标注:基于知识增强的标注技术



在知识图谱中实体标注的目标:标注文本中的实体,消歧并且关联到知识库。这其中有一些关键的技术,流程如下:


首先,先对输入的文本进行实体的识别,比如“李白这首歌好听吗?”,对于“李白”这个实体,它背后有很多候选实体,可能是诗人、歌曲、游戏里的英雄角色或者是普通的人。在候选实体中有一个很重要的问题——新实体的识别,这里面我们通过知识远监督的方式生成大量训练样本并且结合百度预训练模型 ERNIE 来提升新实体识别的效果。


其次,有了这些候选实体之后会对所有候选实体进行排序,这里面我们引入的是知识向量表示,联合实体属性和结构化关系去训练出实体 embedding 表示,然后使用语义匹配模型做统一的度量进行实体的排序。


最后,对候选实体得分最高的实体进行一个判定,是否将该实体关联到知识库中。


4. 概念化:基于概念图谱的细粒度概念化



接下来是概念化,与传统的命名实体识别是有差异的,比如“如何玩好李白这个英雄”,在命名实体识别中会将“李白”识别成人物,在概念化中根据当前上下文,动态识别出实体对应的上位概念,即这里对于“李白”会识别出游戏角色、虚拟人物。所以,概念化会从更细的粒度的刻画文本中这个实体在当前上下文中最合适的上位概念,做到符合当下场景下的知识理解。


在实际应用中,我们会构建一套知识网络去提供知识来增强文本的理解。对于输入文本通过知识网络会转化成一个图,图上的节点会是实体、属性还有一些动词形容词等等。有了这些节点之后,在图上进行随机游走,最终随机游走收敛完之后会得到每个实体在当前上下文最合适的上位概念。


5. 概念化-关键技术:知识网络



对于概念化最关键的技术就是知识网络的构建,方案如下:


  • isA 网络:实体上下位的知识,比如杨洋是男演员、男歌手;

  • 共现网络:挖掘全网下实体的共现,同时转换成概念的共现,比如歌手与歌曲的共现;

  • 词汇网络:构建出大量实体、概念和信号词之间的共现关系,这里的信号词更多是形容词/动词;

  • 语义网络:预训练的文本语义向量 ERNIE 和上面提到的训练出实体的向量表示。


6. 面向多种应用场景


在面向各种应用场景中,我们会将这些核心技术抽象出算子,通过算子组件化的方式去满足不同场景下文本语义理解。


应用示例



03 知识图谱视频语义理解

1. 知识增强的视频深度理解



传统的视频理解会对视频分类,比如上面的视频会分类到影视,会通过人脸识别出汤姆克鲁斯,再通过 OCR 和语音识别出文本并提取出一些关键字,但是这样的理解并没有真正理解视频背景的知识,如前文所述在实际场景中也会存在问题。


我们会把视频转换成知识子图,通过知识图谱对这张子图进行知识扩充,并使用推理和计算来置信计算及冲突检测。它有三个技术特点:深度理解、可计算推理和支持更多产品创新。


示例



2. 知识图谱视频语义理解的挑战



在实际的场景之下,会有两方面的挑战:


① 知识构建与利用:对于视频语义理解需要哪些知识?如何构建这些知识?如何利用这些知识去深度理解视频?


② 多模态:视频本身是典型的多模态,包括文本、视觉和语音,在这些多模态信息如何融合、去噪、理解?


3. 基于知识及计算推理的深度语义理解



视频语义理解完整的流程,包括:


对短视频进行多模态的分析,包括视觉理解、语音理解和文本理解这些感知上面的理解;然后将这些结果利用知识关联技术建立到视频理解图谱当中;最后有了这些关联关系、知识和多模解析的结果,会做多模态融合并且在这张图上进行计算推理。


在小视频的语义理解中,流程同短视频的语义理解相同,但与短视频会有一些差异,因为小视频更偏向于主题、场景类的理解。


4. 视频理解图谱:区别于传统图谱



视频理解的目标是提供主题、实体、实体侧面、场景等维度对用户需求及视频资源点描述的知识,不同于传统的知识图谱,视频理解图谱在图谱节点方面更关注于主题、实体侧面、场景类的知识,以及这些知识的关系如属性关系、上下位关系和关联关系等;在知识来源方面专注视频搜索日志、用户评论、视频资源本身来挖掘图谱等;在应用场景方面更多关注视频推荐、搜索和内容生成等。


5. 视频理解图谱:聚焦重点知识建设



上面提到了视频理解图谱与传统图谱之间的关系,所以我们的构建思路就是差异化的构建,重点构建场景、实体侧面、主题、实体以及它们的关联关系,最后将这个图谱反哺到通用的图谱当中。整个过程如下:


① Ontology 构建:借鉴与通用图谱的 ontology 构建然后使用人机结合的方式构建出视频理解图谱的骨架;


② 知识挖掘:有了骨架后开始各种知识的挖掘,包括新实体挖掘、实体侧面抽取、主题抽取和场景挖掘等;


③ 语义关系:有了上面的知识节点,开始建立关系,例如上下位的关系、场景的关系等;


④ 图谱构建:有了节点和关系,开始进行图谱化构建,这里重点会对实体进行归一/关联和建边;


⑤ 质量控制、特征计算:在建立完视频图谱之后,为了图谱的应用,会再进行冲突检验、热度特征统计和关联强度特征计算等。


6. 关键技术:多种知识发现与挖掘技术



实体、主题、实体侧面发现与挖掘:


  • 新实体挖掘:上面已介绍;

  • 主题发现:结合用户的点击行为解决主题发现冷启动问题,然后使用序列标注的方式进行主题挖掘;

  • 实体侧面挖掘:基于阅读理解的模型,使用半指针半标注的方式进行实体侧面标注。


7. 实体理解


基于多模融合与计算推理,理解视频主体



一个视频中会存在很多的实体,对视频的主旨理解而言,有重要的实体也有不重要的实体。我们需要区分出哪些实体是视频的主体,哪些实体是噪声;进一步需要理解实体背后的知识,因为看到一段视频,在里面出现的人和事甚至一些动作并不能完整描述视频的主旨;最后就是需要对歧义进行消除。


我们的解决思路是:


① 多模态解析:使用语义匹配网络、视频关注点和无监督核心度排序的方式综合将视频内的潜在核心实体 mention 提取出来;


② 实体关联:将潜在实体 mention 与图谱关联,解决消歧和语义化问题;


③ 计算推理:实体计算扩展实体的属性关系;不确定性推理判断哪些实体在该视频中是最主要实体;冲突检测将不符合视频主旨内容的实体过滤。


示例



视觉与知识结合,短视频关联源视频



一些场景中,在我们看完短视频之后都想知道是来源于哪个长视频,甚至是来源于长视频的哪一集。传统做法是使用视频指纹识别的方式来找到源视频,我们在这个基础上加入知识图谱的语义理解来辅助召回源视频。首先对于一些指纹识别处在边界的一些结果利用语义理解来做辅助的校验;其次,对一些长视频不在目标索引库里面的情况,我们会通过语义理解来推断出一些可能关联到的源视频。


8. 场景理解:基于多模融合与计算推理,理解视频主体



前面介绍了实体理解,接下来介绍场景理解,场景在这里面更多的是动作、事件。我们分为两类:一是粗粒度场景;二是细粒度场景,比如:汽车是粗粒度的场景,考驾照、汽车维修就是细粒度的场景。


传统的方法是从视频分类角度去做,我们发现对于粗粒度的场景效果很好,但是对细粒度的场景效果就不好。通过分析我们发现有几个难点:


  • 细粒度分类需要大量的标注样本;

  • 有些场景需要引入知识,如果没有知识背景有些人都很难看出来;

  • 在实际应用中,我们要控制效果和灵活性,但是通过纯模型的方式很难进行控制。所以,我们提出利用知识和视觉结合来做场景的推断。


我们的解决方案是:


  • 首先,通过粗粒度的分类模型对视频进行分类;

  • 其次,提取出视频中的人物、关键字和动作等关联到场景图谱里面;

  • 最后,在场景图谱中进行符号推理,再辅助一些知识来进行分类获取最终细粒度场景结果。


以下是基于知识图谱的视频语义理解在产品中应用示例。


应用示例



9. 视觉问答 ( VQA ):多模融合与理解



除了上面的介绍,我们知识图谱部还做了很多其它的工作,其中之一是视觉问答。


我们的主要工作是提出一种改进的“多粒度跨模态注意力机制”,从更细粒度上增强跨模态信息的理解对齐能力和解释能力。使模型能更好的融合,理解多模态信息。在 VQA2.0 上面效果表现良好,从 65.67 提升到 67.73。


10. 跨媒体生成



另一个工作是跨媒体生成,主要是在图文生成和视频生成。我们基于视频语义理解和知识图谱去提供生成所需要的素材、信号和知识来提升视频生成效果。


示例



04 总结

本次分享主要介绍了


  1. 多模语义理解的价值:实现深度语义理解,理解其背后的知识。

  2. 知识图谱文本语义理解:知识增强的多维度语义分析、实体标注和概念泛化。

  3. 知识图谱视频语义理解:

  4. 视频理解图谱

  5. 图像、语音、文本多模态特征融合

  6. 基于知识关联、推理计算的深度语义理解


今天的分享就到这里,谢谢大家。


作者介绍


冯知凡,百度主任研发架构师


本文来自 DataFunTalk


原文链接


https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247498767&idx=1&sn=cbd74c10959febbf060007d744f5a4f0&chksm=fbd74e63cca0c775a83036e66388d0d6b806809c9c2db98160b74c6fa033bf4233f2c3c7e6b1&scene=27#wechat_redirect


2020 年 4 月 08 日 14:022447

评论

发布
暂无评论
发现更多内容

Java中的几种阻塞队列,kalilinux渗透教程

Java 程序员 后端

Java反射(1),java架构师薪资

Java 程序员 后端

Java如何在运行时识别类型信息?,java发展史百度百科

Java 程序员 后端

Java实现AES加密算法,2021最新百度、头条等公司Java面试题目

Java 程序员 后端

Java中高级核心知识全面解析——消息队列(1),看完这一篇就够了

Java 程序员 后端

Java多线程笔记,java自学视频免费

Java 程序员 后端

java学习-数据类型和运算符,Java爬虫爬取视频

Java 程序员 后端

Java中的初始化与清理,kafka参数调优

Java 程序员 后端

Java中高级核心知识全面解析——Dubbo,kafka入门到精通文档

Java 程序员 后端

Java在2018年的形势,MySQL优化原理分析及优化方案总结

Java 程序员 后端

Java实现单链表、栈、队列三种数据结构,linux内核编程入门篇

Java 程序员 后端

Java学习路线图(如何快速学Java),java数据结构与算法面试题

Java 程序员 后端

Java中的容器,Java开发进大厂面试必备技能

Java 程序员 后端

Java中高级核心知识全面解析——消息队列,mybatis映射原理

Java 程序员 后端

Java使用JDBC开发 之 DBCP连接池,保洁阿姨看完都会了

Java 程序员 后端

Java基础知识总结(绝对经典),java项目实战视频旅行社管理系统

Java 程序员 后端

Java大牛带你4小时开发一个SpringBoot+vue前后端分离博客项目

Java 程序员 后端

java响应重定向发送post请求,spring+mybatis基础知识

Java 程序员 后端

Java基于TCP的网络编程,在阿里工作5年了

Java 程序员 后端

Java基础03 Java的运算符,阿里巴巴java性能调优

Java 程序员 后端

Java实现人脸检测,oppojava后端面试几面

Java 程序员 后端

Java实现各种内部排序算法,mysql排它锁之行锁

Java 程序员 后端

java反射map转实体类 实体转map,微服务架构的优缺点

Java 程序员 后端

Java反射,mysql开发教程

Java 程序员 后端

Java垃圾回收机制小结以及优化建议,kafka的工作原理图

Java 程序员 后端

Java中的几种阻塞队列(1),mybatis返回主键原理

Java 程序员 后端

Java发送邮件,字节跳动上千道精选面试题还不刷起来

Java 程序员 后端

Java基础复习(DayEleven),应届生面试java开发工程师的题

Java 程序员 后端

模块三:如何保证设计出合理的架构? -- 学习总结

小鹿

Java多态实现原理,招银网络科技java面试

Java 程序员 后端

Java中的程序控制流程,java面试常问知识

Java 程序员 后端

基于知识图谱的语义理解技术及应用_架构_DataFunTalk_InfoQ精选文章