google youtube搜索团队在《Regression Compatible Listwise Objectives for Calibrated Ranking with Binary Relevance》中提出了一种RCR方法。

摘要

由于LTR(Learning-to-Rank)方法主要旨在提高ranking质量,因此它们的输出分数在设计上并没有进行比例校准( scale-calibrated)。这从根本上限制了LTR在分数敏感应用(score-sensitive applications)中的使用。虽然有些结合了回归(regression)和排序目标(ranking objective)的简单多目标方法,可以有效地学习比例校准分数(scale-calibrated scores),但我们认为这两个目标不一定兼容,这使得它们之间的权衡不够理想。在本文中,我们提出了一种实用的回归兼容排序(RCR:regression compatible ranking)方法,实现了更好的权衡,其中ranking和regression组件被证明是相互对齐(align)的。虽然同样的思想适用于具有二元(binary)和分级相关性(graded relevance)的排序,但我们在本文中主要关注binary label。我们在几个公共LTR基准测试上评估了所提出的方法,并表明它在回归和排名指标方面始终实现了最佳或有竞争力的结果,并在多目标优化的背景下显著改进了帕累托边界(Pareto frontiers)。此外,我们在YouTube搜索上评估了所提出的方法,并发现它不仅提高了生产环境pCTR模型的ranking质量,还提高了点击预测的准确性。所提出的方法已成功部署在YouTube生产系统中。

1.介绍

LTR(Learning-to-Rank)旨在从训练数据中构建一个排序器(ranker),以便它可以正确地对未见过的对象进行排序。因此,需要ranker在ranking指标(如NDCG)上表现良好。通常情况下,以排序为中心的pairwise或listwise方法(例如RankNet [3]或ListNet [29])比采用pointwise公式的回归方法实现更好的排序质量。

另一方面,这些应用中的现代系统具有多个阶段,下游阶段会消费前面阶段的预测结果。通常希望ranking分数得到很好的校准,并且分布保持稳定。以在线广告为例,需要对pCTR(预测点击率)模型进行良好的校准,因为它会影响下游拍卖和定价模型[6、16、30],尽管广告的最终排序对效果来说最为重要。这表明我们希望ranker不仅在排序指标上表现良好,而且在回归指标上也能够将ranker输出分数校准到某个外部尺度上。流行的回归指标:包括用于分级相关性标签(graded relevance labels)的MSE、和用于二元相关性标签(binary relevance labels)的LogLoss。

毫不奇怪,能力强的ranking方法在regression metrics上会表现差些。因为:

  • 它们的loss函数对于保序(rank-preserving)的分数变换是不变的,并且倾向于学习未经比例校准的回归目标。
  • 这些方法在训练过程中容易出现不稳定,因为所学习的分数可能在连续训练或重新训练中无限发散[30]。

这些因素严重限制了它们在分数敏感应用中的使用。因此,我们别无选择,只能退回到regression-only的方法,即使它们在面向用户的排序指标方面不是最优的。

已经证明,标准的多目标方法可以有效地学习用于ranking的比例校准分数(scale-calibrated scores)[16、25、30、31]。然而,我们认为在这种标准的多目标设置中,regression和ranking目标本质上是相互冲突的,因此最佳权衡可能对其中之一都不理想。在本文中,我们提出了一种实用的回归兼容排序(RCR: regression compatible ranking)方法,其中ranking和regression组件被证明是可以相互对齐的。虽然同样的思想适用于具有二元排序和分级相关性排序,但我们在本文中主要关注二元标签(binary label)。在实证方面,我们在几个公共LTR数据集上进行了实验,并表明所提出的方法在regression和ranking指标方面实现了最佳或竞争结果,并在多目标优化的背景下显著改进了帕累托边界。此外,我们在YouTube搜索上评估了所提出的方法,并发现它不仅提高了生产pCTR模型的ranking能力,还提高了点击预测的准确性。所提出的方法已经在YouTube生产系统中得到了完全部署。

3.背景

学习排序(LTR)关注的问题是:给定一个上下文,学习一个模型来对一个对象列表进行排序。在本文中,我们使用“query”表示上下文,“document”表示对象。在所谓的“打分并排序(score-and-sort)”环境中,学习一个ranker来为每个doc评分,并通过根据分数对docs进行排序来形成最终的ranked list。

更正式地说,假设:

  • $𝑞 \in 𝑄$ 为一个query
  • $𝑥 \in X$ 为一个doc

则打分函数(score function)定义为:

\[𝑠(𝑞, 𝑥; \theta) : 𝑄 \times X → R\]

其中:

  • 𝑄 是query空间
  • X 是doc空间
  • 𝜽 是打分函数𝑠的参数

一个典型的LTR数据集𝐷由表示为元组$(𝑞, 𝑥, 𝑦) \in 𝐷$的样本组成,其中𝑞,𝑥和𝑦分别为query,doc和label。

假设:

  • $q = \lbrace 𝑞 \mid (𝑞, 𝑥, 𝑦) \in 𝐷 \rbrace$:为由𝐷索引的query集合
  • $L_{query}(\theta; 𝑞)$:为与单个查询$𝑞 ∈ 𝑄$相关联的loss函数

根据$L_{query}$的定义方式,LTR技术可以大致分为三类: pointwise, pairwise和listwise。

在pointwise方法中,query loss $L_{query}$表示为共享相同query的doc的loss之和。例如,在LR排序(即使用二元相关性标签的排序)中,每个文档的Sigmoid交叉熵损失(用SigmoidCE表示)定义为:

\[SigmoidCE(𝑠, 𝑦) = −𝑦 log \sigma(𝑠) − (1 − 𝑦) log(1 − \sigma(𝑠))\]

…(1)

其中:

  • $𝑠 = 𝑠(𝑞, 𝑥; \theta)$:是query-doc pair(𝑞,𝑥)的预测分数
  • $\sigma(𝑠) = (1 + exp(−𝑠))−1$:是Sigmoid函数

在文献[30]中表明,SigmoidCE在比例校准方面是可行的,因为当$\sigma(𝑠) \rightarrow E[𝑦 \mid 𝑞, 𝑥]$时,它会达到全局最小值。

在pairwise方法中,query loss $L_{query}$表示为共享相同query的所有doc-doc pair的loss之和。基本的RankNet方法使用pairwise Logistic loss(用PairwiseLogistic表示)[3]:

\[PairwiseLogistic(𝑠_1, 𝑠_2, 𝑦_1, 𝑦_2) = − I(𝑦_2 > 𝑦_1) log \sigma(𝑠_2 − 𝑠_1)\]

…(2)

其中:

  • $𝑠_1$和$𝑠_2$是文档$𝑥_1$和$𝑥_2$的预测分数
  • I是指示函数
  • 𝜎是Sigmoid函数

当$\sigma(𝑠_2 − 𝑠_1) → E[I(𝑦_2 >𝑦_1) \mid 𝑞, 𝑥_1, 𝑥_2]$时,PairwiseLogistic会达到全局最小值,这表明loss函数主要考虑pairwise分数差异,这也被称为平移不变性质(translation-invariant)[30]。

在listwise方法中,query loss $L_{query}$归因于共享相同查询的整个文档列表。流行的ListNet方法使用基于Softmax的Cross Entropy loss(用SoftmaxCE表示)来表示listwise loss[29]:

\[SoftmaxCE(𝑠_{1:𝑁} , 𝑦_{1:𝑁}) = - \frac{1}{C} \sum\limits_{i=1}^N y_i log \frac{exp(s_i)}{\sum\limits_{j=1}^N exp(s_j)}\]

…(3)

其中:

  • 𝑁是list size
  • $𝑠_𝑖$是预测分数
  • $𝐶 = ∑_{𝑗=1}^N 𝑦_𝑗$

在【29】中全局最小值将在以下来实现:

\[\frac{exp(s_i)}{\sum_{j=1}^N exp(s_j)} \rightarrow \frac{E[y_i | q, x_i]}{\sum\limits_{j=1}^N E[y_j | q, x_j]}\]

…(4)

与PairwiseLogistic类似,SoftmaxCE损失是平移不变(translation-invariant)的,并且可能会根据回归指标给出任意更差的分数。

4.REGRESSION COMPATIBLE RANKING

在本节中,我们首先介绍动机,然后正式提出回归兼容排序(RCR)方法。

4.1 动机

文献表明,标准的多目标方法可以有效地学习用于排名的比例校准分数[16、25、30]。以Logistic regression ranking为例,Yan等人将多目标损失定义为SigmoidCE和SoftmaxCE损失的加权和:

\[L_{query}^{MultiObj} (\theta; q) = (1-\alpha) \cdot \sum\limits_{i=1}^N SigmoidCE(s_i, y_i) + \alpha \cdot SoftmaxCE(s_{1:N}, y_{1:N})\]

…(5)

其中:

  • 𝛼 ∈ [0, 1]是权衡权重

