关于搜索引擎链路

一、搜索引擎的的链路

简单流程如下,一般都包括query理解,召回,粗排,精排,重排。

二、query理解,查询词处理

对于进来的query需要有很多道工序做处理。才能让搜索引擎的效果更好、更智能。

2.1 分词

 分词是query理解中必不可少的环节。

 TODO : 这里待分享一些方法。

2.2 词权重

词权重,做的事情是,找到query中最关键的点,和非关键的点。从而能够在召回过程中,影响排序。

例如query为“冬季卫衣推荐”,其中重要的是“冬季” 和“卫衣”,其中不重要的是“推荐”。如果不做词权重这个事情,那么“推荐”这个词,和“冬季”“卫衣”,同等重要,很可能干扰排序的结果,召回不相关的内容。

词权重,特别对于长尾的query,特别是在根据关键词的召回过程中(例如:BM25),会特别有用。能够帮助我们找到更相关的结果。

做法:这里分享一个做法。也是利用NLP中的词性标注,然后根据词性来判别权重。

2.3  类目识别,分类

对内容有一个分类,这是非常重要的事情。就像平常生活中,我们把袜子,体恤,短裤都分开方,这样在用的时候可以很好的找。否则在一堆杂乱的的东西中,想要找到想要的,是南辕北辙的事情,费时费力。

做法:这里实际上是对应NLP中的分类任务

2.4 意图识别

时效性意图:例如,query中带有“今天”,“近一周”等等。在召回的过程中,需要考虑文档的年龄。

地域性意图。

我觉得意图识别是query理解中,很重要的一个步骤,做不好会让搜索引擎感觉很笨。做好了会让用户觉得它很聪明,很智能。

2.5 查询词改写 

这里其实包括了同义词。

2.6 query改写

关于把一个query改变成另外一个query的做法,这里有一些研究。

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

2.7 纠错

纠正query中的错误,可以给用户更好的体验。帮助用户找到想要的内容。

三、召回 

目前分为两种。在机器学习火热之前,基本上是用关键词做召回的(Bm25)。机器学习能力越来越强,可以做语义召回,例如DSSM双塔模型,做语义检索。

3.1 BM25召回

这里,对物料数据做预处理(入库),例如建立倒排索引。然后把query的关键词和倒排索引做匹配好计算,找到最匹配的文档。这里可以使用elasticsearch来做。

3.2  语义召回(向量召回)

双塔模型,一个模型把文档转为向量,一个模型把query转为向量。其中文档的向量是离线计算的(因为这是已知的)。而query是实时计算的(因为这是未知的)。

有很多现成的embedding模型,可以做这件事情。基本上不用自己训练或者微调。例如有BGE,m3e等等

 3.3 KV召回

对于一些特殊的场景。我们可以做一些缓存。例如微博中的热搜,又或者是抖音上的爆火视频。这些并不需要都去做计算,可以提前用query和内容做缓存。更快的做响应。

四、排序

在召回阶段,可能会有一个排序。但是它为了计算速度,通常会较弱。一般都要把召回的内容,重新做一个排序。通常的做法是,使用模型来计算查询词和文档的相关性。  

排序可能也有多层,分为粗排和精排(粗排和精排的区别是使用的特征量不同,粗排追求速度,特征维度更少。精排更关注效果,特征更多,耗时可能更长)。先计算各个维度的分数。然后把这些各个维度的分数做融合计算。针对不同的场景,侧重点不同。以后的关注相关性,有的关注个性化。

  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值