摘要

隐式反馈(比如:用户点击)尽管在在线信息服务中非常丰富,但在用户评估系统输出方面并没有提供实质帮助。如果没有合理地进行建模,会误导模型估计,特别是在bandit learning setting中(feedback会即时获取)。在本工作中,我们会执行使用implicit feedback的contextual bandit learning,它会建模feedback作为用户结果查看(result examination)、以及相关评估(relavance evaluation)的一部分。由于用户的查看行为是观察不到的,我们会引入隐变量(latent variables)来建模它。我们会在变分贝叶斯推断(variational Bayesian inference)之上执行Thompson sampling来进行arm selection以及模型更新。我们算法的upper regert bound analysis表明了在一个bandit setting中从implicit feedback中学习的可行性。

1.介绍

contextual bandit算法为现代信息服务系统提供了一种有效解决方案,可以自适应地发现items和users间的良好匹配。这类算法会使用关于user和item的side information顺序选择items提供服务给用户,并能基于用户立即反馈(immediate user feedback)来调节选择策略(selection policy),从而最大化用户的long-term满意度。他们被广泛部署在实际系统中:内容推荐【20,5,26】和展示广告【6,22】。

然而,user feedback的最多形式是implicit feedback(比如:clicks),而它是有偏的,并且对于系统输出的用户评估是不完整的。例如:一个用户跳过一个推荐item,并不因为是他不喜欢该item,有可能是因为他没有查看(examine)那个展示位置(例如:position bias)。不幸的是,在contextual bandit应用中一个常见惯例是:简单地将未点击(no click)看成是负反馈(negative feedback)的一种形式。这会对模型更新引入不一致性(inconsistency),由于跳过的items并非真正不相关,因而它不可避免地会导致随时间的bandit算法的次优结果。

在本工作中,我们会关注使用user click feedback来学习contextual bandits、并建模这样的implicit feedback,作为用户结果查看(result examination)和相关度评估(relevance judgment)的一个部分。 查看假设(Examination hypothesis)【8】在点击建模型上是一个基础假设,会假设:在一个系统上的一个用户点击的返回结果,当且仅当结果被用户查看(examination)时,它与在该时刻的用户信息是相关的。由于一个用户的查看行为是不可观测的(unobserved),我们会建模它作为一个隐变量,并在一个概率模型中实现该查看假设。我们会通过在相应的contextual features上的logistic functions中定义结果查看(result examination)和相关评判(relevance judgement)的条件概率。为了执行模型更新,我们会采用一个变分贝叶斯方法来开发一个闭式(closed form)近似即时模型参数的后验分布。 该近似也会为在bandit learning中使用Thompson sampling策略进行arm selection来铺路。我们的有限时间分析表明,尽管在参数估计中由于引入隐式变量增加了复杂度,我们的Thompson sampling policy会基于真实后验 ,从而保证能达到一个具有高概率的sub-linear Bayesian regert。我们也会演示,基于近似后验的Thompson sampling的regret是良性有界的(well-bounded). 另外,我们会证明:当某人在点击反馈中建模结果查看(result examination)失败时,一个线性递增的regret是可能的,因为在负反馈中模型不能区分查看驱动的跳过(examination driven skips)还是不相关驱动的跳过(relevance driven skips)。

我们会在中国的MOOC个性化教育平台上测试该算法。为了在该平台上个性化学生的学习体验,当学生正观察视频时,我们会在课程视频顶部以banner的形式推荐类似测试的问题(quiz-like quenstions)。该算法需要决定,在一个视频中在哪里向一个特定用户展示哪个问题。如果学生觉得展示的问题对他理解课程有用,他可能会点击该banner并阅读问题以及更多关于该问题的在线内容。因此,我们的目标是在选中问题上最大化CTR。该应用有多个特性,会放大bias以及点击反馈的不完整性。

  • 首先,基于用户体验的考虑,为了最小化讨厌度,一个banner的展示时间会限定在几秒内。
  • 第二,由于该feature对于该平台来说是新引入的,许多用户可能不会意识到:他们会在该问题上点击,并且阅读更多相关内容。

作为结果,在一个问题上没有点击,并不能表示不相关。我们会在4个月周期内测试该算法,其中:总共有69个问题会用到该算法上来选择超过20个主要的视频,超过10w的学习观看session。基于无偏离线评估策略,对比起标准的contextual bandits,我们的算法会达到一个8.9%的CTR提升,它不会建模用户的查看行为(examination behavior)。

2.相关工作

3.问题设定

我们考虑一个contextual bandit问题,它具有有限但可能较大的arms。我们将:

  • arm set:表示为A
  • candidate arms子集:在每个trial t=1, …, T上,learner会观察到candidate arms的子集\(A_t \subset A\),其中,每个arm a与一个context vector \(x^a\)有关,会对arm的side information进行归纳。
  • 一旦arm \(a_t \in A_t\)根据一些policy \(\pi\)被选中后,对应的隐式二元反馈\(C_{a_t}\) (例如:user click),会由learner给出作为reward。

learner的目标是:判断它的arm selection策略来最大化它随时间的累积收益(cumulative reward)。使得该问题唯一和挑战的是:\(C_{a_t}\)不会真正影响用户关于选中arm \(a_t\)的评估。基于查看假设【13,8】:

  • 当\(C_{a_t}=1\)时,选中的\(a_t\)必须与用户在time t需要的信息相关;
  • 但当\(C_{a_t}=0\)时,\(a_t\)必须相关,但用户不会查看它

不幸的是,产生的查看条件对learner来说是不可观察的。

我们会通过一个二元隐变量\(E_{a_t}\)来建模一个用户的结果查看(result examination),并假设:arm a的context vector \(x_t^a\)可以被分解成:

\[(x_{C,t}^a, x_{E,t}^a)\]
  • 其中:\(x_{C,t}^a\)和\(x_{E,t}^a\)分别是\(d_C\)和\(d_E\)。

相应的,用户的结果查看和相关判断决策被假设成:通过一个\((x_{C,t}^a, x_{E,t}^a)\)猜想、以及相应的bandit参数为\(\theta^* = (\theta_C^*, \theta_E^*)\)来进行管理。在本文其余部分,当没有二义性引入时,我们会drop掉index a以简化概念。作为结果,我们对在arm \(a_t\)的一个observed click \(C_t\)上做出以下的生成假设:

\[\begin{align} P(C_t = 1 | E_t = 0, x_{C,t}) & = 0 \\ P(C_t = 1 | E_t = 1, x_{C,t}) & = \rho(x_{C,t}^T \theta_C^*) \\ P(E_t = 1 | x_{E,t}) & = \rho(x_{E,t}^T \theta_E^*) \end{align}\]

其中:

  • \[\rho(x) = \frac{1}{1 + e^{-x}}\]

基于该假设,我们有:

\[E[C_t \mid x_t] = \rho(x_{C,t}^T \theta_C^*) \rho(x_{E,t}^T \theta_E^*)\]

作为结果,观察到的click feedback \(C_t\)是来自该生成过程的一个样本。我们定义\(f_{\theta}(x) := E[C \mid x, \theta] = \rho(x_C^T \theta_C) \rho(x_E^T \theta_E)\)。到达time T一个policy \(\pi\)的accumulated regret的定义如下:

\[Regret(T, \pi, \theta^*) = \sum\limits_{t=1}^T \underset{\alpha \in A_t}{max} \ f_{\theta^*} (x^a) - f_{\theta^*}(x^{a_t})\]

其中:

  • \(x^{a_t} := (x_C^{a_t}, x_E^{a_t})\)是arm \(a_t \in A_t\)的context vector,该arm会在time t时基于历史 \(H_t := \lbrace (A_i, x_i, C_i) \rbrace_{i=1}^{t-1}\)由policy \(\pi\) 中。

Bayesian regret的定义为\(E[Regret(T, \pi, \theta^*)]\),其中采用的期望根据在\(\theta^*\)上的先验分布采用的,它可以被写成:

\[BayesRegret(T, \pi) = \sum\limits_{t=1}^T E[\underset{a \in A_t}{max} f_{\theta^*}(x^a) - f_{\theta^*}(x^{a_t})]\]

在我们的在线学习环境中,我们的目标是:发现policy \(\pi\),并最小化在T上的accumulated regret

4.算法

learner需要基于从click feedback \(\lbrace x_i, C_i \rbrace_{i=1}^t\)获得的随时间的互交,估计bandit参数 \(\theta_C^*\)和\(\theta_E^*\)。理想情况下,该估计可以根据bandit model参数通过最大化data likelihood来获得。然而,在我们的bandit learning setting中查看(examination)的加入作为一个隐变量,对于参数估计和arm selection来说会造成严重挑战。由于相应最优化问题的非凸性,传统的最小二乘估计、极大似然估计可以被轻易获取,更不必说计算效率。更糟的是,两个流行的bandit learning范式,UCB principle和Thompson sampling,都需要一个关于bandit参数及不确定性的精准估计。在本节中,我们提出一个有效的新解法来解决这两个挑战,它会利用variational Bayesian inference技术来近似学习即时参数,同时桥接参数估计(parameter estimaiton)和(arm selection policy)设计。

4.1 Variational Bayesian进行参数估计

为了完成在第3节中定义的生成过程,我们进一步假设\(\theta_C\)和\(\theta_E\)分别遵循高斯分布 \(N(\hat{\theta}_C, \sum_C)\)以及\(N(\hat{\theta}_E, \sum_E)\)。当一个新获得的observation \((x_C, x_E, C)\)变得可提供时,我们会对开发一个闭式近似后验感兴趣。通过在log space中使用Bayes’ rule,我们有:

\[\begin{align} log P(\theta_C, \theta_E | x_C, x_E, C) \\ &= log P(C | \theta_C, \theta_E, x_C, x_E) + log P(\theta_C, \theta_E) + log const \\ &= C log \rho(x_C^T \theta_C) \rho(x_E^T \theta_E) + (1 - C) log(1 - \rho(x_C^T \theta_C) \rho(x_E^T \theta_E)) \\ &= - \frac{1}{2} (\theta_C - \hat{\theta}_C)^T \sum_C^{-1} (\theta_C - \hat{\theta}_C) - \frac{1}{2} (\theta_E - \hat{\theta}_E)^T \sum_E^{-1} (\theta_E - \hat{\theta}_E) + log const \end{align}\]

关键思想是:我们会为似然函数开发一个\(\theta_C\)和\(\theta_E\)的二次型(quadratic form)的variational lower bound。由于 \(log \rho(x) - \frac{x}{2}\)的convexity,对应于\(x^2\),以及logx的Jensen’s不等式,所需形式的一个lower bound是可以达到的。当C=1时,通过等式(16),我们有:

\[l_{C=1}(x_C, x_E, \theta) := log( \rho(x_C^T \theta_C) \rho(x_E^T \theta_E)) \geq g(x_C^T\theta, \epsilon_C) + g(x_E^T \theta, \epsilon_E)\]

…(1)

其中:

  • \(g(x, \epsilon) := \frac{x}{2} - \frac{\epsilon}{2} + log \rho(\epsilon) - \lambda(\epsilon)(x^2 - \epsilon^2), \lambda(\epsilon) = \frac{tanh \frac{epsilon}{2}}{4 \epsilon}, x, \epsilon \in R\)。更特别的是,\(g(x, \epsilon)\)是一个度为2的对应于x的多项式。当C=0时,通过等式(17),我们有:
\[l_{C=0} (x_C, x_E, \theta) := log( 1-\rho(x_C^T \theta_C) \rho(x_E^T \theta_E)) \\ \geq H(q) + qg(-x_C^T \theta, \epsilon) + qg(x_E^T \theta, \epsilon_{E,1}) + (1 - q) g(-x_E^T\theta, \epsilon_{E,2})\]

…(2)

其中,\(H(q) := - qlog q - (1 - q) log(1-q)\)。一旦在quadratic form中的lower bound确定后,我们可以使用一个Gaussian分布来近似我们的target后验,它的均值和covariance matrix由以下等式确定:

\[\begin{align} \sum_{C, post}^{-1} & = \sum_C^{-1} + 2q ^{1-C} \lambda (\epsilon) x_C x_C^T \\ \hat{\theta}_{C, post} & = \sum_{C,post} (\sum_{C}^{-1} \hat{\theta}_C + \frac{1}{2} (-q)^{1-C} x_C) \\ \sum_{E,post}^{-1} & = \sum_{E}^{-1} + 2 \lambda(\epsilon_E) x_E x_E^T \\ \hat{\theta}_{E,post} & = \sum_{E,post} (\sum_E^{-1} \hat{\theta}_E + \frac{1}{2}(2q-1)^{1-C} x_E) \end{align}\]

…(3)(4)(5)(6)

其中,下标“post”表示在高斯分布中的参数,它逼近期望的后验。连续的观测可以被顺序包含到近似后验。还剩一件事件需要决策,例如:变化参数\((\epsilon_C, \epsilon_E, q)\)的选择。一个选这些值的常用准则是,在observations上的似然是最大化的,与【12】相似的选择,我们会选择这些变分参数的闭式更新公式:

\[\epsilon_C = \sqrt{E_{\theta_C} [x_C^T \theta_C]^2} \\ \epsilon_E = \sqrt{E_{\theta_E} [x_E^T \theta_E]^2} \\ q = \frac{exp(g(x_C^T \theta_C, \epsilon_C) + g(x_E^T\theta_E, \epsilon_E) - g(-x_E^T \theta_E, \epsilon_E))}{ 1 + exp(g(x_C^T \theta_C, \epsilon_C) + g(x_E^T \theta_E, \epsilon_E) - g(-x_E^T \theta_E, \epsilon_E))}\]

