无尽流场景优化总结

简介: 无尽流场景优化总结


1.gif

1.gif

本系列文章包含每平每屋过去一年在召回、排序和冷启动等模块中的一些探索和实践经验,本文为该专题的第六篇。

第一篇指路:冷启动系统优化与内容潜力预估实践

第二篇指路:GNN在轻应用内容推荐中的召回实践

第三篇指路:基于特征全埋点的精排ODL实践总结

第四篇指路:Gradient Normalization在多任务学习中的优化实践

第五篇指路:生成式重排在内容推荐中的应用实践



场景介绍


每平每屋轻应用是淘宝内主推家居类商品的内容场景化导购,内容主要以场景搭配为主,内容内挂载了多个商品锚点。淘宝用户可以通过以下3种方式进入每平每屋轻应用界面:1)搜索每平每屋关键词访问;2)关注每平每屋轻应用后,在淘宝二楼我的频道主动访问;3)点击淘宝首页猜你喜欢的每平每屋内容卡片。用户进入每平每屋轻应用频道页后,浏览和点击内容卡片进入内容详情页,点击详情页的商品锚点进入商品详情页,进而进行收藏加购等行为。
2021年初,每平每屋轻应用内容详情页已全面切换成无尽流形式,相比于原来的沉浸式单图文消费,无尽流采用无阻尼下拉形式,用户下拉浏览体验更顺畅,从而提高内容详情页的曝光量及消费PV;


image.gif图片.png

为了更好优化无尽流场景的浏览深度及点击效率,给轻应用内容详情页带来更多消费PV,每平每屋算法同学对推荐的各个模块进行了优化,包括丰富召回多样性、引入粗排模型、下拉模型开发及优化、以及调整内容相关度展示策略等。

召回优化


▐  相关性&多样性


每平每屋无尽流的前身--关联推荐场景更注重推荐内容与引流内容的相关性,整体召回链路相对单一。升级为无尽流形态后,为了提升用户的下拉深度以及点击效率,在多样性和用户个性化层面上要求更高。因此,我们在召回环节中,从引流内容相关度、召回多样性及热门兜底三个维度出发,增加了多条召回链路:


image.gif图片.png


从多个维度丰富召回内容多样性后,观测线上7天AB指标,内容相关度召回链路累乘指标提升:uctr +10.99%, pctr +20.10%,下拉深度+1.86%,人均点击+22.62%,次均曝光+1.72%;多样性优化召回链路累乘指标提升:uctr +6.23%, pctr +13.25%, 下拉深度+2.41%,人均点击+16.17%, 次均曝光+2.38%;整体上,不同维度的召回优化都给场景点击效率和浏览深度带来了正向提升,其中基于引流内容相关度召回给场景点击率指标带来了较大提升,优化召回多样性后,用户下拉深度提升较大;


▐  粗排


随着召回链路的丰富,各链路召回汇总后内容候选集越来越大,候选集的扩大会增大RTP精排打分压力,使得精排打分RT快速升高。而召回内容的质量决定了精排结果的上限,为了兼顾效率与精度,召回质量更优的内容推到精排打分,我们在无尽流场景中引入粗排模型对召回内容进行初步打分筛选。上线后场景点击效率提升:uctr +2.71%, pctr +5.86%,下拉深度+0.13%,人均点击+2.85%, 次均曝光+0.40%。


排序优化


▐  多目标学习模型


在每平每屋轻应用场景中,用户进入频道页后,浏览和点击内容卡片进入内容详情/无尽流页面,点击详情页的商品锚点进入商品详情页,进而进行收藏加购等行为, 业务模型涉及的优化目标包含了一跳点击,二跳点击,以及进入商详页后的收藏加购下单。因此,我们使用了用户多跳行为样本训练MMOE多目标模型,使每平每屋轻应用的多跳点击都得到了较大提升。


图片.png


场景二跳页面详情页升级为无尽流场景后,业务前期无尽流场景流量较小,场景主要使用轻应用主频道样本训练的MMOE多目标模型作为打分模型。直接使用主频道样本训练的模型的优点是:模型有用户在每平每屋全域行为偏好信息,同时模型对多跳点击信息进行建模,多跳行为信息中包含了无尽流点击行为样本(二跳点击),一定程度上兼顾了频道全域和无尽流场景的用户行为偏好,在点击效率上效果可观;但是该模型主要是优化场景点击效率,在无尽流场景中,我们同时也关注下拉深度的优化,因此构建了基于无尽流场景的下拉模型;


