搜索引擎算法工程师,在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理解领域的一些研究方向

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

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

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

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

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

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

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

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

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

相关推荐

  1. 常见加密方式哪些

    2024-07-12 04:22:03       28 阅读
  2. Web3 方向哪些工作,需要掌握哪些知识呢?

    2024-07-12 04:22:03       31 阅读
  3. js跳转页面哪些方式

    2024-07-12 04:22:03       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 04:22:03       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 04:22:03       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 04:22:03       57 阅读
  4. Python语言-面向对象

    2024-07-12 04:22:03       68 阅读

热门阅读

  1. 播放ReadableStream格式二进制流音频

    2024-07-12 04:22:03       30 阅读
  2. websocket学习

    2024-07-12 04:22:03       26 阅读
  3. Docker 安装字体文件

    2024-07-12 04:22:03       28 阅读
  4. 玩转springboot之xxxRunner接口使用

    2024-07-12 04:22:03       24 阅读
  5. Spring Security的Filter

    2024-07-12 04:22:03       27 阅读
  6. WVP后端项目文件结构

    2024-07-12 04:22:03       30 阅读
  7. 贪心算法-以学籍管理系统为例

    2024-07-12 04:22:03       26 阅读
  8. RISC-V主要指令集介绍及规则

    2024-07-12 04:22:03       27 阅读
  9. 【ChatGPT】全面解析 ChatGPT:从起源到未来

    2024-07-12 04:22:03       21 阅读