分享嘉宾:王秀冲,阿里巴巴算法专家
编辑:张文军
生产平台:DataFunTalk
简介:近年来,电子商务呈现出内容化的趋势,以直播和短视频为主。基于内容改善了用户体验,增加了平台收入。推荐算法作为电商重要的流量入口,不仅应用在商品上,现在也应用到了直播场景中。我们将以阿里的B类电商网站1688为例,分享直播推荐相对于产品推荐所面临的核心问题和困难。今天的分享围绕四个方面展开:
01
核心问题介绍
推荐系统在推荐素材级别上分为百万召回、数万粗排、数千细排。本文主要关注三个精行的核心问题:
02
动态排序模型的迭代
688的直播推荐排名模型已经迭代了三次,总共有四个版本。
V1:基于特征工程和机器学习的分类模型
第一版模型是基于推荐特征工程和机器学习的排名模型,重点是建立实时特征和dot系统。
(1)现场测序特征
我们使用的特征包括推荐系统中三个方面的一些非常经典的特征体系,即项目侧、用户侧、用户侧、项目侧交叉的特征体系。
首先是直播的实时和历史统计特征,包括30分钟、3天、7天、15天的窗口的实时播放次数、曝光次数、点击量、点击率、CVR等特征。二是内容端特性,包括封面图和标题的嵌入。第三是商业画像的特点。静态信息包括业务级别和商店交易数据,而B类信息包括业务工厂能力。
在用户端特征上,一方面使用网站的用户画像,包括网站的身份、排名、访问频率,另一方面使用直播画像,包括喜好、访问天数、下期单数、RFM等特征。
并且可以很好的体现用户对直播的偏好。我们分别使用了用户在item中的序列和用户在live中的序列的不同时间和频率窗口中,产品在直播间和直播间中的次数、点击率和转化率的特征。
②模型和结果
在第一版中,我们采用的模型是以CTR为目标的GBDT点式模型,因为我们的业务需要考虑转化率、停留时间等多目标,我们还基于转化率和停留时间的样本进行了加权。模型上线后,转化率和停留时间分别提升了10%和30%。
V2:深度模型时代:异质行为序列注意模型
①嵌入+MLP深度学习时代的范式
在第一个版本的模型得到很好的验证之后,再加上我们在产品推荐方面积累的一些深度学习经验,我们正式进入了深度学习模型时代。第二个模型是基于异质行为序列的注意模型。深度学习推荐排名的范式是嵌入加MLP。嵌入是通过嵌入层把用户行为序列的ID特征和商品的ID特征变成一个密集的向量,然后基于多层全连接神经网络做相应的任务,比如CTR任务估计。在深度学习推荐模型的迭代中,YouTube的DNN和DIN是两个非常经典的工作。
②模型启发
YouTube DNN是16年Recsy16的一篇文章,首次提出了添加用户行为序列的功能。把用户观看的部分视频的ID改成嵌入后,取平均池,即平均池,把它变成一个固定长度的向量来表示用户行为序列建模的向量,然后用一些统计特征,包括播放次数进行归一化和日志记录,再用嵌入进行拼接,最后加入MLP进行CTR估计。总之,Youtube的DNN模型是第一次对用户的行为进行建模,但是方法简单粗暴,只使用平均池,用一个向量来表示一个用户的兴趣。但是用户的行为是非常多样的,只用一个向量来表达是不准确的。在这样的背景下,阿里巴巴在18年提出了DIN深度模型。
在对候选人进行评估时,我们只需要关注与候选人相关的用户行为,因此我们在推荐系统中引入了非常重要的目标注意力概念。我们以候选评分产品为查询,用用户行为序列的每一项计算一次关注度的权重。结果是用户的多次行为关注总结出来的。对于不同的候选,我们会得到不同的用户行为序列建模的表示,这样得到的表示与产品的相关性更强,可以预测更高的点击率。DIN首次引用了目标注意力的概念来建模用户对不同产品基于行为的兴趣。
③直播电商场景:异构双序列注意力模型
受DIN启发,我们迭代了深度学习模型的第一个版本,因为直播推荐模型是异构双序列模型。异构双序列是指我们需要建模的用户行为序列。电商直播有两种,一种是商品上的用户序列,一种是直播上的用户序列。所以我们采用两种目标注意力结构,基于用户对物品的顺序和当前直播正在讲解的产品。也就是说,如果用户的物品序列与当前直播产品的匹配度很高,模型就可以捕捉到相应的兴趣。其次,我们会根据直播的顺序和用户历史中的直播间ID做一个关注。如果历史上用户观看的直播与当前直播间相似,模型还可以捕捉用户相应的兴趣,以提高CTR预测的准确性。
其次,直播推荐中有大量的统计特征,需要繁琐的特征归一化后才能输入到模型中,否则训练时梯度会不稳定。我们采用了GBDT嵌入的方法。首先,基于统计特征和机器学习版本数据来训练GBDT树。然后,当进行在线预测时,将统计特征的样本输入到整个GBDT树中,从而可以获得每个GBDT树中的叶节点的id。然后,通过密集层或最大池密集层将ID输入DIN模型。这样既实现了统计特征的特征归一化,又完成了特征交叉的工作,还可以利用上一个机器学习时代遗留下来的统计特征。值得一提的是,如果把全连接层(致密层)换成单层sigmoid,就会退化成GBDT+LR模型。这种异质双序列注意模型取得了非常好的效果。它上线后,UV点击率(CTR)提高了5%,这也是我们的模型在深度学习时代的第一个版本。
④思考
模型第一版上线后,我们也有过一些思考。对于1688电商网站来说,大量用户只有关于物品的行为,而缺乏与直播相关的行为。所以用户直播序列的关注度结构不会生效,只留下用户的产品行为序列和当前直播间讲解的产品作为对应的关注度。但是,只用目前在直播间讲解的一个产品来代表直播信息是不准确的,因为直播产品是多变的。我们希望可以用历史产品和未来产品来共同表示直播信息,所以我们希望直播信息可以直接从用户的产品行为序列中激活,也就是希望直播和产品可以用同一个向量空来表示,通过产品行为序列可以直接预测对直播的兴趣。
v3: hin异构网络建模
我们的解决方案是直播的异构信息网络(Hin),因为我们的直播业务中有丰富的“直播-用户-商品”的异构网络。包括用户点击直播,用户点击商品,一些商品在直播间播放,直播和直播有一些关联关系。我们建立了一个非常丰富的网络,在这个网络中,我们可以学习每个节点的表征,并将这些表征预训练加入到我们的排名模型中,形成从项目序列到直播的注意力结构。
图的表示方法有同构图的DeepWalk、Line、Node2vec、GCN、GAT,异构图的方法主要是Metapath2vec,也是我们的方法。Metapath2vec的主要思想是先指定游荡元路径,基于元路径引导节点在图上的游荡。对序列进行采样后,由skip-gran生成元路径语义下的表示。最后,融合表示得到节点的最终表示。具体来说,元路径融合网络建模分为四个步骤。
①施工图
一、第一步,构建电商直播的版图。
②元路径选择
第二部分是元路径的选择,分为两种方案:
比如用户-物品-用户(user CF)或者物品-用户-物品(item CF),物品-用户-物品相当于一个用户同时点了两个产品,这两个产品会差不多。但对于节点类型多、元路径长的序列,效果不好,可解释性差。
第二种方案是我们使用的方案,也就是取其精华的方法。先在图中做随机游走,采样不同的序列,然后做一些规则过滤,比如要求至少覆盖两种不同的节点类型。所以我们用评分公式来打分。评分公式的核心是关注元路径采样了多少个不同的ID组合序列。数字越大,图中此类元路径的公共性越高。同时,我们会更加关注核心节点,比如活节点的出现次数,并制定评分公式,选择三到五个对应的元路径进行抽样学习。
③图游走抽样
第三部分,基于选择的元路径,在图中进行游走采样,然后使用Skip-Gram训练元路径语义中的嵌入。
④包埋融合
第四部分是构建集成多元路径嵌入的语义网络。具体的训练任务是链路预测,采用负抽样损失。在使用方法上,融合了GCN类的一些思想,增加了一些关键节点的信息,最后分别基于平均池和自我关注进行融合。最后,基于负采样损失对整个融合网络进行训练,从而得到图中每个节点的表示,形成从项目序列到生活的结构。
结果⑤
该模式上线后,日CVR和停留时间分别提升了2.5%和3.9%,推广转化率提升了10%。这也是因为推广中新用户较多,缺乏直播行为。同时,异构图上的表示也可以用于活体召回,包括user2live、item2live和live2live,作为副产品提高召回效果。
V4: live Transformer异构行为建模
V3模式还存在一些问题。首先,它不是一个端到端的模型。第二,T+1更新不能代表实时商品。所以我们采用了一种新的方案:Live transformer,一方面让HIN可以整合多个产品的表示,另一方面也可以实时引入多个产品正在讲解的信息。
①变压器型号
在Transformer方案中,直播被表征为m个历史核心商品加k个实时解说商品的集合序列,这些商品是基于历史销售数据的核心商品。用户的产品足迹就是用户行为序列。将三组序列拼接输入Transformer后,可用于将任意用户的产品行为足迹建模到直播间的核心产品或实时产品。变压器层包括四个部分:
②进入嵌入。
在变压器模型中,嵌入的构造非常重要。输入嵌入不仅包含产品的ID嵌入,还包含类型和位置嵌入。
类型嵌入表示自我关注层中每个token的类型,比如用户序列,直播间历史产品,或者实时产品。同时,用户序列中的产品分为三种类型:点击、添加购买和下订单产品。
位置嵌入用来表示时间或空的顺序。这里我们建模了三种不同的情况:一是用户行为的序列长度,从近到远的时间,从0到n-1的数量;第二种是直播历史的核心商品,重要性从强到弱,编号从0到m-1;三、直播实时讲解商品,当前商品为0,下一个商品为1,直到k-1。同时,位置嵌入是端到端的学习。强重要性的位置交叉,给予模型更强的信号。比如一个用户最近的历史行为和当前的直播产品有很强的相关性,模型信号会更强。
③结果
Transformer方案提高了4.8%的在线转换率,但整体响应时间(RT)相对较高,相对增加了13毫秒,仍在可接受范围内。
摘要:
如图所示,实时用户行为的建模分为三个部分。一、从商品行为到候选直播的异构兴趣分为商品序列、直播历史核心序列和直播实时商品序列,通过transformer进行交叉建模。对于用户直播行为序列,我们使用目标注意力结构做兴趣建模。对于统计特征和内容特征,我们使用GBDT嵌入成为向量,然后将它们添加到模型中。通过后续全连通网络预测CTR或多目标任务。
[S2/]03
多目标学习
第二部分是关于直播的客观学习框架。第一,直播是非常经典的多目标学习场景。优化目标包括直播后台页面点击量(CTR)、进入直播间后停留时间(停留时间)、转化率(CVR)、互动率(CMR)、关注率(FLR)。业务往往需要同时优化多个目标,因此多目标学习是一项非常重要的技术。
1。基线模型
多目标学习模型的第一个版本是基线模型,是基于共享底层的行业标准模型。底层共享多个目标,顶层的每个目标由MLP分隔。与为每个任务学习一个模型相比,它有以下三个优点:
在1688的直播中,我们以CTR、CVR和Staytime为三个目标,构建了第一个版本的多目标模型。我们还发现,将单目标模型升级为多目标模型的效果明显提高,因为增加了很多新的标签信息。在线实验中,UV的点击率、转化率和停留时间分别提高了2%、5%和17%。共享底层模型在工业界已经得到了广泛的应用,但是仍然有一个缺点,就是当几个要优化的目标方向不一致时,效果就不那么好了。在此背景下,谷歌于18日在KDD提出了MMOE模式。
2。MMOE模式
MMOE的前身是专家混合模型。输入后,将shared bottom改进为多专家专家网络和gate网络,并根据不同用户为每个专家网络分配权重。然而,这个网络仍然有缺点。对于不同的任务,投入是一样的,多个目标的投入没有区别。所以谷歌优化了下一步,得到了MMOE网络。MMOE网络还有几个专家网络。不同的是,每个目标都有一个门网络来学习不同的权重,这样每个任务都可以通过自己的门得到不同的输入。同时,门网络的参数非常小。可以说,MMOE采用了轻量级的门网络,实现了多目标输入的差异。实验中,多任务离线指标的点击率、转化率、关注率、停留时间均为正,在线多任务平均提升0.5%。MMOE模型也是1688当前在线服务的多目标模型。
3。实战分析
下面介绍一下多目标的实践经验。分为标签处理、损耗、在线评分三个部分。
①标签处理
首先是标签的处理,因为我们在做多目标学习的时候,往往会优化一个重要指标:用户的停留时长,这是一个数值回归目标,数值波动很大,不容易学习。据统计,一般符合对数正态分布。所以我们通常会将其记入日志,使其值更加稳定,提高回归拟合效果。
②损失
第二,多目标学习的损失是每个目标损失的加权和。
比如上面的公式,我们把点击率、转化率、关注率的交叉商损失函数利率和停留时间的MSE损失函数加权求和。不同的权重会影响模型的效果,代表不同任务训练的侧重点。任务的损失权重越大,它对模型更新的梯度的影响就越大。在它的方向上优化整个模型的参数可能对其他任务有害。
我们的调优经验是:首先将多目标收敛损失加权到同一个数量级,在一定程度上避免了梯度的支配,保证了多目标的同时优化。第二点是增加核心任务的权重。第三点可以参考Recsys 19年提出的基于帕累托最优的PE-LTR框架,CVPR18年的基于任务的不确定性确认损失权重。
③在线评分
第三,多目标模型训练完成并上线后,需要对分数进行排序,以整合多目标分数。常见的方法有打公式和重量。如图,排序公式主要是点击率乘以转化率、停留时间等的加权和。
权重方面,手动给出多组参数,然后根据业务优先级选择合适的参数。
04
实时排序Debias
第三部分工作是直播排序的Debias。位置偏向是直播场景中最突出的偏向,也就是说直播的点击率越高,排名模型就越倾向于给热门主播高分,从而获得更多的流量,形成反馈回路,也就是数据回路。这些数据将导致两个后果。第一,模型预测不准确,用户看到的结果倾向于大众化。二是马太效应增强,头部主播流量进一步增强,腰部和尾部逐渐减少,导致主播流失。直播服务的背后是直播主播。考虑到平台的长远发展,我们更应该关注模型的debias。因此,我们的目标是在不损失效率的情况下,解决位置偏差,提高个性化程度,减少马太效应(CTR,CVR)。
所以我们引入两个指标,一个是个性化指标,这样在用户中排名top-L的差异越大越好。二是马太效应指数。头部T主播的总曝光流量越小越好。为了优化这两个指标,我们尝试了几种不同的方法,即as特征/ as模型/多塔模型方案。。
1。作为功能方案
该方案的第一个版本“定位为特征”是业内的经典方案。主要方法是在模型中加入位置作为特征,让模型学习不同位置的偏移量。在线预测时,将位置作为默认值(如0),可以在同一位置比较不同的项目,以达到去偏的效果。在线实验结果表明,该方法对热门直播有很强的去极化能力,但在线性能有所下降。
2。作为模式方案
所以我们更新到模型的第二个版本,定位为模型。在训练阶段添加Biasnet来估计每个位置的偏差逻辑。主网络负责目标任务,如CTR预测。将两个网络的结果相加后,用sigmoid计算点击率损失。该模型的优势在于Biasnet学习偏差,实现了主网络的无偏效果。
Biasnet建模还增加了系统、场景id等功能。模拟不同块显示风格的偏差。在线预测,我们可以去掉Biasnet,只保留无偏的主网。上线效果符合预期,个性化提高,马太效应降低,效率也提高了(预估更准确)。改进点是Biasnet,每个位置的偏差被认为是一个固定值,与用户的相关性无关。
3。多塔模型
因此,我们提出了第三版模型,多塔位置敏感模型。该模型的出发点是对不同相关性的直播和不同位置的偏向性差异进行建模,从而优化整体排名效果。
①特征
基于该模型的多塔模型具有以下特点:
②建模方法
在具体的建模方法中,我们把位置1~9作为九个塔,位置大于10作为第十个塔。同时,因为每个样本只属于一个位置,所以我们把每个塔的损耗传入损耗掩码,保证只返回对应塔的梯度。上线服务,多塔模型可以预测每一个位置的产品点击率,利用贪心选择每个位置点击率最高的直播,构成推荐列表。
③模型优化的探索
同时,我们也对多塔模型进行了一些优化和探索。首先是多目标范式,可以做一些多目标优化。其次,我们也希望加强对不同塔对应位置的CTR分布(如KL损耗)的建模。第三,除了贪婪方法,我们还可以使用列表方式或组合优化来生成推荐列表。
④ 1688直播在线效果及原因
CVR增长3.6%,staytime增长3%,但个性化和马太效应持平甚至为负,没有达到预期。经过分析,原因有三:
多塔模型消除了位置偏差,但引入了更严重的选择偏差。头部训练数据多为热门主播,冷门主播训练不够,点击率不够高。可以通过引入随机样本和样本单边抽样来解决。
现场场景推荐素材少,回忆个性化弱。对于短视频/产品推荐等回忆丰富的场景,多塔模式有望取得更好的效果。
live Feeds卡将显示在线用户数量、受欢迎程度等。,而且用户更倾向于点热门的,这也加剧了直播领域的选择偏差。
目前我们还在致力于解决这些问题,还在做一些技术迭代。
[S2/]05
摘要
今天分享了基于用户直播行为建模的排名模型迭代。在线上,我采用了目标注意力加变压器的方案,多目标学习的共享底层和MMOE模型,以及直播排名Debias的As特征、As模型和多塔模型。
我们最终的模型如上图所示。在用户行为建模层,我们基于transformer对项目序列的异构兴趣进行建模。对于用户的直播序列,我们采用目标关注。对于其他特征,我们使用GBDT编码。嵌入和拼接三个结果被传递到顶层二进制模型中。第一部分是无偏的CTR预测模型,在训练中加入Biasnet,在在线预测中去除bias net,达到debias效果。另一部分使用MMOE对点击后目标做多目标学习,包括停留时间、转化率等。同时,我们也会在模型中加入CTR任务,作为辅助模型,但不在线上使用。最后,融合多个目标结果,得到一个排序结果。分享的就这么多。
今天的分享到此结束。谢谢你。