论文部分内容阅读
推荐系统是信息过滤系统中的一种特殊形式,通过分析用户的历史兴趣和偏好信息,在项目空间中确定用户现在或者将来可能会喜欢的项目,进而主动向用户提供相应的项目推荐服务。随着互联网信息量的快速增长和人们希望有效获取感兴趣信息的需求日益明确,推荐系统在国内外也逐渐引起了业界和学术界的广泛关注和研究。推荐算法作为机器学习、数据挖掘领域的一项研究热点,其中有效数据的稀疏性,大量用户和推荐项目没有历史评价记录,以及推荐精准性和多样性之间的平衡是推荐算法研究中的难点。 本文首先介绍了推荐算法领域经典的协同过滤方法和近年来热门的矩阵分解算法以及其加入信任网络传播的模型,为了整合来自各数据源的海量的原始数据,讨论了对各推荐应用场景下数据模型进行清洗,整合归一化的ETL方法,和该ETL过程中的容错算法。提出了推荐系统海量数据条件下的更新策略,以及 ETL错误快速恢复算法的配置和日志设计,为后续推荐算法的有效应用提供了必要的数据准备。 随后,针对目前推荐系统中冷启动用户问题,本文尝试对常用的推荐算法作一定的改进,通过对推荐过程的多臂赌博机(bandit)方法建模,评价前N次推荐序列的准确性。具体而言,本文采用最大化置信上界(UCB)作为bandit决策的标准产生推荐,同时引入概率矩阵分解算法通过随机梯度下降法能学习得到用户、项目的后验概率,直接带入 UCB决策方程实现了推荐与学习的同步。此外,本文还应用了基于贝叶斯概率矩阵和基于变分贝叶斯方法的置信上界多臂赌博机推荐算法,分别从随机和定量的角度解决概率矩阵分解中参数整定困难的不足,并直接通过迭代中间变量估计评分值得统计量。此外,本文通过MovieLens和 Netflix公开数据集对提出的算法做了离线验证,结果显示它们有效的提升了冷启动用户条件下的推荐准确度。为使推荐算法更好地运用于实际系统,本文在验证结果的基础上进一步分析了模型参数对于推荐结果的影响以及不同数据环境下的参数优化组合。最后,本文给出了基于所提出ETL容错策略和推荐算法的系统设计实现架构和主要技术。