张 赟,沈兵虎,王李冬
(1.浙江传媒学院 浙江广播电视技术研究所,杭州 浙江 310018;2.杭州师范大学钱江学院,杭州 浙江 310018)
随着移动互联网和智能手机的普及,多媒体技术、网络通信、视音频处理等相关技术的快速发展,视频数据正在以惊人的速度增长。例如,YouTube每分钟约有超过100小时的新视频上传,其视频播放次数已达到每个月50亿次以上,而以爱奇艺、优酷、腾讯为代表的中国在线视频市场近年来保持快速增长,用户数量不断激增,它们在节目资源、内容推荐、互动交流等方面具有优势,但是在海量视频资源的组织和展示方面存在不足。目前,大多数在线视频平台在节目搜索和推荐过程中主要采用线性结构展示节目,该方式简单直观,但是难以满足大数据时代下用户对视频信息的立体全方位需求。面对海量的视频内容和用户的个性化需求,如何实现视频节目的高效组织和展示,以扩大视频的传播范围,提升用户的满意度是目前需要解决的主要问题。为了提升用户的视频观看体验,文中围绕以下问题展开研究:视频特征提取与表示、视频的层次化搜索和层次化推荐。
图1给出了系统流程。系统以人工上载和异构系统导入的视频编目数据为输入,通过用户行为分析和节目内容聚合,实现视频的层次化搜索和推荐。系统首先上载新节目,导入异构系统的媒资编目数据,并进一步提取和表示节目特征;然后,对新媒体媒资库中的视频内容进行聚合分析及用户喜好和行为分析;最后,根据以上分析结果,实现视频的个性化搜索和推荐,并以层次化方式进行展示。
文中主要研究基于文字和图像特征的节目特征提取与表示。如图2所示,视频节目的来源主要包括本地节目人工上载和异构编目数据的自动导入。对于本地节目,需要用户手动添加标题、关键帧、标签、内容描述、节目看点等信息。为了将电视台媒资数据高效地应用到新媒体平台,提出了异构编目数据的自动导入,此时系统能够从编目信息中自动提取标题、关键帧、标签、内容描述等信息,并且能够自动将节目片段转换为节目看点。为了实现节目中重要人物、事件的关联性,建立人物事件库。基于以上编目数据和特征库,进一步在节目中添加人物、事件,自动提取出人物视频节目的缩略图,并提取节目中的用户评论、点赞等UGC信息。下面对以上流程的关键步骤进行说明。
图2 节目特征提取与表示流程
(1)自动提取节目看点。
从异构媒资库中导入的编目数据包含节目层和片段层。如图3所示,视频节目由4个独立的片段组成,片段间的部分是节目转场、广告之类的无效内容。由于经过编目的片段很好地表示了节目中的主要内容,因此,直接将每个片段的起始点作为节目看点(如进度条上的小白点所示),每个片段的标题作为片段的内容描述。
图3 节目看点自动提取示意图
(2)人物和视频节目的缩略图自动提取。
文中研究的层次化视频节目搜索和推荐,需要采用基于图的结构来表示节目间的关联性,其中图的节点需要相应的缩略图来表示其内容(视频节目或人物)。目前圆形头像是较为流行的缩略图形式,但是如果逐个进行人工处理,不仅费时费力,而且效果不佳。文中针对人物照片和视频关键帧进行了缩略图的自动提取。
对于人物,首先采用Adaboost算法[1-3],通过多个级联的Haar特征弱分类器构建出强分类器,实现人脸的自动准确定位。定位出人脸区域后,进一步从人脸中心向外扩展一倍距离,实现头像区域的准确切割,如图4所示,文中方法能够较好地实现人物缩略图的准确提取。
对于视频节目图像,首先通过重要性区域检测,得到图像中的重要区域,然后以该区域的重心为圆心,切割出覆盖大多数重要性区域的圆形缩略图。为了达到比较好的效果,采用基于区域对比度的视觉显著性区域检测算法[4-5],同时考虑全局对比度和空间相关性。如图4所示,文中提取出的缩略图,能够很好地表示节目的主要信息,通过自动批处理大大减轻了人工劳动。
图4 人物和视频节目的缩略图自动提取示意图
首先对搜索关键词进行内容分析,如果属于人物,则搜索与其相关的视频节目和人物,如果属于节目名称,则首先找到与该关键词匹配度最高的中心节目,然后进一步深度搜索相关的视频节目和人物,并绘制层次化图结构表示搜索结果。层次化视频节目搜索算法细节如下所示,该算法的关键在于人物和视频节目的相似度匹配。
算法:层次化视频节目搜索算法。
输入:搜索关键词K。
输出:节目搜索结果多叉树T。
根据关键词K,确定关键词类型(人物、节目名称)
IF关键词K属于人物
将人物作为根节点R加入T
搜索与该人物相关的视频节目S
搜索与该人物相关的其他人物P
将相关度较高的视频节目和人物节点作为R的子节点加入T
ELSE
搜索与K最相关的中心视频节目,并作为根节点R加入T
搜索与中心节目相关的人物P和节目S
将相关度较高的视频节目和人物节点作为R的子节点加入T
从树的第二层节点开始,按照层次遍历顺序对每个节点N(i)都重复以下操作
搜索与N(i)相关的其他人物
搜索与N(i)相关的视频节目
将相关度较高的视频节目和人物节点作为N(i)的子节点
下面详细说明相似度匹配算法。
(1)给定人物P,搜索与之相关的视频节目T。
从媒资数据库中直接搜索包含该人物的视频节目,并计算人物与视频节目之间的相关度Sim(P,T)。
Sim(P,T)=
(1)
(2)给定人物P,搜索与相关的人物P'。
首先从媒资数据库中搜索出与人物P相关的所有视频节目,然后从这些节目中找出其他人物,并计算出人物之间的相关度Sim(P,P')。将人物P'出现在不同地方的次数进行加权可以得到P和P'的相关性。
(2)
其中,n1为出现在标题的次数;n2为出现在主要人物字段的次数;n3为出现在其他位置的次数。
(3)给定视频节目T,搜索与之相关的其他视频节目T'。
节目间的相似性度量比较复杂,需要综合考虑类型、标题、标签、人物等信息,通过向量余弦相似度来度量其相似性,如式3所示。由于标题和内容描述是整段文字,无法直接比较,文中利用TF-IDF算法[6-7]对标题、内容描述进行分词,然后提取出各自的关键词,生成各自的词频向量。然后,对标题、标签、人物分别计算其余弦向量值,并加权平均,从而得到节目之间的相似性。
(3)
文中首先对多个节点相似性度量进行归一化和加权,然后根据多叉树每个层次的子节点与父节点的相似性进行节点排序,将排名靠前的节点作为子节点,其余节点将优先出现在下一层次。为了得到更好的可视化效果,每个层次显示的节点数需要控制在一定范围。通过层次化搜索,能够得到表示搜索结果的多叉树,实现节目多叉树的展示,如图5所示。其中虚线标出的白色圆圈表示中心根节点,灰色圆圈表示视频节目节点,黑色圆圈表示人物节点。由于多叉树的形状不规则,节点数量多,需要合理布局才能呈现较好的可视化效果。根据节点包含的子节点的个数来确定边的长度,并且通过模拟节点间的弹性碰撞检测避免节点的重合,并产生合理的空间布局。文中采用集成于Qt的OpenGL图形库进行多叉树的绘制[8],将节点作为图形元素,用户通过点击查看节点所代表的人物或视频信息,可以拖动节点以改变多叉树的空间布局。
图5 层次化视频节目展示效果
用户登录后,首先进行用户喜好登记和用户行为分析,然后根据以上分析向用户推荐其可能喜欢的视频节目和人物,再进一步地针对推荐的节目深度搜索相关视频,最后绘制出层次图结构呈现推荐结果。
首先采用基于传统的推荐算法[9-11]得到用户感兴趣的视频节目和人物,然后对推荐结果进行聚类,此时的聚类中心就是第一层次推荐结果,第二层次推荐结果即各聚类对应的结果,之后进一步深度搜索产生更多层次的推荐结果。下面重点介绍推荐算法和推荐结果的聚类。
综合考虑用户喜好和用户行为数据进行协同过滤推荐,在用户相似性计算中考虑用户喜好的相似性。相似性计算考虑以下两个方面:(1)两个用户喜好的相似性,包括喜欢节目类型和用户标签的相似性;(2)两个用户观看节目中相同节目数量,即两个用户观看的相同节目越多其相似度越高。
文中通过计算向量余弦相似度来量度用户相似性,如式4所示,用户相似度是两个向量余弦的加权平均。其中第一项表示用户喜好相似性的余弦值,第二项表示用户观看节目数量的余弦值。为了更好地表示用户行为,不仅计算共同观看的节目数量,还要比较其观看时间,因为用户短暂浏览的节目大多是不感兴趣的。若用户a或b对某节目的观看时长很短,则不认为该节目是共同观看过的节目;若用户a和b观看的时长都较长,则该节目是两者共同观看过的节目,需要增加其权重。对于用户喜欢的人物,主要从用户喜好的标签、节目评论、观看记录来分析,或某人物在用户行为和喜好中重复出现,则说明用户对与该人物和与之相关的视频节目感兴趣。
(4)
得到用户的推荐结果后,采用AP方法[12]进一步对推荐节目进行聚类。该方法无需预先指定聚类中心,鲁棒性强且准确性高,在数据量不大时效率较高(推荐节目的数量一般小于50)。聚类算法的输入是所有数据样本两两比较的相似性矩阵,其关键是定义节目间的相似性S(i,j)。文中根据节目标签、标题、类型、内容描述、人物等信息定义节目间的相似性,通过向量余弦相似度表示。
文中开发了软件系统,能够实现视频节目的特征提取与表示、层次化的视频节目搜索和推荐。在视频节目上载过程中,用户可以添加标题、分类、标签、人物、看点等主要信息,添加好的看点会在进度条上生成相应的“小白点”,并从系统人物库中添加重要人物和事件。对于异构的编目数据,用户通过简单操作就可以自动将异构系统的数据迁移到新系统,并自动生成节目看点。
在层次化搜索过程中,系统能够通过多叉树结构直观高效地展示出搜索结果,为了显示效果,初始给出两层搜索结果,用户可以通过点击交互进一步深入搜索。多叉树中每个节点都是人物或视频节目的缩略图,用户通过鼠标点击可以方便地了解视频节目或人物的详情。
在层次化推荐过程中,用户登录后,系统根据当前用户的个人喜好、观看记录等信息,给出层次化的推荐结果,且推荐结果具有一定的代表性和准确性,能够更好地满足用户的个性化视频观看需求。
提出了视频节目的层次化搜索和推荐方法,能够实现视频节目的特征提取与表示、视频节目的层次化搜索和推荐。开发的系统在浙江广电集团和桐乡市电视台的新媒体部门进行了试运行,结果表明系统操作简单、运行高效,能够实现海量视频节目的高效搜索和推荐,层次化的交互方式也得到了大多数用户的好评。
今后,将进一步利用大数据分析[13]、深度学习[14-15]等方法实现更好的视频节目的搜索和推荐,为用户提供更加高质量的个性化服务。在交互展示方面,将继续研究更加友好的节目交互和展示方式,从而不断提升用户的节目观看体验。