网站开发用什么软件开发,价格低性价比高的汽车,wordpress多个插件合并,企业网站首页图片在【上篇】里#xff0c;我们介绍了地理文本处理技术在高德的整体演进#xff0c;选取了几个通用query分析的点进行了介绍。下篇中#xff0c;我们会选取几个地图搜索文本处理中特有的文本分析技术做出分析#xff0c;包括城市分析#xff0c;wherewhat分析#xff0c;路…在【上篇】里我们介绍了地理文本处理技术在高德的整体演进选取了几个通用query分析的点进行了介绍。下篇中我们会选取几个地图搜索文本处理中特有的文本分析技术做出分析包括城市分析wherewhat分析路径规划并对未来做一下展望。
四、query分析技术演进
4.1 城市分析
在高德地图的检索场景下从基础的地图数据索引、到在线召回、最终产品展示均以市级别行政单位为基础粒度。一次完整的检索需求除了用户输入的query外还会包含用户的图面城市以及用户位置城市两个城市信息。
通常大多数的搜索意图都是在图面或者用户位置城市下但是仍存在部分检索意图需要在其他城市中进行准确的识别出用户请求的目标城市是满足用户需求的第一步也是极其重要的一步。
在query分析策略流程中部分策略会在城市分析的多个结果下并发执行所以在架构上城市分析的结果需要做到少而精。同时用户位置城市图面城市异地城市三个城市的信息存在明显差异性不论是先验输出置信度还是用后验特征做选择都存在特征不可比的问题。
在后验意图决策中多个城市都有相关结果时单一特征存在说服力不足的问题如何结合先验置信度和后验的POI特征等多维度进行刻画都是我们要考虑的问题。
原始的城市分析模块已经采用先验城市分析和后验城市选择的总体流程 但是原始的策略比较简陋存在以下问题
问题1先验和后验两部分均基于规则效果不好并且可维护性差问题2特征体系存在缺陷。原始的城市分析仅使用query级的特征包括点击session改写query和城市共现等对于低频query处理得不好。
技术改造
改造1城市分析方案
城市分析是一个轻召回重选择的问题我们将城市分析设计为召回选择的两阶段任务。
召回阶段我们主要从query和phrase两种粒度挖掘特征资源而后进行候选城市归并。
排序阶段需要对候选城市进行判断识别是否应为目标城市用gbdt进行二分类拟合。
样本构建
样本方面我们选择从搜索日志中随机抽取简单清洗后进行人工标注。构造样本时存在本异地分样本分布不均的问题本地需求远远多于异地这里需要剔除本地和异地相关的特征避免模型学偏。
特征体系
主要特征包括
query级特征如用户在特定querycity下的点击phrase级特征类比于query级的特征在更细粒度下进行统计组合特征为了克服单一特征表征能力不足的问题这里我们进行了一些人工特征组合。
改造2城市选择方案
城市选择在整体的意图决策中处于下游多种意图先在城市内部PK然后城市互相PK。城市选择问题可以理解为多个城市间的排序问题这里我们使用ltr进行城市选择的建模。
样本构建
使用随机query的多个城市意图结果作为样本每次检索只有1个展示城市因而每次只需要从候选城市中选择目标作为正样本其他候选城市均作为负样本与目标城市构成pair对。
特征构建
主要特征包括
先验特征。如城市分析部分输出的置信度文本特征。一些基础的文本相关性特征点击特征。如不同意图城市中的点击强度意图特征。一些特征可能影响用户的城市倾向如用户位置与首位POI距离。
相比原始的城市分析和城市选择两个模块全部实现机器学习化在恶劣badcase显著降低的同时可维护性大幅提高。在后续的建模中我们将城市分析作为一个上层应用任务通过多任务的方式接入到query分析的统一模型中来降低了特征间的耦合同时实现进一步的效果提升。
4.2 wherewhat分析
地图场景下的query经常包含多个空间语义片段的描述只有正确识别query中的核心部分做what用于召回同时用空间描述部分做where进行限定才能够得到用户想要的POI。如query北京市海淀区五道口肯德基what肯德基是泛需求。query南京市雨花台区板桥街道新亭大街与新湖大道交界口湾景what湾景是精确需求。这种在A附近找B或者在A范围内找B的需求我们把它称作wherewhat需求简称ww。 wherewhat意图分析主要包括先验和后验两个部分。先验要做wherewhat切分是一个序列标注问题标注出query中的哪些部分是where哪些部分是what同时给出where的空间位置。后验要做意图选择选择是否展示wherewhat意图的结果可以转化成分类或者排序问题。
wherewhat体系的主要难点在ww切分上不仅要应对其他query分析模块都要面对的低频和中长尾问题同时还要应对ww意图理解独特的问题。像语义模糊比如北京欢乐谷公交站涌边村牌坊这样的query该切还是不该切结果差异很大。像语序变换如query嘉年华西草田善兴寺小寨逆序的表达如果不能正确识别效果可能很差。
现状与问题
现状
切分wherewhat模块在成分分析模块下游主要依靠了成分分析的特征。对于一些比较规整的query通过成分分析组合的pattern来解决对于一些中长尾的query通过再接入一个crf模型进行ww标注。
选择基于人工规则进行意图的判断和选择。
问题1切分模型简陋。基于crf的切分模型使用特征单一对成分特征依赖严重处于黑盒状态无法分析问题2后验意图判断规则堆砌不好维护问题3逆序问题表现不好。由于query的语料大部分是正序的模型在小比例的逆序query上表现不好。
技术改造
crf问题分析工具
为了能够分析原始crf切分模型的问题我们基于crf源码开发了一个crf模型的分析工具能够将基于维特比算法的预测过程交互式的展示出来将模型的黑盒分析变成白盒分析出了一系列问题。 同时crf问题分析工具也应用在了其他query分析模块。
改造1特征建设和模型优化
原始的模型依赖成分分析比较严重由于成分分析特征本身存在准确率的问题我们从用户的query中总结了一些更加可靠的统计特征。
前缀置信度
描述了片段做前缀的占比。比如望京凯德茂望京阜通也有望京单独搜如果望京在前缀中出现的占比很高那说明这个片段做where的能力比较强。
后缀熵
描述了后缀的离散程度如望京凯德茂望京美食望京首开后缀很乱也可以说明片段做where的能力。
what置信度
片段单独搜占比比如西门经常是在片段结尾出现但是单独搜比较少那片段做what的能力比较弱。
以特征值域做横轴where和whatlabel作为纵轴就得到了特征-label曲线。从这几个特征的特征-label曲线来看在某些区间下区分度还是很好的。由于crf模型只接受离散特征特征-label的曲线也指导了特征离散化的阈值选择。对于低频query我们通过低频query中的高频片段的统计信息也可以使我们的模型在低频问题上表现更好。
改造2后验意图选择升级
将原始的堆砌的规则升级到gbdt机器学习模型引入了先验特征在拿到一定收益的同时也使得整个体系更加合理。
改造3鲁棒性优化
将ww中逆序的问题抽象出来可以归纳为query分析中的鲁棒性问题。随着策略优化进入深水区存在策略提升用户不可感知攻击case容易把系统打穿的问题。 如上图用户变换query中where和what的顺序效果可能变差。变换下检索城市对于同一个知名景点跳转逻辑不一致。用户区划输错纠错不能识别效果变很差。这种模块对非预期的query变换或者更通用地叫做对上下游的特征扰动的承载能力我们可以把它叫做模块的鲁棒性。
这里我们设计了对于通用鲁棒性问题解决的思路 在不引入复杂模型的前提下通过构建ensemble的浅层模型来优化特定问题降低了问题解决的成本。
对于ww逆序这个特定问题进行了特征复用用本复用并且模型对外统一 效果上新的模型在原始测试集效果持平人工构造攻击case集合准召明显提升目标case集合具有可观的解决比例验证了鲁棒性优化的思路是有效的。
这里基本完成了对于ww体系的一个完整的升级体系中的痛点基本都得到了解决。优化了切分模型流程更加合理。意图决策上完成了规则到机器学习模型的升级。在优化或者引入浅层机器学习模型的同时尽可能发挥浅层模型的潜力为从浅层模型升级为深度模型打下基础。
在后续的建模中我们使用字粒度lstmcrf模型代替现有的crf模型彻底摆脱了对成分分析特征的依赖同时通过融合知识信息到lstmcrf模型进一步提升效果。
4.3 路径规划
在高德地图的搜索场景中一类用户搜索意图为路径规划意图。例如当用户在高德地图App的搜索框中输入“从回龙观到来广营”点击搜索按钮后搜索服务能识别出用户的搜索意图为路径规划并识别出用户描述的起点为“回龙观”终点为“来广营”进而检索到对应的POI点给下游服务做出路线的规划。 从用户输入中识别路径规划意图并提取出对应的起终点这是一个典型的NLP任务。早期的路径规划模块使用的是模板匹配的方式这种方式开发成本低能解决大部分常见的路径规划问题如上面这种“从A 到B”类的问题。
但随着业务的不断发展模块需要解决的问题越来越复杂比如“坐地铁从西直门到大兴狼垡坐到哪里下车”“广东到安徽经过哪几个城市”“去往青岛的公交车有吗” 等等各种非“从A到B”模式的问题。由于模板匹配方式没有泛化能力只能通过不断增加模板来解决使得模块越来越沉重难以维护。
优化
由于线上所有的搜索query都会经过路径规划模块若是让模型去处理所有的query那么模型不仅要解决意图识别问题召回类问题又要解决槽位提取问题准确类问题对于模型来说是很难同时将这两个任务学好的。因此我们采取了以下三段式 模型前使用关键字匹配策略进行简单意图识别过滤掉大部分非路径规划query模型处理疑似路径规划的query进行槽位提取模型后再对模型结果进行进一步检验。
样本和特征
机器学习的样本一般来源于人工标注但人工标注耗时长成本高。因此我们采取的是自动标注样本方式。通过富集路径规划模式如“从A怎么乘公交到B”再用清洗后的随机query按照实际起终点的长度分布进行起终点替换生成大量标注样本。
特征方面我们使用了成分分析特征及含有关键字的POI词典特征。它们主要在如“从这里到58到家”这类起终点 中含有关键字的query上起着区分关键字的作用。
模型训练
crf算法是业界常用的为序列标注任务建立概率图模型的算法。我们选取的也是crf算法。
效果评估
在验证集准确率召回率以及随机query效果评比上指标都有了明显的提升。
对于路径规划这样一个定向的NLP任务使用crf模型完成了从规则到机器学习模型的升级。作为一个应用层任务路径规划也很容易被迁移到seq2seq的多任务学习模型中来。
五、展望
过去两年随着机器学习的全面应用以及基于合理性进行的多次效果迭代目前的地理文本处理的效果优化已经进入深水区。我们认为将来的优化重点在攻和防两方面。
攻主要针对低频和中长尾问题。在中高频问题已经基本解决的前提下如何能够利用深度学习的技术进行地理文本处理seq2seq的统一建模在低频和中长尾问题上进行进一步优化获得新一轮的效果提升是我们目前需要思考的问题。另外如何更好地融合知识信息到模型中来让模型能够具有接近人的先验判断能力也是我们亟待提升的能力。
防主要针对系统的鲁棒性。如用户的非典型表达变换query等定向的问题如何能够通过定向优化解决这些策略的死角提高系统的容错能力也是我们目前需要考虑的问题。
地图搜索虽然是个垂类搜索但是麻雀虽小五脏俱全并且有地图场景下很多有特色的的难点。未来我们需要继续使用业界先进的技术并且结合地理文本的特点进行优化理解将更加智能化。
原文链接 本文为云栖社区原创内容未经允许不得转载。