Bo Li等在《Equalized Focal Loss for Dense Long-Tailed Object Detection》提出了EFL。

3. 方法论

3.1 重新审视Focal Loss

在单阶段检测器中,Focal Loss[28]是广泛使用的解决前景-背景不平衡问题的解决方案。它重新分配了easy样本和hard样本的损失贡献,极大地削弱了大多数背景样本的影响。二元分类的Focal Loss公式为:

\[FL(p_t) = -\alpha_t (1 - p_t)^{\gamma} \log(p_t) \quad (1)\]

如[28]中所述,

  • $ p_t \in [0, 1]$ :表示对象候选的预测置信度分数,
  • $ \alpha_t$: 是平衡正样本和负样本重要性的参数。
  • 调节因子$ (1 - p_t)^{\gamma}$: 是Focal Loss的关键组成部分。

它通过预测分数$ p_t$ 和聚焦参数$ \gamma$ 减轻easy样本的损失,专注于hard样本的学习。如[23]中提到的,大量负样本容易被分类,而正样本通常较困难。因此,正样本和负样本之间的不平衡可以大致看作是easy样本和hard样本之间的不平衡。聚焦参数$ \gamma$ 决定了Focal Loss的效果。可以从公式(1)得出,较大的$ \gamma$ 将大大减少大多数负样本的损失贡献,从而提高正样本的影响。这一结论表明,正样本和负样本之间的不平衡程度越高,预期的$ \gamma$ 值就越大。

当涉及到多类别情况时,Focal Loss应用于由sigmoid函数转换的输出logits上的C个分类器。C是类别的数量,这意味着一个分类器负责一个特定类别,即一个二元分类任务。由于Focal Loss用相同的调节因子平等对待所有类别的学习,它未能处理长尾不平衡问题(见表2)。

3.2 均衡Focal Loss公式

在长尾数据集(例如LVIS)中,除了前景-背景不平衡问题外,单阶段检测器的分类器还受到前景类别之间的不平衡问题的影响。

图片名称

图2 在LVIS v1 [12] 训练集分割和COCO [29] trainval35k分割中,正样本与负样本数量的比率。为了更好地可视化,我们展示了比率的对数值,并将COCO的80个类别与LVIS的1203个类别对齐。我们采用ATSS [47]作为样本选择策略,以区分前景样本和背景样本。

如图2所示,如果我们从y轴观察,正样本与负样本比例的值远小于零,这主要揭示了前景和背景样本之间的不平衡。这里我们将比例的值称为正负不平衡度。从x轴观察,我们可以看到不同类别之间的不平衡度存在很大差异,这表明了前景类别之间的不平衡。显然,在平衡的数据分布(例如COCO)中,所有类别的不平衡度都是相似的。因此,使用相同的调节因子对所有类别在Focal Loss中是足够的。相比之下,在长尾数据情况下,这些不平衡度是不同的。稀有类别比频繁类别遭受更严重的正负不平衡问题。如表1所示,大多数单阶段检测器在稀有类别上的表现比在频繁类别上差。这表明,相同的调节因子不适合所有具有不同程度正负不平衡问题的情况。

聚焦因子。基于上述分析,我们提出了均衡Focal Loss(EFL),它采用与类别相关的聚焦因子来分别解决不同类别的正负不平衡问题。我们将第j个类别的损失公式化为:

\[EFL(p_t) = -\alpha_t (1 - p_t)^{\gamma_j} \log(p_t) \quad (2)\]

其中:

  • $ \alpha_t $ 和 $ p_t $ 与Focal Loss中的相同。
  • 参数 $ \gamma_j $ 是第j个类别的聚焦因子,它在Focal Loss中扮演与 $ \gamma $ 相似的角色。

如3.1节所述,不同的 $ \gamma $ 值对应不同程度的正负不平衡问题。

我们采用较大的 $ \gamma_j $ 来减轻稀有类别中的严重正负不平衡问题。对于轻微不平衡的频繁类别,较小的 $ \gamma_j $ 是合适的。聚焦因子 $ \gamma_j $ 被分解为两个部分,具体是一个类别不可知参数 $ \gamma_b $ 和一个类别特定参数 $ \gamma_{jv} $:

\[\gamma_j = \gamma_b + \gamma_{jv} = \gamma_b + s \frac{1 - g_j}{1 + g_j} \quad (3)\]

其中:

  • $ \gamma_b $ 表示在平衡数据场景中的聚焦因子,它控制分类器的基本行为。
  • 参数 $ \gamma_{jv} \geq 0 $ 是与第j个类别的不平衡度相关的可变参数。它决定了学习集中于正负不平衡问题的程度。

受EQLv2 [38]的启发,我们采用梯度引导机制来选择 $ \gamma_{jv} $。参数 $ g_j $ 表示第j个类别正样本相对于负样本的累积梯度比率。如[38]中提到的,较大的 $ g_j $ 值表示第j个类别(例如频繁)训练平衡,而较小的值表示该类别(例如稀有)训练不平衡。为了满足我们对 $ \gamma_j $ 的要求,我们将 $ g_j $ 的值限制在[0, 1]范围内,并采用 $ 1 - g_j $ 来反转其分布。超参数 $ s $ 是一个缩放因子,它决定了EFL中 $ \gamma_j $ 的上限。与Focal Loss相比,EFL独立处理每个类别的正负不平衡问题,从而提高了性能(见表3)。

加权因子。即使有了聚焦因子 $ \gamma_j $,仍然有两个障碍损害性能:(1)对于二元分类任务,较大的 $ \gamma $ 适用于更严重的正负不平衡问题。而在多类别情况下,如图3a所示,对于相同的 $ x_t^* $,$ \gamma $ 的值越大,损失越小。这导致我们想要增加对严重正负不平衡类别的学习集中度时,我们必须牺牲其在整体训练过程中的部分损失贡献。这种困境阻止了稀有类别取得优异的性能。(2)当 $ x_t $ 很小时,不同类别的样本的损失,具有不同的聚焦因子,将收敛到相似的值。实际上,我们希望稀有hard样本比频繁hard样本做出更多的损失贡献,因为它们稀缺,不能主导训练过程。 我们提出加权因子来缓解上述问题,通过重新平衡不同类别的损失贡献。与聚焦因子类似,我们为稀有类别分配较大的加权因子值以提高它们的损失贡献,同时保持频繁类别的加权因子接近1。具体来说,我们将第j个类别的加权因子设置为 $ \gamma_b + \gamma_{jv} / \gamma_b $ 以与聚焦因子保持一致。EFL的最终公式为:

\[EFL(p_t) = -\sum_{j=1}^{C} \alpha_t \left( \frac{\gamma_b + \gamma_{jv}}{\gamma_b} \right) (1 - p_t)^{\gamma_b + \gamma_{jv}} \log(p_t) \quad (4)\]

如图3b所示,有了加权因子,EFL显著增加了稀有类别的损失贡献。

同时,它更多地关注稀有hard样本的学习,而不是频繁hard样本。

聚焦因子和加权因子构成了EFL中的类别相关调节因子。它使分类器能够根据其训练状态 $ p_t $ 和相应的类别状态 $ \gamma_j $ 动态调整样本的损失贡献。如4.3节所述,聚焦因子和加权因子在EFL中都扮演着重要角色。同时,在平衡的数据分布中,所有 $ \gamma_{jv} = 0 $ 的EFL等同于Focal Loss。这种吸引人的特性使得EFL能够很好地应用于不同的数据分布和数据采样器。

#

meta在《PIE: Personalized Interest Exploration for Large-Scale Recommender Systems》中提出了用户个性化探索框架(PIE):

3.问题

为了准确解决问题,推荐系统模型通常依赖数据。然而,如果没有数据,这些系统在发现新兴趣或逃离局部最小值的能力上会受限。例如,如果一个特定用户对篮球视频感兴趣,但从未曝光过这样的内容,因为机器学习系统没有训练数据来学习这种情况。换句话说,我们可能不会知道用户的所有不同兴趣。另外,用户兴趣可以随时间变更,以反映最近趋势或新闻事件。因此,对于推荐系统来说,系统地探索多种内容是一种非常重要的能力,以便提供相关推荐服务给用户。

图片名称

图1 用户兴趣的探索(Exploration),会更好最大化推荐系统提供的价值

仅仅只利用(exploiting)用户的过往理解,会产生重复内容,从而错过许多其它用户兴趣。我们希望探索其它更少关注的主题(topics),以便我们可以发现更多的兴趣,或者引入新用户给我认识。该探索(exploration)需要高效、有效、并于可以与利用策略(exploitation strategy)进行最优权衡。

4.系统设计

我们在推荐系统的顶层设计了 exploration系统。图2的蓝色路径展示了所有主要组件。该exploration系统只有在blending pass时会与已存在的推荐系统相交互,在最终提供服务给用户之前,在ranking后最好的exploration videos会与non-exploration videos进行混合。相同的设计可以很容易地被应用到任意已存在的推荐系统中。

图片名称

图2 在已存在推荐系统的ranking框架中包含个性化探索(personalized exploration)

