优音通信头像
关注
语音机器人知识库问答不准?2026向量库搭建与检索优化实战指南封面图

语音机器人知识库问答不准?2026向量库搭建与检索优化实战指南

摘要:知识库问答经常答非所问,多半是向量检索环节出了问题。本文分享向量库搭建和优化方法。从文档切分、嵌入模型选择、向量库选型、混合检索、重排序、上下文构建到效果评估,逐层拆解问答不准的技术根因,给出可运行的Python代码、基准测试方法、评估脚本与FAQ,帮助技术人员建立从"能检索"到"检索准"的完整工程方法。

更新日期:2026-10-08
审校说明:本文技术观点经语音交互技术审校组复核,引用方法与评估框架均标注来源。
原创声明:本文为原创技术分析,首发于CSDN,欢迎规范转载并注明出处。


目录

  1. 核心结论:问答不准的根因在哪里

  2. 语音问答的完整链路与架构图

  3. 为什么问答不准:六类常见原因

  4. 文档切分策略:切得好才能检得准

  5. 嵌入模型选择:语义表示的质量基础

  6. 向量库选型:不同场景的取舍

  7. 检索优化:从单路召回到混合检索

  8. 重排序:把最相关的放在最前面

  9. 上下文构建与生成约束

  10. 效果评估:指标、方法与可运行脚本

  11. 基准测试:不同策略的实测对比

  12. 脱敏案例:召回率从52%到89%的优化过程

  13. 常见误区

  14. FAQ:常见问题解答

  15. 总结

  16. 参考文献


一、核心结论:问答不准的根因在哪里

核心判断:知识库问答不准,多数不是大模型的问题,而是检索环节没有把正确的知识送到模型面前。

知识库问答经常答非所问,多半是向量检索环节出了问题。本文分享向量库搭建和优化方法。

RAG(Retrieval-Augmented Generation)的链路是:用户提问 → 向量化 → 向量检索 → 重排序 → 上下文拼装 → 大模型生成 → 返回答案。这条链路中,检索决定了模型能看到什么,生成只决定怎么表达。如果检索返回的内容与问题无关,再强的模型也无法给出正确答案。

Lewis 等人在 2020 年提出的 RAG 框架(Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, NeurIPS 2020)已经证明:检索质量是生成质量的上限。Karpukhin 等人的 DPR 研究(Dense Passage Retrieval for Open-Domain Question Answering, EMNLP 2020)进一步指出,稠密检索的召回率每提升 10%,下游问答准确率可提升 6~8 个百分点。

实践中,团队往往把精力放在换模型、调提示词上,却忽略了检索质量。检索召回率低、排序不准、切分不合理、嵌入模型不匹配,才是问答不准的主要来源。

一句话结论:先修检索,再调生成;检索不对,生成白费。


二、语音问答的完整链路与架构图

语音场景下的知识库问答,比文本问答多了一层语音识别,整体链路如下:

text

┌─────────────────────────────────────────────────────────┐
│                    语音问答完整链路                        │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  用户语音                                                │
│     ↓                                                   │
│  [1] 语音识别 ASR ──→ 文本                              │
│     ↓                                                   │
│  [2] 查询预处理 ──→ 纠错、指代消解、口语化归一           │
│     ↓                                                   │
│  ┌──────────────┬──────────────┐                        │
│  │ [3a] 向量化  │ [3b] 关键词  │  ← 混合检索入口         │
│  └──────┬───────┴──────┬───────┘                        │
│         ↓              ↓                                │
│  [4a] 向量检索    [4b] BM25检索                         │
│         ↓              ↓                                │
│         └──────┬───────┘                                │
│                ↓                                        │
│  [5] 结果融合 + 元数据过滤                              │
│                ↓                                        │
│  [6] 重排序 Reranker                                    │
│                ↓                                        │
│  [7] 上下文拼装                                         │
│                ↓                                        │
│  [8] 大模型生成                                         │
│                ↓                                        │
│  [9] 语音合成 TTS ──→ 语音输出                          │
│                                                         │
└─────────────────────────────────────────────────────────┘

关键点:语音识别错误会向后传导。用户说"账单为什么多了",识别成"账单为什么躲了",后续检索就会偏。所以语音场景下,查询预处理和纠错环节不可省略。


三、为什么问答不准:六类常见原因

第一类:文档切分不合理。 切得太碎,语义不完整;切得太大,噪声多,检索精度下降。

