Fork me on GitHub

多目标排序模型在腾讯 QQ 看点推荐系统中的应用实践

作者:zhongzhao,腾讯 PCG 应用研究员

在推荐系统中,最常用的排序模型是以用户点击为目标的CTR预估模型,它没有考虑用户点击后的消费深度,也没有考虑用户的多种互动行为带来的生态方面的收益。为了取得CTR以外的更多收益,QQ看点团队在深度学习框架下,对推荐系统中的多目标建模做了一系列的研究和实践,在图文场景下完成了技术落地,实现了用户阅读时长的显著提升,并在内容生态和账号生态上也取得了正向收益。本文将由浅入深,分享腾讯QQ看点图文多目标推荐实践中积累到的经验和方法,供有需要的同学参考。

本文主要分享QQ看点图文推荐场景下,精排多目标建模的方法。全文共三部分,第一部分介绍多目标建模的业务背景,并列出了基于深度学习方法建模多目标的优势。第二部分按照多目标模型在QQ看点图文推荐中迭代演进的四个阶段分别来介绍具体的经验和方法,每一次模型升级都取得了业务指标的显著提升。最后一部分是小结。

1.背景介绍

1.1 多目标模型的业务背景

腾讯QQ看点是一个内置于QQ的信息流产品,它涵盖了图文、短视频、小视频、图集等多种形式的内容,并以个性化的方式展示给用户。其中,个性化推荐系统在QQ看点的整个生态系统中扮演着重要的角色。图1展示了QQ看点的生态系统中各个组成部分之间的关系。首先是平台上所有的内容创作者生产出大量的内容,然后依靠推荐系统,将合适的内容分发给合适的用户。用户对推荐内容产生的点击、互动行为等多种形式的反馈,一方面用于推荐系统的模型训练,另一方面会被内容创作者感知,影响着内容创作者的积极性和创作内容的质量。在这个生态系统中,推荐系统不仅直接影响着内容的分发效率和用户的体验,还会间接影响到内容创作者的创作,对整个生态的发展起着至关重要的作用。

推荐系统中的排序模型最常用的是CTR预估模型,传统的CTR预估模型以点击为目标,只预估文章被用户点击的概率,至于用户点击之后对内容是否满意,CTR预估模型是不管的。在QQ看点图文推荐场景下,用户在主feeds中点击感兴趣的标题,进入详情页看正文,如果文章内容并不是用户真正感兴趣的或者质量不高,用户过不了多久就会退出来,体验自然也不好。这种情况一方面降低了用户对推荐结果的满意度,另一方面产生了一些不好的训练样本,误导模型的训练,导致推荐内容质量降低,影响到内容生态。为了解决这个问题,我们需要把纯点击模型升级为多目标模型,不仅要对点击进行预估,还要对点击之后的消费深度,也就是阅读时长也去建模,把用户真正感到满意的高质量文章推荐给用户。

除了增加时长目标的建模提升用户体验和内容质量外,我们也希望优质内容的创作者能得到更多用户的关注和认可,这样他们就会有更大的动力源源不断地产出优质内容。一般来说,能让用户产生互动行为的文章基本都是优质文章,而用户对文章的各种互动行为同时也是认可内容创作者的最直接体现。推荐模型推荐给用户的文章如果能让用户产生更多这些互动行为,不仅能使用户体验得到提升,优质内容得到更好的分发,而且还能给予内容创作者更大的动力,让他们愿意在这个平台上创作更多优质内容。为了达到这个目的,我们也需要用多目标模型去建模用户点击行为之后的各种互动行为,让推荐系统推荐的文章更容易让用户产生这些互动行为。

因此,建立多目标模型对于提升用户体验、提高优质文章的分发效率、改善内容生态和账号生态,是非常重要和有效的方法。

1.2 基于深度学习的多目标模型

近5年以来,深度学习在推荐领域逐渐发展起来,目前已经取得了比传统模型更好的推荐效果[6-16]。相比XGBoost、LR这些传统模型,深度学习模型有如下的优点:

