阿里在《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》中提出了ESMM来解决CVR的建模问题:

摘要

在工业应用中,如推荐和广告,准确估计点击后转化率(post-click conversion rate:CVR)对于排序系统至关重要。【传统的CVR建模】使用流行的深度学习方法并实现了最先进的性能。然而,在实践中遇到了几个任务特定(task-specific)的问题,使CVR建模具有挑战性。例如,传统的CVR模型是通过点击样本进行训练的,而在整个空间中进行推理时,则使用所有曝光样本。这会导致样本选择偏差(sample selection bias)问题。此外,存在极端的数据稀疏问题,使得模型拟合变得非常困难。在本文中,我们通过充分利用用户行为的顺序模式,即曝光(impression)→点击(click)→转化(conversion),以全新的视角对CVR进行建模。所提出的整体空间多任务模型(ESMM)可以通过以下两种方式来同时消除这两个问题:

  • i)直接在整个空间上建模CVR
  • ii)采用特征表示迁移学习(feature representation transfer learning)策略

从淘宝推荐系统的流量日志收集的数据集上的实验表明,ESMM显著优于其它方法。我们还发布了这个数据集的抽样版本,以便未来的研究。据我们所知,这是第一个包含点击和转化标签顺序相关样本的公共数据集,用于CVR建模。

1.介绍

转化率(CVR)预测是工业应用中排名系统的重要任务,例如在线广告和推荐等。例如,在优化每次点击成本(OCPC)广告中,预测的CVR用于调整每次点击的出价,以实现平台和广告商的双赢[3]。它也是推荐系统中平衡用户点击偏好和购买偏好的重要因素。

本文重点关注点击后CVR预估任务。为了简化讨论,我们以电子商务网站中推荐系统中的CVR建模为例。给定推荐的商品,用户可能会点击感兴趣的商品,并进一步购买其中的一些商品。换句话说,用户行为遵循曝光→点击→转化的顺序模式。因此,CVR建模是指预估点击后的转化率,即$pCVR=p(conversion \mid click, impression)$。

通常,【传统的CVR建模】方法采用类似于点击率(CTR)预估任务中开发的技术,例如最近流行的深度网络[1,2]。然而,存在一些任务特定的问题,使CVR建模具有挑战性。其中,我们报告了我们在实践中遇到的两个关键问题:

  • i)样本选择偏差(SSB)问题[9]。如图1所示,传统的CVR模型是在由有点击的曝光(clicked impressions)组成的数据集上进行训练的,而在整个空间中进行推理时,则使用所有曝光样本。SSB问题会损害训练模型的泛化性能。
  • ii)数据稀疏(DS)问题。在实践中,用于训练CVR模型的数据通常比CTR任务少得多。训练数据的稀疏性使CVR模型拟合变得非常困难。

图片名称

图1

有几项研究试图解决这些挑战:

  • 在[4]中建立了不同特征的分层估计器,并与逻辑回归模型结合使用以解决DS问题。然而,它依赖于先验知识来构建分层结构,这在拥有数千万用户和商品的推荐系统中难以应用。
  • 过采样方法[8]复制了少数类样本以增加训练数据,但可能会导致过拟合。所有未点击的印象作为负样本的随机采样策略(AMAN)[5]可以通过引入未观察到的例子在一定程度上消除SSB问题,但会导致持续低估的预测。
  • 无偏方法[7]通过拒绝抽样从观察到的样本中拟合真正的潜在分布来解决CTR建模中的SSB问题。但是,当通过拒绝概率的除法加权样本时,可能会遇到数值不稳定性。

总之,在CVR建模场景中,SSB和DS问题都没有得到很好的解决,以上方法也没有利用顺序行为的信息。

在本文中,通过充分利用用户行为的顺序模式,我们提出了一种名为整体空间多任务模型(ESMM)的新方法,能够同时消除SSB和DS问题。在ESMM中,引入了预测曝光后点击率(post-view CTR)和曝光后点击转化率(post-view CTCVR)的两个辅助任务。ESMM不直接使用点击的曝光样本来训练CVR模型,而是将pCVR视为中间变量,乘以pCTR等于pCTCVRpCTCVR和pCTR都是使用所有曝光的样本在整个空间上估计的,因此得到的pCVR也适用于整个空间。这表明SSB问题被消除了。此外,CVR网络的特征表示参数与CTR网络共享。后者使用更丰富的样本进行训练。这种参数转移学习有助于显着缓解DS问题。

对于这项工作,我们从淘宝的推荐系统中收集了流量日志。完整的数据集包括89亿个带有点击和转化顺序标签的样本。进行了仔细的实验。ESMM始终优于竞争模型,这证明了所提出方法的有效性。我们还发布了我们的数据集,以供该领域的未来研究使用。

2.提出的方法

我们假设观察到的数据集为:

\[S = \lbrace (x_i,y_i \rightarrow z_i) \rbrace \mid_{i=1}^N\]

其中:

  • 样本(x,y → z)是从具有域X×Y×Z的分布D中抽取的,其中X是特征空间,Y和Z是标签空间,N是曝光的总数
  • x表示观察到的曝光的特征向量,通常是一个高维稀疏向量,具有多个字段,例如用户字段、商品字段等
  • y和z是二元label,其中y = 1或z = 1表示是否发生了点击或转化事件
  • y → z表示了点击和转化标签的顺序依赖性,即在转化事件发生时,总会有先前的点击

Post-click CVR建模的目标是:估计概率:

\[pCVR = p(z = 1 \mid y = 1, x)\]

两个相关的概率是:

  • post-view点击率(CTR):$pCTR = p(z = 1 \mid x)$
  • post-view点击转化率(CTCVR):$pCTCVR = p(y = 1, z = 1 \mid x)$

在给定曝光x的情况下,这些概率遵循等式(1):

\[\underbrace{p(y = 1, z = 1|x)}_{pCTCVR} = \underbrace{p(y = 1|x)}_{pCTR} \times \underbrace{p(z = 1|y = 1, x)}_{pCVR}\]

…(1)

2.2 CVR建模与挑战

最近,基于深度学习的方法已经被提出用于CVR建模,取得了很好的效果。其中大多数方法都遵循类似的Embedding & MLP 网络架构,如[2]中所介绍的。图2的左侧说明了这种架构,为了简单起见,我们将其称为BASE模型

图片名称

图2 ESMM模型的CVR建模架构概述。在ESMM模型中,引入了CTR和CTCVR两个辅助任务,这两个任务有助于:i)在整个输入空间中建模CVR,ii)提供特征表示的迁移学习。ESMM模型主要由两个子网络组成:左侧是CVR网络,右侧是CTR网络。CTR网络和CVR网络的嵌入参数是共享的。CTCVR的输出是CTR和CVR网络输出的乘积。

简而言之,【传统的CVR建模】方法直接估计点击后(post-click)转化率:

\[p(z = 1 \mid y = 1, x)\]

他们(传统的CVR模型)使用已点击的曝光样本来训练模型,即:

\[Sc = \lbrace (x_j,z_j) | y_j = 1 \rbrace \mid_{j=1}^M\]

其中:

  • M是所有曝光中的点击次数。
  • $S_c$是S的一个子集。

注意,在$S_c$中,

  • (点击过的)曝光如果没有转化,会被视为负样本
  • 有转化的曝光(也点击过)被视为正样本

在实践中,CVR建模遇到了几个任务特定的问题,使其具有挑战性。

1.样本选择偏差(SSB)[9]

事实上,【传统的CVR建模】通过引入辅助特征空间$X_c$,使得

\[p(z = 1|y = 1, x) ≈ q(z = 1|x_c)\]

$X_c$表示与$S_c$相关的$limited^2$空间。对于$X_c$中的每个$x_c$,都存在一个对$(x = x_c,y_x = 1)$:

  • 其中 $x \in X$
  • $y_x$是x的点击label

通过这种方式,使用$S_c$的点击样本在空间$X_c$上训练$q(z = 1 \mid x_c)$。在推理阶段,假设对于任何$(x,y_x = 1)$对,其中:$x \in X$,x属于$X_c$,计算整个空间X上的$p(z = 1 \mid y = 1, x)$的预测值为$q(z = 1 \mid x)$。这个假设有很大的概率会被违反,因为$X_c$只是整个空间X的一小部分。它受到极少出现的点击事件的随机性的严重影响,其概率在空间X的不同区域中变化。此外,在实践中,如果没有足够的观察,空间$X_c$可能与X非常不同。这会导致训练样本的分布从真正的潜在分布中漂移,并损害CVR建模的泛化性能。

数据稀疏性(DS)

传统方法使用$S_c$的点击样本来训练CVR模型。点击事件的罕见发生导致CVR建模的训练数据极为稀疏。直观地说,它通常比相关的CTR任务少1-3个数量级,后者使用所有曝光的S数据集进行训练。表1显示了我们实验数据集的统计信息,其中CVR任务的样本数仅为CTR任务的4%。

2.3 Entire Space Multi-Task Model

等式(1)给我们提供了线索,可以转化为等式(2):

\[p(z = 1|y = 1, x) = p(y = 1, z = 1|x) p(y = 1|x)\]

…(2)

这里,$p(y = 1, z = 1 \mid x)$和$ p(y = 1 \mid x)$是在包含所有曝光的S数据集上建模的。等式(2)告诉我们,通过估计pCTCVR和pCTR,可以在整个输入空间X上推导出pCVR,从而直接解决了样本选择偏差问题。通过单独训练模型分别估计pCTR和pCTCVR,并通过等式(2)获得pCVR似乎很容易,我们将其简称为DIVISION。然而,在实践中,pCTR是一个很小的数字,除以它会引起数值不稳定。ESMM通过乘法形式避免了这个问题。在ESMM中,pCVR只是一个中间变量,受方程(1)的约束。pCTR和pCTCVR是ESMM实际上在整个空间上估计的主要因素。乘法形式使得这三个相关的联合训练估计器能够利用数据的顺序模式并在训练过程中相互传递信息。此外,它确保估计的pCVR值在[0,1]范围内,在DIVISION方法中可能超过1。