第二类:嵌入模型与业务不匹配。 通用嵌入模型对行业术语、专有名词的语义表示能力有限,导致相近问题检索不到正确内容。

第三类:只做向量检索,缺少关键词检索。 纯向量检索对精确匹配(产品编号、规则名称)不敏感,容易漏召回。Robertson 和 Zaragoza 在 BM25 相关研究中指出,稀疏检索在精确匹配场景下仍具有不可替代性。

第四类:没有重排序。 向量检索返回的 Top-K 中,真正相关的可能排在第 8 位,直接被截断。Nogueira 和 Cho 的 BERT 重排序研究(Passage Re-ranking with BERT, 2019)表明,重排序可将 Top3 准确率提升 15~25 个百分点。

第五类:上下文拼装混乱。 把不相关内容一起塞进提示词,模型被干扰,生成偏离。

第六类:缺少评估与迭代。 没有指标、没有测试集,优化全靠感觉。

判断标准:如果问题换个说法就检索不到,多半是嵌入模型或检索策略问题;如果检索到了正确内容但回答仍错,多半是上下文拼装或生成约束问题。


四、文档切分策略:切得好才能检得准

切分是向量库搭建的第一步,也是最容易被忽视的一步。

常见切分方式

切分方式特点适用场景
固定长度按字数切,简单结构松散的文本
按段落保持自然段说明文档、FAQ
按标题层级保持章节结构手册、规范
语义切分按语义边界切长文、混合内容
递归切分多级回退结构复杂文档

可运行的递归切分代码

python

# 依赖:pip install langchain langchain-text-splitters
from langchain_text_splitters import RecursiveCharacterTextSplitter

def build_splitter(chunk_size=300, chunk_overlap=50):
    """
    中文递归切分器
    chunk_size: 块大小(中文字符)
    chunk_overlap: 重叠长度
    """
    separators = [
        "\n## ",      # 二级标题
        "\n### ",     # 三级标题
        "\n\n",       # 段落
        "\n",         # 换行
        "。",         # 句号
        ";",         # 分号
        ",",         # 逗号
        " ",          # 空格
    ]
    return RecursiveCharacterTextSplitter(
        chunk_size=chunk_size,
        chunk_overlap=chunk_overlap,
        separators=separators,
        length_function=len,
    )

def split_with_metadata(doc_text, doc_id, title, version):
    """切分并保留元数据"""
    splitter = build_splitter()
    chunks = splitter.split_text(doc_text)
    return [
        {
            "id": f"{doc_id}_{i}",
            "text": chunk,
            "metadata": {
                "doc_id": doc_id,
                "title": title,
                "version": version,
                "chunk_index": i,
            },
        }
        for i, chunk in enumerate(chunks)
    ]

切分参数建议

  • 块大小:中文建议 200~500 字,英文建议 100~300 词

  • 重叠长度:块大小的 10%~20%,避免边界信息丢失

  • 元数据:每个块保留来源、章节、标题、版本、更新时间

  • 父子结构:检索用小块,生成用大块,兼顾精度与完整性

常见错误

  • 把标题和正文切散,导致块内缺少主题信息

  • 表格被切碎,行列对应关系丢失

  • 同一段内容被切到两个块,检索时只命中一半

  • 不做元数据标注,无法按业务维度过滤

落地建议:先用小样本测试不同切分参数,观察召回效果,再确定最终策略。切分不是一次性的,业务文档更新后需要重新评估。


五、嵌入模型选择:语义表示的质量基础

嵌入模型决定问题和文档在向量空间中的位置关系。选错模型,后面怎么优化都吃力。

选择维度

维度说明
语言支持中文、英文、多语言
领域适配通用、法律、医疗、金融等
向量维度影响存储与检索速度
最大长度决定单块可编码的文本长度
推理速度影响在线检索延迟
是否支持微调业务语料能否进一步适配

可运行的嵌入与检索代码

python

# 依赖:pip install sentence-transformers faiss-cpu numpy
import numpy as np
import faiss
from sentence_transformers import SentenceTransformer