4.1 个性化的探索空间(Personalized Exploration Space)

探索在每个user与每个内容间的喜好程度是很难穷举的(exhaustive)。作为替代,我们尝试学习在每个user与每个属性间的喜好,它是一个更小的集合。本文主要关注学习user-creator间的连接(connections)。

图片名称

图3 从user-content移向user-attribute-content

我们使用PPR( Personalized PageRank)算法来创建了user-creator间的喜好。PPR是一个基于graph learning的随机游走,它会基于engagement数据来学习entity-entity相似度。对比起基于算法的CF,PPR的优点是可以利用多跳信息,因此允许更多的探索。另外,PPR对于那些具有较低先验参与度的creators很友好。

我们的方法如下描述。

  • 首先,我们创建一个基于users和creators间的bi-graph作为source和target,反之亦然。
  • 接着基于在过往一些天的user engagement来分配权重给edges。
  • 接着,运行一个个性化的creator rank算法,并过滤掉那些是creators的nodes。通过这一步,对于一个给定creator,我们可以获得相似creators的一个集合。
  • 现在,我们会采用与creators的用户交叉,并使用最后一步的output来聚合top-k creators。在设计上,这些creators对用户来说是新的,并且能非常好地拟合exploration use case。

为了高效提升exploration,我们在creator level添加了两个filters:

  • Novelty Filter:会移除那些用户之前交互过的creators,确保exploration system只捕获用户的新兴趣;
  • Quality Filter:会移除低质量creators,比如那些具有Watchbait内容的creators、或者在aggregated level上通过exploration具有较低engagement的creators。

4.2 在线探索(Online Exploration)

user exploration的目标是:通过推荐新的creators给用户来减少不确定性。通过从一个高基数选项开始,并朝着一个被认为是“过期(expired)”或“连接(connected)”的新creator的state收敛。其中,存在与该过程相关的机会开销,用户会潜在受益于符合它们品味的更多样推荐。

为一个用户探索创建的空间的过程,可以被公式化成一个online bandit问题

  • 一个简单的解决方案可以是Thompson sampling
  • 另一个更refined的解决方法是contextual bandit,其中:user、creator以及interaction features会被考虑上。

为了保持简单,我们这里仍使用Thompson sampling。每次要呈现一个exploratory video时,目标是最大化基于过往context和actions的cumulative reward。我们使用Thompson sampling来发现creators,并且接着选择来自selected creator的视频。我们将reward定义为来自该creator的视频消费数(engaged),其余的(rests)则认为是failures。 Rewards和rests会被用于计算在Thompson sampling中参数\(\alpha\)和\(\beta\)。该exploration会发生在user level上。

图片名称

图4 (左)random sampling vs. (右)Thompson sampling. sampling creators分布随时间演进

4.3 在explore/exploit间的平衡分发

在一个point-wise ranking推荐系统中,引入exploratory内容是挑战性的,因为不确定的预估通常会被一个well-optimized ranker打分偏低。我们在推荐系统中构建了一个特别的分发系统(specialized delivery system),以一个受控的方式来引入不确定性(uncertainty)。

Exploration Composition

我们使用一个概率融合层(probabilistic blending layer),它会考虑在用户当前session中exploration的组成,并插入(slot)一个exploration video来强制一个预先决定的组成。

5.实验

5.1 setup

为了测试我们提出的方法,我们在Facebook Watch上执行一个在线实验。受[3]的启发,我们根据两个条件将用户分成4组。

  • 条件 1: 是否提供exploration内容给用户。对于获得exploration内容的用户,我们会依赖blending pass来控制exploration videos的曝光接近6%。
  • 条件 2: 推荐系统是否使用exploration data进行训练。两个推荐模型,model A和model B,会使用相同的结构和features进行训练。我们会移除来自模型A的training set通过exploration收集到的数据。为了做出一个公平对比,一个特定量的non-exploration data会从模型B的训练集中随机移除,以便模型A和模型B具有相同size的training set。

上面的表1展示了4个分组的条件组合。

5.2 Metrics

当它开始理解video exploration的价值时,大挑战之一是寻找合适的metrics。像watch time这类常用metrics会临时恶化,因为exploration会利用机会开销来展示一些具有更高不确定性的内容。再者,我们相信,exploration会取出局部最大值,到一个全局最优解,它在engagement metrics上没有short-term regression是不可能的。

exploration的一个主要目标是:发现在users和未知content偏好间的有意义连接,我们定义了一个metrics集合作为这些连接的代理(proxies)。

Strong Creator Connection (SCC)

当一个user对于一个特定creator、在M天的一个窗口内、具有至少N个engagement事件,会生成SCC。对于偏好或内容,我们使用creators作为我们的proxy,对于creators通常会发布一个具有genre, tone, theme的内容等。在短期内,SCC足够敏感,来反映在users和creators间构建的连接。在long run中,我们已经看到在SCC和user engagement间的一个高相关性(见图5)。

图片名称

图5

Strong Creator Connection-Daily Active User (SCC DAU)

该metric会统计那天些具有non-zero SCC metric的用户数目。该指标的增加,会表示更多用户已经构建了强的creator connection。

Novel Strong Creator Connection (Novel SCC)

新的SCC会被成:在一个user和一个creator间形成的strong creators connections,该用户在过去P天没有engagement。对比起SCC,新SCC会进一步从non-exploration中切出exploration的影响。它也会帮助measure在用户兴趣中的long-term shift。

6.结果

我们做了4周的A/B testing,在Facebook Watch中使用exploration framework对用户的videos进行rank。该test results会展示:exploration会导致在整体和新strong creator connections同时胜出。

User Exploration Value

第4组 vs. 第1组展示了将exploration引入到推荐系统中的网络影响。它是一个关于用户获得exploration内容、和exploration信息的feedback的组合影响。我们观察到:在SCC上有3.5%的增长,在SCC DAU上有0.26%增长,在Novel SCC上有0.85%增长。在用户视频消费、日留存、周留存上没有统计显著的影响。图6展示了SCC在周期上的gains。

图片名称

图6

System Exploration Value

由于第3组、第1组会提供exploration content,在第3组和第1组间的对比只影响exploration data的好处。我们看到在engagement中有一个0.28%提升,在SCC metrics上不会有统计显著变化。

Strict Exploration Value

第2组 vs. 第1组展示了在没有,添加一个feedback loop时(使用来自exploration收集的信息来提升推荐模gajf ),exploration content给用户的影响。它会measures网络的机会开销,并展示更多不确定的exploration content,来替代那些来自推荐系统推出的视频。我们看到,一个engagement regression有0.53%。另一方面,serving exploration content会生成一个0.55%会增加SCC。

兴趣分布

为了可视化在user engagement上exploration的影响,我们会分别为每个subtopic计算user engagement,并绘制在图7中的histogram。x轴表示在log scale中的impressions和engagement, y轴表示在那个bucket中的subtopics数目。有exploration(test组)和无exploration(control组)的结会被绘制。左图展示了:在test group中,大多数subtopics会具有在4边上的log impressions,而在control组中,不同subtopics接受到的impressions会各有不同。换句话说,我们可以通过exploration将兴趣曝光分布漂移至一个更平衡的曲线。相似的,右图中,在engagement分布中的漂移表示:相关和新兴趣可以在 engagement-interest分布上进行平衡。

图片名称

图7

meituan在《Enhancing Personalized Ranking With Differentiable Group AUC Optimization》中提出了PDAOM loss:

抽要

AUC是评估classifier效果的一个常用指标。然而,大多数分类器使用cross entropy训练,它不会直接最优化AUC metric,这在training和evaluation间会存在一个gap。这里提出的PDAOM loss:一个最大化violation的个性化可微AUC最优化方法(Personalized and Differentiable AUC Optimizationy method with Maximum violation), 当训练一个二分类器时可以直接应用,并使用gradient-based方法进行最优化。特别的,我们会使用通过user ID group在一起的sub-batches内的不同的(neg, postive)pair样本,来构建了pairwise exponential loss,目标是指导分类器关注:在独立用户视角下,很难区分的正负样本对间的关系。对比起pairwise exponential loss的原始形式,提出的PDAOM loss不仅会提升在离线评估中的AUC和GAUC metrics,也会减少训练目标的计算复杂度。再者,在“猜你喜欢”的feed推荐上,PDAOM loss的在线评估可以获得在点击数上 1.4%的提升,在订单数上获得0.65%的提升,这在online life service推荐系统上是个显著的提升。

1.介绍

