论文部分内容阅读
随着移动互联网、自媒体、社交网络的快速发展,互联网出现了“信息过载”问题。作为搜索引擎之后一个革命性的技术,推荐系统以其能发现用户潜在需求、提高人们选择和筛选物品的效率之特点正成为业界关注的热点。协同过滤是推荐系统一个重要算法,它仅依赖用户评分信息,原理简单而且高效,然而却存在冷启动和数据稀疏性问题。矩阵分解和引入社交网络信息是解决冷启动和数据稀疏性问题的其中一种方式。矩阵分解即将原有评分矩阵信息进行低秩分解,然后利用低阶子矩阵对原有评分矩阵进行拟合,从而将评分预测问题转化成为最优化目标函数求解问题,一方面可以通过梯度下降等方法求解用户和物品的潜因子特征量,另一方面引入更多与用户和物品相关的辅助信息,正则化用户和物品特征向量,从而产生更加准确的预测模型。社会化推荐算法引入了社交网络中用户的信任信息,不过这些算法通常只使用了相邻信任用户信息,忽略了社交网络中用户之间的连通性以及间接用户信任影响力,导致预测准确性不足。针对上述预测准确性问题,本文主要完成了如下三方面工作:第一、提出了一种基于用户信任影响力强度的社会化推荐算法。首先根据社交网络的连通性进行迭代计算,求得社交网络中用户的信任影响力值;然后,根据用户影响力大小,将近邻相似用户与信任影响力因素进行融合;最后,对评分矩阵分解得到的用户和物品的低阶特征信息矩阵进行正则化求解,以此预测用户对物品的评分。第二、从概率的角度将提出了的算法与基于物品的矩阵分解方法进行了推导整合。用户信任网络信息的引入较好地解决了用户冷启动问题,为了同时解决物品的冷启动问题,将物品相似性图信息引入到了用户评分矩阵中,通过基于概率的矩阵分解推导得到最终模型并进行了梯度求解,最后基于LibRec进行了算法实现。实验对比发现,相比已有的社会化推荐算法,本文算法提高了准确度,并能改善推荐系统对冷启动用户和物品的预测评分。第三、完成了本文提出算法的分布式实现。通过模型的设计,最终将评分预测问题转化为最优化求解问题,对比分析了几种常见的优化求解方法;同时,为了解决算法在大规模数据集上计算性能问题,本文完成了基于更加适合迭代计算的Apache Spark上的分布式算法设计和实现。