ESMM的loss函数定义为等式(3)。它由来自CTR和CTCVR任务的两个loss项组成,这些loss项在所有曝光的样本上计算,而不使用CVR任务的loss。

\[L(\theta_{cvr}, \theta_{ctr}) = \sum\limits_{i=1}^N l(y_i, f(x_i; \theta_{ctr})) +\sum\limits_{i=1}^N l (y_i \& z_i, f(x_i; \theta_{ctr}) \times f(x_i; \theta_{cvr}))\]

…(3)

其中:

  • $\theta_{ctr}$和$\theta_{cvr}$是CTR和CVR网络的参数
  • $l(·)$是交叉熵损失函数

从数学上讲,方程(3)将y → z分解为两部分:y和y&z,实际上利用了点击和转化标签的顺序依赖性。

特征表示转移(Feature representation transfer)。如第2.2节所介绍的,嵌入层将大规模稀疏输入映射为低维表示向量。它贡献了深度网络的大多数参数,学习需要大量的训练样本。在ESMM中,CVR网络的嵌入字典与CTR网络共享。它遵循特征表示转移学习范式。CTR任务的所有曝光训练样本相对于CVR任务要丰富得多。这种参数共享机制使得ESMM中的CVR网络能够从未点击的曝光中学习,并为缓解数据稀疏性问题提供了很大的帮助。

需要注意的是,ESMM中的子网络可以用一些最近开发的模型[1,2]替代,这可能会获得更好的性能。由于篇幅限制,我们省略了这部分内容,重点是解决CVR建模中实际遇到的挑战。

其它

参考

美团在《A Dual Augmented Two-tower Model for Online Large-scale Recommendation》中提出对偶增强双塔模型(DAT)。

抽要

许多现代推荐系统具有非常大的item库(corpus),处理大规模检索的工业界方案是,使用two-tower模型来从content features中学习query和item表示。然而,模型通常存在缺失two towers间的信息交互的问题。另外,不均衡的类目数据也会阻碍模型效果。在本paper中,我们提出一个新的模型,称为对偶增强双塔模型(Dual Augmented two-tower model: DAT),它会集成一个新的自适应模仿机制(Adaptive-Mimic-Mechanism)以及一个类目对齐Loss(Category Alignment Loss: CAL)。我们的AMM会为每个query和item定制一个增强向量(augmented vector)来缓和信息交叉的缺失问题(注:此种实现决定了该方法在工程实现上效率不高)。再者,我们通过对不平衡的类目(uneven categories)进行对齐item representation,我们的CAL可以进一步提升效果。在大规模datasets上的离线实验表示了DAT的优越性。另外,在线A/B testings证实:DAT可以进一步提升推荐质量。

1.介绍

2.模型架构

2.1 问题声明

我们考虑一个推荐系统,它具有:

  • 一个query set:\(\lbrace u_i \rbrace_{i=1}^N\)
  • 一个item set \(\lbrace v_j \rbrace_{j=1}^M\)

其中:

  • N是users数目,M是items数目。

这里,\(u_i, v_j\)是许多features(例如:IDs和content features)的concatenations,由于稀疏性它可以是非常高维的。

query-item feedback可以通过一个matrix \(R \in R^{N \times M}\)进行表示,其中:

  • 当query i 给出在item j上的一个postive feedback时,\(R_{ij}=1\);
  • 否则为\(R_{ij}=0\)。

我们的目标是:给定一个特定query,从整个item corpus中有效选择可能的数千个candidate items。

2.2 对偶增强双塔模型

我们提出的模型框架如图1所示。DAT模型使用一个增强向量(augmented vector)\(a_u(a_v)\)来从其它tower中捕获信息,并将该vector看成是一个tower的input feature。另外,Category Alignment Loss会将从具有大量数据的category中学到知识并迁移到其它categories中。

图片名称

图1 得出的对偶增强双塔模型的网络架构

2.2.1 Embedding Layer

与two-tower模型相似的是,在\(u_i\)和\(v_j\)中的每个feature \(f_i \in R\)(例如:一个item ID)会经过一个embedding layer,接着被映射到一个低维dense vector \(e_i \in R^K\)中,其中K是embedding维度。特别的,我们定义了一个embedding matrix \(E \in R^{K \times D}\),其中:E通过学习得到,D是唯一特征数,embedding vector \(e_i\)是embedding matrix E的第i列。

2.2.2 Dual Augmented layer

对于一个特定query和candidate item,我们会通过它们的IDs来创建相应的增强向量(augmented vectors)\(a_u\)和\(a_v\),并将它们与feature embedding vectors进行cancatenate一起来获得增强后的输入向量(augmented input vectors) \(z_u, z_v\)。例如,如果query u具有features “uid=253,city=SH,gender=male,…“,item v具有features “iid=149,price=10,class=cate,…“,我们有:

\[z_u = [e_{253} || e_{sh} || e_{male} || \cdots || a_u] \\ z_v = [e_{149} || e_{p_{10}} || e_{cate} || \cdots || a_v ]\]

其中:

  •   ”表示向量连接操作符(concatenation op)

增强后的输入向量(augmented input vectors) \(z_u\)和\(z_v\)不仅包含了关于当前query和item的信息,也包含了通过\(a_u\)和\(a_v\)的历史正交叉

接着,我们将\(z_u\)和\(z_v\) feed到two towers上(它们由使用ReLU的FC layers组成),以便达到在由 \(a_u\)和\(a_v\)的two towers间的信息交叉。接着,FC layers的output会穿过一个L2 normalization layer来获得关于query \(p_u\)和item \(p_v\)的增强后表示(augmented regresentations)。正式的,two steps的定义如下:

\[\begin{align} h_1 & = ReLU(W_1 z + b), \cdots \\ h_L & = ReLU(W_l h_{L-1} + b_l) \\ p & = L2Norm(h_L) \end{align}\]

…(1)

其中:

  • z表示\(z_u\)和\(z_v\)
  • p表示\(p_u\)和\(p_v\);
  • \(W_l\)和\(b_l\)是第l层的weight matrix和bias vector;

two towers具有相同的结构但具有不同的参数。

再者,为了估计augmented vectors \(a_u\)和\(a_v\),我们设计了一个Adaptive-Mimic Mechanism(AMM),它会集成一个mimic loss和一个stop gradient策略。mimic loss的目标是:使用augmented vector来拟合在其它tower上的所有正交叉(postive interactions),它属于相应的query或item。对于label=1的每个样本,我们定义了mimic loss作为在augmented vector与query/item embedding \(p_u, p_v\)间的MSE

\[loss_u = \frac{1}{T} \sum\limits_{(u,v,y) \in T} [y a_u + (1-y)p_v - p_v]^2 \\ loss_v = \frac{1}{T} \sum\limits_{(u,v,y) \in T} [y a_v + (1-y)p_u - p_u]^2\]

…(2)

其中:

  • T是在training dataset T中的query-item pairs数目
  • \(y \in \lbrace 0, 1 \rbrace\)是label

我们在接下来的子章节中讨论了标记过程(labeling process)。如上所示:

  • 如果label y=1, \(a_v\)和\(a_u\)会靠近query embedding \(p_u\)和item embedding \(p_v\);
  • 如果label \(y=0\), 则loss等于0

如图1所示,augmented vectors被用于一个tower中,query/item embeddings会从另一个生成。也就是说,augmented vectors \(a_u\)和\(a_v\)会总结关于一个query或一个item与另一个tower相匹配的高级信息。因为mimic loss是为了更新\(a_u\)和 \(a_v\),我们应将\(p_u\)和\(p_v\)的值进行freeze。为了这么做,会使用stop gradient策略来阻止\(loss_u\)和\(loss_v\)反向梯度传播到\(p_v\)和\(p_u\)

一旦获得两个augmented vectors \(a_u\)和\(a_v\),他们会将它们看成了两个towers的input features,来建模在two towers间的信息交叉。最终,模型的output是query embedding和item embedding的inner product:

\[s(u, v) = <p_u, p_v>\]

其中,s(u,v)表示由我们的retrieval model提供的score。

2.2.3 Category Alignment

在工界业,items的categories会非常分散(例如:foods、hotels、movies等),每个category的items的数目是非常不均。有了这些不均衡的category数据,two-tower model会对于不同的categories表现不一样,在相对较小数目的items上效果要更差。为了解决该问题,我们在训练阶段提出了一个Category Alignment Loss(CAL),它会将具有较大数目的categories学到的知识迁移到其它categories上。特别的,对于每个batch,具有较大量数据的category的item representation \(p_v\)会被用来形成主要的category set:\(S^{major} = \lbrace p_v^{major}\rbrace\),并于其它categories的\(p_v\)会形成它们各自的category sets:\(S^2, S^3, S^4, \cdots\),我们定义了category alignment loss作为在major category和其它categories features间的二阶统计(协变量)间的距离:

\[loss_{CA} = \sum\limits_{i=2}^n || C(S^{major}) - C(S^i)||_F^2\]

…(3)

其中:

  • \(\|\cdot \|_F^2\)表示平方矩阵Frobenius范数(squared matrix Frobenius norm)
  • n表示categories数目
  • \(C(\cdot)\):表示 covariance matrix

2.3 模型训练

我们会将retrieval问题看成是一个二元分类问题,并采用一个随机负采样框架。特别的,对于在每个postive query-item pair(label=1)中的query,我们会从item corpus中随机采样S个items来创建具有该query的S个negative query-item pairs(label=0),接着添加这些S+1个pairs到training dataset中。对于这些pairs的cross-entropy loss如下:

\[loss_p = - \frac{1}{T} \sum\limits_{(u,v,y) \in T} (y log \sigma(<p_u, p_v>)) + (1-y) log(1 - \sigma(<p_u, p_v>)) \\ T=D \times (S+1)\]

