只做好CTR预估远不够,淘宝融合CTR、GMV、收入等多目标有绝招

640?wx_fmt=jpeg

作者 | 吴海波

转载自知乎用户吴海波


【导读】一直以来,电商场景就存在 ctr、cvr、gmv、成交 uv 等多个目标,都是核心指标。理想情况下,提升 ctr 就能提升 gmv,但本文作者认为,在一定程度上, ctr 和 gmv 并不是完全一致。一般大幅的 ctr 提升,都会带来相关的 gmv 的提升,但小幅度的 ctr 提升就不一定了,有的时候还是负向的。

那是否只优化 GMV 就可以了呢?一方面,虽然电商公司最终追求 gmv,但是 ctr 之类的指标,一定程度上代表着用户体验,也需重点关注。另一方面,GMV等成交指标,比起点击率相关的指标,更难优化。成交比起点击,数据稀疏很多,且受更多的场外因素影响。

大数公司这个问题并不严峻,每个目标训练个模型,拍个公式在线上揉在一起也能用。且在大公司,不同模型各自有团队在做,也没有很强的融合意愿。而我们不行,由于淘宝的网络效应,决定了我们无法依靠 cpc 竞价的模式走向盈利。因此,只做好 ctr 预估并不够,如何融合 ctr、gmv、收入等目标,则成为我们重点要解决的问题。

去年 ESMM 出来时,我们已经做过一些相关尝试了,并没有很成功。当时的想法很朴素,希望从丰富的 ctr 样本中学习到一部分能够 generalization 的表达,辅助 cvr 的学习。ESMM 这篇论文给了我们进一步的信心。另外,还从dupn 的论文中借鉴了不少特征构建的想法,经过几个月的尝试,迭代了几版,拿到相对不错的结果。

模型总体策略

模型预估目标

用户在平台的行为遵循一定的顺序决策模式:impression->click->conversion

CVR 模型旨在预估用户在观察到曝光商品进而点击到商品详情页之后购买此商品的概率,即 pCVR=p(conversion|click, impression)。CVR 模型的目标是预估条件概率 pCVR,与其相关的两个概率为点击率 pCTR 和点击且转化率 pCTCVR,它们之间的关系如下:

640?wx_fmt=jpeg


模型结构

样本按照正负样本比例 =1:6 的比例进行采样,这里的正样本指的是点击正样本。

借鉴阿里妈妈提出的 ESMM 模型(完整空间多任务模型),使用全站用户行为序列数据(包括点击、加购、收藏等),使用多任务学习的思路,引入了两个辅助的学习任务,在完整的曝光样本空间,分别拟合 pCTR 和 pCTCVR,从而缓解传统 CVR 预估模型难以克服的样本选择偏差和训练数据稀疏的问题。

640?wx_fmt=jpeg

对于一个给定的展现,模型能够同时输出预估的 pCTR、pCVR、pCTCVR。模型主要由两个子网络组成,左边的子网络用来拟合 pCVR,右边的子网络用来拟合 pCTR。两个网络的输出结果相乘,即为 pCTCVR。具体反映在目标函数中:

640?wx_fmt=jpeg

即用 CTCVR 和 CTR 的监督信息训练网络,隐式学习 CVR。本次实验,只使用 MTL 模型的 CVR 网络产出的 CVR 预估分用于排序。

过程中一些有意思的点

预估偏置问题

一开始,我们希望直接采用 ctcvr 的结果,去替代线上的融合模型。但结果不太理想,我们做了很多数据分析,发现主要是由于 ctcvr 在预估上存在比较大的偏置。比如对订单量很少的样本,cvr 预估会明显偏高。而在数据量相对丰富的头部样本,预估的分数没有表现出差异,过于集中。

尝试了几种校准方案后,效果不是特别理想。但发现模型结构中的 cvr,校准的难度比 ctcvr 低,经过一段时间的尝试,上线效果还是不错的。

增加 attention 层的 share

原有结构仅共享底层 embedding 表达,即 CVR-task 和 CTR-task 两个子网络的 embedding 层共享 embedding 向量(特征表示)词典。embedding 层的参数占据整个网络参数的绝大部分,需要大量的训练样本才能充分学习到。