为简单起见,我们将这种方法称为SigmoidCE + SoftmaxCE。可以看出,SigmoidCE + SoftmaxCE不再是平移不变的(translation-invariant),并且已被证明对于校准排序(calibrated ranking)是有效的。让我们更深入地了解按照这种简单的多目标公式学习的分数是什么。

给定query 𝑞,设$𝑃_𝑖 = E[𝑦_𝑖 \mid 𝑞, 𝑥_𝑖]$为基于在文档$𝑥_𝑖$条件之上的ground truth点击概率。回想一下,当$\sigma(𝑠_𝑖) → 𝑃_𝑖$时,SigmoidCE会达到全局最小值,这意味着对于SigmoidCE,我们会遵循以下的pointwise学习目标:

\[𝑠_𝑖 \rightarrow log 𝑃_𝑖 − log(1 − 𝑃_𝑖)\]

…(6)

另一方面,当以下公式成立时,SoftmaxCE达到全局最小值:

\[\frac{exp(𝑠_𝑖)}{\sum\limits_{𝑗=1}^𝑁 exp(𝑠_𝑗)} \rightarrow \frac{𝑃_𝑖} {\sum\limits_{𝑗=1}^N 𝑃_𝑗}\]

…(7)

或者等价于:

\[𝑠_𝑖 \rightarrow log 𝑃_𝑖 − log \sum\limits_{𝑗=1}^N 𝑃_𝑗 + log \sum\limits_{𝑗=1}^N exp(𝑠_𝑗)\]

…(8)

其中:

  • log-∑︁-exp项是未知常数,对最终的SoftmaxCE损失的值或梯度没有影响。

在随机梯度下降的背景下,等式(6)和(8)表明,从SigmoidCE和SoftmaxCE组件生成的梯度将分别将分数推向显著不同的目标。这揭示了标准多目标设置中的两个loss本质上是相互冲突的,将无法找到对两者都理想的解决方案。我们如何解决这个冲突呢?

注意到由于$\sigma(𝑠_𝑖)$在pointwise上趋近于$𝑃_𝑖$,如果我们将等式(8)右侧的ground truth概率$𝑃_𝑖$替换为经验近似项$\sigma(𝑠_𝑖)$,并删除常数项,我们正在构建虚拟的logits:

\[𝑠_𝑖' \leftarrow log \sigma(𝑠_𝑖) − log \sum\limits_{𝑗=1}^N \sigma(𝑠_𝑗)\]

…(9)

如果我们进一步在新的 $logits \ 𝑠_i′$上应用SoftmaxCE loss,我们正在建立以下新的listwise学习目标:

\[\frac{exp(𝑠_𝑖')}{\sum\limits_{𝑗=1}^N exp(s_𝑗')} \rightarrow \frac{𝑃_𝑖}{\sum\limits_{𝑗=1}^N 𝑃_𝑗}\]

…(10)

它等价于:

\[\frac{\sigma(𝑠_𝑖)}{\sum\limits_{𝑗=1}^N \sigma(𝑠_𝑗)} \rightarrow \frac{𝑃_𝑖}{\sum\limits_{𝑗=1}^N 𝑃_𝑗}\]

…(11)

很容易看到,等式(6)自动隐含了等式(11),这意味着,作为pointwise regression和listwise ranking目标,它们在实现全局最小值方面是并行对齐的。

4.2 主方法

受上述示例的启发,我们首先定义一种新的listwise交叉熵损失(ListCE),如下所示。

定义1:设𝑁为列表大小,$𝑠_{1:𝑁}$为预测分数,$𝑦_{1:𝑁}$为label。设$𝑇(𝑠):R \rightarrow R+$为分数上的非递减变换(non-decreasing transformation)。使用变换𝑇的ListCE定义为:

\[ListCE(𝑇 , 𝑠_{1:𝑁}, 𝑦_{1:𝑁}) = − \frac{1}{𝐶} \sum\limits_{𝑖=1}^N 𝑦_𝑖 log \frac{𝑇(𝑠_𝑖)}{\sum\limits_{𝑗=1}^N 𝑇(𝑠_𝑗)}\]

…(12)

其中:

  • $𝐶 = \sum\limits_{𝑗=1}^N 𝑦_𝑗$是一个归一化因子

在本文的范围内,我们可以交替使用带有变换𝑇的ListCE,即ListCE(T),或者在没有二义性的情况下使用ListCE。我们立即得到以下命题:

命题1:ListCE(exp)简化为SoftmaxCE。

命题2:当满足以下条件时,ListCE(𝑇)可以达到全局最小值:

\[\frac{𝑇(𝑠_𝑖)}{\sum\limits_{𝑗=1}^N 𝑇 (𝑠_𝑗)} \rightarrow \frac{E[𝑦_𝑖 |𝑞, 𝑥_𝑖]}{\sum\limits_{𝑗=1}^N E[𝑦_𝑗 |𝑞, 𝑥_𝑗]}\]

…(13)

证明。设$\bar{𝑦} = E[𝑦 𝑞, 𝑥]$为query-doc对(𝑞, 𝑥)的期望label。在$(𝑥, 𝑦) \in 𝐷$上应用ListCE损失等价于在期望上将其应用于(𝑥,𝑦)。给定变换𝑇和预测分数$𝑠_{1:𝑁}$,其中$𝑝_𝑖 = \frac{𝑇(𝑠_𝑖)} {\sum_{𝑗=1}^N 𝑇(𝑠_𝑗)}$,我们有:
\[ListCE(𝑇 , 𝑠_{1:𝑁}, 𝑦_{1:𝑁}) = \frac{1} {\sum\limits_{𝑗=1}^N 𝑦_𝑗} \sum\limits_{i=1}^N \bar{y_i} log 𝑝_i\]

…(14)

满足:$\sum_{i=1}^N p_i = 1$.

接着构建以下的Lagrangian的公式化:

\[L (𝑝_{1:𝑁}, \lambda) = \frac{1}{\sum\limits_{𝑗=1}^N \bar{𝑦_𝑗}} \sum\limits_{i=1}^N \bar{𝑦_𝑖} log 𝑝_𝑖 + \lambda ( \sum\limits_{i=1}^N 𝑝_𝑖 1)\]

…(15)

找出等式(14)的极值,接着等价于等式(15)的驻点,它满足:

\[\frac{\partial L (𝑝_{1:𝑁}, \lambda)}{\partial 𝑝_𝑖} = \frac{\bar{𝑦_𝑖}}{𝑝_𝑖 \sum\limits_{𝑗=1}^N \bar{𝑦_j}} + \lambda = 0\]

…(16)

并且:

\[\frac{\partial L (𝑝_{1:𝑁}, \lambda)}{\partial \lambda} = \sum\limits_{𝑖=1}^N 𝑝_𝑖 1 = 0\]

…(17)

注意,等式(16)和(17)给出一个在N+1 unknowns上的关于N+1的系统。很容易看到,相等的解决方案是:

\[p_i = \frac{\bar{y_i}}{\sum_{j=1}^N \bar{y_j}}\]

…(18)

并且\(\lambda=1\)。

这意味着唯的的全局极值在:

\[\frac{𝑇 (𝑠_𝑖)}{\sum_{𝑗=1}^N 𝑇(𝑠_𝑗)} \rightarrow \frac{E[𝑦_𝑖 |𝑞, 𝑥_𝑖]}{\sum\limits_{𝑗=1}^N E[𝑦_𝑗 |𝑞, 𝑥_𝑗]}\]

…(19)

很容易验证这个唯一的全局极值归因于全局最小值,这证明了命题。

在逻辑回归排序(logistic-regression ranking)中,所有标签都是二元化的或在[0,1]范围内。一个自然的点对点目标是SigmoidCE损失。使用SigmoidCE作为点对点组件,然后需要使用Sigmoid函数作为变换,以便可以同时进行优化而不产生冲突。 定义2:适用于逻辑回归排名任务(即使用二元相关标签进行排名)中单个查询的回归兼容排名(RCR)损失定义为:

\[L_{query}^{Compatible} (\theta; 𝑞) = (1 − \alpha) \cdot \sum\limits_{𝑖=1}^N SigmoidCE(𝑠_𝑖 , 𝑦_𝑖) + \alpha \cdot ListCE(\sigma, 𝑠_{1:𝑁}, 𝑦_{1:𝑁})\]

…(20)

其中:

  • \(\sigma\)是sigmoid funciton

为简单起见,我们将这种方法称为SigmoidCE + ListCE(𝜎)。我们有以下命题:

  • 命题3:当$\sigma(𝑠_𝑖) \rightarrow E[𝑦_𝑖 𝑞, 𝑥_𝑖]$时,SigmoidCE + ListCE(𝜎)可以达到全局最小值。
  • 证明:SigmoidCE组件在$\sigma(𝑠_𝑖) \rightarrow E[𝑦_𝑖 \mid 𝑞, 𝑥_𝑖]$时可以达到全局最小值,这意味着:
\[\frac{\sigma(𝑠_𝑖)}{\sum\limits_{𝑗=1}^N \sigma(𝑠_𝑗)} \rightarrow \frac{E[𝑦_𝑖 |𝑞, 𝑥_𝑖]}{\sum\limits_{𝑗=1}^N E[𝑦_𝑗 |𝑞, 𝑥_𝑗]}\]

…(21)

它会最小化ListCE(𝜎)在它的全局最小值上。

#

华为在《DFFM: Domain Facilitated Feature Modeling for CTR Prediction》中提出了一种DFFM的多场景建模方法。

4.方法

4.1 整体结构

域辅助特征建模(DFFM:Domain Facilitated Feature Modeling)的总体框架可分为两个主要模块:

  • 域辅助特征交叉(DFFI):Domain Facilitated Feature Interaction
  • 域辅助用户行为(DFUB):Domain Facilitated User Behavior

我们提出的DFFM概述如图2所示。

图片名称

图2

  • DFFI模块:负责提供有价值的domain信息来支持特征交叉建模,
  • DFUB模块:利用domain和目标知识来更好地建模用户行为。

这两个模块的详细设计将在下一小节中说明。

4.2 DFFI

特征交叉建模在CTR预测中是至关重要的,例如PNN、AutoInt和DCN。然而,所有这些模型都忽略了考虑领域(domain)信息的重要性。在不同领域中的特征交叉应该有不同的建模方式,例如,在某些领域中,一些特征交叉非常重要,而在其他领域中则毫无意义。因此,我们提出了域辅助特征交互(DFFI)模块,可以对任何特征交叉模型进行操作,引入领域(domain)信息来辅助交叉建模。

以PNN [18]中的内积为例,我们的域增强内积(domainenhanced inner product)可以表示为:

\[F_{domain}(e_i, e_j) = <e_i, e_j>_{domain}, \\ =<D(e_i), D(e_j)>\]

…(2)

其中:

  • $e_i$和$e_j$是第𝑖个和第𝑗个字段的embedding;
  • ⟨·,·⟩是内积;
  • D(·)是用于融合domain信息的domain network,它是一个micro-MLP,可以表示为:
\[h^{(0)} = h_{input}, \\ h^{(k)} = \sigma(W^{(k-1)} h^{(k-1)} + b^{(k-1)}), k \in [1, \cdots, L], \\ D(h_{input}) = h^{(L)}\]

…(3)(4)(5)

其中:

  • $h_{𝑖𝑛𝑝𝑢𝑡}$是输入向量
  • 𝜎是激活函数
  • 𝐿是领域网络(domain network)的深度

特别地,权重和偏置参数$W^{(k)}$和$b^{(k)}$是通过重塑(reshape)和分割(split)来将domain embedding进行concatenate来生成的。形式上,权重和偏置参数可以表示为:

\[W^{(k)}, b^{(k)} = Reshape(Split(E^d))\]

…(6)

其中:

  • $E_𝑑$是所有domain embedding的拼接。该过程的可视化示例如图2所示。需要注意的是,PNN仅对2阶特征交互进行建模。对于具有高阶特征交互的模型,如DCN和AutoInt,我们应该将domain network应用于每阶的特征交互的输入。

有了该 domain-enhanced inner product,接着我们可以生成 domain-enhance feature interaction layer:

\[h_{domain} = Concat(F_{domain}(e_1, e_2), \cdots, F_{domain}(e_n, e_{n-1})) \\ h_{DFFI} = MLP(Concat(h_{domain}, E))\]

…(7)(8)

其中:

  • $h_{𝐷𝐹𝐹𝐼}$是DFFI模块的输出表示;
  • 𝑛是字段的数量;
  • E是所有字段的拼接嵌入。

通过动态加权网络,特征交互的建模考虑了领域知识。同样的方法不仅适用于内积,还适用于其他特征交互模型,例如AutoInt中的自注意机制或DCN中的交叉网络,这将在第5.4.2节中得到验证。

4.3 DFUB

用户行为建模在CTR预测中起着重要作用[12]。当前的方法,如DIN和CAN,侧重于建模目标物品(target items)和用户历史序列之间的co-action关系。尽管这些方法在特定领域取得了成功,但我们强调考虑建模用户行为的领域相关信息(domain related information)的重要性。例如,用户在售前(pre-sales)和售后领域(post-sales)之间的购买兴趣迅速变化,这表明他们的行为历史对点击行为的共同作用模式不同。为了明确考虑这种现象,我们提出了域辅助用户行为建模(Domain Facilitated User Behavior modeling),简称DFUB。

DFUB采用修改版的多头自注意机制(modified multi-head self-attention)来处理用户历史序列

假设:

  • 用户行为历史的embedding可以表示为:$E^h=\lbrace e_1^h,e_2^h,\cdots,e_n^h}$,其中𝑛是行为历史长度。
  • 目标物品(target item)表示为:$E^t=\lbrace e^t \rbrace$
  • 领域特征(domain features)可以表示为:$E^𝑑=\lbrace 𝒆^𝑑 \rbrace$