**(1)更大的模型容量和更高的模型复杂度。**工业级的深度学习推荐模型一般都是在集群上做大规模的分布式训练,这使得深度模型具备足够大的模型容量去学习推荐场景下各种高维稀疏特征及其交叉特征,从而拥有更高的模型复杂度去建模大数据场景下的推荐问题。

**(2)端到端的训练和预测。**对于推荐场景中大量存在的高维度分类变量,深度学习模型通过embedding的方式将其统一转化为低维稠密向量,使得特征学习和分类器学习同时进行,无需为各种分类变量额外学习特征,实现端到端的训练和预测。学到的特征和分类器也会因为更匹配从而会有更好的效果。整个流程下来简洁统一而优雅。

**(3)更灵活的模型设计。**在模型结构和损失函数的定义上,深度学习方法提供了很大的灵活性。算法同学可以根据具体推荐场景设计出特定的模型结构和损失函数,求解交给深度学习平台自动完成。相比XGBoost这种模型结构固定、损失函数无法自定义的传统模型来说,深度学习模型在多目标建模方面有着大得多的优势。

**(4)更好的实时性。**基于深度学习的推荐模型可以在集群上使用流式数据做在线学习和训练,及时捕捉样本分布的变化和学习新item的特征,对推荐内容的准确性和时新性上都会更有优势。

2.图文多目标模型的迭代演进之路

QQ看点团队从开始做多目标模型到现在,已经经历了多次模型的升级换代,期间实践过多种不同的多目标模型。以下将要介绍的是实践过程中有代表性且效果有显著提升的方法,按时间顺序分为四个阶段,每一阶段都是上一阶段的升级。

2.1第一阶段:用加权版的单目标模型实现多目标效果

在图文场景下,我们不仅希望推出去的文章能被用户点击,而且希望用户点击之后能阅读时长尽可能长,要做到这一点,一个最自然的想法就是在用户会点击的文章里面,优先推用户阅读时长长的文章。对应到模型的损失函数上,就是对正样本(点击样本)加权,阅读时长越长的正样本,权重越大。损失函数具体如下:

[公式]

其中[公式]为第[公式]个样本的真实类标(点击为1,曝光未点击为0),[公式]为模型预测的点击概率,[公式]表示权重,负样本的[公式]为1,正样本的[公式]大于1并且是用户阅读文章时长的增函数,[公式]为样本总数。

上述损失函数拟合的目标仍然是点击,但因为用时长对样本加权,模型训练时会更加关注权重高的样本,损失函数的梯度会受到权重高的样本的主导,所以学出来的模型会在预估点击概率大的文章中优先给用户推荐阅读时长更长的文章,从而实现点击和时长两个目标的融合。

对于样本加权方法来说,最关键的是权重函数的选取。我们尝试过的权重函数主要有三类:线性函数,对数函数和幂函数。它们的主要区别在于对时长放缩的程度不同。下面列出了各种常见的权重函数。

样本加权方法的优点是实现简单,见效快。无论是传统的LR、XGBoost模型,还是深度学习CTR模型,都可以很方便地通过这种方法带来CTR以外其他目标的提升。但它的缺点也很明显,权重函数只能改变样本损失的权重,影响的范围十分有限,因此很容易就到了天花板。要想再进一步提升其他目标的效果,就需要在损失函数和模型结构这些方面去做进一步的优化。毫无疑问,深度学习方法在损失函数和模型结构上为我们提供了足够大的灵活性和可优化空间,为我们进一步提升多目标模型的效果提供了强有力的支撑。

2.2 第二阶段:基于deepFM和MMoE的多目标模型

2.2.1 多目标建模常用方法简介

(1)多目标建模经典结构——Share Bottom Model

