写点什么

智联招聘×Milvus:向量召回技术提升招聘匹配效率

作者:Zilliz
  • 2024-10-23
    上海
  • 本文字数:1845 字

    阅读完需:约 6 分钟

智联招聘×Milvus:向量召回技术提升招聘匹配效率

01.业务背景

在智联招聘平台,求职者和招聘者之间的高效匹配至关重要。招聘者可以发布职位寻找合适的人才,求职者则通过上传简历寻找合适的工作。在这种复杂的场景中,我们的核心目标是为双方提供精准的匹配结果。在搜索推荐场景下,候选人或职位列表会经历召回、粗排、精排和重排等多个阶段,从亿级别的候选集中筛选出最匹配的简历或职位进行展示。在召回阶段我们除了使用传统的规则召回外,还引入了向量召回方式。本次我们主要介绍一种向量召回方式:通过职位召回简历(JD2CV)。为了便于讨论,文中将职位简写为 JD,简历简写为 CV。

02.向量召回实现方式

1. 模型训练样本选择:

正样本来自系统日志中有正向交互的 JD CV 对。负样本由三部分组成:一部分是 batch 内负采样,第二部分来自全库的随机负采样,全库采样能够更好地模拟实际召回场景。第三部分,我们根据业务规则,选取了一些 hard 负样本,以提高模型的训练效果。

2. 模型结构:

我们采用了双塔模型结构,分别处理 JD 和 CV 的文本信息,将其映射为低维向量。通过计算向量间的相似度,并应用对比学习的损失函数进行优化,使得相关的 JD 和 CV 向量距离更近,而非相关的则距离更远。这种方式能有效提高匹配的精度。

3. 模型离线测评:

第一种评估方式是使用模型预测给定的正负样本对,进而计算 AUC 和 JD 维度的 GAUC。然而,这种评估方式局限于有限样本集,难以全面反映召回模型的真实表现。为了获得更接近线上环境的评估结果,我们采用了一种新的评估方式,分为两个步骤:首先,进行实际的召回操作;其次,对召回结果进行详细评估。

为了支持这一流程,我们调研了多种向量数据库,最终选择了 Milvus。主要原因有三点:

  • 易用性:Milvus 提供了简洁的 API 接口,文档丰富,开发者可以快速上手并集成。同时,它支持标量过滤与向量相似性搜索的结合,实现更灵活的混合搜索。

  • 高性能:得益于优化的算法和索引结构,Milvus 能够高效地处理大规模数据的向量检索任务,满足我们的性能需求。

  • 社区支持:Milvus 拥有活跃的社区和丰富的生态系统,提供了多语言支持和工具链资源,帮助开发者快速解决问题。

在评估召回结果时,我们采用了两种主要方法:

  • 体感评估:对不同模型召回结果中各自独有的部分,使用大模型进行体感标注,统计标注结果看哪个模型体感表现更好。

  • 量化指标:通过统计召回率和精准率等关键指标,评估模型在实际召回任务中的表现。

03.Milvus 使用及具体评估过程

1. Milvus 的部署:我们使用 Milvus 官方提供的 docker-compose 方式进行部署,使用的是 2.4.5 版本。评估过程中,采样了百万级别的 CV 数据,单节点部署完全可以满足这一规模需求。同时还部署了管控平台 Attu,便于加载和删除数据集合,修改索引类型,以及进行向量搜索等操作。

为便于数据的导入和召回测试,我们还开发了相应的数据导入和召回接口,使评估流程更加自动化和便捷。

2. 数据准备:在 Milvus 和相关接口部署完成后,我们根据线上 JD 的流量分布情况,按照城市粒度采样了一些 JD 数据,并使用模型生成相应的 JD 向量。接着,我们对采样城市的全量 CV 进行向量生成,并通过写入接口将数据存储在 Milvus 中。为了确保评估的准确性,我们选择了 FLAT 类型索引,保证能够 100%召回相关数据。

3. 召回过程:通过 JD 编号,我们从 JD 集合中查询出相应的 JD 向量,然后根据该向量从 CV 集合中召回最相似的 topK CV。相似度计算采用内积作为度量标准,最终得到一组 JD 与 CV 的匹配对。

4. 召回结果评估:我们采用了两种方式对召回结果进行评估。首先,对不同模型各自召回集中独有的部分进行大模型的体感标注。其次,根据正向行为记录的 JD-CV 对构建正例集,并通过该正例集评估召回率和精准率等指标,最终对模型进行综合评估。



使用 Milvus 过程中遇到的一些问题:

1. 索引类型选择问题:在分析召回结果时,我们发现一些模型预测分数较高的记录并未被成功召回,而一些分数较低的记录却被召回了。经过排查,问题出在索引类型上。我们最初使用的是 IVF_FLAT 索引,该类型能够提高查询速度,但无法保证 100%的召回率。通过查询官网文档,我们将索引类型更改为 FLAT,成功解决了这一问题。

2. 条件查询问题:我们在使用 Python SDK 进行条件查询时,发现传入的 filter 参数无法生效。经过与社区的沟通和排查,最终将 filter 参数改为 expr 参数后,问题得以解决。

04.总结

Milvus 作为一款功能强大且易于部署的向量数据库,极大地帮助我们优化了召回评估流程,显著节省了时间成本,并为模型上线前提供了更加充分的评估依据。在未来,我们计划继续探索更多的应用场景,进一步发掘 Milvus 的潜力,并通过其丰富的功能进一步提升业务的召回效率和准确性。


发布于: 刚刚阅读数: 5
用户头像

Zilliz

关注

Data Infrastructure for AI Made Easy 2021-10-09 加入

还未添加个人简介

评论

发布
暂无评论
智联招聘×Milvus:向量召回技术提升招聘匹配效率_人工智能_Zilliz_InfoQ写作社区