▐  下拉模型


无尽流场景中,除了点击效率的优化,另一个重要目标是优化下拉深度,从而提升详情页的曝光量及消费PV;然而下拉深度这个优化目标,和常见的点击效率指标优化并不相同。一方面,用户的下拉深度是用户在进入无尽流详情页后继续下拉的整体曝光个数,是一个多卡片累积的指标;另一方面,用户在无尽流里下拉到一定深度后是否继续下拉,还是直接离开,不仅受当前曝光卡片影响,与之前的曝光序列也有关联。推荐流中的内容和引流内容差异太大或疲劳度太高,都可能造成用户跳失。所以为了优化浏览深度这个指标,我们从上下文和相关性出发,对用户下拉行为进行建模。


模型选择&样本构建


在模型选择中,考虑到目前无尽流场景样本量不多,无法训练太复杂的模型,经过评估后使用W&D进行训练【1】。对于样本构建,不同于点击率模型通过判断用户是否点击构造样本,无尽流下拉模型主要通过用户是否有继续下拉行为构建正负样本,并根据场景特点不断优化样本:

v1: 基于用户是否愿意继续下拉,将有继续下拉行为的样本认为是正样本,无继续下拉的样本认为是负样本;

v2: 基于“完全无下拉行为用户,用户意图不明确(干扰模型训练)”,剔除完全无下拉行为用户样本,剔除的无下拉用户行为样本占总样本量的24%;

v3: 基于“用户可能并不是因为最后一个浏览的内容跳失”,认为用户下拉序列中,后面浏览的内容都有可能是导致用户跳失,将最后10%下拉的内容都作为负样本;


  • 模型离线AUC

v1

v2

v3

--

+1.97%

+0.66%

  • 线上AB

ab桶

uctr

pctr

下拉深度

人均点击

次均曝光

v1(base)

--

--

--

--

--

v2

+5.15%

+3.52%

+1.21%

+4.71%

+1.34%

v3

+0.88%

-1.48%

+1.76%

+0.21%

+1.74%


结论:从离线AUC看,v2版本效果最好,相比v1提高了将近0.01,v3版本效果不如v1;


从线上完整AB7天指标情况对比,v3版本下拉深度(人均曝光和次均曝光)提升较大,但其点击类指标收益负向;整体看v2版本表现最好,在下拉深度指标有提升情况下,点击类指标也有不错提升;因此,我们基于v2版本方式进行样本构建,并进行了其他优化;


相关性建模


用户点击频道内容卡片,进入到无尽流页面。因而可以认为用户对点击的内容有比较强的兴趣聚焦,我们将用户进入无尽流时点击的内容(引流内容)称为Hero Content。在无尽流场景中,我们可以充分利用Hero Content信息来刻画用户当前的兴趣。在召回阶段,我们引入Hero Content相关召回渠道后,场景效果得到了不错的提升。在排序阶段,也尝试了基于Hero Content进行相关性建模,具体思路如下:1) 将Hero Content及其属性信息加入无尽流模型context特征,参与模型训练和排序;2) 将Hero Content及其属性信息和排序候选内容做特征交叉;构建以下实验版本:

v4: 仅新增Hero Content及其属性信息相关context特征;

v5: 仅将Hero Content及其属性信息和排序候选内容及属性做特征交叉;

v6: 新增Hero Content及其属性信息相关context特征,同时利用这些信息和排序候选内容属性做特征交叉;


  • 模型离线AUC

v2(base)

v4

v5

v6

--

+1.05%

+3.61%

+3.86%

  • 线上AB

ab桶

(对比v2版本)

uctr

pctr

下拉深度

人均点击

次均曝光

v4

+3.07%

-0.69%

+4.00%

+3.18%

+0.01%

v5

+0.45%

-2.07%

+1.89%

-0.35%

+0.47%

v6

+2.22%

-2.18%

+3.85%

+1.45%

