地理文本处理技术在高德的演进(上)+

一、背景

地图App的功能可以简单概括为定位,搜索,导航三部分,分别解决在哪里,去哪里,和怎么去的问题。高德地图的搜索场景下,输入的是,地理相关的检索query,用户位置,App图面等信息,输出的是,用户想要的POI。如何能够更加精准地找到用户想要的POI,提高满意度,是评价搜索效果的最关键指标。

一个搜索引擎通常可以拆分成query分析、召回、排序三个部分,query分析主要是尝试理解query表达的含义,为召回和排序给予指导。

地图搜索的query分析不仅包括通用搜索下的分词,成分分析,同义词,纠错等通用NLP技术,还包括城市分析,wherewhat分析,路径规划分析等特定的意图理解方式。

常见的一些地图场景下的query意图表达如下:

query分析是搜索引擎中策略密集的场景,通常会应用NLP领域的各种技术。地图场景下的query分析,只需要处理地理相关的文本,多样性不如网页搜索,看起来会简单一些。但是,地理文本通常比较短,并且用户大部分的需求是唯一少量结果,要求精准度非常高,如何能够做好地图场景下的文本分析,并提升搜索结果的质量,是充满挑战的。

二、整体技术架构

搜索架构

类似于通用检索的架构,地图的检索架构包括query分析,召回,排序三个主要部分。先验的,用户的输入信息可以理解为多种意图的表达,同时下发请求尝试获取检索结果。后验的,拿到每种意图的检索结果时,进行综合判断,选择效果最好的那个。

query分析流程

具体的意图理解可分为基础query分析和应用query分析两部分,基础query分析主要是使用一些通用的NLP技术对query进行理解,包括分析,成分分析,省略,同义词,纠错等。应用query分析主要是针对地图场景里的特定问题,包括分析用户目标城市,是否是where+what表达,是否是从A到B的路径规划需求表达等。

整体技术演进

在地里文本处理上整体的技术演进经历了规则为主,到逐步引入机器学习,到机器学习全面应用的过程。由于搜索模块是一个高并发的线上服务,对于深度模型的引入有比较苛刻的条件,但随着性能问题逐渐被解决,我们从各个子方向逐步引入深度学习的技术,进行新一轮的效果提升。

NLP领域技术在最近几年取得了日新月异的发展,bert,XLNet等模型相继霸榜,我们逐步统一化各个query分析子任务,使用统一的向量表示对进行用户需求进行表达,同时进行seq2seq的多任务学习,在效果进一步提升的基础上,也能够保证系统不会过于臃肿。

本文就高德地图搜索的地理文本处理,介绍相关的技术在过去几年的演进。我们将选取一些点分上下两篇进行介绍,上篇主要介绍搜索引擎中一些通用的query分析技术,包括纠错,改写和省略。下篇着重介绍地图场景中特有query分析技术,包括城市分析,wherewhat分析,路径规划。

三、通用query分析技术演进

3.1 纠错

在搜索引擎中,用户输入的检索词(query)经常会出现拼写错误。如果直接对错误的query进行检索,往往不会得到用户想要的结果。因此不管是通用搜索引擎还是垂直搜索引擎,都会对用户的query进行纠错,最大概率获得用户想搜的query。

在目前的地图搜索中,约有6%-10%的用户请求会输入错误,所以query纠错在地图搜索中是一个很重要的模块,能够极大的提升用户搜索体验。

在搜索引擎中,低频和中长尾问题往往比较难解决,也是纠错模块面临的主要问题。另外,地图搜索和通用搜索,存在一个明显的差异,地图搜索query结构化比较突出,query中的片段往往包含一定的位置信息,如何利用好query中的结构化信息,更好地识别用户意图,是地图纠错独有的挑战。

  • 常见错误分类

(1) 拼音相同或者相近,例如: 盘桥物流园-潘桥物流园
(2) 字形相近,例如: 河北冒黎-河北昌黎
(3) 多字或者漏字,例如: 泉州州顶街-泉州顶街

  • 纠错现状

原始纠错模块包括多种召回方式,如:

拼音纠错:主要解决短query的拼音纠错问题,拼音完全相同或者模糊音作为纠错候选。
拼写纠错:也叫形近字纠错,通过遍历替换形近字,用query热度过滤,加入候选。
组合纠错:通过翻译模型进行纠错替换,资源主要是通过query对齐挖掘的各种替换资源。

组合纠错翻译模型计算公式:

其中p(f)是语言模型,p(f|e)是替换模型。

问题1:召回方式存在缺陷。目前query纠错模块主要召回策略包括拼音召回、形近字召回,以及替换资源召回。对于低频case,解决能力有限。

问题2:排序方式不合理。纠错按照召回方式分为几个独立的模块,分别完成相应的召回和排序,不合理。

  • 技术改造

