一文深度解读多模态大模型视频检索技术的实现与使用

当视频检索叠上大模型Buff。

万乐乐|技术作者

视频检索,俗称“找片儿”,即通过输入一段文本,找出最符合该文本描述的视频。

随着视频社会化趋势以及各类视频平台的快速兴起与发展,「视频检索」越来越成为用户和视频平台实现高效查找视频、定位目标内容的新需求。

对于个人用户而言,面对海量的在线视频资源,快速准确地通过关键词或描述找到感兴趣的视频十分重要。同时,在个人存储设备如手机或网络云盘中,用户也存在检索自己拍摄录制的视频资料的需求。

而对于视频剪辑师和制作团队来说,在庞大的媒资库中搜索所需的视频片段或素材是一项日常基础工作。精准高效的视频检索技术可以满足其在短时间内锁定匹配的素材,有效提升创作效率。

某新媒体编辑网站媒资搜索截图

此外,对于视频平台和监管部门来说,如何在数以亿计的视频库中定位到包含劣迹艺人的视频并下线,也是巨大的挑战。

「视频检索」技术的发展与应用不仅是解决信息过载、提高数据处理效率的有效途径,更是在满足个人用户、专业创作者乃至整个视频行业发展的迫切需要中扮演着至关重要的角色。

本文将回顾视频检索技术的发展历程,并揭秘隐藏在新一代自然语言视频检索技术背后的大模型。

01 视频检索现状

视频检索是怎么实现的?我们以优酷搜片为例,优酷的视频检索技术基于:

• 主要搜索内容为标题与描述;

• 通过多模态内容识别人物、ASR、OCR,转化为文本搜索;

• 具有一定Query理解能力与实体知识匹配(转化为搜索关键词);

• 具有一定的通过语义理解的Query意图分析(识别诸如How To类问题)。

图片来源:阿里文娱技术团队

上述技术方案的能够满足使用者基本的视频检索需求,但是也存在缺陷

• 大量视觉信息无法参与检索召回:基于现有多模态算法的搜索,只能识别处于标签体系内的人、物、ASR、OCR等内容,大量视觉信息(比如在蓝天翱翔的飞鸟),无法文本化参与检索。

• 强依赖知识图谱与语义分析:知识图谱的维护与更新、意图理解的能力,均需要不断地投入与更新,使用负担较大。

• 基于关键词的搜索丢失语义联系:以“马老师骑自行车”为例,基于关键词的搜索只能合并搜索“马老师”和“自行车”两个关键词,丢失“骑”这个概念,导致召回偏差。

与此同时,随着时代发展,大家找片子的手法也越来越刁钻。使用者希望不再满足于某个关键词,而是希望使用类似下面的自然语言,去匹配视频本身的内容,而不仅仅是人、物、ASR、OCR可文本化的内容,比如:足球运动员受伤、飞机穿越天门山、春风化雨育桃李......

如果要实现这样智能的搜索效果,应该怎么做呢?我们先来回顾视频检索技术的发展历程。

02 视频检索技术发展历程

第一代:基于文本的传统视频检索

在网络还不发达的时代,计算机对于音视频的处理能力及其有限,媒体数据仅仅被当作是文本数据的扩展。为了能够搜索媒体数据,网站编辑一般会对媒体数据做一次人工编目:取好标题,写好描述,甚至会手动添加若干关键词。

所以,传统的视频检索,本质上是退化为文本检索,通过利用关系型数据库(如mysql)或文本倒排数据库(ElasticSearch)的能力,对文本分词,进行检索排序。

第二代:基于AI标签的跨模态视频检索

随着互联网音视频数据量的日益增长,媒资人工编目已经到了不可持续的地步,必然要求更高生产力技术的引入。

到21世纪10年代,基于CNN架构神经网络的日趋成熟,AI已能简单理解和认识视频中的客观实体,并能通过分类模型给视频分类,此时智能标签技术便应运而生。以阿里云视频云的智能标签技术为例,它能够给视频自动打出以下标签:

• 客观实体:名人/政治人物/敏感人物、地标、Logo

