发明内容
鉴于现有技术中存在的问题,本发明的目的在于提供一种点击反馈式个性化推荐系统。
为了达到上述目的,本发明提供了一种点击反馈式个性化推荐系统,该系统包括:相关推荐系统,同时接收用户观看行为日志模块的输出与个性化推荐系统离线计算模块的输出作为相关推荐系统的输入;输出与网络视频对应的相关推荐网络视频及网络视频相关性权重;用户观看行为日志模块,用于记录和保存用户的观看行为日志,包括用户所观看的网络视频,网络视频的观看时间,用户所收藏的网络视频,用户对网络视频的搜索记录,用户所分享的网络视频,用户对网络视频的评价;个性化推荐系统,同时接收用户观看行为日志模块的输出与相关推荐系统的输出作为个性化推荐系统的输入,输出个性化推荐结果列表。
进一步,本发明所述的个性化推荐系统包括个性化推荐系统离线计算模块、个性化推荐系统在线计算模块、用于显示个性化推荐结果的个性化推荐结果显示模块、点击反馈计算模块、用户实时点击日志模块。
进一步,本发明所述的个性化推荐系统离线计算模块接收相关推荐系统的输出、用户观看行为日志模块的输出及点击反馈计算模块的输出,个性化推荐系统离线计算模块进一步计算观看完成率权重wc、观看时间维度权重wt、网络视频清晰度权重wd,并对多个权重进行融合,得到相关推荐的每个网络视频的单一权重,权重融合的计算公式为:
w=weight×wc×a1+wt×a2+wd×a3
其中weight为相关推荐系统输出的网络视频相关性权重,wc为观看完成率权重,wt为观看时间维度权重,wd为网络视频清晰度权重,取a1=0.5,a2=0.3,a3=0.2,个性化推荐系统离线计算模块获取用户的观看行为日志,计算用户观看过的网络视频的最大时长lenMax分钟;设用户观看的某网络视频V长度为len分钟,用户观看的时长为wLen分钟,计算wc:
如果wc>1,则wc=1,得到最终的网络视频V的完成率权重为wc;
设网络视频的观看日期与当前计算日期的天数差为dayDiff,时间维度权重的最小值为wmin,权重从1下降到wmin的时间长度为dayRange天,则时间维度权重wt计算公式为:
(1)wt=1.0一dayDiff ×((1-wmin)/dayRange)
(2)如果wt<wmin,则wt=wmin
设清晰度权重为wd,网络视频V的清晰度为d,则:如果d为“超清”,则wd=1+wb;如果d为“高清”,则wd=1;如果d为“标清”,则wd=1-wb。
进一步,本发明所述的个性化推荐系统在线计算模块执行以下过程:获取用户user当前点击网络视频ID;在用户产生新的点击之前,个性化推荐系统输出的在线计算结果就是个性化推荐系统离线计算模块输出的离线计算结果;用户产生新的网络视频点击行为,如果点击的不是在线计算结果,则调用个性化推荐系统离线计算模块重新计算,修改在线推荐结果;用户产生新的网络视频点击行为,如果点击的是在线推荐结果,则调用个性化推荐系统离线计算模块重新计算,修改在线推荐结果;并且调用点击反馈系统,对数据源的权重进行调整;点击反馈系统的计算结果作为个性化推荐系统离线计算模块的输入,隔天生效。
进一步,本发明所述点击反馈计算模块包括推荐点击日志子模块与数据源权重调整子模块;推荐点击日志子模块用于收集用户点击推荐网络视频的记录,推荐网络视频的点击可以映射为对数据源的点击记数;数据源权重调整子模块根据用户点击行为调整每个数据源的权重。
进一步,本发明所述的数据源权重调整子模块的权重调整分为两部分,一部分是基本加权,值为基准权重wb,基准权重wb的计算公式为:
其中:C表示推荐列表的行数,第i行的权重最大值为wmax_i,权重最小值为wmin_i,被推荐网络视频个数为num_I,设某个数据源原来权重W,则点击一次后权重调整为:W1=W+wb;
另一部分是连续加权,设为wac,wac>1,连续加权是指若用户该次点击为对某个数据源的第k次连续点击,则对该数据源的加权为wb×wack,设某个数据源原来权重W,则连续k次点击后权重调整为:
进一步,本发明所述的个性化推荐系统离线计算模块进一步利用相关推荐列表,关联每一个用户所收藏网络视频的所有相关推荐网络视频;对于编号为uid的用户,将其观看最频繁的前三个频道下的最快上升的网络视频按权重进行排序,保留前Vmax个网络视频;计算一个频道一个月内播放量最大的网络视频,最多保留前Vmax个网络视频;计算一周内用户订阅的所有用户发布的新网络视频,最多保留前Vmax个网络视频,按发布时间及播放量排序;计算一周内用户关注的所有用户发布的新网络视频,最多保留前Vmax个网络视频,按发布时间及播放量排序;对于用户user1,如果user2与user1观看的相同ID的网络视频越多,则定义两个用户越相似,每个用户计算一个相似用户列表,列表最大长度定义为Umax,统计一周内所有相似用户发布的新网络视频,最多保留前Vmax个网络视频,按发布时间及播放量排序;同一用户上传的网络视频数据源定义为用户所收藏的网络视频的发布者所上传的网络视频,计算一周内所有同一用户上传的新网络视频,最多保留前Kmax个网络视频,按发布时间及播放量排序。
进一步,本发明所述网络视频按发布时间及播放量排序是指:在其中,单个数据源中最终的网络视频的相关权重Wvt的计算公式为:
Wvt=wt+a×wv
其中a为可调参数,将按时间排序的序号作为网络视频的时间权重wt,即如果网络视频在时间上排序为k,则该网络视频的时间权重为k;将按播放量排序的序号作为网络视频的播放量权重wv,即如果网络视频在播放量上的排序为k,则该网络视频的播放量权重为k。
进一步,本发明所述的个性化推荐系统离线计算模块对所有的数据源中的网络视频进行复合排序,数据源分为两种类型,一种是针对网络视频的推荐数据源sv,一种是针对用户的推荐数据源su;每个数据源的推荐网络视频的第一个被推荐的网络视频的权重为wi1,对其进行规范化,即所有的权重都除以wi1,经规范化以后,第一个位置的权重wi1都为1;在复合排序之前,将每个网络视频的权重乘以该网络视频源的权重作为新的网络视频权重,通过以下过程来进行复合排序:如果数据来源为sv,则其所有推荐网络视频的权重Wsv=W×1.2;如果数据来源为su,则其所有推荐网络视频的权重不变,按照新的权重对来自所有数据源的网络视频进行排重,排重过程是,将相同ID的网络视频的权重进行合并,使用合并后权重参与排序,按照排重后的权重对推荐网络视频进行排序;保留Vmax个推荐网络视频,得到用户的个性化推荐列表。
进一步,本发明所述系统进一步包括相关推荐系统推荐结果变化检测模块,该模块接收相关推荐系统的输出作为输入,相关推荐系统推荐结果变化检测模块用于检测相关推荐系统推荐结果的变化情况,相关推荐结果相邻两天之间的变化率为相关推荐变化率,相关推荐变化率计算过程是:获取相邻两天推荐列表La和Lb中所有推荐的网络视频的vid的集合,对每个共同的vid,设La的推荐列表长度为Lena,Lb的推荐列表的长度为Lenb,La与Lb共同出现的网络视频的个数为c,定义单个网络视频变化率为
dif=1-c/min(Lena,Lenb)
对于所有共同的vid,设共同vid的个数为m,定义相关推荐变化率为:
rate=sum(dif)/m
相关推荐变化率sum(dif)为所有共同的vid单个网络视频变化率的和;当相关推荐变化率低于预设的最小相关变化率阈值时,启动个性化推荐系统,当个性化推荐系统启动之后就不再停止。
本发明所述的具有以下优点:可以有效的利用用户在相关推荐系统上产生的优质数据;并能将个性化推荐系统的结果反馈到相关推荐系统,实现对相关推荐系统本身数据的优化。通过点击反馈计算系统,对用户点击的数据源进行自动调整,从而产生更精确的网络视频推荐结果。
具体实施方式
为使本发明的上述目的、特征和优点更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明:
图1是本发明所述一种点击反馈式个性化推荐系统,该系统包括:
相关推荐系统。同时接收用户观看行为日志模块的输出与个性化推荐系统离线计算模块的输出作为相关推荐系统的输入。相关推荐系统输出所有网络视频对应的相关推荐网络视频及其相关性权重w1、w2…。权重是网络视频之间相关性程度的度量。用户观看行为日志模块。用于保存用户的观看行为日志,包括用户观看的网络视频,观看网络视频的时间,用户收藏的网络视频,用户搜索的网络视频,用户分享的网络视频,用户顶踩的网络视频。
个性化推荐系统。同时接收用户观看行为日志模块的输出与相关推荐系统的输出作为个性化推荐系统的输入。个性化推荐系统包括个性化推荐系统离线计算模块、个性化推荐系统在线计算模块、个性化推荐结果显示模块、点击反馈计算模块、用户实时点击日志模块。
个性化推荐系统离线计算模块。个性化推荐系统离线计算模块接收相关推荐系统的输出、用户观看行为日志模块的输出及点击反馈计算模块的输出。将接收的相关推荐系统的输出、用户观看行为日志模块的输出作为数据源,用于产生推荐数据;接收的点击反馈计算模块的输出用于调整每个数据源的权重,以优化系统的性能。个性化推荐系统离线计算模块作为对于相关推荐系统的反馈输出。对于相关推荐系统的反馈输出不需要截断离线计算结果。将用户的个性化推荐列表作为用户的一次观看行为,添加到相关推荐系统。
个性化推荐系统在线计算模块。在线计算模块用于实时对用户最新的点击进行反馈。设推荐列表最大保留个数为Vmax。具体执行过程为:
(1)获取用户user当前点击网络视频ID;
(2)在用户产生新的点击之前,个性化推荐系统输出的在线计算结果就是个性化推荐系统离线计算模块输出的离线计算结果;
(3)用户产生新的网络视频点击行为,如果点击的不是在线计算结果,则调用个性化推荐系统离线计算模块重新计算,修改在线推荐结果;
(4)用户产生新的网络视频点击行为,如果点击的是在线推荐结果,则调用个性化推荐系统离线计算模块重新计算,修改在线推荐结果;并且调用点击反馈系统,对数据源的权重进行调整;点击反馈系统的计算结果作为个性化推荐系统离线计算模块的输入,隔天生效。
基准权重。基准权重定义为,在相关推荐列表中,相邻两个被推荐网络视频的权重的平均差值。基准权重反映了,要使推荐结果排序提前一个位置,平均需要增加的权重大小。
基准权重计算。基准权重在个性化推荐系统离线计算模块中进行计算。取推荐列表一行,假设相关推荐结果为:
srcVid desVid1:w1,desVid2:w2,desVid3:w3,desVid4:w4
其中srcVid是用户观看的网络视频的ID,desVid为相关推荐系统输出的相关推荐的网络视频的ID。
该推荐列表行被推荐网络视频的权重的平均差值为:
[(w1-w2)+(w2-w3)+(w2-w3)+(w3-w4)+(w4-w5)]/4=(w1-w5)/4
从上面的公式可以看出,计算一行的平均差值,只需要知道该行被推荐网络视频的最大权重、最小权重和被推荐网络视频个数。
设推荐列表共有C行,第i行的权重最大值为wmax_i,权重最小值为wmin_i,被推荐网络视频个数为num_i,则基准权重wb的计算公式为:
点击反馈计算模块包括推荐点击日志子模块与数据源权重调整子模块。推荐点击日志子模块用于用于收集用户点击推荐网络视频的记录。每个推荐网络视频所属的数据源都是已知的,因此推荐网络视频的点击可以映射为对数据源的点击记数。推荐点击中一个用户一天的点击行为构成一条记录。
定义用户ID为uid,点击时间为time,则一条记录的形式可能为:
[uid:time(1)_频道最大播放量数据源,time(2)_订阅用户发的新网络视频数据源,time(3)_相似用户的网络视频数据源,time(4)_同一用户上传数据源…]
数据源权重调整子模块。数据源权重调整在点击反馈计算模块中进行。数据源权重调整是根据用户点击行为调整每个数据源的权重。数据源权重调整算法每天执行一次。数据源权重调整算法分为两部分。一部分是基本加权,值为基准权重wb。设某个数据源原来权重W(该原来权重可以在系统中预先设置),则点击一次后权重调整为:
W1=W+wb
另一部分是连续加权,设为wac,wac>1。连续加权的定义为,若用户该次点击为对某个数据源的第k次连续点击,则对该数据源的加权为wb×wack。设某个数据源原来权重W,则连续k次点击后权重调整为:
多数据源。多个数据源的集成是点击反馈机制的基础。设每个数据源要保留的网络视频的个数均为Vmax。
数据源基本信息。数据源分为两种类型,一种是针对网络视频的推荐数据源,包括相关推荐的网络视频数据源和用户收藏网络视频的相关推荐网络视频源;另一种是针对用户本身的推荐数据源,包括频道上升最快的网络视频数据源、频道最大播放量的网络视频数据源、订阅用户发布的新网络视频数据源、关注用户发布的新网络视频数据源、相似用户的网络视频数据源和同一用户上传的网络视频数据源。
数据源的统一输出形式。数据源的输出结果采用统一输出形式:
uid vid1:weight1,vid2:weight2…
其中uid为用户编号,vid为推荐网络视频编号,weight为推荐网络视频的权重。
数据源的权重。设有多个数据源,每个数据源产生一个推荐列表,每个数据源相当于一个独立的推荐列表,每个数据源的输出的网络视频都是有权重的:
uid source1:srcWeight1 vid11:weight11,vid12:weight12,…
uid source2:srcWeight2vid21:weight21,vid22:weight22,…
uid …
其中source为数据源,srcWeight为数据源的权重,weight为推荐网络视频的权重。数据源的权重是数据源价值的度量。
基于相关推荐的网络视频数据源。基于相关推荐的网络视频数据源来自相关推荐系统。
相关推荐数据源,其推荐形式为:
srcVid recVid1:weight 1,recVid2:weight2,recVid3:weight3…
其中srcVid是源网络视频,recVid是看了srcVid后推荐的网络视频,weight为recVid与srcVid之间的网络视频相关性权重。
相关推荐的网络视频数据源是针对网络视频的推荐数据源,即为给定的网络视频推荐网络视频,而不是为给定的用户推荐网络视频。针对网络视频的推荐数据源到针对用户的推荐数据源的转换的目的就是为用户推荐其看过的网络视频的相关网络视频。
设编号为uid的用户两个月内观看过的网络视频记录为:
uid vid1:videoLen1:watchLen1:watchTime1:def1,
vid2:videoLen2:watchLen2:watchTime2:def1…
其中vid是用户观看过的网络视频的编号,videoLen是网络视频长度,watchLen是用户观看网络视频的长度,watchTime是用户的观看时间,def是网络视频的清晰度。
设编号为uid的用户观看过的网络视频的相关推荐结果为:
vid1 recVid11:weight11,recVid12:weight12…
vid2 recVid21:weight21,recVid22:weight22…
…
将此结果代入用户的观看记录得到基于相关推荐的网络视频数据源的中间结果:
uid recVid11:weight11:videoLen1:watchLen1:watchTime1:def1,
recVid12:weight12:videoLen1:watchLen1:watchTime1:def1,
…
recVid1i:weight1i:videoLen1:watchLen1:watchTime1:def1,
recVid21:weight21:videoLen1:watchLen1:watchTime1:def1,
recVid22:weight22:videoLen1:watchLen1:watchTime1:def1,
…
recVid2i:weight2i:videoLen1:watchLen1:watchTime1:def1,
…
其中i为相关推荐列表推荐网络视频的个数。
观看完成率权重。观看完成率权重在个性化推荐系统离线计算模块中进行计算。观看完成率用来判断用户对网络视频的喜爱程度,剔除掉用户错误点击、找网络视频等噪声数据。
观看完成率权重的计算公式。记完成率权重为wc。
获取用户user的观看行为日志,计算用户观看过的网络视频的最大时长lenMax分钟;
(1)设用户观看的某网络视频V长度为len分钟,用户观看的时长为wLen分钟,计算wc:
(3)如果wc>1,则wc=1,得到最终的网络视频V的完成率权重为wc。
观看时间维度权重。观看时间维度权重在个性化推荐系统离线计算模块中进行计算。根据用户观看网络视频的时间设置时间维度权重。时间维度的权重主要考虑两点:一是新观看的网络视频有更高的权重,二是用户的长期兴趣要能够反映出来。从上面两点考虑,使用下面的计算公式。
观看时间维度权重的计算公式。设网络视频的观看日期与当前计算日期的天数差为dayDiff,时间维度权重的最小值为wmin,权重从1下降到wmin的时间长度为dayRange天,则时间维度权重wt计算公式为:
(1)wt=1.0-dayDiff ×((1-wmin )/dayRange)
(2)如果wt<wmin,则wt=wmin
网络视频的清晰度权重。网络视频的清晰度权重在个性化推荐系统离线计算模块中进行计算。采用网络视频清晰度权重的目的是,当其他权重差不多的时候为用户推荐清晰度更高的网络视频。
网络视频的清晰度权重的计算公式。设清晰度权重为wd,网络视频V的清晰度为d,则:
(1)如果d为“超清”,则wd=1+wb;
(2)如果d为“高清”,则wd=1;
(3)如果d为“标清”,则wd=1-wb;
基于相关推荐的数据源的输出。按照观看完成率的算法、观看时间维度权重的算法与网络视频清晰度权重的算法,将基于相关推荐的网络视频数据源的中间结果变换为:
uid recVid11:weight11:wc1:wt1:wd1,
recVid12:weight12:wc1:wt1:wd1,
…
recVid1i:weight1i:wc1:wt1:wd1,
recVid21:weight21:wc2:wt2:wd2,
recVid22:weight22:wc2:wt2:wd2,
…
recVid2i:weight2i:wc2:wt2:wd2,
…
其中weight为相关推荐系统输出的网络视频相关性权重,wc为观看完成率权重,wt为观看时间维度权重,wd为网络视频清晰度权重。转换为数据源统一输出形式。对多个权重的融合,得到每个recVid的单一权重,权重融合的计算公式为:
w=weight×wc×a1+wt×a2+wd×a3
经过试验,取a1=0.5,a2=0.3,a3=0.2。
中间结果形式变成:
uid recVid11:w11,recVid12:w12,…,recVid1i:w13,recVid21:w21,…按w11、w12…对recVid11、recVid12…进行排序,保留前Vmax个网络视频,Vmax为预设的最多保留的网络视频个数。
用户收藏网络视频的相关推荐网络视频源。利用相关推荐列表,关联每一个用户所收藏网络视频的所有相关推荐网络视频。
设编号为uid的用户两个月内观收藏的网络视频记录为:
uid vid1:videoLen1:collectTime1:def1,
vid2:videoLen2:collectTime2:def1…
为收藏网络视频虚拟一个观看时长,假设所有收藏网络视频的观看时长都是整个网络视频的时长;假设网络视频收藏时间为该网络视频的观看时间,则收藏网络视频可映射为一个用户观看网络视频:
uid vid1:videoLen1:watchLen1:watchTime1:def1,
vid2:videoLen2:watchLen2:watchTime2:def1…
其中,watchLen=videoLen(整个网络视频时长),watchTime=collectTime(收藏时间)。
下面的处理步骤就与相关推荐的网络视频源完全一致。
用户观看频道频次统计。对用户两个月观看的网络视频所属的频道的次数进行统计,得到列表:
uid cat1:vv1,cat2:vv2,cat3:vv3,cat4:vv4…
其中cat为频道编号,vv属于该频道的网络视频的观看次数。
根据频道vv数进行排序,保留前三个观看最频繁的频道:
uid cat1,cat2,cat3
频道上升最快的网络视频数据源。计算一个频道一个月时间内上升最快的网络视频,最多保留前Vmax个网络视频。网络视频按上升速度排序。
该数据源的数据格式为:
cat1 vid11:weight11,vid12:weight12,vid13,weight13
cat2 vid21:weight21,vid22:weight22,vid23,weight23
其中vid为网络视频的编号,weight为计算得到的上升速度的权重。
对于编号为uid的用户,将其观看最频繁的前三个频道下的最快上升的网络视频按权重进行排序,保留前Vmax个网络视频。网络视频数据源输出为:
uid vid1:weight1,vid2:weight2,…,vid(Vmax):weight(Vmax)
频道最大播放量的网络视频数据源。计算一个频道一个月内播放量最大的网络视频,最多保留前Vmax个网络视频。网络视频按播放量进行排序。
该数据源的数据格式为:
cat1 vid11:vv11,vid12:vv12,vid13:vv13
cat2 vid21:vv21,vid22:vv22,vid23,vv23
其中vid为网络视频的编号,vv为统计得到的单个网络视频的一个月内的观看总次数。对于编号为uid的用户,将其观看最频繁的前三个频道下播放量最大的网络视频按观看次数进行排序,保留前Vmax个网络视频。网络视频数据源输出为:
uid vid1:vv1,vid2:vv2,…,vid(Vmax):vv(Vmax)
订阅用户发布的新网络视频数据源。计算一周内用户订阅的所有用户发布的新网络视频,最多保留前Vmax个网络视频。按发布时间及播放量排序。
关注用户更新的网络视频数据源。计算一周内用户关注的所有用户发布的新网络视频,最多保留前Vmax个网络视频。按发布时间及播放量排序。
相似用户的网络视频数据源。对于用户user1,如果user2与user1观看的相同ID的网络视频越多,则定义两个用户越相似。每个用户计算一个相似用户列表,列表最大长度定义为Umax。统计一周内所有相似用户发布的新网络视频,最多保留前Vmax个网络视频。按发布时间及播放量排序。
同一用户上传的网络视频数据源。同一用户上传的网络视频数据源定义为用户所收藏的网络视频的发布者所上传的网络视频。计算一周内所有同一用户上传的新网络视频,最多保留前Kmax个网络视频。按发布时间及播放量排序。
按发布时间及播放量排序算法。这个排序算法针对订阅用户发布的新网络视频数据源、关注用户更新的网络视频数据源、相似用户的网络视频数据源和同一用户上传的网络视频数据源,是单个数据源内部网络视频的排序算法。
以上四个数据源在内部数据排序之前的数据格式统一都为:
vid vid1:vv1:watchTime1,vid2:vv2:watchTime2,…
其中vv是该网络视频一周内的总观看次数,watchTime是该网络视频的发布时间。
(1)将所有网络视频按发布时间排序,最多保留前Vmax个网络视频,后面的排序步骤仅考虑保留的Vmax个网络视频;
(2)将按时间排序的序号作为网络视频的时间权重wt,即如果网络视频在时间上排序为k,则该网络视频的时间权重为k;
(3)将按播放量排序的序号作为网络视频的播放量权重wv,即如果网络视频在播放量上的排序为k,则该网络视频的播放量权重为k;
(4)权重融合。网络视频按发布时间及播放量排序最终的网络视频的相关权重Wvt的计算公式为(这里指的“最终权重”是单个数据源内部的最终权重):
Wvt=wt+a×wv
其中a为可调参数,用于权衡wt与wv的重要性。
根据Wvt对网络视频进行重新排序,得到最终的按发布时间及播放量排序的结果:
uid vid1:Wvt1,vid2:Wvt2,…,vid(Vmax):Wvt(Vmax)
复合排序。复合排序在个性化推荐系统离线计算模块中进行计算。完成所有的权重计算模块的计算后,需要对所有数据源进行融合,得到最终的个性化推荐结果。
复合排序的计算公式。根据前面叙述,数据源分为两种类型,一种是针对网络视频的推荐数据源sv,一种是针对用户的推荐数据源su。针对网络视频的推荐数据源已经通过关联用户的观看行为,转换成针对用户的推荐数据源。设用户的ID为uid,网络视频的ID为vid,推荐网络视频的权重为w,数据来源为source,网络视频来源权重为srcWeight,最终要保留的推荐网络视频个数为Vmax,则针对用户的推荐数据源的形式化描述为:
uid source1:srcWeight1 vid11:w11,vid12:w12,vid13:w13…
uid source2:srcWeight2 vid21:w21,vid22:w22,vid23:w23…
每个数据源都是一条独立的推荐列表,推荐列表的网络视频按每个数据源定义的权重进行了排序,每个数据源都有自身的权重。
由于每个数据源的推荐网络视频都已经排好序,第一个被推荐的网络视频权重wi1(w11,w21,w31…)最大。规范化的方式是对每一条独立的推荐列表,所有的权重都除以wi1(w11,w21,w31…)。经常规范化步骤以后,第一个位置的权重wi1(w11,w21,w31…)都为1。
网络视频权重按数据源权重进行调整。在复合排序之前,将每个网络视频的权重乘以该网络视频源的权重做为新的网络视频权重:
uid source1:srcWeight1 vid11:w11*srcWeight1,vid12:w12*srcWeight1,
vid13:w13*srcWeight 1…
对于复合排序使用以下规则:
(1)如果数据来源为sv,则所有推荐网络视频的权重Wsv=W×1.2;
(2)如果数据来源为su,则所有推荐网络视频的权重不变。
(3)按照新的权重对来自所有数据源的网络视频进行排重,排重的具体算法是,将相同ID的网络视频的权重进行合并,使用合并后权重参与排序。
(4)按照排重后的权重对推荐网络视频进行排序;
(5)截断推荐网络视频的数目,保留Vmax个推荐网络视频,得到用户的个性化推荐列表。
相关推荐系统推荐结果变化检测模块。该模块是一个相对独立的模块,每天接受相关推荐系统的输出作为输入。相关推荐系统推荐结果变化检测模块用于检测相关推荐系统推荐结果的变化情况,定义相关推荐结果相邻两天之间的变化率为相关推荐变化率。图2是本发明所述的一种点击反馈式个性化推荐系统的切换流程图。
相关推荐变化率计算。首先获取相邻两天推荐列表La和Lb中所有推荐的网络视频的vid的集合。
对每个共同的vid,设La的推荐列表长度为Lena,Lb的推荐列表的长度为Lenb,La与Lb共同出现的网络视频的个数为c,定义单个网络视频变化率为
dif=1-c/min(Lena,Lenb)
对于所有共同的vid,设共同vid的个数为m,定义相关推荐变化率为:
rate=sum(dif)/m
相关推荐变化率sum(dif)为所有共同的vid单个网络视频变化率的和。
系统的运行过程。首先只运行相关推荐系统,相关推荐系统输入模块只采用用户观看行为模块的输出。
相关推荐系统本身的特性是,运行时间越长,基于用户观看行为的反馈,推荐出来的网络视频的相关性越好;同时,相关推荐系统本身的缺点是,运行时间越长,推荐列表的变化越少。预设一个最小相关变化率阈值。当相关推荐变化率低于最小相关变化率阈值时,启动个性化推荐系统。当个性化推荐系统启动之后就不再停止。
本发明提出了一种与相关推荐系统融合的个性化推荐系统,可以有效的利用用户在相关推荐系统上产生的优质数据;并能将个性化推荐系统的结果反馈到相关推荐系统,实现对相关推荐系统本身数据的优化。通过点击反馈计算系统,对用户点击的数据源进行自动调整,从而产生更精确的推荐结果。
(1)获取两个月时间内所有用户的观看日志作为相关推荐系统的输入;
(2)相关推荐系统通过计算,得到每个网络视频的相关网络视频列表,列表包括推荐网络视频的ID和相关权重;
(3)对于每个用户user,根据user在两个月内的所有观看行为,计算对于user的相关推荐结果,即前文所述的将针对网络视频的数据源转换成针对用户的数据源;
(4)根据user在两个月内的所有收藏行为,计算对于user的收藏网络视频的相关推荐结果;
(5)根据user在两个月内的所有收藏行为,计算前述所有针对用户的数据源的推荐结果;
(6)对推荐结果进行融合,得到个性化推荐系统的离线计算结果;
(7)在用户产生新的点击之前,在线计算结果就是离线计算结果;
(8)用户产生新的网络视频点击行为,如果点击的不是在线推荐结果,则仅进行重新在线计算,修改在线推荐结果;
(9)用户产生新的网络视频点击行为,如果点击的是在线推荐结果,则进行重新在线计算,修改在线推荐结果;并且调用点击反馈系统,对数据源的权重进行调整;
(10)点击反馈系统的计算结果作为个性化推荐系统离线计算模块的输入,隔天生效。
以上是对本发明的优选实施例进行的详细描述,但本领域的普通技术人员应该意识到,在本发明的范围内和精神指导下,各种改进、添加和替换都是可能的。这些都在本发明的权利要求所限定的保护范围内。