对于第𝑖个head,标准的self-attention模块处理可以表示为公式9。

\[head_i = SelfAttn_{\theta(E^t, E^d)}^{(i)}(E^h) = Softmax(\frac{Q_iK_i^T}{\sqrt{d_i}}) V_i\]

…(9)

在公式9中:

  • $𝑑_𝑖$是第𝑖个头的输出维度
  • $Θ(E_𝑡,E_𝑑)$表示使用$E_𝑡$,$E_𝑑$来获取self-attention模块的参数。
  • $Q_𝑖, K_i, V_i$分别表示:指query矩阵、key矩阵和value矩阵。这三个矩阵都是从行为序列embedding $E_𝒉$计算得出的,如公式10所示。
\[Q_i = E^h W_Q^{(i)}, K_i = E^h W_K^{(i)}, V_i = E^h W_V^{(i)}\]

…(10)

其中,$W_𝑄^{(𝑖)},W_𝐾^{(𝑖)},W_𝑉^{(𝑖)}是转换矩阵(transformation matrix)。到目前为止,所呈现的计算过程都是关于序列行为items的内部交叉。该目标是与target item和历史行为items间充分交叉,并利用domain information来指导这种交叉。我们通过根据公式11将target item embedding $E_𝑡$和domain embedding $E_𝑑$直接整合到self-attention参数中来实现这一目标。

\[W_𝑄^{(𝑖)}=W_𝑄^{(𝑖)}′E_𝑄^⊤, E_𝑄=Reshape(E^𝑡,E^𝑑) \\ W_𝐾^{(𝑖)}=W_𝐾^{(𝑖)}′E_K^⊤, E_K=Reshape(E^𝑡,E^𝑑) \\ W_𝑉^{(𝑖)}=W_𝑉^{(𝑖)}′E_V^T, E_V=Reshape(E^𝑡,E^𝑑)\]

…(11)

如公式11所示,自注意力的参数可以分解为两部分。第一部分$(W_𝑄^{(𝑖)}′,W_𝐾^{(𝑖)}′,W_𝑉^{(𝑖)}′)$是自注意模块的固有参数。第二部分$(E_𝑄,E_𝐾,E_𝑉)$是从目标项和与领域相关的特征嵌入中重塑的。通过这种方式,目标项和领域特征的信息可以逐个元素地参与到交互过程中,并得到彻底的处理。多头拼接组成了一个综合的多头自注意层,可以拼接成DFUB模块的最终输出,如公式12所示,其中W𝑜𝑢𝑡是输出转换矩阵:

\[h_{𝐷𝐹𝑈𝐵}=Concat(head_1, \cdots, head_𝑛)W^{𝑜𝑢𝑡}\]

…(12)

4.4 Prediction Layer和Optimization

然后,我们可以将DFFI和DFUB模块的输出表示拼接在一起,以获得:

\[h_{𝑜𝑢𝑡𝑝𝑢𝑡}=Concat(h_{DDFI},h_{DFUB})\]

…(13)

使用带有Sigmoid函数的线性层来获得最终预测:

\[\hat{y} = Sigmoid(W_o h_{output} + b_o)\]

…(14)

其中,$W_𝑜$和$b_𝑜$是权重和偏置参数。我们采用广泛使用的交叉熵损失作为目标函数。

#

美团在《PIER: Permutation-Level Interest-Based End-to-End Re-ranking Framework in E-commerce》 提出了PIER的方式建模:

摘要

Reranking在学术界和工业界引起了越来越多的关注,它通过建模物品之间的相互影响重新排列ranking list,以更好地满足用户需求。许多现有的re-ranking方法直接将初始ranking list作为输入,并通过精心设计的contextwise模型生成最优排列,这带来了(evaluation-before-reranking)问题。同时,在实际中评估所有候选排列会带来不可接受的计算成本。因此,为了更好地平衡效率和效果,在线系统通常采用两阶段体系结构:首先使用一些启发式方法,如beamsearch,生成适量的候选排列,然后将其送到评估模型中以获得最优排列。然而,现有的两段式方法可以通过以下两方面进行改进:

  • 对于生成阶段,启发式方法仅使用点预测分数,缺乏有效的判断。
  • 对于评估阶段,大多数现有的上下文评估模型仅考虑物品上下文,缺乏更精细的特征上下文建模。