• 场景与动作事件

• 时间、地域、人物等关键词

• 视频类目信息

第二代视频检索技术是在第一代技术的基础上,对视觉、听觉的模态进行了自动分析,将其转化为文本数据,其总体架构仍然未变,仍是基于文本的检索。

第三代:基于大模型的自然语言视频检索

上述搜索依赖于关键字或标签进行内容索引和检索,但这类方法存在明显的限制,尤其是对于非文本内容,如:图片、视频,用有限的标签来描述它们的全面信息是非常困难的。这些标签可能既无法覆盖所有相关的概念,也无法表达内容的细致差异和深层含义。

随着AIGC和所谓的“通用人工智能(AGI)”崛起,尤以大语言模型(LLM)为代表的大模型全面应用为契机,第三代视频检索技术开始成熟。LLM内部包含着人类海量知识的表征,将LLM延展到音视频模态,我们即可实现对媒体数据的表征。

多模态表征大模型能够将文本、图片、音频、视频等内容转换成高维空间中的向量表示,也称为嵌入(embeddings)。这些嵌入可以捕捉到内容的语义信息,并将其映射到一个连续的向量空间内,使得语义上相似的内容在这个向量空间中彼此接近。

大模型检索技术支持自然语言搜索,用户可以用自己的话描述他们想要找的内容,而不是依赖于预先定义好的关键词或标签。通过对自然语言描述的理解,大模型可以将这些描述转换为相应的向量表示,并在高维空间中寻找最匹配的内容。

第三代检索技术的优势在于它的灵活性和表现力。用户不必再局限于有限的关键字,而可以用自己的语言进行更精确和细腻的描述。同时,由于大模型能够理解内容的深层意义,搜索结果通常更加相关和准确,增强了用户体验,并为获取和发现信息提供了更加强大的工具。

例如,一个用户想要找到一张描绘“一个穿着古代盔甲的战士在日落时分静立在山巅”的图片和视频。在传统的基于标签的搜索系统中,用户可能需要尝试各种组合的关键词,比如“战士”、“盔甲”、“日落”、“山巅”等。而在大模型的跨模态检索系统中,用户可以直接输入完整的描述,检索系统会理解其语义并返回匹配的图片和视频。

03 自然语言视频检索上线

阿里云视频云基于达摩院的多模态表征大模型,在点播和智能媒体服务中上线了自然语言视频检索。并结合已有的AI标签检索、人脸检索、图像相似度检索,形成了完整的多模检索解决方案

自然语言视频检索演示:https://v.youku.com/v_show/id_XNjM2MzE5NTg5Ng==.html

我们当前实现的自然语言视频检索技术,支持性能参数:

• 最大支持10万小时规模的视频中召回相关片段

• 在10QPS搜索速度下RT<1秒

• 召回的片段准确率达到80%以上

当然,在实现自然语言视频检索的过程中,我们也遇到了一系列的难点和挑战。

下文将讲述我们如何克服这些难点与挑战,并介绍实现的技术原理与方案,以及未来视频检索进化的方向。

04 多模态表征大模型算法

算法原理

CLIP 是OpenAI在2021年提出的一个视觉分类模型,在没有微调的情况下,预训练模型能够在下游任务中达到十分出色的迁移效果。为了摆脱监督学习对标注数据集的强依赖,CLIP采用了自监督对比学习方案,从互联网收集的4亿对图文数据对中学习图像和文本的对应关系,进而获得了视觉-语言的对齐能力。

CLIP预训练模型包含两个主要模块:Text Encoder 和 Image Encoder,其中Text Encoder用来提取文本的特征,采用63M参数的text transformer模型,而Image Encoder用来提取图像的特征,采用基于CNN架构的ResNet模型或者基于tansformer架构的ViT模型。

基于文本搜索图像是CLIP的一个最直接的应用,先将待检索图像送入Image Encoder生成图像特征并存储,再将检索文本送入Text Encoder生成文本特征,使用文本特征与存储的图像特征逐一进行比对,其中余弦相似度最高的就是检索得到的图像。

