本申请涉及推荐技术领域,特别是涉及一种音视频推荐的方法、装置和计算机设备。
背景技术:
目前,由于用户的生活节奏加快,接收碎片化信息成为主要娱乐方式,音视频平台播放的内容时长较短,因此,想要获取用户明确的喜爱内容非常困难。
现有的推荐技术,基于音视频的角度,认为对其有过反馈的用户,对此音视频的喜爱程度,大于对其没有过反馈的用户,但是由于两个用户直接比较容易受到用户间不同标准(某些用户比较严格,另一些用户比较包容),用户和音视频两个角度的简单结合,并不能完美地发挥出二者的互补性,所以得到的偏好效果欠佳。
因此,现有技术有待改进。
技术实现要素:
基于此,有必要针对上述推荐音视频的成对偏好方法的缺陷,提出一种音视频推荐的方法、装置和计算机设备,构建非对称形式的协同过滤模型,既能保持用户角度的成对偏好形式,同时改进音视频角度的成对偏好形式。
第一方面,本发明实施例提供了一种音视频推荐的方法,所述方法包括:
获取用户对音视频的反馈信息,根据所述反馈信息建立反馈矩阵;
将所述反馈矩阵输入到初始协同过滤模型,对所述初始协同过滤模型进行多次迭代训练,得到用于音视频推荐的已训练的协同过滤模型;
根据所述已训练的协同过滤模型输出的模型参数为每位用户推荐音视频。
作为进一步的改进技术方案,所述反馈矩阵输入到初始协同过滤模型,对所述初始协同过滤模型进行多次迭代训练,得到用于音视频推荐的已训练的协同过滤模型的步骤包括:
其中,一次迭代训练步骤包括:
根据所述反馈矩阵,选取第一用户、第一音视频和第二音视频;
根据所述第一用户、第一音视频和第二音视频,计算第一预测偏好差;
根据所述第一音视频,选取第一用户集和第二用户集;
根据所述第一音视频,所述第一用户集和所述第二用户集,计算第二预测偏好差;
根据所述第一预测偏好差、所述第二预测偏好差、所述第一用户集、第二用户集及预设的模型参数计算目标函数;
根据所述目标函数修改所述预设的模型参数;
所述初始协同过滤模型经过迭代执行上述训练步骤,直至所述协同过滤模型满足预设训练条件,以得到用于音视频推荐的已训练的协同过滤模型。
作为进一步的改进技术方案,所述根据所述反馈矩阵,选取第一用户、第一音视频和第二音视频步骤包括:
从所述反馈矩阵随机选取第一用户;
根据所述第一用户,从所述反馈矩阵中提取所述第一用户反馈过的第一音视频集;
从所述第一音视频集中随机选取第一音视频;
根据所述第一用户,从所述反馈矩阵中提取所述第一用户没有反馈过的第二音视频集;
从所述第二音视频集中随机选取第二音视频。
作为进一步的改进技术方案,所述根据所述输入项,选取第一用户集和第二用户集的步骤包括:
根据所述第一音视频和预设的第一用户集的大小,选取对所述第一音视频有过反馈的第一用户集;
根据所述第一音视频和预设的第二用户集的大小,选取对所述第一音视频没有过反馈的第二用户集。
作为进一步的改进技术方案,所述根据所述第一用户、第一音视频和第二音视频,计算第一预测偏好差的步骤包括:
所述根据所述第一用户和所述第一音视频,得到所述第一用户对所述第一音视频的预测偏好;
根据所述第一用户和所述第二音视频,得到所述第一用户对所述第二音视频的预测偏好;
将所述第一用户对所述第一音视频的预测偏好,与所述第一用户对所述第二音视频的预测偏好做差,得到所述第一预测偏好差。
作为进一步的改进技术方案,所述根据所述第一音视频,所述第一用户集和所述第二用户集,计算第二预测偏好差的步骤包括:
从所述第二用户集中随机选取第二用户;
根据所述第一音视频和所述第一用户集,计算所述第一音视频被所述第一用户集偏好的预测值;
根据所述第一音视频和所述第二用户,计算所述第一音视频被所述第二用户偏好的预测值;
将所述第一音视频被所述第一用户集偏好的预测值,与所述第一音视频被所述第二用户偏好的预测值做差,得到所述第二预测偏好差。
作为进一步的改进技术方案,所述根据所述已训练的协同过滤模型输出的模型参数为每位用户推荐音视频的步骤包括:
根据所述已训练的协同过滤模型输出的模型参数,计算每个用户对其未反馈的各音视频的偏好值;
根据所述各音视频的偏好值,选取满足预设推荐条件的偏好值对应的音视频推荐给用户。
第二方面,本发明实施例提供了一种音视频推荐的装置,所述装置包括:
获取模块,用于获取待处理的反馈矩阵,所述反馈矩阵中包含用户对音视频的反馈信息;
训练模块,用于将所述反馈矩阵输入到初始协同过滤模型,对所述初始协同过滤模型进行多次迭代训练,得到用于音视频推荐的已训练的协同过滤模型;
推荐模块,用于根据所述已训练的协同过滤模型输出的模型参数为每位用户推荐音视频。
第三方面,本发明实施例提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取用户对音视频的反馈信息,根据所述反馈信息建立反馈矩阵;
将所述反馈矩阵输入到初始协同过滤模型,对所述初始协同过滤模型进行多次迭代训练,得到用于音视频推荐的已训练的协同过滤模型;
根据所述已训练的协同过滤模型输出的模型参数为每位用户推荐音视频。
第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
获取用户对音视频的反馈信息,根据所述反馈信息建立反馈矩阵;
将所述反馈矩阵输入到初始协同过滤模型,对所述初始协同过滤模型进行多次迭代训练,得到用于音视频推荐的已训练的协同过滤模型;
根据所述已训练的协同过滤模型输出的模型参数为每位用户推荐音视频。
有益效果,上述一种音视频推荐的方法、装置和计算机设备,所述方法包括:获取用户对音视频的反馈信息,根据所述反馈信息建立反馈矩阵;将所述反馈矩阵输入到初始协同过滤模型,对所述初始协同过滤模型进行多次迭代训练,得到用于音视频推荐的已训练的协同过滤模型;根据所述已训练的协同过滤模型输出的模型参数为每位用户推荐音视频。本方法通过反馈矩阵对初始协同过滤模型进行训练,使已训练的协同过滤模型推荐的音视频既能保持用户角度假设的效果,又能加强音视频角度假设的效果,充分挖掘用户与音视频中间的偏好关系,提升音视频推荐质量。
附图说明
图1为本发明实施例中一种音视频推荐的方法的步骤流程图;
图2为本发明实施例中反馈矩阵的示意图;
图3为本发明实施例中一种音视频推荐的装置的结构框图;
图4为本发明实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
一种音视频推荐的方法,请参阅图1,所述方法包括:
s1、获取用户对音视频的反馈信息,根据所述反馈信息建立反馈矩阵。
首先给出涉及的符号对应表:
图2是本发明实施例中的用户-音视频的反馈矩阵的示意图,所述反馈矩阵用r表示,图2中横向箭头是基于用户的角度,采用两个音视频之间的成对偏好关系构建假设;图2中纵向箭头是基于音视频的角度,采用两个用户集之间的成对偏好关系构建假设。
例如,基于用户的角度,r32有打钩标记,即反馈标记,表示用户u=3观看过音视频i=2,r34没有反馈标记,表示用户u=3没有观看过的音视频i=4,本发明所述的方法认为用户对观看过的音视频的喜爱程度大于没有观看过的音视频的喜爱程度,因此得到基于用户u=3的成对关系:(3,2)>(3,4)。
基于音视频的角度,r12和r32有反馈标记,表示音视频i=2被用户u=1和用户u=3观看过,r42和r62没有反馈标记,表示音视频i=2没有被用户u=4和用户u=6观看过,本发明所述的方法认为某个视频被一群观看过的它的用户喜爱的程度大于一群没有观看过它的用户喜爱的程度,因此得到基于音视频i=2的成对关系:(1,2),(3,2)>(4,2),(6,2)。
由于基于两个角度的偏好假设形式不一致,因此是非对称成对形式,非对称成对形式的协同过滤模型能够灵活地在保持用户角度本身的优势的同时加强音视频角度的效果。
s2、将所述反馈矩阵输入到初始协同过滤模型,对所述初始协同过滤模型进行多次迭代训练,得到用于音视频推荐的已训练的协同过滤模型。
具体的,步骤s2包括:
其中,一次迭代训练步骤包括:
s21、根据所述反馈矩阵,选取第一用户、第一音视频和第二音视频;
具体的,步骤s21包括:
s211、从所述反馈矩阵随机选取第一用户;
s212、根据所述第一用户,从所述反馈矩阵中提取所述第一用户反馈过的第一音视频集;
s213、从所述第一音视频集中随机选取第一音视频。
从反馈矩阵中随机选取第一用户u,根据第一用户u,从反馈矩阵中获取得到过用户u反馈的第一音视频集iu,从iu中随机选取与所述第一用户u对应第一音视频i,所述第一音视频i得到过第一用户u的反馈,在所述反馈矩阵中,(u,i)对应的位置有反馈标记。
s214、根据所述第一用户,从所述反馈矩阵中提取所述第一用户没有反馈过的第二音视频集;
s215、从所述第二音视频集中随机选取第二音视频。
根据第一用户u,从反馈矩阵中获取没有得到过用户u反馈的第一音视频集ju,从ju中随机选取第二音视频j,所述第二音视频j没有得到过用户u的反馈,在所述反馈矩阵中,(u,j)对应的位置没有反馈标记。
s22、根据所述第一用户、第一音视频和第二音视频,计算第一预测偏好差;
具体的,步骤s22包括:
s221、所述根据所述第一用户和所述第一音视频,得到所述第一用户对所述第一音视频的预测偏好;
s222、根据所述第一用户和所述第二音视频,得到所述第一用户对所述第二音视频的预测偏好;
s223、将所述第一用户对所述第一音视频的预测偏好,与所述第一用户对所述第二音视频的预测偏好做差,得到所述第一预测偏好差。
举例说明,参见图2,从r中随机选取第一用户u=3,对应的随机选取第一音视频为i=2,等同于在反馈矩阵r中选择有反馈标记的点(3,2),计算第一用户对第一音视频的预测偏好:
s23、根据所述第一音视频,选取第一用户集和第二用户集;
具体的,步骤s23包括:
s231、根据所述第一音视频和预设的第一用户集的大小,选取对所述第一音视频有过反馈的第一用户集;
s231、根据所述第一音视频和预设的第一用户集的大小,选取对所述第一音视频有过反馈的第一用户集。
所述第一用户集用p表示,第一用户集的大小为:|p|,表示第一用户集p的大小,在协同过滤模型训练前,要预先设置|p|的值。举例说明,参见图2,对音视频i=2有反馈的用户有:u=1,u=3,u=5,若预设|p|=2,则在音视频i=2有反馈的用户中选取2位用户组成第一用户集p,假设选择得到的第一用户集p=(1,5)。
所述第二用户集用n表示,第二用户集的大小为:|n|,表示第二用户集n的大小,同样的,在在协同过滤模型训练前,要预先设置|n|的值。举例说明,参见图2,对音视频i=1没有反馈的用户有:u=1,u=2,u=3,u=4,u=5,若预设|n|=5,则在音视频i=1有反馈的用户中选取4位组成第一用户集,n=(1,2,3,4,5)。
举例说明,参见图2,所述第一用户集用p表示,对音视频i=1的有反馈的第一用户集p=(6),对音视频i=2有反馈的第一用户集p=(1,3,5)。所述第二用户集用n表示,在图2中,对音视频i=1没有反馈的第二用户集n=(1,2,3,4,5),对音视频i=2没有反馈的第二用户集n=(2,4,6)。
s24、根据所述第一音视频,所述第一用户集和所述第二用户集,计算第二预测偏好差;
具体的,步骤s24包括:
s241、从所述第二用户集中随机选取第二用户;
举例说明,针对第一音视频i,有表示对第一音视频i没有反馈的用户的第二用户集合n,从所述第二用户集n中随机选择第二用户w,w∈n。参见图2,当第一音视频i=2时,其对应的第二用户集合n=(2,4,6),在n中随机选择第二用户w=6,即,基于i=2的音视频,第二用户w=6对其没有过反馈。
s242、根据所述第一音视频和所述第一用户集,计算所述第一音视频被所述第一用户集偏好的预测值;
s243、根据所述第一音视频和所述第二用户,计算所述第一音视频被所述第二用户偏好的预测值;
s244、将所述第一音视频被所述第一用户集偏好的预测值,与所述第一音视频被所述第二用户偏好的预测值做差,得到所述第二预测偏好差。
从反馈矩阵中选取的第一音视频i=2,其对应的第一用户集p=(1,3,5),计算第一音视频被第一用户集偏好的预测值:
s25、根据所述第一预测偏好差、所述第二预测偏好差、所述第一用户集的、第二用户集及预设的模型参数计算目标函数;
模型参数的集合θ={uu·,vi·,bu,bi,u∈u,i∈i},其中包含各模型参数,在训练开始前,先设置各模型参数的初值,根据公式(1)计算目标函数f。
其中,第二预测偏好差中w要遍历所有第二用户集n中的用户,即要取完|n|个w,|n|为第二用户集n中的元素值。在计算目标函数时,要将第一音视频被所述第一用户集偏好的预测值,分别与所有第一音视频被所述第二用户偏好的预测值计算,得到多个第二预测偏好差,再求多个第二预测偏好差的平均值。
其中,reg(u,i,pi,n)是为了防止过度拟合的正则化项
其中,用户u'有|p|位,|p|为预设的第一用户集p中的元素值,举例说明,若p是对应音视频i=2的第一用户集,u'要取遍第一用户集p中的所有用户。
s26、根据所述目标函数更新所述预设的模型参数。
计算所述目标函数中每个模型参数的梯度,根据每个所述模型参数的梯度,更新所述初始协同过滤模型的模型参数,采用随机梯度下降的方法最小化目标函数,也就是计算出目标函数每个参数的偏导,然后根据
经过步骤s21至步骤s22实现了基于反馈矩阵中一个用户u和一个音视频i的角度对协同过滤模型的一次内层训练,对于一个反馈矩阵,需要基于其中的每个元素对协同过滤模型进行训练,即此循环步骤需要进行|r|次,|r|次内层训练实现对协同过滤模型的一次外层训练,对于一个矩阵r,需要经过多次外层训练,直到协同过滤模型收敛,则完成对协同过滤模型的训练。
下面通过非对称形式的协同过滤模型的伪代码来进行说明。
1,t=1,2,…,t,设定外层训练的次数。
2,t2=1,2,…,|r|,表示一个内层训练要遍历反馈矩阵r中的所有元素。
接下来是一次内层训练的步骤:
3,随机采样一个二元组(u,i),由于矩阵r中不存在对任何音视频都没有过反馈用户u,因此u必然是第一用户,而i来自集合iu,集合iu,i为用户u反馈过的音视频。
4,j∈i\iu,即j来自用户u没有反馈的第二音视频集ju。
通过步骤3和步骤4可以算出基于用户u的第一预测偏好差。
5,在对第一音视频i有过反馈的用户集合中,随机选取|p|位用户。
6,在对第一音视频i没有过反馈的用户中,随机选取|n|位用户。
在所有用户中,选取|n|个除去对第一音视频i有过反馈的用户,即此|n|个用户是对音视频i没有反馈的用户。
通过步骤3和步骤4可以算出基于音视频i的第二预测偏好差。
可知,基于用户角度的预测偏好差,是两个音视频之间的关系,基于音视频角度的预测偏好差,是两个用户集合之间的关系;两个角度偏好差形式不同,因此称为非对称成对形式的协同过滤模型。
根据步骤3、4、5、6,以及模型参数,可以计算出目标函数。
7、计算目标函数每个参数的偏导,然后根据
步骤3-7完成了基于第一用户,第一音视频角度的一次内层训练遍历矩阵|r|中的各元素,完成所有内层训练则实现一次外层训练,外层训练直到协同过滤模型收敛,得到用于音视频推荐的已训练的协同过滤模型。本发明实施例中,完成一次内层训练后,不需要从外层中获取新的训练数据,因此迭代次数为|r|×t。
与现有的偏好假设的模型在推荐系统领域公开的3个数据集上展开实验,对三类方法进行5项排序相关的指标计算,结果如下:
可以看出,通过本发明得到已训练的协同过滤模型,在3个数据集的5项指标数值,相较于现有技术都有明显的提升,证明非对称成对偏好假设成立,能够针对性地解决其他已有技术的不足,这个全新的形式既能保持用户角度假设的效果同时加强音视频角度假设的效果,充分挖掘用户与音视频之间的偏好关系,提升音视频推荐质量。
s3、根据所述已训练的协同过滤模型输出的模型参数为每位用户推荐音视频。
具体的,步骤s3包括:
s31、根据所述已训练的协同过滤模型输出的模型参数,计算每个用户对其未反馈的各音视频的偏好值;
s32、根据所述各音视频的偏好值,选取满足预设推荐条件的偏好值对应的音视频推荐给用户。
在已训练的协同过滤模型的输出层,可以得到模型参数:uu:用户u的特征向量,vi:音视频i的特征向量,bu:用户u的偏置值,bi:音视频i的偏置值,通过模型参数参数可以计算每个用户对其未反馈的各音视频的偏好值,此步骤可以利用现有技术实现。
预设推荐条件可以是,将各音视频的偏好值中最大值对应的音视频推荐给用户,或者是,对各音视频的偏好值进行归一化处理,将归一化后超出预设值的偏好值对应的音视频推荐给用户,预设值可以是0.5或者0.7。
基于上述一种音视频推荐的方法,本发明还提供了一种音视频推荐的装置,请参阅图3,所述装置包括:
获取模块10,用于获取待处理的反馈矩阵,所述反馈矩阵中包含用户对音视频的反馈信息;
训练模块20,用于将所述反馈矩阵输入到初始协同过滤模型,对所述初始协同过滤模型进行多次迭代训练,得到用于音视频推荐的已训练的协同过滤模型;
推荐模块30,用于根据所述已训练的协同过滤模型输出的模型参数为每位用户推荐音视频。
关于音视频推荐的装置的具体限定可以参见上文中对于一种音视频推荐的方法的限定,在此不再赘述。上述一种音视频推荐的装置中的各个模块可全部通过软件、硬件及其组合来实现。上述各模块可以以硬件形式内嵌于或独立于计算机设备的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行各个模块对应的操作。
在一个实施例中,本发明提供了一种计算机设备,该设备可以是终端,内部结构如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种音视频推荐的装置。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4所示的仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
获取用户对音视频的反馈信息,根据所述反馈信息建立反馈矩阵;
将所述反馈矩阵输入到初始协同过滤模型,对所述初始协同过滤模型进行多次迭代训练,得到用于音视频推荐的已训练的协同过滤模型;
根据所述已训练的协同过滤模型输出的模型参数为每位用户推荐音视频。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
获取用户对音视频的反馈信息,根据所述反馈信息建立反馈矩阵;
将所述反馈矩阵输入到初始协同过滤模型,对所述初始协同过滤模型进行多次迭代训练,得到用于音视频推荐的已训练的协同过滤模型;
根据所述已训练的协同过滤模型输出的模型参数为每位用户推荐音视频。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。