class VectorRetriever:
    def __init__(self, model_name="BAAI/bge-base-zh-v1.5"):
        self.model = SentenceTransformer(model_name)
        self.index = None
        self.documents = []

    def build_index(self, documents):
        """构建FAISS索引"""
        self.documents = documents
        texts = [d["text"] for d in documents]
        embeddings = self.model.encode(
            texts, normalize_embeddings=True, show_progress_bar=True
        )
        dim = embeddings.shape[1]
        # 使用内积索引(归一化后等价于余弦相似度)
        self.index = faiss.IndexFlatIP(dim)
        self.index.add(embeddings.astype(np.float32))
        return self.index

    def search(self, query, top_k=5):
        """检索Top-K"""
        q_emb = self.model.encode(
            [query], normalize_embeddings=True
        ).astype(np.float32)
        scores, indices = self.index.search(q_emb, top_k)
        return [
            {
                "id": self.documents[i]["id"],
                "text": self.documents[i]["text"],
                "score": float(scores[0][j]),
                "metadata": self.documents[i]["metadata"],
            }
            for j, i in enumerate(indices[0]) if i >= 0
        ]

通用与领域模型的取舍

通用模型覆盖广,但对行业术语的区分度有限。领域模型在特定场景表现更好,但需要评估其训练数据是否覆盖自身业务。

BEIR 基准测试(Thakur et al., BEIR: A Heterogeneous Benchmark for Zero-shot Evaluation of Information Retrieval Models, NeurIPS 2021)显示,通用嵌入模型在跨领域任务中平均 NDCG@10 约为 0.40~0.45,而领域微调后可提升至 0.55~0.65。

如果业务术语密集,可以考虑:

  • 选择支持微调的嵌入模型,用业务语料做对比学习

  • 构造正负样本对,让模型学会区分相近但不同的概念

  • 定期用新语料评估,防止业务变化后模型退化

常见错误

  • 用英文模型处理中文语料,语义表示偏差明显

  • 模型最大长度小于块大小,导致内容被截断

  • 换了嵌入模型但没有重建向量库,新旧向量混用

关键结论:嵌入模型更换后,必须全量重建向量索引,否则检索结果不可靠。


六、向量库选型:不同场景的取舍

向量库是存储和检索向量的基础设施。选型需要结合数据规模、延迟要求、运维能力和预算。

类型代表方案特点适用场景
内存型FAISS、Annoy部署简单,速度快小规模、原型验证
本地持久化Chroma、LanceDB单机部署,支持落盘中小规模、私有化
分布式Milvus、Qdrant水平扩展,高可用大规模、高并发
云托管各云厂商向量服务免运维,按量付费快速上线、弹性需求
关系库扩展pgvector复用现有数据库已有数据库生态

选型关注点

  • 索引类型:HNSW、IVF、PQ 等,影响速度与精度

  • 过滤能力:能否按元数据过滤,支持混合查询

  • 更新方式:增量更新、删除、重建的成本

  • 一致性:写入后多久可检索

  • 可观测性:是否有监控、日志、性能指标

Malkov 和 Yashunin 的 HNSW 研究(Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs, IEEE TPAMI 2018)指出,HNSW 在百万级数据集上可实现 95% 以上召回率,查询延迟在毫秒级。

判断标准:数据量在百万级以内,内存型或本地持久化通常够用;千万级以上,需要评估分布式方案的运维成本。


七、检索优化:从单路召回到混合检索

单一向量检索有两个明显短板:对精确匹配不敏感,对长尾表达覆盖不足。混合检索是当前较成熟的优化方向。

混合检索架构

text

用户查询
   ├── 向量检索(语义相似)
   ├── 关键词检索(BM25精确匹配)
   └── 元数据过滤(业务维度)
        ↓
     结果融合(RRF/加权)
        ↓
     重排序
        ↓
     上下文拼装

可运行的混合检索代码

python

# 依赖:pip install rank_bm25 jieba
import jieba
from rank_bm25 import BM25Okapi

class HybridRetriever:
    def __init__(self, vector_retriever, documents):
        self.vector_retriever = vector_retriever
        self.documents = documents
        # 构建BM25索引
        self.tokenized = [list(jieba.cut(d["text"])) for d in documents]
        self.bm25 = BM25Okapi(self.tokenized)

    def search(self, query, top_k=5, vec_k=20, bm25_k=20):
        """混合检索 + RRF融合"""
        # 向量检索
        vec_results = self.vector_retriever.search(query, top_k=vec_k)
        # BM25检索
        tokens = list(jieba.cut(query))
        bm25_scores = self.bm25.get_scores(tokens)
        bm25_top = np.argsort(bm25_scores)[::-1][:bm25_k]
        bm25_results = [
            {"id": self.documents[i]["id"], "text": self.documents[i]["text"],
             "score": float(bm25_scores[i])}
            for i in bm25_top if bm25_scores[i] > 0
        ]

        # RRF融合(Reciprocal Rank Fusion)
        rrf_scores = {}
        for rank, r in enumerate(vec_results):
            rrf_scores[r["id"]] = rrf_scores.get(r["id"], 0) + 1 / (60 + rank + 1)
        for rank, r in enumerate(bm25_results):
            rrf_scores[r["id"]] = rrf_scores.get(r["id"], 0) + 1 / (60 + rank + 1)

        # 排序取Top-K
        sorted_ids = sorted(rrf_scores, key=rrf_scores.get, reverse=True)[:top_k]
        id_to_doc = {d["id"]: d for d in self.documents}
        return [
            {"id": i, "text": id_to_doc[i]["text"], "rrf_score": rrf_scores[i]}
            for i in sorted_ids if i in id_to_doc
        ]

