跳至主要內容

推荐场景下文本嵌入模型性能对比

2025年7月5日技术分享机器学习大约 6 分钟

推荐场景下文本嵌入模型性能对比

向量嵌入技术可以将图片、文字等信息转换为高维向量,从而能够在搜素推荐等场景下,通过计算向量之间的距离来计算图片、文本等原始内容之间的相关性。其中本文嵌入用到最多,市面上主要的AI服务商都会为他们的用户提供本文嵌入API,另外也有很多开源文本嵌入模型可供自行部署使用。目前主流的文本嵌入模型的评估标准为MTEBopen in new window,但是MTEBopen in new window并没有评估文本嵌入模型在推荐系统中的能力,而本文将尝试评估文本嵌入模型在推荐场景下的表现。

实验指标

嵌入向量在推荐系统中通常用于相似推荐或者相关推荐,希望嵌入向量之间的距离能够很好地表达推荐物料之前的相似性和相关性。物料之间的相关性和相似度实际上不存在标准答案,在推荐系统中可以使用物料之间用户的重叠程度sijs_{ij}来近似地衡量物料之间的相似度或者相关性。

sij=UiUjUiUj s_{ij} = \frac{|U_i \cap U_j|}{|U_i \cup U_j|}

其中UiU_iUjU_j分别表示物料iijj的用户集合,sijs_{ij}的值越大,表示物料iijj之间的用户重叠度越高。而向量之间的距离可以使用欧式距离计算:

dij=vivj d_{ij} = ||\textbf{v}_i - \textbf{v}_j||

其中vi\textbf{v}_ivj\textbf{v}_j分别表示物料iijj的嵌入向量。为了衡量嵌入向量之间的距离反馈物料相似度或者相关度的能力,我们可以使用Top-K准确率(Recall@KRecall@K),Top-K准确率表示在与物料ii的向量距离最小的KK个物料中,有多少比例的物料也在与物料ii用户重合度最高的KK个物料列表中。Top-K准确率越高,意味着嵌入向量推荐相似或者相关物料的能力越强。

实验使用的数据集为MovieLens 1Mopen in new window数据集,包含100万条用户对电影的评分数据。我们将每个电影的简介作为文本内容,使用文本嵌入模型将其转换为向量。然后计算每个电影上的Top-K准确率,最后对所有电影的Top-K准确率取平均值,作为模型在推荐场景下的性能指标。

文本嵌入模型

开源模型我们选择了Ollama下载量前三的模型,它们分别是:

商业模型我们选择了阿里云和OpneAI各自的最强文本嵌入模型:

测试商业模型他需要花费一定的费用,为了控制成本,我们没有测试来自更多服务商的模型。我们开源了测试脚本open in new window,欢迎大家在自己的环境中运行测试脚本来获取更多模型的性能数据。

实验结果

推荐场景下文本嵌入模型性能对比

根据实验结果可以得出一下结论:

  1. 在相同维度下,商业模型text-embedding-v4open in new windowtext-embedding-3-largeopen in new window的性能普遍优于开源模型,而商业模型之间的差异并不大。
  2. 在开源模型中,mxbai-embed-largeopen in new window的表现最好,可以作为自行部署的首选模型。
  3. 向量维度对模型表现有显著影响,随着向量维度的增加,模型的Top-K准确率普遍提高,但是提高的幅度逐渐减小。需要权衡推荐准确率和计算存储成本,选择合适的向量维度。

提示

除非有严苛的计算存储资源限制,否则建议使用512维以上的向量长度,从而获得较好的推荐准确率。

除了量化对比,我们还可以通过推荐结果来直观地感受模型的表现。以下是使用text-embedding-v4open in new window两种维度嵌入向量为《迷魂记》open in new window推荐的相似电影列表:

电影名称发布年份导演电影类型
《后窗》1954阿尔弗雷德·希区柯克惊悚片/悬疑
《爱德华大夫》1945阿尔弗雷德·希区柯克心理惊悚片
《惊魂记》1960阿尔弗雷德·希区柯克心理惊悚片/恐怖
《西北偏北》1959阿尔弗雷德·希区柯克悬疑惊悚片
《欲海惊魂》1950阿尔弗雷德·希区柯克悬疑片
《电话谋杀案》1954阿尔弗雷德·希区柯克悬疑/犯罪
《哑女惊魂记》1946罗伯特·西奥德马克心理惊悚片/黑色电影
《搭便车的人》1953艾达·卢皮诺黑色电影
《辣手摧花》1943阿尔弗雷德·希区柯克悬疑/惊悚
《崩溃边缘的女人》1988佩德罗·阿莫多瓦剧情/喜剧/社会讽刺

对于刚看完《迷魂记》的用户来说,2048维的向量推荐的电影和《迷魂记》有着更高的相关性和相似度。

总结

本文对文本嵌入模型在推荐场景下的性能进行了评估,结果表明商业模型在推荐准确率上普遍优于开源模型,而开源模型中mxbai-embed-largeopen in new window表现较好。向量维度对模型性能有显著影响,建议使用512维以上的向量长度以获得较好的推荐效果。