发明内容
本申请的主要目的在于提供一种基于多用户的视频推荐方法及装置,以解决电视场景下由于多用户造成的视频推荐不准确的问题,以及现有的推荐方法中只计算点击这样的正反馈数据,造成的推荐结果置信度不高的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种基于多用户的视频推荐方法。
根据本申请的基于多用户的视频推荐方法包括:获取每个用户的视频点击数据;根据所述视频点击数据计算出每个用户的视频共现矩阵;根据每个用户的视频共现矩阵计算出视频关联矩阵;根据所述视频关联矩阵为每个视频生成推荐视频候选集。
进一步的,所述根据所述视频点击数据计算出每个用户的视频共现矩阵,包括:根据所述视频点击数据建立每个用户的视频点击时间列表;对于每个用户根据所述视频点击时间列表计算出视频的时间相关性矩阵和/或视频的周期相关性矩阵;根据所述视频的时间相关性矩阵和/或视频的周期相关性矩阵计算出每个用户的视频共现矩阵。
进一步的,所述基于多用户的视频推荐方法还包括:获取每个用户的视频曝光数据;根据所述视频曝光数据和所述视频点击数据计算出每个视频的修正参数;根据所述视频的修正参数对所述推荐视频候选集进行重新排序。
进一步的,所述根据所述视频关联矩阵为每个视频生成推荐视频候选集,包括:根据所述视频关联度矩阵为每个视频生成与该视频的视频分类相对应的推荐视频候选集。
为了实现上述目的,根据本申请的另一方面,提供了另一种基于多用户的视频推荐方法,该方法包括:获取每个用户的视频点击数据;根据所述视频点击数据计算出每个用户在每个视频分类下的视频共现矩阵;根据所述每个用户在每个视频分类下的视频共现矩阵计算出每个视频分类的视频关联度矩阵;根据所述视频关联度矩阵为每个视频生成与该视频的视频分类相对应的推荐视频候选集。
进一步的,所述根据所述视频点击数据计算出每个用户在每个视频分类下的视频共现矩阵,包括:根据所述视频点击数据建立每个用户在每个视频分类下的视频点击时间列表;对于每个用户下的每个视频分类根据所述视频点击时间列表计算出视频的时间相关性矩阵和/或视频的周期相关性矩阵;根据所述视频的时间相关性矩阵和/或视频的周期相关性矩阵计算出每个用户在每个视频分类的视频共现矩阵。
进一步的,所述基于多用户的视频推荐方法还包括:获取每个用户的视频曝光数据;根据所述视频曝光数据和所述视频点击数据计算出每个视频的修正参数;根据所述视频的修正参数对所述推荐视频候选集进行重新排序。
为了实现上述目的,根据本申请的另一方面,提供了一种基于多用户的视频推荐装置。
根据本申请的基于多用户的视频推荐装置包括:
数据获取模块,用于获取用户的视频点击数据以及视频曝光数据;
共现矩阵生成模块,用于根据所述视频点击数据计算出每个用户的视频共现矩阵;
关联矩阵生成模块,用于根据每个用户的视频共现矩阵计算出视频关联矩阵;
候选集生成模块,用于根据所述视频关联矩阵为每个视频生成推荐视频候选集;
修正模块,用于根据预设的修正算法对所述推荐视频候选集进行重新排序。
根据本申请的另一方面,还提供了一种计算机设备,包括存储器、处理器及储存在储存器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现所述基于多用户的视频推荐方法。
根据本申请的另一方面,还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时实现所述基于多用户的视频推荐方法。
在本申请实施例中,采用在视频推荐时加入视频的时间相关性和周期相关性的方式,通过根据视频的时间相关性和周期相关性计算出视频的关联矩阵,达到了在视频推荐时消除不同种类用户之间的影响的目的,从而解决了电视场景下由于多用户造成的视频推荐不准确的问题。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
如图1所示,本申请的一个方面提供了一种基于多用户的视频推荐方法,该方法包括步骤S101至步骤S104。
步骤S101,获取每个用户的视频点击数据,在本步骤中,收集并储存每个用户的视频点击时间数据。
步骤S102,根据所述视频点击数据计算出每个用户的视频共现矩阵,在本步骤中,根据每个用户的所有视频点击时间,计算出该用户所点击的视频与视频之间的共现矩阵,所述共现矩阵表示出视频与视频之间的相关性,在本申请的一可选实施例中用户的共现矩阵可以用Cu[i][j]表示。
步骤S103,根据每个用户的视频共现矩阵计算出视频关联矩阵,在本步骤中,根据每个用户所点击的视频与视频之间的共现矩阵,计算出描述所有视频之间相关性的视频关联矩阵,在本申请的一可选实施例中所述视频关联矩阵可以用W[i][j]表示,所述视频关联矩阵W[i][j]可以根据每个用户的共现矩阵Cu[i][j]计算得出,计算公式为:
步骤S104,根据所述视频关联矩阵为每个视频生成推荐视频候选集,在本步骤中,根据在所述步骤S103建立的所述视频关联矩阵为每个视频生成一个推荐视频候选集,进而根据用户所点击的视频,把对应的推荐视频候选集内的视频推荐给用户。
如图2所示,所述步骤S102,根据所述视频点击数据计算出每个用户的视频共现矩阵,具体包括步骤S201至步骤S202。
步骤S201,根据所述视频点击数据建立每个用户的视频点击时间列表,在本步骤中,根据所述视频点击数据为每个用户建立一个用户-视频的倒排表,所述倒排表记录了用户观看的每个视频和点击时间,并按照时间由小到大排序。
步骤S202,对于每个用户根据所述视频点击时间列表计算出视频的时间相关性矩阵和/或视频的周期相关性矩阵,在本步骤中,根据预设的算法计算出每个用户视频点击时间的时间相关性矩阵和周期相关性矩阵。
本申请考虑到解决智能电视视频推荐上多用户的问题,在计算视频的相关性的时候加入了时间特性和周期特性。时间特性表示,日常电视的观看基本是不同家庭成员随机的看一段时间,那么同一天时间间隔越短的点击,该点击行为属于同一个人的概率就越大。周期特性指的是,以周为周期,周一到周五相同时间段的用户行为相关性更高,周六和周日相同时间段的用户行为相关性更高。一般家庭成员看电视还是有规律的,比如晚上18至20点是使用电视的高峰期,此时爸妈会追电视剧,儿童会看动漫;比如周六周日小孩看动漫的行为更频繁,毕竟平时上学,只有双休日有空闲时间看电视。在计算视频的相关性的时候加入了时间特性和周期特性可以很好的解决电视场景下多用户的推荐问题。
在本申请的一可选实施例中,所述视频的时间相关性矩阵表示为Ctime[i][j],可以由如下公式计算得出:
Δt=|ti-tj| Δt≤tthreshold≤T,T=60*60*24
其中ti和tj表示用户点击视频i和j的时间,以秒为单位。tthreshold表示一个时间阈值,同一天用户点击的两个视频间隔超过tthreshold则认为这两个点击属于不同家庭成员。
在本申请的一可选实施例中,所述视频的周期相关性矩阵表示为Cperiod[i][j],可以由如下公式计算得出:
Δp=|(timodT)-(tjmodT)|
Δd>0,Δp≤pthreshold≤T,T=60*60*24
其中Δd表示用户点击视频i和视频j相隔的天数,Δp表示用户点击视频i和视频j相隔的时间,忽略天数,而p
threshold表示对这个相隔时间的限制阈值,一般会取比t
threshold小的值。IsWeekday(t
i)表示判断时间t
i是否是工作日。
表示异或运算,那么
表示用户点击视频i和视频j的时间要么都是双休日,要么都是工作日。
步骤S203,根据所述视频的时间相关性矩阵和/或视频的周期相关性矩阵计算出每个用户的视频共现矩阵,本步骤中,在计算视频的相关性的时候加入了视频的时间特性和周期特性,本申请的一可选实施例中,所述每个用户的视频共现矩阵可以用Cu[i][j]表示,可以由视频的周期相关性矩阵Cperiod[i][j]和视频的时间相关性矩阵Ctime[i][j]按照一定的比重加权计算得出,计算公式为:
Cu[i][j]=wtime*Ctime[i][j]+wperiod*Cperiod[i][j]
其中wtime和wperiod分别为时间相关性矩阵和周期相关性矩阵的加权系数,可以根据经验进行调整。
本申请考虑到提高视频推荐的准确性,在利用点击这样的正反馈数据的基础上,还引入了曝光未点击的负反馈数据,利用点击率来刻画用户对视频的喜欢程度,并使用威尔逊区间来修正点击率,以解决曝光不充分导致置信度不高的问题。威尔逊区间是美国数学家威尔逊提出的一个修正公式wilson,能够很好的解决小样本的准确性问题。简单的来说就是对于推荐100次观看10次的用户a和推荐1000次观看100次的用户b,虽然两个用户的点击率都是0.1,但用户b的点击率更让人信服。
如图3所示,利用威尔逊区间提高视频推荐结果的置信度的过程具体包括步骤S301至步骤S302。
步骤S301,获取每个用户的视频曝光数据。
步骤S302,根据所述视频曝光数据和所述视频点击数据计算出每个视频的修正参数,在本步骤中,根据用户的视频点击数据和视频曝光数据利用威尔逊点击率公式,计算出每个视频的威尔逊点击率,在本申请的一可选实施例中所述威尔逊点击率可以用wilson_ctr表示,可以根据如下公式计算得出:
其中ctr表示视频的点击率,pv表示视频的曝光次数,ck表示用户观看视频的次数,z表示对应某个置信水平的统计量,如z=1.96时,置信水平为95%。
步骤S303,根据所述视频的修正参数对所述推荐视频候选集进行重新排序,在本步骤中,根据在步骤S302计算得出的每个视频的威尔逊点击率对所述步骤S104中得到的每个视频的推荐视频候选集进行重新排序,进而基于重新排序后的推荐视频候选集为用户进行视频推荐。
本申请考虑到解决电视场景下多用户的问题,采用了对视频分类推荐的方法,将视频分为不同的类别,如电影,电视剧,动漫和综艺,对不同类别的视频生成同类别的相关推荐结果。因为不同年龄层次的人对于视频类别的偏好是挺明显的。老年人和青年人基本以电影、电视剧为主,而儿童基本以动漫为主。这样就能很大程度上规避小孩看到血腥惊悚的视频。
如图4所示,基于对视频分类推荐的目的,本申请提供了一种基于多用户的视频推荐方法,该方法包括步骤S401至步骤S404。
步骤S401,获取每个用户的视频点击数据,在本步骤中,获取并储存每个用户的每个类型的视频的点击数据。
步骤S402,根据所述视频点击数据计算出每个用户在每个视频分类下的视频共现矩阵,在本步骤中,首先对每个用户点击的所有视频根据预设的视频分类方法进行分类,例如分为电影,电视剧,动漫和综艺等类型,进而计算出用户在每个视频分类下的视频共现矩阵Cu[i][j]。
步骤S403,根据所述每个用户在每个视频分类下的视频共现矩阵计算出每个视频分类的视频关联度矩阵,在本步骤中,根据所述每个用户在每个视频分类下的视频共现矩阵Cu[i][j],计算出每个视频分类下的视频关联度矩阵W[i][j],具体的计算方法可采用上述步骤S103的计算公式。
步骤S404,根据所述视频关联度矩阵为每个视频生成与该视频的视频分类相对应的推荐视频候选集,在本步骤中,根据在所述步骤S403建立的每个视频分类下的视频关联度矩阵W[i][j]为每个视频生成一个与该视频的视频分类相对应的推荐视频候选集,进而根据用户所点击的视频,把对应的推荐视频候选集内的视频推荐给用户,例如对于电影视频,根据电影分类下的视频关联度矩阵W[i][j]为每一个电影生成一个推荐电影候选集,进而当用户点击一个电影视频时,根据该电影视频对应的推荐电影候选集对用户进行推荐输出。
如图5所示,所述步骤S402,根据所述视频点击数据计算出每个用户在每个视频分类下的视频共现矩阵,具体包括步骤S501至步骤S503。
步骤S501,根据所述视频点击数据建立每个用户在每个视频分类下的视频点击时间列表,在本步骤中,根据所述视频点击数据为每个用户在每个视频分类下建立一个用户-视频的倒排表,所述倒排表记录了用户观看的每个该类型下的视频和点击时间,并按照时间由小到大排序。
步骤S502,对于每个用户下的每个视频分类根据所述视频点击时间列表计算出视频的时间相关性矩阵和/或视频的周期相关性矩阵,在本步骤中,根据上述步骤S202中的计算公式,计算出每个用户下的每个视频分类的时间相关性矩阵Ctime[i][j]和周期相关性矩阵Cperiod[i][j]。
步骤S503,根据所述视频的时间相关性矩阵和/或视频的周期相关性矩阵计算出每个用户在每个视频分类的视频共现矩阵,在步骤中根据每个用户下的每个视频分类的时间相关性矩阵Ctime[i][j]和周期相关性矩阵Cperiod[i][j]计算出每个用户在每个视频分类的视频共现矩阵Cu[i][j],具体的计算方法可以利用上述步骤S203中的计算公式。
从以上的描述中,可以看出,本发明至少包括了如下优点:
1.采用结合正负反馈的协同过滤方法很好的解决了电视推荐场景中的多用户问题,并将结合正负反馈的威尔逊点击率应用到协同过滤算法中,大大提高了电视场景下的推荐效果。
2.针对多用户问题,一方面通过视频分类来区分用户群体,另一方面重新定义协同过滤算法中的视频相关性的计算方法,在计算视频的相关性的时候加入了时间特性和周期特性。
3.针对协同过滤算法只使用点击这样的正反馈数据问题,利用结合了正负反馈的威尔逊点击率来刻画用户对视频的喜欢程度,以此来提高协同过滤算法的推荐效果,提升电视场景里的用户体验。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明实施例,还提供了一种用于实施上述基于多用户的视频推荐方法的视频推荐装置,如图6所示,该装置包括:数据获取模块1、共现矩阵生成模块2、关联矩阵生成模块3、候选集生成模块4、以及修正模块5,其中:
所述数据获取模块1,用于获取用户的视频点击数据以及视频曝光数据;
所述共现矩阵生成模块2,用于根据所述视频点击数据计算出每个用户的视频共现矩阵;
所述关联矩阵生成模块3,用于根据每个用户的视频共现矩阵计算出视频关联矩阵;
所述候选集生成模块4,用于根据所述视频关联矩阵为每个视频生成推荐视频候选集;
所述修正模块5,用于根据预设的修正算法对所述推荐视频候选集进行重新排序。
本申请的另一方面还提供了一种计算机设备,包括存储器、处理器及储存在储存器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现上述基于多用户的视频推荐方法。
本申请的另一方面还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时实现实现上述基于多用户的视频推荐方法。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。