《Self-supervised Learning for Large-scale Item Recommendations》
大型推荐模型从庞大的 catalogs
中找到最相关的 items
,它们在现代搜索系统和推荐系统中发挥着关键作用。为了用 large-vocab categorical features
对输入空间进行建模,典型的推荐模型通过神经网络从 user feedback data
中为 queries
和 items
学习一个联合的 embedding space
。然而,由于语料库中有数百万到数十亿个 items
,用户倾向于为其中很小一部分提供反馈,从而导致幂律分布。这使得长尾 items
的反馈数据非常稀疏。
受计算机视觉和自然语言理解领域中 self-supervised representation learning
近期所取得的成功启发,我们提出了一个多任务的自监督学习(self-supervised learning: SSL
)框架用于大型的 item recommendations
。该框架旨在通过学习 item features
的更好的 latent relationship
来解决标签稀疏问题。具体而言,SSL
不仅改进了 item representation learning
,并作为额外的正则化来提高泛化能力。此外,我们提出了一种新颖的数据增强方法,该方法利用所提框架内的 feature correlations
。
我们使用两个分别具有 500M
和 1B
个训练样本的真实数据集来评估我们的框架。我们的结果证明了 SSL
正则化的有效性,并表明其性能优于 SOTA
的正则化技术。我们还已将所提出的技术应用于互联网规模的商业 app-to-app
推荐系统,并在实时流量的 A/B
实验中展示了关键业务指标的显著改进。我们的在线结果也验证了我们的假设,即我们的框架在缺乏监督的样本切片上确实能更大程度地提高模型性能。
最近,神经网络模型已成为整个工业界的和学术界的现代推荐系统的主流。与矩阵分解、梯度提升决策树、和基于逻辑回归的推荐器等传统方法相比,这些深度模型能更有效地处理 categorical features
。它们还能实现更复杂的 data representations
,并引入更多非线性,从而更好地拟合复杂数据从而用于推荐模型。
本文重点关注的一个特定推荐任务是:从庞大的 item catalog
中找出与给定 query
最相关的 items
。这种 large-scale item recommendations
的通用问题已在各种应用中广泛采用。根据 query
的类型,推荐任务可以分为:
(i)
:个性化推荐:当 query
是用户时。
(ii)
:item to item
推荐:当 query
也是一个 item
时。
(iii)
:搜索:当 query
是一段自由文本时。
为了对 a query and an item
之间的交互进行建模,一种广为人知的方法是利用 embedding-based neural networks
。推荐任务通常被表述为一个极端分类问题,其中每个 item
在输出空间中表示为一个密集向量。
本文聚焦于在许多实际推荐器中流行的双塔 DNN
(见 Figure 1
)。在这种架构中,神经网络将一组 item features
编码为一个 embedding
,因此即使对于冷启动 items
也适用。此外,双塔 DNN
架构通过将 top-k nearest neighbor search
转换为具有亚线性复杂度的最大内积搜索(Maximum-Inner-Product- Search: MIPS
),能够高效地实时为大量 items
提供服务。
embedding-based
的深度模型通常具有大量参数,因为它们是用高维 embeddings
来构建的,这些 embeddings
表示 high cardinality
的稀疏特征,如 topics
或 item IDs
。在许多现有文献中,训练这些模型的损失函数被表述为一个监督学习问题。监督信息来自收集到的标签(例如,点击)。现代推荐系统从用户那里收集数十亿到数万亿的行为数据,为构建深度模型提供了大量的训练数据。然而,当对数量在数百万(例如,歌曲和 apps
)甚至数十亿(例如,YouTube
上的视频)量级的庞大 catalogue of items
进行建模时,由于以下原因,某些 data slices
仍然可能非常稀疏:
高度偏斜的数据分布:queries and items
之间的交互往往呈现幂律分布。因此,一小部分热门 items
获得了大部分的交互。这总是使得长尾 items
的训练数据非常稀疏。
缺乏显式的用户反馈:用户通常会隐式地提供大量 positive feedback
,如点击和点赞。然而,他们不太可能提供显式的反馈,如 item ratings
、用户满意度反馈、以及 relevance scores
。
自监督学习(self-supervised learning: SSL
)通过 unlabeled data
为改进 deep representation learning
提供了不同的视角。其基本思想是:通过各种数据增强、以及基于 predict or reconstitute
原始样本的监督任务作为辅助任务,从而来 enhance
训练数据。自监督学习已广泛应用于计算机视觉和自然语言理解领域。
计算机视觉领域的一项示例工作(《Learning Representations for Automatic Colorization》
)提出随机旋转图像,并训练模型预测每个 augmented input image
的旋转方式。
在自然语言理解中,BERT
模型引入了 masked language task
,以帮助改进语言模型的 pre-training
。类似地,其他预训练任务,如预测维基百科文章中的周围句子和 linked sentences
,也被用于改进自然语言理解中的 dual-encoder
类型的模型。
与传统的监督学习相比,自监督学习提供了补充的目标,消除了手动收集标签的前提条件。此外,自监督学习能够通过利用 input features
的内部关系来自动地发现良好的 semantic representations
。
尽管自监督学习在计算机视觉和自然语言理解中得到了广泛应用,但在推荐系统领域的应用研究较少。
最相关的研究方向是研究一组正则化技术,这些技术旨在迫使不同样本的 learned representations
(即多层感知器的 output layer (embeddings)
)在整个潜在 embedding
空间中彼此远离并分散开来。虽然这些技术与自监督学习精神相似,但它们没有显式地构建自监督学习任务。
与计算机视觉或自然语言理解的 application
中的模型不同,推荐模型的输入极其稀疏,high cardinality
的 categorical features
采用 one-hot (or multi-hot)
来编码,如 item IDs
或 item categories
。在深度模型中,这些特征通常表示为可学习的 embedding
向量。由于计算机视觉和自然语言理解中的大多数模型处理的是 dense input
,现有的创建自监督学习任务的方法不能直接应用于推荐系统中的 sparse models
。
最近,一系列研究致力于利用自监督学习改进推荐中的 sequential user modeling
。与这些工作不同,本文专注于 item representation learning
,并展示自监督学习如何在 long-tail item distribution
的背景下帮助提高泛化能力。此外,与在特定的 sequential user feature
上使用自监督学习不同,我们设计了新的自监督学习任务,并展示了它们的有效性从而用于具备一组异构 categorical features
的学习。我们认为这对于其他类型的推荐模型,如 multitask ranking models
,是更通用的设置。
在本文中,我们提议利用基于自监督学习的辅助任务来改进 item representations
,特别是在长尾分布和稀疏数据的情况下。与计算机视觉或自然语言理解的 application
不同,推荐模型的输入空间高度稀疏,由一组具有 large cardinality
的 categorical features
(例如 item ids
)来表示。对于这样的稀疏模型,我们提出了一种新的自监督学习框架,其关键思想是:
(i)
:通过掩码输入信息来增强数据。
(ii)
:使用双塔 DNN
对 each pair of augmented examples
进行编码。
(iii)
:应用对比损失来学习 augmented data
的 representations
。contrastive learning
的目标是:使来自同一样本的augmented data
能够与其它样本区分开来。注意,用于对比学习的双塔 DNN
和用于编码 query and item
的双塔 DNN
可以共享一定数量的模型参数。
我们的贡献有四个方面:
自监督学习框架:我们提出了一种与模型架构无关的自监督学习框架,用于推荐系统中的稀疏神经模型。辅助自监督损失和主体监督损失通过多任务学习框架联合优化。我们专注于使用这个框架对 a large corpus of items
进行高效地评分,这在两阶段推荐器中也称为 item retrieval
。我们相信它也将为其他类型的模型(如 ranking models
)设计自监督学习提供思路。
数据增强:我们提出了一种新颖的数据增强方法,该方法利用 feature correlations
,并且是为推荐模型中常见的 heterogeneous categorical features
量身定制的。
离线实验:在一个公共数据集和一个工业规模的推荐系统数据集上,我们证明了引入自监督学习作为辅助任务可以显著提高模型性能,特别是在标签稀缺的情况下。与 SOTA
的非自监督学习的正则化技术相比,我们证明了自监督学习始终表现更好,并且即使非自监督学习正则化没有带来任何额外收益时,自监督学习也能提高模型性能。
互联网规模的推荐器中的在线实验:我们已经在一个大型的实际系统中,将所提出的自监督学习技术应用于一个相当强大的双塔 app-to-app
推荐模型。实时 A/B test
显示关键指标显著改进。我们特别看到在缺乏大量监督的 data slices
上有更大的改进。
我们提出自监督学习框架从而用于具有 large-vocab categorical features
的深度神经网络模型。具体来说:
首先,我们介绍了一个通用的自监督学习框架。
然后,我们提出了一种数据增强方法来构建自监督学习任务,并详细阐述了它们与分散正则化(spread-out regularization
)的联系。
最后,我们描述了如何通过多任务学习框架使用自监督学习来改进 factorized models
(即如 Figure 1
所示的双塔 DNN
)。
受用于视觉 representation learning
的 SimCLR
框架的启发,我们采用类似的对比学习算法来学习 representations of categorical features
。基本思想有两个方面:
首先,对同一训练样本应用不同的数据增强来学习 representations
。
然后使用对比损失函数(contrastive loss function
)来促使为同一训练样本学到的 representations
是相似的。
对比损失也用于训练双塔 DNN
,尽管那里的目标是使 positive item
与其相应的 queries
一致。
考虑一批 item examples
query
、一个 item
或一个 query-item pair
。假设有一对变换函数
给定样本 input
representations
embeddings
,即:
我们将 positive pairs
,将 negative pairs
(其中
为了促使上述性质成立,我们为一 batch
的
其中:softmax temperature
。
上述损失函数学习一个稳健的 embedding space
,使得相似的 items
在数据增强后彼此接近,而随机样本则被推得更远。整体框架如 Figure 2
所示。
编码器架构:对于具有 categorical features
的输入样本,input layer
再跟一个多层感知器(multi-layer perceptron: MLP
)来构建。输入层通常是 normalized dense features
和多个 sparse feature embeddings
的拼接,其中 sparse feature embeddings
是存储在 embedding tables
中的 learnt representations
(相比之下,计算机视觉和语言模型的输入层直接处理原始输入)。
为了使自监督学习有助于监督学习任务,我们为神经网络 sparse features
的 embedding table
。根据数据增强技术的不同,
注意:
和 并不是同一个模型,它们仅共享 embedding table
。那么如何与main task
共享?读者认为也是共享embedding table
。
与分散正则化的联系:在
这促使不同样本的 learned representations
具有较小的余弦相似度。
该损失与 《Learning Spread-Out Local Feature Descriptors》
中引入的分散正则化(spread-out regularization
)类似,不同之处在于原始提案使用平方损失,即 softmax
。分散正则化已被证明可以提高大型检索模型的泛化能力。在实验章节中,我们表明通过引入特定的数据增强,与分散正则化相比,基于自监督学习的正则化可以进一步提高模型性能。
我们介绍 Figure 2
中的数据增强,即 item features
,关键思想是通过掩码部分信息来创建两个 augmented examples
。一个好的变换和数据增强应该对数据做出最小的假设,以便它可以普遍适用于各种任务和模型。掩码的想法受到 BERT
中 Masked Language Modeling
的启发。与 sequential tokens
不同,通用的 features
集合是没有顺序的,这使得 masking pattern
的选择成为一个悬而未决的问题。我们试图通过探索 feature correlation
来设计掩码模式( masking pattern
)。我们提出了相关特征掩码(Correlated Feature Masking: CFM
),它针对 categorical features
并考虑了 feature correlations
。
在深入探讨掩码的细节之前,我们首先介绍一种两阶段增强算法。注意,在没有增强的情况下,input layer
是通过拼接 embeddings of all categorical features
来创建的。两阶段增强包括:
掩码(Masking
):对 item features
集合应用掩码模式。我们在输入层中使用一个 default embedding
来表示被掩码的特征。
随机丢弃(Dropout
):对于具有多个值的 categorical features
,我们以一定概率随机丢弃每个值。这进一步减少了输入信息,并增加了自监督学习任务的难度。
masking
步骤可以被视为 dropout
的一种特殊情况,其 dropout rate = 100%
。
假设有 “类别”、“品牌”、“店铺“、”是否免运费“ 等特征:
第一步随机增强:假设随机掩码 “店铺”,那么所有样本的
item
都使用default embedding
来代替 “店铺”embedding
。第二部随机
dropout
:
对于“类别”特征:随机选择某个
category ID
进行丢弃。仅仅包含该category ID
的item
,这些item
使用default embedding
来代替 “类别”embedding
。对于“品牌”特征:随机选择某个
brand ID
进行丢弃。仅仅包含该brand ID
的item
,这些item
使用default embedding
来代替 “品牌”embedding
。....
对于 Masking
,一种策略是互补的掩码模式,即我们将 feature set
划分为两个互斥的 feature set
,并分别应用到两个 augmented examples
中。具体来说,我们可以随机将 feature set
划分为两个不相交的子集。我们将这种方法称为随机特征掩码(Random Feature Masking: RFM
),并将其用作我们的基线方法之一。现在我们介绍相关特征掩码(Correlated Feature Masking: CFM
),在创建掩码模式时,我们进一步探索 feature correlations
。
为什么要互斥,这是因为自监督学习需要两个数据增强操作
和 。注意:每个数据增强都作用于一半的特征。如果被增强的特征的数量太少,那么可能自监督学习任务太简单导致无法很好地提升 learned representations
。
Categorical Features
的互信息:如果 masked features
的集合是随机选择的,那么 feature set
上的 augmented examples
之间高度相关的特征从而走捷径,从而使自监督学习任务变得过于简单。为了解决这个问题,我们建议根据互信息所刻画的 feature correlation
来划分特征。两个 categorical features
的互信息由下式给出:
其中:pairs of features
的互信息可以预先计算出来。
表示样本中 共现的概率, 表示 出现的概率, 表示 出现的概率。
Correlated Feature Masking
:有了预先计算好的互信息,我们提出相关特征掩码(Correlated Feature Masking: CFM
),它利用 feature-dependency patterns
来构建更有意义的自监督学习任务。对于 masked features
的集合,我们试图将高度相关的特征一起掩码。
我们首先从所有可用特征 top-n
最相关的特征
最终
我们选择 batch
都改变种子特征,以便自监督学习任务能够学习各种掩码模式。
为了使自监督学习所学到的 representations
有助于改进主体监督任务(如回归或分类)的学习,我们采用多任务训练策略,将主体监督任务和辅助自监督学习任务联合优化。具体来说,设 batch
的 query-item pairs
,设 item
分布 batch
的 items
。那么联合损失为:
其中:query
和 item
之间交互的主要任务的损失函数,
异构样本分布:来自 marginal item distribution
通常遵循幂律分布。因此,在 training item distribution
会导致学到的 feature relationship
偏向于头部 items
。相反,我们从语料库中均匀采样 items
从而用于 item distribution
。在实践中,我们发现对主体任务和自监督学习任务使用异构分布对于自监督学习实现卓越性能至关重要。
用到的 items
不是batch
中的items
。
主体任务的损失:根据目标的不同,主体损失有很多选择。在本文中,我们考虑在推荐器和自然语言处理中都使用的 batch softmax loss
,以优化 top-k accuracy
。具体来说,设 query and item examples
embeddings
,那么对于一个 batch
的 pair
对 batch softmax
交叉熵损失为:
其他基线:如前所述,我们使用双塔 DNN
作为主体任务的基线模型。与经典的矩阵分解(matrix factorization: MF
)和分类模型相比,双塔模型在编码 item features
方面具有独特的属性。矩阵分解和分类模型虽然也适用于大规模 item retrieval
,但它们仅基于 IDs
来学习 item embeddings
,因此不适合我们利用自监督学习探索 item feature relations
的提议。
我们提供实证结果,以证明我们提出的自监督学习框架在学术公共数据集和实际大规模 recommendation products
中的有效性。实验旨在回答以下研究问题:
RQ1
:所提出的自监督学习框架是否能改进推荐系统的深度模型?
RQ2
:自监督学习旨在通过在 unlabeled examples
上引入自监督学习任务来改进主体监督任务。训练数据量对自监督学习带来的改进有何影响?
RQ3
:自监督学习参数,即损失乘子 dropout rate
,如何影响模型质量?
RQ4
:随机特征掩码(RFM
)与相关特征掩码(CFM
)相比表现如何?在数据增强中利用 feature correlations
有何好处?
数据集:我们在两个大规模数据集上进行实验,这两个数据集都带有丰富的 item metadata features
。我们将它们的主体监督任务表述为 item-to-item recommendation
问题,以研究自监督学习对训练推荐器(在这种情况下为 retrieval
)模型的影响。
Wikipedia
:第一个数据集专注于维基百科页面之间的 link prediction
问题。它由页面之间的 pairs
categorical
的,其中:
page URL
的 one-hot encoding
。
n-grams
集合的 bag-of-words representation
。
bag-of-words representation
。
我们按照 《Efficient Training on Very Large Corpora via Gramian Estimation》
和 《Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations》
中的相同处理方式,将数据集按 (90%
, 10%
) 的比例划分为训练集和评估集。
App-to-App Install (AAI)
:AAI
数据集是从一个商业移动应用商店的 app landing pages
收集的。在特定 app
( seed app
)的 landing page
上,收集了 recommended apps
部分中的 app installs
(candidate apps
)数据。每个训练样本表示一个 seed-candidate pairs
seed app
,推荐高度相似的 apps
。这也被表述为:基于 multi-class classification loss
的 item-to-item recommendation
问题。请注意,我们只收集正样本,即是从 landing page
来安装的 app
recommended apps
都被忽略,因为我们认为它们更像是 weak positives
,而不是构建 retrieval
模型的负样本。每个 item (app)
由具有以下特征的特征向量
正样本:曝光且安装的
app
。weak positives
:曝光且未安装的app
。
id
:Application ID
,作为 one-hot categorical feature
。
developer_name
:app
开发者的名称,作为 one-hot categorical feature
。
categories
:app
的语义类别,作为 multi-hot categorical feature
。
title_unigram
:ap
标题的 uni-grams
,作为 multi-hot categorical feature
。
Table 1
显示了 Wikipedia
和 AAI
数据集的一些基本统计数据。Figure 4
显示了这两个数据集中最常见项目的累计密度函数( CDF
),表明数据分布高度倾斜。例如,AAI
数据集中 top 50 items
在训练数据中的出现率总计约为 10%
。如果我们考虑一个简单的基线(即 TopPopular recommender
),为每个 query
推荐最热门的 top-K items
,那么 K-th frequent item
的 CDF
基本上代表了这种基线的 Recall@K
指标。这表明一个简单的 TopPopular
推荐器在 AAI
上实现了 Recall@50 ≈ 0.1
,在Wikipedia
上实现了 Recall𝑙@50 ≈ 0.05
。我们在实验章节中展示了所有提出的方法都大大超越了这一基准。
实验设置:
骨干网络:对于根据 query
预测 relevant items
的主体任务,我们使用双塔 DNN
对 query
特征和 item
特征进行编码(见Figure 1
)作为骨干网络。item-to-item recommendation
问题被形式化为一个多类分类问题,使用 batch softmax loss
作为损失函数。关于骨干网络选择的讨论,请读者参考前面的章节。
超参数:对于骨干双塔 DNN
,我们搜索一组超参数,如学习率、softmax tem-perature
(Recall@50
达到最高。
请注意,batch softmax
中的 training batch size
对模型质量至关重要,因为它决定了每个正样本使用的负样本数量。在本节中,我们对 Wikipedia
数据集使用 batch size = 1024
、对 AAI
数据集使用 batch size = 4096
。
我们还调优了基线模型的隐层数、隐层大小和 softmax temperature
对于Wikipedia
数据集,我们使用 softmax temperature
hidden_layers = [1024, 128]
。
对于 AAI
数据集,我们使用 hidden_layers = [1024, 256]
。
请注意,最后一个隐层的维度也是 final query and item embeddings
的维度。所有模型都使用 Adagrad
优化器进行训练,学习率为 0.01
。
我们考虑自监督学习的两个超参数:
1)
:公式
2)
:数据增强第二阶段中的 feature dropout rate
,记为
对于每种增强方法(例如,CFM
,RFM
),我们在
评估:为了评估给定 seed item
的推荐性能,我们从整个语料库中计算并找出余弦相似度最高的 top K items
,并根据 K retrieved items
来进行评估。考虑到数据集的稀疏性和语料库中 items
的大量数量,这是一个相当具有挑战性的任务。我们采用流行的标准指标 Recall@K
和平均精度均值(MAP@K
)来评估推荐性能。对于每个实验结果配置,我们运行实验 5
次并报告平均值。
为了回答 RQ1
,我们首先评估自监督学习对模型质量的影响。我们专注于使用 CFM
然后紧跟着 dropout
作为数据增强技术。我们将后续章节展示 CFM
相对于其他变体的卓越性能。
我们考虑三种基线方法:
Baseline
:具有双塔 DNN
架构的普通骨干网络。
Feature Dropout(FD)
:在监督学习任务中,对 item tower
进行 random feature dropout
的骨干模型。对 item features
的 feature dropout
可以视为数据增强。与我们的方法相比,FD
没有额外的自监督学习正则化。
Spread-out Regularization: SO
:对 item tower
应用分散正则化(spread-out regularization
)作为正则化的骨干模型。SO
正则化与我们的自监督学习框架中的 contrastive loss
相似。然而,它在原始样本上应用对比学习,没有任何数据增强,因此与我们的方法不同。
选择后两种方法是因为它们:
(1)
:与模型无关,并且可扩展到工业规模的推荐系统。
(2)
:与 categorical sparse features
兼容,可用于提高泛化能力。
此外,FD
可以视为一项消融研究,以分离对比学习可能带来的改进。同样,包含 SO
是为了分离 feature augmentation
带来的改进。
我们观察到:
在使用完整数据集时(见 Table 2
),与非自监督学习正则化技术相比,CFM
始终表现最佳。
在 AAI
数据集上,CFM
相对性能第二好的方法提升了 8.69%
。
在 Wikipedia
数据集上,CFM
相对性能第二好的方法提升了 3.98%
。
这有助于回答 RQ1
,即:所提出的自监督学习框架和任务确实提高了推荐器的模型性能。
通过比较 CFM
和 SO
,结果表明数据增强对于自监督学习正则化获得更好的性能至关重要。当没有任何数据增强时,所提出的自监督学习方法就退化为 SO
。
通过比较 CFM
和 FD
,我们发现特征增强应用于自监督学习任务,比作为标准正则化技术应用于监督任务更有效。请注意,FD
作为一种在某些情况下提高泛化能力的知名方法,是在监督训练的同时应用 feature augmentation
。
Head-tail
分析:为了理解自监督学习带来的提升,我们通过按 item popularity
查看不同 item slices
来进一步分解整体性能。
基于 ground-truth item
的流行度,我们将整个测试数据集进行划分。
对于 AAI
测试数据集,Head
数据集包含 ground-truth items
位于 top 10% most frequent items
的样本,其余测试样本被视为 Tail
。
对于 Wikipedia
测试数据集,我们遵循 《Efficient Training on Very Large Corpora via Gramian Estimation》
中的数据分区,其中 ground-truth items
不在训练集中的测试样本被视为 Tail
,其余测试样本被视为 Head
。
我们的假设是:自监督学习通常有助于提高缺乏大量监督的 item slices
(例如,tail items
)的性能。在 Head
和 Tail
测试集上评估的结果报告在 Table 3
中。我们观察到:所提出的自监督学习方法在 Head
和 Tail
的 item recommendations
上都提高了性能,在 tail items
上的提升更大。例如,在 AAI
数据集中,CFM
在 tail items
上的 Recall@10
提升超过 51.5%
,而在 head items
上的提升为 8.57%
。
自监督学习的超参数的影响(RQ3
):Figure 5
总结了在 Wikipedia
和 AAI
数据集上评估的 Recall@50
相对于正则化强度
SO
的结果,SO
使用相同的正则化参数。我们观察到:
随着
通过进一步将我们的方法与 SO
进行比较,我们发现在广泛的 SO
。
Figure 7
显示了不同 dropout rates
FD
的结果,FD
使用相同的超参数。
随着 FD
的模型性能持续下降。
对于大多数 FD
比基线更差。
对于带有 feature dropout
的自监督学习任务,当 dropout rate
的进一步提高而下降。
当 dropout rate
太大时,输入信息变得太少,自监督学习无法学习到有意义的 representations
。
Item Representations
的可视化:除了更好的模型性能之外,我们还期望使用 SSL
学到的 representations
比没有使用 SSL
的representations
具有更好的质量。为了验证我们的假设,我们采用在 AAI
数据集上训练的模型中学到的 app embeddings
,并使用 t-SNE
在 Figure 5
中绘制它们。不同类别的 Apps
以不同的颜色绘制,如 Figure 5
中的图例所示。
与 Figure 5a
中的 apps
相比,最佳 SSL
模型(Figure 5b
)中的 apps
倾向于与同一类别中的相似 apps
更好地分组,并且不同类别的分界看起来更加清晰。例如,我们可以看到 Figure 5a
中的 “Sports & Recreation” apps
(红色)与 “Law & Government” and “Travel” apps
混合在一起。而在 Figure 5b
中,我们清楚地看到 4
个类别的 apps
各自分组在一起。这表明使用 SSL
学到的 representations
携带更多的语义信息,也是为什么 SSL
在我们的实验中导致模型性能更好的原因。
我们研究在数据稀疏的情况下 CFM
的有效性,以解决 RQ2
。我们均匀下采样 10%
的训练数据,并在相同(完整)的测试数据集上进行评估。实验结果报告在 Table 3
中。
随着数据稀疏性的增加,CFM
在 Wikipedia
和 AAI
数据集上分别显示出更大的改进。特别是,在完整的 Wikipedia
数据集上,CFM
相对于基线在 Recall@10
上提高了 6.1%
,而在 10%
的数据子集上相对改进为 20.6%
。在 AAI
数据集上也观察到类似的趋势(在完整数据集上 10.2%
、在降采样数据集上为 25.7%
)。
值得注意的是,CFM
始终优于 FD
,并且随着数据变得更稀疏,差距更大。这表明在 SSL
任务中使用 dropout
进行数据增强比直接在监督任务中应用 dropout
更有效。
这是因为:
SSL
中的dropout
并没有破坏main task
中的输入信息,而仅仅破坏了辅助任务的输入信息。
总之,这些发现回答了 RQ2
中提出的研究问题:即,所提出的 SSL
框架在监督更少的情况下能更大程度地提高模型性能。
在本节中,我们将几种特征增强方法与 CFM
进行比较,通过研究以下两点来回答 RQ4
:
1)
:在 masking
中利用 feature correlation
的好处。
2)
:使用 dropout
作为增强的一部分的好处。
具体来说,我们考虑以下替代方法:
RFM
:Random Feature Masking
。在这种方法中,随机选择一组特征进行掩码,而不是像 CFM
那样由互信息来进行指导。
RFM_no_compl
:没有补集的 Random Feature Masking
。在这种方法中,随机独立地掩码两组特征,而不是像 CFM
那样使用互补的 pair of masks
。
CFM_no_dropout
:不应用 dropout
的 Correlated Feature Masking
。换句话说,在 SSL
任务中仅应用 correlated masking
作为增强。
NoMasking
:跳过增强中掩码阶段的 Correlated Feature Masking
。换句话说,我们仅对特征应用 dropout
作为增强。
我们在 SSL
框架中应用这些特征增强函数,并在 AAI
数据集上报告结果,见 Table 5
。
首先,我们观察到所有变体都比 CFM
差,但仍然优于基线模型。特别是,我们发现 selecting the masking set
时使用互信息对模型改进至关重要,因为我们看到性能下降最大的是 RFM
,它是随机选择掩码集的。
通过将 CFM
与两种方法( RFM_no_compl
和 NoMasking
,其中这两种方法允许两个增强样本之间通过独立的 droptout
从而存在 feature overlap
)的结果进行比较,我们发现对比学习任务在具有互补信息时更有帮助,这可能避免了学习中的捷径。
最后,通过比较 CFM_no_dropout
和 CFM
,我们发现第二个阶段(即,随机丢弃 feature values
)也有帮助,这可能是因为在 SSL
任务中引入了更多的 feature variants
。
直接独立地应用
RFM_no_compl
,效果也还可以,而且更容易实现。
在本节中,我们描述如何将我们提出的 SSL
框架应用于一个互联网规模的商业 app recommender
系统。具体来说,给定一个 app
作为 query
,系统识别与该 query
相似的apps
。其中一个用于提供此推荐的模型是在前面章节中描述的 AAI
数据集上进行训练的,其骨干网络结构与 Figure 1
中的双塔 DNN
结构相同(有一些修改)。作为 AAI
实验离线实验的自然扩展,我们进行了 A/B
实验,以研究在线部署最佳的基于 SSL
的模型的协同效应。虽然我们已经在这个数据集上展示了离线指标的改进,但在许多实际系统中,离线研究可能与实际影响不一致,原因如下:
1)
:缺乏隐式反馈,因为离线评估数据是根据生产系统中的用户的 engagement history
收集的。
2)
:未能捕获商品的多目标优化目标(multiple objectives optimization goal
),在这种情况下,推荐更具吸引力的 apps
很可能会损害其他业务目标。
因此,这个实验对于在实际场景中证明所提出框架的有效性至关重要。
在我们的实时 A/B test
中,我们在双塔 DNN
模型(这是生产中使用的现有经过良好调优的模型)之上添加性能最佳的 SSL
任务,并使用相同的超参数集合。在 14
天的时间内,该模型显著改善了整体业务指标,关键的 user engagement
提高了 +0.67%
(Figure 9a
),关键业务指标提高了 +1.5%
(Figure 8a
)。
为了呼应前面章节中的 Head-tail
分析和数据稀疏性分析,我们在两个 data slices
上看到了显著的改进:
1)
:新 apps
的冷启动:该模型使新 apps
的 user engagement
提高了 +4.5%
(Figure 9b
)。
2)
:与主要市场相比,训练数据更稀疏的国际国家:我们看到关键业务指标显著提高了 +5.47%
(Figure 8b
右侧)。
同样,这些结果都证实了我们的假设,即我们的 SSL
框架确实显著提高了缺乏大量监督的 data slices
的模型性能。鉴于这些结果,采用 SSL
的模型已经成功部署到当前的生产系统中。