当前位置:首页 >  互联网 >  经过CB算法推荐,中,——,但是作为SVD和CB算法本事

经过CB算法推荐,中,——,但是作为SVD和CB算法本事

发布时间:2020-06-29 16:47编辑:小狐阅读: 512次 手机阅读

经过CB算法推荐,中,——,但是作为SVD和CB算法本事(图1)

1.导读

通过上一篇对推荐的协同过滤算法进行详细的介绍后,并且给出模拟推荐案例,相信广大读者对于协同过滤算法的原理也有了一个基本的了解,以及对其中的推荐过程和使用该推荐算法的场景和优势有了一个基本的掌握。在上一篇文章的结尾部分我留了几个思考,也就是关于协同过滤算法劣势的研究,用来引出其他的推荐算法。因此在这篇文章中,我会从这些方面出发,实际地去解决这几点疑虑,并且透彻地去阐述协同过滤算法的劣势,给出相应的解决方案和对应的推荐算法。

2.“巧妇乃为无米之炊”—矩阵稀疏问题

2.1 “米”不够?

首先对于协同过滤推荐算法,推荐计算过程中涉及到一个关键性也是基础性的参数就是评分矩阵,这就引出了今天我们需要解决的第一个问题:评分矩阵的疏密程度。评分矩阵的疏密程度是选择对应推荐算法或者处理方法的关键。在实际的应用过程中,由于很多用户在生活中只会对少部分商品进行浏览、购买或者评价,对于大部分的商品都会视而不见、置之不理,因此这样就会导致最终形成的评分矩阵过于稀疏。在设计推荐的时候,就会面临一个:使用相对较少或者根本不够的有效评分数据来完成一个相对比较准确的预测。这样的问题无疑是“巧妇难为无米之炊”至于选取任何一个推荐算法所带来的结果并不会有太大区别。就好比你要煮饭,你的米不够甚至没有米,即使你用铁锅还是铜锅甚至金锅也做不出来满足一家人吃的饭。这里的“米”也就是用户对于物品的评分,而“锅”则就好比推荐,锅的材质也就好比推荐算法。这样,读者就能明白其中的含义了,并能够意识到评分的重要性。

2.2 没有“米”

2.3 基于近邻算法的短板揭露

回到之前说的利用用户和物品的额外特征属性对数据进行分类整合,这种操作相对应的一种算法叫做SVD矩阵因子分解。后面我会讲到;除此之外,还可以通过缺省投票的形式来补全物品的评分,原理就是给那些只有一个或者两个的用户评价的物品一个缺省值,这种方法类似于隐式评分计算;最后还有一个办法,当然也是无奈之举。那就是在没有评分的用户和物品旁边或者近邻找到有评分的用户和物品,以它的评分来填充当前的评分,或者用递增、求均值之类的方法获取到评分来完成当前用户和物品评分。因此,现在可以得出CF—基于近邻推荐算法的全部劣势或者说是短板了,如下所示:

2对稀疏数据的敏感:其实这个问题和上面覆盖有限的问题有些类似。因为评分矩阵的稀疏性是大多数推荐的共同问题。主要是看评分举证的稀疏程度,在上面讲的SVD矩阵因子分解算法使用中,如果分解后的物品属性因子还是不够稠密,形成的因子评分矩阵依旧稀疏,但是又不是新用户,还有有一定的历史购买行为或者浏览行为。类似这样的用户就不至于采取非个性化推荐了,因为毕竟要考虑到推荐的人性化、智能化,榜单热销物品数据不是万能的,有一定历史行为的用户还是要考虑其中的历史行为因素,争取做到个性化推荐。目前为了解决这一类问题,可采取基于内容的推荐算法。基于内容的推荐算法是直接根据用户的历史偏好来推荐与用户历史偏好相关的物品,这样就兼顾了每个用户所特有的属性,完成个性化推荐。

针对上面两个问题引出来了两个算法分别是SVD矩阵因子分解算法和基于内容的推荐算法,这两个算法就是这篇文章的重点。有了这个“引子”下面就开始燃起这两个算法的“导火线”了。