其中,所有期望都在近似后验下采用。经验上,我们发现,近似后验和变分参数的迭代式更新收敛相当快,以致于它通常只需要少量迭代就可以获得一个满意的局部最大值。

4.2 使用近似lower bound的Thompson sampling

Thompson sampling, 通常称为“概率匹配(probability matching)”,会被广泛用于bandit learning中来平衡exploration和exploitation,并且它展示了极大的经验效率。Thompson sampling需要一个模型参数的分布来采样。在标准的Thompson sampling中,我们需要从模型参数的真实后验中进行采样。但由于logistic regression不会具有一个共轭先验(conjugate prior),在我们的问题中定义的模型不会具有一个准确的后验。我们决定,根据从等式(3)到等式(6)从近似后验中抽样。之后,我们会表明:这是一个非常紧凑的后验近似。一旦\((\bar{\theta}_C, \bar{\theta}_E)\)的采样完成,我们可以选择相应的arm \(a_t \in A_t\),它会最大化\(\rho(x_C^T \bar{\theta}_C) \rho(x_E^T \bar{\theta}_E\)。我们将生成的bandit算法命名为examination-click bandit,或者E-C bandit,如算法1所示。

图片名称

算法1 E-C Bandit

5.Regret Analysis

6.实验

7.结论

huawei在《Personalized Re-ranking for Improving Diversity in Live Recommender Systems》提出了personalized DPP方法。

摘要

2.reranking模型

2.1 DPP-based re-ranking

如【13】,DPP-based model要比MMR-based model要更有效且高效。因此,我们选择研究如何在我们的推荐系统中使用DPP-based reranking model。在本节,我们会讲述DPP-based reranking model,并讨论它的局限性,这激发我们在一下节中使用personalized DPP-based reranking模型。

我们将[13, 14, 20]的一些关键结果进行归纳,让读者更好地理解该模型。在一个关于items的集合(\(M=1,2,\cdots, \mid M \mid\))上的一个点过程(point process)P,是一个在M的幂集(powerset)的概率分布。也就是说,\(\forall Y \subseteq M\),P会分配一个概率分布\(P(Y)\),使得\(\sum_{Y \subseteq M} P(Y)=1\)。如【20】中所述,我们的目标是:从整个item set M中选择一个合适的relevant和diverse的k个subset,使得集合满足\(max_{Y:\mid Y \mid = k, Y \subseteq M} P(Y)\)。再者,P可以通过一个\(M \times M\)的半正定kernal matrix L进行紧密参数化(compactly parameterzied),比如:\(P(Y) \propto det(L_Y)\),其中\(det(L)\)是矩阵L的行列式(determinants),\(L_Y\)是一个L投影到只有Y的行和列上的子矩阵。因此,发现满足\(max_{Y:\mid Y \mid = k, Y \subseteq M} P(Y)\)的集合等价于发现这样的集合:\(max_{Y:\mid Y \mid = k, Y \subseteq M} det(L_Y)\)。

该半正定kernal matrix L定义如下:

\[L_{ii} = q_i^2 \\ L_{ij} = \alpha q_i q_j S_{ij}\]

…(1) (2)

其中:

  • \(q_i ( i \in [1, \mid M \mid ])\)表示从ranking function生成的item i的relevance score
  • S表示一个关于items间的user-defined 相似矩阵,
  • \(\alpha\)是一个关于对relevance 和 diversity间进行tradeoff的超参数

如之前所述,我们需要从整个item set M中选择一个items集合Y,使得:

\[\underset{Y:\mid Y \mid = k, Y \subseteq M}{max} det(L_Y)\]

这是一个NP-hard问题【20】,具有复杂度\(O(C_{\mid M \mid}^{\mid Y \mid})\)时间来发现最优集合。为了使得DPP-based reranking model可以应用到工业界推荐系统中,我们选择使用一个高效&有效的近似算法,Fast Greedy Map Inference【21】,来在一个可接受的时延中执行reranking。这样的一个近似算法可以解决组合优化问题,时间复杂度只有\(O(\mid Y \mid^2 \mid M \mid)\)。尽管在【21】中没有提供理论上更低边界,在线A/B test测试验证了它的优越性。

图片名称

算法1

为了更正式地表示它,我们将DPP-based reranking model以算法1方式进行归纳。每个round,FastGreedyMap会贪婪地选择一个item(如算法1中的第3行),也就是说,选中的item会最大程度提升updated submatrix的行列式。正式地,它会选择这样的item:

\[y = argmax_{i \in M} (log det(L_{Y \cup \lbrace i \rbrace}) - log det(L_Y))\]

2.2 Personalized DPP

在DPP中,\(\alpha\)是一个可调的超参数,用来对relevance和diversity进行trade-off平衡。DPP假设:每个人都有相同的diversity degree的倾向分(propensity),由于当构建kernel matrix L时会应用相同的\(\alpha\)值,当执行reranking时对所有用户是共享的。然而,如第1节所讨论,不同的个人具有对多样性不同的倾向(propensity),因此DPP需要进行个性化。

在DPP中实现个性化的一种简单方法是,为每个user u设置一个唯一的超参数\(\alpha_u\)。不幸的是,该方法不可行,因为超参数的个性\(\alpha_u\)太大,不可能针对个人去调参。在本paper中,提出了一咱有效的方法来达到personalized DPP(简称:pDPP)。我们会将user-wise超参数\(\alpha_u\)进行factorize成两个因子:

\[\alpha_u = f_u \times \alpha_0\]

…(4)

其中:

  • \(\alpha_0\):是一个可调共享的超参数,用来控制在所有用户上的relevance和diversity(在DPP中,与\(\alpha\)具有相同的功能)
  • \(f_u\):是一个user-wise factor,用来表示user u的多样性倾向(diversity propensity)

接着,我们详细说明定义\(f_u\)的意图。如第1节所解释,用户的多样性倾向(diversity propensity)可能受他们的历史行为的影响。作为一种可能的选择,我们可以使用该用户交互过的不同genres分布上的香农熵(shannon entropy),如下:

\[H(u) = - \sum\limits_{g \in G} P(g | u) log(P(g | u))\]

…(5)

其中:

  • \(P(g \mid u)\)表示user u对某类别g感兴趣的概率
  • user u交互过的items之一是genre g

如【18】所示,一个user u具有更高的H(u),表明该用户具有更高的diversity propensity,反之亦然。由于该直觉,我们将\(f_u\)定义为 normalized H(u)。正式的,我们提出使用一个parameterized min-max normalization,如下:

\[f_u = \frac{H(u) - H_{min} + l}{H_{max} - H_{min} + l} \ (l \geq 0)\]

…(6)

其中:

  • \(H_{max} = max_u H(u)\)表示在所有users上的最大熵值,
  • \(H_{min}\)表示最小值

超参数l控制着\(f_u\)的个性化程度。如图3所示,一个更大的l值表示在所有用户间具有更小的个性化\(f_u\)值,例如:\(l \rightarrow \infty\),它可以看成是\(f_u = 1\),此时pDPP就降级为DPP。实际上,我们选择使用两个特例:当\(l=0\)时,\(f_u\)是标准的min-max normalized H(u); 其中当\(l = H_{min}\)时,\(f_u\)是max normalized H(u)。

图片名称

图3

为了归一化,pDPP是DPP的一个个性化版本,无需引入额外的超参数进行调参。尽管公式很简单,第4节的实验结果表明它的有效性。

3.系统实现

3.1 框架修改

使用pDPP re-ranking 模型的推荐系统总览如图4所示。我们首先展示不考虑reranking model的模块(绿色框),接着展示了如何在pDPP中采用这些modules。

图片名称

图4

一个推荐系统的架构包含了三个模块:

  • (1) 离线训练模块(offline training module):会处理user-item交互数据,抽取features(包括:user features、item features、context features),训练模型,以及上传模型。
  • (2) 在线预测模块(online prediction module)会接收用户请求并返回一个关于items的列表。通常存在两步,称为:retrieval和ranking。由于存在数百万的items,有一个正常时延内对所有item进行排序很困难。retrieval step会返回一个符合用衣在该context下的较短的list。在减小候选size后,raking step会使用offline trained model为每个items计算relevance scores。
  • (3) 近期更新模块(Nearline updating module):它会更新user features、item features以及使用真实交互数据的离线训练模型。

我们提出的pDPP reranking model可以很轻易地集成到以上的架构中。接着,我们会描述如何采用三个模块来部分该reranking model。

  • 在离线训练模块中,有个initializer会为每个user u计算\(\alpha_u\)值,并上传这样的值到online Indexer中
  • 在在线预估模块中,会通过由任意ranking function计算得到的候选items的相关得分(relevance scores)以及从在线Indexer中的个性化\(\alpha_u\),pDPP reranking model会综合考虑relevance和diversity来生成最终的推荐列表。
  • 在近线更新模块中,个性化\(\alpha_u\)值是基于实时user-item交互数据进行更新的,更新后的\(\alpha_u\)值会被发送到online Indexer上。

图4

开发accurate ranking function是一个必要的研究主题。可以看到,我们的pDPP reranking model与任意高级的ranking function是兼容的,无需修改ranking function。

3.2 实践要点

为了帮助更好理解和实现我们的模型,我们归纳了一些实践要点:

  • 在【21】中,kernel matrix L会被预计算并存储在内存中,如算法1所示。然而,这样的方法不能在真实推荐系统中执行,因为以下的原因:第一,relevance score \(q_i\)会被一个ranking function计算得到,会实时更新并且是个性化的。这种工业界方式的ranking function会对不同用户对相同item做出不同的relevance,另外,一个user-item pair的relevance score会在几秒后更新,因为user feature会发生变化。第二:我们的pDPP模型当构建L时具有一个个性化因子\(f_u\),因此不同的users会具有不同的L。如果我们需要预计算并存储它们,我们需要花费大量时间和存储资源来处理这样的L。由于这两点,当该user触发请求推荐时,我们会为一个user即时(on-the-fly)计算个性化kernel matrix L。

  • 在我们的实验中,我们尝试了两种不同方法来构建相似的矩阵S:一个会使用item features,另一个会使用user-item交互信息。使用user-item交互的该方法要比其它方法稍微更差些。原因是,user-item交叉通常非常稀疏,这使得:基于这些信息表示的item不是非常可靠。不管使用哪种方法,我们发现,当\(S_{ij}\)在[0, 1]间效果最好。

  • 冷启问题:在我们的系统中,如果u是一个新用户,我们设置\(\alpha_u=\alpha_0\)。另外,只有少量交互的用户也会被我们的系统认为是新用户。我们会做出这样的决策:由于\(\alpha_0\)是一个对于exploration来说相对安全的值,可以较好地对relevance和diversity进行trade-off。

4.实验评估

4.1

4.2 在线评估

在离线评估中,展示pDPP的良好accuracy与diversity的tradeoff,我们部署pDPP到真实线上系统中来验定它的有效性。

4.2.1 实验设定

对于在线评估,我们会进行A/B test。我们会对比三种不同的模型族:base、DPP、pDPP。我们将所有用户随机分成成百上千个bins,每个bin包含了超过10w用户。一个bin的用户会通过三者之一进行服务。在我们的真实推荐系统中,DPP的超参数\(\alpha\)以及\(pDPP\)的\(\alpha_0\)设置为0.6,因为当\(\alpha=6\)时avg(P@5, ILD@5)的效果是最好的。

4.2.2 评估指标

为了比较这些方法的优点,我们在两个metrics上(accuracy和diversity)上进行评估。第一个accuracy指标通过下载率(download ratio)来评估,定义如下:

\[DR = \frac{total \ number \ of \ downloads}{total \ number \ of \ impressions}\]

除此之外,我们会评估users的engagement。更特别的,我们会研究每个用户的平均下载数目(AD),如下:

\[AD = \frac{total \ number \ of \ downloads}{total \ number \ of \ users}\]

除了这两个accuracy指标,我们采用ILD来评估diversity,它在离线评估中也相同使用。

表3

4.2.3 在线效果

A/B在线测试如表3所示。考虑商业机密,我们只会在DR、AR和IDL上表示DPP、pDPP和Base模型的相对提升。

我们可以观察到,DPP和pDPP会比Base要在这三个评估指标上好很多。它建议我们提升diversity来增强推荐效果。在DPP和pDPP之间,我们观察到,pDPP要优于DPP,这表明:对diversity的个性化倾向比相同的倾向setting要更合适。我们观察到:pDPP要比DPP的线上提升,不会有离线评估那么大。通过详细分析,我们发现:大约35%的用户在它们的行为中只有一个下载记录,因此它很难定义它们的多样性倾向,这是未获得大提升的主要原因。然而,每天我们的APP store转化是数百万美金,因此这样的不大提升每年能带来额外的美金收入。

参考

twitter在《Addressing Delayed Feedback for Continuous Training with Neural Networks in CTR prediction》提出了一种FNW的逻辑:

摘要

在展示广告中,一个挑战是特征分布和点击率(CTR)可能会因为季节性变化、广告活动的变化和其他因素而随时间发生大幅度变化。为了跟上这些变化,主要的策略是持续在新鲜数据上训练预测模型,以防止它们变得过时。然而,在许多广告系统中,正向标签(postive label)只有在可能很长且随机的延迟之后才会被观察到。这些延迟的标签对连续训练中的数据新鲜性构成了挑战:在它们被训练算法摄取时,新鲜数据可能没有完整的标签信息。

naive策略是:将任何数据点视为负例,直到正向标签变得可用,往往会低估CTR,导致用户体验不佳和广告商的性能次优。本文的重点是确定最佳loss函数和模型的组合,以便在存在延迟标签的情况下,从连续数据流中进行大规模学习。在这项工作中,我们比较了5种不同的损失函数,其中3种是首次应用于这个问题。我们在离线设置中使用浅层和深层模型架构,对公共和专有数据集进行了基准测试。我们还讨论了在生产环境中实现每种损失函数的工程成本。最后,我们对表现最佳的几种方法进行了在线实验,以验证它们在连续训练方案中的性能。在离线训练6.68亿内部数据点时,我们提出的方法比之前的最先进水平提高了3%的相对交叉熵(RCE)。在在线实验中,我们观察到每千次请求的收入(RPMq)比naive logloss增加了55%。

1.介绍

许多广告商会选择在用户执行了预定义动作(例如点击他们的广告或访问他们的网站)之前不支付任何曝光(impression)费用。这个问题在广告领域是众所周知的,并引入了诸如每次点击成本(CPC:cost-per-click)和每次转化成本(CPA:cost-per-conversion)等模型,允许广告商只对预定义的消费(engagements)进行付费。这些基于绩效的付费模型会估计一次曝光能够产生的特定消费(engagement)的概率

在展示广告中,由于特殊事件、新活动和其他因素,特征和点击率(CTR)分布可能会经历巨大的变化。图1和图2通过时间展示了这些变化。为了解决这个问题,Twitter的广告预测模型会不断在线训练新鲜数据,即它们接收连续的数据流,并在新数据到达时更新模型(见图3)。

图片名称

图1 在参照日之后每个小时的带有新广告活动ID(campaign ID)的流量百分比

在上述场景中遇到的主要挑战是用户行为反馈的延迟。一些消费(engagements),例如广告上的一次点击或广告视频的一次MRC观看,可能会在广告展示后的1分钟、1小时甚至1天后发生。相应的挑战是,在为广告曝光分配label之前(随后在该数据上进行训练),是否需要等待一个固定的时间窗口,还是根据某些启发式规则来决定label

图片名称

图2 连续特征值在3天内的分布情况。

  • 早前方法的主要缺点是:在等待过程中模型可能会变得过时,以及维护数据缓存所需的额外基础设施成本。
  • 随后出现的实时方法的问题是:训练涉及到错误地将样本标记为负例,导致负例数量比实际数据分布中更多。

未知的是,我们应该将理想的窗口长度设置成多少,以便在模型训练的延迟和假负例(FN)率(即由于窗口太短而错误地将示例标记为负例)之间找到平衡。

内部实证结果显示,即使模型更新延迟5分钟,也可能在性能方面造成极大的损害。在【naive的连续学习方法】中,小批量具有负标签的训练样本会立即被模型吸收,因而,模型始终是最新的,会随时间发生严重的特征分布变化(feature distribution shift)。因为不需要存储尚未被点击的实例的额外快照,从技术上讲,这种方法允许我们无限期地等待,直到观察到正向标签。然后,它可以立即引入到模型中,如图3所示。

图片名称

图3 连续学习框架

这种方法的主要缺点是:所有样本初始都被标记为负例,即使用户最终可能会消费(engage)它们。或者,数据样本保持未标记状态(unlabeled)直到发生消费(engagement)行为,并且消费(engagement)概率被认为依赖于从曝光发生以来经过的时间,如[3]中所述,就需要定期收集和存储数据的快照,以捕捉消费延迟分布( engagement delay distribution)。尽管时间依赖性的假设是有效的,但鉴于需要多次存储数据点(每个快照一次)以批量模式训练模型,这将导致基础设施成本大幅增加,并且如果没有激进的下采样,训练数据会随着时间的推移而增长。最后但同样重要的是,像[13]中提出的固定时间窗口将允许我们在训练之前获得大部分正向标签,但仍然会导致那些落在固定窗口之外进行消费的FN标签。因此,处理假负例(FN)的问题仍然存在,并且模型还有变得过时的额外风险。

在这项工作中,我们设计了一个模型,用于预测特定用户在Twitter平台上点击视频广告的概率(pCTR)。通过这一努力,我们在两个不同的数据集上离线比较了两类不同的模型架构和五种不同的损失函数。随后,我们选择了表现最佳的架构和损失函数,并通过在线实验对它们进行评估。

  • 第一种模型架构是一个简单的逻辑回归模型,由于其简单性、良好性能以及在线训练中容易摄取和处理新训练示例的特点,在展示广告行业中得到了广泛使用[3, 13]。
  • 第二种模型采用了deep&wide的架构[5],旨在应对推荐系统中使用的复杂和多样化的特征。

我们测试的五种损失函数,包括:

  • 对数损失(log loss)
  • 假负例加权损失(FN weighted loss)
  • 假负例校准(FN calibration)
  • 正未标记损失[7, 8](positive unlabeled loss)
  • 延迟反馈损失[3](delayed feedback loss)

在这些中,对数损失通常用于CTR预测[14]。

在线实验中使用了连续学习,我们认为这在基础设施成本、生产化便利性方面提供了最佳权衡,并且具有显著优势,即模型始终在新鲜数据上进行训练。

虽然通过在线梯度下降的连续或在线训练在浅层(线性或基于核的)模型中得到了广泛应用[12],但关于深度神经网络的连续学习的研究相对较少[21]。这尤其具有挑战性,因为目标函数是非凸的,并且已经提出了替代方法,如对冲策略[24],来解决这个问题。据我们所知,这是第一次使用深度学习模型来估计展示广告中的pCTR,同时解决延迟反馈问题。鉴于在线训练对深度神经网络来说难以采用,这项工作旨在对延迟反馈问题进行基准测试,并提出可行的解决方案,而不增加额外的工程成本。我们考虑的三种损失函数,正未标记(PU:positive unlabeled)、假负例加权(FN weighted)和假负例校准(FN calibration),是首次应用于这个问题,而后两种基于重要性采样。我们的结果表明,线性模型和小数据集上的好性能并不一定能转化为深度模型的同等性能。例如,延迟反馈损失在使用公共数据集的线性模型上导致了最佳的相对交叉熵(RCE),但在Twitter数据上使用深度模型时,却被所有提出的损失函数超越(RCE增加了2.99%)。损失函数的有效性也随着可用数据量的变化而变化。我们希望这篇论文能作为在连续方式下训练深度学习模型进行广告点击预测任务时使用哪种损失函数的指南。

2 相关工作

为了确保模型始终在新鲜数据流上进行训练,一些示例被错误地标记为负例或保持未标记状态(unlabeled)。一旦用户对广告产生消费,相同的数据点将以正标签呈现给模型。在[13]中,他们声称使用了一个足够长的时间窗口,以显著减少经验CTR与真实情况之间的偏差(仍然一部分曝光被错误地标记为负例)。尽管大多数方法忽视了可用的时间延迟信息(即自曝光以来经过的时间以及用户与广告交互前的时间),但其中一些方法通过联合训练延迟模型以及CPC或CPA模型来利用时间延迟[3, 28]。在以下各节中,我们描述了五种不同的方法,这些方法构成了解决FN问题的潜在解决方案。我们进一步讨论了它们各自的挑战。

2.1 重要性采样(Importance Sampling)

模型相对于数据分布$ \mathbf{p} $的交叉熵由下式给出:

\[L(\theta) = -\mathbb{E}_{\mathbf{p}}[\log f_{\theta}(y|x)] = -\sum_{x,y} \mathbf{p}(x, y) \log f_{\theta}(y|x) \quad (1)\]

其中:

  • $ x $是与特定请求(与用户和广告相关)相关的特征,
  • $ y $是表示用户是否消费(engagement)的二元label
  • $ f_{\theta} $是试图预估$ \mathbf{p} $的模型。
  • $\theta$:模型参数

如前所述,在在线训练场景中,直到观察到正标签,否则样本被引入当成负例。这导致模型观察到一个有偏的分布$ \mathbf{b} $,而不是实际的数据分布。因此,我们不能从$ \mathbf{p} $中采样,只能访问来自不同分布$ \mathbf{b} $的样本。通过应用适当的加权方案,我们可以使用以下公式获得公式(1)中期望的无偏估计:

\[\mathbb{E}_{\mathbf{p}}[\log f_{\theta}(y|x)] = \mathbb{E}_{\mathbf{b}}\left[ \frac{\mathbf{p}(x, y)}{\mathbf{b}(x, y)} \log f_{\theta}(y|x) \right] \quad (2)\]

权重 $ w(x, y) = \frac{p(x,y)}{b(x,y)} $ 对应于重要性权重,旨在纠正在不同分布上进行平均的事实。使用来自不同、有偏的分布 $ b $ 的样本,可以通过以下方式估计等式(2)中的期望值:

\[\frac{1}{N} \sum_{n} w(x_n, y_n) \log f_{\theta}(y_n | x_n)\]

使用一个分布中的样本来估计另一个分布的期望值这种方法称为重要性采样。重要性采样已在不同情境中得到广泛使用,包括反事实分析,在[2]中作者讨论了涉及的假设以及如何将这种技术应用于计算广告中以估计任何量的反事实期望。在这种情况下使用重要性采样的最大挑战是我们需要估计权重 $ w(x, y) $。从此处开始,出于简洁性,我们使用 $ f_{\theta}(x) $ 来表示 $ f_{\theta}(y = 1 \mid x) $。

2.2 逆倾向性加权(Inverse Propensity Weighting)

逆倾向性加权在因果推断中得到了广泛应用,其中某些总体中的样本可能被低估。通过在estimator中对个别样本使用适当权重,可以调整实际总体与样本之间的差异[1]。当抽样概率已知时,就使用这个概率的倒数来加权观察结果。倾向性得分,记作:

\[p(x) = P(T = 1 \mid X = x)\]

是给定一组协变量时样本将被分配特定处理的概率。在假设处理不是随机分配的情况下,反事实相当于假设所有总体样本都以等概率被分配任何处理的等效估计。在点击率预估的背景下可以采用类似的方法,其中treatment相当于广告被赋予一个真实label。在任何问题中应用这种技术时需要考虑的一个要求是,倾向性权重需要通过一个单独的参考模型来估计。

2.3 PU learning(Positive - Unlabeled Learning)

另一种方法集不会明确识别带有负标签的数据,而只从正例(P)和未标记(U)样本中学习,这与传统的分类设置不同,在传统分类设置中,正例和负例都是可用的。当获取已标记样本不可能或成本非常高时,就会出现这种设置,例如在文本分类[10]、分子生物学[9]中,但这种方法也被应用于异常值检测[25]和时间序列分类[23]。

这种情况下,可用的训练数据由一组不完整(随机抽样)的正例和一组unlabeled样本组成,这些样本可能是正例或负例,导致需要一种不同的训练过程。关于训练数据的一个关键假设是,它们是从$p(x, y, s)$ 中随机抽取的,对于每个抽取的元组 <x,y,s>,只会记录 <x, s>。这里:

  • s是观察到的label
  • y是实际label,可能尚未发生

与此同时,假设:已标记的正例是从所有正例中以完全随机的方式选中,例如:

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

这种情况下,我们首先训练一个分类器 $ g(x) = p(s = 1 \mid x) $ ,来估计:给定一条样本的原始标签为正例(y = 1)时,该样本被标记为正例(s=1)的概率[9],因为

\[p(s = 1 | y = 1) = \frac{1}{n_P} \sum_{x \in P} g(x)\]

其中:

  • $ n_P $ 是正例 P 的基数。

接下来,每个unlabel样本可以被看成是以下两者的组合:

  • 一个正例,它的权重与$ p(y = 1 \mid x, s = 0) $ 成比例 (观察是unlabeled,实际是个正例)
  • 一个负例,它的权重与互补权重 $ 1 - p(y = 1 \mid x, s = 0) $成比例(观察是unlabeled,实际是个负例)

而所有正例都有单位权重。该weight可以表示为:

\[p(y = 1 | x, s = 0) = \frac{1 - p(s = 1 | y = 1)}{p(s = 1 | y = 1)} \times \frac{p(s = 1 | x)}{1 - p(s = 1 | x)}\]

最后,可以使用这些权重和标准训练过程在可用数据上训练分类器。 在之前的研究中,[19] 通过执行逻辑回归,并优化线性函数的squared weights求和和以及weighted logit loss的和,学习了给定输入观察到正标签的条件概率。在这种设置中,unlabeled样本具有单位权重,而正样本的权重由 $ n_U / n_P $ 的比值确定。PU问题也通过对分类器进行聚合来解决,这些分类器被训练以区分P数据和U数据的随机子样本[22]

在文献[8]和[7]中,du Plessis等人首次提出了一个无偏的非凸风险估计器,并分析了从数据中估计类先验时的超额风险。在标准二分类中,分类风险(classification risk)由下式给出:

\[\widehat{R}_{PN}(f_{\theta}) = p(y = 1)E_{p(x|y=1)}[l(f_{\theta}(x))] + p(y = 0)E_{p(x|y=0)}[l(1 - f_{\theta}(x))]\]

其中:

  • $ l $ 是损失函数。

由于:

\[p(x) = p(y = 1)p(x \mid y = 1) + p(y = 0)p(x \mid y = 0)\]

最后一项可以表示为:

\[p(y = 0)E_{p(x|y=0)}[l(1 - f_{\theta}(x))] =\\ E_{p(x)}[l(1 - f_{\theta}(x))] - p(y = 1)E_{p(x|y=1)}[l(1 - f_{\theta}(x))]\]

因此,分类风险可以用以下表达式近似:

\[\widehat{R}_{PU}(f_{\theta}) = p(y = 1)E_{p(x|y=1)}[l(f_{\theta}(x))] \\ - p(y = 1)E_{p(x|y=1)}[l(1 - f_{\theta}(x))] \\ + E_{p(x)}[l(1 - f_{\theta}(x))] \quad (3)\]

其中:

  • $ p(x) $ 对应于所有未标记示例的边际分布。

根据文献[18],这个无偏风险估计器如果训练的模型过于灵活,可能会产生负的经验风险,这使得这个损失函数更难以用神经网络优化,并容易过拟合。

2.4 延迟反馈模型

文献[3]中提出的方法对CPA(每次行动成本)进行建模,并考虑了自广告点击以来经过的时间,并且不涉及匹配窗口。在这种情况下,延迟反馈问题的处理方式如下:只有当实际观察到正标签(positive labels)时,训练样本才被标记为正向,否则被视为unlabeled,类似于PU learning方法。在模拟点击后归因的情况下,这意味着负标签不可能发生,因为转化可能在任何未来的时间内发生。大多数只从正样本和unlabeled样本中学习的方法[9, 19]假设缺失标签的正样本的概率是恒定的。然而,根据[3]的说法,最近的点击不太可能被赋予真实label,因为经过的时间不够长,即正样本的概率是与时间相关的。因此,他们使用第二个模型,该模型非常类似于生存时间分析模型[15],以捕捉点击和转化之间的预期延迟。这与预测用户最终是否会转化的模型是分开的,但两个模型是联合训练的。在这种方法中,

  • 随机变量 $ Y \in \lbrace 0, 1 \rbrace $ 表示一次转化是否已经发生
  • 另一个独立的随机变量 $C \in \lbrace 0, 1\rbrace$ 表示用户最终是否会真实转化

一旦训练了两个模型,只会保留预估转化率的模型,即 $ P(c = 1 \mid x) $,而转化延迟模型 $ P(d \mid x, c = 1) $ 则被丢弃。标准逻辑回归模型代表点击率(CTR),而延迟则假设为指数(非负)分布,即:

\[P(d|x, c = 1) = \lambda(x) \exp(-\lambda(x)d) \quad (4)\]

因此,$ y = 0 $ 可能发生在两种不同的情况下:

  • 经过的时间$e$比转化时间$d$短,即 $ e < d $
  • 用户永远不会转化,即 $ c = 0 $

尽管该模型被应用于CPA(cost-per-conversion)模型,它也适用于本文的CPC(cost-per-click)模型。图4说明了点击时间也遵循指数分布,这使得这个模型成为一个适当的解决方案。作为[3]中呈现模型的扩展,[28]建议了一个非参数延迟反馈模型(NoDeF),以在不假设任何参数分布(如指数或威布尔分布)的情况下捕捉时间延迟。该模型假设每个样本都有一个隐藏变量,这表明这个动作最终是否会导致转化。对于参数估计,使用了期望最大化(EM)算法[6]。然而,采用这些方法将需要用一个单独的模型来估计时间延迟,并显著增加基础设施成本和将这样一个系统投入生产的复杂性。

图片名称

图4 训练广告的点击延迟时间分布(超过5分钟)。对应于在纠正了审查分布的累积分布函数(CDF)之后的分布

2.5 Delayed Bandits

延迟反馈在马尔可夫决策过程(MDPs)[16, 27]的背景下已得到广泛考虑,但当延迟不受限制时,其应用变得更加具有挑战性。在[26]中,作者提出了离散时间随机多臂老虎机模型,来解决可能存在审查反馈的长延迟问题,即不可观察的反馈。他们涵盖了这两种模型的两个不同版本:

  • 未审查模型(uncensored model):允许在任意长的延迟后观察转化;
  • 审查模型(censored model):它在行动后施加了$m$个时间步长的限制,在此之后,转化不再可观察。

在每一轮中,agent收到的reward对应于在时间 $ t $ 观察到的转化数量。然而,与之前的方法不同,这些模型假设已知延迟分布。他们认为这是一个有效的假设,因为分布可以从历史数据中估计,并且还声称可以在线方式在不增加成本的情况下估计延迟分布,前提是它被所有行动共享。

3 提出的方法

在本工作中,我们采用了一种连续训练方案,它建议:我们可以潜在等待从广告曝光以后的无限时间,直到最终观察到真实正向消费。从历史上看,这是通过摄取所有带有负标签的样本来处理的,直到用户记录了正向消费。因此,有偏的数据分布(即观察到的分布),包含了所有从实际数据分布中标记为负的样本。相应地,在有偏分布中的正样本对应于原始数据分布中的所有正样本。

3.1 模型架构

本节描述了正在考虑的模型的架构细节。

3.1.1 逻辑回归

我们使用了一个标准逻辑回归模型,该模型在展示广告领域得到了非常广泛的应用[3, 13]:

\[f_{\theta}(x) = \frac{1}{1 + \exp(-w_c \cdot x)} = \sigma(w_c \cdot x)\]

其中:

  • $ \sigma(\cdot) $ 对应于sigmoid函数
  • 输入 x 是与特定请求相关的用户和广告候选的成千上万个特征的稀疏表示。

3.1.2 Wide&deep模型

这个深度模型由一个宽组件组成,对应于一个广义线性模型,以及一个深组件,对应于一个标准前馈神经网络。宽组件处理原始输入特征和转换后的特征,例如交叉乘积特征,为广义线性模型添加非线性。深组件将高维稀疏特征转换为嵌入向量,将分类特征转换为密集的、低维的表示形式。 与前一个模型类似,特征包括用户特征、上下文特征和广告特征。模型对CTR的预测由下式给出:

\[f_{\theta}(x) = \sigma(w_{wide}^T \cdot [x, \phi(x)] + w_{deep}^T \cdot {\alpha^{(l_f)}} + b)\]

其中:

  • $ w_{wide} $ 对应于wide组件的权重,
  • $ w_{deep} $ 对应于deep组件的权重,
  • $ \phi(x) $ 是交叉乘积变换,
  • $ \alpha^{(l_f)} $ 是deep分支的最终层的激活

3.2 损失函数

3.2.1 延迟反馈损失(Delayed feedback loss)

在这个版本的损失函数中,假设时间延迟遵循指数分布,并且这个模型与逻辑回归模型或深度模型联合训练。假设:

  • $ \lambda(x) = \exp(w_d \cdot x) $
  • $ w_d $ 是pCTR模型的参数

我们针对参数 $ \theta $ 和 $ w_d $ 优化正则化对数似然:

\[\underset{\theta, w_d}{\text{arg min}} \ L_{DF}(\theta, w_d) + \alpha (\| \theta \|^2_2 + \| w_d \|^2_2)\]

其中:

  • $ \alpha $ 是正则化参数,
  • $ L_{DF} $ 是延迟反馈损失函数,其定义如下:
\[L_{DF}(\theta, w_d) = -\sum_{x,y=1} \log f_{\theta}(x) + \log \lambda(x) - \lambda(x)d \\ - \sum_{x,y=0} \log[1 - f_{\theta}(x) + f_{\theta}(x) \exp(-\lambda(x)e)] \quad (5)\]

其中:

  • $ f_{\theta}(x) $ 对应于pCTR模型的输出,
  • $ d $ 对应于正样本的点击时间
  • $ e $ 表示自广告曝光以来经过的时间

这个损失函数可以以更数值稳定的方式计算如下:

\[L_{DF}(\theta, w_d) = -\sum_{x,y} \log f_{\theta}(x) - \sum_{x,y=1} w_d \cdot x - \lambda(x)d \\ - \sum_{x,y=0} \log[\exp(-f_{\theta} (x)) + \exp(-\lambda(x)e)]\]

3.2.2 PU-loss(Positive-Unlabeled loss)

在这一部分中,我们考虑在假负例(FN)设定下使用PU损失,通过将有偏训练数据中的所有负样本视为未标记。根据等式(3),可以推导出以下损失函数:

\[L_{PU}(\theta) = -\sum_{x,y=1} [\log f_{\theta}(x) - \log(1 - f_{\theta}(x))] - \sum_{x,y=0} \log(1 - f_{\theta}(x)) \quad (6)\]

从经验上看,这可以被看成是:对正样本和负样本都使用传统的log loss。另外,当观察到正例时,都会朝着负梯度的相反方向迈出一步。这个假设是合理的,因为对于每个正样本,都会基于在一个假负样本的梯度上进行参数更新。

3.2.3 假负例加权(Fake Negative Weighted loss)

该损失函数依赖于重要性采样。在我们的训练设置中,样本会被标记为负例,并被引入到训练pipeline中,接着当用户发生消费时会复制出一个正标签。为了对该损失函数进行公式化,我们依赖以下假设:

\[b(x|y = 0) = p(x) \\ b(x|y = 1) = p(x|y = 1)\]

其中:

  • $b$:是有偏的观察到的分布
  • $p$:是实际的数据分布

我们知道:

\[b(y = 0) = \frac{1}{1+p(y=1)}\]

因为:所有样本最初都被标记为负例

(1)中的损失函数可以写成:

\[-\sum_{x,y} p(y = 1|x) \log f_{\theta}(x) + p(y = 0|x) \log f_{\theta}(y = 0|x) \\ = -\sum_{x,y} \frac{b(y = 1|x)}{p(y = 1|x)} \log f_{\theta}(x) + \frac{b(y = 0|x)}{p(y = 0|x)} \log f_{\theta}(y = 0|x) \quad (7)\]

在有偏分布中观察到用户正向消费的概率是:

\[b(y = 1|x) = \frac{b(y = 1)b(x|y = 1)}{b(y = 1)b(x|y = 1) + b(y = 0)b(x|y = 0)}\]

利用上述假设,并分配 $ w(x) := \frac{1}{1+p(y=1 \mid x)} $,可以表示为:

\[b(y = 1|x) = \frac{w(x)p(y = 1)p(x|y = 1)}{w(x)p(y = 1)p(x|y = 1) + w(x)p(x)} \\ = \frac{p(y = 1|x)p(x)}{p(y = 1|x)p(x) + p(x)} \\ = \frac{p(y = 1|x)}{1 + p(y = 1|x)} \quad (8)\]

类似地,用户不消费的概率是:

\[b(y = 0|x) = 1 - b(y = 1|x) = \frac{1}{1 + p(y = 1|x)} \quad (9)\]

通过将(8)和(9)替换到等式7中,我们得到以下表达式:

\[L_{IS}(\theta) = -\sum_{x,y} b(y = 1|x) (1 + p(y = 1|x)) \log f_{\theta}(x) \\ + b(y = 0|x)p(y = 0|x) (1 + p(y = 1|x)) \log f_{\theta}(y = 0|x) \quad (10)\]

因此,我们可以:

  • 用 $ (1 + p(y = 1 \mid x)) $ 来加权正样本
  • 用 $ (1 - p(y = 1 \mid x)) \cdot (1 + p(y = 1 \mid x)) $ 来加权负样本

由于我们不能直接获取 $ p $,我们可以用模型估计 $ f_{\theta} $ 来替代它,只要 $ f_{\theta} $ 收敛于 $ p $,这在以下段落中将得到证明。

依赖于(8)和(9),并通过在重要性权重中用 $ f_{\theta} $ 替代 $ p $,(10)可以重写为:

\[L_{IS}(\theta) = -\sum_{x,y} \frac{p(y = 1|x)}{1 + p(y = 1|x)} [(1 + f_{\theta}(x))]\log f_{\theta}(x) \\ + \frac{1}{1 + p(y = 1|x)} [(1 - f_{\theta}(x))(1 + f_{\theta}(x))] \log(1 - f_{\theta}(x))\]

$[\cdot]$括号中的项在计算loss对输入的梯度时不予考虑。最后,$ L_{IS}(\theta) $ 相对于 $ f_{\theta} $ 的梯度可以写成:

\[\frac{\partial L_{IS}}{\partial f_{\theta}} = -\frac{p(y = 1|x)}{1 + p(y = 1|x)} \frac{1 + f_{\theta}(x)}{f_{\theta}(x)} + \frac{1 + f_{\theta}(x)}{1 + p(y = 1|x)} \\ = \frac{(1 + f_{\theta}(x))(f_{\theta}(x) - p(y = 1|x))}{(1 + p(y = 1|x))f_{\theta}(x)} \quad (11)\]

注意,对于 $ p(y = 1 \mid x) \in (0, 1] $:

  • 当 $ \frac{\partial L_{IS}}{\partial f_{\theta}} = 0 $ 时,那么 $ f_{\theta}(x) = p(y = 1 \mid x) $,即只要 $ f_{\theta}(x) > 0 $,$ f_{\theta}(x) $ 就收敛于 $ p(y = 1 \mid x) $
  • 当 $ f_{\theta}(x) > p(y = 1 \mid x) $ 时,$ \frac{\partial L_{IS}}{\partial f_{\theta}} > 0 $
  • 当 $ f_{\theta}(x) < p(y = 1 \mid x) $ 时,$ \frac{\partial L_{IS}}{\partial f_{\theta}} < 0 $。

这表明FN weighted loss导致 $ f_{\theta}(x) = p(y = 1 \mid x) $,并且梯度始终指向正确的方向。

3.2.4 假负例校准(Fake negative calibration)

在该方法中,模型会估计有偏分布$b$,接着,在解等式8求 $ p(y = 1 \mid x) $ 后使用以下变换:

\[p(y = 1|x) = \frac{b(y = 1|x)}{1 - b(y = 1|x)}\]

这总是一个有效的分布,因为,对于在有偏分布中的每个正例,都会观察到一个FN,即 $ b(y = 1 \mid x) \leq 0.5 $ 且 $ p(y = 1 \mid x) \leq 1 $。为简洁起见,我们称这种方法为FN校准。

4.实验

4.1 Setup

4.1.1 离线指标

为了比较正在考虑的不同模型架构和loss函数,我们首先进行了离线实验。离线实验被用来验证所提出的损失函数是否适用于CTR预测问题,并且使用了两个不同的数据集进行模型的训练和测试,一个内部数据集和一个公共数据集。在离线设置中,我们在本文中关注并报告的指标包括:评估集上的logloss(其中不包含假负例)、相对交叉熵(RCE)和准确率-召回率曲线下面积(PR-AUC)。RCE对应于相对于稻草人预测,或者说是naive预测的改进,通过交叉熵(CE)来衡量。naive预测对应于不考虑用户和广告特征的情况,例如,它总是预测训练集的平均CTR。假设naive预测的平均CE是 $ C_{\text{naive}} $ ,要评估的预测的平均CE是 $ C_{\text{pred}} $ ,那么RCE定义为 $ (\text{CE}{\text{naive}} - \text{CE}{\text{pred}}) \times 100/\text{CE}_{\text{naive}} $ 。请注意,CE越低,预测的质量越好,因此RCE越高。使用RCE的好处是,我们可以确信地估计模型是在低估还是高估了天真预测的性能。PR-AUC是一个更常用的指标,并且在数据倾斜的情况下比AUC更敏感

4.1.2 在线指标。

最有希望的离线结果的模型和损失函数在线上环境中进行了进一步评估,因为期望的应用是连续训练。线上环境反映了实际性能,这决定了哪种方法最适合处理延迟反馈问题。然后,在Twitter数据的保留评估数据集上执行评估,以比较“对照”方法和“A/B测试框架中的处理”方法的性能。通过在评估日期结束后等待最多9小时以获取消费标签,已从这个保留数据集中移除了假负例。在这种设置中报告了两个关键指标:汇总相对交叉熵(汇总RCE)和每千次请求的收入(RPMq)[20]。汇总RCE用于在控制和实验之间进行RCE的公平比较,否则每个模型都将在自己的流量上进行验证,并且是通过评估两个模型生成的汇总流量来衡量模型泛化能力的一个指标。RPMq代表每1000次广告请求产生的收入。通过展示更高质量的广告来增加用户消费可能会导致RPMq增加,但RPMq也可能仅通过每次请求提供更多广告而上升,而不考虑其质量。因此,更高的RPMq是可取的,但这个指标需要与CTR一起考虑,因为高RPMq与低CTR可能会损害用户体验并导致负面的长期影响。

4.1.3 超参数。

用于离线实验的超参数包括:随机梯度下降(SGD)优化器,学习率0.02;衰减率0.000001;批量大小128;用于延迟反馈损失的学习率是0.005,延迟反馈模型的L2正则化参数是2。我们使用了固定数量的箱位将分类和连续特征进行离散化。宽与深模型的深度部分由4层组成,大小为[400, 300, 200, 100],并且采用泄漏的修正线性单元(ReLU)作为中间层的激活函数。权重是使用Glorot [11]初始化的。相同的超参数被用来初始化线上模型。

4.2 数据

4.2.2 离线Twitter数据。

对于基于内部数据(in-house data)的实验,我们离线训练了4天的数据。并在随后一天的数据上执行评估。鉴于实际上只有一小部分曝光给用户的广告会被点击,数据标签不平衡构成了特别的挑战。在我们的训练设置中,为了解决这种不平衡问题,负样本被下采样到原始数据集的5%,并且在loss函数中为负样本采用了更高的权重来解释这种修改。经过这些步骤,训练数据的总数达到了6.68亿视频广告,而测试数据达到了700万广告。对于评估数据集,如果在曝光时间之后的9小时内发生了消费,则给样本分配一个正标签。否则,样本被分配一个负标签。随后,正例和负例都被下采样到它们原始大小的5%。

为了获得经过的时间和点击时间信息,在每个日期结束时对数据进行了快照捕捉。因此:

  • 对于尚未观察到消费的样本:分配了一个负标签,并将从曝光时间到快照时间经过的时间作为特征添加。
  • 对于在快照时间之前观察到消费的样本:除了经过的时间外,消费时间和曝光时间之间的差异被记录为点击时间。

这些时间特征仅用于估计时间延迟模型,这是延迟反馈损失(delayed feedback loss)所必需的。值得一提的是,由于大多数假负例(FN)已从这个派生的数据集中清除,正例/负例比例最终比以前更高。

4.2.3 在线Twitter数据

在在线实验中,所有模型都训练于实时生成的曝光回调数据的连续数据流。向用户展示广告曝光,并且每个样本的标签是根据当前的点击信息决定的(这就是假负例进入训练数据的地方)。然后,每个训练样本被发布到数据流中,模型的训练服务订阅了这个数据流。连续训练过程每10分钟输出一次模型,这些模型被预测服务获取以服务在线流量。在计算pooled RCE时,我们使用与生成离线评估数据相同的数据源,这意味着:通过在给每个广告曝光分配标签之前等待9小时,我们才会移除假负例

需要注意的是,每个在线实验只服务于1%的生产流量,这意味着训练流量主要由我们当前的生产模型主导。我们还在这个参考生产流量上计算我们的在线这pooled RCE指标,这个流量不受任何模型的影响,以确保通过使用每个模型相同的评估数据集来保证公平性。

4.3 结果

4.3.1 离线评估

表2

在Twitter数据上的结果显示在表2和表3中,分别对应逻辑回归模型和Deep&Wide模型。这些对应于每个模型使用不同初始化进行的8次评估的中位性能。总体上,我们可以观察到,深度学习模型在所有loss函数上的表现都优于逻辑回归模型,这在预料之中。就RCE而言,

  • logloss在两种模型中表现最差,而FN校准损失为线性模型带来了最佳性能(RCE为12.41,损失为0.5641)。
  • PU loss和FN校准在深度模型上表现最佳,产生了几乎等效的结果(RCE分别为13.57和13.58),并且与FNW loss的性能非常相似(RCE为13.54)。因此,这三种损失函数与logloss在线上环境中进行了比较。

延迟反馈损失在两类模型中都优于logloss(线性模型的RCE分别为10.59和5.48,深度模型的RCE分别为12.11和7.81)。PR-AUC可能不像RCE那样变化大,但其在表现最佳的方法之间(使用非配对t检验在第1名和第2名方法之间)的差异仍然在统计上对线性模型显著。

4.3.2 在线评估

应该提到,以下结果对应于一个不考虑预算的实验,即在决定展示特定请求的广告时不考虑广告主的预算,该实验运行了1周。表4显示了使用Deep&Wide模型的顶级loss函数的在线结果。FN加权和FN校准与传统的logloss相比,都产生了更高的RPMq(分别增加了+55.10%和+54.37%)。同样地,对于货币化的CTR,增长也是显著的(FN加权为+23.01%,FN校准为23.19%)。我们观察到,尽管PU loss在离线表现良好,但在2天后出现分歧,并在分歧之前报告了在线指标。

附录:

tx在《Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations》提出了PLE模型:

1.介绍

个性化推荐在在线应用中扮演着重要角色。RS需要包含多种用户反馈来建模用户兴趣,并最大化用户的engagement和satisfaction。然而,由于存在高维问题,用户满意度通常很难通过一个learning算法来直接解决。同时,用户satisfaction和engagement具有许多可以直接学习的主要因素,比如:点击、完成、分享、收藏、评论的概率(click likelihood)。因此,有许多尝试使用MTL多任务学习到RS中来同时建模用户的satisfaction或engagement。实际上,这在工业应用中是主流。

MTL会在单个模型中同时学习多个任务,通过在任务间共享信息来高效地提升学习。然而,在现实推荐系统中,任务经常松散相关或者有冲突,这会导致效果退化(performance deterioration),称为“negative transfer”。在一个真实的大规模视频推荐系统和真实数据集上,我们通过大量实验发现,当任务相关性很复杂时并且有样本依赖时(例如:对比起单任务模型,多个任务不能同时提升,这被称为“跷跷板效应(seesaw phenomenon )”),已存在的MTL模型通常可以提升一些任务,但会牺牲其它任务的效果。

之前的工作主要解决negative transfer,但忽略了seesaw phenomenon,例如:cross-stitch network[16]和sluice network [18]提出,学习静态线性组合 (static linear combinations)来对不同任务的表示进行融合(fuse),这不能捕获样本依赖性(sample dependent)。MMOE[13]应用gating networks来对基于input的bottom experts进行组合来处理任务差异,但忽略了在experts间的差异和交叉。因此,设计一个更强大和高效的模型来处理复杂相关性,并消除seesaw效应很关键。

为了达到该目标,我们提出了一个新的MTL模型,称为渐近层抽取 Progressive Layered Extraction (PLE),它可以很好地利用在shared network设计上的先验知识来捕获复杂的任务相关性(task correlations)。对比起在MMOE中的粗糙共享参数,PLE会显式地将shared experts和task-specific experts进行分离来缓和有害参数干扰(harmful)。再者,PLE会引入multi-level experts和gating networks,并应用progressive separation routing来从lower-layer expert抽取更深的knowledge,并在更高levels上逐渐将task-specific parameters给分离出来。

为了评估PLE的效果,我们在真实工业界推荐dataset以及主要的公开数据集上(包括census-income[5]、synthetic data[13]、以及Ali-CCP)开展了大量实验。实验结果表明:在所有数据集上,PLE的效果要好于state-of-the-art MTL模型,并展示了一致提升。另外,在tencent的大规模视频推荐系统中在线指标的极大提升,表明PLE的优点。

主要的贡献如下:

  • 在大规模视频推荐系统和公开数据集上,通过大量实验发现,一个有意思的seesaw效应已经被观察到:SOTA的MTL模型经常会提升某些任务,但同时牺牲另一些任务的效果,并不能胜过单任务模型(single-task model),因为存在复杂的内在相关性。
  • 使用新的shared learning架构的PLE模型会提升shared learning效率,并能从joint representation learning和information routing的角度,能解决seesaw现象以及negative transfer。除了推荐应用外,PLE可以灵活地应用于许多场景
  • 我们在工业和公开datasets上的大量离线实验评估了PLE的效果。在tencent的大内容推荐平台上的在线A/B test结果也显示了,PLE在SOTA的MTL模型上能有极大提升,在view-count上有2.23%的增长,在watch-time上有1.84%的提升,它可以生成极大的商业收益。PEL已经成功部署到推荐系统中,可以应用到许多其它推荐应用上。

2.相关工作

在推荐系统中,高效的多任务学习模型、以及MTL模型的应用是两个研究领域。在本节中,我们简单讨论在这两个领域的相关工作。

2.1 MTL模型

图片名称

图1 MTL模型的network routing。蓝色四边形和圆形分别表示shared layers和gating network,粉色和绿色四边形表示task-specific layers,粉色和绿色圆形表示不同任务的task-specific gating networks

图1 a)中展示的Hard parameter sharing【2】是最基础和常用的MTL结构,但经常存在negative transfer,因为参数会在多个任务间直接共享而存在任务冲突(task conflicts)。为了解决任务冲突,图 1f)的cross-stitch network[16]和图1g)的sluice network[18]同时提出学习对来自不同的tasks的representations进行选择性的线性组合加权。然而,在这些模型中,representations是通过对所有样本使用相同的static weights进行组合的,seesaw效应并没有被解决。在本工作中,提出了PLE(Progressive Layerd Extraction)模型,并使用带gate结构的progressive routing机制来对基于input的knowledge进行融合(fuse),它可以达到适配不同的inputs的组合。