…(4)

其中:

  • D是query-item pairs的postive feedback query-item pairs的数目
  • T是train pairs的总数目
  • \(\sigma(\cdot)\)表示sigmoid function

final loss function的公式如下:

\[loss = loss_p + \lambda_1 loss_u + \lambda_2 loss_v + \lambda_3 loss_{CA}\]

…(5)

其中,\(\lambda_1, \lambda_2, \lambda_3\)是可调参数。

3.实验

在本节中,我们会进行在线、离线实验来调整DAT设计的合理性。

3.1 Datasets

我们会在两个大规模数据集上评估: 一个从meituan的在线系统的日志中抽样得到,另一个来自Amazon[3]。

  • Meituan dataset包含了连续11天的数据,前10天用于训练,第11天用于测试
  • 我们会将前10天出现过的items组合在一起形成item corpus

Amazon Books dataset则相对较小,我们只保持至少被看过5次的items,以及至少看过5个items的用户。我们留下剩下的item作为testing。详细如表1所示。

图片名称

表1

3.2 实验设定

下面的方法被广泛用于工作界,用于与DAT model的对比:

  • WALS:
  • YoutubeDNN:
  • FM:
  • Two-tower Model:
  • MIND:

我们通过使用distributed Tensorflow建模以使用及Faiss来从大规模item pool中检索top-N items。对于所有模型,embedding维度和batch size被固定到32-256维上。所有模型通过Adam optiizer进行训练。为了确保一个公平对比,所有模型的其它超参数,被单独调参以达到最优结果。对于DAT,每个tower的FC layers的数目被固定在3,维度为256、128、32. augmented vectors \(a_u\)和\(a_v\)被设置为 d=32,而\(\lambda_1, \lambda_2\)被设置为0.5,\(\lambda_3\)被设置为1。为了评估多个模型的offline效果,我们使用HitRate@K和MRR metrics,它们被广泛用于工业界的retrieval。其中K被置为50到100,因为retrieval module需要检索一个相当大数目的candidate items来feed给ranking module。由于大量的测试实例,我们采用一个MRR的归一化版本,factor=10.

3.3 离线结果

3.3.1 模型对比

表3所示

3.3.2 Augmented Vectors的维度

在DAT中的augmented vector在建模信息交叉上会扮演着一个主要角色,为了分析维度的影响,我们研究了在两个datasets上对应不同augmented vectors维度的DAT效果。如图2所示,在Meituan的DAT的效果提升会随着dimension的增加而获得提升,而在Amazon上的DAT效果提升只发生在首个位置,接着会下降。这是因为两个datasets的数据量的不同造成的。另外,忽略维度外,它总是能达到更好效果,这对augmented vector的有效性作出了解释。

图片名称

图2 在两个datasets上,在HR@100和MRR上的效果,随着augmented vectors的维度变化

3.4 在线实验

除了离线研究外,我们会通过部署DAT来处理一周的真实流量,系统每天会服务6000w用户。为了做出公平对比,retrieval stage会遵循相同的ranking procedure。在线实验的baseline方法是一个two-tower模型,它是base retrieval算法,会服务online traffic的主要流量。有上百个candidate items通过一个方法进行检索,并feed给ranking stage。图3展示了7个连续天的在线结果。我们的模型效果要胜过baseline一大截,在CTR、GMV上的整体平均提升分别为:4.17%、3.46%。

图片名称

图3 DAT的在线效果和baselines

4.结论

参考

阿里在KDD 2020《Maximizing Cumulative User Engagement in Sequential Recommendation: An Online Optimization Perspective》提出了MDP-SSP。

摘要

为了在序列推荐(sequential recommendation)中最大化累积用户参与度(cumulative user engagement 例如:cumulative clicks),通常需要对潜在的两个冲突目标进行tradeoff,也就是说:追求更高的即时用户参与度(immediate user engagement,例如:click-through rate)和鼓励用户浏览(例如:更多的items曝光)。现存的工作通常分开考虑这两个任务。因而会导致次优的结果。在本paper中,我们从在线最优化的视角,研究了该问题,并提出了一个灵活并且实际的框架来对更长的用户浏览长度和更高的即时用户参与度间进行tradeoff。特别的,我们将:

  • items:看成是actions
  • 用户请求(user requests):看成是states
  • 用户离开(user leaving):看成是一个吸收态(absorbing state)
  • 每个用户的序列行为:看成是一个个性化的马尔可夫决策过程Markov decision process(MDP)

因此,最大化cumulative user engagement的问题可以转化成一个随机最短路径(SSP:stochastic shortest path)问题。同时,有了immediate user engegement和退出概率估计,可以看到:SSP问题可以通过动态规划(DP)进行有效求解。在实际数据集上的实验表明了该方法的有效性。另外,该方法被部署到大型电商平台上,达到了7%的cumulative clicks的提升。

1.介绍

最近些年,sequential recommendation在许多场景在使用。比如:头条,tiktok等。

不同于传统的推荐系统(通常推荐items的数目的固定的),sequential recommendation的最重要特性是:它会迭代式推荐items,直到用户退出(如图1)。这意味着,用户可以浏览无尽的items。我们针对此的目标是:最大化在每个session内的累积用户参与度(cumulative user engagement),比如:累积点击(cumulative clicks)、累积停留时间(cumulative dwell time)等。为了该目的,推荐系统需要同时达成两个目标:

  • a) 吸引用户具有一个更长的session,比如:浏览更多items
  • b) 捕获user interests,比如:达到更高的immediate user engagement

图片名称

图1

在传统的推荐系统中,由于推荐item的数目是固定的,大多数努力都花在提升immediaite user engagement上,它通常通过CTR进行衡量,等。然而,当这样的一个策略被用到sequential recommendation中时,会趋向于产生次优的cumulative user engagement,这是因为浏览items的数目有限。另外,由于它们间的内在冲突,想要同时达到一个更长session和更高immediate user engagement是一个trivial任务(可以通过实验进行演示)。例如,为了达到一个更长的session,它通常需要探索更多样的推荐结果;这会牺牲immediate user engagement。因此,如何对一个一个更长的session和更高的immediate user engagement进行tradeoff变得非常重要,可以达到一个更高的cumulative user engagement,这对于sequential recommendation来说是个非常重要的问题。

通常来说,在sequential recommendation中存在的工作划成两派。派系1尝试利用sequential information(例如:用户的交互行为)来更准地估计user engagement(例如:CTR)的概率【8,11,12,16,22】。例如,通过使用RNN或它的变种【8,11,25】。通过利用sequential行为模式,这些方法关注于更准地捕获用户兴趣,但没有考虑扩展session length,因而会导致次优结果。基于多样结果的观查,趋向于吸引用户浏览更多的items,第二派的方法显式考虑推荐结果多样性【7,9,23】。然而,在多样性和用户浏览长度间的关系是非常经验性的;因而,直接优化多样性并没有充分理由,特别是存在这样的事实:目前不存在被广泛接受的meartures。因此,在sequential recommendation中最优化cumulative user engagement仍是个挑战。

在本paper中,我们从在线最优化(online optimization)的角度,考虑在sequential recommendation中最大化cumulative user engagement的问题,并提出了一个灵活和实际的框架来解决它。特别的,当将不同的items看成是不同的actions时,用户不同的请求看成是states,用户离开看成是一个absorbing state,在MDP框架中的用户浏览过程,是一个最大化cumulative user engagement的问题,可以看成是一个随机最短路径问题(SSP)问题。为了让该框架可行,在每个state(除了absorbing state),我们需要知道对于每个可能action的两个概率,例如:达到user engagement(例如:click)的概率以及转换成absorbing state的概率(这意味着用户退出浏览过程)。很明显,估计user engagement的概率已经被广泛研究,许多已经存在的机器学习方法可以被采用。同时,我们提出了一个multi-instance learning方法来估计将absorbing state的转移概率(例如:用户退出)。有了该框架以及相应的概率被有效估计,SSP问题可以通过动态规划(DP)进行有效求解。在真实datasets中的实验表明了该方法的有效性。

2.相关工作

2.1 Sequential Recommendation

在最近几年,常规推荐方法,例如:RNN models,使用attention的memory network,被广泛应用于Sequential Recommendation场景。为了找到应推荐的next item,RNN models会通过使用历史序列信息捕获用户的sequence模式。可以训练一个memory network并引入attention机制来加权某些sequential elements。【11,22】表明:这些方法可以极大胜过经典方法(它们会忽略sequential信息)。本质上,他们仍会估计next item的immediate user engagement(),不会考虑上quit probability。因此,进一步的提升必须最大化cumulative user engagement。

2.2 MDP and SSP

随机最短路径(SSP)是一个关于经典最短路径问题的随机版本:对于一个graph的每个node,我们必须选择一个关于在后继节点集合上的概率分布,以便达到一个特定目标节点具有最小的期望开销【4,21】。SSP问题通常是一个MDP问题,具有以下假设:存在一个absorbing state和一个合适的策略。一些动态规划的变种可以被用来求解该问题。RTDP是一个算法,用来求解non-deterministic planning问题,它可以看成是一个启发式搜索或者一个动态规划过程。Labeled RTDP是RTDP的一个变种,关键思想是:如果它的后继节点已经收全省,将一个state标记为sloved,sloved states不会进一步更新。

2.3 Multi-Instance Learning

在MIL任务中,每个样本可以通过一个实例包进行表示【10】。如果它包含了至少一个正实例,则该包(bag)是正向(positive);否则为负。根据[1] 该方法可以分成三个范式:

  • instance-space paradigm
  • bag-space paradigm
  • embedded-space paradigm

对于我们的sequential recommendation设定,建模转移概率与instance-space paradigm一致。在instance-level MIL任务上,一些SVM-based的方法被提出来。MI-SVM是一个SVM-like MIL方法的变种,主要思想是:在每次迭代中,它会强制远离决策超平面(decision hyperplane,它具有最大间隔)的instance为postive。

