本发明涉及大数据应用技术领域,尤其涉及一种基于协同过滤的电视终端节目个性化推荐方法。
背景技术:
随着互联网技术的发展,人们从网络中获取到的信息量越来越大,如何从海量信息中快速获取到有效信息一直是计算机应用领域的研究热点。其中,推荐算法已经成为解决互联网环境中“信息过载”问题的重要手段。目前,推荐技术被广泛应用于电子商务、社交网络等互联网应用中,例如专利号为cn201410212505.4的专利将推荐技术引入校园图书的个性化推荐中。但是,目前很少有将这样的推荐技术应用于电视终端的案例。
现如今电视节目众多,用户很难快速找到自己真正感兴趣的电视节目。在海量的电视节目面前,如何帮助电视终端用户快速找到想看的节目,已然成为电视行业的研究热点。因此,将互联网中广泛应用的推荐技术引入电视,可以帮助用户更加高效地找到观看节目。本专利正是基于电视应用的实际需求,考察电视终端容易获得的信息资源,设计合理的推荐方法,利用电视终端用户的集体协同智慧,向用户推荐他们可能需要的节目,帮助用户个性化地选择想看的节目,从而提高电视终端的使用率、终端用户留存率。
技术实现要素:
针对现有技术存在的不足之处,本发明的目的在于提供一种基于协同过滤的电视终端节目个性化推荐方法,本发明首先针对电视端用户历史评分数据较难直接获取,构建了一种打分策略来将用户的观影行为转换为评分数据,然后利用构建的评分数据计算物品与物品相似性,最后实现推荐。
本发明的目的通过下述技术方案实现:
一种基于协同过滤的电视终端节目个性化推荐方法,其方法步骤如下:
a、根据用户的历史观影行为构建用户-节目-评分矩阵r;
从采集的观影行为中抽取最近t_day天的用户观影行为作为算法源数据,对算法源数据进行如下两步清洗处理:
a1、去除过于活跃的用户:从t_day天的用户观影行为中统计所有用户的观影情况,取一定比例相对非活跃的用户参与到后续步骤b,一定比例为整个用户所占比x1;其中,活跃用户的活跃度指在t_day天的用户观影行为中统计出的单个用户观看的节目数;
a2、剔除过于热门的节目:从t_day天的用户观影行为中统计所有节目被观看的情况,取一定比例相对非热门的节目参与到后续步骤b;其中,热门节目的热门度指在t_day天的用户观影行为中统计出的单个节目有多少用户观看过;
经过步骤a清洗后的数据有m个用户,用户表示为user,n个节目,节目表示为item,则r表示为:
式中,rui表示用户useru对节目itemi的评分;
其中rui采用如下方式构建:
式中,null表示用户useru未观看节目itemi,c为用户useru对节目itemi观看的总次数,t为节目itemi的总时长,tc表示用户useru每次观看节目itemi的时长,α为收缩因子,
式中,
b、根据用户物品评分矩阵r计算节目-节目-相似性矩阵w,节目-节目-相似性矩阵w表示为:
式中,wij表示节目itemi与节目itemj的相似性;
取出两个节目各自观看的所有用户对其的评分,并取其中公有的用户对它们的评分来计算两个节目的相似性;具体数学化的表示如下:
其中,uij表示既观看了itemi又观看了itemj的用户,|uij|表示既观看了itemi又观看了itemj的用户数目,
c、根据用户-节目-评分矩阵r和节目-节目-相似性矩阵w计算用户节目偏好矩阵p,偏好矩阵p表示如下:
式中,pui表示算法预测出的用户useru对节目itemi的偏好;
根据用户节目评分数据和节目-节目相似性矩阵w,便可以计算m个用户对所有n个节目的偏好;找到用户useru评分过的与itemi最相似的k个节目的来计算useru对itemi的偏好,具体数学化的表示如下:
其中,nu(i)表示用户评分过的节目中与itemi最接近的|nu(i)|个用户,|nu(i)|≤k,λ=100为平滑参数,k为最近邻个数;
d、形成对用户的top-n推荐列表结果l:根据用户偏好矩阵p,获得推荐列表结果l,具体数学化的表示如下:
其中,top-n(pui)表示取用户useru偏好pui的top-n;
e、对算法进行离线评估,优化算法模型:采用均方误差来衡量预测效果的优劣,其数学化表示如下:
采用根据rmse采用单一变量分析法,来调整步骤a到步骤d中涉及的参数,以使算法推荐效果离线最优;
f、实现对用户的个性化推荐:当模型调试到离线最优状态时,可进行上线测试,实现对用户的个性化推荐。
本发明较现有技术相比,具有以下优点及有益效果:
(1)本发明基于物品的协同过滤技术,主要分两步进行,首先通过用户物品评分矩阵计算物品与物品之间的相似性,然后利用用户历史评分数据和物品物品相似性矩阵计算用户对其它物品的偏好,物品协同过滤技术主要利用了用户之间的集体智慧来计算物品之间的相似性,进而计算用户对物品的偏好。
(2)本发明首先针对电视端用户历史评分数据较难直接获取,构建了一种打分策略来将用户的观影行为转换为评分数据,然后利用构建的评分数据计算物品与物品相似性,最后实现推荐。
附图说明
图1为本发明的流程示意图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明:
实施例一
如图1所示,一种基于协同过滤的电视终端节目个性化推荐方法,其方法步骤如下:
a、根据用户的历史观影行为构建用户-节目-评分矩阵r;
从采集的观影行为中抽取最近t_day天的用户观影行为作为算法源数据,对算法源数据进行如下两步清洗处理:
a1、去除过于活跃的用户:从t_day天的用户观影行为中统计所有用户的观影情况,取一定比例相对非活跃的用户参与到后续步骤b,一定比例为整个用户所占比x1;其中,活跃用户的活跃度指在t_day天的用户观影行为中统计出的单个用户观看的节目数;
a2、剔除过于热门的节目:从t_day天的用户观影行为中统计所有节目被观看的情况,取一定比例相对非热门的节目参与到后续步骤b;其中,热门节目的热门度指在t_day天的用户观影行为中统计出的单个节目有多少用户观看过;
经过步骤a清洗后的数据有m个用户,用户表示为user,n个节目,节目表示为item,则r表示为:
式中,rui表示用户useru对节目itemi的评分;
其中rui采用如下方式构建:
式中,null表示用户useru未观看节目itemi,c为用户useru对节目itemi观看的总次数,t为节目itemi的总时长,tc表示用户useru每次观看节目itemi的时长,α为收缩因子,
式中,
b、根据用户物品评分矩阵r计算节目-节目-相似性矩阵w,节目-节目-相似性矩阵w表示为:
式中,wij表示节目itemi与节目itemj的相似性;
取出两个节目各自观看的所有用户对其的评分,并取其中公有的用户对它们的评分来计算两个节目的相似性;具体数学化的表示如下:
其中,uij表示既观看了itemi又观看了itemj的用户,|uij|表示既观看了itemi又观看了itemj的用户数目,
c、根据用户-节目-评分矩阵r和节目-节目-相似性矩阵w计算用户节目偏好矩阵p,偏好矩阵p表示如下:
式中,pui表示算法预测出的用户useru对节目itemi的偏好;
根据用户节目评分数据和节目-节目相似性矩阵w,便可以计算m个用户对所有n个节目的偏好;找到用户useru评分过的与itemi最相似的k个节目的来计算useru对itemi的偏好,具体数学化的表示如下:
其中,nu(i)表示用户评分过的节目中与itemi最接近的|nu(i)|个用户,|nu(i)|≤k,λ=100为平滑参数,k为最近邻个数;
d、形成对用户的top-n推荐列表结果l:根据用户偏好矩阵p,获得推荐列表结果l,具体数学化的表示如下:
其中,top-n(pui)表示取用户useru偏好pui的top-n;
e、对算法进行离线评估,优化算法模型:采用均方误差来衡量预测效果的优劣,其数学化表示如下:
采用根据rmse采用单一变量分析法,来调整步骤a到步骤d中涉及的参数,以使算法推荐效果离线最优;
f、实现对用户的个性化推荐:当模型调试到离线最优状态时,可进行上线测试,实现对用户的个性化推荐。
实施例二
如图1所示,一种基于协同过滤的电视终端节目个性化推荐方法,其方法步骤如下:
步骤一:根据用户的历史观影行为构建用户-节目-评分矩阵r
在采集的电视终端的用户观影历史行为中,通常只能获取一些隐式评分数据,并不能获取一个用户对影片的真实打分,因此需要通过用户的观影行为构建评分矩阵r。
现假定从采集的观影行为中抽取最近t_day天的用户观影行为作为算法源数据。为能有效防止少部分极其活跃用户(可能是潜在的恶意攻击用户)的影响,以及抑制过热节目对个性化推荐结果的影响,需首先对源数据作两步清洗处理:
第一步:去除过于活跃的用户
从t_day天的用户观影行为中统计所有用户的观影情况,取一定比例相对非活跃的用户(取决于用户的基数有多大)参与到后续步骤;其中,活跃用户的活跃度指在t_day天的用户观影行为中统计出的单个用户观看的节目数,观看节目数越多,此用户越活跃。
第二步:剔除过于热门的节目
从t_day天的用户观影行为中统计所有节目被观看的情况,取一定比例相对非热门的节目(例如,90%)参与到后续步骤;其中,热门节目的热门度指在t_day天的用户观影行为中统计出的单个节目有多少用户观看过,观看的用户数越多,此节目越热门。
假定清洗后的数据有m个用户(user),n个节目(item),则r可表示为:
其中,rui表示用户useru对节目itemi的评分。其中rui采用如下方式构建:
式中,null表示用户useru未观看节目itemi,c为用户useru对节目itemi观看的总次数,t为节目itemi的总时长,tc表示用户useru每次观看节目itemi的时长,α为收缩因子,控制多次观看引发的评分增长速度,例如可取α=2,
式中,
步骤二:根据用户物品评分矩阵r计算节目-节目-相似性矩阵w
节目-节目-相似性矩阵w可表示为:
式中,wij表示节目itemi与节目itemj的相似性。
有了物品评分数据之后,便可以“协同”的思想计算节目-节目之间的相似性。其计算思想为取出两个节目各自观看的所有用户对其的评分,取其中公有的用户对它们的评分来计算两个节目的相似性。具体数学化的表示如下:
其中,uij表示既观看了itemi又观看了itemj的用户,|uij|表示既观看了itemi又观看了itemj的用户数目,
步骤三:根据用户-节目-评分矩阵r和节目-节目-相似性矩阵w计算用户节目偏好矩阵p,偏好矩阵p可表示为:
式中,pui表示算法预测出的用户useru对节目itemi的偏好。
根据用户节目评分数据和节目-节目相似性矩阵,便可以计算m用户对所有n个节目的偏好。其计算思想为找到用户useru评分过的与itemi最相似的k个节目的来计算useru对itemi的偏好。具体数学化的表示如下:
其中,nu(i)表示用户评分过的节目中与itemi最接近的|nu(i)|个用户,|nu(i)|≤k,λ=100为平滑参数,k为最近邻个数。
步骤四:形成对用户的top-n推荐列表结果l,根据用户偏好矩阵p,获得推荐列表结果l。基本思想为:取用户useru的top-n的pui作为推荐结果给用户进行推荐。具体数学化的表示如下:
其中,top-n(pui)表示取用户useru偏好pui的top-n。
步骤五:对算法进行离线评估,优化算法模型;有了预测的偏好矩阵p和用户评分矩阵r,便可设计评价指标评估预测效果的好坏。例如,可采用均方误差来衡量预测效果的优劣。数学化表示如下:
可采用根据rmse采用单一变量分析法,来调整步骤一到步骤四中涉及的参数,以使算法推荐效果离线最优。
步骤六:实现对用户的个性化推荐;当模型调试到离线最优状态时,可进行上线测试,实现对用户的个性化推荐。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。