论文部分内容阅读
随着互联网建设的不断发展,加之网络视频运营商与传统电视媒体的相互合作,网络视频市场规模逐年增长。网络用户在享受形式和内容丰富多样的视频盛宴的同时,也在不断被大量冗余、无效的信息冲击。这些庞大的数据信息远远超出了用户能承受的程度,严重干扰了用户对自身所需信息的正确选择,导致信息利用率非常低,甚至带给用户困扰和反感。推荐系统作为解决“信息过载”问题的有效手段,这些年来在得以迅速发展的同时也面临着不少挑战,例如数据规模庞大以及算法设计复杂导致推荐算法的执行效率不高、数据稀疏性以及冷启动问题导致推荐效果不好等等。通过研究目前常用的几种推荐算法,分析算法各自存在的优缺点,旨在对这些算法进行改进和优化,从而改善系统推荐效果。首先,通过分析MovieLens开源数据集的数据结构特征,确定本系统的离线推荐功能采用协同过滤算法进行实现,底层计算引擎基于分布式大数据计算平台Apache Spark。通过扩展Spark的自动分区功能并自定义数据分块方式,减少集群中各节点间的数据传输以及笛卡尔乘积的计算量,保证数据在各节点上的均匀散列以及执行任务的均匀分布,最终使改进后的协同过滤算法比改进前的算法在执行速度上有明显提升,且预测准确度几乎不变。其次,针对用户在推荐系统中的评分行为,设计一种实时推荐算法。该算法基于电影标签信息,融合TF-IDF算法进行电影相似度的计算,同时引入时间权重影响因子,构造出用户兴趣度公式,基于该公式为用户产生实时推荐列表。在Apache Flink流式计算平台上进行算法仿真后的结果显示,该算法中的时间权重因子对实时推荐算法的准确率和召回率存在影响,且在时间权重因子λ取值为0.25,α取值为0.6时,两个指标取到极大值,即此时的推荐效果最好;基于Flink实现实时推荐算法的算法执行效率也比基于Spark Streaming有明显提升。最终,基于上述推荐算法,选用目前主流的应用开发框架以及相关组件实现了一套用户界面友好的电影推荐系统,整个推荐系统主要包括数据加载模块、离线推荐模块、实时推荐模块以及系统业务模块四部分。