文档截图嵌入统一多模态检索方法原理 原创
本文单独来看看检索部分的多模态嵌入部分。
(a)传统方法;(b)本文方法
局限性: 现有的检索范式缺乏跨模态的统一编码过程,导致两个问题:
- 预处理工作繁琐:需要专门的处理来应对各种文档类型和内容模态,而这些处理往往不完美。例如,HTML文件由于其多样的结构,复杂性较高,使得单一工具难以准确解析所有信息。同样,ppt和PDF通常需要OCR模型来提取文本并分别处理其他内容类型,如表格和图表。处理这些长尾问题较为复杂。
- 破坏文档原始布局信息:解析过程可能导致文档布局信息丢失。文档的视觉呈现可以传达通过内容提取难以捕捉的关键信息。例如,除了文本和图像的内容外,这些元素在文档中的大小和位置可能编码了一些信息。
解决手段:提出了文档截图嵌入(Document Screenshot Embedding, DSE),将不同格式和模态的文档统一为一种形式进行直接文档编码和索引:截图。与使用各种工具从不同格式的文档中提取文本和图像不同,截图易于获取并且文档的所有信息在视觉上都得到了保留。如上图(b)所示,DSE将给定文档的截图进行embedding。
方法
文档截图embedding
采用双编码器架构进行密集检索,其中文档截图和用户文本查询分别通过视觉编码器和文本编码器编码成密集向量。
多模态大模型作为文档截图编码器
视觉编码器
一个文档截图D,首先由视觉编码器Ev处理,生成隐藏层表示。序列的长度由视觉编码器的图像tokenizer决定。以 clip-vit-large-patch14-336l 为例,任何给定的截图首先转换为 336 X 336 像素的图像,然后分成 24 X 24 个块(即总共 576 个块),每个块由 14 X 14 像素组成。每个块展平并通过可训练的线性投影映射到块嵌入。块嵌入由视觉编码器编码成隐藏层表示。但是,如果截图包含大量文本(例如维基百科网页),576 个块的潜在嵌入可能无法捕捉截图中的细粒度文本信息。
视觉-语言模型
对比学习
query和文档之间的相似性通过embedding之间的余弦相似度计算:
在训练期间,embedding模型使用InfoNCE 损失进行优化:
实验
监督检索效果
零样本检索效果
补丁序列长度的影响
不同数量的作物输入图像下,DSE的有效性和效率之间的权衡。推理速度是在单个H100 GPU上通过BF16精度和FlashAttention实现的
参考文献
Unifying Multimodal Retrieval via Document Screenshot Embedding,https://arxiv.org/pdf/2406.11251
本文转载自公众号大模型自然语言处理 作者:余俊晖