二分排序(Bipartite ranking)在过去受到了大量关注,在工业应用中被广泛使用。它的目标是:学习一个模型,使得正样本的排序高于负样本。不失一般性,我们以推荐系统为例,并详述二分排序。根据一个用户的历史行为统计,推荐系统会提供一个关于items的有序列表,其中,感兴趣的items会出现在不感兴趣的items之前。达到该目标的关键思想是:为每个item预估CTR。用户浏览过但没有点击的items会被标记为负样本,点击过的items会被标记为正样本。接着,CTR预估模型可以被训练成一个二分类器,并使用 cross entropy进行最优化。这种方式下,每个样本会被独立对待,并且在训练期间,正负样本间的限制关系不会被引入。另一个关注点是:对比起用户看过的items,clicked items只占一小部分。因而,模型的效果基本上使用AUC metric进行评估,其中数据分布是imbalanced的。AUC会measures:对于一个随机抽样的正例的score,它要比一个随机抽样的负例score具有更高分的概率。然而,在训练期间cross entropy目标,不会完全与evaluation期间的目标完全对齐。实际上,一个常见现象是,当训练loss减少时AUC metric不会增加,在工业界推荐数据集上训练的一个示例如图1所示。它会启发我们,在训练期间直接对AUC metric进行最优化。

图片名称

图1 loss曲线和AUC metric随training steps的变化,其中AUC metric不总是随loss的减少而增加

另一个大问题是:推荐系统经常面对“长尾”现象,例如:一小部分商品会占据着大量的销售额。图2展示了来自Meituan电商的统计数据。我们根据它们的订单质量将商品分为100 bins,并绘制出top 30 bins。我们可以看到,top 1 bin的商品贡献了37%的订单,top 20 bins的商品贡献了80%的订单如果我们使用这样不均衡的数据来训练一个CTR预估模型,该模型会趋向于分配更高得分给热门商品,即使一些用户可能不喜欢这些items,这在个性化预估上会降低模型效果。Group AUC【19】是一个合理的metric,用于评估一个ranking model的个性化推荐能力。它会通过user ID进行分组,计算各个sets中的AUC,并每个set的结果进行平均。经验上,对比起AUC metric,离线的GAUC metric会与在线效果更一致些,进一步启发我们在训练ranking model时将GAUC metric加入到objective中。

图片名称

图2 在美团电商中的长尾现象。top bins中的商品贡献了大比例的订单

然而,有两个原因阻止我们直接最优化AUC metric。

  • 一方面,AUC metric会通过一个binary indicator函数的总和来计算,它是不可微的。因而,gradient-based optimization方法不能应用于该问题中。
  • 另一方面,AUC的公式会考虑上每个postive/negative样本对,会导致时间复杂度上升到\(O(N^+ N^-)\),它在实际工业推荐场景中是不可接受的,通常会是数十亿阶。

该问题上做了大量研究:

  • 对于前者:对于原始AUC公式,最近工作尝试替代可微替代目标函数(differentiable surrogate objective function)。【18】提出了使用它的convex surrogate(例如:hinge loss function)来替代indicator function。【2】设计了一个regression-based算法,它使用pairwise squared objective function,用于measure在不同分类的两个实例间的ranking errors。【3】研究了基于最优化pairwise surrogate objective functions的AUC一致性
  • 对于后者:mini-batch 最优化策略可以使得处理大规模数据集。为了将AUC最大化方法应用于data-intensive场景,我们会研究以mini-batch方式最优化它。

特别的,我们提出了PDAOM loss,它关注于难区分的正负样本对,而非将所有组合考虑在内。该trick不仅会提升offline效果,也会减小最优化的复杂度。

2.相关工作

3.方法

A.前提

AUC的原始定义与ROC curve有关。假设分类器会生成一个连续值,用于表示输入样本是postive的概率,接着需要一个决策阈值来决定:样本是该标记成postive还是negative。对于每个阈值来说,我们可以获得一个true-postive rate和false-postive rate的pair。通过将该阈值从0到1进行遍历,我们绘制出获得的rates的pairs,就生成了ROC曲线。因而,通过对ROC曲线的下面面积计算均值的AUC metric是很复杂的。AUC的一个等价形式是:归一化的Wilcoxon-Mann-Whitney (WMW)统计:

\[AUC = \frac{\sum\limits_{i=0}^{m-1} \sum\limits_{j=0}^{n-1} \mathbb{1} (f(x_i^+) > f(x_j^-))}{mn}\]

…(1)

其中:

\(\lbrace x_i^+ \rbrace\)和\(\lbrace x_j^- \rbrace\)分别是postive和negative样本的集合。由于indicator function是不可微的,WMW统计不能使用gradient-based算法进行最优化。它启发我们寻找一种可微的surrogate objective function,用于替代WMW statistic。也就是说,获得surrogate function的最优解等价于最大化AUC metric。我们将使用将surrogate的objective function公式为:

\[\underset{x^+ \sim P^+, \\ x^- \sim P^-}{E} (\phi(f(x^+) - f(x^-)))\]

…(2)

其中:

  • \(\phi\)是surrogate function,一些常用的示例如表1所示。
  • \(P^+, P^-\)分别表示正负样本分布

图片名称

表1 常用的surrogate function,当成AUC的indicator

在本paper中,我们出于两个原因会使用pairwise exponential loss 作为surrogate

  • 首先,【3】中已经证明,pairwise exponential loss与AUC一致。
  • 第二,我们会对比在我们的先决实验列出的surrogates,并发现pairwise exponential loss要胜过离线评估(如表4所示)

图片名称

表4

B. AUC Optimization with Maximum Violation

上述提到的surrogate objective function存在两个主要缺点:

  • 一方面,这样的objective会等价地关注于每个pair,因而,分类器会花费大量精力在建模易区分的正负样本对关系上
  • 另一方面,对于一个batch数据,它包含了\(N^+\)的正样本和\(N^-\)的负样本,处理每个pair的复杂度是\(O(N^+ N^-)\),它对于一个大batch-size来说是很耗时的。

聚焦于上面的问题,我们提出构建难样本对,并让模型关注于难样本对,而非所有样本对。一个难样本对指的是:模型很难区分正/负样本labels的实例。因而,对于这样的正负样本对,输出scores是很接近的,它使得决策边界不好判断。考虑:

\[\underset{x^+ \sim P^+ \\ x^- \sim P^-}{E} (\phi(f(x^+) - f(x^-))) \leq \underset{x^+ \sim P^+ \\ x^- \sim P^-}{max} ( \phi(f(x^+) - f(x^-)))\]

…(3)

(3)的一个可行解是:设置 \(\underset{x^+ \sim P^+, \\ x^- \sim P^-}{max}(\phi(f(x^+) - f(x^-)))\)作为objective function。计算该最大值只依赖于那些很可能有violate relation的正负样本对。在该方式下,来自easy negatives的loss累积不会影响模型的更新。尽管这样的转换会导致模型关注于确定决策边界,复杂度仍然是\(O(N^+ N^-)\)。由于\(f(x^+) - f(x^-) \in [-1, 1]\),surrogate function \(\phi\)会在该区间内单调递减。相等的,\(\underset{x^+ \sim P^+ \\ x^- \sim P^-}{max} (\phi(f(x^+) - f(x^-)))\)可以简化为:

\[\phi (\underset{x^+ \sim P^+ \\ x^- \sim P^-}{min}(f(x^+) - f(x^-))) = \phi( \underset{x^+ \sim P^+}{min} f(x^+) - \underset{x^- \sim P^-}{max} f(x^-))\]

…(4)

理想的,一个正样本的最低分期望会高于在一个batch内负样本的最高分。我们将DAOM loss定义为:

\[L_{DAOM} = \phi( \underset{x^+ \sim P^+}{min} f(x^+) - \underset{x^- \sim P^-}{max} f(x^-))\]

…(5)

注意,我们只会选择具有最高score的正样本,以及具有最低score的负样本,构建pair的复杂度会减小到 \(O(N^+ + N^-)\)。

通过GAUC最优化来增强个性化排序

以上章节详述了如何构建在一个batch内的paired samples,但它满足不了个性化推荐的需求。实际上,我们会发现,GAUC[19] metric与在线效果更一致些。相应的,一个天然的想法是,当最优化模型时,将GAUC metric添加到objective中。考虑GAUC指标的原始计算,样本会首先被分成多个groups。在本context中,groups会被通过user ID进行划分。接着,AUC metric会分别在每个group中计算,GAUC metric会通过将所有groups的AUC metrics进行加权平均得到。weight与曝光或点击次数成比例,这里我们对所有用户将weight设置为1。我们会在训练阶段模拟GAUC的计算:

  • 当准备训练数据时,我们会根据每个样本的user ID对样本进行排序,以便属于同一个用户的样本会出现在相同的batch中
  • 一个batch的数据可能会包含许多不同的user IDs,我们将batch划分成sub-batches,在sub-batch中的user ID是相同的

接着我们应用DAOM loss到每个sub-batch中,并将个性化DAOM loss定义为:

\[L_{PDAOM} = \sum\limits_{u \in U} \phi( \underset{x^+ \sum P_u^+}{min} f(x^+) - \underset{x^- \sim P_u^-}{max} f(x^-))\]

…(6)

其中,U表示由user ID分组的sub batches。在训练一个二分类器的条件下,提出的PDAOM loss与cross entropy一起来形成最终的objective function:

\[L = -y log(f(x)) - (1-y) log(1 - f(x)) + \lambda \sum\limits_{u \in U} \phi( \underset{x^+ \sim P_u^+}{min} f(x^+) - \underset{x^- \sim P_u^-}{max} f(x^-))\]

…(7)

