写在前面
本篇内容主要介绍拥有全球 4 亿用户的视频直播公司 BIGO 如何利用向量搜索引擎 Milvus 进行海量短视频去重的工作。在 Milvus 向量搜索引擎的加速下,BIGO 旗下的短视频产品 Likee 能够将每次搜索都控制在 200ms 内,并且能够保证较高的召回率。同时,我们采用了横向扩展 Milvus 的方式来提高向量查询的吞吐量,来保证业务查询效率。
业务背景
自 2014 年成立以来,BIGO 基于强大的音视频处理技术、全球音视频实时传输技术、人工智能技术,推出了一系列音视频类社交及内容产品,如 BIGO LIVE、Likee。截至 2020 年第二季度,BIGO 旗下的短视频产品 Likee 移动端月活跃用户达 1.5 亿,系统每天都需要处理用户上传的海量视频。在这个过程中,为了将质量较高的内容推荐给用户,系统需要对海量视频中重复、低质的内容进行淘汰。
去重流程
我们在这里利用了深度学习的方法进行去重工作。
首先把用户上传的视频切成 15-20 帧,然后把每一帧转换为特征向量,再到 7 亿多数据量的底库中进行搜索,把搜索出来的 top k 个向量对应的视频找到,再做比较精细的视频相似度计算。
在进行向量相似度搜索时要处理十亿级的全量数据,同时每天还伴随着大量的新增数据,这对向量搜索系统的性能有非常高的要求和挑战。
在经过全面的分析和对比之后,我们采用了分布式向量搜索引擎 Milvus,来帮助我们完成向量相似度检索的工作。
整体架构
接下来,介绍我们利用 Milvus 进行短视频去重工作的整体业务架构。
如下图所示,Likee 平台上新增的视频会被实时写入 kafka,由 kafka-consumer 消费后先进入审核流程。接着,通过审核的内容会使用深度学习模型进行视频特征提取,将非结构化数据(视频)转化为结构化数据(特征向量)。系统将特征向量打包后将请求发送至视频相似度审核程序。
视频去重业务架构
每一个经过特征提取、转化为多个特征向量的视频,都会先经过 Milvus 构建索引,后存入 Ceph,然后再被 Milvus 查询节点加载,提供搜索能力。与此同时,我们也会将视频 ID 和对应的特征向量根据业务情况同步存储到 TiDB 或 Pika 中。
视频相似度检索
在上面的流程中我们可以看到,该方案的重点在于对海量的特征向量进行相似度检索。
上图中的 similarity-audit(相似度检验)利用了 Milvus 的批量搜索功能,先对每个新增视频的多个特征向量进行相似度搜索,召回每个特征向量的前 100 个相似向量(这里召回的每个相似向量绑定了其对应的视频 ID)。接着,对每次相似度搜索召回的所有视频 ID 去重,再从 TiDB 或 Pika 中查询对应的特征向量。最后,将查询到的每组特征向量和请求视频的特征向量进行特定的视频相似度计算并打分,将得分最高的视频 ID 作为结果返回,到这里就完成了视频的相似度检索。
完整流程如下图所示:
similarity-audit 相似度检验业务流程
总结与展望
以上就是有关在 Likee 业务中使用 Milvus 完成短视频去重任务的内容分享。Milvus 作为一款高性能、高召回率的分布式向量搜索引擎,在 Likee 短视频去重业务中有着惊艳的表现,极大地帮助了 BIGO 的业务发展。
BIGO 希望今后能与 Milvus 开展更多深入的合作,诸如违规内容审核或封禁、视频个性化推荐服务等,来共同推动双方业务的发展,期待 Milvus 社区发展得越来越好!
关于 Likee
凭借高质量和多样化的娱乐性内容,Likee 现已成为全球互联网短视频社交产品中引领世界潮流的先锋与标杆。
- 2020 年年中,Likee 移动端每月活跃用户数达 1.5 亿。
- 2019 年 9 月末,Likee 移动端每月活跃用户数达 1.002 亿,位列 Google Play 全球下载榜单前五,超越 Instagram、SnapChat 等知名应用,下载量仅次于 Facebook。
- 2019 年年中,Likee 移动端每月活跃用户数达 8070 万。
- 2017年,BIGO 创立短视频社区 Likee ,同年8月正式上架 App Store,直面海外市场,同年荣获 Google 应用市场年度最佳娱乐应用。
- 2014年,BIGO 由 David Li 和 Jason Hu 在新加坡创立,是一家专注于人工智能技术公司。
作者介绍
郭昕阳,BIGO 机器学习平台负责人,Senior Staff Engineer
韩宝玉,BIGO 机器学习平台团队,Engineer
编辑介绍
熊烨,Zilliz Community Intern
臧芃,Zilliz Community Intern
Zilliz 以重新定义数据科学为愿景,致力于打造一家全球领先的开源技术创新公司,并通过开源和云原生解决方案为企业解锁非结构化数据的隐藏价值。
Zilliz 构建了 Milvus 向量数据库,以加快下一代数据平台的发展。Milvus 数据库是 LF AI & Data 基金会的毕业项目,能够管理大量非结构化数据集,在新药发现、推荐系统、聊天机器人等方面具有广泛的应用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。