在基于深度学习的各种多目标建模论文里,通常都会引用和回顾最为经典的Share Bottom模型结构。这种模型结构的特点是所有目标共享同一个输入。图2所示的是推荐场景下的Share Bottom模型结构。这种底层参数共享的方式通常又被称为参数硬共享。这种模型结构由于底层参数被所有目标共享,所以大大降低了过拟合的风险,与此同时,不同目标在学习时也可以通过这些共享的参数进行知识迁移,利用其它目标学习到的知识帮助自己目标的学习。但也正是因为参数的硬共享,限制了各个目标拟合的自由度,影响了拟合的效果。特别是在不同目标之间相关性比较低时,会更容易顾此失彼,难以学好每个目标。
preview

(2)多目标建模的主流结构——MMoE

针对share bottom模型结构的缺点,谷歌在2018提出了Multi-gated Mixture of Expert (MMoE)模型[2],该模型引入了多个专家子网络和门控结构,通过门控用不同的专家组合分别去学习不同的目标,使得各个目标能被更好地学习。下面的图3是MMoE模型结构示意图。

preview

图3(a)所示为MMoE的一个例子,输入向量分别输入到两个专家网络Expert 1和Expert 2中,每个专家是一个可以自定义的子网络,MMoE原文中用的是DNN,DNN的最后一层为专家的输出向量。输入向量和各个专家的输出向量会传入门控,门控的内部结构如图3(b)所示,输入向量首先经过一个MLP,最后一层softmax得到各个专家的权重,然后以此权重对各个专家的输出做一个加权求和,得到该门控下的输出向量。在MMoE中,专家网络是所有目标共享的,每个目标有一个自己的门控,用于确定该目标下各个专家的权重。MMoE中的门控,可以被看成是一个分类器,每个目标的门控会根据当前样本的特征,判别它由哪些专家来拟合会更好,预估出每个专家的权重。相比Share Bottom所有目标共享同一个输入的方法,MMoE不同目标不一样的动态输入为各目标的拟合提供了更大的自由度。

2.2.2 点击+时长两目标模型

在图文排序模型升级为多目标之前,线上的排序模型是基于deepFM的纯CTR预估模型[1],它的模型结构如图4所示。

preview

deepFM模型将输入的id类稀疏特征如用户画像、文章id等先通过embedding layer转化低维稠密的向量,左边的FM子网络用它们计算二阶交叉分数,右边的DNN子网络把它们和其他连续型特征拼接起来输入一个MLP获取其最后一层输出,最后将FM一阶、二阶分数和DNN的最后一层拼接在一起,做一个投影得到最终的打分。

deepFM模型比传统模型XGBoost在排序效果上有了很大提升,为了能充分利用deepFM的优势,我们在deepFM的基础上构建多目标模型。在这一阶段,我们主要是对点击和时长这两个目标建模。我们把deepFM的FM部分保留下来保持不变,把deepFM的DNN部分换成了Share Bottom结构,就得到了图5所示的deepFM+Share Bottom模型,它被用作我们多目标模型的baseline。
preview

类似地,我们把deepFM的DNN部分换成MMoE结构,就得到了图6所示的deepFM+MMoE多目标模型。这两个模型的deep部分最终都会输出两个向量,然后跟FM的一阶和二阶分数拼接在一起,得到两个新的向量,分别用于建模点击目标和时长目标。其中,点击目标的向量投影之后经过sigmoid得到CTR的预估值,时长目标的向量投影之后得到时长的预估值。

preview

我们对比过deepFM+ShareBottom模型和deepFM+MMoE模型的线上效果,后者相对前者在图文总时长指标上会有小幅度的提升。

2.2.3 损失函数

多目标模型的实际效果,跟两个因素紧密相关,一是模型结构,二是损失函数。我们前期主要是做模型结构上的优化,后期主要是做损失函数上的优化。在这一阶段的模型里, deepFM+MMoE模型的点击目标使用二分类交叉熵做损失,点击样本为正类,曝光未点击样本为负类,时长目标使用平方损失对阅读时长做回归,然后把点击目标和时长目标的损失加权求和得到一个总的损失函数,通过优化这个总的损失函数求解出模型参数。总损失函数的表达式如下:

