新媒体环境下的短视频推荐模型及算法研究传媒

推荐系统的开发是具有挑战性的,多种多样的方法被提出来。方法被划分为以下三类:协同过滤[2],基于内容[3],以及融合前两者的混合模型。

基于内容推荐方法的优点是:1)不需要其它用户的数据,没有冷开始[4]问题和稀疏问题。2)能为具有特殊兴趣爱好的用户进行推荐。3)能推荐新的或不是很流行的项目,没有新项目问题。4)通过列出推荐项目的内容特征,可以解释为什么推荐那些项目。5)已有比较好的技术,如关于分类学习方面的技术已相当成熟。缺点是:要求内容能容易抽取成有意义的特征,要求特征内容有良好的结构性,并且用户的口味必须能够用内容特征形式来表达,不能显式地得到其它用户的判断情况。

协同过滤推荐技术是推荐系统中应用最早和最为成功的技术之一。它一般采用最近邻技术,利用用户的历史喜好信息计算用户之间的距离,然后利用目标用户的最近邻居用户对商品评价的加权评价值来预测目标用户对特定商品的喜好程度,系统从而根据这一喜好程度来对目标用户进行推荐。协同过滤最大优点是对推荐对象没有特殊的要求,能处理非结构化的复杂对象,如音乐、电影。

虽然协同过滤作为一种典型的推荐技术有其相当的应用,但协同过滤仍有许多的问题需要解决。最典型的问题有稀疏问题和可扩展问题。

混合模型考虑到了基于内容推荐以及协同过滤推荐两者的不足和缺点,将两者融合。根据具体的混合方式不同,混合模型的性能也有所区别。

国内外各个方向都有涉及推荐系统的研究,有些集中于探索混合算法从而得出更高效的混合模型。例如在论文”OSCAR:anOnlineSCalableAdaptiveRecommenderforImprovingtheRecommendationEffectivenessofEntertainmentVideoWebshop”[5]中,研究人员就提出了一种混合模型,根据用户的行为和数据的具体特征选择最合适的推荐算法给用户。

还有对于目前协同过滤进行改进的,比如在:”SlopeOnePredictorsforOnlineRating-BasedCollaborativeFiltering”[6]中,研究人员提出SlopeOne这种方法。它旨在利用其它用户用户对资源的评分来预测用户对资源的评分。还有些侧重于研究社交网络,从而更好地为协同过滤得出相似的用户,研究结果也表明,朋友之间的兴趣相似度较高,社交网络可以很大程度上帮助推荐系统提升性能。

3推荐方法的初步建立和效果评估

设想一下真实的推荐系统运行场景,我们就会发现这个计算量的巨大以及实施的困难性。

如果是基于协同过滤的算法进行推荐,首先,我们需要维持一张巨大的“用户-视频”评分矩阵,如图2-1所示。仅仅是维持这张表就会占用大量的内存空间。假设我们的评分数据占2字节,1000个用户以及1000个电影的这张表,将占用大约2G的内存空间,更何况目前的短视频网站的用户量以及电影量远远超过这一数目。

对于用户兴趣模型的表示,目前主要有基于关键词的向量空间模型表示法、概率主题模型表示法、基于本体论(Ontology)的概念表示法等。本文中采用的方法以空间向量为基础,之后根据存在问题进一步优化。

要完成分布式计算的功能,我们的用户兴趣模型必须要能支持分布式的工作模式。标签云模型可以很好的实现这一功能。用标签来去抽象出用户的特征值和视频的特征值。标签集是依附在网络内容上用来描述这些内容的关键字集合。近年来,标签集成为了阐释多媒体资源的一种广泛使用的方法。

对于特征项的抽取,常用的有文档频率法,开发法,信息增益法,互信息法以及文档频率等数十种,由于视频网站一般提供自由地标签编辑功能,所以特征项提取这一部分我们不再考虑。

对于标签权值的计算,常见的方法有布尔权重,词项频率权重,TF-IDF权重[8]。本文的权重计算基于TD-IDF权重。

布尔权重表示的优点是计算、查询速度快,但是布尔权重中忽略了可对文档意义起重要作用的词频,对于任意特征项,只统计出现与否,而不关心出现次数。此外,由于在布尔权值中,只有0/1两种权重,无法进行模糊匹配。

与布尔权值法相比,词频权值法精准度有所提升,但是无法体现出低频特征项的区分能力。有些低频词有很强的区分能力,而有些词尽管频率很高,但是几乎没有或者只有很少的区分能力。

因为考虑到词条数目,所以最终权值计算公式如(3-6)所示

我们所提出的模型基于上文所提到的分布式计算模型以及用户兴趣模型,但又对其进行了改进:

考虑到以上的特点,本文提出一种新的分布式计算的方案:客户端计算。把计算的任务交由客户端来进行处理,服务器只做简单的数据传输和操作。这种模式就好比ad-hoc网络对传统通信网络的革新一样,将集中的控制权分布开来。这种方案在更大程度上实现了分布式计算,也更充分地利用了空闲资源,也就把服务器从繁忙的计算中解脱出来。

3.2数据集

推荐算法实验所采用的数据集一般都是从实际业务系统中积累起来的,使得推荐技术学术研究尽量与行业实际情况接轨。目前已有不少实际的业务系统公开了自己采集的数据集供研究者们使用。下面简单介绍两个本文后续章节的实验中采用的数据集,它们在视频推荐技术研究中也最为常用。

(1)Netflix电影评分数据集

Netflix公司在2005年底开启NetflixPrize比赛的同时,公布了用于比赛和学术研究的Netflix电影评分数据集。该数据集包含了Netflix系统从1999开始的6年间记录的近50万用户对17000多部电影的评分数据。系统使用5分评分制,评分值可为:1、2、3、4和5。数字越大则代表用户对电影评价越高。Netflix电影评分数据集包含了一下几个文件:

2、TRAININGDATASET:作为提供给参赛者或者研究者进行推荐算法实验的训练集,包含了用户ID、电影ID和用户评分等关键信息。

3、QUALIFYINGDATASET:未包含评分的测试数据集合,提供给参赛者作其设计系统的评分预测对象。

4、PROBEDATASET:上个数据文件的包含用户真实评分的版本,以让学术研究者对评分预测结果进行准确度评测。

(2)MovieLens数据集

3.3短视频推荐方法

在确定好要使用的数据后,我们采用Matlab来进行模型验证。

为了在Matlab上完成上述,我们必须分步骤地进行,因为数据量实在巨大(视频数据条数10681条,浏览历史个数10000054条)分步骤可以很大程度上减轻计算复杂度。我们的实验分为以下四步骤进行:(1)pre预处理(2)step1完成用户的profile提取(3)step2对用户产生推荐结果。

1、pre预处理。首先,因为MovieLens数据格式是他们固有格式的,我们需要把这些数据导入到Matlab中,以便于后续数据处理。我们将MovieLens的原数据三个文件ratings.dat,movies.dat,tags.dat转换为ratings.mat.movies.mat,tags.mat;接着,我们将tags和movies两张表进行联合在一起,产生movies_tags表格,因为我们的标签是绑定在movie上的;再然后,我们要从电影数据里面抽取实验组所用的实验集,我们通过Matlab的随机数函数产生1000个视频id为实验组视频id。由于视频被划分为了实验组,那么用户的评分数据也就需要将对于对应电影的评分数据纳入实验组中。其余的视频以及评分数据均为训练集。

3、step2对用户产生推荐结果。在这一步中,我们需要将电影的标签向量和用户的标签向量进行余弦相似度计算,从而得出两者匹配分值。由于Matlab丰富的数学计算能力,这个模块很容易实现,之后我们使用简单的排序算法去计算出用户的推荐视频排名。

THE END
1.基于协同过滤算法的电影推荐系统的设计与实现.docx基于协同过滤算法的电影推荐系统的设计与实现摘 要在本文中,我们设计了一个基于用户行为模型的系统,旨在增加电影的数量,计算用户之间的相似度,并实现可以对电影进行信息爬取,向用户推荐相似电影的功能。该系统在基于用户的协作过滤算法中使用欧几里得公式来计算用户之间的相似度,通过该方式可以得到用户之间的相似度,以...https://max.book118.com/html/2022/0610/6104050043004155.shtm
2.还是推荐电影,这次是基于物品的协同过滤用A看过的电影的评分,和其他电影的相似度相乘(红框),然后再把相乘后的结果加和(绿框),得出最后的推荐度。这里可以看到,应该向A推荐《寻龙诀》,和上一篇文章用基于用户的协同过滤算法结果是一致的。 #总结# 推荐算法的几个基本思想: 根据和你共同喜好的人来给你推荐(基于用户的) ...https://www.jianshu.com/p/92ef794d6e2b
3.SparkMLlib系列(二):基于协同过滤的电影推荐系统利用Spark在内存迭代运算、机器学习领域强悍性能的优势,使用spark处理数据挖掘问题就显得很有实际价值。这篇文章给大家分享一个spark MLlib 的推荐实战例子。我将会分享怎样用spark MLlib做一个电影评分的推荐系统。使用到的算法是user-based协同过滤。如果对Spark MLlib不太了解的,请阅读我的上一篇博客。http://www.360doc.com/content/16/1116/17/37466175_607043529.shtml
1.ssm协同过滤算法的电影推荐系统(10145)ssm协同过滤算法的电影推荐系统(10145) 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码+SQL脚本) 配套文档(LW+PPT+开题报告) 远程调试控屏包运行 三、技术介绍 Java语言 SSM框架 SpringBoot框架 Vue框架 JSP页面 Mysql数据库 IDEA/Eclipse开发 四、项目截图...https://blog.csdn.net/m0_72438098/article/details/143893991
2.python协同过滤算法实现电影推荐协同过滤是一种常用的推荐算法,它基于用户的历史行为和其他用户的行为进行推荐。在电影推荐中,协同过滤算法可以根据用户对电影的评分来推荐相似的电影给用户。 下面是一个简单的Python代码实现电影推荐的协同过滤算法: importnumpyasnp# 电影评分数据ratings={'Alice':{'Transformers':3,'Star Wars':4,'The Dark Kni...https://www.ctyun.cn/zhishi/p-332954
3.基于协同过滤算法的电影推荐系统(亮点:智能推荐协同过滤算法...5.1.2 付费电影 付费电影会根据购买的电影类型来进行协同过滤! 5.1.3 协同过滤算法的应用 原始推荐如下: 集成协同过滤算法之后,电影的推荐会随着用户的喜欢程度进行自动排序,排名靠前的为用户点击次数、点赞次数等行为来控制! 5.1.4 电影论坛 5.1.5 电影资讯 ...https://blog.51cto.com/u_14519396/8678575
4.基于协同过滤的电影推荐系统的设计与实现(协同过滤推荐算法伪代码)Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。经典算法包括聚类、分类、协同过滤、进化编程等等,并且,在 Mahout 中还加入了对ApacheHadoop的支持,使这些算法可以更高效的运行在云计算环境中。 https://cloud.tencent.com/developer/article/2059754
5.基于混合推荐算法的电影推荐系统设计与实现推荐算法自诞生以来,并不是完美无缺的,传统的推荐算法存在着或多或少的不足,比如传统的推荐算法通常会存在数据稀疏性、冷启动,推荐精度不高等问题,为了降低这些问题对推荐系统带来的不足,研究学者和专家通过不同的研究来改善以及优化不同的算法,弥补原始算法的缺陷。本文针对传统协同过滤算法中数据稀疏性以及推荐准确度...https://wap.cnki.net/touch/web/Dissertation/Article/1023602428.nh.html
6.基于知识图谱的推荐算法研究综述可解释推荐是指解释推荐理由问题的推荐算法,在向用户提供推荐结果的同时,还提供解释以阐明推荐的原因[23]。这样有助于提高推荐算法的多样性、有效性和准确性,有利于用户理解并采纳推荐结果[24-25]。 早期的推荐多数是基于内容的推荐或基于协同过滤的推荐,基于内容的推荐方法通过对用户或者项目的属性信息进行建模,是基...https://www.fx361.com/page/2023/0113/16791653.shtml