本文提出了一种新颖的端到端reranking框架PIER,以解决上述挑战,仍然遵循两阶段体系结构,并包含两个主要模块FPSM和OCPM。

  • 受长期用户行为建模方法的启发,我们在FPSM中应用SimHash以高效地从全排列中选择前K个候选items,这些候选items基于用户在排列级别上的兴趣。
  • 然后,在OCPM中设计了一种新颖的全向注意力(omnidirectional attention)机制,以更好地捕捉排列中的上下文信息。
  • 最后,我们通过引入一个可比的learning loss来端到端地共同训练这两个模块,该loss使用OCPM的预测值来指导FPSM生成更好的排列。离线实验结果表明,PIER在公共和工业数据集上均优于基线模型,并且我们已成功将PIER部署在美团外卖平台上。

1.介绍

4.方法

我们在图2中呈现了PIER(基于排列级别兴趣的端到端reranking:Permutation-level Interest-based End-to-End Re-ranking)的概述结构。

图片名称

图2

  • 首先,我们将ranking list $C = \lbrace a_i \rbrace_{𝑖=1}^{N_o}$和用户的permutation-level点击行为序列$B = \lbrace b_i \rbrace_{i=1}^{N_o}$作为PIER的输入。
  • 然后,我们通过完全排列算法(full permutation algorithm:图中为方便将每个排列的items数设为3)在C上生成候选排列(candidate permutations):$G = \lbrace p_i \rbrace_{𝑖=1}^T$。
  • 接下来,我们使用细粒度排列选择模块(FPSM:Fine-grained Permutation Selection Module)从大量候选排列中选择前K个排列。
  • 最后,我们使用全向上下文感知预测模块(OCPM:Omnidirectional Context-aware Prediction Module)计算每个排列的分数,并选择最佳排列$𝑝^∗$作为re-ranking list来进行显示。

在FPSM中,我们提出了基于SimHash [5, 8, 19]计算的时间感知汉明距离( time-aware hamming distance)。通过对用户的permutation-level点击行为和候选排列之间的距离进行排序,选择topK个排列。在OCPM中,我们设计了一种新的全向注意力单元(omnidirectional attention unit),用于建模每个排列中的上下文信息,并输出关于在该排列中每个item的list-wise pCTR。基于输出得分,即list-wise pCTRs之和,选择最佳排列。FPSM和OCPM之间的关系类似于推荐系统中的matching和ranking阶段。我们将两者合并成一个框架,生成最优重新排名列表。接下来,我们将分别详细介绍FPSM和OCPM。

4.1 FPSM: 细粒度排列选择模块

出于时耗考虑,一些re-ranking方法利用启发式方法,如beam-search[11] (PRS)生成候选排列,并使用精心设计的预测模型选择最优排列,但这些启发式方法与建模目标不一致,导致次优效果。受ETA和SDIM [4]等长期用户行为建模方法的启发,我们提出了FPSM通过SimHash选择topK个候选项。这里,我们以用户的历史点击行为为目标,然后计算它与所有候选排列之间的距离。如果距离更近,我们认为排列可以更好地匹配用户的兴趣,从而可以带来更大的收益。通过这种方式,我们不仅可以减少时间复杂度,还可以通过端到端训练FPSM和预测模型来做出一致的选择。接下来,我们将介绍如何通过FPSM选择topK个排列。

图片名称

图3 FPSM和OCPM的结构。FPSM会采用用户的permutation-level点击行为和一个candidate permutation作为input,并输出该permutation的distance score。OCPM会采用用户的permutation-level 点击行为和一个由FPSM选中的top-k permutation作为input,并输出在permutation中的每个item的predicted list-wise pCTR。通过颜色区分

如图3左侧所示,我们首先使用底部共享的嵌入层从原始输入中提取嵌入。对于排列$𝑝_𝑘$,我们将嵌入矩阵$M_{𝑝_𝑘}$表示为:

\[M_k^p = \left[ \begin{array}{c} E_{0;}^{p_k} \\ E_{1;}^{p_k} \\ \cdots \\ E_{N_d;}^{p_k} \end{array} \right] = \left[ \begin{array}{cccc} E_{;0}^{p_k} E_{;1}^{p_k} \cdots E_{;N_f}^{p_k} \end{array} \right] = \left[ \begin{array}{cccc} e_{0;0}^{p_k} e_{0;1}^{p_k} \cdots e_{0;N_f}^{p_k} \\ e_{1;0}^{p_k} e_{1;1}^{p_k} \cdots e_{1;N_f}^{p_k} \\ \cdots \cdots \cdots \cdots \\ e_{N_d;0}^{p_k} e_{N_d;1}^{p_k} \cdots e_{N_d;N_f}^{p_k} \end{array} \right] \in R^{N_d \times N_f \times D}\]

…(1)

其中:

  • $𝑁_𝑑$是每个permutation中的items数目
  • $𝑁_𝑓$是每个item中的feature fields数目(例如ID、类别、品牌等)
  • 𝐷是embedding转置feature的维度
  • $e_{𝑖;j}^{p_k} \in R_𝐷$是排列$𝑝_𝑘$中第𝑖个item的的第𝑗个feature字段的embedding
  • $E_{𝑖;}^{𝑝_𝑘} \in R^{𝑁_𝑓 × 𝐷}$是排列$𝑝_𝑘$中第𝑖个item的embedding矩阵
  • $E_{;𝑗}^{𝑝_𝑘} \in R^{𝑁_𝑑 × 𝐷}$是排列$𝑝_𝑘$中第𝑗个特征字段的embedding矩阵
  • $M_𝑚^b \in R^{𝑁_𝑑 \times 𝑁_𝑓 \times D}$:表示用户排列级别历史点击行为中第𝑚个排列的embedding矩阵

接下来,我们为每个排列生成位置编码(position encoding)矩阵$PE \in R^{𝑁_𝑑 \times 𝐷}$,如下所示:

\[PE_{(𝑖,2𝑑)} = sin(𝑖/10000^{2𝑑/𝐷}), \\ PE_{(𝑖,2𝑑+1)} = cos(𝑖/10000^{2𝑑/𝐷}), \\ PE = \left[ \begin{array}{cccc} PE_{(0,0)} PE_{(0,1)} \cdots PE_{(0,D)} \\ PE_{(1,0)} PE_{(1,1)} \cdots PE_{(1,D)} \\ \cdots \cdots \cdots \cdots \\ PE_{(N_d,0)} PE_{(N_d,1)} \cdots PE_{(N_d,D)} \end{array} \right]\]

…(2)

然后,各个特征字段的嵌入矩阵分别与位置编码矩阵PE相乘,然后通过average pooling合并为相应的排列representation $h_𝑘^p$,如下所示:

\[h_k^p = \frac{1}{N_f} \sum\limits_{i=1}^{N_f} Avg-Pool(E_{;i}^{p_k} \odot PE), \forall k \in [N_o]\]

…(3)

类似地,用户排列级别历史点击行为中第𝑚个排列的representation为$h_𝑚^b$。

在我们的场景中,用户更有可能点击与其兴趣更接近的排列。我们使用用户的排列级别历史点击行为来表示用户的兴趣,并计算用户兴趣与每个候选排列之间的距离。具体而言,我们利用随机投影模式(SimHash)[5, 8, 19]来计算用户点击排列的representations和候选排列的表示之间的相似度。我们首先生成𝑀个不同的哈希函数,对应于𝑀个用户的permutation-level行为。对于每个候选排列$𝑝_𝑘$,我们使用𝑀个不同的哈希函数来对它们的表示$h_𝑘^p$进行hash,并计算它与每个用户的排列级别行为之间的汉明距离,如下所示:

\[Sim(p_k, b_m) = Hash_m(b_k^p, h_m^b), \forall m \in [M], \forall k \in [N_o]\]

…(4)

同时,越近期的行为越能反映用户当前的兴趣,因此在相似度计算中会给予更高的权重。因此,我们根据每个行为的发生时间对这些距离进行加权,以获得时间感知的汉明距离,如下所示:

\[d_k = \sum\limits_{m=1}^M w_m \cdot Sim(p_k, b_m), \forall k \in [N_o]\]

…(5)

其中:

  • $w_m$是第m个行为的time-aware weight。

最后,我们根据它们的距离得分对候选排列进行排序,并选择距离得分最小的前K个排列$P^{𝑡𝑜𝑝−𝐾} = {𝑝_𝑖^{𝑡𝑜𝑝}}_{𝑖=1}^𝐾$作为FPSM的输出。