[公式]

其中,[公式]为输入特征,[公式] 为点击目标的类标,点击为1,曝光未点击为0,[公式]为实际阅读时长;[公式]为模型输出的预估点击概率,[公式]为模型输出的预估阅读时长,[公式]为二分类交叉熵损失,[公式]为模型参数,[公式][公式]分别为点击目标和时长目标的权重,[公式]为样本总数。

损失函数存在的问题 上面给出的多目标损失函数虽然很好理解,但是也存在一些问题,如下:

(1)不同目标损失函数量级差异大的问题 二分类交叉熵损失和平方损失在量级上相差比较大,前者在0到1之间,后者在数十到数百,两个目标的损失函数关于相同参数的梯度在量级上的差异可能也会比较大,导致量级小的目标可能没有被优化好。

对于这个问题,我们从两方面做改进,一是通过实验调整两个目标损失函数的权重[公式][公式],以线上指标来评估[公式][公式]的比例是否合适;二是在时长目标中,将拟合时长本身改成拟合时长的某个函数变换(比如平方根),在保持被拟合目标单调性的同时,降低了被拟合目标的量级。 实验表明,经过上述两点改进后,离线训练的指标会更好更稳定,线上的时长指标的提升幅度也会更大。

(2)对于曝光未点击样本的时长,是否要当成0来拟合

对于时长目标,点击样本的时长是一个确定的大于0的数,但是曝光未点击样本的时长是不确定的,用户不点击某篇文章,可能是不喜欢,也可能是喜欢但是由于其它原因(比如时间不够)没有点击。因此,对于曝光未点击样本,无论是把时长当成是0来拟合还是不拟合,都不合理。

对于这个问题,可以分别尝试当成0来拟合和不拟合这两种方案,然后看线上指标哪个好就采用哪个。从其他团队分享的经验来看,有的团队是当0来拟合更好,有的团队是不拟合更好,不同场景的结论不一样,所以最好就是两种方案都试一下,然后选那个适合自己场景的方案。

(3)没有对两个目标之间的关系建模 点击和时长这两个目标之间是有依赖关系的,有点击才会有时长,没点击就没有时长。在上述的损失函数中,点击和时长的损失函数虽然底层共享了参数和子网络,但在拟合目标时是各自独立拟合自己目标的,并没有把点击和时长之间的依赖关系通过损失函数建模起来。

实际上,之所以会出现(2)中提到的问题,从本质上说就是因为缺乏必要的对点击和时长之间依赖关系的建模而导致的。 解决这个问题的根本方法就是设计新的损失函数,把时长对点击的依赖关系考虑进损失函数里。详细的损失函数的优化方案,将会在下文给出。

2.2.4 多目标分数融合策略

在线预估时,模型会输出[公式]和预估时长[公式]这两个分数,需要我们把这两个分数融合成一个分数作为最后排序的依据。常用的融合方式有加法融合和乘法融合,对于这个模型来说,乘法融合的可解释意义更好,表示预估阅读时长的数学期望。所以采用了如下的乘法融合方式

[公式]

其中,[公式][公式]的幂,它的最佳值可以通过离线grid-search获得。

2.2.5 实验分析

参数调优

对于需要重新训练模型的参数调优(比如专家数),我们直接做了线上实验来对比;对于不需要重新训练模型的参数调优(比如融合策略里参数的grid-search),我们做离线评估来对比。参数调优的一些结论列举如下:

(1) MMoE模型里专家的个数

专家个数越多效果越好,但多到一定程度以后,提升幅度就不大了,而训练和在线预测的耗时会明显增加,所以需要平衡专家个数和效率来选择最佳专家个数;

(2) MMoE门控里MLP的隐层数

门控里的隐层数越多效果越好,但提升幅度不会很明显,所以跟MMoE原文保持一致即可;

(3)对时长所做函数变换的类型