使用gate结构和attention network来进行信息融合(information fusion)已经存在一些研究。MOE【8】首先提出在bottom上共享一些experts,并通过一个gating network来对experts进行组合。MMOE[13]则对MOE进行扩展,并为每个任务使用不同的gates来获取在MTL中的不同融合权重(fusing weights)。相似的,MRAN[24]会应用multi-head self-attention来学习在不同feature sets上的不同的representation子空间。expert和attention module则在所有tasks间共享,在MOE、MMOE和MRAN中不存在task-specific的概念。相反,我们提出的CGC(Customized Gate Control)和PLE模型会对task-common参数和task-specific参数进行显式分离(explicitly),并避免由复杂任务相关性导致的参数冲突。对于MMOE来说,尽管存在理论上的可能性收敛到我们的网络设计,在网络设计上的先验知识(prior knowledge)是很重要的,MMOE在实际上很难发现收敛(convergence)。Liu【10】应用task-specific attention networks来对选择性地对shared features进行融合(fuse),但不同的任务在attention network中的融合(fusion)之前仍会共享相同的representation。之前的network的研究都没有显式地解决representation learning和routing的joint optimization问题,特别是在一个 inseparable joint(非独立联合)方式,而该工作会首次在joint learning和routing的通用框架上提出一个新的progressive separation方式

存在一些工作,使用AutoML的方式来寻找一个好的network结构。SNR framework【12】通过二元随机变量来控制在sub-networks间的connections,并使用NAS来搜索最优的结构。相似的,Gumbel-matrix routing框架【15】则学习MTL模型的routing并将它公式化成一个使用Gumbel-Softmax trick的二元matrix。像MDP的Modeling routing process,会使用MARL[19]来训练routing network。在这些工作的network结构使用特定的简化猜想而设计的,不够通用。在[17]中的routing network会为每个任务在每个depth选择不超过一个function block,这会减小模型的表现力。Gumbel-matrix routing network[15]则提出在representation learning上进行constraint,因为每个任务的input需要对每个layer上的representation进行merge。另外,在这些frameworks中的fusing weights不适合对不同的inputs,对于这些方法来说寻找最优的结果带来的昂贵搜索开销是另一个挑战。

2.2 RS中的MTL

为了更好地利用多种用户行为,MTL learning已经被广泛应用到推荐系统中,并达到了大量提升。一些研究则会集成传统的推荐算法:比如:在MTL中集成CF和MF。Lu[11]和Wang[23]则引入regularization在隐表示上。

。。。

3.推荐中的seesaw效应

negative transfer是在MTL中的一个常见现象,特别是对于松散相关的任务【21】。对于复杂的任务相关性,特别是样本依赖相关模式,我们也观察到:当提升shared learning效率并达到比相应的single-task模型的极大提升时,会有seesaw现象。(对于当前MTL模型来说,在所有任务上获得提升是很难的)。在本节中,我们基于tencent的大规模视频推荐系统,介绍和调查了seesaw效应。

3.1 视频推荐的MTL ranking系统

图片名称

图2 视频推荐的一个MTL ranking系统

在本节中,我们简单引入服务tencent news的MTL ranking系统,它是世界最大的内容平台,基于用户的多样化反馈来推荐新闻和视频给用户。如图2所示,有多个目标来建模不同的用户行为:比如:在MTL ranking系统中的click、share、comment。在offline的训练过程, 我们会基于从user logs中抽取的用户行为来训练MTL ranking模型。接着,对于每个任务,基于ranking module的weighted-multiplication会将这些预测分(predicted scores)进行组合到一个最终分,通过等式1的组合函数,最终推荐top-ranked videos给用户。

\[score={p_{VTR}}^{w_{VTR}} \times {p_{VCR}}^{w_{VCR}} \times {p_{SHR}}^{W_{SHR}} \times \cdots \times {p_{CMR}}^{W_{CMR}} \times f(video\_len)\]

…(1)

其中:

  • 每个w:决定了每个predicted score的相对重要性
  • \(f(video\_len)\):是一个非线性变换函数,比如:在视频长度(video duration)上的sigmoid或log函数
  • \(w_{VTR}, w_{VCR}, w_{SHR}, w_{CMR}\):是通过在线实验搜索优化的超参数,用来最大化online metrics。(注:SHR(SHare Rate)、CMR(Comment Rate))

