🚀 免费试用 Zilliz Cloud,完全托管的 Milvus,体验 10 倍的性能提升!立即试用>

milvus-logo
LFAI
  • Home
  • Blog
  • 短视频平台 Likee 如何利用 Milvus 删除重复视频

短视频平台 Likee 如何利用 Milvus 删除重复视频

  • Scenarios
June 23, 2022
Xinyang Guo, Baoyu Han

Cover image 封面图片

本文由 BIGO 工程师郭昕阳和韩宝玉撰写,Rosie Zhang 翻译。

BIGO Technology(BIGO)是新加坡发展最快的科技公司之一。在人工智能技术的支持下,BIGO 基于视频的产品和服务在全球大受欢迎,在 150 多个国家拥有超过 4 亿用户。这些产品和服务包括Bigo Live(直播)和Likee(短视频)。

Likee 是一个全球性的短视频创作平台,用户可以在这里分享他们的精彩瞬间,表达自我,并与世界建立联系。为了提高用户体验并向用户推荐更高质量的内容,Likee 需要从用户每天产生的海量视频中剔除重复视频,而这并不是一项简单的任务。

本博客介绍了 BIGO 如何使用开源向量数据库Milvus 来有效去除重复视频。

跳转到

Milvus 是一个开源向量数据库,具有超快速向量搜索功能。在 Milvus 的支持下,Likee 能够在 200 毫秒内完成搜索,同时确保高召回率。同时,通过横向扩展 Milvus,Likee 成功提高了向量查询的吞吐量,进一步提高了效率。

Likee 如何识别重复视频?每次将查询视频输入 Likee 系统时,都会将其剪切成 15-20 帧,并将每一帧转换成特征向量。然后,Likee 会在包含 7 亿个向量的数据库中进行搜索,找出最相似的前 K 个向量。前 K 个向量中的每一个都对应数据库中的一段视频。Likee 会进一步进行细化搜索,以获得最终结果并确定要删除的视频。

让我们仔细看看 Likee 的视频去重系统是如何使用 Milvus 工作的。如下图所示,上传到 Likee 的新视频将实时写入数据存储系统 Kafka,并被 Kafka 消费者消费。这些视频的特征向量通过深度学习模型提取,非结构化数据(视频)被转换成特征向量。这些特征向量将由系统打包,发送给相似性审核员。

Architechure of Likee's video de-duplication system Likee 视频重复数据删除系统架构图

提取的特征向量将被 Milvus 索引并存储在 Ceph 中,然后由 Milvus 查询节点加载,以便进一步搜索。这些特征向量对应的视频 ID 也将根据实际需要同时存储在 TiDB 或 Pika 中。

在搜索相似向量时,现有的数十亿数据,加上每天产生的大量新数据,给向量搜索引擎的功能带来了极大的挑战。经过全面分析,Likee 最终选择了高性能、高召回率的分布式向量搜索引擎 Milvus 来进行向量相似性搜索。

如下图所示,相似性搜索的流程如下:

  1. 首先,Milvus 对从新视频中提取的多个特征向量进行批量搜索,为每个特征向量召回前 100 个相似向量。每个相似向量都与其对应的视频 ID 绑定。

  2. 其次,通过比较视频 ID,Milvus 会删除重复视频,并从 TiDB 或 Pika 中检索剩余视频的特征向量。

  3. 最后,Milvus 计算检索到的每组特征向量与查询视频的特征向量之间的相似度并打分。得分最高的视频 ID 将作为结果返回。至此,视频相似性搜索结束。

Procedure of a similarity search 相似性搜索的程序

作为高性能的向量搜索引擎,Milvus 在 Likee 的视频去重系统中发挥了非凡的作用,极大地推动了 BIGO 短视频业务的发展。在视频业务方面,Milvus 还可以应用于许多其他场景,如非法内容拦截或个性化视频推荐等。BIGO 和 Milvus 都期待未来在更多领域开展合作。

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    扩展阅读