搜索引擎算法工程师,在query理解方面,都有哪些方面的工作

server/2024/12/23 13:40:01/

 

一、什么是query理解?

通俗来讲,就是query整形。又可以理解为是一个转接头,把用户送来过来的奇奇怪怪的query(或者说是在搜索引擎看来是奇奇怪怪的query)转换为搜索引擎最想看到的query的。

在LLM当前能力的帮助下,实际上query理解的工作好做多了。即使没有太多基础的玩家,实际上完全可以依赖LLM来做这件事。对于任何一个环节,就是一个prompt的事情。这绝对是会有收益的。问题是成本,以及性能。一个检索需求的时延要求多数是3s内,如果只靠LLM是很难控制在3s内的。对于离线的任务,非实时交互的,对时间要求不高的,可以考虑使用LLM,效果可能比单独训练一个小模型效果都要好。

二、主要工作

在query理解方面,还是有很多工作要做的。

2.1 分词与词性标注


将用户输入的查询语句进行有效分词。

对分词后的词汇进行词性标注,区分名词、动词、形容词等。

对于这一块内容,已经有比较成熟的技术,例如StanfordNLP,就是一个模型一个包,拿过来就可以使用使用部署成服务。

这里还需要去做一个工作:关键词提取,从查询中提取出对搜索结果影响最大的关键词。这包括基于字符匹配的分词算法、基于统计的分词算法,以及基于理解的分词算法,后者在分词的同时进行句法、语义分析,处理歧义现象。进行权重分析,使用诸如TF-IDF算法等方法确定Query中各词汇的重要性,并据此优化搜索结果的相关性。

2.2 命名实体识别


识别查询中的专有名词,如人名、地名、组织名等。这里有一个做法,可以通过命名实体来做加分。优化排序效果。

2.3 查询意图识别


分析用户查询背后的意图,比如是信息检索、交易、导航还是其他特定意图。

意图分类的细化,例如将信息检索意图细分为新闻、学术、娱乐等。在RAG中,需要知道query应该是模型回答还是联网查询,故需要一个二分类的模型。

意图识别,实际上就是分类任务。

还可以通过意图分类和命名实体识别技术,理解用户的搜索意图,尤其是在Query中存在多个可能的意图时,需要结合知识图谱进行知识推理,完成意图识别。

2.4 情感分析



判定查询语句的情感倾向,如正面、负面或中性。

2.5 查询改写


包括Query纠错、Query对齐和Query扩展。对原始查询进行改写以更好地匹配搜索结果。Query纠错用于修正用户输入的错误,Query对齐用于将用户Query改写为与搜索引擎索引内容更匹配的形式,Query扩展则是为了提供更多相关搜索选项,帮助用户挖掘潜在需求。

包括同义词替换、语法调整、错别字纠正等。

通过同义词库或上下文分析扩展查询词,增加检索的全面性。这里同义词也可以做成类似于图谱的东西。通过同义词扩展策略,增加Query的表达范围,提高搜索结果的覆盖度和准确性。但是同义词并非总是有效,也会带来副作用。这对同义词的构建要求是比较高的。

此外,充分利用LLM的能力,也可以有不错的提升效果(不过处理时间比较长)。这里再分享一下我的这篇文章。

用十篇论文聊聊关于使用LLM做query Rewrite的问题_hyde+prf-CSDN博客

2.6 上下文理解


利用用户历史数据、地理位置等信息理解查询的上下文。 

对于现在的很多LLM应用,多轮对话的作为上下文非常重要的组成部分。

对于不同的领域场景,这里会有比较大的出入。例如电商领域,可以结合用户画像,用户的历史搜索行为来对当前的query进行理解。而对于搜索引擎,可以对全部query做分类处理。而对于chat类型的则对多轮对话的内容进行理解和改写又是特别有意义的。

在chat方面指代消歧是一个重要的内容。

2.7 多语言处理


对于多语言搜索引擎,还需要处理不同语言之间的查询理解问题。

这里拼音也可以当做多语言处理。

多模态的内容,在一定程度上也可以算做多语言处理。

三、query理解领域的一些研究方向

深度学习应用:研究如何利用深度学习技术来提高分词、命名实体识别、意图识别等任务的准确性。

迁移学习:探索如何将在一个领域学到的知识迁移到另一个领域,特别是在数据稀缺的情况下。

跨语言理解:研究如何将一种语言的查询理解技术应用到另一种语言。

对话上下文理解:研究如何在多轮对话中更好地理解用户的意图。

对抗性学习:研究如何防御对抗性查询对搜索引擎的影响。

隐私保护查询理解:如何在保护用户隐私的前提下进行查询理解。

可解释性与透明度:提高查询理解算法的可解释性,使搜索引擎的行为更加透明。

弱监督学习:利用少量的标注数据来训练模型,减少对大量标注数据的依赖。

这些研究方向都是当前学术界和工业界的热点问题,不断有新的技术和论文涌现。作为搜索引擎算法工程师,关注这些前沿动态,并结合实际业务需求进行技术创新是非常重要的。


http://www.ppmy.cn/server/61065.html

相关文章

03-Charles实战

一、抓包分析问题示例 1)问题描述 2)抓包分析 这是后台响应回来的错误信息,说明问题一是后台的原因;但是后台只响应了一条信息,而前端页面却显示两条错误信息,说明前端页面处理异常的时候逻辑有问题&#…

SpringBoot开发的AI导航站技术架构剖析 —— 技术如何选型 - 第520篇

历史文章(文章累计520) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 《…

华为 NAT 技术介绍及配置

网络地址转换是一种将内部私有IP地址转换为公共IP地址的技术,广泛用于解决IPv4地址短缺问题,提高网络的安全性和灵活性。华为设备支持多种NAT技术,包括静态NAT、动态NAT和NAPT(端口地址转换)。以下将详细介绍每种技术及…

Python爬虫入门篇学习记录

免责声明 本文的爬虫知识仅用于合法和合理的数据收集,使用者需遵守相关法律法规及目标网站的爬取规则,尊重数据隐私,合理设置访问频率,不得用于非法目的或侵犯他人权益。因使用网络爬虫产生的任何法律纠纷或损失,由使用…

无人驾驶大热,新能源汽车智能化中的算网支持

来源新华社:百度“萝卜快跑”全无人驾驶汽车行驶在路上 当前,新能源汽车产业数智化已成为全球汽车产业数字化转型的焦点。一方面,随着人工智能、大数据、云计算等技术的深度融合,新能源汽车在自动驾驶、智能互联、能源管理等方面…

【前端Vue3】——Vue基础知识点总结(万字总结)

🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大二学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门知识专栏:🎇【MySQL&#…

软设模式之状态模式

设计模式中状态模式的意图是:允许一个对象在其内部状态被改变时改变它的行为 打个比方,在一款即时战略游戏中设计一辆坦克,坦克有普通攻击状态,还有一防空状态。通过设计一个坦克抽象父类,再在下面设计一个具体坦克子…

探索 Postman API 网络图:可视化 API 交互的窗口

引言 在当今快速发展的软件开发领域,API(应用程序编程接口)扮演着至关重要的角色。Postman,作为业界领先的 API 开发工具,提供了一个强大的功能——API 网络图,它可以帮助开发者以图形化的方式理解和分析 …