针对基于邻域的协同过滤算法只考虑相似度这一因素和传统矩阵分解出现负值的问题,提出了一种非负矩阵分解和项目热度相结合的两阶段k近邻选择算法,把项目热度融入到相似度计算中,有效缓解了数据稀疏性问题。实验结果表明:提出的算法与经典算法相比,推荐精度更高。