具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“***”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的***所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书一些实施例所示的视频推荐应用场景示意图。
如图1所示,本说明书所涉及的视频推荐***100的应用场景可以包括一个或一个以上终端110、第一计算***120、第二计算***150和/或第三计算***160。
第一计算***120可以用于获取候选视频112;候选视频112可以通过终端110获取。候选视频112可以通过各种常见的方式进入第一计算***120。如WIFI、蓝牙、微波通信等手段。通过第一计算***120中的镜头特征提取模型122,可以将所接收到的候选视频112转化为镜头特征130。具体地,第一计算***120可以基于获取到的多个候选视频112拆分出多个视频镜头对应的视频片段;进而基于训练好的镜头特征提取模型122以及多个视频镜头中的每一个所对应的视频片段,生成所述多个视频镜头对应的多个镜头特征130。在一些实施例中,第一计算***120还可以基于多个镜头特征130生成每个候选视频对应的视频特征向量140,以提供给第三计算***160进行判定。
第二计算***150可以用于将初始模型152训练成判别模型162。在一些实施例中,初始模型152包括初始化的第一镜头特征提取模型、初始化的第二镜头特征提取模型以及初始化的判别模型。在该场景的实施例中,第二计算***150可以获取第一训练集,第一训练集中包括多个视频对,其中每个视频对中均包含对应的第一样本视频对应的图像特征、第二样本视频对应的图像特征以及标签值,所述标签值反映第一样本视频和第二样本视频之间的相似程度。进一步地,第二计算***150可以基于所述第一训练集,通过多轮迭代来训练初始模型152的参数,以生成训练好的判别模型162。
在本说明书的一个或多个实施例中,模型(例如,镜头特征提取模型122、初始模型152或/和判别模型162)可以指基于处理设备而进行的若干方法的集合。这些方法可以包括大量的参数。在执行模型时,所使用的参数可以是被预先设置好的,也可以是可以动态调整的。一些参数可以通过训练的方法获得,一些参数可以在执行的过程中获得。关于本说明书中涉及模型的具体说明,可参见本说明书的相关部分。
第三计算***160可以用于基于训练好的判别模型162进行判定任意两个候选视频之间的相似程度,基于相似程度确定推荐视频集170。
需要说明的是,以上涉及的第一计算***120、第二计算***150和第三计算***160可以相同也可以不同。第一计算***120、第二计算***150和第三计算***160是指具有计算能力的***,可以包括各种计算机,比如服务器、个人计算机,也可以是由多台计算机以各种结构连接组成的计算平台。
第一计算***120、第二计算***150和第三计算***160中可以包括处理设备(图中未示出)。处理设备可以执行程序指令。处理设备可以包括各种常见的通用中央处理器(Central Processing Unit,CPU),图形处理器(Graphics Processing Unit,GPU),微处理器,特殊应用集成电路(Application-Specific Integrated Circuit,ASIC),或其他类型的集成电路。
第一计算***120、第二计算***150和第三计算***160中可以包括存储介质(图中未示出)。存储介质可以存储指令,也可以存储数据。存储介质可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。
第一计算***120、第二计算***150和第三计算***160还可以包括用于内部连接和与外部连接的网络。也可以包括用于输入或输出的终端。网络可以是有线网络或无线网络中的任意一种或多种。
在一些实施例中,第一计算***120所获取的候选视频112可以来自一个或多个终端110。在本说明书的一个或多个实施例中,终端110可以是带有信息获取、存储和/或发送功能的设备,所述设备包括但不限于移动设备110-1、平板电脑110-2、台式电脑110-3、摄像装置110-4等中的一种或几种的组合。在一些实施例中,终端110可以包括智能家居设备、可穿戴设备、智能移动设备、增强现实设备等或其组合。
在一些实施例中,终端110可以用于获取候选视频112。候选视频112可以是广告视频、动画视频、电影电视剧视频、教学视频等。可以理解,候选视频112可以由多个不同镜头组成。关于基于候选视频112确定镜头特征的更多描述可参见图3,在此不再赘述。
目前,新兴互联网方式不断兴起,社会性网络服务社区也在不断发展壮大,多媒体内容发展态势迅猛。其中,互联网视频处于开拓性媒体发展中,但如何保持用户规模增长,如何深耕存量客户将成为关键问题。因此,各大视频平台致力于主动向用户推荐其感兴趣的视频,以最大限度地提升用户的观看时间。
通常,在确定用户感兴趣视频时,需要向用户推荐部分相似度较低的视频,以快速确定用户的喜好。现有视频相似度分析技术,通常是基于视频内容来实现,主要是提取待处理视频中关键帧,并提取该关键帧的深度学习特征,按照抽帧的时间依次比对两个视频中各帧图像之间的相似度,从而基于各帧图像之间的相似度预测出两个视频之间的相似度;此方法在视频数量少的情况下是能够接受。但是,面对信息***时代产生的海量视频,对视频推荐***的处理能力和处理速度提出了严苛的要求,如果仍采用关键帧来计算视频之间的相似度,耗时长,速度慢,严重影响视频推荐的速度。
在本说明书涉及的一个或多个实施例中,可以基于获取到的多个候选视频拆分出多个视频镜头对应的视频片段;并基于训练好的镜头特征提取模型以及所述多个视频镜头中的每一个所对应的视频片段,生成所述多个视频镜头对应的多个镜头特征;进而基于多个镜头特征生成每个候选视频对应的视频特征向量;据此以及训练好的判别模型确定任意两个候选视频之间的相似程度,由此确定相似度较低的推荐视频集。采用这种向量表征的方法进行相似程度判断,判断的效率更高,且随着训练深度和训练样本量的提升,相似程度判断的准确性也会随之提升。
进一步地,在本说明书涉及的一个或多个实施例中,还可以基于聚类算法对多个视频特征向量进行聚类,获得多个视频聚类簇;基于多个视频聚类簇确定推荐视频集。采用这种方式,可以更加准确并快速地获取相似度较低的推荐视频集。
图2A-2B是根据本说明书一些实施例所示的一个视频推荐***的***框图。
如图2A所示,***200布置可以布置在计算***(如图1中的第一计算***120、第二计算***150和/或第三计算***160)上。***200可以包括候选视频获取模块210、视频片段拆分模块220、镜头特征提取模块230、视频特征向量生成模块240、推荐视频集确定模块250。
候选视频获取模块210,用于获取多个候选视频。
视频片段拆分模块220,用于基于获取到的所述多个候选视频拆分出多个视频镜头对应的视频片段。
镜头特征提取模块230,用于基于训练好的镜头特征提取模型以及所述多个视频镜头中的每一个所对应的视频片段,生成所述多个视频镜头对应的多个镜头特征。
视频特征向量生成模块240,用于基于所述多个镜头特征生成每个候选视频对应的视频特征向量。
推荐视频集确定模块250,用于基于训练好的判别模型以及候选视频对应的视频特征向量确定任意两个候选视频之间的相似程度,基于所述相似程度确定推荐视频集。
在一些实施例中,推荐视频集确定模块250还用于:基于聚类算法对所述多个视频特征向量进行聚类,获得多个视频聚类簇;基于所述多个视频聚类簇确定推荐视频集。在一些实施例中,推荐视频集确定模块250进一步用于:确定推荐视频集的预设值;多次采用聚类算法处理所述视频特征向量,直至所得的视频聚类簇的数量大于所述推荐视频集的预设值;随机选取个数与预设值相等的多个视频聚类簇;从选取的每个视频聚类簇中分别获取一个候选视频,以确定所述推荐视频集。
在一些实施例中,视频片段拆分模块220还用于:获取所述候选视频的多个视频帧以及各个视频帧的图像特征;根据所述视频帧的图像特征,分别计算各个视频帧与从多个视频帧中预选定的视频帧之间的相似度,以确定镜头边界帧;根据镜头边界帧,将所述候选视频分割为多个视频片段。
在一些实施例中,镜头特征提取模型是基于序列的机器学习模型。在该场景的实施例中,如图2B所示,镜头特征提取模块230进一步包括:视频帧获取单元231,用于获取每一个视频镜头对应的视频片段中的多个视频帧;图像特征确定单元232,用于确定每个视频帧对应的一个或多个图像特征;镜头特征确定单元233,用于基于训练好的镜头特征提取模型处理所述多个视频帧中的图像特征以及多个视频帧中图像特征之间的相互关系,确定视频镜头对应的镜头特征。
在一些实施例中,镜头特征提取模型和判别模型为第一神经网络模型的子模型,所述第一神经网络模型包括第一镜头特征提取模型、第二镜头特征提取模型以及判别模型,所述第一镜头特征提取模型、第二镜头特征提取模型的具有相同的模型结构;所述镜头特征提取模块还包括第一神经网络模型训练单元234,所述第一神经网络模型训练单元234用于:获取第一训练集,所述第一训练集中包括多个视频对,其中每个所述视频对中包含对应的第一样本视频对应的图像特征、第二样本视频对应的图像特征以及标签值,所述标签值反映第一样本视频和第二样本视频之间的相似程度;以及基于所述第一训练集,通过多轮迭代来训练第一初始模型,以生成训练好的第一神经网络模型;其中,所述第一初始模型包括初始化的第一镜头特征提取模型、初始化的第二镜头特征提取模型以及初始化的判别模型。
在一些实施例中,第一神经网络模型训练单元234用于多轮迭代来训练第一初始模型,以生成训练好的第一神经网络模型,其中每轮迭代包括:获取前一轮迭代中生成的更新后的第一初始模型;对所述每个视频对,利用更新后的第一镜头特征提取模型处理所述视频对中的第一样本视频对应的图像特征,获得对应的第一镜头特征;利用更新后的第二镜头特征提取模型处理同一视频对中的第二样本视频对应的图像特征,获得第二镜头特征;利用更新后的判别模型处理所述第一镜头特征和所述第二镜头特征,生成判别结果,所述判别结果用以反映第一镜头特征和第二镜头特征的相似程度;基于所述判别结果以及所述标签值判断是否进行下一轮迭代或者就此确定训练好的第一神经网络模型。在一些实施例中,所述视频帧对应的图像特征包括以下特征中的至少一个:视频帧中对象的形状信息、视频帧中多个对象之间的位置关系信息、视频帧中对象的色彩信息、视频帧中对象的完整程度和/或视频帧中的亮度。
应当理解,图2A-2B所示的***及其模块可以利用各种方式来实现。例如,在一些实施例中,装置及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行装置,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和装置可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的装置及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
图3是根据本说明书一些实施例所示的模型训练方法中一轮迭代更新的示例性流程图。
流程300中的一个或多个步骤可以由图1中任一计算设备(如第一计算***120、第二计算***150和/或第三计算***160)执行。在一些实施例中,流程300可以进一步由***200执行。
步骤310,获取多个候选视频。在一些实施例中,步骤310可以由候选视频获取模块210执行。
候选视频可以是广告视频、动画视频、电影电视剧视频、教学视频等之中的任意一个。在一些实施例中,候选视频可以通过电视、户外广告屏、电子设备(如手机、电脑、智能穿戴设备等)的网页或弹窗等形式呈现给受众群体。候选视频(如广告等)通常都是由多个镜头组合而成,其中包含不同的场景、人物、商品等信息。
步骤320,基于获取到的所述多个候选视频拆分出多个视频镜头对应的视频片段。在一些实施例中,步骤320可以由视频片段拆分模块220执行。
视频片段可以是构成候选视频的图像序列的子序列,且视频片段可以理解为一段连续的且未经拼接的视频。在一些实施例中,一个候选视频可以仅包括一个视频片段,则整个在广告视频作为一个视频片段。在另一些实施例中,一个候选视频可以由多个镜头片接拼接而形成,两个相邻的视频片段的连接处的一个或多个连续的视频帧可以称为镜头边界帧。在一些实施例中,视频片段拆分模块220可以以视频片段为单元对候选视频中的多个视频片段进行分割。在将候选视频分割为多个视频片段时,可以在镜头边界帧处进行分割。
具体地,将候选视频分割为多个视频片段的方法可以具体可以包括以下具体流程:步骤1,获取候选视频的多个视频帧以及各个视频帧的图像特征;步骤2,根据视频帧的图像特征,分别计算各个视频帧与从多个视频帧中预选定的视频帧之间的相似度,以确定镜头边界帧;步骤3,根据镜头边界帧,视频片段拆分模块220可以将候选视频分割为多个视频片段。
视频帧中的图像特征可以包括但不限于视频帧中对象的形状信息、视频帧中多个对象之间的位置关系信息、视频帧中对象的色彩信息、视频帧中对象的完整程度和/或视频帧中的亮度中的一种或多种的组合。
视频帧中的对象可以理解为每个镜头片段中所出现的主要物体。例如,对象可以包括生物(人、动物等)、商品(汽车、日用品、装饰品、化妆品等)、背景(山、路、桥、房子等)等。
视频帧中对象的形状信息是指视频帧中对象的轮廓曲线信息。如物体的轮廓,外形等信息。多个对象之间的位置关系信息是指多个物体/人体之间的方位、距离等空间距离信息,例如可以是物体参考点的坐标的信息。
对象的色彩信息是指对下的色彩度等信息;对象的完整程度是指拍摄到目标对象的完整程度(比如,图片中仅拍摄到目标人物的半个人脸,1/3个人脸等);视频帧中的亮度是指照片中亮度值信息。
在一些实施例中,在上述步骤1中,视频片段拆分模块220还可以使用特征提取模型来获取视频帧的图像特征。例如,特征提取模型能够识别每个视频中的对象,并获取对应的图片特征。有关特征提取模型的更多描述可参见步骤330的相应描述,在此不再赘述。
在上述步骤2中,视频片段拆分模块220可以将两个视频帧的图像特征的内积作为这两个视频帧之间的相似度。在一些实施例中,计算各个视频帧与从多个视频帧中预选定的视频帧之间的相似度可以是计算各个视频帧与其前和/或后相邻的视频帧之间的相似度。例如,在确定镜头边界帧的过程中,可以计算各个视频帧与其前和/或后相邻的视频帧之间的相似度,如果两个相邻的视频帧之间的相似度低于相似度阈值,则确定这两个相邻的视频帧为镜头边界帧。在一些替代性实施例中,视频片段拆分模块220也可以采用训练好的判别模型实现两个视频帧相似度的判定。有关训练好的判别模型可参见步骤350、图5的具体说明,在此不再赘述。
在上述步骤2中,也可以是计算各个视频帧与其前和/或后间隔预设间隔帧数(如间隔3帧、5帧、7帧等)的视频帧之间的相似度。假定预设间隔帧数可以设定为2帧、3帧或5帧等。如果计算出两个视频帧之间的相似度小于预设阈值,则将这两个视频帧之间的视频帧作为候选分割区域,而这两个视频帧作为候选分割区域的边界帧。例如,预设间隔帧数为2帧,则可以计算第10帧和第14帧之间的相似度,如果该相似度小于相似度阈值,则将第12帧和第13帧作为候选分割区域,第10帧和第14帧为候选分割区域的边界帧。然后,还可以进一步对候选分割区域进行融合,即将重叠的候选分割区域合并到一起。如第12帧和第13帧为候选分割区域,第13帧和第14帧也为候选分割区域,则将第12、13和14帧合并为一个候选分割区域。
步骤330,基于训练好的镜头特征提取模型以及所述多个视频镜头中的每一个所对应的视频片段,生成所述多个视频镜头对应的多个镜头特征。在一些实施例中,步骤330可以由镜头特征提取模块230执行。
在本说明书的实施例中,镜头特征提取模块230可以基于训练好的镜头特征提取模型对所述多个视频片段进行处理,以生成对应的镜头特征。具体地,其可以包括以下步骤:
步骤S11:镜头特征提取模块230可以将每一个视频镜头对应的视频片段中的多个视频帧。视频帧可以理解为按时间间隔将连续影像分解得到对应的帧图像。例如,每帧图像之间的时间间隔可以示例性地设置为1/24s(也可称1秒内间隔获得24帧图像)。在一些实施例中,步骤S11可以由视频帧获取单元231执行。
步骤S12:镜头特征提取模块230可以基于特征化提取处理获取每个视频帧对应的一个或多个图像特征。在一些实施例中,步骤S12可以进一步由图像特征确定单元232执行。特征提取处理可以是指对原始信息进行处理并提取特征数据,特征提取处理可以提升原始信息的表达,以方便后续任务。
在一些实施例中,特征化提取处理可以采用统计方法(例如主成分分析方法)、降维技术(例如线性判别分析方法)、特征归一化、数据分桶等方法。示例性地,以视频帧中的亮度为例,镜头特征提取模块230可以将亮度值在0~80以内按比例对应[1, 0,0],亮度值80-160按比例对应[0, 1, 0],亮度值在80以上对应[0, 0, 1]。
然而,由于所获得的图像特征是多样的,有些获得的图像特征难以用固定的函数或者明确的规则衡量。因此,特征化提取处理也可以借助于机器学习的方式(如采用特征提取模型),可以通过采集到的信息自动学习来形成可预测的模型,从而获取较高的准确性。特征提取模型可以是生成模型、判定模型,也可以是机器学习中的深度学习模型,例如,可以是采用yolo系列算法、FasterRCNN算法或EfficientDet算法等的算法的深度学习模型。机器学习模型可以在每个视频帧的画面中检测到已设定的需关注的对象。需要关注的对象可以包括生物(人、动物等),商品(汽车、装饰物、化妆品等)、背景(山、路、桥、房子等)等。进一步地,对于视频而言,需关注的对象可以进一步进行设定,例如可以设定为人物或商品等。可以将多个镜头片段输入该机器学习模型中,机器学习模型能够输出各个镜头片段中的对象的位置信息、亮度等图像特征。
需要说明的是,本领域技术人员可以任意地变化所使用的特征提取模型,本说明书对此不做限制。如特征提取模型可以是GoogLeNeT模型、VGG模型、ResNet模型等。通过使用机器学习模型的方式来提取视频帧的特征,可以更加准确地确定图像特征。
步骤S13:镜头特征提取模块230可以基于训练好的镜头特征提取模型处理所述多个视频帧中的图像特征以及多个视频帧中图像特征之间的相互关系,确定视频镜头对应的镜头特征。在一些实施例中,步骤S13可以由镜头特征确定单元233执行。训练好的镜头特征提取模型可以是一个基于序列的机器学习模型,其可以将一个可变长度的输入变为固定长度的向量表达进行输出。可以理解,由于不同镜头的时长不同,其对应的视频帧的数量也有所不同,通过训练好的镜头特征提取模型进行处理后,可以将其转化为固定长度的向量进行表征,有助于后续的处理。
示例性地,基于序列的机器学习模型可以是深度学习模型(DNN),循环神经网络模型(LSTM)或者双向长短时记忆(Bi-directional LSTM,Bi-directional Long Short-TermMemory)模型,门重复单元GRU模型等及其组合构成,本说明书在此不做限制。具体地,将步骤2中获得视频帧对应的图像特征(如1,2,3…,n各特征)及其关系(如顺序序列和/或时间先后关系)输入镜头特征提取模型中,镜头特征提取模型就可以输出各个时刻的编码隐藏状态的序列(如h1~hn),其中,hn包含了这一段时间内镜头的所有信息。通过这样的方式,镜头特征提取模型可以将一段时间内(如某个镜头对应的视频片段)的多个图像特征转化为一个固定长度的向量表达hn(即镜头特征)。有关镜头特征提取模型的训练过程可参见图5的相应描述,在此不再赘述。
可以理解,对于候选视频中的多个镜头,可以分别采用以上步骤和方法进行处理,以得到不同镜头的镜头特征。在此,假定某一候选视频(候选视频c)的镜头分别为1,2,3…,m,相对应获得的镜头特征为
后面的描述中沿用此设置。
步骤340,基于所述多个镜头特征生成每个候选视频对应的视频特征向量。在一些实施例中,步骤340可以由视频特征向量生成模块240执行。
视频特征向量生成模块240可以基于候选视频中各个镜头的获取顺序以及镜头特征,生成候选视频对应的视频特征向量。示例性地,视频特征向量生成模块240可以采用向量拼接、向量串接等方式获得候选视频对应的视频特征向量。以候选视频c为例,续前例,候选视频c对应的视频特征向量
其中上标T表示矩阵转置。
步骤350,基于训练好的判别模型以及候选视频对应的视频特征向量确定任意两个候选视频之间的相似程度,基于所述相似程度确定推荐视频集。在一些实施例中,步骤350可以由推荐视频集确定模块250执行。
推荐视频集确定模块250可以基于训练好的判别模型对任意两个候选视频对应的视频特征向量进行相似程度判定,基于所有相似程度判定结果确定推荐视频集。
假定有a,b,c…k个候选视频,分别具有对应的视频特征向量
推荐视频集确定过程具体地可以由如下步骤实现:
步骤S1:选择k个候选视频中的其中一个(如选择候选视频c),分别计算其视频特征向量
与另外(k-1)个候选视频特征向量的相似程度,得到所有的相似程度对比结果,并将相似程度最小的一组候选视频置于推荐视频集中(示例性地,如候选视频a,c对应的视频特征向量
,
相似程度最小,则将a,c加入推荐视频集中);
步骤S2:剩余的候选视频(如k-2个)进一步获得与推荐视频集中已有视频相似程度的平均值,将相似程度平均值最低的一个候选视频增加至推荐视频集中(示例性地,如候选视频a,c已经存在与推荐视频中,则进一步确定剩余视频对应的视频特征向量与
的平均值,将平均值最小的视频增至推荐视频集中);
步骤S3:采用步骤S2中的方式逐个挑选相似程度最低的候选视频,直至选出的视频数量满足预设要求。
在一些实施例中,在上述步骤S1中,推荐视频集确定模块250可以将两个候选视频的视频特征向量的内积作为这两个候选视频之间的相似程度。在一些实施例中,推荐视频集确定模块250还可以使用向量相似度系数来判定两个候选视频之间的相似程度。相似度系数指的是利用算式计算样本间的相似程度,相似度系数的值越小,说明个体间相似度越小,差异越大。当两个候选视频之间的相似度系数很大,则可判断两个候选视频之间的相似程度较高。在一些实施例中,所使用的相似系数包括但不限于简单匹配相似系数、Jaccard相似系数、余弦相似度、调整余弦相似度、皮尔森相关系数等。
在一些实施例中,在上述步骤1中,推荐视频集确定模块250也可以使用训练好的判别模型获取候选视频之间的相似程度。有关判别模型的训练过程可参见图5的相应描述,在此不再赘述。
在一些实施例中,推荐视频集确定模块250还可以采用聚类算法确定对多个视频特征向量进行聚类,获得多个视频聚类簇,进而基于多个视频聚类簇确定推荐视频集。
具体地,假定所需获得的推荐视频集需要的视频数量(即推荐视频集的预设值)为P,实际所得的聚类簇的数量为Q。若推荐视频集需要的视频数量P小于或者等于实际所得的聚类簇的数量为Q,则选取P个聚类簇,并从每个聚类簇中选择一个候选视频;若推荐视频集需要的视频数量P大于实际所得的聚类簇的数量为Q,则可以从每个聚类簇中选择若干个远离聚类中心的候选视频,随机抽取P个视频以构成推荐视频集;
在一些实施例中,推荐视频集确定模块250可以基于密度的聚类算法(如DBSCAN密度聚类算法)获得多个视频聚类簇。具体地,推荐视频集确定模块250确定所需的推荐视频集的预设值,即确定推荐视频集需要视频的个数(数量为P);进一步地,确定聚类的邻域参数
,其中,
对应聚类簇在向量空间中的半径,MinPts对应形成聚类簇所需的样本个数的最小值,得到数量为Q的聚类簇,多次调整邻域参数
并对视频特征向量进行聚类处理,直至所得的聚类簇数量Q大于等于推荐视频集的预设值P为止。此时,随机选取个数与预设值P相等的多个视频聚类簇;从选取的每个视频聚类簇中分别获取一个候选视频,以确定推荐视频集。
应当理解的是,上述关于流程300的描述仅为示例性的,并不用于限制本说明书的保护范围。对于本领域的技术人员来说,可以在本说明书的指导下做出多个修正和改变。然而,这些修正和改变不会脱离本说明书的保护范围。
图5是根据本说明书一些实施例所示的模型训练过程的示例性流程图。
流程500中的一个或多个步骤可以由图1中任一计算设备(如第一计算***120、第二计算***150和/或第三计算***160)执行。在一些实施例中,流程300可以进一步由***200执行。在一些实施例中,流程300可以进一步由镜头特征提取模块230执行。在一些实施例中,流程300可以更进一步设置由第一神经网络模型训练单元234执行。
如图4是根据本说明书一些实施例所示的模型结构的示意图。图4中,第一神经网络模型包括第一镜头特征提取模型、第二镜头特征提取模型以及判别模型,第一镜头特征提取模型、第二镜头特征提取模型的具有相同的模型结构;第一神经网络模型进一步基于流程500的方法进行训练。需要说明的是,第一镜头特征提取模型、第二镜头特征提取模型中的任意一个均可实现步骤330中对所述多个视频镜头中的每一个所对应的视频片段进行处理,以生成所述多个视频镜头对应的多个镜头特征。
步骤510,获取第一训练集。
第一训练集是指用于训练第一初始模型的训练样本集。第一训练集中包括多个视频对,其中,每个视频对中包含对应的第一样本视频对应的图像特征、第二样本视频对应的图像特征以及两个样本视频对应的标签值。将第一样本视频、第二样本视频获得对应图像特征可以采用特征化提取处理的方式获得。有关图像特征、特征化提取处理的更多说明可参见图3步骤330的详细描述,在此不再赘述。
视频对中的标签值反映第一样本视频和第二样本视频之间的相似程度。样本集中的标签值可以由人工标注,也还可以由相对应的机器学习模型对视频对进行自动标注。例如,可以由训练好的分类器模型获得每个视频对的相似程度。
在一些实施例中,获取第一训练集的方式可以是从如摄像头、照相机、智能手机等图像采集器或者图1中的终端110获取。在一些实施例中,获取第一训练集的方式可以是直接从存储了大量图片的存储***中读取。在一些实施例中,还可以采用其他任意方式获取第一训练集,本实施例不做限制。
第一初始模型可以理解为一个未经训练的神经网络模型或未训练完成的神经网络模型。其进一步包括初始化的第一镜头特征提取模型、初始化的第二镜头特征提取模型以及初始化的判别模型。初始模型的各层可以设置有初始参数,参数在训练过程中可以被不断地调整,直至完成训练为止。
步骤520,基于所述第一训练集,通过多轮迭代来训练第一初始模型,以生成训练好的第一神经网络模型。其中每轮迭代进一步包括:
步骤521,利用更新后的第一镜头特征提取模型处理所述视频对中的第一样本视频对应的图像特征,获得对应的第一镜头特征。
第一镜头特征提取模型是一个基于序列的机器学习模型,其可以将一个可变长度的输入变为固定长度的向量表达进行输出。具体地,在本说明的一个或多个实施例中,第一镜头特征提取模型基于视频对中的第一样本视频对应的图像特征进行前向传播,获得对应的第一镜头特征。
步骤522,利用更新后的第二镜头特征提取模型处理同一视频对中的第二样本视频对应的图像特征,获得第二镜头特征。
与步骤521类似,第二镜头特征提取模型基于同一视频对中的第二样本视频对应的图像特征进行前向传播,获得对应的第二镜头特征。
步骤523,利用更新后的判别模型处理所述第一镜头特征和所述第二镜头特征,生成判别结果,所述判别结果用以反映第一镜头特征和第二镜头特征的相似程度。
判别模型可以是一个分类器模型,其用于确定第一镜头特征与第二镜头特征之间的相似程度。例如,判别模型可以获取到第一镜头特征和第二镜头特征在向量空间之间的距离。向量空间之间的距离越小,说明两个镜头特征越相似。又例如,判别模型还可以确定第一镜头特征与第二镜头特征之间的相似概率值。
步骤524,基于所述判别结果以及所述标签值判断是否进行下一轮迭代或者就此确定训练好的第一神经网络模型。
在判别模型前向传播获取到判别结果后,可以基于判别结果以及样本标签构建损失函数,基于损失函数反向传播以更新模型参数。在一些实施例中,可以将训练样本标签数据表示为
判别结果表示为
计算得到的损失函数值表示为
在一些实施例中,根据模型的类型可以选择不同的损失函数,如将均方差损失函数或交叉熵损失函数作为损失函数等,在本说明书中不做限制。示例性地,
在一些实施例中,可以采用梯度反传算法更新模型参数。反向传播算法会对特定训练样本的预测结果与标签数据进行比较,确定模型的每个权重的更新幅度。也就是说,反向传播算法用于确定损失函数相对每个权重的变化情况(亦可称为梯度或误差导数),记为
更进一步地,梯度反传算法可以将损失函数的值通过输出层,向隐层、输入层逐层反传,依次确定各层的模型参数的修正值(或梯度)。其中,各层的模型参数的修正值(或梯度)包括多个矩阵元素(如梯度元素),其与模型参数一一对应,每个梯度元素反映参数的修正方向(增加或减小)以及修正量。在本说明书涉及的一个或多个实施例中,判别模型反传完成梯度后,其进一步向第一镜头特征提取模型,第二镜头特征提取模型逐层反传模型参数,以完成一轮迭代更新。相比于各个模型单独训练而言,采用第一镜头特征提取模型、第二镜头特征提取模型以及判别模型联合训练的方式采用统一的损失函数进行训练,训练效率更高。
在一些实施例中,可以基于判别结果以及标签值判断是否进行下一轮迭代或者就此确定训练好的第一神经网络模型。判断的标准可以是迭代次数是否已经达到预设迭代次数、更新后的模型是否满足预设的性能指标阈值等又或者是否收到终止训练的指示。若确定需要进行下一次迭代,则可基于当前次迭代过程更新后的模型的第一部分进行下一次迭代。换句话说,将在下一次迭代中将当前次迭代获得的更新后的模型作为下一轮迭代更新的初始模型。若确定不需要进行下一次迭代,则可将当前次迭代过程中获取的更新后的模型作为最终训练好的模型。
本说明书实施例可能带来的有益效果包括但不限于:1)基于训练好的镜头特征提取模型将可变长度的镜头视频变为固定长度的向量表达进行输出,有助于使用聚类算法进行处理;2)基于聚类算法对多个视频特征向量进行聚类,可以更加准确并快速地获取相似度较低的推荐视频集;3)采用第一镜头特征提取模型、第二镜头特征提取模型以及判别模型联合训练的方式,可以提高训练的效率。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的***组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的***。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。