
作者 | 幻士 阿里巴巴大淘宝技术团队
导语:搜索召回作为搜索系统的基础,决定了效果提升的上限。如何在现有的海量召回结果中,继续带来有差异化的增量价值,是我们面临的主要挑战。而多模态预训练与召回的结合,为我们打开了新的视野。
一、前言
多模态预训练是学术界与工业界研究的重点,通过在大规模数据上进行预训练,得到不同模态之间的语义对应关系,在多种下游任务如视觉问答、视觉推理、图文检索上能够提升效果。在集团内部,多模态预训练也有一些研究与应用。在淘宝主搜场景中,用户输入的Query与待召回商品之间存在天然的跨模态检索需求,只是以往对于商品更多地使用标题和统计特征,忽略了图像这样更加直观的信息。但对于某些有视觉元素的Query(如白色连衣裙、碎花连衣裙),相信大家在搜索结果页都会先被图像所吸引。
一方面是图像占据着更显著的位置,另一方面则是图像可能包含着标题所没有的信息,如白色、碎花这样的视觉元素。对于后者,需要区分两种情况:一种是标题中有信息、但由于显示限制无法完全展示,这种情况不影响商品在系统链路里的召回;另一种是标题中没有信息但图像中有,也就是图像相对于文本可以带来增量。后者是我们需要重点关注的对象。
1、技术问题与解决思路
在主搜召回场景中应用多模态技术,有两个主要问题需要解决:
-
多模态图文预训练模型一般融合图像、文本两种模态,主搜由于有Query的存在,在原本商品图像、标题的图文模态基础上,需要考虑额外的文本模态。同时,Query与商品标题之间存在语义Gap,Query相对短且宽泛,而商品标题由于卖家会做SEO,往往长且关键词堆砌。
-
通常预训练任务与下游任务的关系是,预训练采用大规模无标注数据,下游采用少量有标注数据。但对于主搜召回来说,下游向量召回任务的规模巨大,数据在数十亿量级,而受限于有限的GPU资源,预训练只能采用其中相对少量的数据。在这种情况下,预训练是否还能对下游任务带来增益。
我们的解决思路如下:
-
文本-图文预训练:将Query和商品Item分别过Encoder,作为双塔输入到跨模态Encoder。如果从Query和Item双塔来看,它们在后期才进行交互,类似于双流模型,不过具体看Item塔,图像和标题两个模态在早期就进行了交互,这部分是单流模型。所以,我们的模型结构是区别于常见的单流或双流结构的。这种设计的出发点是:更有效地提取Query向量和Item向量,为下游的双塔向量召回模型提供输入,并且能够在预训练阶段引入双塔内积的建模方式。为了建模Query与标题之间存在的语义联系与Gap,我们将Query和Item双塔的Encoder共享,再分别学习语言模型。
-
预训练与召回任务联动:针对下游向量召回任务的样本构造方式与Loss,设计了预训练阶段的任务及建模方式。区别于常见的图文匹配任务,我们采用Query-Item和Query-Image匹配任务,并将Query下点击最多的Item作为正样本,将Batch内的其他样本作为负样本,增加采用Query和Item双塔内积方式建模的多分类任务。这种设计的出发点是:使预训练更靠近向量召回任务,在有限的资源下,尽可能为下游任务提供有效的输入。另外,对向量召回任务来说,如果预训练输入的向量在训练过程中是固定不变的,就无法有效地针对大规模数据做调整,为此,我们还在向量召回任务里建模了预训练向量的更新。
二、预训练模型
1、建模方法
多模态预训练模型需要从图像中提取特征,再与文本特征融合。从图像中提取特征的方式主要有三种:使用CV领域训练好的模型提取图像的RoI特征、Grid特征和Patch特征。从模型结构来看,根据图像特征和文本特征融合方式的不同,主要有两类:单流模型或双流模型。在单流模型中,图像特征与文本特征在早期就拼接在一起输入Encoder,而在双流模型中,图像特征和文本特征分别输入到两个独立的Encoder,然后再输入到跨模态Encoder中进行融合。
2、初步探索
我们提取图像特征的方式是:将图像划分为Pat

本文探讨了如何在淘宝主搜场景中利用多模态预训练技术改进召回效果,通过解决Query与商品标题的语义Gap,设计了特殊的模型结构和预训练任务,以在大规模召回数据中引入图像信息,从而带来有差异化的增量价值。
最低0.47元/天 解锁文章
1132

被折叠的 条评论
为什么被折叠?



