干货 | 知识图谱在旅游领域有哪些应用?携程度假团队这样回答

2023-10-17 03:50

本文主要是介绍干货 | 知识图谱在旅游领域有哪些应用?携程度假团队这样回答,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

阿里云幸运券

作者简介

鞠建勋,携程度假AI研发团队资深算法工程师,主要负责携程度假自然语言处理相关的AI项目。硕士毕业于南京大学,有五年的自然语言处理经验,专注于自然语言处理和知识图谱方面的应用和算法研发。

随着互联网和大数据的发展,数据呈现爆炸式增长的态势。知识图谱以其强大的语义处理能力和开放组织能力,为大数据时代的知识化组织和智能应用奠定了基础。

旅游行业作为综合性行业,包含交通、游览、住宿、餐饮、购物、文娱等多个环节,每个环节都有着海量的数据,并且有着相当庞大的应用场景。

同时,旅游领域的数据有着领域范围大,涉及知识面广,知识层级多的特点,比如一个简单的团队游产品就会和飞机、酒店、景点、火车、汽车、餐厅等等多个实体产生关联。对于旅游行业,尤其是互联网旅游行业,如何构建和应用一个旅游领域的知识图谱成为一个非常有价值的问题。

本文将从旅游领域知识图谱的特点,知识图谱的构建,知识图谱的应用三个方面介绍知识图谱在互联网旅游行业的应用。

一、旅游领域知识图谱的特点

如上图所示,曼谷三日游是一个旅游产品,它包含泰国航空、曼谷阿玛丽水门酒店、大皇宫、皇宫酒店等子产品,每个子产品都有自己不同的数据属性和架构。

泰国航空,包含航班号、出发时间、出发地点、到达时间、到达地点等数据;曼谷阿玛丽水门酒店,包含酒店房型、酒店价格、酒店地址、酒店设施等信息;景点包含门票、地址、景点类型等信息;而餐厅有着菜品、价格、地址等重要信息。

如果这个旅游产品的信息采用传统数据库进行存储,需要多张数据表进行存储,不便于对于复杂数据的整合,也不便于进行一些涉及多领域的推理,而且一旦涉及到复杂的查询,就需要多张表的关联,不利于知识的快速获取。

为了解决上述问题,我们构建一个图数据库去存储这些产品的数据。当数据以图的形式存在,就可以发现很多路径存在于两个事物之间,通过路径的跟踪以及一些图的算法就很容易得到一些事物之间的关系。这个图数据库就构成了一个旅游领域的知识图谱。

我们把图数据库中的泰国航空、曼谷阿玛丽水门酒店、大皇宫、皇宫酒店、曼谷、泰国等等设为节点,并称之为实体;把他们之间的关系设为节点和节点之间的边;而把航班号、酒店房型、地址等信息称之为实体的属性。

例如,游客想知道,大皇宫属于哪个国家,通过“大皇宫”->[所属城市]->“曼谷”->[所属国家]->“泰国”的“实体->关系->实体”递推关系就可以很容易找到答案;而传统数据库需要专门为查询国家写一套解决逻辑。又例如,我们想查询一下大皇宫附近的酒店价格,可以通过“大皇宫”->[附近酒店]->“xx酒店”->[价格]->“xx元”的关系找到答案;而传统数据库则需要多张表的联合查询才有可能完成这个查询。

此外,知识图谱还有强大的语义概括能力和语义抽象能力。我们可以把实体的类型抽象成Class(类别),也叫做本体,通过本体与本体之间的关系来完成一些推理或语义分析。

比如我们把大皇宫归于“古代建筑”这个类别,同时定义“古代建筑”属于“建筑”的子类,“建筑”则有“高度”的属性,那么大皇宫也有“高度”的属性。我们不需要给每个子类定义一些通用属性,而只要通过继承父类的属性就可以完成定义。

二、旅游领域知识图谱的构建

旅游领域知识图谱的构建,来自于企业数据和外部数据的融合。

首先,构建一个旅游领域的知识图谱,需要企业内部数据作为基础,因为企业内部数据是和企业产品息息相关的,而产品是一切应用的基础。

旅游产品中的信息大部分作为基础数据存在,比如酒店房型,酒店地址等等,我们需要这些信息来构建酒店的知识图谱。而对于一些变化非常频繁的数据,则不会导入到知识图谱中,比如售卖数量等等。我们把这类知识图谱统称为行业知识图谱,它具有高深度和专业性的特点。

此外,我们还需要用到外部数据作为补充,比如我们经常会用到wiki上的常识信息来补充知识图谱,我们把这部分知识图谱称为通用知识图谱。

腾讯云代金券

通常常识信息不会存储在企业内部数据库,且具有非常大的广度,比如大皇宫的面积有多大,高度有多高等等。这些常识信息对于产品售卖可能没有太大作用,但对于回答客户的问题或提供搜索依据是有很大帮助的。

通用知识图谱的广度和行业知识图谱的深度相结合,可以互相补充,形成更加完善的知识图谱。

外部数据经常会以大段文本的形式存在,因此我们需要从文本中抽取关系。通常采用自然语言处理的NER方法去提取文本中的实体,结合句法分析、远程监督等传统方法来提取实体与实体之间的关系。

如下图所示,我们可以抽取出刘氏庄园这个景点名,同时可以抽取出兴义这个目的地名,也可以挖掘出它们之间的“位于”关系。那么这段文本中的“刘氏庄园”->[位于]->“兴义”这条知识图谱数据就成功被抽取出来了。