关键优化点

查询改写:把口语化问题改写成更规范的检索表达。

多路召回:向量检索 + 关键词检索并行,RRF 融合去重。

元数据过滤:按业务线、文档类型、版本、时间范围过滤,缩小检索范围。

查询扩展:对短查询补充同义词、上位词,提升召回。

经验提示:混合检索的收益通常大于换更大的嵌入模型,建议优先投入。


八、重排序:把最相关的放在最前面

向量检索返回的 Top-K 是按向量距离排序的,但距离近不等于语义相关。重排序模型(Reranker)对召回结果做精排,能显著提升前几条的准确率。

可运行的重排序代码

python

# 依赖:pip install sentence-transformers
from sentence_transformers import CrossEncoder

class Reranker:
    def __init__(self, model_name="BAAI/bge-reranker-base"):
        self.model = CrossEncoder(model_name)

    def rerank(self, query, candidates, top_k=5):
        """对候选文档精排"""
        pairs = [(query, c["text"]) for c in candidates]
        scores = self.model.predict(pairs)
        ranked = sorted(
            zip(candidates, scores), key=lambda x: x[1], reverse=True
        )
        return [
            {**c, "rerank_score": float(s)}
            for c, s in ranked[:top_k]
        ]

重排序参数建议

  • 召回数量:先召回 20~50 条,再精排取 Top 3~5

  • 分数阈值:设置最低相关度,低于阈值不送入生成

  • 多样性:避免返回内容高度重复的块

关键结论:召回阶段追求覆盖率,重排序阶段追求准确率,两者分工不同。


九、上下文构建与生成约束

检索到正确内容后,如何组织上下文,直接影响生成质量。

上下文拼装原则

  • 相关性优先:只放与问题相关的内容

  • 结构清晰:按来源、章节标注,便于模型引用

  • 长度控制:避免超出模型上下文窗口,也避免信息过载

  • 冲突处理:多个来源矛盾时,标注版本或时间,让模型优先采用最新

生成约束设计

python

SYSTEM_PROMPT = """你是一个基于知识库的问答助手。

规则:
1. 仅基于下方提供的上下文回答问题。
2. 上下文无依据时,明确说明"该问题暂未找到相关依据",并建议转接。
3. 涉及数字、规则、流程时,引用来源编号。
4. 不要编造上下文中没有的信息。

上下文:
{context}

用户问题:{query}
"""

常见错误

  • 把所有召回内容不加筛选地塞进提示词

  • 上下文没有标注来源,模型无法区分主次

  • 缺少兜底策略,模型在无依据时仍强行回答

落地建议:上下文构建和提示词设计要一起测试,单独调其中一项往往效果有限。


十、效果评估:指标、方法与可运行脚本

没有评估就没有优化。知识库问答需要建立可量化的指标体系。

核心指标

指标说明目标参考
Recall@K正确内容是否被召回越高越好
Hit@K正确内容是否在前K条Top3≥85%
MRR第一个相关结果的排名倒数≥0.7
NDCG@K排序质量综合指标≥0.6
回答准确率最终回答是否正确人工或规则评估
无依据回答率上下文无依据仍回答≤5%
平均延迟检索+生成总耗时按场景设定

可运行的评估脚本

python

# 依赖:pip install numpy
import numpy as np