3.SVD矩阵因子分解算法

3.1 SVD算法

首先来看下SVD(Singular Value Decomposition)的数学定义:将给定的评分矩阵S分解成为三个矩阵的乘积,其中U和V称为左、右奇异向量,在本章中可理解为用户矩阵和物品因子矩阵,对角线上的值称为奇异值;S为n*m的矩阵,U为n*n矩阵,Q为n*m的矩阵,V为m*m的矩阵;在下面公式中,可以使用k个奇异值来近似地替代R矩阵,因为前1%的奇异值的和就占了全部奇异值和的99%以上,因为除了中间的奇异值之外,其余的奇异值基本都是0。公式如下:

经过CB算法推荐,中,——,但是作为SVD和CB算法本事(图2)

需要将U、V矩阵进行转换得到用户因子矩阵C和物品因子矩阵P,将奇异矩阵Q开平方分别乘到U和V矩阵,如同将奇异矩阵Q做了一个开方乘积的变换。得到用户因子矩阵C和物品因子矩阵P如下:

经过CB算法推荐,中,——,但是作为SVD和CB算法本事(图3)

最后用户t对物品i的评分预测就为用户因子矩阵的第t行乘上物品因子矩阵的第i列(即物品因子矩阵的第i行的转置)如下所示:

经过CB算法推荐,中,——,但是作为SVD和CB算法本事(图4)

3.2 参数优化

在进行用户因子矩阵C和物品因子矩阵P的计算时,可以通过SGD随机梯度下降的方式进行学习来不断迭代调整相关参数。对于没有评分的情况则不需要计算误差值,直接令误差值为0即可。上面提到的SGD随机梯度下降的方法由于涉及的内容较多,不容易理解,并且怕读者将SGD随机梯度下降和SVD矩阵因子分解相互混淆,在这就不再继续对SDG随机梯度下降进行原理上的阐述了。我会将SGD随机梯度下降方法令作一个专题去分析阐述,因为它也涉及到一些人工智能的神经网络的运用。希望广大读者在这就先熟悉适应下公式即可:

经过CB算法推荐,中,——,但是作为SVD和CB算法本事(图5)

3.3 SVD算法缺陷

4.CB—基于内容的推荐算法

4.1 CB算法及其特点、应用

基于内容的推荐算法(Content-based Recommendations)相比较于协同过滤算法,也是一种工业界或者互联网业界应用比较广泛的推荐算法了。这是针对于协同过滤推荐算法中,仅仅基于用户对商品评分推荐导致的评分矩阵过于稀疏(以至于矩阵因子分解后依旧达不到理想的丰富评分矩阵要求)所提出的推荐算法。这种推荐算法在某种程度上也解决了一部分冷启动问题(虽然不是进行新用户推荐)基于内容的推荐算法可以根据物品的特性或者用户的历史行为或者特殊偏好等特征属性来进行比较直观的推荐。这种算法仅仅只考虑推荐的用户,而不去在意其他用户群以及最近邻。

CB算法特点:CB—基于内容的推荐算法虽然也需要依赖物品和用户偏好的额外信息,但是它并不需要太多的用户评分和对等用户群的偏好属性记录,换句话说,也就是只有一个用户时,使用基于内容的推荐算法也可以完成推荐功能,并且产生一个物品的推荐列表。而这些是基于协同过滤算法的推荐所办不到的。

CB算法应用:基于内容的推荐算法起初设计出来时为了推荐用户感兴趣或者有意思的文本文档,在一些文本文档推荐中经常可以看到基于内容的推荐算法的“身影”但是在目前也会开始将该算法应用在其他推荐领域了。基于内容完成推荐在未来也会得到进一步的推广与应用。

4.2 CB算法 VS 协同过滤算法

下面我们来看下CB(基于内容)和(协同过滤)两个算法的区别:

CB(基于内容的推荐算法)的推荐会根据用户过去喜欢物品,试图推荐给用户过去喜欢的物品的相似替代品,所推荐的物品是跟用户过去感兴趣或者购买过的物品是属于同一类的,并且CB算法不需要依赖用户—物品评分矩阵。

