单纯以用户和项目为驱动的推荐引擎并不能满足相关用户的实际需要,用户在实际购买之中往往会结合自己的实际需要以及社交网络的推荐来做选择;传统的推荐算法往往带有很严重的“马太效应”——推荐的商品往往是热门的商品,导致热门的商品更加热门,而处在“长尾分布”上的商品仍然得不到重视。因此,将社交网络与个性化推荐相结合提高推荐的精确度是近年来的研究热点。
目前推荐系统常采用的方法主要有基于内容的推荐、基于网格的推荐、基于上下文情景的推荐和协同过滤推荐。
其中协同过滤(collaborative Filtering,CF)推荐系统是推荐系统中最为常用并且有效的方法,可以分为基于内存的协同过滤和基于模型的协同过滤。
基于内存的协同过滤:根据用户或者项目的相似度选出与目标用户最相似的若干用户的评分来对为评分的项目进行评分预测。
基于模型的协同过滤:通过分析用户和项目的内部规律,预测用户对于项目的偏好。一般分为聚类模型,分类模型和矩阵分解模型。传统的矩阵分解模型有奇异值分解、概率矩阵分解和非负矩阵分解等,其中概率矩阵分解模型是其典型代表。目前概率矩阵分解技术还存在数据的高维稀疏性和海量数据环境下的扩展性等制约其进一步发展的瓶颈问题。
由于矩阵分解在推荐系统中的应用,目前协同过滤推荐系统普遍存在四类问题:
- 冷启动问题
- 数据稀疏性问题
- 可扩展性问题
- 易受攻击性问题
冷启动问题
解决新用户和新项目的推荐问题。
推荐系统中冷启动问题主要表现为:
当新用户加入系统时,没有浏览或者评价过任何产品,因此系统中没有用户的行为数据,所以也就无法根据用户的历史行为预测其行去,没有办法为新用户提供推荐服务。
当新项目加入系统时,没有用户对其评价过,也不能被推荐。
冷启动问题考虑的就是在一个新开发的个性化推荐系统中,如何在系统一发布就可以让用户体验到个性化推荐服务。
Bedi等人提出IBSP算法,利用社会交往因子克服冷启动问题。
于洪等人利用用户注册信息及项目详情信息分别进行建模,提供推荐服务。
Le等人提出NHSM相似度度量方法来解决用户冷启动问题。
数据稀疏性
由于海量的用户与项目信息被存储,用户与项目的潜在因子矩阵大多数时候是高维稀疏的。这导致任意两个向量之间近似正交,得到的相似度往往为零,传统的基于相似度计算的模型往往得不到理想的结果。因此评价数据集的稀疏度是十分必要的,实际应用中往往采用用户项目评分矩阵中未评分数据量占评分总量的比例作为稀疏度的衡量指标,稀疏度越大,传统算法的精度越低,也就越难处理。
可扩展性
大数据环境下由于用户量和数据量庞大,传统的矩阵分解算法相应缓慢,存储成本很高,这限制了传统的矩阵分解算法在实际中的应用。
所以需要降低改进算法的复杂度,同时通过分布式文件系统(HDFS)存储数据。考虑到计算效率,可以将矩阵分解算法进行并行化操作,以此来提高算法对海量数据的处理能力。
用户兴趣漂移
用户的兴趣爱好不是一成不变的,这会影响推荐的实时性。引起用户兴趣漂移的原因可能有:年龄的增长;生活状态的改变;收到新闻事件与项目流行度的影响;收到节日的影响;受他人影响等。
算法改进的最终目标是向用户准确推荐项目,所推荐的结果都能使得用户满意。