目录
一、 引言
1.1 背景
1.2 研究内容
1.3 研究思路
二、数据预处理
2.1 附件 1:用户收视信息
2.1.1 用户收视信息
2.1.2 用户回看信息
2.1.3 用户点播信息
2.1.4 用户单片点播信息
2.2 附件 2:电视产品信息数据
2.3 附件 3:用户基本信息
三、研究方案及实施
3.1 问题一
3.1.1 基于用户的协同过滤
3.1.2 基于电视产品的协同过滤
3.1.3 方案实施及测试
3.2 问题二
3.2.1 构建用户标签体系(用户画像)
3.3.2 构建产品标签体系
3.2.3 电视产品分类推荐
四、电视套餐建议
4.1 分析套餐结构
4.2 对内容相同的套餐进行合并归类
4.3 形成用户数据表
4.4 实施关联规则
五、 总结
5.1 结论
5.2 回顾与展望
参考文献
一、 引言
1.1 背景
随着技术的发展,宽带网络和电视机顶盒的普及,一方面越来越多的家庭对机顶盒电视实际上有了更高的需求,体现在要求简化对电视节目的检索操作,快速获得感兴趣的资源;另一方面,电视服务供应商也希望有效挖掘出用户需要和感兴趣的资源、信息,实现大数据分析,形成个性化的产品营销及有偿服务。
个性化推荐是数据挖掘与分析的主要应用之一,关于个性化推荐,目前常用的算法有基于内容的推荐、基于协同过滤的推荐以及混合型推荐系统。其中协同过滤又有多个子类别,主要包括基于用户的协同过滤、基于物品的协同过滤及基于模型的协同过滤等。目前,个性化推荐系统已广泛运用于电子商务网站、社交应用及视频、新闻门户网站中。
从本质上而言,电视节目的推荐与其他节目领域具有相似性,然而它有其他推荐领域不具备的特点。一是电视节目通常面向家庭,不同的家庭成员兴趣偏好可能不同,造成推荐结果的不准确;二是电视节目往往具有时效性,除去用户的自身兴趣,用户常被较新的电视节目所吸引;三是电视节目具有延续性,同名的电视节目可能有多集多系列。
1.2 研究内容
本文主要利用提供的收视数据,针对电视节目推荐的特点:
(1)基于用户点播观看行为,利用基于用户的协同过滤与基于物品的协同过滤方法为用户推荐电视产品。
(2)基于用户收视、回看及点播观看行为进行用户画像,给用户打上分类标签。
(3)利用产品信息及网络爬虫获取的数据对产品进行分类打包,结合用户画像,给出营销推荐方案。
(4)对分类后的用户信息做关联规则,为电信公司的电视套餐推荐提供一定的建议。
1.3 研究思路
为了实现研究内容,本小组首先对数据进行分析,从用户和产品两个角度讨论如何实现标签化。我们认为用户的收视行为能够侧面反映出用户的性别、年龄等特征,能通过用户的收视时段等特征判断用户的家庭构成,电视产品也有针对某类用户的特性。为此我们也在网页、论文库中找到一些资料辅佐我们的看法。
同时,本小组讨论认为在本题中,使用基于内容的协同过滤算法难度较大,首先是补全数据需要大量的时间,其次文本分析的复杂度大,电脑可能难堪重任。最后我们选择基于用户和基于物品的协同过滤算法,利用用户的历史数据,同时使用用户的平均打分补全空缺值消除冷启动的影响。
由于现有的套餐区分度不高,本小组希望通过关联规则发现不同画像与套餐内容之间的关系,给电信公司的套餐设置与推荐以一定的启发。
二、数据预处理
2.1 附件 1:用户收视信息
2.1.1 用户收视信息
(1)对频道名进行去除重复值操作,得到已有收视记录的电视台,将频道号与频道名对应。
(2)利用收看开始时间与收看结束时间计算收视时长,添加到原表中。
(3)除去收看时长大于 16 小时的收视记录。(由于只关电视忘关机顶盒也被记录在收视记录中,但对于用户而言这段时间的收视是无效的;采用 16 小时是假设用户除了基本生理需求外都在看电视)
(4)为收看开始时间与收看结束时间打上星期号的标签。
(5)在“电视猫”网站上获取各电视台节目播放表,统计播放星期、开始时间、节目名称及栏目类型。
2.1.2 用户回看信息
(1)去除表中的重复数据。
(2)利用回看开始时间与回看结束时间计算回看时长。
(3)除去收看时长大于 16 小时的收视记录。
(4)为回看开始时间与回看结束时间打上星期号的标签。
2.1.3 用户点播信息
(1)删除节目名称中含有乱码(&、*、?等符号)的节目。
(2)去除题名相同的节目名称的集数(如“超时空男臣(05)”改为“超时空男臣”)。
2.1.4 用户单片点播信息
(1)删除影片名称中含有乱码的节目。
(2)去除题名相同的影片名称的集数。
(3)计算用户观看时长。
(4)去除重复值。
(去除重复值后数据共有 34187 条、去除名称乱码的异常数据后有 34181条)
2.2 附件 2:电视产品信息数据
提取分类名称、连续剧分类、字母语种、声道语种、地区参数字段作为用户画像和产品分类参考字段。
(1)将连续剧分类标准化并补充缺失值。
(2)在“爱奇艺”网站中利用爬虫抓取综艺、纪录片、动漫、电影及电视剧标签信息,做已有产品信息的参照。
2.3 附件 3:用户基本信息
(1)以 2017/10/31 作为基准时间(所给收视记录按时间排序最后一天的时间)。利用基准时间与状态改变时间计算用户使用当前套餐时间。
(2)以基准时间与入网时间计算用户入网时长。
(3)对用户使用的套餐、销售品及资费做处理,得到当前业务套餐结构。以上过程大部分可以使用 excel 中的函数直接得到结果。对数据进行预处理后的结果见附件:预处理后数据。
三、研究方案及实施
3.1 问题一
本题要求识别用户偏好并为用户推荐附件 2 中的产品。经思考,小组决定主要使用“用户点播信息”与“用户单片点播信息”表。两表的不同之处在于前者需要用户单独付费,而后者包含在用户套餐中,无须单独付费。本题分别对“用户点播信息”及“用户单片点播信息”构建协同过滤算法,最后为每位用户推荐10 个电视产品。
3.1.1 基于用户的协同过滤
1.构建用户-节目评分矩阵
分别为“用户点播信息”及“用户单片点播信息”构建评分矩阵,如表 1 所示。
其中 User 即电视用户,Program 即用户收看的电视节目, R i , j R_{i,j} Ri,j表示用户对观看节目的偏好打分。在“用户点播信息”表中,, R i , j R_{i,j} Ri,j为用户收看对应节目的频次;在“用户单片点播信息”表中,, R i , j R_{i,j} Ri,j为用户收看对应节目的时长。
2.计算相似度
计算用户间的相似度有很多种方式,本文采用皮尔森相关系数计算两个用户之间的相关性,公式如下:
s i m ( u , v ) = ∑ i ∈ I u , v ( R u i − R u ˉ ) ⋅ ( R v i − R v ˉ ) ∑ i ∈ I u , v ( R u i − R u ˉ ) 2 ⋅ ∑ i ∈ I u , v ( R v i − R v ˉ ) 2 sim(u,v)=\frac{\sum_{i \in I_{u,v}}(R_{ui}-\bar{R_{u}})\cdot(R_{vi}- \bar{R_v})}{\sqrt{\sum_{i \in I_{u,v}}(R_{ui}-\bar{R_u})^2} \cdot \sqrt{\sum_{i \in I_{u,v}}(R_{vi}-\bar{R_v})^2}} sim(u,v)=∑i∈Iu,v(Rui−Ruˉ)2⋅∑i∈Iu,v(Rvi−Rvˉ)2∑i∈Iu,v(Rui−Ruˉ)⋅(Rvi</