CF(协同过滤的推荐算法)的推荐则会试图识别出与当前用户具有相同兴趣爱好的其他用户,来将这些其他用户所喜欢过的物品推荐给当前用户。CF算法则是需要基于用户—物品评分矩阵来完成推荐的。

4.3 CB算法实现步骤与结构

CB算法实现步骤如下:

1Item Representation对象表示就是为每一个item对象抽取出一些特征属性出来,也就是结构化物品的操作,相对应的处理过程也叫内容分析。

2Profile Learning特征学习利用当前用户的历史行为信息或者过去喜欢不喜欢的item的特征数据信息,来学习当前用户的喜好特征Profile相对应的处理过程叫做Profile Learning。

3Recommendation Generation推荐迭代通过分析上一步得到的用户Profile特征为该当前用户推荐一组相关性或者相似度最大的item即可,相对应的处理过程叫做Filtering Component过滤组件

由BC推荐算法的实行步骤不难得出BC推荐算法运行的结构,将BC推荐原理过程绘制成直观的结构图如下所示:

经过CB算法推荐,中,——,但是作为SVD和CB算法本事(图6)

4.4 CB—Item Representation

在绘制完BC推荐算法的结构图后,在这额外补充一点:在对物品特征属性的挖掘抽取中,也就是Item Representation过程中,主要包括对数值型数据的处理和非数值型数据的处理,这在机器学习中采用的主要处理方式有以下几种:

1数值型数据归一化:就是将数值型数据统一除以自己数据总和,用每一个数据在数据总和中的占比来表示该数据,使得每个数据的表示范围都在【0,1】之间,这也是最为简单的数值型数据归一化方法。

2数值型数据二值化:依据各个数据值来设置一个默认值,设定一个条件规则如数

据值大于等于默认值,则表示为1,小于默认值表示为-1。像这样的设定限定条件来使每一个数据值都只有两种值中的一种,也就是所谓的二值化。

3非数值型数据转换成特征向量:将每一个非数值型数据用对应的向量型数值表示。

4TF-IDF:一种用于信息检索与数据挖掘的常用加权技术。TF是词频,IDF是逆文本频率指数,通常用来评估一个字词对于一个文件集中的一份文件的重要程度。

5Word2Vec:一群用来产生词向量的相关模型,会涉及到神经网络的训练。

4.5 CB—Pofile Learning

假设用户对于某些物品已经有了喜好判断,喜欢其中一部分的物品,不喜欢另外一部分,那么这个过程其实就是通过用户过去的喜好来进行判断,从而构建一个判别模型,最后再根据这个模型来判断用户对于一个新的物品是否喜欢。这是一个比较典型的有学习问题,在理论上也是可以使用机器学习的分类算法来求解所需要的的判别模型,这也为今后算法的优化了研究方向,也就是结合深度学习技术来不断完善判别模型,使得判别模型更加地贴合用户兴趣。

在这一过程中涉及到的常用算法有最近邻方法、决策树方法、线性分类算法、朴素贝叶斯算法等,这些算法都是在人工智能领域或者说是深度学习领域常用的处理数据的算法,由于本文只讲推荐算法,涉及到的这些深度学习领域的算法我会在今后介绍深度学习的专题里进行阐述。至于最近邻方法由于是推荐最关键、也最常用的算法,我会以补充稿的形式来详细阐述并更好地进行该推荐算法系列的差缺补漏。通过这些涉及到机器学习的知识不难发现,基于内容推荐其实主要就依赖机器学习算法的基础上来做的一个推荐。

4.6 CB算法大剖析

通过上述文字,不难知道基于内容的推荐算法(CB)的优缺点,下面我们就展开了解下。

对于CB推荐算法的优点主要有以下几个:

1用户独立性:这个性质也脱离了协同过滤算法依赖其他近邻的特征属性的限制,真正意义上做到仅有一个用户也能完成个性化推荐。在构建模型的过程中,CB算法只需要考虑当前推荐用户的信息就可以了,非常独立的一种推荐算法。