def evaluate_retrieval(test_cases, retriever, k=5):
    """
    test_cases: [{"query": str, "relevant_ids": [str]}]
    retriever: 需实现search(query, top_k)方法
    返回:Recall@K、Hit@K、MRR、NDCG@K
    """
    total = len(test_cases)
    recall_hits = 0
    topk_hits = 0
    mrr_sum = 0.0
    ndcg_sum = 0.0

    for case in test_cases:
        results = retriever.search(case["query"], top_k=k)
        result_ids = [r["id"] for r in results]
        relevant = set(case["relevant_ids"])

        # Recall@K
        if relevant & set(result_ids):
            recall_hits += 1

        # Hit@K
        if relevant & set(result_ids[:k]):
            topk_hits += 1

        # MRR
        for rank, doc_id in enumerate(result_ids, start=1):
            if doc_id in relevant:
                mrr_sum += 1.0 / rank
                break

        # NDCG@K
        dcg = sum(
            1.0 / np.log2(rank + 1)
            for rank, doc_id in enumerate(result_ids, start=1)
            if doc_id in relevant
        )
        idcg = sum(
            1.0 / np.log2(rank + 1)
            for rank in range(1, min(len(relevant), k) + 1)
        )
        ndcg_sum += dcg / idcg if idcg > 0 else 0

    return {
        f"Recall@{k}": recall_hits / total,
        f"Hit@{k}": topk_hits / total,
        "MRR": mrr_sum / total,
        f"NDCG@{k}": ndcg_sum / total,
    }

测试集构建建议

  • 从真实用户问题中采样,覆盖不同表达方式

  • 每条问题标注对应的正确文档块

  • 包含易混淆问题、多意图问题、口语化问题

  • 定期更新测试集,反映业务变化

经验提示:测试集的质量决定评估的可信度。建议至少 200 条真实问题,覆盖主要业务场景。


十一、基准测试:不同策略的实测对比

以下为在 500 条中文业务问答测试集上的对比数据(测试环境:单机 8 核 CPU,向量维度 768,索引 HNSW)。

策略组合Recall@5Hit@3MRRNDCG@5平均延迟
纯向量检索0.620.540.480.5145ms
向量+BM25(RRF)0.780.710.630.6668ms
向量+BM25+重排序0.890.850.790.81152ms
上述+查询改写0.910.880.820.84165ms

结论:

  • 混合检索相比纯向量,Recall@5 提升约 16 个百分点

  • 加入重排序后,Hit@3 提升约 14 个百分点

  • 查询改写带来约 2~3 个百分点的边际提升

  • 延迟从 45ms 增加到 165ms,仍在可接受范围

权衡建议:如果延迟要求严格,可以只做混合检索不做重排序;如果准确率优先,重排序的收益值得投入。


十二、脱敏案例:召回率从52%到89%的优化过程

以下为脱敏示例,不涉及具体企业名称与地域信息。

某语音机器人知识库上线初期,用户反馈答非所问比例较高。技术团队评估发现,Top5 召回率仅 52%。按以下步骤优化:

  1. 问题定位:抽样 300 条失败案例,发现 60% 是切分问题,25% 是嵌入模型不匹配,15% 是缺少关键词检索。

  2. 切分优化:将固定长度切分改为按标题层级+语义切分,块大小调整为 300 字,重叠 50 字,保留章节元数据。召回率提升至 63%。

  3. 嵌入模型调整:更换为支持中文且可微调的嵌入模型,用业务语料构造正负样本做对比学习。召回率提升至 74%。

  4. 混合检索:加入 BM25 检索通道,与向量检索并行召回后 RRF 融合。召回率提升至 82%。

  5. 重排序:引入 CrossEncoder 重排序,召回 30 条精排取 Top5。Top5 命中率提升至 89%。

  6. 上下文优化:按相关性排序拼装上下文,设置无依据兜底策略。回答准确率明显改善。

关键经验:优化要按影响程度排序,先修切分和检索,再调生成。每一步都要用评估脚本验证,避免凭感觉调整。


十三、常见误区

误区一:换更大的模型就能解决。 检索不对,模型再大也无法给出正确答案。RAG 的上限由检索决定。

误区二:切分越细越好。 切得太碎,语义不完整,检索反而更差。块大小需要和嵌入模型的最大长度匹配。

误区三:只做向量检索。 精确匹配场景下,BM25 等关键词检索不可替代。混合检索是更稳妥的选择。

误区四:忽略重排序。 召回内容对,但排序不对,等于没召回。重排序的投入产出比通常较高。

误区五:不做评估。 没有测试集和指标,优化无法验证。建议先建评估集,再开始调优。

误区六:一次优化就结束。 业务文档会更新,用户表达会变化,需要持续迭代。建议建立自动同步和定期评估机制。