3.问题声明

我们将每个浏览过程建模成一个个性化的MDP过程,它包括:一个absorbing state,我们将最大化cumulative user engagement的问题看成是一个SSP问题。

3.1 个性化MDP模型

MDP包含了4个元素的tuple (S, A, R, P):

  • State space S: \(S = \lbrace s_1, s_2, s_3, \cdots, s_t, \cdots, s_T, s_A \rbrace\)。这里我们将推荐序列中的每个step看成是一个单独的state,并定义\(s_t = t\),其中t是step index。由于每个step中只有一个item会被展示给用户,t也是浏览items的顺序数(sequence number)。T是浏览session length的上限,它对于推荐场景来说是足够大的。\(s_A\)被定义成absorb state,意味着用户离开。
  • Action space A:\(A = \lbrace 1,2,3,\cdots, K\rbrace\)。Action space A包含了所有candidates,它可以在当前session中被推荐
  • Reward R:\(R \in R^{(T+1) \times K}\)。将S中的state表示成s,将在A中的action表示a,那么\(R_{s,a}\)表示在state s上采用action a的reward。特别的,\(R_{s_t, a_t}\)是在第t个step的immediate user engagement(例如:CTR)。
  • 转移概率(Transition probability) P: \(P \in R^{(T+1) \times K \times (T+1)}\),并且\(P_{s,a,s'} \in [0, 1]\)是在采用action a后,从state s转移到state \(s'\)的概率。

由于在S中的states是顺序的,我们在P上引入一个regulation,它来自所有states(除了\(s_T, s_A\)),用户可以转移到下一个state(继续浏览),或者跳到absorbing state(退出)。另外,从最后的浏览step来看,用户只会进到absorbing state。正式的,我们有:

\[\begin{cases} P_{s_i, a_i, s_{i+1}} + P_{s_i, a_i, s_A} = 1, i < T \\[2ex] P_{s_T, a_t, s_A} = 1, i=T \end{cases}\]

…(1)

该过程的有限状态机如图2所示。再者,强调的是,提出的MDP模型是个性化的,我们需要为每个online session来infer一个新的MDP模型。生成MDP models的一个有效算法会在后面呈现。

图片名称

图2

3.2 SSP问题

基于MDP模型,在sequantial recommendation中的累积回报(cumulative rewards)可以公式化为一个SSP问题:给定一个MDP,目标是寻找一个policy \(\pi^*: S \rightarrow A\),它可以帮助我们规划一个具有最大累计回报的path:

\[\pi^* = argmax_{\pi} E(\sum\limits_{t=1}^{\tau} R_{s_t, a_t})\]

…(2)

其中,\(\tau\)是实际浏览长度。\(\tau\)的分布可以被导出:

\[P(\tau \geq t) = \prod_{i < t} P_{s_i, a_i, s_{i+1}}\]

…(3)

因而,等式(2)的expected cumulative reward可以被表示为:

\[E(\sum\limits_{t=1}^{\tau} R_{s_t, a_t}) = \sum_{t \leq T} R_{s_t, a_t} P(\tau \geq t)\]

…(4)

最终,通过将等式(1)引入到等式(4)中,我们有:

\[E(\sum\limits_{t=1}^{\tau} R_{s_t, a_t}) = \sum\limits_{t=1}^T R_{s_t, a_t} \times \prod\limits_{i < t} (1 - P_{s_i, a_i, s_A})\]

…(5)

3.2.1 Remark 1

最大化等式(5)的目标是共同最优化以下两个点

  • 1)用户浏览长度(\(\tau\))
  • 2)immediate user engagement (例如:\(R_{s_t, a_t}\))

根据该公式,我们应首先估计等式(5)中的\(R_{s_t, a_t}\)和\(P_{s_i, a_i, s_A}\),它本质上会生成一个个性化的MDP模型。接着我们通过最大化等式(5)来最优化一个policy,它可以用来为相应用户规划一个推荐序列\([a_1, \cdots, a_T]\)(或者称为 在SSP中的Path)。

4.提出的方法

为了最大化expected cumulative rewards,我们会从personlized MDP model中学习一个MDP generator,它可以在线生成,接着使用personized MDP模型来规划推荐序列。因此,提出的MDP-SSP框架包含了两部分:一个离线MDP Generator和一个在线SSP Planer,它如图3所示。

图片名称

图3 MDP-SSP框架

4.1.1 MDP Generator

它被设计成用来为每个online session生成personalized MDPs。在该部分中存在两个子模块:Model Worker和Calibration Worker。Model Worker被用来从离线历史数据中生成一个模型,目标是提供个性化MDP的必要元素。特别的,等式(5)中需要的reward function \(R_{s_t, a_t}\)和退出概率(quit probability) \(P_{s_i, a_i, s_A}\)。这里:

  • \(R_{s_t, a_t}\)可以是一个immediate user engagement,例如:immediate click,因而,Model Worker包含了相应的estimation model,例如:click model。
  • \(P_{s_i, a_i, s_A}\)与一个quit model相关,它决定着浏览session长度,是一个关于Model Worker的重要组件。

再者,由于SSP planing的效率依赖于生成的MDP model的accuracy,我们引入一个额外的Calibration Worker来对从学到的模型中获得的ranking scores进行calibrate到real value【14, 18, 20】。

4.1.2 SSP Planer

它会规划一个最短路径(具有最大cumulative rewards),它包含了顺序的推荐items。它也包含了两个submodules:MDP Producer和SSP Solver。基于通过离线MDP Generator算法学到的该generator,MDP Producer 会为用户的当前session生成一个个性化的MDP。接着SSP Solver会计算一个基于个性化MDP的最优路径给该用户。

4.2 Offline MDP Generator算法

在本节中,我们描述了一个离线算法来学习reward function \(R_{s_t, a_t}\)以及quit probability \(P_{s_i, a_i, s_A}\),它对生成online个性化MDPs是必需的。我们将看到建模\(P_{s_i, a_i, s_A}\)的问题会更严格和困难。实际上,我们获得的历史数据通常是一个item set,它包含了该用户看到过的items,直到session结束(它会做出用户退出或者继续浏览)。然而,很难知道item set中的哪个item是准确的主因。为了估计每个item的退出概率,我们会采用MIL框架,通过采用item set作为bag,将item作为instance。详细的,如果该item set会造成一个quit,那么该用户会不喜欢在该set中的所有items;如果该item set会造成一个持续的浏览,那么在item set中至少有一个item会被该用户接受,它与MIL setting是一致的

4.2.1 Remark 2

标准的MIL猜想声明:所有negative bags只包含negative instances,positive bags包含至少一个postive instance。

通过使用一些经典的MIL技术,我们可以获得如下user quit model。

4.2.2 User Quit Model

基于用户的浏览历史,我们可以获得包含了bags \(B_i\)的序列,你可以验证在浏览session中只有最后的bag不会让users继续浏览。我们假设:该bag会继续保持该用户是一个postive bag,写成\(B_i^+\),并且最后一个是negative bag,写成“\(B_{leave}^-\)”,因此,一个浏览session 为:\(B=(B_1^+, \cdots, B_i^+, \cdots, B_{leave}^-)\)。我们的任务是构建一个模型来预测每个new instance \(B_{*,j}\)的quit probability。然而,存在一个gap,我们的training labels是bag level,而predictions是instance level。为了处理该问题,我们引入MI-SVM【2】来帮助我们训练一个instance level model,它具有bag level data,据我们所知,它对推荐来说是一个MIL的新应用。quit model的训练过程如算法1所示。

4.2.3 Model Calibration

在工业界推荐系统中,由click model和quit model提供的ranking scores,并不等于MDPs中的reward \(R_{s_t, a_t}\)以及转移概率\(P_{s_i, a_i, s_A}\)。因而,它必须对模型的output进行calibrate到真实概率上。对该话题感兴趣的读者可以去【14,18,20】进行详细阅读。在本paper中,我们将predicted score表示成\(f(B_{i,j})\),真实概率值可以如下进行表示:

\[P(y=1 | B_{i,j}) = \frac{1}{1 + exp(A * f(B_{i,j}) + B)}\]

…(6)

其中,A和B是两个scalar参数,可以从历史数据中学习到.

4.3 Online SSP Planner算法

基于最近子节中提到的MDP Generator,我们会正式介绍SSP Planer,它包含了MDP Producer和SSP Slover。

4.3.1 MDP Producer

当一个新的session来的时候,MDP Producer接受来自server的关于user和items的在线信息,接着feeds它们到从MDP Generator中genreators中。接着,可以获得reward和转移概率并实时生成一个个性化MDP。值得注意的是,关于以下的信息:用户已经浏览了多少items,有多少item的类目已经被展示给用户,该用户点击了多少次等,都应该被考虑。这些交互features会扮演着重要的角色,造成用户继续浏览或退出。

4.3.2 SSP Solver

从MDP Producer中,我们可以为当前session获得一个个性化MDP,下一个工作是,寻找一个路径\([a_1, \cdots, a_T]\),它具有最大cumulative rewards。除了absorbing state外,相应的MDP具有T个states,接着最优的state value function可以使用在T-steps交互的动态规划进行求解。接着,很容易验证,我们特定设计的MDP的transition matrix会保持一个上三角结构,如等式(7)所示。

(7)

基于特殊的结构化转移矩阵,很容易发现:当我们更新当前的state value function,后者的state value function不会变化。因此,向后归纳(backwards induction)会被采纳。我们可以从absorbing state开始,迭代式获取最优的policy以及相关的最优state value function。我们正式地将该过程归纳如下:

\[V^*(s_A) = 0\]

…(8)

再者,当i = T时,我们有:

