当前位置: 首页 > news >正文

BM25, TF-IDF, Faiss-based methods

在深度学习(Deep Learning)和 BERT 大行其道之前,它们统治了信息检索(Information Retrieval, IR)领域几十年。

1. TF-IDF:统计学的直觉

全称:Term Frequency - Inverse Document Frequency(词频-逆文档频率)。

它的核心逻辑:怎么判断一个词重不重要?

假如你在查“TCU2 通信故障”。

  • TF (词频):如果一个文档里“TCU2”出现了 10 次,另一个只出现了 1 次,前者肯定更相关。——越多越好。

  • IDF (逆文档频率):如果“故障”这个词在每一篇日志里都出现,那它就是废话,对区分文档没有任何帮助。反之,“TCU2”如果只在 5% 的文档里出现,那它就是核心特征。——越稀有越重要。

计算方式:

系统会算出每个词的 $TF \times IDF$ 分数,生成一个稀疏向量。

  • 优点:极快,完全不需要训练,直接统计就有结果。

  • 本文中的致命伤(语义鸿沟):

    • 只认字,不认意

    • 如果用户查:“转换器异常”。

    • 文档里写的是:“变流器工作停止”。

    • 虽然在列车语境下这是同一个东西,但 TF-IDF 认为这是两个完全不同的词,分数可能为 0。这就是论文中提到的“Shallow bag-of-words similarity”(浅层词袋相似度)1。


2. BM25:工业界的“黄金标准”

全称:Best Matching 25(最佳匹配算法 25 版)。

它是 TF-IDF 的进化版

它是目前如果不使用深度学习,效果最好的检索算法,也是 Elasticsearch、Lucene 等搜索引擎的默认算法。它主要改进了 TF-IDF 的两个缺陷:

  1. 词频饱和(Term Frequency Saturation):

    • TF-IDF 的问题:“故障”出现 100 次的分数是出现 1 次的 100 倍。这不合理。

    • BM25 的改进:引入了饱和机制。出现 3 次和出现 100 次,得分差不多。它认为“有了就行,多了没用”。

  2. 文档长度归一化(Document Length Normalization):

    • 问题:长文档天然包含更多词,更容易被搜出来。

    • BM25 的改进:对长文档进行惩罚,对短文档进行补偿,保证公平性。

在本文中的角色

BM25 是传统方法的**“天花板”**。如果一个深度学习模型(比如 Naive RAG)跑出来比 BM25 还差,那这个深度学习模型就是失败的(通常意味着过拟合或者没训练好)。


3. Faiss-based methods:从“怎么算”到“怎么找”

全称:Facebook AI Similarity Search。

这里需要特别注意,Faiss 本身不是一个“模型”,而是一个“工具库”。它是由 Facebook (Meta) 开发的,专门用来在海量向量中快速找最近邻居(Nearest Neighbor Search)的工程神器。

为什么把它列在这里?

在论文的语境下,Faiss 代表的是**“非学习型的向量检索”**。

  • 通常搭配:当作者把 Faiss 和 TF-IDF/BM25 放在一起时,通常意味着这里的 Faiss 使用的是未经微调的简单向量(例如使用词向量的平均值,或者传统的 LSI/SVD 降维向量)。

  • 对比点:

    • TG-RL-RAG (本文方法):向量的分布是学出来的(通过 RL 调整 Agent 的策略)。

    • Faiss-based (基线):向量的分布是固定的(基于词频统计或静态 Embedding),Faiss 只是用来快速计算欧几里得距离或内积。


4. 深度解析:为什么这一组在实验中“全军覆没”?

请看论文中的实验结果(图 4 和图 5 的底部水平线,以及表 3):

  • Hit Rate 极低:BM25, TF-IDF, Faiss 的命中率都在0.4 ~ 0.5左右,远低于 TG-RL-RAG 的0.8 ~ 0.9

  • 无增长:它们的曲线是水平的,因为它们不需要训练数据(Training Set),给再多数据它们也学不到新东西 2。

根本原因分析(Report Highlights):

作为研究生汇报,你可以这样总结这部分基线的失败原因:

  1. 缺乏语义理解(The Semantic Gap):

    • 故障描述通常非常灵活。比如“显示屏黑了”和“HMI无显示”,TF-IDF 和 BM25 无法建立联系,但深度学习模型(如 Naive RAG)可以通过训练学会它们是同义词。

  2. 无法处理复杂句法:

    • 故障查询通常包含因果逻辑(“A 导致 B”)。传统方法只看词是否出现,不看词的顺序。Faiss(基于简单向量时)也往往由词向量平均而来,丢失了语序信息。

  3. 零样本的局限性:

    • 这三种方法都是非参数化(Non-parametric)非学习型的。它们无法像本文提出的 RL Agent 那样,通过与环境(Graph)的交互,根据反馈(Reward)来调整自己的检索策略。

总结

  • TF-IDF基石(算词频)。

  • BM25修正(加饱和度与长度惩罚),是传统检索的最强战力。

  • Faiss工具(算距离),在这里代表非深度学习的向量检索。

http://www.cnnetsun.cn/news/137155.html

相关文章:

  • 15、系统管理脚本实用指南
  • 怎么选一款适合大面积清洁的多功能全自动洗地机呢?
  • 使用matlab编写m脚本,编写无迹卡尔曼滤波算法(UKF)估计电池SOC,注释清晰
  • 教培行业新媒体运营困境凸显!这款软件或成转型制胜法宝?
  • Photoshop Neural Filters:把“引擎截图”秒变“电影级美宣”?AI 深度模糊与色彩迁移工作流
  • 基于matlab的多目标优化算法NSGA3,动态输出优化过程,得到最终的多目标优化结果。 数据...
  • 12.18
  • COCO 数据集
  • 国内好用的测试用例管理工具有哪些?
  • 24、COM+ 事务管理与补偿资源管理器详解
  • YOLO深度学习模型的训练参数配置与优化
  • 数字孪生可视化模板怎么用?5大行业Demo拆解,帮你快速复用提效
  • 必藏!程序员转型AI大模型:机遇、路径与成功率拆解
  • 《智构空间:AIOS 与全时域 3D 交互范式》第 0 篇:前言 —— 触摸语义的厚度
  • 如何将照片从 Android 传输到 Android
  • 前端Vue使用js-audio-plugin实现录音功能
  • 测试用例之翻页功能详解
  • 音乐平台歌曲盗版维权全攻略:权利卫士录屏取证+可信时间戳认证实操指南
  • 根据您提供的 package.json 片段,涉及的 @vue/cli-plugin-babel 和 @vue/cli-service 版本为 ~4.2.0。以下是针对该版本的详细解决方案,结合相关依
  • electron-egg打包win7
  • 8种网络故障分析及测试命令大全
  • 新人必看盘点知名CTF练习靶场,从零基础入门到精通,收藏这一篇就够了!
  • Pythonselenium自动化测试实战项目
  • 关于Comtos Linux (朱雀)主体源码的选择
  • 超级Mini小车功能说明
  • STC32G12单片机替换成STC32F12单片机,直接替换的结果
  • SIEMENS 6SL3210-1PE33-0CL0 变频器
  • 软件测试常用的7种方法,最后一个是升职加薪关键!(零基础小白转行IT互联网高效进阶)
  • 【RTOS】EasyLog的移植与使用
  • 在数据库里玩“平行宇宙”:MatrixOne Data Branch 让数据也拥有Git 的分支/合并/对比/回滚(含跨集群同步)