由于FPSM与OCPM共享底部embedding layers,并固定住哈希函数(hash functions)和位置编码(position encoding)的随机向量,因此它没有需要训练的独立参数。为了确保训练期间选择的前K个排列的质量,我们提出了对比损失(contrastive loss)来提高FPSM的性能。对比损失(contrastive loss)的详细内容将在第4.3.2节中讨论。

OCPM(全向上下文感知预测模块)

#

Yandex在《On Embeddings for Numerical Features in Tabular Deep Learning》中介绍了一种数值型特征建模embedding的方法:Periodic embedding。

摘要

最近,类似Transformer的深度架构在表格数据(tabular data)问题上表现出强大的性能。与传统模型(如MLP)不同,这些架构将数值特征(numerical features)的标量值映射到高维embedding中,然后将它们混合在主网络(backbone)中。在该工作中,我们认为数值特征的embedding在tabular DL中没有被充分探索,可以构建更强大的DL模型,并在一些对GBDT友好的基准测试中与GBDT竞争(即,在这些基准测试中,GBDT优于传统的DL模型)。我们首先描述了两种概念上不同的构建embedding模块的方法:

  • 第一种基于标量值的分段线性编码(piecewise linear encoding)
  • 第二种使用周期性激活(periodic activations)

然后,我们通过实验证明,与基于传统blocks(如线性层和ReLU激活)的embedding相比,这两种方法可以显著提高性能。重要的是,我们还表明,嵌入数值特征对许多主网络都有好处,不仅仅是对于Transformer。具体而言,在适当的嵌入后,简单的类MLP模型可以与attention-based的架构相媲美。总体而言,我们强调数值特征的embedding是一个重要的设计方向,在tabular DL中具有进一步改进的良好潜力。源代码可在https://github.com/yandex-research/tabular-dl-num-embeddings获得。

1.介绍

目前,表格数据(Tabular data)问题是深度学习(DL)研究的最后一道难关。虽然最近在自然语言处理、视觉和语音方面取得了深度模型的突破[12],但它们在表格领域的成功尚未令人信服。尽管已经提出了大量的表格DL架构[2、3、13、17、21、24、31、39、40],但它们与“浅层”决策树集成(如GBDT)之间的性能差距通常仍然显著[13、36]。

最近的一系列工作[13、24、39]通过成功将Transformer架构[45]调整为表格领域,缩小了这种性能差距。与传统模型(如MLP或ResNet)相比,提出的类Transformer架构具有一些特定方式来处理数据的数值特征。即:将多个数值特征的scalar values分别映射到高维embedding vectors中,接着通过self-attention模块被混合在一起。除了transformers,将数值特征映射到向量中也在点击率(CTR)预测问题中以不同形式被应用[8、14、40]。然而,文献大多集中在开发更强大的主网络(backbone),同时保持嵌入模块的设计相对简单。特别是,现有的架构[13、14、24、39、40]使用相当限制的参数映射(例如线性函数)构建数值特征的嵌入,这可能导致次优性能。在这项工作中,我们证明了嵌入步骤对模型的有效性有重大影响,其适当的设计可以显著提高表格DL模型的性能。

具体而言,我们描述了两种不同的构建块(building blocks),适用于数值特征的embeddings构建。

  • 第一种是分段线性编码( piecewise linear encoding):它为原始标量值产生了可备选的初始表示(intial representations),并且它采用的基于特征分箱(feature binning)的方式,这是一种长期存在的预处理技术[11]。
  • 第二种则依赖于周期性激活函数(periodic activation functions):这是受到隐式神经表示[28、38、42]、NLP[41、45]和CV任务[25]中使用的启发。

第一种方法简单、可解释且不可微,而第二种方法平均表现更好。我们观察到,配备我们的embedding方案的DL模型在GBDT友好的基准测试中成功地与GBDT竞争,并在表格DL上实现了新的最先进水平。作为另一个重要发现,我们证明了嵌入数值特征的步骤对于不同的深度架构普遍有益处,不仅仅适用于类Transformer的架构。特别地,我们展示了,在适当的嵌入后,简单的类MLP架构通常可以提供与最先进的attention-based的模型相媲美的性能。总体而言,我们的工作展示了数值特征的嵌入对表格DL性能的巨大影响,并展示了未来研究中探索更高级嵌入方案的潜力。

2.相关工作

表格深度学习(Tabular deep learning)。在过去几年中,社区提出了大量用于表格数据的深度模型[2、3、13、15、17、21、24、31、39、40、46]。然而,当系统地评估这些模型时,它们并没有始终优于决策树集成(ensembles of decision trees),如GBDT(梯度提升决策树)[7、19、32],这些决策树集成通常是各种机器学习竞赛的首选[13、36]。此外,一些最近的研究表明,提出的复杂架构并不比经过适当调整的简单模型(如MLP和ResNet)优越[13、18]。在这项工作中,与之前的文献不同,我们的目标不是提出一种新的主网络(backbone)架构。相反,我们专注于更准确地处理数值特征的方法,它可以潜在地与任何模型结合使用,包括传统的MLP和更近期的类Transformer的模型。

表格DL中的Transformer。由于Transformer在不同领域取得了巨大成功[10、45],因此一些最近的工作也将它们的self-attention设计适用于表格DL[13、17、24、39]。与现有的替代方案相比,将self-attention模块应用于表格数据的数值特征,需要将这些特征的标量值映射到高维嵌入向量中。到目前为止,现有的架构通过相对简单的计算块(computational blocks)执行这种“标量(scalar)”→“向量(vector)”映射,在实践中,这可能限制模型的表达能力。例如,最近的FT-Transformer架构[13]仅使用单个线性层。在我们的实验中,我们证明这种嵌入方案可以提供次优性能,而更高级的方案通常会带来巨大的收益。

点击率(CTR)预估。在CTR预估问题中,对象由数值和分类特征表示,这使得这个领域与表格数据问题高度相关。在一些工作中,数值特征以某种非平凡的方式处理,但并不是研究的核心[8、40]。最近,Guo等人提出了更高级的方案AutoDis[14]。然而,它仍然基于线性层和传统的激活函数,我们发现在我们的评估中这种方法是次优的。

特征分箱(Feature binning)。分箱是一种将数值特征(numerical features)转换为类别特征(categorical features)的离散化技术。即,对于给定的特征,其值范围(value range)被分成若干个bins(intervals),然后原始特征值被替换为对应bin的离散描述符(例如bin indices或one-hot向量)。我们指出Dougherty等人的工作[11],它对一些经典的分箱方法进行了概述,并可以作为相关文献的入口。然而,在我们的工作中,我们以不同的方式利用bins。具体而言,我们使用它们的边缘来构建原始标量值的无损分段线性表示。结果表明,在一些表格问题(tabular problems)上,这种简单且可解释的表示(representations),可以为深度模型提供实质性的收益。

周期性激活(Periodic activations)。最近,周期性激活函数已成为处理类似坐标输入的关键组成部分,这在许多应用中都是必需的。例如,自然语言处理[45]、计算机视觉[25]、隐式神经表示[28, 38, 42]等。在我们的工作中,我们展示了周期性激活函数可用于构建强大的embedding模块,用于解决表格数据问题中的数值特征。与一些前述论文不同的是,在将多维坐标的各个分量(例如,通过linear layers)传递给周期性函数之前,我们发现将每个特征单独嵌入并在主网络(backbone)中混合它们至关重要。

3.Embeddings for numerical features

在本节中,我们描述了所谓的“数值特征embedding”的一般框架以及实验比较中使用的主要构建模块。符号表示:对于给定的表格数据监督学习问题,我们将数据集表示为:

$\lbrace(x^j, y^j)\rbrace_{j=1}^n$

其中:

  • $y_j \in Y$:表示目标(object)的label
  • $x_j = (x^{j(num)}, x^{j(cat)}) \in X$:表示目标(object)的features(num:数值型特征,cat:类别型特征)
  • $x_i^{j(num)}$:则表示第 j 个目标(object)的第 i 个数值特征

根据上下文,可以省略 j 索引。数据集被分成三个不相交的部分:$\overline{1, n} = J_{train} \cup J_{val} \cup J_{test}$,其中:“train”部分用于训练,“validation”部分用于early stopping和hyperparameter tuning,“test”部分用于最终评估。

3.1 总框架

我们将“数值特征embedding”概念形式化为:

\[z_i = f_i(x_i^{(num)}) \in R^{d_i}\]

其中:

  • $f_i(x)$:是第i个数值特征的embedding函数
  • $z_i$:是第i个数值特征的embedding
  • $d_i$:是embedding的维度

重要的是,所提出的框架意味着所有特征的embedding都是独立计算的。请注意,函数 $f_i$ 可以依赖于作为整个模型的一部分或以其他方式训练的参数(例如,在主要优化之前)。在本工作中,我们仅考虑embedding方案,其中:所有特征的embedding函数具有相同的函数形式。我们【不共享】不同特征的嵌入函数的参数