\[\pi^*(s_T) = argmax_{a_T} \lbrace R_{s_T, a_T} + P_{s_T, a_T, s_A} V^*(s_A) \rbrace \\ = argmax_{a_T} \lbrace R_{s_T, a_T} \rbrace, \\ V^*(s_T) = max_{a_T} \lbrace R_{s_T, a_T} \rbrace\]

…(8)(9)(10)

当 i < T时,我们有:

\[\pi^*(s_t) = argmax_{a_t} \lbrace R_{s_t, a_t} + P_{s_t, a_t, s_{t+1}} V^*(s_{t+1}) + P_{s_t, a_t, s_A} V^*(s_A)\ rbrace \\ = argmax_{a_t} \lbrace R_{s_t, a_t} + P_{s_t,a_t,s_{t+1}} V^*(s_{t+1})\rbrace \\ V^*(s_t) = max_{a_t} \lbrace R_{s_t, a_t} + P_{s_t,a_t,s_{t+1}} V^*(s_{t+1}) \rbrace\]

…(11)(12)

基于等式(8)(12),我们可以计算一个最优的路径 \([a_1, \cdots, a_T]\)。最优化过程如算法2所示。我们可以看到:整个planing过程相当简单和清晰,它有利于提出方法的在线应用。特别的,假设存在K个候选,SSP的复杂度为O(TK)个。

5.实验

我们在一个大型电商平台上开展实验。首先分析了数据特性:表明使用SSP的必要性,接着在离线和在线评估SSP。

5.1 数据集

Dataset 1: MDP Generator的数据集。它包含了15天关于user item交互的历史数据,基于此,我们可以学习模型来预测ctr以及任意user item pair的退出概率(quit probability)

Dataset 2: 该dataset用于SSP offline evaluation。我们收集活跃用户以及它们相应的浏览sessions,并丢弃掉那么不活跃用户或过度活跃用户。根据规则:是否浏览session length在50个items到100个items间进行采样。最终,我们得到1000个users以及相应的浏览sessions。浏览sessions的平均长度是57.

Dataset 3: 该dataset用于SSP online evaluation。它实际上是线上环境,每天具有1000w用户和1亿items。

许多策略(包括SSP)将被部署,会对Dataset 2和Dataset 3中的每个用户进行rerank个性化的候选items,来验证它们在最大化cumulative user engagement上的效果。在那之前,我们应首先验证:该datasets会与如下特性一致:

  • 歧视(Discrimination): 不同的items会提供不同的quit概率,他们会具有一个明显的歧视。否则,当做出推荐时没必要考虑quit概率。
  • 弱相关(Weakly related): 对于一个用户来说,一个item的退出概率会与CTR弱相关。否则SSP和Greedy会是相同的。

5.2 Evaluation Measures

在该实验中,我们会考虑cumulative clicks作为cumulative user engagement。更者,我们将cumulative clicks命名为IPV,这意味着Item Page View,常用于工业界。浏览深度(Browse length:BL)也是一个measurement,因为IPV可以通过让用户浏览更多的items来进行最大化。

在离线评估中,假设:推荐的sequence length是T,根据等式(1)-(5),我们有:

\[IPV = \sum\limits_{t=1}^T R_{s_t, a_t} \times \prod\limits_{i<t} (1 - P_{s_i, a_i, s_A}) \\ BL = \sum\limits_{t=1}^T \prod_{i < t} (1 - P_{s_i, a_i, A})\]

…(13)(14)

再者,推荐序列的CTR的定义如下:

\[CTR = \frac{IPV}{BL}\]

…(15)

在每个evaluation中,IPV可以根据实际在线情况进行统计,根据:

\[IPV = \sum\limits_{t=1}^{\tau} c_t\]

…(16)

其中:\(c_t \in \lbrace 0, 1\rbrace\)表示在t step上的click行为,而\(\tau\)是浏览深度,例如:\(BL=\tau\)。

5.3 对比策略

  • Greedy:在我们的方法与传统方法间的关键不同点是:我们会考虑user的退出概率,并计划着一个可以直接最大化IPV的path,而大多数其它方法尝试尽可能准地估计每个step的reward \(R_{s_t, a_t}\)。然而,当计划着根据\(R_{s_t, a_t}\)贪婪地对items进行排序时,会忽略掉\(P_{s_i, a_i, s_A}\)对于IPV来说很关键。Greedy是第一个对比策略,它的quit概率\(P_{s_i, a_i, s_A}\)不涉及。假设:存在K个侯选,planning path的长度为T,则复杂度是\(O(TK)\)。
  • Beam Search:这是一个search算法,可以对效果(performance)和消耗(consumption)进行平衡。它的目的是:将相对最优的路径以序列方式解码。它会被选择作为对比策略,因为退出概率\(P_{s_i, a_i, s_A}\)会被涉及。我们会根据等式(13)计算beam search score,因此,Beam Search会直接应用到这来最优化IPV。假设:存在K个候选,planning path的长度是T,复杂度是O(STK),其中S是beam size。

5.4 MDP Generator Learning

我们首先会描述MDP Generator learning如第5.4节所示。

5.4.1 Model Learning

在模型学习中,我们会充分利用user属性和item属性。再者,我们会添加interactive features,例如:该item的类目已经被展示给该user多少次、被给user点击多少次,它直觉上对于用户是否做继续浏览动作扮演着一个很重要的角色。AUC,是一个频繁使用的metric,被用来measure 学到的模型,结果如表1所示。

这里我们简短声明下:关于Quit Model的测试方法。由于我们确实不知道哪个item使得用户做出继续浏览行为,因而AUC不能在instance level被直接计算。在bag level中使用instance prediction来计算AUC更合理,因为我们可以假设:如果该bag包含了至少一个postive instance,该bag是positive的;如果所有instance是negative的,则该bag是negative的。

再者,我们会在Quit Model上开展一个对比实验来表明:采用MIL的必要性。由于bag labels是已知的,最直觉的想法是:使用bag的label来表示 instance的label。基于此想法,我们获取了一个\(QuitModel_{no\_MIL}\),并且AUC也在bag level进行计算。结果如表2所示,从中我们看到,采用MIL对于Quit Model learning来说可以给出一个提升。

5.4.2 Model Calibration

Calibration尝试将从models的ranking scores映mtdf到real value中。这里非常重要,error会累积,见等式(11)(12)。我们会使用普拉特扩展(platt scaling),并采用RMSE(Root Mean Square Error)作为measurement。结果如表3所示。

从表3中,可以看到,在Calibration后可以达到极大提升,接着real value和calibrated value的曲线在图4和图5中。横坐标是通过predicted scores进行排序的items,纵坐标是calibrated score和real score。real score可以从items bin中获得。

图片名称

图4

图片名称

图5

5.4.3 Discrimination

在dataset 2中,对于每个user我们会从MDP Generator(,例如:items的用户浏览session)中获得相应候选的quit probability。接着,可以获取一个user的quit probability list \(l_u = (q_1, \cdots, q_i, \cdots, q_n)\),其中\(q_i\)是当推荐item i给user u的quit probability。每个list会计算标准差(STD)和MEAN,接着dataset的统计数据如表4所示。从表中,它可以表明:对每个user,不同的candidates会做出不同的贡献来保持用户浏览(user browsing),接着他们具有一个极大的discrimination。

表4

5.4.4 弱相关

