基于协同过滤算法为电视产品制订个性化推荐

本文探讨了在海量数据背景下,如何利用协同过滤算法进行用户精准营销推荐和相似用户打包推荐。通过用户行为分析、频道节目数据处理、用户标签体系构建,提出基于userCF和itemCF的推荐策略,解决新用户和实时推荐的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 绪论

1.1 背景

在互联网技术日益发展和进步的时代,各种数据呈现井喷式增长状态,仅2017 年“双十一”天猫旗下购买物品所产生的交易额最终定格在 1682 亿元,其中,无线成交额就占据了 90 个百分点。这部分数据十分庞大,但对于当今大数据时代所产生的数据总和来说,却只不过是冰山一角。并且互联网的发展还不仅局限于购物,它已经渗透到了生活的各个方面。那么,该如何在这海量的数据中为用户找到并推荐有价值的信息,这一问题已成为当今大数据时代面临的一个重大挑战。

协同过滤(Collaborative Filtering)是现今推荐系统中应协同过滤用最为成熟的一个推荐算法系类,它利用兴趣相投、拥有共同经验之群体的喜好来推荐使用者感兴趣的资讯,个人透过合作的机制给予资讯相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选资讯。

有优点就有缺点,缺点主要体现在:由于依赖用户的行为,捕捉新视频,实时热点视频能力较弱(即 Item 的冷启动问题);结果由于依赖其他用户的行为,可解释性不强。有时候会发现推荐了一些用户不可理解的内容,著名的例子就是推荐中的“哈利波特”问题。运营编辑人员无法显性的干预推荐结果,对于强媒体属性的公司,这种支持强干预、抗风险能力是必须的。

1.2 问题重述

问题一:产品精准营销推荐

利用附件 1 中的收视回看信息及点播信息中的用户行为,分析用户的收视偏好。例如喜欢看哪一类的节目,家中成员有哪些,然后为附件 2 的产品进行分类打包推荐。

问题二:相似用户的电视产品打包推荐

构建用户标签体系和产品标签体系,对相似偏好用户进行分类,为用户贴上标签;对产品进行分类,为产品推荐标签;为每一位用户生成个性化的产品营销推荐方案。

1.3 问题分析

针对问题一,通过观察发现,附件 1 中的四个子表格中,表 1、表 2 是用户频道数据,表 3、表 4,是用户节目数据,所以可以对其分为两类进行处理。

(1)对于表 1、表 2,首先分别计算用户对于每个频道的观看频率,然后对时间数据进行加权,最后整合得到初始数据。其次,利用协同过滤的 userCF 算法,得到用户间的相似度矩阵。

(2)对于表 3、表 4,先对节目进行预处理。对于点播金额和观看时间分别加权,计算用户观看节目的总频率表。然后采用 itemCF 算法,得到每个节目间的相似度矩阵。

(3)根据节目相似度,计算点播用户的节目推荐列表,再根据用户相似度,计算未点播用户的相似推荐列表。

针对问题二,需要为用户推荐节目观看类型标签,进行用户画像,所以要先构建用户及产品标签体系。具体的求解步骤如下:

(1)用附件 2 构建产品标签体系及用户标签体系,得到产品数据标签,并对标签进行编号。

(2)用附件 3 计算入网时长,为用户贴上新老用户标签。

(3)用附件 1 计算每个用户在每个时间段的观看频率,找出频率排名最高的时间段,删除在时间上无明显偏好的用户,为用户贴上时间偏好标签。

(4)结合附件 2 整理得到的数据与用户相似度矩阵,得到用户数据标签列表,以及用户标签推荐列表。

2 模型假设

(1)假设用户观看或回看时长不足 5 分钟的数据,为无效数据。

(2)假设时间段观看的最高频率小于 0.5 的用户,为无明显偏好用户。

(3)假设用户的偏好不改变。

3 符号说明

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4 基于 userCF 算法的用户节目推荐

4.1 思路分析

通过观察发现,附件 1 中的四个表中,分别有用户和频道数据、用户和节目数据,两类数据。对于表 1、表 2,先分别计算各自的观看频率,然后进行整合,利用协同过滤的 userCF 算法,计算用户间的相似度矩阵。对于表 3、表 4,先对节目进行预处理,计算用户观看节目的总频率表,运用 itemCF 算法,计算节目相似度。根据节目相似度,计算点播用户的节目推荐列表,再根据用户相似度,计算未点播用户的相似推荐列表,然后同理计算附件 2,得到总的节目推荐表,其思维导图如下图 4-1:

在这里插入图片描述

注:表 1 指用户收视信息表,表 2 指用户回看信息表,表 3 指用户点播信息表,表 4 指用户单片点播信息表。

4.2 整理数据

4.2.1 用户和频道信息数据处理

观察原始数据发现附件 1 给出的频道号有断层,所以本文对其进行了重新编号(详表见附件 1)。计算出用户收看节目的时长,计算出时间频率,并删除掉收看时长小于或等于 5 分钟的数据,其公式如下:

F t = T t ′ T F_t=\frac{T_t^ \prime}{T} Ft=TTt

(1)

注: F t F_t Ft表示时间频率, T t ′ T_t ^\prime Tt表示该用户观看该节的总时间, T T T表示该用户观看节目的总时间。

运用 Matlab 分别计算用户收视频率表 1(代码见附录 1)、用户回看频率表 2(代码见附录 2):

F w ( F r ′ ) = W c ′ W c F_w(F_r ^\prime) = \frac{W_c^\prime}{W_c} Fw(Fr)=WcWc

(2)

F v ( F r ) = F w ( F r ′ ) + F t F_v(F_r)=F_w(F_r ^\prime)+F_t Fv(Fr)=Fw(Fr)+Ft

(3)

注: W c W_c Wc表示该用户观看节目的总次数, W c ′ W_c^ \prime Wc表示该用户观看该节目的总次数, F v F_v Fv表示收视频率, F r F_r Fr表示回看总频率, F w F_w Fw表示观看频率, F r ′ F_r ^\prime Fr表示回看频率, F t F_t Ft表示时间频率。

在这里插入图片描述
根据经验可以知道,当一个人认为某个频道好看时,就会多次返回观看,所以,本文将表 1 和表 2 整合为一个表,其计算公式如下:

P s = F v + a F r ′ a + 1 P_s=\frac{F_v+aF_r^ \prime}{a+1} Ps=a+1Fv+aFr

(4)

注: F v F_v Fv表示收视频率, F t ′ F_t ^\prime Ft表示回看频率, P s P_s Ps表示用户观看频道总频率, a a a表示权重。

在本文中令a=1,整理得到下表 3:

在这里插入图片描述

4.2.2 计算用户相似度

在协同过滤中两个用户产生相似度是因为他们共同喜欢同一个物品,两个用户相似度越高,说明这两个用户共同喜欢的物品很多。假设每个用户的兴趣都局限在某几个方面,因此如果两个用户都喜欢某一个物品,那么这两个用户可能就很相似,而如果两个用户喜欢的物品大多都相同,那么他们就可能属于同一类,因而有很大的相似度。其计算公式如下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习的数据喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值