推荐系统搭建

社会发展离不开效能这一概念,从各个方面来说,效能就是在控制时间成本,有效的时间内产生更高的价值,这将决定个体或社会的进步速度。
毫无疑问,互联网打通了信息阻隔,让信息查询提供了方便,但就是这样一个庞然数据集群中如何获取有效的信息成为了人们考虑的核心需求。这时候,匹配效率衍生出推荐系统。在此,我将简单的阐述如何搭建一个推荐系统。
举一个例子:视频的推荐为例:
用户的行为包含:浏览,播放,点赞,评论,收藏,分享,不喜欢等行为
视频属性包含:视频标签(视频提供者提供),视频标题,视频描述,分类(体育,娱乐,时事,科技等…)
接下来将描述的方式会以理论加例子的方式嵌入到搭建推荐系统流程中
推荐系统搭建
文章图片
上图为推荐系统需要着重注意的流程,而举例将用混合协同过滤的方式进行推荐,将在下面进行描述,包含的算法将一概而过。
推荐系统搭建
文章图片
【推荐系统搭建】首先,评分表示,如上,矩阵值表示用户于各个项目的评价,竖列是用户,横向是项目,借此,我们可以嵌入到视频推荐里,那么将如下图所示,如果用户有横列行为将表示1,如果无将为0。我们可以定性的了解到对于用户的相似性可以通过行为相似性进行比照,当然对于自然属性(性别,年龄等)的应用还可以更加精确。
推荐系统搭建
文章图片
那“临近选择”中,假定user i 与user j 的相似性,这种度量相似性叫做jaccard系数,但是这种方式有其拓展的局限性(并不是所有特征都是0或1的关系);引入一种常用的方式叫做皮尔逊相关的方式,具体度量两个变量间线性相关程度,它介于1与-1之间,所以对于视频场景下会有更好的效果。因此,评分表示将如下:
推荐系统搭建
文章图片
-1<=Rnm<=1, 而如何定义Rnm将较为关键,即用户对某一个视频的评价值(其影响因素包含,用户对其产生的行为,浏览,播放,点赞等),其每一种行为特征都将授予不同的权值,而这个权值可通过线性回归的方式进行计算(其原理是某用户发生一次特定行为最优可能概率,让其无线接近于真实发生的情况),接着基于皮尔逊相关求出sim-R(i,j),以此类推求得用户之间的相邻用户。
基于此,实际上已经可以进行下一步,但提升相似性度量的准确性是精准推荐的前提,因此在这里我们可以进一步提升相似性度量,增加用户对兴趣标签的偏好(定性可知,兴趣越高,用户对其兴趣的视频评价越高),增加视频-标签的矩阵,基础之上,还可以在细分下具体的标签,伴随其越多,将更好的提升相似性度量值,在介于之前用户与视频的矩阵,可算出用户对标签的兴趣偏好(伴随文本标准技术的提升,可以直接提取视频内容(视频描述,视频标题,视频本身)的标签),得sim-I(i,j),在加之视频与用户的关系矩阵,对于视频与标签我们可以得出。那么对于最终的相似度sim-总(i,j)=S总(sim-R(i,j),sim-G(i,j))的相关函数,在这一环节最后一步设定一个参数去选择临近用户集,因此参数的选择将影响推荐内容质量。
推荐系统搭建
文章图片
对于相似度的度量,用户行为除了行为本身,在就是对行为基础上增加时序的概念,可以有效的提升其相似度的准确性。
当我们完成临近用户的选择后,并基于之上的例子,为用户i推荐视频,那么我们知道i的临近用户集i ?{user x1,user x2…..}-à 推荐视频子集?{video x1-1,video x1-2…….},那么开始进入“产生推荐”环节,对视频进行预测评分,基于用户i,“user x1”之间的相似度,用户i和user x1对共集视频的平均评分及用户user x1对要推荐的视频video x1-1的评分,可求出预测用户i可能会对video x1-1的评价,在基于此基础之上,可以求出整个视频集合下的预测提评价。这里面,会有多个用户对视频有共同交集的情况,例如:user x1和user x2 都看了 videox1-1,那么视频video x1-1将获得更高的权值去左右最终的排序,那么我们得到最终影响排名的P=P(P预测评分,x交集影响)(P预测评分,R为实际评分,x共交集加权影响系数),最终得到P,并通过P得到推荐视频的TopN。
这边需要提到的是对视频去重问题的处理,在没有对视频进行文本标注的时候,需要把视频标签相似度设定置信区间低于一定的数值是不同,相似度超过某一值是表达视频内容一致的。当然,除此之外对于评论内容的抓取,也是增加视频标注的维度。相似度较高的视频们进行评分比对,在进行推荐。
在这里,得到了基于数据反馈的推荐内容,而对于新视频的推荐,将通过冷启动的方式进行推荐,根据视频本身蕴含标签与用户的基于标签的兴趣的匹配权值进行推荐,其大致的流程是:
推荐系统搭建
文章图片
视频上传顾名思义是视频提供者把视频上传,并附加视频标题,视频内容及视频标签,通过内容提供者提供的视频信息,做出视频本身的特征及特征所占视频的权重,后者基本方法是基于词频。(如果可以提取视频的特征(技术成熟)将减少内容提供者对视频本身描述带来的偏差)。
通过新视频的标签向量(视频多个标签且对应标签占视频权重值)比对相似性的视频集,通过视频集反馈出评价此类视频较高的用户,进行定量推送,由于新视频的质量无法把控,因此,分层(即评分用户,评分用户从高到低排列,并在每一层提取部分测试用户)和用户已接受新内容次数都需考虑在内,并通过之前的预测评分的方式(其方法一致,不过是通过视频本身相似度,再通过用户已知视频评分区预测要推荐视频),求出新内容可能的预测值(不过预测值是随着视频描述标签的增多变得精准,当然如果可以视频文本标注将最好),但整个环节中可能会出现内容提供者作弊,即强行对视频加高权重标签来影响自身的预评价分,最终使其排名靠前。因此,需要加强对视频提供者的监管制度(例如:对评价的文本提取,预测评分和实际评分差距较大进行提取,并对其用户进行惩罚,降低之后发视频的排名等)。
另外,对于推荐内容的收敛问题(随着用户看视频越多,视频内容类型就越单一),也可以通过这种阶梯型冷启动进行优化。
当预测评分完成后,也就意味着视频推荐的排序完成,接着,需要对推荐系统进行测评,可以通过以下几个指标进行考量(本版本文章将简单说评测指标 ):
1. 预测精准度:需要校准视频预测评价与真实评价的差距,进而优化预测精度(平均绝对误差)
2. 准确率:在所有推荐的视频中有多少个用户点击浏览的(其中需要把播放指标算出)
3. 召回率:在所有看过的视频中有多少是推荐系统推荐的视频(其中需要把播放指标算出)
4. 覆盖率:需要考量是否所有的视频都有机会被推荐
5. 多样性:防止推荐的内容过度收敛,可以通过计算推荐列表中视频相似度进行计算。
6. 信任度:可以通过推荐视频的分享量进行考核
7. 反作弊能力:例如:某些视频提供者批量注册用户,去刷关键行为以增加预测评分,但视频质量又偏低等。

    推荐阅读