背景
新冠疫情是把双刃剑,一方面阻碍人们出行,线下经济受很大影响,但是大大加速直播带货这一商业模式。淘宝直播作为集团直播带货的主力产品,无论是生产侧扩大开播的店家和达人,还是分发侧为用户推荐质量最好的直播内容,都需要直播间实时理解能力。通过这一能力为运营提供主播评级,评价体系,为推荐算法提供丰富的特征优化推荐效果。
▐什么是实时内容理解
内容理解算法一般是指图片、视频分类识别,ASR,OCR等。这些算法可以处理批量离线任务,如分析一段监控视频,处理爬取的一部分视频,这些不需要及时返回结果,而有些则需要很快返回处理结果,比如人脸识别门禁。实时内容理解时效性要求高,对后台服务的稳定性也有很高要求。直播的时间跨度长,可能连续几个小时不停,做好稳定高效的直播内容理解,需要算法的推理时间足够快,资源利用率尽量高并且和服务端协调配合好。
▐利用内容理解优化直播推荐效率
直播质量好不好,受几方面影响:1 画面是否高清,低时延; 2 直播内容否有吸引力,是用户感兴趣的类型; 3 直播带货场景还要看卖的东西质量好不好,价格低不低。第一个问题借助淘宝自研的视频编解码技术可以解决,第三个问题需要在商品库对比,以及根据用户反馈了解。实时内容理解算法主要解决第二个问题,通过识别主播多个维度的信息判断其吸引力。
内容理解之后,还要考虑和推荐算法如何结合。目前推荐算法还是以用户行为特征为主,在曝光充分的内容上,用户行为还是非常置信的,比如抖音上一些热门内容确实是大部分人感兴趣的。但是在曝光不充分的内容上,用户行为比较少,需要根据内容本身的特点来做推荐。例如Youtube上有大量用户新上传的视频,新视频曝光比较低,谷歌利用视频打标算法,计算视频标签,给用户推荐有感兴趣标签的视频来做新内容的冷启动。对于直播,每一场都可以理解为一个新的视频,而且是在视频进行过程中做推荐,这样就更需要内容理解。
推荐算法分召回,排序,重排等阶段,内容理解的特征如果放到召回,排序模型里要考虑特征覆盖度,以及和其他特征融合,这样做会比较复杂,有时候内容理解的特征是准确的,但是和用户行为特征放一起可能没有什么增益。而放到重排阶段则比较灵活,可以将内容理解结果变成一定的权重去调整排序顺序,或者做些过滤。
直播实时内容理解算法框架
淘宝直播每天有数万场直播,直播持续时间可能几个小时甚至十几个小时,不同的直播曝光量差别非常大,所以我们先从头部主播实时分析入手。直播最关键的两个要素是主播和商品,目前我们只关注主播方面的理解。首先从直播人脸检测,声音分类,以及颜值几个业务和运营侧反馈比较重要的特征入手。
首先我们搭建直播metaq消息监听服务。直播间状态变化非常复杂,比如有时候会发生断流,有时候主播会暂时离开,有时候宝贝袋增加商品,同一个直播间的消息可能被不同的机器接收到,前期我们花费很多时间在直播消息处理上,由于一场直播的流地址是固定的,最终为了简化这些逻辑,我们只处理直播间开播和关播消息。
在统计头部这些直播的pvr时(曝光覆盖比例),我们发现头部几千场直播可能就占到很高的曝光覆盖,所以我们从直播推荐团队拿曝光日志计算前一天的头部主播。整个直播的曝光日志里有公域和私域之分,我们的统一只计算公域的流量数据,然后落到odps表中。
拿到直播url之后我们首先尝试flv格式的直播流,解码机器不断的解码然后抽帧输入下游模型,这种流程解码机器的利用率不是很高,因此我们的抽帧频率不是很密集,10-20秒抽取一帧,而且直播间可能会暂停/断流,所以我们改用hls格式,以ts为单位输入下游解码服务,对比前一种拉流方式,并发处理能力提升了1倍以上。
主播属性特征
主播相关的特征多种多样,有稳定特征比如人脸,声音,还有实时特征比如表情,动作等。为了最大化ROI以及方便推荐算法使用,我们和运营以及推荐算法同学总结了以下几大方面的人物属性,通过算法逐渐识别出这些属性标签。这些主播标签无论是作为运营的活动抓手,分析工具,还是帮助推荐算法训练更好的模型都很有价值。
常用的人物属性分视觉和声音两个维度,我们联合VIP团队搭建了一套多模属性识别框架,如下图所示。从直播流中采样视频帧和声音数据,然后分别输入声音识别模块和视觉识别模块。目前声音模块主要包括男/女声,有无人声分类模型以及asr识别模型,视觉模块包括人脸人体检测跟踪,人脸属性识别,以及图像质量分析模块。从单模型的输出又可以衍生出其他的一些特征,比如asr结果可以用计算语速特征,视觉性别和声音性别判断结果组合起来可以筛查跨性别特色主播。
下面介绍我们在属性识别方面的一些成果:
▐人脸属性
相比人脸检测识别算法,属性识别算法如性别,颜值,年龄,表情识别在通用场景下的识别准确率不是非常高,一方面是由于数据集偏少,另一方面是属性特征偏主观,另外化妆和美颜工具会明显干扰这些属性。在属性特征里,颜值属性对用户体验影响最大,所以人脸属性重点围绕颜值做了一些尝试。
由于颜值比较偏主观,我们尝试众包服务标注数据,但是不同标注者的结果之间差别还是很大,最后算法同学又亲自筛选一遍。首先使用二分类模型,判断颜值高低,然后将算法筛选出的高颜值主播给运营同学,再由运营分成高,中高,中低,低等颜值类型去做实验。算法侧使用分类模型softmax之后的分类做为颜值分使用。
我们考虑到对比两个图片的颜值选择更高的,这个任务可能会更简单一点,于是尝试了pair-wise排序的方案,结果在区分明显的高,低颜值的数据上表现和分类模型一样,在中颜值数据上,由于排序任务也解决的不好,所以排序模型的结果和分类也没有很大差别。
下面是高颜值:
对比其他公司颜值API结果:
调用百度、旷视的颜值API接口在我们的测试集合上,PR曲线和ROC曲线对比结果如下:
▐人脸识别
人脸识别通常有两种做法,一种是通过分类模型,每个人是一个类别,这种方案效果比较好,但是如果新增人物还需要重新训练模型,所以灵活性不是很高,另一种方案是计算人脸feature,将待识别的人物特征存下来,使用时用同样的模型计算人脸feature,然后检索目标人物。由于直播业务里主播流动性比较大,所以我们使用检索方案做人脸识别。人脸识别我们使用ArcFace模型计算feature,然后使用聚类和rerank识别人脸身份。
▐ 音频特征
许多直播间没有主播露面只有解说,比如卖珠宝首饰的。所以音频特征是直播间实时理解不可或缺的一块。目前我们已经接入PAI平台的EasyASR算法,并且和PAI团队合作建设了男声/女声,有无人声,以及背景音乐特征,Acc指标在90%以上,这些特征支持了空镜头识别以及变性人识别等服务。
业务落地
直播间实时内容理解主要服务于推荐算法,相比内容生产直接产出素材,或者审核业务给出分类打标结果,推荐业务将实时内容理解结果加入推荐流程更加复杂,目前特征的使用有两种方式,一种是将特征加入模型训练,在inference时也需要将实时特征加入打分,这种方式需要积累长时间的特征,目前排序算法训练需要两个月以上日志,这种方式代价比较高;另一种使用方式是将特征融合为权重分,在排序结果基础上进行加降权来影响结果。下面介绍在不同应用场景下内容理解算法的用途。
▐ 排序算法
从手淘首页的淘宝直播卡片进去就是直播频道页,这个页面主要展示直播间的封面图,同时会展示某一个直播间的实时画面。推荐算法在这个场景下主要关注ctr和直播停留时长指标,用户在这个页面主要根据封面图来判断是否点击,在wifi环境下会播放一些直播画面。如上文所述特征加入模型训练的方案需要积累很长时间日志,所以我们使用加降权的方式进行实验。
由于频道页展示的主要是封面图,我们猜测有高颜值人脸的封面图会更加吸引人,于是尝试了对高颜值主播做加权,但是这次实验使用的高颜值主播是经过运营筛选后的主播id,而直播的人和封面图里的人很多是不一样的,而且一个直播间可能有许多主播,不同时间的主播颜值也不一样。实现结果显示高颜值主播的ctr没有增长,整桶的指标也没有正向变化。后续我们会直接计算封面图中的人脸颜值继续实验。
频道页尝试的第二个实验是空镜头打压。直播的时间往往很久,经常会出现一些空镜头(没有主播讲解),运营同学做过体验分析,其中空镜头问题占了很大的比例,而且空镜头特征是二分类问题,很适合做调权,所以我们先实验空镜头分析服务在频道页的效果。
空镜头可以从画面和声音两个维度来判断,由于频道页里是听不到声音的,所以我们根据是否出现人脸来判断直播间是否是空镜头,而某些行业其实不需要露脸,所以我们只挑选女装,服饰等几个主播会出镜的行业。由于频道页很多直播只出现封面图,所以实验结果我们分析的这些直播的ctr和用户时长指标有1%-1.2%的提升。
从频道页点进去就是上下滑场景,用户看到的是直播间内容,而且是有声音的。所以更适合实时内容理解算法落地,比如空镜头打压。我们结合人脸检测和asr结果,判断直播间一段时间内是否出现人脸,是否有人说话,合并cv和音频特征输出当前直播间是否是空镜头。
(空镜头case)
实验开始的时候base桶和基准桶指标基本持平,由于我们只覆盖了头部主播,所以需要统计服务分析的这部分直播的效率,发现在短时长,高空镜率的直播上,实验桶上用户平均时长有明显增加,然后进一步分析发现是拉流服务机器OOM挂掉,导致直播分析时长过短。修复了工程上一些bug后,分析覆盖的部分直播上用户平均时长和pv都有明显增长,整桶指标也因为体验优化而增长,人均时长和pv以及整体pv都有2%以上的增加。
▐ 负向治理
- 新奇内容治理
跨性别特色主播
直播内容丰富多彩,主播使用各种手段来吸引眼球,软色情是最常见的一种,其中近几个月发现了变性人主播的情况。变性人主播是指一些男性主播通过变性或变妆为女性从事直播活动,直播内容以变性人等作为亮点吸引点击,存在较大的舆情隐患。为了对变性人主播进行识别,我们利用变性人主播画面性别为女性,声音性别为男性的特点对淘宝主播进行排查。相关模型的准确率:
labe | 准确率 | |
画面性别二分类 | 男性/女性 | 0.97 |
声音性别二分类 | 男声/女声 | 0.88 |
由于直播间可能存在多主播情况,比如女主播漏面男主播在画面之外解说,或者男女主播同画面解说,所以通过声音加视觉性别不一致识别出的跨性别特色主播会有误召回的情况,算法识别结果经由运营同学核验才会最终打上变性人标签,结合a2a(account 2 account)相似主播扩展,我们累计了几十个变性人主播账号。在公域场景下减小透出频率避免连续刷到多个变性人的情况改善用户体验。
▐ 明星助理代播直播
明星播与助理代播
随着直播带货这一形式的兴起,一些明星也加入淘宝直播开启带货职业。运营同学分析从2021年1月1号开始的明星公域流量的使用情况发现,明星整体公域uv成交价值超过MCN机构均值。但用户停留时长,整体低于MCN均值。进一步统计发现在明星助理直播时间段,所有公域转化数据都低过MCN大盘且垫底。这说明在原来明星本人直播后改成助理直播之后,整体转化受影响最严重。许多用户是看到直播间的明星封面图进入直播间的,如果发现不是明星在直播,会有种上当受骗的感觉。所以为了鼓励明星本人直播,同时提升公域流量的转化率,我们做了明星直播间实时识别,辅助流量调控。
联合淘宝直播推荐团队我们在首猜信息流、频道页、上下滑场景下对明星直播间进行调权处理,使明星账号感受到明星播和助理播的差别,做出改变。实验中我们还发现,明星直播间pv曝光减少后,ctr和人均时长有一定程度增长。
小结
直播间实时内容理解需要搭建强大的计算平台,目前我们的服务使用EAS,TPP,VIP,IGraph,MetaQ,ODPS等多个平台,工程链路调试起来比较麻烦,机器资源耗费也很大,为了增加模型处理能力,新的算法还会往RTP平台部署,而新平台还在建设中,需要一边造一边用。内容理解算法怎么和推荐算法结合,也是需要注意的一点,短视频或者图像可以离线处理,算法保留结果即可,但是直播内容是实时处理的,需要和推荐算法深度绑定。最后的一点感受是一定要对业务场景理解透彻,不同的场景下有效特征也是不一样的。
原文:
作者:淘系技术