embedding的后续使用取决于模型主网络(backbone)。对于类似 MLP 的架构,它们被拼接(concatenated)成一个flat向量(有关说明,请参见附录 A)。对于基于Transformer的结构,不会执行额外的步骤,embedding会直接传递,因此使用方式通过原始结构来定义。

3.2 Piecewise linear encoding

虽然vanilla MLP 被认为是通用逼近器(universal approximator) [9, 16],但在实践中,由于optimization的特殊性,它在学习能力方面有限制 [34]。然而,Tancik 等人最近的工作 [42] 发现了一种case,即改变输入空间可以缓解上述问题。这个观察结果启发我们检查改变数值特征的原始标量值的representations是否能够提高表格 DL 模型的学习能力

此时,我们尝试从简单的“经典”机器学习技术入手。具体而言,我们从one-hot encoding算法中获得灵感,该算法被广泛且成功地用于表示表格数据问题中的类别特征或NLP中的tokens等离散实体。我们注意到,从参数效率和表达能力之间的权衡角度来看,one-hot表示可以看作是scalar表示的反向解决方案。为了检查one-hot encoding类似方法是否有助于表格DL模型,我们设计了一种连续的替代方法来代替one-hot编码(因为普通的one-hot编码几乎不适用于数值特征)。

形式化地,对于第i个数值特征,我们将其值域分成不相交的$T_i$个区间 $B_i^1, \cdots, B_T^i$,我们称之为箱子:$B_t^i = [b_{t-1}^i, b_t^i)$。分割算法是一个重要的实现细节,我们稍后会讨论。从现在开始,为简单起见,我们省略特征索引i。一旦确定了bins,我们按照以下公式定义encoding scheme,详见公式1:

\[PLE(x) = [e_1, \cdots, e_T] \in R^T \\ e_t = \begin{cases} 0, & \text{$x < b_{t-1}$ AND $t>1$} \\ 1, & \text{$x \geq b_t$ AND $t<T$} \\ \frac{x-b_t-1}{b_t - b_{t-1}} \end{cases}\]

…(1)

其中,PLE表示“peicewise linear encoding”。我们在图1中提供可视化。

图片名称

图1

注意:

  • PLE为数值特征生成可替代的初始表示(representations),可以被看作是一种预处理策略。这些representations仅计算一次,然后在主要optimization过程中使用,代替原始的标量值。
  • 当 T=1 时,PLE表示实际上等效于scalar表示。
  • 与分类特征不同,数值特征是有序的;通过将对应于右边界小于给定feature value的bin的分量设置为1,我们来表示这一点(这种方法类似于如何在序数回归问题中编码标签)
  • 方案1也包括了 ($x < b_0$) 和 ($x ≥ b_T$)的case,它们分别产生 ($e_1 ≤ 0$) 和 ($e_T ≥ 1$)。
  • 将representation进行分段线性化(piecewise linear)的选择本身就是一个值得讨论的问题。我们在第 5.2 小节中分析了一些替代方案。
  • PLE 可以看作是特征预处理,这在第 5.3 小节中另外进行了讨论。

关于attention-based的模型的说明。虽然所描述的PLE表示可以直接传递给类似MLP的模型,但attention-based的模型本质上是不受 input embeddings顺序影响的,因此需要一个额外的步骤:在所获得的encodings中添加关于特征indices的信息。从技术上讲,我们观察到:只需要在PLE之后放置一个linear layer(不共享特征之间的权重)即可。然而,从概念上讲,该解决方案具有明确的语义解释。也就是说,它等价于:为每个bin $B_t$分配一个trainable embedding $v_t \in R_d$,并通过以 $e_t$ 为权重将它的bins的embedding进行聚合、并再加上偏移$v_0$,来获得最终feature embedding。具体地:

\[f_i(x) = v_0 + \sum\limits_{t=1}^T e_t \cdot v_t = Linear(PLE(x))\]

在接下来的两个部分中,我们描述了两种简单的算法来构建适合PLE的bins。具体而言,我们依赖于经典的分箱算法 [11],其中一个算法是无监督的,另一个算法利用标签来构建箱子。

3.2.1 从分位数中获取bins

一种自然的baseline方法是:根据相应的单个特征分布的经验分位数,将值范围进行分割来构建PLE的箱子。具体而言,对于第i个特征:

\[b_t = Q_{\frac{t}{T}} (\lbrace x_i^{j(num)} \rbrace_{j \in J_{train}})\]

其中 Q 是经验分位数函数。

size为0的无意义bins将被删除。在第 D.1 小节中,我们展示了所提出方案在 Gorishniy 等人 [13] 中描述的合成 GBDT 友好数据集上的有用性。

3.2.2 构建 target-aware bins

实际上,还有一些利用training labels来构建bins的监督方法 [11]。直观地说,这些目标感知(target-aware)的算法,目标是在产生与可能目标值在相对较窄范围内相对应的bins。我们工作中使用的监督方法在精神上与 Kohavi 和 Sahami [23] 的“C4.5 离散化”算法相同。简而言之,对于每个特征,我们使用目标值(target)作为指导,以贪心方式递归地将值范围(value range)进行分割,这相当于构建一棵决策树(仅使用此特征和目标值进行生长),并将其叶子对应的区域作为PLE的bins(请参见图4中的说明)。此外,我们定义$b_i^0 = min_{j \in J_{train}} x_i^j$ 和 $b_T^i = max_{j \in J_{train}} x_i^j$ 。

3.3 周期性激活函数(Periodic activation functions)

回顾第 3.2 小节中提到的 Tancik 等人 [42] 的工作被用作我们开发 PLE 的动机起点。因此,我们也尝试将原始工作本身适应于表格数据问题。我们的变化有两个方面的不同。首先,我们考虑到子节 3.1 中描述的嵌入框架在嵌入过程中禁止混合特征(请参见子节 D.2 进行额外讨论)。其次,我们训练预激活系数而不是保持它们固定。因此,我们的方法与 Li 等人 [25] 非常接近,其中“组”的数量等于数值特征的数量。我们在公式 2 中形式化描述所述方案,

\[f_i(x) = Periodic(x) = concat[sin(v), cos(v)], v = [2 \pi c_1 x, \cdots, 2 \pi c_k x]\]

…(2)

其中:

  • $c_i$是可训练参数,从N(0, σ)初始化。

我们观察到 σ 是一个重要的超参数。σ 和 k 都使用验证集进行调整。

3.4 简单可微层(Simple differentiable layers)

在深度学习的背景下,使用传统的可微分层(例如线性层、ReLU 激活等)对数值特征进行嵌入是一种自然的方法。事实上,这种技术已经在最近提出的attention-based的架构 [13、24、39] 、以及在一些用CTR预测问题的模型 [14、40] 中单独使用。但是,我们也注意到这样的传统模块可以在子节3.2和子节3.3中描述的组件之上使用。在第4节中,我们发现这样的组合通常会导致更好的结果。

4.实验

在本节中,我们对第 3 节中讨论的技术进行了实证评估,并将它们与GBDT进行比较,以检查“DL vs GBDT”竞争的现状。

我们使用了来自以前的表格 DL 和 Kaggle 竞赛的 11 个公共数据集。重要的是,我们专注于中大规模的任务,并且我们的基准测试偏向于 GBDT 友好的问题,因为目前,在这些任务上缩小与 GBDT 模型之间的差距是表格 DL 的主要挑战之一。主要数据集属性总结在表 1 中,使用的来源和其他细节在附录 C 中提供。

图片名称

表1

4.2 实现细节

我们在超参数调整、训练和评估协议方面主要遵循 Gorishniy 等人 [13]。然而,为了完整起见,我们在附录 E 中列出了所有细节。在下一段中,我们描述了特定于数值特征嵌入的实现细节。

数值特征嵌入(Embeddings for numerical features)。如果使用线性层(linear layers),则调整其输出维度。对于所有特征,PLE的超参数是相同的。

  • 对于quantile-based PLE,我们会调整分位数的数量
  • 对于target-aware PLE,我们调整以下决策树的参数:叶子的最大数量、每个叶子的最小items数、以及在生长树时做出一个split所需要的最小信息增益。
  • 对于Periodic module(参见公式 2),我们调整 σ 和 k(这些超参数对于所有特征都是相同的)。

4.3 模块名

在实验中,我们考虑了不同的骨干网和嵌入组合。为方便起见,我们使用“骨干网-嵌入”模式来命名模型,其中“骨干网”表示骨干网(例如 MLP、ResNet、Transformer),而“嵌入”表示嵌入类型。请参见表 2,了解所有考虑的嵌入模块。请注意:

  • Periodic在公式 2 中定义。
  • $PLE_q$表示quantile-based PLE
  • $PLE_t$表示target-aware PLE
  • Linear_ 表示无偏线性层(bias-free linear layer),LReLU 表示leaky ReLU,AutoDis 是 Guo 等人 [14] 提出的。
  • “Transformer-L” 等价于 FT-Transformer [13]。