CLIP虽然是基于文本-图像对训练的,它也可以很自然的推广到文本-视频检索任务中:对视频抽帧获得关键帧图像,再将关键帧图像送入Image Encoder提取图像特征即可。

算法选型

尽管CLIP具有优异的zero-shot迁移能力,但它是基于英文数据集训练的,要将其应用到中文搜索中需要非常麻烦的翻译工作。为了避免增加翻译模块而引入额外的计算量,我们找到了达摩院发布的两个开源中文检索模型:TEAM 和 ChineseCLIP。

TEAM是达摩院在2022年发布的一项工作,作者在CLIP的双塔结构上新增了一个名为Token Embeddings AlignMent(TEAM)的模块,该模块用于对token级别的图像特征与文本特征做显式对齐,并为输入的图文对生成匹配得分。

所述框架中Image Encoder采用vit-large-patch14结构,Text Encoder采用bert-base结构。作者还构建了一个10亿级规模的中文视觉-语言与训练数据集(通过夸克收集),通过在这个数据集上对所提出框架进行预训练,在中文跨模态检索基准测试(Flickr8K-CN, Flickr30K-CN 和 COCO-CN )中达到了先进的性能。

ChineseCLIP是达摩院在2022年发布的另一项工作,主要是基于2亿规模的中文数据集(原生中文数据+汉化中文数据)完成了对CLIP的汉化工作,而模型结构没有做大的改动。

为了实现跨模态基础模型对中文数据的高效迁移,作者开发了一种两阶段预训练方法,其核心思想是利用LiT(Locked-image Tuning)使文本编码器能够从CLIP的基础视觉模型中读出高质量的表示,然后将整个模型转移到新的预训练数据域。

首先使用已有预训练模型对图文双塔做参数初始化,其中Image Encoder使用CLIP的参数,Text Encoder使用中文RoBERTa的参数。第一阶段,冻结Image Encoder参数,只对Text Encoder进行预训练参数更新;第二阶段,通过对比学习同时微调Image Encoder和Text Encoder。通过两阶段训练,在中文跨模态检索测试(MUGE, Flickr30K-CN, 和 COCO-CN)中达到了最先进的性能。

算法评测

基于阿里云视频云AI编辑部长期积累的数据,最终采用了一些短视频作为测试视频集。该视频集以几分钟到10几分钟的短视频为主,包含新闻、宣传片、访谈、动画等各种类型的视频,这也十分符合视频云客户定位。

将测试视频集入库之后,我们设计了一些自然语言句子作为搜索的query,会保证query一定有对应的视频。考虑到视频集规模较小,我们最终只评估召回TOP1的准确率。

经过实际测试,TEAM和ChineseCLIP都能够达到TOP1返回80%的准确率,二者都可作为大模型特征提取器嵌入系统框架中。

05 搜索工程技术方案

在系统架构设计上,我们的搜索服务架构采用Core-Module设计体系,把最核心不易变化的搜索流程设计为Core模块,把各种不同的搜索业务,分开做成不同的Module。搜索Core模块内部有个Module管理器,管理所有Module(Module设计上允许自注册)。

每个Module包含3个接口信息分为特征提取、查询改写、聚合打分。

上述传统搜索、跨模态检索、大模型搜索分别对应3种Module,另外还支持新增人脸搜索、DNA搜索Module,后续其他搜索Module可以支持扩展。

入库流程上,媒资入库时支持多维度的内容理解:

• 基础信息base-module:传统搜索引擎

• 智能标签aiLabel-module:依托达摩院自研智能标签算法,支持物体、场景、地标、事件、LOGO、字幕OCR、语音ASR、词、类目、主题、人物角色、自定义标签识别

• 人脸特征face-module:人脸识别

• DNA特征dna-module:同源检测特征提取

• 大模型特征mm-module:多模态大模型特征提取,进行内容理解

把媒资按照不同维度进行内容理解,传统标量数据存ES构建倒排索引,向量数据存在自研分布式向量数据库。