由于 CTR 任务的训练样本量远远超过 CVR 任务的训练样本量,ESMM 模型中,embedding 共享的机制能够使得 CVR 子任务能够从只有曝光没有点击的样本中学习,从而可以极大缓解训练数据稀疏的问题。

在此基础上,鉴于行为序的重要作用,我们把行为序列的 attention 参数共享。对比原结构:ctr、cvr、ctcvr 的 auc 都有明显的提升。

DUPN类的特征

这个说法是我们内部发明的,其实一点也不严谨,只不过是我们借鉴了 dupn 那边论文中特征构建的方式。

不同的 ID 特征从不同规模上刻画了商品。比如 shop、brand、cid、sale 等属于比较泛化的特征,描述商品的一般特征;而商品 ID 属于非常个性化的特征,描述了商品的独特性。

在用户点击序列的基础上,拓展 dupn 的思路,根据用户当前或历史的行为,去预测用户的一些隐藏信息,比如偏好品牌、偏好类目、用户购买力、价格偏好、商品的评价数量、商品的价格、商品的销量、商品的喜欢数等泛化特征,这些信息与原始用户点击序列一起,会帮助模型学习商品表达。

训练本身的问题

虽然 ESMM 的思路很赞,但是联合训练本身就会带来新的问题,模型训练收敛更难了,且更慢了。在我们前期实践过程中,经常会发现 logit 飘了、nan 了,除了一些代码 bug 外,就需要精细的调参和数据清洗了。

训练速度慢,对我们也是一个很大的挑战。我们的集群资源有限,特别要训练 ctcvr 模型,对数据量的要求更高,也是我们在 ctcvr 上进展缓慢的另一个重要原因。

可以预见,如果我们再增加更多的目标 loss,这个问题会更尖锐。

一个小问题

在计算ctcvr_logits的时候,应该算sigmoid(ctr_logits) * sigmoid(cvr_logits) ,即两个网络的输出,做 sigmoid 之后再相乘。众所周知,TensorFlow 中是不提供单独的 cross entropy loss 计算函数的,只有softmax_cross_entropy_with_logits和sigmoid_cross_entropy_with_logits 两类。(不过现在Keras里有这种东西了,categorical_crossentropy 可以指明输入的是 logits 而非 softmax )。

重新实现了 sigmoid + loss 交叉熵函数,并对边界值进行了严格校验。但是 在 embedding 向量从 32 维扩展到 128 维是,会出现输出 Nan 的情况,调小优化器的学习率,可以暂时避免出现 Nan。

总结

这种 mutil-task 联合训练的方式,在我们线上实践中,比单独 ctr 和 cvr 模型分开训练,总体表现上要好不少,可以做到 ctr 不怎么降,gmv、收入有明显的提升。

再说个题外话,针对多目标的问题,我们还想过尝试 RL 。RL 最吸引我的是long term reward,我们可以在 reward 中引入多目标。但 RL 的问题太多了,而现有的技术,大多已经是基于实时的行为 seq 做,RL 目前没有给我特别大的吸引力。

最后,非常感谢参与其中的小伙伴们坚持不懈的努力。

原文链接:

https://zhuanlan.zhihu.com/p/76413089

(*本文为 AI 科技大本营转载文章,转载请联系原作者)

福利时刻

入群参与每周抽奖~

扫码添加小助手,回复:大会,加入福利群,参与抽奖送礼!

640?wx_fmt=jpeg

大会优惠票限时抢购中!此外,伯克利大学名师精髓课程移师北京。《动手学深度学习》作者、亚马逊首席科学家李沐线下亲授「深度学习实训营」,免费GPU资源,现场还将限量赠送价值85元的配套书籍一本,先到先得。原价1099元,限时专享优快云 独家福利价199元识别海报二维码,即刻购票~

640?wx_fmt=jpeg

推荐阅读


640?wx_fmt=png

你点的每个“在看”,我都认真当成了喜欢