改造1:基于空间关系的实体纠错
原始的纠错主要是基于用户session挖掘片段替换资源,所以对于低频问题解决能力有限。但是长尾问题往往集中在低频,所以低频问题是当前的痛点。

地图搜索与通用搜索引擎有个很大的区别在于,地图搜索query比较结构化,例如北京市朝阳区阜荣街10号首开广场。我们可以对query进行结构化切分(也就是地图中成分分析的工作),得到这样一种带有类别的结构化描述,北京市【城市】朝阳区【区县】阜荣街【道路】10号【门址后缀】首开广场【通用实体】。

同时,我们拥有权威的地理知识数据,利用权威化的地理实体库进行前缀树+后缀树的索引建库,提取疑似纠错的部分在索引库中进行拉链召回,同时利用实体库中的逻辑隶属关系对纠错结果进行过滤。实践表明,这种方式对低频的区划或者实体的错误有着明显的作用。

基于字根的字形相似度计算

上文提到的排序策略里面通过字形的编辑距离作为排序的重要特征,这里我们开发了一个基于字根的字形相似度计算策略,对于编辑距离的计算更为细化和准确。汉字信息有汉字的字根拆分词表和汉字的笔画数。

将一个汉字拆分成多个字根,寻找两个字的公共字根,根据公共字根笔画数来计算连个字的相似度。

  • 改造2:排序策略重构
    原始的策略召回和排序策略耦合,导致不同的召回链路,存在顾此失彼的情况。为了能够充分发挥各种召回方式的优势,急需要对召回和排序进行解耦并进行全局排序优化。为此我们增加了排序模块,将流程分为召回和排序两阶段。

模型选择

对于这个排序问题,这里我们参考业界的实践,使用了基于pair-wise的gbrank进行模型训练。

样本建设

通过线上输出结合人工review的方式构造样本。

特征建设
(1) 语义特征。如统计语言模型。
(2) 热度特征。pv,点击等。
(3) 基础特征。编辑距离,切词和成分特征,累积分布特征等。

这里解决了纠错模块两个痛点问题,一个是在地图场景下的大部分低频纠错问题。另一个是重构了模块流程,将召回和排序解耦,充分发挥各个召回链路的作用,召回方式更新后只需要重训排序模型即可,使得模块更加合理,为后面的深度模型升级打下良好的基础。后面在这个框架下,我们通过深度模型进行seq2seq的纠错召回,取得了进一步的收益。

3.2 改写

纠错作为query变换的一种方式的召回策略存在诸多限制,对于一些非典型的query变换表达,存在策略的空白。比如query=永城市新农合办,目标POI是永城市新农合服务大厅。用户的低频query,往往得不到较好搜索效果,但其实用户描述的语义与主poi的高频query是相似的。

这里我们提出一种query改写的思路,可以将低频query改写成语义相似的高频query,以更好地满足用户需求多样性的表达。

这是一个从无到有的实现。用户表达的query是多样的,使用规则表达显然是难以穷尽的,直观的思路是通过向量的方式召回,但是向量召回的方式很可能出现泛化过多,不适应地图场景的检索的问题,这些都是要在实践过程中需要考虑的问题。

方案

整体看,方案包括召回,排序,过滤,三个阶段。

  • 召回阶段

我们调研了句子向量表示的几种方法,选择了算法简单,效果和性能可以和CNN,RNN媲美的SIF(Smooth Inverse Frequency)。向量召回可以使用开源的Faiss向量搜索引擎,这里我们使用了阿里内部的性能更好的的向量检索引擎。

  • 排序阶段
    样本构建

原query与高频query候选集合,计算语义相似度,选取语义相似度的TOPK,人工标注的训练样本。

特征建设

1.基础文本特征
2.编辑距离
3.组合特征

模型选择

使用xgboost进行分数回归

过滤阶段
通过向量召回的query过度泛化非常严重,为了能够在地图场景下进行应用,增加了对齐模型。使用了两种统计对齐模型giza和fastalign,实验证明二者效果几乎一致,但fastalign在性能上好于giza,所以选择fastalign。

通过对齐概率和非对齐概率,对召回的结果进行进一步过滤,得到精度比较高的结果。

query改写填补了原始query分析模块中一些低频表达无法满足的空白,区别于同义词或者纠错的显式query变换表达,句子的向量表示是相似query的一种隐式的表达,有其相应的优势。

向量表示和召回也是深度学习模型逐步开始应用的尝试。同义词,改写,纠错,作为地图中query变换主要的三种方式,以往在地图模块里比较分散,各司其职,也会有互相重叠的部分。在后续的迭代升级中,我们引入了统一的query变换模型进行改造,在取得收益的同时,也摆脱掉了过去很多规则以及模型耦合造成的历史包袱。

3.2 省略

