推荐视频召回方法和装置与流程

文档序号:18165337发布日期:2019-07-13 09:34阅读:585来源:国知局
推荐视频召回方法和装置与流程

本发明涉及推荐系统,尤其涉及一种基于向量的推荐视频召回方法和装置。



背景技术:

视频行业近年来发展迅猛,其中短视频尤以其社交性而大行其道,并且出现在一大批以分发个人状况短视频为主的短视频社交应用,这类应用主要以短视频消费为主社交为辅进行体系的构建。

为了提高用户友好度并减少低效的后台计算,这些应用需要将合适的视频内容在合适的时间以合适的方式推荐给合适的用户。内容合适是指内容契合目标用户口味,时间合适是指推荐内容应景当时的上下文,方式合适是指推荐的内容展现方式让用户感到舒适,用户合适是指推荐的用户确实对被推荐内容有较强的认可度。为此,进行高效推荐的前提是理解用户和视频内容,这就需要创建用户画像来对用户进行表述并对视频内容加以分类或是进行标注。

在现有技术中,各类推荐召回方法都是根据用户画像离线为每个用户计算出各个召回拉链,之后把这些召回拉链存于缓存中,在推荐时根据用户画像与推荐上下文拉取不同的召回拉链作为召回。这种召回方式需要存储每个用户的多条召回拉链,通常每个召回拉链长度都在千级别且在离线计算召回拉链时并不知道用户在接下来的推荐周期内是否会进行应用访问,所以通常需要计算90天或60天的所有活跃用户。对于中大型用户规模的应用而言,如上操作所需的存储资源非常可观,但有效利用率却不高。另外,此种召回方式需要耗费巨大人力物力进行用户画像构造,且在平台上线初期难以实现。

为此,需要一种更为轻量且高效的推荐视频召回方案。



技术实现要素:

有鉴于此,本发明提出了一种基于向量的视频召回算法,可以在缺乏用户画像的基础上快速、高效的实现个性化推荐。通过将视频和用户画像的描述向量化,能够方便地基于用户视频观看历史构建用户画像向量,并基于向量化的用户画像轻松召回具有类似向量的推荐视频。

根据本发明的一个方面,提出了一种推荐视频召回方法,包括:基于用户的当前视频点击历史,查找与每个视频对应的视频描述向量;根据查找到的多个视频描述向量,生成该用户的至少一个当前用户画像向量;以及召回视频描述向量与所述至少一个当前用户画像向量相似的候选推荐视频。由此,通过将视频和用户画像的描述向量化,能够方便地基于用户视频观看历史构建用户画像向量,并基于向量化的用户画像轻松召回具有类似向量的推荐视频。

优选地,召回视频描述向量与所述至少一个当前用户画像向量相似的候选推荐视频包括:基于多个当前用户画像向量中的每一个召回一条候选推荐视频拉链;以及融合多条候选推荐视频拉链作为所述用户的当前相似推荐视频,例如,基于当前用户画像向量的权重,确定相似推荐视频中各条候选推荐视频拉链的占比和/或呈现方式,其中,每个当前用户画像向量的权重基于如下至少一项确定:生成该当前用户画像向量的视频描述向量的个数;生成该当前用户画像向量的视频描述向量对应视频的观看时间。由此,能够基于不同的用户偏好,获取相应的推荐视频。

优选地,本发明的召回方法还可以包括:针对多个已有视频,计算每个已有视频的视频描述向量;以及构造视频id到其对应视频描述向量的视频向量对应表。于是,可以基于用户当前视频点击历史中包含的视频id,从所述视频向量对应表中查找对应的视频描述向量。

优选地,本发明的召回方法还可以包括:对多个已有视频的视频描述向量进行聚类;以及构造视频id到其所属聚类id的视频聚类对应表。

