视频推荐概述
对于用户来说,仅仅通过简单的检索功能从海量的视频条目中寻找自己感兴趣的视频,费时又伤神,更甚者,有些用户苦苦搜索最终也不一定能够找到喜欢的视频;对于内容提供商来说,如何充分利用这些过载的信息以形成自己的核心优势,准确高效的向用户推送优质视频内容,提高用户粘性和用户观看时间,从而实现网络价值最大化也成为一个亟待解决的难题。在这样的背景下,智能的视频推荐算法及系统具有广泛的市场需求。
并不仅仅掌握推荐系统的所有原理,就可以做好视频推荐系统的,还必须结合视频推荐的业务场景,以及服务于视频推荐的特定用户画像约束。
主流推荐方法的分类:
视频推荐系统根据用户的历史行为数据和视频的内容特征数据进行挖掘与分析,构建出用户画像和视频的物品画像,同时利用各种上下文信息,做出对用户未来选择行为的预测,完成对特定用户的topN推荐列表。一般来说,常见的推荐算法根据使用数据源的不同可将其大致分为三类,分别时协同过滤的推荐方法、基于内容的推荐方法和基于只是的推荐方法。之后,对这三类算法进行不同程度的融合就出现了混合推荐算法。基于知识的推荐算法时基于模型的推荐算法,时使用了机器学习中的模型与算法来辅助推荐的方法。基于内容的推荐方法就是一般的推荐方法。
协同过滤方法的基本思想:跟你爱好相似的用户喜欢的东西你可能也会喜欢。
协同过滤的推荐方法共享朋友的经验,有效的使用其他用户的反馈信息,能够提高推荐的准确度,在基于用户的推荐中,根据爱好相似的用户喜欢的视频为用户进行推荐,可以发现用户潜在的兴趣,增加推荐的多样性。
协同过滤的推荐方法存在存在以下的局限性:
1.由于新用户没有朋友、观看的视频等有用信息,新视频没有被用户观看的信息,因此系统无法对新视频、新用户做出推荐,这被称为用户和物品的冷启动问题。
2.因为不对视频的内容做分析,所以无法依据深层特征和属性来推荐比较复杂的视频,使得用户对推荐结果的可信度产生质疑。
3.受到用户打分稀疏性问题的约束。
4.随着用户和视频数量的增大、系统计算量的增大,受到算法可扩展性问题的约束。
基于内容的推荐算法存在以下的局限性:
1.容易受到信息获取技术的约束,难以提取视频的内容特征,而使用标签对视频进行标注的方法工作量巨大而效用低。
2.需要有足够的数据用来构造决策分类器,用户画像的建立需要大量的用户浏览记录。
3.难以为用户发现新的兴趣信息,只能推荐与用户已有兴趣相似的视频。
基于知识的推荐方法:
协同过滤和基于内容的的推荐方法实际上是在分析系统已知数据的基础上去推测用户的选择行为的,是一个比较有把握的“猜”的过程。而基于知识的推荐方法首先是“问”的过程,通过交互、会话等方式直接了解到用户需求,然后进行视频匹配即“找”的过程。基于知识的推荐方法可应用于前两类推荐方法所不擅长的推荐场景,但前提是需要对“知识”进行形式化的定义和表示。这类推荐方法包括基于约束的推荐算法和基于实例的推荐算法,前者侧重于使用用户需求的形式化条件进行搜索,后者侧重于在已有实例的基础上进行匹配和调试。
基于知识的视频推荐引擎通过与用户的交互获取信息做推荐,能够很好的给出视频的推荐理由;系统不依赖于用户偏好信息,因此不存在用户的冷启动问题;基于知识的推荐系统能够与用户交互从而及时响应用户需求,用户偏好发生改变时不需要任何训练。
基于知识的推荐算法存在以下局限性:
1.知识的获取比较困难。
2.用户必须说明她的需求,系统才能做出推荐,在这个过程中若找不到合适的推荐视频,用户需要修改其需求。
混合推荐算法:是将以上的推荐方法进行不同程度的融合,使得融合后的算法既能吸取各自算法的长处,也能弥补各自算法的缺陷,从而获得更好的推荐效果。‘
常见的混合推荐方法:
1.并行式混合
(1)加权式推荐系统对多种推荐算法的计算结果进行加权平均处理,产生出单一的推荐结果。
(2)切换式推荐系统在不同的推荐算法中进行切换以适应当前的推荐情景。
(3)混杂式推荐系统同时呈现出其上多种推荐算法的推荐结果。
2.整体式混合
(1)特征组合推荐系统从多种推荐数据源中获取特征,将这些特征组合起来放入单一的推荐算法中。
(2)特征补充推荐系统将一种推荐算法输出的特征信息作为另一种推荐算法的输入特征信息。
3.流水式混合
(1)层叠式推荐系统中的一种推荐算法对另一种推荐算噶的推荐结果进行提炼。
(2)级联式推荐系统将一种推荐算法学习到的模型作为另一种推荐算法的输入。
推荐系统的评测方法:
评测方法是量化系统推荐质量的有效手段。评测方法能够帮助系统设计者在各种推荐方法的设计和使用中做出权衡和取舍,使推荐系统经受多种层次的考验直至能够运行于真实环境中。
评测过程是指推荐系统在投入运营前所经历的不同形式的评测经历,评测过程按照成本的由低到高的顺序分为离线评测、用户调查和在线评测。评测指标是指从不同角度来衡量系统推荐质量的参考标准,常见的推荐系统评测指标有单击率和转化率、用户满意度、预测准确度、覆盖率、多样性和新颖性、适应性和扩展性等。它们之中有的可以进行定量分析,有的则只能进行定性分析。单击率和转化率是在线评测的重要指标。用户满意度是评测推荐系统的最重要指标,在用户调查时通过调查问卷的形式或在线评测满意度时通过用户的行为统计得到。预测准确度是最直观评价系统预测评分和用户真实评分差距的指标。如果推荐引擎采用类似视频评分机制,则一般计算平均绝对误差MSE和均方根误差RMSE,如果是topN推荐,那么主要评价指标为召回率和准确率,覆盖率评价的是推荐的广度,即所有物品是否都有被推荐的机会。多样性和新颖性是推荐系统离线测评常用的指标,评价系统能否给一个用户推荐多元的物品满足其广泛的兴趣爱好,以及系统向用户推荐非热门非流行物品的能力。
用户画像是真实用户在视频网站中的形象勾勒。为用户打上一系列标签,实现用户标签化。用户画像基于用户基础信息、视频基础信息和用户浏览行为等数据,采用统计和机器学习等方法,从用户观看行为、视频和隐式话题等维度深入的挖掘用户的行为特性和偏好,深入分析并建立用户与用户、以及视频与视频之间的关系,最终构建用户画像,为用户个性化服务打下良好的基础。
协同过滤推荐方法:
协同过滤推荐方法的分类其实并没有严格的定论,维度百科上的分类为:以记忆为基础的协同过滤和以模型为基础的协同过滤,基于记忆的又可分为基于用户的协同过滤和基于项目的协同过滤。
协同过滤式基于用户和用户的关联,更适合“给用户带点新鲜的东西”。
基于模型的协同过滤首先离线处理原始数据,先用历史资料得到一个模型,再用此模型进行预测,运行时只需预计算或学习就能预测。
在协同过滤中,处理对象离不开用户和项目两个对象产生的排列组合关系,包括用户—用户,用户—物品、物品—物品,这些都可以因为某些特征或属性而建立起关系,我们可以统一归纳为关系矩阵的数学表示。而关系的远近程度就可以作为推荐物品时的直接依据,这在协同过滤的推荐方法中尤为重要。
协同过滤就可以首先创建出用户之间的关系并计算关系的远近程度,然后借助这些关系数据构建出潜在的推荐物品列表,最后向用户做出推荐,在推荐系统中,“关系”使用关系矩阵的形式来创建和存储下来的。此外,除了相似度计算外,矩阵分解等技术也可以用来专门用于高维U—V矩阵(用户—视频关系矩阵),进行关联分析。
计算用户相似度的常用方法有Pearson相关系数、余弦相似度、以及修正的余弦相似度Spearman秩相关系数和均方差等, 据有关研究表明,Pearson相关系数在基于用户的相似度计算方面的表现要优于其他计算方法。
算法原理
在基于用户相似度的协同过滤中,需要通过计算用户相似度来找到与目标用户行为具有相似性的用户集,然后依据预先规定的相似用户数K,按照相似度大小,选择前K个用户作为目标用户的相似用户集。
在视频推荐系统中,引用Pearson相关系数度量方法来计算用户间的相似度,也就是将两用户共同评价过的视频作为度量两用户相似度的依据。
算法流程(1)
协同过滤中的视频相似度计算流程如下:
访问用户最近的行为数据——提取用户—视二维矩阵——分别计算用户i和j对视频的平均评价值——寻找用户i和j共同评价过的视频的集合——根据公式计算得到用户i和j的相似度。
算法输入:用户行为日志。
算法输出:基于协同的用户相似度矩阵。
1.从“用户行为日志”中获取用户和视频之间关系的数据,即用户对视频的评分数据,
2.对于n个用户,依次计算用户A与其他n-1个用户的相似度;紧接着计算用户B与其他n-2个用户的相似度。对于其中任意两个用户i和j而言:
2.1查找两个用户共同评价过的视频集合Iij;
2.2分别计算用户i和j对视频的平均评价值ri和rj(平均值)
2.3按照公式计算用户之间的相似度,得到用户i和j的相似度。
3.将计算得到的相似度结果存储在数据库中。
存在的问题有:
有可能出现不同的用户可能对某件广受欢迎的项目都给予高评分的情况,或者遇到用户只对非常少的共同项目评分时会出现预测不准的情况。
算法原理
在基于项目的协同过滤中,需要通过计算视频相似度来找到与目标用户所喜欢的视频具有相似性的视频集,然后依据预先规定的相似视频数,按照视频相似度大小,选择前K个视频作为目标用户所喜欢的视频的相似视频集。
余弦相似度是通过计算两个视频的n维向量间的夹角的余弦测算视频相似度。
因为每个用户评分的标准的不一样,所以修正的余弦相似度解决了这个问题(减去了用户对物品的平均评分)
算法流程:(2)
在基于物品的相似度计算中,余弦相似度因为其精确较好而被广泛认同,成为通常状况下的标准度量方法。
协同过滤中的用户相似度计算流程如下:
访问用户最近的行为数据——提取用户—视频二维矩阵——寻找历史上对视频i和j共同评价过的用户的集合——分别计算用户对视频i和j的平均评价值——根据公式计算得到用户i和j的相似度
算法输入:用户的行为日志。算法输出:基于协同的视频相似度矩阵。
1.从用户行为日志中获取用户与视频之间关系的数据,即用户对视频的评分数据:
2.对于N个视频,依次计算视频1与其他n-1个视频的相似度,紧接着计算视频2与其他n-2个视频的相似度。对于其中任意两个视频i和j而言:
2.1查找对视频I和J共同评价过的用户的集合Uij
2.2分别计算用户对视频i和j的平均评价值ri和rj(平均)
2.3按照公式计算视频之间的相似度,得到视频i和j的相似度;
3.将计算得到的相似度解雇存储闲杂数据库中。
用户——视频矩阵
这种关系可以是基于用户对视频的评分(最常见的),也可以是基于用户概念看视频的频度,还可以是基于用户是否观看过视频的行为(用0/1来表示未看过/观看过)。
因为用户实际上只能对有限数量的视频做出评价,所以U—V矩阵的内部会非常稀疏。系统在直接处理这些庞大的高维U-V矩阵时,所消耗的时间、存储和计算资源时非常巨大的
矩阵分解技术是一种有效降低矩阵计算复杂度的方法,它的实质是将高维矩阵进行有效降维。这类技术的代表是奇异值分解(SVD)和主成分分析(PCA),它们在基于模型的协同推荐算法中起着非常重要的作用,经常被用于离线数据的预处理。
SVD是提取矩阵特性的好方法,将它应用在推荐系统中时,它的意义时将一个稀疏的评分矩阵分解为一个表示用户特性的矩阵U和一个表示物品特性的矩阵V,以及一个表示用户和物品相关性的矩阵(求和符号)。
PCA最重要的应用是对原有数据降维。
最近邻居算法(KNN)是最经典的也最重要的基于记忆的协同过滤算法,它的推荐过程主要经历两个步骤:首先计算每一对用户之间的相似度,对某一个用户来说,将相似度较高的作为邻居;然后根据所有邻居的相似度在某一个项目上做加权和,获得预测用户对该项目的分值。
爱奇艺的推荐引擎主要就是采用协同过滤算法和个性化推荐技术,通过收集网站用户群的观影习惯、收藏和下载视频记录建立用户兴趣模型,根据用户的爱好进行个性化视频推荐,实现视频的猜你喜欢。
基于用户的协同过滤:
主要分为以下两步:(1)收集用户和视频的历史信息,计算用户U和其他用户的相似度,找到与目标用户Ui相似度高的用户集合N(u);(2)根据所有Ni属于N(u)对视频的评分情况,选出N(u)中的用户喜欢的且目标用户没有观看过的视频推荐给目标用户。
算法流程:
算法输入:用户行为日志,基于协同的用户相似矩阵。
算法输出:初始推荐结果。
1.访问用户行为日志,获取近期变化的用户id集合U。
2.针对集合U中的每个用户u(可以并行处理);
2.1访问用户相似矩阵,获取与用户u相似的用户集合N(u).
2.2对于N(u)中的每个用户ui:
2.2.1获取与用户有ui有关联的视频集合M(ui)。
2.2.2 针对视频集合M(ui)中的每个视频,计算用户偏好值。
2.3对M(u)中的所有视频进行按照用户偏好值进行加权、去重、排序。
2.4取Top-N个视频,为每个视频赋予解释。
2.5保存Top-N个视频到初始推荐结果中。
好好珍惜这份工作 每天过的充实一点 今天看不进去了 就先回家了 拜拜