图片名称

表2

4.4 简单可微embedding模块

我们首先评估由“传统”可微分层(线性层、ReLU 激活等)组成的嵌入模块。结果总结在表 3 中。 主要观点:

  • 首先&最重要的,结果表明 MLP 可以从embeddings模块中受益。因此,我们得出结论,在评估embedding模块时,该backbone值得关注。
  • 当应用于MLP时,简单的LR模块可以导致保守、但一致的提升。

有趣的是,“冗余(redundant)”的 MLP-L配置也倾向于优于vanilla MLP。虽然改进并不显著,但这种架构的特殊属性是,linear embedding模块可以在训练后,与 MLP的第一个线性层融合在一起,从而完全消除了开销。至于 LRLR 和 AutoDis,我们观察到这些重型模块(heavy modules)不值得额外的成本(请参见附录 F 中的结果)。

图片名称

表3

4.5 Piecewise linear encoding

在本节中,我们评估子节 3.2 中描述的编码方案。结果总结在表 4 中。

主要结论:

  • 分段线性编码对两种类型的架构(MLP 和 Transformer)通常有益,并且收益可能很显著(例如,参见 CA 和 AD 数据集)。
  • 在PLE顶部添加可微组件可以改善性能。尽管如此,最昂贵的修改(如 Q-LRLR 和 T-LRLR)不值得这样做(请参见附录 F)。

请注意,基准测试偏向于 GBDT 友好的问题,因此在表 4 中观察到的基于树的箱通常优于基于分位数的箱,可能不适用于更适合 DL 的数据集。因此,我们在这里不对两种方案的相对优势做任何一般性的声明。

图片名称

表4

Periodic activation functions

在本节中,我们评估基于周期性激活函数的嵌入模块,如子节 3.3 中所述。结果报告在表5 中。

图片名称

表5

主要结论:平均而言,MLP-P 优于普通的 MLP。然而,在周期性模块的顶部添加可微分组件应该是默认策略(这与 Li 等人 [25] 的观点一致)。事实上,MLP-PLR 和 MLP-PL 在 MLP-P 的基础上提供了有意义的改进(例如,参见 GE、CA、HO),甚至在 MLP-P 不如 MLP 的情况下“修复”了 MLP-P(OT、FB)。

虽然 MLP-PLR 通常优于 MLP-PL,但我们注意到,在后一种情况下,嵌入模块的最后一个线性层在表达能力上是“冗余”的,并且可以在训练后与骨干网的第一个线性层融合在一起,这理论上可以导致更轻量级的模型。最后,我们观察到 MLP-PLRLR 和 MLP-PLR 之间的差异不足以证明 PLRLR 模块的额外成本(请参见附录 F)。

4.7 Comparing DL models and GBDT

在本节中,我们进行了不同方法的大比较,以确定最佳的embedding模块和主网络(backbone),并检查数值特征embedding是否使 DL 模型能够在更多任务上与 GBDT 竞争。重要的是,我们比较 DL 模型的集合与 GBDT 的集合,因为梯度提升本质上是一种集成技术,因此这样的比较将更加公平。请注意,我们只关注最佳指标值,而不考虑效率,因此我们只检查 DL 模型是否在概念上准备好与 GBDT 竞争。

我们考虑三个主网络(backbone):MLP、ResNet 和 Transformer,因为据报道它们代表了基线 DL 骨干网目前的能力 [13、18、24、39]。请注意,我们不包括也在对象级别上应用注意力的attention-based的模型 [24、35、39],因为这个非参数组件与我们工作的核心主题不相关。结果总结在表6 中。

图片名称

表6

DL 模型的主要结论:

  • 对于大多数数据集,数值特征的嵌入可以为三种不同的骨干网提供显著的改进。虽然平均排名不是制定微妙结论的好指标,但我们强调 MLP 和 MLP-PLR 模型之间平均排名的巨大差异。
  • 最简单的 LR 嵌入是一个很好的基准解决方案:虽然性能提升并不显著,但它的主要优点是一致性(例如,参见 MLP vs MLP-LR)。
  • PLR 模块提供了最好的平均性能。根据经验,我们观察到 σ(见公式 2)是一个重要的超参数,应该进行调整。
  • 分段线性编码(PLE)允许构建表现良好的嵌入(例如,T-LR、Q-LR)。除此之外,PLE 本身也值得关注,因为它具有简单性、可解释性和效率(没有计算昂贵的周期函数)。
  • 重要的是,将类似 MLP 的架构与集成学习相结合之后,它们可以在许多任务上与 GBDT 竞争。这是一个重要的结果,因为它表明 DL 模型可以作为集成学习中 GBDT 的替代方案。

“DL vs GBDT” 竞争的主要结论:数值特征的嵌入是一个重要的设计方面,具有极大的潜力来改进 DL 模型,并在 GBDT 友好的任务上缩小与 GBDT 之间的差距。让我们通过几个观察来说明这个说法:

  • benchmark最初偏向于GBDT友好的问题,这可以通过比较GBDT解决方案与vanilla DL模型(MLP、ResNet、Transformer-L)来观察。
  • 然而,对于绝大多数“主网络&数据集”对,合适的embedding是缩小与GBDT之间差距的唯一方法。例外(相当正式)包括:MI数据集以及以下配对:“ResNet & GE”、“Transformer & FB”、“Transformer & GE”、“Transformer & OT”。
  • 另外,据我们所知,在众所周知的California Housing和Adult数据集上,DL模型的表现与GBDT相当,这是第一次。

尽管如此,与GBDT模型相比,对于DL架构,效率仍然可能是一个问题。在任何情况下,tradeoff完全取决于具体的使用情况和需求。

5.分析

5.1 model size对比

为了量化数字特征嵌入对模型大小的影响,我们在表7中报告了参数量。总的来说,引入数值特征embeddings可能会导致不可忽视的模型大小方面的开销。重要的是,在训练时间和吞吐量方面,size的开销并没有转化为相同的影响。例如,在CH数据集上,MLP-LR的参数计数几乎增加了2000倍,但训练时间仅增加了1.5倍。最后,在实践中,我们发现将MLP和ResNet与embeddings模块结合,产生了仍然比Transformer-based的模型更快的架构。

表7

5.2 消融研究

图片名称

表8

在本节中,我们比较了两种基于分箱的编码方案(binning-based encoding:

  • 一种是“温度计(thermometer)”([6]):会设置值为1,取代掉piecewise linear term;
  • 另一种是one-blob encoding的泛化版本([29];见第E.1节了解更多细节)。tuning和evaluation协议与第4.2节相同。表8中的结果表明,让基于分箱的编码(binning-based encoding)进行分段线性化(piecewise linear)是一个很好的默认策略。

5.3 Piecewise linear encoding作为特征预处理技术

众所周知,标准化(standardization)或分位数变换(quantile transformation)等数据预处理,对于DL模型达到好效果来说至关重要。而且,不同类型的预处理之间的效果可能会有显著差异。同时,PLE-representations仅包含[0,1]中的值,并且它们对于平移(shifting)和缩放(scaling)是不变的,这使得PLE本身成为一种通用特征预处理技术,通用适用于DL模型,无需首先使用传统预处理。

为了说明这一点,在第4节中使用了分位数变换(quantile transformation)来评估数据集。我们使用不同的预处理策略重新评估了MLP、MLP-Q和MLP-T的已调整配置,并在表9中报告了结果(注意,对于具有PLE的模型,标准化等同于无预处理)。

图片名称

表9

首先,如果没有预处理,vanilla MLP往往变得无法使用。其次,对于vanilla MLP,选择特定类型的预处理(CA、HO、FB、MI)是很重要的,而对于MLP-Q则不那么明显,对于MLP-T则不是(尽管这种特定观察可能是基准测试的特性,而不是MLP-T的特性)。总的来说,结果表明使用PLE模型相对于vanilla MLP对预处理的敏感性较低。这对于实践者来说是一个额外的好处,因为使用PLE后,预处理方面变得不那么重要。

5.4 “feature engineering”的角度

乍一看,特征嵌入(feature embeddings)可能类似于特征工程(feature engineering),并且应该适用于所有类型的模型。然而,所提出的embedding schemes是受基于DL-specific方面训练的启发(请参见第3.2节和第3.3节的动机部分)。虽然我们的方法可能会很好地迁移到具有相似训练属性的模型上(例如,对于线性模型,它们是深度模型的特例),但通常并非如此。为了说明这一点,我们尝试采用周期性模块来调整XGBoost的随机系数,同时保持原始特征而不是丢弃它们。调整和评估协议与第4.2节相同。表10中的结果表明,尽管这种技术对于深度学习模型很有用,但它并不能为XGBoost提供任何好处。

图片名称

表10

#

google在《Learning from Negative User Feedback and Measuring Responsiveness for Sequential Recommenders》提出了一种将负反馈用于召回的方法。我们来看下相关实现:

2.negative user feedback的训练目标

以下我们描述了将negative user feedback纳入sequential recommenders的训练目标中的方法,特别是针对在大型语料库中预测下一个推荐items set的检索任务。

图片名称

图1

Loss Function.

顺序检索模型(Sequential retrieval models)通常用于预测postive交互的任务,使用的训练目标包括:cross-entropy loss或REINFORCE policy gradient[2,5]。在这里,我们从一个baseline模型开始,该模型会使用cross-entropy loss,并使用正反馈作为训练label。给定一个训练样例i,其中包含user $u_i$与label item $y_i$的postive交互,loss function是负对数似然:

\[L_i=−log(p(y_i \mid s_i))\]

其中:

  • $s_i$:表示由神经网络计算的用户状态向量,该向量汇总了用户的交互历史。

该损失函数优化了在给定用户状态$s_i$的情况下,从大型语料库中推荐出label项$y_i$的条件概率$p(y_i \mid s_i)$。概率项表示为softmax:

\[p(y_i|s_i)= \frac{ exp(s_i^T v_{y_i}) } {\sum\limits_{y_i' \in A} exp(s_i^T v_{y_i'}) }\]