<think>好的,用户想了解淘宝精排模型中特征提取的具体维度名称,并且要求列出200个具体的名称。首先,我需要回忆一下淘宝精排模型的相关知识,以及常见的推荐系统特征维度。不过,淘宝作为大型电商平台,其精排模型的特征细节可能属于内部机密,不会完全公开。因此,直接提供完整的200个具体名称可能不可行。 接下来,我需要考虑用户的需求可能是什么。用户可能在做推荐系统的研究或项目,想了解电商平台常用的特征维度,以便参考设计自己的模型。因此,即使无法提供淘宝的具体列表,也可以整理出常见的特征分类和典型示例,帮助用户构建自己的特征体系。 根据引用[1]中的示例,订单事实表包含订单编号、产品ID、客户ID、时间ID、数量、金额等,这说明用户可能对结构化数据特征比较关注。而引用[3]提到数据清洗和处理,包括价格处理等,可能涉及数值型特征的处理。此外,引用[2]讨论了大模型指导小模型的知识蒸馏,可能涉及特征表示的学习。 接下来,我需要将常见的推荐系统特征维度分类,比如用户特征、商品特征、上下文特征、行为特征、统计特征等。每个大类下再细分具体的特征名称。例如,用户特征可能包括用户ID、年龄、性别、历史点击率等;商品特征包括商品ID、类别、价格、销量等;上下文特征包括时间、地理位置、设备类型等;行为特征包括点击、收藏、加购、购买等;统计特征如过去7天的点击次数、平均购买金额等。 需要注意的是,淘宝精排模型可能还包含组合特征、交叉特征,例如用户-商品交互特征,或者基于Embedding的高阶特征。此外,实时特征如当前会话的浏览行为也是重要的维度。 在整理过程中,要确保覆盖不同的数据类型,如数值型、类别型、序列型等,并举例说明可能的特征名称。同时,要指出具体名称可能因业务需求而异,建议参考公开论文或技术博客获取更多细节,例如阿里的DIEN、DIN等模型中的特征处理方式。 最后,生成相关问题,帮助用户进一步探索特征工程、模型结构设计等内容。</think>淘宝精排模型的特征提取维度涉及用户、商品、上下文等多维度信息,但由于具体实现细节属于企业机密,以下根据行业通用实践整理出200个特征维度的分类框架及典型示例: ### 一、用户维度特征(约60个) 1. 基础属性 - 用户ID、年龄、性别、注册时间、会员等级 - 地理位置(省份、城市、GPS定位)、设备类型(iOS/Android/PC) 2. 行为特征 - 近7天点击率/加购率/收藏率/购买率 - 历史平均浏览时长、页面跳出率、搜索关键词频率 3. 偏好特征 - 偏好的商品类目TOP3、品牌偏好指数 - 价格敏感度区间(如$0-100$、$100-300$分段) ### 二、商品维度特征(约50个) 1. 商品属性 - 商品ID、类目ID、品牌ID、店铺ID - 价格带(如$¥99.9$)、库存状态、促销标签 2. 统计指标 - 历史销量、30天转化率、好评率 - CTR(点击通过率)、GMV贡献值 3. 内容特征 - 标题关键词向量(如"冬季""加绒")、主图质量评分 - 视频描述时长、评论区情感分析得分 ### 三、上下文维度特征(约30个) 1. 时间特征 - 小时段(如$08:00-10:00$)、星期几、节假日标识 2. 场景特征 - 入口页面类型(搜索/推荐/活动页)、网络环境(WiFi/5G) - 实时天气数据(温度、季节相关性) ### 四、交互行为特征(约60个) 1. 实时行为序列 - 当前会话点击序列(商品ID序列)、停留时长滑动平均值 - 实时购物车变化量、优惠券使用状态 2. 长期行为画像 - 90天购买频次、客单价分布(如$μ=150, σ=50$) - 跨类目购买关联度(如"美妆+个护"组合权重) $$ \text{用户-商品交叉特征} = f(\text{用户历史行为}, \text{商品属性}) $$ ### 五、高阶特征(示例) 1. 组合特征 - 用户年龄×商品价格带 - 地理位置×季节×商品类目 2. 模型衍生特征 - 用户Embedding向量(如$[0.23, -0.56, ..., 1.02]_{128d}$) - 商品协同过滤相似度得分 以上维度通过特征工程形成数百维的特征向量,最终输入到深度排序模型中[^2]。实际系统会采用特征分箱、归一化等技术进行预处理,例如对价格字段执行: ```python df['price_normalized'] = (df['price'] - mean_price) / std_price ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值