其中:y是label,\(\lambda\)会对cross entropy和PDAOM loss的weight进行balance。

实验

google在2021年的《Learning to Embed Categorical Features without Embedding Tables for Recommendation》中提出了一种Deep Hashing Embedding方法来编码categorical feature:

摘要

分类特征(例如user/item ID)的embedding learning是各种推荐模型的核心。标准方法是创建一个embedding表,其中每一行代表每个唯一特征值的专用嵌入向量(dedicated embedding vector)。然而,这种方法无法有效处理高基数特征(high-cardinality features)和在现实世界推荐系统中普遍存在的未见过的特征值(例如新的视频ID)。在本文中,我们提出了一种替代嵌入框架——深度哈希嵌入(DHE:Deep Hashing Embedding),通过深度嵌入网络动态计算嵌入,取代了embedding table。DHE首先使用多个哈希函数和转换将特征值编码为唯一标识符向量,然后应用深度神经网络(DNN)将标识符向量转换为embedding。编码模块是确定性的、不可学习的,并且无需存储,而嵌入网络在训练期间更新以学习生成嵌入。

实证结果表明,DHE在模型尺寸更小的情况下,与标准的独热满嵌入(one-hot full embedding)达到了可比的AUC。我们的工作为设计不使用嵌入表查找的基于DNN的分类特征替代嵌入方案提供了新的见解。

1. 引言

机器学习在建模各种数据类型方面具有高度的通用性,包括连续特征、稀疏特征和序列特征。在这些特征中,我们专注于改进大词汇量分类特征的嵌入学习。具体来说,我们假设:一个分类特征由词汇表𝑉定义,其中特征值是𝑉中的(确切的)一个元素。例如,ID特征通常是分类特征,其中每个特征值是一个唯一ID(例如视频ID)。另一个例子是“设备”特征,“iPhone 12”是一个可能的特征值。

嵌入学习已经成为建模分类特征的核心技术,并已被采用在各种模型中,如矩阵分解(MF)[28]和word2vec[24]。嵌入学习技术极大地帮助我们理解特征值(例如单词)的语义含义。embedding还已成为深度模型捕获特征值之间更复杂交互的基石(例如BERT[7],DeepFM[10])。

尽管嵌入学习在自然语言处理(NLP)[24]等多个领域取得了成功,但在推荐系统中应用嵌入学习时存在几个挑战:

  • 巨大的词汇量size:推荐系统通常需要处理高基数的分类特征(例如,在线视频分享平台的视频ID可能达到数十亿)。此外,在自然语言处理(NLP)任务中,单词的词汇量通常较小(例如,高级模型BERT[7]只有30K个标记的词汇表),这是由于常用的子词分割[29]技术用于减少词汇量。但是,将这种方法应用于推荐系统中的分类特征通常是不可行的.
  • 输入的动态性质:与相对静态的单词词汇表不同,推荐系统中的Vocabulary table可能高度动态。新user和新item每天都在进入系统,而过时的item逐渐消失.
  • 高度偏斜的数据分布:推荐数据中的分类特征通常遵循高度偏斜的幂律分布。少量具有不频繁特征值的训练样本会显著影响长尾item的embedding质量。

独热编码(one-hot encoding)广泛用于嵌入学习,它将一个特征值映射到一个one-hot向量,然后查找嵌入表中的嵌入向量。然而,one-hot表示通常会导致巨大的嵌入表,特别是对于大词汇量特征,同时它也未能适应词汇表外的特征值。在大规模网络推荐系统中,大部分参数都在embedding table上,而神经网络本身只占很小一部分参数[5]。在实践中,为了更好地处理新的(即词汇表外/未见过的)特征值并降低存储成本,通常采用hashing trick[36],它随机地将特征值映射到较少数量的哈希桶中,尽管不可避免的嵌入冲突通常会损害性能。本质上,这些嵌入方法可以被视为一个1层宽度的神经网络(即嵌入表)带有one-hot编码。

在本文中,我们寻求探索一种深度、狭窄且无冲突的嵌入方案,而不使用embedding table。我们提出了深度哈希嵌入(DHE)方法,使用密集编码(dense encodings)和一个深度嵌入网络来动态计算embedding。这完全取代了传统的embedding table。

具体来说,我们使用多重哈希和适当的转换来为给定特征值生成唯一的、确定的、dense real-valued的向量作为标识符编码(identifier encoding),然后深度嵌入网络将编码转换为最终的特征embedding。特征嵌入随后被送入推荐模型(例如MF或深度推荐模型)进行端到端训练。

图1展示了标准基于one-hot embedding与DHE之间的比较。

图片名称

图1 一个基于one-hot的full embedding和深度哈希嵌入(DHE)的示意图,用于为200万个ID生成32维嵌入。维度数字来自我们的实验,以提供一个具体的例子。这两种模型达到了接近的AUC,而DHE的size仅为full模型的1/4。DHE使用密集哈希编码来为每个特征值获得一个唯一标识符,并应用深度嵌入网络来生成特征嵌入。DHE不执行任何嵌入查找

我们的主要贡献如下所示:

  • 我们分析了各种嵌入方法,包括针对categorical特征的hashing-based的方法。与严重依赖one-hot编码的现有方法不同,我们通过多重哈希将每个特征值编码为唯一的dense编码向量,这是完全去除大词汇量特征的巨大嵌入表的第一步
  • 通过dense编码,我们用深度嵌入网络取代了常用的embedding loopup(本质上是一个浅层且宽的网络),这样做在参数上更高效
  • 我们还解决了可训练性和表达能力问题,以提高embedding生成的能力
  • 我们提出了基于上述编码和深度嵌入网络的深度哈希嵌入(DHE)。我们进一步改进DHE,通过在编码中整合侧特征,使其更好地泛化到特征值和新值

我们在两个具有大词汇量分类特征的推荐任务基准数据集上进行了广泛的实验。我们与最先进的模型进行了比较,并分析了DHE中各种关键组件的效果。结果表明,DHE是one-hot full embedding的一个有前景的替代方案。

我们首先从神经网络的角度讨论了各种现有的基于one-hot的嵌入方法。然后我们介绍了DHE的密集哈希编码(dense hash encodings)深度嵌入网络(deep embedding network)、以及使用side features以获得更好编码的扩展方法,在我们呈现实验结果之前。最后,我们讨论相关工作,总结我们的论文,并指出未来工作的有前景的方向。

2.one-hot based embedding learning

嵌入学习的核心思想是将特征值映射到一个𝑑维连续空间中。这些可学习的嵌入可以被浅层模型如word2vec[24]或MF[28]直接使用,以衡量两个特征值之间的相似性(例如,相似单词的嵌入之间的大内积)。此外,像DeepFM[10]或BERT[7]这样的深度模型,可以通过考虑embedding之间的交叉来建模更复杂的结构。

我们定义了一个通用框架,用于描述各种现有的嵌入方法以及我们提出的方法。

  • 嵌入函数:$T : 𝑉 → 𝑅^𝑑$:它将一个特征值(来自大小为$|𝑉| = 𝑛$的词汇表𝑉)映射到嵌入向量$e \in R^𝑑$。

一般来说,嵌入函数可以分解为两个组件:$T = F \circle E$,其中:

  • E是一个编码函数,用于在某些空间中表示特征值
  • F是一个解码函数,用于生成嵌入向量v

在本节中,我们介绍了基于one-hot编码的全嵌入(full embedding)和基于哈希的嵌入(hashing embedding)方案。相关符号总结在表9中。

2.1 One-hot Full Embedding

这是最直接且最常用的嵌入分类特征的方法,它为每个特征值分配了一个在嵌入表中唯一的𝑑维嵌入。具体来说,编码函数𝐸将一个特征值映射到一个独特的one-hot向量。在离线设置中,即使特征值是非数值类型(如字符串,例如分类特征“国家”的特征值“日本”或“印度”),这也很容易实现,因为我们可以从特征值到$\lbrace 1, 2, …, 𝑛 \rbrace$获得一对一的映射。

因此,我们假设特征值已经被映射到$\lbrace 1, 2, …, 𝑛 \rbrace$,然后嵌入方法创建了一个嵌入表$W \in R^{𝑛 \times 𝑑}$,并查找其第s行$W_𝑠$以获取特征值𝑠的嵌入。这相当于以下步骤:

  • (i) 我们应用编码函数𝐸,使用one-hot编码向量对特征值𝑠进行编码:$𝐸(𝑠)=b \in \lbrace 0, 1 \rbrace^𝑛$,其中:$𝑏_𝑠=1$且$𝑏_𝑗=0(𝑗 \neq 𝑠)$
  • (ii) 然后我们应用解码函数𝐹,一个可学习的线性变换$W ∈ R^{𝑛×𝑑}$来生成嵌入e,即$e = 𝐹(b) = W^T b$。

简而言之,embedding lookup过程可以被视为一个基于one-hot编码的1-layer神经网络(无bias项)

2.2 One-hot Hash Embedding