于是,召回操作可以包括:计算每个当前用户画像向量所属的聚类;基于每个所属的聚类从所述视频聚类对应表中找出每个聚类所包含的视频id;基于所包含的视频id从所述视频向量对应表中找出对应的视频描述向量;计算每个当前用户画像与其所属聚类内各视频的视频描述向量的相似性;以及返回相似度最高的预定数目的视频id作为该当前用户画像向量所召回的候选推荐视频拉链。由此,使得平台只需存储两个对应表,就可以基于用户的视频历史数据,方便地进行实时用户画像的生成和推荐视频的召回。

优选地,本发明的召回方法还可以包括:基于新增视频在各个聚类中分布的疏密程度,进行现有聚类的合并或分解的聚类更新操作;以及根据聚类更新操作的结果更新所述视频聚类对应表。由此,使得聚类能够更为及时准确的反映所属视频的内容,并提升后续召回操作的计算效率和准确性。

可以在如下至少一种场合下实时生成用户的当前用户画像向量并召回相应的候选推荐视频:在用户开启视频应用的情况下;在用户新点击了预定个数的视频的情况下;以及在预定的时间间隔下。由此,基于具体应用场景和系统性能,极大地提升推荐的实时性和灵活性。

优选地,每个视频对应的视频描述向量是从人工神经网络(ann)对该视频的关键帧进行分类的分类结果构造而来的关键帧向量,并且用户的当前用户画像向量是从该用户观看的视频的关键帧向量的合并和/或聚类而生成的。由此,可以利用成熟ann(例如,cnn图像分类模型)的特征提取功能,构造出准确反映图像内容的关键帧向量,并为后续的合并和推荐操作的准确性提供基础。

根据本发明的另一个方面,提出了一种推荐视频召回装置,包括:视频描述向量查找单元,用于基于用户的当前视频点击历史,查找与每个视频对应的视频描述向量;用户画像向量生成单元,用于根据查找到的多个视频描述向量,生成该用户的至少一个当前用户画像向量;以及候选推荐视频召回单元,用于召回视频描述向量与所述至少一个当前用户画像向量相似的候选推荐视频。

优选地,所述候选推荐视频召回单元可以用于:基于多个当前用户画像向量中的每一个召回一条候选推荐视频拉链;以及融合多条候选推荐视频拉链作为所述用户的当前相似推荐视频。

优选地,所述候选推荐视频召回单元的融合操作可以包括:基于当前用户画像向量的权重,确定相似推荐视频中各条候选推荐视频拉链的占比和/或呈现方式,其中,每个当前用户画像向量的权重基于如下至少一项确定:生成该当前用户画像向量的视频描述向量的个数;以及生成该当前用户画像向量的视频描述向量对应视频的观看时间。

优选地,召回装置还可以包括:视频描述向量生成单元和聚类计算单元,其中,视频描述向量生成单元用于:针对多个已有视频,计算每个已有视频的视频描述向量;以及构造视频id到其对应视频描述向量的视频向量对应表,所述聚类计算单元用于:对多个已有视频的视频描述向量进行聚类;以及构造视频id到其所属聚类id的视频聚类对应表。

优选地,视频描述向量查找单元可以用于:基于用户当前视频点击历史中包含的视频id,从所述视频向量对应表中查找对应的视频描述向量,并且所述候选推荐视频召回单元用于:计算每个当前用户画像向量所属的聚类;基于每个所属的聚类从所述视频聚类对应表中找出每个聚类所包含的视频id;基于所包含的视频id从所述视频向量对应表中找出对应的视频描述向量;计算每个当前用户画像与其所属聚类内各视频的视频描述向量的相似性;以及返回相似度最高的预定数目的视频id作为该当前用户画像向量所召回的候选推荐视频拉链。

优选地,所述聚类计算单元还可以用于:基于新增视频在各个聚类中分布的疏密程度,进行现有聚类的合并或分解的聚类更新操作;以及根据聚类更新操作的结果更新所述视频聚类对应表。

优选地,所述视频描述向量生成单元从人工神经网络(ann)对某一视频的关键帧进行分类的分类结果构造关键帧向量作为该视频的视频描述向量,并且所述用户画像向量生成单元对某一用户观看的视频的关键帧向量进行合并和/或聚类生成该用户的当前用户画像向量。

优选地,在如下至少一种场合下所述召回装置进行当前用户画像向量的实时生成和相应候选推荐视频的实时召回:在用户开启视频应用的情况下;在用户新点击了预定个数的视频的情况下;以及在预定的时间间隔下。

根据本发明的再一个方面,提出了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的推荐视频召回方法。

根据本发明的又一个方面,提出了一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的推荐视频召回方法。

本发明通过视频内容的向量化使用向量来表示视频内容,能够根据用户的实时播放历史实时计算用户的向量画像,并使用特定的向量表示进行相似性推荐。通过将召回操作转变为针对向量的操作,使得整个推荐架构更为简单高效,并能在一定程度上解决冷启动问题。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。

图1示出了根据本发明一个实施例的推荐视频召回方法的流程示意图。

图2示出了关键帧生成的一个例子。

图3示出了典型的cnn的组成层的例子。

图4示出了本发明的内存数据结构构建流程的一个例子。

图5示出了本发明的实时召回计算流程的一个例子。

图6示出了根据本发明一个实施例的推荐视频召回装置的组成框图。

图7示出了根据本发明一个实施例可用于实现上述推荐视频召回方法的计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

近年来由于feed流产品的盛行,个性推荐已成为视频类应用(例如,手机app)的标配。个性化推荐中一个很重要的环节就是召回,即是根据用户画像或用户的播放上下文获取用户最有可能接着播放的一批视频。

当前有各类推荐召回方法都是根据用户画像离线为每个用户计算出各个召回拉链,之后把这些召回拉链存于缓存中,在推荐时根据用户画像与推荐上下文拉取不同的召回拉链作为召回。这种召回方式需要存储每个用户的多条召回拉链,通常每个召回拉链长度都在千级别且在离线计算召回拉链时并不知晓用户在接下来的推荐周期是否会访问该应用,所以通常需要计算90天或60天的所有活跃用户。对于中大型用户规模的应用而言,这种方法所需的存储资源非常可观,但有效利用率却较低。另外,此种召回方式需要耗费巨大人力物力进行用户画像构造,且在平台上线初期难以实现。

为此,本发明提出了一种基于向量的实时视频召回算法,它可以在缺乏用户画像的基础上快速、高效的实现个性化推荐,而不用在乎用户消费行为的多少,解决产品初期冷启动的问题。

具体地,本发明的召回方案可以把需要推荐的视频内容编码成向量,每个视频项对应一个向量,这些向量有如下特性:a.通过多维向量表示一个视频项的内容,b.在视频项的向量空间中内容相似的向量会聚在一起,它们的相似度(例如,余弦相似度值)都比较大。在推荐召回时可以根据用户的播放历史,推荐用户可能喜欢的相关视频以实现相似推荐。这对于存储空间的需求将大大减少,因为用于推荐的候选内容池大小与90天内用户数会相差几个数量级。实时计算推荐召回能更灵活地对用户的最近行为进行反馈,能更好的捕捉用户的兴趣,特别对于新用户有显著的效果,并能够快速理解用户的兴趣。

图1示出了根据本发明一个实施例的推荐视频召回方法的流程示意图。该方法通过针对视频和用户画像的向量化操作,能够实现推荐视频的实时召回,从而大大降低了现有技术种针对用户画像和召回拉链的存储需要,并且提升了召回的灵活性和准确性。

在步骤s110,基于用户的当前视频点击历史,查找与每个视频对应的视频描述向量。在步骤s120,根据查找到的多个视频描述向量,生成该用户的至少一个当前用户画像向量。在步骤s130,召回视频描述向量与所述至少一个当前用户画像向量相似的候选推荐视频。

在步骤s110,视频描述向量的查找可以包括首先根据用户的视频点击历史,获取该用户观看过的视频信息,随后再根据获取的所述视频信息,查找与视频对应的视频描述向量。在此,可以基于不同的策略,获取不同范围的观看历史。例如,在用户新使用一个应用时,可以获取用户所点击的每一个视频的视频信息。随着用户点击数据的增多,可以选择最近一段时期(例如,最近七天)或最近观看的预定个数(例如,最近观看的100个)视频并获取相应的视频信息。在一个实施例中,还可以进一步根据视频的观看完成度,现在要用于计算用户画像向量的视频。例如,可以选择用户点击的全部视频,也可以仅选择用户观看完或是观看完成度超过预定百分比或时长的视频。

在此,视频描述向量能够描述视频内容的向量,其可以是通过对视频所含图像进行分析而生成的。在此,可以对视频库内已有的和/或新上传的视频进行处理,以获取视频所对应的视频描述向量。在一个实施例中,可以使用视频的关键帧向量作为本发明的视频描述向量。使用关键帧向量进行视频内容描述尤其适用于表现主题通常较为单一的短视频。

图2示出了关键帧生成的一个例子。在步骤s210,提取视频的关键帧。在此,可以是针对多个视频提取各自的关键帧。出于计算成本的考虑,优选针对每个视频选择一个关键帧进行处理。在短视频具有封面的情况下,可以直接选择封面作为关键帧。作为替换或者补充,也可以使用已知的关键帧选取算法(例如,ffmpeg)选取视频中的某一帧作为该视频的关键帧。

在步骤s220,使用ann分类器对每个所述关键帧进行分类。在本发明中使用的ann分类器尤其可以是适用于图像分类的cnn分类器。

图3示出了典型的cnn的组成层的例子。如图3所示,典型的cnn由一系列有序运行的层组成。

cnn神经网络由输入层、输出层和多个隐藏层串联组成。cnn的第一层读取输入值,例如输入图像,并输出一系列的激活值(也可称为特征图)。下面的层读取由上一层产生的激活值,并输出新的激活值。最后一个分类器(classifier)输出该输入图像可能属于的每一类别的概率。

这些层大致可分为带权重的层(如卷积层、全连接层、批量归一化层等)和不带权重的层(如池化层、relu层、softmax层等)。在这其中,conv层(convolutionallayers,卷积层)以一系列特征图作为输入,并以卷积内核卷积获得输出激活值。池化层通常与conv层相连,用于输出每个特征图中的每个分区(subarea)的最大值或平均值,由此通过亚采样降低计算量,同时保持某种程度的位移、尺度和形变不变性。一个cnn中可以包括卷积层和池化层之间的多个交替,由此逐步降低空间分辨率并增加特征映射的数量。随后可以连接至至少一个全连接层,通过应用于输入特征向量上的线性变换,得到包括多个特征值的一维向量输出。

总体来说,带权重的层的操作可以表示为:

y=wx+b,

其中w为权重值,b为偏置,x为输入激活值,y为输出激活值。

不带权重的层的操作可以表示为:

y=f(x),

其中f(x)为非线性函数。

在此,“权重”(weights)指代隐藏层中的参数,从广义上理解可以包括偏置,是通过训练过程习得的数值,并且在推理时保持不变;激活值指代从输入层开始,每一层的输出由输入值和权重值通过运算得到,在各层之间传递的数值,也称为特征值。与权重值不同,激活值的分布会根据输入数据样本而动态变化。

在使用cnn进行推理(例如,图像分类)之前,首先需要对cnn进行训练。通过训练数据的大量导入,确定神经网络模型各层的参数,例如权重和偏置。

在一个实施例中,本发明可以直接使用tensorflow的图片识别模型来对短视频的关键帧进行图像识别以得到各个分类及其概率值。所使用的cnn模型可以是业内公认的成熟模型,例如google开源的cnn模型inception,例如利用大型图像数据库imagenet中的数据训练而成且错误率仅为3.5%的v3版本。使用现有的模型(例如,inception_v3模型)可以直接利用业界成果,从而大幅减低成本和算力需求。

在步骤s230,可以基于分类结果构造每个视频各自的关键帧向量。

由于分类结果能够很好地体现关键帧之间的图像相关性,并且转换为向量能够从多个维度来体现上述相关性,因此本发明的推荐方案甚至能够比人工分类更为客观准确的找出视频内容间的相关性。在一个实施例中,可以将分类类别作为向量维度,并将分类所属概率值作为向量分类值来构造关键帧向量。在一个优选实施例中,可以通过求取向量间的余弦相似度来表征向量的相似度。

在例如使用inception_v3模型进行分类的情况下,会把图像分1000个类别,每个类别都有一个所属类别的概率值。如果把此1000个类别作为短视频的向量的维度则短视频向量有1000维,所属类别的概率值作为各维度的值进而得到一个1000维的向量唯一标识一个短视频。

如果直接对如上得到的向量(例如,1000维)向量进行存储和计算,会导致资源和算力的低效使用。因此,可以不显著影响分类准确率的情况下对向量进行简化。在一个实施例中,可以选取每个分类结果中分类所属概率值最大的前n个分类构造该视频的关键帧向量,其中,n是预定的正整数,例如,可以根据经验值或是系统算力进行选取。例如,在上述1000分类模型的情况下,针对每个短视频的关键帧,可以仅取例如概率值最大的前10个、前50个或是前100个分类,并将其他分类值置零,由此使得1000维的向量降维至仅在10、50或是100个维度上具有非零值的稀疏向量。作为替换或是附加,选取每个分类结果中分类所属概率值大于预定阈值的分类构造该视频的关键帧向量。例如,可以将概率值小于0.001的维度置零。同样作为替换或者附加,可以对每个分类所属概率值进行小数点后第m位的舍入,以构造每个视频各自的关键帧向量,其中,m是预定的正整数。例如,同样是对于1000分类的模型,可以将每个分量值取3位小数(1000分类下的平均值为0.001),并舍去概率值较小的维度。由此,可以针对每个已有视频,生成易于后续运算的、经简化(例如,降维)的关键帧向量。

可以理解的是,除了如上生成根据ann分类结果向量化的关键帧向量之外,还可以根据其他视频特征处理和提取方法来实现对视频描述的向量化。

另外,虽然可以通过如上的简化操作对视频描述向量(例如,关键帧向量)进行降维,但针对海量短视频的多维向量计算(例如,余弦相似度的计算)仍然会消耗巨大的算力。作为替换或是附加,还可以通过将视频向量进行分组,并仅在组内进行相似性计算来大幅降低所需算力。为此,在一个实施例中,本发明的召回方法还可以包括对多个已有视频的视频描述向量进行聚类的步骤,例如,对其关键帧向量进行聚类。显然,聚类的类别个数要小于ann分类器的分类类别个数。例如,针对1000分类的cnn模型,可以进行200个聚类的k-means聚类(或是其他已知方法的聚类)。优选地,可以针对每个视频,除了为其存储关键帧向量之外,还可以存储其所属的聚类id。进一步地,召回步骤s130可以包括基于用户画像向量所属的聚类,推荐关键帧向量属于所述聚类内的相似视频。通过引入聚类,可以首先确定用户画像向量的分组,再将近似度计算局限在该分组内。

在此,可以预先求取每个聚类的聚类中心向量,例如,由该聚类下所有短视频向量的相加归一得到。随后,可以计算用户画像向量与各个聚类中心向量的相似度,并选择与该用户画像向量最为接近的聚类中心向量所对对应的聚类作为所述目标视频所属的聚类,例如向该视频分配计算得到的聚类id。由此,可以仅针对具有相同聚类id的已有视频进行相似度求取和视频推荐。

在一个实施例中,随着平台上视频量的不断丰富和热点的转移,还可以对聚类本身进行调整。由此,本发明的推荐方法还可以包括基于当前视频在各个聚类中分布的疏密程度,进行现有聚类的合并或分解操作。例如,可以将所属视频特别多的聚类进行进一步地细化拆分,并将所属视频较少的相似主题聚类进行合并。上述聚类更新可以定期或是根据新增视频数量进行,在聚类更新后,可以相应更新每条视频的聚类id。

为了方便后续对视频描述向量和聚类数据的使用,本发明的召回方法还可以包括数据结构的预先构造与更新,并将其存储在内存中以供后续的用户画像向量构建和推荐视频召回使用。为此,本发明在针对多个已有视频,计算每个已有视频的视频描述向量之后,还可以构造视频id到其对应视频描述向量的视频向量对应表。由此,s110的查找步骤可以包括:基于用户当前视频点击历史中包含的视频id,从所述视频向量对应表中查找对应的视频描述向量。进一步地,本发明在对多个已有视频的视频描述向量进行聚类之后,还可以构造视频id到其所属聚类id的视频聚类对应表。上述对应表可以随着视频和聚类的更新而得到更新。

图4示出了本发明的内存数据结构构建流程的一个例子。首先获取每个视频的描述向量及每个短视频所属聚类的id,向量的产生及聚类id的产生如上所述。随后,构造短视频id到短视频向量的映射数据结构,以及每个聚类id到所属视频id的集合。在此,可以使用map数据结构,分别得到itemid→vec(视频id到视频描述向量)以及clusterid→list[itemid](聚类id到所属视频id集合)两个对应表,每个对应表的查询时间复杂度都为o(1)。随后,在内存中得到上述两个map数据结构,以方便后续步骤s120和s130的使用。

在步骤s120,用户画像向量的生成可以包括对该用户观看视频的视频描述向量(例如,关键帧向量)进行合并或是聚类来实现。在此,合并和聚类所依据的是向量间的相似性,例如,余弦相似度。由此,通过对视频所含图像内容的向量化,进而实现对用户画像的向量化。向量化的用户画像能够更为客观和直接地反应用户对视频的偏好,也更容易进行针对或是基于用户画像的各种计算与更新。

在一个实施例中,用户画像向量的生成可以包括根据动态更新的视频点击历史,实时或近实时地求取所述用户画像向量。更优选地,根据获取的视频信息的数量和/或视频描述向量的分布状况,动态选择直接使用、合并或是聚类所述视频描述向量作为所述用户画像向量的操作。

根据可用于生成用户画像向量的视频描述向量的数量和分布,可以采用不同的方法生成用户画像向量。例如,在用户仅观看了一个视频或是仅将一个视频看完的情况下,可以直接使用该视频的视频描述向量(例如,上文中的关键帧向量)来表示用户画像向量。随着用户观看的视频数量增多,则可灵活使用合并或是聚类操作来生成用户画像向量。例如,在用户观看过的视频达到两个或以上时,可以两两计算多个视频描述向量之间的相似度(例如,余弦相似度),并且合并相似的两个或多个视频描述向量作为至少一个用户画像向量。而当用户观看过的视频数量进一步增加(例如,达到几十个甚至上百个时),则可引入聚类方法,例如基于多个视频描述向量的相似度对多个视频描述向量进行聚类,以及求取聚类中心作为至少一个所述用户画像向量。

在进行合并和聚类的情况下,由于可能存在多个合并和聚类中心(例如,用户集中观看了三个不同主题的多个视频),因此针对某一用户,通常会得到多个用户画像向量,用于表明该用户感兴趣主题的不同方面。

在针对同一用户得到两个或以上用户画像向量的情况下,可以为每个用户画像向量分配与其合并或聚类的视频描述向量个数相关联的权重值。由于用户观看的相似视频越多,通常表明用户对该主题越感兴趣。因此,引入与个数相关的权值,也能够便于后续对用户画像向量的使用。

在进行合并和/或聚类操作(例如,k-means聚类)时,可以预先制定合并和聚类的限定规则。在一个实施例中,只有相似度大于预定相似度阈值的视频描述向量才可以被合并和/或聚类。例如,在观看历史中只有两个视频时,如果这两个视频的描述向量相似(即,相似度大于预定相似度阈值),则可以合并得到一个用户画像向量。否则,则可分别基于这两个视频描述向量直接得到两个不同的用户画像向量。而在聚类操作中,可以舍弃无法被聚类的分散视频描述向量,也可以将其并入最接近的聚类中心。在聚类操作的情况下,还可以要求每个聚类的视频描述向量不少于预定个数。在另一个实施例中,可以规定同一用户的用户画像向量的上限,以使得针对同一用户生成的用户画像向量不大于预定的个数阈值。作为替换或是补充,用户画像向量的个数需要满足与观看过的视频个数的预定约束条件,例如,生成的聚类数不多于用于生成聚类的视频描述向量个数的十分之一。

如上所述,针对同一个用户的用户画像向量的个数通常不止一个,由此用于表示用户的不同偏好。为此,步骤s130可以包括:基于多个当前用户画像向量中的每一个召回一条候选推荐视频拉链;以及融合多条候选推荐视频拉链作为所述用户的当前相似推荐视频。

在融合时,需要考虑各个用户画像向量的权重,以此确定相似推荐视频中各条候选推荐视频拉链的占比和/或呈现方式。在一个实施例中,每个当前用户画像向量的权重可以基于生成该当前用户画像向量的视频描述向量的个数来确定。在其他实施例中,可以根据其他因素,例如,生成该当前用户画像向量的视频描述向量对应视频的观看时间来确定当前用户画像向量的权重。

在一个实施例中,对推荐视频的实时召回尤其可以依赖于内存中存储的上述itemid→vec(视频id到视频描述向量)以及clusterid→list[itemid](聚类id到所属视频id集合)对应表。为此,步骤s130可以包括:计算每个当前用户画像向量所属的聚类;基于每个所属的聚类从所述视频聚类对应表中找出每个聚类所包含的视频id;基于所包含的视频id从所述视频向量对应表中找出对应的视频描述向量;计算每个当前用户画像与其所属聚类内各视频的视频描述向量的相似性;以及返回相似度最高的预定数目的视频id作为该当前用户画像向量所召回的候选推荐视频拉链。

图5示出了本发明的实时召回计算流程的一个例子。

如图5所示,首先获取用户最近播放列表,即从缓存中取得用户最近的短视频播放列表,短视频的id,例如,取最近的10个,该数据可以根据业务及计算能力进行修改。随后,根据这10个短视频的id,从之前构建的map中获取这10个短视频所对应的向量表示。

根据最近播放历史实时计算当前用户的用户画像以向量表示。向量化的计算过程可以包括合并和聚类。在仅具有10个视频描述向量的情况下,可以采用合并方法,例如:计算这10个向量两两间的余弦相似度,把相似的视频向量相加得到新的向量,如相加后得到3个向量,它们对应的权重是5,3,2。权重值为相加的向量个数。由此,根据从用户播放历史计算得到3个向量作为当前用户的实时向量画像。

之后,使用这3个向量进行相似内容召回,得到三条召回链接。召回过程以这三个用户向量画像作为目标向量,与各聚类的向量计算余弦相似度,得到相似度最大的聚类id,假设为18。计算目标短视频与聚类18下的所有短视频的余弦相似度值并倒序排,取前o个。由此,通过这3个用户画像向量做相似召回得到三条召回拉链。

最后,可以根据推荐上下文和其它召回策略对这三条召回拉链做融合,取前p个完成推荐的召回。在此,o和p可以相同或不同。

上述的实时召回操作可以在各种场合下进行,例如在用户开启视频应用的情况下,在用户新点击了预定个数的视频的情况下,以及在预定的时间间隔下。相比于现有技术中预先存储90天内所有活跃用户的推荐视频召回拉链,本发明的实时召回方案所需的存储空间更小、计算更轻量、得到的结果也更为准确灵活。

本发明的推荐视频召回方案首先基于ann(尤其是现有的cnn模型)对视频(例如,短视频的关键帧)进行处理产生向量用于标识视频,这些视频描述向量的余弦相似度越大,两个视频越相似,据此根据用户的实时播放行为实现视频的相关推荐,即相似召回。本发明的召回方案不需要大量的用户消费行为来生成用户画像,并且无需不同终端间用户标签的额外映射等的操作。

在其他实施例中,本发明还能被实现为一种推荐视频召回装置。图6示出了根据本发明一个实施例的推荐视频召回装置的组成框图。如图所示,推荐视频召回装置600可以包括视频描述向量查找单元610、用户画像向量生成单元620以及候选推荐视频召回单元630。

视频描述向量查找单元610可以用于基于用户的当前视频点击历史,查找与每个视频对应的视频描述向量;用户画像向量生成单元620可以用于根据查找到的多个视频描述向量,生成该用户的至少一个当前用户画像向量;候选推荐视频召回单元630则可用于召回视频描述向量与所述至少一个当前用户画像向量相似的候选推荐视频。

在针对同一用户存在两个及以上当前用户画像向量时,所述候选推荐视频召回单元630还可以用于:基于多个当前用户画像向量中的每一个召回一条候选推荐视频拉链;以及融合多条候选推荐视频拉链作为所述用户的当前相似推荐视频。融合操作可以包括:基于当前用户画像向量的权重,确定相似推荐视频中各条候选推荐视频拉链的占比和/或呈现方式,其中,每个当前用户画像向量的权重基于如下至少一项确定:生成该当前用户画像向量的视频描述向量的个数;以及生成该当前用户画像向量的视频描述向量对应视频的观看时间。

优选地,召回装置600还可以包括:视频描述向量生成单元和聚类计算单元,其中,视频描述向量生成单元用于:针对多个已有视频,计算每个已有视频的视频描述向量;以及构造视频id到其对应视频描述向量的视频向量对应表,所述聚类计算单元用于:对多个已有视频的视频描述向量进行聚类;以及构造视频id到其所属聚类id的视频聚类对应表。

优选地,视频描述向量查找单元610可以用于:基于用户当前视频点击历史中包含的视频id,从所述视频向量对应表中查找对应的视频描述向量,并且所述候选推荐视频召回单元630可以用于:计算每个当前用户画像向量所属的聚类;基于每个所属的聚类从所述视频聚类对应表中找出每个聚类所包含的视频id;基于所包含的视频id从所述视频向量对应表中找出对应的视频描述向量;计算每个当前用户画像与其所属聚类内各视频的视频描述向量的相似性;以及返回相似度最高的预定数目的视频id作为该当前用户画像向量所召回的候选推荐视频拉链。

优选地,所述聚类计算单元还可以用于:基于新增视频在各个聚类中分布的疏密程度,进行现有聚类的合并或分解的聚类更新操作;以及根据聚类更新操作的结果更新所述视频聚类对应表。

优选地,所述视频描述向量生成单元从人工神经网络(ann)对某一视频的关键帧进行分类的分类结果构造关键帧向量作为该视频的视频描述向量,并且所述用户画像向量生成单元对某一用户观看的视频的关键帧向量进行合并和/或聚类生成该用户的当前用户画像向量。

优选地,召回装置600可以在如下至少一种场合下进行当前用户画像向量的实时生成和相应候选推荐视频的实时召回:在用户开启视频应用的情况下;在用户新点击了预定个数的视频的情况下;以及在预定的时间间隔下。

图7示出了根据本发明一个实施例可用于实现上述推荐视频召回方法的计算设备的结构示意图。

参见图7,计算设备700包括存储器710和处理器720。

处理器720可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器720可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(gpu)、数字信号处理器(dsp)等等。在一些实施例中,处理器720可以使用定制的电路实现,例如特定用途集成电路(asic,applicationspecificintegratedcircuit)或者现场可编程逻辑门阵列(fpga,fieldprogrammablegatearrays)。

存储器710可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器720或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器710可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器710可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、minsd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。

存储器710上存储有可执行代码,当可执行代码被处理器720处理时,可以使处理器720执行上文述及的推荐视频召回方法。

上文中已经参考附图详细描述了根据本发明的推荐视频召回方法和装置。本发明通过视频内容的向量化使用向量来表示视频内容,能够根据用户的实时播放历史实时计算用户的向量画像,并使用特定的向量表示进行相似性推荐。通过将召回操作转变为针对向量的操作,使得整个推荐架构更为简单高效,并能在一定程度上解决冷启动问题。

此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。

或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1