-0.42%


结论:从离线AUC看,v6实验组效果最优,相比base v2相对提升3.86%;


线上完整AB7天,无论是点击效率还是下拉深度,v4实验组整体线上效果最优,v6实验组效果次之;针对线上结论与离线实验结论有差别的问题,我们拉长AB实验时间至14天后,v6实验组和v4实验组效果基本一致:用户点击效率整体+2.32%,下拉深度+3.76%。


多场景样本训练


基于无尽流形式能够带来更多内容详情页的曝光量及消费PV,频道外投首猜引流的详情页场景也全量切换为无尽流形式并进行算法优化。由于外投首猜引流无尽流场景DAU更低,无法训练独立的无尽流模型,同时考虑到两个场景存在一定相似性,尝试引入多场景无尽流样本进行下拉模型训练,并新增场景标特征以对不同场景样本进行区分;混合频道无尽流和首猜引流无尽流场景进行样本训练后,相比原单频道无尽流场景样本训练,模型离线AUC提升4.63%, 线上AB:首猜引流无尽流uctr +2.35%, pctr +2.23%,下拉深度0.06%,人均点击+1.37%,次均曝光+0.14%;频道无尽流场景无明显提升;


分析:引入小场景无尽流样本进行多场景样本训练,由于不同场景之间样本差异量较大(近100倍),模型在小场景中收益较大,对大场景收益不明显。


相关度策略


我们通过分析无尽流场景中不同位置上的点击率情况,并结合用户场景行为和心智,得到两个结论:1)随着下拉变深,点击率有一定的下降趋势;2)在同一位置上,推荐相同场景/风格的内容点击率会更高;从而我们可以推测,在用户开始进入无尽流场景时,兴趣主要聚焦在与Hero Content相似的内容上,随着浏览的深入,用户的兴趣会逐渐发散。


图片.png



为了吸引用户更多的浏览和点击,给轻应用内容详情页带来更多消费PV,我们结合用户兴趣扩散变化,对无尽流下拉推荐进行策略优化:


  1. 对于Hero Content有相同属性(风格、场景、挂载商品、作者)的内容进行加权和定坑,保障前10个推荐内容中与Hero Content有属性关联的内容比例在30%以上;
  2. 对于第二和第三页内容(position:11~30), 主要通过用户偏好模型打分排序;
  3. 第三页以后的内容,优先考虑多样性和新颖度;


线上AB整体正向收益:uctr +13.06%, pctr +6.01%, 下拉深度 +4.70%, 人均点击 +10.94%, 次均曝光+3.96%。


总结和展望


相比原来的单图文浏览,无尽流形式是每平每屋轻应用在内容详情页展示上的一个新尝试,给用户带来了更加“轻盈”的下拉体验,同时也提升了详情页的曝光量及消费PV。本文总结了每平每屋轻应用详情页切换无尽流后,在新的内容推荐形式上算法做的优化工作及取得的效果,其中根据业务形态和分析数据提出的下拉模型和相关度策略虽然原理简单,复杂度不高,但是取得了不错的线上效果,这也说明业务场景优化核心不在于模型的难易,而是在于解决问题时候的思考方式和解决问题的路径,模型复杂不一定是最好的,重要的是理解业务以及能针对不同的业务形式和场景提出合适的算法策略,从而帮助业务取得成果。


在后续的优化中,考虑从下拉模型结构和特征工程两个方面继续优化。比如:目前下拉模型的样本构造方式还相对粗糙,后续可以考虑基于“用户可能并不是因为最后一个浏览的内容跳失”这一假设,探索如何找到导致用户跳失的“真正负样本” ;当前我们把引流内容Hero Conetnt加入特征优化后取得了不错的提升,后续可以继续考虑如何将引流内容信息更好融入模型训练;同时现在的下拉模型特征相对简单,后续可以结合数据挖掘和分析情况,挖掘更多有利特征加入模型训练等;总的来说,我们在无尽下拉流这个产品形态上的算法优化只是刚刚开始,后续还有很多可优化的点和可尝试的idea。我们将不断探索无尽流更多的优化形式,提升无尽流场景的下拉深度及点击效率,给轻应用内容详情页带来更多消费PV;

致谢