其中:

  • A:是item空间
  • $v_{y_i}$:表示item embedding vector

在实践中,训练中使用sampled softmax,serving中使用最近邻搜索(NNS)来处理极大的item空间。

为了从负反馈中学习,我们引入了一个“不推荐(not-to-recommend)”损失函数,即不推荐一个item的负对数似然,即:

\[L_i=−log(1−p(y_i \mid s_i))\]

该目标允许模型直接利用negative user feedback作为negative labels,并与positive labels的现有损失函数一起工作。对于每个postive label添加权重$r_i$,对于每个negative label添加权重$w_i$,我们得到整体损失函数:

\[L = − \sum\limits_{i \in D_{pos}} (r_i \cdot log(p(y_i | s_i))) − \sum\limits_{i \in D_{neg}} (w_i \cdot log(1−p(y_i | s_i)))\]

…(1)

其中:

  • $𝐷_{pos}$和$𝐷_{neg}$分别是postive和negative label(如图1所示)。最小化该loss相当于:最大化推荐具有postive feedback的items和不推荐具有negative feedback的items的联合概率。与仅用positive label相比,它会强化与用户兴趣的更强的一致性。

“不推荐(not-to-recommend)”损失函数解决了在training objective中建模negative user feedback的几个实际问题。例如,使用cross-entropy loss $L_i=−log(p(y_i \mid s_i))$和负值label weights可能会减少不想要物品的推荐概率,但当$p(y_i \mid s_i) \rightarrow 0$时,会导致梯度爆炸。原则上,强化学习目标支持为negative training labels分配negative reward values。实际上,我们可以用REINFORCE目标[5]替换positive labels的loss项。但是,对于negative labels,在REINFORCE推荐器中使用负回报(negative rewards)面临一个实际的挑战,在工业环境中,即使经过off-policy correction,由于极大的item空间,当$p(𝑦_𝑖 \mid s_𝑖)\rightarrow 0$时,梯度仍可能爆炸。“not-to-recommend”损失函数规避了这些问题,因为当$𝑝(y_i \mid s_i) \rightarrow 0$时,梯度的保证是有限的

另一种方法是:在相邻postive label的softmax负样本中包含并加权负反馈项( upweight negative feedback items)。与这种方法相比,我们所提出的方法将postive和negative用户反馈的loss项解耦,并且梯度允许更有针对性地从negative labels中学习。

Negative Training Labels和Input Features

显式和隐式的negative用户反馈都可以作为negative训练label。label权重可以根据反馈强度、信号密度以及相对于postive标签的loss值大小进行调整。在我们的平台上,我们将明确的dislike操作和隐式的跳过(skip)信号视为负面训练标签。为了在模型输入中表示用户过去的negative交互,模型输入序列中的每个物品都通过二元特征(binary feature)编码dislikes,而skip则作为停留时间特征( dwell time feature)的一部分。

3.真实环境

我们将“不推荐(not-to-recommend)”损失函数引入基于RNN的顺序推荐器[2,5],该推荐器服务于数十亿用户的短内容平台,并进行实时实验以评估建模”negative user feedback”的真实世界影响。在我们的系统中,顺序推荐器是检索阶段的一部分,从庞大语料库中推荐数百个item,在进行ranking阶段[8]后,最佳的物品会被展示给用户。在实践中,negative user feedback也由下游组件(如ranking模型和启发式算法[1,18,24])决定。即便如此,我们仍然从模型变化中看到了有意义的端到端结果。我们证明,从检索中negative user feedback可以通过:

  • (1)减少不想要的推荐通过系统的机会
  • (2)增强模型与用户兴趣的一致性对齐从而生成更好的推荐

下面报告的指标变化在95%置信区间下是显著的。

建模显式的负面反馈

在这个实验中,我们将显式dislike反馈纳入模型的训练目标中。与不使用dislike信号的模型基线(图2a)相比,在产品主页上使用dislike信号作为输入特征和训练label的实验模型,可以将dislike率降低了2.44%。这种效果比仅使用dislike作为输入特征而不是训练label(-0.34%,不显著)、或排除dislike物品的启发式解决方案(-0.84%)要大得多。同一创作者的重复dislike率下降了9.60%,表明模型在负面反馈后减少了类似的推荐。实验模型将拒绝用户数(Dismissing)降低了2.05%,而观看者仅下降了0.14%。在我们的处理中,拒绝(Dismissals)并没有被显式建模,这种变化表明用户体验确实获得了改善。在我们产品的沉浸式反馈中,这种效果尤为显著。实验模型将dislike率降低了1.10%,同一创作者的重复dislike率降低了7.10%。使用基于模型的满意度指标[7],满意的消费保持不变(+0.00%),不满意的消费减少了0.35%。

图片名称

图2

建模隐式负面反馈

隐式跳过(skip)信号的密度比显式的dislike信号要高得多。我们假设更高的负面用户兴趣覆盖率可以提高整体推荐质量。在这个实验中,我们将skip item作为negative training labels纳入到沉浸式反馈上。我们观察到:整体用户享受度(enjoyment)增加了0.40%(图2b),每天至少有1小时活动的活跃用户增加了0.61%。此外,我们看到同一创作者的重复跳过率降低了1.44%,多样性增加了0.88%。

综合来看,结果表明,将显式负反馈(explicit negative feedback)纳入训练目标可以降低负面用户体验,而建模隐式负反馈(implicit negative feedback)可以提高整体用户享受度。

衡量反应能力(RESPONSIVENESS)的反事实模拟(COUNTERFACTUAL SIMULATION)

真实实验显示了建模负面反馈的整体好处,但没有直接衡量推荐器对这种反馈信号的响应能力(responsive)。我们的目标是衡量响应能力(responsiveness),即当用户对某个物品做出负面反应时,推荐器可以减少多少类似的推荐。然而,由于复杂的用户-推荐器交互,这种推荐器行为无法通过离线模型准确性、在线用户指标或相关的日志数据分析来评估。为了直接衡量推荐器的响应能力,我们需要排除混淆的用户行为,并比较反事实用户行为(counterfactual user actions)对推荐器响应的因果效应(causal effects)。

在这里,我们开发了一个框架,使用模拟用户[21]来衡量对用户反馈的响应能力(图3a)。每个用户按照随机行为轨迹来消费一系列𝑘-1个推荐物品。在第𝑘个物品上,我们在相同的交互历史下模拟多个反事实行为(例如,对其做出负面反应或不这样做)。在每个反事实分支中,我们观察推荐器输出的(𝑘+1)步并计算它们与上一个交互物品的相似度。使用基于内容和基于创作者的相似度的独立度量,我们将相似度得分定义为:推荐与上一个交互物品相同内容簇或创作者的比例。然后,推荐器响应能力被计算为:【提供负反馈 vs. 不提供负反馈】两者间相似度得分的相对变化。这告诉我们推荐器在负反馈时减少了多少类似的推荐,可以用于评估建模变化。

图片名称

图3

我们使用这种方法来衡量推荐器对dislike操作的响应能力,由于其稀疏性这很难进行评估。对于反事实行为(counterfactual actions),我们考虑一个postive交互baseline(长停留时间)与在其上添加不喜欢操作。我们运行了2000次模拟,其中𝑘=50。不使用dislike信号的baseline模型没有响应能力,需要依赖下游系统组件来响应dislike。仅添加dislike输入特征会导致类似的推荐在dislike后显著但有限地减少(-22.7%/-22.8%按内容/创作者相似度),表明dislike操作代表了内在的用户不满意。当在训练label和输入特征中都使用dislike时,模型在dislike后减少了更多类似的推荐(按内容/创作者相似度分别为-60.8%/-64.1%)(图3b)。这些结果表明,将显式负反馈纳入训练目标可以提高模型对这种反馈的响应能力

#