1.前言
1.1 迅猛发展的短视频业务
短视频一般指长度在5分钟以内的视频内容。由于用户时间碎片化、移动互联网和智能手机的快速普及、制作门槛低等原因,短视频最近几年引起广泛关注。从2011年的萌芽,到2015年快手、美拍等异军突起,到2016年抖音、火山小视频等迅猛发展,短视频正在抢占越来越多的用户注意力和流量,重塑着用户的信息获取习惯。
截止目前,短视频月活用户已经达到了4亿左右,人均日观看时长超过了60min,覆盖用户类型广泛,粘性强,明显挤占了用户在社交、影音、游戏、新闻等应用上的花费的时间。
1.2 淘宝短视频现状
目前淘宝内的视频量已达2.6亿+。大量淘宝/天猫的商品头图展示从静态图片换成了短视频,全方位展示商品的使用方式和细节;大量买家秀采用了视频形式,给予用户更可靠更直观的购买参考;直播视频里的大主播,吸粉和带货能力惊人;达人视频制作精美、形式多样,给用户更愉悦的浏览体验。视频量和用户需求都急剧增大的现状,对视频推荐算法提出了更高的挑战。
本文主要简述近半年来,在哇哦视频和首页猜你喜欢视频这两个场景上,对视频推荐算法做的一些实践。
哇哦视频是针对时尚年轻、购买力中上的用户群的视频产品,涵盖了穿搭、美妆、美食、萌娃、萌宠、数码、健身等领域。投放内容池由数十万达人视频和数十万商品视频组成,全部经过质量筛选和人审,风格多样,制作精美,期望用户多逛多停留,进而引导下单。
猜你喜欢视频是云主题的重要组成部分,在猜你喜欢瀑布流中会根据用户偏好以一定频次投放视频。投放内容池主要是数百万商品视频,同样经过质量规则筛选,主要承担引导用户下单的功能。
在以上两个场景的瀑布流里,点击视频都会跳转到全屏承接页,在该页面可以完成浏览相关商品、进入达人页面、点赞、评论、转发、下滑继续浏览等动作。
1.3 视频推荐算法框架
视频推荐算法的大框架与商品推荐基本相似,都是由以下几部分组成:
- 召回,即根据用户近期行为,获取几千个左右的候选集。
- 排序,一般分初排和精排。初排即较粗略的排序模型,会对候选集进行初步打分,之后截断成为几百个。精排即复杂度较高的排序模型,可能是多个不同目标模型的融合,会对候选集进行较精细的打分,之后截断成为一百个左右。
- 业务策略,即基于用户体验的一些去重与打散策略。
本文将先介绍视频特征体系,然后按这个框架来分块介绍视频推荐,重点陈述视频推荐不同于商品推荐的部分。
2. 视频特征体系
我们构建的视频特征体系主要由id类特征、商品泛化特征、视频统计类特征、视频内容特征、标签特征等。
- id类特征,由视频id、作者id等组成。
- 商品泛化特征,主要来自于视频挂载的商品性质。例如,商品id、类目id、虚拟类目id、店铺id、品牌id、商品所属性别、商品所属购买力、商品标签等等。
- 视频统计类特征,即视频在不同场景、类目、作者等维度下,统计的播放率、平均播放时长、有效播放率等等指标。
- 视频内容特征,即关键帧图像特征、音频特征,可以对视频内容/风格进行更精细的刻画
- 视频标签特征,即基于多分类模型的、可扩展的网状型的标签体系结构,覆盖视频所属的体感类目与泛内容维度的相关标签,这些标签的组合就是对视频内容的浓缩描述。目前主要产出了服饰领域的标签体系,正在不断完善中。
3. 基于视频的召回
3.1 RankI2V Recall
淘宝视频的特点是,绝大多数视频是挂靠有相关商品的。因此,视频推荐的最初版召回,就是直接利用商品推荐中的i2i召回,扩展为i2i2v召回,即:以用户最近点击/收藏/购买/加购的商品集作为trigger item set,找到与其相似的candidate item set,再根据视频挂靠商品的关系,找到candidate video set,优先召回热度较高的video。同理,也可以将c2i扩展为c2i2v,seller2i扩展为seller2i2v等等。这个版本的优点是可以充分利用已有框架和数据,快速上线。但缺点也很明显:同个商品可能挂靠许多视频,无法评估这些视频对于特定用户的价值;对商品感兴趣不代表对相关视频感兴趣,这其中有很大的gap;用户对视频的行为信息完全没有加以利用,比如观看时长、点赞、关注等,而这些信息才是最有价值的。
因此,我们实现了RankI2V召回方式,直接从商品来召回视频。主要思路是:以全屏承接页播放日志构造sample,以停留时长作为label,结合trigger item、video相关商品、video本身的特征,使用gbdt模型,直接对item到video的关系进行打分。
1)构造样本:
- 在前述的i2i2v召回的基础上,可以从日志中获取每次用户观看视频时的trigger item、所观看video、以及观看时长
- 清洗掉异常数据后,以时长很短的观看作为负样本(相当于没有看),时长较长的播放时长作为正样本,实际播放时长作为正样本权重
- 重采样,保证对于同一个user和同一个trigger item,样本集中同时存在正样本和负样本
2)构造特征集,主要有三部分特征:
- trigger item的特征,如类目、价格、热度、动态评分等自然属性,以及其在全站的不同时间切片内的曝光点击指标,所属卖家、类目等维度的曝光点击指标等等
- video的特征,分别统计在全站/哇哦视频场景内的,按类目、发布者、不同时间维度的,曝光、点击、有效播放率、完播率、次均/人均播放时长等指标
- item与video的相似关系,如是否属于同一类目、是否属于同一卖家,该item与视频相关item的相似分数等等
3)model:
- 采用gbdt模型,pairwise loss来训练
在两个场景的线上实验中,RankI2V都显著优于初版中的基于商品的召回方式(i2i2v等)。实验数据如下:
在哇哦视频的瀑布流页上线,次均播放时长上涨接近10%,人均播放时长上涨超过5%,pctr上升超过5%,uctr上升显著,正向效果明显。
在全屏承接页上线,次均播放时长提高显著,人均播放时长提高显著,正向效果较明显(全屏页场景不关注ctr,只关注播放时长)
在猜你喜欢视频上线,ctr上涨接近10%,正向效果明显。
3.2 RankV2V Recall
以商品召回视频的优点在于,用户在商品上的行为丰富且多样,可以获取较好的trigger set。然而,对于视频而言更自然的方式是以视频来召回视频,毕竟用户在商品上的偏好,不一定与对视频的偏好一致。参考RankI2V的思路,我们也实现了RankV2V召回算法。
首先,为了获取trigger video和召回video的关系,先上线了一版基于全网视频播放日志、目标为有效观看时长的、以协同过滤计算的cf v2v召回模型。上线一段时间后,积累了足够的播放行为,以此开始训练rankv2v模型。主要思路是:以全屏承接页播放日志构造sample,以停留时长作为label,结合trigger video、召回video的特征,使用gbdt模型,对video到video的关系进行打分。
1)构造样本:
- 在前述的cf v2v召回的基础上,可以从日志中获取每次用户观看视频时的trigger video、所观看video、以及观看时长
- 清洗掉异常数据后,以时长很短的观看作为负样本(相当于没有看),时长较长的播放时长作为正样本,实际播放时长作为正样本权重
- 重采样,保证对于同一个user和同一个trigger video,样本集中同时存在正样本和负样本
2)构造特征集,主要有三部分特征:
- trigger video的特征,分别统计在全站/哇哦视频场景内的,按类目、发布者、不同时间维度的,曝光、点击、有效播放率、完播率、次均/人均播放时长等指标
- 召回video的特征,与trigger video类似
- trigger与召回video的相似关系,如是否属于同一类目、是否属于同一卖家等
3)model:
- 采用gbdt模型,pairwise loss来训练
线上实验中,RankV2V召回结果虽然数量上比RankI2V少一些(原因是用户在视频上的行为远少于在商品上的行为,因此trigger set小得多),但指标上明显优于RankI2V。随着视频在全网的透出量增加,用户的视频行为进一步丰富,可以预期rankV2V的性能也会随之上升。
在猜你喜欢视频上线,ctr大涨接近15%。其中单看rankV2V的点击率,比基准桶总体高了接近50%,正向效果显著。
3.3 Realtime-based Interest
相对于商品推荐而言,实时性对于视频推荐更为重要。尤其是全屏承接页这样的场景,用户一次只沉浸在一个视频中,一旦连续下滑两三个视频都无法抓住用户兴趣,就极易使其流失。针对这种心理,我们在全屏承接页上引入了以下四种实时trigger:
- 在瀑布流中,用户通过点击某视频进入全屏页,该视频强烈地体现了用户此刻的浏览意图,将这个video加入trigger set。
- 在瀑布流中点击的视频,同时具有挂靠商品信息。该商品大概率也是用户此刻感兴趣的商品,将这个item加入trigger set。
- 在全屏页下滑浏览进入下一页时,用户对于上一页推荐的视频已经产生过了播放、点赞、评论、关注等行为,可以体现用户当前浏览兴趣,以及对下一页展现结果的期望。将用户有过正向行为的video加入trigger set。这是实时性相对最强的一种方式。
- 基于实时日志收集用户在全网的视频播放行为(延迟为几十秒到几分钟),将有过正向行为的video加入trigger set。
经实验,最终的召回优先级定为:四种Realtime-based Interest召回方式相等,同时大于其他召回方式。
在全屏承接页上线,次均观看时长上升超过10%,人均观看时长上升接近15%,正向效果显著。
在哇哦视频瀑布流上线,pctr上升明显,uctr持平,次均停留时长上升明显,人均停留时长上升明显,正向效果明显。
从实验效果来看,沉浸式的全屏页效果显著高于瀑布流页,因为瀑布流一次展现的数量较多,用户选择余地较大,而全屏页一次一个展示,对于时刻命中用户兴趣要求更高。同时,在4种实时召回方式中,上述第3种召回方式的指标优于其他,说明时效性越强的召回效率越好,与我们最初的假设是一致的。
4. 视频排序
4.1 粗排模型
经过多路召回,系统可以获取用户潜在感兴趣的视频集合。同时为了进一步提高召回的精准性,需要将多路召回的视频统一排序,以精简召回的视频集合。这一过程通过精简特征的模型在BE多路召回后进行。
视频粗排模型以ctr或停留时长为目标,进行模型训练和预测。模型为pointwise或pairewise的GBDT。
- 以ctr为主要优化目标的GBDT模型,将用户对视频是否点击作为标签,pointwise方式训练。特征主要有上下文特征,用户类特征,视频属性类特征,视频的反馈统计特征等维度。其中视频反馈统计特征里,通过时间信息计算得到的点击率特征权重较高。
- 以停留时长为目标的视频粗排模型,将停留时长离散后作为训练为目标,pairewise方式训练,特征中添加更多停留时长类的统计特征。
实验效果
- 猜你喜欢视频接入ctr的GBDT模型替换ctr的LR模型,ctr提升超过10%
- 猜你喜欢沉浸页接入停留时长的GBDT模型,PV播放时长提升接近30%,UV播放时长提升超过30%。
- 哇哦视频全屏页接入停留时长的GBDT模型,次均播放时长提升接近10%,人均播放时长提升明显
4.2 精排模型
精排通过不同目标的模型对视频进行打分。精排相对粗排在特征上更加丰富完善,同时也将不同目标的同种模型,或同目标的不同模型组合,共同计算得分。
视频精排模型主要包含以ctr为目标的XFTRL与GBDT,以及以停留时长为目标的GBDT三种模型,最终得分综合了三种模型的预测。
- ctr优化目标的XFTRL模型,特征主要包含上下文维度特征,用户维度,商品维度,视频维度的ID类和离散属性类特征,以及这几种维度的组合交叉特征。其中,用户ID、视频ID,用户最近x天喜欢的类目IDtop3与视频所对应商品的类目ID进行组合形成的特征,在模型中有较好的效果。
- 以优化CTR为目标的GBDT模型,特征方面除了在粗排中已有的上下文特征,用户特征,视频属性特征,视频的反馈统计特征外,添加视频在全场景最近x天,分作者/类目的统计特征,同时对视频的反馈统计特征进行更多分天统计的特征补充。特征集中,场景内视频的ctr类权重较高,可见该模型偏向于推荐本场景内热度较高的视频。
- 以优化停留时长为目标的GBDT模型,特征相较CTR模型增加了视频停留时长最近x天,分作者/类目的统计特征,label为离散化的停留时长。特征集中,本场景视频的播放热度、视频作者的平均播放热度在模型中权重较高。
实验效果
- 猜你喜欢视频,ctr的XFTRL模型进行优化后,ctr提升明显。接入ranki2v后,提升接近10%,合计提升接近15%;
- 猜你喜欢视频ctr的GBDT模型优化后,ctr提升明显;
- 猜你喜欢视频接入停留时长的GBDT模型,停留时长增加超过10%
5. 业务策略
推荐系统在算法对点击率与停留时长优化的同时,也需要保证良好的用户体验与流量可调控。
5.1 体验优化
为了达到良好的用户体验,视频推荐做了丰富的体验优化。同时加入集中度,相似性,以及视频发现性三个维度作为体验优化观测指标,其中集中性与相似性主要衡量页内体验,视频发现性衡量页间体验。
页内rematch:每次请求在页面内对虚拟类目,叶子类目,视频标签进行rematch,保证页面内不会连续出现同一虚拟类目/叶子类目/标签下的视频。接入页面rematch后,pv略降,点击率提升,视频集中度和相似性提升明显,用户的观感多样化得到明显提升。
页间抑制:采集视频实时曝光与点击,将最近x天内未点击的虚拟类目/叶子类目/标签适当过滤。接入页间抑制后,pv与ctr基本持平,曝光发现性提升,同类视频多天曝光现象减少。
实时黑名单过滤:针对舆情反馈与自体验较差的视频,作者,标题加入黑名单,在线上实时过滤。接入后体验提升,相关舆情较少。
购买过滤:将用户已购商品同类目下的视频过滤。接入购买过滤后pv与ctr略跌,用户体验多样化得到进一步提升。
曝光过滤:由于真实曝光收集可能出现几分钟的延时,利用实时数据库记录了伪曝光日志,同时使用真实曝光和伪曝光共同对视频过滤。接入后ctr略跌,连续的重复曝光现象明显消除。
6. 结语
相对于商品推荐而言,视频推荐算法的发展空间还很大,比如目前尝试中的multi-tag classification,利用图像、音频特征的multimodal video embedding以及RealTime Exploration Interest的模型化。欢迎有兴趣的同学与我们多多交流、多加指正。