在所有任务之外,播放完成度VCR(View Completion Ratio)播放通过率VTR(View-Through Rate)是分别是两个重要目标建模关键在线指标:观看数(view-count)和观看时长(watch-time)。特别的:

  • VCR预测是一个回归任务(regression task),它使用MSE loss来预测每次view的完成度。
  • VTR预测是一个二分类任务,它使用cross-entropy loss来预测一个valid view的概率,它被定义成:超过一定观看时间阈值的一次播放行为

在VCR和VTR间的相关模式(correlation pattern)很复杂。

  • 首先,VTR的label是一个关于播放动作(play action)和VCR的组合因子,只有watch time超过阈值的一个play action会被看成是一个有效观看(view)
  • 第二,play action的分布也复杂,因为在wifi下来自auto-play场景的样本会高于play的平均概率,而来自显式点击场景(没有auto-play)的其它样本会具有更低的play概率

由于复杂和强样本依赖的相关性,当联合建模VCR和VTR会观察到一个seesaw效应。

3.2 在MTL中的Seesaw效应

为了更好地理解seesaw效应,我们会使用single-task模型和SOTA MTL模型来执行实验分析,在复杂相关的VCR和VTR任务组上。除了hard parameter sharing、cross-stitch、sluice network、mmoe外,我们也评估了两个独创的结构:非对称共享(asymmetric sharing)和定制共享(customized sharing)。

  • 非对称共享(asymmetric sharing):是一种新的sharing机制,用来捕获在任务间的非对称关系。根据图1b,bottom layers会在任务间的非对称共享,具体某个任务的表示需要共享依赖于任务间的关系。公共融合操作(fusion)(比如:concatenation、sum-pooling、average-pooling)可以用来组合不同任务的bottom layers的outputs
  • 定制共享(Customized Sharing):图1c会显式地将shared parameters和task-specific parameters进行分离,以避免内在冲突和negative transfer。对比起single-task模型,customized sharing会添加一个shared bottom layer来抽取sharing信息,并将shared bottom layer与task-specific layer的concatenation后feed给相应task的tower layer。

图3展示了实验结果,其中右上角的泡泡表示具有更好的效果,具有更高的AUC和更低的MSE。AUC或MSE具有0.1%的提升,会对整个系统的在线指标具有极大提升【4,6,14】。可以看到硬参数共享(hard parameter sharing)和cross-stitch network会存在极大的negative transfer问题,在VTR上效果最差。通过独创的共享机制来捕获非对称关系,asymmetric sharing可以达到在VTR上的极大提升,但在VCR上出现极大降低,这与sluice network类似。由于shared layers和task-specific layers的显式分隔,customized sharing可以在single-task模型上提升VCR,而在VTR上只有轻微的损耗。MMOE则会在两个任务上同时对single-task进行提升,但VCR的提升只有:+0.0001. 尽管这些模型会在这两个任务上具有不同的学习效率(learning efficiency),我们可以很明确地观察到seesaw效应:一个任务的提升会导致其它任务的效果退化,因为没有一个baseline MTL模型依完全落在第二象限。在公开的benchmark datasets上的具有SOTA模型的实验,也会具有明显的seesaw效应。细节会在第5.2节中提供。

图片名称

图3 在复杂任务相关性下的Seesaw现象

如前所示,VCR和VRT间的相关模式是很复杂并且样本依赖(sample depedent)的。特别的,VCR和CTR间存在一些偏序关系(partially ordered relations),不同样本表现出不同的相关度。因而:

  • cross-stitch和sluice network会为所有样本使用相同的static weights来共享representations,不能捕获样本依赖,存在seesaw效应。
  • MMOE通过使用gates获得来基于input的fusing weights,在一定程度上会处理任务差异(sample difference)和样本差异(sample difference),这会胜过其它baseline MTL模型。然而,在MMOE中experts会在所有tasks间共享,没有差异,这不能捕获复杂任务相关性,这会对某些tasks带来有害噪音。再者,MMOE会忽略在不同experts间的交叉,这会进一步限制joint optimization的效果。

除了VCR和VTR外,在工业界推荐应用中有许多复杂相关任务,因为人类行为经常微妙且复杂,例如:在在线广告和电商平台中的CTR预测和CVR预测。因此,一个强大的网络需要考虑在experts间的差异(differentiation)和交叉(interactions),这对于消除由复杂任务相关性带来的seesaw效应来说很重要。

在本paper中,我们提出了一个PLE(Progressive Layered Extraction)模型来解决seesaw效应和negative transfer。PLE的关键思想是:

  • 首先,它会显示地将shared experts和task-specific experts进行分离,来避免有害的参数干扰。
  • 第二,multi-level experts和gating networks会被引入来对多个抽象表示(abstract representations)进行融合。
  • 最后,它会采用一个新的progressive separation routing来建模在experts间的交互,并达到在复杂相关任务间更高效的知识迁移。

如图3所示,PLE在多个任务上要比MMOE取得更好的提升。结构设计和实验的细节在第4节。

4.PLE(PROGRESSIVE LAYERED EXTRACTION)

为了解决seesaw效应和negative transfer,我们提出了一个Progressive Layered Extraction(PLE)模型,它使用一个新的sharing结构设计。

  • 首先,一个CGC(Customized Gate Control)模型显式地对提出的shared experts和specific experts进行分离
  • 第二,CGC被扩展到一个通用的PLE模型中,它使用multi-level gating networks和progressive separation routing来进行更高效的信息共享和joint learning。
  • 最终,对于MTL模型来说,loss function会被最优化以便更好地处理joint training的实际挑战。

4.1 CGC(customized Gate Control)

受customized sharing的启发,它在single-task上,通过显式分离shared layers和task-specific layers来达到与single-task模型相似的效果。如图4所示,在bottom有一些experts modules,在顶部有一些task-specific tower networks上。每个expert module由多个称为experts的子网络(sub-networks),在每个module中的experts的数目是一个用来tune的超参数。相似的,一个tower network也是一个multi-layer network,宽和高是超参数。特别的,在CGC中的shared experts负责学习共享模式(shared patterns),而对于specific tasks的模式会由task-specific experts来抽取。每个tower network会从shared experts和它自己的task-specific experts中吸收知识,这意味着shared experts的参数会被所有任务影响,而task-specific experts的参数具受相应specific task的影响。

图片名称

图4 CGC模型(Customized Gate Control)

在CGC中,对于选择性融合(selective fusion),shared experts和task-specifc experts通过一个gating network进行组合。如图4所示,gating network的结构是基于一个使用softmax作为activation function、input会作为selector的single-layer feedforward network,用来计算选中vectors的weighted sum,例如:experts的outputs。更精准的,task k的gating network的output可以公式化为:

\[g^k(x)= w^k(x) S^k(x)\]

…(2)

其中:

  • x是input representation
  • k表示task k
  • \(w^k(x)\)是一个weighting function,通过线性变换和一个Softmax layer来计算task k的weight vector:
\[w^k(x) = Softmax(W_g^k x)\]

…(3)

其中:

  • \(W_g^k \in R^{(m_k + m_s) \times d}\)是参数矩阵
  • \(m_s\)和\(m_k\)分别是shared experts以及第k个specific experts的数目,d是input representation的维度。
  • \(S^k(x)\)是一个selected matrix,它由所有selected vectors组成,包括shared experts和第k个specific experts:
\[S^k(x) = [E_{(k,1)}^T, E_{(k,2)}^T, \cdots, E_{(k,m_k)}^T, E_{(s,1)}^T, E_{(s,2)}^T, \cdots, E_{(s,m_s)}^T ]^T\]

…(4)

最后,第k个任务的prediction是:

\[y^k(x) = t^k (g^k(x))\]

…(5)

其中:

  • 第\(t^k\)表示任务k的tower network。

对比起MMOE,CGC会移除在一个任务的tower network与其它任务的task-specific experts间connections,允许不同类型的experts来集中高效学习不同的知识,无需干扰。结合gating networks的好处,来基于input动态融合representations,CGC会达到在tasks间更灵活的balance,更好处理任务冲突和样本依赖相关性。

4.2 PLE(Progressive Layered Extraction)

CGC会显示对task-specific和shared components进行分离。然而,在deep MTL中,learning会随着越来越深的语义逐渐走形,通常对于立即表示(intermediate representations)是否应该被看成是shared或task-specific来说是不清晰的。为了解决该问题,我们使用PLE将CGC进行泛化。如图5所示,在PLE中有multi-level extraction networks来抽取higher-level的共享信息。除了对task-specific experts的gates外,extraction network也会为shared experts使用一个gating network来组合来自该layer的所有experts的知识。因而,在PLE中不同任务的参数在像CGC这样的early layer上不会完全分离,但会在upper layers上会逐渐分离。在higher-level extraction network中的gating networks会采用gates的融合结果作为selector,而非raw input,这是因为它可以提供更好的信息来选择从更高level experts中抽取到的知识。

图片名称

图5 Progressive Layered Extraction (PLE) Model

在PLE中weighting function、selected matrix、以及gating network的计算与CGC中的相同。特别的,任务k在第j个extraction network中的gating network的公式为:

\[g^{k,j}(x) = w^{k,j}(g^{k,j-1}(x))S^{k,j}(x)\]

…(6)

其中:

  • \(w^{k,j}\):是task k的weight function,它使用\(g^{k,j-1}\)作为input,
  • \(S^{k,j}\):是选中task k在第j个extraction network的matrix。

值得注意的是,在PLE的shared module的selected matrix与task-specific modules非常不一样,因为它在该layer中包括了所有shared experts和task-specific experts。

在计算所有gating networks和experts后,我们可以最终获得在task k的prediction:

\[y^k(x) = t^k(g^{k,N}(x))\]

…(7)

有了multi-level experts和gating networks,PLE可以为每个task抽取和组合更深的语义表示来提升泛化性(generalization)。如图1所示,对于MMOE来说,routing策略是完全连接的,对于CGC来说则是早期分离的(early separation)。不同的是,PLE会采用一个progressive separation routing来从所有更低layer的experts抽取信息,抽到更高level的shared knowledge,并渐近地将task-specific参数分离出来。progressive separation的过程与此类似:从化学药品中为期望产品抽取化合物的抽取过程。在PLE的知识抽取和转换的过程期间,更低level的表示会jointly extracted/aggregated,并在更高level的shared experts上进行routed,获取共享知识和渐进地分发给特定的tower layers,以便达到更高效和灵活的joint representation learning和sharing。尽管MMOE的full connection routing看起来像是CGC和PLE的一个通用设计,在第5.3节中的实际研究表明,MMOE不能收敛到CGC或PLE的结构,尽管存在可能性。

4.3 MTL的joint loss optimization

当设计高效的网络结构时,我们接着关注于以end-to-end的方式联合训练task-specific和shared layers,一种常用的joint loss公式是:对每个单独的task的losses的加权求和:

\[L(\theta_1, \cdots, \theta_K, \theta_s) = \sum\limits_{k=1}^K w_k L_k(\theta_k, \theta_s)\]

…(8)

其中:

  • \(\theta_s\)表示共享参数,K表示任务数
  • \(L_k, w_k, \theta_k\):分别是任务k的loss function、loss weight、task-specific parameters