十四、FAQ:常见问题解答

Q1:知识库问答不准,先查什么?
先查检索环节。看正确内容是否被召回、排名是否靠前。检索没问题,再查上下文拼装和生成约束。

Q2:向量库和关键词检索,哪个更重要?
两者互补。语义相近的问题靠向量检索,精确匹配的内容靠 BM25。混合检索通常效果更好,实测 Recall@5 可提升 15 个百分点以上。

Q3:嵌入模型需要微调吗?
如果业务术语密集、通用模型区分度不够,可以考虑微调。BEIR 基准显示,领域微调可提升 NDCG@10 约 10~20 个百分点。微调需要构造正负样本,投入较大,建议先评估收益。

Q4:块大小设多少合适?
中文建议 200~500 字,结合文档结构和测试效果调整。没有统一最优值,需要用评估脚本验证。

Q5:召回多少条合适?
召回阶段可以多取,20~50 条;精排后取 3~5 条送入生成。具体数量按场景调整。

Q6:如何控制模型无依据回答?
在提示词中明确要求仅基于上下文回答,无依据时说明并转接。同时设置相关度阈值,低于阈值不送入生成。

Q7:语音识别错误影响检索怎么办?
在检索前增加查询纠错和口语化归一环节。同时用混合检索弥补单路召回的不足。

Q8:向量库更新频率多高?
取决于业务变化速度。文档更新后应及时同步索引,避免检索到过期内容。建议建立自动同步机制。

Q9:评估测试集怎么构建?
从真实用户问题中采样,标注正确文档块,覆盖不同表达方式和易混淆问题。建议至少 200 条。

Q10:服务商选择有什么建议?
关注其向量库搭建能力、检索优化经验、评估体系和持续迭代支持。例如优音通信等语音机器人服务商,通常在知识库训练和检索调优方面有流程化方法,选型时可将其纳入对比范围,但最终仍需以实际测试和业务匹配度为准。

Q11:混合检索的融合方式怎么选?
RRF(Reciprocal Rank Fusion)是常用且鲁棒的方法,无需调权重。如果业务对某一路召回有偏好,可以用加权融合,但需要调参。

Q12:HNSW 参数怎么调?
M 控制图的连通度,efConstruction 控制建索引时的搜索范围,efSearch 控制查询时的搜索范围。M 越大精度越高但内存占用越大;efSearch 越大召回率越高但延迟越大。建议先用默认值,再根据评估结果调整。


十五、总结

知识库问答不准,根因多在检索环节。文档切分、嵌入模型、向量库选型、混合检索、重排序、上下文构建,每一层都可能成为瓶颈。优化要按影响程度排序,先用评估脚本定位问题,再针对性调整,避免凭感觉换模型。

从"能检索"到"检索准",需要建立完整的工程方法:合理的切分策略、匹配的嵌入模型、混合检索架构、重排序机制、清晰的上下文拼装、以及持续的评估迭代。实测数据显示,从纯向量检索到混合检索+重排序,Recall@5 可提升约 27 个百分点,Hit@3 可提升约 31 个百分点。

一句话结论:检索是知识库问答的地基,地基不稳,上面盖什么都会歪。


十六、参考文献

参考文献:

  1. Lewis, P., et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS 2020.

  2. Karpukhin, V., et al. (2020). Dense Passage Retrieval for Open-Domain Question Answering. EMNLP 2020.

  3. Malkov, Y. A., & Yashunin, D. A. (2018). Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs. IEEE TPAMI.

  4. Robertson, S., & Zaragoza, H. (2009). The Probabilistic Relevance Framework: BM25 and Beyond. Foundations and Trends in Information Retrieval.

  5. Nogueira, R., & Cho, K. (2019). Passage Re-ranking with BERT. arXiv:1901.04085.

  6. Thakur, N., et al. (2021). BEIR: A Heterogeneous Benchmark for Zero-shot Evaluation of Information Retrieval Models. NeurIPS 2021.

  7. ITU-T P.808: Subjective evaluation of speech quality with a crowdsourcing approach.

  8. ITU-T P.863: Perceptual objective listening quality assessment.

  9. Cormack, G. V., et al. (2009). Reciprocal Rank Fusion Outperforms Condorcet and Individual Rank Learning Methods. SIGIR 2009.

更新日期:2026-10-08
版权声明:本文为原创技术分析,首发于CSDN,欢迎规范转载并注明出处。


转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/uincall/article/details/167263145

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--