目录
- 问题重述
- 模型假设
- 数据预处理
3.1 数据清洗
3.1.1 数据缺失的分析和处理
3.1.2 数据异常的分析和处理
3.2 数据规约 - 数据分析
4.1 电视产品体系图
4.2 收视用户体系图
4.3 用户收视信息分析
4.3.1 用户收视信息
4.3.2 用户回看信息
4.3.3 用户点播信息
4.3.4 用户单片点播信息
4.4 电视产品信息数据分析
4.5 用户基本信息分析
4.6 产品与用户画像
4.7 评分体系 - 推荐系统算法设计
5.1 协同过滤算法
5.1.1 基于用户的协同过滤算法
5.1.2 基于电视产品的协同过滤算法
5.1.3 电视产品的评分预测
5.2 SVD
5.3 KNNBaseline
5.4 Normal Predictor
5.5 Co-Clustering
5.6 Text-CNN
5.6.1 模型框架
5.6.2 卷积层
5.6.3 池化层
5.6.4 模型训练
5.6 推荐算法的融合 - 推荐系统冷启动问题
6.1 双重聚类算法
6.2 用户冷启动问题
6.3 电视产品冷启动问题
6.4 用户的非个性化推荐方案 - 实验设计与分析
7.1 实验设计“泰迪杯”全国数据挖掘挑战赛论文报告
7.2 推荐系统评测指标
7.3 结果对比与分析
7.3.1 问题一结果分析
7.3.2 问题二结果分析
参考文献
1. 问题重述
伴随着互联网技术的快速发展和应用拓展, “三网融合”(因特网、电信网、广播电视网) 为传统广播电视媒介带来了发展机遇,海量信息资源爆炸性增长,当前的世界正处在信息过载的时代。传统广电媒体作为大众信息的主要传播渠道,在面临着互联网媒体挑战的同时也在日趋深入地与之融合。电视互动性不断增强,观众的参与度大幅提升, 原本被动收视的用户开始更多有目的地“使用”电视所提供的资源与服务, 广播电视运营商可以与众多的家庭用户实现信息的实时交互, 使得全方位个性化的产品营销和有偿服务成为现实。然而随着影视节目资源数量的指数型增长,内容日趋多样,面对海量的节目资源,用户想找到自己需要的内容变得越来越困难。因此需要一种智能的、个性化的广电节目推荐系统,帮助用户在信息的海洋中发现自己需要的电视节目产品,同时也使内容的生产、传播更具有目的性和精准性,从而实现价值的最大化。
智能推荐技术应用于电子商务领域起步较早,现已经比较成熟,但是在广电领域应用智能推荐与之相比有很多不同之处,数据集不同,算法的表现也会存在差异。 Joonseok等对影响个性化推荐算法精准度的因素进行了分析,研究表明用户数量、产品数量以及评分矩阵的密集度会影响算法的精准度。电子商务中推荐的商品特征多为结构性数据,比较容易获取并且可以准确描述,例如用户喜欢的品牌、颜色、款式等。广电系统中的用户收视信息特征较难提取,非结构化的数据处理比较困难,数据容量大且相似性度量不好定义。此外用户分层差距较大,收视用户的反馈信息获取不便,视频资源的属性特征无法直观地表达用户的兴趣特征等也增大了广电业务推荐的难度。
本研究的主要内容为:结合某广电网络运营公司给出的部分用户的观看记录信息数据和运营公司的产品信息数据,利用数据挖掘的方法解决以下两方面问题。
1、 产品的精准营销推荐。根据已知的用户观看的收视记录信息数据,采用数据挖掘的方法分析用户的收视偏好,并给出电视节目产品的营销推荐方案。
2、 针对用户的收视信息,对相似偏好的用户通过用户画像方式标签并分类,根据产品标签对电视节目产品进行分类打包, 并给出营销推荐方案。
2. 模型假设
针对实际的电视产品营销推荐系统而言,为了获得精准地营销推荐方案,我们必须
做出如下合理的假设:
1、假设所给的数据集是完备可靠的;
2、假设网络爬虫提取的数据是正确可靠的;
3、假设用户对于电视节目的观看时长与其对该节目的喜爱度成正相关关系;
4、假设电视机的机顶盒所记录时长均为用户的有效观看时间;
5、假设所有用户在推荐方案给出后的一段时间内正常收视电视节目;
6、假设所有电视产品的属性均隶属于我们所设计的产品体系表。
3. 数据预处理
针对题目中所给的原始数据而言,原始数据中存在着大量的冗余信息、不一致信息、非结构化数据和有异常的数据,这将会严重的影响数据挖掘和建模的执行效率,甚至可能会导致数据挖掘的结果出现偏差,因此,必须先对给定的原始数据进行预处理操作,提高数据集的质量,并使得数据能够更好地适应我们的挖掘算法和数学模型。
3.1 数据清洗
数据清洗主要是删除原始数据集中的无关数据、重复数据和有噪声的数据,筛选过滤掉与电视产品推荐主题无关的数据, 并且合理地处理缺失数据和异常数据。
3.1.1 数据缺失的分析和处理
数据的缺失主要包括记录的缺失和记录中某个字段信息的缺失,两者都会造成分析结果的不准确, 使得数据挖掘模型所表现出的不确定性更加显著,模型中蕴含的规律更难把握,导致不可靠的输出。首先,我们利用 Pandas 对附件三中所有的用户信息,共计1329 条记录,进行统计分析。其次,针对附件一中用户的历史收视行为、回看行为和单片点播行为进行正则匹配查找,可以得到含有缺失值的属性的个数,以及每个属性的未缺失值、缺失值与缺失率等,我们发现有 274 个用户不存在任何收视和点播信息, 部分无任何记录的用户见表 3-1 所示。
3.1.2 数据异常的分析和处理
异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称为离群点,异常值的分析也称为离群点分析。异常值分析是检验数据是否录入错误以及是否含有不合常理的数据。忽视异常值的存在是十分危险的,不加剔除地把异常值包括进电视产品推荐数据挖掘的计算分析过程中,对结果会带来不良影响;针对用户收视信息和电视产品信息可以先做一个描述性统计, 然后在经过正则化匹配查找发现多个电视产品节目名称包含冗余的无效信息见表 3-2 所示。 由于题目要求对附件二中的产品进行推荐,因此在对用户点播信息进行处理时,对于未出现在附件二中的产品,我们进行了过滤。充分考虑到电视产品在播放期间的插播广告时间,我们在提取有效数据时,通过相关资料查阅,将广告时长合理地设置为 10 分钟,即过滤掉用户实际观看时长大于附加广告时长后的影片时长的异常值,部分用户观看时长异常值见表 3-3 中粗体所示。
3.2 数据规约
在对用户的收视和点播行为的大数据集上进行复杂的数据分析和挖掘将需要非常多的计算时间,数据规约能够产生更小的但保持原始数据完整性的新数据集,提高推荐系统的准确性,大幅度缩减数据挖掘所需的时间,有效降低存储数据的成本。因此,在规约之后的数据集上进行分析和挖掘将会更加有效率。
譬如,在以用户为粒度,对附件一中的收视信息和点播信息进行统计分析时发现, 大量用户针对某一电视节目存在集数观看或重复观看信息,我们为了后期的数据挖掘处理方便,将存在多集数观看的电视剧或者别的电视产品节目均归类为 1 条有效的电视产品节目记录,并针对该用户对电视节目的观看时长和观看次数进行求和统计。 附件一中用户单片点播信息共计 38010 条记录,经过数据规约处理后,共计 3627 条有效信息,包括 352 个用户对 527 种电视节目产品的点播记录。 同样对附件二中的电视节目产品进行规约化处理,原附件二中电视节目产品共计 18480 个, 对电视节目产品归一化后得到共计 2123 个电视节目产品。
具体处理方式以附件一中用户号为 11087 的用户的点播行为举例说明,原始数据中共 323 条该用户的点播行为信息,经过规约与标签处理后,压缩为 16 条有效信息,如图 3-1 中的数据所示,该数据格式可以为接下来的数据挖掘工作提供更加有效的信息。
4. 数据分析
4.1 电视产品体系图
根据规约处理后的数据集,我们将电视产品信息进行分类,产品的基本特征主要分为电视剧、电影、综艺、少儿、新闻、科教和体育,共 7 大类;电视产品的适用人群主要分为老人、儿童、青年、男性和女性,共 5 类。 详细的产品体系如图 4-1 所示。
4.2 收视用户体系图
根据规约处理后的数据集, 我们通过附件一中的用户的收视信息, 建立了收视用户体系表。 该收视用户体系主要分为基本特征和收视偏好两大类。 其中, 用户的收视偏好主要分为娱乐、生活和教育; 基本特征主要划分为家庭成员和观看时间段。 详细的收视用户体系如图4-2所示。
4.3 用户收视信息分析
4.3.1 用户收视信息
针对所提供的用户收视信息表进行分析,该表提供的信息一共包含六项,分别为机顶盒设备号,统计日期,频道号,频道名和收看开始与结束时间,共计 361963 条记录。
图 4-3 中横轴( X 轴)表示用户所观看的电视频道,纵轴(Y 轴)表示相应的用户号,竖轴( Z 轴)表示用户的观看电视节目的时长,不同的颜色分别表示不同的用户。总体而言,此图表示用户观看电视频道的总观看时长。图 4-3 中的用户和频道只是节选了附件一的“用户收视信息”中几个具有代表性的用户和频道作为示例, 柱形图的柱子越高, 就表示用户观看的时间越长, 从图中可以直观地看出“翡翠台”、 “湖南卫视”、 “中央少儿”和“优漫卡通”的总体收视时长都偏高, 可以反映出这几个电视频道比较受广大收视用户的青睐。
4.3.2 用户回看信息
图 4-4 的横轴(X 轴)表示被用户回看的电视频道,其纵轴( Y 轴)表示相应的用户号,竖轴( Z 轴)表示用户的观看电视频道的总时长,不同的颜色代表不同的用户。此图表示的是用户的回看信息,即不同的用户回看不同的频道时所花费的时间。由于附件一中“用户回看信息”的用户较多, 同时电视的频道号也较多不便全部列举, 因此, 在此只选取了几个具有代表性的用户收视信息进行分析。 从图中可以直观看出, 对于“东方卫视”、 “浙江卫视”、 “湖南卫视”和“江苏卫视”等几个电视频道用户回看较为突出, 这些频道备受用户的青睐,可以考虑作为热门的电视节目频道。
4.3.3 用户点播信息
为了针对性地分析付费用户的电视节目点播行为,设计出较为精确的电视产品推荐营销方案, 我们对“用户点播信息”中的不同用户的付费状况进行了分析。 表 4-1 中列举了附件一中的“用户点播信息”中的所有用户在电视点播上的消费总金额, 即每个用户在点播电视节目方面所花费的金额, 总消费金额大于 100 的用户在表中用粗体显示,总消费金额大于 50 小于 100 的用户在表中以加粗带下划线显示。 表 4-1 中将总金额从高到低依次递减排序,排名越靠前的用户,其消费水平也就越高,即更有意愿对点播的电视产品付费,当进行个性化推荐的时候可以重点关注此类用户。
4.3.4 用户单片点播信息
图4-5中展示了附件一中的用户单片点播信息,图4-5中横轴( X轴)表示用的点播的电视节目,纵轴(Y轴)表示相应的用户号,竖轴( Z轴)表示用户对于电视节目的观看时长,不同的颜色用于区分不同的用户,由于数据表中观看信息记录较多,因此,我们只抽取了其中一部分具有代表性的用户点播信息进行示例展示。如图4-5所示,图中的柱子越高, 就代表用户的收看时间越长, 例如对于10001用户而言, 其观看“超时空男臣”、“寄生兽”、 “奔跑吧”时长相对较长; 用户10013观看“贝肯熊”和“秦时丽人明月心”的观看时长较长; 用户10028观看“樱桃小丸子”的收视时长偏高等。 这些细节信息的抽取非常有必要,可为我们对用户画像提供可识别的特征,精准设计电视产品推荐方案提供支撑。
4.4 电视产品信息数据分析
本节针对给出的“附件二: 电视产品信息数据”表进行数据预处理, 该表包含标识、正题名、创建日期、导演、演员、出品年代、内容描述、总集数、分类名称、连续剧分类、声道语种和地区参数共12类信息,共计2123条记录,我们针对电视产品营销推荐系统, 通过特征抽取的方法, 获得2类关键特征。 我们对“正题名”、 “总集数”两类特征进行“泰迪杯”全国数据挖掘挑战赛论文报告分析, 得出用户评分依赖集数, 同时根据“正题名”爬取到一二三级标签, 可以通过标签对产品进行分类,具体结果见表4-2所示。例如表中名侦探柯南, 775集,我们通过网络爬虫获得的一二三级标签分别为“基本特征”、 “动漫”和“少年|少儿”。
4.5 用户基本信息分析
本节针对给出的“附件三: 用户基本信息”表进行数据预处理, 该表包含用户号、 业务品牌、用户状态、状态改变时间、预存款、套餐、销售品、资费、入网时间、销售品生效时间、销售品失效时间、机顶盒编号共12类信息,共计1329条记录,我们针对电视产品营销推荐系统, 通过特征抽取的方法, 获得“用户号”、 “设备号”两类关键特征, 通过这两类关键特征编写出数据字典, 见表4-3所示。 例如表中用户号为“11183”的用户,“泰迪杯”全国数据挖掘挑战赛论文报告其机顶盒编号为“11284”, 这样就能够把用户的用户号和机顶盒号进行关联, 为其它附件进一步的数据分析工作做支撑。
4.6 产品与用户画像
用户画像是根据用户人口统计学信息、社交关系、偏好习惯和消费行为等信息而抽象出来的标签化画像。 构建用户画像的核心工作即是给用户贴“标签”, 而标签中部分是根据用户的行为数据直接得到,部分是通过一系列算法或规则挖掘得到。对产品和用户进行画像可以实现对产品和用户的分类,网络爬虫技术则是解决产品及用户画像的一个有效手段。网络爬虫也称网络蜘蛛,或网络机器人。它为搜索引擎从万维网上下载网页,并沿着网页的相关链接在Web中采集资源,是一个功能很强的网页自动抓取程序,也是搜索引擎的重要组成部件,它的处理能力往往决定了整个搜索引擎的性能及扩展能力等。
针对清洗后的附件一,我们获取了所有收视频道24小时各时段的播放节目类型信息,利用该信息及用户体系表对收视信息表中的所有用户贴标签,确定各用户的收视偏好及家庭成员,实现用户分组。针对清洗后的附件二,我们采用网络爬虫技术和产品体系表对附件二中的产品贴标签,利用Python及第三方库Beautiful Soup4 v4.6.0对百度视频进行电视节目产品的信息抓取,从而实现对产品的分类打包。通过对附件一及附件二中产品及用户画像,不仅解决了用户分组及产品打包要求,同时可以为用户及产品的冷启动问题提供有效数据信息支撑。
4.7 评分体系
我们用的是隐性评分数据预处理系统主要对数据进行筛选和打分,对节目推荐系统输出节目评分矩阵。目前用户对于节目的评分值常用方法有两种: (1)显式评分:用户主动提交自己对于节目的喜好,一般是在注册时进行问卷式调研或者在观看之后让用户填写评,因为很多用户并不习惯主动评分,还有些用户因为抗拒感而胡乱评分,这些因素都会导致错误的推荐结果。 (2)隐式评分:根据收集用户已经收看的节目行为数据进行建模,得到用户对于节目的喜爱程度预测。
针对所给数据分析后可知,电视用户对于节目评分的影响因素主要以下几点: (a)电视观看时间,这是主要的影响因素,观看时间很大程度代表了用户的喜好程度。当然这里的时间必须归一化处理,最终采用节目观看时间占总时间的比例。 (b)节目观看频率,观看频率是最重要影响因素,观看频率可以一定程度上体现出用户对该产品的喜好程度。
针对需要提供附件二中产品的推荐方案的要求,我们在对附件一中用户点播信息数据进行处理时,主要考虑包含附件二中产品的有效点播信息,因为附件一中点播的电视节目产品信息均来自附件二。本文采用隐式评分系统,根据用户点播信息可知,电视产品主要分为电视剧、电影、综艺、少儿和科教五大类别。不同的电视产品点播频率受产品总集数、是否正在热播等因素的影响。定义 U i , j U_{i ,j} Ui,j 为用户 i i i 对电视节目产品 j j j 的观看时长,观看频率为 ω \omega ω,本文采用基于电视节目的观看频率与平均观看时长作为得分的测度指标更具有客观性。 我们根据用户 i i i平均观看时长 U h U_{h} Uh与电视产品节目j时长 T j T_{j} Tj的比值 α i , j \alpha_{i,j} αi,j ,将收视用户对于不同电视节目产品的评分划分为5个分数等级,记 S c o r e ( i , j ) Score (i,j) Score(i,j) 为用户 i i i 对电视节目产品 j j j 的评分, 收视用户的隐性评分公式见(4-1)和(4-2)所示:
α i , j = 1 ω T j ∑ σ = 1 ω ⋃ i , j s i g m a \alpha_{i,j}=\frac{1}{\omega T_{j}} \sum_{\sigma=1}^\omega\bigcup_{i,j}^{sigma} αi,j=ωTj1σ=1∑ωi,j⋃sigma
S c o r e i , j = { 1 , 0 < α i , j ≤ 0.2 2 , 0.2 < α i , j ≤ 0.4 3 , 0.4 < α i , j ≤ 0.6 4 , 0.6 < α i , j ≤ 0.8 5 , 0.8 < α i , j ≤ 1.0 Score_{i,j} = \begin{cases} 1,0<\alpha_{i,j} \le0.2\\ 2,0.2<\alpha_{i,j} \le0.4\\ 3,0.4<\alpha_{i,j} \le0.6\\ 4,0.6<\alpha_{i,j} \le0.8\\ 5,0.8<\alpha_{i,j} \le1.0\\ \end{cases} Scorei,j=⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧1,0<αi,j≤0.22,0.2<αi,j≤0.43,0.4<αi,j≤0.64,0.6<αi,j≤0.85,0.8<αi,j≤1.0
5. 推荐系统算法设计
针对电视产品的推荐系统,其用户数据经过清洗之后可以整理成一个User-Item标准矩阵。矩阵中每一行代表一个用户,而每一列则代表一个电视节目。若用户对电视节目有过评分,则矩阵中处在用户对应的行与电视节目对应的列交叉的位置表示用户对电视节目的评分值,相应的该User-Item矩阵被称为评分矩阵。
图5-1中的散点代表有相应用户对电视产品进行评分,根据图5-1可以明显看出评分矩阵的数据是非常稀疏的,图中大量空白处表示用户还没有对电视节目做出评价,而推荐系统最终的目标就是对于任意一个用户,预测出所有未评分电视节目的分值,并按分值从高到低的顺序将对应的电视节目推荐给用户。
5.1 协同过滤算法
推荐系统应用数据分析技术,找出用户最可能喜欢的东西推荐给用户,现在很多电子商务网站都有这个应用。 Goldberg 等[1]于 1992 年提出了协同过滤(Collaborative Filtering, CF)的概念,最初应用在 TapestrySystem 上过滤对用户有用的电子邮件。 经过近 20 年的发展,协同过滤已成为智能推荐领域的重要算法。基于协同过滤的推荐系统,主要依据的是用户或者项目之间的相似性,通过将用户和其他用户的数据进行对比来实现推荐的。基于协同过滤的推荐系统用可以分为两类:( 1)基于用户的协同过滤(Userbased CF)推荐系统,主要依据的是用户的历史行为数据挖掘获取知识,并对这些数据进行度量和打分,再根据目标用户的偏好即用户与用户之间的相似性,找到与目标用户兴趣相似的用户群体并将该群体感兴趣的内容推荐给目标用户,为目标用户提供定制化服务;( 2)基于项目的协同过滤(Item-based CF)推荐系统,主要依据的是项与项之间的相似性,计算目标产品与用户喜欢的或已购买的产品的相似度,将相似度较高的产品推荐给用户。 协同过滤算法流程示意图见图 5-2 所示。
5.1.1 基于用户的协同过滤算法
对于一个特定用户 x x x,首先找到与其相似的一个用户集,这个相似是通过它们的评分(Rating)来判定的,用户的 Likes 和 Dislikes 越相似,他们就越相似。然后推荐这些相似用户集喜欢的 Items 并且预测 x 评分最高的 Items 给用户 x x x。基于用户的推荐算法和基于产品的推荐算法涉及到用户/产品之间的相似度的计算,计算用户间以及电视产品间的相似度选用皮尔逊相关系数方法(Pearson Correlation)来度量用户/产品间的相似度。相比于其他的相关度评价指标而言,对于不规范的评分数据皮尔逊相关度评价能够给出更好的结果。皮尔逊相关系数的计算公式如 5-1 所示,结果是一个在-1 与 1 之间的系数。该系数用来说明两个用户间联系的强弱程度(其中, 0.8-1.0 极强相关; 0.6-0.8 强相关;0.4-0.6 中等程度相关; 0.2-0.4 弱相关; 0.0-0.2 极弱相关或无相关)。
ρ p r e s o n ( i , j ) = ∑ x i y i − n x y ‾ ( n − 1 ) S x S y − n ∑ x i y i − ∑ x i ∑ y i n ∑ x i 2 − ( ∑ x i ) 2 n ∑ y i 2 − ( ∑ y i ) 2 \rho_{preson}(i,j)= \frac{\sum x_i y_i - n \overline{xy} }{(n-1)S_xS_y}- \frac{n \sum x_i y_i-\sum x_i \sum y_i}{
{\sqrt{n \sum{x_i}^2-(\sum x_i)^2}}{\sqrt{n {\sum y_i}^2-(\sum y_i)^2}}} ρpreson(i,j)=(n−1)SxSy∑xiyi−nxy−n∑xi2−(∑xi)2n∑yi2−(∑yi)2n∑xiyi−∑xi∑yi
首先基于用户对电视产品的偏好找到相邻邻居用户, 然后再将邻居用户喜欢的电视产品推荐给当前用户。计算上,就是将一个用户对所有电视产品的偏好作为一个向量来计算用户之间的相似度,找到 k 邻居后,根据邻居的相似度权重以及他们对电视产品的偏好,预测当前用户没有偏好的未涉及的电视产品,计算得到一个排序的电视产品列表作为推荐,基于用户的协同过滤见图 5-3 所示。
但是 User-based CF 算法对于电视节目推荐存在两个问题:(1)数据稀疏性。针对成百上千个不同电视产品的推荐系统一般有非常多的电视节目,收视用户可能观看的其中很少一部分电视节目,不同收视用户之间付费的电视产品重叠性较低,导致算法无法精准找到收视用户的邻居,即偏好相似的用户。( 2)算法扩展性。最近邻居算法的计算量随着收视用户和电视节目数量的增加而增加,不适合数据量大的情况使用。
5.1.2 基于电视产品的协同过滤算法
基于电视产品的协同过滤的原理和基于用户的协同过滤类似,只是在计算邻居时采用各种电视产品进行计算,而不是从用户的角度,即基于用户对产品的偏好找到相似的电视产品,然后根据用户的历史偏好,推荐相似的电视产品给用户,见图 5-4 所示。从计算的角度看,就是将所有用户对某个电视产品的偏好作为一个向量来计算各种电视产品之间的相似度,得到电视产品的相似产品后,根据用户历史的偏好预测当前用户还没有表示偏好的电视产品,计算得到一个排序的产品列表作为推荐。
从表 5-1 中可知, User CF 更适合用于个性化新闻推荐,个性化新闻推荐更加强调抓住新闻热点,热门程度和时效性是个性化新闻推荐的重点。 Item CF 更适合用于在图书、电子商务和电视产品方面的个性化的推荐,比如亚马逊、豆瓣、 Netflix 和广电产品打包推荐中, Item CF 则能极大地发挥优势。
5.1.3 电视产品的评分预测
根据之前基于Item CF计算好的电视产品之间的相似度,对未打分的电视产品进行预测标定,本节中提出两种方法可以采用:( 1)加权求和。针对在评分体系中我们对收视用户 u u u给定打分的电视节目的分数进行加权求和,权值为各个电视节目与节目之间的相似度,然后对所有的电视节目的相似度之和求平均,计算得到收视用户 u u u对电视产品 i i i的预测评分,相应的计算公式如5-2所示:
P u i = ∑ a l l s i m i l a r i t e m s S ( i , N ) ∗ S c o r e ( u , N ) ∑ a l l s i m i l a r i t e m s ∣ S ( i , N ) ∣ P_{ui} = \frac{\sum_{all \ similar \ items} S(i,N)*Score(u,N)}{\sum_{all \ similar \ items} |S(i,N)|} Pui=∑all similar items∣S(i,N)∣∑all similar itemsS(i,N)∗Score(u,N)
其中, S ( i , N ) S(i,N) S(i,N)为电视产品i与电视产品N的相似度, S c o r e ( i , N ) Score (i ,N ) Score(i,N) 为我们设定的评分体系下收视用户 u u u对电视产品 N N N的评分。
( 2)回归预测。该方法和方案( 1)的加权求和的方法类似,但回归的方法不直接使用相似电视产品N的打分值 S c o r e ( u , N ) Score (u ,N ) Score(u,N) ,因为用余弦法或Pearson关联法计算相似度时存在一个误区,即两个评分向量可能相距比较远(欧氏距离),但有可能有很高的相似度。如果两个用户都喜欢某个电视产品,因为评分标准选取不同,他们的欧式距离可能比较远,但他们应该有较高的相似度。在这种情况下在根据收视用户原始的相似电视节目评分值进行计算会造成欠佳的预测结果。因此可通过用线性回归的方式重新估算一个新的值 S c o r e ( u , N ) Score (u ,N ) Score(u,N),运用上面同样的方法进行预测,计算 S c o r e ( u , N ) Score (u ,N ) Score(u,N) 的方法如5-3所示:
S ( N ) ∗ = α S ‾ ( i ) + β + ϵ S(N)^*=\alpha \overline{S}(i)+\beta + \epsilon S(N)∗=αS(i)+β+ϵ
5.2 SVD
针对矩阵分解技术,分为有特征值分解(Eigende Composition)与奇异值分解(Singular Value Decomposition, SVD)两种方法。对于特征值分解,由于其只能作用于方阵,因此并不适合分解推荐系统中评分矩阵的情况,因此采用SVD方法。对于奇异值分解,其具体描述为:一个 m × n m\times n m×n的 M M M矩阵,一定存在一个奇异值分解 M = U ∑ V T M=U\sum V^T M=U∑VT ,其中 U U U是 m × n m \times n m×n的正交矩阵, V V V是 n × n n\times n n×n的正交矩阵, ∑ \sum ∑是 m × m m \times m m