尽管full embedding简单且有效,但在大规模或动态设置中存在两个主要问题:

  • (i) 嵌入表的大小与词汇量大小线性增长,可能导致巨大的内存消耗。例如,仅用于10亿视频ID的100维嵌入就占用了接近400GB的内存;
  • (ii) 在新值不断出现的在线学习环境中,full embedding方案无法处理未见过的(词汇表外的)特征值。为了解决上述问题,已经提出了各种基于哈希的方法(例如[30, 34, 36]),并在生产规模系统中广泛使用,用于处理大词汇量和词汇表外的分类特征(例如Youtube[37]和Twitter[38])。

hasing trick[36]是一种代表性的哈希方法,用于减少大型词汇量的one-hot编码的维度。编码函数𝐸仍然将特征值映射到一个one-hot向量(但是使用通常更小的基数𝑚):

\[𝐸(s) = b \in \lbrace 0, 1 \rbrace^𝑚\]

其中:

  • $𝑠 \in 𝑉, 𝑏_{𝐻(𝑠)}=1$, 且$𝑏_𝑗=0 (𝑗 \neq 𝐻(𝑠))$
  • 𝐻:为哈希函数,将特征值(包括未见过的值)映射到{1, 2, …, 𝑚}上,其中𝑚是哈希后词汇量的size

哈希函数𝐻试图尽可能均匀地分配哈希值以减少冲突,尽管当$𝑚 < 𝑛$时这是不可避免的。类似地,解码函数返回embedding table的第𝐻(𝑠)行。总之,hashing trick使用哈希将特征值映射到𝑚维one-hot向量,然后应用1层网络来生成嵌入。

3 深度哈希嵌入(DHE)

如前一节所介绍的,无论是full embedding还是hashing-based embedding方法,本质上都是基于one-hot编码和浅层网络。在本节中,我们提出了深度哈希嵌入(DHE),这是一种用于在大词汇量或动态设置中进行嵌入学习的替代方案。DHE使用real-valued dense编码和深度神经网络来生成embedding,无需任何embedding lookup。

遵循编码和解码的嵌入框架(T = F ◦ E),我们提出了几个设计良好编码的属性,然后介绍我们的编码函数E和DHE中的解码函数F,接着是增强side features的编码设计,以实现泛化。

3.1 编码设计

如果我们没有对特征值的任何先验知识,那么怎样才算是一个良好的编码?这是我们在本节中研究的核心问题,它也引出了我们的DHE的编码设计。我们得到了具备以下良好编码属性的设计:

  • 唯一性:编码对于每个特征值应该是唯一的。这也是full embedding和多重哈希方法(multiple hashing)的目标。否则,就会有特征值不得不共享相同的编码。冲突的编码使得后续的解码函数无法区分不同的特征值,这通常会损害模型性能
  • 相等相似性(Equal Similarity):我们认为只有唯一性是不够的。一个例子是二进制编码,它使用二进制表示作为整数(例如ID)的编码:例如,$𝐻(9)=[1, 0, 0, 1]$。我们可以看到,与$𝐻(7) = [0, 1, 1, 1]$相比,$𝐻(8)=[1, 0, 0, 0]$与𝐻(9)更为相似。我们认为:这引入了一个错误的归纳偏差(inductive bias:即ID 8和ID 9更相似),可能会误导后续的解码函数。双重哈希(double hashing)存在类似的问题:在某个哈希函数中发生冲突的两个特征值的编码,比在两个哈希函数中都没有冲突的两个值的编码更相似。由于我们不知道分类特征之间的语义相似性,我们应该使任意两个编码的相似性相等,不引入任何归纳偏差
  • 高维度(High dimensionality):我们希望编码对于后续的解码函数来说易于区分不同的特征值。由于高维空间通常被认为更可分(例如,核方法),我们相信编码维度也应该相对较高。例如,one-hot编码具有极大的维度(full embedding的𝑛和hashing embedding的𝑚)。另一个例子是身份编码(identity encoding),它直接返回ID号码:例如,$𝐸(7) = [7]$。尽管这为每个ID提供了一个唯一的编码,但对于后续的解码函数来说,基于1维编码生成嵌入将是极其困难的。
  • 高香农熵:香农熵[31](以“比特”为单位)衡量一个维度中携带的信息。高熵的要求是从信息理论的角度防止冗余维度。例如,一个编码方案可能满足上述三个属性,但在某些维度上,所有特征值的编码值都是相同的。因此,我们希望通过在每个维度上最大化熵来有效利用所有维度。例如,one-hot编码在每个维度上的熵非常低,因为对于大多数特征值来说,任何维度上的编码都是0。因此,one-hot编码需要极高的维度(即𝑛),并且效率极低。编码属性的正式定义和分析可以在附录中找到,我们总结的结果在表2中。

3.2 稠密哈希编码(Dense Hash Encoding)

图片名称

在分析了各种编码方案的属性之后,我们发现没有任何现有的方案能满足所有期望的属性。特别是我们发现,非独热编码(non-one-hot:如二进制和身份编码)虽然摆脱了embedding table,但未能满足相等相似性和高维度属性。受到这一点的启发,我们提出了稠密哈希编码(Dense Hash Encoding),旨在结合上述编码的优势并满足所有属性。

不失一般性,我们假设特征值是整数(integers),因为我们可以利用字符串哈希将字符串(strings)值映射为整数(integers)(由于输出空间很大(64位整数约有$2^64$个值),基本上不会发生冲突。一个例子是CityHash64:https://github.com/google/cityhash)。所提出的编码函数为:$𝐸 : N \rightarrow R^k$

使用k个通用哈希函数将一个特征值映射到一个k维dense real-valued encodings上。具体来说,我们有:

\[𝐸′(𝑠) = [𝐻^{(1)}(𝑠), 𝐻^{(2)}(𝑠), \cdots, 𝐻^{(k)}(𝑠)]\]

其中:

  • $𝐻(i) : N \rightarrow {1, 2, …, m}$

请注意,在这种情况下,m与embedding table无关,我们只需要将其设置为一个相对较大的数字(在我们的实验中是$10^6$)。通用哈希[4](hashing)的一个优良属性是:哈希值在$\lbrace 1,2,\cdots,m \rbrace$上均匀分布(平均而言)。

通过适当的转换,我们可以获得实值编码,因为输入通常是实值的,为了数值稳定性进行归一化:$𝐸(𝑠) = transform(𝐸′(𝑠))$。我们考虑逼近以下几种常用的分布:

  • 均匀分布。我们简单地将编码$𝐸‘$归一化到[-1, 1]的范围。由于哈希值在$\lbrace 1, 2, …, m \rbrace$中平均分布均匀,因此这在较大的m情况下可以合理地近似均匀分布𝑈(-1, 1)。
  • 高斯分布。我们首先使用上述转换获得均匀分布的样本,然后应用Box-Muller变换[3],将均匀分布的样本(即𝑈(-1, 1))转换为标准正态分布N(0, 1)。具体实现请参见附录。

这两种分布的选择部分受到生成对抗网络(GANs)[9]的启发,GANs通常从均匀或高斯分布中抽取随机噪声,然后将其输入神经网络进行图像生成。请注意,转换(和哈希)是确定性的,这意味着编码(对于任何特征值)不会随时间变化。我们从经验上发现这两种分布在效果上类似,因此出于简单起见,默认选择均匀分布

与现有仅限于几个哈希函数的hashing方法不同,我们选择了一个相对较大的k来满足高维度属性(在我们的实验中k=1024,尽管它比n显著小)。我们从经验上发现,与现有哈希方法相比,我们的方法从更大的k中显著受益。此外,所提出的密集哈希编码也满足其他三个属性。更多分析可以在附录中找到。

图片名称

请注意,整个编码过程不需要任何存储,因为所有的计算都可以即时完成。这也是使用多重哈希的一个优良属性,因为我们获得了一个更易于区分的高维编码,而没有存储开销。从计算角度来看,时间复杂度是𝑂(𝑘),每个哈希的计算是独立的,因此适合并行化和硬件如GPU和TPU。例如,我们使用整数的通用哈希[4]作为底层哈希,并在附录中的算法2中描述了编码过程。其他通用哈希(例如针对字符串的)也可以采用来处理不同的特征类型。

图片名称

3.3 深度嵌入网络

在DHE中,解码函数$𝐹 : R^k \rightarrow R^d$需要将一个k维编码向量转换为一个d维嵌入。显然,实值编码不适用于embedding lookup。然而,映射过程非常类似于一个高度非线性的特征转换,其中输入特征是固定且不可学习的。因此,我们使用强大的深度神经网络(DNN)来模拟这样的复杂转换,因为DNN是表达能力强的通用函数逼近器[23]。此外,最近的一项研究表明,更深的网络比浅层网络更具参数效率[21],因此DHE可以相比one-hot full embedding(一个1层浅层网络)减少模型大小

然而,即使使用DNN,转换任务也极具挑战性。本质上,DNN需要在其权重中记忆信息(之前存储在巨大的嵌入表中)。我们希望层次结构和非线性激活可以使DNN比one-hot编码(即1层宽的NN)更有效地表达embedding函数。这是由最近的研究激发的,该研究表明深度网络可以比宽而浅的网络使用更少的参数来近似函数[21]。

具体来说,我们使用一个前馈网络作为DHE的解码函数。

  • 我们通过h个隐藏层(每层有$𝑑_{NN}$个节点)转换k维编码。
  • 然后,输出层(有𝑑个节点)将最后一层隐藏层转换为d维特征值嵌入。
  • 在实践中,$𝑑_{NN}$由内存消耗费用决定。

我们可以看到DNN中的参数数量是:

\[𝑂(𝑘 * 𝑑_{NN} + (ℎ −1) * 𝑑_{NN}^2 + 𝑑_{NN} * 𝑑)\]

这与𝑛或𝑚无关。这也是DHE的时间复杂度。DHE的一个独特特点是:它不使用任何embedding lookup,而是完全依赖隐藏层来即时记忆和计算embedding。

然而,我们发现训练深度嵌入网络相当具有挑战性(相比之下,基于one-hot的浅层网络更容易训练)。我们观察到训练和测试性能较差,据推测是由于可训练性和表达能力问题。表达能力问题相对独特于我们的任务,因为NN通常被认为表达能力强且容易过拟合。然而,我们发现在我们的案例中,embedding网络是欠拟合而不是过拟合,因为从hash encoding到embedding的嵌入生成任务需要高度非线性的转换。我们怀疑默认的ReLU激活($𝑓(𝑥)=max(0, 𝑥)$)表达能力不够,因为ReLU网络是分段线性函数[1]。我们尝试了各种激活函数2,并发现最近提出的Mish激活[25]($𝑓(𝑥)=x \cdot tanh(ln(1 + e^x)))$)始终比ReLU和其他激活函数表现得更好。我们还发现batch normalization(BN)[16]可以稳定训练并取得更好的性能。然而,像dropout这样的正则化方法并没有帮助,这再次验证了我们的嵌入网络的瓶颈是欠拟合。