2透明度:通过CB算法的运行结构就可以知道,CB算法通过显式地列出使得物品出现在推荐列表中的内容特征和描述信息,也就可以很好的、较为明确或者透明地解释推荐是如何工作的了。

3新物品性:这个是针对于物品评分没有的情况下的特性。也就是说,即使当前用户对这个物品并没有评分,甚至这个物品没有任何评分,但是BC算法可以基于当前用户历史行为找到与该物品想类似且有用户评分的物品,那么CB推荐算法就可以将这个没有任何评分的物品推荐给当前用户,也就是完成了新物品没有任何评分的物品的推荐。

当然,任何推荐算法都是只能用来解决某一类问题或者处理某一类情况的,因此,CB算法也有它自身难以克服的缺点:

1抽取特征难度大可分析的内容有限对于当前用户物品如果他的浏览历史特征属性不够丰富,那么就会导致提取的特征不具备很好的表示能力,对于最终的推荐效果产生负面的影响。这个问题是与推荐对象相关的特征数量和类型有限相关的,并且依赖于领域知识,也就是机器学习算法的好坏。

2容易造成长尾效应:长尾效应在之前的文章中已经做过解释,CB算法推荐很可能会导致长尾效应的出现,以至于无法发现用户的潜在兴趣,造成用户的兴趣过度专一特化。因为CB推荐算法中的推荐结果一直都是和用户以前喜欢的物品类似的,经过CB算法推荐,用户始终停留在以前那一块兴趣领域中,无法跨越出来,喜欢上其他领域的物品。但是真实情况是当前用户肯定不止这一块领域的兴趣爱好,因而CB推荐算法就无法发现该当前用户可能还喜欢其他领域内容,也就会造成用户兴趣过度专一特化,长尾效应也就出现了。

3冷启动问题:也就是无法为新注册的用户产生推荐,因为CB算法依赖的是当前用户的历史行为数据,对于一个完全没有历史行为数据的新注册用户也就不可能为他产生一个比较可靠的推荐结果了。这个问题也是之前协同过滤算法存在的问题,好在已将在之前的文

章中用非个性化推荐解决了这个问题,就不再继续描述了。

5.总结

SVD算法和CB算法都是作为解决协同过滤算法的用户—评分矩阵过于稀疏所研究出来的推荐算法,虽然针对于不同的稀疏度有相对于的解决办法。但是作为SVD和CB算法本事,这两个推荐算法仍有其自身难以克服的缺点存在。在下一篇文章中,我会把剩下的、相对比较小众的推荐算法介绍给大家,这样就可以让读者根据自身遇到的场景选用合适的算法了,也可以让读者较为清晰的了解到推荐算法的轻重级别,对于一些小众的推荐算法的掌握是可以为自身设计的推荐起到锦上添花的效果。

本文相关词条概念解析:

算法

算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制;它是求解问题类的、机械的、统一的方法,常用于计算、数据处理(英语:Dataprocessing)和自动推理。可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。

延伸 · 推荐

家设计企业,CB,Insights中国芯片设计企业榜单

芯片即集成电路,其产业链可分为上游的算法及设计工具供应商、芯片设计公司、制造商、封测商、直销/分销商,以及下游的方案商和终端应用厂商。其中, 芯片设计和制造是核心技术环节。根据中国半导体行业协会统计:...

推荐系统的天时地利

推荐的天时地利推荐的成功,不仅仅是算法的功劳,而是天时地利各方面因素共同造就的机器学习算法现在在互联网的各行各业中都得到广泛应用,但并不是每个场景都得从中获得同样的收益,推荐作为最早吃螃蟹的算法应用行...

CB,中国金融科技营收规模分别为,旷视入选CB

6月29日,全球知名市场研究机构CB Insights首次在国内发布“中国金融科技企业榜单”这是旷视连续两年入选全球AI100榜单后,第三次入选CB insights的重量级榜单。据 CB Insig...

标签:
  • 网友评论
相关文章:

互联网本月排行

互联网精选