ACM SIGKDD(ACM SIGKDD Conference on Knowledge Discovery and Data Mining)是世界数据挖掘领域的顶级国际会议。KDD Cup比赛由ACM SIGKDD举办,从1997年开始每一年举办一次,也是数据挖掘领域最有影响力的赛事之一。该比赛同时面向企业界和学术界,云集了世界数据挖掘界的顶尖专家、学者、工程师、学生等参加,经过竞赛,为数据挖掘从业者们提供了一个学术交流和研究成果展现的理想场所。今年,KDD Cup共设置四个赛道共五道赛题,涉及数据误差问题(Debiasing)、多模态召回(Multimodalities Recall)、自动化图学习(AutoGraph)、对抗学习问题和强化学习问题。html
美团搜索广告算法团队最终在Debiasing赛道中得到冠军(1/1895),在AutoGraph赛道中也得到了冠军(1/149)。在Multimodalities Recall赛道中,亚军被美团搜索与NLP团队摘得(2/1433),美团搜索广告算法团队得到了第三名(3/1433)。git
跟其它电商公司同样,美团业务场景中除了文本,还存在图片、动图、视频等多种模态信息。同时,美团搜索是典型的多模态搜索引擎,召回和排序列表中存在POI、图片、文本、视频等多种模态结果,如何保证Query和多模态搜索结果的相关性面临着很大的挑战。鉴于多模态召回赛题(Multimodalities Recall)和美团搜索业务的挑战比较相似,本着磨炼算法基本功和沉淀相关技术能力的目的,美团搜索与NLP组建团队参与了该项赛事,最终提出的“基于ImageBERT和LXMERT融合的多模态召回解决方案”最终得到了第二名(2/1433)(KDD Cup2020 Recall榜单)。本文将介绍多模态召回赛题的技术方案,以及多模态技术在美团搜索场景中的落地应用。github
相关代码已经在GitHub上开源:https://github.com/zuokai/KDDCUP_2020_MultimodalitiesRecall_2nd_Place。算法
2019年,全球零售电子商务销售额达3.53万亿美圆,预计到2022年,电子零售收入将增加至6.54万亿美圆。如此快速增加的业务规模代表了电子商务行业的广阔发展前景,但与此同时,这也意味着日益复杂的市场和用户需求。随着电子商务行业规模的不断增加,与之相关的各个模态数据也在不断增多,包括各式各样的带货直播视频、以图片或视频形式展现的生活故事等等。新的业务和数据都为电子商务平台的发展带来了新的挑战。微信
目前,绝大多数的电子商务和零售公司都采用了各类数据分析和挖掘算法来加强其搜索和推荐系统的性能。在这一过程当中,多模态的语义理解是极为重要的。高质量的语义理解模型可以帮助平台更好的理解消费者的需求,返回与用户请求更为相关的商品,可以显著的提升平台的服务质量和用户体验。网络
在此背景下,今年的KDD Cup举办了多媒体召回任务(Modern E-Commerce Platform: Multimodalities Recall),任务要求参赛者根据用户的查询Query,对候选集合中的全部商品图片进行相关性排序,并找出最相关的5个商品图片。举例说明以下:架构
如图2所示,用户输入的Query为:ide
leopard-print women's shoes
根据其语义信息,左侧图片与查询Query是相关的,而右侧的图片与查询Query是不相关的。函数
从示例能够看出,该任务是典型的多模态召回任务,能够转化为Text-Image Matching问题,经过训练多模态召回模型,对Query-Image样本对进行相关性打分,而后对相关性分数进行排序,肯定最后的召回列表。性能
本次比赛的数据来自淘宝平台真实场景下用户Query以及商品数据,包含三部分:训练集(Train)、验证集(Val)和测试集(Test)。根据比赛阶段的不一样,测试集又分为testA和testB两个部分。数据集的规模、包含的字段以及数据样例如表1所示。真实样本数据不包含可视化图片,示例图是为了阅读和理解的便利。
在数据方面,须要注意的点有:
本次比赛采用召回Top 5结果的归一化折损累计增益(Normalized Discounted Cumulative Gain,NDCG@5)来做为相关结果排序的评价指标。
本次比赛须要解决的问题能够转化为Text-Image Matching任务,即对每个Query-Image 样本对进行类似性打分,进而对每一个Query的候选图片进行相关度排序,获得最终结果。多模态匹配问题一般有两种解决思路:
通常而言,同等条件下,因为图文特征组合后能够为模型隐层提供更多的交叉特征信息,于是左侧的模型效果要优于右侧的模型,因此在后续的算法设计中,咱们都是围绕图3左侧的解决思路展开的。
随着Goolge BERT模型在天然语言处理领域的巨大成功,在多模态领域也有愈来愈多的研究人员开始借鉴BERT的预训练方法,发展出融合图片/视频(Image/Video)等其余模态的BERT模型,并成功应用与多模态检索、VQA、Image Caption等任务中。所以,考虑使用BERT相关的多模态预训练模型(Vision-Language Pre-training, VLP),并将图文相关性计算的下游任务转化为图文是否匹配的二分类问题,进行模型学习。
目前,基于Transformer模型的多模态VLP算法主要分为两个流派:
本次比赛中,在算法方面,咱们选用了领域最新的基于Transformer的VLP算法构建模型主体,并加入了Text-Image Matching做为下游任务。除了构建模型之外,咱们经过数据分析来肯定模型参数,构建训练数据。在完成模型训练后,经过结果后处理策略来进一步提高算法效果。整个算法的流程以下图4所示:
接下来对算法中的每一个环节进行详细说明。
数据分析和处理主要基于如下三个方面考虑:
常规的训练数据生成策略为:对于每个Batch的数据,按照1:1的比例选择正负样本。其中,正样本为训练集(Train)中的原始数据,负样本经过替换正样本中的Query字段产生,替换的Query是按照必定策略从训练集(Train)中获取。
为了提高模型学习效果,咱们在构建负样本的过程当中进行了难例挖掘,在构造样本时,经过使正负样本的部分目标框包含一样的类别标签,从而构建一部分较为类似的正负样本,以提升模型对于类似的正负样本的区分度。
难例挖掘的过程以下图5所示,左右两侧的相关样本对都包含了“shoes”这一类别标签,使用右侧样本对的Query替换左侧图片的Query,从而构建难例。经过学习这类样本,可以提升模型对于不一样类型“shoes”描述的区分度。
具体而言,负样本构建策略如表2所示:
其次,经过对训练数据中目标框的个数以及Query长度的分布状况分析,肯定模型的相关参数。图片中目标框的最大个数设置为10,Query文本的最大单词个数为20。后处理策略相关的内容,咱们将会在4.3部分进行详细的介绍。
4.2.1 模型结构
基于上文中对多模态检索领域现有方法的调研,在本次比赛中,咱们分别从单流模型和双流模型中各选择了相应SOTA的算法,即ImageBERT和LXMERT。具体而言,针对比赛任务,两种算法分别进行了以下改进:
LXMERT模型方面主要的改进包括:
改进后的模型结构以下图6所示:
特征网络的预训练权重使用了LXMERT所提供权重文件,下载地址为:https://github.com/airsplay/lxmert。
ImageBERT:本方案中一共用到了两个版本的 ImageBERT模型,分别记为ImageBERT A和ImageBERT B,下面会分别介绍改进点。
ImageBERT A:基于原始ImageBERT的改进有如下几点。
依据上述策略,选用BERT-Base模型权重对变量初始化,在此基础上进行FineTune。其模型结构以下图7所示:
ImageBERT B:和ImageBERT A的不一样点是在Position Embedding和Segment Embedding的处理上。
依据上述策略,一样选用BERT-Base模型权重对变量初始化,在此基础上进行FineTune。
三种模型构建中,共性的创新点在于,在模型的输入中引入了图片目标框的标签信息。而这一思路一样被应用在了微软2020年5月份最新的论文Oscar [7] 中,但该文的特征使用方式和损失函数设置与咱们的方案不一样。
4.2.2 模型训练
使用节4.1的数据生成策略构建训练数据,分别对上述三个模型进行训练,训练后的模型在验证集(Val)上的效果如表3所示。
4.2.3 利用损失函数进行模型微调
完成初步的模型训练后,接下来使用不一样的损失函数对模型进行进一步的微调,主要有AMSoftmax Loss [5]、Multi-Similarity Loss [6]。
在咱们的方案中所采用的具体策略以下:
通过微调,各模型在验证集(Val)上的效果如表4所示。
4.2.4 经过数据过采样进行模型微调
为了进一步提升模型效果,本方案根据训练集(Train)中Query字段与测试集(testB)中的Query字段的类似程度,对训练集(Test)进行了过采样,采样规则以下:
数据过采样后,分别对与上述的三个模型按照以下方案进行微调:
训练后各模型在验证集(Val)上的效果如表5所示:
为了充分利用所有有标签的数据,本方案进一步使用了验证集(Val)对模型进行FineTune。为了不过拟合,最终提交结果只对ImageBERT A模型进行了上述操做。
在Query-Image样本对的相关性的预测阶段,本方案对测试集(testB)Query所包含的短句进行统计,发现其中“sen department” 这一短句在测试集(testB)中大量出现,但在训练集(Train)中从未出现,但出现过“forest style”这个短句。为了不这组同义短句对模型预测带来的影响,选择将测试集(testB)中Query的“sen department”替换为“forest style”,而且利用ImageBERT A对替换后的测试集进行相关性预测,结果记为ImageBERT A'。
通过上述的模型构建、训练以及预测,本方案共获得了4个样本对相关性得分的文件。接下来对预测结果进行Ensemble,并按照必定策略进行后处理,获得Query相应的Image候选排序集合,具体步骤以下:
(1)在Ensemble阶段,本方案选择对不一样模型所得相关性分数进行加权求和,做为每个样本对的最终相关性得分,各模型按照LXMERT、ImageBERT A、ImageBERT B、ImageBERT A'的顺序的权值为0.3:0.2:0.3:0.2,各模型的权重利用网格搜索的方式肯定,经过遍历4个模型的不一样权重占比,每一个模型权重占比从0到1,选取在valid集上效果最优的权重,进行归一化,做为最终权重。
(2)在获得全部Query-Image样本对的相关性得分以后,接下来对Query所对应的多张候选图片进行排序。验证集(Val)和测试集(testB)的数据中,部分Image出如今了多个Query的候选样本中,本方案对这部分样本作了进一步处理:
a.考虑到同一Image一般只对应一个Query,所以认为同一个Image只与相关性分数最高的Query相关。使用上述策略对ImageBERT B模型在验证集(Val)上所得结果进行后处理,模型的NDCG@5 分数从0.7098提高到了0.7486。
b.考虑到同一Image对应的多条Query每每差别较小,其语义也是比较接近的,这致使了训练后的模型对这类样本的区分度较差,较差区分度的相关性分数会必定程度上引发模型NDCG@5的降低。针对这种状况咱们采用了以下操做:
使用上述策略对ImageBERT B的验证集(Val)结果进行后处理,当选定阈值为0.92时,模型的NDCG@5 分数从0.7098提高到了0.8352。
能够看到,采用策略b处理后,模型性能获得了显著提高,所以,本方案在测试集(testB)上,对全部模型Ensemble后的相关性得分采用了策略b进行处理,获得了最终的相关性排序。
前面提到过,美团搜索是典型的多模态搜索场景,目前多模态能力在搜索的多个场景进行了落地。介绍具体的落地场景前,先简单介绍下美团搜索的总体架构,美团总体搜索架构主要分为五层,分别为:数据层、召回层、精排层、小模型重排层以及最终的结果展现层,接下来按照搜索的五层架构详细介绍下搜索场景中多模态的落地。
多模态表示:基于美团海量的文本和图像/视频数据,构建平行语料,进行ImageBERT模型的预训练,训练模型用于提取文本和图片/视频向量化表征,服务下游召回/排序任务。
多模态融合:图片/视频数据的多分类任务中,引入相关联的文本,用于提高分类标签的准确率,服务下游的图片/视频标签召回以及展现层按搜索Query出图。
多模态表示&融合:内容搜索、视频搜索、全文检索等多路召回场景中,引入图片/视频的分类标签召回以及图片/视频向量化召回,丰富召回结果,提高召回结果相关性。
多模态表示&融合:排序模型中,引入图片/视频的向量化Embedding特征,以及搜索Query和展现图片/视频的相关性特征、搜索结果和展现图片/视频的相关性特征,优化排序效果。
多模态融合:图片/视频优选阶段,引入图片/视频和Query以及和搜索结果的相关性信息,作到按搜索Query出图以及搜索结果出图,优化用户体验。
在本次比赛中,咱们构建了一种基于ImageBERT和LXMERT的多模态召回模型,并经过数据预处理、结果融合以及后处理策略来提高模型效果。该模型可以细粒度的对用户查询Query的相关图片进行打分排序,从而获得高质量的排序列表。经过本次比赛,咱们对多模态检索领域的算法和研究方向有了更深的认识,也借此机会对前沿算法的工业落地能力进行了摸底测试,为后续进一步的算法研究和落地打下了基础。此外,因为本次比赛的场景与美团搜索与NLP部的业务场景存在必定的类似性,所以该模型将来也可以直接为咱们的业务赋能。
目前,美团搜索与NLP团队正在结合多模态信息,好比文本、图像、OCR等,开展MT-BERT多模态预训练工做,经过融合多模态特征,学习更好的语义表达,同时也在尝试落地更多的下游任务,好比图文相关性、向量化召回、多模态特征表示、基于多模态信息的标题生成等。
左凯,马潮,东帅,曹佐,金刚,张弓等,均来自美团AI平台搜索与NLP部。
美团搜索与NLP部,长期招聘搜索、推荐、NLP算法工程师,坐标北京/上海。欢迎感兴趣的同窗发送简历至:tech@meituan.com(邮件注明:搜索与NLP部)
阅读更多技术文章,请扫码关注微信公众号-美团技术团队!