协同过滤算法的电视节目推荐策略

2020-03-27 11:38陈佳炜黄丽婷
关键词:列表电视节目物品

陈佳炜,黄丽婷,林 耿

(闽江学院 数学与数据科学学院,福建 福州 350108)

通信作者:林耿(1981—),男,福建莆田人,教授,博士,主要研究方向为优化理论与算法、智能计算等,E-mail:lingeng413@163.com。

随着互联网的快速发展,海量的信息涌现在用户面前,在电视节目推荐问题上,虽然满足了用户对电视节目的基本需要,但用户需要花费大量时间来获取自己感兴趣的电视节目,这就是信息超载。目前,大多数用户需要使用关键词来搜索自己感兴趣的节目,但由于关键词并不能完全展现节目的信息,所以不能满足用户对于节目多元化和个性化的需求。

许多基于个性化信息的推荐策略已经被应用于各种推荐系统[1]。在电视节目推荐方面,Yu等[2]使用统计方法,Ehrmantraut等[3-4]提出了单级联聚类算法,Zhang等[5]设计了一种模糊兴趣系统算法,Ardissono等[6]提出了Bayes网络算法。以上这些方法已经被应用到很多领域。2012年,Choi等[7]提出了一种基于类型的相关改进方法,并使用GroupLens电影数据库进行了仿真实验。2016年,Wei等[8]利用社会标签和评分提出了一种电影推荐方法。这些方法并没有考虑物品的多属性问题和用户多偏好问题,然而这两点对于推荐准确度来说起着至关重要的作用。

以用户行为数据和电视节目的推荐策略为研究对象,本研究提出了一种个性化推荐方法。以家庭为基本单位,数字电视中产生的记录反映了一个家庭的收视特征,而家庭中每个成员的偏好存在较大的差异,所以对记录进行统一处理对于推荐节目来说是不准确的。因此,在算法中加入对物品属性和用户偏好因素的综合考量,能够更加准确地进行节目推荐。

1 传统的协同过滤算法

协同过滤的主要思想是利用之前的大众行为,预测当前目标用户对于物品的偏好程度。算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐类型相似的商品。协同过滤推荐算法分为两类,分别是基于用户的协同过滤算法[9]和基于物品的协同过滤算法[10]。

1.1 基于用户的协同过滤算法

基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜好程度,并且对喜好程度进行打分,再根据不同用户对相同商品的态度和偏好程度计算用户之间的相关度,然后在相关度高的用户之间进行相互推荐。

假设矩阵R=(riα)m×n表示用户和节目之间的关系,若用户ui(i=1,2,…,m)已看过节目oα(α=1,2,…,n),则riα=1,否则riα=0。因此,通过矩阵R之间的关系,可以计算出用户ui和用户uj之间的相似值Sim(ui,uj),可表示为

(1)

根据式(1)计算给用户uj推荐的节目oα的推荐指数,可表示为

(2)

1.2 基于物品的协同过滤算法

基于物品的协同过滤算法不是根据用户对于物品内容的喜好程度计算物品之间的相似度,而是通过分析用户的行为记录来计算用户的相似度。该算法认为物品A和物品B相似的依据是因为喜欢物品A的用户也喜欢物品B。

利用矩阵R计算节目oα和节目oβ之间的相似性,计算公式为

(3)

根据式(3),计算为用户uj推荐节目的推荐指数为

(4)

2 算法的改进

在上述协同过滤算法中,可增加考虑物品属性和家庭用户偏好来提高推荐结果的准确性。依照家庭用户行为数据对物品属性和家庭用户偏好进行推荐,在计算相似度时,需要惩罚两个影响因子——物品属性和用户偏好,生成兼顾家庭用户偏好和物品属性的多样化候选推荐列表,在对推荐列表进行多样化处理的同时可满足家庭中不同成员的个性化需求。

2.1 基于物品属性的推荐

基于物品属性的推荐是基于物品的多种属性来计算物品之间的相似度。不同物品包含多种不同属性,例如适用人群、栏目内容、播放时间、剧场等。

针对电视频道,可将观看人群按年龄和性别分为儿童、中青年、老年或男性、女性等,不妨设有s种,分别用c1,c2,…,cs表示,可用邻接矩阵G=(gαγ)n×s表示节目和适用人群之间的关系。若电视节目oα属于类型cγ(γ=1,2,…,s),则gαγ=1,否则gαγ=0。可得

(5)

针对电视频道,可根据栏目内容分为戏剧、动画、美食等,不妨设有p种,即e1,e2,…,ep,矩阵H=(hαζ)n×p可表示两者之间的关系。若eζ(ζ=1,2,…,p)是节目oα的播放时间段,hαζ=1,否则hαζ=0。可得

(6)

针对电视节目,可根据剧场分为都市、情感、古装、动作等,不妨设有k种,分别用d1,d2,…,dk表示,可用邻接矩阵B=(bαη)n×k表示节目和剧场之间的关系。若电视节目oα属于类型dη(η=1,2,…,K),则bαη=1,否则bαη=0。可得

(7)

类似地,也可以推出电视节目和播放时间之间的关系。不妨设有q种播放时间段,分别用α1,α2,…,αq表示,则矩阵V=(vαω)n×q可表示两者之间的关系。若αω(ω=1,2,…,q)是节目oα的播放时间段,则vαω=1,否则vαω=0。可得

(8)

基于属性将任意两个节目之间的相似度定义为

Sim(oα,oβ)=Simc(oα,oβ)+Simd(oα,oβ)+Sime(oα,oβ)+Simα(oα,oβ)。

为了更好地进行对比,对Sim(oα,oβ)进行归一化,得到