实验了线性变换、对数变化、幂函数变换三种类型,本场景下幂函数(平方根)的时长提升最大,但不同场景的结论可能会不同,需要实验找到最合适的函数变换;

(4)点击和时长目标的权重[公式][公式]

在时长目标拟合时长平方根的情况下,实验了多组权重,通过线上AB实验来确定最佳权重组合。

(5)在线目标融合策略

[公式]小于1时,相当于减少预估时长的影响,当[公式]大于1时,相当于增加预估时长的影响。所以构造[公式]的网格时,要从小于1的数开始,到大于1的数为止,再从中grid-search出最佳的[公式]

在线实验

对照组:CTR单目标排序模型;

实验组:deepFM+MMoE多目标模型。

下图为AB测试曲线图,实验组的大盘累计时长,图文总时长,优质文章曝光占比等指标都有明显提升。

preview

图文总时长的提升说明推荐结果更能吸引用户阅读,优质图文曝光的提升说明多目标模型更倾向于向用户推荐优质的文章,提高了优质文章的分发效率。

2.3 第三阶段:建模目标之间的依赖关系——引入ESMM

2.3.1 相关型多目标模型

在推荐场景中,用户的行为一般都不止一种,而且不同行为的发生有先后顺序和依赖关系。比如在图文推荐场景中,用户一般是先在主feeds上浏览图文,然后对感兴趣的图文产生点击行为,点击之后会进入到详情页阅读正文,这时才会产生阅读时长,阅读一段时间后会有一定概率发生各种互动行为。用户的每一种行为都可以成为多目标模型里的一个目标,像这种目标之间存在依赖关系的多目标模型就属于相关型的多目标模型。

对于相关型多目标模型,如果每个目标都是独立拟合的话,目标之间依赖关系的信息就会丢失,模型精度就会有所损失,影响排序效果。所以,在做相关型多目标建模时,我们需要把用户行为漏斗里的每一步转化都建模起来。以图文推荐为例,在这个场景下,我们需要建模的目标是点击和时长,这两个目标涉及到的转化关系可以被描述为:

向用户展示文章 ——> 用户点击文章 ——>阅读时长超过某个阈值

这里第一步转化是文章从曝光到被用户点击,各种CTR预估模型预估的就是这一步转化发生的概率。第二步转化是从用户点击文章到阅读时长超过某个阈值,超过阈值就意味着用户在该文章上产生了显著正向的时长收益,其中阈值的确定方法会在下文给出。第二步转化发生的概率一般称为CVR。

[公式]表示用户和文章的特征;[公式]表示点击的label,[公式]表示点击,[公式]表示曝光未点击;[公式]表示时长的label,[公式]表示阅读时长超过阈值,[公式]表示没有超过阈值,包括没有点击。那么用户行为漏斗中的曝光、点击、时长的转化关系和概率量化可以用下面的图7来表示:

因为CTCVR同时考虑了CTR和CVR,是从文章曝光到最后一步时长转化的直接估计,所以CTCVR被用作最终的排序依据。那是不是我们只拟合CTCVR就可以了呢,答案是否定的。因为拟合CTCVR的负样本是[公式]的样本,这些负样本有两种,一种是点击后阅读时长没有超过阈值,另一种就是曝光未点击。这两种负样本是有着很大差别的,前者是被用户点击过的,在相关性上比后者大得多。如果只用[公式]的数据去拟合CTCVR的话,是无法区分[公式]的样本到底是哪一种负样本的,相当于在拟合的时候损失了一些很重要的信息,十分影响模型的效果。

2.3.2 引入ESMM的损失函数

为了更精确地拟合CTCVR,我们借鉴了ESMM构造损失函数的方法[3]。ESMM用了两个共享底层参数的DNN分别预估CTR和CVR,CTCVR的预估值则通过CTR和CVR的预估值的乘积得到,而不是用一个网络去直接预估。预估的CTR和点击类标[公式]用于计算拟合CTR的损失,预估的CTR×CVR和类标[公式]用于计算拟合CTCVR的损失,其中的CVR只是一个用于构造预估CTCVR的中间变量,并不拟合任何目标。由于对CTCVR的预估分解成了对CTR的预估和对CVR的预估,所以在预估CTCVR时,上述两种不同负样本就能被很好地区分开来。最后CTR损失和CTCVR损失加权求和得到一个总损失,通过最小化总损失求解模型参数,具体的损失函数如下:

