没有合适的资源?快使用搜索试试~ 我知道了~
搜索中的Query理解及应用.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 123 浏览量
2023-08-12
12:59:53
上传
评论
收藏 2.4MB PDF 举报
温馨提示
试读
25页
搜索中的Query理解及应用.pdf
资源推荐
资源详情
资源评论
搜索中的 Query 理解及应⽤
5⽉18⽇⼣⼩瑶的卖萌屋
⼀只⼩狐狸带你解锁炼丹术&NLP秘籍
⽂章作者:Joelchen 腾讯 研究员
编辑整理:Hoh
内容来源:腾讯技术⼯程出品
链接:https://zhuanlan.zhihu.com/p/112719984
前⾔
Query 理解 ( QU,Query Understanding ),简单来说就是从词法、句法、语义三个层⾯对 query 进⾏结构化解析。这⾥ query 从⼴
义上来说涉及的任务⽐较多,最常⻅的就是我们在搜索系统中输⼊的查询词,也可以是 FAQ 问答或阅读理解中的问句,⼜或者可以
是⼈机对话中⽤⼾的聊天输⼊。本⽂主要介绍在搜索中的 query 理解,会相对系统性地介绍 query 理解中各个重要模块以及它们之
间如何 work 起来共同为搜索召回及排序模块服务,同时简单总结个⼈⽬前了解到业界在各个模块中的⼀些实现⽅法。
相关概念
1. NLP
⾃然语⾔处理 ( NLP,Natural Language Processing ) 是集语⾔学、统计学、计算机科学,⼈⼯智能等学科于⼀体的交叉领域,⽬
标是让计算机能在处理理解⼈类⾃然语⾔的基础上进⼀步执⾏结构化输出或语⾔⽣成等其他任务,其涉及的基础技术主要有:词法
分析、句法分析、语义分析、语⽤分析、⽣成模型等。诸如语⾳识别、机器翻译、QA 问答、对话机器⼈、阅读理解、⽂本分类聚
类等任务都属于 NLP 的范畴。
这些任务从变换⽅向上来看,主要可以分为⾃然语⾔理解 ( NLU,Natural Language Understanding ) 和⾃然语⾔⽣成 (
NLG,Natural Language Generation ) 两个⽅⾯,其中 NLU 是指对⾃然语⾔进⾏理解并输出结构化语义信息,⽽ NLG 则是多模态
内容 ( 图像、语⾳、视频、结构/半结构/⾮结构化⽂本 ) 之间的相互⽣成转换。
⼀些任务同时涵盖 NLU 和 NLG,⽐如对话机器⼈任务需要在理解⽤⼾的对话内容 ( NLU 范畴 ) 基础上进⾏对话内容⽣成 ( NLG 范
畴 ),同时为进⾏多轮对话理解及与⽤⼾交互提⽰这些还需要有对话管理模块 ( DM,Dialogue Management ) 等进⾏协调作出对话
控制。本⽂要介绍的搜索 query 理解⼤部分模块属于 NLU 范畴,⽽像 query 改写模块等也会涉及到⼀些 NLG ⽅法。
2. 搜索引擎
在介绍搜索 query 理解之前,先简单介绍下搜索引擎相关知识。除了传统的通⽤搜索 Google、Baidu、Bing 这些,⼤部分互联⽹垂
直产品如电商、⾳乐、应⽤市场、短视频等也都需要搜索功能来满⾜⽤⼾的需求查询,相较于推荐系统的被动式需求满⾜,⽤⼾在
使⽤搜索时会通过组织 query 来主动表达诉求,为此⽤⼾的搜索意图相对⽐较明确。但即便意图相对明确,要做好搜索引擎也是很
有挑战的,需要考虑的点及涉及的技术⽆论在深度还是⼴度上都有⼀定难度。
⼀个基本的搜索系统⼤体可以分为离线挖掘和在线检索两部分,其中包含的重要模块主要有:Item 内容理解、Query 理解、检索召
回、排序模块等。整个检索系统的⽬标可以抽象为给定 query,检索出最能满⾜⽤⼾需求的 item,也即检索出概率:P(Ii|Q) 最⼤的
item Ii。根据⻉叶斯公式展开:
这部分概率对应到基于 query 理解和 item 理解的结果上进⾏ query 和 item 间相关性计算,同时涉及到点击调权等排序模块。
① 离线挖掘
在离线侧,我们需要做⼀些基础的离线挖掘⼯作,包括 item 内容的获取、清洗解析、item 内容理解 ( 语义 tag、权威度计算、时间
因⼦、质量度等 )、⽤⼾画像构建、query 离线策略挖掘、以及从搜索推荐⽇志中挖掘 item 之间的语义关联关系、构建排序模型样
本及特征⼯程等。进⾏ item 内容理解之后,对相应的结构化内容执⾏建库操作,分别构建正排和倒排索引库。其中,正排索引简单
理解起来就是根据 itemid 能找到 item 的各个基本属性及 term 相关 ( term 及其在 item 中出现的频次、位置等信息 ) 的详细结构化数
据。
相反地,倒排索引就是能根据分词 term 来找到包含该 term 的 item 列表及 term 在对应 item 中词频、位置等信息。通常会对某个
item 的 title、keyword、anchor、content 等不同属性域分别构建倒排索引,同时⼀般会根据 item 资源的权威度、质量度等纵向构
建分级索引库,⾸先从⾼质量库中进⾏检索优先保证优质资源能被检索出来,如果⾼质量检索结果不够再从低质量库中进⾏检索。
为了兼顾索引更新时效性和检索效率,⼀般会对索引库进⾏横向分布式部署,且索引库的构建⼀般分为全量构建和增量更新。常⻅
的能⽤于快速构建索引的⼯具框架有 Lucene 全⽂检索引擎以及基于 Lucene 的 Solr、ES ( Elastic Search ) 等。
除了基本的⽂本匹配召回,还需要通过构建 query 意图 tag 召回或进⾏语义匹配召回等多路召回来提升搜索语义相关性以及保证召
回的多样性。
② 在线检索
线上执⾏检索时⼤体可以分为基础检索 ( BS ) 和⾼级检索 ( AS ) 两个过程,其中 BS 更注重 term 级别的⽂本相关性匹配及粗
排,AS 则更注重从整体上把控语义相关性及进⾏精排等处理。以下⾯这个框图为例,介绍下⼀个相对简单的在线检索过程。对于从
client 发起的线上搜索请求,会由接⼊层传⼊ SearchObj ( 主要负责⼀些业务逻辑的处理 ),再由 SearchObj 传给 SearchAS ( 负责
协调调⽤ qu、召回和排序等模块 ),SearchAS ⾸先会去请求 SearchQU 服务 ( 负责搜索 query 理解 ) 获取对 query 理解后的结构
化数据,然后将这些结构化数据传给基础召回模块 BS,BS 根据切词粒度由粗到细对底层索引库进⾏⼀次或多次检索,执⾏多个索
引队列的求交求并拉链等操作返回结果。
同时 BS 还需要对⽂本、意图 tag、语义召回等不同路召回队列根据各路召回特点采⽤多个相关性度量 ( 如:BM25 ⽂本相似度、
tag 相似度、语义相关度、pagerank 权威度、点击调权等 ) 进⾏ L0 粗排截断以保证相关性,然后再将截断后的多路召回进⾏更精细
的 L1 相关性融合排序,更复杂⼀些的搜索可能会有 L0 到 LN 多层排序,每层排序的侧重点有所不同,越⾼层次 item 数变得越少,
相应的排序⽅法也会更复杂。
BS 将经过相关性排序的结果返回给 SearchAS,SearchAS 接着调⽤ SearchRank 服务进⾏ ctr/cvr 预估以对 BS 返回的结果列表进
⾏ L2 重排序,并从正排索引及摘要库等获取相应 item 详情信息进⼀步返回给 SearchObj 服务,与此同时 SearchObj 服务可以异步
去请求⼴告服务拉取这个 query 对应的⼴告召回队列及竞价相关信息,然后就可以对⼴告或⾮⼴告 item 内容进⾏以效果 ( pctr、
pcvr、pcpm ) 为导向的排序从⽽确定各个 item 内容的最终展⽰位置。
最后在业务层⼀般还会⽀持⼲预逻辑以及⼀些规则策略来实现各种业务需求。在实际设计搜索实验系统时⼀般会对这些负责不同功
能的模块进⾏分层管理,以上⾯介绍的简单检索流程为例主要包括索引召回层、L0 排序截断层、L1 相关性融合排序层、L2 效果排
序层、SearchAS 层、业务层等,各层流量相互正交互不影响,可以⽅便在不同层进⾏独⽴的 ABtest 实验。
当然,具体实现搜索系统远⽐上⾯介绍的流程更为复杂,涉及的模块及模块间的交互会更多,⽐如当⽤⼾搜索 query 没有符合需求
的结果时需要做相关搜索 query 推荐以进⾏⽤⼾引导、检索⽆结果时可以根据⽤⼾的画像或搜索历史做⽆结果个性化推荐等,同时
和推荐系统⼀样,搜索周边涉及的系统服务也⽐较庞杂,如涉及⽇志上报回流、实时计算能⼒、离/在线存储系统、ABtest 实验平
台、报表分析平台、任务调度平台、机器学习平台、模型管理平台、业务管理后台等,只有这些平台能 work 起来,整个搜索系统
才能正常运转起来。
③ 多模语义搜索
随着资源越来越丰富,如何让⽤⼾从海量的信息及服务资源中能既准确⼜快速地找到诉求变得越来越重要,如2009年百度提出的框
计算概念⽬标就是为了能更快更准地满⾜⽤⼾需求。同时,随着移动互联⽹的到来,⽤⼾的输⼊⽅式越来越多样,除了基本的⽂本
输⼊检索,实现通过语⾳、图⽚、视频等内容载体进⾏检索的多模态搜索也变得越来越有必要。由于⽤⼾需求的多样或知识背景不
同导致需求表达的千差万别,要做到极致的搜索体验需要漫⻓的优化过程,毕竟⽬前真正的语义搜索还远未到来。
Query 理解
从前⾯的介绍可以知道,搜索三⼤模块的⼤致调⽤顺序是从 query 理解到检索召回再到排序,作为搜索系统的第⼀道环节,query
理解的结果除了可以⽤于召回也可以给排序模块提供必要的基础特征,为此 QU 很⼤程度影响召回和排序的质量,对 query 是进⾏
简单字⾯上的理解还是可以理解其潜在的真实需求很⼤程度决定着⼀个搜索系统的智能程度。⽬前业界的搜索 QU 处理流程还是以
pipeline 的⽅式为主,也即拆分成多个模块分别负责相应的功能实现,pipeline 的处理流程可控性⽐较强,但存在缺点就是其中⼀个
模块不 work 或准确率不够会对全局理解有较⼤影响。为此,直接进⾏ query-item 端到端地理解如深度语义匹配模型等也是⼀个值
得尝试的⽅向。
1. Pipeline 流程
搜索 Query 理解包含的模块主要有:query 预处理、query 纠错、query 扩展、query 归⼀、联想词、query 分词、意图识别、term
重要性分析、敏感 query 识别、时效性识别等。以下图为例,这⾥简单介绍下 query 理解的 pipeline 处理流程:线上来⼀个请求
query,为缓解后端压⼒⾸先会判断该 query 是否命中 cache,若命中则直接返回对该 query 对应的结构化数据。若不命中 cache,
则⾸先会对 query 进⾏⼀些简单的预处理,接着由于 query 纠错可能会⽤到分词 term 信息进⾏错误检测等先进⾏ query 分词并移
除⼀些噪⾳符号,然后进⾏ query 纠错处理,⼀些情况下局部纠错可能会影响到上下⽂搭配的全局合理性,为此还可能会需要进⾏
⼆次纠错处理。
对 query 纠错完后可以做 query 归⼀、扩展及联想词⽤于进⾏扩召回及帮助⽤⼾做搜索引导。接着再对 query 做分词及对分词后的
term 做重要性分析及紧密度分析,对⽆关紧要的词可以做丢词等处理,有了分词 term 及对应的权重、紧密度信息后可以⽤于进⾏
精准和模糊意图的识别。除了这些基本模块,有些搜索场景还需要有对 query 进⾏敏感识别及时效性分析等其他处理模块。最后还
需要能在 cms 端进⾏配置的⼈⼯⼲预模块,对前⾯各个模块处理的结果能进⾏⼲预以快速响应 badcase 处理。
当然,这个 pipeline 不是通⽤的,不同的搜索业务可能需要结合⾃⾝情况做 pipeline 的调整定制,像百度这些搜索引擎会有更为复
杂的 query 理解 pipeline,各个模块间的依赖交互也更为复杂,所以整个 QU 服务最好能灵活⽀持各个模块的动态热插拔,像组装
乐⾼积⽊⼀样进⾏所需模块的灵活配置,下⾯对各个模块做进⼀步详细的介绍。
2. Query 预处理
Query 预处理这个模块相对来说⽐较简单,主要对 query 进⾏以下预处理从⽽⽅便其他模块进⾏分析:
全半⻆转换:将在输⼊法全⻆模式下输⼊的 query 转换为半⻆模式的,主要对英⽂、数字、标点符号有影响,如将 "wecha
t123" 全⻆输⼊转成半⻆模式下的 "wechat 123"。
⼤⼩写转换:统⼀将⼤写形式的字⺟转成⼩写形式的。
繁简体转换:将繁体输⼊转成简体的形式,当然考虑到⽤⼾群体的差异以及可能存在繁体形式的资源,有些情况还需要保留转
换前的繁体输⼊⽤于召回。
⽆意义符号移除:移除诸如⽕星⽂符号、emoji 表情符号等特殊符号内容。
Query 截断:对于超过⼀定⻓度的 query 进⾏截断处理。
3. Query 分词
① 分词技术
剩余24页未读,继续阅读
资源评论
地理探险家
- 粉丝: 1046
- 资源: 5416
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Android面试题.txt
- chujuyingshi1129802.apk
- 865804808983585自动化办公必备numpy、pandas数据处理课件.zip
- Fences 5是一款桌面整理软件,主要用于Windows操作系统,能够帮助用户更有效地管理和组织桌面上的图标和文件
- Appium入门 appium-desktop安装包,下载即可安装使用
- 初步图优化之后的fb bev 结构图
- 爬取cnnvd网站代码最新的 2024年
- 资源专区-毕业设计-数据分析-CRM客户关系管理系统
- 毕业设计-使用Matlab基于遗传算法+非线性规划实现的函数寻优算法-附项目源码.zip
- api接口python.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功