短视频在过去数年内成为主流的内容创作和信息分发渠道之一, 字节跳动提供独特的视频播放体验,吸引了全球数十亿用户, 一项重要的贡献因素是其先进的个性化视频技术。过去五年间,团队完整开创了这一崭新的技术领域以优化用户体验, 在此我们首次向业界披露个性化视频技术区别于传统音视频技术的主要概念和部分方法, 希望对整个行业有所启发。本文系“个性化播放技术”的中文精简版,欲了解更详细内容可参考原论文。论文链接:https://arxiv.org/abs/2410.17073(复制到浏览器打开,也可点击文末阅读原文,直接跳转)
过去的若干年间,音视频服务重在提供基础的视频转码与分发能力,行业的注意力主要集中在四个方向。
• 编解码器标准的演进、前后处理算法的研究与开发。例如MPEG-2、RMVB、264/AVC、 265/HEVC、266/VVC、VP9、AV1、AV2等视频编解码器,MP3、AAC、HEAACv1/v2、XHEAAC、OGG等音频编解码器,Jpeg、WebP、Heif等图像编解码器,以及前后处理方面的大量工作如超分、降噪、色彩增强、ROI区域分析等。
• 流媒体传输协议的演进。一些取得广泛影响与应用的协议包括RTP/RTSP、MPEG2-TS、RTMP、HLS、DASH、SRT、RTC等。
• 多媒体框架。例如DirectShow(Microsoft)、Helix(Realnetworks)、MediaFramework(Google)、AVFoundation(Apple)、FFMpeg、VideoLAN、Gstreamer等。
• 云服务。许多公司往往以弹性计算平台为基础,提供基于容器镜像模式或者基于serveless模式的服务,允许计算图式的任务分配与调度,用以灵活地处理转码与前处理任务,并以此为核心构建包含元数据、上传、转码与下发服务、CDN、播放SDK、埋点分析等在内的端到端能力集,供业务使用,相似地,Brightcove、AWS、Azure和Google Cloud等供应商也展开了基于云的音视频服务,供各种规模的公司快速集成与应用。
除此之外,还有一些与音视频技术相关的重要工作,例如信号调制、DRM保护、芯片开发等,与上述各方向之间均存在关联、其发展轨迹亦相互影响,不赘述。
在控制与决策优化方向上,工业界和学术界曾有许多尝试,例如自适应比特率(ABR)算法方案和改进等,在编码方面则有Netflix、Brightcove从2015年开始发表的一系列工作,让Content Aware Encoding和Context Aware Encoding成为业界编码优化工作的范式,但以上工作仍过于局部、零散,并不能充分解决短视频遇到的问题。
在短视频服务的研发方面,我们面临前所未有的挑战:
通过引入众多在推荐、广告、用户增长等领域飞速发展的个性化技术,与“传统”音视频技术进行结合,字节跳动从2019年开始第一次构建完备的个性化视频技术体系,带来了根本性的范式转变,在内部评估和市场竞争中均取得了优异的结果。
沃伦·巴菲特曾经论断,企业的价值,甚至任何资产的内在价值,本质上是其未来现金流以适当利率折现的现值,其形式可写为:
仿照该论断,假设某个用户在时间对业务的营收贡献原本是,而通过某技术领域的工作,对该用户业务营收贡献的影响增益为,即有了该技术后用户业务贡献从增长为,则该技术对用户的增益价值可以表示为:
那么,对于类似短视频这样的toC公司而言,整个公司的价值可以表示为对所有潜在用户营收折现的总和,则该技术领域的工作,在于最大化(正向)所有用户影响的一个总和:
注意,以上公式系为便于理解问题所作的概念性描述,我们无论新构建一个系统、进行组件改造或者更换一种策略,都应当评估对用户的影响、对业务指标与成本的影响,计算收益增量。此外,这里存在一些明显的约束,例如技术成本和各业务的可投成本,即考虑边际效应、募集周期和市场上限:
个性化视频技术的理念在于,对不同用户,根据对其偏好和习惯的理解,综合考虑观看内容、时间、场景、设备、网络等所有影响维度,对音视频领域所具有的不同技术进行重新估计与选择性运用,提供整体最优效果。即以控制和决策为核心,强调整体最优、强调对不同用户及其相关影响维度采用不同技术。与之对应,传统音视频领域的工程实践未对不同用户的差异化诉求予以足够关注和满足,往往以固化的框架和能力为核心,寄希望于发展通用、统一的技术提供给用户,或陷于局部较优的方案,这在高用户规模、高偏好方差的视频应用体系中将丧失巨大的提升空间。
基于以上理解,我们重新设立了个性化视频技术的工作流程,参考图2-1,在此流程中将针对每次改进评估其用户影响,这不是一个很新的思路或者方法,但将这套方法置于核心地位,以此驱动传统的编解码、协议、框架、服务等开发工作,则属于首创,借助字节跳动数据驱动的文化和相应工具(例如AB实验平台)得以实现。
图2-1 个性化音视频技术工作的通用流程
从通用角度看,ToC的社交媒体类业务广泛使用(Life Time)表示一段时间内用户的活跃情况,以及使用(Average Revenue Per User)表示每用户平均收入,此处为后文讨论方便,我们做一简化,即设定短视频业务的整体目标为(Life Time Value):
用户反应类的指标提升,如时长、投稿数等,实际反映了用户是否对服务满意,此类指标均可以考虑折算为,所有营收类的指标均折算为。因此可以设立收益指标代表一项工作为业务带来的改变:
这里表示ROI系数。
基于上述目标,我们设立二级指标,音视频领域大家会观测EBVS(Exist Before Video Start)、VPF(Video Playback Failures)、VST(Video Startup Time)、Rebuffering Ratio等不同指标。但我们认为这并不足以刻画用户的信息,也并不能完整反映用户播放过程中的状态变化,因此会设立一个更为全面、开放的指标组(Quality of Performance)表示多维度的完整性能体验。具体定义参见表2-1 ,同时也会估计不同性能指标对业务指标的影响。
表2-1 部分性能指标定义
注意,以上表格内并非全部指标,其影响幅度将随业务发展阶段与环境而变化,指标组所涵盖的指标会发生增减,变更影响幅度也可能发生大幅改变。
在评估环节,我们将对每个项目计算profit和ROI,并根据业务场景和目标设定不同的调控不同的成本价值。并令其满足以下上线条件:
基于以上原则,我们会放弃部分较新但不实用的技术,构建一系列复杂度远超常规的方案,实践证明,内部观测到的收益和市场竞争表现都相当突出。
传统上端到端的音视频技术体系将链路划分成多个环节,包括投稿、转码、分发、调度、播放等环节,一种典型的系统架构如下图所示:
图2-2 AWS的VOD Streaming架构
在我们的系统上会格外强调控制与决策,以及对用户的影响,并且我们认为每个子领域均与其他子领域存在面向个性化体验的统筹优化空间,仅仅由于复杂的链路从而导致不能直接进行整体建模,但每个子领域仍需对其他环节进行深度理解和配合,逼近整体建模的效果,概念性的划分图如下:
图2-3 个性化音视频技术的概念性架构图
在上图所示的架构中,我们认为下发、调度、传输、下载与播放相关的策略应当统筹看待,因此把这一子领域命名为Personalized Streaming & Playback,对转码相关的决策领域命名为User-Item Aware Encoding,同时把投稿相关的编码和传输策略命名为Foresight Based Publishing。
个性化从技术角度则是策略化,策略优化在个性化目标下通常包含以下角度:
对不同决策干预点而言(上图中每个子领域内都至少有数个乃至数十个不同的干预点,后文章节中将择要介绍部分干预位置),其优化水平可以按粒度划分为以下层次:
在上述系统的设立与构建的基础上,可以按照优化问题的一般工作思路对整个视频播放工作进行拆解和拓展,我们根据工作便捷性可以定义了以下维度,后文将尽力从这些视角介绍:优化目标(Object);干预选项/动作(Treatment/Action);信号/状态(Feature/State);优化方法(Method)
在推荐算法或者用户选择决定了播放内容(Item List)的前提下,整个流媒体播放服务可视为主要包含Delivery,Scheduling,Streaming & Playback三个环节,根据视频Item当时所具有的档位(Ladder)基础上,对调度、传输和播放的相关逻辑进行个性化、算法化优化,能够有效提升播放体验、降低成本,最终提升整体业务收益。
上述播放服务的优化目标可用下式所示:
其中,
整个流媒体播放的优化工作即为寻找最优的策略,同时为可执行性考虑,需要在各个环节中均保证的迭代可以以一种持续、贪心的方式增加。
根据短视频应用的特点,信息流播放占据绝大多数的用户时长。在信息流播放过程中,一次信息流请求会获取一个排序过的Item List,供用户顺序观看(用<user,item>表示一次播放),播放器理应依据对观看行为的预判,提前下载每个视频最可能被看到的片段,并提前准备播放相关组件,以保障列表中的各个视频的启播速度、流畅度、画质等效果,即,优化目标不再是单次播放的效果,而是用户在整个播放序列中的综合体验。
思路
对于客户端的下载、播放策略优化,业界一般以或者某几项指标加权求和的为建模目标,历史工作一般集中于基于ABR、缓存控制等下载相关动作的控制,但往往和真实用户的体验与业务目标偏差较大,对下载过程中的用户、视频以及上下文信息利用不足,同时对播放过程如解码、渲染等过程控制阙如,更遑论联合优化。我们期望直接以业务目标建模,同时由于在客户端可以近似忽略全局性约束,因此能够以单用户最大化为目标:
其中,
动作空间
客户端流媒体优化动作空间的动作,可以根据执行的主要是下载,还是对播放器其他环节的操控粗略地分为下载动作和播控动作。
在短视频应用中,需要保证决策动作的完备收集,即考虑所有对目标具备一定影响强度的因素(动作),一种可行的梳理方式是面向所有工程模块(组件或组件内的代码块),及其占有CPU、GPU、IO、Memory、Disk、Socket等资源的维度构建矩阵,对矩阵元素遍历,评估是否存在不同实现方式或者接受不同参数范围,并估计其对指标的影响幅度,影响幅度前列者即纳入决策范围。
状态空间
状态空间中的状态即是策略所需的特征信号,更大的状态空间通常意味着更高的优化上限。为了实现个性化的目标建模与策略优化,在状态空间的构建时应当系统化考虑Rule-based、Portrait based、Individual等不同层次的状态,从User、Item、Context等角度构建。
基础的特征建设只需满足相关性即可,除却原始数据外,也应当针对各指标的维度建设能够充分识别性能状态的实时特征,以及对未来表现建设预测类特征。
画像建设可以通过目标驱动,即根据期望优化的指标构建对应画像,例如流畅度敏感画像、画质敏感画像、流量敏感画像、存储敏感画像等等,也可以利用业务先验信息,对用户的投稿或消费的类别、层次建设对应画像,更进一步说,任何User、Item、Context维度能予以划分,并与具备指标变动相关性的数据属性均可使用。
以画质敏感画像为例给出一种做法,根据线上用户的播放结果,收集用户基础信息、性能特征、分档位的播放数据、历史行为特征等,使用Uplift模型预测Treatment和播放时长的分位数回归,根据模型表现(uplift-value)将人群划分成不同分组。显然,该画像将对流畅性和画质平衡相关的决策提供关键信息。
Individual层次特征的构建,通常需要通过数据计算或模型预测构建所需的分类、回归值或概率分布。以用户对某一视频的播放时长这样的特征来说,历史上有一些工作对此进行了预测和使用,其或者基于用户过去几次播放的结果进行预判,或者使用某一视频被所有用户观看的分布代替具体用户的观播时长分布。但这些做法并不适用于短视频平台,由于短视频消费呈现几何分布,生命周期十分短促,同时此类做法过于粗糙,没有充分地考虑个性化。
一种简化的可行做法可以是从片源时长、用户、视频维度各自建立播放时长的分布,并利用参数的加权拟合(参考下式),融合成一个综合的时长分布。
同样,我们也可以利用复杂的深度模型进行更精确的预测:
此处取决于场景需求,可以是DNN model或者sequence model等,则是在一次session中用户的观看时长序列和对应的item信息。
优化示例
在特定时间点决策对某一视频下载某个档位,即选档问题,是在流媒体领域中的常见子问题,在短视频的信息流播放场景下的相关问题是下载控制决策,对这两项控制算法进行优化即可视为针对两个(组)动作的决策。由于我们所意图优化的动作空间、状态空间范围远超以往,使用的工具也极为广泛,此处仅以选档和下载控制为示例进行介绍。
传统档位选择与下载控制算法一般目标设置为最大化以代表的:
其中表示视频的质量,一般用码率或其他相关字段表示,表示卡顿时长,表示档位的切换程度,表示带宽成本,、、是超参。参考论文对档位选择和下载控制进行了联合优化以提高优化空间,但优化目标依然一致。
对于的改进,过往业界的工作中亦有过零散的尝试与讨论,例如有尝试通过在实验室环境中让每个用户对不同清晰度&流畅度的播放体验打分的方式获得不同用户对视频播放不同的画质、流畅偏好,以此对不同用户设定偏好权重参数,也有设计了一套标注方法,通过众包平台标注获得用户对不同视频及其不同片段的画质/流畅偏好,以此提升不同视频符合用户偏好的。
在我们的工作中,对档位选择和下载控制的处理,遵循前面提及的思路,有以下不同:
映射,构建不同用户观看不同item时,对不同维度体验的敏感度与偏好。并迭代对应的决策函数。抽象来看,整体流媒体播放领域算法的优化均与上述选档和下载任务的优化过程类似,可区分为线上的工作过程(Algorithm 1)和离线更新特征、、的过程(Algorithm 2),如图3-2所示:
架构
传统上类似DirectShow、Gstreamer、FFMpeg等多媒体框架的设计理念在于模块化各类组件,利用统一的接口,灵活构建有向无环图式的pipeline,提升复用性和一致性,以支持广泛的不同需求。
但在前文所定义的Personalized Streaming & Playback相关问题上,由于以极致提升用户体验为最优先目标,则与基于传统多媒体框架的播放器相比出发点有所不同,我们由此设立了如下的播放器架构。
图3-3 播放器架构示意图
Overall speaking,我们的设计以一定程度的程序复杂度增加,换取了更高的性能兑换的空间和策略统筹控制的空间,使用这种算法中心化的设计,可以提供给用户更为个性化、更极致的流媒体下载与播放体验。
通常一家视频平台为内容分发和容灾考虑会使用数个CDN供应商,作为短视频平台方,则需要考虑如何利用CDN厂商资源下发内容以提高播放体验和节约带宽成本。
传统做法是基于流量的成本约束和负载均衡情况做随机分配,更进一步的是结合资源质量进行动态调度。但该方式没有考虑到实际用户特性,例如不同用户在观看视频过程中对当前网络质量的需求差异,以及视频特性(如热度)。
我们的做法大致包括,基于用户所处的播放状态、对的偏好,对每个用户每次网络请求进行优先级定义,在成本约束下为其匹配最佳的网络资源进行个性化质量调度,整体图景如3-4所示。
图3-4 个性化调度示意图
优化目标:
CDN质量调度需要解决的主要难题是在动态网络下,预测资源的服务质量,同时在满足成本约束下,结合用户需求做最优分配。成本约束主要限制了不同资源的服务带宽比例,此外还有边际质量下降、单厂商容量天花板等问题。另外,不同用户在不同视频消费阶段对网络质量的需求不同。
具体而言在CDN质量调度问题上,主要需解决两个问题:
对于一次网络下载请求,为了满足播放流畅存在对网络质量的最小需求,假设认为其取决于具体用户、视频以及当时的播放状态,扩展前文定义为每次请求的状态,对于给定的网络下载请求,网络资源厂商的服务质量定义为。每种资源的成本约束体现在带宽的目标量级上,假设总带宽为,对厂商的分配应该满足预期分量比例,其中为厂商的带宽比例。那么问题即是为每次下载请求提供满足质量需求的资源,即设计调度策略最大化用户体验,
这里函数表示完成资源分配后的用户观看视频的实际体验带来的价值,注意到假设流量分配比例是固定的,因此以上策略需要满足厂商分量约束,避免某个厂商质量好/差,导致实际资源分配过多或过少。
定义需要结合用户对播放性能的敏感度和当前播放状态决定。对于调度算法,需要预测CDN的服务质量,一种可行的方式是基于关键特征分组+实时预测的方法解决网络表现的动态性。主要分为特征分组、质量预测、调度决策三个阶段。
通常厂商的资源分配比例只考虑资源的服务质量(例如可用性、速度)和成本单价,如过去工作主要从CDN厂商内部角度研究用户请求与内部节点成本(带宽、存储)的分配方法,,缺少对用户体验价值影响的衡量,此处进一步讨论分配不同CDN厂商服务比例。
做如下数学符号定义,CDN资源厂商,带宽单价,带宽流量比例,,n表示厂商数量,则根据单价和分量,可以计算得到带宽成本
存在关联,与实际商务谈判有关,例如,提高某厂商的服务量级可能会得到价格优惠。
基于当前的CDN分量标准,通过AB实验可以验证不同分量标准下的效用函数;借助梯度下降的思想,我们的分量目标可以按照做调整。但和模型训练不同的是,实验验证往往需要数周,因此无法遍历所有参数,这需要引入大量先验知识辅助决策,例如测量不同CDN 厂商的下载速度、播放性能,从而减少分量调整搜索空间。
除了直接为用户提供下载产生的边缘带宽,CDN带宽的另一部分成本来自于回源带宽,短视频应用每天需处理亿级别的新视频发布,同时边缘网络节点存储有限,因此边缘网络的视频文件缓存命中率远不如长视频平台。通常网络供应商的文件存储是基于过去视频文件的访问量完成的,但在短视频平台随机/质量调度策略下,同一个视频文件会被分配给不同的厂商,这会导致单厂商视角下部署的文件无法得到充分利用,造成边缘缓存命中率下降。
由于冷文件的边缘命中率更差,简化起见,会希望利用视频文件的热度变化信息做针对性的冷热调度,即冷文件集中调度到有限的厂商、节点,从而提高边缘缓存命中率。需说明的是,冷热调度和质量调度存在冲突,因此一种可能的划分是,只对冷文件做定向调度,热文件做个性质量调度。
视频请求的回源带宽可以表示为
其中,分别表示一次视频下载请求和对应的网络资源,如果厂商边缘节点缓存了请求的视频文件,则,否则会产生相应的回源带宽,具体取决于视频文件和具体资源供应商。
如上文提及的质量调度或者业界的成本调度,都会将视频文件请求随机/均匀的请求到厂商/节点上,这会降低厂商视角下视频文件的热度,从而命中率进一步下降,通过调度提高视频文件的边缘命中率,从而对回源带宽优化,思路是将视频文件只定向分发给单一或有限个厂商、节点。但如果对所有视频都做定向调度,那么很有可能造成厂商/节点的负载突然过大,因此应主要针对冷文件做定向调度。合理的方案是将视频文件热度作为文件价值进行预测,基于预测结果划分文件冷热,例如选择出top N%的冷文件做定向调度,或者使用一致性hash算法。
CDN厂商部署文件的通常做法是基于过去短时间的文件访问量进行缓存(例如LRU策略),前人曾尝试从流量分配角度将更多请求分配到有缓存的CDN节点上,或者通过历史流行度分析视频请求后的部署策略。为提高边缘请求命中率,一种可行的思路是通过预测视频流行度,决策是否需要在边缘节点提前进行文件缓存部署。
带宽成本的组成主要分为实际下载的带宽(边缘流量)、文件回源(部署)带宽,对于不同的计费模式(如峰值计费、总流量计费)目标设置有所不同,
对于Percentile-based Pricing,例如95峰值计费方式,需要降低计费点的带宽,即
对于流量计费方式(Aggregate Usage),需要降低总流量
以月95峰计费方式举例,假如全天的带宽波形变化存在峰谷,我们可以利用低谷闲置的带宽资源来做视频文件的提前部署,从而提高未来尤其是晚高峰的CDN边缘命中率。
合理的方案包括:
对于CDN供应商,峰值计费的方式通常比流量计费方式更划算。在多CDN峰值计费的情况下,成本是各厂商的95峰之和。因此对于视频平台,存在动力通过分配用户下载请求,控制各家CDN带宽波形做进一步的成本优化。即在总带宽T给定情况下,降低各家厂商的计费值,定义带宽调度复用率(Scheduling Reuse Rate)如下
调度复用率越高,说明实际的带宽节省越多, 一般认为调度复用率。当每家CDN 的实际调度比例和预期分量占所有厂商的比例相同时(即不做带宽波形干预),。
通过分配请求比例来控制其带宽需要考虑厂商的资源容量限制,即。堆高需要进行天粒度的决策,基于每天的整体带宽波形,根据堆高高度和厂商剩余免费时长(例如,95计费模式下5%的免费时长)决策在什么时间区间,堆高哪几家厂商以及堆高的带宽流量比例,使得整体复用率最大,即
对于时段的筛选,根据计费方式,预测月粒度带宽95峰内的时间区间,详见下文Context服务部分,作为每天堆高的时间段。堆高的方式可以有如下三种,考虑到实现复杂度同时尽量减少厂商节点的单天带宽抖动,考虑使用隔天错峰的方式。
图3-5 CDN错峰堆高方法示意图
将视频的更多可用档位下发到客户端,有助于提升客户端策略的决策空间,但同时下发/传输/数据解析本身具有开销,如果下发对客户端无用的档位文件给客户端,对整个系统性能会有负向的影响。所以问题在于,如何在下发侧选择最优的“可能组合”给客户端,平衡服务端、客户端决策的差异,同时考虑下发动作本身的代价。
方案 可以设立该问题的形式化公式如下:
其中,
在实际优化中,由于一般不会很大,例如<100,所以在适当剪枝后遍历是相对容易的。主要的工作在于在状态下对、以及的估计。
Context Service主要是针对某一性能相关的全局指标,给出未来趋势的预测,例如,预测未来5分钟的带宽,以及带宽在全天带宽中的分位值,其他指标可以有全局视频播放量、网速分布变化等,服务的输出主要作为其他算法的输入,即给出相应的时序预测结果,可以:
Context Service本质是时间序列在音视频算法领域的应用,时间序列的模型可以表示为
其中表示第时刻的真实目标,表示静态特征,如CDN厂商,是时序特征,表示在t时刻的未来个时刻的预估值。
我们以时序带宽预测在实际的应用来举例说明,在95峰值计费模式中,带宽存在波峰、波谷,如果可以对带宽的取值以及其当前的带宽分位数提供预测,即可在后续下发与流媒体算法中做出相应的削峰填谷的策略,由于波形的峰谷是天粒度的,带宽预测目标可以是一天内的带宽变化,以五分钟为最小粒度,即
在时刻,带宽的预测值为,当前带宽的分位值为,的实际计算方式取决于对带宽分布的假设,但实际带宽的变化因素复杂,既有静态因素例如节假日、活动(各类赛事、演出)对观看量的影响,又包含实时热点、突发事件对带宽的影响,初阶的方式可以考虑静态因素的移动平均(Moving Average)计算方法,亦可以尝试复杂的TSA方法。
对同一视频的提供多种码率,以供消费侧自适应地选择播放,在今天已经成为标准范式,目前该范式仍有一个核心问题缺乏充分讨论,即对某一个具体的视频,应当转码为哪些版本才是全局最优。
其中表示视频转码为档位组,是全局最优的档位集合。这里用来表征转码带来的收益。图4-1展示了理想的转码流程。
图4-1 基于用户-内容感知的编码(UIAE)
即在某一时刻,用户观看视频时,转码策略应当感知当前时刻每个用户所处的Context,并结合用户个性化特征,计算出来最适合每个用户的档位并实时转出。但由于转码成本高、转出延迟长、搜索空间广等原因,实践中直接按此逻辑设计并不可行。
为了应对上述挑战,可考虑做如下近似:
基于以上近似,更新优化公式:
其中,是群组的权重,表示视频集合,表示全体用户,则表示Top的视频集合,是消费top视频的用户,是消费非热门视频用户。其核心思路是主要优化高价值视频且预估未来消费人群分布,并最终给出适合的档位组。
据前所述,本文中某个视频的定义如下:
是档位组的变化。是档位组带来的成本变化,此处成本包含是带宽成本、计算成本、存储成本等。则若视其差值为,结合消费用户信息,优化目标为:
也就是说我们优化 进而优化,整体的UIAE算法框架如图4-2所示。
图4-2 UIAE技术详细框架
下文中我们将首先介绍Video Value Prediction,构建视频价值模型以预估视频的未来价值,该模型不仅用在UIAE上,在其他场景也有贡献;其次将详细介绍UIAE算法,即如何从个性化角度计算档位组合;再次介绍如何统筹转码资源,从全局视角最大化,最后介绍相关的实验能力。
价值预测的建模方法主流可分为两种,一种是基于时序预测其预测目标,更适合有一定周期性的领域场景, 另外一种是使用DNN等深度网络直接回归建模,通用性更强。
在短视频转码场景,视频价值判断所面临挑战主要在于:
方案
为了增加视频价值模型的通用性,建模目标包括但不限于未来多个时间段的播放量、播放时长、点赞量、下载量等,我们统一用表示预测目标,表示真值。
可选的Loss设计如MSE和Huber Loss以及Weighted log loss等常见的loss函数。模型结构:这里给出线上使用过的一种视频价值模型结构,DNN + LHUC + BIAS,如图4-3所示:
图4-3 视频价值预估价值模型
评估指标:如Regression-AUC和MAE等。
下文给出了此种设计与Rule-based的Topvv策略(依据当前播放量)和大v策略(依据作者粉丝数)的对比效果:
表 4-1 效果评估
若认可用户会因为客观因素(如机型性能,网速)和主观倾向不同而对播放的档位存在差异化需求,如4-4所示。
图4-4 用户观看视频的不同档位
那么对某一个具体的视频,针对消费群体,应当转码为哪些版本才是最优?这个是User-Item Aware Encoding(UIAE)需要去解决的问题。
不同于推荐可以得到较为精准的反馈信号,播放场景下很难精准得到关于一个视频的最优档位组的反馈。因此一种可行的做法是类似于梯度上升的迭代思路,在视频的整个消费周期内设定消费窗口,在每个窗口下都计算未来最合适的档位组,以此不断地迭代档位组, 确保其不断逼近理想值。
图4-5 档位组收益曲线示意图
基于此思路,我们给出一种技术方案如下图所示:
图4-6 User-Item Aware Encoding整体方案
建模算法思路如下:在转码侧,通常重在关注流畅体验和画质体验,即:
过往的播放体验建模方式通常是对流畅度和画质不同的权重加和。但不同用户在不同视频上对流畅和画质的需求存在不可忽略的差异,转码引入个性化是必要手段。一种可行的采用播放序列最大逼近建模的做法思路如下:
所控制的编码选项包括但不限于以下维度,对不同视频的相关性能(画质、码率、编码速度)表现可预计算(预测)出(即CAE编码的常用工作方式)并供UIAE和Resource Allocation Model决策使用:
表 4-2 编码控制参数
当一个视频通过UIAE决策得到档位组,即可进行转码并消费,但从全局角度看,转码调度并非一个简单All-in操作。
对于转码调度,全局优化目标可以设置为:
其中,表示视频,表示转码档位或者档位组。是转码带来的带宽消耗变动。表示转码带来的存储成本变动。表示总可用资源数,一般是是一个常量。表示视频转了档位(组)。代表视频转了档位组需要消耗的cpu计算资源。
表示档位组的带宽消耗:
表示的各个档位在削峰阶段播放的档位消费占比,则是根据档位组的用户消费加权估计带宽。
用于估算给定档位组的计算成本:
表示处理方式,包括使用何种编码器、处理模块、所选参数等,表示所使用的资源类型如CPU、FPGA、GPU等,函数用于估计档位组的计算成本。
用于估算给定档位组的存储成本:
仔细观察优化目标,是带有约束条件的最优化问题(背包问题),但直接求解会遇到如下问题:
因此可采用近似流式处理方式,每此处理一个小批次,并重新定义可用资源。
表示当前可使用的转码Quota。Quota的定义是参考视频转码1秒指定参数档位所需的转码成本。对于新的视频档位编码耗时预估,特征主要是参考视频,参考档位参数,以及新视频,新档位参数,新视频的预编码结果,做一个回归模型即可预估出来转码档位组所需的Quota。的计算逻辑可采用PID或其他控制算法,动态调整的大小,流程如下图所示:
图4-7 转码流程示意图
与常见的AB实验不同,在视频类实验中需要进行诸多额外实验能力的设计以支持前述算法的迭代工作。首先,由于资源约束,通常转码类实验需要针对部分视频进行,仅影响一小部分视频,因此需要设计策略标签能力,对用户层AB实验与视频策略间建立映射关系,示例如下图:
图4-8 视频策略AB实验示意图
一些基础的需求如下:
其次,应当支持摒除推荐内容影响的实验方式,并在实验过程中尽量区分出对不同用户的影响,借鉴搜索场景常见的interleaving实验方式在经常会提到,把要对比的两个排序结果混插到一起,发给同一个用户,在某些场景下将能带来较好的评估作用:
图4-9 AB Testing与interleaving示意图
上图是Interleaving实验的大致流程,最终返回给用户的是merge之后的结果,即同一个用户在一次feed中既看到了实验组的结果,也看到了对照组的结果。对于一次feed请求,有两种方式进行点播策略interleaving:
最后,上述做法在评估某种转码策略的效果时,会对某一个源文件的不同对比策略各自转码,随后比较实验组和对照组的业务效果,所需资源较大、实验周期较长。此处介绍一种新的实验方法,称之为“Quasi Experimental”,能够在节约转码资源的情况下,快速准确的评估转码策略的价值。
该方案主要是基于现有观测数据人为构造实验组、对照组以及相应的播放行为,业务指标/性能指标。以转码策略评估为例,具体方案如下:
收益估计:在实验组T与对照组C中,令观测指标(如播放时长)在视频集合X上的统计值表示为和,则
(这里是简化计算所使用的常数,一般取值在2-3之间) 性能指标估计,统一以如播放vv的指标调整结果为基准:
由于一般的投稿的选取与剪辑过程过于私人化,此处假设用户已经完成视频的编辑,重点介绍一些较为通用的决策问题,依据合成编码、上传和优先级设置划分成三部分,参考图5-1:
图5-1 投稿体验优化过程
由于投稿视频的编码质量会影响转码后的产物,进而影响播放消费,因此投稿优化时应当对端到端进行统筹考量,即除提升投稿场景的业务价值外,也考虑投稿体验带来的消费价值。整体的优化目标参考下式:
在实际优化时,对用户体验目标的权衡主要可以分成两类:
同时,投稿场景也存在多种优化影响路径,试分析几例如下:
1.优化发布内容的视频质量,以提升作者满足度,取得收益,即
2.优化发布时长,以此发布成功率的提升,进而取得收益,即
3.直接优化发布成功率,取得收益,即
从影响路径的视角看,章节基于预见的合成主要基于思路1和2,章节精细化上传发布主要基于思路2,章节自适应优先级主要基于思路3。
此外,在投稿优化工作中,与Streaming与Playback(流媒体播放)的工作类似,可以构建投稿过程的用户个性化偏好,同时建设与此过程对应的用户、视频的特征与画像,据此迭代各问题的优化过程,本章重在介绍投稿过程中,可以个性化决策的问题本身,即其目标权衡、决策内容及影响路径,对如何求解不再过多描述。
当用户创作完毕后,需要对素材进行合成编码,传统做法是根据预配置的合成编码参数对素材、滤镜、特效等进行编码等处理。但预配置的合成编码参数是一种平权参数,忽视了每个用户对视频编码结果预期,同时用户所处的环境会改变用户预期,如使用不同机型、在不同网速条件下也有不同,基于此思考,我们充分挖掘用户和视频特征,采用个性化的技术方案对编码方式以及编码参数做智能预测。
在合成阶段,主要基于路径1和2以最大化收益,一种可行的思路是将过程拆解为我们称之为Smart Encoding Model和Dynamic Encoding Parameter两个模块,逐次优化,每个模块可以互不干扰,Smart Encoding Model需要解决的问题是选择编码模式,Dynamic Encoding Parameter需要解决的问题是在已经决定了编码模式的情况下选择具体的编码参数,此处由于两个子问题优化目标一致,也可以尝试联合决策。
智能编码模型
对于编码模式选择问题,我们定义 ,即动作包括软件编码、硬件编码、跳过编码等不同分支,由于此问题上用户之间相互独立,即,设上传时长为、编码时长为,则优化目标为:
图5-2展示了该编码模式选择的思路:
5-2 智能编码决策
由于上传和合成编码可以同步进行,即当合成一段视频时,对处理好的部分能够直接进行上传而非等待合成全部完成。用户感知发布时长取决于上传时长和合成时长的最大值,而上传时长又取决于合成方式 带来的文件大小。实践中,我们可以直接决策如何选择,即预估skip、soft、hard等不同分支,以及各编码分支中后续编码参数的选择概率,以最小化发布时长,进而获取业务收益。
注意此处的编码时长是根据进行修正过的,即 ,对消费价值高的视频允许以更长的时间进行编码,虽然投稿速度的下降可能让创作者不满,但由于发布的视频质提升,对其内容的消费体验提升,会进而提升创作者体验,二者综合仍然可以得到整体的提升。
动态编码参数选择
编码参数对上传体验优化影响较大,常见做法是定义一些预置的编码参数配置,但容易忽视每个用户对不同视频内容编码结果的预期,与前文的工作方式类似,我们首先定义所有可选择的编码参数集合,建立Decider函数并融入个性化特征求解,即,在与方面寻求更佳的平衡点:
式中其他元素与前面章节类同,动作选择包含各种编码相关参数QP、FPS、HDR、Codec、Bitrate、Audio Channel等,整体思路如图5-3所示,步骤大致如下:
在对文件进行上传的过程中,同样存在若干可以决策的环节,例如从所有可用上传节点中选择较高质量的节点,开启分片上传(Chunked Mode)或者流式上传等,分片上传是一种常见手段,即将文件切分成不同大小,分别进行上传,流式上传把整个文件划分较小的Range持续发送。常见的上传过程如图5-4所示:
图5-4 发布上传过程简要
在上传阶段,我们将作为优化目标,即
一次对视频的上传,其时长主要受建连耗时和上传耗时影响,其中流式上传(Streaming Mode)可视为分片数等于1的分片上传,式中则表示失败重传次数,表示分片并行数。在此式中上传决策主要包括CDN质量节点选择、文件分片大小、流式上传、分片并行粒度等,其中CDN质量选择策略和流媒体播放章节所述相近,下面将进一步讨论。
分片上传的主要影响因素在于,过小的分片会导致整体建连耗时增加,但分片失败率降低,过大的分片则相反,同时分片大小往往不易及时调整,此外,由于分片上传通常利用普通的文件上传协议,对上传节点友好,易于使用并行、多节点上传等更复杂的技术。流式上传通过断点续传机制减少重试,同时减少分片之间等待Ack和Response时间,从而降低文件的上传时长,相当于等于1的分片上传,优点是传输过程控制灵活,缺点是容错实现稍为复杂,且不易并行。不同的方法各有其优缺点,因此需要个性化决策(图中的Upload Decider)的内容包括:
此外,为了进一步压缩发布时长,还可以考虑采用预发布的技术,即在用户未点击“发布”按钮时,通过将合成完成的视频文件提前加密上传,以缩短用户真正发布动作后所感知到的上传时间,需要注意的是,此项技术仅应当在获得用户授权允许的情况下使用,加密操作的目的也是避免任何其他人得到一个非最终版本。此时,优化目标将改为下式,其中代表加密所需时间,若预发布部分所提前的时间较大,则整体可以达成优化:
明显可见,如果用户在发布前犹豫过久,甚至可以达成点击即发布成功的效果,但这一方法也存在明显代价,用户可能取消发布动作或回退修改,导致浪费,因此还需要对同一用户的多次投稿行为进行估计,以使相应节约带来的收益大于某次预判错误带来的损失。
当端上用户点击发布视频之后,往往会切到其他页面继续浏览视频,甚至切换到其他app使用,这样会导致系统上传进程优先级降低甚至被杀死,进而引发上传失败。简单的做法是强制提高上传进程优先级(比如将进程从后台切换到前台),但这种方法虽然能提升发布成功率,却可能劣化其他体验(如消费侧卡顿,系统功耗上升等),引发用户不满,因此,如何更合理的分配进程优先级成为一个可以进行个性化决策的问题。如图5-6所示:
图5-6 上传优先级决策示例
对于进程优先级决策的问题,我们可以定义优化目标为最大化的与的之和(如果app被切到后台,则的项为0),公式为:
其中为上传进程优先级,是上传进程优先级调整策略,为消费进程优先级。是消费进程优先级调整策略。和是互相独立的策略,二者需要同时满足总资源约束。代表资源消耗,如CPU、内存、带宽等。在求解的过程中,为了简化端上计算复杂度,可以考虑采用贪心策略,即最大化优先级的同时,保持近似不劣化,即
例如,当应用执行视频上传动作时,用户将app切换到后台,则我们可能应当将后台上传进程转至前台进程(提高优先级),确保上传的成功率,提升用户体验。但当用户正在其他页面行动时,则不应提升上传优先级,甚至应当暂停合成或传输,为用户其他出让CPU、内存或网络带宽资源,虽然投稿本身的失败率可能增加,但用户更即时的兴趣得到较好满足,整体体验是提升的。
在过去数年的工作中,以上体系的工作与传统音视频优化工作相比较,额外收益幅度如下(即不计入如编码器升级、传输协议优化、工程改造等常规音视频工作内容),也即该体系带来的增量优势:
表6-1 各个方向收益概览
竞争视角看,字节跳动自2019年以来,在不同市场均已逐步成为Tier 1的短视频服务提供商,侧面印证了上述技术的成功。
在本文中,我们介绍了字节跳动自2019-2023年间短视频服务的部分工作及其成果,系统性地阐释、构建了个性化播放这一前沿、交叉的技术域,明确地定义了该领域中的一系列子问题,并给出了部分问题的实际解法。在这一新技术领域中,我们认为应当:
本文虽以短视频播放相关技术为例,但其思想也完全适用直播等其他音视频领域的工作,例如,与点播相比较,直播在技术指标上将关注额外的实时性要求,在技术重点上关注拓扑,在此之上同样应当将系统整体抽象为面向业务目标的优化问题,以个性化决策驱动各环节工作的演进。又例如,本文主要讨论的优化范围集中在应用内部,但各种相关、衍生的问题也完全适用同样的方法进行改造。
音视频技术领域的广泛开展若自微软的DirectShow技术发表计,已接近30年,服务数十亿用户,基于编码与视频处理技术、传输协议、工程框架、云服务等环节展开的工作虽然不断演进,提升难度却与日俱增,边际价值逐年减少,但这并非说明该领域已然日薄西山,由我们开拓的个性化视频技术体系,改变了该领域的边界与工作重心,其可以更具想象力地容纳多种传统音视频技术以外的技术发展与其交叉(包括流行的LLM/AIGC技术),可以拓展出新的、广阔至近乎无限的提升上限,让世界上数十亿用户都能更好地享受音视频技术带来的生活提升。
👇点击阅读原文,跳转原论文了解更详细内容。