感谢师兄的悉心指导和老师的理解与支持,感谢所有每平每屋算法和数据同学以及智能场景算法同学的交流与合作。


参考资料


【1】https://dl.acm.org/doi/abs/10.1145/2988450.2988454


团队介绍


大淘宝技术-淘宝智能团队

淘宝智能团队是一支数据和算法一体的团队,服务于淘宝、天猫、聚划算、闲鱼和每平每屋等业务线的二十余个业务场景,提供线上零售、内容社区、3D智能设计和端上智能等数据和算法服务。我们通过机器学习、强化学习、数据挖掘、机器视觉、NLP、运筹学、3D算法、搜索和推荐算法,为千万商家寻找商机,为平台运营提供智能化方案,为用户提高使用体验,为设计师提供自动搭配和布局,从而促进平台和生态的供给繁荣和用户增长,不断拓展商业边界。

这是一支快速成长中的学习型团队。在创造业务价值的同时,我们不断输出学术成果,在KDD、ICCV、Management Science等国际会议和杂志上发表数篇学术论文。团队学习氛围浓厚,每年组织上百场技术分享交流,互相学习和启发。真诚邀请海内外相关方向的优秀人才加入我们,在这里成长并贡献才智。

如果您有兴趣可将简历发至weichen.swc@alibaba-inc.com,期待您的加入!

相关文章
|
编解码 移动开发 视频直播
一文详解 m3u8 视频格式与分析视频秒开优化
秒开指的是,一秒内成功加载的播放数/播放总数。本意是想对比一下m3u8与mp4视频格式,并了解m3u8格式优缺点,以确定一个大概优化方向。但对m3u8做简单了解后,觉的m3u8可能是一个优化方向。
11173 4
一文详解 m3u8 视频格式与分析视频秒开优化
|
4月前
|
设计模式 移动开发 IDE
淘宝短视频流工程重构(上):理论篇
淘宝短视频流工程重构(上):理论篇
|
2月前
|
存储 数据处理 Kotlin
Kotlin Flow背后的神秘力量:背压、缓冲与合并策略的终极揭秘!
【9月更文挑战第13天】Kotlin Flow 是 Kotlin 协程库中处理异步数据流的强大工具,本文通过对比传统方法,深入探讨 Flow 的背压、缓冲及合并策略。背压通过 `buffer` 函数控制生产者和消费者的速率,避免过载;缓冲则允许数据暂存,使消费者按需消费;合并策略如 `merge`、`combine` 和 `zip` 则帮助处理多数据源的整合。通过这些功能,Flow 能更高效地应对复杂数据处理场景。
67 2
|
3月前
|
消息中间件 Java Kafka
Kafka不重复消费的终极秘籍!解锁幂等性、偏移量、去重神器,让你的数据流稳如老狗,告别数据混乱时代!
【8月更文挑战第24天】Apache Kafka作为一款领先的分布式流处理平台,凭借其卓越的高吞吐量与低延迟特性,在大数据处理领域中占据重要地位。然而,在利用Kafka进行数据处理时,如何有效避免重复消费成为众多开发者关注的焦点。本文深入探讨了Kafka中可能出现重复消费的原因,并提出了四种实用的解决方案:利用消息偏移量手动控制消费进度;启用幂等性生产者确保消息不被重复发送;在消费者端实施去重机制;以及借助Kafka的事务支持实现精确的一次性处理。通过这些方法,开发者可根据不同的应用场景灵活选择最适合的策略,从而保障数据处理的准确性和一致性。
218 9
|
3月前
|
算法 数据处理 流计算
流计算引擎数据问题之传播模块工作如何解决
流计算引擎数据问题之传播模块工作如何解决
39 1
|
运维
巧妙利用unbuffer实时写入
巧妙利用unbuffer实时写入
109 0
|
机器学习/深度学习 智能设计 自然语言处理
带你读《2022技术人的百宝黑皮书》——无尽流场景优化总结(7)
带你读《2022技术人的百宝黑皮书》——无尽流场景优化总结(7)
带你读《2022技术人的百宝黑皮书》——无尽流场景优化总结(5)
带你读《2022技术人的百宝黑皮书》——无尽流场景优化总结(5)