3.4 用于泛化的side features增强编码

DHE的一个有趣扩展是利用side features来学习更好的编码。这有助于将结构注入我们的编码中,并在特征值之间以及对新值实现更好的泛化。类别型特征的嵌入学习的一个重大挑战是:我们只能记忆每个特征值的信息,而无法在特征值之间泛化(例如,从ID 7泛化到ID 8)或泛化到新值。这是因为底层特征表示并没有暗示不同ID之间有任何内在的相似性。实现泛化的一个典型方法是使用side features,这些特征提供了泛化的固有相似性(例如,dense特征或bag-of-word特征)。然而,这些特征通常被用作推荐模型的附加特征,而不是用于改进分类特征的嵌入学习。

基于one-hot full embedding继承了类别型特征的属性,并独立生成嵌入(即,任何两个ID的嵌入都是独立的)。因此,基于one-hot的方案可以被视为去中心化的架构,它们擅长记忆但无法实现泛化。相比之下,DHE方案是一个集中式的解决方案:嵌入网络中的任何权重变化都会影响所有特征值的嵌入。我们相信集中式结构为泛化提供了潜在的机会。

由于DHE的解码函数是一个神经网络,我们可以灵活地修改输入,例如结合side feature。我们提出了针对DHE的side features增强编码,并希望这将改善特征值之间的泛化,以及对新值的泛化。增强编码的一个直接方法是直接连接可泛化的特征和哈希编码。如果特征向量的维度太高,我们可以使用局部敏感哈希[6]来显著减少基数,同时保留标签相似性。增强后的编码随后被输入到深度嵌入网络中以生成嵌入。

我们认为,哈希编码提供了一个用于记忆的唯一标识符,而其他特征则使泛化能力得以实现。

3.5 总结

总而言之,DHE有两个主要组成部分:1. 密集哈希编码;2. 深度嵌入网络。编码模块是完全确定性的且不可学习的,不需要任何存储参数。嵌入网络将标识符向量转换为所需的嵌入。DHE的一个显著区别是缺乏嵌入表,因为我们将所有嵌入信息存储在DNN的权重中。因此,所有特征值共享整个嵌入网络来生成嵌入,这与hashing trick不同,后者为不同的特征值共享相同的嵌入向量。这使得DHE免受嵌入冲突问题的影响。DHE的瓶颈在于嵌入网络的计算,尽管这可以通过更强大的硬件和神经网络加速方法(如剪枝[8])来加速。

与现有明确为每个ID分配相同嵌入长度的嵌入方法不同,DHE的一个有趣事实是,每个特征值的嵌入容量是隐含的,并且可能是可变的。这对于在线学习环境(词汇量不断增长)和幂律分布(嵌入网络可能会花费更多的参数来记忆流行的ID)可能是一个期望的属性。

图片名称

paper原文:

https://dl.acm.org/doi/pdf/10.1145/3447548.3467304

google在《Trading Off Diversity and Quality in Natural Language Generation》讲了下NLG中的Diversity & Quality的tradeoff。

摘要

对于讲故事、对话等开放式语言生成任务(open-ended language generation tasks),选择正确的解码算法(decoding algorithm)对于控制生成质量和多样性之间的权衡至关重要。然而,目前尚无共识,不知道哪种解码程序最佳,甚至不知道比较它们的标准是什么。我们通过将解码(decoding)视为一个多目标优化问题来解决这些问题,旨在同时最大化响应质量和多样性。我们的框架使我们能够首次对整个质量-多样性谱上的解码方法进行大规模评估。我们发现:当多样性是优先考虑时,所有方法的表现都相似;但当质量被视为更重要时,最近提出的核采样(nucleus sampling:Holtzman等人,2019年)胜过所有其他评估的解码算法。我们的实验还证实了“可能性陷阱(likelihood trap)”的存在,这是一个反直觉的观察,即高可能性序列往往出人意料地质量很低。我们利用我们的发现来创建并评估一种名为选择性采样(selective sampling)的算法,该算法可实际近似全局归一化温度采样(globally-normalized temperature sampling)

1. 引言

生成式语言模型适用于包括撰写文章、创作莎士比亚十四行诗或进行对话在内的多种任务。对于几乎所有这些目标,人类判断是可信评估生成文本质量的唯一方式,这使得直接针对期望目标进行优化变得极其昂贵。研究人员通常通过采用两阶段流程来解决这个问题:

  • 在训练时,模型试图模仿人类撰写的文本语料库作为真实目标的代理(例如更高质量的样本)。
  • 在推理时,模型通过解码算法生成文本序列,该算法在给定网络原始预测的基础上更好地优化了期望的成功标准。

在过去几年中,几乎所有主要的图像和语言生成突破(Radford等人,2019年;Zhang等人,2019年;Fan等人,2018年)都采用了这种两阶段流程,其中模型概率分布在训练和推理时不同。

本研究考察了语言模型的解码方法,众所周知,这对于语言生成的性能至关重要(Ippolito等人,2019a)。最近改进生成语言模型的努力主要集中在:

  • 改变模型架构(Vaswani等人,2017年;Gehring等人,2017年)、
  • 训练方法(de Masson d’Autume等人,2019年)
  • 模型大小(Radford等人,2019年;Adiwardana等人,2020年)

虽然也努力改进解码器(Vijayakumar等人,2016年;Li & Jurafsky,2016年;Ippolito等人,2019b),但在评估解码器性能改进方面取得了明显较少的进展,特别是对于开放式生成任务,成功的模型必须生成多样化的高质量答案范围,而不仅仅是单一输出

对于许多任务来说,质量和多样性这两个标准并不总是同等重要。在机器翻译中,最重要的标准是产生准确、高质量的输入翻译;生成多种替代翻译也很有用,但如果以牺牲正确性为代价则不可取。与此同时,在开放式领域对话中,目标通常是维持与人类对话伙伴的愉快对话,因此更重视多样性。

为了具体说明对话案例,短语“I don’t know”通常是完全合理的评论,并且在正常的人类对话中经常出现。然而,一个在每次对话中都重复“I don’t know”的聊天机器人是一个很差的对话者。在这种开放式领域中,能够就广泛的话题进行对话,偶尔有些奇怪的言论,比仅仅重复最安全的言论要受欢迎得多(Li等人,2016年)。

为了同时捕捉这两个标准,我们建议将生成式语言模型的目标框架设定为在质量和多样性上的多目标优化。所提出的框架足够灵活,可以包含传统上对多样性重视较低的任务,如机器翻译或摘要,以及其他重视多样性的任务,如讲故事。此外,所提出的框架使我们能够通过比较整个质量-多样性谱上的性能来评估现有的解码算法。我们比较了各种常用的解码算法,在解码器质量的首次大规模研究中,使用了超过38,000个评分对近10,000个样本进行了评估。我们发现,当多样性受到高度重视时,所有解码器的表现都相似,但当质量被视为更重要时,最近提出的核采样(Holtzman等人,2019年)胜过所有其他评估的解码算法