然而,由于存在许多问题,在实际中对MTL models做出joint optimization很具挑战。在本paper中,我们会对joint loss function进行最优化来解决在真实推荐系统中遇到的两个问题。

第一个问题是:由于顺序的用户动作产生的不同类的样本空间(heterogeneous sample space)。例如,用户在点击一个item后只会分享或评论。这会导致如图6所示的不同样本空间。

图片名称

图6 不同任务的training space

为了联合训练这些任务,我们会考虑所有任务的样本空间的联合(union)作为整个训练集,而当计算每个任务的loss时,会忽略在它之外样本空间的样本:

\[L_k(\theta_k, \theta_s) = \frac{1}{\sum_i \sigma_k^i} \sum\limits_i \sigma_k^i loss_k(\hat{y}_k^i (\theta_k, \theta_s), y_k^i))\]

…(9)

其中:

  • \(loss_k\)是任务k基于prediction \(\hat{y}_k^i\)、以及ground truth \(y_k^i\)的样本i的的loss
  • \(\sigma_k^i \in \lbrace 0, 1 \rbrace\)表示的是:样本i是否位于task k的样本空间

第二个问题是:一个MTL模型的效果对于在训练过程中loss weight的选择是否敏感【9】,因为它决定了在joint loss上每个任务的相对重要性。实际上,这会观察到:每个任务在不同的训练过程会具有不同的重要性。因此,我们会为每个task考虑loss weight作为一个动态权重(dynamic weight),而非一个static权重。首先,我们会为task k设置一个初始的loss weight \(w_{k,0}\),接着在每个step后基于updating ratio \(\gamma_k\)更新它的loss weight:

\[w_k^{(t)} = w_{k,0} \times \gamma_k^t\]

…(10)

其中:

  • t表示training epoch
  • \(w_{k,0}\)和\(\gamma_k\)是模型的超参数

5.实验

在这部分,会在腾讯大规模推荐系统以及公开benchmark datasets上执行大量离线和在线实验来评估提出模型的有效性。我们也在所有gate-based MTL模型上分析了expert的使用,以便理解gating networks的工作机制,并验证CGC和PLE的结构。

5.1 在视频推荐上的评估

在本节中,我们会使用复杂和正常相关的任务组作为在视频推荐系统上的多个任务,来评估提出模型的效果。

5.1.1 Dataset

我们通过在腾讯新闻从视频推荐系统上抽样用户日志,收集了一个工业界dataset,它具有8天连续。它具有4.69亿用户,268w个视频,并在数据集上具有9.95亿样本。如前所述,VCR、CTR、VTR、SHR(share rate)、CMR(comment rate)是在该dataset中建模的任务。

5.1.2 Baseline模型

在该实验中,我们在单任务、asymmetric sharing、customized sharing上对比了CGC和PLE,其中SOTA MTL模型包括:cross-stitch network、sluice network,MMOE。由于multi-level experts会在PLE中共享,我们会将MMOE扩展到ML-MMOE(multi-layer MMOE),如图1所示,通过添加multi-level experts来进行公平对比。在ML-MMOE中,更高level的experts会对来自更低level的experts的representations进行组合,所有gating networks会共享相同的selector。

5.1.3 实验setup

在该实验中,VCR prediction是一个regression task,它使用MSE loss进行训练和评估;在其它动作上的任务建模都是二分类任务,它们使用cross-entropy loss进行训练,并使用AUC进行评估。在首个7天的样本会用来进行训练,其余样本是test set。对于在MTL模型和single-task模型中,对于每个task,我们采用一个3层的MLP network,它使用RELU activation和hidden layer size为[256,128,64]。对于MTL模型,我们实现了expert作为一个single-layer network,并对以下的model-specific超参数进行调参:shared layers的数目、在hard parameter sharing和cross-stitch network上的cross-stitch units,在所有gate-based模型中的experts数目。对于公平比较,我们实现了所有multi-level MTL模型作为two-level models来保持相同深度的模型。

图片名称

表1

基于公平的评估指标(比如:AUC和MSE),对于一个特定任务,我们定义了一个MTL gain的指标来量化评估多任务学习要比单任务模型的好处。如等式11所示,对于一个给定的task group以及一个MTL模型q,在任务A上q的MTL gain被定义成MTL模型q对比相同网络结构和训练样本的single-task model的效果提升。

\[MTL gain = f(n) = \begin{cases} M_{MTL} - M_{single}, & \text{M is a positive metric} \\ M_{single} - M_{MTL}, & \text{M is a negative metric} \end{cases}\]

…(11)

5.1.4 复杂相关性的任务评估

为了更好捕获主要的在线engagement metrics,例如:view count和watch time,我们首先在VCR/VTR的任务组上开展实验。表1展示了实验结果,我们会以粗体表示最好得分,效果下降则以灰色。在VTR上,CGC和PLE可以极大胜过所有其它baseline模型。由于在VTR和VCR间复杂相关系,我们可以很明显地观察到seesaw效应,它使用zigzag灰色分布,一些模型提升VCR但会伤害VTR;而一些则提升VTR但伤害VCR。特别的,MMOE会同时提升在single-task上的任务,但这些提升是不大的,而ML-MMOE则会提升VTR但会伤害VCR。对比MMOE和ML-MMOE,CGC会提升VTR更多,提升VCR很少。最后,PLE会收全省到相同的一步,并在上述模型上达到极大的提升,它具有最好的VCR MSE,以及其中一个最好的VTR AUCs。

图片名称

表2

5.1.5 在正常相关性的任务上评估

由于CGC和PLE在处理真实复杂相关性的任务上表现很好,我们会进一步在具有正常相关性模式的CTR/VCR的一个通用任务组上进行验证。由于CTR和VCR的目标是建模不同的用户动作,在它们间的相关性更简单些。如表2所示,事实上,除了cross-stitch之外的所有模型,在两种任务上都表现出正向的MTL gain,这表明:在CTR和VCR间的相关性模式并不复杂,不会具有seesaw效应。在该场景中,CGC和PLE仍能在两种任务上极大地胜过所有SOTA模型,并具有显著的MTL gain,这验证了CGC和PLE的收益是通用的,可以有效达到更好的共享学习,并能在多个任务场景下一致提供增量的效果提升,不仅仅是那些具有复杂相关性的任务,同时也包括普通相关的任务。

图片名称

表3

5.1.6 online A/B testing

在VTR和VCR的任务组上我们进行仔细的online A/B test,达4周。我们在c++深度学习框架上实现了所有MTL模型,随机分配用户给不同的buckets,并在每个分桶上部署一个模型。最后的ranking score通过多个predicted scores的组合函数来获得(如第3节所示)。表3展示了MTL models在single-task模型上的提升(total view count per user/ total watch time per user)。它表明:对比baseline models,CGC和PLE能在online metrics上能达到极大的提升。另外,在所有在线指标上,PLE都要极大好于CGC,这表明:在MTL中,AUC或MSE上的小提升可以为在线metrics带来极大提升。PLE已经部署在tencent平台上。

5.1.7 多任务上的评估

最后,我们在多个挑战性场景上探索了CGC和PLE的可扩展性。除了VTR和VCR外,我们会引入SHR(share rate)和CMR(comment rate)来建模user feedback actions。可以很灵活地扩展CGC和PLE到多任务cases中,只要为每个task添加一个task-specific expert module、gating network、tower network即可。如表4所示,对比起single-task model,CGC和PLE几乎在所有task group上会达到极大提升。这表明CGC和PLE仍展示了促进任务协同的好处,对于超过2个任务的通用场景,仍可以阻止negative transfer和seesaw效应。PLE的效果在所有cases上都要极大好于CGC。因此,PLE展示了在跨不同sizes的task groups上提升shared learning efficiency的更强的收益。

图片名称

表4

图片名称

图7

5.2 public datasets上的评估

5.3 Expert使用分析

为了探索experts是如何通过不同gates间进行聚合的,我们在工业界dataset上的VTR/VCR task group上,研究了所有gate-based models的expert utilization。出于简洁性和公平对比,我们会考虑将每个expert看成是一个single-layer network,在CGC和PLE的每个expert module上保持一个expert,而在MMOE和ML-MMOE的每个layer则会保持三个experts。图8展示了在所有testing data上每个gate使用的experts的权重分布,其中:bars的高度以及垂直short lines分别表示weights的均值和标准差。它表明:VTR和VCR在CGC中会使用极不同的weights来组合experts,而在MMOE中则使用非常相似的weights,这表明:CGC的良好设计结构可以帮助达到在不同experts间更好的区分度。另外,在MMOE和ML-MMOE中所有experts都有非零权重,这进一步表明:对于MMOE和ML-MMOE来说,在没有先验知识的情况下,很难去收敛CGC和PLE的结构,尽管存在理论可能性。对比起CGC,在PLE中的shard experts对tower networks的input具有更大的影响,特别是在VTR任务上。实际上,PLE的效果要好于CGC,这表明在更高level上共享更深的representations的价值。换句话说,需要在任务间共享的更深语义表示,因此 一个progressive separation routing可以提供一个更好的joint routing和learning scheme。

图片名称

图8

6.

参考

youku在《Deep Time-Stream Framework for Click-Through Rate Prediction by Tracking Interest Evolution》提出了一个兴趣演进的框架。

摘要

CTR预测在像视频推荐等工业应用中是一个必要的任务。最近,deep learning模型被用来学习用户的整体兴趣表示(overall interests),然而会忽略兴趣可能会随时间动态变化的事实。我们认为:有必要在CTR模型中考虑上连续时间信息(continuous-time information)来从丰富的历史行为中跟踪用户兴趣。在本paper中,我们提出了一个新的Deep Time-Stream framework(DTS),它会通过一个常微分方程(ODE: ordinary differential equation)来引入time information。DTS会使用一个neural network来持续建模兴趣的演化,它可以来解决用户兴趣会随它们的历史行为动态表征带来的挑战。另外,我们的框架可以通过利用额外的Time-Stream Module,无缝地应用到任意deep CTR模型上,对原始CTR模型不会做任何变改。在公开数据集的实验、以及工业数据集的表现看,可以达到很好的效果。

介绍

CTR预测目标是估计一个用户在一个给定item上的概率,在学习界和工业界这是一个备受关注的问题。以在线视频为例,一个CTR算法会提供给用户数千个不同类目的视频,因此,精准捕获用户的兴趣很重要,可以提升用户的留存和收益。

为了达到该目标,基于用户历史点击进行建模用户兴趣会影响用户偏好。为了抽取用户兴趣的表示,提出了许多传统模型、以及deep模型。尽管这些模型在建模用户整体兴趣时达到了极大成功,它们会忽略用户兴趣的动态变化。为了进行一个更精准的结果,RNN-based方法提出捕获在user-item interaction序列中的依赖。然而,这些方法只考虑用户行为的顺序,忽略在行为间的时间间隔(time interval),它对于预测用户行为是很重要的信息。在图1中,作为示例,Mike通常会在白天观看关于Donald Trump的视频,在晚上享受Taylor Swift的音乐视频,根据他的行为的timestamps。因而,将Mike的playlog看成一个点击视频序列,会忽略他的潜在兴趣随时间的变化。不幸的是,现有的CTR模型不能建模在连续时间上的模式,因为大多数模型不知道时间间隔(time interval)。

图片名称

图1

另外,在inference阶段,只预测下一次点击(next click)而不考虑执行action时的时间会有问题。将用户行为的时间合并进去,比如:建模在行为间的逝去时间间隔(elapsed time interval)的效果,这对于精准建模用户兴趣非常重要。例如,在图1中,如果Mike在9 p.m.(下午)观看了Taylor的视频,很可能他会在几小时内观看另一个Taylor的视频(而非Donald),而在半天后观看Donald的视频概率会更大些。然而,传统方式总是在任意时刻上获得相同的精准预测。

基于前面的观察,我们认为在CTR模型上考虑上time-stream信息(比如:连续时间信息:constinous-time info)很重要。因此,我们提出了一种新的Deep Time-Stream framework(DTS),它会将time-stream信息引入到CTR模型中。因此,我们提出了一种新的Deep Time-Stream框架(DTS)。Time-stream信息可以通过常微分方程(ODE)进行公式化,它指的是一个描述在依赖变量的导数和独立变量间的关系的函数。特别的,DTS会使用ODE来建模用户潜在兴趣的演化,它会将用户在兴趣状态随时间进行求导参数化,比如:ODE的解会描述用户兴趣的动态演化。另外,DTS会具有以下能力:统一在time-stream(通过点击的timestamp进行)上的用户历史行为(已点击什么)和target items(将点击什么),因而根据给定的下一时间(next time)做出inference,并提供一个更加精准的CTR预测。为了达到最小的模型变更代价(model-altering cost),ODE会被打包成一个Time-Stream Module,它可以应用到任意的deep CTR模型上。该paper的贡献如下:

  • 提出了一个新的DTS框架,会将用户的latent interest evolution建模成一个ODE,它会极大提升模型的表达能力,可以更好地捕获用户兴趣的演进
  • DTS可以在任意时间生成用户的feature,因而对于适配评估很灵活
  • Time-Stream Module可以轻易地转成已存在的CTR模型,无需对原始框架做变化

1.背景

在机器学习中,有效管理一类hypotheis(线性或非线性),可以表示data patterns。ODEs可以被用于一个hypothesis。考虑在\(R^d\)中的微分方程:\(\frac{dz}{dt} = f(z, t), z(0)=z_0\),z在time t上的解被定义成\(z(t)\)。在监督学习中的ODE方法背后的基本思想是,调整f,使得z(t)可以生成拟合该数据所需的非线性函数。