我们进一步研究:在quit probability和immediate user engagement(例如:每个step的reward)间的相关性。对于每个user,我们会获得两个item lists \(l_{u1}\)和\(l_{u2}\),它具有长度L=20. 其中,\(l_{u1}\)和\(l_{u2}\)会根据\(R_{s_t, a_t}\)以及\((1- P_{s_i, a_i, s_A}\)分别被贪婪生成。如果\((1- P_{s_i, a_i, s_A}\)和\(R_{s_t, a_t}\)完全正相关,\(l_{u1}\)和\(l_{u2}\)会是相同的,它会导致SSP和Greedy的equality。我们会使用Jaccard Index和NDCG来measure \(l_{u1}\)和\(l_{u2}\)间的相似度,dataset的平均结果如表5所示。从表中可知,我们会发现:在dataset中,quit probability和immediate user engagement会被弱相关。

表5

5.5 SSP Planner: 离线评估

5.5.1 SSP Plan。

我们会根据上面的每个策略,计算一个具有T step的序列list:\(L_{T} = (a_1, a_2, \cdots, a_T)\)。\(L_T\)的收益可以根据等式(13)-(15)进行计算。

详情如表6所示,我们可以发现:

  • Greedy会达到最佳的CTR,而SSP会达到最佳的IPV和BL。这会展示我们的思想:IPV可以通过使得用户浏览更多内容来进行提升。SSP不会最优化每一step的效率(effectiveness),它的目的是提升累积点击(cumulative clicks)的总数。
  • step数越长,IPV和BL的优化越大。见:T=20和T=50,当T乘以2.5时,从20到50,IPV和BL两者的提升会超过2.5倍(1347.57 vs. 392.97, 4045.47 vs. 1066.08)。这会产生与我们期望一致的结果:计算越多的step会导致在users中的quit probability越大。

表6

5.5.2 SSP Plan具有Duplicate Removal

在一些实践场景中,items会禁止重复展示。我们需要在三个策略上做出一个折中:

  • Greedy:在前t steps中选中的items会被移除出step t+1中的candidate set。
  • Beam Search:在前t steps中选中的items会在第step t+1中的candidate set中移除
  • SSP:当planing时,我们会根据每步\(V^*(s_t)\)的上界,从step T到step 1进行计划(plan),并在每一step保持最优的T个items作为step的候选。当进行选择时,我们会从step 1到step N做出选择。特别的,我们会选择最优的一个item并从剩余step的候选中同步移除它

从表7的详细结果看出,我们可以发现:尽管折中会伤害理想效果,但SSP仍要胜过Greedy和Beam Search。

表7

5.5.3 SSP plan with Noise

由于存在一些在offline environment和online enviroment间的一个gap,它会做出predicted ctr以及quit probability 在离线不会绝对等价于real value online,我们会在部署MDP-SSP online之前,引入一个noise 实验的集合。

实验会以如下方式开展:我们会在CTR上添加随机噪声(random noises),通过离线环境给出quit probability。假设:noise \(e \sim U(a, b)\),其中U(a, b)是一个均匀分布,我们会定义 \(a = -0.02m, b = 0.02m\),其中m是一个从0到10的整数范围。我们会根据具有noise的value进行计划,并计算具有real value的最终收益。结果如图6所示,水平轴表示noise,例如:U(a, b)中的b,竖直轴是revenue,例如:cumulative clicks。

图6

从图6中,我们可以发现,尽管SSP会对noise更敏感,它的效果会好于Greedy和Beam Search。它表明:考虑上quit probability会在IPV问题上扮演着一个十分重要的角色。

SSP Planner:在线评估

对于在线评估,我们会在真实电商APP中部署SSP和Greedy策略。对于进一步对比,我们会做一个实验,它具有quit model,它不会引入MIL,该策略命名为\(SSP_{no \_ MIL}\)。三种策略会在线运行相同的流量各一周,表8展示了结果:

  • 对于cumulative clicks,quit brobability在sequential recommendations中不会被忽略,详见SSP和Greedy
  • quit probability的accuracy会直接影响着结果,详见:SSP和\(SSP_{no\_MIL}\)

表8

6.结论

参考

华为在《AutoFIS: Automatic Feature Interaction Selection in Factorization Models for Click-Through Rate Prediction》提出了AutoFIS

摘要

学习特征交叉对于CTR预估来说非常重要。在大多数已经存在的深度学习模型中,特征交叉是人工设计或者简单枚举的。然而,枚举所有的特征交叉会带来很大的内容和计算开销。更糟的是,无用的交叉会在训练过程中引入噪声和复杂度[28]。在本工作中,我们提出了一个two-stage算法称为Automiaitc Feature Interaction Selection(AutoFIS)。AutoFIS可以为FM自动标识出重要的特征交叉,有一定计算开销。在search stage中,通过替代搜索候选特征交叉的离散集合,我们会通过引入结构参数将从离线变成连续进行选择。通过在结构参数上实现一个regularized optimizer,模型可以在训练过程中自动标识并移除冗余的特征交叉。在retrain stage,我们会保存结构参数,将它们作为一个attention unit来进一步增强效果。在三个大规模数据集上的离线实验表明,AutoFIS可以极大提升多个FM-based模型。AutoFIS被成功部署在Huawei APP store推荐服务中,10天数据看,可以在CTR/CVR上分别提升20.3%和20.1%。

3.方法

在本节中,我们描述了提出的AutoFIS,它可以自动选择在FM中重要的特征交叉。

3.1 FM(Base Model)

首先,我们定义FM:

定义3.1: FM是这样的模型:来自不同features的多个embeddings的交叉会通过一些内积/neural network的操作来建模成一个实数(real number)。

图片名称

图1

我们采用FM、DeepFM、IPNN作为实例来公式化我们的算法,并探索在多个数据集上的效果。图1表示了:FM、DeepFM和IPNN模型的结构。FM包含了一个feature embedding layer和一个feature interaction layer。除了这两个layers外,DeepFM和IPNN模型会包含一个额外的layer:MLP layer。在DeepFM和IPNN间的不同之处是:feature interaction layer和MLP layer会在DeepFM中并列工作,而在IPNN中则是顺序的。

在后续章节上,我们将简要描述FM中的feature embedding layer和feature interaction layer。为了与DeepFM和IPNN模型一起工作,MLP layer和output layer也会被公式化。接着,我们提出的AutoFIS是如何在feature interaction layers上工作的会被详述,例如:基于结构参数选择重要的特征交叉

Feature Embedding Layer。在大多数CTR预估任务中,数据会以multi-field categorical的形式采集。一个典型的数据预处理,会通过one-hot或multi-hot encoding会将每个数据样本转化成一个高维稀疏向量。当一个field是多变量时,会被表示成一个multi-hot encoding vector。一个数据样本可以表示成:

\[x = [x_1, x_2, \cdots, x_m]\]

其中,m是fields数目,\(x_i\)是第i个field的one-hot或multi-hot encoding vector。一个feature embedding layer被用于将一个encoding vector转换成一个低维向量:

\[e_i = V_i x_i\]

…(1)

其中:\(V_i \in R^{d \times n}\)是一个matrix,\(n_i\)是在第i个field中的。

  • 如果\(x_i\)是一个具有第j个元素\(x_i[j]=1\)的one-hot vector,那么\(x_i\)的representation是\(V_i^j\)
  • 如果\(x_i\)是一个multi-hot vector,对于\(j=i_1, i_2, \cdots, i_k\),具有\(x_i[j]=1\),那么这些元素的embeddings是\(\lbrace V_i^{i1}, V_i^{i2}, \cdots, V_i^{ik}\rbrace\),接着\(x_i\)的representation是这些embeddings的sum或average。

feature embedding layer的output是多个embedding vectors的concatenation:

\[E= [e_1, e_2, \cdots, e_m]\]

Feature Interction Layer

在将features转换成低维空间之后,feature interactions可以使用feature interaction layer被建模到这样的一个空间。首先,pairwise feature interactions的inner product会被计算如下:

\[[\langle e_1, e_2 \rangle, \langlee_1, e_3 \rangle, \cdots, \langle e_{m-1}, e_m \rangle]\]

…(2)

其中:

  • \(e_i\)是第i个field的feature embedding,
  • \(\langle \cdot, \cdot \langle\)是两个vectors的inner product

在该layer中的pair-wise feature interactions的数目是\(C_m^2\):

\[l_{fm} = \langle w, x \rangle + \sum\limits_{i=1}^m \sum\limits_{j>i}^m \langle e_i, e_j \rangle\]

…(3)

这里,所有的feature interactions会等贡献地被传给下一layer。如第1节和第4节,不是所有的特征交叉都有相等的预见性,无效交叉可能会影响效果退化。因此,我们提出了AutoFIS算法来有效选择重要的特征交叉。

为了研究我们的方法是否可以被用来识别重要的高阶交叉,我们将具有3rd-order交叉(例如:三个fields的组合)的feature interaction layer定义为:

\[l_{rm}^{3rd} = \langle w, x \rangle + \sum\limits_{i=1}^m \sum\limits_{j>i}^m \langlee_i, e_j \rangle + \sum\limits_{i=1}^m \sum\limits_{j<i}^m \sum\limits_{t>j}^m \langle e_i, e_j, e_t \rangle\]

…(4)

MLP Layer。MLP Layer会包含许多具有activation functions的FC layers,它会学到features的关系和组合。一个这样的layer的output是:

\[a^{(l+1)} = relu(W^{(l)} a^{(l)} + b^{(l)})\]

…(5)

其中:

  • \(a^{(l)}, W^{(l)}, b^{(l)}\)分别是第l层的input、model weight、bias。
  • \(relu(z) =max(0, z)\):为Activation
  • \(a^{(0)}\)是input layer
  • \(MLP(a^{(0)}) = a^{(h)}\):其中h是MLP layer MLP的depth

Output Layer

FM模型没有MLP layer,并直接将feature interaction layer与prediction layer连接:

\[\hat{y}_{FM} = sigmoid(l_{fm}) = \frac{1}{1 + exp(-l_{fm})}\]

…(6)

其中,\(\hat{y}_{FM}\)是predicted CTR。

DeepFM会将feature interaction layer与MLP layers并行进行组合:

\[\hat{y}_{DeepFM} = sigmoid(l_{fm} + MLP(E))\]

…(7)

当在IPNN中时,MLP layer会跟在feature interaction layer之后:

\[\hat{y}_{IPNN} = sigmoid(MLP([E, l_{fm}]))\]

…(8)

注意,IPNN的MLP layer可以对不同feature interactions进行reweighting,来捕获它们的相对重要性。这也是为啥IPNN要比FM和DeepFM具有更高能力的原因。然而,有了IPNN的公式,我们不能检索对应于每个feature interaction的相对贡献的准确值。因此,在IPNN中的feature interactions会带来噪声和计算开销。下面,我们展示了AutoFIS是如何改进IPNN的。

Objective Function

FM、DeepFM、IPNN会共享相同的objective function,例如:最小化predicted values和labels间的cross-entropy:

\[L(y, \hat{y}_M) = - y log\hat{y}_M - (1-y) log(1 - \hat{y}_M)\]

…(9)

其中:

  • \(y \in \lbrace 0, 1 \rbrace\)是label
  • \(\hat{y}_M \in [0, 1]\)是y=1的预估概率。

3.2 AutoFIS

AutoFIS会自动选择有用的特征交叉,它可以补用于任意FM模型的feature interaction layer。在本节中,我们会详述它是如何工作的。AutoFIS可以分成两个阶段:search stage和re-train stage。在search stage中,AutoFIS会检测有用的特征交叉;而在re-train stage中,具有选中的feature interactions的模型会被重新训练

Search Stage

为了让该算法更好地呈现,我们引入gate操作来控制是否选择一个feature interaction:一个open gate对应于选中一个feature interaction,而一个closed gate会导致一个dropped interaction。对应于所有二阶特征交叉的gates的总数是:\(C_m^2\)。以brute-force方式寻找open gates的最优集合非常挑战,因为我们会面对一个非常大的搜索空间(\(2^{C_m^2}\))。在本工作中,我们会从一个不同的视角去处理该问题:作为在open gates的一个离散集合上进行搜索的替代,我们会通过引入结构参数\(\alpha\)可以选择连续方式,以便每个feature interaction的相对重要性可以通过梯度下降进行学习。提出的AutoFIS的总览如图2所示。

图片名称

图2 AutoFIS总览

这种通过梯度学习的结构选择scheme受DARTS【20】的启发,在DARTS中,目标是从在CNN结构中的候选操作集合中选择一个操作(operation)

特别说明的是,我们会将在FM中的interaction layer重新公式化为:

\[l_{AutoFIS} = \langle w, x \rangle + \sum\limits_{i=1}^m \sum\limits_{j>i}^m \alpha_{(i,j)} \langle e_i, e_j \rangle\]

…(10)

其中:

\(\alpha = \lbrace \alpha_{(1,2)}, \cdots, \alpha_{(m-1,m)} \rbrace\)是结构参数。在AutoFIS的search stage,\(\alpha_{(i,j)}\)值会以这样的方式学习:\(\alpha_{(i,j)}\)可以表示每个feature interaction到final prediction的相对贡献。接着,我们可以通过设置那些不重要的gates关闭决定每个feature interaction的gate状态。

Batch Normalization

从整体neural network的角度看,一个feature interaction的贡献可以通过\(\alpha_{(i,j)} \cdot \langle e_i, e_j \rangle\)来进行测算。相同的贡献可以通过对该项rescaling成\((\frac{\alpha_{(i,j)}}{\eta}) \cdot (\eta \cdot \langle e_i, e_j\rangle )\),其中\(\eta\)是一个真实值。

由于\(\langle e_i, e_j \rangle\)的值可以与\(\alpha_{(i,j)}\)联合学习,它们的scale组合会导致对\(\alpha_{(i,j)}\)的不稳定估计,比如:\(\alpha_{(i,j)}\)不再表示\(<e_i, e_j>\)相对重要性。为了解决该问题,我们在\(\langle e_i, e_j \rangle\)上使用Batch Normalization来取除它的scale问题。BN已经作为一个标准方法被用来训练DNN来达成快速收敛和更好的效果。

原始的BN会使用一个mini-batch的统计信息来对activated output进行归一化。特别的,

\[\hat{z} = \frac{z_{in} - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}} \\ z_{out} = \theta \cdot \hat{z} + \beta\]

…(11)

其中:

  • \(z_{in}, \hat{z}, \hat{z_{out}}\)是input、BN的归一化值、BN的output值
  • \(\mu_B, \sigma_B\)是\(z_{in}\)在一个mini-batch B上的均值和标准差;
  • \(\theta, \beta\)分别是BN的trainable scale和shift参数
  • \(\epsilon\)是数值稳定性的一个常数

为了得到\(\alpha_{(i,j)}\)的稳定估计,我们分别将scale和shift参数设置为1和0. 在每个feature interaction \(<e_i, e_j>\)上的BN操作可以被计算成:

\[\langle e_i, e_j\rangle_{BN} = \frac{\langle e_i, e_j\rangle - \mu_B(\langle e_i, e_j \rangle)}{\sqrt{\sigma^2_B(\langle e_i, e_j\rangle)} + \epsilon}\]

…(12)

其中:

  • \(\mu_B\)和\(\sigma_B\)是在mini-batch B中的\(\langle e_i, e_j \rangle\)的均值和标准差。

GRDA Optimizer

GRDA optimizer的目标是:获得一个sparse DNN。为了在每个gradident step t上使用数据\(Z_t\)来更新\(\alpha\),我们使用以下的等式:

\[\alpha_{t+1} = \underset{argmin}{\alpha} \lbrace \alpha^T(-\alpha_0 + \gamma \sum\limits_{i=0}^t \nabla L(\alpha_t; Z_{i+1}) + g(t, \gamma) \| \alpha \|_1 + 1/2\| \alpha \|_2^2 \rbrace\]

其中:

  • \(g(t,\gamma) = c\gamma^{1/2} (t\gamma)^u\),
  • \(\gamma\)是learning rate
  • c和\(\mu\)是可调超参数,用于对accuracy和sparsity做tradeoff

在搜索阶段,我们使用GRDA optimizer来学习结构参数\(\alpha\),并获得一个sparse解。这些不重要的特征交叉(例如:具有零值的\(\alpha_{i,j}\)值)会被自动丢弃。其它参数可以通过Adam optimzier进行学习。

One-level优化

为了在AutoFIS的search stage上学习结构参数\(\alpha_{i,j}\),我们提出\(\alpha\)与其它所有network权重v进行联合最优化(比如:等式3中的w,和等式5中的\(W^{(l)}\)和\(b^{(l)}\))。这与DARTS不同。DARTS会将\(\alpha\)看成是更高lebel的决策变量,将network weights看成是更低level的变量,接着使用一个bi-level最优化算法来对它们进行最优化。在DARTS中,假设:当只有network weights被合理学习时,以使\(\alpha\)可以“做出合适决策”,模型可以选择operation。在AutoFIS公式的上下文中,这意味着,我们可以决定:在network weights被合理训练时,一个gate是否会是open或closed,这会导致我们会回到对\(2^{C_m^2}\)个模型完全训练的问题。为了避免这个问题,DARTS提出,只在一个gradient descent step上对network weights的最优值进行逼近,并迭代训练\(\alpha\)和\(v\)。

我们会讨论这种近似的不准确性可能对效果有损。因此,通过对bi-level optimization进行替代,我们提出使用one-level optimization对\(\alpha\)和\(v\)进行联合优化。特别的,参数\(\alpha\)和\(v\)会与gradient descent一起更新:

\[\partial_v L_{train}(v_{t-1}, \alpha_{t-1}) = \partial_{\alpha} L_{train}(v_{t-1}, \alpha_{t-1})\]

…(14)

在该setting中,\(\alpha\)和\(v\)可以探索它们的设计空间直到收敛,\(\alpha\)可以被学习用来作为独立feature interactions的贡献。在第4节中,我们展示了one-level optimization要优于two-level optimization。

Re-train Stage

在search stage的训练之后,一些不重要的交叉会根据架构参数\(\alpha^*\)被自动抛弃。我们使用\(G_{(i,j)}\)来表示特征交叉\(\langle e_i, e_j \rangle\)的gate status,当\(\alpha_{(i,j)}^*=0\)时会\(G_{(i,j)}\)将并设置为0;否则,我们设置为1. 在retrain阶段,这些不重要的feature interactions的gate status被确定永久关闭。

在移除这些不重要的交叉后,我们会使用在模型中保存的\(\alpha\)来对新模型进行retrain。特别的,我们会将等式(3)的feature interaction layer进行替换:

\[l_{rm}^{re} = \langle w,x \rangle + \sum\limits_{i=1}^m \sum\limits_{j>1}^m \alpha_{(i,j)} G_{(i,j)} \langle e_i, e_j \rangle\]

…(15)

注意,这里\(\alpha_{(i,j)}\)不再作为一个indicator来决定是否一个交叉该包含在模型内(比如:在search stage)。作为替代,它会当成是结构的一个attention unit来学习保持特征交叉的相对重要性。在该stage中,我们不必选择feature interactions。因此,所有参数会通过Adam optimizaer来学习。

4.实验

阿里在《Personalized Re-ranking for Recommendation》中提出了PRM算法:

1.介绍

ranking对推荐系统很重要。由ranking算法给出的ranked list的quality对于用户满意度以及推荐系统收益来说具有很大影响。大量的ranking算法被提出来优化ranking的效果。在推荐系统中,ranking通常只考虑user-item pair features,并没有考虑在list中的其它items,特别是那些在旁边的items【8,35】。尽管pairwise和listwise的L2R方法尝试通过将item-pair或者item-list作为input来解决该问题,他们只关注于最优化loss function以便更好地利用labels,例如:click-through data。他们不会显式建模在feature space中的items间的相互影响

一些工作【1,34,37】尝试显式建模在items间的相互影响,来对之前ranking算法给出的initial list进行refine,这被称为“re-ranking”。主要思想是,通过对intra-item patterns进行编码到feature space的方式来构建scoring function。进行feature vectors编码的SOTA方法有:RNN-based(比如:GlobalRerank,或者DLCM)。他们会将initial list来顺序feed给RNN-based结构,在每个time step输出encoded vector。然而,RNN-based方法对于建模在list间的交互来说具有局限性。之前编码的item的特征信息会随着编码距离降低。受transformer的启发,我们提出使用transformer架构来建模items间的相互影响。transformer结构使用self-attention机制,其中:任意两个items可以直接相互交叉,不会随着编码距离降级。同时,由于并行化,Transformer的encoding过程要比RNN-based方法更高效。

除了items间的交互外,对于交叉的个性化encoding功能,也要在推荐系统中的re-ranking中被考虑。推荐系统的re-ranking是user-specific的,依赖于用户偏好和意图。对于一个对价格很敏感的用户,“price”特征间的交叉对于re-ranking model来说很重要。例如,当用户关于价格对比时,具有不同价格的相似items趋向于在list中会更集中。当用户没有明显的购买意图时,在推荐列表中的items趋向于更分散。因此,我们会引入一个个性化模块到Transformer结构来表示在item交互上的用户偏好和意图。在list中的items与user间的交互,可以在PRM中被并行捕获。

该paper的主要贡献如下:

  • 问题。我们提出一个个性化re-ranking问题:并且首次显式地引入个性化信息到reranking任务中。实验结果表明,在list representation中引入用户表示(users’ representation)的效果。
  • 模型: 我们使用Transformer并且带上个性化embedding来计算initial input ranking list的representations,并输出re-ranking score。对比起RNN-based方法,self-attention机制允许我们以一个高效地方式来建模user-specific在任意两个items间的交互影响。
  • 评估:我们在离线和在线实验上,展示了我们的方法极大地胜过SOTA方法。online A/B测试表明了它能达到更高的CTR和收益。

2.相关工作

3.Reranking模型公式化

在本节中,我们首先给出一些关于l2r的前置知识,以及推荐系统的reranking方法。接着,我们将问题进行公式化来求解。概念如表1所示。

Learning to Rank(也称为LTR)方法在IR和推荐的排序中被广泛使用,用来生成一个有序列表。LTR方法会基于items的feature vector学习一个全局的scoring function。有了这个全局函数,LTR方法会通过对candidate set中的每个item进行打分输出一个有序列表。该全局scoring function通常通过最小化以下的loss function L来学到:

\[L = \sum\limits_{r \in R} l (\lbrace y_i, P(y_i | x_i;\theta) | i \in I_r \rbrace)\]

…(1)

这里:

  • R:推荐的所有用户请求的集合。
  • \(I_r\):对于请求 \(r \in R\)的items的候选集合。
  • \(x_i\):表示item i的feature space。
  • \(P(y_i \mid x_i; \theta)\)是在给定参数\(\theta\)的ranking model对item i的预估点击概率。
  • l是由\(y_i\)和\(P(y_i \mid x_i; \theta)\)计算的loss

然而,\(x_i\)对于学习一个好的scoring function来说是不够的。我们发现:对推荐系统来说ranking需要考虑以下额外信息:

  • a) 在item pairs间的相互影响(mutual influence)
  • b) users和items间的交叉(interaction)