此外,我们利用我们的框架来调查普遍持有的直觉,即模型可能性(likelihood)与人类质量判断直接相关。首先,我们通过测量人类评估者判断的句子质量与其在生成模型下的可能性(likelihood)之间的关系,明确测试了这种信念。我们的发现证实了可能性陷阱(likelihood trap)的存在,即最高可能性(likelihood)的句子质量出奇地低,尽管模型可能性(likelihood)与人类质量判断之间通常存在正相关关系。虽然这一发现已经在从新闻生成到机器翻译的多种语言生成任务和模型中观察到(Cohen & Beck,2018年;Holtzman等人,2019年),但据我们所知,我们是第一个在模型概率空间的所有点明确量化两者关系的人。

其次,我们提出并评估了选择性采样(selective sampling),这是一种通过从全局温度调整(global temperature-adjusted)的模型分布中抽取样本来强调高概率句子的解码器。虽然这传统上被认为由于计算配分函数的困难而不可行,但我们提出了一种使用拒绝采样(rejection sampling)直接从所需分布中采样的程序,而无需显式计算划分函数(partition function)。在与现有的逐标记解码器一起评估此解码器时,我们发现即使考虑到可能性陷阱(likelihood trap),它的性能也很差,这表明局部逐标记解码器可能能够捕捉全局解码器无法捕捉的结构。

2. 框架

在本节中,我们介绍了一个用于在语言生成中权衡质量和多样性的框架。设X表示所有可能生成句子的空间。我们考虑自回归语言模型,该模型将序列$(x_1, x_2, \cdots, x_n)= x_{1:n} \in X$的可能性按从左到右的方式逐个分解为token(Hamilton,1994;Sutskever等人,2014)。具体来说,序列的条件可能性是:

\[p_{\text{model}}(x_{1:n} | c) = \prod_{i=1}^{n} p_{\text{model}}(x_i | x_{1:i-1}, c)\]

其中:

  • c是任何附加的条件信号,例如对话的上一个回合。随机采样是直接从模型联合分布的分解中得出的解码过程,其中token根据模型的条件分布一次一个地采样:
\[p_{\text{model}}(x_i | x_{1:i-1}, c)\]

通常不直接从$p_{model}$采样;它首先通过解码器进行后处理,以使其偏向于已经具有高可能性的token。

在我们提出的框架中,我们通过要求人类对单个句子$x ∈ X$进行质量判断HJ(x)来评估其质量。我们可以将模型的质量Q定义为:从模型中抽取的句子的预期人类“质量”判断(HJ:Humen Judgement)

\[Q(p) = \mathbb{E}_{x \sim p}[HJ(x)]\]

我们通过香农熵H(Shannon,1948)来衡量模型的多样性,这是一个在计算机科学以外的许多领域广泛使用的多样性度量指标,包括生物学、经济学、化学和物理学。香农熵由下式给出:

\[H(p) = -\mathbb{E}_{x \sim p}[\log p(x)]\]

这使我们能够将我们的多目标优化问题定义为最大化以下目标G:

\[G(p) = Q(p) + \lambda H(p)\]

其中:

  • λ是任务特定度量,用于衡量多样性和质量的相对重要性。

因此:

  • 对于像对话这样的开放式任务,强调多样性,较大λ下的解码器性能至关重要。
  • 对于更封闭领域任务,如摘要或机器翻译,在较小的λ(包括可能的0)下的性能更为重要。

理想情况下,人们会直接针对目标G进行优化,但由于它依赖于人类判断,实际上直接优化是不可行的。相反,以前的工作优化了一个代理目标(如KL散度),然后使用解码算法来“扭曲”模型$p_{model}$,使其在事后朝向更高的G值。

在接下来的部分中,我们将我们的目标G与现有的解码器联系起来,并调查一种新的解码算法,该算法是全局归一化跨越所有可能的序列,而不仅仅是逐个token。

3. 选择性采样

3.1 似然陷阱

序列可能性(likelihood)通常用作选择高质量生成的启发式方法。在极端情况下,束搜索(Beam search)近似于寻找最有可能的序列生成:

\[x^* = argmax \ log p_{model}(x)\]

并且这是机器翻译中主要采用的方法(Koehn,2004)。然而,先前的工作表明,序列可能性与序列质量之间单调正相关的假设在极端情况下会崩溃。例如,众所周知,在机器翻译和图像字幕社区中,超过某个点后,增加束宽会损害BLEU分数和其他质量度量(Stahlberg & Byrne,2019;Koehn & Knowles,2017;Vinyals等人,2016)。最近,Holtzman等人(2019)观察到开放式生成中类似的现象,其中最高可能性的句子退化为极端重复。

我们通过抽取大量代表各种模型对数似然(log likelihood)的上下文-响应对来实证量化序列可能性与人类质量判断之间的关系。然后,我们要求人类众包工作者根据上下文对每个响应的质量进行评分,评分范围为五档:从“糟糕”到“高质量”。图1将这些评分作为$log p_{model}$的函数绘制出来,并确认平均而言,最高质量的生成不是似然最高的。具体来说,我们发现响应质量通常与$log p_{model}(x)$正相关,直到一个拐点之后,它变成负相关。在我们的实验中,这个拐点出现在$log p_{model}(x) = -58.09$。我们的发现表明,虽然模型可能性是响应质量的良好代理,但简单地最大化句子可能性会导致次优的响应质量。我们将这种现象称为似然陷阱。

图片名称

图1 似然陷阱。我们请了146名群众工作者对不同模型似然度下的100个句子的质量进行评分。虽然模型对数似然通常与人类平均质量判断呈正相关,但我们注意到在某个拐点之后它们变成了负相关。图中的每个点代表了具有相似模型似然度的5个句子的群众工作者平均评分。我们在第3节中更深入地讨论了这一现象。

在表??中可以看到可能性陷阱的例子。极端高可能性的文本序列倾向于退化为极端重复或其他无意义的内容,有些人将其归因于模型偏差(Holtzman等人,2019)或训练数据的异常(Ott等人,2018)。我们本文不探讨可能性陷阱的根本原因。

3.2 全局温度采样

受到我们的发现,即人类判断HJ与模型可能性在某些可能性区间内正相关的启发,我们研究:使用$log p_{model}$作为HJ的代理是否会导致更好的解码算法。具体来说,我们创建了一个代理质量函数,

\[\widehat{Q}(p) = \begin{cases} \mathbb{E}_{x \sim p}\left[ \log p_{\text{model}}(x) \right], & \text{if } \log p_{\text{model}} < \alpha \\ -\infty, & \text{otherwise} \end{cases}\]

其中:

  • α被选为超参数。

使用全局归一化温度采样,我们可以通过优化代理目标$\widehat{G}(p) = \widehat{Q}(p) + H(p)$来近似优化G。这是由于以下命题。

命题1: 假设P是某个句子有限集合X上的概率分布,H是香农熵函数。概率分布Q最小化逆KL散度DKL$(Q | P)$,使得$H(Q) = K$对于任何可实现的常数K具有形式,

\[Q(x) = \frac{P(x)^{1/\tau}}{ \sum_{x \in X} P(x)^{1/\tau} }\]

其中:

  • 温度 $τ \in [0,1]$。

证明。证明包含在附录A.1中。

图片名称

表1 不同模型似然度下的句子示例。具有非常低的对数似然度 $ p_{\text{model}} $ 的句子会产生无意义的内容,而模型下似然度很高的句子往往会陷入极端重复。这里展示的无意义和重复分类仅用于说明目的。群众工作者仅对句子的整体质量进行了评分。更多细节请参见附录。

当应用于自回归模型时,全局温度采样通常被认为是不可行的,因为它需要在所有可能序列的指数级大空间上求和以追求划分函数

\[Z = \sum_{x} p_{\text{model}}(x | c)^{1/\tau}\]

相反,过去的工作通常将句子分解为token,并以从左到右的自回归方式使用局部近似,

\[\hat{Z} = \prod_{i=1}^{n} \sum_{x_i} p_{\text{model}}(x_i | x_{1:i-1}, c)^{1/\tau}\]

其中模型在每组token上局部归一化。

这导致了众所周知的(局部)温度采样算法。

图片名称

算法1

不幸的是,虽然用一系列局部划分函数替换全局划分函数将一个指数问题转化为一个线性问题,但这种近似可能会使模型偏向于偏爱局部结构而不是全局结构。实际上,我们通过以下示例展示,对于一些联合分布,即使允许在每个时间步使用不同的温度τ进行局部温度采样,也不可能通过局部温度采样来表示全局归一化温度采样。

命题 2. 存在一种概率分布p和一个全局温度τ,使得没有任何参数选择能让局部温度采样匹配联合分布$p(x)^{(1/τ)}$。

图片名称

图2 局部温度采样的任何温度选择都必须满足 $ P(A) = P(B) $。然而,选择全局温度 $ \tau = 0.5 $ 会导致 $ P(A) = 0.5763 $ 和 $ P(B) = 0.4237 $,这在任何局部温度的选择下都不可能满足。

证明。图2展示了p的一个选择。通过构造,局部温度采样被迫在那个时间步使用的温度超参数不管如何设置,都要使 $p_{local}(A) = p_{local}(B)$。设置全局温度为 τ = 0.5,结果为:

