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

一、什么是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理解领域的一些研究方向

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

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

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

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

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

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

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

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

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

相关推荐
Elastic 中国社区官方博客1 小时前
Elasticsearch 开放推理 API 增加了对 IBM watsonx.ai Slate 嵌入模型的支持
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
jwolf21 小时前
摸一下elasticsearch8的AI能力:语义搜索/vector向量搜索案例
人工智能·搜索引擎
小马爱打代码5 小时前
Elasticsearch简介与实操
大数据·elasticsearch·搜索引擎
java1234_小锋14 小时前
Elasticsearch是如何实现Master选举的?
大数据·elasticsearch·搜索引擎
AiFlutter17 小时前
Java实现简单的搜索引擎
java·搜索引擎·mybatis
梦幻通灵20 小时前
ES分词环境实战
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客20 小时前
Elasticsearch 中的热点以及如何使用 AutoOps 解决它们
大数据·运维·elasticsearch·搜索引擎·全文检索
infiniteWei1 天前
【Lucene】搜索引擎和文档相关性评分 BM25 算法的工作原理
算法·搜索引擎·lucene
Elastic 中国社区官方博客2 天前
Elasticsearch:如何部署文本嵌入模型并将其用于语义搜索
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索
infiniteWei2 天前
【Lucene】详解倒排表的结构,如何实现词典与文档的映射关系
搜索引擎·全文检索·lucene