Query Rewrite —— 原始query蒸馏,提升召回率,和召回质量

        query改写其实理解起来很简单,就是把原始的query经历一系列的操作,然后变成另外一个query,从而达到提升召回率和准确率的效果。

        query改写的过程中,这一系列的操作,其实是围绕两个方面展开的。第一是在原始query中添加一些有用的内容(可以理解为query扩展),把本该召回却没有召回的内容给召回,提高topK的召回率。第二是在原始query中去掉一些杂质内容(可以理解为蒸馏),对于长尾的query,很可能存在很多的干扰项。特别是在Bm25相关性召回下,对query条件进行蒸馏,会有一定的收益。并且资源花费和成本并不大。

        本文主要介绍query蒸馏。本文涉及到的是,根据词性从query中提取优质的关键词,去在请求过程中加分,从而提升召回率和召回排名效果。

一、蒸馏思考

对于有一些问题case,是可以考虑抽取实体的。通过实体匹配来加分,提高排序的效果。

eg:文章中提到了哪些促进区域协调发展的措施

通过词性分析,提取一些重要的词来做加分的查询操作。使用should语法

根据词性整理了一定的规则。

NT : 时间名词,连续的NT词必须是一个整体;
VV: 去除单字;保留2个字及以上;
NN:前后独立的NN去除;单字的NN需和前后NN组成整体词;
OD:中文序数词,如“第一、第二、十九”,需与前后组成整体词;
M:数量词;需与前后组成整体词;

二、优化后的效果

BM25召回率提提升了 1.23% 。原来有63个没有被召回。修改后只有34个没有召回。实际上效果已经提升了将近50%

top1召回率提升了 7.6%,top5提升了 5%,top10提升了3.3%,top20提升了2%

在34个没有召回的case里边。其中有24条,是有问题的问题(问题太泛了)。

三、负面效果

关键词提取的方式,也存在一些badcase,并不总是那么完美。

剩余10条没有召回case里,看到加分策略的副作用。这里举一个例子:如何理解“十个行动”?

显然这里会拿着"理解"  + "行动"去加分,结果会变差。

相关推荐

  1. RAG词嵌入召回质量评估

    2024-02-22 15:02:01       46 阅读

最近更新

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

    2024-02-22 15:02:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 15:02:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 15:02:01       87 阅读
  4. Python语言-面向对象

    2024-02-22 15:02:01       96 阅读

热门阅读

  1. 路由器配置DMZ主机映射

    2024-02-22 15:02:01       73 阅读
  2. 提升爬虫效率:多线程,多进程,多协程

    2024-02-22 15:02:01       46 阅读
  3. 近红外γ-谷氨酰转肽酶(GGT)荧光探针(NRh-G)星戈瑞

    2024-02-22 15:02:01       51 阅读
  4. 物联网和人工智能的融合

    2024-02-22 15:02:01       60 阅读
  5. android 全局异常处理封装

    2024-02-22 15:02:01       52 阅读
  6. C语言内存模型的深度剖析

    2024-02-22 15:02:01       51 阅读
  7. 自然语言转SQL的应用场景探索

    2024-02-22 15:02:01       50 阅读
  8. 剑指offer面试题17 合并俩个排序的列表

    2024-02-22 15:02:01       49 阅读
  9. sqlserver 函数

    2024-02-22 15:02:01       50 阅读
  10. 算法:带权重随机算法

    2024-02-22 15:02:01       49 阅读
  11. spring和springboot的区别,简单直接

    2024-02-22 15:02:01       52 阅读