在地图搜索场景里,有很多query包含无效词,如果用全部query尝试去召回很可能不能召回有效结果。如厦门市搜"湖里区县后高新技术园新捷创运营中心11楼1101室 县后brt站"。这就需要一种检索意图,在不明显转义下,使用核心term进行召回目标poi候选集合,当搜索结果无果或者召回较差时起到补充召回的作用。

在省略判断的过程中存在先验后验平衡的问题。省略意图是一个先验的判断,但是期望的结果是能够进行POI有效召回,和POI的召回字段的现状密切相关。如何能够在策略设计的过程中保持先验的一致性,同时能够在后验POI中拿到相对好的效果,是做好省略模块比较困难的地方。

原始的省略模块主要是基于规则进行的,规则依赖的主要特征是上游的成分分析特征。由于基于规则拟合,模型效果存在比较大的优化空间。另外,由于强依赖成分分析,模型的鲁棒性并不好。

技术改造

省略模块的改造主要完成了规则到crf模型的升级,其中也离线应用了深度学习模型辅助样本生成。

  • 模型选择

识别出来query哪些部分是核心哪些部分是可以省略的,是一个序列标注问题。在浅层模型的选型中,显而易见地,我们使用了crf模型。

特征建设

term特征。使用了赋权特征,词性,先验词典特征等。
成分特征。仍然使用成分分析的特征。
统计特征。统计片段的左右边界熵,城市分布熵等,通过分箱进行离散化。

样本建设

项目一期我们使用了使用线上策略粗标,外包细标的方式,构造了万级的样本供crf模型训练。

但是省略query的多样性很高,使用万级的样本是不够的,在线上模型无法快速应用深度模型的情况下,我们使用了boostraping的方式,借助深度模型的泛化能力,离线构造了大量样本。

使用了这种方式,样本从万级很容易扩充到百万级,我们仍然使用crf模型进行训练和线上应用。

在省略模块,我们完成了规则到机器学习的升级,引入了成分以外的其他特征,提升了模型的鲁棒性。同时并且利用离线深度学习的方式进行样本构造的循环,提升了样本的多样性,使得模型能够更加接近crf的天花板。

在后续深度模型的建模中,我们逐步摆脱了对成分分析特征的依赖,对query到命中poi核心直接进行建模,构建大量样本,取得了进一步的收益。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js倒计时

倒计时 js代码倒计时 var time_now_server,time_now_client,time_end,time_server_client,timerID; var oDate new Date();var year oDate.getFullYear(); //获取系统的年;var month oDate.getMonth()1; //获取系统月份,由于月份是从0开始计算&…

免费12个月!阿里云助力中小企业0成本上云

最新消息,阿里云宣布为企业用户推出云服务器免费12个月扶持计划,助力中小企业0成本上云。阿里云表示,该计划每年投入2000万,超5万中小企业受益,本计划已于2019年11月27日上线。 阿里云智能总裁张建锋在2019阿里云峰会…

KAFKA 同步和异步消息的发送(开发实战)

文章目录一、消费者监听1. 启动zk2. 启动kafka3. 创建主题4. 消费者监听消息二、生产者工程2.1. 依赖2.2. 生产者代码(同步)2.3. 生产者代码(异步)2.4. 发送消息2.5. 消费者监听消息2.6. 结果返回一、消费者监听 1. 启动zk zkSe…

如何通过自动增加索引,实现数据库查询耗时降低50%?

作者 | 利开园责编 | Carol封图 | CSDN 下载自视觉中国很多开发者都遇到类似这样的经历:一个产品功能开发测试都正常,发布上线后也正常,但是过一段后,如果有个活动或流量一大程序就突然卡了,也有可能流量正常也没搞活动…

重磅下载 | 核心系统100%上云,揭秘双11背后的云原生实践

2019 双11,订单创新峰值达到 54.4 万笔/秒,单日数据处理量达到 970PB,面对世界级的流量洪峰,今年的阿里交出了一份亮眼的云原生技术成绩单,并实现了100% 核心应用以云原生的方式上云: 双11 基础设施 100% …

./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No suc

./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory解决方案: yum -y install numactl

MongoDB与阿里云达成战略合作,最新数据库独家上线阿里云!

11月26日,开源数据库厂商MongoDB与阿里云在北京达成战略合作,作为合作的第一步,最新版MongoDB 4.2数据库产品正式上线阿里云平台。 目前阿里云成为全球唯一可提供最新版MongoDB服务的云厂商,双方合作打通了企业在云上使用最新版开…

程序员:我受够了!不想再在小厂里干Java了!

你是否熟悉这样的情形:每天10点到公司,打开电脑:10个小时的增删改查,搬砖写代码的一天就这样开始了。刚毕业时候的你踌躇满志,按照自己的原定计划,这时候应该混到了阿里P6。可现在在小厂苦苦挣扎&#xff0…

