一、摘要
在过去几年中,七猫的商业化广告变现经历了快速的发展,逐步迈入广告深水区,实现平台商业收入、广告主效果以及用户体验价值的最大化成为了很重要的方向。本文主要介绍我们在用户侧建模的首次探索和实践。经过实验分析,取得了初步的结果,在核心指标人均阅读时长、DAU上带来了显著的提升,验证了整个方向的可迭代性。
二、现状与挑战
七猫整体业务核心是免费小说,收入主要来源于广告的变现。我们当下的核心挑战是在ADX广告在无法获取广告完整信息(比如电商广告的url、图片、类目、品牌、产品词)的情况下,通过少量信息提升用户和广告匹配的精准度。前期商业化团队在广告变现上做了大量工作,也带来了整体大盘收入的稳步提升。随着广告展示的频次越来越高,也给用户的阅读带来了打扰,比如插页广告的间隔页数越来越少甚至最少到了4页。很多用户也对广告进行持续抱怨。
同时,七猫已经拥有了很大的用户群体并且用户的行为一直都在发生变化,而前期设计的很多策略偏规则一些,基于规则带动收入提升的动力已经不足。如何更加精细化的提升收入以及找到合适的收入和体验的兑换比成为亟待解决的问题。为了解决上述的问题,算法和商业化产运协同共同开展了千人千面的项目,从千人千面V1.0期的强插章间隔到V1.5期的底通动态底价再到V2.0期的动态插页以及V2.5期的强插页间隔,算法在阅读器内不同位置上分别进行了策略设计和实验,策略的越来越精细化也取得了显著的效果,最终也带来了不同广告位置上ARPU的显著提升以及整体大盘日收入的提升。尽管平台收入在稳步的提升,但是策略中较少考虑到用户阅读行为和广告的关系,在用户体验和广告收入的平衡上还需要进一步探索。
三、探索与实践
3.1 算法建模与设计
3.1.1 优化目标
广告收入可以用以下公式来描述:
广告收入 = ARPU * DAU = 广告展示密度 * ecpm * 时长 * DAU
通过数据分析我们发现用户在阅读过程中沉浸度高的时候平均ecpm往往也更高,而且根据心理学上的效应如果用户在阅读开始和结束的时候体验是好的,那他就会觉得这次体验相对来说是好的,因此根据这两点我们撬动收入的优化目标就是ecpm和时长以及DAU。我们通过改变用户阅读过程中IPU(人均阅读广告数)的分布而不改变整体的密度,来提升用户体验和收入。具体建模目标如下:
我们希望用户的阅读时长和广告密度大致符合正态分布,即在沉浸度高的时候提高广告密度,沉浸度低的时候减少广告密度,这样能在整体展示广告密度不减的情况下优化用户体验,同时又不影响广告收入。
3.1.2 模型设计
综合业务特点和模型调研,我们通过预估用户千字阅读时长变化以及下一章离开的概率来计算沉浸度分数,采用序列建模(注意力机制)+MMoE的模型结构作为技术选型。考虑了以下几点:
1.多任务学习相比单任务分开建模的优势主要有两点,一个是多任务学习通过挖掘任务之间的关系,能够得到额外的有用信息,大部分情况下都要比单任务学习的效果要好。在有标签样本比较少的情况下,单任务学习模型往往不能够学习得到足够的信息,表现较差,多任务学习能克服当前任务样本较少的缺点,从其他任务里获取有用信息,学习得到效果更好、更鲁棒的机器学习模型;另外多任务学习能复用数据和特征,节省资源和机器成本
2.对一些实时序列特征进行建模原因是用户阅读过程中的沉浸度变化是实时的,单单离线特征不能很好的刻画
3.相比起shared-bottom模型MMoE将底层的共享网络层拆分为多个共享的Expert,并且通过引入Gate来学习每个Expert对不同task的贡献程度;对应不同相关性的task,MMoE模型的效果比较稳定,这主要是因为相关性弱的task,可以通过Gate来利用不同的Expert。
3.1.3 特征设计
为了评估算法建模影响,我们首先将模型应用在以插页广告和上下翻页广告为主的阅读器内场景
样本构建
沉浸度预估是比较实时的任务需要每章都预估用户的阅读沉浸度,所以以章节维度来构建样本。同时沉浸度又是相对比较抽象的概念,所以我们通过预估用户阅读速度变化和用户下一章是否会离开这两个任务来评价用户的实时阅读沉浸度。例如用户在阅读某本书到第20章时,如果第21章离开则此时标签为1;用户这一章千字阅读时长大于前十章时则标签为1。
特征工程
在构建用户阅读沉浸度预估模型的特征时,我们会从三个角度考虑:
- 用户维度:用户的基本属性、用户app行为(阅读时长、活跃天数、广告统计特征等)
- 书籍维度:书籍的基本属性、书籍的统计特征
- 用户X章节维度:用户最近x章的阅读时长序列
优化目标&loss选型
- 分类任务。即当用户当前阅读速度大于前10章的平均值时候,标签即为1
- 回归任务。预估用户当前章节的阅读速度,标签即为当前章节的具体阅读速度,例如200字/min经过技术和相关实验的分析和验证,最终选取分类的方式构建损失函数,主要考虑到回归任务相比较分类任务较难学习,并且较大的标签值的影响大于较小的标签值,业界通常采用分类的方式代替回归
3.1.4 具体应用
沉浸度分数设计(公式&物理意义):
p_immersion = (1 - p_chapter) * w1 + (p_duration) * w2
- 其中,p_chapter是用户下一章离开的概率,p_duration是用户下一章阅读速度大于前10章平均值的概率
- 最终分数的意义是用户当前章节阅读的沉浸度
根据预估的沉浸度分数设计广告动态展示策略,在用户沉浸度高的时候减少广告的间隔页数来提升广告的密度,反之则降低广告的密度。
3.2 算法效果评估
3.2.1 指标提升:模型持续的迭代,从线上指标看,在强插位置,用户的阅读时长、活跃天数、广告收入等都得到比较显著的提升
3.1.2 合理性提升:拆分人群来看,本实验收入提升主要是靠阅读深度高用户,提高了强插eCPM带来强插收入的提升;而体验提升主要是来自于阅读浅度用户,让强插分布更合理,减少了普插和强插的曝光
四、总结与展望
良好的用户体验会提高用户留存和使用时长,形成健康的用户生态,为平台的长期收入提升奠定基础。在七猫的商业化进程中,我们实现了广告收入的稳步提升。然而,随着广告密度增加和误点概率上升,用户反馈变差,收入增长遇到瓶颈。为此,我们首次对用户体验进行建模,优化业务策略,尽量在不影响用户体验的前提下提升广告收入,成功提高了广告收入、用户留存和人均阅读时长。未来我们除了对用户体验建模以外,还应该对对广告主侧价值进行建模,当前广告行业业务已经进入深水区,单纯的曝光/点击并不能满足广告主诉求,而平台侧对广告主侧效果关注较少,影响广告主对平台流量价值的信任,因此平台有必要在优化过程中兼顾广告主转化问题,广告主拿到了更优质和更有性价比的量后也会提高出价和预算,反过来也会提升平台的收入。
未来广告主侧建模我们可以
- 基于跳回率预估模型优化阅读器内广告的误点率,对于转化价值低的用户适量减少误点概率,增加用户体验
- 优化广告库存展示的排序公式,例如ecpm一样或差值在一定范围内的情况下展示潜在价值更高或用户容忍度更高的广告,包括ecpm差不多情况下减少重复广告展示的频率增加多样性等
- 根据用户点击广告后跳回的时间预估真实点击率、浅层转化率、深层转化率,基于跳回率预估模型,优化强插位置上的广告动态展示时长,对于转化价值低的用户,这类用户对当前广告不感兴趣,停留时长增加带来的增益基本没有反而会影响用户体验,这类用户应该适度降低强插广告的停留时长;对于转化价值高的用户,这类用户更愿意点击当前广告,可以适当增加停留时长来增加这类用户的ctr。