[公式]

其中,[公式][公式]分别是拟合CTR和CTCVR的损失函数,均为二分类交叉熵,[公式]为点击的类标,[公式]为时长的类标(阅读时长超过阈值秒取1,否则取0),[公式]是对CTR的预估,[公式]是对CVR的预估,[公式]为模型参数,[公式][公式]分别为两个损失的权重,[公式]为样本总数。

2.3.3 点击+时长模型的改进版deepFM+MMoE+ESMM

ESMM主要解决的是相关型多目标模型中如何更精确地拟合各种转化率的问题,属于损失函数层面上的优化,跟模型的网络结构无关。为此,我们将上一版多目标模型中基于MMoE的模型结构和ESMM的损失函数结合在一起,得到了如图8所示的多目标模型。

preview
这个模型和上一版模型的主要区别有两点。

第一点是损失函数,通过把时长截断为二分类,为时长目标引入了转化率的概念,从而可以借鉴ESMM同时拟合CTR与CTCVR的做法,优化损失函数,解决了上一版模型中没有对点击和时长两个目标关系建模而产生的一系列问题。

第二点是模型结构的细节。在上一版模型中,FM和MMoE是共享底层的lookup table的,通过线上的对比实验我们发现,FM和MMoE各自有一个自己的lookup table,线上效果会更好,所以模型结构改为了图8中所示的独立lookup table。

2.3.4 实验分析

参数调优

(1)时长二分类截断阈值的确定

为了得到最佳的二分类阈值,我们以阅读时长的不同分位数作为二分类阈值去训练模型,通过线上实验对比确定出最佳的二分类阈值。

(2)FM与MMoE是否共享参数的影响

在这一版模型中,我们对比了参数共享和参数独立的离线效果,结论是参数独立时的离线指标会更好,原因可能是参数独立增加了模型的容量和拟合自由度,在训练数据量足够多的场景下,参数独立带来了进一步的效果提升。

(3)两个目标的权重比例

由于这一版模型中两个目标的损失函数都是二分类交叉熵,类型相同,量级相近,所以不需要做复杂的权重调整实验。在线实验对比了几组不同权重训练出来的模型,差异并不大。

在线实验

最终全量上线的模型相比上一个版本的模型取得了图文总时长和大盘时长的进一步提升:

### 2.3.5 时长目标abel的优化

在这一版模型中,时长截断成二分类的阈值对于所有点击样本来说都是一样的。这样做会有一个问题,由于文章长度和内容的差异,不同文章阅读时长的分布会不一样。比如说,有些文章内容比较少,很快就可以读完,那对于这种文章,它就永远没有办法成为时长目标的正样本。因此,统一的阈值截断方式会使得那些内容较短的文章更容易被标注为负样本,导致它们不容易被推出去。为了解决这个问题,我们实验了个性化的时长二分类方式,把二分类阈值由之前整体统计的分位数换成了各篇文章自己的分位数,从而不同文章成为时长正样本的标准跟文章本身的时长分布有关。对于那些比较新的,没有阅读时长的文章,二分类阈值仍然采用整体的分位数。

实验结果表明,个性化的二分类阈值会使图文时长指标下跌,而图文pv、点击率以及各种互动指标会明显提升。这个实验的结论并没有像我们期望的那样提升图文时长,但点击类和互动类指标的提升,说明个性化的二分类阈值训练出来的模型应该是给用户推了更喜欢的文章,但这些文章并不一定是用户阅读得比较久的文章。

2.4 第四阶段:各种互动目标的加入

对于图文推荐业务来说,我们除了希望能提升用户的消费深度以外,还希望优质文章能得到更好的分发,同时创作优质文章的优质账号本身能得到更多用户的关注。一般来说,能让用户产生互动行为的文章基本都是优质文章,如果推荐系统分发的内容能让用户产生更多的互动行为,那么不仅用户的阅读体验得到了提升,而且对内容创作者来说,用户的互动行为会给他们带来持续创作优质内容的动力,使他们更加愿意留在平台上创作内容。因此,我们在点击+时长两目标模型的基础上,再加入互动目标,使得推荐结果更容易让用户产生互动行为,提高优质文章的分发效率,促进账号生态的发展。

preview

2.4.1 点击+时长+互动多目标模型

在这一版模型中,模型结构和损失函数和上一版模型一样,都是FM + MMoE + ESMM的组合,不同点是增加了互动目标。因为用户只有点击进入详情页之后才能产生互动行为,所以互动行为属于点击之后的第二层转化,类似于时长目标。一般来说,互动行为比点击行为要少得多,这就使得互动目标的正样本会非常稀疏,这也是互动目标建模的主要挑战。ESMM在全样本空间中同时拟合CTR和CTCVR的建模方式,使得它能在很大程度上缓解数据的稀疏性问题,而互动目标天然就是二分类问题,因此十分适合用ESMM来建模转化率。加入互动目标最简单的做法就是为每个互动目标增加一个拟合CTCVR的损失函数,增加多少个互动目标就增加多少个拟合CTCVR的损失函数,图10所示为增加一个互动目标时的模型结构。

preview

类似于ESMM,这个模型需要同时拟合CTR,时长CTCVR,互动CTCVR这三个量,其损失函数为:

[公式]

其中,[公式]为点击的label,[公式]为时长的label,[公式]为关注的label,[公式]=1表示用户关注了文章作者,[公式]=0表示没有关注文章作者。[公式][公式][公式]分别是拟合CTR、时长CTCVR和关注CTCVR的损失函数,均为二分类交叉熵,[公式]是对CTR的预估,[公式]是对时长CVR的预估,[公式]是对关注CVR的预估,[公式]为模型参数,[公式][公式][公式]分别为三个损失的权重,[公式]为样本总数。

2.4.2 多目标融合策略

这一版模型会输出 [公式],时长[公式],关注[公式] 这三个分数,最终要融合成一个分数作为排序依据,这里还是用了乘法融合的方式,其表达式为:

[公式]

其中[公式][公式]的最佳取值由离线grid search得到。这里虽然预估分数有三个,但自由参数只有两个,所以需要做grid search的参数只有2个。

2.4.3 实验分析

在线实验

我们根据离线grid-search的结果确定最佳的αβ的值,在线对比上一版模型,互动指标得到大幅度提升,效果如下:

### 2.4.4 目标合并的训练策略

当我们想要优化的互动目标越来越多时,这种多一个互动目标就多一个loss的建模方式会使得在线预测的耗时明显增加,离线grid-search也需要更多的时间。为了解决目标数增加带来的这些问题,我们尝试了合并目标的训练策略,根据业务需要把某些目标合并成一个目标。在基于ESMM的模型结构下,拟合CTR的点击目标是固定的,其余拟合CTCVR的目标中,我们把时长单独做一类,所有需要建模的互动目标合并成一类。在构造互动目标的正样本时,把所有互动的正样本做并集,只要发生了其中一种互动行为,就算作是互动的正样本。因此,模型结构跟之前的图10完全一样,建模的时候都是三个目标,只是训练数据中互动目标的正类label构造的方式不一样,如图11所示。

实验效果

点击+时长+合并的互动多目标模型对比点击+时长两目标模型,下图为其中某个互动指标的对比效果。

实验结果表明,这种把多个互动目标合并成一个目标的建模方式,能有效提升其中每种互动的线上指标,对增加多种互动目标的建模具有很好的可扩展性。

