作者|携程旅游AI研发团队致力于为携程旅游事业部提供丰富的AI技术产品,其中知识图谱组专注于知识图谱在旅游领域的构建与应用旅游领域。1背景随着网络应用技术的飞速发展,多样化、低密度的数据迅速膨胀,给人们获取正确信息带来了巨大挑战。大量冗余信息的根源在于自然语言表达的多样性,即多义和多义。例如,“苹果”在不同的上下文中可以指蔷薇科和苹果产品公司。“申城”和“魔都”虽然字面意思完全不同,但都是上海的别称。实现对海量网络数据的高效处理,理解用户意图,减少信息过载是实体链接的目标。在旅游领域,用户关注的实体通常是周边的景点、酒店、游玩方式等,这些对象在地理信息系统(GIS)中统称为兴趣点(POI),主要包括四个核心维度:名称、地址、坐标和类别。随着互联网电子地图服务和基于位置的服务(LocationBasedServices,LBS)的普及,兴趣点在概念范围和信息深度上都有了长足的进步,已经成长为信息空间中的参天大树。目前可以说是如火如荼。互联网所有网点都与POI有一定关系,如电子商务、O2O、社交、本地生活、互联网金融、共享经济等。构建基于POI知识库的实体链接服务,提升旅游搜索效果、智能问答、知识挖掘和信息抽取,对提升用户体验具有重要意义。2.问题分析实体链接是指将文本中的表达与知识库中对应的实体链接起来,以消除实体歧义,帮助计算机理解文本的具体含义的任务。它一般包括实体提及识别、候选实体生成和候选实体消歧三个步骤。图1实体链接函数示例1)实体提及识别,旨在识别自然语言中实体提及片段的边界,并标记它们在输入文本中的位置。以图1中的例子为例,用户输入的搜索词“WuhanEastLakeScenicArea”包含两个命名实体mention,“Wuhan”和“EastLake”,可能表示官方名称、简称、常用名或别名。2)CandidateEntityGeneration生成一组候选实体,这些候选实体可能与文本中给定的实体名称相关联,即根据识别的实体提及片段从知识库中召回所有用户可能感兴趣的实体上一步生成的候选集和这一步生成的候选集决定了实体消歧的范围。例如,“武汉”的实体提及可以从知识库中将“武汉”作为一个城市召回,而“东湖”可以召回两个景点“武汉东湖”和“绍兴东湖”。3)实体消歧是确定实体指称所指向的现实世界中的实体,并通过候选实体的静态特征或通过与查询交互计算的动态特征输出排序的分数。以图1为例,结合上下文可以看出,用户实际查询的是武汉市下属的东湖,而不是位于绍兴市的东湖。因此,“武汉东湖”的得分应该高于“绍兴东湖”。实体提及识别通常被视为序列标注任务,经典方法包括基于字典的方法和基于统计的方法。基于字典的方法可以分为前向最大匹配、后向最大匹配和双向最大匹配;基于统计学习的代表性方法有HMM和CRF,其性能通常依赖于大量人工构建和维护的特征模板。随着计算能力的提高和端到端神经网络技术的发展,CNN、RNN等结构被广泛用于对序列表示进行建模,其自动组合低阶特征得到高阶特征的功能得到摆脱费时费力的人工特征工程。同时,神经网络强大的表达能力使传统算法的效果有了显着提升。谷歌在2018年提出的Transformer首次将self-attention模型带入大众视野,为序列表示的高效并行计算提供了可行的解决方案。自注意力机制的使用使序列中每个位置的标记能够充分学习上下文语义并自适应地接收来自不同位置标记的信息流入。BERT是基于此配置的众多大规模预训练语言模型之一。使用TransformerEncoder结构的BERT从未标注的语料中学习到了很多先验知识,只需要在特定的下游任务上微调权重就可以取得优异的效果。BERT一度称霸GLUE,刷新了各种自然语言理解任务的SOTA。其预训练和微调学习范式也成为NLP行业的一大里程碑。候选实体生成是一项检索任务。传统的检索方法以词袋(BagofWords,BOW)模型为代表,如TF-IDF、BM25等,此类算法不考虑词序,忽略词与词之间的上下文相关性,除了人工设计公式外,在统计词重和词频的基础上,还必须引入覆盖度、接近度和扩展同义词,以达到更好的效果。词袋模型最大的缺陷是只能解决字面匹配问题,无法获得query和document之间的语义关联。因此,以双塔模型和交互模型为代表的语义向量检索方案开始受到关注。双塔模型主要包括DSSM和Siamese网络。通常使用两个相同或不同的编码器来提取query和document的低维句向量表示,然后设计相关函数,如余弦、内积等,来计算两者之间的关系。相似度分数;交互模型在低级特征组合阶段开始对查询和文档之间的相关性进行建模。关键思想在于交互矩阵的构建,如ESIM、MatchPyramid等,这类模型的最终结果是查询-文档对的整体表示,因此可以避免编码带来的精度损失两部分相互独立,在实践中往往有更好的表现。实体消歧是以更细的粒度对候选实体进行排序。常见的学习排序算法包括pointwise、pairwise和listwise。pointwise的思想是使用回归或分类模型对每个候选实体独立打分;pairwise考虑的是候选实体的相对排序而不是它们各自的绝对分数,因此损失的计算依赖于成对的样本;Listwise将查询的所有候选实体集作为一个样本,输出每个候选实体的得分。在特征构建和表示学习方面,可以使用query的特征,候选实体本身的特征,或者两者的交互特征。相关方法与上述语义匹配类似。3.旅游知识图谱知识图谱(KnowledgeGraph,KG)是由节点和节点间相互连接的边组成的大规模语义网络,可以表示实体之间的结构化关系,被认为是认知的门户。智力的基石。其中,节点代表一个概念或对象,边代表概念与概念、概念与对象或对象与对象之间的关系。在知识图谱中,每条知识都可以表示为一个SPO(Subject-Predicate-Object)三元组。例如,长宁区属于上海市,在旅游知识图谱中表示为(长宁区、上层、上海市)。由于高度结构化的知识表示易于计算机理解,知识图谱在信息检索、智能推荐、金融风控等方面具有广泛的应用场景。我们团队创建的旅游知识图谱使用Neo4j和Nebula图数据库作为存储方案。图模式涉及18种实体类型和12种关系类型。目前,大约有1000万个实体和3700万个三元组。数量开始成形。同时,在数据治理层面建立了完善的自动更新机制和监控体系,确保每天有新知识入库,过期知识被剔除,提高知识图谱的可靠性。图2旅游知识图谱的数据探索IV.技术方案在实体链接系统的技术选型中,我们遵循一个三阶段过程,即实体提及识别、候选实体生成、候选实体消歧三个串行子模块协同完成自然语言分析。图3EntityLinkingSystem流程另外我们做了一些工程上的优化,使用Redis来缓存别名和候选实体id的映射关系以及实体id和实体属性的映射关系,避免Neo4j或者Nebula的频繁查询图数据库带来高延迟。五、功能模块5.1实体提及识别该步骤结合神经网络模型和别名前缀树进行多路径检测,扩大候选实体的召回范围。5.1.1实体别名前缀树我们将知识库中的所有实体别名字符串插入到一个前缀树结构中。前缀树只包含一个字符,除了根节点不包含字符和叶节点包含终止符。.从根节点开始到某一个节点,通过的字符连接起来代表该节点对应的字符串,所以树中每个节点的后继节点都具有相同的前缀。图4实体别名前缀树示例从根节点到叶节点的路径在知识库中封闭了一个实体别名,实际检索中通常采用前向最大匹配策略:1)维护两个指针:前缀树指针和查询指针,前缀树指针初始化时位于ROOT节点,查询指针位于查询文本的第一个字符。2)若查询指针指向的待匹配字符在前缀树指针对应节点的后继节点中,则将前缀树指针移至子节点,同时将查询指针后移一位少量。3)如果查询指针指向的待匹配字符不在前缀树指针对应节点的后继节点中,如果后继节点包含end,则封闭实体提及字符串,前缀树指针返回ROOT;否则,前缀树指针递归返回到ROOT。返回上层节点(查询指针同步前移),直到结束节点包含在上层节点的后继节点中,然后闭合实体提及字符串,前缀树指针返回ROOT;如果前缀树指针返回到ROOT,没有任何实体mention关闭时,查询指针将向后移动一位。前缀树可以最大限度地减少用户查询中无效字符串的匹配,最坏情况下的时间复杂度仍然优于哈希表,提供了一种非常高效的字符串搜索方案。5.1.2命名实体识别模型这里我们使用基于BERT的指针网络来标记命名实体的边界。图5显示了模型框架、前向传播过程和标签解码方法。图5命名实体识别模型结构在推理阶段,根据头尾指针预测结果,关闭同一实体标签对应的token位置,得到实体mention边界。5.2候选实体生成在旅游知识图中,“别名”是一种特殊的节点类型。我们会为每一个新添加的POI、目的地、产品、标签类型和它们各自的别名(实体名也是别名)创建实体,建立一个hasAlias类型的关系。因此,POI、Product、Tag实体都关联到至少一个Alias实体。以图6为例,当输入文本为“武汉江西东湖”时,假设识别到的实体mention为“武汉”、“江西”和“东湖”,将这三个mention作为“别名”的名称属性"node值的条件查询可以得到三个别名节点(图中黄色标注),这三个别名节点可以通过类型hasAlias的传入边找到若干个POI节点,而这些POI节点就是被召回的候选实体文本。图6文本为“武汉江西东湖”时的候选实体子图我们在候选实体生成阶段没有使用向量检索方案,因为entitymention一般都是很短的字符串,基于相似度的检索不确定性很高。很难保证召回结果的可靠性,维护一份高质量的别名列表更适合当前场景。候选实体生成模块还包括基于路径的预过滤逻辑。以图6为例,检测到不同实体提及的候选实体之间可能存在路径连接,如“武汉市”到“东湖”、“江西省”到“鹿林湖”,则有是与路径中节点的关系具有相同别名但不在路径上的POI节点,如绍兴东湖,将不会作为候选实体返回。在实践中,为了避免由于过于强的路径假设而遗漏一些重要的节点,会施加一些约束。这些方法大多与规则有关,这里不再赘述。5.3候选实体消歧该模块用于计算候选实体的排名分数。我们使用基于BERT的交互式语义匹配模型。首先,将查询字符串和候选实体的描述文本拼接起来,经过分词和数值处理后,输入到BERT,提取高层交互特征。在BERT输出层,选取输入序列中[CLS]位置的特征向量hCLS,候选实体query中entitymentionsegment的第一个和最后一个位置token对应的特征向量hhead和htail分别为拼接,并进行仿射变换,使用sigmoid激活函数得到候选实体为链接对象的概率值:其中w和b为线性层参数。图7.实体消歧模型。结构模型训练阶段的损失函数为二元交叉熵损失。这里y是候选实体的0-1groundtruth标签。在推理阶段,对query召回的每个候选实体计算概率得分,并从高到低排序,根据预设阈值截断候选实体序列,得到链接结果。6.实战场景6.1携程旅行搜索携程旅行搜索词义分析服务通过后台配置词典进行分词和词性标注,返回所有匹配的POI词条,不具备拒绝或排序POIs的功能重名,并且经常引入相同的查询不相关的搜索结果。访问实体链接系统后,上下文信息可用于消除具有相同名称的POI的歧义。即使缺少上下文,也可以利用出发站的城市来辅助候选实体的排序。Case1搜索词是“武汉东湖”。界面原返回“武汉市”,所有景点命名为“东湖”。调用实体链接服务时,只返回位于“武汉市”的东湖景区(id:1xxx6)。Case2搜索词为“深圳迪士尼”,界面原返回“深圳”和所有迪士尼度假区。虽然深圳市没有迪斯尼乐园,但按常理来说,用户的实际意图可能是香港迪斯尼乐园(id:1xxx9),恰好是实体链接后的返回结果。Case3搜索词为“白云山”,出发站设置为东莞市。界面原本返回的是所有名为“白云山”的景点,并没有排序,因此无法推断出用户对每个POI的兴趣程度。调用实体链接服务后,广州白云山(id:7xxx4)在返回结果中排在top1位置,说明系统抓取了“广州白云山”与定位站“东莞市”的关系。实体消歧阶段。6.2携程智能客服在人机对话系统中,语义槽位填充通常结合意图识别来判断提问技巧、歧义澄清技巧,或完成对用户自然语言的理解,从知识库中搜索并返回回答。例如,当用户询问“上海到成都的航班”时,意图是“搜索航班”,但仅对用户意图进行分类并不足以给出准确的答案,因为缺少两个关键信息:出发站和航班的到达站,这是与“查询航班”相关的语义槽。只有完成意图识别和语义槽填充,搜索答案才算合格。这里的出发站和到达站分别指的是上海和成都,正好是旅游知识地图中的两个POI。这两个POI的id信息可以很容易的通过实体链接找到。携程智能客服引入实体链路服务后,词槽抽取的F1Score较原来提升了12个百分点以上,体现了实体链路在客服场景中的巨大潜力。6.3携程POI关键信息更新票务相关部门需要保证部分POI关键信息频繁更新的准确性,如景点开闭时间等,对产品销售和用户体验具有重要意义。更新开闭园信息的主要依据是每天从景区官方渠道获取的公告和信息。通过分析这些文章的内容,提取出POI名称和对应的开放或关闭时间。在疫情反复的当下,这些信息面临更频繁的变化,因此对准确性和及时性提出了更高的要求。原文解析写入数据库后,会链接到发布信息的景区,但这个信息不一定正确。实践中,文本中提取的景区与发布信息的景区不一致的情况很多。景区关闭。这时候就需要将提取出来的景点名称通过实体链接映射到知识图谱中的实体,从而得到真实的POIid。该功能可以提高信息的准确性,同时进行POI消歧。景区开闭园抽取项目引入实体链接后,准确率提升了近六个百分点,大大提升了原有抽取流程的效果。6.4携程重复POI及上下级POI关系标识。票务活动相关部门维护的POI数据来源非常复杂,既有内部平台,也有官方平台。批量导入POI数据时,没有识别出所有重复的POI以及POI之间的上下级关系,会导致系统中重复的POI较多,造成分流;或者导致系统中出现浮动的POI,导致显示不完整。无法全面了解景区情况。因此,需要及时获取和修复这些信息,以提高信息覆盖的全面性和平台的信息可靠性。POI的地址或介绍可以暗示该POI的父节点。例如,对于地址为“xxx路xxx号xxx景区”的POI,其父节点可能是某个景点。如果可以利用实体??链接技术获取景区的id,且当前地图中不存在这两个POI,则可以作为重要特征添加到关系识别系统中。项目上线以来,上下级关系识别平均正确率达到90%以上,提升了近千条POI信息的准确率。7.总结与展望本文主要介绍了旅游AI知识图谱组在实体链接技术上的探索与实践,阐述了实体链接的基本定义、相关技术的发展路线和应用价值,对旅游AI知识图谱进行了详细阐述。-基于知识图谱的实体链接系统的架构和流程,最后介绍了实体链接系统的落地场景。未来,我们将紧跟前沿技术的发展,推动知识图谱与实体召回和精细调度任务的更紧密结合,充分利用图结构提高现有模型的效果和可解释性,并探索更高效、更轻量级的模型。也将兼顾技术落地,未来赋能更多旅游场景。