AnalyticDB for MySQL技术架构解析

企业数据需求不断变化,近年来变化趋势日益明显,从数据的3V特性看:体积,速度和变化;Big Data强调数据量,PB级以上,是静态数据。而Fast Data在数据量的基础上,意味着速度和和变化&…

双十一|又快又稳!闲鱼实时事件规则计算驱动平台

闲鱼双十一金鳞抽奖玩法 相信今年在11月7日-11月11日期间使用过闲鱼的用户,可能已经被如下图所示的幸运海星“砸”到过了。只要用户进入到指定的几个页面,或者在某些指定的页面有点击行为,就会触发到这样一个幸运之星。这就是今年闲鱼双十一…

“编程能力差的程序员,90%会输在这点上”谷歌AI专家:其实都是瞎努力

最近几年,我看过市面上很多 Python和人工智能的教程和书籍,它们大都这样讲:先从 Python 人工智能的历史讲起开始,再介绍的基本语法规则,Python 的 list, dict, tuple 等数据结构,最后学习机器学习、深度学习…

阿里科学家再获世界级荣誉,平头哥首席科学家谢源当选AAASFellow

11月27日,美国科学促进会(AAAS)公布了2019年度会士(Fellow)增选结果,阿里巴巴平头哥首席科学家、达摩院高级研究员谢源当选,这也是信息、计算和通信领域新当选的24名Fellow之一,一同…

开放下载!从RCNN到SSD,这应该是最全的一份目标检测算法盘点

导读:从简单的图像分类到3D姿势识别,计算机视觉从来不缺乏有趣的问题和挑战。通过肉眼我们可以检测出一张宠物照中的猫和狗,可以识别出梵高作品《星夜》中的星星和月亮,那如何通过算法赋予机器“看”的智能,就是我们接…

全网最详细TCP参数讲解,再也不用担心没有面试机会了......

作者 | 小林coding责编 | 王晓曼封图 | CSDN 下载自视觉中国前言TCP 性能的提升不仅考察 TCP 的理论知识,还考察了对于操作系统提供的内核参数的理解与应用。TCP 协议是由操作系统实现,所以操作系统提供了不少调节 TCP 的参数。Linux TCP 参数如何正确有…

图片的缩放与拖拽

这个图片的缩放的流畅度还是很好的&#xff0c;需要引入touch.js,好像是百度团队那边写的 <script src"./js/touch.min.js" type"text/javascript"></script> $(function() { //放大缩小var scaleVal 1;var initialScale scaleVal || …

为了帮助卖家成交,闲鱼工程师做了些什么?

引言 闲鱼是一个C2C平台&#xff0c;提高卖家活跃度不仅有利于成交的提升&#xff0c;对于用户增长也有积极意义。而其中的关键点就在于其成交的效率。而个人卖家由于其专业程度不如专业卖家&#xff0c;成交效率往往并不高。我们希望可以实现两个提升&#xff1a; 能帮助卖家…

TOP互联网公司都在用,为什么SRE比传统运维更抢手?

阿里妹导读&#xff1a;双11的完美收官&#xff0c;2684亿的销售奇迹及顺滑极致的客户体验让双11背后的技术再次被推到风头浪尖。而双11技术热点话题&#xff0c;不得不提集团核心系统100%上云这一技术创举。 作为集团上云的底座产品&#xff0c;ECS承担了集团上云基础设施的重…

***error*** (zip#Browse) unzip not available on your system

文章目录1. 修改jar配置文件2. 现象3. 解决方法1. 修改jar配置文件 vim xxx.jar2. 现象 用不同用户打开&#xff0c;效果是不一样的&#xff0c;下图分别是 root账号、普通用户打开的 root账号显示异常还不明显&#xff0c;切换成普通用户后发现就很明显了&#xff0c;原来…

帅爆了!3个月0基础转型头条数据分析师,他做对了什么?

年初的黑天鹅打乱了我的求职阵脚&#xff0c;专业不对口&#xff0c;无实习经验&#xff0c;在求职路上的竞争优势几乎为0&#xff0c;然而&#xff0c;开启自救模式后&#xff0c;我顺利成为了头条数据分析师&#xff0c;下面我就讲讲人生是怎么开挂的。随着人工智能普及&…

淘宝如何保障业务稳定性——诺亚(Noah)自适应流控

作者|哲良、八风、泽彬 出品|阿里巴巴新零售淘系技术部 诺亚(Noah) 自适应流控解决方案 基于自动控制算法&#xff0c;解决了人工限流配置疏漏或过时的痛点&#xff0c;大幅提升应用抵抗流量冲击的能力。在刚过去的双11中&#xff0c;诺亚(Noah)保障了大量业务应用系统&#x…