实际上,Chen 2018的DNN被看成是discrete ODE,他们的迭代更新可以被看成是关于一个连续转换(continuous transformation)的Euler discretization。在另一方面,neural ODEs是一组DNNs模型的family,可以被解释成一个关于ResNets或RNN的continous等价。为了观察该现象,我们会将在ResNets或RNNs中的一个layer t到t+1的hidden state看transformation看成是:

\[h_{t+1} = h_t + f_t(h_t)\]

…(1)

在ResNets中,\(h_t \in R^d\)是在layer t的hidden state;\(f_t: R^d \rightarrow R^d\)是一个差值函数(differentiable function),它会保留\(h_t\)的维度。在RNNs中,\(h_t \in R^d\)是第t个RNN cell上的hidden state,它更新时会抛出一个函数\(f_t: R^d \rightarrow R^d\)。\(h_{t+1} - h_t\)的差可以看成是一个在timestep \(\Delta t = 1\)上的导数\(h'(t)\)的离散化(discretization)。假设:\(\Delta t \rightarrow 0\),我们可以看到:动态的hidden state可以通过一个ODE进行参数化:

\[\underset{\Delta t \rightarrow 0}{limit} \frac{h_{t+\Delta t} - h_t}}{\Delta t} = f(h, t)\]

z(t)的解或h(t)可以使用一个ODE solver进行求解,会使用许多复杂数值方法来选择:比如:linear multi-step方法、RUnge-kutta methods或adaptive time-stepping。以上方法在deep learning中很有用,因为他们可以自适应地选择network的layers。这里要注意的不是solver本身,而是数据的表示。因此我们将solver看成是一个黑盒的differential equation solver:

\[z_{t_1}, ..., z_{t_N} = ODE_{solver}( z_{t_0}, f, \theta_f, t_1, \cdots, t_N)\]

…(2)

其中,\(\theta_f\)是关于f的参数。

在下一节中,我们会展示,ODEs是如何被用来建模用户兴趣演化的动态性的,以及如何让ODEs在训练时能够稳定。

2.Deep Time-Stream Framework

在本节中,我们会描述DTS。首先将CTR公式化成一个二分类问题。给定数据样本:

\[x = (x^U, x^V, x^P) \in X\]

其中: \((x^U, x^V, x^P)\)分别表示来自User behavior、target Video以及user Profiles这些不同字段的one-hot vectors的concatenate。

再者,每个字段包含了一个关于点击行为的列表:

\[x^U = [(v_1, c_1); (v_2, c_2); \cdots; (v_N, c_N)]\]

其中:

  • \(x_i^U = (v_i, c_i)\)表示发生在time \(t_i\)的第i个行为上
  • video \(v_i\)以及相应的category \(c_i\),其中N是user的历史行为的数目;
  • \(x^V\)表示target video和它的category \(x^V = (v_{N+1}, c_{N+1})\),等式的成立是因为:target video会随着第(N+1)的用户点击而发生,potential click的预测时间被看成是next time \(t_{N+1}\)。

因而,我们会统一在time stream上的用户历史行为和target video,通过timestamps来表示t:

\[t = [t_1, t_2, \cdots, t_N, t_{N+1}]\]

User Profile \(x^P\)包含了有用的profile信息,比如:gender、age等。Label \(y \in Y\)表示用户是否点击是指定的视频,\(y=1\)表示点击,\(y=0\)表示未点击。CTR的目标是学习一个从X到Y的mapping \(h \in H\),其中,\(H\)表示hypothesis space,\(h: X \rightarrow Y\)表示预测用户是否将点击该视频。预测函数h可以通过以下objective function进行最小化学到:

\[\underset{h}{min} \sum\limits_{(x,y) \in X \times Y} L(h(x;t), y)\]

…(3)

其中,L是epmirical loss,它会在以下子部分引入。

2.1 通用框架

我们提出的框架DTS可以看成是一个Base-Model加上Time-Stream Module,如图2所示。BaseModel被看成是一个已经存在的deep CTR模型,比如:DNN,PNN,DIN等。除了base model外,Time-Stream Module会收集所有events的timestamps,包括:一个用户在过去的历史点击时间、以及在预测时的用户潜在点击时间。注意,后半部分在已存在的CTR模型中会被忽略。另外,Time-Stream Module会通过一个ODE来跟踪潜在兴趣演进,来计算一个增强型输入(enhanced input),它会引入continuous-time信息,并保留base inputs的维度。因此,在DTS框架中,任意的deep CTR模型可以被用于BaseModel,无需做任何更改。对比BaseModel,它会输入在用户点击item事件上的一个点击概率,DTS可以通过在给定时间上用户点击item事件的点击概率,从而对output做出提升。

图片名称

图2

在面,我们会介绍BaseModel,并引入Time-Stream Module来捕获兴趣,并建模兴趣演进。

2.2 BaseModel

2.3 Time-Stream Module

用户兴趣会随时间动态变化。BaseModel会通过一个在点击item feature上的pooling操作获取一个表示向量,但会忽略时间信息。动态pattern的缺失会限制用户行为特征的能力,这对于建模用户兴趣很重要,因为用户点击items是一个用户在对应时间上对兴趣的表示。对于BaseModel,如果对continous pattern的能力缺失会导致在建模动态用户兴趣时的inaccuracy。

是否存在优雅的方式来表示一个用户的real-time兴趣,并建模动态兴趣演化的pattern?continous-time evolving激发我们设计了一个称为Time-Stream Framework的方法,它会利用ODE来建模动态兴趣。ODE在物理、生物、化学、工程和电子领域被广泛应用,如果ODE可解,会给出一个初始点(initial point),它可以决定所有它的future positions,这些points被称为“trajectory或orbit”。本文中我们使用ODEs作为hypothesis class,其中trajectory表示一个潜在的兴趣演化轨迹(lantent interst evolution trace)。在等式1中,ODE可以是通用的RNNs形式,RNNs可以被认为是continuous ODE的一个离散版本。continous ODE具有一些优点,比如:评估很灵活,相应的可以自适应地选择RNN的长度。另外,我们也可以使用高级数值方法来训练,比如:multi-grid方法、parallel shooting方法。图3展示了Time-Stream Module的架构。

图片名称

图3 Time-Stream Module的结构。DTS会保持BaseModel的基本框架,可以继承原先的效果。另外,DTS会扩展Time-Stream module,将latent time state \(z_t\)建模成一个ODE。Decoder \(\phi\)会将\(z_t\)映射到embedded space,并混合上embedding来增强embedding的quality。Guide loss被设计用来帮助hidden state的收敛

为了通过ODE的一个latent trajectory来表示兴趣演进,会使用一个可微函数,\(\frac{d z(t)}{dt} = f(z(t), t; \theta_f)\)来表示兴趣演化率,其中:\(\theta_f\)是关于f的参数。因此,给定一个initial state \(z_{t_0}\),ODE的trajectory可以使用等式(2)提到的一个solver来进行求解:

\[z_{t_1}, \cdots, z_{t_N}, z_{t_{N+1}} = ODE_{solver}(z_{t_0}, f, \theta_f, t_1, \cdots, t_N, t_{N+1})\]

…(5)

其中,\(z_{t_1}, \cdots, z_{t_N}, z_{t_{N+1}}\)是ODE的解,它可以描述dynamics f在每个观察时间\(t_1, \cdots, t_N, t_{N+1}\)的latent state。由于相似的人可能会有相近的兴趣兴趣演进pattern,我们会构建一个mapping g,它可以将user profile embedding \(e^P\)转化成latent time-stream space来获取initial value:\(z_{t_0} = g(e^P; \theta_g)\),mapping g是一个具有参数\(\theta_g\)的线性转换,它会当成是一个将profile embedding space转化latent time-stream space的encoder。

另一方面,\(\phi\)是一个decoder,它可以将latent time-stream feature \(z_{t_i}\)转成video embedding-spaned space。\(\phi(z_{t_i}; \theta_{\phi}\)是behavior feature的adujstment或supplementary,它可以携带额外的行为演化patterns。 对于user behavior feature的adujstment,我们有:\(\bar{e_i} = e_i + \phi(z_{t_i}; \theta_{\phi})\),其中:\(i=1, 2, \cdots, N\)。fuse operation可以被设置成像concatenation的operation,但在本工作中,add操作会被用来保证adujstment以及original feature具有相同贡献。对于target video feature,我们有:\(\bar{e}^V = e_{N+1} + \phi(z_{t_{N+1}; \theta_\phi)\)

增强行为特征(enriched behavior feature) \(\bar{e}^U = (\bar{e}_1, \bar{e}_2, \cdots, \bar{e}_N)\),video vector \(\bar{e}^V\)和profile feature \(e^P\)会接着被发送到Base CTR模型的其余部分。

使用ODE作为一个generative model,允许我们在任意时间做出预测,不管是过去或是将来,因为在timeline上是连续的。ODE的output可以通过一个黑盒的差分等式solver进行计算,它会来评估hidden unit dynamics是否需要来决定有期望的accuracy的solution。

function f的选择

latent function f需要被指定,使用不同类型的函数来满足不同需求。接着,我们会引入一些方法来利用不同类型的ODE function f来建模intrest evolution的过程。

Simple form

function f的最简单形式是,f是一个关于独立变量t的函数:

\[f(z, t) = \frac{dz}{dt} = A(t), z(t)=\int_{t_0}^t A(\lambda) d{\lambda} +C\]

…(6)

其中,A是control function,C是一个constant。该类型的问题可以通过直接计算z(t)具有一个解析解。如果这样,数值形求解ODE不存在额外开销。一个特例是具有常系数的linear differential equation \(f(z, t) = A(t) = \alpha\),它意味着在rate \(\alpha\)时有latent state discount。因此,对于所有的t会有\(z_{t_i} = \alpha (t_i -t_0) + z_{t_0}\)。这里的看法是,f的单调trajectory会模拟用户兴趣的特性:主要被最近兴趣所影响,因此会减小较早兴趣的影响,并增加用户最近行为的影响。特例相当简单,但在实验中达到很好的效果。

复杂形式

f的简单形式不能表达用户diverse的time-searies的pattern。为了解决该限制,另一个选择是:使用一个neural network参数化dynamics f的导数,它可以极大提升模型的表示能力。在本paper中,会使用一个带sogmoid activation unit的双层neural network:\(f(z) = \sigmoid(w_2 \cdot \sigmoid(w_1 \cdot z + b_1) + b_2)\)

其中:\(w_1, w_2, b_1, b_2\)是线性参数,\(\sigmoid(\cdot)\)是activate unit。在该形式下的f很难获得一个解析解 ,在\(z_{t_1}, \cdots, z_{t_N}, z_{t_{N+1}}\)下的解可以使用一个数值形ODE solver来计算。

Guide Loss

前面的函数在单次调用ODE toolbox上可以被求解,现代ODE solvers会在approx error的增长上会有保障。然而我们有以下需要注意的事项:

1) 当function形式变得复杂时,ODE的行为可能会遇到expolodes的情形,收敛到稳态或者展示混乱行为。这可以解释一些难点:比如:在DNN训练中遇到的梯度vanishing或explosion。

2) 另一方面,由于target item的行为会由用户兴趣演进所触发,该label只表示\(z_{t_{N+1}}\)的最后点击行为,而历史state \(z_t\)不会获得合适的监督(supervision)。

为了缓解这些问题,我们提出了guide loss,它会使用behavior embedding \(e_i\)来监督latent function的学习。为了这样做,受word2vec的启发,我们构建了一个小网络,它会将decoded hidden state \(\phi(z_{t_i})\)推至更接近下一行为\(e_{i+1}\),而非一个随机负采样实例\(e^{rand}\)。Guide loss可以公式化为:

\[L_{guide}(p,v,n)=- \frac{1}{N} \sum_i (v_i \cdot p_i + v_i \cdot n_i - log(\frac{v_i \cdot p_i}{v_i \cdot n_i})) \\ p_i = FC(e_{i+1}), v_i = FC(\phi(z_{t_i})), n_i = FC(e^{rand})\]

其中,FC(x)是一个将PRelu作为activation的fully connected layer。模型的整个loss如下:

\[L = L_{target} + \lambda L_{guide}\]

…(7)

其中,L是overall loss function,\(L_{target}\)由等式(4)引入,\(\lambda\)是hyper-parameter,它会对兴趣表示和CTR预测进行balance。

整体上,guide loss的引入有一些优点:

  • 1) 从兴趣学习的角度,guide loss的引入会帮助ODE的每个hidden state更丰富地表示兴趣
  • 2) 对于ODE的最优化,当ODE会建模长历史行为序列时,guide loss会减小BP的难度
  • 3) 对于embedding layer的学习,Guide loss会给出更多语义信息,这会产生一个更好的embedding matrix

training和inference

在训练阶段,我们的模型会具备重新加载BaseModel参数的能力。接着,所有weights会进行finetuned来获得一个快速收敛。我们会通过初始化f的参数以及初始值为0来达到一个safe-start,比如:ODE的trajectory是一个0常数。这样,在训练的开始,整个模型会与original CTR base model保持相同。

在inference阶段,我们可以在任意的推荐时间\(t_{N+1}\)来预测用户兴趣演进,因为我们会利用ODE solver来在下一时间\(t_{N+1}\)来集成f的函数。在工业界,DTS会更有效:当预测在\(t_{N+1}, t_{N+2}, t_{N+n}\)的多个CTR时,没有必要从头计算hidden trajectory。很容易集成从\(t_N\)到\(t_{N+n}\)的function,它们的计算很cheap。

4.实验

参考