论文部分内容阅读
近几年来,由于软件众包的高速发展,在软件众包平台上涌现了大量的用户和项目,为了帮助用户快速地发现最适合他的项目,学术界和工业界开始研究软件众包平台的推荐系统,其中最常用的推荐算法是协同过滤推荐。但协同过滤却面临小众用户问题。所谓小众用户(Gray-Sheep),是指其偏好与大多数人不同的一些用户,协同过滤因为倾向于推荐流行和热门的项目,所以无法向小众用户推荐合适的项目。为解决小众用户问题,本文分析了小众用户在整体用户中的分布以及对推荐系统的影响,设计了甄别小众用户的算法,在此基础上提出了两种小众用户推荐方法。第一种方法甄别小众用户和大众用户,分别进行不同策略的混合推荐,适用于用户数量变化和对可解释性要求高的场景;第二种方法采用栈式自编码器,对小众用户和大众用户同时进行统一的深度协同过滤推荐,适用于用户数量稳定和不要求解释推荐结果的场景。本文主要的贡献和创新点包括:(1)构建软件众包平台用户画像,计算用户基础特征向量和兴趣特征向量,并分析用户多类型行为,构建隐式评分矩阵。在此基础上提出可以在多种场景下使用的小众用户甄别算法,包括基于邻域、基于密度、基于角度、基于线性模型和基于非线性模型共五种算法。(2)提出了基于混合推荐的项目推荐方法,该方法结合协同过滤、基于内容和基于图的三种推荐方法进行加权式混合,并将混合推荐的推荐列表整合问题转化为有监督训练问题,分别对小众用户和大众用户进行推荐。(3)提出了基于深度协同过滤的项目推荐方法,该方法把用户画像、项目画像和(隐式)评分矩阵嵌入到隐式因子空间中,结合矩阵分解和栈式自编码器,使得可以直接计算用户与项目之间的预测评分。本文在多个软件众包平台的数据集上进行了系列实验,实验结果证明,在软件众包平台上小众用户占总用户数量的15%-25%,这使得该类平台的协同过滤推荐效果差强人意。本文提出基于混合推荐的项目推荐算法和基于深度协同过滤的项目推荐算法,相比现有的推荐算法,整体推荐平均召回率分别高10.74%和12.63%,小众用户推荐平均召回率分别高56.65%和48.25%。