悦数图数据库

首页>博客>应用场景>腾讯音乐:知识图谱在音乐搜索中的应用

腾讯音乐:知识图谱在音乐搜索中的应用

业务挑战:基于文本的搜索召回流程复杂,精准度不足

近几年来,图数据在计算机领域得到了广泛的应用。图数据在影音娱乐场景中也广泛存在,其中与音乐相关的业务数据主要有以下三类:内容方面有歌曲、综艺、影视、专辑等;歌手方面有歌手信息、歌手之间的关系,包括组合、相似度等;歌手和歌手内容之间的关系有演唱、作词、作曲等。

之前腾讯音乐的搜索召回主要是基于文本匹配,召回后还需进行相关性排序,存在召回流程/排序策略复杂、精准度不足、过度召回的问题,难以满足业务需求。为了让内容搜索更加智能化、用户体验更佳,腾讯音乐希望借助知识图谱对搜索行为的后台逻辑进行优化。

选择 悦数图数据库:优化内容搜索效率和用户体验

为了满足平台业务需要,我们选出的是支持千亿级规模数据,高性能毫秒级多跳查询,能做到毫秒级的在线响应、支持数据批量导入导出的分布式图数据库产品。经过对多个图数据库的对比 & 优缺点分析,并通过一度邻居(跟点直接相连的点)、两度邻居、共同邻居这三个方面的数据库性能测试,综合来看发现「悦数图数据库」不管是单机性能,还是集群性能,都要远超于其他竞品。

腾讯音乐知识图谱项目架构可以分为在线层和离线层,在线层主要包含以下模块:storaged 负责具体数据的存储,包括点数据、边数据,以及相关的索引;metad 负责存储图数据的 meta 信息,例如数据库的 schema、addition 等。离线层有音乐数据实时的新增数据,例如新增发行的唱片,还有全量数据的更新,我们选择了全量加增量的数据层方案。通过全量数据生成和实时数据生成的方案,形成一个增量的源数据,实现分钟级的历史增量的补发。

应用场景

腾讯音乐知识图谱搜索实践

应用场景1: 复杂搜索查询

音乐知识图谱不仅可以做简单的搜索,还可以实现复杂搜索需求。例如要查询周杰伦的男女对唱的歌曲有哪些,如果要实现这个查询,需要对周杰伦的歌曲进行一定的过滤,歌手的数量要等于 2,另一位歌手的性别是女性,还要考虑基于播放量、歌手权重等等的排序。

在传统关系型数据要实现这个功能很复杂,利用知识图谱就比较简单了——先找到歌手周杰伦,查找周杰伦的所有歌曲中满足 2 人合唱,另一个歌手性别是女性的,只要两跳就可以实现复杂的搜索查询。

应用场景2:搜索结果的相关推荐

使用知识图谱可以根据搜索的关键词查询图谱中的实体节点,进而查询出关联的节点,用关联的节点给出推荐的结果。例如:用户搜索“周华健”,我们希望通过关联信息推荐出“李宗盛”。如果通过原有的搜索引擎这个关联很难实现;而用知识图谱,从周华健(歌手)对应到纵贯线(组合),从组合再到另一歌手李宗盛,只要两跳。

应用场景3:基于知识计算给出答案

通过图谱的关联信息、实体上下位信息、实体属性信息,也可以根据知识图谱的计算结果查询出相应的答案。例如用户搜索刘德华90年代的歌曲,用知识图谱的话,只要选择「歌手」-刘德华、「时间」-90年代歌曲,两个联合起来就可以得到结果。

使用收益:召回流程缩短,搜索更快更精准

传统的搜索召回是基于文本匹配,流程复杂准确度不足,而知识图谱搜索召回是基于实体之间的关系进行查询,搜索召回具有结果精准、流程短的优点。通过使用图数据库进行音乐知识图谱的升级,增强了检索和推荐的效率,同时基于图数据技术实现的知识库具备一定的推理能力,提升了客户的搜索体验。

目前,腾讯音乐已经上线了知识图谱的搜索应用,支持各类搜索场景。例如:校歌搜索-当用户搜索大学校名和校歌组合时,召回对应的学校的校歌;歌手场景-当用户搜索歌手名字的时候,返回歌手所在组合,以及合唱过知名歌曲的合作歌手等;影视场景-当用户搜索影视主题曲、片尾曲、插曲等等的时候,返回对应的影视的歌曲等等。