召回10 Deep Retrieval召回

Deep Retrieval召回:给定用户特征采用beam search算法召回路径,根据路径召回物品,对物品排序,最终用分数高的物品作为召回结果。

双塔模型是将向量表征作为用户和物品之间的中介。

Deep Retrieval是将路径作为用户和物品之间的中介。

神经网络判断用户对物品的兴趣,物品表证则是把物品映射到路径。

索引:

把物品和路径关联起来。一个物品可以表示为多条路径,路径可以有重合的节点。

物品到路径的索引:

训练神经网络时使用该索引。

路径到物品的索引:

线上做召回的时候使用该索引。给定一条路径会取回多个物品作为召回的结果。

预估模型:

Deep Retrieval设计神经网络,给定用户特征可以预估用户对路径的兴趣分数。使用该神经网络,可以根据用户特征召回多条路径。

以下假定结构有三层:p1 p2 p3三个向量是三个神经网络的输出。

向量p1 p2 p3分别是对第一层、第二层、第三层k个节点的打分,都是k维向量。根据分数选出每一层的一个节点a 、b、c。用户特征向量x不变,对节点a做embadding得到emb(a),对x和emb(a)做connection再输入神经网络。三层神经网络不共享参数

选出三层中的节点a 、b、c.

线上召回:

beam search召回路径

减少计算量,应用于机器学习和Lp。超参数beam size最大,计算量越大,search结果越好。

例子,设置超参数为1,选择每一层最高分节点,即p1向量中元素最大的节点。

beam search算法理论:

上面的例子即贪心算法,独立对p1 p2 p3最大化,但不一定保证三项乘积最大,即选择的路径未必是最优路径。

设置超参数为4:

训练:

离线训练,只使用正样本,只要点击过就算正样本。

通过最小化损失函数来学习神经网络的参数。

以用户为中介,计算用户与路径的兴趣分数,进而得到物品与路径的相关性score,score越高说明路径和物品的关联越大,可以把路径作为物品的表征。

概括:

总结:

双塔模型是将向量表征作为用户和物品之间的中介。

Deep Retrieval是将路径作为用户和物品之间的中介。

### RAG 召回重排的技术解释 RAG(Retrieval-Augmented Generation)是一种结合检索和生成模型的方法,旨在通过从外部知识库中检索相关信息来增强生成模型的表现。其核心思想是利用检索模块获取上下文中最相关的文档片段,并将其作为额外输入提供给生成器。 #### RAG 的基本架构 RAG 架构由两个主要部分组成:检索器(Retriever)和生成器(Generator)。 - **检索器**负责从大规模语料库中提取与查询相关的文档或段落[^1]。这些文档通常被表示为嵌入向量并存储在一个索引结构中以便快速查找。 - **生成器**则基于检索到的内容以及原始输入生成最终响应。它能够学习如何有效地融合检索到的信息以提高输出质量。 #### 召回混排 (Recall-Reranking) 实现细节 召回混排是指在初步检索阶段获得多个候选项之后,再对其进行重新排序的过程。以下是具体实现方法: ##### 1. 初步检索阶段 在这个阶段,检索器会返回一组潜在匹配的文档列表 \(D_1, D_2,...,D_k\) 。每篇文档都附带有一个相似度分数,该分数衡量了文档与当前请求之间的关联程度。此过程可以采用密集型检索技术(如 Dense Passage Retrieval, DPR),也可以依赖稀疏型检索工具(如 BM25 或 TF-IDF)。 ##### 2. 特征工程 为了更好地评估各个候选项的质量,在进入下一环节之前可能还需要构建一些辅助特征。常见的做法包括但不限于计算以下指标: - 查询词频统计; - 候选文档长度调整后的权重分布; - 结合领域先验知识定义特定规则加权等。 ##### 3. 深度神经网络用于精调排名顺序 引入一个专门训练过的二分类或者回归模型来进行最终决策。这个模型接收来自上一步的所有信息作为输入变量,并预测每一个候选对象成为理想答案的概率值 p_i ∈ [0,1]. 接着按照概率大小降序排列得到新的序列 {d'_j}. 下面给出一段伪代码展示整个流程逻辑: ```python def rag_recall_rerank(query, retriever_model, generator_model): # Step 1: Retrieve top-k documents using Retriever model retrieved_docs = retriever_model.retrieve_topk_documents(query) # Step 2: Compute additional features for each document enriched_features = compute_enriched_features(retrieved_docs) # Step 3: Use a ranking model to re-rank the results based on computed scores ranked_scores = rank_documents(enriched_features, query) # Step 4: Generate final response by feeding highest-ranked doc into Generator best_doc_index = np.argmax(ranked_scores) generated_response = generator_model.generate(query, retrieved_docs[best_doc_index]) return generated_response ``` 上述函数展示了完整的 Rag Recall Re-ranking 过程,其中涉及到了三个重要组件——`retriever_model`, `compute_enriched_features()` 和 `rank_documents()`. 它们共同协作完成高质量回复生成的任务。 #### 总结 通过对初始检索结果集应用复杂的机器学习算法再次优化排序策略,使得即使是在面对海量数据源的情况下也能有效筛选出真正有用的知识条目供后续处理使用。这种方法不仅提高了系统的鲁棒性和泛化能力,同时也极大改善了用户体验满意度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值