对于请求r,在item pairs间的相互影响,可以通过由给定的已经存在的LTR model中,直接从intial list \(S_r = [i_1, i_2, \cdots, i_n]\)中直接学到。【1,37,2,3】提出了更好的方法使用item-pairs间的互信息(mutual information)。然而,少量工作则会考虑在users和items间的交叉。在本paper中,我们引入一个个性化matrix PV来学习user-specific encoding function,它可以建模在item-pairs间的个性化相互影响。该模型的loss function可以公式化为等式2.

\[L = \sum\limits_{r \in R} l (\lbrace y_i, P(y_i | X, PV; \hat{\theta}) | i \in S_r \rbrace)\]

…(2)

其中:

  • \(S_r\):是在给定前面的ranking model时的intial list
  • \(\hat{\theta}\):是我们的re-ranking model的参数
  • X:是在list中所有items的fearture matrix

4.个性化reranking model

在本节中,我们首先给定:我们提出的个性化reranking Model(PRM)的一个总览。接着,我们引入:我们模型的每个组件。

4.1 模型结构

PRM的结构如图1所示。模型包含了三个部分:

  • input layer
  • encoding layer
  • output layer

它会将由前面ranking模型生成的关于items的initial list作为input,并输出一个rerank后的list。

图片名称

图1 PRM(个性化reranking model)的详细网络结构以及它的子模块