搜索流程中,跨模态大模型搜索根据用户query文本,再经过大模型提取文本特征,搜索向量底库得到目标内容,针对视频内容会先聚合片段方便后续展示命中视频媒资内部的细节信息。用户也可以进行传统ES文本搜索得到目标内容,用户可以结合两种搜索方式使用,多路召回能力目前还于内测中。

当前视频抽帧频率是1秒1帧,大模型搜索命中可以得到秒级别的片段信息,满足用户精准定位目标内容需求;依托了我们自研的分布式向量数据库,支持海量数据(10亿级别)特征数据存储,搜索时延在1s内。

目前针对自然语言描述搜索TOP1准确率达80%,针对复杂语义的理解搜索还存在困难,后续结合LLM做改进优化。

人脸检索支持以图搜,多模检索支持以文搜,大模型检索支持以文搜、以图搜。

扩展性上,大模型搜索支持多租户,各租户之间数据相互隔离,既支持低成本共享实例,也支持高性能独享实例;用户管理媒资数据时支持建立多个搜索库,每个搜索库可分别设置搜索索引,搜索索引底层算子支持配置选择;用户根据搜索库增删改查媒资数据,满足客户不用使用场景,搜索架构具有高扩展性、可靠性、稳定性。

06 总结和展望

本文介绍了智能媒体服务的跨模态大模型检索技术实现和使用,我们把媒资进行多维度分析,使用传统的基于ES的标量检索和基于向量的特征检索有机结合,满足用户对长视频的内容理解和跨模态精准检索的需求。

但是,视频检索技术还远远没有进化到终点,在下面几个方面仍待优化与突破。

一是算法的提升。

准召率优化:当前达摩院表征大模型TEAM和ChineseClip,召回准确率达80%;达摩院在研新多模态信息表征合一模型MBA召回准确率可达93%,后续待接入。

新的模态融合:当前接入的表征大模型,仅支持文本与图像的对齐,音频模态是缺失的。想象一下,如果我搜“空山新雨后”,找到了一幅搭配雨声的山水风景视频,是多么酷的体验。

多表征融合:当前算法仅基于句子级别的文本,以及帧级别的图像进行特征提取,其实是丢失了视觉中的人物、物体等客观实体细节的。理想中的表征大模型,应该是多表征融合的。例如我搜“梅西捧着金球奖”,出现的应该是梅西拿着金球奖,而不是C罗捧着金靴奖。这意味着表征大模型需要有人物识别和文字识别的能力,而不仅仅依赖训练中的文本-图像对。

二是成本与性能的平衡。

表征特征压缩:当前是768维float32维向量,已经实现了float32压缩为uint8搜索效果基本保持一致,正在探索压缩为01二值向量,实现低成本存储与搜索。

基于片段的表征:当前视频每秒抽取一帧进行特征计算存储,已经研究出视频片段合并,提前进行特征聚合减少抽帧数量,降低存储同时提升搜索效率。

三是在工程与体验上。

多路召回:针对AI标签搜索、人脸检索、大模型检索,支持用户进行同时搜索,搜索结果合并后重新打分排序。

检索增强LLM:支持对用户复杂搜索语句的理解,搜索时针对用户query语句进行query改写实现QP能力,识别filter、groupBy等字段进行搜索语句SQL式转换,搜索结果结合原始query通过大模型再次分析过滤排序等;自然语言搜索增强形式,结合大模型实现问答式搜索,支持企业快速构建媒资知识库。

目前,自然语言视频检索已在阿里云智能媒体服务(IMS)上线,欢迎大家咨询体验。

媒资搜索产品文档:https://help.aliyun.com/document_detail/2582336.html

欢迎加入官方答疑「钉钉群」咨询交流:30415005038

参考文献及大模型:

[1] 《视频搜索太难了!阿里文娱多模态搜索算法实践》:https://mp.weixin.qq.com/s/n_Rw8oa0Py7j_hPIL1kG1Q

[2] 《深度 | 上亿用户每天看100分钟!基于多模态Embedding及检索的短视频内容理解》:https://mp.weixin.qq.com/s/M_E89uEPkWrMRBan1kF8AQ