\[P(A) = \frac{0.1^2 + 0.4^2}{0.1^2 + 0.4^2 + 0.25^2 + 0.25^2} = 0.5763 \\ P(B) = \frac{0.25^2 + 0.25^2}{0.1^2 + 0.4^2 + 0.25^2 + 0.25^2} = 0.4237\]

这无法通过任何局部温度设置来模仿。我们的核心见解是,可以通过拒绝采样从全局归一化温度采样分布中采样,而无需估计划分函数 Z

拒绝采样(Forsythe,1972)提供了一种从能量分布 $p_{energy}$ 采样的算法,如果存在一个建议分布 q 和常数 M,使得$M_q \geq p_{energy}$。

我们观察到:对于$τ \in (0, 1)$ 和 $0 ≤ p ≤ 1$,有 $p_{model} > p_{model}^{(1/τ)}$。这允许我们使用 $p_{model} $作为建议分布,因为全局温度采样的未归一化概率由 $p_{global} ∝ p_{model}^{(1/τ)} $给出。

选择性采样在设计上显著增加了采样具有大值 $log p_{model}$ 的序列的机会。为了避免陷入可能性陷阱,我们建议:明确丢弃 $log p_{model}(x)$ 大于选定超参数 α 的句子生成 x。

截止的额外积极副作用是:可以选择信封常数 M 以在 $p_{energy}$上创建紧密界限,这可以通过几个数量级增加接受概率。

事先,如何有效选择 α 并不明显。我们建议收集人类对从 $p_{model}$ 中随机抽取的样本选择的判断,如图 1 所示,并设置 α 等于发现的拐点。注意,虽然这导致我们的程序忽略了个别具有最高概率的句子集合,但这个集合的总概率质量相当低:在我们的实验中不到 0.5%

图片名称

图3 对于从相同提示中抽取的样本,$p_{model}(x)$的直方图。99.5%的样本具有小于图中以黑色显示的选定截断α的对数似然。

4. 实验

在第2节中,我们介绍了一个理论框架,用于在质量-多样性曲线上比较解码算法。在这个框架下,我们在下面描述的人类研究中评估了几种常用的解码算法。除了选择性采样,我们还考虑了以下自回归解码算法:

  • 温度采样:以概率与 $p_{model}(x_i \mid x_{1:i−1})^{(1/\tau)}$ 成比例来采样token。$\tau$从0变化到1。
  • top-k(Fan等人,2018):每个时间步只从词汇表中可能性最高的k个token中采样。k从1变化到词汇表大小。
  • top-p(也称为核采样)(Holtzman等人,2019):每个时间步只从包含最有可能的p百分比概率质量的token中采样,按可能性从高到低排序。p从0变化到1。

在它们超参数范围的极端情况下,这些算法都分别收敛到贪婪解码和随机采样。为了扫过质量-多样性曲线,我们在下面考虑了每种解码算法的几个超参数设置。我们把每种解码算法-超参数组合称为一个“解码配置”。

4.1 设置

我们将每种解码算法应用于GPT-2(Radford等人,2019)的774M参数变体,这是一个公开发布的语言模型。为了将样本定位在共同的上下文中,我们选择了48个GPT-2测试集中的示例作为条件。由于样本质量在样本简洁时变得模糊(Ippolito等人,2019a),我们明确要求所有采样方法生成恰好30个token,这个长度大约等于提示的长度

为了估计每种解码算法引起的分布的预期人类判断分数$Ep[HJ(x)]$,我们招募了146名合格的亚马逊Mechanical Turk(AMT)工人,他们通过资格任务的满意表现被选中。工人被呈现五组样本,每组样本都以相同的提示为条件,来自五种不同的算法-超参数配置,并被要求对每个样本分配从类似人类到胡言乱语的质量评分。如附录所示,向众包工作者展示的确切提示被包括在内。

先前的研究已经发现,当机器生成的和人类生成的续写在质量相似时,人类标注者在直接区分它们时存在显著困难,因为评估句子质量的任务具有很高的主观性(Ippolito等人,2019a)。我们发现,通过随机配对同时评估的样本来构建成对偏好评分,可以显著减少我们结果的方差。具体来说,如果一个样本的评分高于另一个,一个被分配+1的分数,另一个被分配-1的分数。如果两者评分相等,则两者都被分配0分。分配给解码配置的分数是它在所有成对偏好评分中的平均分数。

4.2 结论

我们现在介绍第一项大规模研究,比较解码算法及其超参数。与之前所有的工作(Holtzman等人,2019;Ippolito等人,2019b)不同,我们通过在同等多样性的点上比较样本质量,明确地将解码算法放在同等基础上进行比较。我们考虑每个解码算法的五种超参数配置,总共有十五种配置。对于每种配置和提示,我们抽取十个样本。总共,工作人员对近10,000个样本进行了评分,产生了超过38,000个成对评分。我们的主要结果总结在图2a和2b中。令人安心的是,熵和人类质量判断都随着解码算法超参数的变化而平滑变化。

正如预期的那样,直接从模型分布 $p_{\text{model}}(x) $ 进行随机抽样,同时具有最高的熵和最低的质量。这与长期以来的直觉相符,即解码算法对于提高样本质量至关重要。

为什么随机抽样的文本质量如此之差?像GPT-2这样的语言模型被训练来最小化训练集和模型分布 $p_{\text{model}}$ 之间的KL散度,这一目标优先考虑召回率而非精确度(Arjovsky等人,2017)。因此,模型倾向于确保高质量序列具有高可能性,而不坚持所有高可能性序列也具有高质量。当我们评估模型中的样本时,我们评估的是后者条件。

我们的第二个结论是,对于所有解码算法,样本质量随着熵的显著变化而变化。此外,在熵对齐的情况下,所有自回归解码算法的样本质量在广泛的范围内是可比的。只有当熵很低时——当解码算法严重影响抽样时——不同算法之间的样本质量才会出现分歧。在这种制度下,我们发现核采样优于top-k采样,而top-k采样又优于温度采样。

观察到这样的差异应该不会令人惊讶:一个分布的熵本身并不能描述其样本,因此也不能描述其整体质量。因此,对解码算法的公平比较不仅要在相同的熵水平上进行比较,还要在一系列熵水平上进行比较。

4.3 选择性采样

为什么选择性采样表现不佳?我们的错误分析至少发现了两个潜在原因:由解码算法引起的先验和上下文依赖的似然陷阱。我们首先考虑自回归解码算法的隐含先验。自回归解码算法自然倾向于那些每个标记 $ x_i $ 相对于其条件分布 $ p_{\text{model}}(x_i \mid x_{1:i-1}) $ 具有高模型似然的序列。请注意,这不一定与倾向于所有具有高联合似然 $ p_{\text{model}}(x) $ 的高似然序列相同;这是低温度下选择性采样的目标。我们假设自回归解码算法正在引入超出高联合似然的额外结构。

为了测试这一假设,我们构建了一个人类评分实验,将解码算法的随机样本与模型分布 $ p_{\text{model}} $ 的另一随机样本配对,使得两个样本具有相同的联合句子似然。通过这种方式,我们能够控制不同解码器引起的 $ p_{\text{model}} $ 分布的差异,并明确测试各种解码算法如何促进具有相同整体联合似然的不同序列。我们从所有48个提示条件的三种常用解码配置中抽取样本,并通过让群众工作者评分来比较每个样本与随机采样的对比,以确定哪对响应的质量更高。

在图6中,我们可以看到,温度采样 $ t = 0.7 $ 无疑比直接从 $ p_{\text{model}} $ 抽取的等效样本更受青睐,尽管对于其他解码配置,差异目前尚不清楚。选择性采样,一种从 $ p_{\text{model}}$ 抽取提议的方法,并不共享其自回归局部归一化解码对应物的先验。因此,我们可以得出结论,解码算法的成功涉及的不仅仅是促进高联合似然;在这种情况下,选择性采样是不足的。

图片名称

图6 成对样本等对数似然度的人类判断分数。95%自举置信区间。虚线代表随机判断。对于所有解码策略,可以看出多样性的减少往往会导致被判断为更高质量的输出。

其次,我们考虑固定提示条件下样本对数似然的分布,如图7所示。根据提示的不同,对数似然的分布也会有所不同。在选择性采样中,我们选择了一个单一的全局最大似然常数 $ \alpha $。对于某些提示,这几乎没有影响——几乎所有样本的似然度都低于截止值。对于其他提示,这可能消除了近一半的样本,只剩下质量较低的样本。这表明,对于所有提示使用固定的截止 $ \alpha $ 可能不是理想的。

图片名称

图7 五个不同提示条件下样本对数似然度的分布。虚线表示实验中使用的截止值 $ \alpha $。

基于先前的实验,我们发现解码算法及其超参数的选择对样本质量和多样性有显著影响。此外,我们发现样本质量和多样性可以相互交换,而且解码算法的优点需要在同等多样性水平上与其他算法进行比较。我们还提供了证据表明,自回归解码算法引入了超出促进高联合似然样本的额外偏好;这是一种有益的偏好,选择性采样并不共享。

https://arxiv.org/pdf/2004.10450