4.2 Input layer

input layer的目标是:为在intial list中所有items准备综合representations,并将它feed到encoding layer。首先,我们有:

  • 一个固定长度的intial sequential list \(S=[i_1, i_2, \cdots, i_n]\),它由之前的ranking方法给出。
  • 有一个raw feature matrix \(X \in R^{n \times d_{feature}}\),与之前的ranking方法相同。X中的每一行表示对于每个item \(i \in S\)的raw feature vector \(x_i\)

个性化向量(Personalized Vector(PV))

两个items的feature vectors的encoding可以建模两者间的相互影响,但这种influences对于用户来说影响有多深是未知的。需要学习一个user-specific encoding function。尽管整个initial list的representation可以部分影响用户的偏好,但对于一个强大的personalized encoding function来说是不够的。如图1(b)所示,我们:

将raw feature matrix \(X \in R^{n \times d_{feature}}\)与一个个性化矩阵\(PV \in R^{d \times d_{pv}}\)进行concat,以便获得intermediate embedding矩阵\(E' \in R^{n \times (d_{feature} + d_{pv})}\),如等式(3)所示。PV通过一个预训练模型生成,它会在以下章节中介绍。PV的效果增益会在evaluation部分介绍。

\[E' = \left[\begin{array} x_{i_1}; pv_{i_1} \\ x_{i_2}; pv_{i_2} \\ \cdots \\ x_{i_n}; pv_{i_n} \end{array} \right]\]

…(3)

Position Embedding(PE)

为了利用在initial list中的顺序信息,我们会注入一个position embedding: \(PE \in R^{n \times (d_{feature} + d_{pv}})\)到input embedding中。接着,使用等式(4)计算encoding layer的embedding matrix。在本paper中,一个可学习的PE会被使用,我们发现它的效果要比【24】中使用的固定的position embedding效果稍好些。

\[E'' = \left[ \begin{array} x_{i_1}; pv_{i_1} \\ x_{i_2}; pv_{i_2} \\ \cdots \\ x_{i_n}; pv_{i_n} \end{array} \right] + \left[\begin{array} pe_{i_1} \\ pe_{i_2} \\ \cdots \\ pe_{i_n} \end{array} \right]\]

…(4)

最后,我们会使用一个简单的feed-forward network来将feature matrix \(E'' \in R^{n \times (d_{feature} + d_{pv})}\)转换成\(E \in R^{n \times d}\),其中d是encoding layer的每个input vector的隐维度(latent dimensionality)。E可以公式化为等式5。

\[E = EW^E + b^E\]

…(5)

其中:

  • \(W^E \in R^{(d_{feature} + d_{pv}) \times d}\)是投影矩阵
  • \(b^E\)是d维向量

4.3 Encoding Layer

图1(a)中的encoding layer的目标是:将item-pairs的相互影响与其它额外信息进行集成,包括:用户偏好、initial list S的ranking顺序等。为了达到该目标,我们采用Transformer-like encoder,因为Transformer已经被证明在许多NLP任务中很有效,特别的是在机器翻译中具有强大的encoding和decoding能力。Transformer中的self-attention机制非常适合在我们的re-ranking任务中,因为它会直接建模任意两个items间的相互影响,并且忽略它们间的实际距离。没有了距离衰减(distance decay),Transformer可以捕获那些在initial list中相互相隔较远的items间的更多交互。如图1(b)所示,我们的encoding module包含了Transformer encoder的\(N_x\)个块。每个块(图1(a))包含了一个attention layer和一个Feed-Froward Network(FFN) layer。

Attention Layer

attention function如等式(6)所示:

\[Attention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d}}) V\]

…(6)

其中,矩阵Q, K, V分别表示queries、keys和values。d是矩阵K的维度,为了避免inner product 的大值。softmax被用来将inner product 的值转化成value vector V的adding weight。在本paper中,我们使用self-attention,其中:Q, K, V来自相同的矩阵进行投影。

为了建模复杂的mutual influences,我们使用multi-head attention,如等式7所示:

\[S' = MH(E) = Concat(head_1, \cdots, head_h) W^0 \\ head_i = Attention(EW^Q, EW^K, EW^V)\]

…(7)

其中:

  • \(W^Q, W^K, W^V \in R^{d \times d}\)。\(W^O \in R^{hd \times d_{model}}\)是投影矩阵。h是headers的数目。h的不同值的影响,会在下部分进行研究

Feed-Forward Network

该position-wise FFN主要是使用非线性和在input vectors的不同维度间的交叉来增强模型

对Encoding Layer进行Stacking

在position-wise FFN后,这里我们接着使用attention module作为Transformer encoder的一个block。通过将多个blocks进行stacking,我们可以获得更复杂和高阶的mutual information

4.4 Output Layer

output layer的function主要目的是,为在图1(b)中的每个item \(i=i_1, \cdots, i_n\)生成一个score(标记为Score(i))。我们会使用一个linear layer,后接一个softmax layer来实现。softmax layer的输出为:每个item的点击概率,它被标记为\(P(y_i \mid X, PV; \hat{\theta})\)。我们使用\(P(y_i \mid X, PV; \hat{\theta})\)作为Score(i)来对items在one-step中进行rerank。Score(i)公式为:

\[Score(i) = P(y_i \mid X, PV; \hat{\theta}) = softmax(F^{N_x} W^F + b^F), b \in S_r\]

…(8)

其中:

  • \(F^{(N_x)}\)是Transformer encoder的\(N_x\)块(blocks)的output。
  • \(W^F\)是可学习的投影矩阵
  • \(b^F\)是bias项
  • n:在initial list中的items数目

在训练过程中,我们会使用click through数据作为label,并最小化以下的loss function:

\[L = - \sum\limits_{r \in R} \sum\limits_{i \in S_r} y_i log(p(y_i | X, PV; \hat{\theta}))\]

…(9)

4.5 Personalized Module

在本节中,我们会介绍该方法来计算个性化矩阵(personlized matrix: PV),它表示user与items间的交互。直接方法是:使用PRM model以end-to-end的方式通过reranking loss来学习PV。然而,如第3节所示,reranking task任务是:对之前的ranking方法的output进行refine。在reranking task上学到的task-specific representation会缺乏用户的泛化偏好(generic perferences)。因此,我们会利用一个pre-trained neural network来生产用户的personalized embeddings PV,它接着会被用于PRM model中的额外features。预训练的neural network从平台的整体click-through logs学习到。图1(c)展示了在我们paper中使用的per-trained model的结构。sigmoid layer会输出user u在item i在给定用户所有行为历史\(H_u\)以及用户的side information下的点击概率\((P(y_i \mid H_u, u; \theta'))\)。用户的side information包括:gender、age、purchasing level等。该model的loss通过一个point-wise cross entropy function来计算,如等式(4)所示:

\[L = \sum\limits_{i \in D} (y_i log (P(y_i | H_u, u; \theta'))) + (1 - y_i) log(1 - P(y_i | H_u, u; \theta'))\]

…(10)

其中:

  • D是user u在该平台上展示的items集合。
  • \(\theta'\):是pre-trained model的参数矩阵
  • \(y_i\)是在item i上的label(点 or 不点)

受[13]的启发,我们在sigmoid layer之前采用hidden vector作为personalized vector \(pv_i\)(图1(c))feed给我们的PRM model。

图1(c)展示了pre-trained model的一个可能架构,其它模型(如:FM、DeepFM、DCN等)也可以作为选择用于生成PV。

5.实验

5.3 Evaluation Metrics

对于离线评估,我们使用Precision和MAP来对比不同的方法。更特别的,我们使用:

  • Precision@5,Precision@10作为precision
  • MAP@5,MAP@10, MAP@30作为MAP

。。。