推荐算法全系列
前言
本文是推荐算法系列第三篇:组合推荐算法。要看懂本文,需要先阅读前两篇算法《推荐算法系列一:基于内容的推荐算法》和《推荐算法系列二:协同过滤算法》
组合推荐算法理论基础
组合推荐算法是为了弥补单一推荐算法的不足,将多种推荐算法进行混合,从而达到取长补短效果一种新算法。单独某种推荐算法不可能解决所有的问题,本课题所研究的基于内容的推荐算法和协同过滤算法均存在缺点,如果仅使用基于内容的推荐算法,那么推荐的结果将永远与用户现有的兴趣爱好有关,而用户的潜在兴趣将难以激发;如果仅使用协同过滤算法,虽然会挖掘用户潜在兴趣,提高推荐惊喜度,但是缺乏内容的准确推荐,而且当新系统上线时,会由于缺乏评分数据而难以运行推荐系统。所以,有必要将本课题的两种推荐算法结合起来。
算法的组合方式有多种,大体分为以下几类:
(1)加权型
加权型就是将不同算法的推荐结果进行加权混合。最简单的就是线性加权法,分别给基于内容的推荐结果和协同过滤算法结果赋予一定的权重,然后衡量此权重下的推荐质量,不断地去调整权重值来达到最佳状态。
(2)转换型
转换型很好理解,就是根据不同的场景,转换不同的推荐算法。在评分信息不足时,用基于内容的推荐算法,在评分信息较为充足时,转换成协同过滤算法。
(3)合并型
同时使用多种推荐算法,得出推荐结果,将结果合并给用户,为用户提供参考。
(4)特征组合型
特征组合型是将来自不同数据源的特征组合起来,然后将这个组合的结果给另一个推荐算法使用,以此产生推荐。这种方法的好处是降低了推荐系统对某些数据源的敏感度。
(5)瀑布型
这种组合方式是先用一种推荐算法得出推荐结果,这是一个较为粗略的推荐结果,然后用另一种推荐算法对这个推荐结果进行再筛选,得到最终的较为精确的推荐结果。
组合推荐算法实现
本课题的组合推荐算法使用线性加权法实现,因为第3章和第4章已经分别实现了基于内容的推荐算法和协同过滤算法,只需要将推荐结果进行加权混合即可。
但是考虑到系统难免会出现数据不足的问题,导致推荐结果不足,且考虑到用户体验,在资讯推荐系统中,有必要加入热点推荐算法,在推荐结果中保留一定数量的热点资讯,这样一来,既可以保证推荐数量,又可以提升用户体验。
由于热点推荐算法不是本课题的研究重点,且其实现过程比较简单,仅仅是查询热度较高的资讯,所以不再赘述其实现过程。
本课题的组合推荐算法对推荐结果的组合可以用公式描述如下:
上式中,CB为基于内容的推荐算法推荐结果集,CF为协同过滤算法推荐结果集,HOT为热点推荐算法结果集,、、分别是它们对应的权重,最终形成的推荐结果集为集合Result。设计组合推荐算法过程如下:
输入(INPUT):目标用户u,基于内容的推荐算法权重,协同过滤算法权重,热点推荐算法权重,推荐数量N。
输出(OUTPUT):推荐结果集合R。
运算流程(PROCESS):对于目标用户u,执行下面操作:(1)对u使用基于内容的推荐算法进行推荐,得到推荐结果集合CB。(2)对u使用协同过滤算法推荐,得到推荐结果集合CF。(3)对u使用热点推荐算法推荐,得到推荐结果集合HOT。(4)分别对集合CB、CF、HOT中的元素加权重、、,并将加权后的结果合并排序(5)对于合并后的结果,取前N项作为最终推荐结果集合R,并输出。
上述算法过程可用流程图描述如下:
高谈阔论