(9)

式中:Xmax和Xmin分别是归一化数据集中的最大值和最小值。

因此,基于物品属性计算为用户ui推荐未看节目oα的推荐指数为

(10)

2.2 基于用户偏好的推荐

基于已有方法进行推荐时,利用矩阵R可获取用户观看过的节目,而节目的类型、喜好程度等信息则不可获取。

用户在一段时间内观看节目的频率越高,则认为该用户对此类节目的偏好越大,频度公式为

F(p)=c/C,

(11)

式中:c为观看节目p的时间;C为一段时间的和。

访问时间是决定用户偏好的一个重要指标,访问时间的长短和节目所包含的信息紧密相关,例如导演、出品人、主要演员等。不妨设节目p包含的信息为si(i=1,2,…,n)、观看时长为ti(i=1,2,…,n),则观看时间的公式为

(12)

式中:βi是节目p中包含的信息量;α为节目p的观看时间。

观看时间和节目p中包含的信息量决定用户对于节目的喜好程度:

W(p)=ω·F(p)+(1-ω)·T(p),

(13)

式中:ω为0~1,是调节参数。根据用户的喜好程度W(p)进行节目推荐。

2.3 混合推荐[11]

混合推荐是推荐算法中的一个研究热点。各种推荐算法都有各自的优缺点,而混合推荐是将多种技术进行混合并相互弥补缺点,以达到扬长避短的目的,从而产生更加符合用户需求的推荐。根据应用状况的不同,混合推荐的方法也不尽相同。本研究采用推荐结果组合的混合推荐方法,得到基于物品属性的推荐列表和基于用户偏好的推荐列表,将两张列表的推荐结果混合得到最终的推荐列表,以最终推荐列表的前N项作为最终推荐结果。

3 实验与分析

为了验证前面提出的对于协同过滤算法改善方法的有效性,收集了用户机顶盒3个月的几十万条观看数据为实验数据,由于此数据集过大,故仅选用了2 000个用户的收视数据进行分析。删除数据中特殊线路数据等干扰信息,以9∶1的比例将数据随机划分成两部分,分别为训练集和测试集。

3.1 物品属性

通过深层挖掘用户行为数据中的隐性特征,对用户浏览过的节目进行学习和建模,发现其中包含的特征,并在此基础上形成多维度的用户画像。

因为收集的用户行为数据不是以个人为单位,而是以家庭为基本单位,所以首先将数据以年龄和性别进行分类,如儿童、中青年、老年、男性、女性等,然后按照物品属性进行分类,如体育、财经、生活等,还可以按照用户观看时间段进行分类,如凌晨、早晨、上午等,最后将用户与用户标签库进行配对,给符合条件的用户贴上该类型节目的标签。

3.2 用户偏好

从推荐对象中选择与用户交互项目相似的对象作为推荐结果,改进的算法基于用户的收视偏好,从观看时间长短与节目的多属性这两个维度进行推荐。

对节目数据分类并得到相对应的标签,大致可分为两类:一类是针对剧场爱好,通过爬虫技术获取节目列表在网络上所属的热门分类,如都市、情感等;另一类是针对体育爱好,根据比赛内容可分成足球、冰上运动、高尔夫等。

3.3 推荐效果评估

采用准确率(precision)[12]和召回率(recall)[13]对推荐效果进行评估。推荐准确率取决于推荐正确与错误的数量,以下为准确率计算公式:

(14)

式中:precision为准确率;TP为被模型预测为正的正样本;FP为被模型预测为正的负样本。准确率越高,推荐质量就越高。

召回率同样可以作为验证推荐正确性的指标,召回率计算公式如下:

(15)

式中:recall为召回率;TP为被模型预测为正的正样本;FN为被模型预测为负的正样本。

3.4 实验结果对比

使用改进的协同过滤算法在数据集上进行实验,并与传统推荐算法的计算结果进行对比,用准确率和召回率作为评估标准。

根据准确率方程,分别得到了传统的协同过滤推荐算法和改进后的推荐算法的准确率。图1给出了准确率随召回率升高的变化趋势。结果发现:在相同的召回率下,改进后的推荐算法较传统的协同过滤推荐算法准确率高,证明改进的算法效果较好。

根据图1还可知,在相同的准确率下,改进后的推荐算法召回率高于传统的协同过滤推荐算法,随着准确率的降低,召回率呈现上升的趋势,证明改进后的推荐算法推荐效果得以改善,且推荐的准确性得到了提高,推荐更具个性化和多元化。

图2是改进后的推荐算法和传统的协同过滤推荐算法的ROC曲线图[14],推荐值N分别取3、5、10、15、20、30。

从图2可以看出,改进后的推荐算法曲线较传统的协同过滤推荐算法曲线更接近图的右上角,即改进后的算法AUC值(ROC曲线所覆盖的区域面积)比传统的推荐算法的AUC值大,说明改进后的推荐算法的推荐准确性提高了。

图1 准确率随着召回率的变化Fig.1 Accuracy rate changes image with the change of recall rate

图2 ROC曲线Fig.2 ROC curve

4 结论

为了给用户提供更好的推荐,对用户观看节目的物品多属性和用户多偏好进行了量化和计算,进而对物品属性和用户偏好进行相似度分析,构建了用户画像,从而得到两种改进方法的推荐结果列表。将两个列表进行混合推荐,使推荐效果得到了进一步改善。

猜你喜欢
列表电视节目物品
称物品
学习运用列表法
“双十一”,你抢到了想要的物品吗?
扩列吧
谁动了凡·高的物品
周日广播电视
周五广播电视
周三广播电视
电视节目
列表画树状图各有所长