经过以上多目标建模四个阶段的优化后,QQ看点图文推荐在图文时长、优质图文曝光占比以及各种互动指标上,都得到了大幅度的提升,为业务带来了显著的正向收益。

小结

(1) 相比纯点击目标的CTR预估模型,多目标模型能进一步提升用户体验,促进内容生态和账号生态的发展。

(2) 在多目标模型演进的第一阶段,我们对点击模型的样本损失用时长加权,实现了点击+时长两目标模型的效果,有效提升了用户的阅读时长。该方法操作简单,效果立竿见影,但是提升的幅度有限。

(3) 在多目标模型演进的第二阶段,我们在DeepFM点击模型的基础上做多目标建模,将DeepFM的DNN改进为多目标MMoE结构,模型输出的两个分数分别建模点击和时长两个目标,实现了真正的点击+时长两目标模型,大幅度提升了线上的用户阅读时长。

(4) 在多目标模型演进的第三阶段,我们把时长目标对点击目标的依赖关系也建模起来,借鉴ESMM建模点击转化率的方法,在全样本空间中同时拟合CTR和CTCVR,更精确地预估每一步的转化率,实现了用户阅读时长的进一步提升。

(5) 在多目标模型演进的第四阶段,我们保持模型结构和损失函数不变,在点击和时长目标的基础上,分别以单独和合并的方式引入互动目标,实现了互动指标的显著提升。

参考文献

[1] Guo H, Tang R, Ye Y, et al. DeepFM: a factorization-machine based neural network for CTR prediction. IJCAI 2017: 1725-1731.

[2] Ma J, Zhao Z, Yi X, et al. Modeling task relationships in multi-task learning with multi-gate mixture-of-experts. SIGKDD 2018: 1930-1939.

[3] Ma X, Zhao L, Huang G, et al. Entire space multi-task model: An effective approach for estimating post-click conversion rate. SIGIR 2018: 1137-1140.

[4] Zhao Z, Hong L, Wei L, et al. Recommending what video to watch next: a multitask ranking system. RecSys. 2019: 43-51.

[5] Tang H, Liu J, Zhao M, et al. Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations. RecSys 2020: 269-278.

[6] Cheng H T, Koc L, Harmsen J, et al. Wide & deep learning for recommender systems. RecSys 2016: 7-10.

[7] Wang R, Fu B, Fu G, et al. Deep & cross network for ad click predictions. ADKDD 2017: 1-7.

[8] Wang R, Shivanna R, Cheng D Z, et al. DCN-M: Improved Deep & Cross Network for Feature Cross Learning in Web-scale Learning to Rank Systems. arXiv preprint, 2020.

[9] Shan Y, Hoens T R, Jiao J, et al. Deep crossing: Web-scale modeling without manually crafted combinatorial features. SIGKDD 2016: 255-262.

[10] Song W, Shi C, Xiao Z, et al. Autoint: Automatic feature interaction learning via self-attentive neural networks. CIKM 2019: 1161-1170.

[11] Chen Q, Zhao H, Li W, et al. Behavior sequence transformer for e-commerce recommendation in Alibaba. Proceedings of the 1st International Workshop on Deep Learning Practice for High-Dimensional Sparse Data. 2019: 1-4.

[12] Zhou G, Zhu X, Song C, et al. Deep interest network for click-through rate prediction. SIGKDD 2018: 1059-1068.

[13] Zhou G, Mou N, Fan Y, et al. Deep interest evolution network for click-through rate prediction. AAAI 2019, 33: 5941-5948.

[14] Xiao J, Ye H, He X, et al. Attentional factorization machines: learning the weight of feature interactions via attention networks. IJCAI 2017: 3119-3125.

[15] Lian J, Zhou X, Zhang F, et al. xdeepfm: Combining explicit and implicit feature interactions for recommender systems. SIGKDD 2018: 1754-1763.

[16] Covington P, Adams J, Sargin E. Deep neural networks for youtube recommendations. RecSys 2016: 191-198.


本文地址:https://www.6aiq.com/article/1616884898601
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出