文章汉化系列目录
文章目录
《Unsupervised Multi-Modal Representation Learning for High Quality Retrieval of Similar Products at E-commerce Scale》
摘要
在电子商务中,识别相似商品对于发现商品之间的关系、进行推荐以及增加搜索结果的多样性具有重要作用。商品表示学习是定义通用商品相似性度量标准的第一步;第二步是在大规模场景(如电子商务商品目录级别)上扩展相似性搜索,同时保持结果质量。在本研究中,我们提出了一种解决方案,将这两个步骤交织在一起:通过对比学习(Contrastive Learning,CL)学习适用于高质量检索的商品表示,并使用近似最近邻搜索(Approximate Nearest Neighbor Search,ANNS)从大型搜索空间中检索相似商品,在质量和速度之间实现权衡。我们提出了一种CL训练策略,用于学习适用于电子商务多模态相似性搜索的单模态编码器。通过生成无需标签的帕累托前沿(Pareto Frontiers,PFs),我们研究了ANNS检索方法。我们的CL训练策略使检索@1指标在多个类别中实现了翻倍(例如,在类别C中从36%提升到88%)。同时,我们还证明,通过使用PFs优化ANNS引擎,可以帮助选择合适的配置(例如,在中等规模数据集上,我们实现了6.8倍的搜索速度,仅牺牲2%的最大检索准确率)。
CCS概念·计算理论→无监督学习和聚类; ·信息系统→最近邻搜索;数据库中的Top-k检索。
关键词深度度量学习,无监督学习,近似最近邻搜索,Amazon Opensearch,聚类
1 引言
在大型电子商务数据集中识别相似商品可以实现多种应用。这些应用包括通过搜索结果后处理增加多样性、为相似商品之间建立关系以便用户根据查询轻松导航、实现精细化的多模态检索以及后续的商品分类任务 [9]。随着深度学习的进步,我们可以学习到表现出色的密集商品向量,这些向量在商品推荐和分类任务中表现优异 [4, 13, 31]。因此,密集向量也成为检索的实际标准选择。
在大规模空间(如10MM或更多)中查找相似商品,需要超越精确最近邻搜索(NNS)的技术,以满足效率和成本的要求。在本文中,我们研究了大规模多模态电子商务数据集的检索问题,具体包括:
- 无监督学习编码器以生成适用于相似性搜索的强大多模态商品向量;
- 使用OpenSearch [27] 在大规模上高效运行NNS。
对比学习(CL) 作为一种自监督学习(SSL),能够从视觉和语言信号中学习编码器模型 [6, 32]。在CL中,一个训练实例由一个正样本对和若干负样本对组成。CL方法通过同时增加正样本对的相似性和减少负样本对的相似性来学习表示。 多模态数据集天然包含来自同一示例的模态之间的正样本对,而单模态数据集通常需要标注或数据增强(例如,创建新视图作为正样本对 [29])。简单正样本(表示接近的匹配对)和简单负样本(表示距离较远的不匹配对)会通过负正耦合乘数 [12, 34] 缩小梯度,从而降低CL效率(详见第3.1节)。 一些技术通过从更大的小批量中生成对来增加难负样本 [6],另一些技术通过将前几次迭代中的样本存储在队列中来增加难负样本的数量 [14]。在本研究中,我们通过商品类型(或类别)生成难负样本,无需任何监督。为提高CL效率,我们通过从目标类别中采样负样本来增加批内难负样本的可能性。
对于每个商品执行前 k k k个最近邻的精确NNS计算复杂度为二次方,对于大数据集而言不可行。我们研究了在大规模电子商务数据集上使用近似最近邻搜索(ANNS),并将我们的解决方案整合到Amazon OpenSearch中 [27]。 我们研究了两种ANNS算法在跨模态检索中的性能,以此作为召回率的代理:
- IVF [18] 使用码本学习对数据集进行分区,并对向量进行量化以实现快速距离计算;
- HNSW [23] 使用基于图的索引将向量映射到多层图中,实现对数级别的可扩展性。
这些ANNS算法的性能在很大程度上取决于所选参数,这些参数需要根据数据集的特性(如规模和向量维度)进行调优 [2]。我们通过对ANNS算法参数进行网格搜索,利用跨模态检索性能生成速度与召回率之间的帕累托前沿(PFs) [21],近似真实的多模态召回率。这使我们能够发现最佳的参数配置,在速度和召回率之间进行权衡,同时满足实际约束(如搜索时间和吞吐量)。 最后,我们从图像和文本向量生成多模态商品向量,并将其插入根据ANNS算法的帕累托前沿配置的Amazon OpenSearch索引中。
主要贡献
- 我们证明了从目标类别中采样引入难负样本能够在无需额外监督或辅助损失的情况下显著提高CL性能。
- 我们利用速度与召回率之间的权衡,通过跨模态检索作为多模态召回的代理找到最佳使用点。
- 我们提供了在多个数据集上扩展ANNS算法的建议,并分享了优化OpenSearch的kNN索引和以低成本维护集群的实用见解。
2 相关工作
2.1 多模态表示学习
对比学习(Contrastive Learning,CL)通过InfoNCE(详见第3.1节)在 K K K个随机样本中预测正样本,其中包含 K − 1 K-1 K−1个负样本。InfoNCE损失非常适合从多模态数据集中学习 [6, 11, 25, 33]。在电子商务中,CL已被证明在商品分类 [5]、商品匹配 [1, 24] 和分类任务 [9] 中表现优异。
CLIP [25] 是基于CL的多模态表示学习中的一个热门选择 [15, 22],但直接将CLIP训练应用于电子商务数据集时效果较差,这是由于自然图片与商品图片之间存在显著差异 [17]。文献[17]最近通过使用预训练任务解决了这一问题。我们则仍然采用InfoNCE损失解决同样的问题,无需额外的标签或辅助损失,而是通过引入基于商品类别的难负样本来提高效果。
2.2 跨模态检索
跨模态检索是指利用一种模态的查询检索另一模态中相同的商品。在电子商务中,已有基于CLIP [25] 的对比预训练方法的跨模态检索和排序研究 [9, 15, 22]。然而,这些研究大多基于相对较小的样本数据集,其中可以使用精确最近邻搜索。
电子商务数据集规模庞大(通常在千万级或以上),并且经常包含噪声。因此,在此类数据集上研究近似最近邻搜索(ANNS)算法的性能显得尤为重要,以便验证ANNS在大规模数据集中的实际表现。
3 多模态表示学习与检索
在本节中,我们首先从对比学习(CL)的效率角度解释为何现成的CLIP ([25]) 训练在大规模数据集上表现不佳。随后,我们提出一种针对电子商务检索问题的无监督算法来解决这一问题,并讨论如何在大规模场景下利用Amazon OpenSearch进行高效检索。
3.1 对比学习效率
对比学习(CL)的损失函数在文献[30]中提出,称为InfoNCE。令 sim ( x , y ) \text{sim}(x, y) sim(x,y)表示 x x x和 y y y表示向量之间的相似性,可以定义为归一化后的 x x x和 y y y的点积。令 f ( x , y ) = exp ( τ − 1 sim ( x , y ) ) f(x, y) = \exp(\tau^{-1}\text{sim}(x, y)) f(x,y)=exp(τ−1sim(x,y))为样本对 ( x , y ) (x, y) (x,y)的得分,其中 τ \tau τ是控制难负样本惩罚强度的温度参数。 InfoNCE的表达式如下:
L InfoNCE ( X ; Y ∣ f ) = E [ log f ( x 1 , y ) ∑ x i ∈ X ~ f ( x i , y ) ] , L_{\text{InfoNCE}}(X; Y|f) = \mathbb{E}\left[\log\frac{f(x_1, y)}{\sum_{x_i \in \tilde{X}} f(x_i, y)}\right], LInfoNCE(X;Y∣f)=E[log∑xi∈X~f(xi,y)f(x1,y)],
其中 X ~ = { x 2 , … , x K } \tilde{X} = \{x_2, \dots, x_K\} X~={
x2,…,xK}为按照 p ( x ) p(x) p(x)独立同分布采样的负样本集, ( x 1 , y ) (x_1, y) (x1,y)是正样本对。令 X = ( x 1 , … , x K ) X = (x_1, \dots, x_K) X=(x1,…,xK)为矩阵,则InfoNCE对 y y y的梯度为:
∇ L InfoNCE y = − τ − 1 x