[3] 《优酷推出“AI搜片” | 模糊搜索精准匹配,解决找片难》:https://mp.weixin.qq.com/s/Wr09Sfn3XxJ-CqvJmeC-Uw

[4] ChineseClip模型:https://modelscope.cn/models/iic/multi-modal_clip-vit-base-patch16_zh/summary

[5] TEAM图文检索模型:https://modelscope.cn/models/iic/multi-modal_team-vit-large-patch14_multi-modal-similarity/summary

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/647325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 自定义Filter 提前返回 CORS 错误 处理前后端分离跨域配置无效问题解析

前言 浏览器有跨域限制&#xff0c;非同源策略 (协议、主机名或端口不同) 被视为跨域请求&#xff0c;解决跨域有跨域资源共享(CORS)、反向代理和 JSONP的方式。本篇通过 SpringBoot 的资源共享配置 (CORS) 来解决前后端分离项目的跨域&#xff0c;以及从原理上去解决跨域配置…

负载均衡流程

1、负载均衡流程图 2、触发负载均衡函数trigger_load_balance void trigger_load_balance(struct rq *rq) { /* Dont need to rebalance while attached to NULL domain */ if (unlikely(on_null_domain(rq)))//当前调度队列中的调度域是空的则返回 return; i…

【嵌入式学习】C++QT-Day1-C++基础

思维导图&&笔记 见我的博客&#xff1a;https://lingjun.life/wiki/EmbeddedNote/19Cpp 作业&#xff1a; 提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数 要求使用C风格字符串完成 #include <iostream&…

[MRCTF2020]Ez_bypass1

代码审计&#xff0c;要求gg和id的MD5值相等而gg和id的值不等或类型不等 相同MD5值的不同字符串_md5相同的不同字符串-CSDN博客 不过这道题好像只能用数组 下一步是passwd不能是纯数字&#xff0c;但是下一个判断又要passwd等于1234567 这里通过passwd1234567a实现绕过 原…

3D点云数据的标定,从搭建环境到点云标定方法及过程,只要有一台Windows笔记本,让你学会点云标定

ptscloudpre: 点云标定准备&#xff1a; 说明&#xff1a; 如下介绍适用windows系统的电脑。apple笔记本同理&#xff0c;但是需要安装MAC版本的anaconda。网址&#xff1a;Free Download | Anaconda可下载对应MAC版本的Anaconda的安装包建议下载2022年或2021年的安装包安装。…

qml中访问控件内部的子项

如何访问Repeater类型内部的子项、Row等布局类型内部的子项以及ListView内部的子项等。。。 1、测试代码 import QtQuick 2.0 import QtQuick.Controls 2.12 import QtQuick.Window 2.12 import QtQuick.Layouts 1.3 import QtQml 2.12Window {id: windowobjectName: "m…

基于Python Django的大数据招聘数据分析系统,包括数据大屏和后台管理

基于Python Django的大数据招聘数据分析系统是一个综合利用大数据技术和数据可视化技术的招聘行业解决方案。该系统旨在帮助企业和招聘机构更好地理解和分析招聘市场的趋势和变化&#xff0c;从而提高招聘效率和质量。 首先&#xff0c;该系统提供了一个强大的后台管理功能&am…

Docker容器引擎(3)

目录 一.Docker 镜像的创建 1&#xff0e;基于现有镜像创建 2&#xff0e;基于本地模板创建 3.基于Dockerfile创建&#xff1a; Dockerfile 操作常用的指令&#xff1a; ADD 和 COPY 的区别&#xff1f; CMD 和 ENTRYPOINT 的区别&#xff1f; 容器启动命令的优先级 如…

前端vue集成echarts图形报表样例

文章目录 &#x1f412;个人主页&#x1f3c5;Vue项目常用组件模板仓库&#x1f4d6;前言&#xff1a;&#x1f415;1.在项目终端下载echarts依赖包&#x1f3e8;2.在main.js中导入echarts资源包并使用&#x1f380;3.在.vue文件中直接使用echarts&#xff0c;下面是一个样例&a…

[设计模式Java实现附plantuml源码~创建型] 产品族的创建——抽象工厂模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

C语言-算法-线性dp

[USACO1.5] [IOI1994]数字三角形 Number Triangles 题目描述 观察下面的数字金字塔。 写一个程序来查找从最高点到底部任意处结束的路径&#xff0c;使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。 在上面的样例中&#xff0c;从 7 → 3 → 8 →…

yolov8上使用gpu教程

yolov8上使用gpu教程 安装Cuda和Cudnnyolov8上使用gpu 安装Cuda和Cudnn 1.查看支持的cuda版本&#xff0c;并去官网下载。 nvidia-smi2.网址&#xff1a;https://developer.nvidia.com/cuda-toolkit-archive 3.安装细节 安装的前提基础是&#xff0c;有vs的C环境。我电脑有…

开始学习Vue2(组件的生命周期和数据共享)

一、组件的生命周期 1. 生命周期 & 生命周期函数 生命周期&#xff08;Life Cycle&#xff09;是指一个组件从创建 -> 运行 -> 销毁的整个阶段&#xff0c;强调的是一个时间段。 生命周期函数&#xff1a;是由 vue 框架提供的内置函数&#xff0c;会伴随着 组件…

必知的量化交易基础

量化交易核心概念 量化思想 量化交易 量化交易是指以先进的数学模型代替人为的主观判断&#xff0c;利用计算机技术从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略&#xff0c;极大地减少了投资者情绪波动的影响&#xff0c;避免在市场极度狂热或悲观的…

对Git更深入了解与学习

对Git更深入了解与学习 0. 前言0.1 工作区与暂存区 1. git remote update origin2. git push origin --delete 分支名 删除远端分支3. git remote4. git fetch5. git status5.1 git status 直观理解5.2 暂存与暂存取消 &#xff08;git restore&#xff09;5.3 push之后 6. git…

SpringBootAdmin邮件通知

在上一篇中我们学习到了 Admin Service Clustering 分布式缓存配置 &#xff0c;这一篇我们来学习&#xff0c;客户端离线&#xff0c;出现故障的时候&#xff0c;我们这么能及时知道呢&#xff0c;发现邮件通知也许是最简单的方式了&#xff01; 邮件通知 邮件通知将作为使用…

Linux文本编辑器-vi/vim

一.vi/vim编辑器介绍 vi\vim是visual interface的简称, 是Linux中最经典的文本编辑器 同图形化界面中的 文本编辑器一样&#xff0c;vi是命令行下对文本文件进行编辑的绝佳选择。 vim 是 vi 的加强版本&#xff0c;兼容 vi 的所有指令&#xff0c;不仅能编辑文本&#xff0c;而…

哈希的基本概念(开散列和闭散列)(附代码)

哈希 哈希概念哈希冲突哈希函数常见的哈希函数 哈希冲突的解决闭散列开散列 哈希概念 传统的查找函数&#xff0c;搜索的效率取决于比较的次数。而hash算法&#xff1a;在理想情况下&#xff0c;可以不经过任何比较&#xff0c;一次就能得到要搜索的结果。 存储结构&#xff1…

面向社交网络语言隐写分析

论文&#xff1a;Linguistic Steganalysis Toward Social Network 发表在&#xff1a;IEEE Transactions on Information Forensics & Security是网络与信息安全领域的国际两大顶级期刊之一&#xff0c;中国计算机学会&#xff08;CCF&#xff09;推荐的A类期刊&#xff0c…

​用技术的视角,去看一台家用 MPV 该有的水准

「MPV」一个在 2023 年之前都属于「小众」车型的品类。 但从 2023 年初开始&#xff0c;MPV 却变成了新能源&#xff0c;特别是高端新能源品牌必争的细分产品。 从岚图推梦想家开始&#xff0c;到腾势 D9&#xff0c;再到极氪 009&#xff0c;最后到魏牌高山&#xff0c;标志…