Milvus 在 BIGO 短视频去重业务中的实践:提升查询吞吐量,优化用户体验

BIGO
  • <200 毫秒

    搜索响应时间,高召回率

  • >7 亿

    向量数据索引和管理

  • 显著提升

    查询吞吐量,保证卓越的系统性能

Milvus 在 Likee 短视频去重业务中有着惊艳的表现,极大地帮助了 BIGO 的业务发展。

郭昕阳

BIGO 机器学习平台负责人

BIGO 简介

BIGO Technology (BIGO) 是新加坡发展最快的科技公司,在全球拥有 30 多个办事处和 6 个研发中心。BIGO 推出了众多 AI 技术产品和服务,包括全球直播平台 BIGO LIVE 和短视频社交平台 Likee。BIGO 产品的用户人数多达 4 亿,遍及全球 150 多个国家。

用户痛点:高效去除海量重复视频

Likee 是全球知名的短视频创作平台,能够激发用户创造力,支持用户分享自己创作的短视频。每天都有上千万的用户将各种各样的短视频上传至 Likee 平台,因此 Likee 团队也面临了不小的挑战。为了向用户推荐更优质的视频内容、进一步提升用户体验,如何比较海量视频的相似性并对其去重成了 Likee 团队亟待解决的难题。

为了解决这一问题,Likee 需要寻找一套能够高效检测并去除重复的视频解决方案。视频去重业务十分复杂,因此采用的解决方案需要能够全面了解每个短视频的特点并快速对比比较海量短视频内容。

Likee 团队曾尝试使用 Faiss——一款针对高维空间中稠密向量的开源库,可用于相似性搜索和稠密向量聚类。然而, Faiss 无法满足管理海量向量数据、迅速的查询响应和高查询吞吐量的业务要求。团队不得不寻求其他更高效的相似视频搜索和识别解决方案。

解决方案: 基于 Milvus 的视频相似性搜索系统

Milvus 是一款专为高效向量存储、索引和查询打造的开源向量数据库。Likee 工程团队基于 Milvus 搭建了一套性能出色的视频去重系统,保证了高召回率和低搜索响应时间(少于 200 毫秒)。同时,Milvus 高度可扩展的特点也为 Likee 短视频去重系统赋能,提升了查询吞吐量和系统效率。

Likee:识别重复视频

Likee 的视频去重系统先把用户上传的视频切成 15-20 帧,然后把每一帧转换为特征向量。随后,再到包含 7 亿多数据的底库中进行搜索,寻找 top-k 个向量对应的视频,进行比较精细的视频相似度计算,最终确认并删除重复视频。

下图展示了 Likee 去重系统的架构。Likee 平台上新增的视频会被实时写入 Kafka,由 Kafka consumer 消费后先进入审核流程。接着,使用深度学习模型针对通过审核的内容进行视频特征提取,将非结构化数据(视频)转化为结构化数据(特征向量)。系统将特征向量打包后,发送请求至视频相似度审核程序。Milvus 会先为每一个视频转化而来的特征向量构建索引,然后存入 Ceph。在 Milvus 查询节点加载这些向量数据后,进行相似性搜索。同时,将视频 ID 和对应的特征向量根据业务情况同步存储到关系型数据库 TiDB 或 Pika 中。

Likee 去重系统架构 Likee 去重系统架构

Milvus:相似性搜索

下图展示了相似性搜索流程。

  1. 利用 Milvus 的批量搜索功能,先对每个新增视频的多个特征向量进行相似度搜索,召回每个特征向量的前 100 个相似向量。召回的每个相似向量绑定了其对应的视频 ID。
  2. 对每次相似度搜索召回的所有视频 ID 去重,再从 TiDB 或 Pika 中查询对应的特征向量。
  3. 将查询到的每组特征向量和请求视频的特征向量进行特定的视频相似度计算并打分,将得分最高的视频 ID 作为结果返回。

使用 Milvus 进行相似性搜索 使用 Milvus 进行相似性搜索

案例亮点:查询吞吐量显著提升,搜索相应更快速

Milvus 是一款高性能的开源向量数据库,在 Likee 视频去重系统扮演者重要角色,帮助 BIGO 显著提升产品的用户体验,拓展更多短视频业务。在使用 Milvus 后,Likee 的搜索响应时间缩短至不到 200 毫秒,同时保证了高召回率。Milvus 还支持水平扩展,因此 Likee 系统的向量查询吞吐量也大幅提升,在保证出色性能的前提下提升了系统效率。

除了视频去重业务以外,BIGO 还计划在情感分析、目标检测、个性化视频推荐等更多业务中使用 Milvus。

BIGO 希望今后能与 Milvus 开展更多深入的合作,诸如违规内容审核或封禁、视频个性化推荐服务等,来共同推动双方业务的发展,期待 Milvus 社区发展得越来越好!

郭昕阳

BIGO 机器学习平台负责人

相关资源