知识图谱的存储可以选择RDF数据库,或者图数据库。RDF数据库是W3C标准的以三元组的形式存储的知识图谱,有标准的推理引擎,易于进行推理和关系发现;而图数据库则以节点和边的方式存储知识图谱,节点和边都可以带属性,没有标准的推理引擎,但图数据库的遍历效率高,性能更好,更适合企业级的海量数据。

当构建好旅游领域的知识图谱之后,可以对知识图谱进行补全。比如大皇宫的所属城市是曼谷,而曼谷是泰国的一个城市,假如缺失了“大皇宫”->[所属国家]->“泰国”这条关系,我们可以通过关系补全来把这条关系加入知识图谱。关系补全的方法有很多,如TransE、TransH和TransR等,本文就不一一阐述了。

三、旅游领域知识图谱的应用

知识图谱的应用很广,结合知识图谱和旅游领域的特点,旅游知识图谱可以应用在以下几个方面:

1、旅游问答机器人

通常问答机器人不擅长去“寻找”答案,而是需要人来提前“设定”好答案。但有了知识图谱之后,这种情况会得到一些改变。

基于知识库的问答系统我们称之为KBQA(Knowledge based Question Answering),而知识图谱是知识库的一种。KBQA更擅长回答“what”“when”“where”问题,只要捕捉到问句中的实体和关系,就可以在知识图谱中“寻找”到相应的实体以及它的属性,而通过实体的属性可以解答大部分的“what”“when”“where”问题。

目前有很多问答模型利用知识图谱来解答问题。通常把实体和关系作为一种特征,参与问句意图的计算。我们首先解析问题的语义特征,提取问题中的实体和关系,然后将实体与关系映射到知识图谱中,把知识图谱中对应的实体属性返回作为答案,或者将知识图谱中的实体、关系、属性作为特征,参与下一步的模型计算。

2、旅游内容推荐

旅游产品非常多样化,所以很依赖推荐。我们往往会抓住旅游产品和用户的浅层特征去推荐,而忽略了一些深层次的特征。当用户和某个知识图谱实体产生关联,我们可以用知识图谱去补充用户特征。

如上图所示,当我们通过数据挖掘发现用户A的兴趣点是海岛和五星级酒店后,我们可以通过知识图谱关联出相关的团队游产品。知识图谱提供的信息可以作为推荐系统的一个重要维度,参与下一步的计算,为精准推荐增加一块砝码。

3、旅游内容搜索

旅游产品的数量很多,因此对于搜索的要求很高。对于一些复杂的搜索语句,知识图谱可以利用自身的推理能力搜索出深层的答案。

例如,用户在搜索框输入“大皇宫附近的酒店”,知识图谱可以通过“大皇宫”->[附近酒店]->“xx酒店”搜索出相关的酒店。如果用户在搜索框输入“大皇宫附近酒店的价格”,知识图谱可以通过“大皇宫”->[附近酒店]->“xx酒店“->[价格]->”xx元“搜索出酒店的价格属性。知识图谱利用了图数据库的优势,非常方便地进行图遍历,加强了搜索引擎解决复杂搜索的能力。

四、总结

知识图谱在旅游场景还有很多其他应用,本文就不一一列举了。

知识图谱这项技术还处于发展阶段,还有很大的提升空间,结合日益增长的旅游市场,我们非常看好知识图谱应用于旅游领域的前景。我们相信,未来的知识图谱还会有更多的应用和更多的技术,为互联网旅游行业的发展添砖加瓦。

腾讯云代金券

原文链接

https://mp.weixin.qq.com/s?__biz=MjM5MDI3MjA5MQ%3D%3D&mid=2697267537&idx=1&sn=3011302613b90749d7ffe0cc3a805d1f&chksm=8376f665b4017f733ddef74173b7b6bf0f6156144d017fe6b7dd39c8cd6645c0352dfab61d73&mpshare=1&scene=23&srcid=1011x8nehhhZCkvyNE3R45zY%23rd

服务推荐

  • 蜻蜓代理
  • 代理ip
  • 微信域名拦截检测
  • 微信域名检测api

这篇关于干货 | 知识图谱在旅游领域有哪些应用?携程度假团队这样回答的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

Java Stream流之GroupBy的用法及应用场景

《JavaStream流之GroupBy的用法及应用场景》本教程将详细介绍如何在Java中使用Stream流的groupby方法,包括基本用法和一些常见的实际应用场景,感兴趣的朋友一起看看吧... 目录Java Stream流之GroupBy的用法1. 前言2. 基础概念什么是 GroupBy?Stream

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

C#中的Converter的具体应用

《C#中的Converter的具体应用》C#中的Converter提供了一种灵活的类型转换机制,本文详细介绍了Converter的基本概念、使用场景,具有一定的参考价值,感兴趣的可以了解一下... 目录Converter的基本概念1. Converter委托2. 使用场景布尔型转换示例示例1:简单的字符串到

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

Spring Boot3.0新特性全面解析与应用实战

《SpringBoot3.0新特性全面解析与应用实战》SpringBoot3.0作为Spring生态系统的一个重要里程碑,带来了众多令人兴奋的新特性和改进,本文将深入解析SpringBoot3.0的... 目录核心变化概览Java版本要求提升迁移至Jakarta EE重要新特性详解1. Native Ima