文章介绍了谷歌的一篇论文,《Large Dual Encoders Are Generalizable Retrievers》
文章主要在讲,稠密检索模型在OOD(Out-Of-Distribution,即域外)泛化能力不行,主要还是模型规模和训练数据的问题。
文章在固定稠密向量维度不变的条件下,采用不同尺寸的T5-encoder(base、large、3B、11B)训练稠密检索模型。实验结果表明,“稠密检索模型的瓶颈并不完全在于单个向量的表示能力不足,编码器的能力也会在很大程度上影响模型的泛化能力。”
文章中模型的损失函数,使用了余弦相似度,而不是点积相似度。针对“使用余弦相似度度量训练的模型会偏向于检索出短文档,而使用点积相似度训练的模型会偏向于检索出长文档”,文章验证当模型尺寸变大之后,这一论点是否还成立。结论是当模型尺寸变大之后,模型能够生成更优质的文档编码,长度偏差问题就没那么严重了。
借助kimi,学习了文章中两个相关知识:BM25和稠密检索模型
BM25

稠密检索模型(Dense Retriever)是自然语言处理(NLP)和信息检索领域中的一个术语,它指的是一种基于密集向量表示的文档检索方法。这种模型之所以被称为“稠密”(Dense),是因为它们使用连续的、稠密的向量(通常是实数向量)来表示查询(query)和文档(document),而不是传统的稀疏向量表示。
在传统的信息检索系统中,文档和查询通常是通过稀疏向量表示的,例如使用TF-IDF(词频-逆文档频率)或词袋模型(Bag of Words),其中向量中的每个元素对应于词汇表中的一个单词,并且只有单词出现时元素才非零。
相比之下,稠密检索模型使用深度学习技术,如变换器(Transformers)或BERT(Bidirectional Encoder Representations from Transformers),来生成每个文档和查询的密集向量表示。这些向量能够捕捉到文档和查询之间的语义相似性,因为它们是在连续的向量空间中通过学习大量的文本数据得到的。
稠密向量表示的优势在于:
看到上篇文章讲双塔模型,印象中推荐系统也有使用双塔模型,想起之前的一篇文章,一直存着没看。
看了看,发现推荐系统和RAG,果然有很多相似的地方,核心问题都是Retrieval,模型架构里都有Retrieval和重排
借助kimi,理解如下:
推荐系统和RAG(Retrieval-Augmented Generation)确实在某些方面有相似之处,尤其是在处理信息检索和生成任务时。
推荐系统:
RAG:
推荐系统:
RAG:
尽管有相似之处,但推荐系统和RAG在目标和实现细节上也存在差异:
总的来说,尽管推荐系统和RAG在核心的检索和重排步骤上有相似之处,但它们的应用场景、数据处理方式和最终目标有所不同。