CN118035496B - 视频推荐方法、装置、电子设备和存储介质 - Google Patents
视频推荐方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN118035496B CN118035496B CN202410450433.0A CN202410450433A CN118035496B CN 118035496 B CN118035496 B CN 118035496B CN 202410450433 A CN202410450433 A CN 202410450433A CN 118035496 B CN118035496 B CN 118035496B
- Authority
- CN
- China
- Prior art keywords
- video
- videos
- sample
- features
- loss
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 123
- 238000003062 neural network model Methods 0.000 claims abstract description 232
- 239000011159 matrix material Substances 0.000 claims description 183
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 146
- 230000003321 amplification Effects 0.000 claims description 122
- 238000012549 training Methods 0.000 claims description 116
- 238000000605 extraction Methods 0.000 claims description 69
- 230000004927 fusion Effects 0.000 claims description 50
- 230000008569 process Effects 0.000 claims description 44
- 238000012545 processing Methods 0.000 claims description 20
- 238000004364 calculation method Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 17
- 230000015654 memory Effects 0.000 claims description 11
- 238000010606 normalization Methods 0.000 claims description 11
- 230000003190 augmentative effect Effects 0.000 claims description 8
- 230000009466 transformation Effects 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000013528 artificial neural network Methods 0.000 description 19
- 239000013598 vector Substances 0.000 description 18
- 230000003416 augmentation Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000008451 emotion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/78—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/783—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/761—Proximity, similarity or dissimilarity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种视频推荐方法、装置、电子设备和存储介质。该方法包括:获取查询视频以及候选视频库;基于第一神经网络模型对查询视频以及多个候选视频进行视频特征提取,得到查询视频特征以及多个候选视频特征,第一神经网络模型基于目标损失训练得到,目标损失包括第一损失和第二损失,第一损失为基于样本视频的扩增视频及预设负样本视频的视频特征计算得到的对比学习损失,第二损失为基于样本视频与多个尺寸的截取视频的视频特征计算得到的相似度排序损失;计算查询视频特征与每一候选视频特征之间的相似度;根据相似度进行视频推荐。本公开实施例能够提高视频推荐的准确性。
Description
技术领域
本公开涉及人工智能领域,特别是涉及一种视频推荐方法、装置、电子设备和存储介质。
背景技术
目前,在视频推荐平台上,会根据对象感兴趣的内容向对象推荐视频,以增强对象黏性。在确定为对象推荐的视频时,可以根据对象感兴趣的目标视频在包含海量视频的视频库中查询相似的视频,并将相似度高的视频优先推荐给对象。
然而,在相关技术中,向对象推荐视频的推荐准确性较低。
发明内容
本公开实施例提供了一种视频推荐方法、装置、电子设备和存储介质,它能够提高视频推荐的准确性。
根据本公开的一方面,提供了一种视频推荐方法,包括:
获取查询视频以及候选视频库,所述候选视频库包括多个候选视频;
基于第一神经网络模型对所述查询视频以及所述多个候选视频进行视频特征提取,得到查询视频特征以及多个候选视频特征,所述第一神经网络模型基于目标损失训练得到,所述目标损失包括第一损失和第二损失,所述第一损失为基于样本视频的扩增视频及预设负样本视频的视频特征计算得到的对比学习损失,所述第二损失为基于所述样本视频与多个尺寸的截取视频的视频特征计算得到的相似度排序损失,所述多个尺寸的截取视频为对所述样本视频在视频帧维度进行多个尺寸的截取得到的视频;
计算所述查询视频特征与每一所述候选视频特征之间的相似度;
根据所述相似度进行视频推荐。
根据本公开的一方面,提供了一种视频推荐装置,包括:
获取单元,用于获取查询视频以及候选视频库,所述候选视频库包括多个候选视频;
特征提取单元,用于基于第一神经网络模型对所述查询视频以及所述多个候选视频进行视频特征提取,得到查询视频特征以及多个候选视频特征,所述第一神经网络模型基于目标损失训练得到,所述目标损失包括第一损失和第二损失,所述第一损失为基于样本视频的扩增视频及预设负样本视频的视频特征计算得到的对比学习损失,所述第二损失为基于所述样本视频与多个尺寸的截取视频的视频特征计算得到的相似度排序损失,所述多个尺寸的截取视频为对所述样本视频在视频帧维度进行多个尺寸的截取得到的视频;
计算单元,用于计算所述查询视频特征与每一所述候选视频特征之间的相似度;
推荐单元,用于根据所述相似度进行视频推荐。
可选地,在一种实施方式中,所述第一神经网络模型的训练过程,包括如下步骤:
获取多个第一样本视频以及多个预设负样本视频,并对每个所述第一样本视频进行视频扩增,得到多个扩增视频,所述扩增视频包括所述第一样本视频以及对所述第一样本视频进行视频扩增得到的视频;
基于第一神经网络模型对所述扩增视频进行视频特征提取,得到扩增视频特征,并基于第二神经网络模型对所述多个预设负样本视频进行视频特征提取,得到多个负样本视频特征;
基于所述扩增视频特征与所述负样本视频特征计算对比学习损失,得到第一损失;
对每一所述第一样本视频在视频帧维度上进行多个尺寸的截取,得到多个截取视频,并基于所述第一神经网络模型对所述第一样本视频与所述多个截取视频进行视频特征提取,得到第一样本视频特征与多个截取视频特征;
基于所述第一样本视频特征、所述多个截取视频特征以及所述多个截取视频与所述第一样本视频的相似度排序关系计算相似度排序损失,得到第二损失;
根据所述第一损失与所述第二损失对所述第一神经网络模型的参数进行更新。
可选地,在一种实施方式中,所述第一神经网络模型的训练过程还包括:
获取多个第二样本视频以及每一所述第二样本视频对应的分类标签;
基于所述第一神经网络模型对所述第二样本视频进行视频特征提取,得到第二样本视频特征;
基于预设分类网络层对所述第二样本视频特征进行分类,得到分类预测概率值;
基于所述分类预测概率值与所述分类标签计算分类损失,得到第三损失;
所述根据所述第一损失与所述第二损失对所述第一神经网络模型的参数进行更新,包括:
根据所述第一损失、所述第二损失以及所述第三损失对所述第一神经网络模型的参数进行更新。
可选地,在一种实施方式中,所述对每个所述第一样本视频进行视频扩增,得到多个扩增视频,包括:
对所述第一样本视频进行时序扩增,得到第一子扩增视频;
对所述第一样本视频进行空间扩增,得到第二子扩增视频;
对所述第一子扩增视频进行空间扩增,得到第三子扩增视频;
根据所述第一子扩增视频、所述第二子扩增视频、所述第三子扩增视频以及所述第一样本视频确定多个扩增视频。
可选地,在一种实施方式中,所述对所述第一样本视频进行时序扩增,得到第一子扩增视频之前,所述第一神经网络模型的训练过程还包括:
将所述第一样本视频拆分为多个视频段,并从每一所述视频段中抽取视频帧,得到多帧视频帧;
所述对所述第一样本视频进行时序扩增,得到第一子扩增视频,包括:
对所述多帧视频帧进行时序扩增,得到多帧第一子扩增视频帧;
所述基于第一神经网络模型对所述扩增视频进行视频特征提取,得到扩增视频特征,包括:
基于第一神经网络模型对多帧扩增视频帧进行视频特征提取,得到扩增视频特征,所述多帧扩增视频帧包括所述多帧视频帧、仅基于时序扩增得到的所述多帧第一子扩增视频帧、仅基于空间扩增得到的多帧第二子扩增视频帧与同时基于时序扩增与空间扩增得到的多帧第三子扩增视频帧。
可选地,在一种实施方式中,所述第一神经网络模型包括第一网络层和第二网络层,所述基于第一神经网络模型对多帧扩增视频帧进行视频特征提取,得到扩增视频特征,包括:
基于所述第一网络层对多帧扩增视频帧进行图像特征提取,得到多个帧特征;
基于所述第二网络层对所述多个帧特征进行特征融合,得到扩增视频特征。
可选地,在一种实施方式中,所述基于所述第二网络层对所述多个帧特征进行特征融合,得到扩增视频特征,包括:
基于对所述多个帧特征进行线性变换,得到第一中间矩阵、第二中间矩阵与第三中间矩阵;
对所述第一中间矩阵与所述第二中间矩阵的转置相乘后进行归一化处理,并将归一化处理结果与所述第三中间矩阵相乘,得到多个帧融合结果;
计算所述多个帧融合结果的平均值,得到扩增视频特征。
可选地,在一种实施方式中,所述特征提取单元具体用于:
从所述查询视频中抽取出多帧查询视频帧,以及从每一所述候选视频中抽取出多帧候选视频帧;
基于所述第一网络层对所述多帧查询视频帧进行图像特征提取,得到多个查询帧特征,以及基于所述第一网络层对所述多帧候选视频帧进行图像特征提取,得到多个候选帧特征;
基于所述第二网络层对所述多个查询帧特征进行特征融合得到查询视频特征,以及基于所述第二网络层对每一候选视频对应的所述多个候选帧特征进行特征融合得到多个候选视频特征。
可选地,在一种实施方式中,所述特征提取单元具体用于:
将所述查询视频拆分为多个查询视频段,以及将每一所述候选视频拆分为多个候选视频段;
从每一所述查询视频段中抽取一帧查询视频帧,得到多帧查询视频帧;
从每一所述候选视频段中抽取一帧候选视频帧,得到每一所述候选视频对应的多帧候选视频帧。
可选地,在一种实施方式中,所述第一神经网络模型的训练过程还包括:
获取模型参数的动量更新系数;
基于所述第一神经网络模型的更新后的参数以及所述动量更新系数对所述第二神经网络模型的参数进行更新。
可选地,在一种实施方式中,所述推荐单元具体用于:
确定所述多个候选视频中与所述查询视频的相似度小于预设阈值的视频为第一目标视频;
将多个所述第一目标视频按照与所述查询视频的相似度由高至低的顺序进行排序,并确定排序在前的预设数量个视频为第二目标视频;
将多个所述第二目标视频推荐给推荐对象。
根据本公开的一方面,提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的视频推荐方法。
根据本公开的一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的视频推荐方法。
根据本公开的一方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器读取并执行,使得该计算机设备执行如上所述的视频推荐方法。
本公开实施例中的视频推荐方法,获取查询视频以及候选视频库,候选视频库包括多个候选视频;基于第一神经网络模型对查询视频以及多个候选视频进行视频特征提取,得到查询视频特征以及多个候选视频特征,第一神经网络模型基于目标损失训练得到,目标损失包括第一损失和第二损失,第一损失为基于样本视频的扩增视频及预设负样本视频的视频特征计算得到的对比学习损失,第二损失为基于样本视频与多个尺寸的截取视频的视频特征计算得到的相似度排序损失,多个尺寸的截取视频为对样本视频在视频帧维度进行多个尺寸的截取得到的视频;计算查询视频特征与每一候选视频特征之间的相似度;根据相似度进行视频推荐。
以此,本公开实施例的视频推荐方法,通过设计第一损失和第二损失来训练对视频特征进行提取的第一神经网络模型,其中第一损失为基于样本视频的扩增视频及预设负样本视频的视频特征计算的对比学习损失,第二损失为基于样本视频与多个尺寸的截取视频的视频特征计算得到的相似度排序损失,从而使得第一神经网络模型学习得到更好的相同视频识别能力和视频相似度排序能力;如此基于训练得到的第一神经网络模型进行视频推荐,可以提升视频推荐的准确性。
本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本公开技术方案的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开的技术方案,并不构成对本公开技术方案的限制。
图1是根据本公开的实施例的视频推荐方法所应用的系统的构架图;
图2A-图2D是本公开的实施例应用在向对象推荐短视频的场景下的界面示意图;
图3是根据本公开的一个实施例的视频推荐方法的流程图;
图4是根据本公开的一个实施例的训练第一神经网络模型的流程图;
图5是根据本公开的一个实施例的基于第一样本视频进行时序扩增与空间扩增的一个示意图;
图6是根据本公开的一个实施例的基于从第一样本视频中抽取的多帧视频帧进行时序扩增的一个示意图;
图7是根据本公开的一个实施例的第一神经网络模型的一个示意图;
图8是根据本公开的一个实施例的对第一样本视频进行多个尺寸的截取的一个示意图;
图9是根据本公开的一个实施例的相似度矩阵的一个示意图;
图10是根据本公开的一个实施例的视频推荐方法的另一流程示意图;
图11是根据本公开的一个实施例的训练第一神经网络模型的一个示意图;
图12是根据本公开的一个实施例的视频推荐装置的结构示意图;
图13是实施根据本公开的一个实施例的各方法的终端结构图;
图14是实施根据本公开的一个实施例的各方法的服务器结构图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本公开,并不用于限定本公开。
对本公开实施例进行进一步详细说明之前,对本公开实施例中涉及的名词和术语进行说明,本公开实施例中涉及的名词和术语适用于如下的解释:
深度神经网络:是一种多层无监督神经网络。深度神经网络将上一层的输出特征作为下一层的输入进行特征学习,通过逐层特征映射后,将现有空间样本的特征映射到另一个特征空间,以此来学习对现有输入具有更好的特征表达。深度神经网络具有多个非线性映射的特征变换,可以对高度复杂的函数进行拟合。
梯度下降算法:一种损失函数最小化方法,计算损失函数当前位置的梯度,朝着梯度下降的方向更新参数,以找到最优解使得损失函数的值最小。
变换器(transformer)模型:是一种基于多头自注意力机制的深度学习模型,自注意力机制用来捕捉输入序列中不同位置之间的依赖关系。自注意力机制允许模型为输入序列中的每个词分配不同的权重,从而更好地捕捉长距离依赖关系。多头注意力技术将输入序列分成多个子空间,分别进行自注意力计算,再将结果拼接起来。这样做可以使模型同时关注不同位置的信息,提高模型的表达能力。
归一化处理(softmax函数):将一个含任意实数的K维向量压缩到另一个K维向量中,使得每个元素的范围都在(0,1)之间,并且所有元素的和为1。
欧氏距离:可以用来计算两个向量之间的相似程度,具体地,可以将两个向量的所有对应元素相减,再将差的平方相加,最后取平方根,得到两个向量之间的欧式距离。欧式距离越小,表示两个向量越相近。
曼哈顿距离:也可以用来计算两个向量之间的相似程度,具体地,可以将两个向量的所有元素相减,取绝对值之和,得到两个向量之间的曼哈顿距离。曼哈顿距离越小,表示两个向量越相近。
余弦相似度:一个向量空间中两个向量夹角间的余弦值作为衡量两个个体之间相似度的大小,余弦值接近1,夹角趋于0,表明两个向量越相似,余弦值接近于0,夹角趋于90度,表明两个向量越不相似。
在相关技术中,在根据对象感兴趣的目标视频为对象进行视频推荐时,往往会向对象推荐与目标视频重复的视频。这是因为在进行视频推荐时会优先为对象推荐与目标视频相似度高的视频,而相关技术中在计算目标视频与其他视频的相似度时,目标视频与重复视频之间的相似度和目标视频与其他相似视频之间的相似度差距较小。例如,目标视频与重复视频之间的相似度为0.99,与另一个相似视频之间的相似度为0.97。因此,相关技术中的视频推荐方法难以从高相似度的视频中区分重复视频与相似视频,这样就会将与目标视频重复的视频推荐给对象。目标视频是对象已经查看过的视频,将重复视频再次推荐给对象会影响对象浏览视频的体验感。因此,相关技术中的视频推荐方法的推荐准确性较低。对此,本公开实施例提供了一种视频推荐方法,以期可以提高视频推荐的准确性。
图1是根据本公开的实施例的视频推荐方法所应用的一种系统构架图。它包括终端140、互联网130、网关120、服务器110等等。
终端140包括桌面电脑、膝上型电脑、PDA(个人数字助理)、手机、车载终端、家庭影院终端、专用终端等多种形式。另外,它可以是单台设备,也可以是多台设备组成的集合。例如,多台设备通过局域网连接,公用一台显示设备进行协同工作,共同构成一个终端140。终端140也可以以有线或无线的方式与互联网130进行通信,交换数据。
服务器110是指能对终端140提供某些服务的计算机系统。相对于普通终端140来说,服务器110在稳定性、安全性、性能等方面都要求很高。服务器110可以是网络平台中的一台高性能计算机、多台高性能计算机的集群、一台高性能计算机中划出的一部分(例如虚拟机)、多台高性能计算机中划出的一部分(例如虚拟机)的组合等。
网关120又称网间连接器、协议转换器。网关在传输层上实现网络互联,是一种充当转换作用的计算机系统或设备。在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。同时,网关也可以提供过滤和安全功能。终端140向服务器110发送的消息要通过网关120发送到相应的服务器110。服务器110向终端140发送的消息也要通过网关120发送到相应的终端140。
本公开实施例的视频推荐方法可以完全在终端140实现;可以完全在服务器110实现;也可以一部分在终端140实现,另一部分在服务器110实现。
本公开实施例可以应用在多种场景下,例如图2A-图2D所示的向对象推荐短视频的场景等。
在向对象推荐短视频时可以根据对象感兴趣的短视频推荐其它短视频。如图2A所示,对象通过终端140查看短视频,终端140中包含视频显示区域210,在视频显示区域210中可以显示向对象推荐的短视频。对象在查看一个短视频时,如果对这个视频感兴趣,可以通过视频标记控件211将这个视频标记为“喜欢”。
将被标记的短视频作为目标短视频,从候选短视频库中找到与目标短视频相似的候选短视频推荐给对象。候选短视频库如图2B所示,其中包括候选短视频M1、候选短视频M2、候选短视频M3与候选短视频M4。在利用本公开实施例的视频推荐方法计算目标短视频与多个候选短视频之间的相似度的结果如图2C所示,目标短视频与候选短视频M1的相似度为0.999,与候选短视频M2的相似度为0.756,与候选短视频M3的相似度为0.564,与候选短视频M4的相似度为0.125。目标短视频与候选短视频M1之间的相似度极高,如果将候选短视频M1推荐给对象,对象可能会因为重复看两个极度相似的视频而疲劳,影响对象的观看体验。因此,可以将候选短视频M1确定为目标短视频的重复视频,不需要向对象推荐。候选短视频M2在剩余的候选短视频中的相似度排序最高,因此,如图2D所示,优先向对象推荐候选短视频M2。对象同样对候选短视频M2感兴趣,因此,也可以通过视频标记控件211将这个视频标记为“喜欢”。
在上述过程中,可以从多个候选短视频中确定与目标视频相同的候选短视频,避免将这个候选短视频推荐给对象。同时,可以在其他视频中查询到相似度较高的视频推荐给对象,有利于提高推荐准确性,进而提高对象在视频浏览过程中的体验感。
根据本公开的一个实施例,提供了一种视频推荐方法。本公开实施例提供的视频推荐方法可以应用于如图2A-图2D所示的向对象推荐短视频的场景中。如图3所示,为本公开提供的视频推荐方法的一个流程示意图。该视频推荐方法可以包括:
步骤310、获取查询视频以及候选视频库。
查询视频可以是向对象进行视频推荐的参考视频,可以是对象在视频推荐应用中感兴趣的视频内容。查询视频可以基于对象在视频推荐应用中发生的兴趣事件获取。兴趣事件可以是在视频推荐应用中用于确定对象对视频感兴趣的事件,例如,对象对视频点赞或评论;对象查看视频的时长占视频总时长的预定比例等。响应于对象在视频推荐应用中针对一个视频的兴趣事件的触发,可以获取这个视频作为查询视频。
候选视频库包括多个候选视频,基于查询视频可以在候选视频库中查找相似的候选视频推荐给对象,与查询视频相似度高的候选视频很可能也是对象感兴趣的。
候选视频库中的候选视频可以是视频推荐应用的完整视频库中的全部视频。当视频发布者在视频推荐应用中发布视频后,视频可以存入完整视频库中以备查找与查询视频相似的视频进行推荐。
候选视频库中的候选视频还可以是对视频推荐应用对应的完整视频库中的全部视频进行筛选后获取的。在一种实施方式中,从完整视频库中获取候选视频可以利用视频标签进行筛选。为了对大量的视频进行分类管理,完整视频库中的视频可以携带类别标签。类别标签可以是视频发布者在发布视频时选择的,例如,“电影”、“搞笑”与“音乐”等。利用视频标签进行筛选时可以获取查询视频的目标类别标签,从完整视频库中获取目标类别标签对应的视频作为候选视频。例如,查询视频的目标类别标签为“音乐”,从完整视频库中获取全部类别标签为“音乐”的视频组成候选视频库。对完整视频库中的全部视频进行筛选后得到候选视频库可以减少候选视频库中候选视频的数量,有利于提高从候选视频库中查询推荐视频的效率。
步骤320、基于第一神经网络模型对查询视频以及多个候选视频进行视频特征提取,得到查询视频特征以及多个候选视频特征。
在一些实施例中,第一神经网络模型可以是用于对视频进行特征提取的深度神经网络。第一神经网络模型基于目标损失训练得到,目标损失包括第一损失和第二损失,第一损失为基于样本视频的扩增视频及预设负样本视频的视频特征计算得到的对比学习损失,第二损失为基于样本视频与多个尺寸的截取视频的视频特征计算得到的相似度排序损失,多个尺寸的截取视频为对样本视频在视频帧维度进行多个尺寸的截取得到的视频。下面将对第一神经网络的训练过程进行详细说明,并在该说明中详细介绍第一损失和第二损失的构建过程及作用。
具体地,在一种实施方式中,如图4所示,第一神经网络模型的训练过程,包括如下步骤:
步骤410、获取多个第一样本视频以及多个预设负样本视频,并对每个第一样本视频进行视频扩增,得到多个扩增视频;
步骤420、基于第一神经网络模型对扩增视频进行视频特征提取,得到扩增视频特征,并基于第二神经网络模型对多个预设负样本视频进行视频特征提取,得到多个负样本视频特征;
步骤430、基于扩增视频特征与负样本视频特征计算对比学习损失,得到第一损失;
步骤440、对每一第一样本视频在视频帧维度上进行多个尺寸的截取,得到多个截取视频,并基于第一神经网络模型对第一样本视频与多个截取视频进行视频特征提取,得到第一样本视频特征与多个截取视频特征;
步骤450、基于第一样本视频特征、多个截取视频特征以及多个截取视频与第一样本视频的相似度排序关系计算相似度排序损失,得到第二损失;
步骤460、根据第一损失与第二损失对第一神经网络模型的参数进行更新。
在步骤410中,第一样本视频是用于对第一神经网络模型进行训练的视频样本,多个第一样本视频可以构成一个训练集。多个第一样本视频可以包含多种视频类型的视频,以使训练得到的第一神经网络模型可以适用于通用场景中。多个第一样本视频也可以是特定场景中的视频,例如,动漫类视频、新闻类视频或者风景类视频等。利用特定场景的第一样本视频训练第一神经网络模型可以使第一神经网络模型在特定的场景中能达到较好的视频推荐效果。第一样本视频可以从公开的视频数据网站中获取,也可以从多个视频推荐应用中获取。
预设负样本视频可以是与第一样本视频在内容上存在差异的视频,用于辅助第一样本视频对第一神经网络模型进行训练。当一个视频与第一样本视频存在差异时,可以将这个视频作为预设负样本视频。
预设负样本视频还可以是与第一样本视频的视频类型特征关联较小的视频。例如,第一样本视频是风景类视频,预设负样本视频可以是动物类视频或者美食类视频等;第一样本视频是动漫类视频,预设负样本视频可以是新闻类视频或者风景类视频等。
预设负样本视频可以从负样本视频库中获取的。负样本视频库可以基于多个第一样本视频预先构建,其中包含大量预设负样本视频,例如50万个预设负样本视频。由于负样本视频库的数据量较为庞大,因此,可以从负样本视频库中抽取多个预设负样本视频与多个第一样本视频对第一神经网络模型进行训练。例如,从负样本视频库的50万个预设负样本视频中抽取63355个,用于与多个第一样本视频对第一神经网络模型进行训练。在第一神经网络模型的训练过程中,可以利用多个第一样本视频进行多轮训练。在每一轮训练时,可以从负样本视频库中获取与之前轮次的训练中不同的多个预设负样本视频,避免多轮训练一直使用相同的预设负样本视频进行训练而导致模型出现过拟合的问题,有利于提高第一神经网络模型的泛化性。
基于多个第一样本视频构建负样本视频库可以预先获取与多个第一样本视频存在内容差异的视频构建负样本视频库。在进行第一神经网络模型训练时,可以从负样本视频库中随机抽取多个预设负样本视频与多个第一样本视频对第一神经网络模型进行训练。
基于多个第一样本视频构建负样本视频库也可以基于多个第一样本视频的视频类型来构建负样本视频库。当多个第一样本视频中包含多种视频类型的视频,可以获取多种视频类型的视频构建负样本视频库。在进行第一神经网络模型训练时,可以基于每一第一样本视频的视频类型从负样本视频库中获取其它视频类型的多个预设负样本视频对第一神经网络模型进行训练。例如,多个第一样本视频中包含风景类视频、动漫类视频与新闻类视频时,可以从负样本视频库中获取除上述三个类型之外的其他类型视频作为预设负样本视频与第一样本视频进行对比学习。当多个第一样本视频是特定场景中的视频时,可以获取大量与该场景不同的其他场景中的视频来构建负样本视频库。
对每个第一样本视频进行视频扩增可以得到多个扩增视频,扩增视频包括第一样本视频以及对第一样本视频进行视频扩增得到的视频。对第一样本视频进行视频扩增可以增加用于训练第一神经网络模型的训练样本的数量。基于第一样本视频进行扩增得到的扩增视频可以作为第一样本视频的重复视频对第一神经网络模型进行训练。
在一种实施方式中,对每个第一样本视频进行视频扩增,得到多个扩增视频,包括:
对第一样本视频进行时序扩增,得到第一子扩增视频;
对第一样本视频进行空间扩增,得到第二子扩增视频;
对第一子扩增视频进行空间扩增,得到第三子扩增视频;
根据第一子扩增视频、第二子扩增视频、第三子扩增视频以及第一样本视频确定多个扩增视频。
时序扩增可以指在第一样本视频的时间维度上对第一样本视频进行调整,以达到扩增的效果。例如,删除第一样本视频中的某些帧,对第一样本视频进行加速或减速处理,随机插入其他视频的帧到第一样本视频中等等。每一种时序扩增操作都可以得到对应的一个第一子扩增视频,多个时序扩增操作也可以叠加。
空间扩增可以指在第一样本视频的帧维度上对第一样本视频进行调整,以达到扩增的效果。例如,在第一样本视频中的每一帧中添加高斯噪声,调整帧图像的对比对、亮度和饱和度等;对帧图像进行水平翻转、上下翻转、旋转、裁剪或者平移等操作;在每一帧图像中添加其他内容,如标识符号或者文字等。在进行空间扩增时,针对第一样本视频中每一帧图像的空间扩增操作可以是相同的。每一种空间扩增操作都可以得到对应的一个第二子扩增视频,多个空间扩增操作也可以叠加。
在对第一样本视频进行视频扩增时,还可以同时对第一样本视频进行时序扩增与空间扩增,也就是说,可以对时序扩增得到的第一子扩增视频进一步进行空间扩增,得到第三子扩增视频。同理,还可以对空间扩增得到的第二子扩增视频进一步进行时序扩增,以这样的扩增顺序得到的视频也可以视作第三子扩增视频。多种时序扩增操作与多种空间扩增操作可以任意组合。
如图5所示的对第一样本视频进行视频扩增的一个示意图。在图5中,第一样本视频包含连续的帧f1到帧f8,每一帧的宽度可以指示帧的时长,宽度越宽可以表示每一帧持续的时长越长,帧率越慢。对第一样本视频进行时序扩增得到第一子扩增视频,第一子扩增视频在第一样本视频的基础上执行的时序扩增操作包括:将帧f2删除;将不属于第一样本视频的帧f9插入到帧f5与帧f6之间;将第一样本视频整体减速。对第一样本视频进行空间扩增得到第二子扩增视频,第二子扩增视频在第一样本视频的基础上执行的空间扩增操作包括:将每一帧逆时针旋转30度;调整每一帧的亮度与饱和度(图中未示出)。对时序扩增后的第一子扩增视频进行空间扩增后得到第三子扩增视频,第三子扩增视频在第一子扩增视频的基础上执行的空间扩增操作包括:将每一帧进行上下翻转;在每一帧中添加高斯噪声(图中未示出)。
通过时序扩增与空间扩增实现了从多个方面进行视频扩增,提高了获取扩增视频的全面性。针对一个第一样本视频扩增得到的多个扩增视频属于重复视频,因此,使用多种方式扩增得到的扩增视频对第一神经网络模型进行训练可以提高模型在对重复视频进行特征提取的泛化性与鲁棒性,进而可以提高了第一神经网络模型进行特征提取的准确性。
上述实施方式基于完整的第一样本视频进行时序扩增与空间扩增。在另一种实施方式中,对第一样本视频进行时序扩增,得到第一子扩增视频之前,还包括:将第一样本视频拆分为多个视频段,并从每一视频段中抽取视频帧,得到多帧视频帧。
第一样本视频的数据量比较大,有时连续多帧的视频帧差距较小。因此可以将第一样本视频拆分为多个视频段,从多个视频段中抽取出多帧视频帧代表整个第一样本视频。在进行视频扩增时,可以基于抽取出的多帧视频帧进行扩增。例如,将第一样本视频拆分为25段,从每一视频段中抽取视频帧,那么可以得到25帧视频帧。需要说明的是,在将多个第一样本视频中的每一个拆分为多个视频段时,多个第一样本视频拆分的视频段数量可以是相同的,确保用于训练第一神经网络的一组第一样本视频在进行特征提取时具有相同的特征维度,避免第一神经网络模型在对一组的多个第一样本视频进行批量计算时出现计算报错的问题。
在从第一样本视频中抽取视频帧后,在进行视频扩增时,可以基于视频帧进行扩增。因此,基于抽取得到的多帧视频帧,对第一样本视频进行时序扩增,得到第一子扩增视频,包括:对多帧视频帧进行时序扩增,得到多帧第一子扩增视频帧。
对多帧视频帧进行时序扩增也可以通过删除某些帧或者添加某些帧。例如图6所示,将第一样本视频拆分为25段,从25个视频段中分别抽取一帧,得到25帧视频帧,依次为f1、f2、f3、…、f25。针对这25帧进行时序扩增,可以将某些帧删除,再添加某些帧。在图6中,删除了f2,并且在f3之后添加了f26,以此,得到了时序扩增对应的25帧第一子扩增视频帧。
在对多帧视频帧进行时序扩增时,删除帧的数目与添加帧的数目可以相同,以使时序扩增后的多帧第一子扩增视频帧的数目与多帧视频帧的数目相同,以确保在基于多帧视频帧与多帧第一子扩增视频帧进行特征提取后,二者的扩增视频特征对应的特征维度相同。在利用扩增视频特征计算对比学习损失时,可以避免因向量维度不统一而造成的计算错误的问题。
同理,对第一样本视频进行空间扩增,得到第二子扩增视频,包括:对多帧视频帧进行空间扩增,得到多帧第二子扩增视频帧。对多帧视频帧进行空间扩增,可以在多帧视频帧中的每一帧中添加高斯噪声,调整每一帧的对比对、亮度和饱和度等,对每一帧进行水平翻转、上下翻转、旋转、裁剪或者平移等操作,得到多帧第二子扩增视频帧。
对第一子扩增视频进行空间扩增,得到第三子扩增视频,包括:对时序扩增得到的多帧第一子扩增视频帧进行空间扩增,得到多帧第三子扩增视频帧。也就是说,同时对多帧视频帧进行时序扩增与空间扩增得到多帧第三子扩增视频帧。
将第一样本视频分为多段后抽取多帧进行视频扩增,实现了在不影响视频扩增结果的前提下,降低了第一样本视频的视频帧数,提高了视频扩增的效率。
在步骤420中,首先基于第一神经网络模型对扩增视频进行视频特征提取,得到扩增视频特征。
在步骤410中进行视频扩增的一种实施方式中,可以从第一样本视频帧中抽取多帧进行时序扩增得到多帧第一子扩增视频帧,进行空间扩增得到多帧第二子扩增视频帧,同时进行时序扩增与空间扩增得到多帧第三子扩增视频帧。因此,基于第一神经网络模型对扩增视频进行视频特征提取,得到扩增视频特征,包括:基于第一神经网络模型对多帧扩增视频帧进行视频特征提取,得到扩增视频特征。多帧扩增视频帧包括多帧视频帧、仅基于时序扩增得到的多帧第一子扩增视频帧、仅基于空间扩增得到的多帧第二子扩增视频帧与同时基于时序扩增与空间扩增得到的多帧第三子扩增视频帧。
相较于直接对完整的第一样本视频进行视频特征提取,对多帧扩增视频帧进行视频特征提取可以提高特征提取效率。
在一种实施方式中,第一神经网络模型包括第一网络层与第二网络层。因此,基于第一神经网络模型对多帧扩增视频帧进行视频特征提取,得到扩增视频特征,包括:
基于第一网络层对多帧扩增视频帧进行图像特征提取,得到多个帧特征;
基于第二网络层对多个帧特征进行特征融合,得到扩增视频特征。
第一神经网络模型的结构可以如图7所示,包括第一网络层与第二网络层。其中,第一网络层用于进行特征提取,第二网络层用于进行特征融合。
将多帧扩增视频帧输入第一神经网络模型中的第一网络层,第一网络层会基于每一扩增视频帧进行图像特征提取得到对应的帧特征。第一网络层可以是一个多层卷积神经网络,例如,ResNet-50,一种深度为50层的卷积神经网络。多个帧特征可以取第一网络层中最后一层的输出。
多个帧特征的数目与多帧扩增视频帧的数目相同,每一扩增视频帧对应一个帧特征。第一网络层输出多个帧特征时,可以输出多个帧特征的特征矩阵。例如,多帧扩增视频帧的数目为25,第一网络层提取出的每一帧特征的维度为2048,因此,由多个帧特征构成的特征矩阵的维度为[25, 2048]。
在得到多个帧特征后,可以将多个帧特征输入第二网络层。第二网络层用于将多个帧特征进行特征融合,得到扩增视频对应的扩增视频特征。第二网络层可以是一个多层的深度学习模型,例如,一个四层的变换器模型。
在一种实施方式中,基于第二网络层对多个帧特征进行特征融合,得到扩增视频特征,包括:
基于对多个帧特征进行线性变换,得到第一中间矩阵、第二中间矩阵与第三中间矩阵;
对第一中间矩阵与第二中间矩阵的转置相乘后进行归一化处理,并将归一化处理结果与第三中间矩阵相乘,得到多个帧融合结果;
计算多个帧融合结果的平均值,得到扩增视频特征。
第一中间矩阵、第二中间矩阵与第三中间矩阵均是基于对多个帧特征的线性变换得到的。对多个帧特征进行线性变化得到第一中间矩阵的过程可以表示为公式1:
(公式1)。
在公式1中,可以表示多个帧特征构成的特征矩阵的转置,表示用于计算第一中间矩阵的线性层参数,Q表示第一中间矩阵。
对多个帧特征进行线性变化得到第二中间矩阵的过程可以表示为公式2:
(公式2)。
在公式2中,表示用于计算第二中间矩阵的线性层参数,K表示第二中间矩阵。
对多个帧特征进行线性变化得到第三中间矩阵的过程可以表示为公式3:
(公式3)。
在公式3中,表示用于计算第三中间矩阵的线性层参数,V表示第三中间矩阵。
在公式1、公式2与公式3中,、与均是可训练参数。
基于第一中间矩阵、第二中间矩阵与第三中间矩阵计算多个帧融合结果的过程可以表示为公式4:
(公式4)。
在公式4中,可以表示多个帧融合结果。将第一中间矩阵Q与第二中间矩阵K的转置相乘,为了避免相乘结果过大导致归一化处理结果不准确,可以用相乘结果除以后进行归一化处理。归一化处理的结果与第三中间向量V相乘,得到多个帧融合结果。
多个帧融合结果可以是与多个帧特征构成的特征矩阵维度相同的特征矩阵,例如,多个帧特征构成的特征矩阵为[25*2048],表示25个扩增视频帧的帧特征,每个帧特征的向量维度为2048。特征融合后得到的多个帧融合结果构成的特征矩阵也是[25*2048],每一行代表一个扩增视频帧对应的帧特征与其他扩增视频帧对应的帧特征融合后的结果。
在得到多个帧对应的多个帧融合结果后,可以计算多个帧融合结果的平均值,得到视频级别的扩增视频特征。例如,多个帧融合结果构成的特征矩阵为[25*2048],计算每一列的平均值,最终得到一个维度为2048的视频级别的扩增视频特征。
基于上述方式进行特征融合最终可以得到一个视频级别的扩增视频特征,相较于利用多帧的帧特征来代表视频特征的方法,本公开实施例中应用的第一神经网络模型可以减少对视频进行特征提取的特征量,缓解了视频特征的存储压力。在对视频进行特征比较时,利用一个视频级别的视频特征进行特征比较的效率较高,进而在从多个候选视频中查询相似视频的查询效率较高。
利用第一神经网络模型中的第一网络层对扩增视频帧进行图像特征提取后利用第二网络层进行特征融合得到扩增视频特征,实现了在帧级别进行特征提取后将多帧特征融合在一起得到视频级特征。在进行特征提取过程中,帧与帧之间互不干扰,以使每一帧图像中的信息都可以被准确地提取出来。在进行特征融合时,视频级特征也可以完整的反映每一帧中的信息,提高了视频级特征提取的准确性。
在步骤410中进行视频扩增的另一种实施方式中,根据第一子扩增视频、第二子扩增视频、第三子扩增视频与第一样本视频确定多个扩增视频。
在另一种实施方式中,基于第一神经网络模型对扩增视频进行视频特征提取,得到扩增视频特征,包括:
将扩增视频拆分成多个扩增视频段,从多个扩增视频段中抽取多个视频帧图像;
基于第一神经网络对多个视频帧图像进行帧级别特征提取,得到扩增视频特征。
这个实施方式与前述实施方式的区别在于,前述实施方式在视频扩增之前进行抽帧,基于抽取的多帧视频帧进行视频扩增,最后基于多帧扩增视频帧进行特征提取。而本实施方式在获取扩增视频后进行抽帧。在多个扩增视频段中抽取多个视频帧图像的方式与前述实施例中将第一样本视频拆分为多个视频段并从每一视频段中抽取视频帧的方式相同,此处不再赘述。基于第一神经网络对多个视频帧图像进行帧级别特征提取的方式在前述实施例中也已详细描述,此处不再赘述。
从扩增视频中抽帧来进行视频特征提取可以减少特征量,提高特征提取效率。
除了基于第一神经网络模型对扩增视频进行视频特征提取得到扩增视频特征之外,在步骤420中,还包括:基于第二神经网络模型对多个预设负样本视频进行视频特征提取,得到多个负样本视频特征。
第二神经网络模型可以是与第一神经网络模型具有相同结构的神经网络模型,用于对预设负样本视频进行视频特征提取。由于预设负样本视频是与第一样本视频存在区别的视频,因此,为了避免预设负样本视频对第一样本视频的特征提取产生影响,可以将第一样本视频与预设负样本视频采用不同的神经网络模型进行特征提取。
由于第二神经网络模型可以与第一神经网络模型具有相同的结构,因此,第二神经网络模型对预设负样本视频进行视频特征提取的方式与第一神经网络模型对扩增视频进行视频特征提取的方式相同,此处不再赘述。第二神经网络模型进行视频特征提取得到的负样本视频特征的维度与扩增视频特征的维度相同,例如,每个扩增视频对应的扩增视频特征的维度为2048,预设负样本视频对应的负样本视频特征的维度也是2048。
在步骤430中,基于扩增视频特征与负样本视频特征计算对比学习损失,得到第一损失。
对比学习损失是通过比较正样本与负样本来学习数据的表示。对比学习的目标是使第一神经网络模型学习到一个特征空间,使得相似的视频特征在特征空间中距离较近,而不相似的视频特征的距离较远。
在一种实施方式中,基于扩增视频特征与负样本视频特征计算对比学习损失,得到第一损失,包括:
针对每一第一样本视频,从对应的多个扩增视频特征中随机抽取两个组成正样本对;
计算正样本对中的两个扩增视频特征之间的第一训练相似度;
从正样本对中的两个扩增视频特征中确定目标扩增视频特征,并计算目标扩增视频特征与多个负样本视频特征之间的多个第二训练相似度;
基于第一训练相似度与多个第二训练相似度计算对比学习损失,得到第一损失。
扩增视频中包括第一样本视频以及对第一样本视频进行视频扩增得到的视频,也就是说,每个第一样本视频都有对应的多个扩增视频,多个扩增视频属于相同视频,具有极高的特征相似度。在计算对比学习损失时,可以针对每一第一样本视频,从对应的多个扩增视频特征中随机抽取两个组成正样本对。构建正样本对的目的是利用正样本对中两个扩增视频特征之间的相似度让第一神经网络模型学习到被视为相同视频的两个视频的视频特征之间的距离。
在前述一种实施方式中,多个扩增视频包括第一样本视频、对第一样本视频进行时序扩增得到的第一子扩增视频、对第一样本视频进行空间扩增得到的第二子扩增视频与对第一样本视频同时进行时序扩增与空间扩增得到的第三子扩增视频。因此,扩增视频特征包括第一样本视频特征、第一子扩增视频特征、第二子扩增视频特征与第三子扩增视频特征。基于此,在构建正样本对时,可以随机从中抽取两个进行构建,共有六种正样本对的组合方式,分别为(第一样本视频特征,第一子扩增视频特征)、(第一样本视频特征,第二子扩增视频特征)、(第一样本视频特征,第三子扩增视频特征)、(第一子扩增视频特征,第二子扩增视频特征)、(第一子扩增视频特征,第三子扩增视频特征)、(第二子扩增视频特征,第三子扩增视频特征)。虽然基于多个扩增视频特征有多种构建正样本对的方式,但可以选择其中的一种用于计算对比学习损失,因为针对一个第一样本视频,每两个扩增视频特征之间的相似度差距较小,因此,可以通过一个正样本对反映多个扩增视频特征之间的相似度。
在构建正样本对之后,可以计算正样本对中的两个扩增视频特征之间的第一训练相似度。具体地,可以采用欧式距离、曼哈顿距离与余弦相似度等方式来计算。
为了让第一神经网络模型可以学习到正样本与负样本之间的特征距离,可以从正样本对中的两个扩增视频特征中确定一个目标扩增视频特征。目标扩增视频特征可以是正样本对中的两个扩增视频特征中的任意一个。计算目标扩增视频特征与多个负样本视频特征之间的多个第二训练相似度。例如,正样本对中包括第一样本视频特征与第二子扩增视频特征,可以将第二子扩增视频特征确定为目标扩增视频特征,并计算第二扩增视频特征与多个负样本视频特征之间的多个第二训练相似度。计算第二训练相似度的方法与计算第一训练相似度的方法相同,且需要保持一致。例如,第一训练相似度采用余弦相似度进行计算,第二训练相似度也需要采用余弦相似度进行计算,以确保计算对比学习损失的准确性。
在计算第一训练相似度与多个第二训练相似度之后,可以基于第一训练相似度与多个第二训练相似度计算对比学习损失。
在一种实施方式中,基于第一训练相似度与多个第二训练相似度计算对比学习损失,得到第一损失,包括:
基于第一训练相似度与多个第二训练相似度对目标扩增视频特征进行分类,得到预测类别;
基于预测类别与目标类别计算对比学习损失,得到第一损失。
第一训练相似度可以用来评估目标扩增视频特征与正样本对中另一个扩增视频特征之间的相似性;多个第二训练相似度可以用来评估目标扩增视频特征与多个负样本视频特征之间的相似性。当第一训练相似度的值比全部第二训练相似度的值都大时,可以将目标扩增视频特征对应的扩增视频与正样本对中另一个扩增视频特征对应的扩增视频分类一类。当存在大于第一训练相似度的第二训练相似度时,可以将目标扩增视频特征对应的扩增视频与负样本视频特征对应的预设负样本视频分为一类。因此,在对目标扩增视频特征对应的扩增视频进行分类时存在两类,分别为正样本与负样本,正样本是扩增视频所在的类,负样本是预设负样本视频所在的类。当第一训练相似度大于多个第二训练相似度时,目标扩增视频特征对应的扩增视频被分类为正样本,当存在第二训练相似度大于第一训练相似度时,目标扩增视频特征对应的扩增视频被分类为负样本。
在确定目标扩增视频特征对应的预测类别后,可以基于预测类别与目标类别计算对比学习损失。目标类别是目标扩增视频特征对应的扩增视频实际所属的真实类别,已知目标类别为正样本。
基于预测类别与目标类别计算对比学习损失得到第一损失可以表示为公式5:
(公式5)。
在公式5中,表示经过计算多个第一样本视频的对比学习损失得到的第一损失;表示目标类别;表示预测类别;t表示多个第一样本视频的序号,也就是说,表示第t个第一样本视频对应的对比学习损失,将一组的多个第一样本视频对应的对比学习损失加和,得到一轮训练中的第一损失。
基于预测类别与目标类别计算对比学习损失可以让第一神经网络模型的对比学习更加严格。针对每一第一样本视频,利用一组正样本对与多个负样本进行类别预测,只有当正样本对之间的相似度最高时,才能将它们分为一类,否则,就会被分类为负样本。这就要求第一神经网络模型在进行特征提取时达到极高的准确性,才能确保将正样本对对应的两个扩增视频分为一类。因此,利用预测类别与目标类别计算对比学习损失有利于提高第一神经网络模型特征提取的准确性。
在步骤440中,首先对每一第一样本视频在视频帧维度上进行多个尺寸的截取,得到多个截取视频。
如图8所示,对一个第一样本视频依次截取1/2、1/4与1/8作为三个截取视频。从图8可以看出,随着截取尺寸的减小,截取视频与第一样本视频之间相同的特征越来越少,相似度越来越低。
在得到多个截取视频后,可以基于第一神经网络模型对第一样本视频与多个截取视频进行视频特征提取,得到第一样本视频特征与多个截取视频特征。
利用第一神经网络模型进行视频特征提取的方法在前述实施方式中已详细描述,此处不再赘述。
在步骤450中,基于第一样本视频特征、多个截取视频特征以及多个截取视频与第一样本视频的相似度排序关系计算相似度排序损失,得到第二损失。
相似度排序损失可以让第一神经网络模型学习到特征的相似度排序关系,使第一神经网络模型能够为更相似的视频提取距离更相近的视频特征。
在一种实施方式中,基于第一样本视频特征、多个截取视频特征以及多个截取视频与第一样本视频的相似度排序关系计算相似度排序损失,得到第二损失,包括:
将第一样本视频特征与多个截取视频特征两两组合,得到多个特征比对组;
计算每一特征比对组中两个视频特征之间的第三训练相似度;
根据多个第三训练相似度以及多个截取视频与第一样本视频的相似度排序关系计算相似度排序损失,得到第二损失。
多个特征比对组中包含进行相似度比较的两个视频特征。例如,多个截取视频特征包括:1/2截取视频特征、1/4截取视频特征与1/8截取视频特征。因此,构建多个特征比对组包括:(第一样本视频特征,1/2截取视频特征)、(第一样本视频特征,1/4截取视频特征)、(第一样本视频特征,1/8截取视频特征)、(1/2截取视频特征,1/4截取视频特征)、(1/2截取视频特征,1/8截取视频特征)与(1/4截取视频特征,1/8截取视频特征)。
针对每一特征比对组,计算其中的两个视频特征之间的第三训练相似度。计算第三训练相似度的方式可以与前述实施例中计算第一训练相似度与计算第二训练相似度的方式相同,此处不再赘述。
多个截取视频与第一样本视频的相似度排序可以是,截取视频的尺寸越大,与第一样本视频的相似度排序越高,这也是第三训练相似度所要达到的目标,也就是说,尺寸越相近的视频对应的视频特征之间的第三训练相似度越高。
为了可以更加直观地计算相似度排序损失,在一种实施方式中,根据多个第三训练相似度以及多个截取视频与第一样本视频的相似度排序关系计算相似度排序损失,得到第二损失,包括:
根据多个第三训练相似度生成相似度矩阵;
基于相似度矩阵以及多个截取视频与第一样本视频的相似度排序关系计算相似度排序损失,得到第二损失。
相似度矩阵可以直观地表示各个尺寸的截取视频特征与第一样本视频特征之间的关系。相似度矩阵的行数与列数均等于第一样本视频特征与截取视频特征的数量和,每一行与每一列都代表一个视频特征,每一个矩阵值都表示对应位置的两个视频特征之间的第三训练相似度。
例如图8所示的一个相似度矩阵,除第一样本视频特征以外,截取视频特征有3个,分别为1/2截取视频特征、1/4截取视频特征与1/8截取视频特征。因此,相似度矩阵是一个4行4列的矩阵。在行维度,根据视频尺寸从大到小的顺序从上到下排列,在列维度,根据视频尺寸从大到小的顺序从左到右依次排列,依次是第一样本视频特征、1/2截取视频特征、1/4截取视频特征与1/8截取视频特征。当相似度矩阵中的行数与列数相等时,表示对应位置的视频特征与自身的相似度,由于是完全相同的视频特征进行比较,因此相似度最大且为1。第二行第一列表示1/2截取视频特征与第一样本视频特征之间的第三训练相似度(0.82);第三行第二列表示1/2截取视频特征与1/4截取视频特征之间的第三训练相似度(0.75)。
多个截取视频与第一样本视频的相似度排序关系应该是,尺寸越相近的相似度排序越高。例如,第一样本视频特征与1/2截取视频特征的相似度比与1/4截取视频特征的相似度高;1/2截取视频特征的相似度比与1/8截取视频特征的相似度高。因此,在基于相似度矩阵以及多个截取视频与第一样本视频的相似度排序关系计算相似度排序损失时,可以基于相似度矩阵中的相似度排序进行计算。
在一种实施方式中,基于相似度矩阵以及多个截取视频与第一样本视频的相似度排序关系计算相似度排序损失,得到第二损失,包括:
针对相似度矩阵中的每一列,将对应行号大于等于对应列号的矩阵值确定为目标矩阵值,将对应行号大于目标矩阵值对应行号的矩阵值确定为目标矩阵值的对比矩阵值;
计算对比矩阵值与对应的目标矩阵值之间的差,得到排序差;
基于排序差计算相似度排序损失,得到第二损失。
由于相似度矩阵是一个对称矩阵,右上半部分与左下半部分的值相同,因此在计算相似度排序损失时,可以只针对相似度矩阵的左下半部分或者右上部分进行计算。当基于相似度矩阵的左下半部分进行计算时,针对行号大于等于列号的矩阵值进行计算,例如,第2行第1列,或者第3行第2列。
在相似度矩阵的左下半部分,针对相似度矩阵中的每一列,基于多个截取视频与第一样本视频的相似度排序关系可知,行数越大,矩阵值越小。例如,在图9中的第1列,第1行的矩阵值(第一样本视频特征自身的相似度比较)应该大于第2行、第3行与第4行的矩阵值;第2行的矩阵值(第一样本视频特征与1/2截取视频特征之间的第三训练相似度)应该大于第3行与第4行的矩阵值。因此,将左下半部分的每一个矩阵值作为目标矩阵值,将目标矩阵值所在列中行号大于目标矩阵值行号的矩阵值作为对比矩阵值。通过计算对比矩阵值与目标矩阵值之间的差来确定是否满足同一列中行号越大矩阵值越小的目标。例如,在图9的第1列中,第2行的矩阵值作为目标矩阵值,那么它对应的对比矩阵值包括第1行第3列的矩阵值与第1行第4列的矩阵值。
通过计算对比矩阵值与目标矩阵值之间的差得到排序差。当排序差大于0时,表示对比矩阵值大于目标矩阵值,不满足同一列中行号越大矩阵值越小的目标;当排序差小于0时,表示对比矩阵值小于目标矩阵值,满足同一列中行号越大矩阵值越小的目标。当对比矩阵值与目标矩阵值可以满足目标时,可以将排序差调整为0,表示这个对比矩阵值与目标矩阵值之间不产生相似度排序损失;反之,当不满足目标时,可以将排序差作为这个对比矩阵值与目标矩阵值之间的相似度排序损失。
将相似度矩阵中多个目标矩阵值与对应的对比矩阵值之间产生的相似度排序损失相加,可以得到第一样本视频与对应的多个截取视频在一轮训练中产生的相似度排序损失。
上述实施方式中利用相似度矩阵计算第二损失的过程可以表示为公式6:
(公式6)。
在公式6中,表示第二损失;i表示相似度矩阵中的列号;j表示相似度矩阵中的行号;
表示第i列第j行的目标矩阵值;表示目标矩阵值对应的第i列第j+1行的对比矩阵值;
m表示边际系数,当目标矩阵值与对比矩阵值相等时,排序差0,但是不满足同一列中行号越大矩阵值越小的目标,因此可以利用边际系数增加排序差;
表示当对比矩阵值大于等于目标矩阵值时,排序差等于,反之,排序差等于0;
表示针对相似度矩阵的左下半部分(i<=j)计算排序差从而计算第一样本视频与对应的多个截取视频之间的相似度排序损失;
t表示多个第一样本视频的序号,基于多个第一样本视频与对应的多个截取视频的相似度排序损失之和,可以得到利用多个第一样本视频进行一轮训练的第二损失;
N表示一轮训练中相似度矩阵的数目,也就是第一样本视频的数目;由于将多个第一样本视频与对应的多个截取视频的相似度排序损失加和后得到的总相似度排序损失较大,可能会导致第一神经网络模型的训练过于偏向相似度排序。因此,可以在多个第一样本视频对应的相似度排序损失总和上乘以的系数,最终得到第二损失。
利用相似度矩阵计算相似度排序损失可以直观且准确地获取到多个截取视频与第一样本视频的相似度排序关系,并基于相似度排序关系计算矩阵值之间的相似度排序损失,有利于提高计算相似度排序损失的效率与准确性。
在另一种实施方式中,第一神经网络模型的训练过程还包括:
获取多个第二样本视频以及每一第二样本视频对应的分类标签;
基于第一神经网络模型对第二样本视频进行视频特征提取,得到第二样本视频特征;
基于预设分类网络层对第二样本视频特征进行分类,得到分类预测概率值;
基于分类预测概率值与分类标签计算分类损失,得到第三损失。
多个第二样本视频是携带分类标签的视频样本。多个第二样本视频可以与多个第一视频样本存在交集,也可以是与多个第一样本视频完全不同的样本视频。多个第二样本视频可以通过在公开的视频数据网站中获取携带分类标签的视频,例如,MovieNet分类数据集,它包含多种类型的视频数据,具体地,可以根据视频场景、情感氛围、动作类型、风格类型、视频主题与发行年代对视频进行分类。也可以通过从多个视频推荐应用中获取携带分类标签的视频。分类标签指示了第二样本视频所属的视频类别,例如,喜剧类、恐怖类等。
基于第一神经网络模型进行视频特征提取的过程在前述实施例中已详细描述,此处不再赘述。
在提取出第二样本视频特征后,可以利用预设分类网络层对第二样本视频特征进行分类,得到分类预测概率值。分类预测概率值可以表示第二样本视频被预测分类为分类标签对应的类的概率。根据分类预测概率值可以将第二样本视频特征进行分类,得到预测类别。预设分类网络层可以是一个多层深度神经网络,例如,CNN网络或者Transformer模型。
根据分类预测概率值与分类标签可以计算分类损失。计算分类损失的过程可以表示为公式7:
(公式7)。
在公式7中,表示第d个第二样本视频对应的分类标签,表示基于分类预测概率值得到的预测类别,因此,表示第d个第二样本视频对应的分类损失。根据多个第二样本视频对应的分类损失的和,可以得到一轮训练中多个第二样本视频的第三损失。
在第一神经网络模型的训练过程中添加分类损失,可以让第一神经网络模型学习同一类别的视频之间的特征关联,进一步提升第一神经网络模型的特征提取准确性。
在步骤460中,根据第一损失与第二损失对第一神经网络模型的参数进行更新。
在计算第一损失与第二损失之后,可以将第一损失与第二损失相加得到总损失,利用总损失对第一神经网络模型的参数进行更新。例如,第一损失为5,第二损失为6,那么总损失为11。
计算总损失还可以为第一损失与第二损失分配不同的权重参数,基于权重参数计算第一损失与第二损失之间的加权和,得到总损失。权重参数指示了第一损失与第二损失对于第一神经网络模型训练的影响。由于第一损失训练了第一神经网络模型对于区分重复视频与相似视频的特征提取能力,第二损失训练第一神经网络模型对于多个相似视频的相似度排序的能力。因此,可以基于实际应用中对第一神经网络模型的训练偏向为第一损失与第二损失分配不同的权重参数。例如,第一损失为5,第二损失为6,第一损失对应的权重参数为1.2,第二损失对应的权重参数为0.8,那么总损失为5*1.2+6*0.8=10.8。
利用总损失对第一神经网络模型的参数进行更新可以通过反向传播算法来计算总损失相对于第一神经网络模型参数的梯度;计算梯度后利用优化算法(例如随机梯度下降算法)朝着梯度下降的方向来更新第一神经网络的参数。
在前述一种实施方式中,除了第一损失与第二损失之外,还基于携带标签的多个第二样本视频计算第三损失。基于此,根据第一损失与第二损失对第一神经网络模型的参数进行更新,包括:根据第一损失、第二损失以及第三损失对第一神经网络模型的参数进行更新。
与根据第一损失与第二损失对第一神经网络模型的参数进行更新的方式相同,可以将第一损失、第二损失与第三损失相加得到总损失,利用总损失对第一神经网络模型的参数进行更新,具体地,可以表示为公式8:
(公式8)。
在公式8中,表示总损失,表示第一损失,表示第二损失,表示第三损失。
计算总损失还可以为第一损失、第二损失与第三损失分配不同的权重参数,利用权重参数对第一损失、第二损失与第三损失计算加权和得到总损失,具体地,可以表示为公式9:
(公式9)。
在公式9中,表示第一损失对应的权重参数,表示第二损失对应的权重参数,表示第三损失对应的权重参数。
基于总损失更新第一神经网络的参数的过程在前述实施方式中已详细描述,此处不再赘述。
在一种实施方式中,根据第一损失与第二损失对第一神经网络模型的参数进行更新之后,第一神经网络模型的训练过程还包括:
获取模型参数的动量更新系数;
基于第一神经网络模型的更新后的参数以及动量更新系数对第二神经网络模型的参数进行更新。
在对第一神经网络模型进行更新后,还可以根据第一神经网络模型的参数更新第二神经网络模型的参数,以使第二神经网络模型在对预设负样本视频进行特征提取时能达到更加准确的提取效果,从而提升利用负样本视频辅助第一神经网络模型训练的准确性。
第二神经网络模型与第一神经网络模型具有相同的网络结果,因此第二神经网络模型可以基于第一神经网络模型中参数的更新而动量更新。动量更新可以基于第二神经网络模型之前的梯度更新方向与第一神经网络模型中梯度的更新方法来进行更新。
动量更新系数可以指示第二神经网络模型中参数的更新程度。动量更新系数越大,可以表示第二神经网络模型之前的梯度更新方向对于当前梯度更新的影响越大。经过实验验证,动量更新系数取0.99时,可以获得较好的动量更新效果。
基于第一神经网络模型的更新后的参数以及动量更新系数对第二神经网络模型的参数进行更新可以表示为公式10:
(公式10)。
在公式10中,表示第二神经网络更新前的参数;表示第二神经网络模型更新后的参数;表示第一神经网络模型的更新后的参数;e表示动量更新系数。动量更新系数可以作为权重控制第一神经网络模型的梯度更新方向与第二神经网络模型之前的梯度更新方向对于当前第二神经网络模型进行梯度更新的影响。
基于动量更新对第二神经网络模型中的参数进行更新可以使第二神经网络模型快速收敛以达到快速最好的特征提取效果,基于第二神经网络模型得到的负样本视频特征越来越准确,进而可以加速第一神经网络模型的训练。
利用第一神经网络模型对扩增视频进行视频特征提取,利用第二神经网络对预设负样本视频进行视频特征提取,可以避免负样本视频的特征提取对扩增视频的特征提取造成影响,有利于提高第一神经网络模型训练的准确性。基于扩增视频特征与负样本视频特征的对比学习损失训练第一神经网络模型可以让第一神经网络模型在进行特征提取时具有区分重复视频与相似视频的能力;基于多个截取视频与第一样本视频之间的相似度排序损失训练第一神经网络模型可以让第一神经网络模型具有能够基于视频之间的相似度排序提取出距离不同的视频特征,对于相似度更高的视频可以提取出距离更相近的视频特征。因此,本公开实施例提出的第一神经网络模型的训练过程有利于提高第一神经网络模型进行视频特征提取的准确性。
在对第一神经网络模型进行训练后,可以利用第一神经网络模型对查询视频以及多个候选视频进行视频特征提取。
在前述一种实施方式中,第一神经网络模型中包含第一网络层与第二网络层。基于此,基于第一神经网络模型对查询视频以及多个候选视频进行视频特征提取,得到查询视频特征以及多个候选视频特征,包括:
从查询视频中抽取出多帧查询视频帧,以及从每一候选视频中抽取出多帧候选视频帧;
基于第一网络层对多帧查询视频帧进行图像特征提取,得到多个查询帧特征,以及基于第一网络层对多帧候选视频帧进行图像特征提取,得到多个候选帧特征;
基于第二网络层对多个查询帧特征进行特征融合得到查询视频特征,以及基于第二网络层对每一候选视频对应的多个候选帧特征进行特征融合得到多个候选视频特征。
在对查询视频与多个候选视频进行特征提取时,可以从查询视频与候选视频中抽取多帧,通过对帧级别的特征进行处理得到视频级别的特征。
在一种实施方式中,从查询视频中抽取出多帧查询视频帧,以及从每一候选视频中抽取出多帧候选视频帧,包括:
将查询视频拆分为多个查询视频段,以及将每一候选视频拆分为多个候选视频段;
从每一查询视频段中抽取一帧查询视频帧,得到多帧查询视频帧;
从每一候选视频段中抽取一帧候选视频帧,得到每一候选视频对应的多帧候选视频帧。
与前述实施例中从第一样本视频中抽帧的方式相同,可以先将查询视频拆分为多个查询视频段,从每一查询视频段中抽取一帧,从而得到多帧查询视频帧。将候选视频拆分为多个候选视频段,从每一候选视频段中抽取一帧,从而得到多帧候选视频帧。对查询视频与候选视频进行拆分的数目可以是相同的,例如,将查询视频与候选视频均拆分为25段,那么可以抽取25帧查询视频帧与25帧候选视频帧。
由于视频连续的几帧之间的相似度较高,因此将查询视频与候选视频拆分为多段后从每一段中进行抽帧可以使抽取的多帧之间具有差别,且抽取的多帧来源于整个视频的多段时间,这样可以提高基于帧级别特征融合生成视频级别特征的准确性。
在抽取多帧查询视频帧与多帧候选视频帧后,可以基于第一网络层对多帧查询视频帧进行图像特征提取,对多帧候选视频帧进行图像特征提取。第一网络层进行图像特征提取的过程在前述第一神经网络模型的训练过程中已详细描述,此处不再赘述。
第二网络层可以对多个查询帧特征进行特征融合得到查询视频特征,对每一候选视频对应的多个候选帧特征进行特征融合得到多个候选视频特征。第二网络层进行多帧特征融合的过程在前述第一神经网络模型的训练过程中已详细描述,此处不再赘述。
从查询视频与候选视频中抽取多帧,利用第一网络层首先提取帧图像特征,再利用第二网络层将多个帧图像特征融合得到视频级的视频特征,有利于提高基于帧特征进行融合得到视频特征的准确性。
步骤330、计算查询视频特征与每一候选视频特征之间的相似度。
在步骤330中,与前述第一神经网络模型的训练过程中计算第一训练相似度的过程相似,可以采用欧式距离、曼哈顿距离与余弦相似度等方式来计算查询视频特征与每一候选视频特征之间的相似度,此处不再赘述。
步骤340、根据相似度进行视频推荐。
相似度越大可以表示候选视频与查询视频越相近,因此,根据相似度进行视频推荐可以按照相似度从大到小的顺序依次向对象推荐候选视频。
在另一种实施方式中,根据相似度进行视频推荐,包括:
确定多个候选视频中与查询视频的相似度小于预设阈值的视频为第一目标视频;
将多个第一目标视频按照与查询视频的相似度由高至低的顺序进行排序,并确定排序在前的预设数量个视频为第二目标视频;
将多个第二目标视频推荐给推荐对象。
由于多个候选视频中可能包含与查询视频内容重复的视频,如果将这些重复视频推荐给对象会影响对象的观感。因此,可以利用预设阈值来判断候选视频与查询视频是否重复。例如,预设阈值为0.92,当候选视频与查询视频之间的相似度大于0.92时,这个候选视频是与查询视频重复的视频。基于此,可以将与查询视频的相似度小于预设阈值的候选视频作为第一目标视频,从第一目标视频中确定为推荐对象推荐的视频。
在向推荐对象推荐视频时,可以优先推荐相似度高的。因此,可以将第一目标视频按照与查询视频的相似度由高到低的顺序进行排序。又因为,当相似度过低时,第一目标视频不适宜推荐给推荐对象。因此,可以将排序在前的预设数量个第一目标视频作为第二目标视频推荐给推荐对象,排序在候选的候选视频由于相似度较低可以不被推荐。
基于预设阈值对候选视频进行筛选后进行推荐可以去除多个候选视频中与查询视频重复的视频,将其余候选视频按照相似度进行排序后将前预定数量个视频推荐给对象,避免了向对象推荐与查询视频相似度较低的无关视频。因此,上述视频推荐的实施方式可以提高视频推荐的准确性。
通过上述过程,本公开实施例提供的视频推荐方法在对查询视频与多个候选视频进行视频特征提取时,可以为多个候选视频中查询视频的重复视频和不同相似程度的相似视频产生特征上明显区分。查询视频的视频特征与重复视频的视频特征的相似度最高;针对其他相似视频,相似性越高的视频特征之间的相似度越高。以此,查询视频的重复视频与其他相似视频在相似度上具有较大的差别。在进行视频推荐时,可以精准地将重复视频去除,针对多个相似视频,可以按照相似度排序进行推荐。因此,本公开实施例提供的视频推荐方法可以避免向对象推荐重复视频,同时可以根据相似度排序进行视频推荐,提高了视频推荐的准确性。此外,本公开实施例提供的视频推荐方法中,第一神经网络模型的训练过程可以不需要携带分类标签的视频样本的参与,减少了对计算资源的消耗与内容空间的占用,提高了模型训练效率。
如图10所示,为本公开提供的视频推荐方法的另一流程示意图。方法具体包括如下步骤:
步骤1010、获取查询视频以及多个候选视频。
查询视频是对象在视频推荐应用中感兴趣的视频内容。查询视频可以基于对象在视频推荐应用中的操作获取。例如,对象对某个视频内容点赞或评论,那么可以说明对象对这个视频内容感兴趣。因此,可以查找与这个视频内容相似的其他视频内容进行推荐。
多个候选视频是可以向对象进行推荐的视频,可以从视频推荐应用后台的视频库中获取。进行视频推荐的目的是从多个候选视频中找到与查询视频相似的候选视频推荐给对象。如果对象对查询视频感兴趣,那么极大概率也会对与查询视频相似度高的候选视频感兴趣。
步骤1020、从查询视频中抽取多帧查询视频帧,从每一候选视频中抽取多帧候选视频帧。
从查询视频中抽取多帧查询视频帧可以将查询视频拆分为多个查询视频段,从每一查询视频段中抽取一帧查询视频帧,得到多帧查询视频帧。例如,将查询视频均匀地拆分成25段,从每一段中抽取一帧,得到25帧查询视频帧。
同理,从候选视频中抽取多帧候选视频帧可以将每一候选视频拆分为多个候选视频段,从每一候选视频段中抽取一帧候选视频帧,得到每一候选视频对应的多帧候选视频帧。将查询视频与候选视频进行拆分的数量可以是相同的。
步骤1030、利用第一神经网络模型中的第一网络层对多帧查询视频帧进行图像特征提取得到多帧查询帧特征,对多帧候选视频帧进行图像特征提取得到多帧候选帧特征;利用第二网络层对多帧查询帧特征进行特征融合得到查询视频特征,对多帧候选视频帧进行特征融合得到候选视频特征。
第一神经网络模型可以用于对视频进行特征提取,具体地,第一神经网络模型的特征提取过程可以定义为公式11:
(公式11)。
在公式11中,P表示第一神经网络模型,x表示输入第一神经网络模型的视频对应的多帧图像,F表示第一神经网络进行特征提取得到的视频特征。
第一神经网络模型中的第一网络层用于进行帧的图像特征提取;第二网络层用于对多帧提取出的帧特征进行特征融合,得到视频特征。第一网络层可以采用ResNet50进行特征抽取,第二网络层可以利用一个四层的变换器模型进行特征融合。
第一神经网络模型的训练过程如图11所示,下面结合步骤1031-步骤1039对图11进行说明。
步骤1031、获取多个第一样本视频以及多个预设负样本视频,将第一样本视频拆分为多个视频段,并从每一视频段中抽取视频帧,得到多帧视频帧;对多帧视频帧进行时序扩增与空间扩增得到多帧扩增视频帧。
第一样本视频是用于对第一神经网络模型进行训练的视频样本,多个第一样本视频可以构成一个训练集。第一样本视频可以是从公开的视频数据库中获取的,也可以是从多个视频推荐应用中获取的。预设负样本视频可以是与第一样本视频在内容上存在区别的视频,用于辅助第一样本视频对第一神经网络模型进行训练。多个预设负样本视频可以是负样本视频库中获取。负样本视频库可以是一个包含50万条预设负样本视频的视频库,在进行训练时,可以从负样本视频库中抽取63355个预设负样本视频来辅助第一神经网络模型进行训练,从而使第一神经网络模型可以学习到大量负样本视频特征,从而提高模型泛化性。
将第一样本视频拆分为多个视频段,从多个视频段中抽取出多帧视频帧代表整个第一样本视频。具体地,可以将第一样本视频拆分为25段,从中抽取25帧视频帧。
在进行视频扩增时,可以针对多帧视频帧进行时序扩增和空间扩增。时序扩增的方法包括:删除某些帧、添加某些帧等;空间扩增包括添加高斯噪声,修改对比度、亮度和饱和度色调等;对帧图像进行水平翻转、上下翻转、旋转剪裁或平移等。在对多帧视频帧进行时序扩增和空间扩增时,可以仅进行时序扩增或者仅进行空间扩增,也可以同时进行时序扩增与空间扩增。
多帧扩增视频帧中包括从第一样本视频中抽取的多帧视频帧、仅进行时序扩增的多帧视频帧、仅进行空间扩增的多帧视频帧与同时进行时序扩增与空间扩增的多帧视频帧。
步骤1032、基于第一神经网络模型中的第一网络层对多帧扩增视频帧进行特征提取,得到多个帧特征;基于第二网络层对多个帧特征进行特征融合,得到扩增视频特征;基于第二神经网络模型对多个预设负样本视频进行视频特征提取,得到多个负样本视频特征。
第一网络层可以采用ResNet50进行帧图像特征提取,取最后一层的输出作为多个帧特征。第二网络层可以对多个帧特征进行特征融合,得到视频级别的扩增视频特征。第二网络层进行特征融合的过程如前述实施例中的公式1-公式4所示,利用多头注意力机制,将多个帧特征组成的特征向量经过线性层进行线性化处理,再基于线性化处理结果进行得到帧级别融合结果。将帧级别融合结果中的特征进行平均,得到视频级的扩增视频特征。
第二神经网络模型可以是与第一神经网络模型具有相同结构的神经网络模型,用于对预设负样本视频进行视频特征提取。由于第二神经网络模型可以与第一神经网络模型具有相同的结构,因此,第二神经网络模型对预设负样本视频进行视频特征提取的方式与第一神经网络模型对扩增视频进行视频特征提取的方式相同。
步骤1033、基于扩增视频特征与负样本视频特征计算对比学习损失,得到第一损失。
扩增视频特征中包含多个扩增视频对应的视频特征。在计算对比学习损失时,可以从多个扩增视频对应的扩增视频特征中随机抽取两个构成正样本对,从正样本对中的两个扩增视频特征中确定目标扩增视频特征,将目标扩增视频特征与每一负样本视频特征组成负样本对。
利用欧式距离或余弦相似度等方法计算正样本对中两个视频特征之间的相似度;计算负样本对中两个视频特征之间的相似度。根据正样本对对应的相似度与多个负样本对对应的相似度对目标扩增视频特征进行分类。当正样本对的相似度大于全部负样本对的相似度时,可以将目标扩增视频特征分类为正样本;反之,存在负样本对的相似度大于正样本对的相似度时,可以将目标扩增视频特征分类为负样本。由于已知目标扩增视频特征属于正样本,因此,可以以正样本作为真实标签,基于对目标扩增视频特征的分类结果计算对比学习损失,具体的计算过程如前述实施方式中的公式5所示。将一轮训练中多个第一样本视频对应的对比学习损失加和可以得到一轮训练产生的第一损失。
步骤1034、对每一第一样本视频在视频帧维度上进行多个尺寸的截取,得到多个截取视频,并基于第一神经网络模型对第一样本视频与多个截取视频进行视频特征提取,得到第一样本视频特征与多个截取视频特征。
对第一样本视频在帧维度上进行多个尺寸的截取可以截取1/2、1/4与1/8三个尺寸的视频。随着截取尺寸的减小,截取视频与第一样本视频之间相同的特征越来越少,相似性越来越低。
在得到多个截取视频后,可以将第一样本视频与多个截取视频输入第一神经网络进行特征提取得到第一样本视频特征与多个截取视频特征。
步骤1035、基于第一样本视频特征、多个截取视频特征以及多个截取视频与第一样本视频的相似度排序关系计算相似度排序损失,得到第二损失。
在计算第二损失时,可以计算第一样本视频特征与多个截取视频特征两两之间的相似度,并基于相似度构建相似度矩阵。相似度矩阵可以直观地表示各个尺寸的截取视频特征与第一样本视频特征之间的关系。相似度矩阵的行数与列数均等于第一样本视频特征与截取视频特征的数量和,每一行与每一列都代表一个视频特征,每一个矩阵值都表示对应位置的两个视频特征之间的相似度。基于多个截取视频与第一样本视频的相似度排序关系可知,相似度矩阵中的相似度应该满足同一列中行号越大矩阵值越小。
在基于相似度矩阵以及多个截取视频与第一样本视频的相似度排序关系计算相似度排序损失时,可以如公式6所示。将左下半部分的每一个矩阵值作为目标矩阵值,将目标矩阵值所在列中行号大于目标矩阵值行号的矩阵值作为对比矩阵值。通过计算对比矩阵值与目标矩阵值之间的差来确定是否满足同一列中行号越大矩阵值越小的目标。通过计算对比矩阵值与目标矩阵值之间的差得到排序差。当排序差大于0时,表示对比矩阵值大于目标矩阵值,不满足同一列中行号越大矩阵值越小的目标;当排序差小于0时,表示对比矩阵值小于目标矩阵值,满足同一列中行号越大矩阵值越小的目标。当对比矩阵值与目标矩阵值可以满足目标时,可以将排序差调整为0,表示这个对比矩阵值与目标矩阵值之间不产生相似度排序损失;反之,当不满足目标时,可以将排序差作为这个对比矩阵值与目标矩阵值之间的相似度排序损失。将相似度矩阵中多个目标矩阵值与对应的对比矩阵值之间产生的相似度排序损失相加,得到第一样本视频与对应的多个截取视频在一轮训练中产生的相似度排序损失。将一轮训练中多个第一样本视频对应的相似度排序损失加和可以得到一轮训练产生的第二损失。
步骤1036获取第二样本视频以及对应的分类标签,基于第一神经网络模型对第二样本视频进行视频特征提取,得到第二样本视频特征,并基于预设分类网络对第二样本视频特征进行分类,得到分类预测概率值。
多个第二样本视频是携带分配标签的视频样本。多个第二样本视频可以与多个第一样本视频存在交集,也可以是与多个第一样本视频不同的样本视频。多个第二样本视频可以通过在公开的视频数据网站中获取携带分类标签的视频,例如,MovieNet分类数据集,它包含多种类型的视频数据,具体地,可以根据视频场景、情感氛围、动作类型、风格类型、视频主题与发行年代对视频进行分类。分类标签指示了第二样本视频所属的视频类别,例如,喜剧类、恐怖类等。
基于第一神经网络模型对第二样本视频进行视频特征提取后得到第二样本视频特征,基于预设分类网络对第二样本视频特征进行分类,得到分类预测概率值。预设分类网络层可以是一个多层深度神经网络,例如,CNN网络或者Transformer模型。分类预测概率值可以表示第二样本视频被预测分类为分类标签的概率。
步骤1037、基于分类预测概率值与分类标签计算分类损失,得到第三损失。
基于分类预测概率值与分类标签计算分类损失可以表示为公式7,利用第二样本视频自身的分类标签来进行监督计算分类损失,得到第三损失。
将一轮训练中多个第二样本视频对应的分类损失加和可以得到一轮训练产生的第三损失。
步骤1038、根据第一损失、第二损失以及第三损失对第一神经网络模型的参数进行更新。
在根据第一损失、第二损失与第三损失对第一神经网络模型的参数进行更新时,可以将第一损失、第二损失与第三损失相加得到总损失。利用反向传播算法计算总损失相对于第一神经网络模型参数的梯度,再利用优化算法朝着梯度下降的方向更新第一神经网络的参数。
步骤1039、基于第一神经网络模型更新后的参数与动量更新系数更新第二神经网络模型中的参数。
在对第一神经网络模型进行更新后,还可以根据第一神经网络模型的参数更新第二神经网络模型的参数。第二神经网络模型与第一神经网络模型具有相同的网络结构,因此第二神经网络模型可以基于第一神经网络模型中参数的更新而动量更新。动量更新可以基于第二神经网络模型之前的梯度更新方向与第一神经网络模型中梯度的更新方法来进行更新。动量更新系数可以指示第二神经网络模型中参数的更新程度。动量更新系数越大,可以表示第二神经网络模型之前的梯度更新方向对于当前梯度更新的影响越大。动量更新系数可以取0.99。
基于第一神经网络模型更新后的参数与动量更新系数更新第二神经网络模型中的参数可以表示为前述实施方式中的公式10。第一神经网络模型中的参数每更新一次,同步更新第二神经网络模型中的参数。
步骤1040、计算查询视频特征与每一候选视频对应的候选视频特征之间的相似度。
计算查询视频特征与每一候选视频对应的候选视频特征之间的相似度采用欧式距离、曼哈顿距离与余弦相似度等方式来进行计算。
步骤1050、将与查询视频的相似度小于预设阈值的候选视频确定为候选推荐视频,将候选推荐视频按照与查询视频的相似度由高到低的顺序进行排序,并将排序在前的预定数量个视频推荐给对象。
预设阈值可以来判断候选视频与查询视频是否重复。预设阈值可以为0.92,当候选视频与查询视频之间的相似度大于0.92时,这个候选视频是与查询视频重复的视频。与查询视频重复的候选视频不应该再次推荐给对象,因此,将与查询视频的相似度小于预设阈值的候选视频确定为候选推荐视频。
在向对象推荐视频时,可以优先推荐相似度高的。因此,可以将多个候选推荐视频按照与查询视频的相似度由高到低的顺序进行排序。当候选推荐视频与查询视频的相似度排序太低时,也不应该推荐给对象,这可能是对象不感兴趣的视频。因此,可以将排序在前的预定数量个视频推荐给对象,确保推荐给对象的候选视频均是与查询视频相似度较高的。
通过本公开实施例的视频推荐方法可以准确并高效的进行视频对比并找到相似视频。通过在多个场景中进行实验对比,本公开实施例在视频推荐的准确率上明显高于相关技术中的视频推荐方法。如表1所示:
表 1
在场景1中,相较于相关技术,本公开实施例的推荐准确性从0.345提升至0.430;在场景2中,本公开实施例的推荐准确性从0.367提升至0.443。归一化折损累计增益用来评估多个候选视频与查询视频的相似度排序是否合理,归一话折损累计增益越大,代表排序越合理,推荐结果越准确。基于此,本公开实施例的视频推荐方法可以有效地提高视频推荐的准确性。
可以理解的是,虽然上述各个流程图中的各个步骤按照箭头的表征依次显示,但是这些步骤并不是必然按照箭头表征的顺序依次执行。除非本实施例中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时间执行完成,而是可以在不同的时间执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据目标内容属性信息或属性信息集合等与目标内容特性相关的数据进行相关处理时,都会先获得目标内容的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关法律法规和标准。此外,当本申请实施例需要获取目标内容属性信息时,会通过弹窗或者跳转到确认页面等方式获得目标内容的单独许可或者单独同意,在明确获得目标内容的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的目标内容相关数据。
图12为本公开实施例提供的视频推荐装置1200的结构示意图。该视频推荐装置1200包括:
获取单元1210,用于获取查询视频以及候选视频库,候选视频库包括多个候选视频;
特征提取单元1220,用于基于第一神经网络模型对查询视频以及多个候选视频进行视频特征提取,得到查询视频特征以及多个候选视频特征,第一神经网络模型基于目标损失训练得到,目标损失包括第一损失和第二损失,第一损失为基于样本视频的扩增视频及预设负样本视频的视频特征计算得到的对比学习损失,第二损失为基于样本视频与多个尺寸的截取视频的视频特征计算得到的相似度排序损失,多个尺寸的截取视频为对样本视频在视频帧维度进行多个尺寸的截取得到的视频;
计算单元1230,用于计算查询视频特征与每一候选视频特征之间的相似度;
推荐单元1240,用于根据相似度进行视频推荐。
可选地,在一种实施方式中,第一神经网络模型的训练过程,包括如下步骤:
获取多个第一样本视频以及多个预设负样本视频,并对每个第一样本视频进行视频扩增,得到多个扩增视频,扩增视频包括第一样本视频以及对第一样本视频进行视频扩增得到的视频;
基于第一神经网络模型对扩增视频进行视频特征提取,得到扩增视频特征,并基于第二神经网络模型对多个预设负样本视频进行视频特征提取,得到多个负样本视频特征;
基于扩增视频特征与负样本视频特征计算对比学习损失,得到第一损失;
对每一第一样本视频在视频帧维度上进行多个尺寸的截取,得到多个截取视频,并基于第一神经网络模型对第一样本视频与多个截取视频进行视频特征提取,得到第一样本视频特征与多个截取视频特征;
基于第一样本视频特征、多个截取视频特征以及多个截取视频与第一样本视频的相似度排序关系计算相似度排序损失,得到第二损失;
根据第一损失与第二损失对第一神经网络模型的参数进行更新。
可选地,在一种实施方式中,第一神经网络模型的训练过程还包括:
获取多个第二样本视频以及每一第二样本视频对应的分类标签;
基于第一神经网络模型对第二样本视频进行视频特征提取,得到第二样本视频特征;
基于预设分类网络层对第二样本视频特征进行分类,得到分类预测概率值;
基于分类预测概率值与分类标签计算分类损失,得到第三损失;
根据第一损失与第二损失对第一神经网络模型的参数进行更新,包括:
根据第一损失、第二损失以及第三损失对第一神经网络模型的参数进行更新。
可选地,在一种实施方式中,对每个第一样本视频进行视频扩增,得到多个扩增视频,包括:
对第一样本视频进行时序扩增,得到第一子扩增视频;
对第一样本视频进行空间扩增,得到第二子扩增视频;
对第一子扩增视频进行空间扩增,得到第三子扩增视频;
根据第一子扩增视频、第二子扩增视频、第三子扩增视频以及第一样本视频确定多个扩增视频。
可选地,在一种实施方式中,对第一样本视频进行时序扩增,得到第一子扩增视频之前,所述第一神经网络模型的训练过程还包括:
将第一样本视频拆分为多个视频段,并从每一视频段中抽取视频帧,得到多帧视频帧;
对第一样本视频进行时序扩增,得到第一子扩增视频,包括:
对多帧视频帧进行时序扩增,得到多帧第一子扩增视频帧;
基于第一神经网络模型对扩增视频进行视频特征提取,得到扩增视频特征,包括:
基于第一神经网络模型对多帧扩增视频帧进行视频特征提取,得到扩增视频特征,多帧扩增视频帧包括多帧视频帧、仅基于时序扩增得到的多帧第一子扩增视频帧、仅基于空间扩增得到的多帧第二子扩增视频帧与同时基于时序扩增与空间扩增得到的多帧第三子扩增视频帧。
可选地,在一种实施方式中,第一神经网络模型包括第一网络层和第二网络层,基于第一神经网络模型对多帧扩增视频帧进行视频特征提取,得到扩增视频特征,包括:
基于第一网络层对多帧扩增视频帧进行图像特征提取,得到多个帧特征;
基于第二网络层对多个帧特征进行特征融合,得到扩增视频特征。
可选地,在一种实施方式中,基于第二网络层对多个帧特征进行特征融合,得到扩增视频特征,包括:
基于对多个帧特征进行线性变换,得到第一中间矩阵、第二中间矩阵与第三中间矩阵;
对第一中间矩阵与第二中间矩阵的转置相乘后进行归一化处理,并将归一化处理结果与第三中间矩阵相乘,得到多个帧融合结果;
计算多个帧融合结果的平均值,得到扩增视频特征。
可选地,在一种实施方式中,特征提取单元1220具体用于:
从查询视频中抽取出多帧查询视频帧,以及从每一候选视频中抽取出多帧候选视频帧;
基于第一网络层对多帧查询视频帧进行图像特征提取,得到多个查询帧特征,以及基于第一网络层对多帧候选视频帧进行图像特征提取,得到多个候选帧特征;
基于第二网络层对多个查询帧特征进行特征融合得到查询视频特征,以及基于第二网络层对每一候选视频对应的多个候选帧特征进行特征融合得到多个候选视频特征。
可选地,在一种实施方式中,特征提取单元1220具体用于:
将查询视频拆分为多个查询视频段,以及将每一候选视频拆分为多个候选视频段;
从每一查询视频段中抽取一帧查询视频帧,得到多帧查询视频帧;
从每一候选视频段中抽取一帧候选视频帧,得到每一候选视频对应的多帧候选视频帧。
可选地,在一种实施方式中,第一神经网络模型的训练过程还包括:
获取模型参数的动量更新系数;
基于第一神经网络模型的更新后的参数以及动量更新系数对第二神经网络模型的参数进行更新。
可选地,在一种实施方式中,推荐单元1240具体用于:
确定多个候选视频中与查询视频的相似度小于预设阈值的视频为第一目标视频;
将多个第一目标视频按照与查询视频的相似度由高至低的顺序进行排序,并确定排序在前的预设数量个视频为第二目标视频;
将多个第二目标视频推荐给推荐对象。
参照图13,图13为实现本公开实施例的视频推荐方法的终端140的部分的结构框图,该终端包括:射频(Radio Frequency,简称RF)电路1310、存储器1315、输入单元1330、显示单元1340、传感器1350、音频电路1360、无线保真(wireless fidelity,简称WiFi)模块1370、处理器1380、以及电源1390等部件。本领域技术人员可以理解,图13示出的终端140结构并不构成对手机或电脑的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
RF电路1310可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1380处理;另外,将设计上行的数据发送给基站。
存储器1315可用于存储软件程序以及模块,处理器1380通过运行存储在存储器1315的软件程序以及模块,从而执行内容终端的各种功能应用以及数据处理。
输入单元1330可用于接收输入的数字或字符信息,以及产生与内容终端的设置以及功能控制有关的键信号输入。具体地,输入单元1330可包括触控面板1331以及其他输入装置1332。
显示单元1340可用于显示输入的信息或提供的信息以及内容终端的各种菜单。显示单元1340可包括显示面板1341。
音频电路1360、扬声器1361,传声器1362可提供音频接口。
在本实施例中,该对象终端140所包括的处理器1380可以执行前面实施例的视频推荐方法。
本公开实施例的对象终端140包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。本发明实施例可应用于各种场景,包括但不限于人机交互、知识召回等。
图14为实施本公开实施例的视频推荐方法的服务器110的部分的结构框图。服务器110可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,简称CPU)1422(例如,一个或一个以上处理器)和存储器1432,一个或一个以上存储应用程序1442或数据1444的存储介质1430(例如一个或一个以上海量存储装置)。其中,存储器1432和存储介质1430可以是短暂存储或持久存储。存储在存储介质1430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1422可以设置为与存储介质1430通信,在服务器上执行存储介质1430中的一系列指令操作。
服务器110还可以包括一个或一个以上电源1426,一个或一个以上有线或无线网络接口1450,一个或一个以上输入输出接口1458,和/或,一个或一个以上操作系统1441,例如Windows ServerTM,Mac OS XTM,UnixTM ,LinuxTM,FreeBSDTM等等。
服务器110中的中央处理器1422可以用于执行本公开实施例的视频推荐方法。
本公开实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行前述各个实施例的视频推荐方法。
本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序。计算机设备的处理器读取该计算机程序并执行,使得该计算机设备执行实现上述的视频推荐方法。
本公开的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的内容,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“包含”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其它步骤或单元。
应当理解,在本公开中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联内容的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联内容是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
应了解,在本公开实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
本公开实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
在本公开所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行本公开各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
还应了解,本公开实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。
以上是对本公开的实施方式的具体说明,但本公开并不局限于上述实施方式,熟悉本领域的技术人员在不违背本公开精神的条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本公开权利要求所限定的范围内。
Claims (15)
1.一种视频推荐方法,其特征在于,包括:
获取查询视频以及候选视频库,所述候选视频库包括多个候选视频;
基于第一神经网络模型对所述查询视频以及所述多个候选视频进行视频特征提取,得到查询视频特征以及多个候选视频特征,所述第一神经网络模型基于目标损失训练得到,所述目标损失包括第一损失和第二损失,所述第一损失为基于第一样本视频的扩增视频及预设负样本视频的视频特征计算得到的对比学习损失,所述第二损失的计算过程包括:将所述第一样本视频的第一样本视频特征与多个尺寸的截取视频的多个截取视频特征两两组合,得到多个特征对比组,所述多个尺寸的截取视频为对所述第一样本视频在视频帧维度进行多个尺寸的截取得到的视频;计算每一所述特征比对组中的两个视频特征之间的第三训练相似度;根据多个所述第三训练相似度生成相似度矩阵,所述相似度矩阵的行维度与列维度基于所述第一样本视频以及所述多个尺寸的截取视频的视频尺寸排序进行排列;针对所述相似度矩阵中的每一列,将对应行号大于等于对应列号的矩阵值确定为目标矩阵值,将对应行号大于所述目标矩阵值对应行号的矩阵值确定为所述目标矩阵值的对比矩阵值;计算所述对比矩阵值与对应的所述目标矩阵值之间的差,得到排序差;基于所述排序差计算相似度排序损失,得到第二损失;
计算所述查询视频特征与每一所述候选视频特征之间的相似度;
根据所述相似度进行视频推荐。
2.根据权利要求1所述的方法,其特征在于,所述第一神经网络模型的训练过程,包括如下步骤:
获取多个第一样本视频以及多个预设负样本视频,并对每个所述第一样本视频进行视频扩增,得到多个扩增视频,所述扩增视频包括所述第一样本视频以及对所述第一样本视频进行视频扩增得到的视频;
基于第一神经网络模型对所述扩增视频进行视频特征提取,得到扩增视频特征,并基于第二神经网络模型对所述多个预设负样本视频进行视频特征提取,得到多个负样本视频特征;
基于所述扩增视频特征与所述负样本视频特征计算对比学习损失,得到第一损失;
对每一所述第一样本视频在视频帧维度上进行多个尺寸的截取,得到多个截取视频,并基于所述第一神经网络模型对所述第一样本视频与所述多个截取视频进行视频特征提取,得到第一样本视频特征与多个截取视频特征;
基于所述第一样本视频特征、所述多个截取视频特征以及所述多个截取视频与所述第一样本视频的相似度排序关系计算相似度排序损失,得到第二损失;
根据所述第一损失与所述第二损失对所述第一神经网络模型的参数进行更新。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取多个第二样本视频以及每一所述第二样本视频对应的分类标签;
基于所述第一神经网络模型对所述第二样本视频进行视频特征提取,得到第二样本视频特征;
基于预设分类网络层对所述第二样本视频特征进行分类,得到分类预测概率值;
基于所述分类预测概率值与所述分类标签计算分类损失,得到第三损失;
所述根据所述第一损失与所述第二损失对所述第一神经网络模型的参数进行更新,包括:
根据所述第一损失、所述第二损失以及所述第三损失对所述第一神经网络模型的参数进行更新。
4.根据权利要求2所述的方法,其特征在于,所述对每个所述第一样本视频进行视频扩增,得到多个扩增视频,包括:
对所述第一样本视频进行时序扩增,得到第一子扩增视频;
对所述第一样本视频进行空间扩增,得到第二子扩增视频;
对所述第一子扩增视频进行空间扩增,得到第三子扩增视频;
根据所述第一子扩增视频、所述第二子扩增视频、所述第三子扩增视频以及所述第一样本视频确定多个扩增视频。
5.根据权利要求4所述的方法,其特征在于,所述对所述第一样本视频进行时序扩增,得到第一子扩增视频之前,还包括:
将所述第一样本视频拆分为多个视频段,并从每一所述视频段中抽取视频帧,得到多帧视频帧;
所述对所述第一样本视频进行时序扩增,得到第一子扩增视频,包括:
对所述多帧视频帧进行时序扩增,得到多帧第一子扩增视频帧;
所述基于第一神经网络模型对所述扩增视频进行视频特征提取,得到扩增视频特征,包括:
基于第一神经网络模型对多帧扩增视频帧进行视频特征提取,得到扩增视频特征,所述多帧扩增视频帧包括所述多帧视频帧、仅基于时序扩增得到的所述多帧第一子扩增视频帧、仅基于空间扩增得到的多帧第二子扩增视频帧与同时基于时序扩增与空间扩增得到的多帧第三子扩增视频帧。
6.根据权利要求5所述的方法,其特征在于,所述第一神经网络模型包括第一网络层和第二网络层,所述基于第一神经网络模型对多帧扩增视频帧进行视频特征提取,得到扩增视频特征,包括:
基于所述第一网络层对多帧扩增视频帧进行图像特征提取,得到多个帧特征;
基于所述第二网络层对所述多个帧特征进行特征融合,得到扩增视频特征。
7.根据权利要求6所述的方法,其特征在于,所述基于所述第二网络层对所述多个帧特征进行特征融合,得到扩增视频特征,包括:
基于对所述多个帧特征进行线性变换,得到第一中间矩阵、第二中间矩阵与第三中间矩阵;
对所述第一中间矩阵与所述第二中间矩阵的转置相乘后进行归一化处理,并将归一化处理结果与所述第三中间矩阵相乘,得到多个帧融合结果;
计算所述多个帧融合结果的平均值,得到扩增视频特征。
8.根据权利要求6所述的方法,其特征在于,所述基于第一神经网络模型对所述查询视频以及所述多个候选视频进行视频特征提取,得到查询视频特征以及多个候选视频特征,包括:
从所述查询视频中抽取出多帧查询视频帧,以及从每一所述候选视频中抽取出多帧候选视频帧;
基于所述第一网络层对所述多帧查询视频帧进行图像特征提取,得到多个查询帧特征,以及基于所述第一网络层对所述多帧候选视频帧进行图像特征提取,得到多个候选帧特征;
基于所述第二网络层对所述多个查询帧特征进行特征融合得到查询视频特征,以及基于所述第二网络层对每一候选视频对应的所述多个候选帧特征进行特征融合得到多个候选视频特征。
9.根据权利要求8所述的方法,其特征在于,所述从所述查询视频中抽取出多帧查询视频帧,以及从每一所述候选视频中抽取出多帧候选视频帧,包括:
将所述查询视频拆分为多个查询视频段,以及将每一所述候选视频拆分为多个候选视频段;
从每一所述查询视频段中抽取一帧查询视频帧,得到多帧查询视频帧;
从每一所述候选视频段中抽取一帧候选视频帧,得到每一所述候选视频对应的多帧候选视频帧。
10.根据权利要求2所述的方法,其特征在于,所述根据所述第一损失与所述第二损失对所述第一神经网络模型的参数进行更新之后,还包括:
获取模型参数的动量更新系数;
基于所述第一神经网络模型的更新后的参数以及所述动量更新系数对所述第二神经网络模型的参数进行更新。
11.根据权利要求1所述的方法,其特征在于,所述根据所述相似度进行视频推荐,包括:
确定所述多个候选视频中与所述查询视频的相似度小于预设阈值的视频为第一目标视频;
将多个所述第一目标视频按照与所述查询视频的相似度由高至低的顺序进行排序,并确定排序在前的预设数量个视频为第二目标视频;
将多个所述第二目标视频推荐给推荐对象。
12.一种视频推荐装置,其特征在于,包括:
获取单元,用于获取查询视频以及候选视频库,所述候选视频库包括多个候选视频;
特征提取单元,用于基于第一神经网络模型对所述查询视频以及所述多个候选视频进行视频特征提取,得到查询视频特征以及多个候选视频特征,所述第一神经网络模型基于目标损失训练得到,所述目标损失包括第一损失和第二损失,所述第一损失为基于第一样本视频的扩增视频及预设负样本视频的视频特征计算得到的对比学习损失,所述第二损失的计算过程包括:将所述第一样本视频的第一样本视频特征与多个尺寸的截取视频的多个截取视频特征两两组合,得到多个特征对比组,所述多个尺寸的截取视频为对所述第一样本视频在视频帧维度进行多个尺寸的截取得到的视频;计算每一所述特征比对组中的两个视频特征之间的第三训练相似度;根据多个所述第三训练相似度生成相似度矩阵,所述相似度矩阵的行维度与列维度基于所述第一样本视频以及所述多个尺寸的截取视频的视频尺寸排序进行排列;针对所述相似度矩阵中的每一列,将对应行号大于等于对应列号的矩阵值确定为目标矩阵值,将对应行号大于所述目标矩阵值对应行号的矩阵值确定为所述目标矩阵值的对比矩阵值;计算所述对比矩阵值与对应的所述目标矩阵值之间的差,得到排序差;基于所述排序差计算相似度排序损失,得到第二损失;
计算单元,用于计算所述查询视频特征与每一所述候选视频特征之间的相似度;
推荐单元,用于根据所述相似度进行视频推荐。
13.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现根据权利要求1至11任意一项所述的视频推荐方法。
14.一种存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现根据权利要求1至11任意一项所述的视频推荐方法。
15.一种计算机程序产品,该计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器读取并执行,使得该计算机设备执行根据权利要求1至11任意一项所述的视频推荐方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410450433.0A CN118035496B (zh) | 2024-04-15 | 2024-04-15 | 视频推荐方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410450433.0A CN118035496B (zh) | 2024-04-15 | 2024-04-15 | 视频推荐方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118035496A CN118035496A (zh) | 2024-05-14 |
CN118035496B true CN118035496B (zh) | 2024-08-27 |
Family
ID=91000700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410450433.0A Active CN118035496B (zh) | 2024-04-15 | 2024-04-15 | 视频推荐方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118035496B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116977265A (zh) * | 2023-03-30 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 缺陷检测模型的训练方法、装置、计算机设备和存储介质 |
CN117011741A (zh) * | 2022-10-27 | 2023-11-07 | 腾讯科技(深圳)有限公司 | 视频检测模型的训练方法、装置、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783655B (zh) * | 2018-12-07 | 2022-12-30 | 西安电子科技大学 | 一种跨模态检索方法、装置、计算机设备和存储介质 |
WO2021092632A2 (en) * | 2021-02-26 | 2021-05-14 | Innopeak Technology, Inc. | Weakly-supervised text-based video moment retrieval via cross attention modeling |
CN115775322A (zh) * | 2021-09-06 | 2023-03-10 | 腾讯科技(深圳)有限公司 | 图像分类方法、装置、计算机设备和存储介质 |
CN117218356A (zh) * | 2022-06-01 | 2023-12-12 | 深圳先进技术研究院 | 图像识别方法及装置 |
CN115240029A (zh) * | 2022-06-30 | 2022-10-25 | 深圳大学 | 图像回归模型的训练方法、图像回归分析方法、介质及终端 |
CN117573900A (zh) * | 2023-10-23 | 2024-02-20 | 广东小天才科技有限公司 | 搜题方法、搜题算法的训练方法、装置、电子设备及介质 |
-
2024
- 2024-04-15 CN CN202410450433.0A patent/CN118035496B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117011741A (zh) * | 2022-10-27 | 2023-11-07 | 腾讯科技(深圳)有限公司 | 视频检测模型的训练方法、装置、设备及存储介质 |
CN116977265A (zh) * | 2023-03-30 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 缺陷检测模型的训练方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN118035496A (zh) | 2024-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110297848B (zh) | 基于联邦学习的推荐模型训练方法、终端及存储介质 | |
WO2020199932A1 (zh) | 模型训练方法、人脸识别方法、装置、设备及存储介质 | |
CN111931062A (zh) | 一种信息推荐模型的训练方法和相关装置 | |
CN111914113B (zh) | 一种图像检索的方法以及相关装置 | |
CN109033156B (zh) | 一种信息处理方法、装置及终端 | |
CN105531701A (zh) | 个性化趋势图像搜索建议 | |
CN112214677B (zh) | 一种兴趣点推荐方法、装置、电子设备及存储介质 | |
CN111709398A (zh) | 一种图像识别的方法、图像识别模型的训练方法及装置 | |
CN113657087B (zh) | 信息的匹配方法及装置 | |
CN112995757B (zh) | 视频剪裁方法及装置 | |
CN114358109A (zh) | 特征提取模型训练、样本检索方法、装置和计算机设备 | |
CN111259257A (zh) | 一种信息展示方法、系统、装置、电子设备及存储介质 | |
CN111310025B (zh) | 模型训练方法、数据处理方法、装置以及相关设备 | |
CN117216362A (zh) | 内容推荐方法、装置、设备、介质和程序产品 | |
CN113641797A (zh) | 数据处理方法、装置、设备、存储介质及计算机程序产品 | |
CN114490923A (zh) | 相似文本匹配模型的训练方法、装置、设备及存储介质 | |
CN116980472A (zh) | 推送数据的处理方法、数据推送模型的训练方法和装置 | |
CN118035496B (zh) | 视频推荐方法、装置、电子设备和存储介质 | |
CN116775980B (zh) | 一种跨模态搜索方法及相关设备 | |
CN112232890B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN111339786B (zh) | 语音处理方法、装置、电子设备及存储介质 | |
CN114897046B (zh) | 媒体资源的语义特征确定方法和装置、存储介质及设备 | |
CN115187809B (zh) | 分类及分类模型训练方法、装置及存储介质 | |
CN117938951B (zh) | 信息推送方法、装置、计算机设备和存储介质 | |
CN114880473B (zh) | 一种标签分类方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |