本发明涉及一种短视频推荐方法,属于信息技术领域。
背景技术:
当前短视频应用程序,例如抖音、火山小视频、快手和微视等,作为一种新的视频观看平台,短视频及作者较多,如何从海量的短视频中向用户推荐用户感兴趣的短视频,已成为技术人员所重点关注的技术问题。
专利申请cn201810837633.6(申请名称:一种短视频推荐方法、装置和可读介质,申请日:2018.07.26,申请人:腾讯科技(深圳)有限公司)公开了一种短视频推荐方法、装置和可读介质,属于视频推荐技术领域,该技术方案提供的方法及装置中,在接收到短视频拉取请求后,获取用户历史观看的短视频列表和未观看的短视频列表构成的短视频序列,所述短视频序列中包含各个短视频的标识信息;根据短视频序列和训练得到的用于表征所有短视频特征的短视频特征矩阵,确定用于表征所述短视频序列中的短视频特征的序列向量;根据序列向量和训练得到的短视频推荐模型,确定未观看的短视频列表中各个短视频的概率;并根据各个短视频的概率,向用户推荐感兴趣的短视频。该技术方案主要基于短视频的标识信息来获取短视频特征,而短视频中丰富的图像、声音也包含有大量的知识,这些知识能够帮助模型进行学习,而该技术方案却并未涉及到利用短视频的图像、声音等知识,因而推荐准确率不高。
因此,如何充分利用短视频的图像、声音等知识特征,从海量的短视频中选取符合用户兴趣的短视频向用户推荐,从而提高推荐准确率,已成为现有技术中亟待解决的技术问题之一。
技术实现要素:
有鉴于此,本发明的目的是提供一种短视频推荐方法,能充分利用短视频的图像、声音等知识特征,从海量的短视频中选取符合用户兴趣的短视频向用户推荐,从而有效提高推荐准确率。
为了达到上述目的,本发明提供了一种短视频推荐方法,包括有:
步骤一、获取用户对短视频的历史行为数据,所述用户历史行为数据包括有:用户历史点击短视频的id、类别id、作者id、封面图片、音乐、原时长、播放时长、点击时间戳、用户属性特征;
步骤二、选取若干位样本用户,根据样本用户对短视频的历史点击行为,构建每位样本用户的短视频点击序列,并从中选定样本用户的目标短视频和历史点击序列,计算每位样本用户对其目标短视频的观看深度,所述观看深度即用户对短视频的播放时长和短视频原时长的比值,然后由样本用户的目标短视频、历史点击序列、用户属性特征、对目标短视频的观看深度构成每条样本用户数据,并写入样本数据集中,所述历史点击序列进一步包括有:历史点击短视频id序列、历史点击短视频类别id序列、历史点击短视频作者id序列、历史点击短视频封面图片序列、历史点击短视频音乐序列;
步骤三、构建短视频推荐模型,并以样本数据集中的每条样本用户数据进行训练,短视频推荐模型对每条样本用户数据的处理过程如下:构建用于表征所有短视频id、短视频类别id和短视频作者id特征的嵌入式向量映射表,然后基于短视频的id、类别id、作者id的嵌入式向量和其封面图片对应的封面特征向量、音乐对应的音频特征向量,为用户的目标短视频和历史点击序列中的每条历史点击短视频构建相应的嵌入式向量,并根据每个历史点击短视频的嵌入式向量计算用户历史兴趣向量,再根据所有历史点击短视频的用户历史兴趣向量和目标短视频的嵌入式向量计算用户兴趣向量,最后根据目标短视频的嵌入式向量和用户兴趣向量计算输出用户对目标短视频的点击率;
步骤四、获取待推荐用户的历史点击序列,并将待推荐短视频作为待推荐用户的目标短视频,然后将待推荐用户的目标短视频、历史点击序列、用户属性特征输入至训练好的短视频推荐模型,并依据模型计算输出的用户对目标短视频的点击率以确定是否向用户推荐短视频。
与现有技术相比,本发明的有益效果是:在现有的序列推荐模型里,多采用各种id类特征,如历史点击物品id、物品类别id等作为序列特征,特征种类较为单一,而本发明将短视频的id、类别id、作者id、封面图片、音乐这些特征都引入到短视频推荐模型中,从而能充分利用短视频的图像、声音所包含的大量知识特征,帮助模型进行学习,有效提高推荐准确率;现有短视频推荐方法一般都是直接将用户历史点击序列作为用户兴趣进行建模,但由于存在用户误点击或观看时才发现对短视频不感兴趣的情况,所以推荐准确性无法得到有效保证,本发明进一步将用户对短视频的观看深度引入模型中,用于辅助短视频推荐模型的训练,从而对模型参数起到正则化校正的作用,有效提高了模型结果的准确性;深度学习模型对高维稀疏特征具有较高的学习能力,但对连续密集特征的学习能力却不强,考虑到用户属性部分特征为连续型特征,因此本发明进一步采用线性模型学习连续特征,非线性模型学习序列id类特征,可以使模型同时具备训练稀疏特征和稠密特征的良好能力,从而达到更好的推荐效果。
附图说明
图1是本发明一种短视频推荐方法的流程图。
图2是图1步骤三中短视频推荐模型对每条样本用户数据的具体处理过程的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
如图1所示,本发明一种短视频推荐方法,包括有:
步骤一、获取用户对短视频的历史行为数据,所述用户历史行为数据可以包括有:用户历史点击短视频的id、类别id、作者id、封面图片、音乐、原时长、播放时长、点击时间戳、用户属性特征,用户属性特征可以是年龄、性别、地理位置、喜欢的类别id等特征;
步骤二、选取若干位样本用户,根据样本用户对短视频的历史点击行为,构建每位样本用户的短视频点击序列,并从中选定样本用户的目标短视频和历史点击序列,计算每位样本用户对其目标短视频的观看深度,所述观看深度即用户对短视频的播放时长和短视频原时长的比值,然后由样本用户的目标短视频、历史点击序列、用户属性特征、对目标短视频的观看深度构成每条样本用户数据,并写入样本数据集中,所述历史点击序列可以进一步包括有:历史点击短视频id序列、历史点击短视频类别id序列、历史点击短视频作者id序列、历史点击短视频封面图片序列、历史点击短视频音乐序列;
步骤三、构建短视频推荐模型,并以样本数据集中的每条样本用户数据进行训练,短视频推荐模型对每条样本用户数据的处理过程如下:构建用于表征所有短视频id、短视频类别id和短视频作者id特征的嵌入式向量映射表,然后基于短视频的id、类别id、作者id的嵌入式向量和其封面图片对应的封面特征向量、音乐对应的音频特征向量,为用户的目标短视频和历史点击序列中的每条历史点击短视频构建相应的嵌入式向量,并根据每个历史点击短视频的嵌入式向量计算用户历史兴趣向量,再根据所有历史点击短视频的用户历史兴趣向量和目标短视频的嵌入式向量计算用户兴趣向量,最后根据目标短视频的嵌入式向量和用户兴趣向量计算输出用户对目标短视频的点击率;
步骤四、获取待推荐用户的历史点击序列,并将待推荐短视频作为待推荐用户的目标短视频,然后将待推荐用户的目标短视频、历史点击序列、用户属性特征输入至训练好的短视频推荐模型,并依据模型计算输出的用户对目标短视频的点击率以确定是否向用户推荐短视频。
对于每位样本用户,图1步骤二可以进一步包括有:
根据样本用户的短视频点击行为,按样本用户点击短视频的时间戳由大到小的顺序进行排序,即由最近一次点击到最远一次点击进行排序,从而构成样本用户的短视频点击序列,短视频点击序列中的最近一次点击短视频是样本用户的目标短视频,最近一次点击短视频之前的所有短视频构成样本用户的历史点击序列,然后获取目标短视频和历史点击序列中的所有历史点击短视频的id、类别id、作者id、封面图片和音乐信息,并由所有历史点击短视频的id、类别id、作者id、封面图片和音乐分别构成历史点击短视频id序列、历史点击短视频类别id序列、历史点击短视频作者id序列、历史点击短视频封面图片序列、历史点击短视频音乐序列,同时计算样本用户对目标短视频的观看深度,最后由样本用户的目标短视频id、目标短视频的类别id、目标短视频的作者id、目标短视频的封面图片、目标短视频的音乐、历史点击短视频id序列、历史点击短视频类别id序列、历史点击短视频作者id序列、历史点击短视频封面图片序列、历史点击短视频音乐序列、对目标短视频的观看深度组成一条样本用户数据,并写入样本数据集中。
同时,本发明还可以构建若干负样本用于短视频推荐模型的训练,步骤二还可以包括有:
从样本数据集中读取一条样本用户数据,然后从该样本用户未点击的短视频集合中随机选取一个短视频,从而为样本用户生成一条新的样本用户数据:将所读取样本用户数据中的目标短视频的id、类别id、作者id、封面图片和音乐替换成随机选取的短视频的id、类别id、作者id、封面图片和音乐,并将样本用户对目标短视频的观看深度修改成0,其他数据保持不变。
如图2所示,图1步骤三中,短视频推荐模型对每条样本用户数据的处理过程可以进一步包括有:
步骤31、采用vggnet网络,将样本用户数据中的目标短视频的封面图片和历史点击短视频封面图片序列中的所有历史点击短视频的封面图片分别转化成封面特征向量,然后由历史点击短视频封面图片序列中的所有封面图片转化后的封面特征向量构成历史点击短视频封面特征向量序列;
vggnet是由牛津大学的视觉几何组(visualgeometrygroup)和googledeepmind公司的研究员一起研发的深度卷积神经网络,经常被用来提取图像特征。本发明中vggnet网络的参数会和短视频推荐模型一起训练得到;
步骤32、将样本用户数据的目标短视频的音乐和历史点击短视频音乐序列中的所有历史点击短视频的音乐分别转化成音频特征向量,然后由历史点击短视频音乐序列中的所有音乐转化后的音频特征向量构成历史点击短视频音频特征向量序列,其中,将目标短视频的音乐或者历史点击短视频音乐序列中的任一历史点击短视频的音乐转化成音频特征向量的过程具体如下:先对短视频音乐的音频采样若干帧(例如1000帧),利用mfcc(即梅尔频率倒谱系数)技术提取每帧采样音频的音频特征向量,然后通过一个自注意力网络对所有采样音频的音频特征向量进行重新映射以获得每个采样音频对应的中间向量,最后将所有采样音频的中间向量通过一个全连接层,并对全连接层的输出进行平均池化,池化后的输出向量即是短视频音乐转化后的音频特征向量;
步骤32中,每个采样音频对应的中间向量的计算公式如下:
步骤33、为短视频id、短视频类别id、短视频作者id分别构建嵌入式向量映射表,然后从嵌入式向量映射表中查询获得样本用户的目标短视频和历史点击序列中每个历史点击短视频的id、类别id、作者id的嵌入式向量,最后通过concat操作,构建目标短视频和每个历史点击短视频的嵌入式向量,即将短视频的id的嵌入式向量、类别id的嵌入式向量、作者id的嵌入式向量、封面特征向量、音频特征向量合并成一个嵌入式向量,并由所有历史点击短视频的嵌入式向量构成历史点击短视频嵌入式向量序列;
步骤33中,可以首先为每个id的索引初始化对应的嵌入式向量,从而得到每个id的初始嵌入式向量映射表,嵌入式向量映射表会随着模型训练不断更新,在训练结束时得到最终的嵌入式向量映射表;将短视频的id的嵌入式向量、类别id的嵌入式向量、作者id的嵌入式向量、封面特征向量、音频特征向量通过concat操作合成一个嵌入式向量的计算公式如下:e=concat(e(1),e(2),e(3),h(4),h(5)),其中,e是目标短视频或历史点击短视频的嵌入式向量,e(1)是目标短视频或历史点击短视频的id的嵌入式向量,e(2)是目标短视频或历史点击短视频的类别id的嵌入式向量,e(3)是目标短视频或历史点击短视频的作者id的嵌入式向量,h(4)是目标短视频或历史点击短视频的封面特征向量,h(5)是目标短视频或历史点击短视频的音频特征向量;
步骤34、将历史点击短视频嵌入式向量序列中的所有历史点击短视频的嵌入式向量输入一个自注意力网络和一个全连接层,从而输出获得每个历史点击短视频的用户历史兴趣向量,并由所有历史点击短视频的用户历史兴趣向量构成用户历史兴趣向量序列;
步骤34中,将历史点击短视频嵌入式向量序列中的所有历史点击短视频的嵌入式向量输入一个自注意力网络,其计算公式如下:
步骤35、依次将用户历史兴趣向量序列中的每个历史点击短视频的用户历史兴趣向量和目标短视频的嵌入式向量的和、差、积拼接成一个输入向量,然后将输入向量输入至一个多层感知机(mlp),mlp的输出即是每个历史点击短视频的兴趣权重,最后将mlp输出的所有历史点击短视频的兴趣权重通过softmax函数进行归一化计算,并根据归一化后的所有历史点击短视频的兴趣权重,计算获得用户兴趣向量:
步骤36、通过concat操作,将用户兴趣向量it和目标短视频的嵌入式向量et拼接成一个向量z,然后通过一个多层感知机,计算样本用户对目标短视频的点击率o:o=sigmoid(mlp(z)),其中,mlp(z)表示将向量z输入多层感知机mlp后的输出值;
深度学习模型对高维稀疏特征具有较高的学习能力,但对连续密集特征的学习能力却不强,考虑到用户属性部分特征为连续型特征,因此本申请还可以同时用线性模型学习连续特征,非线性模型学习序列id类特征,从而使得模型同时具备训练稀疏特征和稠密特征的良好能力,以达到更好的推荐效果。因此,步骤36之后,还可以包括有:
步骤37、采用gbdt2nn模型,输入数据是样本用户数据中的用户属性特征,并输出获得样本用户对目标短视频的第二点击率o2;
gbdt2nn模型是利用神经网络去拟合梯度提升决策树的网络模型,使网络模型可较好的处理密集数值特征,能够将gbdt学到的特征重要性和数据结构提炼到神经网络的建模过程中,gbdt2nn模型的具体内容已在全球数据挖掘顶级会议kdd2019上的发表论文:《deepgbm:adeeplearningframeworkdistilledbygbdtforonlinepredictiontasks》中有详细记载,就不在此赘述。本发明中,gbdt2nn模型通过神经网络拟合树生成的结果,输入数据为样本用户数据中的用户属性特征fu,假设第k棵树的输出叶子节点的索引为lk,将gbdt的叶子节点索引映射成值:pk=lk×qk,则gbdt2nn单棵树的输出结果为:
步骤38、根据样本用户对目标短视频的第二点击率,调整样本用户对目标短视频的点击率:y=w1o+w2o2,其中,y是调整后的样本用户对目标短视频的点击率,w1、w2分别是o、o2这两个点击率的权重系数,其值可以根据实际业务需要而设置。
需要强调的是,本发明还可以采用一个附加结构来预估用户对每个历史点击短视频的观看深度,并在训练过程中将点击率损失和附加损失相加成短视频推荐模型训练的损失函数,这样,将用户对视频的观看深度引入模型,辅助短视频推荐模型的训练,可以对模型参数起到正则化校正的作用,从而获得更加准确的结果。步骤三还可以包括有:
采用一个附加网络,根据每个历史点击短视频的用户历史兴趣向量,预估用户对每个历史点击短视频的观看深度,具体计算公式如下:
在短视频推荐模型的训练过程中,可以对点击率预估部分采用交叉熵损失函数:
对观看深度的附加损失采用均方差损失函数:
将点击率损失和附加损失相加,即为短视频推荐模型训练最终的损失函数:l=lp+αld,其中,α是损失权重系数,可以根据实际业务需要而设定。
步骤四中计算用户对目标短视频的点击率的过程与步骤三的训练过程基本一致,就不在此赘述,其区别在于步骤四不需要计算用户对目标短视频的观看深度,而是将候选集中的所有待推荐的短视频逐一作为待推荐用户的目标短视频,根据短视频推荐模型计算输出的用户对目标短视频的点击率,按照从大到小的次序将候选集中的所有待推荐的短视频进行排序,从而获得最终的短视频推荐列表。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。